<?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>179826</bug_id>
          
          <creation_ts>2017-11-17 10:03:39 -0800</creation_ts>
          <short_desc>WebAssembly JS API: throw when a promise can&apos;t be created</short_desc>
          <delta_ts>2017-11-17 13:57:14 -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>WebAssembly</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=179836</see_also>
          <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="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373118</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 10:03:39 -0800</bug_when>
    <thetext>Failure *in* a promise causes rejection, but failure to create a promise (because of stack overflow) isn&apos;t really spec&apos;d (as all stack things JS). This applies to WebAssembly.compile and WebAssembly.instantiate.

Dan&apos;s current proposal says:

  https://littledan.github.io/spec/document/js-api/index.html#stack-overflow

  Whenever a stack overflow occurs in WebAssembly code, the same class of exception is thrown as for a stack overflow in JavaScript. The particular exception here is implementation-defined in both cases.
  Note: ECMAScript doesn’t specify any sort of behavior on stack overflow; implementations have been observed to throw RangeError, InternalError or Error. Any is valid here.

This is for general stack overflow within WebAssembly, not specifically for promise creation within JavaScript, but it seems like a stack overflow in promise creation should follow the same rule instead of, say, swallowing the overflow and returning undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373120</commentid>
    <comment_count>1</comment_count>
      <attachid>327190</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 10:07:34 -0800</bug_when>
    <thetext>Created attachment 327190
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373122</commentid>
    <comment_count>2</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 10:08:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/35455813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373125</commentid>
    <comment_count>3</comment_count>
      <attachid>327191</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 10:09:39 -0800</bug_when>
    <thetext>Created attachment 327191
patch

Missing radar in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373135</commentid>
    <comment_count>4</comment_count>
      <attachid>327191</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-17 10:24:21 -0800</bug_when>
    <thetext>Comment on attachment 327191
patch

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

I suspect once you&apos;ve changed these to using ThrowScopes, some jsc tests will start failing (due to missing exception checks).  Please change these and retest.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:97
&gt;      auto scope = DECLARE_CATCH_SCOPE(vm);
&gt;      auto* globalObject = exec-&gt;lexicalGlobalObject();
&gt;  
&gt; -    JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, globalObject);
&gt; -    CLEAR_AND_RETURN_IF_EXCEPTION(scope, encodedJSValue());
&gt; +    JSPromiseDeferred* promise = createPromise(vm, exec, globalObject);
&gt; +    RETURN_IF_EXCEPTION(scope, encodedJSValue());

This does not look right.  Being in a CatchScope means we should never return with an exception.  I think you&apos;ll want to change that DECLARE_CATCH_SCOPE to DECLARE_THROW_SCOPE.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:199
&gt;      auto scope = DECLARE_CATCH_SCOPE(vm);
&gt; -
&gt; -    JSPromiseDeferred* promise = JSPromiseDeferred::create(exec, exec-&gt;lexicalGlobalObject());
&gt; -    CLEAR_AND_RETURN_IF_EXCEPTION(scope, encodedJSValue());
&gt; +    auto* globalObject = exec-&gt;lexicalGlobalObject();
&gt; +    
&gt; +    JSPromiseDeferred* promise = createPromise(vm, exec, globalObject);
&gt; +    RETURN_IF_EXCEPTION(scope, encodedJSValue());

Ditto.  You should be using a DECLARE_THROW_SCOPE here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373172</commentid>
    <comment_count>5</comment_count>
      <attachid>327201</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 11:25:48 -0800</bug_when>
    <thetext>Created attachment 327201
patch

Updated as discussed offline with mlam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373182</commentid>
    <comment_count>6</comment_count>
      <attachid>327201</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-17 11:41:16 -0800</bug_when>
    <thetext>Comment on attachment 327201
patch

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

From the missing clearException()s in this patch, I realized that the CatchScope destructor is missing an ASSERT(!vm.exception()).  If that causes more failures to manifest, you can file a bug to add that assert and fix those assertion failures later.  It also looks like we may also be missing some test cases:
1. we need one that throws an exception and trigger the rejection immediately (which should fail that assertion in the CatchScope destructor, if not earlier in the reject function).
2. we need one that throws an exception in the reject callback (which should also fail that assertion in the CatchScope destructor).

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:101
&gt; +        if (UNLIKELY(catchScope.exception()))
&gt; +            reject(exec, catchScope, promise);

This only detects the exception, but does not clear it.  You should also clear the exception using catchScope.clearException() before calling the reject code.

Hmmm, that also makes me wonder what happens if the reject callback throws an exception?  If it does, I presume we should eat it too just like we do for async calls to the reject callback.  That means you&apos;ll also need to call catchScope.clearException() after the call to reject().

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:181
&gt; +            if (UNLIKELY(scope.exception()))
&gt;                  return reject(exec, scope, promise);

Ditto.  You&apos;ll need to clearException() before and after the reject function().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373223</commentid>
    <comment_count>7</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 12:49:27 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #6)
&gt; Comment on attachment 327201 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=327201&amp;action=review
&gt; 
&gt; From the missing clearException()s in this patch, I realized that the
&gt; CatchScope destructor is missing an ASSERT(!vm.exception()).  If that causes
&gt; more failures to manifest, you can file a bug to add that assert and fix
&gt; those assertion failures later.

