<?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>66441</bug_id>
          
          <creation_ts>2011-08-17 18:02:59 -0700</creation_ts>
          <short_desc>Implement WebMediaPlayerClientImpl::audioSourceProvider() and interface into chromium</short_desc>
          <delta_ts>2011-08-18 16:05:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Chris Rogers">crogers</assigned_to>
          <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>scherkus</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>452773</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-17 18:02:59 -0700</bug_when>
    <thetext>Implement WebMediaPlayerClientImpl::audioSourceProvider() and interface into chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452776</commentid>
    <comment_count>1</comment_count>
      <attachid>104287</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-17 18:07:25 -0700</bug_when>
    <thetext>Created attachment 104287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452786</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-17 18:27:29 -0700</bug_when>
    <thetext>This is one patch out of several to implement MediaElementAudioSourceNode (see approach #2):
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioElementIntegration-section

It&apos;s a simple chromium implementation for WebMediaPlayerClientImpl::audioSourceProvider().

which is meant to override the default empty implementation in MediaPlayerPrivateInterface::audioSourceProvider()
Please see this patch for more details of how this grows out of WebCore:
https://bugs.webkit.org/show_bug.cgi?id=66398

It reaches out into chromium code via the WebAudioSourceProvider abstract interface

For the chromium-side, here&apos;s a patch for a very early prototype implementation (incomplete and rough edges):
http://codereview.chromium.org/7631033/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452838</commentid>
    <comment_count>3</comment_count>
      <attachid>104287</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-08-17 20:59:18 -0700</bug_when>
    <thetext>Comment on attachment 104287
Patch

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

&gt; Source/WebKit/chromium/public/WebMediaPlayer.h:158
&gt; +    virtual WebAudioSourceProvider* webAudioSourceProvider() { return 0; }

nit: we drop the &quot;web&quot; prefix on methods like this.  see for example WebFrame::dataSource().  that returns a WebDataSource.

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:626
&gt; +void WebMediaPlayerClientImpl::AudioSourceProviderImpl::provideInput(WebCore::AudioBus* bus, size_t framesToProcess)

it seems like this function should be listed after we are done defining
all of the WebMediaPlayerClientImpl functions, and methods in the .cpp
file should appear in the same order as they are declared in the .h file.

&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h:173
&gt; +        void set(WebAudioSourceProvider* provider) { m_webAudioSourceProvider = provider; }

nit: set -&gt; initialize?  (it seems like &quot;set&quot; is a bit too vague, and setProvider would be funny too since your implementing a provider.  initialize seems to capture what you are doing.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453249</commentid>
    <comment_count>4</comment_count>
      <attachid>104382</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-18 12:31:58 -0700</bug_when>
    <thetext>Created attachment 104382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453257</commentid>
    <comment_count>5</comment_count>
      <attachid>104287</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2011-08-18 12:35:03 -0700</bug_when>
    <thetext>Comment on attachment 104287
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebMediaPlayer.h:158
&gt;&gt; +    virtual WebAudioSourceProvider* webAudioSourceProvider() { return 0; }
&gt; 
&gt; nit: we drop the &quot;web&quot; prefix on methods like this.  see for example WebFrame::dataSource().  that returns a WebDataSource.

FIXED

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp:626
&gt;&gt; +void WebMediaPlayerClientImpl::AudioSourceProviderImpl::provideInput(WebCore::AudioBus* bus, size_t framesToProcess)
&gt; 
&gt; it seems like this function should be listed after we are done defining
&gt; all of the WebMediaPlayerClientImpl functions, and methods in the .cpp
&gt; file should appear in the same order as they are declared in the .h file.

I&apos;ve moved WebMediaPlayerClientImpl::AudioSourceProviderImpl::provideInput() to the end of the .cpp (after all the WebMediaPlayerClientImpl methods).

Also, I&apos;ve put the audioSourceProvider() immediately following videoDecodedByteCount() following the order from MediaPlayerPrivateInterface

&gt;&gt; Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h:173
&gt;&gt; +        void set(WebAudioSourceProvider* provider) { m_webAudioSourceProvider = provider; }
&gt; 
&gt; nit: set -&gt; initialize?  (it seems like &quot;set&quot; is a bit too vague, and setProvider would be funny too since your implementing a provider.  initialize seems to capture what you are doing.)

Seems reasonable - FIXED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453463</commentid>
    <comment_count>6</comment_count>
      <attachid>104382</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 16:05:33 -0700</bug_when>
    <thetext>Comment on attachment 104382
Patch

Clearing flags on attachment: 104382

Committed r93367: &lt;http://trac.webkit.org/changeset/93367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453464</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 16:05:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104287</attachid>
            <date>2011-08-17 18:07:25 -0700</date>
            <delta_ts>2011-08-18 12:35:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66441-20110817180724.patch</filename>
            <type>text/plain</type>
            <size>7613</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMxMzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MTEwYjhlY2ZjYzQwYjViNWE2OGNhMWQyM2YzZDQzMjYzYTEwOGNjYS4uYTFkNTNmMWI1YzZkMDRk
YTBiZGE2ZWFmMmNlMjgyN2EzOTU1YjJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMS0wOC0xNyAgQ2hyaXMgUm9nZXJzICA8Y3JvZ2Vyc0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmF1ZGlv
U291cmNlUHJvdmlkZXIoKSBhbmQgaW50ZXJmYWNlIGludG8gY2hyb21pdW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXVkaW9Tb3VyY2VQcm92
aWRlcjo6fldlYkF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHB1YmxpYy9XZWJNZWRp
YVBsYXllci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllcjo6d2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlcik6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9Tb3VyY2VQ
cm92aWRlckltcGw6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxh
eWVyQ2xpZW50SW1wbDo6YXVkaW9Tb3VyY2VQcm92aWRlcik6CisgICAgICAgICogc3JjL1dlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OkF1ZGlvU291cmNlUHJvdmlkZXJJbXBsOjpBdWRpb1NvdXJjZVByb3ZpZGVySW1w
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9Tb3Vy
Y2VQcm92aWRlckltcGw6On5BdWRpb1NvdXJjZVByb3ZpZGVySW1wbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9Tb3VyY2VQcm92aWRlckltcGw6OnNl
dCk6CisKIDIwMTEtMDgtMTYgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Qgc2hvdWxkIGFsbG93IGl0cyBob3N0V2lu
ZG93IHRvIGJlIE5VTEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDkyNTg5YzFmOTZlYTQwYWU5
NGQ0ODkwM2E2N2EzNmMwMTc1ZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC0wLDAgKzEsNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJfaAorI2RlZmluZSBX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyX2gKKworI2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworLy8gQWJzdHJhY3QgaW50ZXJmYWNlIGZvciBhIHB1bGwtbW9kZWwg
Y2xpZW50LgorY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlciB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB2b2lkIHByb3ZpZGVJbnB1dChjb25zdCBXZWJWZWN0b3I8ZmxvYXQqPiYgYXVkaW9EYXRh
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIH5XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyKCkgeyB9Cit9OworCit9IC8vIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQXVkaW9T
b3VyY2VQcm92aWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYVBsYXllci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVk
aWFQbGF5ZXIuaAppbmRleCA4NzZkZDRiNjU1NjcwMzc3YzRkZDVjNWRmYWZlMWNmZGVlNTQwYTBh
Li4xYjAwN2YzNTgzMzk2MmYwMDYwZTU2ZGQ2OTJkOWFlNWRjNWZkMGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTM3LDYgKzM3LDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7
CiBjbGFzcyBXZWJNZWRpYVBsYXllckNsaWVudDsKIGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJS
ZWN0OwpAQCAtMTUzLDYgKzE1NCw4IEBAIHB1YmxpYzoKICAgICAvLyBJdCBzaG91bGQgYWx3YXlz
IGJlIGNhbGxlZCBhZnRlciBnZXRDdXJyZW50RnJhbWUoKS4gRnJhbWUgcGFzc2VkIHRvIHRoaXMK
ICAgICAvLyBtZXRob2Qgc2hvdWxkIG5vIGxvbmdlciBiZSByZWZlcmVuY2VkIGFmdGVyIHRoZSBj
YWxsIGlzIG1hZGUuCiAgICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0Zy
YW1lKikgeyB9CisKKyAgICB2aXJ0dWFsIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIHdlYkF1ZGlv
U291cmNlUHJvdmlkZXIoKSB7IHJldHVybiAwOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVy
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXll
ckNsaWVudEltcGwuY3BwCmluZGV4IDVhYzg2YWE4NGIwMjUxN2IwYmU0YjYzMzRiNzIxOGQwYTUw
MDRjMzcuLmZmN2U3YzNlYzM3YzFmM2Q0MjA2ODgxYTY1OTZmNjRmZDE5ZDkyZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJ
bXBsLmNwcApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiVmlkZW9GcmFtZUNocm9taXVt
LmgiCiAjaW5jbHVkZSAiVmlkZW9GcmFtZUNocm9taXVtSW1wbC5oIgorI2luY2x1ZGUgIldlYkF1
ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJDYW52YXMuaCIKICNpbmNsdWRlICJX
ZWJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQuaCIKQEAgLTYyMCw2ICs2MjEs
MzkgQEAgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpXZWJNZWRpYVBsYXllckNsaWVudEltcGwo
KQogewogfQogCisvLyBBdWRpb1NvdXJjZVByb3ZpZGVyIEltcGxlbWVudGF0aW9uLgorCit2b2lk
IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9Tb3VyY2VQcm92aWRlckltcGw6OnByb3Zp
ZGVJbnB1dChXZWJDb3JlOjpBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQor
eworICAgIEFTU0VSVChidXMpOworICAgIGlmICghYnVzKQorICAgICAgICByZXR1cm47CisKKyAg
ICBBU1NFUlQobV93ZWJBdWRpb1NvdXJjZVByb3ZpZGVyKTsKKyAgICBpZiAoIW1fd2ViQXVkaW9T
b3VyY2VQcm92aWRlcikgeworICAgICAgICBidXMtPnplcm8oKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIC8vIFdyYXAgdGhlIEF1ZGlvQnVzIGNoYW5uZWwgZGF0YSB1c2luZyBXZWJW
ZWN0b3IuCisgICAgc2l6ZV90IG4gPSBidXMtPm51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICBXZWJW
ZWN0b3I8ZmxvYXQqPiB3ZWJBdWRpb0RhdGEobik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBuOyArK2kpCisgICAgICAgIHdlYkF1ZGlvRGF0YVtpXSA9IGJ1cy0+Y2hhbm5lbChpKS0+ZGF0
YSgpOworCisgICAgbV93ZWJBdWRpb1NvdXJjZVByb3ZpZGVyLT5wcm92aWRlSW5wdXQod2ViQXVk
aW9EYXRhLCBmcmFtZXNUb1Byb2Nlc3MpOworfQorCitXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3Zp
ZGVyKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQorewor
ICAgIGlmIChtX3dlYk1lZGlhUGxheWVyLmdldCgpKSB7CisgICAgICAgIC8vIFdyYXAgdGhlIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXIgaW4gdGhlIGZvcm0gb2YgV2ViQ29yZTo6QXVkaW9Tb3VyY2VQ
cm92aWRlci4KKyAgICAgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyLnNldChtX3dlYk1lZGlhUGxh
eWVyLT53ZWJBdWRpb1NvdXJjZVByb3ZpZGVyKCkpOworICAgICAgICByZXR1cm4gJm1fYXVkaW9T
b3VyY2VQcm92aWRlcjsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggNThlOTkx
OGIyNGM4MTc1ZmI5NWYxNzI0NDQ2M2ZmNDc4NjJkYWNiOC4uMTk5ZjMyNjNhY2NiZmVhYjZmNmI3
NGVjZmUyYjJlYWFmZTQyODFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lm
IEVOQUJMRShWSURFTykKIAorI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJNZWRpYVBsYXllclByaXZhdGUuaCIKICNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0u
aCIKICNpbmNsdWRlICJWaWRlb0ZyYW1lUHJvdmlkZXIuaCIKQEAgLTQyLDYgKzQzLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFz
cyBXZWJNZWRpYUVsZW1lbnQ7CiBjbGFzcyBXZWJNZWRpYVBsYXllcjsKIApAQCAtMTMwLDYgKzEz
Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHV0Q3VycmVudEZyYW1lKFdlYkNvcmU6
OlZpZGVvRnJhbWVDaHJvbWl1bSopOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkF1
ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKTsKKwogcHJpdmF0ZToKICAg
ICBXZWJNZWRpYVBsYXllckNsaWVudEltcGwoKTsKICAgICB2b2lkIHN0YXJ0RGVsYXllZExvYWQo
KTsKQEAgLTE1Myw2ICsxNTcsMjYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcG9ydHNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiAgICAgc3RhdGljIGJvb2wgbV9pc0VuYWJsZWQ7
CisKKyAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyIGltcGxlbWVudGF0aW9uIHdyYXBzIGEgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlci4KKworICAgIGNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXJJbXBs
IDogcHVibGljIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXIgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgQXVkaW9Tb3VyY2VQcm92aWRlckltcGwoKQorICAgICAgICAgICAgOiBtX3dlYkF1ZGlv
U291cmNlUHJvdmlkZXIoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgdmlydHVh
bCB+QXVkaW9Tb3VyY2VQcm92aWRlckltcGwoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQg
cHJvdmlkZUlucHV0KFdlYkNvcmU6OkF1ZGlvQnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7
CisgICAgICAgIHZvaWQgc2V0KFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyKSB7IG1f
d2ViQXVkaW9Tb3VyY2VQcm92aWRlciA9IHByb3ZpZGVyOyB9CisKKyAgICBwcml2YXRlOgorICAg
ICAgICBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyKiBtX3dlYkF1ZGlvU291cmNlUHJvdmlkZXI7Cisg
ICAgfTsKKworICAgIEF1ZGlvU291cmNlUHJvdmlkZXJJbXBsIG1fYXVkaW9Tb3VyY2VQcm92aWRl
cjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104382</attachid>
            <date>2011-08-18 12:31:58 -0700</date>
            <delta_ts>2011-08-18 16:05:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66441-20110818123154.patch</filename>
            <type>text/plain</type>
            <size>7864</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Mzg1OWM3NjhkN2QxNTc2YTc1MzE1YTA4ZjU4OGNiOTliMDllNjVhYy4uZWQ4YzNiNmQxM2JiNjIy
MWM4N2MyMzc1YjczNjEwYWQwYWQwYjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMS0wOC0xOCAgQ2hyaXMgUm9nZXJzICA8Y3JvZ2Vyc0Bnb29nbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmF1ZGlv
U291cmNlUHJvdmlkZXIoKSBhbmQgaW50ZXJmYWNlIGludG8gY2hyb21pdW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXVkaW9Tb3VyY2VQcm92
aWRlcjo6fldlYkF1ZGlvU291cmNlUHJvdmlkZXIpOgorICAgICAgICAqIHB1YmxpYy9XZWJNZWRp
YVBsYXllci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllcjo6YXVkaW9Tb3VyY2VQ
cm92aWRlcik6CisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YXVkaW9Tb3VyY2VQcm92
aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9T
b3VyY2VQcm92aWRlckltcGw6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgICogc3JjL1dlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVu
dEltcGw6OkF1ZGlvU291cmNlUHJvdmlkZXJJbXBsOjpBdWRpb1NvdXJjZVByb3ZpZGVySW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9Tb3VyY2VQ
cm92aWRlckltcGw6On5BdWRpb1NvdXJjZVByb3ZpZGVySW1wbCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6QXVkaW9Tb3VyY2VQcm92aWRlckltcGw6OmluaXRp
YWxpemUpOgorCiAyMDExLTA4LTE4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2ZXJ0IHI5MzI5NCwgZG9lc24ndCBjb21waWxlIG9uIENocm9taXVtIE1hYy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NDkyNTg5YzFmOTZlYTQwYWU5NGQ0ODkwM2E2N2EzNmMw
MTc1ZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJfaAorI2RlZmluZSBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyX2gKKworI2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworLy8gQWJzdHJhY3QgaW50ZXJmYWNlIGZvciBhIHB1bGwtbW9kZWwgY2xpZW50LgorY2xhc3Mg
V2ViQXVkaW9Tb3VyY2VQcm92aWRlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHByb3Zp
ZGVJbnB1dChjb25zdCBXZWJWZWN0b3I8ZmxvYXQqPiYgYXVkaW9EYXRhLCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMpID0gMDsKKyAgICB2aXJ0dWFsIH5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyKCkgeyB9
Cit9OworCit9IC8vIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQXVkaW9Tb3VyY2VQcm92aWRlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXll
ci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFQbGF5ZXIuaAppbmRl
eCA4NzZkZDRiNjU1NjcwMzc3YzRkZDVjNWRmYWZlMWNmZGVlNTQwYTBhLi5lMzFkODA4YjA3NmFm
OWUyZTliNTY5OGQ5YWZmNTdlMjQyODRiYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJNZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYk1lZGlhUGxheWVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKK2NsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJNZWRp
YVBsYXllckNsaWVudDsKIGNsYXNzIFdlYlVSTDsKIHN0cnVjdCBXZWJSZWN0OwpAQCAtMTUzLDYg
KzE1NCw4IEBAIHB1YmxpYzoKICAgICAvLyBJdCBzaG91bGQgYWx3YXlzIGJlIGNhbGxlZCBhZnRl
ciBnZXRDdXJyZW50RnJhbWUoKS4gRnJhbWUgcGFzc2VkIHRvIHRoaXMKICAgICAvLyBtZXRob2Qg
c2hvdWxkIG5vIGxvbmdlciBiZSByZWZlcmVuY2VkIGFmdGVyIHRoZSBjYWxsIGlzIG1hZGUuCiAg
ICAgdmlydHVhbCB2b2lkIHB1dEN1cnJlbnRGcmFtZShXZWJWaWRlb0ZyYW1lKikgeyB9CisKKyAg
ICB2aXJ0dWFsIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7
IHJldHVybiAwOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCmlu
ZGV4IDVhYzg2YWE4NGIwMjUxN2IwYmU0YjYzMzRiNzIxOGQwYTUwMDRjMzcuLjNkMjllNzAxNGI5
YWEyMDNkNzRlOGQyMTViMGZmYzA1MzNmZDYwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcApAQCAtMjQsNiAr
MjQsNyBAQAogCiAjaW5jbHVkZSAiVmlkZW9GcmFtZUNocm9taXVtLmgiCiAjaW5jbHVkZSAiVmlk
ZW9GcmFtZUNocm9taXVtSW1wbC5oIgorI2luY2x1ZGUgIldlYkF1ZGlvU291cmNlUHJvdmlkZXIu
aCIKICNpbmNsdWRlICJXZWJDYW52YXMuaCIKICNpbmNsdWRlICJXZWJDU3RyaW5nLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWVDbGllbnQuaCIKQEAgLTUyMCw2ICs1MjEsMTYgQEAgdW5zaWduZWQgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjp2aWRlb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdAogICAg
IHJldHVybiAwOwogfQogCitXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyKiBXZWJNZWRpYVBs
YXllckNsaWVudEltcGw6OmF1ZGlvU291cmNlUHJvdmlkZXIoKQoreworICAgIGlmIChtX3dlYk1l
ZGlhUGxheWVyLmdldCgpKSB7CisgICAgICAgIC8vIFdyYXAgdGhlIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXIgaW4gdGhlIGZvcm0gb2YgV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlci4KKyAgICAg
ICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVyLmluaXRpYWxpemUobV93ZWJNZWRpYVBsYXllci0+YXVk
aW9Tb3VyY2VQcm92aWRlcigpKTsKKyAgICAgICAgcmV0dXJuICZtX2F1ZGlvU291cmNlUHJvdmlk
ZXI7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogYm9vbCBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OnN1cHBvcnRzQWNjZWxlcmF0
ZWRSZW5kZXJpbmcoKSBjb25zdAogewpAQCAtNjIwLDYgKzYzMSwyNyBAQCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbCgpCiB7CiB9CiAKK3ZvaWQgV2Vi
TWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpBdWRpb1NvdXJjZVByb3ZpZGVySW1wbDo6cHJvdmlkZUlu
cHV0KFdlYkNvcmU6OkF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCit7Cisg
ICAgQVNTRVJUKGJ1cyk7CisgICAgaWYgKCFidXMpCisgICAgICAgIHJldHVybjsKKworICAgIEFT
U0VSVChtX3dlYkF1ZGlvU291cmNlUHJvdmlkZXIpOworICAgIGlmICghbV93ZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyKSB7CisgICAgICAgIGJ1cy0+emVybygpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgLy8gV3JhcCB0aGUgQXVkaW9CdXMgY2hhbm5lbCBkYXRhIHVzaW5nIFdlYlZlY3Rv
ci4KKyAgICBzaXplX3QgbiA9IGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpOworICAgIFdlYlZlY3Rv
cjxmbG9hdCo+IHdlYkF1ZGlvRGF0YShuKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG47
ICsraSkKKyAgICAgICAgd2ViQXVkaW9EYXRhW2ldID0gYnVzLT5jaGFubmVsKGkpLT5kYXRhKCk7
CisKKyAgICBtX3dlYkF1ZGlvU291cmNlUHJvdmlkZXItPnByb3ZpZGVJbnB1dCh3ZWJBdWRpb0Rh
dGEsIGZyYW1lc1RvUHJvY2Vzcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmgKaW5kZXggNThlOTkxOGIyNGM4MTc1ZmI5NWYx
NzI0NDQ2M2ZmNDc4NjJkYWNiOC4uZjlmZjk4YmU2NTdlYjg2MzRmZjE3YTQxY2E0Mzg5YTBiNTQ3
OGY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykK
IAorI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
clByaXZhdGUuaCIKICNpbmNsdWRlICJWaWRlb0ZyYW1lQ2hyb21pdW0uaCIKICNpbmNsdWRlICJW
aWRlb0ZyYW1lUHJvdmlkZXIuaCIKQEAgLTQyLDYgKzQzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXI7CiBjbGFzcyBXZWJNZWRpYUVsZW1l
bnQ7CiBjbGFzcyBXZWJNZWRpYVBsYXllcjsKIApAQCAtMTIyLDYgKzEyNCw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHVuc2lnbmVkIGRyb3BwZWRGcmFtZUNvdW50KCkgY29uc3Q7CiAgICAgdmly
dHVhbCB1bnNpZ25lZCBhdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHVuc2lnbmVkIHZpZGVvRGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0OworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpOworCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Fj
Y2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Q7CiAKQEAgLTE1Myw2ICsxNTcsMjYgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fc3VwcG9ydHNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogI2VuZGlmCiAg
ICAgc3RhdGljIGJvb2wgbV9pc0VuYWJsZWQ7CisKKyAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVy
SW1wbCB3cmFwcyBhIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIuCisKKyAgICBjbGFzcyBBdWRpb1Nv
dXJjZVByb3ZpZGVySW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpBdWRpb1NvdXJjZVByb3ZpZGVyIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIEF1ZGlvU291cmNlUHJvdmlkZXJJbXBsKCkKKyAgICAgICAg
ICAgIDogbV93ZWJBdWRpb1NvdXJjZVByb3ZpZGVyKDApCisgICAgICAgIHsKKyAgICAgICAgfQor
CisgICAgICAgIHZpcnR1YWwgfkF1ZGlvU291cmNlUHJvdmlkZXJJbXBsKCkgeyB9CisKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHByb3ZpZGVJbnB1dChXZWJDb3JlOjpBdWRpb0J1cyosIHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpOworICAgICAgICB2b2lkIGluaXRpYWxpemUoV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlciogcHJvdmlkZXIpIHsgbV93ZWJBdWRpb1NvdXJjZVByb3ZpZGVyID0gcHJvdmlkZXI7
IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIqIG1fd2Vi
QXVkaW9Tb3VyY2VQcm92aWRlcjsKKyAgICB9OworCisgICAgQXVkaW9Tb3VyY2VQcm92aWRlcklt
cGwgbV9hdWRpb1NvdXJjZVByb3ZpZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>