<?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>202041</bug_id>
          
          <creation_ts>2019-09-20 02:30:10 -0700</creation_ts>
          <short_desc>[YARR] Properly handle surrogates when matching back references</short_desc>
          <delta_ts>2019-10-01 11:24:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202042</blocked>
    
    <blocked>202310</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Paulo Matos">pmatos</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572706</commentid>
    <comment_count>0</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-20 02:30:10 -0700</bug_when>
    <thetext>Since the fix for https://bugs.webkit.org/show_bug.cgi?id=201647 (whose report I don&apos;t have permissions to read), that we noticed the test stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js (added with the mentioned fix) started failing on 32bits ARM.

Turns out this is because we don&apos;t have YARR JIT enabled and it&apos;s not specific to 32bits. If I disable YARR JIT on 64bits, I can reproduce the same failure in other archs.

$ WebKitBuild/Debug/bin/jsc --useRegExpJIT=0 JSTests/stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js
null
Exception: Expected /([^x]+)[^]*\1([^])/u to match &quot;�𐀀&quot; but it didn&apos;t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572707</commentid>
    <comment_count>1</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-20 02:31:22 -0700</bug_when>
    <thetext>Adding to CC msaboff and ysuzuki who were involved with https://bugs.webkit.org/show_bug.cgi?id=201647</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572723</commentid>
    <comment_count>2</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-20 05:22:37 -0700</bug_when>
    <thetext>Related patch to add failed run to set of tests: https://bugs.webkit.org/show_bug.cgi?id=202042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573282</commentid>
    <comment_count>3</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-23 06:32:52 -0700</bug_when>
    <thetext>I am investigating this at the moment.
It seems interpretation of backreferences are broken:
&gt;&gt;&gt; /([^x]+)\1/u.exec(&quot;\ud800\ud800\udc00&quot;)
null

when starting jsc with $ WebKitBuild/Debug/bin/jsc --useRegExpJIT=0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573609</commentid>
    <comment_count>4</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-24 01:50:53 -0700</bug_when>
    <thetext>The current understanding is slightly different than the initial one.

The RegExp JIT is broken, not the interpreter. All other engines seem to agree that:
/([^x]+)[^]*\1([^])/u.exec(&quot;\ud800\ud800\udc00&quot;)

should _not_ match.

There are three surrogates, one unpaired (the first \ud800) and two paired with each other (\ud800\udc00). The [^x]+ should match and capture the unpaired surrogate \ud800 and the backreference should not possibly capture part of the paired surrogate with \1. This should therefore fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574045</commentid>
    <comment_count>5</comment_count>
      <attachid>379547</attachid>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-25 07:35:55 -0700</bug_when>
    <thetext>Created attachment 379547
WIP - Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574084</commentid>
    <comment_count>6</comment_count>
      <attachid>379547</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-09-25 09:48:12 -0700</bug_when>
    <thetext>Comment on attachment 379547
WIP - Patch

Attachment 379547 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/13067037

New failing tests:
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout-dfg-eager-no-cjit
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout-no-ftl
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout-ftl-no-cjit
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout-ftl-eager-no-cjit
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout-ftl-eager-no-cjit
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout-no-ftl
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout-no-llint
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout-no-cjit
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout-dfg-eager-no-cjit
jsc-layout-tests.yaml/fast/regex/script-tests/backreferences.js.layout-ftl-no-cjit
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout-no-cjit
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout
jsc-layout-tests.yaml/js/script-tests/regexp-unicode.js.layout-no-llint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574273</commentid>
    <comment_count>7</comment_count>
      <attachid>379547</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-25 16:30:10 -0700</bug_when>
    <thetext>Comment on attachment 379547
WIP - Patch

r-
This patch is mostly right.  It needs 2 changes.
1) We need to properly increment the patternIndex and index when matching non-BMP characters.
2) There is a register clobbering issue on X86_64 since tryReadUnicodeCharImpl() uses r10 as a temp and patternChar is also r10.

Posting a patch shortly that builds on this patch and addresses these two issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574299</commentid>
    <comment_count>8</comment_count>
      <attachid>379595</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-25 17:24:16 -0700</bug_when>
    <thetext>Created attachment 379595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574302</commentid>
    <comment_count>9</comment_count>
      <attachid>379597</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-09-25 17:33:03 -0700</bug_when>
    <thetext>Created attachment 379597
Updated ChangeLogs citing Paulo Matos &lt;pmatos@igalia.com&gt; original contribution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1574453</commentid>
    <comment_count>10</comment_count>
    <who name="Paulo Matos">pmatos</who>
    <bug_when>2019-09-26 08:19:37 -0700</bug_when>
    <thetext>Thanks Michael, I was still looking at this issue and just noticed you fixed it.

I had a little testsuite with the most relevant tests to run:
let match1 = /([^x])\1./u.exec(&apos;\ud800\ud800\udc00&apos;);

if (match1) {
    print(&apos;error 1&apos;);
}

let match2 = /(\u{10123})x\1/u.exec(&apos;\u{10123}x\u{10123}&apos;);

if (!match2 || match2[1] !== &apos;\u{10123}&apos;) {
    print(&apos;error 2&apos;);
}

let match3 = /(\ud800\udd23)x\1/u.exec(&apos;\u{10123}x\u{10123}&apos;);

if (!match3 || match3[1] !== &apos;\u{10123}&apos;) {
    print(&apos;error 3&apos;);
}

let match4 = /(\u{10123})x\ud800\udd23/u.exec(&apos;\u{10123}x\u{10123}&apos;);

if (!match4 || match4[1] !== &apos;\u{10123}&apos;) {
    print(&apos;error 4&apos;);
}

let match5 = /(\ud800)\udd23x\1/u.exec(&apos;\u{10123}x\u{10123}&apos;);

if (match5) {
    print(&apos;error 5&apos;);
}

let match6 = /([^x])\ud800./u.exec(&apos;\ud800\ud800\udc00&apos;);

if (match6) {
    print(&apos;error 6&apos;);
}

print(&apos;DONE&apos;);


All bots pass and the above tests pass too so I think it&apos;s fixed.
I didn&apos;t recognize the problems you mentioned and debugging this for the first time turned out to be a long exercise in C++ and x86_64 assembly reading. Once again, thanks for the help on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575599</commentid>
    <comment_count>11</comment_count>
      <attachid>379597</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-10-01 10:48:35 -0700</bug_when>
    <thetext>Comment on attachment 379597
Updated ChangeLogs citing Paulo Matos &lt;pmatos@igalia.com&gt; original contribution.

r=me. I&apos;ll take your word on some of the character encodings because I don&apos;t know them very well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575600</commentid>
    <comment_count>12</comment_count>
      <attachid>379597</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-10-01 10:49:27 -0700</bug_when>
    <thetext>Comment on attachment 379597
Updated ChangeLogs citing Paulo Matos &lt;pmatos@igalia.com&gt; original contribution.

Can you also add Paulos&apos; test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575601</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-10-01 11:01:43 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #12)
&gt; Comment on attachment 379597 [details]
&gt; Updated ChangeLogs citing Paulo Matos &lt;pmatos@igalia.com&gt; original
&gt; contribution.
&gt; 
&gt; Can you also add Paulos&apos; test?

