<?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>30018</bug_id>
          
          <creation_ts>2009-10-02 08:34:11 -0700</creation_ts>
          <short_desc>WebGL crashes with recent CanvasArray change</short_desc>
          <delta_ts>2009-12-15 14:43:02 -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>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>P1</priority>
          <bug_severity>Blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kbr</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>151848</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2009-10-02 08:34:11 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=29906 introduced a change to the CanvasArray base class which tests a PassRefPtr after its contents have been transferred to a RefPtr, causing the NULL check to always fail and the base pointer of the CanvasArray to always be NULL. This results in crashes on most if not all WebGL content. Patch is attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151849</commentid>
    <comment_count>1</comment_count>
      <attachid>40519</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2009-10-02 08:41:11 -0700</bug_when>
    <thetext>Created attachment 40519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151850</commentid>
    <comment_count>2</comment_count>
      <attachid>40520</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2009-10-02 08:43:26 -0700</bug_when>
    <thetext>Created attachment 40520
Replacement patch eliminating stray tab</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151853</commentid>
    <comment_count>3</comment_count>
      <attachid>40520</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-02 08:52:51 -0700</bug_when>
    <thetext>Comment on attachment 40520
Replacement patch eliminating stray tab

Can you add a testcase for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151867</commentid>
    <comment_count>4</comment_count>
      <attachid>40526</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2009-10-02 09:25:40 -0700</bug_when>
    <thetext>Created attachment 40526
Patch including test case

Added unit test. Verified that test crashes before fix and runs successfully after fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151875</commentid>
    <comment_count>5</comment_count>
      <attachid>40526</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-02 09:52:11 -0700</bug_when>
    <thetext>Comment on attachment 40526
Patch including test case


&gt; +&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
we don&apos;t use namespaces -- tests should basically be html5 doctype if you want strict mode.  But in this case you&apos;re also using the xml namespace which is also incorrect due to the file extension not being .xhtml, and not having an xml doctype :D

And you need expected output

Cheers,
  Oliver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151877</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-10-02 09:59:52 -0700</bug_when>
    <thetext>... and don&apos;t forget -- WebKit style in JS also. 4-space, func brace on new line, etc. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151889</commentid>
    <comment_count>7</comment_count>
      <attachid>40533</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-10-02 10:44:04 -0700</bug_when>
    <thetext>Created attachment 40533
Replacement patch with layouttest expected results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151891</commentid>
    <comment_count>8</comment_count>
      <attachid>40533</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-02 10:45:56 -0700</bug_when>
    <thetext>Comment on attachment 40533
Replacement patch with layouttest expected results

remove the superfluous namespace decl from &lt;html&gt; in the testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151893</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-10-02 10:50:07 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/fast/canvas/webgl/array-unit-tests-expected.txt
Adding         LayoutTests/fast/canvas/webgl/array-unit-tests.html
Sending        WebCore/ChangeLog
Sending        WebCore/html/canvas/CanvasArray.cpp
Transmitting file data .....
Committed revision 49027.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40519</attachid>
            <date>2009-10-02 08:41:11 -0700</date>
            <delta_ts>2009-10-02 08:43:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>canvas-array.patch</filename>
            <type>text/plain</type>
            <size>1187</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTAyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTAtMDIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YkdMIGNyYXNoZXMgd2l0aCByZWNlbnQgQ2FudmFzQXJyYXkgY2hhbmdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDAxOAorCQorICAgICAgICAqIGh0
bWwvY2FudmFzL0NhbnZhc0FycmF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc0FycmF5
OjpDYW52YXNBcnJheSk6CisJRml4IGJ1ZyB3aGVyZSBQYXNzUmVmUHRyIHdhcyB0ZXN0ZWQgYWZ0
ZXIgdHJhbnNmZXJyaW5nIHZhbHVlIHRvIFJlZlB0ci4KKwogMjAwOS0xMC0wMiAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3Vz
dGF2byBOb3JvbmhhLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJKHJldmlz
aW9uIDQ5MDIxKQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICA6
IG1fb2Zmc2V0KG9mZnNldCkKICAgICAgICAgLCBtX2J1ZmZlcihidWZmZXIpCiAgICAgewotICAg
ICAgICBtX2Jhc2VBZGRyZXNzID0gYnVmZmVyID8gKHN0YXRpY19jYXN0PGNoYXIqPihtX2J1ZmZl
ci0+ZGF0YSgpKSArIG1fb2Zmc2V0KSA6IDA7CisgICAgICAgIG1fYmFzZUFkZHJlc3MgPSBtX2J1
ZmZlciA/IChzdGF0aWNfY2FzdDxjaGFyKj4obV9idWZmZXItPmRhdGEoKSkgKyBtX29mZnNldCkg
OiAwOwogICAgIH0KIAogICAgIENhbnZhc0FycmF5Ojp+Q2FudmFzQXJyYXkoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40520</attachid>
            <date>2009-10-02 08:43:26 -0700</date>
            <delta_ts>2009-10-02 09:25:40 -0700</delta_ts>
            <desc>Replacement patch eliminating stray tab</desc>
            <filename>canvas-array.patch</filename>
            <type>text/plain</type>
            <size>1193</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTAyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTAtMDIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YkdMIGNyYXNoZXMgd2l0aCByZWNlbnQgQ2FudmFzQXJyYXkgY2hhbmdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDAxOAorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQXJyYXk6
