<?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>197244</bug_id>
          
          <creation_ts>2019-04-24 13:53:18 -0700</creation_ts>
          <short_desc>Add SPI callbacks for before and after module execution</short_desc>
          <delta_ts>2019-04-24 15:42:46 -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 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1530133</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-24 13:53:18 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530134</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-24 13:53:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/50180511&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530183</commentid>
    <comment_count>2</comment_count>
      <attachid>368183</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-24 14:59:45 -0700</bug_when>
    <thetext>Created attachment 368183
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530185</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-24 15:02:38 -0700</bug_when>
    <thetext>Attachment 368183 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/tests/testapi.mm:2033:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/JavaScriptCore/API/tests/testapi.mm:2034:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530199</commentid>
    <comment_count>4</comment_count>
      <attachid>368183</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-04-24 15:17:25 -0700</bug_when>
    <thetext>Comment on attachment 368183
patch

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

r=me. BTW, this use case is actually why we have moduleLoaderEvaluate hook in ModuleLoader APIs. WebCore does the almost same thing to tell the inspector about module evaluation :)

&gt; Source/JavaScriptCore/API/JSAPIGlobalObject.mm:249
&gt; +        String moduleKey = key.toWTFString(exec);
&gt; +        RETURN_IF_EXCEPTION(scope, { });

In JSContext / JSScript module loading API desing, the key is always URL String (not Symbol), is my understanding correct? If so, it is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530209</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-24 15:30:30 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #4)
&gt; Comment on attachment 368183 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=368183&amp;action=review
&gt; 
&gt; r=me. BTW, this use case is actually why we have moduleLoaderEvaluate hook
&gt; in ModuleLoader APIs. WebCore does the almost same thing to tell the
&gt; inspector about module evaluation :)
Nice.

&gt; 
&gt; &gt; Source/JavaScriptCore/API/JSAPIGlobalObject.mm:249
&gt; &gt; +        String moduleKey = key.toWTFString(exec);
&gt; &gt; +        RETURN_IF_EXCEPTION(scope, { });
&gt; 
&gt; In JSContext / JSScript module loading API desing, the key is always URL
&gt; String (not Symbol), is my understanding correct? If so, it is fine.

That&apos;s correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530216</commentid>
    <comment_count>6</comment_count>
      <attachid>368183</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-24 15:42:45 -0700</bug_when>
    <thetext>Comment on attachment 368183
patch

Clearing flags on attachment: 368183

Committed r244620: &lt;https://trac.webkit.org/changeset/244620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530217</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-24 15:42:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368183</attachid>
            <date>2019-04-24 14:59:45 -0700</date>
            <delta_ts>2019-04-24 15:42:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>12054</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ0NjE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE5LTA0LTI0ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBTUEkgY2FsbGJhY2tzIGZvciBiZWZvcmUgYW5kIGFmdGVyIG1vZHVsZSBleGVjdXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzI0NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAxODA1MTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBoZWxwZnVsIGZvciBjbGllbnRzIHRo
