<?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>109983</bug_id>
          
          <creation_ts>2013-02-15 16:28:27 -0800</creation_ts>
          <short_desc>Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing</short_desc>
          <delta_ts>2013-02-15 19:49:03 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Chris Rogers">crogers</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>834476</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-02-15 16:28:27 -0800</bug_when>
    <thetext>Enhance AudioBus copyFrom() and sumFrom() to be able to handle discrete and speakers up and down-mixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834488</commentid>
    <comment_count>1</comment_count>
      <attachid>188666</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-02-15 16:37:16 -0800</bug_when>
    <thetext>Created attachment 188666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834585</commentid>
    <comment_count>2</comment_count>
      <attachid>188666</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-15 18:39:27 -0800</bug_when>
    <thetext>Comment on attachment 188666
Patch

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

Code looks reasonable to me. One question.

&gt; Source/WebCore/platform/audio/AudioBus.cpp:373
&gt;              channel(i)-&gt;sumFrom(sourceBus.channel(i));

Is anything else supposed to happen here? For example, zeroing the remaining destination channels?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834604</commentid>
    <comment_count>3</comment_count>
      <attachid>188666</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2013-02-15 19:09:27 -0800</bug_when>
    <thetext>Comment on attachment 188666
Patch

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

&gt;&gt; Source/WebCore/platform/audio/AudioBus.cpp:373
&gt;&gt;              channel(i)-&gt;sumFrom(sourceBus.channel(i));
&gt; 
&gt; Is anything else supposed to happen here? For example, zeroing the remaining destination channels?

Since we&apos;re summing into the destination, we don&apos;t want to zero out the remaining channels.  You can consider that the &quot;missing&quot; channels are just silent channels which are being summed in.  But, since summing in silence is a NOP, there&apos;s nothing to do.  In the &quot;copy&quot; case, then we *do* want to zero out the channels, since copying silence is the same as calling zero()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834610</commentid>
    <comment_count>4</comment_count>
      <attachid>188666</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 19:49:00 -0800</bug_when>
    <thetext>Comment on attachment 188666
Patch

Clearing flags on attachment: 188666

Committed r143094: &lt;http://trac.webkit.org/changeset/143094&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834611</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 19:49:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188666</attachid>
            <date>2013-02-15 16:37:16 -0800</date>
            <delta_ts>2013-02-15 19:48:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109983-20130215163342.patch</filename>
            <type>text/plain</type>
            <size>11794</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJlMTMzNzg4NGI2ZTYy
