<?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>65422</bug_id>
          
          <creation_ts>2011-07-30 17:36:13 -0700</creation_ts>
          <short_desc>Simplify JSFunction creation for functions written in JS</short_desc>
          <delta_ts>2011-08-02 17:41:49 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>444344</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-07-30 17:36:13 -0700</bug_when>
    <thetext>Simplify JSFunction creation for functions written in JS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444345</commentid>
    <comment_count>1</comment_count>
      <attachid>102447</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-07-30 17:40:06 -0700</bug_when>
    <thetext>Created attachment 102447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444362</commentid>
    <comment_count>2</comment_count>
      <attachid>102447</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-07-30 19:35:35 -0700</bug_when>
    <thetext>Comment on attachment 102447
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=102447&amp;action=review

&gt; Source/JavaScriptCore/runtime/Executable.cpp:147
&gt; +    m_jsName.set(globalData, name.isEmpty() ? globalData.smallStrings.emptyString(&amp;globalData) : jsString(&amp;globalData, name.ustring()));

Can this be done with construction instead of assignment? Would that be a tiny bit better for performance?

This expression is long enough that it might be nice to share this code with an inline function instead of repeating it twice. The easiest way to do that would be an inline member function, or we could use an inline non-member function if we are doing it in construction.

Doesn’t jsString already handle the empty string case? Why do we need a special case for it here?

&gt; Source/JavaScriptCore/runtime/Executable.h:481
&gt; +        JSString* jsName() const { return m_jsName.get(); }

I would think of this as nameValue or wrappedName rather than jsName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444368</commentid>
    <comment_count>3</comment_count>
      <attachid>102447</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-07-30 20:35:44 -0700</bug_when>
    <thetext>Comment on attachment 102447
Patch

r- because i just copied the old logic (which did an empty string check) and i don&apos;t want to just blindly commit.