YXQgd2FudCB0byBwcm9maWxlIGV4ZWN1dGlvbiBvZiBtb2R1bGVzCisgICAgICAgIGluIHNvbWUg
d2F5LiBFLmcsIGlmIHRoZXkgd2FudCB0byB0aW1lIG1vZHVsZSBleGVjdXRpb24gdGltZS4KKwor
ICAgICAgICAqIEFQSS9KU0FQSUdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0FQSUds
b2JhbE9iamVjdC5tbToKKyAgICAgICAgKEpTQzo6SlNBUElHbG9iYWxPYmplY3Q6Om1vZHVsZUxv
YWRlckV2YWx1YXRlKToKKyAgICAgICAgKiBBUEkvSlNDb250ZXh0UHJpdmF0ZS5oOgorICAgICAg
ICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgorICAgICAgICAoK1tKU0NvbnRleHRGZXRjaERlbGVn
YXRlIGNvbnRleHRXaXRoQmxvY2tGb3JGZXRjaDpdKToKKyAgICAgICAgKC1bSlNDb250ZXh0RmV0
Y2hEZWxlZ2F0ZSB3aWxsRXZhbHVhdGVNb2R1bGU6XSk6CisgICAgICAgICgtW0pTQ29udGV4dEZl
dGNoRGVsZWdhdGUgZGlkRXZhbHVhdGVNb2R1bGU6XSk6CisgICAgICAgICh0ZXN0RmV0Y2gpOgor
ICAgICAgICAodGVzdEZldGNoV2l0aFR3b0N5Y2xlKToKKyAgICAgICAgKHRlc3RGZXRjaFdpdGhU
aHJlZUN5Y2xlKToKKyAgICAgICAgKHRlc3RMb2FkZXJSZXNvbHZlc0Fic29sdXRlU2NyaXB0VVJM
KToKKyAgICAgICAgKHRlc3RMb2FkZXJSZWplY3RzTmlsU2NyaXB0VVJMKToKKyAgICAgICAgKiBy
dW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6
OmV2YWx1YXRlKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmV2YWx1YXRlTm9uVmly
dHVhbCk6CisgICAgICAgICogcnVudGltZS9KU01vZHVsZUxvYWRlci5oOgorCiAyMDE5LTA0LTIz
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gU2hy
aW5rIERGRzo6TWluaWZpZWROb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
QVBJR2xvYmFsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0FQSUdsb2JhbE9iamVjdC5oCShyZXZpc2lvbiAyNDQ2MDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYg
KzU2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJZGVudGlmaWVyIG1vZHVsZUxvYWRlclJlc29s
dmUoSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqLCBKU01vZHVsZUxvYWRlciosIEpTVmFsdWUg
a2V5VmFsdWUsIEpTVmFsdWUgcmVmZXJyZXJWYWx1ZSwgSlNWYWx1ZSk7CiAgICAgc3RhdGljIEpT
SW50ZXJuYWxQcm9taXNlKiBtb2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCosIEV4ZWNT
dGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAgICAg
c3RhdGljIEpTT2JqZWN0KiBtb2R1bGVMb2FkZXJDcmVhdGVJbXBvcnRNZXRhUHJvcGVydGllcyhK
U0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNWYWx1ZSwgSlNN
b2R1bGVSZWNvcmQqLCBKU1ZhbHVlKTsKKyAgICBzdGF0aWMgSlNWYWx1ZSBtb2R1bGVMb2FkZXJF
dmFsdWF0ZShKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSosIEpTTW9kdWxlTG9hZGVyKiwgSlNW
YWx1ZSwgSlNWYWx1ZSwgSlNWYWx1ZSk7CiAKICAgICBKU1ZhbHVlIGxvYWRBbmRFdmFsdWF0ZUpT
U2NyaXB0TW9kdWxlKGNvbnN0IEpTTG9ja0hvbGRlciYsIEpTU2NyaXB0ICopOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJR2xvYmFsT2JqZWN0Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmplY3QubW0JKHJldmlz
aW9uIDI0NDYwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElHbG9iYWxPYmpl
Y3QubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgIkpTQ29udGV4
dEludGVybmFsLmgiCiAjaW1wb3J0ICJKU0ludGVybmFsUHJvbWlzZS5oIgogI2ltcG9ydCAiSlNJ
bnRlcm5hbFByb21pc2VEZWZlcnJlZC5oIgorI2ltcG9ydCAiSlNNb2R1bGVMb2FkZXIuaCIKICNp
bXBvcnQgIkpTTmF0aXZlU3RkRnVuY3Rpb24uaCIKICNpbXBvcnQgIkpTUHJvbWlzZURlZmVycmVk
LmgiCiAjaW1wb3J0ICJKU1NjcmlwdEludGVybmFsLmgiCkBAIC02MSw3ICs2Miw3IEBAIGNvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTQVBJR2xvYmEKICAgICAmbW9kdWxlTG9hZGVyUmVz
b2x2ZSwgLy8gbW9kdWxlTG9hZGVyUmVzb2x2ZQogICAgICZtb2R1bGVMb2FkZXJGZXRjaCwgLy8g
bW9kdWxlTG9hZGVyRmV0Y2gKICAgICAmbW9kdWxlTG9hZGVyQ3JlYXRlSW1wb3J0TWV0YVByb3Bl
cnRpZXMsIC8vIG1vZHVsZUxvYWRlckNyZWF0ZUltcG9ydE1ldGFQcm9wZXJ0aWVzCi0gICAgbnVs
bHB0ciwgLy8gbW9kdWxlTG9hZGVyRXZhbHVhdGUKKyAgICBtb2R1bGVMb2FkZXJFdmFsdWF0ZSwg
Ly8gbW9kdWxlTG9hZGVyRXZhbHVhdGUKICAgICBudWxscHRyLCAvLyBwcm9taXNlUmVqZWN0aW9u
VHJhY2tlcgogICAgIG51bGxwdHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogICAgIG51bGxwdHIsIC8v
IGNvbXBpbGVTdHJlYW1pbmcKQEAgLTIzNCw2ICsyMzUsMzMgQEAgSlNPYmplY3QqIEpTQVBJR2xv
YmFsT2JqZWN0Ojptb2R1bGVMb2FkZQogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAor
SlNWYWx1ZSBKU0FQSUdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBKU01vZHVsZUxvYWRlciogbW9k
dWxlTG9hZGVyLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmRWYWx1ZSwgSlNWYWx1
ZSBzY3JpcHRGZXRjaGVyKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgSlNDb250ZXh0ICpjb250ZXh0
ID0gW0pTQ29udGV4dCBjb250ZXh0V2l0aEpTR2xvYmFsQ29udGV4dFJlZjp0b0dsb2JhbFJlZihn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSldOworICAgIGlkIDxKU01vZHVsZUxvYWRlckRlbGVn
YXRlPiBtb2R1bGVMb2FkZXJEZWxlZ2F0ZSA9IFtjb250ZXh0IG1vZHVsZUxvYWRlckRlbGVnYXRl
XTsKKyAgICBOU1VSTCAqdXJsID0gbmlsOworCisgICAgaWYgKFttb2R1bGVMb2FkZXJEZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdpbGxFdmFsdWF0ZU1vZHVsZTopXSB8fCBb
bW9kdWxlTG9hZGVyRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkaWRFdmFs
dWF0ZU1vZHVsZTopXSkgeworICAgICAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5LnRvV1RGU3Ry
aW5nKGV4ZWMpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
ICAgICB1cmwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpzdGF0aWNfY2FzdDxOU1N0cmluZyAqPiht
b2R1bGVLZXkpXTsKKyAgICB9CisKKyAgICBpZiAoW21vZHVsZUxvYWRlckRlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2lsbEV2YWx1YXRlTW9kdWxlOildKQorICAgICAgICBb
bW9kdWxlTG9hZGVyRGVsZWdhdGUgd2lsbEV2YWx1YXRlTW9kdWxlOnVybF07CisKKyAgICBzY29w
ZS5yZWxlYXNlKCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBtb2R1bGVMb2FkZXItPmV2YWx1YXRl
Tm9uVmlydHVhbChleGVjLCBrZXksIG1vZHVsZVJlY29yZFZhbHVlLCBzY3JpcHRGZXRjaGVyKTsK
KworICAgIGlmIChbbW9kdWxlTG9hZGVyRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihkaWRFdmFsdWF0ZU1vZHVsZTopXSkKKyAgICAgICAgW21vZHVsZUxvYWRlckRlbGVnYXRl
IGRpZEV2YWx1YXRlTW9kdWxlOnVybF07CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBKU1Zh
bHVlIEpTQVBJR2xvYmFsT2JqZWN0Ojpsb2FkQW5kRXZhbHVhdGVKU1NjcmlwdE1vZHVsZShjb25z
dCBKU0xvY2tIb2xkZXImLCBKU1NjcmlwdCAqc2NyaXB0KQogewogICAgIEFTU0VSVChzY3JpcHQu
dHlwZSA9PSBrSlNTY3JpcHRUeXBlTW9kdWxlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDb250ZXh0UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDb250ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiAyNDQ2MDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ29udGV4dFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NDksNiArNDksMTggQEAKICAqLwogLSAodm9pZCljb250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0
IGZldGNoTW9kdWxlRm9ySWRlbnRpZmllcjooSlNWYWx1ZSAqKWlkZW50aWZpZXIgd2l0aFJlc29s
dmVIYW5kbGVyOihKU1ZhbHVlICopcmVzb2x2ZSBhbmRSZWplY3RIYW5kbGVyOihKU1ZhbHVlICop
cmVqZWN0OwogCitAb3B0aW9uYWwKKworLyohIEBhYnN0cmFjdCBUaGlzIGlzIGNhbGxlZCBiZWZv
cmUgdGhlIG1vZHVsZSB3aXRoICJrZXkiIGlzIGV2YWx1YXRlZC4KKyBAcGFyYW0ga2V5IFRoZSBt
b2R1bGUga2V5IGZvciB0aGUgbW9kdWxlIHRoYXQgaXMgYWJvdXQgdG8gYmUgZXZhbHVhdGVkLgor
ICovCistICh2b2lkKXdpbGxFdmFsdWF0ZU1vZHVsZTooTlNVUkwgKilrZXk7CisKKy8qISBAYWJz
dHJhY3QgVGhpcyBpcyBjYWxsZWQgYWZ0ZXIgdGhlIG1vZHVsZSB3aXRoICJrZXkiIGlzIGV2YWx1
YXRlZC4KKyBAcGFyYW0ga2V5IFRoZSBtb2R1bGUga2V5IGZvciB0aGUgbW9kdWxlIHRoYXQgd2Fz
IGp1c3QgZXZhbHVhdGVkLgorICovCistICh2b2lkKWRpZEV2YWx1YXRlTW9kdWxlOihOU1VSTCAq
KWtleTsKKwogQGVuZAogCiBAaW50ZXJmYWNlIEpTQ29udGV4dChQcml2YXRlKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQkocmV2aXNpb24gMjQ0NjA1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xODI3LDYgKzE4MjcsMTEgQEAgQGludGVyZmFjZSBKU0NvbnRleHRGZXRjaERl
bGVnYXRlIDogSlNDbwogCiArIChpbnN0YW5jZXR5cGUpY29udGV4dFdpdGhCbG9ja0ZvckZldGNo
OihGZXRjaEJsb2NrKWJsb2NrOwogCitAcHJvcGVydHkgdW5zaWduZWQgd2lsbEV2YWx1YXRlTW9k
dWxlQ2FsbENvdW50OworQHByb3BlcnR5IHVuc2lnbmVkIGRpZEV2YWx1YXRlTW9kdWxlQ2FsbENv
dW50OworQHByb3BlcnR5IEJPT0wgc2F3QmFySlM7CitAcHJvcGVydHkgQk9PTCBzYXdGb29KUzsK
KwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gSlNDb250ZXh0RmV0Y2hEZWxlZ2F0ZSB7CkBAIC0x
ODM2LDYgKzE4NDEsMTAgQEAgKyAoaW5zdGFuY2V0eXBlKWNvbnRleHRXaXRoQmxvY2tGb3JGZXRj
aAogKyAoaW5zdGFuY2V0eXBlKWNvbnRleHRXaXRoQmxvY2tGb3JGZXRjaDooRmV0Y2hCbG9jayli
bG9jawogewogICAgIGF1dG8gKnJlc3VsdCA9IFtbSlNDb250ZXh0RmV0Y2hEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF07CisgICAgcmVzdWx0LndpbGxFdmFsdWF0ZU1vZHVsZUNhbGxDb3VudCA9IDA7Cisg
ICAgcmVzdWx0LmRpZEV2YWx1YXRlTW9kdWxlQ2FsbENvdW50ID0gMDsKKyAgICByZXN1bHQuc2F3
QmFySlMgPSBOTzsKKyAgICByZXN1bHQuc2F3Rm9vSlMgPSBOTzsKICAgICByZXN1bHQtPm1fZmV0
Y2hCbG9jayA9IGJsb2NrOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xODQ1LDYgKzE4NTQs
MTggQEAgLSAodm9pZCljb250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0IGZldAogICAgIG1fZmV0
Y2hCbG9jayhjb250ZXh0LCBpZGVudGlmaWVyLCByZXNvbHZlLCByZWplY3QpOwogfQogCistICh2
b2lkKXdpbGxFdmFsdWF0ZU1vZHVsZTooTlNVUkwgKil1cmwKK3sKKyAgICBzZWxmLndpbGxFdmFs
dWF0ZU1vZHVsZUNhbGxDb3VudCArPSAxOworICAgIHNlbGYuc2F3QmFySlMgfD0gW3VybCBpc0Vx
dWFsOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZmlsZTovLy9kaXJlY3RvcnkvYmFyLmpzIl1dOwor
fQorCistICh2b2lkKWRpZEV2YWx1YXRlTW9kdWxlOihOU1VSTCAqKXVybAoreworICAgIHNlbGYu
ZGlkRXZhbHVhdGVNb2R1bGVDYWxsQ291bnQgKz0gMTsKKyAgICBzZWxmLnNhd0Zvb0pTIHw9IFt1
cmwgaXNFcXVhbDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImZpbGU6Ly8vZm9vLmpzIl1dOworfQor
CiBAZW5kCiAKIHN0YXRpYyB2b2lkIGNoZWNrTW9kdWxlQ29kZVJhbihKU0NvbnRleHQgKmNvbnRl
eHQsIEpTVmFsdWUgKnByb21pc2UsIEpTVmFsdWUgKmV4cGVjdGVkKQpAQCAtMTg5OCw2ICsxOTE5
LDEwIEBAIHN0YXRpYyB2b2lkIHRlc3RGZXRjaCgpCiAgICAgICAgIEpTVmFsdWUgKnByb21pc2Ug
PSBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAImltcG9ydCgnLi9iYXIuanMnKTsiIHdpdGhTb3Vy
Y2VVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpAIi9kaXJlY3RvcnkiIGlzRGlyZWN0b3J5OllF
U11dOwogICAgICAgICBKU1ZhbHVlICpudWxsID0gW0pTVmFsdWUgdmFsdWVXaXRoTnVsbEluQ29u
dGV4dDpjb250ZXh0XTsKICAgICAgICAgY2hlY2tNb2R1bGVDb2RlUmFuKGNvbnRleHQsIHByb21p
c2UsIG51bGwpOworICAgICAgICBjaGVja1Jlc3VsdChAIkNvbnRleHQgc2hvdWxkIGNhbGwgd2ls
bEV2YWx1YXRlTW9kdWxlOiB0d2ljZSIsIGNvbnRleHQud2lsbEV2YWx1YXRlTW9kdWxlQ2FsbENv
dW50ID09IDIpOworICAgICAgICBjaGVja1Jlc3VsdChAIkNvbnRleHQgc2hvdWxkIGNhbGwgZGlk
RXZhbHVhdGVNb2R1bGU6IHR3aWNlIiwgY29udGV4dC5kaWRFdmFsdWF0ZU1vZHVsZUNhbGxDb3Vu
dCA9PSAyKTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJDb250ZXh0IHNob3VsZCBzZWUgYmFyLmpz
IHVybCIsICEhY29udGV4dC5zYXdCYXJKUyk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiQ29udGV4
dCBzaG91bGQgc2VlIGZvby5qcyB1cmwiLCAhIWNvbnRleHQuc2F3Rm9vSlMpOwogICAgIH0KIH0K
IApAQCAtMTkyNiw2ICsxOTUxLDggQEAgc3RhdGljIHZvaWQgdGVzdEZldGNoV2l0aFR3b0N5Y2xl
KCkKICAgICAgICAgSlNWYWx1ZSAqcHJvbWlzZSA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAi
aW1wb3J0KCcuL2Jhci5qcycpOyIgd2l0aFNvdXJjZVVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRo
OkAiL2RpcmVjdG9yeSIgaXNEaXJlY3Rvcnk6WUVTXV07CiAgICAgICAgIEpTVmFsdWUgKm51bGwg
PSBbSlNWYWx1ZSB2YWx1ZVdpdGhOdWxsSW5Db250ZXh0OmNvbnRleHRdOwogICAgICAgICBjaGVj
a01vZHVsZUNvZGVSYW4oY29udGV4dCwgcHJvbWlzZSwgbnVsbCk7CisgICAgICAgIGNoZWNrUmVz
dWx0KEAiQ29udGV4dCBzaG91bGQgY2FsbCB3aWxsRXZhbHVhdGVNb2R1bGU6IHR3aWNlIiwgY29u
dGV4dC53aWxsRXZhbHVhdGVNb2R1bGVDYWxsQ291bnQgPT0gMik7CisgICAgICAgIGNoZWNrUmVz
dWx0KEAiQ29udGV4dCBzaG91bGQgY2FsbCBkaWRFdmFsdWF0ZU1vZHVsZTogdHdpY2UiLCBjb250
ZXh0LmRpZEV2YWx1YXRlTW9kdWxlQ2FsbENvdW50ID09IDIpOwogICAgIH0KIH0KIApAQCAtMTk2
Miw2ICsxOTg5LDEwIEBAIHN0YXRpYyB2b2lkIHRlc3RGZXRjaFdpdGhUaHJlZUN5Y2xlKCkKICAg
ICAgICAgSlNWYWx1ZSAqcHJvbWlzZSA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAiaW1wb3J0
KCcuLi9vdGhlckRpcmVjdG9yeS9iYXouanMnKTsiIHdpdGhTb3VyY2VVUkw6W05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpAIi9kaXJlY3RvcnkiIGlzRGlyZWN0b3J5OllFU11dOwogICAgICAgICBKU1Zh
bHVlICpudWxsID0gW0pTVmFsdWUgdmFsdWVXaXRoTnVsbEluQ29udGV4dDpjb250ZXh0XTsKICAg
ICAgICAgY2hlY2tNb2R1bGVDb2RlUmFuKGNvbnRleHQsIHByb21pc2UsIG51bGwpOworICAgICAg
ICBjaGVja1Jlc3VsdChAIkNvbnRleHQgc2hvdWxkIGNhbGwgd2lsbEV2YWx1YXRlTW9kdWxlOiB0
aHJlZSB0aW1lcyIsIGNvbnRleHQud2lsbEV2YWx1YXRlTW9kdWxlQ2FsbENvdW50ID09IDMpOwor
ICAgICAgICBjaGVja1Jlc3VsdChAIkNvbnRleHQgc2hvdWxkIGNhbGwgZGlkRXZhbHVhdGVNb2R1
bGU6IHRocmVlIHRpbWVzIiwgY29udGV4dC5kaWRFdmFsdWF0ZU1vZHVsZUNhbGxDb3VudCA9PSAz
KTsKKyAgICAgICAgY2hlY2tSZXN1bHQoQCJDb250ZXh0IHNob3VsZCBzZWUgYmFyLmpzIHVybCIs
ICEhY29udGV4dC5zYXdCYXJKUyk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiQ29udGV4dCBzaG91
bGQgc2VlIGZvby5qcyB1cmwiLCAhIWNvbnRleHQuc2F3Rm9vSlMpOwogICAgIH0KIH0KIApAQCAt
MTk4Myw2ICsyMDE0LDEwIEBAIHN0YXRpYyB2b2lkIHRlc3RMb2FkZXJSZXNvbHZlc0Fic29sdXRl
U2MKICAgICAgICAgSlNWYWx1ZSAqcHJvbWlzZSA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAi
aW1wb3J0KCcvZGlyZWN0b3J5L2Jhci5qcycpOyJdOwogICAgICAgICBKU1ZhbHVlICpudWxsID0g
W0pTVmFsdWUgdmFsdWVXaXRoTnVsbEluQ29udGV4dDpjb250ZXh0XTsKICAgICAgICAgY2hlY2tN
b2R1bGVDb2RlUmFuKGNvbnRleHQsIHByb21pc2UsIG51bGwpOworICAgICAgICBjaGVja1Jlc3Vs
dChAIkNvbnRleHQgc2hvdWxkIGNhbGwgd2lsbEV2YWx1YXRlTW9kdWxlOiBvbmNlIiwgY29udGV4
dC53aWxsRXZhbHVhdGVNb2R1bGVDYWxsQ291bnQgPT0gMSk7CisgICAgICAgIGNoZWNrUmVzdWx0
KEAiQ29udGV4dCBzaG91bGQgY2FsbCBkaWRFdmFsdWF0ZU1vZHVsZTogb25jZSIsIGNvbnRleHQu
ZGlkRXZhbHVhdGVNb2R1bGVDYWxsQ291bnQgPT0gMSk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAi
Q29udGV4dCBzaG91bGQgc2VlIGJhci5qcyB1cmwiLCAhIWNvbnRleHQuc2F3QmFySlMpOworICAg
ICAgICBjaGVja1Jlc3VsdChAIkNvbnRleHQgc2hvdWxkIG5vdCBzZWUgZm9vLmpzIHVybCIsICFj
b250ZXh0LnNhd0Zvb0pTKTsKICAgICB9CiB9CiAKQEAgLTE5OTUsNiArMjAzMCwxMCBAQCBzdGF0
aWMgdm9pZCB0ZXN0TG9hZGVyUmVqZWN0c05pbFNjcmlwdFVSCiAgICAgICAgIGNvbnRleHQubW9k
dWxlTG9hZGVyRGVsZWdhdGUgPSBjb250ZXh0OwogICAgICAgICBKU1ZhbHVlICpwcm9taXNlID0g
W2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6QCJpbXBvcnQoJy4uL290aGVyRGlyZWN0b3J5L2Jhei5q
cycpOyJdOwogICAgICAgICBjaGVja01vZHVsZVdhc1JlamVjdGVkKGNvbnRleHQsIHByb21pc2Up
OworICAgICAgICBjaGVja1Jlc3VsdChAIkNvbnRleHQgc2hvdWxkIGNhbGwgd2lsbEV2YWx1YXRl
TW9kdWxlOiB6ZXJvIHRpbWVzIiwgY29udGV4dC53aWxsRXZhbHVhdGVNb2R1bGVDYWxsQ291bnQg
PT0gMCk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiQ29udGV4dCBzaG91bGQgY2FsbCBkaWRFdmFs
dWF0ZU1vZHVsZTogemVybyB0aW1lcyIsIGNvbnRleHQuZGlkRXZhbHVhdGVNb2R1bGVDYWxsQ291
bnQgPT0gMCk7CisgICAgICAgIGNoZWNrUmVzdWx0KEAiQ29udGV4dCBzaG91bGQgbm90IHNlZSBi
YXIuanMgdXJsIiwgIWNvbnRleHQuc2F3QmFySlMpOworICAgICAgICBjaGVja1Jlc3VsdChAIkNv
bnRleHQgc2hvdWxkIG5vdCBzZWUgZm9vLmpzIHVybCIsICFjb250ZXh0LnNhd0Zvb0pTKTsKICAg
ICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9h
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZUxvYWRlci5jcHAJKHJldmlzaW9uIDI0NDYwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQwLDYgKzM0
MCwxMSBAQCBKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZShFeGVjU3RhCiAgICAgaWYg
KGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRXZh
bHVhdGUpCiAgICAgICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPm1vZHVsZUxvYWRlckV2YWx1YXRlKGdsb2JhbE9iamVjdCwgZXhlYywgdGhpcywga2V5
LCBtb2R1bGVSZWNvcmRWYWx1ZSwgc2NyaXB0RmV0Y2hlcik7CiAKKyAgICByZXR1cm4gZXZhbHVh
dGVOb25WaXJ0dWFsKGV4ZWMsIGtleSwgbW9kdWxlUmVjb3JkVmFsdWUsIHNjcmlwdEZldGNoZXIp
OworfQorCitKU1ZhbHVlIEpTTW9kdWxlTG9hZGVyOjpldmFsdWF0ZU5vblZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlLCBKU1ZhbHVlIG1vZHVsZVJlY29yZFZhbHVlLCBKU1ZhbHVlKQor
ewogICAgIGlmIChhdXRvKiBtb2R1bGVSZWNvcmQgPSBqc0R5bmFtaWNDYXN0PEFic3RyYWN0TW9k
dWxlUmVjb3JkKj4oZXhlYy0+dm0oKSwgbW9kdWxlUmVjb3JkVmFsdWUpKQogICAgICAgICByZXR1
cm4gbW9kdWxlUmVjb3JkLT5ldmFsdWF0ZShleGVjKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2Fk
ZXIuaAkocmV2aXNpb24gMjQ0NjA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNNb2R1bGVMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBBZGRpdGlvbmFsIHBsYXRmb3JtIGRlcGVuZGVudCBob29rZWQgQVBJcy4KICAg
ICBKU1ZhbHVlIGV2YWx1YXRlKEV4ZWNTdGF0ZSosIEpTVmFsdWUga2V5LCBKU1ZhbHVlIG1vZHVs
ZVJlY29yZCwgSlNWYWx1ZSBzY3JpcHRGZXRjaGVyKTsKKyAgICBKU1ZhbHVlIGV2YWx1YXRlTm9u
VmlydHVhbChFeGVjU3RhdGUqLCBKU1ZhbHVlIGtleSwgSlNWYWx1ZSBtb2R1bGVSZWNvcmQsIEpT
VmFsdWUgc2NyaXB0RmV0Y2hlcik7CiAKICAgICAvLyBVdGlsaXR5IGZ1bmN0aW9ucy4KICAgICBK
U01vZHVsZU5hbWVzcGFjZU9iamVjdCogZ2V0TW9kdWxlTmFtZXNwYWNlT2JqZWN0KEV4ZWNTdGF0
ZSosIEpTVmFsdWUgbW9kdWxlUmVjb3JkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>