NGYwY2FmZDNkOTI4YWQ5NzQ3ZWE1Mzc0MC4uOTgyMDUxODM0NzU2Y2M1ZmM3ZDc0MDNiYzI4ZDY3
OTJkZjNjNWMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE1ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgRW5oYW5jZSBBdWRpb0J1
cyBjb3B5RnJvbSgpIGFuZCBzdW1Gcm9tKCkgdG8gYmUgYWJsZSB0byBoYW5kbGUgZGlzY3JldGUg
YW5kIHNwZWFrZXJzIHVwIGFuZCBkb3duLW1peGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5OTgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdlYiBBdWRpbyBzcGVjIGhhcyBhIG1vcmUgZGV0
YWlsZWQgZXhwbGFuYXRpb24gZm9yIGhvdyBjaGFubmVscyBhcmUgdG8gYmUgdXAgYW5kIGRvd24t
bWl4ZWQ6CisgICAgICAgIGh0dHBzOi8vZHZjcy53My5vcmcvaGcvYXVkaW8vcmF3LWZpbGUvdGlw
L3dlYmF1ZGlvL3NwZWNpZmljYXRpb24uaHRtbCNVcE1peAorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyB0aGUgaW5pdGlhbCBzdXBwb3J0IGZvciBoYW5kbGluZyBDaGFubmVsSW50ZXJwcmV0YXRp
b24sIGFsdGhvdWdoIG5vCisgICAgICAgIG5ldyBKUyBBUEkgaXMgeWV0IGltcGxlbWVudGVkLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBubyBuZXcgQVBJcyBoYXZlIHlldCBiZWVuIGV4
cG9zZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0J1czo6Y29weUZyb20pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c3VtRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b0J1czo6c3BlYWtlcnNDb3B5RnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c3Bl
YWtlcnNTdW1Gcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpkaXNjcmV0ZUNvcHlG
cm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpkaXNjcmV0ZVN1bUZyb20pOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmg6CisgICAgICAgIChBdWRpb0J1cyk6CisK
IDIwMTMtMDItMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgY29uc3QgZnJvbSBhIGJ1bmNoIG9mIFN0b3JhZ2VBcmVhIG1lbWJlciBmdW5j
dGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAppbmRleCBi
YjdkYWQ3NGM3ZDRmMDY3NTNjYTZlMzBiNTA5MjQzMjU1MTMxNmU2Li40M2FjNDcwYzY2ZDc0Yzlm
MTk0M2Q5YTcyZDViY2ExMjJlYTI0ZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9CdXMuY3BwCkBAIC0yMTAsMTAgKzIxMCw3IEBAIHZvaWQgQXVkaW9CdXM6OnNjYWxl
KGZsb2F0IHNjYWxlKQogICAgICAgICBjaGFubmVsKGkpLT5zY2FsZShzY2FsZSk7CiB9CiAKLS8v
IEp1c3QgY29waWVzIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBvbmUu
Ci0vLyBUaGlzIGlzIGp1c3QgYSBzaW1wbGUgY29weSBpZiB0aGUgbnVtYmVyIG9mIGNoYW5uZWxz
IG1hdGNoLCBvdGhlcndpc2UgYSBtaXh1cCBvciBtaXhkb3duIGlzIGRvbmUuCi0vLyBGb3Igbm93
LCB3ZSBqdXN0IHN1cHBvcnQgbWl4dXAgZnJvbSBtb25vIC0+IHN0ZXJlbyBhbmQgbWl4ZG93biBm
cm9tIHN0ZXJlbyAtPiBtb25vLgotdm9pZCBBdWRpb0J1czo6Y29weUZyb20oY29uc3QgQXVkaW9C
dXMmIHNvdXJjZUJ1cykKK3ZvaWQgQXVkaW9CdXM6OmNvcHlGcm9tKGNvbnN0IEF1ZGlvQnVzJiBz
b3VyY2VCdXMsIENoYW5uZWxJbnRlcnByZXRhdGlvbiBjaGFubmVsSW50ZXJwcmV0YXRpb24pCiB7
CiAgICAgaWYgKCZzb3VyY2VCdXMgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMjI0LDcg
KzIyMSw1NCBAQCB2b2lkIEF1ZGlvQnVzOjpjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNl
QnVzKQogICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gbnVtYmVyT2ZTb3Vy
Y2VDaGFubmVscykgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZT
b3VyY2VDaGFubmVsczsgKytpKQogICAgICAgICAgICAgY2hhbm5lbChpKS0+Y29weUZyb20oc291
cmNlQnVzLmNoYW5uZWwoaSkpOwotICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNo
YW5uZWxzID09IDIgJiYgbnVtYmVyT2ZTb3VyY2VDaGFubmVscyA9PSAxKSB7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgc3dpdGNoIChjaGFubmVsSW50ZXJwcmV0YXRpb24pIHsKKyAgICAgICAgY2Fz
ZSBTcGVha2VyczoKKyAgICAgICAgICAgIHNwZWFrZXJzQ29weUZyb20oc291cmNlQnVzKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERpc2NyZXRlOgorICAgICAgICAgICAgZGlz
Y3JldGVDb3B5RnJvbShzb3VyY2VCdXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAg
IH0KK30KKwordm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVz
LCBDaGFubmVsSW50ZXJwcmV0YXRpb24gY2hhbm5lbEludGVycHJldGF0aW9uKQoreworICAgIGlm
ICgmc291cmNlQnVzID09IHRoaXMpCisgICAgICAgIHJldHVybjsKKworICAgIHVuc2lnbmVkIG51
bWJlck9mU291cmNlQ2hhbm5lbHMgPSBzb3VyY2VCdXMubnVtYmVyT2ZDaGFubmVscygpOworICAg
IHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHMo
KTsKKworICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gbnVtYmVyT2ZTb3Vy
Y2VDaGFubmVscykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZT
b3VyY2VDaGFubmVsczsgKytpKQorICAgICAgICAgICAgY2hhbm5lbChpKS0+c3VtRnJvbShzb3Vy
Y2VCdXMuY2hhbm5lbChpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3dpdGNoIChjaGFubmVs
SW50ZXJwcmV0YXRpb24pIHsKKyAgICAgICAgY2FzZSBTcGVha2VyczoKKyAgICAgICAgICAgIHNw
ZWFrZXJzU3VtRnJvbShzb3VyY2VCdXMpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgRGlzY3JldGU6CisgICAgICAgICAgICBkaXNjcmV0ZVN1bUZyb20oc291cmNlQnVzKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgQXVkaW9CdXM6OnNwZWFr
ZXJzQ29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKK3sKKyAgICAvLyBGSVhNRTog
SW1wbGVtZW50IGRvd24gbWl4aW5nIDUuMSB0byBzdGVyZW8uCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTkyCisKKyAgICB1bnNpZ25lZCBudW1iZXJP
ZlNvdXJjZUNoYW5uZWxzID0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICB1bnNp
Z25lZCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CisK
KyAgICBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzID09IDIgJiYgbnVtYmVyT2ZTb3Vy
Y2VDaGFubmVscyA9PSAxKSB7CiAgICAgICAgIC8vIEhhbmRsZSBtb25vIC0+IHN0ZXJlbyBjYXNl
IChmb3Igbm93IHNpbXBseSBjb3B5IG1vbm8gY2hhbm5lbCBpbnRvIGJvdGggbGVmdCBhbmQgcmln
aHQpCiAgICAgICAgIC8vIEZJWE1FOiBSZWFsbHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFsLXBv
d2VyIHNjYWxpbmcgZmFjdG9yIGhlcmUsIHNpbmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5pbmcg
Y2VudGVyLi4uCiAgICAgICAgIGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCA9IHNv
dXJjZUJ1cy5jaGFubmVsKDApOwpAQCAtMjUzLDM3ICsyOTcsMjIgQEAgdm9pZCBBdWRpb0J1czo6
Y29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKICAgICAgICAgLy8gSGFuZGxlIDUu
MSAtPiBtb25vIGNhc2UsIGNvcHkgY2VudGVyIGNoYW5uZWwgaW50byBtb25vLgogICAgICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGhhdmUgYSBiZXR0ZXIgYWxnb3JpdGhtIGZvciB0aGlzIGRvd24g
bWl4aW5nLgogICAgICAgICBjaGFubmVsKDApLT5jb3B5RnJvbShzb3VyY2VCdXMuY2hhbm5lbCgy
KSk7Ci0gICAgfSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPCBudW1iZXJP
ZlNvdXJjZUNoYW5uZWxzKSB7Ci0gICAgICAgIC8vIERlZmF1bHQgZG93biBtaXhpbmcgaGFuZGxp
bmcsIGp1c3QgbWF0Y2ggdGhlIHNvdXJjZSBjaGFubmVscyB3aXRoIHRoZSBmaXJzdCBhdmFpbGFi
bGUgZGVzdGluYXRpb24gY2hhbm5lbHMuIAotICAgICAgICAvLyA1LjEgLT4gc3RlcmVvIGNhc2Ug
Y292ZXJlZCBoZXJlLiAKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYXZlIGEgYmV0dGVy
IGFsZ29yaXRobSBmb3IgZG93biBtaXhpbmcgNS4xIHRvIHN0ZXJlby4KLSAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTkyCi0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHM7ICsraSkKLSAg
ICAgICAgICAgIGNoYW5uZWwoaSktPmNvcHlGcm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKLSAg
ICB9IGVsc2UgaWYgKG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA+IG51bWJlck9mU291cmNl
Q2hhbm5lbHMpIHsKLSAgICAgICAgLy8gRGVmYXVsdCB1cCBtaXhpbmcgaGFuZGxpbmcsIGp1c3Qg
bWF0Y2ggdGhlIGRlc3RpbmF0aW9uIGNoYW5uZWxzIHdpdGggdGhlIGZpcnN0IGF2YWlsYWJsZSBz
b3VyY2UgY2hhbm5lbHMuIAotICAgICAgICAvLyBTdGVyZW8gLT4gNS4xIGNhc2UgY292ZXJlZCBo
ZXJlLiAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mU291cmNlQ2hh
bm5lbHM7ICsraSkgCi0gICAgICAgICAgICBjaGFubmVsKGkpLT5jb3B5RnJvbShzb3VyY2VCdXMu
Y2hhbm5lbChpKSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IG51bWJlck9mU291cmNlQ2hh
bm5lbHM7IGkgPCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHM7ICsraSkKLSAgICAgICAgICAg
IGNoYW5uZWwoaSktPnplcm8oKTsKICAgICB9IGVsc2UgewotICAgICAgICAvLyBDYXNlIG5vdCBo
YW5kbGVkCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAvLyBGYWxsYmFj
ayBmb3IgdW5rbm93biBjb21iaW5hdGlvbnMuCisgICAgICAgIGRpc2NyZXRlQ29weUZyb20oc291
cmNlQnVzKTsKICAgICB9CiB9CiAKLXZvaWQgQXVkaW9CdXM6OnN1bUZyb20oY29uc3QgQXVkaW9C
dXMgJnNvdXJjZUJ1cykKK3ZvaWQgQXVkaW9CdXM6OnNwZWFrZXJzU3VtRnJvbShjb25zdCBBdWRp
b0J1cyYgc291cmNlQnVzKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZG93biBtaXhpbmcg
NS4xIHRvIHN0ZXJlby4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzkxOTIKKyAgICAKICAgICB1bnNpZ25lZCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzID0g
c291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3Rp
bmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CiAKLSAgICBpZiAobnVtYmVyT2ZE
ZXN0aW5hdGlvbkNoYW5uZWxzID09IG51bWJlck9mU291cmNlQ2hhbm5lbHMpIHsKLSAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHMoKTsgKytpKQotICAgICAg
ICAgICAgY2hhbm5lbChpKS0+c3VtRnJvbShzb3VyY2VCdXMuY2hhbm5lbChpKSk7Ci0gICAgfSBl
bHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMiAmJiBudW1iZXJPZlNvdXJj
ZUNoYW5uZWxzID09IDEpIHsKLSAgICAgICAgLy8gSGFuZGxlIG1vbm8gLT4gc3RlcmVvIGNhc2Ug
KGZvciBub3cgc2ltcGx5IHN1bSBtb25vIGNoYW5uZWwgaW50byBib3RoIGxlZnQgYW5kIHJpZ2h0
KQotICAgICAgICAvLyBGSVhNRTogUmVhbGx5IHdlIHNob3VsZCBhcHBseSBhbiBlcXVhbC1wb3dl
ciBzY2FsaW5nIGZhY3RvciBoZXJlLCBzaW5jZSB3ZSdyZSBlZmZlY3RpdmVseSBwYW5uaW5nIGNl
bnRlci4uLgorICAgIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPT0gMiAmJiBudW1i
ZXJPZlNvdXJjZUNoYW5uZWxzID09IDEpIHsKKyAgICAgICAgLy8gSGFuZGxlIG1vbm8gLT4gc3Rl
cmVvIGNhc2UgKHN1bW1pbmcgbW9ubyBjaGFubmVsIGludG8gYm90aCBsZWZ0IGFuZCByaWdodCku
CiAgICAgICAgIGNvbnN0IEF1ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCA9IHNvdXJjZUJ1cy5j
aGFubmVsKDApOwogICAgICAgICBjaGFubmVsKDApLT5zdW1Gcm9tKHNvdXJjZUNoYW5uZWwpOwog
ICAgICAgICBjaGFubmVsKDEpLT5zdW1Gcm9tKHNvdXJjZUNoYW5uZWwpOwpAQCAtMzA1LDIxICsz
MzQsNDMgQEAgdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVz
KQogICAgICAgICAvLyBIYW5kbGUgNS4xIC0+IG1vbm8gY2FzZSwgc3VtIGNlbnRlciBjaGFubmVs
IGludG8gbW9uby4KICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYXZlIGEgYmV0dGVyIGFs
Z29yaXRobSBmb3IgdGhpcyBkb3duIG1peGluZy4KICAgICAgICAgY2hhbm5lbCgwKS0+c3VtRnJv
bShzb3VyY2VCdXMuY2hhbm5lbCgyKSk7Ci0gICAgfSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0
aW9uQ2hhbm5lbHMgPCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzKSB7Ci0gICAgICAgIC8vIERlZmF1
bHQgZG93biBtaXhpbmcsIGp1c3Qgc3VtbWluZyB0aGUgZmlyc3QgYXZhaWxhYmxlIGRlc3RpbmF0
aW9uIGNoYW5uZWxzLiAKLSAgICAgICAgLy8gNS4xIC0+IHN0ZXJlbyBjYXNlIGNvdmVyZWQgaGVy
ZS4KLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBoYXZlIGEgYmV0dGVyIGFsZ29yaXRobSBm
b3IgZG93biBtaXhpbmcgNS4xIHRvIHN0ZXJlby4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MTkyCisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8g
RmFsbGJhY2sgZm9yIHVua25vd24gY29tYmluYXRpb25zLgorICAgICAgICBkaXNjcmV0ZVN1bUZy
b20oc291cmNlQnVzKTsKKyAgICB9Cit9CisKK3ZvaWQgQXVkaW9CdXM6OmRpc2NyZXRlQ29weUZy
b20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKK3sKKyAgICB1bnNpZ25lZCBudW1iZXJPZlNv
dXJjZUNoYW5uZWxzID0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKTsKKyAgICB1bnNpZ25l
ZCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzKCk7CisgICAg
CisgICAgaWYgKG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA8IG51bWJlck9mU291cmNlQ2hh
bm5lbHMpIHsKKyAgICAgICAgLy8gRG93bi1taXggYnkgY29weWluZyBjaGFubmVscyBhbmQgZHJv
cHBpbmcgdGhlIHJlbWFpbmluZy4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51
bWJlck9mRGVzdGluYXRpb25DaGFubmVsczsgKytpKQorICAgICAgICAgICAgY2hhbm5lbChpKS0+
Y29weUZyb20oc291cmNlQnVzLmNoYW5uZWwoaSkpOworICAgIH0gZWxzZSBpZiAobnVtYmVyT2ZE
ZXN0aW5hdGlvbkNoYW5uZWxzID4gbnVtYmVyT2ZTb3VyY2VDaGFubmVscykgeworICAgICAgICAv
LyBVcC1taXggYnkgY29weWluZyBhcyBtYW55IGNoYW5uZWxzIGFzIHdlIGhhdmUsIHRoZW4gemVy
b2luZyByZW1haW5pbmcgY2hhbm5lbHMuCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzOyArK2kpIAorICAgICAgICAgICAgY2hhbm5lbChpKS0+
Y29weUZyb20oc291cmNlQnVzLmNoYW5uZWwoaSkpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBudW1iZXJPZlNvdXJjZUNoYW5uZWxzOyBpIDwgbnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxz
OyArK2kpCisgICAgICAgICAgICBjaGFubmVsKGkpLT56ZXJvKCk7CisgICAgfQorfQorCit2b2lk
IEF1ZGlvQnVzOjpkaXNjcmV0ZVN1bUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cykKK3sK
KyAgICB1bnNpZ25lZCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzID0gc291cmNlQnVzLm51bWJlck9m
Q2hhbm5lbHMoKTsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPSBu
dW1iZXJPZkNoYW5uZWxzKCk7CisKKyAgICBpZiAobnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxz
IDwgbnVtYmVyT2ZTb3VyY2VDaGFubmVscykgeworICAgICAgICAvLyBEb3duLW1peCBieSBzdW1t
aW5nIGNoYW5uZWxzIGFuZCBkcm9wcGluZyB0aGUgcmVtYWluaW5nLgogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZEZXN0aW5hdGlvbkNoYW5uZWxzOyArK2kpIAogICAg
ICAgICAgICAgY2hhbm5lbChpKS0+c3VtRnJvbShzb3VyY2VCdXMuY2hhbm5lbChpKSk7CiAgICAg
fSBlbHNlIGlmIChudW1iZXJPZkRlc3RpbmF0aW9uQ2hhbm5lbHMgPiBudW1iZXJPZlNvdXJjZUNo
YW5uZWxzKSB7Ci0gICAgICAgIC8vIERlZmF1bHQgdXAgbWl4aW5nLCBqdXN0IHN1bW1pbmcgdGhl
IGZpcnN0IGF2YWlsYWJsZSBzb3VyY2UgY2hhbm5lbHMuIAotICAgICAgICAvLyBzdGVyZW8gLT4g
NS4xIGNhc2UgY292ZXJlZCBoZXJlLgorICAgICAgICAvLyBVcC1taXggYnkgc3VtbWluZyBhcyBt
YW55IGNoYW5uZWxzIGFzIHdlIGhhdmUuCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBudW1iZXJPZlNvdXJjZUNoYW5uZWxzOyArK2kpIAogICAgICAgICAgICAgY2hhbm5lbChpKS0+
c3VtRnJvbShzb3VyY2VCdXMuY2hhbm5lbChpKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8g
Q2FzZSBub3QgaGFuZGxlZAotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5oCmluZGV4IDVjMjQ1MTkz
NDNhYzEzY2NkYzgwMWJiMGU2MWZiYjRiOTQ4N2I2MTMuLjcyN2VjYTQ3NWM5MjU5N2Q0MGE2MGZl
NjQxZmQxZWVmYWQxMTBhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQnVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9C
dXMuaApAQCAtNTcsNiArNTcsMTEgQEAgcHVibGljOgogICAgICAgICAvLyBDYW4gZGVmaW5lIG5v
bi1zdGFuZGFyZCBsYXlvdXRzIGhlcmUKICAgICB9OwogCisgICAgZW51bSBDaGFubmVsSW50ZXJw
cmV0YXRpb24geworICAgICAgICBTcGVha2VycywKKyAgICAgICAgRGlzY3JldGUsCisgICAgfTsK
KwogICAgIC8vIGFsbG9jYXRlIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0byBpbml0aWFsbHkg
aGF2ZSB0aGUgQXVkaW9DaGFubmVscyBjcmVhdGVkIHdpdGggbWFuYWdlZCBzdG9yYWdlLgogICAg
IC8vIE5vcm1hbCB1c2FnZSBpcyB0byBwYXNzIHRydWUgaGVyZSwgaW4gd2hpY2ggY2FzZSB0aGUg
QXVkaW9DaGFubmVscyB3aWxsIG1lbW9yeS1tYW5hZ2UgdGhlaXIgb3duIHN0b3JhZ2UuCiAgICAg
Ly8gSWYgYWxsb2NhdGUgaXMgZmFsc2UgdGhlbiBzZXRDaGFubmVsTWVtb3J5KCkgaGFzIHRvIGJl
IGNhbGxlZCBsYXRlciBvbiBmb3IgZWFjaCBjaGFubmVsIGJlZm9yZSB0aGUgQXVkaW9CdXMgaXMg
dXNlYWJsZS4uLgpAQCAtMTE1LDEyICsxMjAsMTMgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXNl
dCgpIHsgbV9pc0ZpcnN0VGltZSA9IHRydWU7IH0gLy8gZm9yIGRlLXppcHBlcmluZwogCi0gICAg
Ly8gQXNzdW1pbmcgc291cmNlQnVzIGhhcyB0aGUgc2FtZSB0b3BvbG9neSwgY29waWVzIHNhbXBs
ZSBkYXRhIGZyb20gZWFjaCBjaGFubmVsIG9mIHNvdXJjZUJ1cyB0byBvdXIgY29ycmVzcG9uZGlu
ZyBjaGFubmVsLgotICAgIHZvaWQgY29weUZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cyk7
CisgICAgLy8gQ29waWVzIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNvdXJjZSBidXMgdG8gdGhpcyBv
bmUuCisgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1jaGFubmVsIGNvcHkgaWYgdGhl
IG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNlIGFuIHVwLW1peCBvciBkb3duLW1p
eCBpcyBkb25lLgorICAgIHZvaWQgY29weUZyb20oY29uc3QgQXVkaW9CdXMmIHNvdXJjZUJ1cywg
Q2hhbm5lbEludGVycHJldGF0aW9uID0gU3BlYWtlcnMpOwogCi0gICAgLy8gU3VtcyB0aGUgc291
cmNlQnVzIGludG8gb3VyIGJ1cyB3aXRoIHVuaXR5IGdhaW4uCi0gICAgLy8gT3VyIG93biBpbnRl
cm5hbCBnYWluIG1fYnVzR2FpbiBpcyBpZ25vcmVkLgotICAgIHZvaWQgc3VtRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzKTsKKyAgICAvLyBTdW1zIHRoZSBzYW1wbGVzIGZyb20gdGhlIHNv
dXJjZSBidXMgdG8gdGhpcyBvbmUuCisgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2ltcGxlIHBlci1j
aGFubmVsIHN1bW1pbmcgaWYgdGhlIG51bWJlciBvZiBjaGFubmVscyBtYXRjaCwgb3RoZXJ3aXNl
IGFuIHVwLW1peCBvciBkb3duLW1peCBpcyBkb25lLgorICAgIHZvaWQgc3VtRnJvbShjb25zdCBB
dWRpb0J1cyYgc291cmNlQnVzLCBDaGFubmVsSW50ZXJwcmV0YXRpb24gPSBTcGVha2Vycyk7CiAK
ICAgICAvLyBDb3B5IGVhY2ggY2hhbm5lbCBmcm9tIHNvdXJjZUJ1cyBpbnRvIG91ciBjb3JyZXNw
b25kaW5nIGNoYW5uZWwuCiAgICAgLy8gV2Ugc2NhbGUgYnkgdGFyZ2V0R2FpbiAoYW5kIG91ciBv
d24gaW50ZXJuYWwgZ2FpbiBtX2J1c0dhaW4pLCBwZXJmb3JtaW5nICJkZS16aXBwZXJpbmciIHRv
IHNtb290aGx5IGNoYW5nZSBmcm9tICpsYXN0TWl4R2FpbiB0byAodGFyZ2V0R2FpbiptX2J1c0dh
aW4pLgpAQCAtMTQyLDYgKzE0OCwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQXVkaW9C
dXMoKSB7IH07CiAKKyAgICB2b2lkIHNwZWFrZXJzQ29weUZyb20oY29uc3QgQXVkaW9CdXMmKTsK
KyAgICB2b2lkIGRpc2NyZXRlQ29weUZyb20oY29uc3QgQXVkaW9CdXMmKTsKKyAgICB2b2lkIHNw
ZWFrZXJzU3VtRnJvbShjb25zdCBBdWRpb0J1cyYpOworICAgIHZvaWQgZGlzY3JldGVTdW1Gcm9t
KGNvbnN0IEF1ZGlvQnVzJik7CisKICAgICBzaXplX3QgbV9sZW5ndGg7CiAgICAgVmVjdG9yPE93
blB0cjxBdWRpb0NoYW5uZWw+ID4gbV9jaGFubmVsczsKICAgICBpbnQgbV9sYXlvdXQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>