<?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>15684</bug_id>
          
          <creation_ts>2007-10-25 01:10:42 -0700</creation_ts>
          <short_desc>Make a fast path for declaration processing inside Function Code.</short_desc>
          <delta_ts>2012-01-24 10:36:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>
          
          <blocked>14868</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>eoconnor</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>59412</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-10-25 01:10:42 -0700</bug_when>
    <thetext>Broken off from bug 14868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59413</commentid>
    <comment_count>1</comment_count>
      <attachid>16856</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-10-25 01:16:30 -0700</bug_when>
    <thetext>Created attachment 16856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59414</commentid>
    <comment_count>2</comment_count>
      <attachid>16856</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-10-25 01:18:24 -0700</bug_when>
    <thetext>Comment on attachment 16856
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59415</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2007-10-25 01:22:14 -0700</bug_when>
    <thetext>Committed revision 27028.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16856</attachid>
            <date>2007-10-25 01:16:30 -0700</date>
            <delta_ts>2007-10-25 01:18:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-function-fastpath.txt</filename>
            <type>text/plain</type>
            <size>10901</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDI3MDI3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMDctMTAt
MjUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE1ha2UgYSBmYXN0IHBhdGgg
Zm9yIGRlY2xhcmF0aW9uIHByb2Nlc3NpbmcgaW5zaWRlIEZ1bmN0aW9uIENvZGUuCisgICAgICAg
IAorICAgICAgICBMaWZ0ZWQgZGVjbGFyYXRpb24gcHJvY2Vzc2luZyBjb2RlIHVwIGZyb20gaW5k
aXZpZHVhbCBkZWNsYXJhdGlvbiBub2RlcworICAgICAgICBhbmQgaW50byBwcm9jZXNzRGVjbGFy
YXRpb25zLgorICAgICAgICAKKyAgICAgICAgQnJva2Ugb3V0IHByb2Nlc3NEZWNsYXJhdGlvbnMg
aW50byB0d28gY2FzZXMsIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiAKKyAgICAgICAgY29kZS4g
VGhpcyBlbGltaW5hdGVzIDIgYnJhbmNoZXMsIGFuZCBmYWNpbGl0YXRlcyBtb3JlIHJhZGljYWwg
CisgICAgICAgIGRpdmVyZ2VhbmNlIGluIHRoZSBmdXR1cmUuCisgICAgICAgIAorICAgICAgICAy
LjUlIFN1blNwaWRlciBzcGVlZHVwLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAo
S0pTOjpGdW5jdGlvbkJvZHlOb2RlOjppbml0aWFsaXplRGVjbGFyYXRpb25TdGFja3MpOgorICAg
ICAgICAoS0pTOjpGdW5jdGlvbkJvZHlOb2RlOjpwcm9jZXNzRGVjbGFyYXRpb25zRnVuY3Rpb25D
b2RlKToKKyAgICAgICAgKEtKUzo6RnVuY3Rpb25Cb2R5Tm9kZTo6cHJvY2Vzc0RlY2xhcmF0aW9u
c1Byb2dyYW1Db2RlKToKKyAgICAgICAgKEtKUzo6RnVuY3Rpb25Cb2R5Tm9kZTo6ZXhlY3V0ZSk6
CisgICAgICAgIChLSlM6OkZ1bmNEZWNsTm9kZTo6bWFrZUZ1bmN0aW9uKToKKyAgICAgICAgKiBr
anMvbm9kZXMuaDoKKyAgICAgICAgKEtKUzo6KToKKwogMjAwNy0xMC0yNSAgTWFjaWVqIFN0YWNo
b3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI3MDI1
KQorKysgSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMjMyLDcgKzIzMiw3IEBACiAJCTkzRjBCM0FDMDlCQjREQzAwMDY4RkNFMyAvKiBQ
YXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgfTsKIAkJOTVDMThENDkwQzkw
RTgyNjAwRTcyRjczIC8qIEpTUmV0YWluUHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NUMxOEQzRTBDOTBFN0VGMDBFNzJGNzMgLyogSlNSZXRhaW5Q
dHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
OEU4OTQzMjBDRDA2MDI0MDAzNjcxNzkgLyogSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFODk0MzEwQ0Qw
NjAyNDAwMzY3MTc5IC8qIEpTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCAqLzsgfTsKLQkJQThF
ODk0MzQwQ0QwNjAzRjAwMzY3MTc5IC8qIEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEU4OTQzMzBDRDA2MDNGMDAzNjcxNzkg
LyogSlNHbG9iYWxPYmplY3QuaCAqLzsgfTsKKwkJQThFODk0MzQwQ0QwNjAzRjAwMzY3MTc5IC8q
IEpTR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEU4OTQzMzBDRDA2MDNGMDAzNjcxNzkgLyogSlNHbG9iYWxPYmplY3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0Y2NTU1OTBB
MjA0OTcxMDAzOEExOTQgLyogTWF0aEV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjU1M0IwQTIwNDhERTAwMzhBMTk0IC8qIE1hdGhFeHRy
YXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlE
MjEyMDIyQjBBRDQzMTBEMDBFRDc5QjYgLyogRGF0ZU1hdGguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5MEFENDMxMEMwMEVENzlCNiAvKiBE
YXRlTWF0aC5oICovOyB9OwogCQlFMTFENTE3NjBCMkU3OThEMDA1NkMxODggLyogU3RyaW5nRXh0
cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTFE
NTE3NTBCMkU3OThEMDA1NkMxODggLyogU3RyaW5nRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzNzksNiArMTM3OSw3IEBACiAJCTA4
NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsKIAkJCWlzYSA9
IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI3NzEwODkwMkFG
RTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiSmF2
YVNjcmlwdENvcmUiICovOworCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsK
IAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJbWFpbkdyb3VwID0gMDg2N0Q2OTFG
RTg0MDI4RkMwMkFBQzA3IC8qIEphdmFTY3JpcHRDb3JlICovOwogCQkJcHJvZHVjdFJlZkdyb3Vw
ID0gMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovOwpJbmRleDoga2pzL25v
ZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMuY3BwCShyZXZpc2lvbiAyNzAyNSkKKysr
IGtqcy9ub2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NDgsMjMgKzE4NDgsNiBAQCBKU1Zh
bHVlKiBWYXJEZWNsTm9kZTo6ZXZhbHVhdGUoRXhlY1N0YXRlCiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgVmFyRGVjbE5vZGU6OnByb2Nlc3NEZWNsYXJhdGlvbihFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gIENvbnRleHQqIGNvbnRleHQgPSBleGVjLT5jb250ZXh0KCk7Ci0gIEpTT2JqZWN0KiB2YXJp
YWJsZSA9IGNvbnRleHQtPnZhcmlhYmxlT2JqZWN0KCk7Ci0KLSAgaWYgKGNvbnRleHQtPmNvZGVU
eXBlKCkgIT0gRnVuY3Rpb25Db2RlKQotICAgIGlmICh2YXJpYWJsZS0+aGFzUHJvcGVydHkoZXhl
YywgaWRlbnQpKQotICAgICAgICByZXR1cm47Ci0KLSAgaW50IGZsYWdzID0gSW50ZXJuYWw7Ci0g
IGlmIChjb250ZXh0LT5jb2RlVHlwZSgpICE9IEV2YWxDb2RlKQotICAgIGZsYWdzIHw9IERvbnRE
ZWxldGU7Ci0gIGlmICh2YXJUeXBlID09IFZhckRlY2xOb2RlOjpDb25zdGFudCkKLSAgICBmbGFn
cyB8PSBSZWFkT25seTsKLSAgdmFyaWFibGUtPnB1dChleGVjLCBpZGVudCwganNVbmRlZmluZWQo
KSwgZmxhZ3MpOwotfQotCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVmFyRGVj
bExpc3ROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAvLyBFQ01BIDEyLjIK
QEAgLTI2MjYsMjUgKzI2MDksNjAgQEAgdm9pZCBGdW5jdGlvbkJvZHlOb2RlOjppbml0aWFsaXpl
RGVjbGFyYQogICAgIG1faW5pdGlhbGl6ZWREZWNsYXJhdGlvblN0YWNrcyA9IHRydWU7CiB9CiAK
LXZvaWQgRnVuY3Rpb25Cb2R5Tm9kZTo6cHJvY2Vzc0RlY2xhcmF0aW9ucyhFeGVjU3RhdGUqIGV4
ZWMpCit2b2lkIEZ1bmN0aW9uQm9keU5vZGU6OnByb2Nlc3NEZWNsYXJhdGlvbnNGdW5jdGlvbkNv
ZGUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIGlmICghbV9pbml0aWFsaXplZERlY2xhcmF0aW9u
U3RhY2tzKQotICAgICAgICBpbml0aWFsaXplRGVjbGFyYXRpb25TdGFja3MoZXhlYyk7Ci0KICAg
ICBzaXplX3QgaSwgc2l6ZTsKIAotICAgIEpTT2JqZWN0KiB2YXJpYWJsZU9iamVjdCA9IGV4ZWMt
PmNvbnRleHQoKS0+dmFyaWFibGVPYmplY3QoKTsKLSAgICBjb25zdCBMaXN0JiBhcmdzID0gKmV4
ZWMtPmNvbnRleHQoKS0+YXJndW1lbnRzKCk7CisgICAgQ29udGV4dCogY29udGV4dCA9IGV4ZWMt
PmNvbnRleHQoKTsKKyAgICBKU09iamVjdCogdmFyaWFibGVPYmplY3QgPSBjb250ZXh0LT52YXJp
YWJsZU9iamVjdCgpOwogCiAgICAgLy8gVGhlIG9yZGVyIG9mIGFkZGl0aW9ucyB0byB0aGUgdmFy
aWFibGUgb2JqZWN0IGhlcmUgaW1wbGljaXRseSBlbmZvcmNlcyB0aGUgbXV0dWFsIGV4Y2x1c2lv
biBkZXNjcmliZWQgaW4gRUNNQSAxMC4xLjMuCi0gICAgZm9yIChpID0gMCwgc2l6ZSA9IG1fdmFy
U3RhY2suc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBtX3ZhclN0YWNrW2ldLT5wcm9j
ZXNzRGVjbGFyYXRpb24oZXhlYyk7CisgICAgZm9yIChpID0gMCwgc2l6ZSA9IG1fdmFyU3RhY2su
c2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIFZhckRlY2xOb2RlKiBub2RlID0gbV92
YXJTdGFja1tpXTsKKyAgICAgICAgaW50IGZsYWdzID0gSW50ZXJuYWwgfCBEb250RGVsZXRlOwor
ICAgICAgICBpZiAobm9kZS0+dmFyVHlwZSA9PSBWYXJEZWNsTm9kZTo6Q29uc3RhbnQpCisgICAg
ICAgICAgICBmbGFncyB8PSBSZWFkT25seTsKKyAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChl
eGVjLCBub2RlLT5pZGVudCwganNVbmRlZmluZWQoKSwgZmxhZ3MpOworICAgIH0KIAorICAgIGNv
bnN0IExpc3QmIGFyZ3MgPSAqY29udGV4dC0+YXJndW1lbnRzKCk7CiAgICAgZm9yIChpID0gMCwg
c2l6ZSA9IG1fcGFyYW1ldGVycy5zaXplKCk7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIHZhcmlh
YmxlT2JqZWN0LT5wdXQoZXhlYywgbV9wYXJhbWV0ZXJzW2ldLCBhcmdzW2ldLCBEb250RGVsZXRl
KTsKIAotICAgIGZvciAoaSA9IDAsIHNpemUgPSBtX2Z1bmN0aW9uU3RhY2suc2l6ZSgpOyBpIDwg
c2l6ZTsgKytpKQotICAgICAgICBtX2Z1bmN0aW9uU3RhY2tbaV0tPnByb2Nlc3NEZWNsYXJhdGlv
bihleGVjKTsKKyAgICBmb3IgKGkgPSAwLCBzaXplID0gbV9mdW5jdGlvblN0YWNrLnNpemUoKTsg
aSA8IHNpemU7ICsraSkgeworICAgICAgICBGdW5jRGVjbE5vZGUqIG5vZGUgPSBtX2Z1bmN0aW9u
U3RhY2tbaV07CisgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5wdXQoZXhlYywgbm9kZS0+aWRlbnQs
IG5vZGUtPm1ha2VGdW5jdGlvbihleGVjKSwgSW50ZXJuYWwgfCBEb250RGVsZXRlKTsKKyAgICB9
Cit9CisKK3ZvaWQgRnVuY3Rpb25Cb2R5Tm9kZTo6cHJvY2Vzc0RlY2xhcmF0aW9uc1Byb2dyYW1D
b2RlKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBzaXplX3QgaSwgc2l6ZTsKKworICAgIENvbnRl
eHQqIGNvbnRleHQgPSBleGVjLT5jb250ZXh0KCk7CisgICAgSlNPYmplY3QqIHZhcmlhYmxlT2Jq
ZWN0ID0gY29udGV4dC0+dmFyaWFibGVPYmplY3QoKTsKKworICAgIC8vIFRoZSBvcmRlciBvZiBh
ZGRpdGlvbnMgdG8gdGhlIHZhcmlhYmxlIG9iamVjdCBoZXJlIGltcGxpY2l0bHkgZW5mb3JjZXMg
dGhlIG11dHVhbCBleGNsdXNpb24gZGVzY3JpYmVkIGluIEVDTUEgMTAuMS4zLgorICAgIGZvciAo
aSA9IDAsIHNpemUgPSBtX3ZhclN0YWNrLnNpemUoKTsgaSA8IHNpemU7ICsraSkgeworICAgICAg
ICBWYXJEZWNsTm9kZSogbm9kZSA9IG1fdmFyU3RhY2tbaV07CisgICAgICAgIGlmICghdmFyaWFi
bGVPYmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIG5vZGUtPmlkZW50KSkgeworICAgICAgICAgICAg
aW50IGZsYWdzID0gSW50ZXJuYWw7CisgICAgICAgICAgICBpZiAoY29udGV4dC0+Y29kZVR5cGUo
KSAhPSBFdmFsQ29kZSkKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBEb250RGVsZXRlOworICAg
ICAgICAgICAgaWYgKG5vZGUtPnZhclR5cGUgPT0gVmFyRGVjbE5vZGU6OkNvbnN0YW50KQorICAg
ICAgICAgICAgICAgIGZsYWdzIHw9IFJlYWRPbmx5OworICAgICAgICAgICAgdmFyaWFibGVPYmpl
Y3QtPnB1dChleGVjLCBub2RlLT5pZGVudCwganNVbmRlZmluZWQoKSwgZmxhZ3MpOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGNvbnN0IExpc3QmIGFyZ3MgPSAqY29udGV4dC0+YXJndW1l
bnRzKCk7CisgICAgZm9yIChpID0gMCwgc2l6ZSA9IG1fcGFyYW1ldGVycy5zaXplKCk7IGkgPCBz
aXplOyArK2kpCisgICAgICAgIHZhcmlhYmxlT2JqZWN0LT5wdXQoZXhlYywgbV9wYXJhbWV0ZXJz
W2ldLCBhcmdzW2ldLCBEb250RGVsZXRlKTsKKworICAgIGZvciAoaSA9IDAsIHNpemUgPSBtX2Z1
bmN0aW9uU3RhY2suc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIEZ1bmNEZWNsTm9k
ZSogbm9kZSA9IG1fZnVuY3Rpb25TdGFja1tpXTsKKyAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1
dChleGVjLCBub2RlLT5pZGVudCwgbm9kZS0+bWFrZUZ1bmN0aW9uKGV4ZWMpLCBJbnRlcm5hbCB8
IChjb250ZXh0LT5jb2RlVHlwZSgpID09IEV2YWxDb2RlID8gMCA6IERvbnREZWxldGUpKTsKKyAg
ICB9CiB9CiAKIHZvaWQgRnVuY3Rpb25Cb2R5Tm9kZTo6YWRkUGFyYW0oY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQpCkBAIC0yNjY1LDYgKzI2ODMsMTcgQEAgVVN0cmluZyBGdW5jdGlvbkJvZHlOb2Rl
OjpwYXJhbVN0cmluZygpIAogICByZXR1cm4gczsKIH0KIAordm9pZCBGdW5jdGlvbkJvZHlOb2Rl
Ojpwcm9jZXNzRGVjbGFyYXRpb25zKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAoIW1faW5p
dGlhbGl6ZWREZWNsYXJhdGlvblN0YWNrcykKKyAgICAgICAgaW5pdGlhbGl6ZURlY2xhcmF0aW9u
U3RhY2tzKGV4ZWMpOworCisgICAgaWYgKGV4ZWMtPmNvbnRleHQoKS0+Y29kZVR5cGUoKSA9PSBG
dW5jdGlvbkNvZGUpCisgICAgICAgIHByb2Nlc3NEZWNsYXJhdGlvbnNGdW5jdGlvbkNvZGUoZXhl
Yyk7CisgICAgZWxzZQorICAgICAgICBwcm9jZXNzRGVjbGFyYXRpb25zUHJvZ3JhbUNvZGUoZXhl
Yyk7Cit9CisKIENvbXBsZXRpb24gRnVuY3Rpb25Cb2R5Tm9kZTo6ZXhlY3V0ZShFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgcHJvY2Vzc0RlY2xhcmF0aW9ucyhleGVjKTsKQEAgLTI2ODQsMjEgKzI3
MTMsMTYgQEAgdm9pZCBGdW5jRGVjbE5vZGU6OmdldERlY2xhcmF0aW9ucyhEZWNsYQogICAgIHN0
YWNrcy5mdW5jdGlvblN0YWNrLmFwcGVuZCh0aGlzKTsKIH0KIAotdm9pZCBGdW5jRGVjbE5vZGU6
OnByb2Nlc3NEZWNsYXJhdGlvbihFeGVjU3RhdGUqIGV4ZWMpCitGdW5jdGlvbkltcCogRnVuY0Rl
Y2xOb2RlOjptYWtlRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogewotICBDb250ZXh0ICpjb250
ZXh0ID0gZXhlYy0+Y29udGV4dCgpOwotCi0gIC8vIFRPRE86IGxldCB0aGlzIGJlIGFuIG9iamVj
dCB3aXRoIFtbQ2xhc3NdXSBwcm9wZXJ0eSAiRnVuY3Rpb24iCi0gIEZ1bmN0aW9uSW1wICpmdW5j
ID0gbmV3IEZ1bmN0aW9uSW1wKGV4ZWMsIGlkZW50LCBib2R5LmdldCgpLCBjb250ZXh0LT5zY29w
ZUNoYWluKCkpOworICBGdW5jdGlvbkltcCAqZnVuYyA9IG5ldyBGdW5jdGlvbkltcChleGVjLCBp
ZGVudCwgYm9keS5nZXQoKSwgZXhlYy0+Y29udGV4dCgpLT5zY29wZUNoYWluKCkpOwogCiAgIEpT
T2JqZWN0ICpwcm90byA9IGV4ZWMtPmxleGljYWxJbnRlcnByZXRlcigpLT5idWlsdGluT2JqZWN0
KCktPmNvbnN0cnVjdChleGVjLCBMaXN0OjplbXB0eSgpKTsKICAgcHJvdG8tPnB1dChleGVjLCBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3IsIGZ1bmMsIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtKTsKICAgZnVuYy0+cHV0KGV4ZWMsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5wcm90b3R5cGUsIHByb3RvLCBJbnRlcm5hbHxEb250RGVsZXRlKTsKIAogICBmdW5jLT5wdXQo
ZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoYm9keS0+bnVtUGFy
YW1zKCkpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKLQotICAvLyBFQ01BIDEwLjIu
MgotICBjb250ZXh0LT52YXJpYWJsZU9iamVjdCgpLT5wdXQoZXhlYywgaWRlbnQsIGZ1bmMsIElu
dGVybmFsIHwgKGNvbnRleHQtPmNvZGVUeXBlKCkgPT0gRXZhbENvZGUgPyAwIDogRG9udERlbGV0
ZSkpOworICByZXR1cm4gZnVuYzsKIH0KIAogQ29tcGxldGlvbiBGdW5jRGVjbE5vZGU6OmV4ZWN1
dGUoRXhlY1N0YXRlICopCkluZGV4OiBranMvbm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9k
ZXMuaAkocmV2aXNpb24gMjcwMjUpCisrKyBranMvbm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MTAwNCwxMiArMTAwNCwxMSBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBWYXJEZWNsTm9kZShjb25z
dCBJZGVudGlmaWVyICZpZCwgQXNzaWduRXhwck5vZGUgKmluLCBUeXBlIHQpIEtKU19GQVNUX0NB
TEw7CiAgICAgSlNWYWx1ZSogZXZhbHVhdGUoRXhlY1N0YXRlKikgS0pTX0ZBU1RfQ0FMTDsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291cmNlU3RyZWFtJikgY29uc3QgS0pTX0ZBU1RfQ0FM
TDsKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJvY2Vzc0RlY2xhcmF0aW9uKEV4ZWNTdGF0ZSop
IEtKU19GQVNUX0NBTEw7CiAgICAgdmlydHVhbCB2b2lkIGdldERlY2xhcmF0aW9ucyhEZWNsYXJh
dGlvblN0YWNrcyYpIEtKU19GQVNUX0NBTEw7Ci0gIHByaXZhdGU6Ci0gICAgSlNWYWx1ZSogaGFu
ZGxlU2xvd0Nhc2UoRXhlY1N0YXRlKiwgY29uc3QgU2NvcGVDaGFpbiYsIEpTVmFsdWUqKSBLSlNf
RkFTVF9DQUxMIEtKU19OT19JTkxJTkU7CiAgICAgVHlwZSB2YXJUeXBlOwogICAgIElkZW50aWZp
ZXIgaWRlbnQ7CisgIHByaXZhdGU6CisgICAgSlNWYWx1ZSogaGFuZGxlU2xvd0Nhc2UoRXhlY1N0
YXRlKiwgY29uc3QgU2NvcGVDaGFpbiYsIEpTVmFsdWUqKSBLSlNfRkFTVF9DQUxMIEtKU19OT19J
TkxJTkU7CiAgICAgUmVmUHRyPEFzc2lnbkV4cHJOb2RlPiBpbml0OwogICB9OwogCkBAIC0xMjQx
LDcgKzEyNDAsOSBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBJZGVudGlmaWVyIHBhcmFtTmFtZShz
aXplX3QgcG9zKSBjb25zdCBLSlNfRkFTVF9DQUxMIHsgcmV0dXJuIG1fcGFyYW1ldGVyc1twb3Nd
OyB9CiAgICAgVVN0cmluZyBwYXJhbVN0cmluZygpIGNvbnN0IEtKU19GQVNUX0NBTEw7CiAgICAg
VmVjdG9yPElkZW50aWZpZXI+JiBwYXJhbWV0ZXJzKCkgS0pTX0ZBU1RfQ0FMTCB7IHJldHVybiBt
X3BhcmFtZXRlcnM7IH0KLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgcHJvY2Vzc0RlY2xhcmF0aW9u
cyhFeGVjU3RhdGUqKSBLSlNfRkFTVF9DQUxMOworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcm9j
ZXNzRGVjbGFyYXRpb25zKEV4ZWNTdGF0ZSopOworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBwcm9j
ZXNzRGVjbGFyYXRpb25zRnVuY3Rpb25Db2RlKEV4ZWNTdGF0ZSopOworICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBwcm9jZXNzRGVjbGFyYXRpb25zUHJvZ3JhbUNvZGUoRXhlY1N0YXRlKik7CiAgIHBy
aXZhdGU6CiAgICAgVVN0cmluZyBtX3NvdXJjZVVSTDsKICAgICBpbnQgbV9zb3VyY2VJZDsKQEAg
LTEyNDksNiArMTI1MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgaW5pdGlhbGl6ZURl
Y2xhcmF0aW9uU3RhY2tzKEV4ZWNTdGF0ZSopOwogICAgIGJvb2wgbV9pbml0aWFsaXplZERlY2xh
cmF0aW9uU3RhY2tzOwogCisgICAgLy8gUHJvcGVydGllcyB0aGF0IHdpbGwgZ28gaW50byB0aGUg
QWN0aXZhdGlvbkltcCdzIHN5bWJvbCB0YWJsZS4gKFVzZWQgZm9yIGluaXRpYWxpemluZyB0aGUg
QWN0aXZhdGlvbkltcC4pCiAgICAgRGVjbGFyYXRpb25TdGFja3M6OlZhclN0YWNrIG1fdmFyU3Rh
Y2s7CiAgICAgRGVjbGFyYXRpb25TdGFja3M6OkZ1bmN0aW9uU3RhY2sgbV9mdW5jdGlvblN0YWNr
OwogICAgIFZlY3RvcjxJZGVudGlmaWVyPiBtX3BhcmFtZXRlcnM7CkBAIC0xMjc4LDEwICsxMjgw
LDEwIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgQ29tcGxldGlvbiBleGVjdXRlKEV4
ZWNTdGF0ZSopIEtKU19GQVNUX0NBTEw7CiAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJj
ZVN0cmVhbSYpIGNvbnN0IEtKU19GQVNUX0NBTEw7CiAgICAgdmlydHVhbCB2b2lkIGdldERlY2xh
cmF0aW9ucyhEZWNsYXJhdGlvblN0YWNrcyYpIEtKU19GQVNUX0NBTEw7Ci0gICAgQUxXQVlTX0lO
TElORSB2b2lkIHByb2Nlc3NEZWNsYXJhdGlvbihFeGVjU3RhdGUqKSBLSlNfRkFTVF9DQUxMOwor
ICAgIEFMV0FZU19JTkxJTkUgRnVuY3Rpb25JbXAqIG1ha2VGdW5jdGlvbihFeGVjU3RhdGUqKSBL
SlNfRkFTVF9DQUxMOworICAgIElkZW50aWZpZXIgaWRlbnQ7CiAgIHByaXZhdGU6CiAgICAgdm9p
ZCBhZGRQYXJhbXMoKSBLSlNfRkFTVF9DQUxMOwotICAgIElkZW50aWZpZXIgaWRlbnQ7CiAgICAg
UmVmUHRyPFBhcmFtZXRlck5vZGU+IHBhcmFtOwogICAgIFJlZlB0cjxGdW5jdGlvbkJvZHlOb2Rl
PiBib2R5OwogICB9Owo=
</data>
<flag name="review"
          id="7136"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>