<?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>49673</bug_id>
          
          <creation_ts>2010-11-17 10:40:28 -0800</creation_ts>
          <short_desc>readPixels should generate INVALID_ENUM if only one of type/format mismatch UNSIGNED_BYTE/RGBA</short_desc>
          <delta_ts>2010-11-23 08:51:37 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>enne</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310372</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-17 10:40:28 -0800</bug_when>
    <thetext>If both of them mismatch, the error should be INVALID_OPERATION, but if only one of them mismatch, it should be INVALID_ENUM.

Currently it generates INVALID_OPERATION in both cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310479</commentid>
    <comment_count>1</comment_count>
      <attachid>74147</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-17 13:15:41 -0800</bug_when>
    <thetext>Created attachment 74147
patch

Test is copied from khronos, but one part is commented out as it causes TIMEOUT and it&apos;s not related to the bug anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310480</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-17 13:17:54 -0800</bug_when>
    <thetext>Attachment 74147 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/canvas/webgl/read-pixels-test.html&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/html/canvas/WebGLRenderingContext.cpp&apos;]&quot; exit_code: 1
WebCore/html/canvas/WebGLRenderingContext.cpp:2296:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310492</commentid>
    <comment_count>3</comment_count>
      <attachid>74149</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-17 13:34:03 -0800</bug_when>
    <thetext>Created attachment 74149
revised patch: fix the style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312530</commentid>
    <comment_count>4</comment_count>
      <attachid>74149</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-11-22 14:36:53 -0800</bug_when>
    <thetext>Comment on attachment 74149
revised patch: fix the style issue

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312874</commentid>
    <comment_count>5</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2010-11-23 08:51:37 -0800</bug_when>
    <thetext>Committed r72610: &lt;http://trac.webkit.org/changeset/72610&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74147</attachid>
            <date>2010-11-17 13:15:41 -0800</date>
            <delta_ts>2010-11-17 13:34:03 -0800</delta_ts>
            <desc>patch</desc>
            <filename>readpixels.patch</filename>
            <type>text/plain</type>
            <size>8469</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjIzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEtMTcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZWFkUGl4
ZWxzIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0VOVU0gaWYgb25seSBvbmUgb2YgdHlwZS9mb3Jt
YXQgbWlzbWF0Y2ggVU5TSUdORURfQllURS9SR0JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTY3MworCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFz
L3dlYmdsL3JlYWQtcGl4ZWxzLXRlc3QuaHRtbAorCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dDo6cmVhZFBpeGVscyk6CisKIDIwMTAtMTEtMTcgIENyaXMgTmVja2FyICA8Y2RuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24g
NzIxNTEpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyMzMsOSArMjIzMywxMiBAQCB2b2lkIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6cmVhZFBpeGVscyhsCiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJy
b3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIGlmIChmb3JtYXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgdHlwZSAh
PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSkgeworICAgIGlmIChmb3JtYXQgIT0g
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgdHlwZSAhPSBHcmFwaGljc0NvbnRleHQzRDo6VU5T
SUdORURfQllURSkgewogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTik7CiAgICAgICAgIHJldHVybjsKKyAgICB9
IGVsc2UgaWYgKGZvcm1hdCAhPSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCB0eXBlICE9IEdy
YXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKSB7CisgICAgICAgIG1fY29udGV4dC0+c3lu
dGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CisgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgLy8gVmFsaWRhdGUgYXJyYXkgdHlwZSBhZ2FpbnN0IHBpeGVs
IHR5cGUuCiAgICAgaWYgKCh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRF
ICYmICFwaXhlbHMtPmlzVW5zaWduZWRCeXRlQXJyYXkoKSkKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcy
MjMwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTAtMTEtMTcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZWFkUGl4ZWxzIHNob3Vs
ZCBnZW5lcmF0ZSBJTlZBTElEX0VOVU0gaWYgb25seSBvbmUgb2YgdHlwZS9mb3JtYXQgbWlzbWF0
Y2ggVU5TSUdORURfQllURS9SR0JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00OTY3MworCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1w
aXhlbHMtdGVzdC5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0xNyAgQ3JpcyBOZWNrYXIgIDxjZG5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9yZWFkLXBpeGVscy10ZXN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1waXhlbHMtdGVzdC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvcmVhZC1w
aXhlbHMtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5MiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAg
Imh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+Cis8aHRtbD4KKzxoZWFkPgor
PHRpdGxlPldlYkdMIFJlYWRQaXhlbHMgY29uZm9ybWFuY2UgdGVzdC48L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj4gPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPiA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGNhbnZhcyBpZD0iZXhhbXBsZSIgd2lkdGg9IjIwMCIgaGVpZ2h0
PSIyMDAiIHN0eWxlPSJ3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4Ij48L2NhbnZhcz4KKzxkaXYg
aWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJDaGVja3MgdGhhdCBSZWFkUGl4ZWxzIHdvcmtzIGFzIGV4cGVjdGVk
LiIpOworCit2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Cit2YXIgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImV4YW1wbGUiKTsKK3ZhciBnbCA9IGNyZWF0ZTNEQ29udGV4dChjYW52
YXMpOworCitpZiAod2luZG93LmluaXROb25LaHJvbm9zRnJhbWV3b3JrKSB7CisgICB3aW5kb3cu
aW5pdE5vbktocm9ub3NGcmFtZXdvcmsoZmFsc2UpOworfQorCit2YXIgd2lkdGggPSAyOwordmFy
IGhlaWdodCA9IDI7CisKK2dsLmNsZWFyQ29sb3IoMSwgMSwgMSwgMSk7CitnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUKTsKKworLy8gUmVzaXplIHRoZSBjYW52YXMgdG8gMngyLiBUaGlzIGlz
IGFuIGF0dGVtcHQgdG8gZ2V0IHN0dWZmIGluIHRoZSBiYWNrYnVmZmVyLgorLy8gdGhhdCBzaG91
bGRuJ3QgYmUgdGhlcmUuCitjYW52YXMud2lkdGggPSB3aWR0aDsKK2NhbnZhcy5oZWlnaHQgPSBo
ZWlnaHQ7CisKK2dsLmNsZWFyQ29sb3IoMC41LCAwLjcsIDEuMCwgMSk7CitnbC5jbGVhcihnbC5D
T0xPUl9CVUZGRVJfQklUKTsKKwordmFyIGlubmVyQ29sb3IgPSBbMC41LCAwLjcsIDEuMCwgMV07
Cit2YXIgb3V0ZXJDb2xvciA9IFswLCAwLCAwLCAwXTsKKwordmFyIHRlc3RzID0gWworICB7IG1z
ZzogJ2luIHJhbmdlJywgY2hlY2tDb2xvcjogaW5uZXJDb2xvciwgeDogIDAsIHk6ICAwLAorICAg
IG9uZUNvbG9yOiBpbm5lckNvbG9yLCBvbmVYOiAwLCBvbmVZOiAwfSwKKyAgeyBtc2c6ICdvZmYg
dG9wIGxlZnQnLCBjaGVja0NvbG9yOiBvdXRlckNvbG9yLCB4OiAtMSwgeTogLTEsCisgICAgb25l
Q29sb3I6IGlubmVyQ29sb3IsIG9uZVg6IDEsIG9uZVk6IDF9LAorICB7IG1zZzogJ29mZiBib3R0
b20gcmlnaHQnLCBjaGVja0NvbG9yOiBvdXRlckNvbG9yLCB4OiAgMSwgeTogIDEsCisgICAgb25l
Q29sb3I6IGlubmVyQ29sb3IsIG9uZVg6IDAsIG9uZVk6IDB9LAorICB7IG1zZzogJ2NvbXBsZXRl
bHkgb2ZmIHRvcCAnLCBjaGVja0NvbG9yOiBvdXRlckNvbG9yLCB4OiAgMCwgeTogLTIsCisgICAg
b25lQ29sb3I6IG91dGVyQ29sb3IsIG9uZVg6IDAsIG9uZVk6IDB9LAorICB7IG1zZzogJ2NvbXBs
ZXRlbHkgb2ZmIGJvdHRvbScsIGNoZWNrQ29sb3I6IG91dGVyQ29sb3IsIHg6ICAwLCB5OiAgMiwK
KyAgICBvbmVDb2xvcjogb3V0ZXJDb2xvciwgb25lWDogMCwgb25lWTogMH0sCisgIHsgbXNnOiAn
Y29tcGxldGVseSBvZmYgbGVmdCcsIGNoZWNrQ29sb3I6IG91dGVyQ29sb3IsIHg6IC0yLCB5OiAg
MCwKKyAgICBvbmVDb2xvcjogb3V0ZXJDb2xvciwgb25lWDogMCwgb25lWTogMH0sCisgIHsgbXNn
OiAnY29tcGxldGVsZXkgb2ZmIHJpZ2h0JywgY2hlY2tDb2xvcjogb3V0ZXJDb2xvciwgeDogIDIs
IHk6ICAwLAorICAgIG9uZUNvbG9yOiBvdXRlckNvbG9yLCBvbmVYOiAwLCBvbmVZOiAwfQorXTsK
KworZm9yICh2YXIgdHQgPSAwOyB0dCA8IHRlc3RzLmxlbmd0aDsgKyt0dCkgeworICB2YXIgdGVz
dCA9IHRlc3RzW3R0XTsKKyAgZGVidWcoIiIpOworICBkZWJ1ZygiY2hlY2tpbmc6ICIgKyB0ZXN0
Lm1zZyk7CisgIGNoZWNrQnVmZmVyKHRlc3QuY2hlY2tDb2xvciwgdGVzdC54LCB0ZXN0LnksCisg
ICAgICAgICAgICAgIHRlc3Qub25lQ29sb3IsIHRlc3Qub25lWCwgdGVzdC5vbmVZKTsKK30KKwor
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUiwgInRoZXJlIHNob3VsZCBiZSBubyBHTCBl
cnJvcnMiKTsKKworZnVuY3Rpb24gY2hlY2tCdWZmZXIoY2hlY2tDb2xvciwgeCwgeSwgb25lQ29s
b3IsIG9uZVgsIG9uZVkpIHsKKyAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVp
Z2h0ICogNCk7CisgIGdsLnJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgYnVmKTsKKyAgZm9yICh2YXIgeXkgPSAwOyB5eSA8IGhlaWdodDsg
Kyt5eSkgeworICAgIGZvciAodmFyIHh4ID0gMDsgeHggPCB3aWR0aDsgKyt4eCkgeworICAgICAg
dmFyIG9mZnNldCA9ICh5eSAqIHdpZHRoICsgeHgpICogNDsKKyAgICAgIHZhciBleHBlY3RlZENv
bG9ycyA9IChvbmVYID09IHh4ICYmIG9uZVkgPT0geXkpID8gb25lQ29sb3IgOiBjaGVja0NvbG9y
OworICAgICAgZm9yICh2YXIgY2MgPSAwOyBjYyA8IDQ7ICsrY2MpIHsKKyAgICAgICAgdmFyIGV4
cGVjdGVkQ29sb3IgPSBleHBlY3RlZENvbG9yc1tjY10gKiAyNTU7CisgICAgICAgIHZhciBjb2xv
ciA9IGJ1ZltvZmZzZXQgKyBjY107CisgICAgICAgIHZhciBkaWZmID0gTWF0aC5hYnMoZXhwZWN0
ZWRDb2xvciAtIGNvbG9yKTsKKyAgICAgICAgYXNzZXJ0TXNnKGRpZmYgPCAzLAorICAgICAgICAg
ICAgICAgICAgImNvbG9yIHBpeGVsIGF0ICIgKyB4eCArICIsICIgKyB5eSArICIgc2hvdWxkIGJl
IGFib3V0ICIgKyBleHBlY3RlZENvbG9yKTsKKyAgICAgIH0KKyAgICB9CisgIH0KK30KKwordmFy
IGJhZEZvcm1hdHMgPSBbCisgIHsKKyAgICBmb3JtYXQ6IGdsLlJHQiwKKyAgICB0eXBlOiBnbC5V
TlNJR05FRF9CWVRFLAorICAgIGRlc3Q6IG5ldyBVaW50OEFycmF5KDMpCisgIH0sCisgIHsKKyAg
ICBmb3JtYXQ6IGdsLlJHQiwKKyAgICB0eXBlOiBnbC5VTlNJR05FRF9TSE9SVF81XzZfNSwKKyAg
ICBkZXN0OiBuZXcgVWludDhBcnJheSgzKQorICB9LAorICB7CisgICAgZm9ybWF0OiBnbC5SR0JB
LAorICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzVfNV81XzEsCisgICAgZGVzdDogbmV3IFVp
bnQxNkFycmF5KDEpCisgIH0sCisgIHsKKyAgICBmb3JtYXQ6IGdsLlJHQkEsCisgICAgdHlwZTog
Z2wuVU5TSUdORURfU0hPUlRfNF80XzRfNCwKKyAgICBkZXN0OiBuZXcgVWludDE2QXJyYXkoMSkK
KyAgfSwKKyAgeworICAgIGZvcm1hdDogZ2wuQUxQSEEsCisgICAgdHlwZTogZ2wuVU5TSUdORURf
QllURSwKKyAgICBkZXN0OiBuZXcgVWludDhBcnJheSgxKQorICB9LAorICB7CisgICAgZm9ybWF0
OiBnbC5MVU1JTkFOQ0UsCisgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAgICBkZXN0OiBu
ZXcgVWludDhBcnJheSgxKSB9LAorICB7CisgICAgZm9ybWF0OiBnbC5MVU1JTkFOQ0VfQUxQSEEs
CisgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAgICBkZXN0OiBuZXcgVWludDhBcnJheSgy
KQorICB9CitdOworZGVidWcoIiIpOworZGVidWcoImNoZWNrIGRpc2FsbG93ZWQgZm9ybWF0cyIp
OworZm9yICh2YXIgdHQgPSAwOyB0dCA8IGJhZEZvcm1hdHMubGVuZ3RoOyArKyB0dCkgeworICB2
YXIgaW5mbyA9IGJhZEZvcm1hdHNbdHRdCisgIHZhciBmb3JtYXQgPSBpbmZvLmZvcm1hdDsKKyAg
dmFyIHR5cGUgPSBpbmZvLnR5cGU7CisgIHZhciBkZXN0ID0gaW5mby5kZXN0OworICBnbC5yZWFk
UGl4ZWxzKDAsIDAsIDEsIDEsIGZvcm1hdCwgdHlwZSwgZGVzdCk7CisgIC8vIG5vdGUgdGhhdCB0
aGUgR0wgZXJyb3IgaXMgSU5WQUxJRF9PUEVSQVRJT04gaWYgYm90aCBmb3JtYXQgYW5kIHR5cGUg
YXJlIGludmFsaWQsIGJ1dAorICAvLyBJTlZBTElEX0VOVU0gaWYgb25seSBvbmUgaXMuCisgIGds
RXJyb3JTaG91bGRCZSgKKyAgICAgIGdsLCAoZm9ybWF0ID09IGdsLlJHQkEgfHwgdHlwZSA9PSBn
bC5VTlNJR05FRF9CWVRFKSA/IGdsLklOVkFMSURfRU5VTSA6IGdsLklOVkFMSURfT1BFUkFUSU9O
LAorICAgICAgIlNob3VsZCBub3QgYmUgYWJsZSB0byByZWFkIGFzICIgKyB3dHUuZ2xFbnVtVG9T
dHJpbmcoZ2wsIGZvcm1hdCkgKworICAgICAgIiAvICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2ws
IHR5cGUpKTsKK30KKworLyoKK2RlYnVnKCIiKTsKK2RlYnVnKCJjaGVjayByZWFkaW5nIHdpdGgg
bG90cyBvZiBkcmF3aW5nIik7Cit3aWR0aCA9IDEwMjQ7CitoZWlnaHQgPSAxMDI0OworY2FudmFz
LndpZHRoID0gd2lkdGg7CitjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OworZ2wudmlld3BvcnQoMCwg
MCwgMTAyNCwgMTAyNCk7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7
Cit2YXIgbG9jID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICJ0ZXgiKTsKK2dsLmRp
c2FibGUoZ2wuQkxFTkQpOworZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKK3ZhciBjb2xvcnMg
PSBbWzI1NSwgMCwgMCwgMV0sIFswLCAyNTUsIDAsIDFdLCBbMCwgMCwgMjU1LCAxXV07Cit2YXIg
dGV4dHVyZXMgPSBbXTsKK3ZhciByZXN1bHRzID0gW107Citmb3IgKHZhciBpaSA9IDA7IGlpIDwg
Y29sb3JzLmxlbmd0aDsgKytpaSkgeworICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsg
aWkpOworICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOworICB3dHUuZmlsbFRleHR1cmUo
Z2wsIHRleCwgMSwgMSwgY29sb3JzW2lpXSk7CisgIHRleHR1cmVzLnB1c2godGV4KTsKK30KK2Zv
ciAodmFyIGlpID0gMDsgaWkgPCBjb2xvcnMubGVuZ3RoOyArK2lpKSB7CisgIGZvciAodmFyIGpq
ID0gMDsgamogPCAzMDAgKyBpaSArIDE7ICsramopIHsKKyAgICBnbC51bmlmb3JtMWkobG9jLCBq
aiAlIDMpOworICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVTLCAwLCA2KTsKKyAgfQorICB2
YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkoNCk7CisgIGdsLnJlYWRQaXhlbHMoNTEyLCA1MTIsIDEs
IDEsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1Zik7CisgIHJlc3VsdHMucHVzaChidWYp
OworICBmb3IgKHZhciBrayA9IDA7IGtrIDwgOTk7ICsra2spIHsKKyAgICBnbC51bmlmb3JtMWko
bG9jLCAoamogKyBraykgJSAzKTsKKyAgICBnbC5kcmF3QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwg
Nik7CisgIH0KK30KK3ZhciBhY3R1YWw7Cit2YXIgZXhwZWN0ZWQ7Citmb3IgKHZhciBpaSA9IDA7
IGlpIDwgY29sb3JzLmxlbmd0aDsgKytpaSkgeworICB2YXIgYnVmID0gcmVzdWx0c1tpaV07Cisg
IHZhciBjb2xvciA9IGNvbG9yc1tpaV07CisgIGFjdHVhbCA9IFtidWZbMF0sIGJ1ZlsxXSwgYnVm
WzJdLCBidWZbM11dOworICBleHBlY3RlZCA9IFtjb2xvclswXSwgY29sb3JbMV0sIGNvbG9yWzJd
LCBjb2xvclszXSAqIDI1NV07CisgIHNob3VsZEJlKCJhY3R1YWwiLCAiZXhwZWN0ZWQiKTsKK30K
K2dsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IsICJ0aGVyZSBzaG91bGQgYmUgbm8gR0wg
ZXJyb3JzIik7CisqLworCitkZWJ1ZygiIik7CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>
<flag name="commit-queue"
          id="64698"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74149</attachid>
            <date>2010-11-17 13:34:03 -0800</date>
            <delta_ts>2010-11-22 14:36:53 -0800</delta_ts>
            <desc>revised patch: fix the style issue</desc>
            <filename>readpixels.patch</filename>
            <type>text/plain</type>
            <size>8563</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjIzMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEtMTcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICByZWFkUGl4
ZWxzIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0VOVU0gaWYgb25seSBvbmUgb2YgdHlwZS9mb3Jt
YXQgbWlzbWF0Y2ggVU5TSUdORURfQllURS9SR0JBCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTY3MworCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFz
L3dlYmdsL3JlYWQtcGl4ZWxzLXRlc3QuaHRtbAorCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5n
Q29udGV4dDo6cmVhZFBpeGVscyk6CisKIDIwMTAtMTEtMTcgIENyaXMgTmVja2FyICA8Y2RuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24g
NzIxNTEpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyMzMsMTAgKzIyMzMsMTQgQEAgdm9pZCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnJlYWRQaXhlbHMobAogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVy
cm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX1ZBTFVFKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICBpZiAoZm9ybWF0ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBIHx8IHR5cGUg
IT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEUpIHsKKyAgICBpZiAoZm9ybWF0ICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBICYmIHR5cGUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX0JZVEUpIHsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFw
aGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04pOwogICAgICAgICByZXR1cm47CiAgICAg
fQorICAgIGlmIChmb3JtYXQgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgdHlwZSAhPSBH
cmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSkgeworICAgICAgICBtX2NvbnRleHQtPnN5
bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAgICAg
ICByZXR1cm47CisgICAgfQogICAgIC8vIFZhbGlkYXRlIGFycmF5IHR5cGUgYWdhaW5zdCBwaXhl
bCB0eXBlLgogICAgIGlmICgodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllU
RSAmJiAhcGl4ZWxzLT5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpCiAgICAgICAgIHx8ICh0eXBlICE9
IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmICFwaXhlbHMtPmlzVW5zaWduZWRT
aG9ydEFycmF5KCkpKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjIzMCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEwLTExLTE3ICBa
aGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgcmVhZFBpeGVscyBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9F
TlVNIGlmIG9ubHkgb25lIG9mIHR5cGUvZm9ybWF0IG1pc21hdGNoIFVOU0lHTkVEX0JZVEUvUkdC
QQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk2NzMK
KworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXRlc3QuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMTEtMTcgIENyaXMgTmVja2FyICA8Y2RuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvcmVhZC1waXhlbHMtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3JlYWQtcGl4ZWxzLXRlc3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxOTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzND
Ly9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iCisgICJodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5XZWJHTCBSZWFkUGl4
ZWxzIGNvbmZvcm1hbmNlIHRlc3QuPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+IDwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj4gPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxj
YW52YXMgaWQ9ImV4YW1wbGUiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBzdHlsZT0id2lkdGg6
IDIwcHg7IGhlaWdodDogMjBweCI+PC9jYW52YXM+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQ2hl
Y2tzIHRoYXQgUmVhZFBpeGVscyB3b3JrcyBhcyBleHBlY3RlZC4iKTsKKwordmFyIHd0dSA9IFdl
YkdMVGVzdFV0aWxzOwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFt
cGxlIik7Cit2YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoY2FudmFzKTsKKworaWYgKHdpbmRvdy5p
bml0Tm9uS2hyb25vc0ZyYW1ld29yaykgeworICAgd2luZG93LmluaXROb25LaHJvbm9zRnJhbWV3
b3JrKGZhbHNlKTsKK30KKwordmFyIHdpZHRoID0gMjsKK3ZhciBoZWlnaHQgPSAyOworCitnbC5j
bGVhckNvbG9yKDEsIDEsIDEsIDEpOworZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisK
Ky8vIFJlc2l6ZSB0aGUgY2FudmFzIHRvIDJ4Mi4gVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGdldCBz
dHVmZiBpbiB0aGUgYmFja2J1ZmZlci4KKy8vIHRoYXQgc2hvdWxkbid0IGJlIHRoZXJlLgorY2Fu
dmFzLndpZHRoID0gd2lkdGg7CitjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OworCitnbC5jbGVhckNv
bG9yKDAuNSwgMC43LCAxLjAsIDEpOworZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7CisK
K3ZhciBpbm5lckNvbG9yID0gWzAuNSwgMC43LCAxLjAsIDFdOwordmFyIG91dGVyQ29sb3IgPSBb
MCwgMCwgMCwgMF07CisKK3ZhciB0ZXN0cyA9IFsKKyAgeyBtc2c6ICdpbiByYW5nZScsIGNoZWNr
Q29sb3I6IGlubmVyQ29sb3IsIHg6ICAwLCB5OiAgMCwKKyAgICBvbmVDb2xvcjogaW5uZXJDb2xv
ciwgb25lWDogMCwgb25lWTogMH0sCisgIHsgbXNnOiAnb2ZmIHRvcCBsZWZ0JywgY2hlY2tDb2xv
cjogb3V0ZXJDb2xvciwgeDogLTEsIHk6IC0xLAorICAgIG9uZUNvbG9yOiBpbm5lckNvbG9yLCBv
bmVYOiAxLCBvbmVZOiAxfSwKKyAgeyBtc2c6ICdvZmYgYm90dG9tIHJpZ2h0JywgY2hlY2tDb2xv
cjogb3V0ZXJDb2xvciwgeDogIDEsIHk6ICAxLAorICAgIG9uZUNvbG9yOiBpbm5lckNvbG9yLCBv
bmVYOiAwLCBvbmVZOiAwfSwKKyAgeyBtc2c6ICdjb21wbGV0ZWx5IG9mZiB0b3AgJywgY2hlY2tD
b2xvcjogb3V0ZXJDb2xvciwgeDogIDAsIHk6IC0yLAorICAgIG9uZUNvbG9yOiBvdXRlckNvbG9y
LCBvbmVYOiAwLCBvbmVZOiAwfSwKKyAgeyBtc2c6ICdjb21wbGV0ZWx5IG9mZiBib3R0b20nLCBj
aGVja0NvbG9yOiBvdXRlckNvbG9yLCB4OiAgMCwgeTogIDIsCisgICAgb25lQ29sb3I6IG91dGVy
Q29sb3IsIG9uZVg6IDAsIG9uZVk6IDB9LAorICB7IG1zZzogJ2NvbXBsZXRlbHkgb2ZmIGxlZnQn
LCBjaGVja0NvbG9yOiBvdXRlckNvbG9yLCB4OiAtMiwgeTogIDAsCisgICAgb25lQ29sb3I6IG91
dGVyQ29sb3IsIG9uZVg6IDAsIG9uZVk6IDB9LAorICB7IG1zZzogJ2NvbXBsZXRlbGV5IG9mZiBy
aWdodCcsIGNoZWNrQ29sb3I6IG91dGVyQ29sb3IsIHg6ICAyLCB5OiAgMCwKKyAgICBvbmVDb2xv
cjogb3V0ZXJDb2xvciwgb25lWDogMCwgb25lWTogMH0KK107CisKK2ZvciAodmFyIHR0ID0gMDsg
dHQgPCB0ZXN0cy5sZW5ndGg7ICsrdHQpIHsKKyAgdmFyIHRlc3QgPSB0ZXN0c1t0dF07CisgIGRl
YnVnKCIiKTsKKyAgZGVidWcoImNoZWNraW5nOiAiICsgdGVzdC5tc2cpOworICBjaGVja0J1ZmZl
cih0ZXN0LmNoZWNrQ29sb3IsIHRlc3QueCwgdGVzdC55LAorICAgICAgICAgICAgICB0ZXN0Lm9u
ZUNvbG9yLCB0ZXN0Lm9uZVgsIHRlc3Qub25lWSk7Cit9CisKK2dsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IsICJ0aGVyZSBzaG91bGQgYmUgbm8gR0wgZXJyb3JzIik7CisKK2Z1bmN0aW9u
IGNoZWNrQnVmZmVyKGNoZWNrQ29sb3IsIHgsIHksIG9uZUNvbG9yLCBvbmVYLCBvbmVZKSB7Cisg
IHZhciBidWYgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpOworICBnbC5yZWFk
UGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIGJ1
Zik7CisgIGZvciAodmFyIHl5ID0gMDsgeXkgPCBoZWlnaHQ7ICsreXkpIHsKKyAgICBmb3IgKHZh
ciB4eCA9IDA7IHh4IDwgd2lkdGg7ICsreHgpIHsKKyAgICAgIHZhciBvZmZzZXQgPSAoeXkgKiB3
aWR0aCArIHh4KSAqIDQ7CisgICAgICB2YXIgZXhwZWN0ZWRDb2xvcnMgPSAob25lWCA9PSB4eCAm
JiBvbmVZID09IHl5KSA/IG9uZUNvbG9yIDogY2hlY2tDb2xvcjsKKyAgICAgIGZvciAodmFyIGNj
ID0gMDsgY2MgPCA0OyArK2NjKSB7CisgICAgICAgIHZhciBleHBlY3RlZENvbG9yID0gZXhwZWN0
ZWRDb2xvcnNbY2NdICogMjU1OworICAgICAgICB2YXIgY29sb3IgPSBidWZbb2Zmc2V0ICsgY2Nd
OworICAgICAgICB2YXIgZGlmZiA9IE1hdGguYWJzKGV4cGVjdGVkQ29sb3IgLSBjb2xvcik7Cisg
ICAgICAgIGFzc2VydE1zZyhkaWZmIDwgMywKKyAgICAgICAgICAgICAgICAgICJjb2xvciBwaXhl
bCBhdCAiICsgeHggKyAiLCAiICsgeXkgKyAiIHNob3VsZCBiZSBhYm91dCAiICsgZXhwZWN0ZWRD
b2xvcik7CisgICAgICB9CisgICAgfQorICB9Cit9CisKK3ZhciBiYWRGb3JtYXRzID0gWworICB7
CisgICAgZm9ybWF0OiBnbC5SR0IsCisgICAgdHlwZTogZ2wuVU5TSUdORURfQllURSwKKyAgICBk
ZXN0OiBuZXcgVWludDhBcnJheSgzKQorICB9LAorICB7CisgICAgZm9ybWF0OiBnbC5SR0IsCisg
ICAgdHlwZTogZ2wuVU5TSUdORURfU0hPUlRfNV82XzUsCisgICAgZGVzdDogbmV3IFVpbnQ4QXJy
YXkoMykKKyAgfSwKKyAgeworICAgIGZvcm1hdDogZ2wuUkdCQSwKKyAgICB0eXBlOiBnbC5VTlNJ
R05FRF9TSE9SVF81XzVfNV8xLAorICAgIGRlc3Q6IG5ldyBVaW50MTZBcnJheSgxKQorICB9LAor
ICB7CisgICAgZm9ybWF0OiBnbC5SR0JBLAorICAgIHR5cGU6IGdsLlVOU0lHTkVEX1NIT1JUXzRf
NF80XzQsCisgICAgZGVzdDogbmV3IFVpbnQxNkFycmF5KDEpCisgIH0sCisgIHsKKyAgICBmb3Jt
YXQ6IGdsLkFMUEhBLAorICAgIHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgZGVzdDogbmV3
IFVpbnQ4QXJyYXkoMSkKKyAgfSwKKyAgeworICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNFLAorICAg
IHR5cGU6IGdsLlVOU0lHTkVEX0JZVEUsCisgICAgZGVzdDogbmV3IFVpbnQ4QXJyYXkoMSkgfSwK
KyAgeworICAgIGZvcm1hdDogZ2wuTFVNSU5BTkNFX0FMUEhBLAorICAgIHR5cGU6IGdsLlVOU0lH
TkVEX0JZVEUsCisgICAgZGVzdDogbmV3IFVpbnQ4QXJyYXkoMikKKyAgfQorXTsKK2RlYnVnKCIi
KTsKK2RlYnVnKCJjaGVjayBkaXNhbGxvd2VkIGZvcm1hdHMiKTsKK2ZvciAodmFyIHR0ID0gMDsg
dHQgPCBiYWRGb3JtYXRzLmxlbmd0aDsgKysgdHQpIHsKKyAgdmFyIGluZm8gPSBiYWRGb3JtYXRz
W3R0XQorICB2YXIgZm9ybWF0ID0gaW5mby5mb3JtYXQ7CisgIHZhciB0eXBlID0gaW5mby50eXBl
OworICB2YXIgZGVzdCA9IGluZm8uZGVzdDsKKyAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBm
b3JtYXQsIHR5cGUsIGRlc3QpOworICAvLyBub3RlIHRoYXQgdGhlIEdMIGVycm9yIGlzIElOVkFM
SURfT1BFUkFUSU9OIGlmIGJvdGggZm9ybWF0IGFuZCB0eXBlIGFyZSBpbnZhbGlkLCBidXQKKyAg
Ly8gSU5WQUxJRF9FTlVNIGlmIG9ubHkgb25lIGlzLgorICBnbEVycm9yU2hvdWxkQmUoCisgICAg
ICBnbCwgKGZvcm1hdCA9PSBnbC5SR0JBIHx8IHR5cGUgPT0gZ2wuVU5TSUdORURfQllURSkgPyBn
bC5JTlZBTElEX0VOVU0gOiBnbC5JTlZBTElEX09QRVJBVElPTiwKKyAgICAgICJTaG91bGQgbm90
IGJlIGFibGUgdG8gcmVhZCBhcyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBmb3JtYXQpICsK
KyAgICAgICIgLyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0eXBlKSk7Cit9CisKKy8qCitk
ZWJ1ZygiIik7CitkZWJ1ZygiY2hlY2sgcmVhZGluZyB3aXRoIGxvdHMgb2YgZHJhd2luZyIpOwor
d2lkdGggPSAxMDI0OworaGVpZ2h0ID0gMTAyNDsKK2NhbnZhcy53aWR0aCA9IHdpZHRoOworY2Fu
dmFzLmhlaWdodCA9IGhlaWdodDsKK2dsLnZpZXdwb3J0KDAsIDAsIDEwMjQsIDEwMjQpOwordmFy
IHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwordmFyIGxvYyA9IGdsLmdldFVu
aWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAidGV4Iik7CitnbC5kaXNhYmxlKGdsLkJMRU5EKTsKK2ds
LmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Cit2YXIgY29sb3JzID0gW1syNTUsIDAsIDAsIDFdLCBb
MCwgMjU1LCAwLCAxXSwgWzAsIDAsIDI1NSwgMV1dOwordmFyIHRleHR1cmVzID0gW107Cit2YXIg
cmVzdWx0cyA9IFtdOworZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5sZW5ndGg7ICsraWkp
IHsKKyAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCArIGlpKTsKKyAgdmFyIHRleCA9IGds
LmNyZWF0ZVRleHR1cmUoKTsKKyAgd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDEsIDEsIGNvbG9y
c1tpaV0pOworICB0ZXh0dXJlcy5wdXNoKHRleCk7Cit9Citmb3IgKHZhciBpaSA9IDA7IGlpIDwg
Y29sb3JzLmxlbmd0aDsgKytpaSkgeworICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMzAwICsgaWkg
KyAxOyArK2pqKSB7CisgICAgZ2wudW5pZm9ybTFpKGxvYywgamogJSAzKTsKKyAgICBnbC5kcmF3
QXJyYXlzKGdsLlRSSUFOR0xFUywgMCwgNik7CisgIH0KKyAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFy
cmF5KDQpOworICBnbC5yZWFkUGl4ZWxzKDUxMiwgNTEyLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBidWYpOworICByZXN1bHRzLnB1c2goYnVmKTsKKyAgZm9yICh2YXIga2sgPSAw
OyBrayA8IDk5OyArK2trKSB7CisgICAgZ2wudW5pZm9ybTFpKGxvYywgKGpqICsga2spICUgMyk7
CisgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIDYpOworICB9Cit9Cit2YXIgYWN0
dWFsOwordmFyIGV4cGVjdGVkOworZm9yICh2YXIgaWkgPSAwOyBpaSA8IGNvbG9ycy5sZW5ndGg7
ICsraWkpIHsKKyAgdmFyIGJ1ZiA9IHJlc3VsdHNbaWldOworICB2YXIgY29sb3IgPSBjb2xvcnNb
aWldOworICBhY3R1YWwgPSBbYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdXTsKKyAgZXhw
ZWN0ZWQgPSBbY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgY29sb3JbM10gKiAyNTVdOwor
ICBzaG91bGRCZSgiYWN0dWFsIiwgImV4cGVjdGVkIik7Cit9CitnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SLCAidGhlcmUgc2hvdWxkIGJlIG5vIEdMIGVycm9ycyIpOworKi8KKworZGVi
dWcoIiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgorCg==
</data>
<flag name="review"
          id="64700"
          type_id="1"
          status="+"
          setter="kbr"
    />
    <flag name="commit-queue"
          id="64701"
          type_id="3"
          status="-"
          setter="zmo"
    />
          </attachment>
      

    </bug>

</bugzilla>