<?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>19787</bug_id>
          
          <creation_ts>2008-06-26 23:44:33 -0700</creation_ts>
          <short_desc>create most arrays from values in registers rather than with multiple put operations</short_desc>
          <delta_ts>2008-06-28 22:25:37 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84553</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-26 23:44:33 -0700</bug_when>
    <thetext>This is a speed optimization.

It&apos;s a new opcode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84554</commentid>
    <comment_count>1</comment_count>
      <attachid>21968</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-26 23:48:24 -0700</bug_when>
    <thetext>Created attachment 21968
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84555</commentid>
    <comment_count>2</comment_count>
      <attachid>21969</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-26 23:49:32 -0700</bug_when>
    <thetext>Created attachment 21969
patch

Forgot to include the SunSpider speed-up figure in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84624</commentid>
    <comment_count>3</comment_count>
      <attachid>21981</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-27 21:35:39 -0700</bug_when>
    <thetext>Created attachment 21981
patch, updated for TOT and revised based on Geoff&apos;s feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84638</commentid>
    <comment_count>4</comment_count>
      <attachid>21981</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-06-28 00:36:50 -0700</bug_when>
    <thetext>Comment on attachment 21981
patch, updated for TOT and revised based on Geoff&apos;s feedback

r=me, but the removal of the in place constructors should be a separate patch.  However, r=me on removing them as well :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84644</commentid>
    <comment_count>5</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-06-28 01:49:14 -0700</bug_when>
    <thetext>You should also probably update the op_new_array documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84680</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-28 22:25:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/34851</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21968</attachid>
            <date>2008-06-26 23:48:24 -0700</date>
            <delta_ts>2008-06-26 23:49:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>NewArrayPatch.txt</filename>
            <type>text/plain</type>
            <size>8827</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDgtMDYtMjYgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Nzg3CisgICAgICAgICAgY3JlYXRlIG1vc3QgYXJyYXlzIGZyb20gdmFsdWVzIGluIHJlZ2lz
