<?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>168578</bug_id>
          
          <creation_ts>2017-02-19 17:14:32 -0800</creation_ts>
          <short_desc>[Cocoa] Objective-C class whose name begins with an underscore can’t be exported to JavaScript</short_desc>
          <delta_ts>2017-06-14 22:57:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local 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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>barraclough</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1278787</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-02-19 17:14:32 -0800</bug_when>
    <thetext>When an Objective-C class’s name begins with an underscore, its conformance to JSExport is ignored. This is because -[JSWrapperMap classInfoForClass:] skips over classes whose names begin with an underscore. A comment in that method says that it skips “internal classes beginning with &apos;_&apos;” but offers no explanation why. A possible explanation is that this behavior does make instances of class clusters appear somewhat “nicer” when exported to JavaScript.

In framework code (including WebKit code), it is common for class names that aren’t part of the public API to being with an underscore, and such classes may have JS exports that they don’t share with a non-underscore-prefixed superclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297844</commentid>
    <comment_count>1</comment_count>
      <attachid>307253</attachid>
    <who name="">mitz</who>
    <bug_when>2017-04-16 19:46:15 -0700</bug_when>
    <thetext>Created attachment 307253
Avoid skipping over underscore-prefixed classes that JSExport</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297908</commentid>
    <comment_count>2</comment_count>
      <attachid>307253</attachid>
    <who name="">mitz</who>
    <bug_when>2017-04-17 08:01:39 -0700</bug_when>
    <thetext>Comment on attachment 307253
Avoid skipping over underscore-prefixed classes that JSExport

The more I think about this, the more it seems like the right thing to do here is just entirely remove the special-casing of underscore-prefixed class names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298041</commentid>
    <comment_count>3</comment_count>
      <attachid>307253</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-04-17 15:04:36 -0700</bug_when>
    <thetext>Comment on attachment 307253
Avoid skipping over underscore-prefixed classes that JSExport

I wonder what we accomplished previously be excluding classes with _ prefixes, and what we continue to accomplish now by doing the same for classes with _ prefixes that do not have JSExports. Such classes don&apos;t export anything, so how are they even visible to JavaScript? I guess they are visible when an empty _Class shows up somewhere in the prototype chain?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319459</commentid>
    <comment_count>4</comment_count>
      <attachid>307253</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-14 22:45:24 -0700</bug_when>
    <thetext>Comment on attachment 307253
Avoid skipping over underscore-prefixed classes that JSExport

Rejecting attachment 307253 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 307253, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
th fuzz 2 (offset -4 lines).
1 out of 4 hunks FAILED -- saving rejects to file Source/JavaScriptCore/API/JSWrapperMap.mm.rej
patching file Source/JavaScriptCore/API/ObjcRuntimeExtras.h
patching file Source/JavaScriptCore/API/tests/JSExportTests.mm
Hunk #3 succeeded at 145 with fuzz 1.
Hunk #4 succeeded at 208 with fuzz 2 (offset 40 lines).

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Geoffrey Garen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/3933609</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319462</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-06-14 22:57:41 -0700</bug_when>
    <thetext>Fixed in &lt;https://trac.webkit.org/r218316&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307253</attachid>
            <date>2017-04-16 19:46:15 -0700</date>
            <delta_ts>2017-06-14 22:45:24 -0700</delta_ts>
            <desc>Avoid skipping over underscore-prefixed classes that JSExport</desc>
            <filename>bug-168578-20170416194614.patch</filename>
            <type>text/plain</type>
            <size>8271</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE1NDA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE3LTA0LTE2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAg
W0NvY29hXSBPYmplY3RpdmUtQyBjbGFzcyB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIGFuIHVuZGVy
c2NvcmUgY2Fu4oCZdCBiZSBleHBvcnRlZCB0byBKYXZhU2NyaXB0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg1NzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU1dyYXBwZXJNYXAubW06Cisg
ICAgICAgIChhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MpOiBVcGRhdGVkIGZvciBj
aGFuZ2UgdG8gZm9yRWFjaFByb3RvY29sSW1wbGVtZW50aW5nUHJvdG9jb2wuCisgICAgICAgICgt
W0pTT2JqQ0NsYXNzSW5mbyBhbGxvY2F0ZUNvbnN0cnVjdG9yQW5kUHJvdG90eXBlXSk6IERpdHRv
LgorICAgICAgICAoLVtKU1dyYXBwZXJNYXAgY2xhc3NJbmZvRm9yQ2xhc3M6XSk6IElmIHRoZSBj
bGFzcyBuYW1lIGJlZ2lucyB3aXRoIGFuIHVuZGVyc2NvcmUsIGNoZWNrIGlmCisgICAgICAgICAg
aXQgZGVmaW5lcyBjb25mb3JtYW5jZSB0byBhIEpTRXhwb3J0LWRlcml2ZWQgcHJvdG9jb2wgYW5k
IGlmIHNvLCBhdm9pZCB1c2luZyB0aGUKKyAgICAgICAgICBzdXBlcmNsYXNzIGFzIGEgc3Vic3Rp
dHV0ZSBhcyB3ZeKAmWQgbm9ybWFsbHkgZG8uCisKKyAgICAgICAgKiBBUEkvT2JqY1J1bnRpbWVF
eHRyYXMuaDoKKyAgICAgICAgKGZvckVhY2hQcm90b2NvbEltcGxlbWVudGluZ1Byb3RvY29sKTog
QWRkZWQgYSAic3RvcCIgYXJndW1lbnQgdG8gdGhlIGJsb2NrIHRvIGxldCBjYWxsZXJzCisgICAg
ICAgICAgYmFpbCBvdXQuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvSlNFeHBvcnRUZXN0cy5tbToK
KyAgICAgICAgKCtbSlNFeHBvcnRUZXN0cyBjbGFzc05hbWVQcmVmaXhlZFdpdGhVbmRlcnNjb3Jl
VGVzdF0pOiBOZXcgdGVzdCBmb3IgdGhpcy4KKyAgICAgICAgKHJ1bkpTRXhwb3J0VGVzdHMpOiBS
dW4gbmV3IHRlc3QuCisKIDIwMTctMDQtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvYnVpbHQtaW5zL2lzTmFO
L3RvcHJpbWl0aXZlLW5vdC1jYWxsYWJsZS10aHJvd3MuanMKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCShyZXZpc2lvbiAyMTU0MDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSwgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQxMyw3ICs0MTMsNyBAQCBzdGF0aWMgSlNDOjpKU09iamVjdCogYWxsb2NhdGVDb25zdHJ1
Y3RvCiAgICAgX19ibG9jayBIYXNoTWFwPFN0cmluZywgUHJvdG9jb2wgKj4gaW5pdFRhYmxlOwog
ICAgIFByb3RvY29sICpleHBvcnRQcm90b2NvbCA9IGdldEpTRXhwb3J0UHJvdG9jb2woKTsKICAg
ICBmb3IgKENsYXNzIGN1cnJlbnRDbGFzcyA9IGNsczsgY3VycmVudENsYXNzOyBjdXJyZW50Q2xh
c3MgPSBjbGFzc19nZXRTdXBlcmNsYXNzKGN1cnJlbnRDbGFzcykpIHsKLSAgICAgICAgZm9yRWFj
aFByb3RvY29sSW1wbGVtZW50aW5nUHJvdG9jb2woY3VycmVudENsYXNzLCBleHBvcnRQcm90b2Nv
bCwgXihQcm90b2NvbCAqcHJvdG9jb2wpIHsKKyAgICAgICAgZm9yRWFjaFByb3RvY29sSW1wbGVt
ZW50aW5nUHJvdG9jb2woY3VycmVudENsYXNzLCBleHBvcnRQcm90b2NvbCwgXihQcm90b2NvbCAq
cHJvdG9jb2wsIGJvb2wmKSB7CiAgICAgICAgICAgICBmb3JFYWNoTWV0aG9kSW5Qcm90b2NvbChw
cm90b2NvbCwgWUVTLCBZRVMsIF4oU0VMIHNlbGVjdG9yLCBjb25zdCBjaGFyKikgewogICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBzZWxfZ2V0TmFtZShzZWxlY3Rvcik7CiAgICAg
ICAgICAgICAgICAgaWYgKCFpc0luaXRGYW1pbHlNZXRob2QoQChuYW1lKSkpCkBAIC00OTQsNyAr
NDk0LDcgQEAgLSAoQ29uc3RydWN0b3JQcm90b3R5cGVQYWlyKWFsbG9jYXRlQ29ucwogICAgICAg
ICBwdXROb25FbnVtZXJhYmxlKGNvbnN0cnVjdG9yLCBAInByb3RvdHlwZSIsIHByb3RvdHlwZSk7
CiAKICAgICAgICAgUHJvdG9jb2wgKmV4cG9ydFByb3RvY29sID0gZ2V0SlNFeHBvcnRQcm90b2Nv
bCgpOwotICAgICAgICBmb3JFYWNoUHJvdG9jb2xJbXBsZW1lbnRpbmdQcm90b2NvbChtX2NsYXNz
LCBleHBvcnRQcm90b2NvbCwgXihQcm90b2NvbCAqcHJvdG9jb2wpeworICAgICAgICBmb3JFYWNo
UHJvdG9jb2xJbXBsZW1lbnRpbmdQcm90b2NvbChtX2NsYXNzLCBleHBvcnRQcm90b2NvbCwgXihQ
cm90b2NvbCAqcHJvdG9jb2wsIGJvb2wmKSB7CiAgICAgICAgICAgICBjb3B5UHJvdG90eXBlUHJv
cGVydGllcyhtX2NvbnRleHQsIG1fY2xhc3MsIHByb3RvY29sLCBwcm90b3R5cGUpOwogICAgICAg
ICAgICAgY29weU1ldGhvZHNUb09iamVjdChtX2NvbnRleHQsIG1fY2xhc3MsIHByb3RvY29sLCBO
TywgY29uc3RydWN0b3IpOwogICAgICAgICB9KTsKQEAgLTU5MSw4ICs1OTEsMTYgQEAgLSAoSlNP
YmpDQ2xhc3NJbmZvKiljbGFzc0luZm9Gb3JDbGFzczooQwogICAgICAgICByZXR1cm4gY2xhc3NJ
bmZvOwogCiAgICAgLy8gU2tpcCBpbnRlcm5hbCBjbGFzc2VzIGJlZ2lubmluZyB3aXRoICdfJyAt
IGp1c3QgY29weSBsaW5rIHRvIHRoZSBwYXJlbnQgY2xhc3MncyBpbmZvLgotICAgIGlmICgnXycg
PT0gKmNsYXNzX2dldE5hbWUoY2xzKSkKLSAgICAgICAgcmV0dXJuIG1fY2xhc3NNYXBbY2xzXSA9
IFtzZWxmIGNsYXNzSW5mb0ZvckNsYXNzOmNsYXNzX2dldFN1cGVyY2xhc3MoY2xzKV07CisgICAg
aWYgKCdfJyA9PSAqY2xhc3NfZ2V0TmFtZShjbHMpKSB7CisgICAgICAgIGJvb2wgY29uZm9ybXNU
b0V4cG9ydFByb3RvY29sID0gZmFsc2U7CisgICAgICAgIGZvckVhY2hQcm90b2NvbEltcGxlbWVu
dGluZ1Byb3RvY29sKGNscywgZ2V0SlNFeHBvcnRQcm90b2NvbCgpLCBbJmNvbmZvcm1zVG9FeHBv
cnRQcm90b2NvbF0oUHJvdG9jb2wgKiwgYm9vbCYgc3RvcCkgeworICAgICAgICAgICAgY29uZm9y
bXNUb0V4cG9ydFByb3RvY29sID0gdHJ1ZTsKKyAgICAgICAgICAgIHN0b3AgPSB0cnVlOworICAg
ICAgICB9KTsKKworICAgICAgICBpZiAoIWNvbmZvcm1zVG9FeHBvcnRQcm90b2NvbCkKKyAgICAg
ICAgICAgIHJldHVybiBtX2NsYXNzTWFwW2Nsc10gPSBbc2VsZiBjbGFzc0luZm9Gb3JDbGFzczpj
bGFzc19nZXRTdXBlcmNsYXNzKGNscyldOworICAgIH0KIAogICAgIHJldHVybiBtX2NsYXNzTWFw
W2Nsc10gPSBbW1tKU09iakNDbGFzc0luZm8gYWxsb2NdIGluaXRXaXRoQ29udGV4dDptX2NvbnRl
eHQgZm9yQ2xhc3M6Y2xzXSBhdXRvcmVsZWFzZV07CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iamNSdW50aW1lRXh0cmFzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9PYmpjUnVudGltZUV4dHJhcy5oCShyZXZpc2lvbiAyMTU0MDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iamNSdW50aW1lRXh0cmFzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTQyLDcgKzQyLDcgQEAgaW5saW5lIGJvb2wgcHJvdG9jb2xJbXBsZW1lbnRzUHJvdG9jb2wo
UAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotaW5saW5lIHZvaWQgZm9yRWFjaFByb3RvY29sSW1w
bGVtZW50aW5nUHJvdG9jb2woQ2xhc3MgY2xzLCBQcm90b2NvbCAqdGFyZ2V0LCB2b2lkICheY2Fs
bGJhY2spKFByb3RvY29sICopKQoraW5saW5lIHZvaWQgZm9yRWFjaFByb3RvY29sSW1wbGVtZW50
aW5nUHJvdG9jb2woQ2xhc3MgY2xzLCBQcm90b2NvbCAqdGFyZ2V0LCB2b2lkICheY2FsbGJhY2sp
KFByb3RvY29sICosIGJvb2wmIHN0b3ApKQogewogICAgIEFTU0VSVChjbHMpOwogICAgIEFTU0VS
VCh0YXJnZXQpOwpAQCAtNTYsNiArNTYsNyBAQCBpbmxpbmUgdm9pZCBmb3JFYWNoUHJvdG9jb2xJ
bXBsZW1lbnRpbmdQCiAgICAgd29ya2xpc3QuYXBwZW5kKHByb3RvY29scywgcHJvdG9jb2xzQ291
bnQpOwogICAgIGZyZWUocHJvdG9jb2xzKTsKIAorICAgIGJvb2wgc3RvcCA9IGZhbHNlOwogICAg
IHdoaWxlICghd29ya2xpc3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIFByb3RvY29sICpwcm90b2Nv
bCA9IHdvcmtsaXN0Lmxhc3QoKTsKICAgICAgICAgd29ya2xpc3QucmVtb3ZlTGFzdCgpOwpAQCAt
NjUsOCArNjYsMTEgQEAgaW5saW5lIHZvaWQgZm9yRWFjaFByb3RvY29sSW1wbGVtZW50aW5nUAog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gSWYgaXQgaW1wbGVtZW50cyB0aGUg
cHJvdG9jb2wsIG1ha2UgdGhlIGNhbGxiYWNrLgotICAgICAgICBpZiAocHJvdG9jb2xJbXBsZW1l
bnRzUHJvdG9jb2wocHJvdG9jb2wsIHRhcmdldCkpCi0gICAgICAgICAgICBjYWxsYmFjayhwcm90
b2NvbCk7CisgICAgICAgIGlmIChwcm90b2NvbEltcGxlbWVudHNQcm90b2NvbChwcm90b2NvbCwg
dGFyZ2V0KSkgeworICAgICAgICAgICAgY2FsbGJhY2socHJvdG9jb2wsIHN0b3ApOworICAgICAg
ICAgICAgaWYgKHN0b3ApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAg
ICAgICAvLyBBZGQgaW5jb3Jwb3JhdGVkIHByb3RvY29scyB0byB0aGUgd29ya2xpc3QuCiAgICAg
ICAgIHByb3RvY29scyA9IHByb3RvY29sX2NvcHlQcm90b2NvbExpc3QocHJvdG9jb2wsICZwcm90
b2NvbHNDb3VudCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0pTRXhw
b3J0VGVzdHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy9KU0V4cG9ydFRlc3RzLm1tCShyZXZpc2lvbiAyMTU0MDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL0pTRXhwb3J0VGVzdHMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTgwLDYgKzgw
LDI4IEBAIC0gKHZvaWQpIG1ldGhvZFdpdGhDbGFzc1Byb3RvY29sOihOU09iamUKIH0KIEBlbmQK
IAorQGludGVyZmFjZSBOb1VuZGVyc2NvcmVQcmVmaXggOiBOU09iamVjdAorQGVuZAorCitAaW1w
bGVtZW50YXRpb24gTm9VbmRlcnNjb3JlUHJlZml4CitAZW5kCisKK0BpbnRlcmZhY2UgX1VuZGVy
c2NvcmVQcmVmaXhOb0V4cG9ydCA6IE5vVW5kZXJzY29yZVByZWZpeAorQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gX1VuZGVyc2NvcmVQcmVmaXhOb0V4cG9ydAorQGVuZAorCitAcHJvdG9jb2wgSW5p
dGlhbGl6aW5nIDxKU0V4cG9ydD4KKy0gKGluc3RhbmNldHlwZSlpbml0OworQGVuZAorCitAaW50
ZXJmYWNlIF9VbmRlcnNjb3JlUHJlZml4V2l0aEV4cG9ydCA6IE5vVW5kZXJzY29yZVByZWZpeCA8
SW5pdGlhbGl6aW5nPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1VuZGVyc2NvcmVQcmVmaXhX
aXRoRXhwb3J0CitAZW5kCisKIEBpbXBsZW1lbnRhdGlvbiBKU0V4cG9ydFRlc3RzCiArICh2b2lk
KSBleHBvcnRJbnN0YW5jZU1ldGhvZFdpdGhJZFByb3RvY29sVGVzdAogewpAQCAtMTIzLDYgKzE0
NSwyMSBAQCArICh2b2lkKSBleHBvcnREeW5hbWljYWxseUdlbmVyYXRlZFByb3RvCiAgICAgSlNW
YWx1ZSAqdmFsdWUgPSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAIm15U3RyaW5nLmJvb2xWYWx1
ZSgpIl07CiAgICAgY2hlY2tSZXN1bHQoQCJEeW5hbWljYWxseSBnZW5lcmF0ZWQgSlNFeHBvcnQt
ZWQgcHJvdG9jb2xzIGFyZSBpZ25vcmVkIiwgW3ZhbHVlIGlzVW5kZWZpbmVkXSAmJiAhIWNvbnRl
eHQuZXhjZXB0aW9uKTsKIH0KKworKyAodm9pZCljbGFzc05hbWVQcmVmaXhlZFdpdGhVbmRlcnNj
b3JlVGVzdAoreworICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBp
bml0XTsKKworICAgIGNvbnRleHRbQCJfVW5kZXJzY29yZVByZWZpeE5vRXhwb3J0Il0gPSBbX1Vu
ZGVyc2NvcmVQcmVmaXhOb0V4cG9ydCBjbGFzc107CisgICAgY29udGV4dFtAIl9VbmRlcnNjb3Jl
UHJlZml4V2l0aEV4cG9ydCJdID0gW19VbmRlcnNjb3JlUHJlZml4V2l0aEV4cG9ydCBjbGFzc107
CisKKyAgICBjaGVja1Jlc3VsdChAIk5vbi11bmRlcnNjb3JlLXByZWZpeGVkIGFuY2VzdG9yIGNs
YXNzIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gZXhwb3J0cyIsIFtjb250ZXh0W0AiX1VuZGVyc2Nv
cmVQcmVmaXhOb0V4cG9ydCJdIHRvT2JqZWN0XSA9PSBbTm9VbmRlcnNjb3JlUHJlZml4IGNsYXNz
XSk7CisgICAgY2hlY2tSZXN1bHQoQCJVbmRlcnNjb3JlLXByZWZpeGVkIGNsYXNzIHVzZWQgd2hl
biB0aGVyZSBhcmUgZXhwb3J0cyIsIFtjb250ZXh0W0AiX1VuZGVyc2NvcmVQcmVmaXhXaXRoRXhw
b3J0Il0gdG9PYmplY3RdID09IFtfVW5kZXJzY29yZVByZWZpeFdpdGhFeHBvcnQgY2xhc3NdKTsK
KworICAgIEpTVmFsdWUgKndpdGhFeHBvcnRJbnN0YW5jZSA9IFtjb250ZXh0IGV2YWx1YXRlU2Ny
aXB0OkAibmV3IF9VbmRlcnNjb3JlUHJlZml4V2l0aEV4cG9ydCgpIl07CisgICAgY2hlY2tSZXN1
bHQoQCJFeHBvcnRzIHByZXNlbnQgb24gdW5kZXJzY29yZS1wcmVmaXhlZCBjbGFzcyIsICFjb250
ZXh0LmV4Y2VwdGlvbiAmJiAhd2l0aEV4cG9ydEluc3RhbmNlLmlzVW5kZWZpbmVkKTsKK30KKwog
QGVuZAogCiB2b2lkIHJ1bkpTRXhwb3J0VGVzdHMoKQpAQCAtMTMxLDYgKzE2OCw3IEBAIHZvaWQg
cnVuSlNFeHBvcnRUZXN0cygpCiAgICAgICAgIFtKU0V4cG9ydFRlc3RzIGV4cG9ydEluc3RhbmNl
TWV0aG9kV2l0aElkUHJvdG9jb2xUZXN0XTsKICAgICAgICAgW0pTRXhwb3J0VGVzdHMgZXhwb3J0
SW5zdGFuY2VNZXRob2RXaXRoQ2xhc3NQcm90b2NvbFRlc3RdOwogICAgICAgICBbSlNFeHBvcnRU
ZXN0cyBleHBvcnREeW5hbWljYWxseUdlbmVyYXRlZFByb3RvY29sVGVzdF07CisgICAgICAgIFtK
U0V4cG9ydFRlc3RzIGNsYXNzTmFtZVByZWZpeGVkV2l0aFVuZGVyc2NvcmVUZXN0XTsKICAgICB9
CiB9CiAK
</data>
<flag name="review"
          id="328535"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="333853"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>