<?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>45064</bug_id>
          
          <creation_ts>2010-09-01 15:02:30 -0700</creation_ts>
          <short_desc>Change ImmutableArray to be backed by a Vector</short_desc>
          <delta_ts>2010-09-01 16:03:03 -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>WebKit2</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273045</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-01 15:02:30 -0700</bug_when>
    <thetext>We need to change ImmutableArray to be backed by a Vector, so that we can add a MutableArray subclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273049</commentid>
    <comment_count>1</comment_count>
      <attachid>66284</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-01 15:08:16 -0700</bug_when>
    <thetext>Created attachment 66284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273055</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-01 15:12:04 -0700</bug_when>
    <thetext>Attachment 66284 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp:130:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/Shared/ImmutableArray.h:58:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 2 in 8 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>273081</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-01 16:03:03 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/66621.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66284</attachid>
            <date>2010-09-01 15:08:16 -0700</date>
            <delta_ts>2010-09-01 15:33:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>vectorize.diff</filename>
            <type>text/plain</type>
            <size>11780</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjYyMCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDktMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2Ug
SW1tdXRhYmxlQXJyYXkgdG8gYmUgYmFja2VkIGJ5IGEgVmVjdG9yCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTA2NAorCisgICAgICAgIENoYW5nZSBJ
bW11dGFibGVBcnJheSB0byBiZSBiYWNrZWQgYnkgYSBWZWN0b3IgdG8gd29yayB0b3dhcmQgaGF2
aW5nIAorICAgICAgICBhIG11dGFibGUgc3ViY2xhc3MgYW5kIHRvIGltcHJvdmUgdGhlIEFQSSB3
aGVuIHdvcmtpbmcgd2l0aCBpdCBpbiBXZWJLaXQyCisgICAgICAgIGl0c2VsZi4KKworICAgICAg
ICAtIEFsc28gcmVtb3ZlIFdLQXJyYXlDcmVhdGVBZG9wdGluZ1ZhbHVlcyB3aGljaCB3YXMgY29u
ZnVzaW5nIGFuZCB1bnVzZWQuCisKKyAgICAgICAgKiBTaGFyZWQvSW1tdXRhYmxlQXJyYXkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbW11dGFibGVBcnJheTo6SW1tdXRhYmxlQXJyYXkpOgorICAg
ICAgICAoV2ViS2l0OjpJbW11dGFibGVBcnJheTo6fkltbXV0YWJsZUFycmF5KToKKyAgICAgICAg
KiBTaGFyZWQvSW1tdXRhYmxlQXJyYXkuaDoKKyAgICAgICAgKFdlYktpdDo6SW1tdXRhYmxlQXJy
YXk6OmFkb3B0KToKKyAgICAgICAgKFdlYktpdDo6SW1tdXRhYmxlQXJyYXk6OmF0KToKKyAgICAg
ICAgKFdlYktpdDo6SW1tdXRhYmxlQXJyYXk6OnNpemUpOgorICAgICAgICAqIFNoYXJlZC9JbW11
dGFibGVEaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1tdXRhYmxlRGljdGlvbmFy
eTo6a2V5cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQXJyYXkuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FycmF5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdDo6
YmFja0xpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmFja0ZvcndhcmRMaXN0Ojpmb3J3YXJkTGlzdEFzSW1tdXRhYmxlQXJyYXlXaXRoTGltaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UG9z
dE1lc3NhZ2VFbmNvZGVyOjpQb3N0TWVzc2FnZURlY29kZXI6OmRlY29kZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBvc3RNZXNzYWdlRW5jb2Rlcjo6UG9zdE1lc3NhZ2VEZWNvZGVyOjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lOjpjaGlsZEZyYW1lcyk6CisKIDIwMTAtMDktMDEgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCklu
ZGV4OiBXZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuY3BwCShyZXZpc2lvbiA2NjYxNykKKysrIFdlYktp
dDIvU2hhcmVkL0ltbXV0YWJsZUFycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMzAgKzI4
LDIzIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogSW1tdXRhYmxlQXJyYXk6OkltbXV0YWJsZUFy
cmF5KCkKLSAgICA6IG1fZW50cmllcygwKQotICAgICwgbV9zaXplKDApCiB7CiB9CiAKIEltbXV0
YWJsZUFycmF5OjpJbW11dGFibGVBcnJheShBUElPYmplY3QqKiBlbnRyaWVzLCBzaXplX3Qgc2l6
ZSkKLSAgICA6IG1fZW50cmllcyhhZG9wdEFycmF5UHRyKG5ldyBBUElPYmplY3QqW3NpemVdKSkK
LSAgICAsIG1fc2l6ZShzaXplKQorICAgIDogbV9lbnRyaWVzKHNpemUpCiB7Ci0gICAgbWVtY3B5
KG1fZW50cmllcy5nZXQoKSwgZW50cmllcywgbV9zaXplKTsKKyAgICBtZW1jcHkobV9lbnRyaWVz
LmRhdGEoKSwgZW50cmllcywgc2l6ZSk7CiB9CiAKLUltbXV0YWJsZUFycmF5OjpJbW11dGFibGVB
cnJheShQYXNzT3duQXJyYXlQdHI8QVBJT2JqZWN0Kj4gZW50cmllcywgc2l6ZV90IHNpemUpCi0g
ICAgOiBtX2VudHJpZXMoZW50cmllcykKLSAgICAsIG1fc2l6ZShzaXplKQorSW1tdXRhYmxlQXJy
YXk6OkltbXV0YWJsZUFycmF5KFZlY3RvcjxBUElPYmplY3QqPiYgZW50cmllcykKIHsKKyAgICBt
X2VudHJpZXMuc3dhcChlbnRyaWVzKTsKIH0KIAogSW1tdXRhYmxlQXJyYXk6On5JbW11dGFibGVB
cnJheSgpCiB7Ci0gICAgaWYgKCFtX2VudHJpZXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zaXplOyArK2kpCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2VudHJpZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZW50cmllc1tpXS0+ZGVyZWYo
KTsKIH0KIApJbmRleDogV2ViS2l0Mi9TaGFyZWQvSW1tdXRhYmxlQXJyYXkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1NoYXJlZC9JbW11dGFibGVBcnJheS5oCShyZXZpc2lvbiA2NjYxNykKKysr
IFdlYktpdDIvU2hhcmVkL0ltbXV0YWJsZUFycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDkg
KzI3LDkgQEAKICNkZWZpbmUgSW1tdXRhYmxlQXJyYXlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCi0jaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25B
cnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDcsMjggKzQ3LDI3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW1tdXRhYmxlQXJyYXkoZW50
cmllcywgc2l6ZSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJh
eT4gYWRvcHQoUGFzc093bkFycmF5UHRyPEFQSU9iamVjdCo+IGVudHJpZXMsIHNpemVfdCBzaXpl
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBhZG9wdChWZWN0b3I8QVBJ
T2JqZWN0Kj4mIGVudHJpZXMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElt
bXV0YWJsZUFycmF5KGVudHJpZXMsIHNpemUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBJbW11dGFibGVBcnJheShlbnRyaWVzKSk7CiAgICAgfQogCiAgICAgfkltbXV0YWJsZUFycmF5
KCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIFQqIGF0KHNpemVfdCBpKSB7IEFT
U0VSVChpIDwgbV9zaXplKTsgaWYgKG1fZW50cmllc1tpXS0+dHlwZSgpICE9IFQ6OkFQSVR5cGUp
IHJldHVybiAwOyByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KG1fZW50cmllc1tpXSk7IH0KKyAgICBU
KiBhdChzaXplX3QgaSkgeyBpZiAobV9lbnRyaWVzW2ldLT50eXBlKCkgIT0gVDo6QVBJVHlwZSkg
cmV0dXJuIDA7IHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9lbnRyaWVzW2ldKTsgfQogCi0gICAg
QVBJT2JqZWN0KiBhdChzaXplX3QgaSkgeyBBU1NFUlQoaSA8IG1fc2l6ZSk7IHJldHVybiBtX2Vu
dHJpZXNbaV07IH0KLSAgICBzaXplX3Qgc2l6ZSgpIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIEFQ
SU9iamVjdCogYXQoc2l6ZV90IGkpIHsgcmV0dXJuIG1fZW50cmllc1tpXTsgfQorICAgIHNpemVf
dCBzaXplKCkgeyByZXR1cm4gbV9lbnRyaWVzLnNpemUoKTsgfQogCi1wcml2YXRlOgorcHJvdGVj
dGVkOgogICAgIEltbXV0YWJsZUFycmF5KCk7CiAgICAgSW1tdXRhYmxlQXJyYXkoQVBJT2JqZWN0
KiogZW50cmllcywgc2l6ZV90IHNpemUpOwotICAgIEltbXV0YWJsZUFycmF5KFBhc3NPd25BcnJh
eVB0cjxBUElPYmplY3QqPiBlbnRyaWVzLCBzaXplX3Qgc2l6ZSk7CisgICAgSW1tdXRhYmxlQXJy
YXkoVmVjdG9yPEFQSU9iamVjdCo+JiBlbnRyaWVzKTsKIAogICAgIHZpcnR1YWwgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCi0gICAgT3duQXJyYXlQdHI8QVBJT2JqZWN0
Kj4gbV9lbnRyaWVzOwotICAgIHNpemVfdCBtX3NpemU7CisgICAgVmVjdG9yPEFQSU9iamVjdCo+
IG1fZW50cmllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9T
aGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFy
ZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5jcHAJKHJldmlzaW9uIDY2NjE3KQorKysgV2ViS2l0Mi9T
aGFyZWQvSW1tdXRhYmxlRGljdGlvbmFyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDE1ICs0
OCwxNSBAQCBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBJbW11dGFibGVEaWN0CiAgICAgaWYg
KG1fbWFwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVhdGUo
KTsKIAotICAgIHNpemVfdCBzaXplID0gbV9tYXAuc2l6ZSgpOwotICAgIE93bkFycmF5UHRyPEFQ
SU9iamVjdCo+IGFycmF5ID0gYWRvcHRBcnJheVB0cihuZXcgQVBJT2JqZWN0KltzaXplXSk7Cisg
ICAgVmVjdG9yPEFQSU9iamVjdCo+IHZlY3RvcjsKKyAgICB2ZWN0b3IucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShtX21hcC5zaXplKCkpOwogCiAgICAgTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3I6Oktl
eXMgaXQgPSBtX21hcC5iZWdpbigpLmtleXMoKTsKICAgICBNYXBUeXBlOjpjb25zdF9pdGVyYXRv
cjo6S2V5cyBlbmQgPSBtX21hcC5lbmQoKS5rZXlzKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaXQgIT0gZW5kOyArK2l0LCArK2kpCi0gICAgICAgIGFycmF5W2ldID0gV2ViU3RyaW5nOjpj
cmVhdGUoKml0KS5yZWxlYXNlUmVmKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkKKyAg
ICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZChXZWJTdHJpbmc6OmNyZWF0ZSgqaXQpLnJlbGVh
c2VSZWYoKSk7CiAKLSAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KGFycmF5LnJlbGVh
c2UoKSwgc2l6ZSk7CisgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjphZG9wdCh2ZWN0b3IpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcAkocmV2aXNpb24gNjY2MTcpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsMTUgKzE3MywxNyBA
QCBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBXZWJCYWNrRm9yd2FyCiAgICAgaWYgKCFzaXpl
KQogICAgICAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmNyZWF0ZSgpOwogCi0gICAgT3duQXJy
YXlQdHI8QVBJT2JqZWN0Kj4gYXJyYXkgPSBhZG9wdEFycmF5UHRyKG5ldyBBUElPYmplY3QqW3Np
emVdKTsKKyAgICBWZWN0b3I8QVBJT2JqZWN0Kj4gdmVjdG9yOworICAgIHZlY3Rvci5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHNpemUpOworCiAgICAgQVNTRVJUKGJhY2tMaXN0U2l6ZSA+PSBzaXpl
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBiYWNrTGlzdFNpemUgLSBzaXplLCBqID0gMDsgaSA8
IGJhY2tMaXN0U2l6ZTsgKytpLCArK2opIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBiYWNrTGlz
dFNpemUgLSBzaXplOyBpIDwgYmFja0xpc3RTaXplOyArK2kpIHsKICAgICAgICAgQVBJT2JqZWN0
KiBpdGVtID0gbV9lbnRyaWVzW2ldLmdldCgpOwogICAgICAgICBpdGVtLT5yZWYoKTsKLSAgICAg
ICAgYXJyYXlbal0gPSBpdGVtOworICAgICAgICB2ZWN0b3IudW5jaGVja2VkQXBwZW5kKGl0ZW0p
OwogICAgIH0KIAotICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQoYXJyYXkucmVsZWFz
ZSgpLCBzaXplKTsKKyAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHZlY3Rvcik7CiB9
CiAKIFBhc3NSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IFdlYkJhY2tGb3J3YXJkTGlzdDo6Zm9yd2Fy
ZExpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExpbWl0KHVuc2lnbmVkIGxpbWl0KQpAQCAtMTkwLDE2
ICsxOTIsMTggQEAgUGFzc1JlZlB0cjxJbW11dGFibGVBcnJheT4gV2ViQmFja0ZvcndhcgogICAg
IGlmICghc2l6ZSkKICAgICAgICAgcmV0dXJuIEltbXV0YWJsZUFycmF5OjpjcmVhdGUoKTsKIAot
ICAgIE93bkFycmF5UHRyPEFQSU9iamVjdCo+IGFycmF5ID0gYWRvcHRBcnJheVB0cihuZXcgQVBJ
T2JqZWN0KltzaXplXSk7CisgICAgVmVjdG9yPEFQSU9iamVjdCo+IHZlY3RvcjsKKyAgICB2ZWN0
b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShzaXplKTsKKwogICAgIHVuc2lnbmVkIGxhc3QgPSBt
X2N1cnJlbnQgKyBzaXplOwogICAgIEFTU0VSVChsYXN0IDwgbV9lbnRyaWVzLnNpemUoKSk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpID0gbV9jdXJyZW50ICsgMSwgaiA9IDA7IGkgPD0gbGFzdDsgKytp
LCArK2opIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2N1cnJlbnQgKyAxOyBpIDw9IGxhc3Q7
ICsraSkgewogICAgICAgICBBUElPYmplY3QqIGl0ZW0gPSBtX2VudHJpZXNbaV0uZ2V0KCk7CiAg
ICAgICAgIGl0ZW0tPnJlZigpOwotICAgICAgICBhcnJheVtqXSA9IGl0ZW07CisgICAgICAgIHZl
Y3Rvci51bmNoZWNrZWRBcHBlbmQoaXRlbSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEltbXV0YWJs
ZUFycmF5OjphZG9wdChhcnJheS5yZWxlYXNlKCksIHNpemUpOworICAgIHJldHVybiBJbW11dGFi
bGVBcnJheTo6YWRvcHQodmVjdG9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gNjY2MTcpCisrKyBXZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDE2ICsxMjcsMTYg
QEAgcHVibGljOgogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBPd25B
cnJheVB0cjxBUElPYmplY3QqPiBhcnJheSA9IGFkb3B0QXJyYXlQdHIobmV3IEFQSU9iamVjdCpb
c2l6ZV0pOworICAgICAgICAgICAgVmVjdG9yPEFQSU9iamVjdCo+IGFycmF5OwogICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgICAgICAgICBB
UElPYmplY3QqIGVsZW1lbnQ7CiAgICAgICAgICAgICAgICAgUG9zdE1lc3NhZ2VEZWNvZGVyIG1l
c3NhZ2VDb2RlcigmZWxlbWVudCwgY29kZXIubV9jb250ZXh0KTsKICAgICAgICAgICAgICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZShtZXNzYWdlQ29kZXIpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBlbGVtZW50OworICAgICAg
ICAgICAgICAgIGFycmF5LmFwcGVuZChlbGVtZW50KTsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgKihjb2Rlci5tX3Jvb3QpID0gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KGFycmF5LnJlbGVh
c2UoKSwgc2l6ZSkubGVha1JlZigpOworICAgICAgICAgICAgKihjb2Rlci5tX3Jvb3QpID0gSW1t
dXRhYmxlQXJyYXk6OmFkb3B0KGFycmF5KS5sZWFrUmVmKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVN0cmluZzogewpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcnJheS5jcHAJKHJldmlzaW9uIDY2NjE3KQorKysgV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDEyICs0
MSw2IEBAIFdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZShXS1R5cGVSZWYqIHZhbHUKICAgICByZXR1
cm4gdG9SZWYoYXJyYXkucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7CiB9CiAKLVdLQXJyYXlSZWYg
V0tBcnJheUNyZWF0ZUFkb3B0aW5nVmFsdWVzKFdLVHlwZVJlZiogdmFsdWVzLCBzaXplX3QgbnVt
YmVyT2ZWYWx1ZXMpCi17Ci0gICAgUmVmUHRyPEltbXV0YWJsZUFycmF5PiBhcnJheSA9IEltbXV0
YWJsZUFycmF5OjphZG9wdChyZWludGVycHJldF9jYXN0PEFQSU9iamVjdCoqPih2YWx1ZXMpLCBu
dW1iZXJPZlZhbHVlcyk7Ci0gICAgcmV0dXJuIHRvUmVmKGFycmF5LnJlbGVhc2UoKS5yZWxlYXNl
UmVmKCkpOwotfQotCiBXS1R5cGVSZWYgV0tBcnJheUdldEl0ZW1BdEluZGV4KFdLQXJyYXlSZWYg
YXJyYXlSZWYsIHNpemVfdCBpbmRleCkKIHsKICAgICByZXR1cm4gdG9XSyhhcnJheVJlZiktPmF0
KGluZGV4KTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXJyYXkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FycmF5LmgJKHJldmlzaW9uIDY2NjE3
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBcnJheS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw3ICszNyw2IEBAIGV4dGVybiAiQyIgewogV0tfRVhQT1JUIFdLVHlwZUlEIFdLQXJyYXlH
ZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZShXS1R5cGVS
ZWYqIHZhbHVlcywgc2l6ZV90IG51bWJlck9mVmFsdWVzKTsKLVdLX0VYUE9SVCBXS0FycmF5UmVm
IFdLQXJyYXlDcmVhdGVBZG9wdGluZ1ZhbHVlcyhXS1R5cGVSZWYqIHZhbHVlcywgc2l6ZV90IG51
bWJlck9mVmFsdWVzKTsKIAogV0tfRVhQT1JUIFdLVHlwZVJlZiBXS0FycmF5R2V0SXRlbUF0SW5k
ZXgoV0tBcnJheVJlZiBhcnJheSwgc2l6ZV90IGluZGV4KTsKIFdLX0VYUE9SVCBzaXplX3QgV0tB
cnJheUdldFNpemUoV0tBcnJheVJlZiBhcnJheSk7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDY2
NjE3KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDE2ICsxMjcsMTYgQEAgcHVibGljOgogICAgICAg
ICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoc2l6ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgICAgICAgICBPd25BcnJheVB0cjxBUElPYmplY3QqPiBhcnJheSA9IGFk
b3B0QXJyYXlQdHIobmV3IEFQSU9iamVjdCpbc2l6ZV0pOworICAgICAgICAgICAgVmVjdG9yPEFQ
SU9iamVjdCo+IHZlY3Rvcjs7CiAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkgewogICAgICAgICAgICAgICAgIEFQSU9iamVjdCogZWxlbWVudDsKICAgICAgICAg
ICAgICAgICBQb3N0TWVzc2FnZURlY29kZXIgbWVzc2FnZUNvZGVyKCZlbGVtZW50KTsKICAgICAg
ICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZShtZXNzYWdlQ29kZXIpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSBlbGVt
ZW50OworICAgICAgICAgICAgICAgIHZlY3Rvci5hcHBlbmQoZWxlbWVudCk7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgICooY29kZXIubV9yb290KSA9IEltbXV0YWJsZUFycmF5OjphZG9w
dChhcnJheS5yZWxlYXNlKCksIHNpemUpLmxlYWtSZWYoKTsKKyAgICAgICAgICAgICooY29kZXIu
bV9yb290KSA9IEltbXV0YWJsZUFycmF5OjphZG9wdCh2ZWN0b3IpLmxlYWtSZWYoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU3Ry
aW5nOiB7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCShyZXZp
c2lvbiA2NjYxNykKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjI0LDE1ICsyMjQsMTYgQEAgUGFzc1JlZlB0cjxJbW11dGFibGVB
cnJheT4gV2ViRnJhbWU6OmNoaQogICAgIGlmICghc2l6ZSkKICAgICAgICAgcmV0dXJuIEltbXV0
YWJsZUFycmF5OjpjcmVhdGUoKTsKIAotICAgIE93bkFycmF5UHRyPEFQSU9iamVjdCo+IGFycmF5
ID0gYWRvcHRBcnJheVB0cihuZXcgQVBJT2JqZWN0KltzaXplXSk7Ci0gICAgdW5zaWduZWQgaSA9
IDA7Ci0gICAgZm9yIChGcmFtZSogY2hpbGQgPSBtX2NvcmVGcmFtZS0+dHJlZSgpLT5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCksICsraSkg
eworICAgIFZlY3RvcjxBUElPYmplY3QqPiB2ZWN0b3I7CisgICAgdmVjdG9yLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoc2l6ZSk7CisKKyAgICBmb3IgKEZyYW1lKiBjaGlsZCA9IG1fY29yZUZyYW1l
LT50cmVlKCktPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS0+bmV4
dFNpYmxpbmcoKSkgewogICAgICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxX
ZWJGcmFtZUxvYWRlckNsaWVudCo+KGNoaWxkLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFt
ZSgpOwogICAgICAgICB3ZWJGcmFtZS0+cmVmKCk7Ci0gICAgICAgIGFycmF5W2ldID0gd2ViRnJh
bWU7CisgICAgICAgIHZlY3Rvci51bmNoZWNrZWRBcHBlbmQod2ViRnJhbWUpOwogICAgIH0KIAot
ICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQoYXJyYXkucmVsZWFzZSgpLCBzaXplKTsK
KyAgICByZXR1cm4gSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHZlY3Rvcik7CiB9CiAKIHVuc2lnbmVk
IFdlYkZyYW1lOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKQo=
</data>
<flag name="review"
          id="55255"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>