dGVycyByYXRoZXIgdGhhbiB3aXRoIG11bHRpcGxlIHB1dCBvcGVyYXRpb25zCisKKyAgICAgICAg
KiBWTS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoS0pTOjpDb2RlQmxvY2s6OmR1bXApOiBBZGRl
ZCBvcF9uZXdfYXJyYXlfd2l0aF9hcmdzLgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgorICAg
ICAgICAoS0pTOjpNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZSk6IEFkZGVkIG9wX25ld19hcnJheV93
aXRoX2FyZ3MuCisgICAgICAgICogVk0vT3Bjb2RlLmNwcDogRGl0dG8uCisgICAgICAgICogVk0v
T3Bjb2RlLmg6IERpdHRvLgorCisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5jcHA6CisgICAg
ICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXROZXdBcnJheVdpdGhvdXRFbGlzaW9uKTogQWRk
ZWQuCisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5oOiBEaXR0by4KKworICAgICAgICAqIGtq
cy9ub2Rlcy5jcHA6CisgICAgICAgIChLSlM6OkFycmF5Tm9kZTo6ZW1pdENvZGUpOiBDYWxsIGVt
aXROZXdBcnJheVdpdGhvdXRFbGlzaW9uIGlmIHRoZSBhcnJheSBkb2Vzbid0IGhhdmUKKyAgICAg
ICAgYW55IGhvbGVzIGluIGl0IC0tIHRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlLiBBbHNvLCBpbiB0
aGUgc2xvdyBjYXNlLCBkb24ndCBlbWl0IGV4dHJhCisgICAgICAgIGNvZGUgdG8gc2V0IHRoZSBs
ZW5ndGggaW4gdGhlIGNvbW1vbiBjYXNlIHdoZXJlIHRoZSBsZW5ndGggaXMgYWxyZWFkeSBnb2lu
ZyB0byBiZQorICAgICAgICBjb3JyZWN0LgorCisgICAgICAgICoga2pzL25vZGVzLmg6IEFkZGVk
IHNvbWUgYWNjZXNzb3JzIHRvIEVsZW1lbnROb2RlIHNvIHRoZSBjb2RlIGdlbmVyYXRvciBjYW4g
aXRlcmF0ZQorICAgICAgICB0aHJvdWdoIGVsZW1lbnRzIGFuZCBnZW5lcmF0ZSBjb2RlIHRvIGV2
YWx1YXRlIHRoZW0uCisKIDIwMDgtMDYtMjYgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4K
IAogICAgICAgICBTcGVjdWxhdGl2ZSBmaXggZm9yIHRoZSBXaW5kb3dzIGJ1aWxkLgpJbmRleDog
SmF2YVNjcmlwdENvcmUvVk0vQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9WTS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAzNDgyNikKKysrIEphdmFTY3JpcHRDb3Jl
L1ZNL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw2ICsyMjEsMTMgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVjLCBjbwogICAgICAgICAgICAgcHJpbnRm
KCJbJTRkXSBuZXdfYXJyYXlcdCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShyMCkuY19z
dHIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX25l
d19hcnJheV93aXRoX2FyZ3M6IHsKKyAgICAgICAgICAgIGludCBkc3QgPSAoKytpdCktPnUub3Bl
cmFuZDsKKyAgICAgICAgICAgIGludCBhcmd2ID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAg
ICAgICBpbnQgYXJnYyA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRmKCJb
JTRkXSBuZXdfYXJyYXlcdCAlcywgJWQsICVkXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGRz
dCkuY19zdHIoKSwgYXJndiwgYXJnYyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX25ld19yZWdleHA6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHJlMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwpJ
bmRleDogSmF2YVNjcmlwdENvcmUvVk0vQ29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvVk0vQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDM0ODI2KQorKysg
SmF2YVNjcmlwdENvcmUvVk0vQ29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3
MywxMiArNzczLDI2IEBAIFJlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRQdXRCeUluZGUK
ICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVJlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRO
ZXdGdW5jdGlvbihSZWdpc3RlcklEKiByMCwgRnVuY0RlY2xOb2RlKiBuKQorUmVnaXN0ZXJJRCog
Q29kZUdlbmVyYXRvcjo6ZW1pdE5ld0FycmF5V2l0aG91dEVsaXNpb24oUmVnaXN0ZXJJRCogZHN0
LCBFbGVtZW50Tm9kZSogZWxlbWVudHMpCit7CisgICAgVmVjdG9yPFJlZlB0cjxSZWdpc3RlcklE
PiwgMTY+IGFyZ3Y7CisgICAgZm9yIChFbGVtZW50Tm9kZSogbiA9IGVsZW1lbnRzOyBuOyBuID0g
bi0+bmV4dCgpKSB7CisgICAgICAgIGFyZ3YuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKKyAgICAg
ICAgZW1pdE5vZGUoYXJndi5sYXN0KCkuZ2V0KCksIG4tPnZhbHVlKCkpOworICAgIH0KKyAgICBl
bWl0T3Bjb2RlKG9wX25ld19hcnJheV93aXRoX2FyZ3MpOworICAgIGluc3RydWN0aW9ucygpLmFw
cGVuZChkc3QtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd2WzBdLT5p
bmRleCgpKTsgLy8gYXJndgorICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd2LnNpemUoKSk7
IC8vIGFyZ2MKKyAgICByZXR1cm4gZHN0OworfQorCitSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9y
OjplbWl0TmV3RnVuY3Rpb24oUmVnaXN0ZXJJRCogZHN0LCBGdW5jRGVjbE5vZGUqIG4pCiB7CiAg
ICAgZW1pdE9wY29kZShvcF9uZXdfZnVuYyk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHIw
LT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQobikpOwotICAgIHJldHVybiByMDsK
KyAgICByZXR1cm4gZHN0OwogfQogCiBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjplbWl0TmV3
UmVnRXhwKFJlZ2lzdGVySUQqIGRzdCwgUmVnRXhwKiByZWdFeHApCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9WTS9Db2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0v
Q29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzNDgyNikKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0Nv
ZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw3IEBAIG5hbWVzcGFj
ZSBLSlMgewogCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdPYmplY3QoUmVnaXN0ZXJJRCog
ZHN0KSB7IHJldHVybiBlbWl0TnVsbGFyeU9wKG9wX25ld19vYmplY3QsIGRzdCk7IH0KICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdE5ld0FycmF5KFJlZ2lzdGVySUQqIGRzdCkgeyByZXR1cm4gZW1p
dE51bGxhcnlPcChvcF9uZXdfYXJyYXksIGRzdCk7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dE5ld0FycmF5V2l0aG91dEVsaXNpb24oUmVnaXN0ZXJJRCogZHN0LCBFbGVtZW50Tm9kZSopOwog
CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdGdW5jdGlvbihSZWdpc3RlcklEKiBkc3QsIEZ1
bmNEZWNsTm9kZSogZnVuYyk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdGdW5jdGlvbkV4
cHJlc3Npb24oUmVnaXN0ZXJJRCogZHN0LCBGdW5jRXhwck5vZGUqIGZ1bmMpOwpJbmRleDogSmF2
YVNjcmlwdENvcmUvVk0vTWFjaGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
Vk0vTWFjaGluZS5jcHAJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvVk0vTWFj
aGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2NCw2ICs5NjQsMjEgQEAgSlNWYWx1ZSogTWFj
aGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICArK3ZQQzsKICAgICAgICAgTkVY
VF9PUENPREU7CiAgICAgfQorICAgIEJFR0lOX09QQ09ERShvcF9uZXdfYXJyYXlfd2l0aF9hcmdz
KSB7CisgICAgICAgIC8qIG5ld19hcnJheV93aXRoX2FyZ3MgZHN0KHIpIGZpcnN0QXJnKHIpIGFy
Z0NvdW50KG4pCisKKyAgICAgICAgICAgQ29uc3RydWN0cyBhIG5ldyBlbXB0eSBBcnJheSBpbnN0
YW5jZSB1c2luZyB0aGUgb3JpZ2luYWwKKyAgICAgICAgICAgY29uc3RydWN0b3IsIGFuZCBwdXRz
IHRoZSByZXN1bHQgaW4gcmVnaXN0ZXIgZHN0LgorICAgICAgICAqLworICAgICAgICBpbnQgZHN0
ID0gKCsrdlBDKS0+dS5vcGVyYW5kOworICAgICAgICBpbnQgZmlyc3RBcmcgPSAoKyt2UEMpLT51
Lm9wZXJhbmQ7CisgICAgICAgIGludCBhcmdDb3VudCA9ICgrK3ZQQyktPnUub3BlcmFuZDsKKyAg
ICAgICAgQXJnTGlzdCBhcmdzKHJlaW50ZXJwcmV0X2Nhc3Q8SlNWYWx1ZSoqKj4ocmVnaXN0ZXJC
YXNlKSwgciAtICgqcmVnaXN0ZXJCYXNlKSArIGZpcnN0QXJnLCBhcmdDb3VudCk7CisgICAgICAg
IHJbZHN0XS51LmpzVmFsdWUgPSBjb25zdHJ1Y3RBcnJheShleGVjLCBhcmdzKTsKKworICAgICAg
ICArK3ZQQzsKKyAgICAgICAgTkVYVF9PUENPREU7CisgICAgfQogICAgIEJFR0lOX09QQ09ERShv
cF9uZXdfcmVnZXhwKSB7CiAgICAgICAgIC8qIG5ld19yZWdleHAgZHN0KHIpIHJlZ0V4cChyZSkK
IApJbmRleDogSmF2YVNjcmlwdENvcmUvVk0vT3Bjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9WTS9PcGNvZGUuY3BwCShyZXZpc2lvbiAzNDgyNikKKysrIEphdmFTY3JpcHRD
b3JlL1ZNL09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RhdGlj
IGNvbnN0IGNoYXIqIG9wY29kZU5hbWVzW10gPSB7CiAgICAgImxvYWQgICAgICAgICIsCiAgICAg
Im5ld19vYmplY3QgICIsCiAgICAgIm5ld19hcnJheSAgICIsCisgICAgIm5ld19hcnJheV93aXRo
X2FyZ3MiLAogICAgICJuZXdfcmVnZXhwICAiLAogICAgICJtb3YgICAgICAgICAiLAogICAgIApJ
bmRleDogSmF2YVNjcmlwdENvcmUvVk0vT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvVk0vT3Bjb2RlLmgJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvVk0v
T3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgICAgIG1hY3JvKG9wX2xvYWQpIFwKICAgICAgICAgbWFjcm8ob3BfbmV3X29iamVjdCkg
XAogICAgICAgICBtYWNybyhvcF9uZXdfYXJyYXkpIFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X2Fy
cmF5X3dpdGhfYXJncykgXAogICAgICAgICBtYWNybyhvcF9uZXdfcmVnZXhwKSBcCiAgICAgICAg
IG1hY3JvKG9wX21vdikgXAogICAgICAgICBcCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9k
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJKHJldmlz
aW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQ2LDIxICszNDYsMzIgQEAgUmVnaXN0ZXJJRCogUmVzb2x2ZU5vZGU6OmVtaXRDb2Rl
KENvZGVHZQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXJyYXlOb2RlIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0KIFJlZ2lzdGVySUQqIEFycmF5
Tm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3Qp
CiB7CisgICAgaWYgKCFtX2VsaXNpb24pIHsKKyAgICAgICAgaWYgKEVsZW1lbnROb2RlKiBuID0g
bV9lbGVtZW50LmdldCgpKSB7CisgICAgICAgICAgICBmb3IgKDsgbjsgbiA9IG4tPm5leHQoKSkg
eworICAgICAgICAgICAgICAgIGlmIChuLT5tX2VsaXNpb24pCisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFuKQorICAgICAgICAgICAg
ICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdE5ld0FycmF5V2l0aG91dEVsaXNpb24oZ2VuZXJhdG9y
LmZpbmFsRGVzdGluYXRpb24oZHN0KSwgbV9lbGVtZW50LmdldCgpKTsKKyAgICAgICAgfQorICAg
IH0KKwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBuZXdBcnJheSA9IGdlbmVyYXRvci5lbWl0TmV3
QXJyYXkoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpKTsKICAgICB1bnNpZ25lZCBsZW5n
dGggPSAwOwogCi0gICAgUmVnaXN0ZXJJRCogdmFsdWU7Ci0gICAgZm9yIChFbGVtZW50Tm9kZSog
biA9IG1fZWxlbWVudC5nZXQoKTsgbjsgbiA9IG4tPm1fbmV4dC5nZXQoKSkgewotICAgICAgICB2
YWx1ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShuLT5tX25vZGUuZ2V0KCkpOworICAgIGZvciAoRWxl
bWVudE5vZGUqIG4gPSBtX2VsZW1lbnQuZ2V0KCk7IG47IG4gPSBuLT5uZXh0KCkpIHsKKyAgICAg
ICAgUmVnaXN0ZXJJRCogdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUobi0+bV9ub2RlLmdldCgp
KTsKICAgICAgICAgbGVuZ3RoICs9IG4tPm1fZWxpc2lvbjsKICAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQdXRCeUluZGV4KG5ld0FycmF5LmdldCgpLCBsZW5ndGgrKywgdmFsdWUpOwogICAgIH0KIAot
ICAgIHZhbHVlID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwg
anNOdW1iZXIoZ2VuZXJhdG9yLmdsb2JhbEV4ZWMoKSwgbV9lbGlzaW9uICsgbGVuZ3RoKSk7Ci0g
ICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKG5ld0FycmF5LmdldCgpLCBnZW5lcmF0b3IucHJvcGVy
dHlOYW1lcygpLmxlbmd0aCwgdmFsdWUpOworICAgIGlmIChtX2VsaXNpb24pIHsKKyAgICAgICAg
UmVnaXN0ZXJJRCogdmFsdWUgPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBv
cmFyeSgpLCBqc051bWJlcihnZW5lcmF0b3IuZ2xvYmFsRXhlYygpLCBtX2VsaXNpb24gKyBsZW5n
dGgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKG5ld0FycmF5LmdldCgpLCBnZW5l
cmF0b3IucHJvcGVydHlOYW1lcygpLmxlbmd0aCwgdmFsdWUpOworICAgIH0KIAogICAgIHJldHVy
biBnZW5lcmF0b3IubW92ZVRvRGVzdGluYXRpb25JZk5lZWRlZChkc3QsIG5ld0FycmF5LmdldCgp
KTsKIH0KQEAgLTM3MSw4ICszODIsNyBAQCBSZWdpc3RlcklEKiBPYmplY3RMaXRlcmFsTm9kZTo6
ZW1pdENvZGUoCiB7CiAgICAgaWYgKG1fbGlzdCkKICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0Tm9kZShkc3QsIG1fbGlzdC5nZXQoKSk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gZ2Vu
ZXJhdG9yLmVtaXROZXdPYmplY3QoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSk7Cisg
ICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0TmV3T2JqZWN0KGdlbmVyYXRvci5maW5hbERlc3RpbmF0
aW9uKGRzdCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvcGVy
dHlMaXN0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogSmF2YVNjcmlw
dENvcmUva2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVz
LmgJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQwOSw4ICs0MDksMTEgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIHZp
cnR1YWwgUHJlY2VkZW5jZSBwcmVjZWRlbmNlKCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgcmV0dXJuIFByZWNFeHByZXNzaW9uOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1U
byhTb3VyY2VTdHJlYW0mKSBjb25zdCBLSlNfRkFTVF9DQUxMOwogCisgICAgICAgIEVsZW1lbnRO
b2RlKiBuZXh0KCkgeyByZXR1cm4gbV9uZXh0LmdldCgpOyB9CiAgICAgICAgIFBhc3NSZWZQdHI8
RWxlbWVudE5vZGU+IHJlbGVhc2VOZXh0KCkgS0pTX0ZBU1RfQ0FMTCB7IHJldHVybiBtX25leHQu
cmVsZWFzZSgpOyB9CiAKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHZhbHVlKCkgeyByZXR1cm4g
bV9ub2RlLmdldCgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgQXJy
YXlOb2RlOwogICAgICAgICBMaXN0UmVmUHRyPEVsZW1lbnROb2RlPiBtX25leHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21969</attachid>
            <date>2008-06-26 23:49:32 -0700</date>
            <delta_ts>2008-06-27 21:35:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>NewArrayPatch.txt</filename>
            <type>text/plain</type>
            <size>8866</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDgtMDYtMjYgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Nzg3CisgICAgICAgICAgY3JlYXRlIG1vc3QgYXJyYXlzIGZyb20gdmFsdWVzIGluIHJlZ2lz