That said, we do have to do the setting of m_jsName late as jsString() may perform a gc allocation, and it is _never_ safe to do GC allocation in the initializer list (you may end up doing a gc sweep midway through executing your initializer list, and then you end up not marking yourself correctly :-( )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445628</commentid>
    <comment_count>4</comment_count>
      <attachid>102717</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-08-02 17:18:03 -0700</bug_when>
    <thetext>Created attachment 102717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445631</commentid>
    <comment_count>5</comment_count>
      <attachid>102717</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-08-02 17:26:12 -0700</bug_when>
    <thetext>Comment on attachment 102717
Patch

You may want to rename jsName to nameValue per Darin&apos;s suggestion, and functionNameOffset() should probably return a size_t.  Otherwise all looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445636</commentid>
    <comment_count>6</comment_count>
      <attachid>102720</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-08-02 17:32:45 -0700</bug_when>
    <thetext>Created attachment 102720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445640</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-08-02 17:41:49 -0700</bug_when>
    <thetext>Committed r92250: &lt;http://trac.webkit.org/changeset/92250&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102447</attachid>
            <date>2011-07-30 17:40:06 -0700</date>
            <delta_ts>2011-08-02 17:18:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65422-20110730174005.patch</filename>
            <type>text/plain</type>
            <size>7639</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIwNjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ5
OWI5MDUwZTMwMjMzZmM0ZWI2NWVhMDRkMTE1MGZiYTg5MDJiNWUuLmZiMWQ5ZmE1ZjU3MGU0ZDNi
YTJhYWM0Mzc0ZjNmZGQ5MjQ2Y2QzMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDMwIEBACiAyMDExLTA3LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
KyAgICAgICAgU2ltcGxpZnkgSlNGdW5jdGlvbiBjcmVhdGlvbiBmb3IgZnVuY3Rpb25zIHdyaXR0
ZW4gaW4gSlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIGhhc2ggbG9va3VwcyB1c2VkIHRvIHdyaXRlIG5hbWUgcHJvcGVydHkgYW5kIHRyYW5z
aXRpb24KKyAgICAgICAgZnVuY3Rpb24gc3RydWN0dXJlIGJ5IGNhY2hpbmcgdGhlIHJlc3VsdGFu
dCBzdHJ1Y3R1cmUgYW5kIHByb3BlcnR5CisgICAgICAgIG9mZnNldCBpbiBKU0dsb2JhbE9iamVj
dC4gIFRoaXMgZG9lc24ndCBpbXBhY3QgcGVyZm9ybWFuY2UsIGJ1dAorICAgICAgICB3ZSBjYW4g
dXNlIHRoaXMgY2hhbmdlIHRvIG1ha2Ugb3RoZXIgaW1wcm92ZW1lbnRzIGxhdGVyLgorCisgICAg
ICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJs
ZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpTY3JpcHRFeGVjdXRhYmxlKToK
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpqc05hbWUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6cmVzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om5hbWVkRnVuY3Rpb25TdHJ1Y3R1
cmUpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZnVuY3Rpb25OYW1lT2Zmc2V0KToK
KworMjAxMS0wNy0zMCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCiAgICAgICAg
IFJlZHVjZSB0aGUgc2l6ZSBvZiBKU0dsb2JhbE9iamVjdCBzbGlnaHRseQogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0MTcKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA1ZGY3OTQxNzViZGMzMGEy
ODA3YTQwNTAwY2MyMDdkNGFlNWZkYWY3Li4xYzcyNTE4MjZjNzAyNzMyZWEyNWUzYmYzY2Q3ZGFl
NmFiM2YwNzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcApAQCAtMTQ0LDYgKzE0NCw3IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVj
dXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllCiB7CiAgICAg
bV9maXJzdExpbmUgPSBmaXJzdExpbmU7CiAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOworICAg
IG1fanNOYW1lLnNldChnbG9iYWxEYXRhLCBuYW1lLmlzRW1wdHkoKSA/IGdsb2JhbERhdGEuc21h
bGxTdHJpbmdzLmVtcHR5U3RyaW5nKCZnbG9iYWxEYXRhKSA6IGpzU3RyaW5nKCZnbG9iYWxEYXRh
LCBuYW1lLnVzdHJpbmcoKSkpOwogfQogCiBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhl
Y3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNv
dXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1l
dGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGlu
dCBsYXN0TGluZSkKQEAgLTE1Niw2ICsxNTcsNyBAQCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0
aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsCiB7
CiAgICAgbV9maXJzdExpbmUgPSBmaXJzdExpbmU7CiAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5l
OworICAgIG1fanNOYW1lLnNldChleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUuaXNFbXB0eSgpID8g
ZXhlYy0+Z2xvYmFsRGF0YSgpLnNtYWxsU3RyaW5ncy5lbXB0eVN0cmluZygmZXhlYy0+Z2xvYmFs
RGF0YSgpKSA6IGpzU3RyaW5nKCZleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUudXN0cmluZygpKSk7
CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4
IDM2Y2UyNTk5MjU4YzBiODk5ZmI0MzkyZmYzNzYwNzM5YzU4YWExZTYuLjhhZWQyZDllYzNlMmNj
YjEwNzM4M2RjZWE2ZjJmMTllYjRkOTY5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmgKQEAgLTIyNiw3ICsyMjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgewogI2lmIEVOQUJMRShDT0RFQkxPQ0tfU0FNUExJTkcpCiAgICAgICAgICAgICBpZiAo
U2FtcGxpbmdUb29sKiBzYW1wbGVyID0gZ2xvYmFsRGF0YS5pbnRlcnByZXRlci0+c2FtcGxlcigp
KQotICAgICAgICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9mU2NvcGUoKmdsb2JhbERhdGEsIHRo
aXMpOworICAgICAgICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9mU2NvcGUoZ2xvYmFsRGF0YSwg
dGhpcyk7CiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogI2Vu
ZGlmCkBAIC00NzgsNiArNDc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAg
ICAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lKCkgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgICAg
IEpTU3RyaW5nKiBqc05hbWUoKSBjb25zdCB7IHJldHVybiBtX2pzTmFtZS5nZXQoKTsgfQogICAg
ICAgICBzaXplX3QgcGFyYW1ldGVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMt
PnNpemUoKTsgfQogICAgICAgICB1bnNpZ25lZCBjYXB0dXJlZFZhcmlhYmxlQ291bnQoKSBjb25z
dCB7IHJldHVybiBtX251bUNhcHR1cmVkVmFyaWFibGVzOyB9CiAgICAgICAgIFVTdHJpbmcgcGFy
YW1TdHJpbmcoKSBjb25zdDsKQEAgLTUwOSw2ICs1MTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgT3duUHRyPEZ1bmN0aW9uQ29kZUJsb2NrPiBtX2NvZGVCbG9ja0ZvckNhbGw7CiAgICAg
ICAgIE93blB0cjxGdW5jdGlvbkNvZGVCbG9jaz4gbV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3Q7CiAg
ICAgICAgIElkZW50aWZpZXIgbV9uYW1lOworICAgICAgICBTdHJvbmc8SlNTdHJpbmc+IG1fanNO
YW1lOwogICAgICAgICBTaGFyZWRTeW1ib2xUYWJsZSogbV9zeW1ib2xUYWJsZTsKICAgICB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDQz
MGQwNmQ5YmM1YjlkMWQ3ZjE3ZTc4MmRiZGQwOTc4OWM4NDU2MDAuLjllNmM1ZTFkZjViMmEwNTg2
ZmExZjQ3ZTEwYzQ0OGNiOGU4MWY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC05MCw4ICs5MCw4IEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rp
b24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3Bl
Q2hhCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBzY29wZUNo
YWluTm9kZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihtX2V4ZWN1
dGFibGUuZ2V0KCkpLT5uYW1lKCk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGV4ZWMsIG5h
bWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgRG9udEVudW0pOworICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3Bl
Q2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7CisgICAg
cHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2Jh
bE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPmpzTmFtZSgpKTsKIH0K
IAogSlNGdW5jdGlvbjo6fkpTRnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDc3ZTJmYzVkZmNmMmQ4MzRiMzc4M2Ji
OWIwZTVmM2Q4NzdjMTFmNzkuLjIwMWU4MzExNjFkOTJhODE0OTdjZTZiYzY0ZmFiZGZkN2I3Yjdk
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKQEAgLTE4Nyw2ICsxODcsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1Zh
bHVlIHByb3RvdHlwZSkKIAogICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGhpcywgRnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0ZShleGVjLCB0aGlzLCBGdW5j
dGlvblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxs
KCkpKSk7IC8vIFRoZSByZWFsIHByb3RvdHlwZSB3aWxsIGJlIHNldCBvbmNlIE9iamVjdFByb3Rv
dHlwZSBpcyBjcmVhdGVkLgogICAgIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOworICAgIG1fbmFtZWRGdW5jdGlvblN0
cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBTdHJ1Y3R1cmU6OmFkZFByb3Bl
cnR5VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0
KCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBEb250RW51bSwgMCwgbV9mdW5jdGlvbk5hbWVPZmZzZXQpKTsKICAgICBtX2lu
dGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSW50
ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5j
dGlvblByb3RvdHlwZS5nZXQoKSkpOwogICAgIEpTRnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7
CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA5MTllOGVmYTA5ZjJlMmM4MjI1
MTM3ODA1OTJlOTkyMWZkOGE3N2M5Li4yODQ5NWQ2NTgzMTVjMmRjMzYxY2YzYjQ3YjA4YzVjYTZl
MWYxN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgKQEAgLTExNiw2ICsxMTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlOwogICAgICAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2Vycm9yU3RydWN0dXJlOwogICAgICAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2Z1bmN0aW9uU3RydWN0dXJlOworICAgICAgICBXcml0ZUJh
cnJpZXI8U3RydWN0dXJlPiBtX25hbWVkRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgICAgIHNpemVf
dCBtX2Z1bmN0aW9uTmFtZU9mZnNldDsKICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4g
bV9udW1iZXJPYmplY3RTdHJ1Y3R1cmU7CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+
IG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlOwogICAgICAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX3JlZ0V4cFN0cnVjdHVyZTsKQEAgLTIyOSw2ICsyMzEsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgU3RydWN0dXJlKiBudWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkg
Y29uc3QgeyByZXR1cm4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAg
ICAgICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2Vycm9y
U3RydWN0dXJlLmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVyZSogZnVuY3Rpb25TdHJ1Y3R1cmUo
KSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9CisgICAgICAgIFN0
cnVjdHVyZSogbmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZWRG
dW5jdGlvblN0cnVjdHVyZS5nZXQoKTsgfQorICAgICAgICB1bnNpZ25lZCBmdW5jdGlvbk5hbWVP
ZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uTmFtZU9mZnNldDsgfQogICAgICAgICBT
dHJ1Y3R1cmUqIG51bWJlck9iamVjdFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVy
T2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVyZSogaW50ZXJuYWxGdW5j
dGlvblN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJuYWxGdW5jdGlvblN0cnVjdHVy
ZS5nZXQoKTsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVy
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlLmdldCgpOyB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102717</attachid>
            <date>2011-08-02 17:18:03 -0700</date>
            <delta_ts>2011-08-02 17:32:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65422-20110802171802.patch</filename>
            <type>text/plain</type>
            <size>7936</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyMzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgy
ZWE3Y2MyOTEzMDY3Zjk3NmUyMDMyY2M4NDg5Y2NkZmQyMGMxYTguLjU4Y2EyZDhlYjhiYzYzMzM1
OTY1NTAyNWM3MDczNWY0OGU3ZjAzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4IEBACisyMDExLTA3LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgU2ltcGxpZnkgSlNGdW5jdGlvbiBjcmVhdGlvbiBmb3IgZnVuY3Rpb25zIHdyaXR0
ZW4gaW4gSlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIGhhc2ggbG9va3VwcyB1c2VkIHRvIHdyaXRlIG5hbWUgcHJvcGVydHkgYW5kIHRyYW5z
aXRpb24KKyAgICAgICAgZnVuY3Rpb24gc3RydWN0dXJlIGJ5IGNhY2hpbmcgdGhlIHJlc3VsdGFu
dCBzdHJ1Y3R1cmUgYW5kIHByb3BlcnR5CisgICAgICAgIG9mZnNldCBpbiBKU0dsb2JhbE9iamVj
dC4gIFRoaXMgZG9lc24ndCBpbXBhY3QgcGVyZm9ybWFuY2UsIGJ1dAorICAgICAgICB3ZSBjYW4g
dXNlIHRoaXMgY2hhbmdlIHRvIG1ha2Ugb3RoZXIgaW1wcm92ZW1lbnRzIGxhdGVyLgorCisgICAg
ICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJs
ZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpTY3JpcHRFeGVjdXRhYmxlKToK
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpqc05hbWUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6cmVzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om5hbWVkRnVuY3Rpb25TdHJ1Y3R1
cmUpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZnVuY3Rpb25OYW1lT2Zmc2V0KToK
KwogMjAxMS0wOC0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IEpTQyBHQyB1c2VzIGR1bW15IGNlbGxzIHRvIGF2b2lkIGhhdmluZyB0byByZW1lbWJlciB3aGlj
aCBjZWxscwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApp
bmRleCA1ZGY3OTQxNzViZGMzMGEyODA3YTQwNTAwY2MyMDdkNGFlNWZkYWY3Li42OWZiZmI1ZTg2
ZTdjNDg0MWMzNjIzNDI4NGE0NzA1ZmZlYzIyNzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtMTQ0LDYgKzE0NCw3IEBAIEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29u
c3QgSWRlbnRpZmllCiB7CiAgICAgbV9maXJzdExpbmUgPSBmaXJzdExpbmU7CiAgICAgbV9sYXN0
TGluZSA9IGxhc3RMaW5lOworICAgIG1fanNOYW1lLnNldChnbG9iYWxEYXRhLCB0aGlzLCBqc1N0
cmluZygmZ2xvYmFsRGF0YSwgbmFtZS51c3RyaW5nKCkpKTsKIH0KIAogRnVuY3Rpb25FeGVjdXRh
YmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRz
LCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBp
bnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCkBAIC0xNTYsNiArMTU3LDcgQEAgRnVuY3Rpb25F
eGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLAogewogICAgIG1fZmlyc3RMaW5lID0gZmlyc3RMaW5lOwogICAgIG1fbGFz
dExpbmUgPSBsYXN0TGluZTsKKyAgICBtX2pzTmFtZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBqc1N0cmluZygmZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lLnVzdHJpbmcoKSkpOwogfQog
CiAKQEAgLTQzOSw2ICs0NDEsOCBAQCB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6dmlzaXRDaGls
ZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVG
bGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRo
b3V0U2V0dGluZ0ZsYWcpOwogICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVy
cmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIFNjcmlwdEV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRy
ZW4odmlzaXRvcik7CisgICAgaWYgKG1fanNOYW1lKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgm
bV9qc05hbWUpOwogICAgIGlmIChtX2NvZGVCbG9ja0ZvckNhbGwpCiAgICAgICAgIG1fY29kZUJs
b2NrRm9yQ2FsbC0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiAgICAgaWYgKG1fY29kZUJsb2Nr
Rm9yQ29uc3RydWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5o
CmluZGV4IDM2Y2UyNTk5MjU4YzBiODk5ZmI0MzkyZmYzNzYwNzM5YzU4YWExZTYuLjFlNmRiMjJk
ZWY5ZDM0NDc0MTU5NDE2NDZjMDBhZmJlY2FhNzA3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTIyNiw3ICsyMjYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgewogI2lmIEVOQUJMRShDT0RFQkxPQ0tfU0FNUExJTkcpCiAgICAgICAgICAg
ICBpZiAoU2FtcGxpbmdUb29sKiBzYW1wbGVyID0gZ2xvYmFsRGF0YS5pbnRlcnByZXRlci0+c2Ft
cGxlcigpKQotICAgICAgICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9mU2NvcGUoKmdsb2JhbERh
dGEsIHRoaXMpOworICAgICAgICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9mU2NvcGUoZ2xvYmFs
RGF0YSwgdGhpcyk7CiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEp
OwogI2VuZGlmCkBAIC00NzgsNiArNDc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0K
IAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lKCkgeyByZXR1cm4gbV9uYW1lOyB9Cisg
ICAgICAgIEpTU3RyaW5nKiBqc05hbWUoKSBjb25zdCB7IHJldHVybiBtX2pzTmFtZS5nZXQoKTsg
fQogICAgICAgICBzaXplX3QgcGFyYW1ldGVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFt
ZXRlcnMtPnNpemUoKTsgfQogICAgICAgICB1bnNpZ25lZCBjYXB0dXJlZFZhcmlhYmxlQ291bnQo
KSBjb25zdCB7IHJldHVybiBtX251bUNhcHR1cmVkVmFyaWFibGVzOyB9CiAgICAgICAgIFVTdHJp
bmcgcGFyYW1TdHJpbmcoKSBjb25zdDsKQEAgLTUwOSw2ICs1MTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgT3duUHRyPEZ1bmN0aW9uQ29kZUJsb2NrPiBtX2NvZGVCbG9ja0ZvckNhbGw7
CiAgICAgICAgIE93blB0cjxGdW5jdGlvbkNvZGVCbG9jaz4gbV9jb2RlQmxvY2tGb3JDb25zdHJ1
Y3Q7CiAgICAgICAgIElkZW50aWZpZXIgbV9uYW1lOworICAgICAgICBXcml0ZUJhcnJpZXI8SlNT
dHJpbmc+IG1fanNOYW1lOwogICAgICAgICBTaGFyZWRTeW1ib2xUYWJsZSogbV9zeW1ib2xUYWJs
ZTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
Y3BwCmluZGV4IDQzMGQwNmQ5YmM1YjlkMWQ3ZjE3ZTc4MmRiZGQwOTc4OWM4NDU2MDAuLjllNmM1
ZTFkZjViMmEwNTg2ZmExZjQ3ZTEwYzQ0OGNiOGU4MWY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC05MCw4ICs5MCw4IEBAIEpTRnVuY3Rp
b246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1
dGFibGUsIFNjb3BlQ2hhCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwot
ICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFi
bGUqPihtX2V4ZWN1dGFibGUuZ2V0KCkpLT5uYW1lKCk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3Ry
aW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1
cmUoKSk7CisgICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFp
bk5vZGUtPmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPmpz
TmFtZSgpKTsKIH0KIAogSlNGdW5jdGlvbjo6fkpTRnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDc3ZTJmYzVkZmNm
MmQ4MzRiMzc4M2JiOWIwZTVmM2Q4NzdjMTFmNzkuLjIwMWU4MzExNjFkOTJhODE0OTdjZTZiYzY0
ZmFiZGZkN2I3YjdkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHAKQEAgLTE4Nyw2ICsxODcsNyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0
OjpyZXNldChKU1ZhbHVlIHByb3RvdHlwZSkKIAogICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUuc2V0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgRnVuY3Rpb25Qcm90b3R5cGU6OmNyZWF0ZShleGVj
LCB0aGlzLCBGdW5jdGlvblByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERh
dGEoKSwganNOdWxsKCkpKSk7IC8vIFRoZSByZWFsIHByb3RvdHlwZSB3aWxsIGJlIHNldCBvbmNl
IE9iamVjdFByb3RvdHlwZSBpcyBjcmVhdGVkLgogICAgIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuc2V0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSlNGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGV4
ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOworICAgIG1fbmFt
ZWRGdW5jdGlvblN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBTdHJ1Y3R1
cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25T
dHJ1Y3R1cmUuZ2V0KCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSwgMCwgbV9mdW5jdGlvbk5hbWVPZmZzZXQp
KTsKICAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwogICAgIEpTRnVuY3Rpb24qIGNhbGxG
dW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBwbHlGdW5jdGlvbiA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCA5MTllOGVm
YTA5ZjJlMmM4MjI1MTM3ODA1OTJlOTkyMWZkOGE3N2M5Li4yODQ5NWQ2NTgzMTVjMmRjMzYxY2Yz
YjQ3YjA4YzVjYTZlMWYxN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKQEAgLTExNiw2ICsxMTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0
dXJlOwogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2Vycm9yU3RydWN0dXJlOwog
ICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2Z1bmN0aW9uU3RydWN0dXJlOworICAg
ICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX25hbWVkRnVuY3Rpb25TdHJ1Y3R1cmU7Cisg
ICAgICAgIHNpemVfdCBtX2Z1bmN0aW9uTmFtZU9mZnNldDsKICAgICAgICAgV3JpdGVCYXJyaWVy
PFN0cnVjdHVyZT4gbV9udW1iZXJPYmplY3RTdHJ1Y3R1cmU7CiAgICAgICAgIFdyaXRlQmFycmll
cjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlOwogICAgICAgICBXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cFN0cnVjdHVyZTsKQEAgLTIyOSw2ICsyMzEsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RydWN0dXJlKiBudWxsUHJvdG90eXBlT2JqZWN0
U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9udWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJl
LmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJl
dHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVyZSogZnVuY3Rp
b25TdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9
CisgICAgICAgIFN0cnVjdHVyZSogbmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZWRGdW5jdGlvblN0cnVjdHVyZS5nZXQoKTsgfQorICAgICAgICB1bnNpZ25lZCBm
dW5jdGlvbk5hbWVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uTmFtZU9mZnNldDsg
fQogICAgICAgICBTdHJ1Y3R1cmUqIG51bWJlck9iamVjdFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbnVtYmVyT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVyZSog
aW50ZXJuYWxGdW5jdGlvblN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJuYWxGdW5j
dGlvblN0cnVjdHVyZS5nZXQoKTsgfQogICAgICAgICBTdHJ1Y3R1cmUqIHJlZ0V4cE1hdGNoZXNB
cnJheVN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0
dXJlLmdldCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102720</attachid>
            <date>2011-08-02 17:32:45 -0700</date>
            <delta_ts>2011-08-02 17:38:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65422-20110802173244.patch</filename>
            <type>text/plain</type>
            <size>7958</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyMzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgy
ZWE3Y2MyOTEzMDY3Zjk3NmUyMDMyY2M4NDg5Y2NkZmQyMGMxYTguLjU4Y2EyZDhlYjhiYzYzMzM1
OTY1NTAyNWM3MDczNWY0OGU3ZjAzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI4IEBACisyMDExLTA3LTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgU2ltcGxpZnkgSlNGdW5jdGlvbiBjcmVhdGlvbiBmb3IgZnVuY3Rpb25zIHdyaXR0
ZW4gaW4gSlMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIGhhc2ggbG9va3VwcyB1c2VkIHRvIHdyaXRlIG5hbWUgcHJvcGVydHkgYW5kIHRyYW5z
aXRpb24KKyAgICAgICAgZnVuY3Rpb24gc3RydWN0dXJlIGJ5IGNhY2hpbmcgdGhlIHJlc3VsdGFu
dCBzdHJ1Y3R1cmUgYW5kIHByb3BlcnR5CisgICAgICAgIG9mZnNldCBpbiBKU0dsb2JhbE9iamVj
dC4gIFRoaXMgZG9lc24ndCBpbXBhY3QgcGVyZm9ybWFuY2UsIGJ1dAorICAgICAgICB3ZSBjYW4g
dXNlIHRoaXMgY2hhbmdlIHRvIG1ha2Ugb3RoZXIgaW1wcm92ZW1lbnRzIGxhdGVyLgorCisgICAg
ICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJs
ZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpTY3JpcHRFeGVjdXRhYmxlKToK
KyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpqc05hbWUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6cmVzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Om5hbWVkRnVuY3Rpb25TdHJ1Y3R1
cmUpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZnVuY3Rpb25OYW1lT2Zmc2V0KToK
KwogMjAxMS0wOC0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IEpTQyBHQyB1c2VzIGR1bW15IGNlbGxzIHRvIGF2b2lkIGhhdmluZyB0byByZW1lbWJlciB3aGlj
aCBjZWxscwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApp
bmRleCA1ZGY3OTQxNzViZGMzMGEyODA3YTQwNTAwY2MyMDdkNGFlNWZkYWY3Li42NzdhODliZjM3
NTQzOGJlOTQwMDA0YzUyZmVlMDdkM2E4YjgwZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtMTQ0LDYgKzE0NCw3IEBAIEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29u
c3QgSWRlbnRpZmllCiB7CiAgICAgbV9maXJzdExpbmUgPSBmaXJzdExpbmU7CiAgICAgbV9sYXN0
TGluZSA9IGxhc3RMaW5lOworICAgIG1fbmFtZVZhbHVlLnNldChnbG9iYWxEYXRhLCB0aGlzLCBq
c1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS51c3RyaW5nKCkpKTsKIH0KIAogRnVuY3Rpb25FeGVj
dXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1l
bnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0
LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCkBAIC0xNTYsNiArMTU3LDcgQEAgRnVuY3Rp
b25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lLAogewogICAgIG1fZmlyc3RMaW5lID0gZmlyc3RMaW5lOwogICAgIG1f
bGFzdExpbmUgPSBsYXN0TGluZTsKKyAgICBtX25hbWVWYWx1ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCB0aGlzLCBqc1N0cmluZygmZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lLnVzdHJpbmcoKSkp
OwogfQogCiAKQEAgLTQzOSw2ICs0NDEsOCBAQCB2b2lkIEZ1bmN0aW9uRXhlY3V0YWJsZTo6dmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICBDT01QSUxFX0FTU0VSVChTdHJ1
Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW5XaXRob3V0U2V0dGluZ0ZsYWcpOwogICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+dHlwZUluZm8o
KS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwogICAgIFNjcmlwdEV4ZWN1dGFibGU6OnZpc2l0
Q2hpbGRyZW4odmlzaXRvcik7CisgICAgaWYgKG1fbmFtZVZhbHVlKQorICAgICAgICB2aXNpdG9y
LmFwcGVuZCgmbV9uYW1lVmFsdWUpOwogICAgIGlmIChtX2NvZGVCbG9ja0ZvckNhbGwpCiAgICAg
ICAgIG1fY29kZUJsb2NrRm9yQ2FsbC0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiAgICAgaWYg
KG1fY29kZUJsb2NrRm9yQ29uc3RydWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5oCmluZGV4IDM2Y2UyNTk5MjU4YzBiODk5ZmI0MzkyZmYzNzYwNzM5YzU4YWEx
ZTYuLjM4NzQxZmMyMjQwODI2MTA1YWNhNzJlNmNhNjc5NDg4MTQ4ZDgyYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTIyNiw3ICsyMjYsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogI2lmIEVOQUJMRShDT0RFQkxPQ0tfU0FNUExJTkcp
CiAgICAgICAgICAgICBpZiAoU2FtcGxpbmdUb29sKiBzYW1wbGVyID0gZ2xvYmFsRGF0YS5pbnRl
cnByZXRlci0+c2FtcGxlcigpKQotICAgICAgICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9mU2Nv
cGUoKmdsb2JhbERhdGEsIHRoaXMpOworICAgICAgICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9m
U2NvcGUoZ2xvYmFsRGF0YSwgdGhpcyk7CiAjZWxzZQogICAgICAgICAgICAgVU5VU0VEX1BBUkFN
KGdsb2JhbERhdGEpOwogI2VuZGlmCkBAIC00NzgsNiArNDc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIH0KIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBuYW1lKCkgeyByZXR1cm4g
bV9uYW1lOyB9CisgICAgICAgIEpTU3RyaW5nKiBuYW1lVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X25hbWVWYWx1ZS5nZXQoKTsgfQogICAgICAgICBzaXplX3QgcGFyYW1ldGVyQ291bnQoKSBjb25z
dCB7IHJldHVybiBtX3BhcmFtZXRlcnMtPnNpemUoKTsgfQogICAgICAgICB1bnNpZ25lZCBjYXB0
dXJlZFZhcmlhYmxlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX251bUNhcHR1cmVkVmFyaWFibGVz
OyB9CiAgICAgICAgIFVTdHJpbmcgcGFyYW1TdHJpbmcoKSBjb25zdDsKQEAgLTUwOSw2ICs1MTAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgT3duUHRyPEZ1bmN0aW9uQ29kZUJsb2NrPiBt
X2NvZGVCbG9ja0ZvckNhbGw7CiAgICAgICAgIE93blB0cjxGdW5jdGlvbkNvZGVCbG9jaz4gbV9j
b2RlQmxvY2tGb3JDb25zdHJ1Y3Q7CiAgICAgICAgIElkZW50aWZpZXIgbV9uYW1lOworICAgICAg
ICBXcml0ZUJhcnJpZXI8SlNTdHJpbmc+IG1fbmFtZVZhbHVlOwogICAgICAgICBTaGFyZWRTeW1i
b2xUYWJsZSogbV9zeW1ib2xUYWJsZTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDQzMGQwNmQ5YmM1YjlkMWQ3ZjE3ZTc4MmRi
ZGQwOTc4OWM4NDU2MDAuLjEzZjFlYWI1MjFkZWQ1YWRhYzFjNzI5MDgwNjczNGI2NDAyYjBhNGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC05
MCw4ICs5MCw4IEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5j
dGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhCiAgICAgLCBtX3Njb3BlQ2hhaW4o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwotICAgIGNvbnN0IElkZW50aWZpZXImIG5hbWUgPSBzdGF0aWNf
Y2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihtX2V4ZWN1dGFibGUuZ2V0KCkpLT5uYW1lKCk7Ci0g
ICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3Bl
cnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUu
dXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOworICAgIHNldFN0
cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3Qt
Pm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7CisgICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmds
b2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zm
c2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKIH0KIAogSlNGdW5jdGlvbjo6fkpTRnVu
Y3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IDc3ZTJmYzVkZmNmMmQ4MzRiMzc4M2JiOWIwZTVmM2Q4NzdjMTFmNzkuLjIw
MWU4MzExNjFkOTJhODE0OTdjZTZiYzY0ZmFiZGZkN2I3YjdkM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE4Nyw2ICsxODcs
NyBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvdHlwZSkKIAogICAg
IG1fZnVuY3Rpb25Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgRnVuY3Rp
b25Qcm90b3R5cGU6OmNyZWF0ZShleGVjLCB0aGlzLCBGdW5jdGlvblByb3RvdHlwZTo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpKSk7IC8vIFRoZSByZWFsIHBy
b3RvdHlwZSB3aWxsIGJlIHNldCBvbmNlIE9iamVjdFByb3RvdHlwZSBpcyBjcmVhdGVkLgogICAg
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSlNGdW5j
dGlvbjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3Rv
dHlwZS5nZXQoKSkpOworICAgIG1fbmFtZWRGdW5jdGlvblN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbihleGVjLT5n
bG9iYWxEYXRhKCksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMtPmdsb2JhbERhdGEo
KS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSwg
MCwgbV9mdW5jdGlvbk5hbWVPZmZzZXQpKTsKICAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1
cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkp
OwogICAgIEpTRnVuY3Rpb24qIGNhbGxGdW5jdGlvbiA9IDA7CiAgICAgSlNGdW5jdGlvbiogYXBw
bHlGdW5jdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAppbmRleCA5MTllOGVmYTA5ZjJlMmM4MjI1MTM3ODA1OTJlOTkyMWZkOGE3N2M5
Li40ZGM5ZjU4MzA3NGQwMWUxMTRjNzY5NGYxNDYzZDYxMzU3ZjMzYmRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTExNiw2ICsxMTYs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9u
dWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlOwogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0
dXJlPiBtX2Vycm9yU3RydWN0dXJlOwogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X2Z1bmN0aW9uU3RydWN0dXJlOworICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX25h
bWVkRnVuY3Rpb25TdHJ1Y3R1cmU7CisgICAgICAgIHNpemVfdCBtX2Z1bmN0aW9uTmFtZU9mZnNl
dDsKICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9udW1iZXJPYmplY3RTdHJ1Y3R1
cmU7CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcmVnRXhwTWF0Y2hlc0FycmF5
U3RydWN0dXJlOwogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3JlZ0V4cFN0cnVj
dHVyZTsKQEAgLTIyOSw2ICsyMzEsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RydWN0
dXJlKiBudWxsUHJvdG90eXBlT2JqZWN0U3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9udWxs
UHJvdG90eXBlT2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CiAgICAgICAgIFN0cnVjdHVyZSogZXJy
b3JTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yU3RydWN0dXJlLmdldCgpOyB9CiAg
ICAgICAgIFN0cnVjdHVyZSogZnVuY3Rpb25TdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2Z1
bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9CisgICAgICAgIFN0cnVjdHVyZSogbmFtZWRGdW5jdGlv
blN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZWRGdW5jdGlvblN0cnVjdHVyZS5nZXQo
KTsgfQorICAgICAgICBzaXplX3QgZnVuY3Rpb25OYW1lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4g
bV9mdW5jdGlvbk5hbWVPZmZzZXQ7IH0KICAgICAgICAgU3RydWN0dXJlKiBudW1iZXJPYmplY3RT
dHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX251bWJlck9iamVjdFN0cnVjdHVyZS5nZXQoKTsg
fQogICAgICAgICBTdHJ1Y3R1cmUqIGludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUoKSBjb25zdCB7
IHJldHVybiBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCk7IH0KICAgICAgICAgU3Ry
dWN0dXJlKiByZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX3Jl
Z0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZS5nZXQoKTsgfQo=
</data>
<flag name="review"
          id="98065"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>