<?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>199886</bug_id>
          
          <creation_ts>2019-07-17 15:30:38 -0700</creation_ts>
          <short_desc>[WHLSL] The lexer should not choke on a single &apos;/&apos;</short_desc>
          <delta_ts>2019-07-17 19:31:15 -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>WebGPU</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="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1553710</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-17 15:30:38 -0700</bug_when>
    <thetext>I introduced a bug in the lexer when I last optimized its skipWhitespaceAndComments, and it now hangs whenever it encounters a single &apos;/&apos; (as in the function smoothstep in the stdlib).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553719</commentid>
    <comment_count>1</comment_count>
      <attachid>374342</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-17 15:34:44 -0700</bug_when>
    <thetext>Created attachment 374342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553720</commentid>
    <comment_count>2</comment_count>
      <attachid>374342</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-07-17 15:38:25 -0700</bug_when>
    <thetext>Comment on attachment 374342
Patch

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.cpp:121
&gt; +        if (auto parseFailure = parser.parse(program, decompressAndDecodeStandardLibrary(), Parser::Mode::StandardLibrary)) {

We probably want this to be able to use the static NeverDestroyed standard library in StandardLibraryUtilities.cpp so we don’t have a whole lot of copies of it and don’t have to decompress it multiple times</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553721</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-07-17 15:41:12 -0700</bug_when>
    <thetext>No test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553765</commentid>
    <comment_count>4</comment_count>
      <attachid>374354</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-17 17:15:43 -0700</bug_when>
    <thetext>Created attachment 374354
Patch

Added a test, and modified parseFullStandardLibrary so we only load and decompress the stdlib once, using the static NeverDestroyed&lt;String&gt; as suggested by Myles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553772</commentid>
    <comment_count>5</comment_count>
      <attachid>374356</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-17 17:22:19 -0700</bug_when>
    <thetext>Created attachment 374356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553783</commentid>
    <comment_count>6</comment_count>
      <attachid>374356</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-07-17 17:57:12 -0700</bug_when>
    <thetext>Comment on attachment 374356
Patch

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

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.cpp:124
&gt; +        if (dumpPassFailure)
&gt; +            dataLogLn(&quot;failed to parse the standard library: &quot;, *parseFailure);
&gt; +        return WTF::nullopt;
&gt; +    }

See comment below.

&gt; Source/WebCore/Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.cpp:81
&gt; +            return parseFailure;

The standard library should never be a parse failure. Instead of returning the error, we should ASSERT(). The return type of this function should be &quot;void&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553792</commentid>
    <comment_count>7</comment_count>
      <attachid>374361</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2019-07-17 18:17:10 -0700</bug_when>
    <thetext>Created attachment 374361
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553803</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 19:14:40 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 374361:

http/tests/IndexedDB/collect-IDB-objects.https.html bug 199881 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553806</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 19:15:03 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 374361:

