<?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>59412</bug_id>
          
          <creation_ts>2011-04-25 20:09:31 -0700</creation_ts>
          <short_desc>Custom prototypes on DOM objects don&apos;t persist after garbage collection</short_desc>
          <delta_ts>2011-04-25 23:23:20 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>392199</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-25 20:09:31 -0700</bug_when>
    <thetext>Custom prototypes on DOM objects don&apos;t persist after garbage collection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392216</commentid>
    <comment_count>1</comment_count>
      <attachid>91047</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-25 20:26:30 -0700</bug_when>
    <thetext>Created attachment 91047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392217</commentid>
    <comment_count>2</comment_count>
      <attachid>91048</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-25 20:27:49 -0700</bug_when>
    <thetext>Created attachment 91048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392295</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-25 23:23:20 -0700</bug_when>
    <thetext>Committed r84882: &lt;http://trac.webkit.org/changeset/84882&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91047</attachid>
            <date>2011-04-25 20:26:30 -0700</date>
            <delta_ts>2011-04-25 20:27:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59412-20110425202629.patch</filename>
            <type>text/plain</type>
            <size>15572</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODQ4NzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTEtMDQtMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXN0b20gcHJvdG90eXBl
cyBvbiBET00gb2JqZWN0cyBkb24ndCBwZXJzaXN0IGFmdGVyIGdhcmJhZ2UgY29sbGVjdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk0MTIKKyAg
ICAgICAgCisgICAgICAgIFN1blNwaWRlciByZXBvcnRzIG5vIGNoYW5nZS4KKyAgICAgICAgCisg
ICAgICAgIFRoZSBoYXNDdXN0b21Qcm9wZXJ0aWVzKCkgY2hlY2sgZGlkbid0IGNoZWNrIGZvciBh
IGN1c3RvbSBwcm90b3R5cGUuCisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpoYXNDdXN0b21Qcm9wZXJ0aWVzKTogQ2hhbmdlZCB0byBkZWxl
Z2F0ZSB0byBTdHJ1Y3R1cmUKKyAgICAgICAgYmVjYXVzZSBpdCBpcyB0aGUgInRydXRoIiBhYm91
dCBhbiBvYmplY3QncyBwZWRpZ3JlZS4KKworICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNw
cDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZGlkVHJhbnNpdGlvbik6
IFRyYWNrIHdoZXRoZXIgYSBTdHJ1Y3R1cmUgaGFzIGV2ZXIKKyAgICAgICAgdHJhbnNpdGlvbmVk
IGZvciBhbnkgcmVhc29uLiBJZiBzbywgd2UgaGF2ZSB0byBhc3N1bWUgdGhhdCB0aGUgb2JqZWN0
CisgICAgICAgIGhvbGRpbmcgaXQgaXMgY3VzdG9tIGluIHNvbWUgd2F5LgorCiAyMDExLTA0LTI1
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAkocmV2aXNpb24gODQ4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyArMTczLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgdHJhbnNpdGlvblRvKEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSopOwogCiAgICAgICAgIHZvaWQgcmVtb3ZlRGlyZWN0KEpTR2xvYmFsRGF0YSYsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIGJvb2wgaGFzQ3VzdG9tUHJv
cGVydGllcygpIHsgcmV0dXJuICFtX3N0cnVjdHVyZS0+aXNFbXB0eSgpOyB9CisgICAgICAgIGJv
b2wgaGFzQ3VzdG9tUHJvcGVydGllcygpIHsgcmV0dXJuIG1fc3RydWN0dXJlLT5kaWRUcmFuc2l0
aW9uKCk7IH0KICAgICAgICAgYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgeyByZXR1
cm4gbV9zdHJ1Y3R1cmUtPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQogCiAgICAgICAg
IGJvb2wgcHV0RGlyZWN0KEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAkocmV2aXNpb24gODQ4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNiArMTg5LDcgQEAgU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogICAgICwgbV9zcGVjaWZpY0Z1bmN0
aW9uVGhyYXNoQ291bnQoMCkKICAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50KGFub255bW91c1Ns
b3RDb3VudCkKICAgICAsIG1fcHJldmVudEV4dGVuc2lvbnMoZmFsc2UpCisgICAgLCBtX2RpZFRy
YW5zaXRpb24oZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fcHJvdG90eXBlKTsKICAgICBBU1NFUlQo
bV9wcm90b3R5cGUuaXNPYmplY3QoKSB8fCBtX3Byb3RvdHlwZS5pc051bGwoKSk7CkBAIC0yMTEs
NiArMjEyLDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogICAg
ICwgbV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQoMCkKICAgICAsIG1fYW5vbnltb3VzU2xv
dENvdW50KDApCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQorICAgICwgbV9kaWRU
cmFuc2l0aW9uKGZhbHNlKQogewogICAgIEFTU0VSVChtX3Byb3RvdHlwZSk7CiAgICAgQVNTRVJU
KG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKQEAgLTIzMiw2ICsyMzQsNyBAQCBTdHJ1Y3R1cmU6OlN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhCiAgICAgLCBtX3NwZWNpZmljRnVuY3Rpb25UaHJh
c2hDb3VudChwcmV2aW91cy0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQpCiAgICAgLCBt
X2Fub255bW91c1Nsb3RDb3VudChwcmV2aW91cy0+YW5vbnltb3VzU2xvdENvdW50KCkpCiAgICAg
LCBtX3ByZXZlbnRFeHRlbnNpb25zKHByZXZpb3VzLT5tX3ByZXZlbnRFeHRlbnNpb25zKQorICAg
ICwgbV9kaWRUcmFuc2l0aW9uKHRydWUpCiB7CiAgICAgQVNTRVJUKG1fcHJvdG90eXBlKTsKICAg
ICBBU1NFUlQobV9wcm90b3R5cGUuaXNPYmplY3QoKSB8fCBtX3Byb3RvdHlwZS5pc051bGwoKSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNp
b24gODQ4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAko
d29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Ym9vbCBpc1NlYWxlZChKU0dsb2JhbERhdGEmKTsKICAgICAgICAgYm9vbCBpc0Zyb3plbihKU0ds
b2JhbERhdGEmKTsKICAgICAgICAgYm9vbCBpc0V4dGVuc2libGUoKSBjb25zdCB7IHJldHVybiAh
bV9wcmV2ZW50RXh0ZW5zaW9uczsgfQorICAgICAgICBib29sIGRpZFRyYW5zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2RpZFRyYW5zaXRpb247IH0KIAogICAgICAgICBTdHJ1Y3R1cmUqIGZsYXR0
ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CiAKQEAgLTI0
Nyw3ICsyNDgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgbV9zcGVjaWZp
Y0Z1bmN0aW9uVGhyYXNoQ291bnQgOiAyOwogICAgICAgICB1bnNpZ25lZCBtX2Fub255bW91c1Ns
b3RDb3VudCA6IDU7CiAgICAgICAgIHVuc2lnbmVkIG1fcHJldmVudEV4dGVuc2lvbnMgOiAxOwot
ICAgICAgICAvLyA0IGZyZWUgYml0cworICAgICAgICB1bnNpZ25lZCBtX2RpZFRyYW5zaXRpb24g
OiAxOworICAgICAgICAvLyAzIGZyZWUgYml0cwogICAgIH07CiAKICAgICBpbmxpbmUgc2l6ZV90
IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIv
Z3Rlc3RfYWxsLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L2d0ZXN0L2NvZGVn
ZWFyL2d0ZXN0X2FsbC5jYwkocmV2aXNpb24gODQ4NDkpCisrKyBTb3VyY2UvVGhpcmRQYXJ0eS9n
dGVzdC9jb2RlZ2Vhci9ndGVzdF9hbGwuY2MJKHdvcmtpbmcgY29weSkKQEAgLTEsMzggKzEsMzgg
QEAKLS8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLg0KLS8vIEFsbCByaWdodHMgcmVzZXJ2
ZWQuDQotLy8NCi0vLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCi0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlDQotLy8gbWV0Og0KLS8v
DQotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQNCi0vLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQotLy8gICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQ0KLS8vIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIN
Ci0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlDQotLy8gZGlzdHJpYnV0aW9uLg0KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMNCi0vLyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQ0KLS8v
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
DQotLy8NCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTDQotLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QNCi0vLyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1INCi0v
LyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVA0KLS8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCi0vLyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwNCi0vLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkNCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQotLy8gKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
DQotLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4NCi0vLw0KLS8vIEF1dGhvcjogSm9zaCBLZWxsZXkgKGpvc2hrZWxA
Z21haWwuY29tKQ0KLS8vDQotLy8gR29vZ2xlIEMrKyBUZXN0aW5nIEZyYW1ld29yayAoR29vZ2xl
IFRlc3QpDQotLy8NCi0vLyBDKytCdWlsZGVyJ3MgSURFIGNhbm5vdCBidWlsZCBhIHN0YXRpYyBs
aWJyYXJ5IGZyb20gZmlsZXMgd2l0aCBoeXBoZW5zDQotLy8gaW4gdGhlaXIgbmFtZS4gIFNlZSBo
dHRwOi8vcWMuY29kZWdlYXIuY29tL3djL3FjbWFpbi5hc3B4P2Q9NzA5NzcgLg0KLS8vIFRoaXMg
ZmlsZSBzZXJ2ZXMgYXMgYSB3b3JrYXJvdW5kLg0KLQ0KLSNpbmNsdWRlICJzcmMvZ3Rlc3QtYWxs
LmNjIg0KKy8vIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisv
LyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8v
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy8vCisv
LyBBdXRob3I6IEpvc2ggS2VsbGV5IChqb3Noa2VsQGdtYWlsLmNvbSkKKy8vCisvLyBHb29nbGUg
QysrIFRlc3RpbmcgRnJhbWV3b3JrIChHb29nbGUgVGVzdCkKKy8vCisvLyBDKytCdWlsZGVyJ3Mg
SURFIGNhbm5vdCBidWlsZCBhIHN0YXRpYyBsaWJyYXJ5IGZyb20gZmlsZXMgd2l0aCBoeXBoZW5z
CisvLyBpbiB0aGVpciBuYW1lLiAgU2VlIGh0dHA6Ly9xYy5jb2RlZ2Vhci5jb20vd2MvcWNtYWlu
LmFzcHg/ZD03MDk3NyAuCisvLyBUaGlzIGZpbGUgc2VydmVzIGFzIGEgd29ya2Fyb3VuZC4KKwor
I2luY2x1ZGUgInNyYy9ndGVzdC1hbGwuY2MiCkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC9jb2RlZ2Vhci9ndGVzdF9saW5rLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5
L2d0ZXN0L2NvZGVnZWFyL2d0ZXN0X2xpbmsuY2MJKHJldmlzaW9uIDg0ODQ5KQorKysgU291cmNl
L1RoaXJkUGFydHkvZ3Rlc3QvY29kZWdlYXIvZ3Rlc3RfbGluay5jYwkod29ya2luZyBjb3B5KQpA
QCAtMSw0MCArMSw0MCBAQAotLy8gQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuDQotLy8gQWxs
IHJpZ2h0cyByZXNlcnZlZC4NCi0vLw0KLS8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KLS8vIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUN
Ci0vLyBtZXQ6DQotLy8NCi0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCi0vLyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQotLy8g
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcg0KLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUNCi0vLyBkaXN0cmlidXRpb24uDQotLy8gICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KLS8vIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tDQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4NCi0vLw0KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCi0vLyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KLS8vIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUg0KLS8vIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUDQotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQotLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VA0KLS8vIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLA0KLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KLS8vIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCi0v
LyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UNCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KLS8vDQotLy8gQXV0aG9yOiBKb3NoIEtl
bGxleSAoam9zaGtlbEBnbWFpbC5jb20pDQotLy8NCi0vLyBHb29nbGUgQysrIFRlc3RpbmcgRnJh
bWV3b3JrIChHb29nbGUgVGVzdCkNCi0vLw0KLS8vIExpbmtzIGd0ZXN0LmxpYiBhbmQgZ3Rlc3Rf
bWFpbi5saWIgaW50byB0aGUgY3VycmVudCBwcm9qZWN0IGluIEMrK0J1aWxkZXIuDQotLy8gVGhp
cyBtZWFucyB0aGF0IHRoZXNlIGxpYnJhcmllcyBjYW4ndCBiZSByZW5hbWVkLCBidXQgaXQncyB0
aGUgb25seSB3YXkgdG8NCi0vLyBlbnN1cmUgdGhhdCBEZWJ1ZyB2ZXJzdXMgUmVsZWFzZSB0ZXN0
IGJ1aWxkcyBhcmUgbGlua2VkIGFnYWluc3QgdGhlDQotLy8gYXBwcm9wcmlhdGUgRGVidWcgb3Ig
UmVsZWFzZSBidWlsZCBvZiB0aGUgbGlicmFyaWVzLg0KLQ0KLSNwcmFnbWEgbGluayAiZ3Rlc3Qu
bGliIg0KLSNwcmFnbWEgbGluayAiZ3Rlc3RfbWFpbi5saWIiDQorLy8gQ29weXJpZ2h0IDIwMDks
IEdvb2dsZSBJbmMuCisvLyBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
Ly8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorLy8gbWV0OgorLy8KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisv
LyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8g
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorLy8KKy8vIEF1dGhvcjogSm9zaCBLZWxsZXkgKGpv
c2hrZWxAZ21haWwuY29tKQorLy8KKy8vIEdvb2dsZSBDKysgVGVzdGluZyBGcmFtZXdvcmsgKEdv
b2dsZSBUZXN0KQorLy8KKy8vIExpbmtzIGd0ZXN0LmxpYiBhbmQgZ3Rlc3RfbWFpbi5saWIgaW50
byB0aGUgY3VycmVudCBwcm9qZWN0IGluIEMrK0J1aWxkZXIuCisvLyBUaGlzIG1lYW5zIHRoYXQg
dGhlc2UgbGlicmFyaWVzIGNhbid0IGJlIHJlbmFtZWQsIGJ1dCBpdCdzIHRoZSBvbmx5IHdheSB0
bworLy8gZW5zdXJlIHRoYXQgRGVidWcgdmVyc3VzIFJlbGVhc2UgdGVzdCBidWlsZHMgYXJlIGxp
bmtlZCBhZ2FpbnN0IHRoZQorLy8gYXBwcm9wcmlhdGUgRGVidWcgb3IgUmVsZWFzZSBidWlsZCBv
ZiB0aGUgbGlicmFyaWVzLgorCisjcHJhZ21hIGxpbmsgImd0ZXN0LmxpYiIKKyNwcmFnbWEgbGlu
ayAiZ3Rlc3RfbWFpbi5saWIiCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NDg3NCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA0LTI1
ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VzdG9tIHByb3RvdHlwZXMgb24gRE9NIG9i
amVjdHMgZG9uJ3QgcGVyc2lzdCBhZnRlciBnYXJiYWdlIGNvbGxlY3Rpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5NDEyCisKKyAgICAgICAgKiBm
YXN0L2RvbS9nYy1jdXN0b20tcHJvdG90eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vZ2MtY3VzdG9tLXByb3RvdHlwZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9zY3JpcHQtdGVzdHMvZGF0YXNldC1nYy5qczoKKwogMjAxMS0wNC0yNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YW5pZWwgQmF0ZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy1jdXN0b20tcHJvdG90
eXBlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy1j
dXN0b20tcHJvdG90eXBlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL2djLWN1c3RvbS1wcm90b3R5cGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDYgQEAKK1Rlc3RzIHRoYXQgY3VzdG9tIHByb3RvdHlwZXMgb24gRE9NIG9iamVj
dHMgcGVyc2lzdCBhZnRlciBnYXJiYWdlIGNvbGxlY3Rpb24uCisKK1BBU1M6ICQoJ3AnKS5fX3By
b3RvX18gc2hvdWxkIGJlIG51bGwgYW5kIGlzLgorUEFTUzogJCgncCcpLl9fcHJvdG9fXyBzaG91
bGQgYmUgbnVsbCBhbmQgaXMuCitQQVNTOiAkKCdwJykuX19wcm90b19fIHNob3VsZCBiZSBudWxs
IGFuZCBpcy4KKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtY3VzdG9tLXByb3RvdHlw
ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2djLWN1c3RvbS1wcm90
b3R5cGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2djLWN1c3Rv
bS1wcm90b3R5cGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorPHA+VGVzdHMg
dGhhdCBjdXN0b20gcHJvdG90eXBlcyBvbiBET00gb2JqZWN0cyBwZXJzaXN0IGFmdGVyIGdhcmJh
Z2UgY29sbGVjdGlvbi48L3A+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPHAgaWQ9InAi
PjwvcD4KKworPHNjcmlwdD4KK2Z1bmN0aW9uICQoaWQpCit7CisgICAgcmV0dXJuIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGlkKTsKK30KKworZnVuY3Rpb24gbG9nKHMpCit7CisgICAgJCgiY29u
c29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMgKyAiXG4iKSk7Cit9
CisKK2Z1bmN0aW9uIHNob3VsZEJlKGFEZXNjcmlwdGlvbiwgYSwgYikKK3sKKyAgICBpZiAoYSAh
PSBiKSB7CisgICAgICAgIGxvZygiRkFJTDogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJl
ICIgKyBiICsgIiBidXQgaW5zdGVhZCBpcyAiICsgYSArICIuIik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBsb2coIlBBU1M6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAi
ICsgYiArICIgYW5kIGlzLiIpOworfQorCitmdW5jdGlvbiBnYygpCit7CisgICAgaWYgKHdpbmRv
dy5HQ0NvbnRyb2xsZXIpIHsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCisgICAgICAgIG5ldyBPYmplY3Q7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlTnVsbChhRGVz
Y3JpcHRpb24sIGEpCit7CisgICAgaWYgKGEgPT0gbnVsbCkgeworICAgICAgICBsb2coIlBBU1M6
ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSBudWxsIGFuZCBpcy4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAKKyAgICBsb2coIkZBSUw6ICIgKyBhRGVzY3JpcHRpb24gKyAi
IHNob3VsZCBiZSBudWxsIGJ1dCBpbnN0ZWFkIGlzICIgKyBhICsgIi4iKTsKK30KKworZnVuY3Rp
b24gc2hvdWxkQmVOb25OdWxsKGFEZXNjcmlwdGlvbiwgYSkKK3sKKyAgICBpZiAoYSAhPSBudWxs
KSB7CisgICAgICAgIGxvZygiUEFTUzogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlIG51
bGwgYW5kIGlzLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGxvZygiRkFJ
TDogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlIG51bGwgYnV0IGluc3RlYWQgaXMgIiAr
IGEgKyAiLiIpOworfQorCisoZnVuY3Rpb24gKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KworICAgIHNob3VsZEJlTm9uTnVsbCgiJCgncCcpLl9fcHJvdG9fXyIsICQoJ3AnKS5fX3Byb3Rv
X18pOworICAgICQoJ3AnKS5fX3Byb3RvX18gPSBudWxsOworICAgIHNob3VsZEJlTnVsbCgiJCgn
cCcpLl9fcHJvdG9fXyIsICQoJ3AnKS5fX3Byb3RvX18pOworCisgICAgZ2MoKTsKKworICAgIHNo
b3VsZEJlTnVsbCgiJCgncCcpLl9fcHJvdG9fXyIsICQoJ3AnKS5fX3Byb3RvX18pOworfSkoKTsK
Kzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91048</attachid>
            <date>2011-04-25 20:27:49 -0700</date>
            <delta_ts>2011-04-25 22:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59412-20110425202748.patch</filename>
            <type>text/plain</type>
            <size>7077</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODQ4NzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTEtMDQtMjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXN0b20gcHJvdG90eXBl