dGVycyByYXRoZXIgdGhhbiB3aXRoIG11bHRpcGxlIHB1dCBvcGVyYXRpb25zCisKKyAgICAgICAg
U3VuU3BpZGVyIHNheXMgMC41JSBmYXN0ZXIuCisKKyAgICAgICAgKiBWTS9Db2RlQmxvY2suY3Bw
OgorICAgICAgICAoS0pTOjpDb2RlQmxvY2s6OmR1bXApOiBBZGRlZCBvcF9uZXdfYXJyYXlfd2l0
aF9hcmdzLgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgorICAgICAgICAoS0pTOjpNYWNoaW5l
Ojpwcml2YXRlRXhlY3V0ZSk6IEFkZGVkIG9wX25ld19hcnJheV93aXRoX2FyZ3MuCisgICAgICAg
ICogVk0vT3Bjb2RlLmNwcDogRGl0dG8uCisgICAgICAgICogVk0vT3Bjb2RlLmg6IERpdHRvLgor
CisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChLSlM6OkNvZGVHZW5l
cmF0b3I6OmVtaXROZXdBcnJheVdpdGhvdXRFbGlzaW9uKTogQWRkZWQuCisgICAgICAgICogVk0v
Q29kZUdlbmVyYXRvci5oOiBEaXR0by4KKworICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6CisgICAg
ICAgIChLSlM6OkFycmF5Tm9kZTo6ZW1pdENvZGUpOiBDYWxsIGVtaXROZXdBcnJheVdpdGhvdXRF
bGlzaW9uIGlmIHRoZSBhcnJheSBkb2Vzbid0IGhhdmUKKyAgICAgICAgYW55IGhvbGVzIGluIGl0
IC0tIHRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlLiBBbHNvLCBpbiB0aGUgc2xvdyBjYXNlLCBkb24n
dCBlbWl0IGV4dHJhCisgICAgICAgIGNvZGUgdG8gc2V0IHRoZSBsZW5ndGggaW4gdGhlIGNvbW1v
biBjYXNlIHdoZXJlIHRoZSBsZW5ndGggaXMgYWxyZWFkeSBnb2luZyB0byBiZQorICAgICAgICBj
b3JyZWN0LgorCisgICAgICAgICoga2pzL25vZGVzLmg6IEFkZGVkIHNvbWUgYWNjZXNzb3JzIHRv
IEVsZW1lbnROb2RlIHNvIHRoZSBjb2RlIGdlbmVyYXRvciBjYW4gaXRlcmF0ZQorICAgICAgICB0
aHJvdWdoIGVsZW1lbnRzIGFuZCBnZW5lcmF0ZSBjb2RlIHRvIGV2YWx1YXRlIHRoZW0uCisKIDIw
MDgtMDYtMjYgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBTcGVjdWxh
dGl2ZSBmaXggZm9yIHRoZSBXaW5kb3dzIGJ1aWxkLgpJbmRleDogSmF2YVNjcmlwdENvcmUvVk0v
Q29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlQmxvY2su
Y3BwCShyZXZpc2lvbiAzNDgyNikKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyMSw2ICsyMjEsMTMgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAo
RXhlY1N0YXRlKiBleGVjLCBjbwogICAgICAgICAgICAgcHJpbnRmKCJbJTRkXSBuZXdfYXJyYXlc
dCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShyMCkuY19zdHIoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX25ld19hcnJheV93aXRoX2FyZ3M6
IHsKKyAgICAgICAgICAgIGludCBkc3QgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAg
IGludCBhcmd2ID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBpbnQgYXJnYyA9ICgr
K2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRmKCJbJTRkXSBuZXdfYXJyYXlcdCAl
cywgJWQsICVkXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGRzdCkuY19zdHIoKSwgYXJndiwg
YXJnYyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25l
d19yZWdleHA6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IHJlMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwpJbmRleDogSmF2YVNjcmlwdENv
cmUvVk0vQ29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0v
Q29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvVk0v
Q29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3MywxMiArNzczLDI2IEBAIFJl
Z2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRQdXRCeUluZGUKICAgICByZXR1cm4gdmFsdWU7
CiB9CiAKLVJlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXROZXdGdW5jdGlvbihSZWdpc3Rl
cklEKiByMCwgRnVuY0RlY2xOb2RlKiBuKQorUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1p
dE5ld0FycmF5V2l0aG91dEVsaXNpb24oUmVnaXN0ZXJJRCogZHN0LCBFbGVtZW50Tm9kZSogZWxl
bWVudHMpCit7CisgICAgVmVjdG9yPFJlZlB0cjxSZWdpc3RlcklEPiwgMTY+IGFyZ3Y7CisgICAg
Zm9yIChFbGVtZW50Tm9kZSogbiA9IGVsZW1lbnRzOyBuOyBuID0gbi0+bmV4dCgpKSB7CisgICAg
ICAgIGFyZ3YuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKKyAgICAgICAgZW1pdE5vZGUoYXJndi5s
YXN0KCkuZ2V0KCksIG4tPnZhbHVlKCkpOworICAgIH0KKyAgICBlbWl0T3Bjb2RlKG9wX25ld19h
cnJheV93aXRoX2FyZ3MpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkp
OworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd2WzBdLT5pbmRleCgpKTsgLy8gYXJndgor
ICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcmd2LnNpemUoKSk7IC8vIGFyZ2MKKyAgICByZXR1
cm4gZHN0OworfQorCitSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjplbWl0TmV3RnVuY3Rpb24o
UmVnaXN0ZXJJRCogZHN0LCBGdW5jRGVjbE5vZGUqIG4pCiB7CiAgICAgZW1pdE9wY29kZShvcF9u
ZXdfZnVuYyk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHIwLT5pbmRleCgpKTsKKyAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoYWRkQ29uc3RhbnQobikpOwotICAgIHJldHVybiByMDsKKyAgICByZXR1cm4gZHN0Owog
fQogCiBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjplbWl0TmV3UmVnRXhwKFJlZ2lzdGVySUQq
IGRzdCwgUmVnRXhwKiByZWdFeHApCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2VuZXJh
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0vQ29kZUdlbmVyYXRvci5oCShy
ZXZpc2lvbiAzNDgyNikKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXROZXdPYmplY3QoUmVnaXN0ZXJJRCogZHN0KSB7IHJldHVybiBlbWl0
TnVsbGFyeU9wKG9wX25ld19vYmplY3QsIGRzdCk7IH0KICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dE5ld0FycmF5KFJlZ2lzdGVySUQqIGRzdCkgeyByZXR1cm4gZW1pdE51bGxhcnlPcChvcF9uZXdf
YXJyYXksIGRzdCk7IH0KKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE5ld0FycmF5V2l0aG91dEVs
aXNpb24oUmVnaXN0ZXJJRCogZHN0LCBFbGVtZW50Tm9kZSopOwogCiAgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXROZXdGdW5jdGlvbihSZWdpc3RlcklEKiBkc3QsIEZ1bmNEZWNsTm9kZSogZnVuYyk7
CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXROZXdGdW5jdGlvbkV4cHJlc3Npb24oUmVnaXN0ZXJJ
RCogZHN0LCBGdW5jRXhwck5vZGUqIGZ1bmMpOwpJbmRleDogSmF2YVNjcmlwdENvcmUvVk0vTWFj
aGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0vTWFjaGluZS5jcHAJKHJl
dmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvVk0vTWFjaGluZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk2NCw2ICs5NjQsMjEgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1
dGUoRXhlY3V0aQogICAgICAgICArK3ZQQzsKICAgICAgICAgTkVYVF9PUENPREU7CiAgICAgfQor
ICAgIEJFR0lOX09QQ09ERShvcF9uZXdfYXJyYXlfd2l0aF9hcmdzKSB7CisgICAgICAgIC8qIG5l
d19hcnJheV93aXRoX2FyZ3MgZHN0KHIpIGZpcnN0QXJnKHIpIGFyZ0NvdW50KG4pCisKKyAgICAg
ICAgICAgQ29uc3RydWN0cyBhIG5ldyBlbXB0eSBBcnJheSBpbnN0YW5jZSB1c2luZyB0aGUgb3Jp
Z2luYWwKKyAgICAgICAgICAgY29uc3RydWN0b3IsIGFuZCBwdXRzIHRoZSByZXN1bHQgaW4gcmVn
aXN0ZXIgZHN0LgorICAgICAgICAqLworICAgICAgICBpbnQgZHN0ID0gKCsrdlBDKS0+dS5vcGVy
YW5kOworICAgICAgICBpbnQgZmlyc3RBcmcgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CisgICAgICAg
IGludCBhcmdDb3VudCA9ICgrK3ZQQyktPnUub3BlcmFuZDsKKyAgICAgICAgQXJnTGlzdCBhcmdz
KHJlaW50ZXJwcmV0X2Nhc3Q8SlNWYWx1ZSoqKj4ocmVnaXN0ZXJCYXNlKSwgciAtICgqcmVnaXN0
ZXJCYXNlKSArIGZpcnN0QXJnLCBhcmdDb3VudCk7CisgICAgICAgIHJbZHN0XS51LmpzVmFsdWUg
PSBjb25zdHJ1Y3RBcnJheShleGVjLCBhcmdzKTsKKworICAgICAgICArK3ZQQzsKKyAgICAgICAg
TkVYVF9PUENPREU7CisgICAgfQogICAgIEJFR0lOX09QQ09ERShvcF9uZXdfcmVnZXhwKSB7CiAg
ICAgICAgIC8qIG5ld19yZWdleHAgZHN0KHIpIHJlZ0V4cChyZSkKIApJbmRleDogSmF2YVNjcmlw
dENvcmUvVk0vT3Bjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9PcGNv
ZGUuY3BwCShyZXZpc2lvbiAzNDgyNikKKysrIEphdmFTY3JpcHRDb3JlL1ZNL09wY29kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIG9wY29k
ZU5hbWVzW10gPSB7CiAgICAgImxvYWQgICAgICAgICIsCiAgICAgIm5ld19vYmplY3QgICIsCiAg
ICAgIm5ld19hcnJheSAgICIsCisgICAgIm5ld19hcnJheV93aXRoX2FyZ3MiLAogICAgICJuZXdf
cmVnZXhwICAiLAogICAgICJtb3YgICAgICAgICAiLAogICAgIApJbmRleDogSmF2YVNjcmlwdENv
cmUvVk0vT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0vT3Bjb2RlLmgJ
KHJldmlzaW9uIDM0ODI2KQorKysgSmF2YVNjcmlwdENvcmUvVk0vT3Bjb2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIG1hY3JvKG9w
X2xvYWQpIFwKICAgICAgICAgbWFjcm8ob3BfbmV3X29iamVjdCkgXAogICAgICAgICBtYWNybyhv
cF9uZXdfYXJyYXkpIFwKKyAgICAgICAgbWFjcm8ob3BfbmV3X2FycmF5X3dpdGhfYXJncykgXAog
ICAgICAgICBtYWNybyhvcF9uZXdfcmVnZXhwKSBcCiAgICAgICAgIG1hY3JvKG9wX21vdikgXAog
ICAgICAgICBcCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJKHJldmlzaW9uIDM0ODI2KQorKysgSmF2
YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDIxICszNDYs
MzIgQEAgUmVnaXN0ZXJJRCogUmVzb2x2ZU5vZGU6OmVtaXRDb2RlKENvZGVHZQogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXJyYXlOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi0KIFJlZ2lzdGVySUQqIEFycmF5Tm9kZTo6ZW1pdENvZGUoQ29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CisgICAgaWYgKCFtX2Vs
aXNpb24pIHsKKyAgICAgICAgaWYgKEVsZW1lbnROb2RlKiBuID0gbV9lbGVtZW50LmdldCgpKSB7
CisgICAgICAgICAgICBmb3IgKDsgbjsgbiA9IG4tPm5leHQoKSkgeworICAgICAgICAgICAgICAg
IGlmIChuLT5tX2VsaXNpb24pCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKCFuKQorICAgICAgICAgICAgICAgIHJldHVybiBnZW5lcmF0
b3IuZW1pdE5ld0FycmF5V2l0aG91dEVsaXNpb24oZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24o
ZHN0KSwgbV9lbGVtZW50LmdldCgpKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBuZXdBcnJheSA9IGdlbmVyYXRvci5lbWl0TmV3QXJyYXkoZ2VuZXJhdG9yLnRl
bXBEZXN0aW5hdGlvbihkc3QpKTsKICAgICB1bnNpZ25lZCBsZW5ndGggPSAwOwogCi0gICAgUmVn
aXN0ZXJJRCogdmFsdWU7Ci0gICAgZm9yIChFbGVtZW50Tm9kZSogbiA9IG1fZWxlbWVudC5nZXQo
KTsgbjsgbiA9IG4tPm1fbmV4dC5nZXQoKSkgewotICAgICAgICB2YWx1ZSA9IGdlbmVyYXRvci5l
bWl0Tm9kZShuLT5tX25vZGUuZ2V0KCkpOworICAgIGZvciAoRWxlbWVudE5vZGUqIG4gPSBtX2Vs
ZW1lbnQuZ2V0KCk7IG47IG4gPSBuLT5uZXh0KCkpIHsKKyAgICAgICAgUmVnaXN0ZXJJRCogdmFs
dWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUobi0+bV9ub2RlLmdldCgpKTsKICAgICAgICAgbGVuZ3Ro
ICs9IG4tPm1fZWxpc2lvbjsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQdXRCeUluZGV4KG5ld0Fy
cmF5LmdldCgpLCBsZW5ndGgrKywgdmFsdWUpOwogICAgIH0KIAotICAgIHZhbHVlID0gZ2VuZXJh
dG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNOdW1iZXIoZ2VuZXJhdG9y
Lmdsb2JhbEV4ZWMoKSwgbV9lbGlzaW9uICsgbGVuZ3RoKSk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQ
dXRCeUlkKG5ld0FycmF5LmdldCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmxlbmd0aCwg
dmFsdWUpOworICAgIGlmIChtX2VsaXNpb24pIHsKKyAgICAgICAgUmVnaXN0ZXJJRCogdmFsdWUg
PSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcihn
ZW5lcmF0b3IuZ2xvYmFsRXhlYygpLCBtX2VsaXNpb24gKyBsZW5ndGgpKTsKKyAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRQdXRCeUlkKG5ld0FycmF5LmdldCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1l
cygpLmxlbmd0aCwgdmFsdWUpOworICAgIH0KIAogICAgIHJldHVybiBnZW5lcmF0b3IubW92ZVRv
RGVzdGluYXRpb25JZk5lZWRlZChkc3QsIG5ld0FycmF5LmdldCgpKTsKIH0KQEAgLTM3MSw4ICsz
ODIsNyBAQCBSZWdpc3RlcklEKiBPYmplY3RMaXRlcmFsTm9kZTo6ZW1pdENvZGUoCiB7CiAgICAg
aWYgKG1fbGlzdCkKICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fbGlz
dC5nZXQoKSk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROZXdPYmpl
Y3QoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSk7CisgICAgcmV0dXJuIGdlbmVyYXRv
ci5lbWl0TmV3T2JqZWN0KGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCkpOwogfQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvcGVydHlMaXN0Tm9kZSAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgJKHJldmlzaW9uIDM0ODI2
KQorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwOSw4
ICs0MDksMTEgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIHZpcnR1YWwgUHJlY2VkZW5jZSBw
cmVjZWRlbmNlKCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIFByZWNFeHBy
ZXNzaW9uOyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBj
b25zdCBLSlNfRkFTVF9DQUxMOwogCisgICAgICAgIEVsZW1lbnROb2RlKiBuZXh0KCkgeyByZXR1
cm4gbV9uZXh0LmdldCgpOyB9CiAgICAgICAgIFBhc3NSZWZQdHI8RWxlbWVudE5vZGU+IHJlbGVh
c2VOZXh0KCkgS0pTX0ZBU1RfQ0FMTCB7IHJldHVybiBtX25leHQucmVsZWFzZSgpOyB9CiAKKyAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIHZhbHVlKCkgeyByZXR1cm4gbV9ub2RlLmdldCgpOyB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgQXJyYXlOb2RlOwogICAgICAgICBM
aXN0UmVmUHRyPEVsZW1lbnROb2RlPiBtX25leHQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21981</attachid>
            <date>2008-06-27 21:35:39 -0700</date>
            <delta_ts>2008-06-28 00:36:50 -0700</delta_ts>
            <desc>patch, updated for TOT and revised based on Geoff&apos;s feedback</desc>
            <filename>NewArrayPatch.txt</filename>
            <type>text/plain</type>
            <size>14488</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0ODQxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMDgtMDYtMjcgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5Nzg3CisgICAgICAgICAgY3JlYXRlIG1vc3QgYXJyYXlzIGZyb20gdmFsdWVzIGluIHJlZ2lz