His test is a collection of subtests that where failing with his patch.  They are already part of our existing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575610</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-10-01 11:23:56 -0700</bug_when>
    <thetext>Committed r250568: &lt;https://trac.webkit.org/changeset/250568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575611</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-01 11:24:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/55883253&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379547</attachid>
            <date>2019-09-25 07:35:55 -0700</date>
            <delta_ts>2019-09-25 17:24:16 -0700</delta_ts>
            <desc>WIP - Patch</desc>
            <filename>bug-202041-20190925163533.patch</filename>
            <type>text/plain</type>
            <size>4118</size>
            <attacher name="Paulo Matos">pmatos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YTE5MDQ5YmQzMDAxZWE5YTdmZjhlMGExYzIwMjRkMzdiOTMwNzhlLi44Yjc1MmE4MTg4MjdlMzQx
ZDYzMzcxNjU4NWFiMmQyMjhmNzg2MDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOS0wOS0yNSAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4K
KworICAgICAgICBEZWNvZGUgc3Vycm9nYXRlcyB3aGVuIGppdC1tYXRjaGluZyByZWdleHAgYmFj
a3JlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjA0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckdlbmVyYXRv
cjo6bWF0Y2hCYWNrcmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckdlbmVyYXRv
cjo6cmVhZENoYXJhY3RlckRvbnREZWNvZGVTdXJyb2dhdGVzKTogRGVsZXRlZC4KKwogMjAxOS0w
OS0yNSAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CiAKICAgICAgICAg
dGVzdGFwaTogc2xvdyBkZXZpY2VzIG5lZWQgbW9yZSB0aW1lIGJlZm9yZSB3YXRjaGRvZyBmaXJl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCAxYzQwNzg3NDFjOGU1
NTU1NzUzMjhlY2YwZTM1Njk2NmY5YWJhZjA3Li4xOTk4MDk4ODk4NTQzNDQ2MTY2NWM1NDMwMGIx
ZWQzMTdmMmUwMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAt
NTYwLDE2ICs1NjAsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZv
LCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgICAgIHRyeVJlYWRVbmljb2RlQ2hh
ckltcGwocmVzdWx0UmVnKTsKICAgICB9CiAjZW5kaWYKLQotICAgIHZvaWQgcmVhZENoYXJhY3Rl
ckRvbnREZWNvZGVTdXJyb2dhdGVzKENoZWNrZWQ8dW5zaWduZWQ+IG5lZ2F0aXZlQ2hhcmFjdGVy
T2Zmc2V0LCBSZWdpc3RlcklEIHJlc3VsdFJlZywgUmVnaXN0ZXJJRCBpbmRleFJlZyA9IGluZGV4
KQotICAgIHsKLSAgICAgICAgQmFzZUluZGV4IGFkZHJlc3MgPSBuZWdhdGl2ZU9mZnNldEluZGV4
ZWRBZGRyZXNzKG5lZ2F0aXZlQ2hhcmFjdGVyT2Zmc2V0LCByZXN1bHRSZWcsIGluZGV4UmVnKTsK
LSAgICAgICAgCi0gICAgICAgIGlmIChtX2NoYXJTaXplID09IENoYXI4KQotICAgICAgICAgICAg
bG9hZDgoYWRkcmVzcywgcmVzdWx0UmVnKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9h
ZDE2VW5hbGlnbmVkKGFkZHJlc3MsIHJlc3VsdFJlZyk7Ci0gICAgfQogICAgIAogICAgIHZvaWQg
cmVhZENoYXJhY3RlcihDaGVja2VkPHVuc2lnbmVkPiBuZWdhdGl2ZUNoYXJhY3Rlck9mZnNldCwg
UmVnaXN0ZXJJRCByZXN1bHRSZWcsIFJlZ2lzdGVySUQgaW5kZXhSZWcgPSBpbmRleCkKICAgICB7
CkBAIC0xMTQwLDggKzExMzAsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJK
SVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKIAogICAgICAgICBMYWJlbCBsb29wKHRo
aXMpOwogCi0gICAgICAgIHJlYWRDaGFyYWN0ZXJEb250RGVjb2RlU3Vycm9nYXRlcygwLCBwYXR0
ZXJuQ2hhcmFjdGVyLCBwYXR0ZXJuSW5kZXgpOwotICAgICAgICByZWFkQ2hhcmFjdGVyRG9udERl
Y29kZVN1cnJvZ2F0ZXMobV9jaGVja2VkT2Zmc2V0IC0gdGVybS0+aW5wdXRQb3NpdGlvbiwgY2hh
cmFjdGVyKTsKKyAgICAgICAgcmVhZENoYXJhY3RlcigwLCBwYXR0ZXJuQ2hhcmFjdGVyLCBwYXR0
ZXJuSW5kZXgpOworICAgICAgICByZWFkQ2hhcmFjdGVyKG1fY2hlY2tlZE9mZnNldCAtIHRlcm0t
PmlucHV0UG9zaXRpb24sIGNoYXJhY3Rlcik7CiAgICAgCiAgICAgICAgIGlmICghbV9wYXR0ZXJu
Lmlnbm9yZUNhc2UoKSkKICAgICAgICAgICAgIGNoYXJhY3Rlck1hdGNoRmFpbHMuYXBwZW5kKGJy
YW5jaDMyKE5vdEVxdWFsLCBjaGFyYWN0ZXIsIHBhdHRlcm5DaGFyYWN0ZXIpKTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDc2YzU1MDlj
ZmU0N2ZkNjEzMGU0ZTk5Y2IyNjE2MTFiOWQyYmI5Mi4uZGRhMGRjNzY0ZWMxZmNmMGYwZmNkOTBk
MDExZWE4MmNkMWQwNzRhOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOS0yNSAgUGF1bG8gTWF0b3Mg
IDxwbWF0b3NAaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggdGVzdCB0byBlbnN1cmUgcmVnZXhw
IGJhY2tyZWZlcmVuY2UgaXMgbm90IGppdC1tYXRjaGVkIHRvIHBhcnRpYWwgc3Vycm9nYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwNDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9y
ZWdleHAtdW5pY29kZS1zdXJyb2dhdGUtcGFpci1pbmNyZW1lbnQtc2hvdWxkLWludm9sdmUtbGVu
Z3RoLWNoZWNrLmpzOgorICAgICAgICAodGVzdFJlZ0V4cE5vdE1hdGNoKToKKwogMjAxOS0wOS0y
NCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgW0VT
Nl0gQ29tZSB1cCB3aXRoIGEgdGVzdCBmb3IgUHJveHkuW1tHZXRPd25Qcm9wZXJ0eV1dIHRoYXQg
dGVzdHMgdGhlIGlzRXh0ZW5zaWJsZSBlcnJvciB3aGVuIHRoZSAgcmVzdWx0IG9mIHRoZSB0cmFw
IGlzIHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXVuaWNvZGUt
c3Vycm9nYXRlLXBhaXItaW5jcmVtZW50LXNob3VsZC1pbnZvbHZlLWxlbmd0aC1jaGVjay5qcyBi
L0pTVGVzdHMvc3RyZXNzL3JlZ2V4cC11bmljb2RlLXN1cnJvZ2F0ZS1wYWlyLWluY3JlbWVudC1z
aG91bGQtaW52b2x2ZS1sZW5ndGgtY2hlY2suanMKaW5kZXggODIxZjJiMmE0N2EwZjFlOTczM2Rj
OTQ3OTY5M2IzMzRlNmQzNDNiYi4uYjU3ZTg0YzE2NTk0ODZhYjZjZWQzZGZhMzAyMzlhZGFhMTEw
MWM2ZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcmVnZXhwLXVuaWNvZGUtc3Vycm9nYXRl
LXBhaXItaW5jcmVtZW50LXNob3VsZC1pbnZvbHZlLWxlbmd0aC1jaGVjay5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy9yZWdleHAtdW5pY29kZS1zdXJyb2dhdGUtcGFpci1pbmNyZW1lbnQtc2hvdWxk
LWludm9sdmUtbGVuZ3RoLWNoZWNrLmpzCkBAIC0xMywxMCArMTMsMjEgQEAgZnVuY3Rpb24gdGVz
dFJlZ0V4cE1hdGNoKHJlLCBzdHIpCiAgICAgfQogfQogCitmdW5jdGlvbiB0ZXN0UmVnRXhwTm90
TWF0Y2gocmUsIHN0cikKK3sKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgKytpKSB7Cisg
ICAgICAgIGxldCBtYXRjaCA9IHJlLmV4ZWMoc3RyKTsKKyAgICAgICAgaWYgKG1hdGNoKSB7Cisg
ICAgICAgICAgICBwcmludChtYXRjaCk7CisgICAgICAgICAgICB0aHJvdyAiRXhwZWN0ZWQgIiAr
IHJlICsgIiB0byBtYXRjaCBcIiIgKyBzdHIgKyAiXCIgYnV0IGl0IGRpZG4ndCI7CisgICAgICAg
IH0KKyAgICB9Cit9CisKIGxldCB0ZXN0U3RyaW5nID0gIlx1ZDgwMFx1ZDgwMFx1ZGMwMCI7CiBs
ZXQgZ3JlZWR5UmVnRXhwID0gLyhbXnhdKylbXl0qXDEoW15dKS91OwogCi10ZXN0UmVnRXhwTWF0
Y2goZ3JlZWR5UmVnRXhwLCB0ZXN0U3RyaW5nKTsKK3Rlc3RSZWdFeHBOb3RNYXRjaChncmVlZHlS
ZWdFeHAsIHRlc3RTdHJpbmcpOwogCiBsZXQgbm9uR3JlZWR5UmVnRXhwID0gLyguKlteeF0rPylb
Xl0qKFteXSkvdTsKIAo=
</data>
<flag name="review"
          id="395316"
          type_id="1"
          status="-"
          setter="msaboff"
    />
    <flag name="commit-queue"
          id="395280"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379595</attachid>
            <date>2019-09-25 17:24:16 -0700</date>
            <delta_ts>2019-09-25 17:33:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>202041.patch</filename>
            <type>text/plain</type>
            <size>8854</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTAzNjgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE1IEBACisyMDE5LTA5LTI1ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBw
bGUuY29tPgorCisgICAgICAgIFtZQVJSXSBQcm9wZXJseSBoYW5kbGUgc3Vycm9nYXRlcyB3aGVu
IG1hdGNoaW5nIGJhY2sgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0LgorCisgICAgICAgICogc3RyZXNzL3JlZ2V4
cC11bmljb2RlLXN1cnJvZ2F0ZS1wYWlyLWluY3JlbWVudC1zaG91bGQtaW52b2x2ZS1sZW5ndGgt
Y2hlY2suanM6CisgICAgICAgICh0ZXN0UmVnRXhwTm90TWF0Y2gpOgorCiAyMDE5LTA5LTI0ICBB
bGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBbRVM2XSBD
b21lIHVwIHdpdGggYSB0ZXN0IGZvciBQcm94eS5bW0dldE93blByb3BlcnR5XV0gdGhhdCB0ZXN0
cyB0aGUgaXNFeHRlbnNpYmxlIGVycm9yIHdoZW4gdGhlICByZXN1bHQgb2YgdGhlIHRyYXAgaXMg
dW5kZWZpbmVkCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWdleHAtdW5pY29kZS1zdXJyb2dhdGUt
cGFpci1pbmNyZW1lbnQtc2hvdWxkLWludm9sdmUtbGVuZ3RoLWNoZWNrLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEpTVGVzdHMvc3RyZXNzL3JlZ2V4cC11bmljb2RlLXN1cnJvZ2F0ZS1wYWlyLWluY3JlbWVu
dC1zaG91bGQtaW52b2x2ZS1sZW5ndGgtY2hlY2suanMJKHJldmlzaW9uIDI1MDM1OCkKKysrIEpT
VGVzdHMvc3RyZXNzL3JlZ2V4cC11bmljb2RlLXN1cnJvZ2F0ZS1wYWlyLWluY3JlbWVudC1zaG91
bGQtaW52b2x2ZS1sZW5ndGgtY2hlY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTEzLDEwICsxMywy
MSBAQCBmdW5jdGlvbiB0ZXN0UmVnRXhwTWF0Y2gocmUsIHN0cikKICAgICB9CiB9CiAKK2Z1bmN0
aW9uIHRlc3RSZWdFeHBOb3RNYXRjaChyZSwgc3RyKQoreworICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMTAwOyArK2kpIHsKKyAgICAgICAgbGV0IG1hdGNoID0gcmUuZXhlYyhzdHIpOworICAgICAg
ICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgIHByaW50KG1hdGNoKTsKKyAgICAgICAgICAgIHRo
cm93ICJFeHBlY3RlZCAiICsgcmUgKyAiIHRvIG1hdGNoIFwiIiArIHN0ciArICJcIiBidXQgaXQg
ZGlkbid0IjsKKyAgICAgICAgfQorICAgIH0KK30KKwogbGV0IHRlc3RTdHJpbmcgPSAiXHVkODAw
XHVkODAwXHVkYzAwIjsKIGxldCBncmVlZHlSZWdFeHAgPSAvKFteeF0rKVteXSpcMShbXl0pL3U7
CiAKLXRlc3RSZWdFeHBNYXRjaChncmVlZHlSZWdFeHAsIHRlc3RTdHJpbmcpOwordGVzdFJlZ0V4
cE5vdE1hdGNoKGdyZWVkeVJlZ0V4cCwgdGVzdFN0cmluZyk7CiAKIGxldCBub25HcmVlZHlSZWdF
eHAgPSAvKC4qW154XSs/KVteXSooW15dKS91OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1MDM1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxOS0wOS0yNSAgTWljaGFlbCBTYWJv
ZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KKworICAgICAgICBbWUFSUl0gUHJvcGVybHkgaGFuZGxl
IHN1cnJvZ2F0ZXMgd2hlbiBtYXRjaGluZyBiYWNrIHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjA0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gaGFuZGxpbmcgYmFjayByZWZl
cmVuY2VzIGluIFVuaWNvZGUgcGF0dGVybnMsIHdlIGNhbid0IG1hdGNoIHVuLWRlY29kZWQgc3Vy
cm9nYXRlIGNoYXJhY3RlcnMsCisgICAgICAgIGluc3RlYWQgd2UgbmVlZCB0byByZWFkIGFuZCBw
cm9jZXNzIHN1cnJvZ2F0ZSBwYWlycy4gIENoYW5nZWQgbWF0Y2hCYWNrcmVmZXJlbmNlKCkgdG8g
ZG8gdGhpcywKKyAgICAgICAgaW5jbHVkaW5nIHByb3Blcmx5IGluY3JlbWVudGluZyB0aGUgYmFj
ayByZWZlcmVuY2UgcGF0dGVybiBhbmQgc2VhcmNoIGluZGV4ZXMuCisKKyAgICAgICAgSW4gc3Vw
cG9ydCBvZiB0aGlzIGNoYW5nZSwgb24gWDg2XzY0IHdlIG5lZWRlZCB0byBmcmVlIHVwIHIxMCB0
byBiZSB1c2VkIGV4Y2x1c2l2ZWx5IGZvcgorICAgICAgICAicGF0dGVybkluZGV4Ii4gIEl0IHdh
cyBhbHNvIHVzZWQgYXMgYSB0ZW1wIGluIHRyeVJlYWRVbmljb2RlQ2hhckltcGwoKS4gIE1hZGUg
YSBuZXcgbmFtZWQKKyAgICAgICAgdGVtcCByZWdpc3RlciwgY2FsbGVkIHVuaWNvZGVUZW1wLCB0
byB0YWtlIHRoZSBwbGFjZSBvZiByZWdUMihyMTApIGluIHRyeVJlYWRVbmljb2RlQ2hhckltcGwu
CisgICAgICAgIFRoaXMgbmV3IHRlbXAgaXMgcjE0IG9uIFg4Nl82NCBhbmQgWDUgb24gQVJNNjQu
ICBUbyBmcmVlIHVwIHIxNCBvbiBYODZfNjQsIGNoYW5nZWQgdGhlCisgICAgICAgIG9sZCBsZWFk
aW5nU3Vycm9nYXRlVGFnIHRvIGJlIGEgbGl0ZXJhbC4KKworICAgICAgICAqIHlhcnIvWWFyckpJ
VC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OnRyeVJlYWRVbmljb2Rl
Q2hhckltcGwpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjptYXRjaEJhY2ty
ZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpnZW5lcmF0ZUVu
dGVyKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckdlbmVyYXRvcjo6cmVhZENoYXJhY3RlckRv
bnREZWNvZGVTdXJyb2dhdGVzKTogRGVsZXRlZC4KKwogMjAxOS0wOS0yNSAgR3VpbGxhdW1lIEVt
b250ICA8Z3VpamVtb250QGlnYWxpYS5jb20+CiAKICAgICAgICAgdGVzdGFwaTogc2xvdyBkZXZp
Y2VzIG5lZWQgbW9yZSB0aW1lIGJlZm9yZSB3YXRjaGRvZyBmaXJlcwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAJKHJldmlzaW9uIDI1MDM1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2
MSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8KICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBBUk02NFJlZ2lzdGVyczo6eDI7CiAgICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgb3V0cHV0ID0gQVJNNjRSZWdpc3RlcnM6OngzOwogICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIGZyZWVsaXN0UmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6
eDQ7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZnJlZWxpc3RTaXplUmVnaXN0ZXIgPSBB
Uk02NFJlZ2lzdGVyczo6eDU7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZnJlZWxpc3RT
aXplUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDU7IC8vIE9ubHkgdXNlZCBkdXJpbmcgaW5p
dGlhbGl6YXRpb24uCiAKICAgICAvLyBTY3JhdGNoIHJlZ2lzdGVycwogICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIHJlZ1QwID0gQVJNNjRSZWdpc3RlcnM6Ong2OwpAQCAtNjksNiArNjksNyBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvCiAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBBUk02NFJlZ2lzdGVyczo6eDg7CiAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmVtYWluaW5nTWF0Y2hDb3VudCA9IEFSTTY0UmVnaXN0ZXJzOjp4OTsK
ICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCA9IEFS
TTY0UmVnaXN0ZXJzOjp4MTA7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdW5pY29kZVRl
bXAgPSBBUk02NFJlZ2lzdGVyczo6eDU7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5p
dGlhbFN0YXJ0ID0gQVJNNjRSZWdpc3RlcnM6OngxMTsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCBzdXBwbGVtZW50YXJ5UGxhbmVzQmFzZSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTI7CiAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTM7CkBAIC0xMjksMTMgKzEzMCwxNCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVi
bGljIFlhcnJKSVRJbmZvCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVtYWluaW5nTWF0
Y2hDb3VudCA9IFg4NlJlZ2lzdGVyczo6ZXNpOwogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmVnVW5pY29kZUlucHV0QW5kVHJhaWwgPSBYODZSZWdpc3RlcnM6OnIxMzsKLSAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBsZWFkaW5nU3Vycm9nYXRlVGFnID0gWDg2UmVnaXN0
ZXJzOjpyMTQ7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdW5pY29kZVRlbXAgPSBYODZS
ZWdpc3RlcnM6OnIxNDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBlbmRPZlN0cmluZ0Fk
ZHJlc3MgPSBYODZSZWdpc3RlcnM6OnIxNTsKIAogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7CiAKICAgICBjb25z
dCBUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBUcnVzdGVkSW1tMzIoMHgx
MDAwMCk7CisgICAgY29uc3QgVHJ1c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBUcnVz
dGVkSW1tMzIoMHhkODAwKTsKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dh
dGVUYWcgPSBUcnVzdGVkSW1tMzIoMHhkYzAwKTsKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgc3Vy
cm9nYXRlVGFnTWFzayA9IFRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKICNkZWZpbmUgSklUX1VO
SUNPREVfRVhQUkVTU0lPTlMKQEAgLTUzMCw4ICs1MzIsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IDogcHVibGljIFlhcnJKSVRJbmZvCiAgICAgICAgIGxvYWQxNlVuYWxpZ25lZChyZWdVbmljb2Rl
SW5wdXRBbmRUcmFpbCwgcmVzdWx0UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVy
IGEgbGVhZGluZyBzdXJyb2dhdGU/Ci0gICAgICAgIGFuZDMyKHN1cnJvZ2F0ZVRhZ01hc2ssIHJl
c3VsdFJlZywgcmVnVDIpOwotICAgICAgICBub3RVbmljb2RlLmFwcGVuZChicmFuY2gzMihOb3RF
cXVhbCwgcmVnVDIsIGxlYWRpbmdTdXJyb2dhdGVUYWcpKTsKKyAgICAgICAgYW5kMzIoc3Vycm9n
YXRlVGFnTWFzaywgcmVzdWx0UmVnLCB1bmljb2RlVGVtcCk7CisgICAgICAgIG5vdFVuaWNvZGUu
YXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCB1bmljb2RlVGVtcCwgbGVhZGluZ1N1cnJvZ2F0ZVRh
ZykpOwogCiAgICAgICAgIC8vIElzIHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJh
aWxpbmcgc3Vycm9nYXRlPwogICAgICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDIpLCByZWdVbmlj
b2RlSW5wdXRBbmRUcmFpbCk7CkBAIC01MzksOCArNTQxLDggQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciA6IHB1YmxpYyBZYXJySklUSW5mbwogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0
cmFpbGluZyBzdXJyb2dhdGU/CiAgICAgICAgIGxvYWQxNlVuYWxpZ25lZChBZGRyZXNzKHJlZ1Vu
aWNvZGVJbnB1dEFuZFRyYWlsKSwgcmVnVW5pY29kZUlucHV0QW5kVHJhaWwpOwotICAgICAgICBh
bmQzMihzdXJyb2dhdGVUYWdNYXNrLCByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwgcmVnVDIpOwot
ICAgICAgICBub3RVbmljb2RlLmFwcGVuZChicmFuY2gzMihOb3RFcXVhbCwgcmVnVDIsIHRyYWls
aW5nU3Vycm9nYXRlVGFnKSk7CisgICAgICAgIGFuZDMyKHN1cnJvZ2F0ZVRhZ01hc2ssIHJlZ1Vu
aWNvZGVJbnB1dEFuZFRyYWlsLCB1bmljb2RlVGVtcCk7CisgICAgICAgIG5vdFVuaWNvZGUuYXBw
ZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCB1bmljb2RlVGVtcCwgdHJhaWxpbmdTdXJyb2dhdGVUYWcp
KTsKIAogICAgICAgICAvLyBDb21iaW5lIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHN1cnJvZ2F0ZXMg
dG8gcHJvZHVjZSBhIGNvZGUgcG9pbnQuCiAgICAgICAgIGxzaGlmdDMyKFRydXN0ZWRJbW0zMigx
MCksIHJlc3VsdFJlZyk7CkBAIC01NjAsMTYgKzU2Miw2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3Ig
OiBwdWJsaWMgWWFyckpJVEluZm8KICAgICAgICAgICAgIHRyeVJlYWRVbmljb2RlQ2hhckltcGwo
cmVzdWx0UmVnKTsKICAgICB9CiAjZW5kaWYKLQotICAgIHZvaWQgcmVhZENoYXJhY3RlckRvbnRE
ZWNvZGVTdXJyb2dhdGVzKENoZWNrZWQ8dW5zaWduZWQ+IG5lZ2F0aXZlQ2hhcmFjdGVyT2Zmc2V0
LCBSZWdpc3RlcklEIHJlc3VsdFJlZywgUmVnaXN0ZXJJRCBpbmRleFJlZyA9IGluZGV4KQotICAg
IHsKLSAgICAgICAgQmFzZUluZGV4IGFkZHJlc3MgPSBuZWdhdGl2ZU9mZnNldEluZGV4ZWRBZGRy
ZXNzKG5lZ2F0aXZlQ2hhcmFjdGVyT2Zmc2V0LCByZXN1bHRSZWcsIGluZGV4UmVnKTsKLSAgICAg
ICAgCi0gICAgICAgIGlmIChtX2NoYXJTaXplID09IENoYXI4KQotICAgICAgICAgICAgbG9hZDgo
YWRkcmVzcywgcmVzdWx0UmVnKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9hZDE2VW5h
bGlnbmVkKGFkZHJlc3MsIHJlc3VsdFJlZyk7Ci0gICAgfQogICAgIAogICAgIHZvaWQgcmVhZENo
YXJhY3RlcihDaGVja2VkPHVuc2lnbmVkPiBuZWdhdGl2ZUNoYXJhY3Rlck9mZnNldCwgUmVnaXN0
ZXJJRCByZXN1bHRSZWcsIFJlZ2lzdGVySUQgaW5kZXhSZWcgPSBpbmRleCkKICAgICB7CkBAIC0x
MTQwLDggKzExMzIsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZv
CiAKICAgICAgICAgTGFiZWwgbG9vcCh0aGlzKTsKIAotICAgICAgICByZWFkQ2hhcmFjdGVyRG9u
dERlY29kZVN1cnJvZ2F0ZXMoMCwgcGF0dGVybkNoYXJhY3RlciwgcGF0dGVybkluZGV4KTsKLSAg
ICAgICAgcmVhZENoYXJhY3RlckRvbnREZWNvZGVTdXJyb2dhdGVzKG1fY2hlY2tlZE9mZnNldCAt
IHRlcm0tPmlucHV0UG9zaXRpb24sIGNoYXJhY3Rlcik7CisgICAgICAgIHJlYWRDaGFyYWN0ZXIo
MCwgcGF0dGVybkNoYXJhY3RlciwgcGF0dGVybkluZGV4KTsKKyAgICAgICAgcmVhZENoYXJhY3Rl
cihtX2NoZWNrZWRPZmZzZXQgLSB0ZXJtLT5pbnB1dFBvc2l0aW9uLCBjaGFyYWN0ZXIpOwogICAg
IAogICAgICAgICBpZiAoIW1fcGF0dGVybi5pZ25vcmVDYXNlKCkpCiAgICAgICAgICAgICBjaGFy
YWN0ZXJNYXRjaEZhaWxzLmFwcGVuZChicmFuY2gzMihOb3RFcXVhbCwgY2hhcmFjdGVyLCBwYXR0
ZXJuQ2hhcmFjdGVyKSk7CkBAIC0xMTU1LDEwICsxMTQ3LDE2IEBAIGNsYXNzIFlhcnJHZW5lcmF0
b3IgOiBwdWJsaWMgWWFyckpJVEluZm8KICAgICAgICAgICAgIGNoYXJhY3RlcnNNYXRjaC5saW5r
KHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgCiAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0z
MigxKSwgaW5kZXgpOwogICAgICAgICBhZGQzMihUcnVzdGVkSW1tMzIoMSksIHBhdHRlcm5JbmRl
eCk7Ci0gICAgICAgIAorCisgICAgICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7Cisg
ICAgICAgICAgICBKdW1wIGlzQk1QQ2hhciA9IGJyYW5jaDMyKExlc3NUaGFuLCBjaGFyYWN0ZXIs
IHN1cHBsZW1lbnRhcnlQbGFuZXNCYXNlKTsKKyAgICAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0z
MigxKSwgaW5kZXgpOworICAgICAgICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwYXR0ZXJu
SW5kZXgpOworICAgICAgICAgICAgaXNCTVBDaGFyLmxpbmsodGhpcyk7CisgICAgICAgIH0KKwog
ICAgICAgICBicmFuY2gzMihOb3RFcXVhbCwgcGF0dGVybkluZGV4LCBBZGRyZXNzKG91dHB1dCwg
KChzdWJwYXR0ZXJuSWQgPDwgMSkgKyAxKSAqIHNpemVvZihpbnQpKSkubGlua1RvKGxvb3AsIHRo
aXMpOwogICAgIH0KIApAQCAtMzczMSw4ICszNzI5LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6
IHB1YmxpYyBZYXJySklUSW5mbwogICAgICAgICAgICAgcHVzaChYODZSZWdpc3RlcnM6OnIxMyk7
CiAgICAgICAgICAgICBwdXNoKFg4NlJlZ2lzdGVyczo6cjE0KTsKICAgICAgICAgICAgIHB1c2go
WDg2UmVnaXN0ZXJzOjpyMTUpOwotCi0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigweGQ4
MDApLCBsZWFkaW5nU3Vycm9nYXRlVGFnKTsKICAgICAgICAgfQogICAgICAgICAvLyBUaGUgQUJJ
IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSB1cHBlciBiaXRzIGFyZSB6ZXJvIG9uIHVuc2lnbmVkIGFy
Z3VtZW50cywgc28gY2xlYXIgdGhlbSBvdXJzZWx2ZXMuCiAgICAgICAgIHplcm9FeHRlbmQzMlRv
UHRyKGluZGV4LCBpbmRleCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379597</attachid>
            <date>2019-09-25 17:33:03 -0700</date>
            <delta_ts>2019-10-01 10:48:35 -0700</delta_ts>
            <desc>Updated ChangeLogs citing Paulo Matos &lt;pmatos@igalia.com&gt; original contribution.</desc>
            <filename>202041-2.patch</filename>
            <type>text/plain</type>
            <size>9118</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTAzNjgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE3IEBACisyMDE5LTA5LTI1ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBw
bGUuY29tPiBhbmQgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNvbT4KKworICAgICAgICBb
WUFSUl0gUHJvcGVybHkgaGFuZGxlIHN1cnJvZ2F0ZXMgd2hlbiBtYXRjaGluZyBiYWNrIHJlZmVy
ZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjA0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVu
Y2hhbmdlZCBmcm9tIHRoZSB3b3JraW4gcHJvZ3Jlc3MgcGF0Y2ggcG9zdGVkIGJ5IFBhdWxvIE1h
dG9zIDxwbWF0b3NAaWdhbGlhLmNvbT4uCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0LgorCisgICAg
ICAgICogc3RyZXNzL3JlZ2V4cC11bmljb2RlLXN1cnJvZ2F0ZS1wYWlyLWluY3JlbWVudC1zaG91
bGQtaW52b2x2ZS1sZW5ndGgtY2hlY2suanM6CisgICAgICAgICh0ZXN0UmVnRXhwTm90TWF0Y2gp
OgorCiAyMDE5LTA5LTI0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4K
IAogICAgICAgICBbRVM2XSBDb21lIHVwIHdpdGggYSB0ZXN0IGZvciBQcm94eS5bW0dldE93blBy
b3BlcnR5XV0gdGhhdCB0ZXN0cyB0aGUgaXNFeHRlbnNpYmxlIGVycm9yIHdoZW4gdGhlICByZXN1
bHQgb2YgdGhlIHRyYXAgaXMgdW5kZWZpbmVkCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWdleHAt
dW5pY29kZS1zdXJyb2dhdGUtcGFpci1pbmNyZW1lbnQtc2hvdWxkLWludm9sdmUtbGVuZ3RoLWNo
ZWNrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL3JlZ2V4cC11bmljb2RlLXN1cnJv
Z2F0ZS1wYWlyLWluY3JlbWVudC1zaG91bGQtaW52b2x2ZS1sZW5ndGgtY2hlY2suanMJKHJldmlz
aW9uIDI1MDM1OCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZ2V4cC11bmljb2RlLXN1cnJvZ2F0ZS1w
YWlyLWluY3JlbWVudC1zaG91bGQtaW52b2x2ZS1sZW5ndGgtY2hlY2suanMJKHdvcmtpbmcgY29w
eSkKQEAgLTEzLDEwICsxMywyMSBAQCBmdW5jdGlvbiB0ZXN0UmVnRXhwTWF0Y2gocmUsIHN0cikK
ICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RSZWdFeHBOb3RNYXRjaChyZSwgc3RyKQoreworICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgbGV0IG1hdGNoID0gcmUu
ZXhlYyhzdHIpOworICAgICAgICBpZiAobWF0Y2gpIHsKKyAgICAgICAgICAgIHByaW50KG1hdGNo
KTsKKyAgICAgICAgICAgIHRocm93ICJFeHBlY3RlZCAiICsgcmUgKyAiIHRvIG1hdGNoIFwiIiAr
IHN0ciArICJcIiBidXQgaXQgZGlkbid0IjsKKyAgICAgICAgfQorICAgIH0KK30KKwogbGV0IHRl
c3RTdHJpbmcgPSAiXHVkODAwXHVkODAwXHVkYzAwIjsKIGxldCBncmVlZHlSZWdFeHAgPSAvKFte
eF0rKVteXSpcMShbXl0pL3U7CiAKLXRlc3RSZWdFeHBNYXRjaChncmVlZHlSZWdFeHAsIHRlc3RT
dHJpbmcpOwordGVzdFJlZ0V4cE5vdE1hdGNoKGdyZWVkeVJlZ0V4cCwgdGVzdFN0cmluZyk7CiAK
IGxldCBub25HcmVlZHlSZWdFeHAgPSAvKC4qW154XSs/KVteXSooW15dKS91OwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MDM1OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0w
OS0yNSAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4gYW5kIFBhdWxvIE1hdG9z
ICA8cG1hdG9zQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1lBUlJdIFByb3Blcmx5IGhhbmRsZSBz
dXJyb2dhdGVzIHdoZW4gbWF0Y2hpbmcgYmFjayByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIwNDEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIGEg
d29yayBpbiBwcm9ncmVzcyBwYXRjaCBieSBQYXVsbyBNYXRvcyA8cG1hdG9zQGlnYWxpYS5jb20+
LgorCisgICAgICAgIFdoZW4gaGFuZGxpbmcgYmFjayByZWZlcmVuY2VzIGluIFVuaWNvZGUgcGF0
dGVybnMsIHdlIGNhbid0IG1hdGNoIHVuLWRlY29kZWQgc3Vycm9nYXRlIGNoYXJhY3RlcnMsCisg
ICAgICAgIGluc3RlYWQgd2UgbmVlZCB0byByZWFkIGFuZCBwcm9jZXNzIHN1cnJvZ2F0ZSBwYWly
cy4gIENoYW5nZWQgbWF0Y2hCYWNrcmVmZXJlbmNlKCkgdG8gZG8gdGhpcywKKyAgICAgICAgaW5j
bHVkaW5nIHByb3Blcmx5IGluY3JlbWVudGluZyB0aGUgYmFjayByZWZlcmVuY2UgcGF0dGVybiBh
bmQgc2VhcmNoIGluZGV4ZXMuCisKKyAgICAgICAgSW4gc3VwcG9ydCBvZiB0aGlzIGNoYW5nZSwg
b24gWDg2XzY0IHdlIG5lZWRlZCB0byBmcmVlIHVwIHIxMCB0byBiZSB1c2VkIGV4Y2x1c2l2ZWx5
IGZvcgorICAgICAgICAicGF0dGVybkluZGV4Ii4gIEl0IHdhcyBhbHNvIHVzZWQgYXMgYSB0ZW1w
IGluIHRyeVJlYWRVbmljb2RlQ2hhckltcGwoKS4gIE1hZGUgYSBuZXcgbmFtZWQKKyAgICAgICAg
dGVtcCByZWdpc3RlciwgY2FsbGVkIHVuaWNvZGVUZW1wLCB0byB0YWtlIHRoZSBwbGFjZSBvZiBy
ZWdUMihyMTApIGluIHRyeVJlYWRVbmljb2RlQ2hhckltcGwuCisgICAgICAgIFRoaXMgbmV3IHRl
bXAgaXMgcjE0IG9uIFg4Nl82NCBhbmQgWDUgb24gQVJNNjQuICBUbyBmcmVlIHVwIHIxNCBvbiBY
ODZfNjQsIGNoYW5nZWQgdGhlCisgICAgICAgIG9sZCBsZWFkaW5nU3Vycm9nYXRlVGFnIHRvIGJl
IGEgbGl0ZXJhbC4KKworICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisgICAgICAgIChKU0M6
OllhcnI6OllhcnJHZW5lcmF0b3I6OnRyeVJlYWRVbmljb2RlQ2hhckltcGwpOgorICAgICAgICAo
SlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjptYXRjaEJhY2tyZWZlcmVuY2UpOgorICAgICAgICAo
SlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpnZW5lcmF0ZUVudGVyKToKKyAgICAgICAgKEpTQzo6
WWFycjo6WWFyckdlbmVyYXRvcjo6cmVhZENoYXJhY3RlckRvbnREZWNvZGVTdXJyb2dhdGVzKTog
RGVsZXRlZC4KKwogMjAxOS0wOS0yNSAgR3VpbGxhdW1lIEVtb250ICA8Z3VpamVtb250QGlnYWxp
YS5jb20+CiAKICAgICAgICAgdGVzdGFwaTogc2xvdyBkZXZpY2VzIG5lZWQgbW9yZSB0aW1lIGJl
Zm9yZSB3YXRjaGRvZyBmaXJlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAJKHJldmlzaW9uIDI1MDM1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIFlhcnJHZW5l
cmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8KICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBs
ZW5ndGggPSBBUk02NFJlZ2lzdGVyczo6eDI7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
b3V0cHV0ID0gQVJNNjRSZWdpc3RlcnM6OngzOwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IGZyZWVsaXN0UmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDQ7Ci0gICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgZnJlZWxpc3RTaXplUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6eDU7Cisg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZnJlZWxpc3RTaXplUmVnaXN0ZXIgPSBBUk02NFJl
Z2lzdGVyczo6eDU7IC8vIE9ubHkgdXNlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCiAKICAgICAv
LyBTY3JhdGNoIHJlZ2lzdGVycwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0g
QVJNNjRSZWdpc3RlcnM6Ong2OwpAQCAtNjksNiArNjksNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IDogcHVibGljIFlhcnJKSVRJbmZvCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDIg
PSBBUk02NFJlZ2lzdGVyczo6eDg7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVtYWlu
aW5nTWF0Y2hDb3VudCA9IEFSTTY0UmVnaXN0ZXJzOjp4OTsKICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCA9IEFSTTY0UmVnaXN0ZXJzOjp4MTA7Cisg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdW5pY29kZVRlbXAgPSBBUk02NFJlZ2lzdGVyczo6
eDU7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0ID0gQVJNNjRSZWdp
c3RlcnM6OngxMTsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBzdXBwbGVtZW50YXJ5UGxh
bmVzQmFzZSA9IEFSTTY0UmVnaXN0ZXJzOjp4MTI7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgbGVhZGluZ1N1cnJvZ2F0ZVRhZyA9IEFSTTY0UmVnaXN0ZXJzOjp4MTM7CkBAIC0xMjksMTMg
KzEzMCwxNCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvCiAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVtYWluaW5nTWF0Y2hDb3VudCA9IFg4NlJlZ2lzdGVy
czo6ZXNpOwogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVW5pY29kZUlu
cHV0QW5kVHJhaWwgPSBYODZSZWdpc3RlcnM6OnIxMzsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCBsZWFkaW5nU3Vycm9nYXRlVGFnID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CisgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgdW5pY29kZVRlbXAgPSBYODZSZWdpc3RlcnM6OnIxNDsKICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBlbmRPZlN0cmluZ0FkZHJlc3MgPSBYODZSZWdpc3RlcnM6
OnIxNTsKIAogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gWDg2
UmVnaXN0ZXJzOjplYXg7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0
ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7CiAKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgc3VwcGxl
bWVudGFyeVBsYW5lc0Jhc2UgPSBUcnVzdGVkSW1tMzIoMHgxMDAwMCk7CisgICAgY29uc3QgVHJ1
c3RlZEltbTMyIGxlYWRpbmdTdXJyb2dhdGVUYWcgPSBUcnVzdGVkSW1tMzIoMHhkODAwKTsKICAg
ICBjb25zdCBUcnVzdGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBUcnVzdGVkSW1tMzIo
MHhkYzAwKTsKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IFRydXN0
ZWRJbW0zMigweGZmZmZmYzAwKTsKICNkZWZpbmUgSklUX1VOSUNPREVfRVhQUkVTU0lPTlMKQEAg
LTUzMCw4ICs1MzIsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZv
CiAgICAgICAgIGxvYWQxNlVuYWxpZ25lZChyZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwgcmVzdWx0
UmVnKTsKIAogICAgICAgICAvLyBJcyB0aGUgY2hhcmFjdGVyIGEgbGVhZGluZyBzdXJyb2dhdGU/
Ci0gICAgICAgIGFuZDMyKHN1cnJvZ2F0ZVRhZ01hc2ssIHJlc3VsdFJlZywgcmVnVDIpOwotICAg
ICAgICBub3RVbmljb2RlLmFwcGVuZChicmFuY2gzMihOb3RFcXVhbCwgcmVnVDIsIGxlYWRpbmdT
dXJyb2dhdGVUYWcpKTsKKyAgICAgICAgYW5kMzIoc3Vycm9nYXRlVGFnTWFzaywgcmVzdWx0UmVn
LCB1bmljb2RlVGVtcCk7CisgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKGJyYW5jaDMyKE5vdEVx
dWFsLCB1bmljb2RlVGVtcCwgbGVhZGluZ1N1cnJvZ2F0ZVRhZykpOwogCiAgICAgICAgIC8vIElz
IHRoZSBpbnB1dCBsb25nIGVub3VnaCB0byByZWFkIGEgdHJhaWxpbmcgc3Vycm9nYXRlPwogICAg
ICAgICBhZGRQdHIoVHJ1c3RlZEltbTMyKDIpLCByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCk7CkBA
IC01MzksOCArNTQxLDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5m
bwogCiAgICAgICAgIC8vIElzIHRoZSBjaGFyYWN0ZXIgYSB0cmFpbGluZyBzdXJyb2dhdGU/CiAg
ICAgICAgIGxvYWQxNlVuYWxpZ25lZChBZGRyZXNzKHJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsKSwg
cmVnVW5pY29kZUlucHV0QW5kVHJhaWwpOwotICAgICAgICBhbmQzMihzdXJyb2dhdGVUYWdNYXNr
LCByZWdVbmljb2RlSW5wdXRBbmRUcmFpbCwgcmVnVDIpOwotICAgICAgICBub3RVbmljb2RlLmFw
cGVuZChicmFuY2gzMihOb3RFcXVhbCwgcmVnVDIsIHRyYWlsaW5nU3Vycm9nYXRlVGFnKSk7Cisg
ICAgICAgIGFuZDMyKHN1cnJvZ2F0ZVRhZ01hc2ssIHJlZ1VuaWNvZGVJbnB1dEFuZFRyYWlsLCB1
bmljb2RlVGVtcCk7CisgICAgICAgIG5vdFVuaWNvZGUuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFs
LCB1bmljb2RlVGVtcCwgdHJhaWxpbmdTdXJyb2dhdGVUYWcpKTsKIAogICAgICAgICAvLyBDb21i
aW5lIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHN1cnJvZ2F0ZXMgdG8gcHJvZHVjZSBhIGNvZGUgcG9p
bnQuCiAgICAgICAgIGxzaGlmdDMyKFRydXN0ZWRJbW0zMigxMCksIHJlc3VsdFJlZyk7CkBAIC01
NjAsMTYgKzU2Miw2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8K
ICAgICAgICAgICAgIHRyeVJlYWRVbmljb2RlQ2hhckltcGwocmVzdWx0UmVnKTsKICAgICB9CiAj
ZW5kaWYKLQotICAgIHZvaWQgcmVhZENoYXJhY3RlckRvbnREZWNvZGVTdXJyb2dhdGVzKENoZWNr
ZWQ8dW5zaWduZWQ+IG5lZ2F0aXZlQ2hhcmFjdGVyT2Zmc2V0LCBSZWdpc3RlcklEIHJlc3VsdFJl
ZywgUmVnaXN0ZXJJRCBpbmRleFJlZyA9IGluZGV4KQotICAgIHsKLSAgICAgICAgQmFzZUluZGV4
IGFkZHJlc3MgPSBuZWdhdGl2ZU9mZnNldEluZGV4ZWRBZGRyZXNzKG5lZ2F0aXZlQ2hhcmFjdGVy
T2Zmc2V0LCByZXN1bHRSZWcsIGluZGV4UmVnKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX2No
YXJTaXplID09IENoYXI4KQotICAgICAgICAgICAgbG9hZDgoYWRkcmVzcywgcmVzdWx0UmVnKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9hZDE2VW5hbGlnbmVkKGFkZHJlc3MsIHJlc3Vs
dFJlZyk7Ci0gICAgfQogICAgIAogICAgIHZvaWQgcmVhZENoYXJhY3RlcihDaGVja2VkPHVuc2ln
bmVkPiBuZWdhdGl2ZUNoYXJhY3Rlck9mZnNldCwgUmVnaXN0ZXJJRCByZXN1bHRSZWcsIFJlZ2lz
dGVySUQgaW5kZXhSZWcgPSBpbmRleCkKICAgICB7CkBAIC0xMTQwLDggKzExMzIsOCBAQCBjbGFz
cyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvCiAKICAgICAgICAgTGFiZWwgbG9v
cCh0aGlzKTsKIAotICAgICAgICByZWFkQ2hhcmFjdGVyRG9udERlY29kZVN1cnJvZ2F0ZXMoMCwg
cGF0dGVybkNoYXJhY3RlciwgcGF0dGVybkluZGV4KTsKLSAgICAgICAgcmVhZENoYXJhY3RlckRv
bnREZWNvZGVTdXJyb2dhdGVzKG1fY2hlY2tlZE9mZnNldCAtIHRlcm0tPmlucHV0UG9zaXRpb24s
IGNoYXJhY3Rlcik7CisgICAgICAgIHJlYWRDaGFyYWN0ZXIoMCwgcGF0dGVybkNoYXJhY3Rlciwg
cGF0dGVybkluZGV4KTsKKyAgICAgICAgcmVhZENoYXJhY3RlcihtX2NoZWNrZWRPZmZzZXQgLSB0
ZXJtLT5pbnB1dFBvc2l0aW9uLCBjaGFyYWN0ZXIpOwogICAgIAogICAgICAgICBpZiAoIW1fcGF0
dGVybi5pZ25vcmVDYXNlKCkpCiAgICAgICAgICAgICBjaGFyYWN0ZXJNYXRjaEZhaWxzLmFwcGVu
ZChicmFuY2gzMihOb3RFcXVhbCwgY2hhcmFjdGVyLCBwYXR0ZXJuQ2hhcmFjdGVyKSk7CkBAIC0x
MTU1LDEwICsxMTQ3LDE2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVElu
Zm8KICAgICAgICAgICAgIGNoYXJhY3RlcnNNYXRjaC5saW5rKHRoaXMpOwogICAgICAgICB9CiAK
LSAgICAgICAgCiAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMigxKSwgaW5kZXgpOwogICAgICAg
ICBhZGQzMihUcnVzdGVkSW1tMzIoMSksIHBhdHRlcm5JbmRleCk7Ci0gICAgICAgIAorCisgICAg
ICAgIGlmIChtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzKSB7CisgICAgICAgICAgICBKdW1wIGlzQk1Q
Q2hhciA9IGJyYW5jaDMyKExlc3NUaGFuLCBjaGFyYWN0ZXIsIHN1cHBsZW1lbnRhcnlQbGFuZXNC
YXNlKTsKKyAgICAgICAgICAgIGFkZDMyKFRydXN0ZWRJbW0zMigxKSwgaW5kZXgpOworICAgICAg
ICAgICAgYWRkMzIoVHJ1c3RlZEltbTMyKDEpLCBwYXR0ZXJuSW5kZXgpOworICAgICAgICAgICAg
aXNCTVBDaGFyLmxpbmsodGhpcyk7CisgICAgICAgIH0KKwogICAgICAgICBicmFuY2gzMihOb3RF
cXVhbCwgcGF0dGVybkluZGV4LCBBZGRyZXNzKG91dHB1dCwgKChzdWJwYXR0ZXJuSWQgPDwgMSkg
KyAxKSAqIHNpemVvZihpbnQpKSkubGlua1RvKGxvb3AsIHRoaXMpOwogICAgIH0KIApAQCAtMzcz
MSw4ICszNzI5LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbwog
ICAgICAgICAgICAgcHVzaChYODZSZWdpc3RlcnM6OnIxMyk7CiAgICAgICAgICAgICBwdXNoKFg4
NlJlZ2lzdGVyczo6cjE0KTsKICAgICAgICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjpyMTUpOwot
Ci0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigweGQ4MDApLCBsZWFkaW5nU3Vycm9nYXRl
VGFnKTsKICAgICAgICAgfQogICAgICAgICAvLyBUaGUgQUJJIGRvZXNuJ3QgZ3VhcmFudGVlIHRo
ZSB1cHBlciBiaXRzIGFyZSB6ZXJvIG9uIHVuc2lnbmVkIGFyZ3VtZW50cywgc28gY2xlYXIgdGhl
bSBvdXJzZWx2ZXMuCiAgICAgICAgIHplcm9FeHRlbmQzMlRvUHRyKGluZGV4LCBpbmRleCk7Cg==
</data>
<flag name="review"
          id="395326"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>