OkNhbnZhc0FycmF5KToKKyAgICAgICAgRml4IGJ1ZyB3aGVyZSBQYXNzUmVmUHRyIHdhcyB0ZXN0
ZWQgYWZ0ZXIgdHJhbnNmZXJyaW5nIHZhbHVlIHRvIFJlZlB0ci4KKwogMjAwOS0xMC0wMiAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgR3VzdGF2byBOb3JvbmhhLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJh
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJ
KHJldmlzaW9uIDQ5MDIxKQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICA6IG1fb2Zmc2V0KG9mZnNldCkKICAgICAgICAgLCBtX2J1ZmZlcihidWZmZXIpCiAgICAg
ewotICAgICAgICBtX2Jhc2VBZGRyZXNzID0gYnVmZmVyID8gKHN0YXRpY19jYXN0PGNoYXIqPiht
X2J1ZmZlci0+ZGF0YSgpKSArIG1fb2Zmc2V0KSA6IDA7CisgICAgICAgIG1fYmFzZUFkZHJlc3Mg
PSBtX2J1ZmZlciA/IChzdGF0aWNfY2FzdDxjaGFyKj4obV9idWZmZXItPmRhdGEoKSkgKyBtX29m
ZnNldCkgOiAwOwogICAgIH0KIAogICAgIENhbnZhc0FycmF5Ojp+Q2FudmFzQXJyYXkoKQo=
</data>
<flag name="review"
          id="21757"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40526</attachid>
            <date>2009-10-02 09:25:40 -0700</date>
            <delta_ts>2009-10-02 10:44:04 -0700</delta_ts>
            <desc>Patch including test case</desc>
            <filename>canvas-array.patch</filename>
            <type>text/plain</type>
            <size>7706</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMDIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YkdMIGNyYXNoZXMgd2l0aCByZWNlbnQgQ2FudmFzQXJyYXkgY2hhbmdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDAxOAorCisgICAgICAgIFRlc3Q6
IGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQXJyYXk6
OkNhbnZhc0FycmF5KToKKyAgICAgICAgRml4IGJ1ZyB3aGVyZSBQYXNzUmVmUHRyIHdhcyB0ZXN0
ZWQgYWZ0ZXIgdHJhbnNmZXJyaW5nIHZhbHVlIHRvIFJlZlB0ci4KKwogMjAwOS0xMC0wMiAgTm9y
YmVydCBMZXNlciAgPG5vcmJlcnQubGVzZXJAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJh
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJ
KHJldmlzaW9uIDQ5MDA2KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICA6IG1fb2Zmc2V0KG9mZnNldCkKICAgICAgICAgLCBtX2J1ZmZlcihidWZmZXIpCiAgICAg
ewotICAgICAgICBtX2Jhc2VBZGRyZXNzID0gYnVmZmVyID8gKHN0YXRpY19jYXN0PGNoYXIqPiht
X2J1ZmZlci0+ZGF0YSgpKSArIG1fb2Zmc2V0KSA6IDA7CisgICAgICAgIG1fYmFzZUFkZHJlc3Mg
PSBtX2J1ZmZlciA/IChzdGF0aWNfY2FzdDxjaGFyKj4obV9idWZmZXItPmRhdGEoKSkgKyBtX29m
ZnNldCkgOiAwOwogICAgIH0KIAogICAgIENhbnZhc0FycmF5Ojp+Q2FudmFzQXJyYXkoKQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDkwMjQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0xMC0wMiAgS2VubmV0aCBSdXNzZWxsICA8a2Jy
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViR0wgY3Jhc2hlcyB3aXRoIHJlY2VudCBDYW52YXNBcnJheSBjaGFuZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDE4CisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLmh0bWw6IEFkZGVkLgorCiAy
MDA5LTEwLTAyICBCZW4gTXVyZG9jaCAgPGJlbm1AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSAgRGF2aWQgS2lsemVyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXktdW5pdC10ZXN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMjkgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlw
dD4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFdlYkdMRW5hYmxlZCIsICIxIik7CisK
K2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgbmV3IGFycmF5
LWxpa2Ugb2JqZWN0cyBpbiB0aGUgV2ViR0wgc3BlYyIpOworCit2YXIgY3VycmVudGx5UnVubmlu
ZyA9ICcnOwordmFyIGFsbFBhc3NlZCA9IHRydWU7CitmdW5jdGlvbiBydW5uaW5nKHN0cikgewor
ICBjdXJyZW50bHlSdW5uaW5nID0gc3RyOworfQorCitmdW5jdGlvbiBvdXRwdXQoc3RyKSB7Cisg
IGRlYnVnKHN0cik7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKSB7CisgIHRlc3RQYXNzZWQoY3VycmVu
dGx5UnVubmluZyk7Cit9CisKK2Z1bmN0aW9uIGZhaWwoc3RyKSB7CisgIHZhciBleGMgPSAnRkFJ
TEVEOiAnICsgY3VycmVudGx5UnVubmluZyArICc6ICcgKyBzdHI7CisgIHRlc3RGYWlsZWQoc3Ry
KTsKK30KKworZnVuY3Rpb24gYXNzZXJ0RXEocHJlZml4LCBleHBlY3RlZCwgdmFsKSB7CisgIGlm
IChleHBlY3RlZCAhPSB2YWwpIHsKKyAgICBmYWlsKHByZWZpeCArICc6IGV4cGVjdGVkICcgKyBl
eHBlY3RlZCArICcsIGdvdCAnICsgdmFsKTsKKyAgfQorfQorCitmdW5jdGlvbiBwcmludFN1bW1h
cnkoKSB7CisgIGlmIChhbGxQYXNzZWQpIHsKKyAgICBkZWJ1ZygiVGVzdCBwYXNzZWQuIik7Cisg
IH0gZWxzZSB7CisgICAgZGVidWcoIlRFU1QgRkFJTEVEIik7CisgIH0KK30KKworLy8KKy8vIFRl
c3RzIGZvciB1bnNpZ25lZCBhcnJheSB2YXJpYW50cworLy8KKworZnVuY3Rpb24gdGVzdFNldEFu
ZEdldDEwVG8xKHR5cGUsIG5hbWUpIHsKKyAgcnVubmluZygndGVzdCAnICsgbmFtZSArICcgU2V0
QW5kR2V0MTBUbzEnKTsKKyAgdHJ5IHsKKyAgICB2YXIgYXJyYXkgPSBuZXcgdHlwZSgxMCk7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICBhcnJheVtpXSA9IDEwIC0g
aTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICBhc3Nl
cnRFcSgnRWxlbWVudCAnICsgaSwgMTAgLSBpLCBhcnJheVtpXSk7CisgICAgfQorICAgIHBhc3Mo
KTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGZhaWwoZSk7CisgIH0KK30KKworZnVuY3Rpb24gdGVz
dENvbnN0cnVjdFdpdGhBcnJheU9mVW5zaWduZWRWYWx1ZXModHlwZSwgbmFtZSkgeworICBydW5u
aW5nKCd0ZXN0ICcgKyBuYW1lICsgJyBDb25zdHJ1Y3RXaXRoQXJyYXlPZlVuc2lnbmVkVmFsdWVz
Jyk7CisgIHRyeSB7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGUoWzEwLCA5LCA4LCA3LCA2LCA1
LCA0LCAzLCAyLCAxXSk7CisgICAgYXNzZXJ0RXEoJ0FycmF5IGxlbmd0aCcsIDEwLCBhcnJheS5s
ZW5ndGgpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgYXNzZXJ0
RXEoJ0VsZW1lbnQgJyArIGksIDEwIC0gaSwgYXJyYXlbaV0pOworICAgIH0KKyAgICBwYXNzKCk7
CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBmYWlsKGUpOworICB9Cit9CisKKy8vCisvLyBUZXN0cyBm
b3Igc2lnbmVkIGFycmF5IHZhcmlhbnRzCisvLworCitmdW5jdGlvbiB0ZXN0U2V0QW5kR2V0UG9z
MTBUb05lZzEwKHR5cGUsIG5hbWUpIHsKKyAgcnVubmluZygndGVzdCAnICsgbmFtZSArICcgU2V0
QW5kR2V0UG9zMTBUb05lZzEwJyk7CisgIHRyeSB7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGUo
MjEpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjE7IGkrKykgeworICAgICAgYXJyYXlbaV0g
PSAxMCAtIGk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjE7IGkrKykgeworICAg
ICAgYXNzZXJ0RXEoJ0VsZW1lbnQgJyArIGksIDEwIC0gaSwgYXJyYXlbaV0pOworICAgIH0KKyAg
ICBwYXNzKCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBmYWlsKGUpOworICB9Cit9CisKK2Z1bmN0
aW9uIHRlc3RDb25zdHJ1Y3RXaXRoQXJyYXlPZlNpZ25lZFZhbHVlcyh0eXBlLCBuYW1lKSB7Cisg
IHJ1bm5pbmcoJ3Rlc3QgJyArIG5hbWUgKyAnIENvbnN0cnVjdFdpdGhBcnJheU9mU2lnbmVkVmFs
dWVzJyk7CisgIHRyeSB7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGUoWzEwLCA5LCA4LCA3LCA2
LCA1LCA0LCAzLCAyLCAxLCAwLCAtMSwgLTIsIC0zLCAtNCwgLTUsIC02LCAtNywgLTgsIC05LCAt
MTBdKTsKKyAgICBhc3NlcnRFcSgnQXJyYXkgbGVuZ3RoJywgMjEsIGFycmF5Lmxlbmd0aCk7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMTsgaSsrKSB7CisgICAgICBhc3NlcnRFcSgnRWxlbWVu
dCAnICsgaSwgMTAgLSBpLCBhcnJheVtpXSk7CisgICAgfQorICAgIHBhc3MoKTsKKyAgfSBjYXRj
aCAoZSkgeworICAgIGZhaWwoZSk7CisgIH0KK30KKworLy8KKy8vIFRlc3QgY2FzZXMgZm9yIGJv
dGggc2lnbmVkIGFuZCB1bnNpZ25lZCB0eXBlcworLy8KKworZnVuY3Rpb24gdGVzdEJvdW5kYXJ5
Q29uZGl0aW9ucyh0eXBlLCBuYW1lLCBsb3dWYWx1ZSwgZXhwZWN0ZWRMb3dWYWx1ZSwgaGlnaFZh
bHVlLCBleHBlY3RlZEhpZ2hWYWx1ZSkgeworICBydW5uaW5nKCd0ZXN0ICcgKyBuYW1lICsgJyBC
b3VuZGFyeUNvbmRpdGlvbnMoJyArCisgICAgICAgICAgbG93VmFsdWUgKyAnLCAnICsgZXhwZWN0
ZWRMb3dWYWx1ZSArICcsICcgKworICAgICAgICAgIGhpZ2hWYWx1ZSArICcsICcgKyBleHBlY3Rl
ZEhpZ2hWYWx1ZSArICcpJyk7CisgIHRyeSB7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGUoMSk7
CisgICAgYXNzZXJ0RXEoJ0FycmF5IGxlbmd0aCcsIDEsIGFycmF5Lmxlbmd0aCk7CisgICAgYXJy
YXlbMF0gPSBsb3dWYWx1ZTsKKyAgICBhc3NlcnRFcSgnRWxlbWVudCAwJywgZXhwZWN0ZWRMb3dW
YWx1ZSwgYXJyYXlbMF0pOworICAgIGFycmF5WzBdID0gaGlnaFZhbHVlOworICAgIGFzc2VydEVx
KCdFbGVtZW50IDAnLCBleHBlY3RlZEhpZ2hWYWx1ZSwgYXJyYXlbMF0pOworICAgIHBhc3MoKTsK
KyAgfSBjYXRjaCAoZSkgeworICAgIGZhaWwoZSk7CisgIH0KK30KKworLy8KKy8vIFRlc3QgZHJp
dmVyCisvLworCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgYWxsUGFzc2VkID0gdHJ1ZTsKKwor
ICAvLyBUaGUgIm5hbWUiIGF0dHJpYnV0ZSBpcyBhIGNvbmNlc3Npb24gdG8gYnJvd3NlcnMgd2hp
Y2ggZG9uJ3QKKyAgLy8gaW1wbGVtZW50IHRoZSAibmFtZSIgcHJvcGVydHkgb24gZnVuY3Rpb24g
b2JqZWN0cworICB2YXIgdGVzdENhc2VzID0KKyAgICBbIHtuYW1lOiAiQ2FudmFzQnl0ZUFycmF5
IiwKKyAgICAgICB1bnNpZ25lZDogZmFsc2UsCisgICAgICAgbG93OiAtMTI4LAorICAgICAgIGV4
cGVjdGVkTG93OiAtMTI4LAorICAgICAgIGhpZ2g6IDEyNywKKyAgICAgICBleHBlY3RlZEhpZ2g6
IDEyN30sCisgICAgICB7bmFtZTogIkNhbnZhc0Zsb2F0QXJyYXkiLAorICAgICAgIHVuc2lnbmVk
OiBmYWxzZSwKKyAgICAgICBsb3c6IC01MDAsCisgICAgICAgZXhwZWN0ZWRMb3c6IC01MDAsCisg
ICAgICAgaGlnaDogNTAwLAorICAgICAgIGV4cGVjdGVkSGlnaDogNTAwfSwKKyAgICAgIHtuYW1l
OiAiQ2FudmFzSW50QXJyYXkiLAorICAgICAgIHVuc2lnbmVkOiBmYWxzZSwKKyAgICAgICBsb3c6
IC0yMTQ3NDgzNjQ4LAorICAgICAgIGV4cGVjdGVkTG93OiAtMjE0NzQ4MzY0OCwKKyAgICAgICBo
aWdoOiAyMTQ3NDgzNjQ3LAorICAgICAgIGV4cGVjdGVkSGlnaDogMjE0NzQ4MzY0N30sCisgICAg
ICB7bmFtZTogIkNhbnZhc1Nob3J0QXJyYXkiLAorICAgICAgIHVuc2lnbmVkOiBmYWxzZSwKKyAg
ICAgICBsb3c6IC0zMjc2OCwKKyAgICAgICBleHBlY3RlZExvdzogLTMyNzY4LAorICAgICAgIGhp
Z2g6IDMyNzY3LAorICAgICAgIGV4cGVjdGVkSGlnaDogMzI3Njd9LAorICAgICAge25hbWU6ICJD
YW52YXNVbnNpZ25lZEJ5dGVBcnJheSIsCisgICAgICAgdW5zaWduZWQ6IHRydWUsCisgICAgICAg
bG93OiAwLAorICAgICAgIGV4cGVjdGVkTG93OiAwLAorICAgICAgIGhpZ2g6IDI1NSwKKyAgICAg
ICBleHBlY3RlZEhpZ2g6IDI1NX0sCisgICAgICB7bmFtZTogIkNhbnZhc1Vuc2lnbmVkSW50QXJy
YXkiLAorICAgICAgIHVuc2lnbmVkOiB0cnVlLAorICAgICAgIGxvdzogMCwKKyAgICAgICBleHBl
Y3RlZExvdzogMCwKKyAgICAgICBoaWdoOiA0Mjk0OTY3Mjk1LAorICAgICAgIGV4cGVjdGVkSGln
aDogNDI5NDk2NzI5NX0sCisgICAgICB7bmFtZTogIkNhbnZhc1Vuc2lnbmVkU2hvcnRBcnJheSIs
CisgICAgICAgdW5zaWduZWQ6IHRydWUsCisgICAgICAgbG93OiAwLAorICAgICAgIGV4cGVjdGVk
TG93OiAwLAorICAgICAgIGhpZ2g6IDY1NTM1LAorICAgICAgIGV4cGVjdGVkSGlnaDogNjU1MzV9
IF07CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICB2YXIgdGVzdENhc2UgPSB0ZXN0Q2FzZXNbaV07CisgICAgcnVubmluZyh0ZXN0Q2FzZS5uYW1l
KTsKKyAgICBpZiAoISh0ZXN0Q2FzZS5uYW1lIGluIHdpbmRvdykpIHsKKyAgICAgICAgZmFpbCgi
ZG9lcyBub3QgZXhpc3QiKTsKKyAgICAgICAgY29udGludWU7CisgICAgfQorICAgIHZhciB0eXBl
ID0gd2luZG93W3Rlc3RDYXNlLm5hbWVdOworICAgIHZhciBuYW1lID0gdGVzdENhc2UubmFtZTsK
KyAgICBpZiAodGVzdENhc2UudW5zaWduZWQpIHsKKyAgICAgIHRlc3RTZXRBbmRHZXQxMFRvMSh0
eXBlLCBuYW1lKTsKKyAgICAgIHRlc3RDb25zdHJ1Y3RXaXRoQXJyYXlPZlVuc2lnbmVkVmFsdWVz
KHR5cGUsIG5hbWUpOworICAgIH0gZWxzZSB7CisgICAgICB0ZXN0U2V0QW5kR2V0UG9zMTBUb05l
ZzEwKHR5cGUsIG5hbWUpOworICAgICAgdGVzdENvbnN0cnVjdFdpdGhBcnJheU9mU2lnbmVkVmFs
dWVzKHR5cGUsIG5hbWUpOworICAgIH0KKyAgICB0ZXN0Qm91bmRhcnlDb25kaXRpb25zKHR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdENhc2UubG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhc2Uu
ZXhwZWN0ZWRMb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZS5oaWdoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhc2UuZXhwZWN0ZWRIaWdoKTsKKyAgfQor
CisgIHByaW50U3VtbWFyeSgpOworfQorCitydW5UZXN0cygpOworc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cis8L3NjcmlwdD4KKworPC9ib2R5
PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="21764"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40533</attachid>
            <date>2009-10-02 10:44:04 -0700</date>
            <delta_ts>2009-10-02 10:45:56 -0700</delta_ts>
            <desc>Replacement patch with layouttest expected results</desc>
            <filename>30018.patch</filename>
            <type>text/plain</type>
            <size>9645</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTAyNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMDIgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YkdMIGNyYXNoZXMgd2l0aCByZWNlbnQgQ2FudmFzQXJyYXkgY2hhbmdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDAxOAorCisgICAgICAgIFRlc3Q6
IGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQXJyYXk6
OkNhbnZhc0FycmF5KToKKyAgICAgICAgRml4IGJ1ZyB3aGVyZSBQYXNzUmVmUHRyIHdhcyB0ZXN0
ZWQgYWZ0ZXIgdHJhbnNmZXJyaW5nIHZhbHVlIHRvIFJlZlB0ci4KKwogMjAwOS0xMC0wMiAgTm9y
YmVydCBMZXNlciAgPG5vcmJlcnQubGVzZXJAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJh
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJ
KHJldmlzaW9uIDQ5MDIzKQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICA6IG1fb2Zmc2V0KG9mZnNldCkKICAgICAgICAgLCBtX2J1ZmZlcihidWZmZXIpCiAgICAg
ewotICAgICAgICBtX2Jhc2VBZGRyZXNzID0gYnVmZmVyID8gKHN0YXRpY19jYXN0PGNoYXIqPiht
X2J1ZmZlci0+ZGF0YSgpKSArIG1fb2Zmc2V0KSA6IDA7CisgICAgICAgIG1fYmFzZUFkZHJlc3Mg
PSBtX2J1ZmZlciA/IChzdGF0aWNfY2FzdDxjaGFyKj4obV9idWZmZXItPmRhdGEoKSkgKyBtX29m
ZnNldCkgOiAwOwogICAgIH0KIAogICAgIENhbnZhc0FycmF5Ojp+Q2FudmFzQXJyYXkoKQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDkwMjMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMC0wMiAgS2VubmV0aCBSdXNzZWxsICA8a2Jy
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViR0wgY3Jhc2hlcyB3aXRoIHJlY2VudCBDYW52YXNBcnJheSBjaGFuZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDE4CisKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbDog
QWRkZWQuCisKIDIwMDktMTAtMDIgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5ICBEYXZpZCBLaWx6ZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5
LXVuaXQtdGVzdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACitW
ZXJpZmllcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgbmV3IGFycmF5LWxpa2Ugb2JqZWN0cyBp
biB0aGUgV2ViR0wgc3BlYworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgdGVz
dCBDYW52YXNCeXRlQXJyYXkgU2V0QW5kR2V0UG9zMTBUb05lZzEwCitQQVNTIHRlc3QgQ2FudmFz
Qnl0ZUFycmF5IENvbnN0cnVjdFdpdGhBcnJheU9mU2lnbmVkVmFsdWVzCitQQVNTIHRlc3QgQ2Fu
dmFzQnl0ZUFycmF5IEJvdW5kYXJ5Q29uZGl0aW9ucygtMTI4LCAtMTI4LCAxMjcsIDEyNykKK1BB
U1MgdGVzdCBDYW52YXNGbG9hdEFycmF5IFNldEFuZEdldFBvczEwVG9OZWcxMAorUEFTUyB0ZXN0
IENhbnZhc0Zsb2F0QXJyYXkgQ29uc3RydWN0V2l0aEFycmF5T2ZTaWduZWRWYWx1ZXMKK1BBU1Mg
dGVzdCBDYW52YXNGbG9hdEFycmF5IEJvdW5kYXJ5Q29uZGl0aW9ucygtNTAwLCAtNTAwLCA1MDAs
IDUwMCkKK1BBU1MgdGVzdCBDYW52YXNJbnRBcnJheSBTZXRBbmRHZXRQb3MxMFRvTmVnMTAKK1BB
U1MgdGVzdCBDYW52YXNJbnRBcnJheSBDb25zdHJ1Y3RXaXRoQXJyYXlPZlNpZ25lZFZhbHVlcwor
UEFTUyB0ZXN0IENhbnZhc0ludEFycmF5IEJvdW5kYXJ5Q29uZGl0aW9ucygtMjE0NzQ4MzY0OCwg
LTIxNDc0ODM2NDgsIDIxNDc0ODM2NDcsIDIxNDc0ODM2NDcpCitQQVNTIHRlc3QgQ2FudmFzU2hv
cnRBcnJheSBTZXRBbmRHZXRQb3MxMFRvTmVnMTAKK1BBU1MgdGVzdCBDYW52YXNTaG9ydEFycmF5
IENvbnN0cnVjdFdpdGhBcnJheU9mU2lnbmVkVmFsdWVzCitQQVNTIHRlc3QgQ2FudmFzU2hvcnRB
cnJheSBCb3VuZGFyeUNvbmRpdGlvbnMoLTMyNzY4LCAtMzI3NjgsIDMyNzY3LCAzMjc2NykKK1BB
U1MgdGVzdCBDYW52YXNVbnNpZ25lZEJ5dGVBcnJheSBTZXRBbmRHZXQxMFRvMQorUEFTUyB0ZXN0
IENhbnZhc1Vuc2lnbmVkQnl0ZUFycmF5IENvbnN0cnVjdFdpdGhBcnJheU9mVW5zaWduZWRWYWx1
ZXMKK1BBU1MgdGVzdCBDYW52YXNVbnNpZ25lZEJ5dGVBcnJheSBCb3VuZGFyeUNvbmRpdGlvbnMo
MCwgMCwgMjU1LCAyNTUpCitQQVNTIHRlc3QgQ2FudmFzVW5zaWduZWRJbnRBcnJheSBTZXRBbmRH
ZXQxMFRvMQorUEFTUyB0ZXN0IENhbnZhc1Vuc2lnbmVkSW50QXJyYXkgQ29uc3RydWN0V2l0aEFy
cmF5T2ZVbnNpZ25lZFZhbHVlcworUEFTUyB0ZXN0IENhbnZhc1Vuc2lnbmVkSW50QXJyYXkgQm91
bmRhcnlDb25kaXRpb25zKDAsIDAsIDQyOTQ5NjcyOTUsIDQyOTQ5NjcyOTUpCitQQVNTIHRlc3Qg
Q2FudmFzVW5zaWduZWRTaG9ydEFycmF5IFNldEFuZEdldDEwVG8xCitQQVNTIHRlc3QgQ2FudmFz
VW5zaWduZWRTaG9ydEFycmF5IENvbnN0cnVjdFdpdGhBcnJheU9mVW5zaWduZWRWYWx1ZXMKK1BB
U1MgdGVzdCBDYW52YXNVbnNpZ25lZFNob3J0QXJyYXkgQm91bmRhcnlDb25kaXRpb25zKDAsIDAs
IDY1NTM1LCA2NTUzNSkKK1Rlc3QgcGFzc2VkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL2FycmF5LXVuaXQtdGVzdHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheS11bml0LXRlc3RzLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjI5IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIi8+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3Jp
cHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOwor
CitkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIG5ldyBhcnJh
eS1saWtlIG9iamVjdHMgaW4gdGhlIFdlYkdMIHNwZWMiKTsKKwordmFyIGN1cnJlbnRseVJ1bm5p
bmcgPSAnJzsKK3ZhciBhbGxQYXNzZWQgPSB0cnVlOworZnVuY3Rpb24gcnVubmluZyhzdHIpIHsK
KyAgY3VycmVudGx5UnVubmluZyA9IHN0cjsKK30KKworZnVuY3Rpb24gb3V0cHV0KHN0cikgewor
ICBkZWJ1ZyhzdHIpOworfQorCitmdW5jdGlvbiBwYXNzKCkgeworICB0ZXN0UGFzc2VkKGN1cnJl
bnRseVJ1bm5pbmcpOworfQorCitmdW5jdGlvbiBmYWlsKHN0cikgeworICB2YXIgZXhjID0gJ0ZB
SUxFRDogJyArIGN1cnJlbnRseVJ1bm5pbmcgKyAnOiAnICsgc3RyOworICB0ZXN0RmFpbGVkKHN0
cik7Cit9CisKK2Z1bmN0aW9uIGFzc2VydEVxKHByZWZpeCwgZXhwZWN0ZWQsIHZhbCkgeworICBp
ZiAoZXhwZWN0ZWQgIT0gdmFsKSB7CisgICAgZmFpbChwcmVmaXggKyAnOiBleHBlY3RlZCAnICsg
ZXhwZWN0ZWQgKyAnLCBnb3QgJyArIHZhbCk7CisgIH0KK30KKworZnVuY3Rpb24gcHJpbnRTdW1t
YXJ5KCkgeworICBpZiAoYWxsUGFzc2VkKSB7CisgICAgZGVidWcoIlRlc3QgcGFzc2VkLiIpOwor
ICB9IGVsc2UgeworICAgIGRlYnVnKCJURVNUIEZBSUxFRCIpOworICB9Cit9CisKKy8vCisvLyBU
ZXN0cyBmb3IgdW5zaWduZWQgYXJyYXkgdmFyaWFudHMKKy8vCisKK2Z1bmN0aW9uIHRlc3RTZXRB
bmRHZXQxMFRvMSh0eXBlLCBuYW1lKSB7CisgIHJ1bm5pbmcoJ3Rlc3QgJyArIG5hbWUgKyAnIFNl
dEFuZEdldDEwVG8xJyk7CisgIHRyeSB7CisgICAgdmFyIGFycmF5ID0gbmV3IHR5cGUoMTApOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgYXJyYXlbaV0gPSAxMCAt
IGk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgYXNz
ZXJ0RXEoJ0VsZW1lbnQgJyArIGksIDEwIC0gaSwgYXJyYXlbaV0pOworICAgIH0KKyAgICBwYXNz
KCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBmYWlsKGUpOworICB9Cit9CisKK2Z1bmN0aW9uIHRl
c3RDb25zdHJ1Y3RXaXRoQXJyYXlPZlVuc2lnbmVkVmFsdWVzKHR5cGUsIG5hbWUpIHsKKyAgcnVu
bmluZygndGVzdCAnICsgbmFtZSArICcgQ29uc3RydWN0V2l0aEFycmF5T2ZVbnNpZ25lZFZhbHVl
cycpOworICB0cnkgeworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlKFsxMCwgOSwgOCwgNywgNiwg
NSwgNCwgMywgMiwgMV0pOworICAgIGFzc2VydEVxKCdBcnJheSBsZW5ndGgnLCAxMCwgYXJyYXku
bGVuZ3RoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgIGFzc2Vy
dEVxKCdFbGVtZW50ICcgKyBpLCAxMCAtIGksIGFycmF5W2ldKTsKKyAgICB9CisgICAgcGFzcygp
OworICB9IGNhdGNoIChlKSB7CisgICAgZmFpbChlKTsKKyAgfQorfQorCisvLworLy8gVGVzdHMg
Zm9yIHNpZ25lZCBhcnJheSB2YXJpYW50cworLy8KKworZnVuY3Rpb24gdGVzdFNldEFuZEdldFBv
czEwVG9OZWcxMCh0eXBlLCBuYW1lKSB7CisgIHJ1bm5pbmcoJ3Rlc3QgJyArIG5hbWUgKyAnIFNl
dEFuZEdldFBvczEwVG9OZWcxMCcpOworICB0cnkgeworICAgIHZhciBhcnJheSA9IG5ldyB0eXBl
KDIxKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIxOyBpKyspIHsKKyAgICAgIGFycmF5W2ld
ID0gMTAgLSBpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIxOyBpKyspIHsKKyAg
ICAgIGFzc2VydEVxKCdFbGVtZW50ICcgKyBpLCAxMCAtIGksIGFycmF5W2ldKTsKKyAgICB9Cisg
ICAgcGFzcygpOworICB9IGNhdGNoIChlKSB7CisgICAgZmFpbChlKTsKKyAgfQorfQorCitmdW5j
dGlvbiB0ZXN0Q29uc3RydWN0V2l0aEFycmF5T2ZTaWduZWRWYWx1ZXModHlwZSwgbmFtZSkgewor
ICBydW5uaW5nKCd0ZXN0ICcgKyBuYW1lICsgJyBDb25zdHJ1Y3RXaXRoQXJyYXlPZlNpZ25lZFZh
bHVlcycpOworICB0cnkgeworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlKFsxMCwgOSwgOCwgNywg
NiwgNSwgNCwgMywgMiwgMSwgMCwgLTEsIC0yLCAtMywgLTQsIC01LCAtNiwgLTcsIC04LCAtOSwg
LTEwXSk7CisgICAgYXNzZXJ0RXEoJ0FycmF5IGxlbmd0aCcsIDIxLCBhcnJheS5sZW5ndGgpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjE7IGkrKykgeworICAgICAgYXNzZXJ0RXEoJ0VsZW1l
bnQgJyArIGksIDEwIC0gaSwgYXJyYXlbaV0pOworICAgIH0KKyAgICBwYXNzKCk7CisgIH0gY2F0
Y2ggKGUpIHsKKyAgICBmYWlsKGUpOworICB9Cit9CisKKy8vCisvLyBUZXN0IGNhc2VzIGZvciBi
b3RoIHNpZ25lZCBhbmQgdW5zaWduZWQgdHlwZXMKKy8vCisKK2Z1bmN0aW9uIHRlc3RCb3VuZGFy
eUNvbmRpdGlvbnModHlwZSwgbmFtZSwgbG93VmFsdWUsIGV4cGVjdGVkTG93VmFsdWUsIGhpZ2hW
YWx1ZSwgZXhwZWN0ZWRIaWdoVmFsdWUpIHsKKyAgcnVubmluZygndGVzdCAnICsgbmFtZSArICcg
Qm91bmRhcnlDb25kaXRpb25zKCcgKworICAgICAgICAgIGxvd1ZhbHVlICsgJywgJyArIGV4cGVj
dGVkTG93VmFsdWUgKyAnLCAnICsKKyAgICAgICAgICBoaWdoVmFsdWUgKyAnLCAnICsgZXhwZWN0
ZWRIaWdoVmFsdWUgKyAnKScpOworICB0cnkgeworICAgIHZhciBhcnJheSA9IG5ldyB0eXBlKDEp
OworICAgIGFzc2VydEVxKCdBcnJheSBsZW5ndGgnLCAxLCBhcnJheS5sZW5ndGgpOworICAgIGFy
cmF5WzBdID0gbG93VmFsdWU7CisgICAgYXNzZXJ0RXEoJ0VsZW1lbnQgMCcsIGV4cGVjdGVkTG93
VmFsdWUsIGFycmF5WzBdKTsKKyAgICBhcnJheVswXSA9IGhpZ2hWYWx1ZTsKKyAgICBhc3NlcnRF
cSgnRWxlbWVudCAwJywgZXhwZWN0ZWRIaWdoVmFsdWUsIGFycmF5WzBdKTsKKyAgICBwYXNzKCk7
CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBmYWlsKGUpOworICB9Cit9CisKKy8vCisvLyBUZXN0IGRy
aXZlcgorLy8KKworZnVuY3Rpb24gcnVuVGVzdHMoKSB7CisgIGFsbFBhc3NlZCA9IHRydWU7CisK
KyAgLy8gVGhlICJuYW1lIiBhdHRyaWJ1dGUgaXMgYSBjb25jZXNzaW9uIHRvIGJyb3dzZXJzIHdo
aWNoIGRvbid0CisgIC8vIGltcGxlbWVudCB0aGUgIm5hbWUiIHByb3BlcnR5IG9uIGZ1bmN0aW9u
IG9iamVjdHMKKyAgdmFyIHRlc3RDYXNlcyA9CisgICAgWyB7bmFtZTogIkNhbnZhc0J5dGVBcnJh
eSIsCisgICAgICAgdW5zaWduZWQ6IGZhbHNlLAorICAgICAgIGxvdzogLTEyOCwKKyAgICAgICBl
eHBlY3RlZExvdzogLTEyOCwKKyAgICAgICBoaWdoOiAxMjcsCisgICAgICAgZXhwZWN0ZWRIaWdo
OiAxMjd9LAorICAgICAge25hbWU6ICJDYW52YXNGbG9hdEFycmF5IiwKKyAgICAgICB1bnNpZ25l
ZDogZmFsc2UsCisgICAgICAgbG93OiAtNTAwLAorICAgICAgIGV4cGVjdGVkTG93OiAtNTAwLAor
ICAgICAgIGhpZ2g6IDUwMCwKKyAgICAgICBleHBlY3RlZEhpZ2g6IDUwMH0sCisgICAgICB7bmFt
ZTogIkNhbnZhc0ludEFycmF5IiwKKyAgICAgICB1bnNpZ25lZDogZmFsc2UsCisgICAgICAgbG93
OiAtMjE0NzQ4MzY0OCwKKyAgICAgICBleHBlY3RlZExvdzogLTIxNDc0ODM2NDgsCisgICAgICAg
aGlnaDogMjE0NzQ4MzY0NywKKyAgICAgICBleHBlY3RlZEhpZ2g6IDIxNDc0ODM2NDd9LAorICAg
ICAge25hbWU6ICJDYW52YXNTaG9ydEFycmF5IiwKKyAgICAgICB1bnNpZ25lZDogZmFsc2UsCisg
ICAgICAgbG93OiAtMzI3NjgsCisgICAgICAgZXhwZWN0ZWRMb3c6IC0zMjc2OCwKKyAgICAgICBo
aWdoOiAzMjc2NywKKyAgICAgICBleHBlY3RlZEhpZ2g6IDMyNzY3fSwKKyAgICAgIHtuYW1lOiAi
Q2FudmFzVW5zaWduZWRCeXRlQXJyYXkiLAorICAgICAgIHVuc2lnbmVkOiB0cnVlLAorICAgICAg
IGxvdzogMCwKKyAgICAgICBleHBlY3RlZExvdzogMCwKKyAgICAgICBoaWdoOiAyNTUsCisgICAg
ICAgZXhwZWN0ZWRIaWdoOiAyNTV9LAorICAgICAge25hbWU6ICJDYW52YXNVbnNpZ25lZEludEFy
cmF5IiwKKyAgICAgICB1bnNpZ25lZDogdHJ1ZSwKKyAgICAgICBsb3c6IDAsCisgICAgICAgZXhw
ZWN0ZWRMb3c6IDAsCisgICAgICAgaGlnaDogNDI5NDk2NzI5NSwKKyAgICAgICBleHBlY3RlZEhp
Z2g6IDQyOTQ5NjcyOTV9LAorICAgICAge25hbWU6ICJDYW52YXNVbnNpZ25lZFNob3J0QXJyYXki
LAorICAgICAgIHVuc2lnbmVkOiB0cnVlLAorICAgICAgIGxvdzogMCwKKyAgICAgICBleHBlY3Rl
ZExvdzogMCwKKyAgICAgICBoaWdoOiA2NTUzNSwKKyAgICAgICBleHBlY3RlZEhpZ2g6IDY1NTM1
fSBdOworCisgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENhc2VzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgdmFyIHRlc3RDYXNlID0gdGVzdENhc2VzW2ldOworICAgIHJ1bm5pbmcodGVzdENhc2UubmFt
ZSk7CisgICAgaWYgKCEodGVzdENhc2UubmFtZSBpbiB3aW5kb3cpKSB7CisgICAgICAgIGZhaWwo
ImRvZXMgbm90IGV4aXN0Iik7CisgICAgICAgIGNvbnRpbnVlOworICAgIH0KKyAgICB2YXIgdHlw
ZSA9IHdpbmRvd1t0ZXN0Q2FzZS5uYW1lXTsKKyAgICB2YXIgbmFtZSA9IHRlc3RDYXNlLm5hbWU7
CisgICAgaWYgKHRlc3RDYXNlLnVuc2lnbmVkKSB7CisgICAgICB0ZXN0U2V0QW5kR2V0MTBUbzEo
dHlwZSwgbmFtZSk7CisgICAgICB0ZXN0Q29uc3RydWN0V2l0aEFycmF5T2ZVbnNpZ25lZFZhbHVl
cyh0eXBlLCBuYW1lKTsKKyAgICB9IGVsc2UgeworICAgICAgdGVzdFNldEFuZEdldFBvczEwVG9O
ZWcxMCh0eXBlLCBuYW1lKTsKKyAgICAgIHRlc3RDb25zdHJ1Y3RXaXRoQXJyYXlPZlNpZ25lZFZh
bHVlcyh0eXBlLCBuYW1lKTsKKyAgICB9CisgICAgdGVzdEJvdW5kYXJ5Q29uZGl0aW9ucyh0eXBl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RDYXNlLmxvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNl
LmV4cGVjdGVkTG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdENhc2UuaGlnaCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlLmV4cGVjdGVkSGlnaCk7CisgIH0K
KworICBwcmludFN1bW1hcnkoKTsKK30KKworcnVuVGVzdHMoKTsKK3N1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorPC9zY3JpcHQ+CisKKzwvYm9k
eT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="21773"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>