dGVycyByYXRoZXIgdGhhbiB3aXRoIG11bHRpcGxlIHB1dCBvcGVyYXRpb25zCisKKyAgICAgICAg
U3VuU3BpZGVyIHNheXMgMC44JSBmYXN0ZXIuCisKKyAgICAgICAgKiBWTS9Db2RlQmxvY2suY3Bw
OgorICAgICAgICAoS0pTOjpDb2RlQmxvY2s6OmR1bXApOiBBZGRlZCBhcmd2IGFuZCBhcmdjIHBh
cmFtZXRlcnMgdG8gbmV3X2FycmF5LgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgorICAgICAg
ICAoS0pTOjpNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZSk6IERpdHRvLgorCisgICAgICAgICogVk0v
Q29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXROZXdB
cnJheSk6IEFkZGVkLgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDogQWRkZWQgRWxlbWVu
dE5vZGUqIGFyZ3VtZW50IHRvIGVtaXROZXdBcnJheS4KKworICAgICAgICAqIGtqcy9ub2Rlcy5j
cHA6CisgICAgICAgIChLSlM6OkFycmF5Tm9kZTo6ZW1pdENvZGUpOiBQYXNzIHRoZSBFbGVtZW50
Tm9kZSB0byBlbWl0TmV3QXJyYXkgc28gaXQgY2FuIGJlCisgICAgICAgIGluaXRpYWxpemVkIHdp
dGggYXMgbWFueSBlbGVtZW50cyBhcyBwb3NzaWJsZS4gSWYgdGhlIGFycmF5IGRvZXNuJ3QgaGF2
ZSBhbnkKKyAgICAgICAgaG9sZXMgaW4gaXQsIHRoYXQncyBhbGwgdGhhdCdzIG5lZWRlZC4gSWYg
dGhlcmUgYXJlIGhvbGVzLCB0aGVuIGVtaXQgc29tZSBzZXBhcmF0ZQorICAgICAgICBwdXQgb3Bl
cmF0aW9ucyBmb3IgdGhlIG90aGVyIHZhbHVlcyBpbiB0aGUgYXJyYXkgYW5kIGZvciB0aGUgbGVu
Z3RoIGFzIG5lZWRlZC4KKworICAgICAgICAqIGtqcy9ub2Rlcy5oOiBBZGRlZCBzb21lIGFjY2Vz
c29ycyB0byBFbGVtZW50Tm9kZSBzbyB0aGUgY29kZSBnZW5lcmF0b3IgY2FuCisgICAgICAgIGl0
ZXJhdGUgdGhyb3VnaCBlbGVtZW50cyBhbmQgZ2VuZXJhdGUgY29kZSB0byBldmFsdWF0ZSB0aGVt
LiBOb3cgQXJyYXlOb2RlIGRvZXMKKyAgICAgICAgbm90IG5lZWQgdG8gYmUgYSBmcmllbmQuIEFs
c28gdG9vayBvdXQgc29tZSB1bnVzZWQgUGxhY2VtZW50TmV3QWRvcHRUeXBlCisgICAgICAgIGNv
bnN0cnVjdG9ycy4KKwogMjAwOC0wNi0yNyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9A
d2Via2l0Lm9yZz4KIAogICAgICAgICBHdGsgYW5kIFF0IGJ1aWxkIGZpeDogUmVtb3ZlIFJlZ2lz
dGVyRmlsZVN0YWNrIGZyb20gdGhlIGJ1aWxkCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9Db2Rl
QmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5jcHAJ
KHJldmlzaW9uIDM0ODQxKQorKysgSmF2YVNjcmlwdENvcmUvVk0vQ29kZUJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjE3LDggKzIxNywxMCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcChFeGVj
U3RhdGUqIGV4ZWMsIGNvCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX25ld19hcnJheTogewotICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJh
bmQ7Ci0gICAgICAgICAgICBwcmludGYoIlslNGRdIG5ld19hcnJheVx0ICVzXG4iLCBsb2NhdGlv
biwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpKTsKKyAgICAgICAgICAgIGludCBkc3QgPSAoKytp
dCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBhcmd2ID0gKCsraXQpLT51Lm9wZXJhbmQ7
CisgICAgICAgICAgICBpbnQgYXJnYyA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAg
cHJpbnRmKCJbJTRkXSBuZXdfYXJyYXlcdCAlcywgJXMsICVkXG4iLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGRzdCkuY19zdHIoKSwgcmVnaXN0ZXJOYW1lKGFyZ3YpLmNfc3RyKCksIGFyZ2MpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZXdfcmVnZXhw
OiB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMzQ4NDEp
CisrKyBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzkwLDEyICs3OTAsMjggQEAgUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdFB1dEJ5
SW5kZQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6
ZW1pdE5ld0Z1bmN0aW9uKFJlZ2lzdGVySUQqIHIwLCBGdW5jRGVjbE5vZGUqIG4pCitSZWdpc3Rl
cklEKiBDb2RlR2VuZXJhdG9yOjplbWl0TmV3QXJyYXkoUmVnaXN0ZXJJRCogZHN0LCBFbGVtZW50
Tm9kZSogZWxlbWVudHMpCit7CisgICAgVmVjdG9yPFJlZlB0cjxSZWdpc3RlcklEPiwgMTY+IGFy
Z3Y7CisgICAgZm9yIChFbGVtZW50Tm9kZSogbiA9IGVsZW1lbnRzOyBuOyBuID0gbi0+bmV4dCgp
KSB7CisgICAgICAgIGlmIChuLT5lbGlzaW9uKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgYXJndi5hcHBlbmQobmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBlbWl0Tm9kZShhcmd2Lmxh
c3QoKS5nZXQoKSwgbi0+dmFsdWUoKSk7CisgICAgfQorICAgIGVtaXRPcGNvZGUob3BfbmV3X2Fy
cmF5KTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKKyAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoYXJndi5zaXplKCkgPyBhcmd2WzBdLT5pbmRleCgpIDogMCk7IC8v
IGFyZ3YKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXJndi5zaXplKCkpOyAvLyBhcmdjCisg
ICAgcmV0dXJuIGRzdDsKK30KKworUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Z1
bmN0aW9uKFJlZ2lzdGVySUQqIGRzdCwgRnVuY0RlY2xOb2RlKiBuKQogewogICAgIGVtaXRPcGNv
ZGUob3BfbmV3X2Z1bmMpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChyMC0+aW5kZXgoKSk7
CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKGFkZENvbnN0YW50KG4pKTsKLSAgICByZXR1cm4gcjA7CisgICAgcmV0dXJu
IGRzdDsKIH0KIAogUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdE5ld1JlZ0V4cChSZWdp
c3RlcklEKiBkc3QsIFJlZ0V4cCogcmVnRXhwKQpJbmRleDogSmF2YVNjcmlwdENvcmUvVk0vQ29k
ZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0
b3IuaAkocmV2aXNpb24gMzQ4NDEpCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2VuZXJhdG9y
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw3ICsxOTksNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdFVuYXJ5Tm9Ec3RPcChPcGNvZGVJRCwgUmVnaXN0ZXJJRCog
c3JjKTsKIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0TmV3T2JqZWN0KFJlZ2lzdGVySUQqIGRz
dCkgeyByZXR1cm4gZW1pdE51bGxhcnlPcChvcF9uZXdfb2JqZWN0LCBkc3QpOyB9Ci0gICAgICAg
IFJlZ2lzdGVySUQqIGVtaXROZXdBcnJheShSZWdpc3RlcklEKiBkc3QpIHsgcmV0dXJuIGVtaXRO
dWxsYXJ5T3Aob3BfbmV3X2FycmF5LCBkc3QpOyB9CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRO
ZXdBcnJheShSZWdpc3RlcklEKiBkc3QsIEVsZW1lbnROb2RlKik7IC8vIHN0b3BzIGF0IGZpcnN0
IGVsaXNpb24KIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0TmV3RnVuY3Rpb24oUmVnaXN0ZXJJ
RCogZHN0LCBGdW5jRGVjbE5vZGUqIGZ1bmMpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0TmV3
RnVuY3Rpb25FeHByZXNzaW9uKFJlZ2lzdGVySUQqIGRzdCwgRnVuY0V4cHJOb2RlKiBmdW5jKTsK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL1ZNL01hY2hpbmUuY3BwCShyZXZpc2lvbiAzNDg0MSkKKysrIEphdmFTY3JpcHRD
b3JlL1ZNL01hY2hpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MzEsMTMgKzkzMSwxNiBAQCBK
U1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAgICAgICAgIE5FWFRfT1BD
T0RFOwogICAgIH0KICAgICBCRUdJTl9PUENPREUob3BfbmV3X2FycmF5KSB7Ci0gICAgICAgIC8q
IG5ld19hcnJheSBkc3QocikKKyAgICAgICAgLyogbmV3X2FycmF5IGRzdChyKSBmaXJzdEFyZyhy
KSBhcmdDb3VudChuKQogCiAgICAgICAgICAgIENvbnN0cnVjdHMgYSBuZXcgZW1wdHkgQXJyYXkg
aW5zdGFuY2UgdXNpbmcgdGhlIG9yaWdpbmFsCiAgICAgICAgICAgIGNvbnN0cnVjdG9yLCBhbmQg
cHV0cyB0aGUgcmVzdWx0IGluIHJlZ2lzdGVyIGRzdC4KICAgICAgICAgKi8KICAgICAgICAgaW50
IGRzdCA9ICgrK3ZQQyktPnUub3BlcmFuZDsKLSAgICAgICAgcltkc3RdLnUuanNWYWx1ZSA9IGNv
bnN0cnVjdEVtcHR5QXJyYXkoZXhlYyk7CisgICAgICAgIGludCBmaXJzdEFyZyA9ICgrK3ZQQykt
PnUub3BlcmFuZDsKKyAgICAgICAgaW50IGFyZ0NvdW50ID0gKCsrdlBDKS0+dS5vcGVyYW5kOwor
ICAgICAgICBBcmdMaXN0IGFyZ3MocmVpbnRlcnByZXRfY2FzdDxKU1ZhbHVlKioqPigmcmVnaXN0
ZXJCYXNlKSwgciAtIHJlZ2lzdGVyQmFzZSArIGZpcnN0QXJnLCBhcmdDb3VudCk7CisgICAgICAg
IHJbZHN0XS51LmpzVmFsdWUgPSBjb25zdHJ1Y3RBcnJheShleGVjLCBhcmdzKTsKIAogICAgICAg
ICArK3ZQQzsKICAgICAgICAgTkVYVF9PUENPREU7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
bm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJKHJl
dmlzaW9uIDM0ODQxKQorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQ2LDIzICszNDYsMzUgQEAgUmVnaXN0ZXJJRCogUmVzb2x2ZU5vZGU6OmVtaXRD
b2RlKENvZGVHZQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXJyYXlOb2Rl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0KIFJlZ2lzdGVySUQqIEFy
cmF5Tm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCiB7Ci0gICAgUmVmUHRyPFJlZ2lzdGVySUQ+IG5ld0FycmF5ID0gZ2VuZXJhdG9yLmVtaXRO
ZXdBcnJheShnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCkpOworICAgIC8vIEZJWE1FOiBT
aG91bGQgd2UgcHV0IGFsbCBvZiB0aGlzIGNvZGUgaW50byBlbWl0TmV3QXJyYXk/CisKICAgICB1
bnNpZ25lZCBsZW5ndGggPSAwOworICAgIEVsZW1lbnROb2RlKiBmaXJzdFB1dEVsZW1lbnQ7Cisg
ICAgZm9yIChmaXJzdFB1dEVsZW1lbnQgPSBtX2VsZW1lbnQuZ2V0KCk7IGZpcnN0UHV0RWxlbWVu
dDsgZmlyc3RQdXRFbGVtZW50ID0gZmlyc3RQdXRFbGVtZW50LT5uZXh0KCkpIHsKKyAgICAgICAg
aWYgKGZpcnN0UHV0RWxlbWVudC0+ZWxpc2lvbigpKQorICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICsrbGVuZ3RoOworICAgIH0KIAotICAgIFJlZ2lzdGVySUQqIHZhbHVlOwotICAgIGZvciAo
RWxlbWVudE5vZGUqIG4gPSBtX2VsZW1lbnQuZ2V0KCk7IG47IG4gPSBuLT5tX25leHQuZ2V0KCkp
IHsKLSAgICAgICAgdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUobi0+bV9ub2RlLmdldCgpKTsK
LSAgICAgICAgbGVuZ3RoICs9IG4tPm1fZWxpc2lvbjsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
dXRCeUluZGV4KG5ld0FycmF5LmdldCgpLCBsZW5ndGgrKywgdmFsdWUpOworICAgIGlmICghZmly
c3RQdXRFbGVtZW50ICYmICFtX2VsaXNpb24pCisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1p
dE5ld0FycmF5KGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIG1fZWxlbWVudC5nZXQo
KSk7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJyYXkgPSBnZW5lcmF0b3IuZW1pdE5ld0Fy
cmF5KGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgbV9lbGVtZW50LmdldCgpKTsKKwor
ICAgIGZvciAoRWxlbWVudE5vZGUqIG4gPSBmaXJzdFB1dEVsZW1lbnQ7IG47IG4gPSBuLT5uZXh0
KCkpIHsKKyAgICAgICAgUmVnaXN0ZXJJRCogdmFsdWUgPSBnZW5lcmF0b3IuZW1pdE5vZGUobi0+
dmFsdWUoKSk7CisgICAgICAgIGxlbmd0aCArPSBuLT5lbGlzaW9uKCk7CisgICAgICAgIGdlbmVy
YXRvci5lbWl0UHV0QnlJbmRleChhcnJheS5nZXQoKSwgbGVuZ3RoKyssIHZhbHVlKTsKICAgICB9
CiAKLSAgICB2YWx1ZSA9IGdlbmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCksIGpzTnVtYmVyKGdlbmVyYXRvci5nbG9iYWxFeGVjKCksIG1fZWxpc2lvbiArIGxlbmd0aCkp
OwotICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChuZXdBcnJheS5nZXQoKSwgZ2VuZXJhdG9yLnBy
b3BlcnR5TmFtZXMoKS5sZW5ndGgsIHZhbHVlKTsKKyAgICBpZiAobV9lbGlzaW9uKSB7CisgICAg
ICAgIFJlZ2lzdGVySUQqIHZhbHVlID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdU
ZW1wb3JhcnkoKSwganNOdW1iZXIoZ2VuZXJhdG9yLmdsb2JhbEV4ZWMoKSwgbV9lbGlzaW9uICsg
bGVuZ3RoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChhcnJheS5nZXQoKSwgZ2Vu
ZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIHZhbHVlKTsKKyAgICB9CiAKLSAgICByZXR1
cm4gZ2VuZXJhdG9yLm1vdmVUb0Rlc3RpbmF0aW9uSWZOZWVkZWQoZHN0LCBuZXdBcnJheS5nZXQo
KSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlVG9EZXN0aW5hdGlvbklmTmVlZGVkKGRzdCwg
YXJyYXkuZ2V0KCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gT2Jq
ZWN0TGl0ZXJhbE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzcxLDggKzM4
Myw3IEBAIFJlZ2lzdGVySUQqIE9iamVjdExpdGVyYWxOb2RlOjplbWl0Q29kZSgKIHsKICAgICBp
ZiAobV9saXN0KQogICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9saXN0
LmdldCgpKTsKLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdE5ld09iamVj
dChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9y
LmVtaXROZXdPYmplY3QoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSk7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0eUxpc3ROb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAkocmV2aXNpb24gMzQ4NDEp
CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDkg
KzEyMCw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIFBhcnNlclJlZkNvdW50ZWQgOiBO
b25jb3B5YWJsZSB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBQYXJzZXJSZWZDb3VudGVkKEpT
R2xvYmFsRGF0YSopIEtKU19GQVNUX0NBTEw7Ci0gICAgICAgIFBhcnNlclJlZkNvdW50ZWQoUGxh
Y2VtZW50TmV3QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgIHsKLSAgICAgICAgfQog
CiAgICAgICAgIEpTR2xvYmFsRGF0YSogbV9nbG9iYWxEYXRhOwogCkBAIC0xNDMsMTAgKzE0MCw2
IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICB0eXBlZGVmIERlY2xhcmF0aW9uU3RhY2tzOjpG
dW5jdGlvblN0YWNrIEZ1bmN0aW9uU3RhY2s7CiAKICAgICAgICAgTm9kZShKU0dsb2JhbERhdGEq
KSBLSlNfRkFTVF9DQUxMOwotICAgICAgICBOb2RlKFBsYWNlbWVudE5ld0Fkb3B0VHlwZSBwbGFj
ZW1lbnRBZG9wdCkgS0pTX0ZBU1RfQ0FMTAotICAgICAgICAgICAgOiBQYXJzZXJSZWZDb3VudGVk
KHBsYWNlbWVudEFkb3B0KQotICAgICAgICB7Ci0gICAgICAgIH0KIAogICAgICAgICAvKgogICAg
ICAgICAgICAgUmV0dXJuIHZhbHVlOiBUaGUgcmVnaXN0ZXIgaG9sZGluZyB0aGUgcHJvZHVjdGlv
bidzIHZhbHVlLgpAQCAtMjA1LDEyICsxOTgsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAg
ewogICAgICAgICB9CiAKLSAgICAgICAgLy8gU3BlY2lhbCBjb25zdHJ1Y3RvciBmb3IgY2FzZXMg
d2hlcmUgd2Ugb3ZlcndyaXRlIGFuIG9iamVjdCBpbiBwbGFjZS4KLSAgICAgICAgRXhwcmVzc2lv
bk5vZGUoUGxhY2VtZW50TmV3QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgICAgICA6
IE5vZGUoUGxhY2VtZW50TmV3QWRvcHQpCi0gICAgICAgIHsKLSAgICAgICAgfQotCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc051bWJlcigpIGNvbnN0IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gZmFs
c2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzUHVyZShDb2RlR2VuZXJhdG9yJikgY29uc3Qg
S0pTX0ZBU1RfQ0FMTCB7IHJldHVybiBmYWxzZTsgfSAgICAgICAgCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBpc0xvY2F0aW9uKCkgY29uc3QgS0pTX0ZBU1RfQ0FMTCB7IHJldHVybiBmYWxzZTsgfQpA
QCAtMzY2LDEzICszNTMsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgewogICAgICAgICB9
CiAKLSAgICAgICAgLy8gU3BlY2lhbCBjb25zdHJ1Y3RvciBmb3IgY2FzZXMgd2hlcmUgd2Ugb3Zl
cndyaXRlIGFuIG9iamVjdCBpbiBwbGFjZS4KLSAgICAgICAgUmVzb2x2ZU5vZGUoUGxhY2VtZW50
TmV3QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgICAgICA6IEV4cHJlc3Npb25Ob2Rl
KFBsYWNlbWVudE5ld0Fkb3B0KQotICAgICAgICAgICAgLCBtX2lkZW50KFBsYWNlbWVudE5ld0Fk
b3B0KQotICAgICAgICB7Ci0gICAgICAgIH0KLQogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQq
IGVtaXRDb2RlKENvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtK
U19GQVNUX0NBTEw7CkBAIC00MDksMTAgKzM4OSwxMyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAg
ICAgdmlydHVhbCBQcmVjZWRlbmNlIHByZWNlZGVuY2UoKSBjb25zdCB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyByZXR1cm4gUHJlY0V4cHJlc3Npb247IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHN0
cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtKU19GQVNUX0NBTEw7CiAKKyAgICAgICAgaW50
IGVsaXNpb24oKSBjb25zdCB7IHJldHVybiBtX2VsaXNpb247IH0KKyAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIHZhbHVlKCkgeyByZXR1cm4gbV9ub2RlLmdldCgpOyB9CisKKyAgICAgICAgRWxlbWVu
dE5vZGUqIG5leHQoKSB7IHJldHVybiBtX25leHQuZ2V0KCk7IH0KICAgICAgICAgUGFzc1JlZlB0
cjxFbGVtZW50Tm9kZT4gcmVsZWFzZU5leHQoKSBLSlNfRkFTVF9DQUxMIHsgcmV0dXJuIG1fbmV4
dC5yZWxlYXNlKCk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBBcnJh
eU5vZGU7CiAgICAgICAgIExpc3RSZWZQdHI8RWxlbWVudE5vZGU+IG1fbmV4dDsKICAgICAgICAg
aW50IG1fZWxpc2lvbjsKICAgICAgICAgUmVmUHRyPEV4cHJlc3Npb25Ob2RlPiBtX25vZGU7CkBA
IC02ODgsMTMgKzY3MSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICB7CiAgICAgICAgIH0K
IAotICAgICAgICBGdW5jdGlvbkNhbGxSZXNvbHZlTm9kZShQbGFjZW1lbnROZXdBZG9wdFR5cGUp
IEtKU19GQVNUX0NBTEwKLSAgICAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUoUGxhY2VtZW50TmV3
QWRvcHQpCi0gICAgICAgICAgICAsIG1faWRlbnQoUGxhY2VtZW50TmV3QWRvcHQpCi0gICAgICAg
ICAgICAsIG1fYXJncyhQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAgICAgewotICAgICAgICB9Ci0K
ICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKSBLSlNfRkFTVF9DQUxMOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdHJl
YW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdCBLSlNfRkFTVF9DQUxMOwpAQCAtNzU1LDEyICs3MzEs
NiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUHJl
UG9zdFJlc29sdmVOb2RlKFBsYWNlbWVudE5ld0Fkb3B0VHlwZSkgS0pTX0ZBU1RfQ0FMTAotICAg
ICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAgICAgICAg
ICwgbV9pZGVudChQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAgICAgewotICAgICAgICB9Ci0KICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudDsKICAgICAgICAgc2l6ZV90
IG1faW5kZXg7IC8vIFVzZWQgYnkgTG9jYWxWYXJQb3N0Zml4Tm9kZS4KQEAgLTc3MywxMSArNzQz
LDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFBv
c3RJbmNSZXNvbHZlTm9kZShQbGFjZW1lbnROZXdBZG9wdFR5cGUpIEtKU19GQVNUX0NBTEwKLSAg
ICAgICAgICAgIDogUHJlUG9zdFJlc29sdmVOb2RlKFBsYWNlbWVudE5ld0Fkb3B0KQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRDb2RlKENv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdCBLSlNfRkFTVF9DQUxMOwog
ICAgICAgICB2aXJ0dWFsIFByZWNlZGVuY2UgcHJlY2VkZW5jZSgpIGNvbnN0IHsgcmV0dXJuIFBy
ZWNQb3N0Zml4OyB9CkBAIC03OTAsMTEgKzc1NSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAg
ICB7CiAgICAgICAgIH0KIAotICAgICAgICBQb3N0RGVjUmVzb2x2ZU5vZGUoUGxhY2VtZW50TmV3
QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgICAgICA6IFByZVBvc3RSZXNvbHZlTm9k
ZShQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAgICAgewotICAgICAgICB9Ci0KICAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBLSlNfRkFTVF9DQUxMOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VT
dHJlYW0mKSBjb25zdCBLSlNfRkFTVF9DQUxMOwpAQCAtOTA3LDEyICs4NjcsNiBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgRGVsZXRlUmVzb2x2ZU5v
ZGUoUGxhY2VtZW50TmV3QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgICAgICA6IEV4
cHJlc3Npb25Ob2RlKFBsYWNlbWVudE5ld0Fkb3B0KQotICAgICAgICAgICAgLCBtX2lkZW50KFBs
YWNlbWVudE5ld0Fkb3B0KQotICAgICAgICB7Ci0gICAgICAgIH0KLQogICAgICAgICB2aXJ0dWFs
IFJlZ2lzdGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIEtK
U19GQVNUX0NBTEw7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVh
bSYpIGNvbnN0IEtKU19GQVNUX0NBTEw7CkBAIC0xMDAyLDEzICs5NTYsNiBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgVHlwZU9mUmVzb2x2ZU5vZGUo
UGxhY2VtZW50TmV3QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgICAgICA6IEV4cHJl
c3Npb25Ob2RlKFBsYWNlbWVudE5ld0Fkb3B0KQotICAgICAgICAgICAgLCBtX2lkZW50KFBsYWNl
bWVudE5ld0Fkb3B0KQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2V4cGVjdGVkUmV0dXJuVHlw
ZSA9IFN0cmluZ1R5cGU7Ci0gICAgICAgIH0KLQogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQq
IGVtaXRDb2RlKENvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtK
U19GQVNUX0NBTEw7CkBAIC0xMDQ1LDExICs5OTIsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAg
ICAgewogICAgICAgICB9CiAKLSAgICAgICAgUHJlSW5jUmVzb2x2ZU5vZGUoUGxhY2VtZW50TmV3
QWRvcHRUeXBlKSBLSlNfRkFTVF9DQUxMCi0gICAgICAgICAgICA6IFByZVBvc3RSZXNvbHZlTm9k
ZShQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAgICAgewotICAgICAgICB9Ci0KICAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBLSlNfRkFTVF9DQUxMOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VT
dHJlYW0mKSBjb25zdCBLSlNfRkFTVF9DQUxMOwpAQCAtMTA2MywxMSArMTAwNSw2IEBAIG5hbWVz
cGFjZSBLSlMgewogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICBQcmVEZWNSZXNvbHZl
Tm9kZShQbGFjZW1lbnROZXdBZG9wdFR5cGUpIEtKU19GQVNUX0NBTEwKLSAgICAgICAgICAgIDog
UHJlUG9zdFJlc29sdmVOb2RlKFBsYWNlbWVudE5ld0Fkb3B0KQotICAgICAgICB7Ci0gICAgICAg
IH0KLQogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtKU19GQVNUX0NBTEw7CkBAIC0xNjIwLDE0
ICsxNTU3LDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAg
ICAgIFJlYWRNb2RpZnlSZXNvbHZlTm9kZShQbGFjZW1lbnROZXdBZG9wdFR5cGUpIEtKU19GQVNU
X0NBTEwKLSAgICAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUoUGxhY2VtZW50TmV3QWRvcHQpCi0g
ICAgICAgICAgICAsIG1faWRlbnQoUGxhY2VtZW50TmV3QWRvcHQpCi0gICAgICAgICAgICAsIG1f
cmlnaHQoUGxhY2VtZW50TmV3QWRvcHQpCi0gICAgICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25t
ZW50cyh0cnVlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQogICAgICAgICB2aXJ0dWFsIFJlZ2lz
dGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNU
X0NBTEw7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNv
bnN0IEtKU19GQVNUX0NBTEw7CkBAIC0xNjUxLDEzICsxNTgwLDYgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIEFzc2lnblJlc29sdmVOb2RlKFBsYWNl
bWVudE5ld0Fkb3B0VHlwZSkgS0pTX0ZBU1RfQ0FMTAotICAgICAgICAgICAgOiBFeHByZXNzaW9u
Tm9kZShQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAgICAgICAgICwgbV9pZGVudChQbGFjZW1lbnRO
ZXdBZG9wdCkKLSAgICAgICAgICAgICwgbV9yaWdodChQbGFjZW1lbnROZXdBZG9wdCkKLSAgICAg
ICAgewotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVt
aXRDb2RlKENvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtKU19G
QVNUX0NBTEw7Cg==
</data>
<flag name="review"
          id="9665"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>