cyBvbiBET00gb2JqZWN0cyBkb24ndCBwZXJzaXN0IGFmdGVyIGdhcmJhZ2UgY29sbGVjdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk0MTIKKyAg
ICAgICAgCisgICAgICAgIFN1blNwaWRlciByZXBvcnRzIG5vIGNoYW5nZS4KKyAgICAgICAgCisg
ICAgICAgIFRoZSBoYXNDdXN0b21Qcm9wZXJ0aWVzKCkgY2hlY2sgZGlkbid0IGNoZWNrIGZvciBh
IGN1c3RvbSBwcm90b3R5cGUuCisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpoYXNDdXN0b21Qcm9wZXJ0aWVzKTogQ2hhbmdlZCB0byBkZWxl
Z2F0ZSB0byBTdHJ1Y3R1cmUKKyAgICAgICAgYmVjYXVzZSBpdCBpcyB0aGUgInRydXRoIiBhYm91
dCBhbiBvYmplY3QncyBwZWRpZ3JlZS4KKworICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNw
cDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZGlkVHJhbnNpdGlvbik6
IFRyYWNrIHdoZXRoZXIgYSBTdHJ1Y3R1cmUgaGFzIGV2ZXIKKyAgICAgICAgdHJhbnNpdGlvbmVk
IGZvciBhbnkgcmVhc29uLiBJZiBzbywgd2UgaGF2ZSB0byBhc3N1bWUgdGhhdCB0aGUgb2JqZWN0
CisgICAgICAgIGhvbGRpbmcgaXQgaXMgY3VzdG9tIGluIHNvbWUgd2F5LgorCiAyMDExLTA0LTI1
ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAkocmV2aXNpb24gODQ4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyArMTczLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgdHJhbnNpdGlvblRvKEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSopOwogCiAgICAgICAgIHZvaWQgcmVtb3ZlRGlyZWN0KEpTR2xvYmFsRGF0YSYsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIGJvb2wgaGFzQ3VzdG9tUHJv
cGVydGllcygpIHsgcmV0dXJuICFtX3N0cnVjdHVyZS0+aXNFbXB0eSgpOyB9CisgICAgICAgIGJv
b2wgaGFzQ3VzdG9tUHJvcGVydGllcygpIHsgcmV0dXJuIG1fc3RydWN0dXJlLT5kaWRUcmFuc2l0
aW9uKCk7IH0KICAgICAgICAgYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkgeyByZXR1
cm4gbV9zdHJ1Y3R1cmUtPmhhc0dldHRlclNldHRlclByb3BlcnRpZXMoKTsgfQogCiAgICAgICAg
IGJvb2wgcHV0RGlyZWN0KEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0ciwgYm9vbCBjaGVja1JlYWRPbmx5LCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAkocmV2aXNpb24gODQ4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODksNiArMTg5LDcgQEAgU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogICAgICwgbV9zcGVjaWZpY0Z1bmN0
aW9uVGhyYXNoQ291bnQoMCkKICAgICAsIG1fYW5vbnltb3VzU2xvdENvdW50KGFub255bW91c1Ns
b3RDb3VudCkKICAgICAsIG1fcHJldmVudEV4dGVuc2lvbnMoZmFsc2UpCisgICAgLCBtX2RpZFRy
YW5zaXRpb24oZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fcHJvdG90eXBlKTsKICAgICBBU1NFUlQo
bV9wcm90b3R5cGUuaXNPYmplY3QoKSB8fCBtX3Byb3RvdHlwZS5pc051bGwoKSk7CkBAIC0yMTEs
NiArMjEyLDcgQEAgU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYQogICAg
ICwgbV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQoMCkKICAgICAsIG1fYW5vbnltb3VzU2xv
dENvdW50KDApCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQorICAgICwgbV9kaWRU
cmFuc2l0aW9uKGZhbHNlKQogewogICAgIEFTU0VSVChtX3Byb3RvdHlwZSk7CiAgICAgQVNTRVJU
KG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKQEAgLTIzMiw2ICsyMzQsNyBAQCBTdHJ1Y3R1cmU6OlN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhCiAgICAgLCBtX3NwZWNpZmljRnVuY3Rpb25UaHJh
c2hDb3VudChwcmV2aW91cy0+bV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQpCiAgICAgLCBt
X2Fub255bW91c1Nsb3RDb3VudChwcmV2aW91cy0+YW5vbnltb3VzU2xvdENvdW50KCkpCiAgICAg
LCBtX3ByZXZlbnRFeHRlbnNpb25zKHByZXZpb3VzLT5tX3ByZXZlbnRFeHRlbnNpb25zKQorICAg
ICwgbV9kaWRUcmFuc2l0aW9uKHRydWUpCiB7CiAgICAgQVNTRVJUKG1fcHJvdG90eXBlKTsKICAg
ICBBU1NFUlQobV9wcm90b3R5cGUuaXNPYmplY3QoKSB8fCBtX3Byb3RvdHlwZS5pc051bGwoKSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkocmV2aXNp
b24gODQ4NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAko
d29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Ym9vbCBpc1NlYWxlZChKU0dsb2JhbERhdGEmKTsKICAgICAgICAgYm9vbCBpc0Zyb3plbihKU0ds
b2JhbERhdGEmKTsKICAgICAgICAgYm9vbCBpc0V4dGVuc2libGUoKSBjb25zdCB7IHJldHVybiAh
bV9wcmV2ZW50RXh0ZW5zaW9uczsgfQorICAgICAgICBib29sIGRpZFRyYW5zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2RpZFRyYW5zaXRpb247IH0KIAogICAgICAgICBTdHJ1Y3R1cmUqIGZsYXR0
ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CiAKQEAgLTI0
Nyw3ICsyNDgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdW5zaWduZWQgbV9zcGVjaWZp
Y0Z1bmN0aW9uVGhyYXNoQ291bnQgOiAyOwogICAgICAgICB1bnNpZ25lZCBtX2Fub255bW91c1Ns
b3RDb3VudCA6IDU7CiAgICAgICAgIHVuc2lnbmVkIG1fcHJldmVudEV4dGVuc2lvbnMgOiAxOwot
ICAgICAgICAvLyA0IGZyZWUgYml0cworICAgICAgICB1bnNpZ25lZCBtX2RpZFRyYW5zaXRpb24g
OiAxOworICAgICAgICAvLyAzIGZyZWUgYml0cwogICAgIH07CiAKICAgICBpbmxpbmUgc2l6ZV90
IFN0cnVjdHVyZTo6Z2V0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODQ4NzQpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNC0yNSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1c3RvbSBwcm90b3R5cGVzIG9uIERPTSBvYmpl
Y3RzIGRvbid0IHBlcnNpc3QgYWZ0ZXIgZ2FyYmFnZSBjb2xsZWN0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTQxMgorCisgICAgICAgICogZmFz
dC9kb20vZ2MtY3VzdG9tLXByb3RvdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL2djLWN1c3RvbS1wcm90b3R5cGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vc2NyaXB0LXRlc3RzL2RhdGFzZXQtZ2MuanM6CisKIDIwMTEtMDQtMjUgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFu
aWVsIEJhdGVzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtY3VzdG9tLXByb3RvdHlw
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtY3Vz
dG9tLXByb3RvdHlwZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9nYy1jdXN0b20tcHJvdG90eXBlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2IEBACitUZXN0cyB0aGF0IGN1c3RvbSBwcm90b3R5cGVzIG9uIERPTSBvYmplY3Rz
IHBlcnNpc3QgYWZ0ZXIgZ2FyYmFnZSBjb2xsZWN0aW9uLgorCitQQVNTOiAkKCdwJykuX19wcm90
b19fIHNob3VsZCBiZSBudWxsIGFuZCBpcy4KK1BBU1M6ICQoJ3AnKS5fX3Byb3RvX18gc2hvdWxk
IGJlIG51bGwgYW5kIGlzLgorUEFTUzogJCgncCcpLl9fcHJvdG9fXyBzaG91bGQgYmUgbnVsbCBh
bmQgaXMuCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2djLWN1c3RvbS1wcm90b3R5cGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy1jdXN0b20tcHJvdG90
eXBlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy1jdXN0b20t
cHJvdG90eXBlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzAgQEAKKzxwPlRlc3RzIHRo
YXQgY3VzdG9tIHByb3RvdHlwZXMgb24gRE9NIG9iamVjdHMgcGVyc2lzdCBhZnRlciBnYXJiYWdl
IGNvbGxlY3Rpb24uPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxwIGlkPSJwIj48
L3A+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiAkKGlkKQoreworICAgIHJldHVybiBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgICQoImNvbnNv
bGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzICsgIlxuIikpOworfQor
CitmdW5jdGlvbiBzaG91bGRCZShhRGVzY3JpcHRpb24sIGEsIGIpCit7CisgICAgaWYgKGEgIT0g
YikgeworICAgICAgICBsb2coIkZBSUw6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAi
ICsgYiArICIgYnV0IGluc3RlYWQgaXMgIiArIGEgKyAiLiIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbG9nKCJQQVNTOiAiICsgYURlc2NyaXB0aW9uICsgIiBzaG91bGQgYmUgIiAr
IGIgKyAiIGFuZCBpcy4iKTsKK30KKworZnVuY3Rpb24gZ2MoKQoreworICAgIGlmICh3aW5kb3cu
R0NDb250cm9sbGVyKSB7CisgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KQorICAgICAgICBuZXcgT2JqZWN0OworfQorCitmdW5jdGlvbiBzaG91bGRCZU51bGwoYURlc2Ny
aXB0aW9uLCBhKQoreworICAgIGlmIChhID09IG51bGwpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAi
ICsgYURlc2NyaXB0aW9uICsgIiBzaG91bGQgYmUgbnVsbCBhbmQgaXMuIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgCisgICAgbG9nKCJGQUlMOiAiICsgYURlc2NyaXB0aW9uICsgIiBz
aG91bGQgYmUgbnVsbCBidXQgaW5zdGVhZCBpcyAiICsgYSArICIuIik7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZEJlTm9uTnVsbChhRGVzY3JpcHRpb24sIGEpCit7CisgICAgaWYgKGEgIT0gbnVsbCkg
eworICAgICAgICBsb2coIlBBU1M6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSBudWxs
IGFuZCBpcy4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBsb2coIkZBSUw6
ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSBudWxsIGJ1dCBpbnN0ZWFkIGlzICIgKyBh
ICsgIi4iKTsKK30KKworKGZ1bmN0aW9uICgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
KyAgICBzaG91bGRCZU5vbk51bGwoIiQoJ3AnKS5fX3Byb3RvX18iLCAkKCdwJykuX19wcm90b19f
KTsKKyAgICAkKCdwJykuX19wcm90b19fID0gbnVsbDsKKyAgICBzaG91bGRCZU51bGwoIiQoJ3An
KS5fX3Byb3RvX18iLCAkKCdwJykuX19wcm90b19fKTsKKworICAgIGdjKCk7CisKKyAgICBzaG91
bGRCZU51bGwoIiQoJ3AnKS5fX3Byb3RvX18iLCAkKCdwJykuX19wcm90b19fKTsKK30pKCk7Cis8
L3NjcmlwdD4K
</data>
<flag name="review"
          id="83815"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>