storage/indexeddb/dont-wedge.html bug 199883 (authors: beidson@apple.com, commit-queue@webkit.org, dgrogan@chromium.org, and mark.lam@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553808</commentid>
    <comment_count>10</comment_count>
      <attachid>374361</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 19:30:01 -0700</bug_when>
    <thetext>Comment on attachment 374361
Patch for landing

Clearing flags on attachment: 374361

Committed r247554: &lt;https://trac.webkit.org/changeset/247554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553809</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-17 19:30:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553810</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-17 19:31:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/53233949&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374342</attachid>
            <date>2019-07-17 15:34:44 -0700</date>
            <delta_ts>2019-07-17 17:15:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch199886</filename>
            <type>text/plain</type>
            <size>5812</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNzRjMDY1OTc2Yi4uYmU2NjhkMDM1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxOS0wNy0xNyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXSExTTF0gVGhlIGxleGVyIHNob3VsZCBub3QgY2hva2Ugb24gYSBz
aW5nbGUgJy8nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgYnVnIGlzIHRyaXZpYWw6IGp1c3QgcmVjb2duaXplIHRoYXQgYSBzaW5nbGUgJy8nIHdp
dGhvdXQgYSAnKicgb3IgJy8nIGFmdGVyd2FyZHMgaXMgbm90IHRoZSBiZWdpbm5pbmcgb2YgYSBj
b21tZW50LgorCisgICAgICAgIFdoaWxlIGludmVzdGlnYXRpbmcgdGhpcyBidWcsIEkgYWxzbyBm
b3VuZCB0aGF0IHBhcnQgb2YgdGhlIHBhcnNlciBmYWlscyB0byBwcm9wZXJseSBwcm9wYWdhdGUg
ZXJyb3JzLCBzbyBJIGZpeGVkIGl0LgorCisgICAgICAgIEluc3RlYWQgb2YgYWRkaW5nIGV4dHJh
IHRlc3RzLCBJIGFkZGVkIGEgbmV3IGZsYWcgdG8gV0hMU0xQcmVwYXJlLmNwcC4gSXQgY2FuIGJl
IHVzZWQgdG8gcGFyc2UgdGhlIGZ1bGwgc3RhbmRhcmQgbGlicmFyeSAodGhpcyBpcyBob3cgSSBm
b3VuZCB0aGlzIGJ1ZyBpbiB0aGUgZmlyc3QgcGxhY2UpLgorCisgICAgICAgICogTW9kdWxlcy93
ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6TGV4
ZXI6OnNraXBXaGl0ZXNwYWNlQW5kQ29tbWVudHMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1
L1dITFNML1dITFNMUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjpQYXJzZXI6
OnBhcnNlUG9zc2libGVUZXJuYXJ5Q29uZGl0aW9uYWwpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExTTDo6cHJl
cGFyZVNoYXJlZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFy
ZExpYnJhcnlVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6OmRlY29tcHJl
c3NBbmREZWNvZGVTdGFuZGFyZExpYnJhcnkpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dI
TFNML1dITFNMU3RhbmRhcmRMaWJyYXJ5VXRpbGl0aWVzLmg6CisKIDIwMTktMDctMTUgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0hMU0xdIFJlbW92
ZSB0cmFwcyBmcm9tIHRoZSBjb21waWxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAppbmRleCBlNGFiYThjZTNmMS4uOTNiZTk2ODhl
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
TGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
TGV4ZXIuY3BwCkBAIC01NTgsNyArNTU4LDggQEAgdm9pZCBMZXhlcjo6c2tpcFdoaXRlc3BhY2VB
bmRDb21tZW50cygpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML1dITFNMUGFyc2VyLmNwcAppbmRleCAzZTI4OTk2YWQ3MC4uMmM4MDk1N2VkNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNl
ci5jcHAKQEAgLTE2MTgsMTAgKzE2MTgsMjQgQEAgYXV0byBQYXJzZXI6OnBhcnNlUG9zc2libGVU
ZXJuYXJ5Q29uZGl0aW9uYWwoKSAtPiBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXMKICAg
ICB9CiAKICAgICBleHByZXNzaW9uID0gY29tcGxldGVQb3NzaWJsZVNoaWZ0KFdURk1vdmUoKmV4
cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVj
dGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBs
ZXRlUG9zc2libGVNdWx0aXBseShXVEZNb3ZlKCpleHByZXNzaW9uKSk7CisgICAgaWYgKCFleHBy
ZXNzaW9uKQorICAgICAgICByZXR1cm4gVW5leHBlY3RlZDxFcnJvcj4oZXhwcmVzc2lvbi5lcnJv
cigpKTsKKwogICAgIGV4cHJlc3Npb24gPSBjb21wbGV0ZVBvc3NpYmxlQWRkKFdURk1vdmUoKmV4
cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVj
dGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBs
ZXRlUG9zc2libGVSZWxhdGlvbmFsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Npb24p
KTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVycm9y
PihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBsZXRlUG9zc2li
bGVMb2dpY2FsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Npb24pKTsKKyAgICBpZiAo
IWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVycm9yPihleHByZXNzaW9u
LmVycm9yKCkpOwogCiAgICAgUEVFSyhuZXh0VG9rZW4pOwogICAgIGlmIChuZXh0VG9rZW4tPnR5
cGUgPT0gVG9rZW46OlR5cGU6OlF1ZXN0aW9uTWFyaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCmluZGV4IDUxNGVjMzU1OTQ5
Li41ZjE1Y2UzMmNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvV0hMU0xQcmVwYXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XSExTTC9XSExTTFByZXBhcmUuY3BwCkBAIC02NCw2ICs2NCw4IEBAIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBkdW1wQVNUQXRFbmQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbHdh
eXNEdW1wUGFzc0ZhaWx1cmVzID0gZmFsc2U7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgZHVtcFBh
c3NGYWlsdXJlID0gZHVtcEFTVEJlZm9yZUVhY2hQYXNzIHx8IGR1bXBBU1RBZnRlclBhcnNpbmcg
fHwgZHVtcEFTVEF0RW5kIHx8IGFsd2F5c0R1bXBQYXNzRmFpbHVyZXM7CiAKK3N0YXRpYyBjb25z
dGV4cHIgYm9vbCBwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkgPSBmYWxzZTsKKwogc3RhdGljIGJv
b2wgZHVtcEFTVElmTmVlZGVkKGJvb2wgc2hvdWxkRHVtcCwgUHJvZ3JhbSYgcHJvZ3JhbSwgY29u
c3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAoc2hvdWxkRHVtcCkgewpAQCAtMTE1LDcgKzEx
NywxNCBAQCBzdGF0aWMgT3B0aW9uYWw8UHJvZ3JhbT4gcHJlcGFyZVNoYXJlZChTdHJpbmcmIHdo
bHNsU291cmNlKQogICAgICAgICAgICAgZGF0YUxvZ0xuKCJmYWlsZWQgdG8gcGFyc2UgdGhlIHBy
b2dyYW06ICIsICpwYXJzZUZhaWx1cmUpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
ICAgIH0KLSAgICBpbmNsdWRlU3RhbmRhcmRMaWJyYXJ5KHByb2dyYW0sIHBhcnNlcik7CisgICAg
aWYgKHBhcnNlRnVsbFN0YW5kYXJkTGlicmFyeSkgeworICAgICAgICBpZiAoYXV0byBwYXJzZUZh
aWx1cmUgPSBwYXJzZXIucGFyc2UocHJvZ3JhbSwgZGVjb21wcmVzc0FuZERlY29kZVN0YW5kYXJk
TGlicmFyeSgpLCBQYXJzZXI6Ok1vZGU6OlN0YW5kYXJkTGlicmFyeSkpIHsKKyAgICAgICAgICAg
IGlmIChkdW1wUGFzc0ZhaWx1cmUpCisgICAgICAgICAgICAgICAgZGF0YUxvZ0xuKCJmYWlsZWQg
dG8gcGFyc2UgdGhlIGZ1bGwgc3RhbmRhcmQgbGlicmFyeTogIiwgKnBhcnNlRmFpbHVyZSk7Cisg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisgICAgfSBlbHNlCisg
ICAgICAgIGluY2x1ZGVTdGFuZGFyZExpYnJhcnkocHJvZ3JhbSwgcGFyc2VyKTsKIAogICAgIGlm
ICghZHVtcEFTVEJldHdlZW5FYWNoUGFzc0lmTmVlZGVkKHByb2dyYW0sICJBU1QgYWZ0ZXIgcGFy
c2luZyIpKQogICAgICAgICBkdW1wQVNUQWZ0ZXJQYXJzaW5nSWZOZWVkZWQocHJvZ3JhbSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN0YW5k
YXJkTGlicmFyeVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5jcHAKaW5kZXggOTNjYjNkMTA3OTQu
LmI5Y2NhM2NlZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIFdITFNM
IHsKIAotc3RhdGljIFN0cmluZyBkZWNvbXByZXNzQW5kRGVjb2RlU3RhbmRhcmRMaWJyYXJ5KCkK
K1N0cmluZyBkZWNvbXByZXNzQW5kRGVjb2RlU3RhbmRhcmRMaWJyYXJ5KCkKIHsKICAgICBhdXRv
IGRlY29tcHJlc3NlZFN0YW5kYXJkTGlicmFyeSA9IGd1bnppcChXSExTTFN0YW5kYXJkTGlicmFy
eSwgc2l6ZW9mKFdITFNMU3RhbmRhcmRMaWJyYXJ5KSk7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJv
bVVURjgoZGVjb21wcmVzc2VkU3RhbmRhcmRMaWJyYXJ5LmRhdGEoKSwgZGVjb21wcmVzc2VkU3Rh
bmRhcmRMaWJyYXJ5LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMu
aAppbmRleCA2M2YxNmM1NDgxZC4uMzk1N2Y4ODhjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3RhbmRhcmRMaWJyYXJ5VXRpbGl0aWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExp
YnJhcnlVdGlsaXRpZXMuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBQYXJzZXI7CiBjbGFzcyBQ
cm9ncmFtOwogCiB2b2lkIGluY2x1ZGVTdGFuZGFyZExpYnJhcnkoUHJvZ3JhbSYsIFBhcnNlciYp
OworU3RyaW5nIGRlY29tcHJlc3NBbmREZWNvZGVTdGFuZGFyZExpYnJhcnkoKTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374354</attachid>
            <date>2019-07-17 17:15:43 -0700</date>
            <delta_ts>2019-07-17 17:16:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch199886</filename>
            <type>text/plain</type>
            <size>8638</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9mbG9hdC1tYXRoLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvZmxvYXQtbWF0aC5odG1sCmluZGV4IGY5ODA5N2NjMjJi
Li5iMDcxN2YwMDQzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL2Zsb2F0
LW1hdGguaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvZmxvYXQtbWF0aC5odG1s
CkBAIC0zNyw2ICszNywxMCBAQCB3aGxzbFRlc3RzLmZsb2F0TWF0aCA9IGFzeW5jICgpID0+IHsK
ICAgICAgICAgICAgIGZsb2F0IHggPSA3LjU7CiAgICAgICAgICAgICByZXR1cm4gZmxvYXQoeCk7
CiAgICAgICAgIH0KKyAgICAgICAgYm9vbCBkaXYoKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gMC41IC8gMiA9PSAwLjI1OworICAgICAgICB9CiAgICAgYDsKIAogICAgIGFzc2VydF9l
cXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAgImZvbyIsIFtdKSwgdHJ1ZSk7
CkBAIC00NCw2ICs0OCw3IEBAIHdobHNsVGVzdHMuZmxvYXRNYXRoID0gYXN5bmMgKCkgPT4gewog
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzki
LCBbXSksIDcuNSk7CiAgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsRmxvYXRGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTIiLCBbXSksIDcpOwogICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZs
b2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCA3LjUpOworICAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZGl2IiwgW10pLCB0cnVlKTsKIAog
ICAgIGF3YWl0IGNoZWNrRmFpbCgKICAgICAgICAgYApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRmYTQ0YWJmNzhk
Li5lYTQzMGM0ODdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA3LTE3ICBS
b2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBU
aGUgbGV4ZXIgc2hvdWxkIG5vdCBjaG9rZSBvbiBhIHNpbmdsZSAnLycKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTg4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBidWcgaXMgdHJpdmlhbDoganVz
dCByZWNvZ25pemUgdGhhdCBhIHNpbmdsZSAnLycgd2l0aG91dCBhICcqJyBvciAnLycgYWZ0ZXJ3
YXJkcyBpcyBub3QgdGhlIGJlZ2lubmluZyBvZiBhIGNvbW1lbnQuCisKKyAgICAgICAgV2hpbGUg
aW52ZXN0aWdhdGluZyB0aGlzIGJ1ZywgSSBhbHNvIGZvdW5kIHRoYXQgcGFydCBvZiB0aGUgcGFy
c2VyIGZhaWxzIHRvIHByb3Blcmx5IHByb3BhZ2F0ZSBlcnJvcnMsIHNvIEkgZml4ZWQgaXQuCisK
KyAgICAgICAgTmV3IHRlc3QgaW4gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL2Zsb2F0LW1hdGgu
aHRtbAorICAgICAgICBJIGFsc28gYWRkZWQgYSBuZXcgZmxhZyB0byBXSExTTFByZXBhcmUuY3Bw
LiBJdCBjYW4gYmUgdXNlZCB0byBwYXJzZSB0aGUgZnVsbCBzdGFuZGFyZCBsaWJyYXJ5ICh0aGlz
IGlzIGhvdyBJIGZvdW5kIHRoaXMgYnVnIGluIHRoZSBmaXJzdCBwbGFjZSkuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpMZXhlcjo6c2tpcFdoaXRlc3BhY2VBbmRDb21tZW50cyk6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hM
U0w6OlBhcnNlcjo6cGFyc2VQb3NzaWJsZVRlcm5hcnlDb25kaXRpb25hbCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldITFNMOjpwcmVwYXJlU2hhcmVkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9X
SExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXSExT
TDo6ZGVjb21wcmVzc0FuZERlY29kZVN0YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuaDoKKwogMjAxOS0w
Ny0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHVu
bmVjZXNzYXJ5IGNvcHkgb2YgbW9uaXRvcnMgdW5kZXIgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAppbmRleCBiNTlkMTZkZWUwZS4uMmE5NmZlODVm
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
TGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNM
TGV4ZXIuY3BwCkBAIC01NjIsNyArNTYyLDggQEAgdm9pZCBMZXhlcjo6c2tpcFdoaXRlc3BhY2VB
bmRDb21tZW50cygpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML1dITFNMUGFyc2VyLmNwcAppbmRleCAyMGNiOTM5MTA0YS4uOWNmZmRlNzg4MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBhcnNl
ci5jcHAKQEAgLTE2MjQsMTAgKzE2MjQsMjQgQEAgYXV0byBQYXJzZXI6OnBhcnNlUG9zc2libGVU
ZXJuYXJ5Q29uZGl0aW9uYWwoKSAtPiBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXMKICAg
ICB9CiAKICAgICBleHByZXNzaW9uID0gY29tcGxldGVQb3NzaWJsZVNoaWZ0KFdURk1vdmUoKmV4
cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVj
dGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBs
ZXRlUG9zc2libGVNdWx0aXBseShXVEZNb3ZlKCpleHByZXNzaW9uKSk7CisgICAgaWYgKCFleHBy
ZXNzaW9uKQorICAgICAgICByZXR1cm4gVW5leHBlY3RlZDxFcnJvcj4oZXhwcmVzc2lvbi5lcnJv
cigpKTsKKwogICAgIGV4cHJlc3Npb24gPSBjb21wbGV0ZVBvc3NpYmxlQWRkKFdURk1vdmUoKmV4
cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVj
dGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBs
ZXRlUG9zc2libGVSZWxhdGlvbmFsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Npb24p
KTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVycm9y
PihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBsZXRlUG9zc2li
bGVMb2dpY2FsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Npb24pKTsKKyAgICBpZiAo
IWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVycm9yPihleHByZXNzaW9u
LmVycm9yKCkpOwogCiAgICAgUEVFSyhuZXh0VG9rZW4pOwogICAgIGlmIChuZXh0VG9rZW4tPnR5
cGUgPT0gVG9rZW46OlR5cGU6OlF1ZXN0aW9uTWFyaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCmluZGV4IDUxNGVjMzU1OTQ5
Li4zYTViYjAxNjQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUv
V0hMU0wvV0hMU0xQcmVwYXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdw
dS9XSExTTC9XSExTTFByZXBhcmUuY3BwCkBAIC02NCw2ICs2NCw4IEBAIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBkdW1wQVNUQXRFbmQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBhbHdh
eXNEdW1wUGFzc0ZhaWx1cmVzID0gZmFsc2U7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgZHVtcFBh
c3NGYWlsdXJlID0gZHVtcEFTVEJlZm9yZUVhY2hQYXNzIHx8IGR1bXBBU1RBZnRlclBhcnNpbmcg
fHwgZHVtcEFTVEF0RW5kIHx8IGFsd2F5c0R1bXBQYXNzRmFpbHVyZXM7CiAKK3N0YXRpYyBjb25z
dGV4cHIgYm9vbCBwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkgPSBmYWxzZTsKKwogc3RhdGljIGJv
b2wgZHVtcEFTVElmTmVlZGVkKGJvb2wgc2hvdWxkRHVtcCwgUHJvZ3JhbSYgcHJvZ3JhbSwgY29u
c3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAoc2hvdWxkRHVtcCkgewpAQCAtMTE1LDcgKzEx
NywxMSBAQCBzdGF0aWMgT3B0aW9uYWw8UHJvZ3JhbT4gcHJlcGFyZVNoYXJlZChTdHJpbmcmIHdo
bHNsU291cmNlKQogICAgICAgICAgICAgZGF0YUxvZ0xuKCJmYWlsZWQgdG8gcGFyc2UgdGhlIHBy
b2dyYW06ICIsICpwYXJzZUZhaWx1cmUpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owog
ICAgIH0KLSAgICBpbmNsdWRlU3RhbmRhcmRMaWJyYXJ5KHByb2dyYW0sIHBhcnNlcik7CisgICAg
aWYgKGF1dG8gcGFyc2VGYWlsdXJlID0gaW5jbHVkZVN0YW5kYXJkTGlicmFyeShwcm9ncmFtLCBw
YXJzZXIsIHBhcnNlRnVsbFN0YW5kYXJkTGlicmFyeSkpIHsKKyAgICAgICAgaWYgKGR1bXBQYXNz
RmFpbHVyZSkKKyAgICAgICAgICAgIGRhdGFMb2dMbigiZmFpbGVkIHRvIHBhcnNlIHRoZSBzdGFu
ZGFyZCBsaWJyYXJ5OiAiLCAqcGFyc2VGYWlsdXJlKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKyAgICB9CiAKICAgICBpZiAoIWR1bXBBU1RCZXR3ZWVuRWFjaFBhc3NJZk5lZWRlZChw
cm9ncmFtLCAiQVNUIGFmdGVyIHBhcnNpbmciKSkKICAgICAgICAgZHVtcEFTVEFmdGVyUGFyc2lu
Z0lmTmVlZGVkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMu
Y3BwCmluZGV4IDkzY2IzZDEwNzk0Li4xNjgyMjZlMjMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3RhbmRh
cmRMaWJyYXJ5VXRpbGl0aWVzLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShXRUJH
UFUpCiAKICNpbmNsdWRlICJXSExTTENhbGxFeHByZXNzaW9uLmgiCi0jaW5jbHVkZSAiV0hMU0xQ
YXJzZXIuaCIKICNpbmNsdWRlICJXSExTTFN0YW5kYXJkTGlicmFyeS5oIgogI2luY2x1ZGUgIldI
TFNMU3RhbmRhcmRMaWJyYXJ5RnVuY3Rpb25NYXAuaCIKICNpbmNsdWRlICJXSExTTFZpc2l0b3Iu
aCIKQEAgLTc0LDkgKzczLDE1IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fZnVu
Y3Rpb25OYW1lczsKIH07CiAKLXZvaWQgaW5jbHVkZVN0YW5kYXJkTGlicmFyeShQcm9ncmFtJiBw
cm9ncmFtLCBQYXJzZXImIHBhcnNlcikKK09wdGlvbmFsPFBhcnNlcjo6RXJyb3I+IGluY2x1ZGVT
dGFuZGFyZExpYnJhcnkoUHJvZ3JhbSYgcHJvZ3JhbSwgUGFyc2VyJiBwYXJzZXIsIGJvb2wgcGFy
c2VGdWxsU3RhbmRhcmRMaWJyYXJ5KQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHN0YW5kYXJkTGlicmFyeShkZWNvbXByZXNzQW5kRGVjb2RlU3RhbmRhcmRMaWJyYXJ5KCkp
OworICAgIGlmIChwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkpIHsKKyAgICAgICAgaWYgKGF1dG8g
cGFyc2VGYWlsdXJlID0gcGFyc2VyLnBhcnNlKHByb2dyYW0sIGRlY29tcHJlc3NBbmREZWNvZGVT
dGFuZGFyZExpYnJhcnkoKSwgUGFyc2VyOjpNb2RlOjpTdGFuZGFyZExpYnJhcnkpKQorICAgICAg
ICAgICAgcmV0dXJuIHBhcnNlRmFpbHVyZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICB9CisKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFN1YnN0
cmluZ0xvY2F0aW9uPj4gc3RhbmRhcmRMaWJyYXJ5RnVuY3Rpb25NYXAoY29tcHV0ZVN0YW5kYXJk
TGlicmFyeUZ1bmN0aW9uTWFwKCkpOwogCiAgICAgYXV0byBzdHJpbmdWaWV3ID0gU3RyaW5nVmll
dyhzdGFuZGFyZExpYnJhcnkuZ2V0KCkpLnN1YnN0cmluZygwLCBmaXJzdEZ1bmN0aW9uT2Zmc2V0
SW5TdGFuZGFyZExpYnJhcnkoKSk7CkBAIC0xMDAsOCArMTA1LDggQEAgdm9pZCBpbmNsdWRlU3Rh
bmRhcmRMaWJyYXJ5KFByb2dyYW0mIHByb2dyYW0sIFBhcnNlciYgcGFyc2VyKQogICAgICAgICAg
ICAgaWYgKGl0ZXJhdG9yID09IHN0YW5kYXJkTGlicmFyeUZ1bmN0aW9uTWFwLmdldCgpLmVuZCgp
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byBzdHJpbmdWaWV3
ID0gU3RyaW5nVmlldyhzdGFuZGFyZExpYnJhcnkuZ2V0KCkpLnN1YnN0cmluZyhpdGVyYXRvci0+
dmFsdWUuc3RhcnQsIGl0ZXJhdG9yLT52YWx1ZS5lbmQgLSBpdGVyYXRvci0+dmFsdWUuc3RhcnQp
OwotICAgICAgICAgICAgYXV0byBwYXJzZUZhaWx1cmUgPSBwYXJzZXIucGFyc2UocHJvZ3JhbSwg
c3RyaW5nVmlldywgUGFyc2VyOjpNb2RlOjpTdGFuZGFyZExpYnJhcnkpOwotICAgICAgICAgICAg
QVNTRVJUX1VOVVNFRChwYXJzZUZhaWx1cmUsICFwYXJzZUZhaWx1cmUpOworICAgICAgICAgICAg
aWYgKGF1dG8gcGFyc2VGYWlsdXJlID0gcGFyc2VyLnBhcnNlKHByb2dyYW0sIHN0cmluZ1ZpZXcs
IFBhcnNlcjo6TW9kZTo6U3RhbmRhcmRMaWJyYXJ5KSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
cGFyc2VGYWlsdXJlOwogICAgICAgICAgICAgYWxsRnVuY3Rpb25OYW1lcy5hZGQobmFtZSk7CiAg
ICAgICAgIH0KICAgICAgICAgZm9yICggOyBuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uc0NvdW50
IDwgcHJvZ3JhbS5uYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9ucygpLnNpemUoKTsgKytuYXRpdmVG
dW5jdGlvbkRlY2xhcmF0aW9uc0NvdW50KQpAQCAtMTEwLDYgKzExNSw3IEBAIHZvaWQgaW5jbHVk
ZVN0YW5kYXJkTGlicmFyeShQcm9ncmFtJiBwcm9ncmFtLCBQYXJzZXImIHBhcnNlcikKICAgICAg
ICAgICAgIG5hbWVGaW5kZXIuVmlzaXRvcjo6dmlzaXQocHJvZ3JhbS5mdW5jdGlvbkRlZmluaXRp
b25zKClbZnVuY3Rpb25EZWZpbml0aW9uc0NvdW50XSk7CiAgICAgICAgIGZ1bmN0aW9uTmFtZXMg
PSBuYW1lRmluZGVyLnRha2VGdW5jdGlvbk5hbWVzKCk7CiAgICAgfQorICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdITFNMCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGll
cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExp
YnJhcnlVdGlsaXRpZXMuaAppbmRleCA2M2YxNmM1NDgxZC4uNWYxM2MwNThkMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3RhbmRhcmRMaWJy
YXJ5VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wv
V0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYg
RU5BQkxFKFdFQkdQVSkKIAorI2luY2x1ZGUgIldITFNMUGFyc2VyLmgiCisjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM0LDkgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIFdITFNMIHsKIAogY2xhc3MgUGFyc2VyOwotY2xhc3MgUHJvZ3JhbTsKIAotdm9pZCBpbmNs
dWRlU3RhbmRhcmRMaWJyYXJ5KFByb2dyYW0mLCBQYXJzZXImKTsKK09wdGlvbmFsPFBhcnNlcjo6
RXJyb3I+IGluY2x1ZGVTdGFuZGFyZExpYnJhcnkoUHJvZ3JhbSYsIFBhcnNlciYsIGJvb2wgcGFy
c2VGdWxsU3RhbmRhcmRMaWJyYXJ5KTsKIAogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374356</attachid>
            <date>2019-07-17 17:22:19 -0700</date>
            <delta_ts>2019-07-17 18:17:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch199886</filename>
            <type>text/plain</type>
            <size>9196</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkODIzMmI0Yzk5ZC4uYmIzZDQyMzI4ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wNy0xNyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXSExTTF0gVGhlIGxleGVyIHNob3VsZCBub3QgY2hva2Ugb24gYSBzaW5nbGUgJy8nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4ODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5l
dyBiYXNpYyB0ZXN0IG9mIGRpdmlzaW9uLgorCisgICAgICAgICogd2ViZ3B1L3dobHNsL2Zsb2F0
LW1hdGguaHRtbDoKKwogMjAxOS0wNy0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBhIHJ1bnRpbWUtZGlzYWJsZWQgZGlhbG9nIGVs
ZW1lbnQgc2tlbGV0b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9mbG9h
dC1tYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvZmxvYXQtbWF0aC5odG1sCmlu
ZGV4IGY5ODA5N2NjMjJiLi5iMDcxN2YwMDQzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsL2Zsb2F0LW1hdGguaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wv
ZmxvYXQtbWF0aC5odG1sCkBAIC0zNyw2ICszNywxMCBAQCB3aGxzbFRlc3RzLmZsb2F0TWF0aCA9
IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGZsb2F0IHggPSA3LjU7CiAgICAgICAgICAgICBy
ZXR1cm4gZmxvYXQoeCk7CiAgICAgICAgIH0KKyAgICAgICAgYm9vbCBkaXYoKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gMC41IC8gMiA9PSAwLjI1OworICAgICAgICB9CiAgICAgYDsK
IAogICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAgImZv
byIsIFtdKSwgdHJ1ZSk7CkBAIC00NCw2ICs0OCw3IEBAIHdobHNsVGVzdHMuZmxvYXRNYXRoID0g
YXN5bmMgKCkgPT4gewogICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbXSksIDcuNSk7CiAgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
RmxvYXRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbXSksIDcpOwogICAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCA3LjUpOwor
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZGl2Iiwg
W10pLCB0cnVlKTsKIAogICAgIGF3YWl0IGNoZWNrRmFpbCgKICAgICAgICAgYApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRmYTQ0YWJmNzhkLi5hN2U0ZWYxZDhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBA
CisyMDE5LTA3LTE3ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dITFNMXSBUaGUgbGV4ZXIgc2hvdWxkIG5vdCBjaG9rZSBvbiBhIHNpbmdsZSAnLycK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTg4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBidWcg
aXMgdHJpdmlhbDoganVzdCByZWNvZ25pemUgdGhhdCBhIHNpbmdsZSAnLycgd2l0aG91dCBhICcq
JyBvciAnLycgYWZ0ZXJ3YXJkcyBpcyBub3QgdGhlIGJlZ2lubmluZyBvZiBhIGNvbW1lbnQuCisK
KyAgICAgICAgV2hpbGUgaW52ZXN0aWdhdGluZyB0aGlzIGJ1ZywgSSBhbHNvIGZvdW5kIHRoYXQg
cGFydCBvZiB0aGUgcGFyc2VyIGZhaWxzIHRvIHByb3Blcmx5IHByb3BhZ2F0ZSBlcnJvcnMsIHNv
IEkgZml4ZWQgaXQuCisKKyAgICAgICAgTmV3IHRlc3QgaW4gTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsL2Zsb2F0LW1hdGguaHRtbAorICAgICAgICBJIGFsc28gYWRkZWQgYSBuZXcgZmxhZyB0byBX
SExTTFByZXBhcmUuY3BwLiBJdCBjYW4gYmUgdXNlZCB0byBwYXJzZSB0aGUgZnVsbCBzdGFuZGFy
ZCBsaWJyYXJ5ICh0aGlzIGlzIGhvdyBJIGZvdW5kIHRoaXMgYnVnIGluIHRoZSBmaXJzdCBwbGFj
ZSkuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpMZXhlcjo6c2tpcFdoaXRlc3BhY2VBbmRDb21tZW50cyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OlBhcnNlcjo6cGFyc2VQb3NzaWJsZVRlcm5hcnlDb25kaXRpb25h
bCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpwcmVwYXJlU2hhcmVkKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6aW5jbHVkZVN0YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuaDoKKwogMjAx
OS0wNy0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lk
IHVubmVjZXNzYXJ5IGNvcHkgb2YgbW9uaXRvcnMgdW5kZXIgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAppbmRleCBiNTlkMTZkZWUwZS4uMmE5NmZl
ODVmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dI
TFNMTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dI
TFNMTGV4ZXIuY3BwCkBAIC01NjIsNyArNTYyLDggQEAgdm9pZCBMZXhlcjo6c2tpcFdoaXRlc3Bh
Y2VBbmRDb21tZW50cygpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML1dITFNMUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUGFyc2VyLmNwcAppbmRleCAyMGNiOTM5MTA0YS4uOWNmZmRlNzg4MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBh
cnNlci5jcHAKQEAgLTE2MjQsMTAgKzE2MjQsMjQgQEAgYXV0byBQYXJzZXI6OnBhcnNlUG9zc2li
bGVUZXJuYXJ5Q29uZGl0aW9uYWwoKSAtPiBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXMK
ICAgICB9CiAKICAgICBleHByZXNzaW9uID0gY29tcGxldGVQb3NzaWJsZVNoaWZ0KFdURk1vdmUo
KmV4cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4
cGVjdGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNv
bXBsZXRlUG9zc2libGVNdWx0aXBseShXVEZNb3ZlKCpleHByZXNzaW9uKSk7CisgICAgaWYgKCFl
eHByZXNzaW9uKQorICAgICAgICByZXR1cm4gVW5leHBlY3RlZDxFcnJvcj4oZXhwcmVzc2lvbi5l
cnJvcigpKTsKKwogICAgIGV4cHJlc3Npb24gPSBjb21wbGV0ZVBvc3NpYmxlQWRkKFdURk1vdmUo
KmV4cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4
cGVjdGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNv
bXBsZXRlUG9zc2libGVSZWxhdGlvbmFsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Np
b24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVy
cm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBsZXRlUG9z
c2libGVMb2dpY2FsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Npb24pKTsKKyAgICBp
ZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVycm9yPihleHByZXNz
aW9uLmVycm9yKCkpOwogCiAgICAgUEVFSyhuZXh0VG9rZW4pOwogICAgIGlmIChuZXh0VG9rZW4t
PnR5cGUgPT0gVG9rZW46OlR5cGU6OlF1ZXN0aW9uTWFyaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCmluZGV4IDUxNGVjMzU1
OTQ5Li4zYTViYjAxNjQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCkBAIC02NCw2ICs2NCw4IEBAIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBkdW1wQVNUQXRFbmQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBh
bHdheXNEdW1wUGFzc0ZhaWx1cmVzID0gZmFsc2U7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgZHVt
cFBhc3NGYWlsdXJlID0gZHVtcEFTVEJlZm9yZUVhY2hQYXNzIHx8IGR1bXBBU1RBZnRlclBhcnNp
bmcgfHwgZHVtcEFTVEF0RW5kIHx8IGFsd2F5c0R1bXBQYXNzRmFpbHVyZXM7CiAKK3N0YXRpYyBj
b25zdGV4cHIgYm9vbCBwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkgPSBmYWxzZTsKKwogc3RhdGlj
IGJvb2wgZHVtcEFTVElmTmVlZGVkKGJvb2wgc2hvdWxkRHVtcCwgUHJvZ3JhbSYgcHJvZ3JhbSwg
Y29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAoc2hvdWxkRHVtcCkgewpAQCAtMTE1LDcg
KzExNywxMSBAQCBzdGF0aWMgT3B0aW9uYWw8UHJvZ3JhbT4gcHJlcGFyZVNoYXJlZChTdHJpbmcm
IHdobHNsU291cmNlKQogICAgICAgICAgICAgZGF0YUxvZ0xuKCJmYWlsZWQgdG8gcGFyc2UgdGhl
IHByb2dyYW06ICIsICpwYXJzZUZhaWx1cmUpOwogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogICAgIH0KLSAgICBpbmNsdWRlU3RhbmRhcmRMaWJyYXJ5KHByb2dyYW0sIHBhcnNlcik7Cisg
ICAgaWYgKGF1dG8gcGFyc2VGYWlsdXJlID0gaW5jbHVkZVN0YW5kYXJkTGlicmFyeShwcm9ncmFt
LCBwYXJzZXIsIHBhcnNlRnVsbFN0YW5kYXJkTGlicmFyeSkpIHsKKyAgICAgICAgaWYgKGR1bXBQ
YXNzRmFpbHVyZSkKKyAgICAgICAgICAgIGRhdGFMb2dMbigiZmFpbGVkIHRvIHBhcnNlIHRoZSBz
dGFuZGFyZCBsaWJyYXJ5OiAiLCAqcGFyc2VGYWlsdXJlKTsKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICB9CiAKICAgICBpZiAoIWR1bXBBU1RCZXR3ZWVuRWFjaFBhc3NJZk5lZWRl
ZChwcm9ncmFtLCAiQVNUIGFmdGVyIHBhcnNpbmciKSkKICAgICAgICAgZHVtcEFTVEFmdGVyUGFy
c2luZ0lmTmVlZGVkKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRp
ZXMuY3BwCmluZGV4IDkzY2IzZDEwNzk0Li5jY2VkYTljMmVjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3Rh
bmRhcmRMaWJyYXJ5VXRpbGl0aWVzLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShX
RUJHUFUpCiAKICNpbmNsdWRlICJXSExTTENhbGxFeHByZXNzaW9uLmgiCi0jaW5jbHVkZSAiV0hM
U0xQYXJzZXIuaCIKICNpbmNsdWRlICJXSExTTFN0YW5kYXJkTGlicmFyeS5oIgogI2luY2x1ZGUg
IldITFNMU3RhbmRhcmRMaWJyYXJ5RnVuY3Rpb25NYXAuaCIKICNpbmNsdWRlICJXSExTTFZpc2l0
b3IuaCIKQEAgLTc0LDkgKzczLDE1IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
ZnVuY3Rpb25OYW1lczsKIH07CiAKLXZvaWQgaW5jbHVkZVN0YW5kYXJkTGlicmFyeShQcm9ncmFt
JiBwcm9ncmFtLCBQYXJzZXImIHBhcnNlcikKK09wdGlvbmFsPFBhcnNlcjo6RXJyb3I+IGluY2x1
ZGVTdGFuZGFyZExpYnJhcnkoUHJvZ3JhbSYgcHJvZ3JhbSwgUGFyc2VyJiBwYXJzZXIsIGJvb2wg
cGFyc2VGdWxsU3RhbmRhcmRMaWJyYXJ5KQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHN0YW5kYXJkTGlicmFyeShkZWNvbXByZXNzQW5kRGVjb2RlU3RhbmRhcmRMaWJyYXJ5
KCkpOworICAgIGlmIChwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkpIHsKKyAgICAgICAgaWYgKGF1
dG8gcGFyc2VGYWlsdXJlID0gcGFyc2VyLnBhcnNlKHByb2dyYW0sIHN0YW5kYXJkTGlicmFyeS5n
ZXQoKSwgUGFyc2VyOjpNb2RlOjpTdGFuZGFyZExpYnJhcnkpKQorICAgICAgICAgICAgcmV0dXJu
IHBhcnNlRmFpbHVyZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CisKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFN1YnN0cmluZ0xvY2F0aW9u
Pj4gc3RhbmRhcmRMaWJyYXJ5RnVuY3Rpb25NYXAoY29tcHV0ZVN0YW5kYXJkTGlicmFyeUZ1bmN0
aW9uTWFwKCkpOwogCiAgICAgYXV0byBzdHJpbmdWaWV3ID0gU3RyaW5nVmlldyhzdGFuZGFyZExp
YnJhcnkuZ2V0KCkpLnN1YnN0cmluZygwLCBmaXJzdEZ1bmN0aW9uT2Zmc2V0SW5TdGFuZGFyZExp
YnJhcnkoKSk7CkBAIC0xMDAsOCArMTA1LDggQEAgdm9pZCBpbmNsdWRlU3RhbmRhcmRMaWJyYXJ5
KFByb2dyYW0mIHByb2dyYW0sIFBhcnNlciYgcGFyc2VyKQogICAgICAgICAgICAgaWYgKGl0ZXJh
dG9yID09IHN0YW5kYXJkTGlicmFyeUZ1bmN0aW9uTWFwLmdldCgpLmVuZCgpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byBzdHJpbmdWaWV3ID0gU3RyaW5nVmll
dyhzdGFuZGFyZExpYnJhcnkuZ2V0KCkpLnN1YnN0cmluZyhpdGVyYXRvci0+dmFsdWUuc3RhcnQs
IGl0ZXJhdG9yLT52YWx1ZS5lbmQgLSBpdGVyYXRvci0+dmFsdWUuc3RhcnQpOwotICAgICAgICAg
ICAgYXV0byBwYXJzZUZhaWx1cmUgPSBwYXJzZXIucGFyc2UocHJvZ3JhbSwgc3RyaW5nVmlldywg
UGFyc2VyOjpNb2RlOjpTdGFuZGFyZExpYnJhcnkpOwotICAgICAgICAgICAgQVNTRVJUX1VOVVNF
RChwYXJzZUZhaWx1cmUsICFwYXJzZUZhaWx1cmUpOworICAgICAgICAgICAgaWYgKGF1dG8gcGFy
c2VGYWlsdXJlID0gcGFyc2VyLnBhcnNlKHByb2dyYW0sIHN0cmluZ1ZpZXcsIFBhcnNlcjo6TW9k
ZTo6U3RhbmRhcmRMaWJyYXJ5KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VGYWlsdXJl
OwogICAgICAgICAgICAgYWxsRnVuY3Rpb25OYW1lcy5hZGQobmFtZSk7CiAgICAgICAgIH0KICAg
ICAgICAgZm9yICggOyBuYXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9uc0NvdW50IDwgcHJvZ3JhbS5u
YXRpdmVGdW5jdGlvbkRlY2xhcmF0aW9ucygpLnNpemUoKTsgKytuYXRpdmVGdW5jdGlvbkRlY2xh
cmF0aW9uc0NvdW50KQpAQCAtMTEwLDYgKzExNSw3IEBAIHZvaWQgaW5jbHVkZVN0YW5kYXJkTGli
cmFyeShQcm9ncmFtJiBwcm9ncmFtLCBQYXJzZXImIHBhcnNlcikKICAgICAgICAgICAgIG5hbWVG
aW5kZXIuVmlzaXRvcjo6dmlzaXQocHJvZ3JhbS5mdW5jdGlvbkRlZmluaXRpb25zKClbZnVuY3Rp
b25EZWZpbml0aW9uc0NvdW50XSk7CiAgICAgICAgIGZ1bmN0aW9uTmFtZXMgPSBuYW1lRmluZGVy
LnRha2VGdW5jdGlvbk5hbWVzKCk7CiAgICAgfQorICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdITFNMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRp
ZXMuaAppbmRleCA2M2YxNmM1NDgxZC4uNWYxM2MwNThkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3RhbmRhcmRMaWJyYXJ5VXRpbGl0aWVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFy
ZExpYnJhcnlVdGlsaXRpZXMuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgRU5BQkxFKFdFQkdQ
VSkKIAorI2luY2x1ZGUgIldITFNMUGFyc2VyLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM0LDkgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFdITFNMIHsK
IAogY2xhc3MgUGFyc2VyOwotY2xhc3MgUHJvZ3JhbTsKIAotdm9pZCBpbmNsdWRlU3RhbmRhcmRM
aWJyYXJ5KFByb2dyYW0mLCBQYXJzZXImKTsKK09wdGlvbmFsPFBhcnNlcjo6RXJyb3I+IGluY2x1
ZGVTdGFuZGFyZExpYnJhcnkoUHJvZ3JhbSYsIFBhcnNlciYsIGJvb2wgcGFyc2VGdWxsU3RhbmRh
cmRMaWJyYXJ5KTsKIAogfQogCg==
</data>
<flag name="review"
          id="390150"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
    <flag name="commit-queue"
          id="390151"
          type_id="3"
          status="-"
          setter="mmaxfield"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374361</attachid>
            <date>2019-07-17 18:17:10 -0700</date>
            <delta_ts>2019-07-17 19:30:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch199886</filename>
            <type>text/plain</type>
            <size>8769</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkODIzMmI0Yzk5ZC4uNGRkZjY0OTg5NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wNy0xNyAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXSExTTF0gVGhlIGxleGVyIHNob3VsZCBub3QgY2hva2Ugb24gYSBzaW5nbGUgJy8nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk4ODYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBNYXhmaWVsZC4KKworICAgICAgICBBZGRlZCBhIG5l
dyBiYXNpYyB0ZXN0IG9mIGRpdmlzaW9uLgorCisgICAgICAgICogd2ViZ3B1L3dobHNsL2Zsb2F0
LW1hdGguaHRtbDoKKwogMjAxOS0wNy0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBhIHJ1bnRpbWUtZGlzYWJsZWQgZGlhbG9nIGVs
ZW1lbnQgc2tlbGV0b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9mbG9h
dC1tYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvZmxvYXQtbWF0aC5odG1sCmlu
ZGV4IGY5ODA5N2NjMjJiLi5iMDcxN2YwMDQzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsL2Zsb2F0LW1hdGguaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wv
ZmxvYXQtbWF0aC5odG1sCkBAIC0zNyw2ICszNywxMCBAQCB3aGxzbFRlc3RzLmZsb2F0TWF0aCA9
IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgIGZsb2F0IHggPSA3LjU7CiAgICAgICAgICAgICBy
ZXR1cm4gZmxvYXQoeCk7CiAgICAgICAgIH0KKyAgICAgICAgYm9vbCBkaXYoKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gMC41IC8gMiA9PSAwLjI1OworICAgICAgICB9CiAgICAgYDsK
IAogICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAgImZv
byIsIFtdKSwgdHJ1ZSk7CkBAIC00NCw2ICs0OCw3IEBAIHdobHNsVGVzdHMuZmxvYXRNYXRoID0g
YXN5bmMgKCkgPT4gewogICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbXSksIDcuNSk7CiAgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
RmxvYXRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbXSksIDcpOwogICAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCA3LjUpOwor
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZGl2Iiwg
W10pLCB0cnVlKTsKIAogICAgIGF3YWl0IGNoZWNrRmFpbCgKICAgICAgICAgYApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGRmYTQ0YWJmNzhkLi4yYjY1OTkzNGY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBA
CisyMDE5LTA3LTE3ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dITFNMXSBUaGUgbGV4ZXIgc2hvdWxkIG5vdCBjaG9rZSBvbiBhIHNpbmdsZSAnLycK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTg4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIE1heGZpZWxkLgorCisgICAgICAgIFRoZSBidWcg
aXMgdHJpdmlhbDoganVzdCByZWNvZ25pemUgdGhhdCBhIHNpbmdsZSAnLycgd2l0aG91dCBhICcq
JyBvciAnLycgYWZ0ZXJ3YXJkcyBpcyBub3QgdGhlIGJlZ2lubmluZyBvZiBhIGNvbW1lbnQuCisK
KyAgICAgICAgV2hpbGUgaW52ZXN0aWdhdGluZyB0aGlzIGJ1ZywgSSBhbHNvIGZvdW5kIHRoYXQg
cGFydCBvZiB0aGUgcGFyc2VyIGZhaWxzIHRvIHByb3Blcmx5IHByb3BhZ2F0ZSBlcnJvcnMsIHNv
IEkgZml4ZWQgaXQuCisKKyAgICAgICAgTmV3IHRlc3QgaW4gTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsL2Zsb2F0LW1hdGguaHRtbAorICAgICAgICBJIGFsc28gYWRkZWQgYSBuZXcgZmxhZyB0byBX
SExTTFByZXBhcmUuY3BwLiBJdCBjYW4gYmUgdXNlZCB0byBwYXJzZSB0aGUgZnVsbCBzdGFuZGFy
ZCBsaWJyYXJ5ICh0aGlzIGlzIGhvdyBJIGZvdW5kIHRoaXMgYnVnIGluIHRoZSBmaXJzdCBwbGFj
ZSkuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpMZXhlcjo6c2tpcFdoaXRlc3BhY2VBbmRDb21tZW50cyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V0hMU0w6OlBhcnNlcjo6cGFyc2VQb3NzaWJsZVRlcm5hcnlDb25kaXRpb25h
bCk6CisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldITFNMOjpwcmVwYXJlU2hhcmVkKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXSExTTDo6aW5jbHVkZVN0YW5kYXJkTGlicmFyeSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuaDoKKwogMjAx
OS0wNy0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lk
IHVubmVjZXNzYXJ5IGNvcHkgb2YgbW9uaXRvcnMgdW5kZXIgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6ZGlzcGxheVdhc1VwZGF0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xMZXhlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmdwdS9XSExTTC9XSExTTExleGVyLmNwcAppbmRleCBiNTlkMTZkZWUwZS4uMmE5NmZl
ODVmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dI
TFNMTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dI
TFNMTGV4ZXIuY3BwCkBAIC01NjIsNyArNTYyLDggQEAgdm9pZCBMZXhlcjo6c2tpcFdoaXRlc3Bh
Y2VBbmRDb21tZW50cygpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZ3B1L1dITFNML1dITFNMUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
Z3B1L1dITFNML1dITFNMUGFyc2VyLmNwcAppbmRleCAyMGNiOTM5MTA0YS4uOWNmZmRlNzg4MzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFBh
cnNlci5jcHAKQEAgLTE2MjQsMTAgKzE2MjQsMjQgQEAgYXV0byBQYXJzZXI6OnBhcnNlUG9zc2li
bGVUZXJuYXJ5Q29uZGl0aW9uYWwoKSAtPiBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXMK
ICAgICB9CiAKICAgICBleHByZXNzaW9uID0gY29tcGxldGVQb3NzaWJsZVNoaWZ0KFdURk1vdmUo
KmV4cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4
cGVjdGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNv
bXBsZXRlUG9zc2libGVNdWx0aXBseShXVEZNb3ZlKCpleHByZXNzaW9uKSk7CisgICAgaWYgKCFl
eHByZXNzaW9uKQorICAgICAgICByZXR1cm4gVW5leHBlY3RlZDxFcnJvcj4oZXhwcmVzc2lvbi5l
cnJvcigpKTsKKwogICAgIGV4cHJlc3Npb24gPSBjb21wbGV0ZVBvc3NpYmxlQWRkKFdURk1vdmUo
KmV4cHJlc3Npb24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4
cGVjdGVkPEVycm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNv
bXBsZXRlUG9zc2libGVSZWxhdGlvbmFsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Np
b24pKTsKKyAgICBpZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVy
cm9yPihleHByZXNzaW9uLmVycm9yKCkpOworCiAgICAgZXhwcmVzc2lvbiA9IGNvbXBsZXRlUG9z
c2libGVMb2dpY2FsQmluYXJ5T3BlcmF0aW9uKFdURk1vdmUoKmV4cHJlc3Npb24pKTsKKyAgICBp
ZiAoIWV4cHJlc3Npb24pCisgICAgICAgIHJldHVybiBVbmV4cGVjdGVkPEVycm9yPihleHByZXNz
aW9uLmVycm9yKCkpOwogCiAgICAgUEVFSyhuZXh0VG9rZW4pOwogICAgIGlmIChuZXh0VG9rZW4t
PnR5cGUgPT0gVG9rZW46OlR5cGU6OlF1ZXN0aW9uTWFyaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMUHJlcGFyZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCmluZGV4IDUxNGVjMzU1
OTQ5Li42ZTdmZDc1NDNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvV0hMU0xQcmVwYXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTFByZXBhcmUuY3BwCkBAIC02NCw2ICs2NCw4IEBAIHN0YXRpYyBjb25z
dGV4cHIgYm9vbCBkdW1wQVNUQXRFbmQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBh
bHdheXNEdW1wUGFzc0ZhaWx1cmVzID0gZmFsc2U7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgZHVt
cFBhc3NGYWlsdXJlID0gZHVtcEFTVEJlZm9yZUVhY2hQYXNzIHx8IGR1bXBBU1RBZnRlclBhcnNp
bmcgfHwgZHVtcEFTVEF0RW5kIHx8IGFsd2F5c0R1bXBQYXNzRmFpbHVyZXM7CiAKK3N0YXRpYyBj
b25zdGV4cHIgYm9vbCBwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkgPSBmYWxzZTsKKwogc3RhdGlj
IGJvb2wgZHVtcEFTVElmTmVlZGVkKGJvb2wgc2hvdWxkRHVtcCwgUHJvZ3JhbSYgcHJvZ3JhbSwg
Y29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAoc2hvdWxkRHVtcCkgewpAQCAtMTE1LDcg
KzExNyw3IEBAIHN0YXRpYyBPcHRpb25hbDxQcm9ncmFtPiBwcmVwYXJlU2hhcmVkKFN0cmluZyYg
d2hsc2xTb3VyY2UpCiAgICAgICAgICAgICBkYXRhTG9nTG4oImZhaWxlZCB0byBwYXJzZSB0aGUg
cHJvZ3JhbTogIiwgKnBhcnNlRmFpbHVyZSk7CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiAgICAgfQotICAgIGluY2x1ZGVTdGFuZGFyZExpYnJhcnkocHJvZ3JhbSwgcGFyc2VyKTsKKyAg
ICBpbmNsdWRlU3RhbmRhcmRMaWJyYXJ5KHByb2dyYW0sIHBhcnNlciwgcGFyc2VGdWxsU3RhbmRh
cmRMaWJyYXJ5KTsKIAogICAgIGlmICghZHVtcEFTVEJldHdlZW5FYWNoUGFzc0lmTmVlZGVkKHBy
b2dyYW0sICJBU1QgYWZ0ZXIgcGFyc2luZyIpKQogICAgICAgICBkdW1wQVNUQWZ0ZXJQYXJzaW5n
SWZOZWVkZWQocHJvZ3JhbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5j
cHAKaW5kZXggOTNjYjNkMTA3OTQuLjA0ODFiNThjMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFy
ZExpYnJhcnlVdGlsaXRpZXMuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV0hMU0xT
dGFuZGFyZExpYnJhcnkuaCIKICNpbmNsdWRlICJXSExTTFN0YW5kYXJkTGlicmFyeUZ1bmN0aW9u
TWFwLmgiCiAjaW5jbHVkZSAiV0hMU0xWaXNpdG9yLmgiCisjaW5jbHVkZSA8d3RmL0RhdGFMb2cu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogI2luY2x1ZGUgPHBhbC9HdW56aXAuaD4KQEAgLTc0LDkgKzc1LDE3IEBAIHByaXZhdGU6
CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fZnVuY3Rpb25OYW1lczsKIH07CiAKLXZvaWQgaW5jbHVk
ZVN0YW5kYXJkTGlicmFyeShQcm9ncmFtJiBwcm9ncmFtLCBQYXJzZXImIHBhcnNlcikKK3ZvaWQg
aW5jbHVkZVN0YW5kYXJkTGlicmFyeShQcm9ncmFtJiBwcm9ncmFtLCBQYXJzZXImIHBhcnNlciwg
Ym9vbCBwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gc3RhbmRhcmRMaWJyYXJ5KGRlY29tcHJlc3NBbmREZWNvZGVTdGFuZGFyZExp
YnJhcnkoKSk7CisgICAgaWYgKHBhcnNlRnVsbFN0YW5kYXJkTGlicmFyeSkgeworICAgICAgICBp
ZiAoYXV0byBwYXJzZUZhaWx1cmUgPSBwYXJzZXIucGFyc2UocHJvZ3JhbSwgc3RhbmRhcmRMaWJy
YXJ5LmdldCgpLCBQYXJzZXI6Ok1vZGU6OlN0YW5kYXJkTGlicmFyeSkpIHsKKyAgICAgICAgICAg
IGRhdGFMb2dMbigiZmFpbGVkIHRvIHBhcnNlIHRoZSAoZnVsbCkgc3RhbmRhcmQgbGlicmFyeTog
IiwgKnBhcnNlRmFpbHVyZSk7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hNYXA8U3RyaW5nLCBTdWJzdHJpbmdMb2NhdGlvbj4+IHN0YW5kYXJkTGlicmFyeUZ1
bmN0aW9uTWFwKGNvbXB1dGVTdGFuZGFyZExpYnJhcnlGdW5jdGlvbk1hcCgpKTsKIAogICAgIGF1
dG8gc3RyaW5nVmlldyA9IFN0cmluZ1ZpZXcoc3RhbmRhcmRMaWJyYXJ5LmdldCgpKS5zdWJzdHJp
bmcoMCwgZmlyc3RGdW5jdGlvbk9mZnNldEluU3RhbmRhcmRMaWJyYXJ5KCkpOwpAQCAtMTAwLDgg
KzEwOSwxMSBAQCB2b2lkIGluY2x1ZGVTdGFuZGFyZExpYnJhcnkoUHJvZ3JhbSYgcHJvZ3JhbSwg
UGFyc2VyJiBwYXJzZXIpCiAgICAgICAgICAgICBpZiAoaXRlcmF0b3IgPT0gc3RhbmRhcmRMaWJy
YXJ5RnVuY3Rpb25NYXAuZ2V0KCkuZW5kKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBhdXRvIHN0cmluZ1ZpZXcgPSBTdHJpbmdWaWV3KHN0YW5kYXJkTGlicmFyeS5n
ZXQoKSkuc3Vic3RyaW5nKGl0ZXJhdG9yLT52YWx1ZS5zdGFydCwgaXRlcmF0b3ItPnZhbHVlLmVu
ZCAtIGl0ZXJhdG9yLT52YWx1ZS5zdGFydCk7Ci0gICAgICAgICAgICBhdXRvIHBhcnNlRmFpbHVy
ZSA9IHBhcnNlci5wYXJzZShwcm9ncmFtLCBzdHJpbmdWaWV3LCBQYXJzZXI6Ok1vZGU6OlN0YW5k
YXJkTGlicmFyeSk7Ci0gICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHBhcnNlRmFpbHVyZSwgIXBh
cnNlRmFpbHVyZSk7CisgICAgICAgICAgICBpZiAoYXV0byBwYXJzZUZhaWx1cmUgPSBwYXJzZXIu
cGFyc2UocHJvZ3JhbSwgc3RyaW5nVmlldywgUGFyc2VyOjpNb2RlOjpTdGFuZGFyZExpYnJhcnkp
KSB7CisgICAgICAgICAgICAgICAgZGF0YUxvZ0xuKCJmYWlsZWQgdG8gcGFyc2UgdGhlIChwYXJ0
aWFsKSBzdGFuZGFyZCBsaWJyYXJ5OiAiLCAqcGFyc2VGYWlsdXJlKTsKKyAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBhbGxGdW5jdGlvbk5hbWVzLmFkZChuYW1lKTsKICAgICAgICAg
fQogICAgICAgICBmb3IgKCA7IG5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb25zQ291bnQgPCBwcm9n
cmFtLm5hdGl2ZUZ1bmN0aW9uRGVjbGFyYXRpb25zKCkuc2l6ZSgpOyArK25hdGl2ZUZ1bmN0aW9u
RGVjbGFyYXRpb25zQ291bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9XSExTTFN0YW5kYXJkTGlicmFyeVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJhcnlVdGlsaXRpZXMuaApp
bmRleCA2M2YxNmM1NDgxZC4uY2FmNmE0MWUyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU3RhbmRhcmRMaWJyYXJ5VXRpbGl0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hMU0xTdGFuZGFyZExpYnJh
cnlVdGlsaXRpZXMuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV0hMU0wgewogY2xhc3Mg
UGFyc2VyOwogY2xhc3MgUHJvZ3JhbTsKIAotdm9pZCBpbmNsdWRlU3RhbmRhcmRMaWJyYXJ5KFBy
b2dyYW0mLCBQYXJzZXImKTsKK3ZvaWQgaW5jbHVkZVN0YW5kYXJkTGlicmFyeShQcm9ncmFtJiwg
UGFyc2VyJiwgYm9vbCBwYXJzZUZ1bGxTdGFuZGFyZExpYnJhcnkpOwogCiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>