That fails miserably :(

Filed #179836.


&gt; It also looks like we may also be missing
&gt; some test cases:
&gt; 1. we need one that throws an exception and trigger the rejection
&gt; immediately (which should fail that assertion in the CatchScope destructor,
&gt; if not earlier in the reject function).
&gt; 2. we need one that throws an exception in the reject callback (which should
&gt; also fail that assertion in the CatchScope destructor).
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:101
&gt; &gt; +        if (UNLIKELY(catchScope.exception()))
&gt; &gt; +            reject(exec, catchScope, promise);
&gt; 
&gt; This only detects the exception, but does not clear it.  You should also
&gt; clear the exception using catchScope.clearException() before calling the
&gt; reject code.
&gt; 
&gt; Hmmm, that also makes me wonder what happens if the reject callback throws
&gt; an exception?  If it does, I presume we should eat it too just like we do
&gt; for async calls to the reject callback.  That means you&apos;ll also need to call
&gt; catchScope.clearException() after the call to reject().
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:181
&gt; &gt; +            if (UNLIKELY(scope.exception()))
&gt; &gt;                  return reject(exec, scope, promise);
&gt; 
&gt; Ditto.  You&apos;ll need to clearException() before and after the reject
&gt; function().

It&apos;s handled in the helper:

static void reject(ExecState* exec, CatchScope&amp; catchScope, JSPromiseDeferred* promise)
{
    Exception* exception = catchScope.exception();
    ASSERT(exception);
    catchScope.clearException();
    promise-&gt;reject(exec, exception-&gt;value());
    CLEAR_AND_RETURN_IF_EXCEPTION(catchScope, void());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373226</commentid>
    <comment_count>8</comment_count>
      <attachid>327201</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-17 12:56:32 -0800</bug_when>
    <thetext>Comment on attachment 327201
patch

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

r=me with the remaining fix.

&gt; Source/JavaScriptCore/wasm/js/WebAssemblyPrototype.cpp:205
&gt; +            RETURN_IF_EXCEPTION(catchScope, encodedJSValue());

This is still wrong.  For CatchScope, you should use clearException() here and just return JSValue::encode(promise-&gt;promise()) below.  The client of this function would expect to get the promise even if it&apos;s rejected, right?  In any case, returning encodedJSValue() means returning a nullptr, and this will cause crashes for when there are no exceptions.  You should never exit a CatchScope with a pending exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373234</commentid>
    <comment_count>9</comment_count>
      <attachid>327220</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-17 13:12:33 -0800</bug_when>
    <thetext>Created attachment 327220
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373274</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-17 13:56:37 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 327220:

http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html bug 179840 (authors: ap@webkit.org and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373275</commentid>
    <comment_count>11</comment_count>
      <attachid>327220</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-17 13:57:12 -0800</bug_when>
    <thetext>Comment on attachment 327220
patch

Clearing flags on attachment: 327220

Committed r224985: &lt;https://trac.webkit.org/changeset/224985&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373276</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-17 13:57:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327190</attachid>
            <date>2017-11-17 10:07:34 -0800</date>
            <delta_ts>2017-11-17 10:09:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-JS-API-throw-when-a-promise-can-t-be-cre.patch</filename>
            <type>text/plain</type>
            <size>7206</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA5MDkxNzU5NjVkYzVlMmQ1YjExOWYxN2MxOGVkZDgzZjMyZWE5MDk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDE3IE5vdiAyMDE3IDEwOjA3OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgSlMgQVBJOiB0aHJvdyB3aGVuIGEgcHJvbWlzZSBjYW4ndCBiZSBjcmVhdGVkCgotLS0K
IEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTUg
KysrKysrKysrCiBKU1Rlc3RzL3dhc20vanMtYXBpL3Byb21pc2Utc3RhY2stb3ZlcmZsb3cuanMg
ICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrCiAu
Li4vd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgICAgICAgICAgICAgICB8IDIyICsr
KysrKysrKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDYgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0
YWNrLW92ZXJmbG93LmpzCgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAyY2MxZThkLi5mNjQwODI0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0No
YW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTEx
LTE3ICBKRiBCYXN0aWVuICA8amZiYXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBc3Nl
bWJseSBKUyBBUEk6IHRocm93IHdoZW4gYSBwcm9taXNlIGNhbid0IGJlIGNyZWF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTgyNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgV2ViQXNzZW1i
bHkue2NvbXBpbGUsaW5zdGFudGlhdGV9IHdoZXJlIHByb21pc2UgY3JlYXRpb24KKyAgICAgICAg
ZmFpbHMgYmVjYXVzZSBvZiBhIHN0YWNrIG92ZXJmbG93LgorCisgICAgICAgICogd2FzbS9qcy1h
cGkvcHJvbWlzZS1zdGFjay1vdmVyZmxvdy5qczogQWRkZWQuCisgICAgICAgIChjb25zdC5ydW5O
ZWFyU3RhY2tMaW1pdC5mLmNvbnN0LnQpOgorICAgICAgICAoYXN5bmMudGVzdENvbXBpbGUpOgor
ICAgICAgICAoYXN5bmMudGVzdEluc3RhbnRpYXRlKToKKwogMjAxNy0xMS0xNiAgUm9iaW4gTW9y
aXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMjQ1
OTIpOiBvc3MtZnV6ejoganNjOiBOdWxsLWRlcmVmZXJlbmNlIFJFQUQgaW4gSlNDOjpKU0NlbGw6
OmlzT2JqZWN0ICg0MjE2KQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNl
LXN0YWNrLW92ZXJmbG93LmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0YWNrLW92
ZXJmbG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjOTJkNWQKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3Byb21pc2Utc3RhY2stb3ZlcmZs
b3cuanMKQEAgLTAsMCArMSwzNyBAQAoraW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJy4uL2Fzc2Vy
dC5qcyc7CisKK2NvbnN0IG1vZHVsZSA9IFVpbnQ4QXJyYXkub2YoMHgwLCAweDYxLCAweDczLCAw
eDZkLCAweDEsIDB4MDAsIDB4MDAsIDB4MDApOworCitsZXQgcHJvbWlzZXMgPSBbXTsKKworY29u
c3QgcnVuTmVhclN0YWNrTGltaXQgPSBmID0+IHsKKyAgICBjb25zdCB0ID0gKCkgPT4geworICAg
ICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIHQoKTsKKyAgICAgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICAgICAgcmV0dXJuIGYoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgcmV0dXJu
IHQoKTsKK307CisKK2NvbnN0IHRvdWNoQXJndW1lbnQgPSBhcmcgPT4gcHJvbWlzZXMucHVzaChh
cmcpOworCitjb25zdCBjb21waWxlTWUgPSAoKSA9PiB0b3VjaEFyZ3VtZW50KFdlYkFzc2VtYmx5
LmNvbXBpbGUobW9kdWxlKSk7CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RDb21waWxlKCkgeworICAg
IGF3YWl0IHRvdWNoQXJndW1lbnQoYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIHJ1bk5lYXJT
dGFja0xpbWl0KGNvbXBpbGVNZSk7CisgICAgfSgpKTsKK30KKworY29uc3QgaW5zdGFudGlhdGVN
ZSA9ICgpID0+IHRvdWNoQXJndW1lbnQoV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUobW9kdWxlKSk7
CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3RJbnN0YW50aWF0ZSgpIHsKKyAgICBhd2FpdCB0b3VjaEFy
Z3VtZW50KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBydW5OZWFyU3RhY2tMaW1pdChpbnN0
YW50aWF0ZU1lKTsKKyAgICB9KCkpOworfQorCithc3NlcnQuYXN5bmNUZXN0KHRlc3RDb21waWxl
KCkpOworYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0SW5zdGFudGlhdGUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA5Mjg5MGMwLi5kOWE5ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOSBAQAorMjAxNy0xMS0xNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViQXNzZW1ibHkgSlMgQVBJOiB0aHJvdyB3aGVuIGEgcHJvbWlz
ZSBjYW4ndCBiZSBjcmVhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGYWlsdXJlICppbiogYSBwcm9taXNlIGNhdXNlcyByZWplY3Rpb24sIGJ1dCBm
YWlsdXJlIHRvIGNyZWF0ZSBhCisgICAgICAgIHByb21pc2UgKGJlY2F1c2Ugb2Ygc3RhY2sgb3Zl
cmZsb3cpIGlzbid0IHJlYWxseSBzcGVjJ2QgKGFzIGFsbAorICAgICAgICBzdGFjayB0aGluZ3Mg
SlMpLiBUaGlzIGFwcGxpZXMgdG8gV2ViQXNzZW1ibHkuY29tcGlsZSBhbmQKKyAgICAgICAgV2Vi
QXNzZW1ibHkuaW5zdGFudGlhdGUuCisKKyAgICAgICAgRGFuJ3MgY3VycmVudCBwcm9wb3NhbCBz
YXlzOgorCisgICAgICAgICAgICBodHRwczovL2xpdHRsZWRhbi5naXRodWIuaW8vc3BlYy9kb2N1
bWVudC9qcy1hcGkvaW5kZXguaHRtbCNzdGFjay1vdmVyZmxvdworCisgICAgICAgICAgICBXaGVu
ZXZlciBhIHN0YWNrIG92ZXJmbG93IG9jY3VycyBpbiBXZWJBc3NlbWJseSBjb2RlLCB0aGUgc2Ft
ZQorICAgICAgICAgICAgY2xhc3Mgb2YgZXhjZXB0aW9uIGlzIHRocm93biBhcyBmb3IgYSBzdGFj
ayBvdmVyZmxvdyBpbgorICAgICAgICAgICAgSmF2YVNjcmlwdC4gVGhlIHBhcnRpY3VsYXIgZXhj
ZXB0aW9uIGhlcmUgaXMKKyAgICAgICAgICAgIGltcGxlbWVudGF0aW9uLWRlZmluZWQgaW4gYm90
aCBjYXNlcy4KKworICAgICAgICAgICAgTm90ZTogRUNNQVNjcmlwdCBkb2VzbuKAmXQgc3BlY2lm
eSBhbnkgc29ydCBvZiBiZWhhdmlvciBvbiBzdGFjaworICAgICAgICAgICAgb3ZlcmZsb3c7IGlt
cGxlbWVudGF0aW9ucyBoYXZlIGJlZW4gb2JzZXJ2ZWQgdG8gdGhyb3cgUmFuZ2VFcnJvciwKKyAg
ICAgICAgICAgIEludGVybmFsRXJyb3Igb3IgRXJyb3IuIEFueSBpcyB2YWxpZCBoZXJlLgorCisg
ICAgICAgIFRoaXMgaXMgZm9yIGdlbmVyYWwgc3RhY2sgb3ZlcmZsb3cgd2l0aGluIFdlYkFzc2Vt
Ymx5LCBub3QKKyAgICAgICAgc3BlY2lmaWNhbGx5IGZvciBwcm9taXNlIGNyZWF0aW9uIHdpdGhp
biBKYXZhU2NyaXB0LCBidXQgaXQgc2VlbXMKKyAgICAgICAgbGlrZSBhIHN0YWNrIG92ZXJmbG93
IGluIHByb21pc2UgY3JlYXRpb24gc2hvdWxkIGZvbGxvdyB0aGUgc2FtZQorICAgICAgICBydWxl
IGluc3RlYWQgb2YsIHNheSwgc3dhbGxvd2luZyB0aGUgb3ZlcmZsb3cgYW5kIHJldHVybmluZwor
ICAgICAgICB1bmRlZmluZWQuCisKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlUHJvbWlzZSk6IGhlbHBlciB3aGljaCB0aHJv
d3MgaW5zdGVhZCBvZiBjYXRjaGVzCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGlsZUZ1
bmMpOgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYyk6CisKIDIwMTct
MTEtMTYgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBQ
cm92aWRlIGEgcnVudGltZSBvcHRpb24gZm9yIGRpc2FibGluZyB0aGUgb3B0aW1pemF0aW9uIG9m
IHJlY3Vyc2l2ZSB0YWlsIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKaW5kZXggNmY5ZjZhYy4uYjQwNThjYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90
b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
UHJvdG90eXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVj
dG9yLmgiCiAjaW5jbHVkZSAiUHJvbWlzZURlZmVycmVkVGltZXIuaCIKICNpbmNsdWRlICJTdHJv
bmdJbmxpbmVzLmgiCisjaW5jbHVkZSAiVGhyb3dTY29wZS5oIgogI2luY2x1ZGUgIldhc21CQlFQ
bGFuLmgiCiAjaW5jbHVkZSAiV2FzbVRvSlMuaCIKICNpbmNsdWRlICJXYXNtV29ya2xpc3QuaCIK
QEAgLTc3LDYgKzc4LDE0IEBAIHN0YXRpYyB2b2lkIHJlamVjdChFeGVjU3RhdGUqIGV4ZWMsIENh
dGNoU2NvcGUmIGNhdGNoU2NvcGUsIEpTUHJvbWlzZURlZmVycmVkKiBwCiAgICAgcHJvbWlzZS0+
cmVqZWN0KGV4ZWMsIGV4Y2VwdGlvbi0+dmFsdWUoKSk7CiAgICAgQ0xFQVJfQU5EX1JFVFVSTl9J
Rl9FWENFUFRJT04oY2F0Y2hTY29wZSwgdm9pZCgpKTsKIH0KKyAgICAKK3N0YXRpYyBKU1Byb21p
c2VEZWZlcnJlZCogY3JlYXRlUHJvbWlzZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VE
ZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZUZ1bmMoRXhlY1N0
YXRlKiBleGVjKQogewpAQCAtODQsOCArOTMsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVGdW5jKEV4ZWNTdGF0ZSogZXhlYykKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAgYXV0byogZ2xvYmFsT2Jq
ZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogCi0gICAgSlNQcm9taXNlRGVmZXJy
ZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVj
dCk7Ci0gICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlID0gY3JlYXRlUHJvbWlzZSh2
bSwgZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIFZlY3RvcjxTdHJvbmc8SlNDZWxsPj4gZGVwZW5kZW5j
aWVzOwogICAgIGRlcGVuZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIGdsb2JhbE9i
amVjdCkpOwpAQCAtMTg0LDE2ICsxOTMsMTcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW50aWF0ZUZ1bmMoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hf
U0NPUEUodm0pOwotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VE
ZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAg
Q0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwor
ICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKKyAg
ICAKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSA9IGNyZWF0ZVByb21pc2Uodm0sIGV4
ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CiAKICAgICBKU1ZhbHVlIGltcG9ydEFyZ3VtZW50ID0gZXhlYy0+YXJndW1l
bnQoMSk7CiAgICAgSlNPYmplY3QqIGltcG9ydE9iamVjdCA9IGltcG9ydEFyZ3VtZW50LmdldE9i
amVjdCgpOwogICAgIGlmICghaW1wb3J0QXJndW1lbnQuaXNVbmRlZmluZWQoKSAmJiAhaW1wb3J0
T2JqZWN0KSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdChleGVjLCBjcmVhdGVUeXBlRXJyb3Io
ZXhlYywKICAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCgic2Vjb25kIGFyZ3VtZW50IHRvIFdlYkFz
c2VtYmx5Lmluc3RhbnRpYXRlIG11c3QgYmUgdW5kZWZpbmVkIG9yIGFuIE9iamVjdCIpLCBkZWZh
dWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUoaW1wb3J0QXJndW1lbnQpKSk7
Ci0gICAgICAgIENMRUFSX0FORF9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFs
dWUoKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZS0+cHJvbWlzZSgp
KTsKICAgICB9CiAKLS0gCjIuMTAuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327191</attachid>
            <date>2017-11-17 10:09:39 -0800</date>
            <delta_ts>2017-11-17 11:25:48 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-JS-API-throw-when-a-promise-can-t-be-cre.patch</filename>
            <type>text/plain</type>
            <size>7278</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBhMGIxMTEzMWI5NzVmZGJkNTBiMzM4NWNmYmI2ODFiYWFhZjRjYTRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDE3IE5vdiAyMDE3IDEwOjA3OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgSlMgQVBJOiB0aHJvdyB3aGVuIGEgcHJvbWlzZSBjYW4ndCBiZSBjcmVhdGVkCgotLS0K
IEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYg
KysrKysrKysrKwogSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0YWNrLW92ZXJmbG93Lmpz
ICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysK
IC4uLi93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcCAgICAgICAgICAgICAgIHwgMjIg
KysrKysrKysrLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3dhc20vanMtYXBpL3Byb21pc2Ut
c3RhY2stb3ZlcmZsb3cuanMKCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDJjYzFlOGQuLjJmYWZjMjMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTct
MTEtMTcgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFz
c2VtYmx5IEpTIEFQSTogdGhyb3cgd2hlbiBhIHByb21pc2UgY2FuJ3QgYmUgY3JlYXRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODI2CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zNTQ1NTgxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IFdlYkFzc2VtYmx5Lntjb21waWxlLGluc3RhbnRp
YXRlfSB3aGVyZSBwcm9taXNlIGNyZWF0aW9uCisgICAgICAgIGZhaWxzIGJlY2F1c2Ugb2YgYSBz
dGFjayBvdmVyZmxvdy4KKworICAgICAgICAqIHdhc20vanMtYXBpL3Byb21pc2Utc3RhY2stb3Zl
cmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoY29uc3QucnVuTmVhclN0YWNrTGltaXQuZi5jb25z
dC50KToKKyAgICAgICAgKGFzeW5jLnRlc3RDb21waWxlKToKKyAgICAgICAgKGFzeW5jLnRlc3RJ
bnN0YW50aWF0ZSk6CisKIDIwMTctMTEtMTYgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjI0NTkyKTogb3NzLWZ1eno6IGpzYzog
TnVsbC1kZXJlZmVyZW5jZSBSRUFEIGluIEpTQzo6SlNDZWxsOjppc09iamVjdCAoNDIxNikKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvcHJvbWlzZS1zdGFjay1vdmVyZmxvdy5qcyBi
L0pTVGVzdHMvd2FzbS9qcy1hcGkvcHJvbWlzZS1zdGFjay1vdmVyZmxvdy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzkyZDVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNU
ZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0YWNrLW92ZXJmbG93LmpzCkBAIC0wLDAgKzEsMzcg
QEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcuLi9hc3NlcnQuanMnOworCitjb25zdCBtb2R1
bGUgPSBVaW50OEFycmF5Lm9mKDB4MCwgMHg2MSwgMHg3MywgMHg2ZCwgMHgxLCAweDAwLCAweDAw
LCAweDAwKTsKKworbGV0IHByb21pc2VzID0gW107CisKK2NvbnN0IHJ1bk5lYXJTdGFja0xpbWl0
ID0gZiA9PiB7CisgICAgY29uc3QgdCA9ICgpID0+IHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgIHJldHVybiB0KCk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIHJldHVy
biBmKCk7CisgICAgICAgIH0KKyAgICB9OworICAgIHJldHVybiB0KCk7Cit9OworCitjb25zdCB0
b3VjaEFyZ3VtZW50ID0gYXJnID0+IHByb21pc2VzLnB1c2goYXJnKTsKKworY29uc3QgY29tcGls
ZU1lID0gKCkgPT4gdG91Y2hBcmd1bWVudChXZWJBc3NlbWJseS5jb21waWxlKG1vZHVsZSkpOwor
Cithc3luYyBmdW5jdGlvbiB0ZXN0Q29tcGlsZSgpIHsKKyAgICBhd2FpdCB0b3VjaEFyZ3VtZW50
KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBydW5OZWFyU3RhY2tMaW1pdChjb21waWxlTWUp
OworICAgIH0oKSk7Cit9CisKK2NvbnN0IGluc3RhbnRpYXRlTWUgPSAoKSA9PiB0b3VjaEFyZ3Vt
ZW50KFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1vZHVsZSkpOworCithc3luYyBmdW5jdGlvbiB0
ZXN0SW5zdGFudGlhdGUoKSB7CisgICAgYXdhaXQgdG91Y2hBcmd1bWVudChhc3luYyBmdW5jdGlv
bigpIHsKKyAgICAgICAgcnVuTmVhclN0YWNrTGltaXQoaW5zdGFudGlhdGVNZSk7CisgICAgfSgp
KTsKK30KKworYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0Q29tcGlsZSgpKTsKK2Fzc2VydC5hc3luY1Rl
c3QodGVzdEluc3RhbnRpYXRlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTI4OTBj
MC4uODNkNjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIw
MTctMTEtMTcgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YkFzc2VtYmx5IEpTIEFQSTogdGhyb3cgd2hlbiBhIHByb21pc2UgY2FuJ3QgYmUgY3JlYXRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODI2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTQ1NTgxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGYWlsdXJlICppbiogYSBwcm9taXNlIGNhdXNlcyBy
ZWplY3Rpb24sIGJ1dCBmYWlsdXJlIHRvIGNyZWF0ZSBhCisgICAgICAgIHByb21pc2UgKGJlY2F1
c2Ugb2Ygc3RhY2sgb3ZlcmZsb3cpIGlzbid0IHJlYWxseSBzcGVjJ2QgKGFzIGFsbAorICAgICAg
ICBzdGFjayB0aGluZ3MgSlMpLiBUaGlzIGFwcGxpZXMgdG8gV2ViQXNzZW1ibHkuY29tcGlsZSBh
bmQKKyAgICAgICAgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUuCisKKyAgICAgICAgRGFuJ3MgY3Vy
cmVudCBwcm9wb3NhbCBzYXlzOgorCisgICAgICAgICAgICBodHRwczovL2xpdHRsZWRhbi5naXRo
dWIuaW8vc3BlYy9kb2N1bWVudC9qcy1hcGkvaW5kZXguaHRtbCNzdGFjay1vdmVyZmxvdworCisg
ICAgICAgICAgICBXaGVuZXZlciBhIHN0YWNrIG92ZXJmbG93IG9jY3VycyBpbiBXZWJBc3NlbWJs
eSBjb2RlLCB0aGUgc2FtZQorICAgICAgICAgICAgY2xhc3Mgb2YgZXhjZXB0aW9uIGlzIHRocm93
biBhcyBmb3IgYSBzdGFjayBvdmVyZmxvdyBpbgorICAgICAgICAgICAgSmF2YVNjcmlwdC4gVGhl
IHBhcnRpY3VsYXIgZXhjZXB0aW9uIGhlcmUgaXMKKyAgICAgICAgICAgIGltcGxlbWVudGF0aW9u
LWRlZmluZWQgaW4gYm90aCBjYXNlcy4KKworICAgICAgICAgICAgTm90ZTogRUNNQVNjcmlwdCBk
b2VzbuKAmXQgc3BlY2lmeSBhbnkgc29ydCBvZiBiZWhhdmlvciBvbiBzdGFjaworICAgICAgICAg
ICAgb3ZlcmZsb3c7IGltcGxlbWVudGF0aW9ucyBoYXZlIGJlZW4gb2JzZXJ2ZWQgdG8gdGhyb3cg
UmFuZ2VFcnJvciwKKyAgICAgICAgICAgIEludGVybmFsRXJyb3Igb3IgRXJyb3IuIEFueSBpcyB2
YWxpZCBoZXJlLgorCisgICAgICAgIFRoaXMgaXMgZm9yIGdlbmVyYWwgc3RhY2sgb3ZlcmZsb3cg
d2l0aGluIFdlYkFzc2VtYmx5LCBub3QKKyAgICAgICAgc3BlY2lmaWNhbGx5IGZvciBwcm9taXNl
IGNyZWF0aW9uIHdpdGhpbiBKYXZhU2NyaXB0LCBidXQgaXQgc2VlbXMKKyAgICAgICAgbGlrZSBh
IHN0YWNrIG92ZXJmbG93IGluIHByb21pc2UgY3JlYXRpb24gc2hvdWxkIGZvbGxvdyB0aGUgc2Ft
ZQorICAgICAgICBydWxlIGluc3RlYWQgb2YsIHNheSwgc3dhbGxvd2luZyB0aGUgb3ZlcmZsb3cg
YW5kIHJldHVybmluZworICAgICAgICB1bmRlZmluZWQuCisKKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlUHJvbWlzZSk6IGhl
bHBlciB3aGljaCB0aHJvd3MgaW5zdGVhZCBvZiBjYXRjaGVzCisgICAgICAgIChKU0M6OndlYkFz
c2VtYmx5Q29tcGlsZUZ1bmMpOgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRl
RnVuYyk6CisKIDIwMTctMTEtMTYgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNv
bT4KIAogICAgICAgICBQcm92aWRlIGEgcnVudGltZSBvcHRpb24gZm9yIGRpc2FibGluZyB0aGUg
b3B0aW1pemF0aW9uIG9mIHJlY3Vyc2l2ZSB0YWlsIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKaW5kZXggNmY5
ZjZhYy4uYjQwNThjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
Ik9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvbWlzZURlZmVycmVkVGltZXIuaCIK
ICNpbmNsdWRlICJTdHJvbmdJbmxpbmVzLmgiCisjaW5jbHVkZSAiVGhyb3dTY29wZS5oIgogI2lu
Y2x1ZGUgIldhc21CQlFQbGFuLmgiCiAjaW5jbHVkZSAiV2FzbVRvSlMuaCIKICNpbmNsdWRlICJX
YXNtV29ya2xpc3QuaCIKQEAgLTc3LDYgKzc4LDE0IEBAIHN0YXRpYyB2b2lkIHJlamVjdChFeGVj
U3RhdGUqIGV4ZWMsIENhdGNoU2NvcGUmIGNhdGNoU2NvcGUsIEpTUHJvbWlzZURlZmVycmVkKiBw
CiAgICAgcHJvbWlzZS0+cmVqZWN0KGV4ZWMsIGV4Y2VwdGlvbi0+dmFsdWUoKSk7CiAgICAgQ0xF
QVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwgdm9pZCgpKTsKIH0KKyAgICAK
K3N0YXRpYyBKU1Byb21pc2VEZWZlcnJlZCogY3JlYXRlUHJvbWlzZShWTSYgdm0sIEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21p
c2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIHByb21pc2U7
Cit9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29t
cGlsZUZ1bmMoRXhlY1N0YXRlKiBleGVjKQogewpAQCAtODQsOCArOTMsOCBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVGdW5jKEV4ZWNTdGF0
ZSogZXhlYykKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAg
YXV0byogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwogCi0gICAg
SlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4
ZWMsIGdsb2JhbE9iamVjdCk7Ci0gICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIEpTUHJvbWlzZURlZmVycmVkKiBwcm9taXNlID0g
Y3JlYXRlUHJvbWlzZSh2bSwgZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIFZlY3RvcjxTdHJvbmc8SlND
ZWxsPj4gZGVwZW5kZW5jaWVzOwogICAgIGRlcGVuZGVuY2llcy5hcHBlbmQoU3Ryb25nPEpTQ2Vs
bD4odm0sIGdsb2JhbE9iamVjdCkpOwpAQCAtMTg0LDE2ICsxOTMsMTcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW50aWF0ZUZ1bmMoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwotCi0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21p
c2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSk7Ci0gICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29k
ZWRKU1ZhbHVlKCkpOworICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKTsKKyAgICAKKyAgICBKU1Byb21pc2VEZWZlcnJlZCogcHJvbWlzZSA9IGNyZWF0
ZVByb21pc2Uodm0sIGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBKU1ZhbHVlIGltcG9ydEFyZ3VtZW50
ID0gZXhlYy0+YXJndW1lbnQoMSk7CiAgICAgSlNPYmplY3QqIGltcG9ydE9iamVjdCA9IGltcG9y
dEFyZ3VtZW50LmdldE9iamVjdCgpOwogICAgIGlmICghaW1wb3J0QXJndW1lbnQuaXNVbmRlZmlu
ZWQoKSAmJiAhaW1wb3J0T2JqZWN0KSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdChleGVjLCBj
cmVhdGVUeXBlRXJyb3IoZXhlYywKICAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCgic2Vjb25kIGFy
Z3VtZW50IHRvIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlIG11c3QgYmUgdW5kZWZpbmVkIG9yIGFu
IE9iamVjdCIpLCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUoaW1w
b3J0QXJndW1lbnQpKSk7Ci0gICAgICAgIENMRUFSX0FORF9SRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJv
bWlzZS0+cHJvbWlzZSgpKTsKICAgICB9CiAKLS0gCjIuMTAuMQoK
</data>
<flag name="review"
          id="346435"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327201</attachid>
            <date>2017-11-17 11:25:48 -0800</date>
            <delta_ts>2017-11-17 13:12:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-JS-API-throw-when-a-promise-can-t-be-cre.patch</filename>
            <type>text/plain</type>
            <size>11522</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSBjNjllYTk5MWVlYjVhMjNhYTllZjM3YzA3ZGIxYTA1NjczZDZmZTJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDE3IE5vdiAyMDE3IDEwOjA3OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgSlMgQVBJOiB0aHJvdyB3aGVuIGEgcHJvbWlzZSBjYW4ndCBiZSBjcmVhdGVkCgotLS0K
IEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYg
KysrKwogSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0YWNrLW92ZXJmbG93LmpzICAgICAg
fCAzNyArKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgfCAzNyArKysrKysrKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUu
Y3BwICAgICAgICAgICAgICAgfCA5OSArKysrKysrKysrKystLS0tLS0tLS0tCiA0IGZpbGVzIGNo
YW5nZWQsIDE0NCBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBKU1Rlc3RzL3dhc20vanMtYXBpL3Byb21pc2Utc3RhY2stb3ZlcmZsb3cuanMKCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjYzFl
OGQuLjJmYWZjMjMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMTEtMTcgIEpGIEJhc3RpZW4gIDxqZmJh
c3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5IEpTIEFQSTogdGhyb3cgd2hl
biBhIHByb21pc2UgY2FuJ3QgYmUgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODI2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTQ1
NTgxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0IFdlYkFzc2VtYmx5Lntjb21waWxlLGluc3RhbnRpYXRlfSB3aGVyZSBwcm9taXNlIGNyZWF0
aW9uCisgICAgICAgIGZhaWxzIGJlY2F1c2Ugb2YgYSBzdGFjayBvdmVyZmxvdy4KKworICAgICAg
ICAqIHdhc20vanMtYXBpL3Byb21pc2Utc3RhY2stb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAg
ICAoY29uc3QucnVuTmVhclN0YWNrTGltaXQuZi5jb25zdC50KToKKyAgICAgICAgKGFzeW5jLnRl
c3RDb21waWxlKToKKyAgICAgICAgKGFzeW5jLnRlc3RJbnN0YW50aWF0ZSk6CisKIDIwMTctMTEt
MTYgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMjI0NTkyKTogb3NzLWZ1eno6IGpzYzogTnVsbC1kZXJlZmVyZW5jZSBSRUFEIGlu
IEpTQzo6SlNDZWxsOjppc09iamVjdCAoNDIxNikKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9q
cy1hcGkvcHJvbWlzZS1zdGFjay1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvcHJv
bWlzZS1zdGFjay1vdmVyZmxvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iYzkyZDVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNl
LXN0YWNrLW92ZXJmbG93LmpzCkBAIC0wLDAgKzEsMzcgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBm
cm9tICcuLi9hc3NlcnQuanMnOworCitjb25zdCBtb2R1bGUgPSBVaW50OEFycmF5Lm9mKDB4MCwg
MHg2MSwgMHg3MywgMHg2ZCwgMHgxLCAweDAwLCAweDAwLCAweDAwKTsKKworbGV0IHByb21pc2Vz
ID0gW107CisKK2NvbnN0IHJ1bk5lYXJTdGFja0xpbWl0ID0gZiA9PiB7CisgICAgY29uc3QgdCA9
ICgpID0+IHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiB0KCk7CisgICAgICAg
IH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmKCk7CisgICAgICAgIH0KKyAgICB9
OworICAgIHJldHVybiB0KCk7Cit9OworCitjb25zdCB0b3VjaEFyZ3VtZW50ID0gYXJnID0+IHBy
b21pc2VzLnB1c2goYXJnKTsKKworY29uc3QgY29tcGlsZU1lID0gKCkgPT4gdG91Y2hBcmd1bWVu
dChXZWJBc3NlbWJseS5jb21waWxlKG1vZHVsZSkpOworCithc3luYyBmdW5jdGlvbiB0ZXN0Q29t
cGlsZSgpIHsKKyAgICBhd2FpdCB0b3VjaEFyZ3VtZW50KGFzeW5jIGZ1bmN0aW9uKCkgeworICAg
ICAgICBydW5OZWFyU3RhY2tMaW1pdChjb21waWxlTWUpOworICAgIH0oKSk7Cit9CisKK2NvbnN0
IGluc3RhbnRpYXRlTWUgPSAoKSA9PiB0b3VjaEFyZ3VtZW50KFdlYkFzc2VtYmx5Lmluc3RhbnRp
YXRlKG1vZHVsZSkpOworCithc3luYyBmdW5jdGlvbiB0ZXN0SW5zdGFudGlhdGUoKSB7CisgICAg
YXdhaXQgdG91Y2hBcmd1bWVudChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgcnVuTmVhclN0
YWNrTGltaXQoaW5zdGFudGlhdGVNZSk7CisgICAgfSgpKTsKK30KKworYXNzZXJ0LmFzeW5jVGVz
dCh0ZXN0Q29tcGlsZSgpKTsKK2Fzc2VydC5hc3luY1Rlc3QodGVzdEluc3RhbnRpYXRlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTI4OTBjMC4uODNkNjQyOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMTEtMTcgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5IEpTIEFQSTogdGhyb3cg
d2hlbiBhIHByb21pc2UgY2FuJ3QgYmUgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODI2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
NTQ1NTgxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGYWlsdXJlICppbiogYSBwcm9taXNlIGNhdXNlcyByZWplY3Rpb24sIGJ1dCBmYWlsdXJlIHRv
IGNyZWF0ZSBhCisgICAgICAgIHByb21pc2UgKGJlY2F1c2Ugb2Ygc3RhY2sgb3ZlcmZsb3cpIGlz
bid0IHJlYWxseSBzcGVjJ2QgKGFzIGFsbAorICAgICAgICBzdGFjayB0aGluZ3MgSlMpLiBUaGlz
IGFwcGxpZXMgdG8gV2ViQXNzZW1ibHkuY29tcGlsZSBhbmQKKyAgICAgICAgV2ViQXNzZW1ibHku
aW5zdGFudGlhdGUuCisKKyAgICAgICAgRGFuJ3MgY3VycmVudCBwcm9wb3NhbCBzYXlzOgorCisg
ICAgICAgICAgICBodHRwczovL2xpdHRsZWRhbi5naXRodWIuaW8vc3BlYy9kb2N1bWVudC9qcy1h
cGkvaW5kZXguaHRtbCNzdGFjay1vdmVyZmxvdworCisgICAgICAgICAgICBXaGVuZXZlciBhIHN0
YWNrIG92ZXJmbG93IG9jY3VycyBpbiBXZWJBc3NlbWJseSBjb2RlLCB0aGUgc2FtZQorICAgICAg
ICAgICAgY2xhc3Mgb2YgZXhjZXB0aW9uIGlzIHRocm93biBhcyBmb3IgYSBzdGFjayBvdmVyZmxv
dyBpbgorICAgICAgICAgICAgSmF2YVNjcmlwdC4gVGhlIHBhcnRpY3VsYXIgZXhjZXB0aW9uIGhl
cmUgaXMKKyAgICAgICAgICAgIGltcGxlbWVudGF0aW9uLWRlZmluZWQgaW4gYm90aCBjYXNlcy4K
KworICAgICAgICAgICAgTm90ZTogRUNNQVNjcmlwdCBkb2VzbuKAmXQgc3BlY2lmeSBhbnkgc29y
dCBvZiBiZWhhdmlvciBvbiBzdGFjaworICAgICAgICAgICAgb3ZlcmZsb3c7IGltcGxlbWVudGF0
aW9ucyBoYXZlIGJlZW4gb2JzZXJ2ZWQgdG8gdGhyb3cgUmFuZ2VFcnJvciwKKyAgICAgICAgICAg
IEludGVybmFsRXJyb3Igb3IgRXJyb3IuIEFueSBpcyB2YWxpZCBoZXJlLgorCisgICAgICAgIFRo
aXMgaXMgZm9yIGdlbmVyYWwgc3RhY2sgb3ZlcmZsb3cgd2l0aGluIFdlYkFzc2VtYmx5LCBub3QK
KyAgICAgICAgc3BlY2lmaWNhbGx5IGZvciBwcm9taXNlIGNyZWF0aW9uIHdpdGhpbiBKYXZhU2Ny
aXB0LCBidXQgaXQgc2VlbXMKKyAgICAgICAgbGlrZSBhIHN0YWNrIG92ZXJmbG93IGluIHByb21p
c2UgY3JlYXRpb24gc2hvdWxkIGZvbGxvdyB0aGUgc2FtZQorICAgICAgICBydWxlIGluc3RlYWQg
b2YsIHNheSwgc3dhbGxvd2luZyB0aGUgb3ZlcmZsb3cgYW5kIHJldHVybmluZworICAgICAgICB1
bmRlZmluZWQuCisKKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6Y3JlYXRlUHJvbWlzZSk6IGhlbHBlciB3aGljaCB0aHJvd3MgaW5zdGVh
ZCBvZiBjYXRjaGVzCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGlsZUZ1bmMpOgorICAg
ICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYyk6CisKIDIwMTctMTEtMTYgIFJv
YmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEg
cnVudGltZSBvcHRpb24gZm9yIGRpc2FibGluZyB0aGUgb3B0aW1pemF0aW9uIG9mIHJlY3Vyc2l2
ZSB0YWlsIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKaW5kZXggNmY5ZjZhYy4uZDZjNmI5OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBl
LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSAiUHJvbWlzZURlZmVycmVkVGltZXIuaCIKICNpbmNsdWRlICJTdHJvbmdJbmxpbmVz
LmgiCisjaW5jbHVkZSAiVGhyb3dTY29wZS5oIgogI2luY2x1ZGUgIldhc21CQlFQbGFuLmgiCiAj
aW5jbHVkZSAiV2FzbVRvSlMuaCIKICNpbmNsdWRlICJXYXNtV29ya2xpc3QuaCIKQEAgLTgxLDM4
ICs4Miw0MiBAQCBzdGF0aWMgdm9pZCByZWplY3QoRXhlY1N0YXRlKiBleGVjLCBDYXRjaFNjb3Bl
JiBjYXRjaFNjb3BlLCBKU1Byb21pc2VEZWZlcnJlZCogcAogc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlRnVuYyhFeGVjU3RhdGUqIGV4ZWMpCiB7
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRD
SF9TQ09QRSh2bSk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
OwogCiAgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6
Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7Ci0gICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotCi0gICAgVmVjdG9yPFN0cm9uZzxKU0Nl
bGw+PiBkZXBlbmRlbmNpZXM7Ci0gICAgZGVwZW5kZW5jaWVzLmFwcGVuZChTdHJvbmc8SlNDZWxs
Pih2bSwgZ2xvYmFsT2JqZWN0KSk7Ci0gICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPmFkZFBl
bmRpbmdQcm9taXNlKHByb21pc2UsIFdURk1vdmUoZGVwZW5kZW5jaWVzKSk7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIHsKKyAg
ICAgICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICAg
ICAgVmVjdG9yPFN0cm9uZzxKU0NlbGw+PiBkZXBlbmRlbmNpZXM7CisgICAgICAgIGRlcGVuZGVu
Y2llcy5hcHBlbmQoU3Ryb25nPEpTQ2VsbD4odm0sIGdsb2JhbE9iamVjdCkpOworICAgICAgICB2
bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+YWRkUGVuZGluZ1Byb21pc2UocHJvbWlzZSwgV1RGTW92
ZShkZXBlbmRlbmNpZXMpKTsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gc291cmNlID0gY3Jl
YXRlU291cmNlQnVmZmVyRnJvbVZhbHVlKHZtLCBleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7CisK
KyAgICAgICAgaWYgKFVOTElLRUxZKGNhdGNoU2NvcGUuZXhjZXB0aW9uKCkpKQorICAgICAgICAg
ICAgcmVqZWN0KGV4ZWMsIGNhdGNoU2NvcGUsIHByb21pc2UpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIFdhc206Ok1vZHVsZTo6dmFsaWRhdGVBc3luYygmdm0ud2FzbUNvbnRleHQsIFdU
Rk1vdmUoc291cmNlKSwgY3JlYXRlU2hhcmVkVGFzazxXYXNtOjpNb2R1bGU6OkNhbGxiYWNrVHlw
ZT4oW3Byb21pc2UsIGdsb2JhbE9iamVjdCwgJnZtXSAoV2FzbTo6TW9kdWxlOjpWYWxpZGF0aW9u
UmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICB2bS5wcm9taXNlRGVm
ZXJyZWRUaW1lci0+c2NoZWR1bGVXb3JrU29vbihwcm9taXNlLCBbcHJvbWlzZSwgZ2xvYmFsT2Jq
ZWN0LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCksICZ2bV0gKCkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICAg
ICAgICAgICAgICAgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVj
KCk7CisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWUgbW9kdWxlID0gSlNXZWJBc3NlbWJseU1v
ZHVsZTo6Y3JlYXRlU3R1Yih2bSwgZXhlYywgZ2xvYmFsT2JqZWN0LT5XZWJBc3NlbWJseU1vZHVs
ZVN0cnVjdHVyZSgpLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICBpZiAo
VU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2UpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlz
ZS0+cmVzb2x2ZShleGVjLCBtb2R1bGUpOworICAgICAgICAgICAgICAgICAgICBDTEVBUl9BTkRf
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pKTsKKyAgICAgICAgfQogCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHNvdXJj
ZSA9IGNyZWF0ZVNvdXJjZUJ1ZmZlckZyb21WYWx1ZSh2bSwgZXhlYywgZXhlYy0+YXJndW1lbnQo
MCkpOwotCi0gICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmVq
ZWN0KGV4ZWMsIHNjb3BlLCBwcm9taXNlKTsKLSAgICBlbHNlIHsKLSAgICAgICAgV2FzbTo6TW9k
dWxlOjp2YWxpZGF0ZUFzeW5jKCZ2bS53YXNtQ29udGV4dCwgV1RGTW92ZShzb3VyY2UpLCBjcmVh
dGVTaGFyZWRUYXNrPFdhc206Ok1vZHVsZTo6Q2FsbGJhY2tUeXBlPihbcHJvbWlzZSwgZ2xvYmFs
T2JqZWN0LCAmdm1dIChXYXNtOjpNb2R1bGU6OlZhbGlkYXRpb25SZXN1bHQmJiByZXN1bHQpIG11
dGFibGUgewotICAgICAgICAgICAgdm0ucHJvbWlzZURlZmVycmVkVGltZXItPnNjaGVkdWxlV29y
a1Nvb24ocHJvbWlzZSwgW3Byb21pc2UsIGdsb2JhbE9iamVjdCwgcmVzdWx0ID0gV1RGTW92ZShy
ZXN1bHQpLCAmdm1dICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKLSAgICAgICAgICAgICAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlIG1v
ZHVsZSA9IEpTV2ViQXNzZW1ibHlNb2R1bGU6OmNyZWF0ZVN0dWIodm0sIGV4ZWMsIGdsb2JhbE9i
amVjdC0+V2ViQXNzZW1ibHlNb2R1bGVTdHJ1Y3R1cmUoKSwgV1RGTW92ZShyZXN1bHQpKTsKLSAg
ICAgICAgICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlamVjdChleGVjLCBzY29wZSwgcHJvbWlzZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBwcm9t
aXNlLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZSk7Ci0gICAgICAgICAgICAgICAgQ0xFQVJfQU5EX1JF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgfSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb21pc2UtPnByb21pc2Uo
KSk7CiAgICAgfQotCi0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9taXNlLT5wcm9taXNl
KCkpOwogfQogCiBlbnVtIGNsYXNzIFJlc29sdmUgeyBXaXRoSW5zdGFuY2UsIFdpdGhNb2R1bGVB
bmRJbnN0YW5jZSB9OwpAQCAtMTcyLDcgKzE3Nyw3IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVBbmRJ
bnN0YW50aWF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSogZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHBy
CiAgICAgICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CiAgICAg
ICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKICAg
ICAgICAgICAgIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSA9IEpTV2ViQXNzZW1ibHlNb2R1
bGU6OmNyZWF0ZVN0dWIodm0sIGV4ZWMsIGdsb2JhbE9iamVjdC0+V2ViQXNzZW1ibHlNb2R1bGVT
dHJ1Y3R1cmUoKSwgV1RGTW92ZShyZXN1bHQpKTsKLSAgICAgICAgICAgIGlmIChzY29wZS5leGNl
cHRpb24oKSkKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChleGVjLCBzY29wZSwgcHJvbWlzZSk7CiAKICAg
ICAgICAgICAgIGluc3RhbnRpYXRlKHZtLCBleGVjLCBwcm9taXNlLCBtb2R1bGUsIGltcG9ydE9i
amVjdCwgUmVzb2x2ZTo6V2l0aE1vZHVsZUFuZEluc3RhbmNlKTsKQEAgLTE4MywyNyArMTg4LDMx
IEBAIHN0YXRpYyB2b2lkIGNvbXBpbGVBbmRJbnN0YW50aWF0ZShWTSYgdm0sIEV4ZWNTdGF0ZSog
ZXhlYywgSlNQcm9taXNlRGVmZXJyZWQqIHByCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9T
Q09QRSh2bSk7CisgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CisgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwog
Ci0gICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1Byb21pc2VEZWZlcnJlZDo6Y3Jl
YXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7Ci0gICAgQ0xFQVJfQU5EX1JF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworICAgIEpTUHJvbWlz
ZURlZmVycmVkKiBwcm9taXNlID0gSlNQcm9taXNlRGVmZXJyZWQ6OmNyZWF0ZShleGVjLCBnbG9i
YWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7CisKKyAgICB7CisgICAgICAgIGF1dG8gY2F0Y2hTY29wZSA9IERFQ0xBUkVfQ0FU
Q0hfU0NPUEUodm0pOworCisgICAgICAgIEpTVmFsdWUgaW1wb3J0QXJndW1lbnQgPSBleGVjLT5h
cmd1bWVudCgxKTsKKyAgICAgICAgSlNPYmplY3QqIGltcG9ydE9iamVjdCA9IGltcG9ydEFyZ3Vt
ZW50LmdldE9iamVjdCgpOworICAgICAgICBpZiAoVU5MSUtFTFkoIWltcG9ydEFyZ3VtZW50Lmlz
VW5kZWZpbmVkKCkgJiYgIWltcG9ydE9iamVjdCkpIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJl
amVjdChleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywKKyAgICAgICAgICAgICAgICBBU0NJSUxp
dGVyYWwoInNlY29uZCBhcmd1bWVudCB0byBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSBtdXN0IGJl
IHVuZGVmaW5lZCBvciBhbiBPYmplY3QiKSwgZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBydW50aW1l
VHlwZUZvclZhbHVlKGltcG9ydEFyZ3VtZW50KSkpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihjYXRjaFNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIEpTVmFsdWUgZmlyc3RBcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50KDApOwor
ICAgICAgICAgICAgaWYgKGF1dG8qIG1vZHVsZSA9IGpzRHluYW1pY0Nhc3Q8SlNXZWJBc3NlbWJs
eU1vZHVsZSo+KHZtLCBmaXJzdEFyZ3VtZW50KSkKKyAgICAgICAgICAgICAgICBpbnN0YW50aWF0
ZSh2bSwgZXhlYywgcHJvbWlzZSwgbW9kdWxlLCBpbXBvcnRPYmplY3QsIFJlc29sdmU6OldpdGhJ
bnN0YW5jZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29tcGlsZUFuZElu
c3RhbnRpYXRlKHZtLCBleGVjLCBwcm9taXNlLCBmaXJzdEFyZ3VtZW50LCBpbXBvcnRPYmplY3Qp
OworICAgICAgICB9CiAKLSAgICBKU1ZhbHVlIGltcG9ydEFyZ3VtZW50ID0gZXhlYy0+YXJndW1l
bnQoMSk7Ci0gICAgSlNPYmplY3QqIGltcG9ydE9iamVjdCA9IGltcG9ydEFyZ3VtZW50LmdldE9i
amVjdCgpOwotICAgIGlmICghaW1wb3J0QXJndW1lbnQuaXNVbmRlZmluZWQoKSAmJiAhaW1wb3J0
T2JqZWN0KSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChleGVjLCBjcmVhdGVUeXBlRXJyb3Io
ZXhlYywKLSAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCgic2Vjb25kIGFyZ3VtZW50IHRvIFdlYkFz
c2VtYmx5Lmluc3RhbnRpYXRlIG11c3QgYmUgdW5kZWZpbmVkIG9yIGFuIE9iamVjdCIpLCBkZWZh
dWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUoaW1wb3J0QXJndW1lbnQpKSk7
Ci0gICAgICAgIENMRUFSX0FORF9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9taXNlLT5wcm9taXNl
KCkpOwogICAgIH0KLQotICAgIEpTVmFsdWUgZmlyc3RBcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50
KDApOwotICAgIGlmIChhdXRvKiBtb2R1bGUgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNzZW1ibHlN
b2R1bGUqPih2bSwgZmlyc3RBcmd1bWVudCkpCi0gICAgICAgIGluc3RhbnRpYXRlKHZtLCBleGVj
LCBwcm9taXNlLCBtb2R1bGUsIGltcG9ydE9iamVjdCwgUmVzb2x2ZTo6V2l0aEluc3RhbmNlKTsK
LSAgICBlbHNlCi0gICAgICAgIGNvbXBpbGVBbmRJbnN0YW50aWF0ZSh2bSwgZXhlYywgcHJvbWlz
ZSwgZmlyc3RBcmd1bWVudCwgaW1wb3J0T2JqZWN0KTsKLQotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocHJvbWlzZS0+cHJvbWlzZSgpKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgd2ViQXNzZW1ibHlWYWxpZGF0ZUZ1bmMoRXhlY1N0YXRlKiBleGVjKQotLSAK
Mi4xMC4xCgo=
</data>
<flag name="review"
          id="346448"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327220</attachid>
            <date>2017-11-17 13:12:33 -0800</date>
            <delta_ts>2017-11-17 13:57:12 -0800</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-JS-API-throw-when-a-promise-can-t-be-cre.patch</filename>
            <type>text/plain</type>
            <size>11469</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA0OTIxZjM0OGUwZTZkYmNjYjU0ZjcwM2ZmY2YzNWI1OWY4NGI0MzcxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBGcmksIDE3IE5vdiAyMDE3IDEwOjA3OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHkgSlMgQVBJOiB0aHJvdyB3aGVuIGEgcHJvbWlzZSBjYW4ndCBiZSBjcmVhdGVkCgotLS0K
IEpTVGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYg
KysrKwogSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0YWNrLW92ZXJmbG93LmpzICAgICAg
fCAzNyArKysrKysrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgfCAzNiArKysrKysrKwogLi4uL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUu
Y3BwICAgICAgICAgICAgICAgfCA5OSArKysrKysrKysrKystLS0tLS0tLS0tCiA0IGZpbGVzIGNo
YW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBKU1Rlc3RzL3dhc20vanMtYXBpL3Byb21pc2Utc3RhY2stb3ZlcmZsb3cuanMKCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjYzFl
OGQuLmJkMjNlMGUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMTEtMTcgIEpGIEJhc3RpZW4gIDxqZmJh
c3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5IEpTIEFQSTogdGhyb3cgd2hl
biBhIHByb21pc2UgY2FuJ3QgYmUgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODI2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTQ1
NTgxMz4KKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBUZXN0IFdl
YkFzc2VtYmx5Lntjb21waWxlLGluc3RhbnRpYXRlfSB3aGVyZSBwcm9taXNlIGNyZWF0aW9uCisg
ICAgICAgIGZhaWxzIGJlY2F1c2Ugb2YgYSBzdGFjayBvdmVyZmxvdy4KKworICAgICAgICAqIHdh
c20vanMtYXBpL3Byb21pc2Utc3RhY2stb3ZlcmZsb3cuanM6IEFkZGVkLgorICAgICAgICAoY29u
c3QucnVuTmVhclN0YWNrTGltaXQuZi5jb25zdC50KToKKyAgICAgICAgKGFzeW5jLnRlc3RDb21w
aWxlKToKKyAgICAgICAgKGFzeW5jLnRlc3RJbnN0YW50aWF0ZSk6CisKIDIwMTctMTEtMTYgIFJv
YmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
IChyMjI0NTkyKTogb3NzLWZ1eno6IGpzYzogTnVsbC1kZXJlZmVyZW5jZSBSRUFEIGluIEpTQzo6
SlNDZWxsOjppc09iamVjdCAoNDIxNikKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkv
cHJvbWlzZS1zdGFjay1vdmVyZmxvdy5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvcHJvbWlzZS1z
dGFjay1vdmVyZmxvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzky
ZDVkCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy93YXNtL2pzLWFwaS9wcm9taXNlLXN0YWNr
LW92ZXJmbG93LmpzCkBAIC0wLDAgKzEsMzcgQEAKK2ltcG9ydCAqIGFzIGFzc2VydCBmcm9tICcu
Li9hc3NlcnQuanMnOworCitjb25zdCBtb2R1bGUgPSBVaW50OEFycmF5Lm9mKDB4MCwgMHg2MSwg
MHg3MywgMHg2ZCwgMHgxLCAweDAwLCAweDAwLCAweDAwKTsKKworbGV0IHByb21pc2VzID0gW107
CisKK2NvbnN0IHJ1bk5lYXJTdGFja0xpbWl0ID0gZiA9PiB7CisgICAgY29uc3QgdCA9ICgpID0+
IHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiB0KCk7CisgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgIHJldHVybiBmKCk7CisgICAgICAgIH0KKyAgICB9OworICAg
IHJldHVybiB0KCk7Cit9OworCitjb25zdCB0b3VjaEFyZ3VtZW50ID0gYXJnID0+IHByb21pc2Vz
LnB1c2goYXJnKTsKKworY29uc3QgY29tcGlsZU1lID0gKCkgPT4gdG91Y2hBcmd1bWVudChXZWJB
c3NlbWJseS5jb21waWxlKG1vZHVsZSkpOworCithc3luYyBmdW5jdGlvbiB0ZXN0Q29tcGlsZSgp
IHsKKyAgICBhd2FpdCB0b3VjaEFyZ3VtZW50KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBy
dW5OZWFyU3RhY2tMaW1pdChjb21waWxlTWUpOworICAgIH0oKSk7Cit9CisKK2NvbnN0IGluc3Rh
bnRpYXRlTWUgPSAoKSA9PiB0b3VjaEFyZ3VtZW50KFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1v
ZHVsZSkpOworCithc3luYyBmdW5jdGlvbiB0ZXN0SW5zdGFudGlhdGUoKSB7CisgICAgYXdhaXQg
dG91Y2hBcmd1bWVudChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgcnVuTmVhclN0YWNrTGlt
aXQoaW5zdGFudGlhdGVNZSk7CisgICAgfSgpKTsKK30KKworYXNzZXJ0LmFzeW5jVGVzdCh0ZXN0
Q29tcGlsZSgpKTsKK2Fzc2VydC5hc3luY1Rlc3QodGVzdEluc3RhbnRpYXRlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggOTI4OTBjMC4uZWFhNGFiNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTctMTEtMTcgIEpGIEJhc3RpZW4gIDxqZmJhc3Rp
ZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5IEpTIEFQSTogdGhyb3cgd2hlbiBh
IHByb21pc2UgY2FuJ3QgYmUgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODI2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTQ1NTgx
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBGYWlsdXJlICpp
biogYSBwcm9taXNlIGNhdXNlcyByZWplY3Rpb24sIGJ1dCBmYWlsdXJlIHRvIGNyZWF0ZSBhCisg
ICAgICAgIHByb21pc2UgKGJlY2F1c2Ugb2Ygc3RhY2sgb3ZlcmZsb3cpIGlzbid0IHJlYWxseSBz
cGVjJ2QgKGFzIGFsbAorICAgICAgICBzdGFjayB0aGluZ3MgSlMpLiBUaGlzIGFwcGxpZXMgdG8g
V2ViQXNzZW1ibHkuY29tcGlsZSBhbmQKKyAgICAgICAgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUu
CisKKyAgICAgICAgRGFuJ3MgY3VycmVudCBwcm9wb3NhbCBzYXlzOgorCisgICAgICAgICAgICBo
dHRwczovL2xpdHRsZWRhbi5naXRodWIuaW8vc3BlYy9kb2N1bWVudC9qcy1hcGkvaW5kZXguaHRt
bCNzdGFjay1vdmVyZmxvdworCisgICAgICAgICAgICBXaGVuZXZlciBhIHN0YWNrIG92ZXJmbG93
IG9jY3VycyBpbiBXZWJBc3NlbWJseSBjb2RlLCB0aGUgc2FtZQorICAgICAgICAgICAgY2xhc3Mg
b2YgZXhjZXB0aW9uIGlzIHRocm93biBhcyBmb3IgYSBzdGFjayBvdmVyZmxvdyBpbgorICAgICAg
ICAgICAgSmF2YVNjcmlwdC4gVGhlIHBhcnRpY3VsYXIgZXhjZXB0aW9uIGhlcmUgaXMKKyAgICAg
ICAgICAgIGltcGxlbWVudGF0aW9uLWRlZmluZWQgaW4gYm90aCBjYXNlcy4KKworICAgICAgICAg
ICAgTm90ZTogRUNNQVNjcmlwdCBkb2VzbuKAmXQgc3BlY2lmeSBhbnkgc29ydCBvZiBiZWhhdmlv
ciBvbiBzdGFjaworICAgICAgICAgICAgb3ZlcmZsb3c7IGltcGxlbWVudGF0aW9ucyBoYXZlIGJl
ZW4gb2JzZXJ2ZWQgdG8gdGhyb3cgUmFuZ2VFcnJvciwKKyAgICAgICAgICAgIEludGVybmFsRXJy
b3Igb3IgRXJyb3IuIEFueSBpcyB2YWxpZCBoZXJlLgorCisgICAgICAgIFRoaXMgaXMgZm9yIGdl
bmVyYWwgc3RhY2sgb3ZlcmZsb3cgd2l0aGluIFdlYkFzc2VtYmx5LCBub3QKKyAgICAgICAgc3Bl
Y2lmaWNhbGx5IGZvciBwcm9taXNlIGNyZWF0aW9uIHdpdGhpbiBKYXZhU2NyaXB0LCBidXQgaXQg
c2VlbXMKKyAgICAgICAgbGlrZSBhIHN0YWNrIG92ZXJmbG93IGluIHByb21pc2UgY3JlYXRpb24g
c2hvdWxkIGZvbGxvdyB0aGUgc2FtZQorICAgICAgICBydWxlIGluc3RlYWQgb2YsIHNheSwgc3dh
bGxvd2luZyB0aGUgb3ZlcmZsb3cgYW5kIHJldHVybmluZworICAgICAgICB1bmRlZmluZWQuCisK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6d2ViQXNzZW1ibHlDb21waWxlRnVuYyk6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5SW5z
dGFudGlhdGVGdW5jKToKKwogMjAxNy0xMS0xNiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRA
YXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBydW50aW1lIG9wdGlvbiBmb3IgZGlzYWJs
aW5nIHRoZSBvcHRpbWl6YXRpb24gb2YgcmVjdXJzaXZlIHRhaWwgY2FsbHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UHJvdG90eXBlLmNwcApp
bmRleCA2ZjlmNmFjLi5mMDFlMmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlQcm90b3R5cGUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQcm9taXNlRGVmZXJyZWRU
aW1lci5oIgogI2luY2x1ZGUgIlN0cm9uZ0lubGluZXMuaCIKKyNpbmNsdWRlICJUaHJvd1Njb3Bl
LmgiCiAjaW5jbHVkZSAiV2FzbUJCUVBsYW4uaCIKICNpbmNsdWRlICJXYXNtVG9KUy5oIgogI2lu
Y2x1ZGUgIldhc21Xb3JrbGlzdC5oIgpAQCAtODEsMzggKzgyLDQyIEBAIHN0YXRpYyB2b2lkIHJl
amVjdChFeGVjU3RhdGUqIGV4ZWMsIENhdGNoU2NvcGUmIGNhdGNoU2NvcGUsIEpTUHJvbWlzZURl
ZmVycmVkKiBwCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJs
eUNvbXBpbGVGdW5jKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBhdXRvKiBnbG9iYWxPYmpl
Y3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKICAgICBKU1Byb21pc2VEZWZlcnJl
ZCogcHJvbWlzZSA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0
KTsKLSAgICBDTEVBUl9BTkRfUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFs
dWUoKSk7Ci0KLSAgICBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+IGRlcGVuZGVuY2llczsKLSAgICBk
ZXBlbmRlbmNpZXMuYXBwZW5kKFN0cm9uZzxKU0NlbGw+KHZtLCBnbG9iYWxPYmplY3QpKTsKLSAg
ICB2bS5wcm9taXNlRGVmZXJyZWRUaW1lci0+YWRkUGVuZGluZ1Byb21pc2UocHJvbWlzZSwgV1RG
TW92ZShkZXBlbmRlbmNpZXMpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAgeworICAgICAgICBhdXRvIGNhdGNoU2NvcGUgPSBE
RUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKworICAgICAgICBWZWN0b3I8U3Ryb25nPEpTQ2VsbD4+
IGRlcGVuZGVuY2llczsKKyAgICAgICAgZGVwZW5kZW5jaWVzLmFwcGVuZChTdHJvbmc8SlNDZWxs
Pih2bSwgZ2xvYmFsT2JqZWN0KSk7CisgICAgICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5h
ZGRQZW5kaW5nUHJvbWlzZShwcm9taXNlLCBXVEZNb3ZlKGRlcGVuZGVuY2llcykpOworCisgICAg
ICAgIFZlY3Rvcjx1aW50OF90PiBzb3VyY2UgPSBjcmVhdGVTb3VyY2VCdWZmZXJGcm9tVmFsdWUo
dm0sIGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkoY2F0
Y2hTY29wZS5leGNlcHRpb24oKSkpCisgICAgICAgICAgICByZWplY3QoZXhlYywgY2F0Y2hTY29w
ZSwgcHJvbWlzZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgV2FzbTo6TW9kdWxlOjp2
YWxpZGF0ZUFzeW5jKCZ2bS53YXNtQ29udGV4dCwgV1RGTW92ZShzb3VyY2UpLCBjcmVhdGVTaGFy
ZWRUYXNrPFdhc206Ok1vZHVsZTo6Q2FsbGJhY2tUeXBlPihbcHJvbWlzZSwgZ2xvYmFsT2JqZWN0
LCAmdm1dIChXYXNtOjpNb2R1bGU6OlZhbGlkYXRpb25SZXN1bHQmJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICAgICAgICAgIHZtLnByb21pc2VEZWZlcnJlZFRpbWVyLT5zY2hlZHVsZVdvcmtT
b29uKHByb21pc2UsIFtwcm9taXNlLCBnbG9iYWxPYmplY3QsIHJlc3VsdCA9IFdURk1vdmUocmVz
dWx0KSwgJnZtXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgICAgICAgICAgICAgICAgICBFeGVjU3RhdGUq
IGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICAgICAgICAgICAgICAgICAg
SlNWYWx1ZSBtb2R1bGUgPSBKU1dlYkFzc2VtYmx5TW9kdWxlOjpjcmVhdGVTdHViKHZtLCBleGVj
LCBnbG9iYWxPYmplY3QtPldlYkFzc2VtYmx5TW9kdWxlU3RydWN0dXJlKCksIFdURk1vdmUocmVz
dWx0KSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24o
KSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChleGVjLCBzY29wZSwgcHJvbWlz
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKGV4ZWMsIG1vZHVsZSk7
CisgICAgICAgICAgICAgICAgICAgIENMRUFSX0FORF9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkpOworICAgICAg
ICB9CiAKLSAgICBWZWN0b3I8dWludDhfdD4gc291cmNlID0gY3JlYXRlU291cmNlQnVmZmVyRnJv
bVZhbHVlKHZtLCBleGVjLCBleGVjLT5hcmd1bWVudCgwKSk7Ci0KLSAgICBpZiAoVU5MSUtFTFko
c2NvcGUuZXhjZXB0aW9uKCkpKQotICAgICAgICByZWplY3QoZXhlYywgc2NvcGUsIHByb21pc2Up
OwotICAgIGVsc2UgewotICAgICAgICBXYXNtOjpNb2R1bGU6OnZhbGlkYXRlQXN5bmMoJnZtLndh
c21Db250ZXh0LCBXVEZNb3ZlKHNvdXJjZSksIGNyZWF0ZVNoYXJlZFRhc2s8V2FzbTo6TW9kdWxl
OjpDYWxsYmFja1R5cGU+KFtwcm9taXNlLCBnbG9iYWxPYmplY3QsICZ2bV0gKFdhc206Ok1vZHVs
ZTo6VmFsaWRhdGlvblJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB2bS5w
cm9taXNlRGVmZXJyZWRUaW1lci0+c2NoZWR1bGVXb3JrU29vbihwcm9taXNlLCBbcHJvbWlzZSwg
Z2xvYmFsT2JqZWN0LCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCksICZ2bV0gKCkgbXV0YWJsZSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwot
ICAgICAgICAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpOwotICAgICAgICAgICAgICAgIEpTVmFsdWUgbW9kdWxlID0gSlNXZWJBc3NlbWJseU1vZHVs
ZTo6Y3JlYXRlU3R1Yih2bSwgZXhlYywgZ2xvYmFsT2JqZWN0LT5XZWJBc3NlbWJseU1vZHVsZVN0
cnVjdHVyZSgpLCBXVEZNb3ZlKHJlc3VsdCkpOwotICAgICAgICAgICAgICAgIGlmIChVTkxJS0VM
WShzY29wZS5leGNlcHRpb24oKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGV4ZWMs
IHNjb3BlLCBwcm9taXNlKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmUoZXhlYywgbW9kdWxl
KTsKLSAgICAgICAgICAgICAgICBDTEVBUl9BTkRfUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KSk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocHJvbWlzZS0+cHJvbWlzZSgpKTsKICAgICB9Ci0KLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHByb21pc2UtPnByb21pc2UoKSk7CiB9CiAKIGVudW0gY2xhc3MgUmVz
b2x2ZSB7IFdpdGhJbnN0YW5jZSwgV2l0aE1vZHVsZUFuZEluc3RhbmNlIH07CkBAIC0xNzIsNyAr
MTc3LDcgQEAgc3RhdGljIHZvaWQgY29tcGlsZUFuZEluc3RhbnRpYXRlKFZNJiB2bSwgRXhlY1N0
YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCogcHIKICAgICAgICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICAgICAgICAgIEV4ZWNTdGF0ZSogZXhlYyA9
IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwogICAgICAgICAgICAgSlNXZWJBc3NlbWJseU1v
ZHVsZSogbW9kdWxlID0gSlNXZWJBc3NlbWJseU1vZHVsZTo6Y3JlYXRlU3R1Yih2bSwgZXhlYywg
Z2xvYmFsT2JqZWN0LT5XZWJBc3NlbWJseU1vZHVsZVN0cnVjdHVyZSgpLCBXVEZNb3ZlKHJlc3Vs
dCkpOwotICAgICAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQorICAgICAgICAgICAgaWYg
KFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVq
ZWN0KGV4ZWMsIHNjb3BlLCBwcm9taXNlKTsKIAogICAgICAgICAgICAgaW5zdGFudGlhdGUodm0s
IGV4ZWMsIHByb21pc2UsIG1vZHVsZSwgaW1wb3J0T2JqZWN0LCBSZXNvbHZlOjpXaXRoTW9kdWxl
QW5kSW5zdGFuY2UpOwpAQCAtMTgzLDI3ICsxODgsMzEgQEAgc3RhdGljIHZvaWQgY29tcGlsZUFu
ZEluc3RhbnRpYXRlKFZNJiB2bSwgRXhlY1N0YXRlKiBleGVjLCBKU1Byb21pc2VEZWZlcnJlZCog
cHIKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFu
dGlhdGVGdW5jKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvKiBnbG9iYWxPYmplY3Qg
PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CiAKLSAgICBKU1Byb21pc2VEZWZlcnJlZCog
cHJvbWlzZSA9IEpTUHJvbWlzZURlZmVycmVkOjpjcmVhdGUoZXhlYywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpKTsKLSAgICBDTEVBUl9BTkRfUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgSlNQcm9taXNlRGVmZXJyZWQqIHByb21pc2UgPSBKU1By
b21pc2VEZWZlcnJlZDo6Y3JlYXRlKGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIHsKKyAgICAg
ICAgYXV0byBjYXRjaFNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICAgICAg
SlNWYWx1ZSBpbXBvcnRBcmd1bWVudCA9IGV4ZWMtPmFyZ3VtZW50KDEpOworICAgICAgICBKU09i
amVjdCogaW1wb3J0T2JqZWN0ID0gaW1wb3J0QXJndW1lbnQuZ2V0T2JqZWN0KCk7CisgICAgICAg
IGlmIChVTkxJS0VMWSghaW1wb3J0QXJndW1lbnQuaXNVbmRlZmluZWQoKSAmJiAhaW1wb3J0T2Jq
ZWN0KSkgeworICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KGV4ZWMsIGNyZWF0ZVR5cGVFcnJv
cihleGVjLAorICAgICAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCgic2Vjb25kIGFyZ3VtZW50IHRv
IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlIG11c3QgYmUgdW5kZWZpbmVkIG9yIGFuIE9iamVjdCIp
LCBkZWZhdWx0U291cmNlQXBwZW5kZXIsIHJ1bnRpbWVUeXBlRm9yVmFsdWUoaW1wb3J0QXJndW1l
bnQpKSk7CisgICAgICAgICAgICBDTEVBUl9BTkRfUkVUVVJOX0lGX0VYQ0VQVElPTihjYXRjaFNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZS0+cHJvbWlzZSgpKSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBKU1ZhbHVlIGZpcnN0QXJndW1lbnQgPSBleGVjLT5hcmd1bWVudCgw
KTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBtb2R1bGUgPSBqc0R5bmFtaWNDYXN0PEpTV2ViQXNz
ZW1ibHlNb2R1bGUqPih2bSwgZmlyc3RBcmd1bWVudCkpCisgICAgICAgICAgICAgICAgaW5zdGFu
dGlhdGUodm0sIGV4ZWMsIHByb21pc2UsIG1vZHVsZSwgaW1wb3J0T2JqZWN0LCBSZXNvbHZlOjpX
aXRoSW5zdGFuY2UpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGNvbXBpbGVB
bmRJbnN0YW50aWF0ZSh2bSwgZXhlYywgcHJvbWlzZSwgZmlyc3RBcmd1bWVudCwgaW1wb3J0T2Jq
ZWN0KTsKKyAgICAgICAgfQogCi0gICAgSlNWYWx1ZSBpbXBvcnRBcmd1bWVudCA9IGV4ZWMtPmFy
Z3VtZW50KDEpOwotICAgIEpTT2JqZWN0KiBpbXBvcnRPYmplY3QgPSBpbXBvcnRBcmd1bWVudC5n
ZXRPYmplY3QoKTsKLSAgICBpZiAoIWltcG9ydEFyZ3VtZW50LmlzVW5kZWZpbmVkKCkgJiYgIWlt
cG9ydE9iamVjdCkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoZXhlYywgY3JlYXRlVHlwZUVy
cm9yKGV4ZWMsCi0gICAgICAgICAgICBBU0NJSUxpdGVyYWwoInNlY29uZCBhcmd1bWVudCB0byBX
ZWJBc3NlbWJseS5pbnN0YW50aWF0ZSBtdXN0IGJlIHVuZGVmaW5lZCBvciBhbiBPYmplY3QiKSwg
ZGVmYXVsdFNvdXJjZUFwcGVuZGVyLCBydW50aW1lVHlwZUZvclZhbHVlKGltcG9ydEFyZ3VtZW50
KSkpOwotICAgICAgICBDTEVBUl9BTkRfUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZS0+cHJv
bWlzZSgpKTsKICAgICB9Ci0KLSAgICBKU1ZhbHVlIGZpcnN0QXJndW1lbnQgPSBleGVjLT5hcmd1
bWVudCgwKTsKLSAgICBpZiAoYXV0byogbW9kdWxlID0ganNEeW5hbWljQ2FzdDxKU1dlYkFzc2Vt
Ymx5TW9kdWxlKj4odm0sIGZpcnN0QXJndW1lbnQpKQotICAgICAgICBpbnN0YW50aWF0ZSh2bSwg
ZXhlYywgcHJvbWlzZSwgbW9kdWxlLCBpbXBvcnRPYmplY3QsIFJlc29sdmU6OldpdGhJbnN0YW5j
ZSk7Ci0gICAgZWxzZQotICAgICAgICBjb21waWxlQW5kSW5zdGFudGlhdGUodm0sIGV4ZWMsIHBy
b21pc2UsIGZpcnN0QXJndW1lbnQsIGltcG9ydE9iamVjdCk7Ci0KLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHByb21pc2UtPnByb21pc2UoKSk7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKEV4ZWNTdGF0ZSogZXhlYykK
LS0gCjIuMTAuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>