<?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>199372</bug_id>
          
          <creation_ts>2019-07-01 13:43:45 -0700</creation_ts>
          <short_desc>PACCage should first cage leaving PAC bits intact then authenticate</short_desc>
          <delta_ts>2019-07-03 13:25:21 -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>New Bugs</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>
          <dependson>199425</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1549293</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-01 13:43:45 -0700</bug_when>
    <thetext>PACCage should first cage leaving PAC bits intact then authenticate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549296</commentid>
    <comment_count>1</comment_count>
      <attachid>373254</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-01 13:46:56 -0700</bug_when>
    <thetext>Created attachment 373254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549370</commentid>
    <comment_count>2</comment_count>
      <attachid>373254</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-01 15:36:59 -0700</bug_when>
    <thetext>Comment on attachment 373254
Patch

You need to change the LLint and WTF too. Otherwise, LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549371</commentid>
    <comment_count>3</comment_count>
      <attachid>373254</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-01 15:37:32 -0700</bug_when>
    <thetext>Comment on attachment 373254
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        This ordering prevents someone from taking a signed pointer from
&gt; +        outside the gigacage and using it in a struct that expects a caged
&gt; +        pointer. Previously, the PACCaging just double checked that the PAC
&gt; +        bits were valid for the original pointer.

Might be worth spending a few more sentences explaining why this is. It&apos;s kinda subtle. Maybe an example would help</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549415</commentid>
    <comment_count>4</comment_count>
      <attachid>373289</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-01 17:37:47 -0700</bug_when>
    <thetext>Created attachment 373289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549472</commentid>
    <comment_count>5</comment_count>
      <attachid>373289</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-01 23:29:29 -0700</bug_when>
    <thetext>Comment on attachment 373289
Patch

gtk build failure seems unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549479</commentid>
    <comment_count>6</comment_count>
      <attachid>373289</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 00:00:20 -0700</bug_when>
    <thetext>Comment on attachment 373289
Patch

Clearing flags on attachment: 373289

Committed r247041: &lt;https://trac.webkit.org/changeset/247041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549480</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 00:00:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549481</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-02 00:01:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/52506922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549771</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-02 16:24:28 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 199425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549972</commentid>
    <comment_count>10</comment_count>
      <attachid>373409</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-03 13:24:34 -0700</bug_when>
    <thetext>Created attachment 373409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549973</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-07-03 13:25:21 -0700</bug_when>
    <thetext>Committed r247101: &lt;https://trac.webkit.org/changeset/247101&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373254</attachid>
            <date>2019-07-01 13:46:56 -0700</date>
            <delta_ts>2019-07-01 17:37:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199372-20190701134655.patch</filename>
            <type>text/plain</type>
            <size>9678</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
OTc0ZWVkYzE2MDEzMWRiOTRmNDI3YzE4ZGFjNzI5MWZmM2MyOGUyLi45NDhmNTNiNDlmNmUwYjg4
Y2IxZjU0NjM0NDM0NjU2MGI3ZTBlOTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxOS0wNy0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBQQUNDYWdlIHNob3VsZCBmaXJzdCBjYWdlIGxlYXZpbmcgUEFDIGJp
dHMgaW50YWN0IHRoZW4gYXV0aGVudGljYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIG9yZGVyaW5nIHByZXZlbnRzIHNvbWVvbmUgZnJvbSB0
YWtpbmcgYSBzaWduZWQgcG9pbnRlciBmcm9tCisgICAgICAgIG91dHNpZGUgdGhlIGdpZ2FjYWdl
IGFuZCB1c2luZyBpdCBpbiBhIHN0cnVjdCB0aGF0IGV4cGVjdHMgYSBjYWdlZAorICAgICAgICBw
b2ludGVyLiBQcmV2aW91c2x5LCB0aGUgUEFDQ2FnaW5nIGp1c3QgZG91YmxlIGNoZWNrZWQgdGhh
dCB0aGUgUEFDCisgICAgICAgIGJpdHMgd2VyZSB2YWxpZCBmb3IgdGhlIG9yaWdpbmFsIHBvaW50
ZXIuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAg
ICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0Q2FnZVByZXNl
cnZlc1BBQ0ZhaWx1cmVCaXQpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjYWdlZCk6CisgICAgICAgICog
aml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNh
Z2VDb25kaXRpb25hbGx5KToKKwogMjAxOS0wNi0yNiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KIAogICAgICAgICByZW1vdmUgdW5uZWVkZWQgZGlkQmVjb21lUHJvdG90
eXBlKCkgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NEUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NEUuaAppbmRleCBmZDdlZWM4MDg1NTFiZGY3Mjg3YWZjMWIxZWM0
NTNmMmY4MjA4MmQyLi45YzZlNzc1ZTUxNzQ0NWVmY2I1Y2I4YzA3OGI3OWIwNWEwODkxOGFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjRFLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0RS5oCkBAIC00MCw2ICs0MCw3IEBAIHVzaW5nIEFzc2VtYmxlciA9IFRBUkdFVF9B
U1NFTUJMRVI7CiBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTTY0RSA6IHB1YmxpYyBNYWNyb0Fzc2Vt
YmxlckFSTTY0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG51bWJl
ck9mUEFDQml0cyA9IDI1OworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IG5vblBBQ0Jp
dHNNYXNrID0gKDF1bGwgPDwgKDY0IC0gbnVtYmVyT2ZQQUNCaXRzKSkgLSAxOwogCiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIHRhZ1JldHVybkFkZHJlc3MoKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKaW5kZXggMTA1MGIzOTk4M2U0ZTY1MDUy
ODI0YzA0ZjBiYjEyNTRhMzEzZTJjOC4uM2NiYWVkOGE0NzUxZGU1OTFhYzhkMDRhNTc5YzdhZmZm
YjEzNzQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0
bWFzbS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5j
cHAKQEAgLTEwMTUsNiArMTAxNSw4IEBAIHZvaWQgdGVzdE1vdmVEb3VibGVDb25kaXRpb25hbGx5
NjQoKQogCiBzdGF0aWMgdm9pZCB0ZXN0Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1cmVCaXQoKQogewor
I2lmIEdJR0FDQUdFX0VOQUJMRUQKKyAgICBBU1NFUlQoIUdpZ2FjYWdlOjppc0Rpc2FibGluZ1By
aW1pdGl2ZUdpZ2FjYWdlRGlzYWJsZWQoKSk7CiAgICAgYXV0byBjYWdlID0gY29tcGlsZShbXSAo
Q0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7
CiAgICAgICAgIGppdC5jYWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6UHJpbWl0aXZlLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKQEAgLTEwMjUsMTAgKzEwMjcsMTUgQEAgc3RhdGljIHZvaWQgdGVzdENhZ2VQcmVz
ZXJ2ZXNQQUNGYWlsdXJlQml0KCkKIAogICAgIHZvaWQqIHB0ciA9IEdpZ2FjYWdlOjp0cnlNYWxs
b2MoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgMSk7CiAgICAgdm9pZCogdGFnZ2VkUHRyID0gdGFnQXJy
YXlQdHIocHRyLCAxKTsKLSAgICBkYXRhTG9nTG4oInN0YXJ0aW5nIHRlc3QiKTsKKyAgICBBU1NF
UlQoaGFzT25lQml0U2V0KEdpZ2FjYWdlOjpzaXplKEdpZ2FjYWdlOjpQcmltaXRpdmUpIDw8IDIp
KTsKKyAgICB2b2lkKiBub3RDYWdlZFB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpICsgKEdpZ2FjYWdlOjpzaXplKEdpZ2FjYWdlOjpQ
cmltaXRpdmUpIDw8IDIpKTsKKyAgICBDSEVDS19OT1RfRVEoR2lnYWNhZ2U6OmNhZ2VkKEdpZ2Fj
YWdlOjpQcmltaXRpdmUsIG5vdENhZ2VkUHRyKSwgbm90Q2FnZWRQdHIpOworICAgIHZvaWQqIHRh
Z2dlZE5vdENhZ2VkUHRyID0gdGFnQXJyYXlQdHIobm90Q2FnZWRQdHIsIDEpOworCiAgICAgaWYg
KGlzQVJNNjRFKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgd29uJ3Qgd29yayBpZiBhdXRo
ZW50aWNhdGlvbiBmYWlsdXJlcyB0cmFwIGJ1dCBJIGRvbid0IGtub3cgaG93IHRvIHRlc3QgZm9y
IHRoYXQgcmlnaHQgbm93LgogICAgICAgICBDSEVDS19OT1RfRVEoaW52b2tlPHZvaWQqPihjYWdl
LCB0YWdnZWRQdHIsIDIpLCBwdHIpOworICAgICAgICBDSEVDS19FUShpbnZva2U8dm9pZCo+KGNh
Z2UsIHRhZ2dlZE5vdENhZ2VkUHRyLCAxKSwgdW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDIpKTsK
ICAgICB9IGVsc2UKICAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlLCB0YWdnZWRQ
dHIsIDIpLCBwdHIpOwogCkBAIC0xMDQyLDE2ICsxMDQ5LDE3IEBAIHN0YXRpYyB2b2lkIHRlc3RD
YWdlUHJlc2VydmVzUEFDRmFpbHVyZUJpdCgpCiAgICAgICAgIGppdC5yZXQoKTsKICAgICB9KTsK
IAorICAgIENIRUNLX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwg
dGFnZ2VkUHRyKSwgdGFnZ2VkUHRyKTsKICAgICBpZiAoaXNBUk02NEUoKSkgewogICAgICAgICAv
LyBGSVhNRTogVGhpcyB3b24ndCB3b3JrIGlmIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzIHRyYXAg
YnV0IEkgZG9uJ3Qga25vdyBob3cgdG8gdGVzdCBmb3IgdGhhdCByaWdodCBub3cuCi0gICAgICAg
IENIRUNLX05PVF9FUShpbnZva2U8dm9pZCo+KGNhZ2VXaXRob3V0QXV0aGVudGljYXRpb24sIHVu
dGFnQXJyYXlQdHIodGFnZ2VkUHRyLCAyKSksIHB0cik7Ci0gICAgfSBlbHNlCi0gICAgICAgIENI
RUNLX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdW50YWdBcnJh
eVB0cih0YWdnZWRQdHIsIDIpKSwgcHRyKTsKLQotICAgIENIRUNLX0VRKHVudGFnQXJyYXlQdHIo
dGFnZ2VkUHRyLCAxKSwgcHRyKTsKLSAgICBDSEVDS19FUShpbnZva2U8dm9pZCo+KGNhZ2VXaXRo
b3V0QXV0aGVudGljYXRpb24sIHVudGFnQXJyYXlQdHIodGFnZ2VkUHRyLCAxKSksIHB0cik7Cisg
ICAgICAgIENIRUNLX05PVF9FUShpbnZva2U8dm9pZCo+KGNhZ2VXaXRob3V0QXV0aGVudGljYXRp
b24sIHRhZ2dlZE5vdENhZ2VkUHRyKSwgdGFnZ2VkTm90Q2FnZWRQdHIpOworICAgICAgICBDSEVD
S19OT1RfRVEodW50YWdBcnJheVB0cihpbnZva2U8dm9pZCo+KGNhZ2VXaXRob3V0QXV0aGVudGlj
YXRpb24sIHRhZ2dlZE5vdENhZ2VkUHRyKSwgMSksIG5vdENhZ2VkUHRyKTsKKyAgICAgICAgQ0hF
Q0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdGFnZ2Vk
Tm90Q2FnZWRQdHIpLCB0YWdnZWRQdHIpOworICAgICAgICBDSEVDS19OT1RfRVEodW50YWdBcnJh
eVB0cihpbnZva2U8dm9pZCo+KGNhZ2VXaXRob3V0QXV0aGVudGljYXRpb24sIHRhZ2dlZE5vdENh
Z2VkUHRyKSwgMSksIHB0cik7CisgICAgfQogCiAgICAgR2lnYWNhZ2U6OmZyZWUoR2lnYWNhZ2U6
OlByaW1pdGl2ZSwgcHRyKTsKKyNlbmRpZgogfQogCiAjZGVmaW5lIFJVTih0ZXN0KSBkbyB7ICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggYzg5MDEwYTE1NTRhYzcyYzU2YzYxYTMwMzY3MGIyMDc5
ZWYxZjc1Zi4uMzMwNmQ1M2ExY2RiNGI1ZDc0Yzk5MThiN2E0MGJiZWM0NzdiNjVmNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTQxNzcs
MTggKzE0MTc3LDcgQEAgcHJpdmF0ZToKIAogICAgIExWYWx1ZSBjYWdlZChHaWdhY2FnZTo6S2lu
ZCBraW5kLCBMVmFsdWUgcHRyLCBMVmFsdWUgYmFzZSkKICAgICB7Ci0jaWYgQ1BVKEFSTTY0RSkK
LSAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkgewotICAgICAgICAgICAg
TFZhbHVlIHNpemUgPSBtX291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmll
d19sZW5ndGgpOwotICAgICAgICAgICAgcHRyID0gdW50YWdBcnJheVB0cihwdHIsIHNpemUpOwot
ICAgICAgICB9Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oa2luZCk7Ci0gICAgICAgIFVO
VVNFRF9QQVJBTShiYXNlKTsKLSNlbmRpZgotCiAjaWYgR0lHQUNBR0VfRU5BQkxFRAotICAgICAg
ICBVTlVTRURfUEFSQU0oYmFzZSk7CiAgICAgICAgIGlmICghR2lnYWNhZ2U6OmlzRW5hYmxlZChr
aW5kKSkKICAgICAgICAgICAgIHJldHVybiBwdHI7CiAgICAgICAgIApAQCAtMTQyMDYsNyArMTQx
OTUsNyBAQCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgcmVzdWx0ID0gbV9vdXQuYWRkKG1hc2tl
ZCwgYmFzZVB0cik7CiAKICNpZiBDUFUoQVJNNjRFKQotICAgICAgICB7CisgICAgICAgIGlmIChr
aW5kID09IEdpZ2FjYWdlOjpQcmltaXRpdmUpIHsKICAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1
ZSogbWVyZ2UgPSBtX291dC5wYXRjaHBvaW50KHBvaW50ZXJUeXBlKCkpOwogICAgICAgICAgICAg
bWVyZ2UtPmFwcGVuZChyZXN1bHQsIEIzOjpWYWx1ZVJlcChCMzo6VmFsdWVSZXA6OlNvbWVMYXRl
UmVnaXN0ZXIpKTsKICAgICAgICAgICAgIG1lcmdlLT5hcHBlbmRTb21lUmVnaXN0ZXIocHRyKTsK
QEAgLTE0MjE0LDkgKzE0MjAzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgaml0Lm1v
dmUocGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICAgICAgICAgIGpp
dC5iaXRGaWVsZEluc2VydDY0KHBhcmFtc1sxXS5ncHIoKSwgMCwgNjQgLSBNYWNyb0Fzc2VtYmxl
cjo6bnVtYmVyT2ZQQUNCaXRzLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgICAgICByZXN1bHQgPSBtZXJnZTsKKworICAgICAgICAgICAgTFZhbHVlIHNpemUgPSBt
X291dC5sb2FkMzIoYmFzZSwgbV9oZWFwcy5KU0FycmF5QnVmZmVyVmlld19sZW5ndGgpOworICAg
ICAgICAgICAgcmVzdWx0ID0gdW50YWdBcnJheVB0cihtZXJnZSwgc2l6ZSk7CiAgICAgICAgIH0K
LSNlbmRpZgorI2VuZGlmIC8vIENQVShBUk02NEUpCisKICAgICAgICAgLy8gTWFrZSBzdXJlIHRo
YXQgQjMgZG9lc24ndCB0cnkgdG8gZG8gc21hcnQgcmVhc3NvY2lhdGlvbiBvZiB0aGVzZSBwb2lu
dGVyIGJpdHMuCiAgICAgICAgIC8vIEZJWE1FOiBJbiBhbiBpZGVhbCB3b3JsZCwgQjMgd291bGQg
bm90IGRvIGhhcm1mdWwgcmVhc3NvY2lhdGlvbnMsIGFuZCBpZiBpdCBkaWQsIGl0IHdvdWxkIGJl
IGFibGUKICAgICAgICAgLy8gdG8gdW5kbyB0aGVtIGR1cmluZyBjb25zdGFudCBob2lzdGluZyBh
bmQgcmVnYWxsb2MuIEFzIGl0IHN0YW5kcywgaWYgeW91IHJlbW92ZSB0aGlzIHRoZW4gT2N0YW5l
CkBAIC0xNDIzMCw2ICsxNDIyMiw5IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0OTMKICAgICAgICAgcmV0dXJuIG1fb3V0
Lm9wYXF1ZShyZXN1bHQpOwogI2VuZGlmCisKKyAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwor
ICAgICAgICBVTlVTRURfUEFSQU0oYmFzZSk7CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKaW5kZXgg
YTc3ZDQzYTUwMTA4NjczMGQ3ZGM5OTg1ZjQyZGI1MjE5YTJmOTI1OS4uM2VlYWQyZDhlMDZlZjVj
Njg5MjM0ODU3Y2IyYTBjMGQ5ZTVlYWZkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xNTg2LDQyICsxNTg2LDQxIEBAIHB1YmxpYzoKICAgICAv
LyBsZW5ndGggbWF5IGJlIHRoZSBzYW1lIHJlZ2lzdGVyIGFzIHNjcmF0Y2guCiAgICAgdm9pZCBj
YWdlQ29uZGl0aW9uYWxseShHaWdhY2FnZTo6S2luZCBraW5kLCBHUFJSZWcgc3RvcmFnZSwgR1BS
UmVnIGxlbmd0aCwgR1BSUmVnIHNjcmF0Y2gpCiAgICAgeworI2lmIEdJR0FDQUdFX0VOQUJMRUQK
KyAgICAgICAgaWYgKEdpZ2FjYWdlOjppc0VuYWJsZWQoa2luZCkpIHsKKyAgICAgICAgICAgIGlm
IChraW5kICE9IEdpZ2FjYWdlOjpQcmltaXRpdmUgfHwgR2lnYWNhZ2U6OmlzRGlzYWJsaW5nUHJp
bWl0aXZlR2lnYWNhZ2VEaXNhYmxlZCgpKQorICAgICAgICAgICAgICAgIGNhZ2VXaXRob3V0VW50
YWdnaW5nKGtpbmQsIHN0b3JhZ2UpOworICAgICAgICAgICAgZWxzZSB7CisjaWYgQ1BVKEFSTTY0
RSkKKyAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID09IHNjcmF0Y2gpCisgICAgICAgICAgICAg
ICAgICAgIHNjcmF0Y2ggPSBnZXRDYWNoZWRNZW1vcnlUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRh
dGUoKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGxvYWRQdHIoJkdpZ2FjYWdlOjpiYXNlUHRy
KGtpbmQpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICBKdW1wIGRvbmUgPSBicmFuY2hUZXN0
NjQoWmVybywgc2NyYXRjaCk7CisjaWYgQ1BVKEFSTTY0RSkKKyAgICAgICAgICAgICAgICBHUFJS
ZWcgdGVtcFJlZyA9IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsK
KyAgICAgICAgICAgICAgICBtb3ZlKHN0b3JhZ2UsIHRlbXBSZWcpOworICAgICAgICAgICAgICAg
IEFTU0VSVChMb2dpY2FsSW1tZWRpYXRlOjpjcmVhdGU2NChHaWdhY2FnZTo6bWFzayhraW5kKSku
aXNWYWxpZCgpKTsKKyAgICAgICAgICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2Fn
ZTo6bWFzayhraW5kKSksIHRlbXBSZWcpOworICAgICAgICAgICAgICAgIGFkZFB0cihzY3JhdGNo
LCB0ZW1wUmVnKTsKKyAgICAgICAgICAgICAgICBiaXRGaWVsZEluc2VydDY0KHRlbXBSZWcsIDAs
IDY0IC0gbnVtYmVyT2ZQQUNCaXRzLCBzdG9yYWdlKTsKKyNlbHNlCisgICAgICAgICAgICAgICAg
YW5kUHRyKFRydXN0ZWRJbW1QdHIoR2lnYWNhZ2U6Om1hc2soa2luZCkpLCBzdG9yYWdlKTsKKyAg
ICAgICAgICAgICAgICBhZGRQdHIoc2NyYXRjaCwgc3RvcmFnZSk7CisjZW5kaWYgLy8gQ1BVKEFS
TTY0RSkKKyAgICAgICAgICAgICAgICBkb25lLmxpbmsodGhpcyk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyNlbmRpZgorCiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgaWYgKGtpbmQgPT0g
R2lnYWNhZ2U6OlByaW1pdGl2ZSkKICAgICAgICAgICAgIHVudGFnQXJyYXlQdHIobGVuZ3RoLCBz
dG9yYWdlKTsKLSNlbHNlCisjZW5kaWYKICAgICAgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwogICAg
ICAgICBVTlVTRURfUEFSQU0oc3RvcmFnZSk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShsZW5ndGgp
OwotI2VuZGlmCi0KLSNpZiBHSUdBQ0FHRV9FTkFCTEVECi0gICAgICAgIGlmICghR2lnYWNhZ2U6
OmlzRW5hYmxlZChraW5kKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAg
IGlmIChraW5kICE9IEdpZ2FjYWdlOjpQcmltaXRpdmUgfHwgR2lnYWNhZ2U6OmlzRGlzYWJsaW5n
UHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZCgpKQotICAgICAgICAgICAgY2FnZVdpdGhvdXRVbnRh
Z2dpbmcoa2luZCwgc3RvcmFnZSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbG9hZFB0
cigmR2lnYWNhZ2U6OmJhc2VQdHIoa2luZCksIHNjcmF0Y2gpOwotICAgICAgICAgICAgSnVtcCBk
b25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCBzY3JhdGNoKTsKLSNpZiBDUFUoQVJNNjRFKQotICAg
ICAgICAgICAgYXV0byB0ZW1wUmVnID0gZ2V0Q2FjaGVkTWVtb3J5VGVtcFJlZ2lzdGVySURBbmRJ
bnZhbGlkYXRlKCk7Ci0gICAgICAgICAgICBtb3ZlKHN0b3JhZ2UsIHRlbXBSZWcpOwotICAgICAg
ICAgICAgYW5kUHRyKFRydXN0ZWRJbW1QdHIoR2lnYWNhZ2U6Om1hc2soa2luZCkpLCB0ZW1wUmVn
KTsKLSAgICAgICAgICAgIGFkZFB0cihzY3JhdGNoLCB0ZW1wUmVnKTsKLSAgICAgICAgICAgIGJp
dEZpZWxkSW5zZXJ0NjQodGVtcFJlZywgMCwgNjQgLSBudW1iZXJPZlBBQ0JpdHMsIHN0b3JhZ2Up
OwotI2Vsc2UKLSAgICAgICAgICAgIGFuZFB0cihUcnVzdGVkSW1tUHRyKEdpZ2FjYWdlOjptYXNr
KGtpbmQpKSwgc3RvcmFnZSk7Ci0gICAgICAgICAgICBhZGRQdHIoc2NyYXRjaCwgc3RvcmFnZSk7
Ci0jZW5kaWYKLSAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsKLQotCi0gICAgICAgIH0KLSNl
bHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoKTsKLSNlbmRpZgotCiAgICAgfQogCiAg
ICAgdm9pZCBlbWl0Q29tcHV0ZUJ1dHRlcmZseUluZGV4aW5nTWFzayhHUFJSZWcgdmVjdG9yTGVu
Z3RoR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHJlc3VsdEdQUikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373289</attachid>
            <date>2019-07-01 17:37:47 -0700</date>
            <delta_ts>2019-07-03 13:22:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199372-20190701173746.patch</filename>
            <type>text/plain</type>
            <size>18851</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
OTc0ZWVkYzE2MDEzMWRiOTRmNDI3YzE4ZGFjNzI5MWZmM2MyOGUyLi4wY2QxNmQxOGYyOTc0YWE4
ZjBiNDMxYWZlMzgxZDhjM2UyZDE2MGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAxOS0wNy0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBQQUNDYWdlIHNob3VsZCBmaXJzdCBjYWdlIGxlYXZpbmcgUEFDIGJp
dHMgaW50YWN0IHRoZW4gYXV0aGVudGljYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIG9yZGVyaW5nIHByZXZlbnRzIHNvbWVvbmUgZnJvbSB0
YWtpbmcgYSBzaWduZWQgcG9pbnRlciBmcm9tCisgICAgICAgIG91dHNpZGUgdGhlIGdpZ2FjYWdl
IGFuZCB1c2luZyBpdCBpbiBhIHN0cnVjdCB0aGF0IGV4cGVjdHMgYSBjYWdlZAorICAgICAgICBw
b2ludGVyLiBQcmV2aW91c2x5LCB0aGUgUEFDQ2FnaW5nIGp1c3QgZG91YmxlIGNoZWNrZWQgdGhh
dCB0aGUgUEFDCisgICAgICAgIGJpdHMgd2VyZSB2YWxpZCBmb3IgdGhlIG9yaWdpbmFsIHBvaW50
ZXIuCisKKworICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAg
ICAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgfCAgICAgICAgICB8CisgICAgICAgICAgICAg
ICB8ICJQQUMiIHwgImJhc2UiIHwgIm9mZnNldCIgKy0tLS0rCisgICAgICAgICAgICAgICB8ICAg
ICAgIHwgICAgICAgIHwgICAgICAgICAgfCAgICB8CisgICAgICAgICAgICAgICArLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKyAgICB8IENhZ2luZworICAgICAgICAgICAgICAgIHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdgorICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwg
ICAgICAgfCAgICAgICAgfCAgICAgICAgICB8CisgICAgICAgICAgICAgICAgfCBCaXQgTWVyZ2Ug
ICAgICB8IDAwMDAwIHwgIGJhc2UgIHwgIm9mZnNldCIgfAorICAgICAgICAgICAgICAgIHwgICAg
ICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICB8ICAgICAgICAgIHwKKyAgICAgICAgICAgICAg
ICB8ICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAg
ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAg
ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgdiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBCaXQgTWVyZ2UKKyAgICAgICAgICArLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgIHwKKyAgICAgICAgICB8ICAgICAgIHwg
ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICB8ICJQQUMiIHwgIGJhc2Ug
IHwgIm9mZnNldCIgKzwtLS0tLS0tLSsKKyAgICAgICAgICB8ICAgICAgIHwgICAgICAgIHwgICAg
ICAgICAgfAorICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAg
ICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAg
ICAgICAgICB8IEF1dGhlbnRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAg
ICAgICAgICAgICAgICB2CisgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
KyAgICAgICAgICB8ICAgICAgIHwgICAgICAgIHwgICAgICAgICAgfAorICAgICAgICAgIHwgQXV0
aCAgfCAgYmFzZSAgfCAib2Zmc2V0IiB8CisgICAgICAgICAgfCAgICAgICB8ICAgICAgICB8ICAg
ICAgICAgIHwKKyAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCisgICAg
ICAgIFRoZSBhYm92ZSBhc2NpaSBhcnQgZ3JhcGggc2hvd3MgaG93IHRoZSBQQUNDYWdlIHN5c3Rl
bSB3b3Jrcy4gVGhlCisgICAgICAgIGtleSB0YWtlIGF3YXkgaXMgdGhhdCBldmVuIGlmIHNvbWVv
bmUgcGFzc2VzIGluIGEgdmFsaWQsIHNpZ25lZAorICAgICAgICBwb2ludGVyIG91dHNpZGUgdGhl
IGNhZ2UgaXQgd2lsbCBzdGlsbCBmYWlsIHRvIGF1dGhlbnRpY2F0ZSBhcyB0aGUKKyAgICAgICAg
ImJhc2UiIGJpdHMgd2lsbCBjaGFuZ2UgYmVmb3JlIGF1dGhlbnRpY2F0aW9uLgorCisKKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAgICAgKiBhc3NlbWJs
ZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1
cmVCaXQpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjYWdlZCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5
SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhZ2VDb25kaXRpb25h
bGx5KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorCiAyMDE5
LTA2LTI2ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IHJlbW92ZSB1bm5lZWRlZCBkaWRCZWNvbWVQcm90b3R5cGUoKSBjYWxscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBmNmY4MTA4
ZTIwZjIxMzAxYmI1MWNkMzFhNTI3Yjg0NzE3OTY5ZTIwLi43ZGFhZTc1NjJmZmM1NjQ5NmZmNmIz
NTA5NTIwOTc5MGY5ZjBhMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTA3LTAxICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBBQ0NhZ2Ugc2hv
dWxkIGZpcnN0IGNhZ2UgbGVhdmluZyBQQUMgYml0cyBpbnRhY3QgdGhlbiBhdXRoZW50aWNhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTM3Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Nh
Z2VkUHRyLmg6CisgICAgICAgIChXVEY6OkNhZ2VkUHRyOjpnZXQgY29uc3QpOgorICAgICAgICAo
V1RGOjpDYWdlZFB0cjo6Z2V0TWF5QmVOdWxsIGNvbnN0KToKKyAgICAgICAgKFdURjo6Q2FnZWRQ
dHI6Om1lcmdlUG9pbnRlcnMpOgorCiAyMDE5LTA2LTI1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhZ2VkUHRyIGRvZXNuJ3QgbWVyZ2UgUEFDIGJp
dHMgYmFjayBpbnRvIHRoZSByZXN1bHRpbmcgY2FnZWQgcG9pbnRlci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwppbmRleCA3
OTkzYjcxYzhiNDMwOWMzYzQ4NWQ4MDExZTc3MzQwMzcyN2IzZDQzLi4xNTI0MTkxMzFkNDI5MTg2
ZDZhZjFjMmEzNDE2ZDg0ODg0YjA0ZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTktMDctMDEgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUEFDQ2FnZSBzaG91bGQgZmlyc3QgY2FnZSBsZWF2aW5nIFBBQyBiaXRzIGludGFjdCB0aGVu
IGF1dGhlbnRpY2F0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk5MzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBibWFsbG9jL1Byb2Nlc3NDaGVjay5tbToKKyAgICAgICAgKGJtYWxsb2M6OnNob3Vs
ZFByb2Nlc3NVbmNvbmRpdGlvbmFsbHlVc2VCbWFsbG9jKToKKwogMjAxOS0wNi0yNCAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtibWFsbG9jXSBJc29IZWFw
IHNoYXJlZCB0aWVyIHRocmVzaG9sZCBpcyBzbWFsbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCmluZGV4IGZkN2VlYzgw
ODU1MWJkZjcyODdhZmMxYjFlYzQ1M2YyZjgyMDgyZDIuLjljNmU3NzVlNTE3NDQ1ZWZjYjVjYjhj
MDc4Yjc5YjA1YTA4OTE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgKQEAgLTQwLDYgKzQwLDcgQEAgdXNpbmcg
QXNzZW1ibGVyID0gVEFSR0VUX0FTU0VNQkxFUjsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjRF
IDogcHVibGljIE1hY3JvQXNzZW1ibGVyQVJNNjQgewogcHVibGljOgogICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgbnVtYmVyT2ZQQUNCaXRzID0gMjU7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50cHRyX3Qgbm9uUEFDQml0c01hc2sgPSAoMXVsbCA8PCAoNjQgLSBudW1iZXJPZlBBQ0Jp
dHMpKSAtIDE7CiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdGFnUmV0dXJuQWRkcmVzcygpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFz
bS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRl
eCAxMDUwYjM5OTgzZTRlNjUwNTI4MjRjMDRmMGJiMTI1NGEzMTNlMmM4Li4zY2JhZWQ4YTQ3NTFk
ZTU5MWFjOGQwNGE1NzljN2FmZmZiMTM3NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMTAxNSw2ICsxMDE1LDggQEAgdm9pZCB0ZXN0TW92
ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCgpCiAKIHN0YXRpYyB2b2lkIHRlc3RDYWdlUHJlc2VydmVz
UEFDRmFpbHVyZUJpdCgpCiB7CisjaWYgR0lHQUNBR0VfRU5BQkxFRAorICAgIEFTU0VSVCghR2ln
YWNhZ2U6OmlzRGlzYWJsaW5nUHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZCgpKTsKICAgICBhdXRv
IGNhZ2UgPSBjb21waWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2Fj
YWdlOjpQcmltaXRpdmUsIEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwpAQCAtMTAyNSwxMCArMTAyNywxNSBAQCBzdGF0
aWMgdm9pZCB0ZXN0Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1cmVCaXQoKQogCiAgICAgdm9pZCogcHRy
ID0gR2lnYWNhZ2U6OnRyeU1hbGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCAxKTsKICAgICB2b2lk
KiB0YWdnZWRQdHIgPSB0YWdBcnJheVB0cihwdHIsIDEpOwotICAgIGRhdGFMb2dMbigic3RhcnRp
bmcgdGVzdCIpOworICAgIEFTU0VSVChoYXNPbmVCaXRTZXQoR2lnYWNhZ2U6OnNpemUoR2lnYWNh
Z2U6OlByaW1pdGl2ZSkgPDwgMikpOworICAgIHZvaWQqIG5vdENhZ2VkUHRyID0gcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0cikgKyAoR2lnYWNh
Z2U6OnNpemUoR2lnYWNhZ2U6OlByaW1pdGl2ZSkgPDwgMikpOworICAgIENIRUNLX05PVF9FUShH
aWdhY2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgbm90Q2FnZWRQdHIpLCBub3RDYWdl
ZFB0cik7CisgICAgdm9pZCogdGFnZ2VkTm90Q2FnZWRQdHIgPSB0YWdBcnJheVB0cihub3RDYWdl
ZFB0ciwgMSk7CisKICAgICBpZiAoaXNBUk02NEUoKSkgewogICAgICAgICAvLyBGSVhNRTogVGhp
cyB3b24ndCB3b3JrIGlmIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzIHRyYXAgYnV0IEkgZG9uJ3Qg
a25vdyBob3cgdG8gdGVzdCBmb3IgdGhhdCByaWdodCBub3cuCiAgICAgICAgIENIRUNLX05PVF9F
UShpbnZva2U8dm9pZCo+KGNhZ2UsIHRhZ2dlZFB0ciwgMiksIHB0cik7CisgICAgICAgIENIRUNL
X0VRKGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2VkTm90Q2FnZWRQdHIsIDEpLCB1bnRhZ0FycmF5
UHRyKHRhZ2dlZFB0ciwgMikpOwogICAgIH0gZWxzZQogICAgICAgICBDSEVDS19FUShpbnZva2U8
dm9pZCo+KGNhZ2UsIHRhZ2dlZFB0ciwgMiksIHB0cik7CiAKQEAgLTEwNDIsMTYgKzEwNDksMTcg
QEAgc3RhdGljIHZvaWQgdGVzdENhZ2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkKICAgICAgICAg
aml0LnJldCgpOwogICAgIH0pOwogCisgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0
aG91dEF1dGhlbnRpY2F0aW9uLCB0YWdnZWRQdHIpLCB0YWdnZWRQdHIpOwogICAgIGlmIChpc0FS
TTY0RSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdvbid0IHdvcmsgaWYgYXV0aGVudGlj
YXRpb24gZmFpbHVyZXMgdHJhcCBidXQgSSBkb24ndCBrbm93IGhvdyB0byB0ZXN0IGZvciB0aGF0
IHJpZ2h0IG5vdy4KLSAgICAgICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhv
dXRBdXRoZW50aWNhdGlvbiwgdW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDIpKSwgcHRyKTsKLSAg
ICB9IGVsc2UKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhl
bnRpY2F0aW9uLCB1bnRhZ0FycmF5UHRyKHRhZ2dlZFB0ciwgMikpLCBwdHIpOwotCi0gICAgQ0hF
Q0tfRVEodW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDEpLCBwdHIpOwotICAgIENIRUNLX0VRKGlu
dm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdW50YWdBcnJheVB0cih0YWdn
ZWRQdHIsIDEpKSwgcHRyKTsKKyAgICAgICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2Fn
ZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdGFnZ2VkTm90Q2FnZWRQdHIpLCB0YWdnZWROb3RDYWdl
ZFB0cik7CisgICAgICAgIENIRUNLX05PVF9FUSh1bnRhZ0FycmF5UHRyKGludm9rZTx2b2lkKj4o
Y2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdGFnZ2VkTm90Q2FnZWRQdHIpLCAxKSwgbm90Q2Fn
ZWRQdHIpOworICAgICAgICBDSEVDS19OT1RfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1
dGhlbnRpY2F0aW9uLCB0YWdnZWROb3RDYWdlZFB0ciksIHRhZ2dlZFB0cik7CisgICAgICAgIENI
RUNLX05PVF9FUSh1bnRhZ0FycmF5UHRyKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50
aWNhdGlvbiwgdGFnZ2VkTm90Q2FnZWRQdHIpLCAxKSwgcHRyKTsKKyAgICB9CiAKICAgICBHaWdh
Y2FnZTo6ZnJlZShHaWdhY2FnZTo6UHJpbWl0aXZlLCBwdHIpOworI2VuZGlmCiB9CiAKICNkZWZp
bmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBjODkwMTBhMTU1NGFj
NzJjNTZjNjFhMzAzNjcwYjIwNzllZjFmNzVmLi4zMzA2ZDUzYTFjZGI0YjVkNzRjOTkxOGI3YTQw
YmJlYzQ3N2I2NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwCkBAIC0xNDE3NywxOCArMTQxNzcsNyBAQCBwcml2YXRlOgogCiAgICAgTFZhbHVl
IGNhZ2VkKEdpZ2FjYWdlOjpLaW5kIGtpbmQsIExWYWx1ZSBwdHIsIExWYWx1ZSBiYXNlKQogICAg
IHsKLSNpZiBDUFUoQVJNNjRFKQotICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0
aXZlKSB7Ci0gICAgICAgICAgICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNlLCBtX2hl
YXBzLkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCk7Ci0gICAgICAgICAgICBwdHIgPSB1bnRhZ0Fy
cmF5UHRyKHB0ciwgc2l6ZSk7Ci0gICAgICAgIH0KLSNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJB
TShraW5kKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGJhc2UpOwotI2VuZGlmCi0KICNpZiBHSUdB
Q0FHRV9FTkFCTEVECi0gICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKICAgICAgICAgaWYgKCFH
aWdhY2FnZTo6aXNFbmFibGVkKGtpbmQpKQogICAgICAgICAgICAgcmV0dXJuIHB0cjsKICAgICAg
ICAgCkBAIC0xNDIwNiw3ICsxNDE5NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIExWYWx1ZSByZXN1
bHQgPSBtX291dC5hZGQobWFza2VkLCBiYXNlUHRyKTsKIAogI2lmIENQVShBUk02NEUpCi0gICAg
ICAgIHsKKyAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkgewogICAgICAg
ICAgICAgUGF0Y2hwb2ludFZhbHVlKiBtZXJnZSA9IG1fb3V0LnBhdGNocG9pbnQocG9pbnRlclR5
cGUoKSk7CiAgICAgICAgICAgICBtZXJnZS0+YXBwZW5kKHJlc3VsdCwgQjM6OlZhbHVlUmVwKEIz
OjpWYWx1ZVJlcDo6U29tZUxhdGVSZWdpc3RlcikpOwogICAgICAgICAgICAgbWVyZ2UtPmFwcGVu
ZFNvbWVSZWdpc3RlcihwdHIpOwpAQCAtMTQyMTQsOSArMTQyMDMsMTIgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICBqaXQubW92ZShwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7
CiAgICAgICAgICAgICAgICAgaml0LmJpdEZpZWxkSW5zZXJ0NjQocGFyYW1zWzFdLmdwcigpLCAw
LCA2NCAtIE1hY3JvQXNzZW1ibGVyOjpudW1iZXJPZlBBQ0JpdHMsIHBhcmFtc1swXS5ncHIoKSk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJlc3VsdCA9IG1lcmdlOworCisgICAgICAg
ICAgICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTQXJyYXlCdWZm
ZXJWaWV3X2xlbmd0aCk7CisgICAgICAgICAgICByZXN1bHQgPSB1bnRhZ0FycmF5UHRyKG1lcmdl
LCBzaXplKTsKICAgICAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8gQ1BVKEFSTTY0RSkKKwogICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhhdCBCMyBkb2Vzbid0IHRyeSB0byBkbyBzbWFydCByZWFzc29j
aWF0aW9uIG9mIHRoZXNlIHBvaW50ZXIgYml0cy4KICAgICAgICAgLy8gRklYTUU6IEluIGFuIGlk
ZWFsIHdvcmxkLCBCMyB3b3VsZCBub3QgZG8gaGFybWZ1bCByZWFzc29jaWF0aW9ucywgYW5kIGlm
IGl0IGRpZCwgaXQgd291bGQgYmUgYWJsZQogICAgICAgICAvLyB0byB1bmRvIHRoZW0gZHVyaW5n
IGNvbnN0YW50IGhvaXN0aW5nIGFuZCByZWdhbGxvYy4gQXMgaXQgc3RhbmRzLCBpZiB5b3UgcmVt
b3ZlIHRoaXMgdGhlbiBPY3RhbmUKQEAgLTE0MjMwLDYgKzE0MjIyLDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ5Mwog
ICAgICAgICByZXR1cm4gbV9vdXQub3BhcXVlKHJlc3VsdCk7CiAjZW5kaWYKKworICAgICAgICBV
TlVTRURfUEFSQU0oa2luZCk7CisgICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKICAgICAgICAg
cmV0dXJuIHB0cjsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaAppbmRleCBhNzdkNDNhNTAxMDg2NzMwZDdkYzk5ODVmNDJkYjUyMTlhMmY5
MjU5Li4zZWVhZDJkOGUwNmVmNWM2ODkyMzQ4NTdjYjJhMGMwZDllNWVhZmQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTE1ODYsNDIgKzE1ODYs
NDEgQEAgcHVibGljOgogICAgIC8vIGxlbmd0aCBtYXkgYmUgdGhlIHNhbWUgcmVnaXN0ZXIgYXMg
c2NyYXRjaC4KICAgICB2b2lkIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpLaW5kIGtpbmQs
IEdQUlJlZyBzdG9yYWdlLCBHUFJSZWcgbGVuZ3RoLCBHUFJSZWcgc2NyYXRjaCkKICAgICB7Cisj
aWYgR0lHQUNBR0VfRU5BQkxFRAorICAgICAgICBpZiAoR2lnYWNhZ2U6OmlzRW5hYmxlZChraW5k
KSkgeworICAgICAgICAgICAgaWYgKGtpbmQgIT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSB8fCBHaWdh
Y2FnZTo6aXNEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZURpc2FibGVkKCkpCisgICAgICAgICAg
ICAgICAgY2FnZVdpdGhvdXRVbnRhZ2dpbmcoa2luZCwgc3RvcmFnZSk7CisgICAgICAgICAgICBl
bHNlIHsKKyNpZiBDUFUoQVJNNjRFKQorICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gc2Ny
YXRjaCkKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaCA9IGdldENhY2hlZE1lbW9yeVRlbXBS
ZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgICAgICAgICAgbG9hZFB0
cigmR2lnYWNhZ2U6OmJhc2VQdHIoa2luZCksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIEp1
bXAgZG9uZSA9IGJyYW5jaFRlc3Q2NChaZXJvLCBzY3JhdGNoKTsKKyNpZiBDUFUoQVJNNjRFKQor
ICAgICAgICAgICAgICAgIEdQUlJlZyB0ZW1wUmVnID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3Rl
cklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAgICAgIG1vdmUoc3RvcmFnZSwgdGVtcFJl
Zyk7CisgICAgICAgICAgICAgICAgQVNTRVJUKExvZ2ljYWxJbW1lZGlhdGU6OmNyZWF0ZTY0KEdp
Z2FjYWdlOjptYXNrKGtpbmQpKS5pc1ZhbGlkKCkpOworICAgICAgICAgICAgICAgIGFuZFB0cihU
cnVzdGVkSW1tUHRyKEdpZ2FjYWdlOjptYXNrKGtpbmQpKSwgdGVtcFJlZyk7CisgICAgICAgICAg
ICAgICAgYWRkUHRyKHNjcmF0Y2gsIHRlbXBSZWcpOworICAgICAgICAgICAgICAgIGJpdEZpZWxk
SW5zZXJ0NjQodGVtcFJlZywgMCwgNjQgLSBudW1iZXJPZlBBQ0JpdHMsIHN0b3JhZ2UpOworI2Vs
c2UKKyAgICAgICAgICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6bWFzayhr
aW5kKSksIHN0b3JhZ2UpOworICAgICAgICAgICAgICAgIGFkZFB0cihzY3JhdGNoLCBzdG9yYWdl
KTsKKyNlbmRpZiAvLyBDUFUoQVJNNjRFKQorICAgICAgICAgICAgICAgIGRvbmUubGluayh0aGlz
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisKICNpZiBDUFUoQVJNNjRFKQog
ICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKQogICAgICAgICAgICAgdW50
YWdBcnJheVB0cihsZW5ndGgsIHN0b3JhZ2UpOwotI2Vsc2UKKyNlbmRpZgogICAgICAgICBVTlVT
RURfUEFSQU0oa2luZCk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlKTsKICAgICAgICAg
VU5VU0VEX1BBUkFNKGxlbmd0aCk7Ci0jZW5kaWYKLQotI2lmIEdJR0FDQUdFX0VOQUJMRUQKLSAg
ICAgICAgaWYgKCFHaWdhY2FnZTo6aXNFbmFibGVkKGtpbmQpKQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAKLSAgICAgICAgaWYgKGtpbmQgIT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSB8fCBH
aWdhY2FnZTo6aXNEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZURpc2FibGVkKCkpCi0gICAgICAg
ICAgICBjYWdlV2l0aG91dFVudGFnZ2luZyhraW5kLCBzdG9yYWdlKTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBsb2FkUHRyKCZHaWdhY2FnZTo6YmFzZVB0cihraW5kKSwgc2NyYXRjaCk7
Ci0gICAgICAgICAgICBKdW1wIGRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHNjcmF0Y2gpOwot
I2lmIENQVShBUk02NEUpCi0gICAgICAgICAgICBhdXRvIHRlbXBSZWcgPSBnZXRDYWNoZWRNZW1v
cnlUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKLSAgICAgICAgICAgIG1vdmUoc3RvcmFn
ZSwgdGVtcFJlZyk7Ci0gICAgICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6
bWFzayhraW5kKSksIHRlbXBSZWcpOwotICAgICAgICAgICAgYWRkUHRyKHNjcmF0Y2gsIHRlbXBS
ZWcpOwotICAgICAgICAgICAgYml0RmllbGRJbnNlcnQ2NCh0ZW1wUmVnLCAwLCA2NCAtIG51bWJl
ck9mUEFDQml0cywgc3RvcmFnZSk7Ci0jZWxzZQotICAgICAgICAgICAgYW5kUHRyKFRydXN0ZWRJ
bW1QdHIoR2lnYWNhZ2U6Om1hc2soa2luZCkpLCBzdG9yYWdlKTsKLSAgICAgICAgICAgIGFkZFB0
cihzY3JhdGNoLCBzdG9yYWdlKTsKLSNlbmRpZgotICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMp
OwotCi0KLSAgICAgICAgfQotI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gpOwot
I2VuZGlmCi0KICAgICB9CiAKICAgICB2b2lkIGVtaXRDb21wdXRlQnV0dGVyZmx5SW5kZXhpbmdN
YXNrKEdQUlJlZyB2ZWN0b3JMZW5ndGhHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBHUFJSZWcgcmVz
dWx0R1BSKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjY0LmFzbQppbmRleCA5MDM2MzVhZjUyNWE4YjFmNDQ3MDYwMzE0MzA3ZDEwODNk
MzYzNWFkLi42YmE5NzIwNjNlNjBiNjhkM2RiY2ZhNDlmOGQ5YzlkOTVmY2MzZjViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQpAQCAtNDIyLDM3ICs0MjIsMzYgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3Ao
KQogICAgICAgICBlbmQpCiBlbmQKIAotbWFjcm8gdW5jYWdlKGJhc2VQdHIsIG1hc2ssIHB0ciwg
c2NyYXRjaE9yTGVuZ3RoKQorbWFjcm8gY2FnZShiYXNlUHRyLCBtYXNrLCBwdHIsIHNjcmF0Y2gp
CiAgICAgaWYgR0lHQUNBR0VfRU5BQkxFRCBhbmQgbm90IChDX0xPT1Agb3IgQ19MT09QX1dJTikK
LSAgICAgICAgbG9hZHAgYmFzZVB0ciwgc2NyYXRjaE9yTGVuZ3RoCi0gICAgICAgIGJ0cHogc2Ny
YXRjaE9yTGVuZ3RoLCAuZG9uZQorICAgICAgICBsb2FkcCBiYXNlUHRyLCBzY3JhdGNoCisgICAg
ICAgIGJ0cHogc2NyYXRjaCwgLmRvbmUKICAgICAgICAgYW5kcCBtYXNrLCBwdHIKLSAgICAgICAg
YWRkcCBzY3JhdGNoT3JMZW5ndGgsIHB0cgorICAgICAgICBhZGRwIHNjcmF0Y2gsIHB0cgogICAg
IC5kb25lOgogICAgIGVuZAogZW5kCiAKLW1hY3JvIGxvYWRDYWdlZFByaW1pdGl2ZShzb3VyY2Us
IGRlc3QsIHNjcmF0Y2hPckxlbmd0aCkKLSAgICBsb2FkcCBzb3VyY2UsIGRlc3QKK21hY3JvIGNh
Z2VkUHJpbWl0aXZlKHB0ciwgbGVuZ3RoLCBzY3JhdGNoLCBzY3JhdGNoMikKICAgICBpZiBBUk02
NEUKLSAgICAgICAgY29uc3QgcmVzdWx0ID0gdDcKLSAgICAgICAgdW50YWdBcnJheVB0ciBzY3Jh
dGNoT3JMZW5ndGgsIGRlc3QKLSAgICAgICAgbW92ZSBkZXN0LCByZXN1bHQKKyAgICAgICAgY29u
c3Qgc291cmNlID0gc2NyYXRjaDIKKyAgICAgICAgbW92ZSBwdHIsIHNjcmF0Y2gyCiAgICAgZWxz
ZQotICAgICAgICBjb25zdCByZXN1bHQgPSBkZXN0CisgICAgICAgIGNvbnN0IHNvdXJjZSA9IHB0
cgogICAgIGVuZAogICAgIGlmIEdJR0FDQUdFX0VOQUJMRUQKLSAgICAgICAgdW5jYWdlKF9nX2dp
Z2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OnByaW1pdGl2ZSwgY29uc3RleHBy
IEdpZ2FjYWdlOjpwcmltaXRpdmVHaWdhY2FnZU1hc2ssIHJlc3VsdCwgc2NyYXRjaE9yTGVuZ3Ro
KQorICAgICAgICBjYWdlKF9nX2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6
OnByaW1pdGl2ZSwgY29uc3RleHByIEdpZ2FjYWdlOjpwcmltaXRpdmVHaWdhY2FnZU1hc2ssIHNv
dXJjZSwgc2NyYXRjaCkKICAgICAgICAgaWYgQVJNNjRFCiAgICAgICAgICAgICBjb25zdCBudW1i
ZXJPZlBBQ0JpdHMgPSBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mUEFDQml0cwot
ICAgICAgICAgICAgYmZpcSByZXN1bHQsIDAsIDY0IC0gbnVtYmVyT2ZQQUNCaXRzLCBkZXN0Cisg
ICAgICAgICAgICBiZmlxIHNjcmF0Y2gyLCAwLCA2NCAtIG51bWJlck9mUEFDQml0cywgcHRyCisg
ICAgICAgICAgICB1bnRhZ0FycmF5UHRyIGxlbmd0aCwgcHRyCiAgICAgICAgIGVuZAogICAgIGVu
ZAogZW5kCiAKIG1hY3JvIGxvYWRDYWdlZEpTVmFsdWUoc291cmNlLCBkZXN0LCBzY3JhdGNoT3JM
ZW5ndGgpCiAgICAgbG9hZHAgc291cmNlLCBkZXN0Ci0gICAgdW5jYWdlKF9nX2dpZ2FjYWdlQmFz
ZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OmpzVmFsdWUsIGNvbnN0ZXhwciBHaWdhY2FnZTo6
anNWYWx1ZUdpZ2FjYWdlTWFzaywgZGVzdCwgc2NyYXRjaE9yTGVuZ3RoKQorICAgIGNhZ2UoX2df
Z2lnYWNhZ2VCYXNlUHRycyArIEdpZ2FjYWdlOjpCYXNlUHRyczo6anNWYWx1ZSwgY29uc3RleHBy
IEdpZ2FjYWdlOjpqc1ZhbHVlR2lnYWNhZ2VNYXNrLCBkZXN0LCBzY3JhdGNoT3JMZW5ndGgpCiBl
bmQKIAogbWFjcm8gbG9hZFZhcmlhYmxlKGdldCwgZmllbGROYW1lLCB2YWx1ZVJlZykKQEAgLTE1
MjIsMTUgKzE1MjEsMTcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdl
dEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWQKICAgICAjIFN3ZWV0LCBu
b3cgd2Uga25vdyB0aGF0IHdlIGhhdmUgYSB0eXBlZCBhcnJheS4gRG8gc29tZSBiYXNpYyB0aGlu
Z3Mgbm93LgogCiAgICAgaWYgQVJNNjRFCi0gICAgICAgIGNvbnN0IHNjcmF0Y2hPckxlbmd0aCA9
IHQ2Ci0gICAgICAgIGxvYWRpIEpTQXJyYXlCdWZmZXJWaWV3OjptX2xlbmd0aFt0MF0sIHNjcmF0
Y2hPckxlbmd0aAotICAgICAgICBiaWFlcSB0MSwgc2NyYXRjaE9yTGVuZ3RoLCAub3BHZXRCeVZh
bFNsb3cKKyAgICAgICAgY29uc3QgbGVuZ3RoID0gdDYKKyAgICAgICAgY29uc3Qgc2NyYXRjaCA9
IHQ3CisgICAgICAgIGxvYWRpIEpTQXJyYXlCdWZmZXJWaWV3OjptX2xlbmd0aFt0MF0sIGxlbmd0
aAorICAgICAgICBiaWFlcSB0MSwgbGVuZ3RoLCAub3BHZXRCeVZhbFNsb3cKICAgICBlbHNlCi0g
ICAgICAgIGNvbnN0IHNjcmF0Y2hPckxlbmd0aCA9IHQwCisgICAgICAgICMgbGVuZ3RoIGFuZCBz
Y3JhdGNoIGFyZSBpbnRlbnRpb25hbGx5IHVuZGVmaW5lZCBvbiB0aGlzIGJyYW5jaCBiZWNhdXNl
IHRoZXkgYXJlIG5vdCB1c2VkIG9uIG90aGVyIHBsYXRmb3Jtcy4KICAgICAgICAgYmlhZXEgdDEs
IEpTQXJyYXlCdWZmZXJWaWV3OjptX2xlbmd0aFt0MF0sIC5vcEdldEJ5VmFsU2xvdwogICAgIGVu
ZAogCi0gICAgbG9hZENhZ2VkUHJpbWl0aXZlKEpTQXJyYXlCdWZmZXJWaWV3OjptX3ZlY3Rvclt0
MF0sIHQzLCBzY3JhdGNoT3JMZW5ndGgpCisgICAgbG9hZHAgSlNBcnJheUJ1ZmZlclZpZXc6Om1f
dmVjdG9yW3QwXSwgdDMKKyAgICBjYWdlZFByaW1pdGl2ZSh0MywgbGVuZ3RoLCB0MCwgc2NyYXRj
aCkKIAogICAgICMgTm93IGJpc2VjdCB0aHJvdWdoIHRoZSB2YXJpb3VzIHR5cGVzOgogICAgICMg
ICAgSW50OEFycmF5VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NhZ2VkUHRyLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9DYWdlZFB0ci5oCmluZGV4IGNhNDczYzRiYWFhOTk1NWJkZTg1NTZj
Y2Q1ZWIxYjllMTAzY2FhZGMuLmI0MzgzMDE4YjY4YThmMTA2YWQ1ZmM3ZjU3ZGI5NjkwYTU2M2Uy
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NhZ2VkUHRyLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvQ2FnZWRQdHIuaApAQCAtNDksMjAgKzQ5LDIxIEBAIHB1YmxpYzoKICAgICAgICAgOiBt
X3B0cihzaG91bGRUYWcgPyB0YWdBcnJheVB0cihwdHIsIHNpemUpIDogcHRyKQogICAgIHsgfQog
Ci0KICAgICBUKiBnZXQodW5zaWduZWQgc2l6ZSkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX3B0cik7CiAgICAgICAgIFQqIHB0ciA9IFB0clRyYWl0czo6dW53cmFwKG1fcHRyKTsKLSAg
ICAgICAgVCogdW50YWdnZWRQdHIgPSBzaG91bGRUYWcgPyB1bnRhZ0FycmF5UHRyKHB0ciwgc2l6
ZSkgOiBwdHI7Ci0gICAgICAgIHJldHVybiBtZXJnZVBvaW50ZXJzKHVudGFnZ2VkUHRyLCBHaWdh
Y2FnZTo6Y2FnZWQoa2luZCwgcHRyKSk7CisgICAgICAgIFQqIGNhZ2VkUHRyID0gR2lnYWNhZ2U6
OmNhZ2VkKGtpbmQsIHB0cik7CisgICAgICAgIFQqIHVudGFnZ2VkUHRyID0gc2hvdWxkVGFnID8g
dW50YWdBcnJheVB0cihtZXJnZVBvaW50ZXJzKHB0ciwgY2FnZWRQdHIpLCBzaXplKSA6IGNhZ2Vk
UHRyOworICAgICAgICByZXR1cm4gdW50YWdnZWRQdHI7CiAgICAgfQogCiAgICAgVCogZ2V0TWF5
QmVOdWxsKHVuc2lnbmVkIHNpemUpIGNvbnN0CiAgICAgewogICAgICAgICBUKiBwdHIgPSBQdHJU
cmFpdHM6OnVud3JhcChtX3B0cik7Ci0gICAgICAgIFQqIHVudGFnZ2VkUHRyID0gc2hvdWxkVGFn
ID8gdW50YWdBcnJheVB0cihwdHIsIHNpemUpIDogcHRyOwotICAgICAgICByZXR1cm4gbWVyZ2VQ
b2ludGVycyh1bnRhZ2dlZFB0ciwgR2lnYWNhZ2U6OmNhZ2VkTWF5QmVOdWxsKGtpbmQsIHB0cikp
OworICAgICAgICBUKiBjYWdlZFB0ciA9IEdpZ2FjYWdlOjpjYWdlZE1heUJlTnVsbChraW5kLCBw
dHIpOworICAgICAgICBUKiB1bnRhZ2dlZFB0ciA9IHNob3VsZFRhZyA/IHVudGFnQXJyYXlQdHIo
bWVyZ2VQb2ludGVycyhwdHIsIGNhZ2VkUHRyKSwgc2l6ZSkgOiBjYWdlZFB0cjsKKyAgICAgICAg
cmV0dXJuIHVudGFnZ2VkUHRyOwogICAgIH0KIAogICAgIFQqIGdldFVuc2FmZSgpIGNvbnN0CkBA
IC0xMjQsMTEgKzEyNSwxNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJvdGVjdGVkOgotICAg
IHN0YXRpYyBpbmxpbmUgVCogbWVyZ2VQb2ludGVycyhjb25zdCBUKiB1bnRhZ2dlZFB0ciwgY29u
c3QgVCogdW5jYWdlZFB0cikKKyAgICBzdGF0aWMgaW5saW5lIFQqIG1lcmdlUG9pbnRlcnMoVCog
c291cmNlUHRyLCBUKiBjYWdlZFB0cikKICAgICB7CisjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAg
Y29uc3RleHByIHVuc2lnbmVkIG51bWJlck9mUEFDQml0cyA9IDI1OwogICAgICAgICBjb25zdGV4
cHIgdWludHB0cl90IG1hc2sgPSAoMXVsbCA8PCAoKHNpemVvZihUKikgKiBDSEFSX0JJVCkgLSBu
dW1iZXJPZlBBQ0JpdHMpKSAtIDE7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFQq
PigocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHVudGFnZ2VkUHRyKSAmIH5tYXNrKSB8IChy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4odW5jYWdlZFB0cikgJiBtYXNrKSk7CisgICAgICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFQqPigocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KHNvdXJjZVB0cikgJiB+bWFzaykgfCAocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNhZ2Vk
UHRyKSAmIG1hc2spKTsKKyNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShzb3VyY2VQdHIpOwor
ICAgICAgICByZXR1cm4gY2FnZWRQdHI7CisjZW5kaWYKICAgICB9CiAKICAgICB0eXBlbmFtZSBQ
dHJUcmFpdHM6OlN0b3JhZ2VUeXBlIG1fcHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9Qcm9jZXNzQ2hlY2subW0gYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1Byb2Nlc3ND
aGVjay5tbQppbmRleCAzYmI2M2YzNTI1NDI5ODk4YjA5OTRjYzg1MTc5M2I1MTk1ZjUyYjAyLi5i
ODcyYzU5ZjRmZTQ0Y2MwYjM3NmQ0MGFhM2Y5YTc3ZTEzMWU2Y2ExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL1Byb2Nlc3NDaGVjay5tbQorKysgYi9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1Byb2Nlc3NDaGVjay5tbQpAQCAtNjYsNyArNjYsOSBAQCBib29sIHNob3VsZFByb2Nl
c3NVbmNvbmRpdGlvbmFsbHlVc2VCbWFsbG9jKCkKICAgICAgICAgICAgIHJlc3VsdCA9IGNvbnRh
aW5zKEAiY29tLmFwcGxlLldlYktpdCIpIHx8IGNvbnRhaW5zKEAic2FmYXJpIik7CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc05hbWUgPSBbW05TUHJvY2Vz
c0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXTsKLSAgICAgICAgICAgIHJlc3VsdCA9IFtw
cm9jZXNzTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJqc2MiXSB8fCBbcHJvY2Vzc05hbWUgaXNFcXVh
bFRvU3RyaW5nOkAid2FzbSJdOworICAgICAgICAgICAgcmVzdWx0ID0gW3Byb2Nlc3NOYW1lIGlz
RXF1YWxUb1N0cmluZzpAImpzYyJdCisgICAgICAgICAgICAgICAgfHwgW3Byb2Nlc3NOYW1lIGlz
RXF1YWxUb1N0cmluZzpAIndhc20iXQorICAgICAgICAgICAgICAgIHx8IFtwcm9jZXNzTmFtZSBo
YXNQcmVmaXg6QCJ0ZXN0Il07CiAgICAgICAgIH0KICAgICB9KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373409</attachid>
            <date>2019-07-03 13:24:34 -0700</date>
            <delta_ts>2019-07-03 13:24:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199372-20190703132433.patch</filename>
            <type>text/plain</type>
            <size>19284</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmRhOTgxNTM5ZjMzYmI0MjE2YzQzYmU4ZGViOTQxOWQzOWNkZjViLi5lMmEzNjRlMWU4ZjM2NTFi
NDE2MzQwZTUwNmViZTc5OThlNmY4NjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAxOS0wNy0wMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBQQUNDYWdlIHNob3VsZCBmaXJzdCBjYWdlIGxlYXZpbmcgUEFDIGJp
dHMgaW50YWN0IHRoZW4gYXV0aGVudGljYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJh
cmF0aS4KKworICAgICAgICBUaGlzIG9yZGVyaW5nIHByZXZlbnRzIHNvbWVvbmUgZnJvbSB0YWtp
bmcgYSBzaWduZWQgcG9pbnRlciBmcm9tCisgICAgICAgIG91dHNpZGUgdGhlIGdpZ2FjYWdlIGFu
ZCB1c2luZyBpdCBpbiBhIHN0cnVjdCB0aGF0IGV4cGVjdHMgYSBjYWdlZAorICAgICAgICBwb2lu
dGVyLiBQcmV2aW91c2x5LCB0aGUgUEFDQ2FnaW5nIGp1c3QgZG91YmxlIGNoZWNrZWQgdGhhdCB0
aGUgUEFDCisgICAgICAgIGJpdHMgd2VyZSB2YWxpZCBmb3IgdGhlIG9yaWdpbmFsIHBvaW50ZXIu
CisKKworICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAg
ICAgICAgICAgIHwgICAgICAgfCAgICAgICAgfCAgICAgICAgICB8CisgICAgICAgICAgICAgICB8
ICJQQUMiIHwgImJhc2UiIHwgIm9mZnNldCIgKy0tLS0rCisgICAgICAgICAgICAgICB8ICAgICAg
IHwgICAgICAgIHwgICAgICAgICAgfCAgICB8CisgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKyAgICB8IENhZ2luZworICAgICAgICAgICAgICAgIHwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdgorICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICAg
ICAgfCAgICAgICAgfCAgICAgICAgICB8CisgICAgICAgICAgICAgICAgfCBCaXQgTWVyZ2UgICAg
ICB8IDAwMDAwIHwgIGJhc2UgIHwgIm9mZnNldCIgfAorICAgICAgICAgICAgICAgIHwgICAgICAg
ICAgICAgICAgfCAgICAgICB8ICAgICAgICB8ICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICB8
ICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAgICAg
ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAg
fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgdiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBCaXQgTWVyZ2UKKyAgICAgICAgICArLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgIHwKKyAgICAgICAgICB8ICAgICAgIHwgICAg
ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICB8ICJQQUMiIHwgIGJhc2UgIHwg
Im9mZnNldCIgKzwtLS0tLS0tLSsKKyAgICAgICAgICB8ICAgICAgIHwgICAgICAgIHwgICAgICAg
ICAgfAorICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAg
ICAgICB8IEF1dGhlbnRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAg
ICAgICAgICAgICB2CisgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAg
ICAgICAgICB8ICAgICAgIHwgICAgICAgIHwgICAgICAgICAgfAorICAgICAgICAgIHwgQXV0aCAg
fCAgYmFzZSAgfCAib2Zmc2V0IiB8CisgICAgICAgICAgfCAgICAgICB8ICAgICAgICB8ICAgICAg
ICAgIHwKKyAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCisgICAgICAg
IFRoZSBhYm92ZSBhc2NpaSBhcnQgZ3JhcGggc2hvd3MgaG93IHRoZSBQQUNDYWdlIHN5c3RlbSB3
b3Jrcy4gVGhlCisgICAgICAgIGtleSB0YWtlIGF3YXkgaXMgdGhhdCBldmVuIGlmIHNvbWVvbmUg
cGFzc2VzIGluIGEgdmFsaWQsIHNpZ25lZAorICAgICAgICBwb2ludGVyIG91dHNpZGUgdGhlIGNh
Z2UgaXQgd2lsbCBzdGlsbCBmYWlsIHRvIGF1dGhlbnRpY2F0ZSBhcyB0aGUKKyAgICAgICAgImJh
c2UiIGJpdHMgd2lsbCBjaGFuZ2UgYmVmb3JlIGF1dGhlbnRpY2F0aW9uLgorCisKKyAgICAgICAg
KiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIv
dGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1cmVC
aXQpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjYWdlZCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVs
cGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhZ2VDb25kaXRpb25hbGx5
KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorCiAyMDE5LTA3
LTAzICBQYXVsbyBNYXRvcyAgPHBtYXRvc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlZmFjdG9y
aW5nIG9mIGFyY2hpdGVjdHVyYWwgUmVnaXN0ZXIgSW5mb3JtYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggM2FhMjZjYjJj
OGY5Y2M3MzU2YjcyN2ZiMjg2NTg0ZjdkNjk1MGEwYy4uODhmODFiNzQxY2Y3ZDk2ZTU1NjVlNzVk
YjAzM2M2YTMyMzhhNTZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNy0wMyAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQUNDYWdlIHNob3Vs
ZCBmaXJzdCBjYWdlIGxlYXZpbmcgUEFDIGJpdHMgaW50YWN0IHRoZW4gYXV0aGVudGljYXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTkzNzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICAqIHd0Zi9DYWdlZFB0
ci5oOgorICAgICAgICAoV1RGOjpDYWdlZFB0cjo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdURjo6
Q2FnZWRQdHI6OmdldE1heUJlTnVsbCBjb25zdCk6CisgICAgICAgIChXVEY6OkNhZ2VkUHRyOjpt
ZXJnZVBvaW50ZXJzKToKKwogMjAxOS0wNy0wMyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ2NjE2LgpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdl
TG9nCmluZGV4IDU3MzFmNjBjY2E1MzUzMTg4ZDE4YTRmYTk2ZjI3ZmUzZDg2ZGQzMjIuLjBmYWMx
YWFhMzNlZDcwNGViNGFhYjk1NWRmYTZhNmEyYzAwMzljMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxOS0wNy0wMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQUNDYWdlIHNob3VsZCBmaXJzdCBjYWdlIGxlYXZpbmcgUEFDIGJpdHMg
aW50YWN0IHRoZW4gYXV0aGVudGljYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTkzNzIKKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0
aS4KKworICAgICAgICAqIGJtYWxsb2MvUHJvY2Vzc0NoZWNrLm1tOgorICAgICAgICAoYm1hbGxv
Yzo6c2hvdWxkUHJvY2Vzc1VuY29uZGl0aW9uYWxseVVzZUJtYWxsb2MpOgorCiAyMDE5LTA3LTAy
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjQ3MDQxLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0RS5oCmluZGV4IGZkN2VlYzgwODU1
MWJkZjcyODdhZmMxYjFlYzQ1M2YyZjgyMDgyZDIuLjljNmU3NzVlNTE3NDQ1ZWZjYjVjYjhjMDc4
Yjc5YjA1YTA4OTE4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NEUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjRFLmgKQEAgLTQwLDYgKzQwLDcgQEAgdXNpbmcgQXNz
ZW1ibGVyID0gVEFSR0VUX0FTU0VNQkxFUjsKIGNsYXNzIE1hY3JvQXNzZW1ibGVyQVJNNjRFIDog
cHVibGljIE1hY3JvQXNzZW1ibGVyQVJNNjQgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbnVtYmVyT2ZQQUNCaXRzID0gMjU7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50cHRyX3Qgbm9uUEFDQml0c01hc2sgPSAoMXVsbCA8PCAoNjQgLSBudW1iZXJPZlBBQ0JpdHMp
KSAtIDE7CiAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgdGFnUmV0dXJuQWRkcmVzcygpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAppbmRleCAx
MDUwYjM5OTgzZTRlNjUwNTI4MjRjMDRmMGJiMTI1NGEzMTNlMmM4Li4zY2JhZWQ4YTQ3NTFkZTU5
MWFjOGQwNGE1NzljN2FmZmZiMTM3NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcApAQCAtMTAxNSw2ICsxMDE1LDggQEAgdm9pZCB0ZXN0TW92ZURv
dWJsZUNvbmRpdGlvbmFsbHk2NCgpCiAKIHN0YXRpYyB2b2lkIHRlc3RDYWdlUHJlc2VydmVzUEFD
RmFpbHVyZUJpdCgpCiB7CisjaWYgR0lHQUNBR0VfRU5BQkxFRAorICAgIEFTU0VSVCghR2lnYWNh
Z2U6OmlzRGlzYWJsaW5nUHJpbWl0aXZlR2lnYWNhZ2VEaXNhYmxlZCgpKTsKICAgICBhdXRvIGNh
Z2UgPSBjb21waWxlKFtdIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uUHJvbG9ndWUoKTsKICAgICAgICAgaml0LmNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdl
OjpQcmltaXRpdmUsIEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwpAQCAtMTAyNSwxMCArMTAyNywxNSBAQCBzdGF0aWMg
dm9pZCB0ZXN0Q2FnZVByZXNlcnZlc1BBQ0ZhaWx1cmVCaXQoKQogCiAgICAgdm9pZCogcHRyID0g
R2lnYWNhZ2U6OnRyeU1hbGxvYyhHaWdhY2FnZTo6UHJpbWl0aXZlLCAxKTsKICAgICB2b2lkKiB0
YWdnZWRQdHIgPSB0YWdBcnJheVB0cihwdHIsIDEpOwotICAgIGRhdGFMb2dMbigic3RhcnRpbmcg
dGVzdCIpOworICAgIEFTU0VSVChoYXNPbmVCaXRTZXQoR2lnYWNhZ2U6OnNpemUoR2lnYWNhZ2U6
OlByaW1pdGl2ZSkgPDwgMikpOworICAgIHZvaWQqIG5vdENhZ2VkUHRyID0gcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0cikgKyAoR2lnYWNhZ2U6
OnNpemUoR2lnYWNhZ2U6OlByaW1pdGl2ZSkgPDwgMikpOworICAgIENIRUNLX05PVF9FUShHaWdh
Y2FnZTo6Y2FnZWQoR2lnYWNhZ2U6OlByaW1pdGl2ZSwgbm90Q2FnZWRQdHIpLCBub3RDYWdlZFB0
cik7CisgICAgdm9pZCogdGFnZ2VkTm90Q2FnZWRQdHIgPSB0YWdBcnJheVB0cihub3RDYWdlZFB0
ciwgMSk7CisKICAgICBpZiAoaXNBUk02NEUoKSkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyB3
b24ndCB3b3JrIGlmIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzIHRyYXAgYnV0IEkgZG9uJ3Qga25v
dyBob3cgdG8gdGVzdCBmb3IgdGhhdCByaWdodCBub3cuCiAgICAgICAgIENIRUNLX05PVF9FUShp
bnZva2U8dm9pZCo+KGNhZ2UsIHRhZ2dlZFB0ciwgMiksIHB0cik7CisgICAgICAgIENIRUNLX0VR
KGludm9rZTx2b2lkKj4oY2FnZSwgdGFnZ2VkTm90Q2FnZWRQdHIsIDEpLCB1bnRhZ0FycmF5UHRy
KHRhZ2dlZFB0ciwgMikpOwogICAgIH0gZWxzZQogICAgICAgICBDSEVDS19FUShpbnZva2U8dm9p
ZCo+KGNhZ2UsIHRhZ2dlZFB0ciwgMiksIHB0cik7CiAKQEAgLTEwNDIsMTYgKzEwNDksMTcgQEAg
c3RhdGljIHZvaWQgdGVzdENhZ2VQcmVzZXJ2ZXNQQUNGYWlsdXJlQml0KCkKICAgICAgICAgaml0
LnJldCgpOwogICAgIH0pOwogCisgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91
dEF1dGhlbnRpY2F0aW9uLCB0YWdnZWRQdHIpLCB0YWdnZWRQdHIpOwogICAgIGlmIChpc0FSTTY0
RSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdvbid0IHdvcmsgaWYgYXV0aGVudGljYXRp
b24gZmFpbHVyZXMgdHJhcCBidXQgSSBkb24ndCBrbm93IGhvdyB0byB0ZXN0IGZvciB0aGF0IHJp
Z2h0IG5vdy4KLSAgICAgICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRB
dXRoZW50aWNhdGlvbiwgdW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDIpKSwgcHRyKTsKLSAgICB9
IGVsc2UKLSAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhlbnRp
Y2F0aW9uLCB1bnRhZ0FycmF5UHRyKHRhZ2dlZFB0ciwgMikpLCBwdHIpOwotCi0gICAgQ0hFQ0tf
RVEodW50YWdBcnJheVB0cih0YWdnZWRQdHIsIDEpLCBwdHIpOwotICAgIENIRUNLX0VRKGludm9r
ZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdW50YWdBcnJheVB0cih0YWdnZWRQ
dHIsIDEpKSwgcHRyKTsKKyAgICAgICAgQ0hFQ0tfTk9UX0VRKGludm9rZTx2b2lkKj4oY2FnZVdp
dGhvdXRBdXRoZW50aWNhdGlvbiwgdGFnZ2VkTm90Q2FnZWRQdHIpLCB0YWdnZWROb3RDYWdlZFB0
cik7CisgICAgICAgIENIRUNLX05PVF9FUSh1bnRhZ0FycmF5UHRyKGludm9rZTx2b2lkKj4oY2Fn
ZVdpdGhvdXRBdXRoZW50aWNhdGlvbiwgdGFnZ2VkTm90Q2FnZWRQdHIpLCAxKSwgbm90Q2FnZWRQ
dHIpOworICAgICAgICBDSEVDS19OT1RfRVEoaW52b2tlPHZvaWQqPihjYWdlV2l0aG91dEF1dGhl
bnRpY2F0aW9uLCB0YWdnZWROb3RDYWdlZFB0ciksIHRhZ2dlZFB0cik7CisgICAgICAgIENIRUNL
X05PVF9FUSh1bnRhZ0FycmF5UHRyKGludm9rZTx2b2lkKj4oY2FnZVdpdGhvdXRBdXRoZW50aWNh
dGlvbiwgdGFnZ2VkTm90Q2FnZWRQdHIpLCAxKSwgcHRyKTsKKyAgICB9CiAKICAgICBHaWdhY2Fn
ZTo6ZnJlZShHaWdhY2FnZTo6UHJpbWl0aXZlLCBwdHIpOworI2VuZGlmCiB9CiAKICNkZWZpbmUg
UlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1NWEyODk3ZTAwNTI5MTJh
ZTY0OTQ5YjlmNjMzNzI3YTRjMzg0MTM4Li4xYWY3NDE0OGM5NTIwMGZkYWRmZDBkNjc0YzYyNjFm
YmVmNGI4ZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC0xNDE3NywxOCArMTQxNzcsNyBAQCBwcml2YXRlOgogCiAgICAgTFZhbHVlIGNh
Z2VkKEdpZ2FjYWdlOjpLaW5kIGtpbmQsIExWYWx1ZSBwdHIsIExWYWx1ZSBiYXNlKQogICAgIHsK
LSNpZiBDUFUoQVJNNjRFKQotICAgICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZl
KSB7Ci0gICAgICAgICAgICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBz
LkpTQXJyYXlCdWZmZXJWaWV3X2xlbmd0aCk7Ci0gICAgICAgICAgICBwdHIgPSB1bnRhZ0FycmF5
UHRyKHB0ciwgc2l6ZSk7Ci0gICAgICAgIH0KLSNlbHNlCi0gICAgICAgIFVOVVNFRF9QQVJBTShr
aW5kKTsKLSAgICAgICAgVU5VU0VEX1BBUkFNKGJhc2UpOwotI2VuZGlmCi0KICNpZiBHSUdBQ0FH
RV9FTkFCTEVECi0gICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKICAgICAgICAgaWYgKCFHaWdh
Y2FnZTo6aXNFbmFibGVkKGtpbmQpKQogICAgICAgICAgICAgcmV0dXJuIHB0cjsKICAgICAgICAg
CkBAIC0xNDIwNiw3ICsxNDE5NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIExWYWx1ZSByZXN1bHQg
PSBtX291dC5hZGQobWFza2VkLCBiYXNlUHRyKTsKIAogI2lmIENQVShBUk02NEUpCi0gICAgICAg
IHsKKyAgICAgICAgaWYgKGtpbmQgPT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSkgewogICAgICAgICAg
ICAgUGF0Y2hwb2ludFZhbHVlKiBtZXJnZSA9IG1fb3V0LnBhdGNocG9pbnQocG9pbnRlclR5cGUo
KSk7CiAgICAgICAgICAgICBtZXJnZS0+YXBwZW5kKHJlc3VsdCwgQjM6OlZhbHVlUmVwKEIzOjpW
YWx1ZVJlcDo6U29tZUxhdGVSZWdpc3RlcikpOwogICAgICAgICAgICAgbWVyZ2UtPmFwcGVuZFNv
bWVSZWdpc3RlcihwdHIpOwpAQCAtMTQyMTQsOSArMTQyMDMsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICBqaXQubW92ZShwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAg
ICAgICAgICAgICAgICAgaml0LmJpdEZpZWxkSW5zZXJ0NjQocGFyYW1zWzFdLmdwcigpLCAwLCA2
NCAtIE1hY3JvQXNzZW1ibGVyOjpudW1iZXJPZlBBQ0JpdHMsIHBhcmFtc1swXS5ncHIoKSk7CiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJlc3VsdCA9IG1lcmdlOworCisgICAgICAgICAg
ICBMVmFsdWUgc2l6ZSA9IG1fb3V0LmxvYWQzMihiYXNlLCBtX2hlYXBzLkpTQXJyYXlCdWZmZXJW
aWV3X2xlbmd0aCk7CisgICAgICAgICAgICByZXN1bHQgPSB1bnRhZ0FycmF5UHRyKG1lcmdlLCBz
aXplKTsKICAgICAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8gQ1BVKEFSTTY0RSkKKwogICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCBCMyBkb2Vzbid0IHRyeSB0byBkbyBzbWFydCByZWFzc29jaWF0
aW9uIG9mIHRoZXNlIHBvaW50ZXIgYml0cy4KICAgICAgICAgLy8gRklYTUU6IEluIGFuIGlkZWFs
IHdvcmxkLCBCMyB3b3VsZCBub3QgZG8gaGFybWZ1bCByZWFzc29jaWF0aW9ucywgYW5kIGlmIGl0
IGRpZCwgaXQgd291bGQgYmUgYWJsZQogICAgICAgICAvLyB0byB1bmRvIHRoZW0gZHVyaW5nIGNv
bnN0YW50IGhvaXN0aW5nIGFuZCByZWdhbGxvYy4gQXMgaXQgc3RhbmRzLCBpZiB5b3UgcmVtb3Zl
IHRoaXMgdGhlbiBPY3RhbmUKQEAgLTE0MjMwLDYgKzE0MjIyLDkgQEAgcHJpdmF0ZToKICAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ5MwogICAg
ICAgICByZXR1cm4gbV9vdXQub3BhcXVlKHJlc3VsdCk7CiAjZW5kaWYKKworICAgICAgICBVTlVT
RURfUEFSQU0oa2luZCk7CisgICAgICAgIFVOVVNFRF9QQVJBTShiYXNlKTsKICAgICAgICAgcmV0
dXJuIHB0cjsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuaAppbmRleCBhNzdkNDNhNTAxMDg2NzMwZDdkYzk5ODVmNDJkYjUyMTlhMmY5MjU5
Li4zZWVhZDJkOGUwNmVmNWM2ODkyMzQ4NTdjYjJhMGMwZDllNWVhZmQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTE1ODYsNDIgKzE1ODYsNDEg
QEAgcHVibGljOgogICAgIC8vIGxlbmd0aCBtYXkgYmUgdGhlIHNhbWUgcmVnaXN0ZXIgYXMgc2Ny
YXRjaC4KICAgICB2b2lkIGNhZ2VDb25kaXRpb25hbGx5KEdpZ2FjYWdlOjpLaW5kIGtpbmQsIEdQ
UlJlZyBzdG9yYWdlLCBHUFJSZWcgbGVuZ3RoLCBHUFJSZWcgc2NyYXRjaCkKICAgICB7CisjaWYg
R0lHQUNBR0VfRU5BQkxFRAorICAgICAgICBpZiAoR2lnYWNhZ2U6OmlzRW5hYmxlZChraW5kKSkg
eworICAgICAgICAgICAgaWYgKGtpbmQgIT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSB8fCBHaWdhY2Fn
ZTo6aXNEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZURpc2FibGVkKCkpCisgICAgICAgICAgICAg
ICAgY2FnZVdpdGhvdXRVbnRhZ2dpbmcoa2luZCwgc3RvcmFnZSk7CisgICAgICAgICAgICBlbHNl
IHsKKyNpZiBDUFUoQVJNNjRFKQorICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPT0gc2NyYXRj
aCkKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaCA9IGdldENhY2hlZE1lbW9yeVRlbXBSZWdp
c3RlcklEQW5kSW52YWxpZGF0ZSgpOworI2VuZGlmCisgICAgICAgICAgICAgICAgbG9hZFB0cigm
R2lnYWNhZ2U6OmJhc2VQdHIoa2luZCksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgIEp1bXAg
ZG9uZSA9IGJyYW5jaFRlc3Q2NChaZXJvLCBzY3JhdGNoKTsKKyNpZiBDUFUoQVJNNjRFKQorICAg
ICAgICAgICAgICAgIEdQUlJlZyB0ZW1wUmVnID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAgICAgIG1vdmUoc3RvcmFnZSwgdGVtcFJlZyk7
CisgICAgICAgICAgICAgICAgQVNTRVJUKExvZ2ljYWxJbW1lZGlhdGU6OmNyZWF0ZTY0KEdpZ2Fj
YWdlOjptYXNrKGtpbmQpKS5pc1ZhbGlkKCkpOworICAgICAgICAgICAgICAgIGFuZFB0cihUcnVz
dGVkSW1tUHRyKEdpZ2FjYWdlOjptYXNrKGtpbmQpKSwgdGVtcFJlZyk7CisgICAgICAgICAgICAg
ICAgYWRkUHRyKHNjcmF0Y2gsIHRlbXBSZWcpOworICAgICAgICAgICAgICAgIGJpdEZpZWxkSW5z
ZXJ0NjQodGVtcFJlZywgMCwgNjQgLSBudW1iZXJPZlBBQ0JpdHMsIHN0b3JhZ2UpOworI2Vsc2UK
KyAgICAgICAgICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6bWFzayhraW5k
KSksIHN0b3JhZ2UpOworICAgICAgICAgICAgICAgIGFkZFB0cihzY3JhdGNoLCBzdG9yYWdlKTsK
KyNlbmRpZiAvLyBDUFUoQVJNNjRFKQorICAgICAgICAgICAgICAgIGRvbmUubGluayh0aGlzKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2VuZGlmCisKICNpZiBDUFUoQVJNNjRFKQogICAg
ICAgICBpZiAoa2luZCA9PSBHaWdhY2FnZTo6UHJpbWl0aXZlKQogICAgICAgICAgICAgdW50YWdB
cnJheVB0cihsZW5ndGgsIHN0b3JhZ2UpOwotI2Vsc2UKKyNlbmRpZgogICAgICAgICBVTlVTRURf
UEFSQU0oa2luZCk7CiAgICAgICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlKTsKICAgICAgICAgVU5V
U0VEX1BBUkFNKGxlbmd0aCk7Ci0jZW5kaWYKLQotI2lmIEdJR0FDQUdFX0VOQUJMRUQKLSAgICAg
ICAgaWYgKCFHaWdhY2FnZTo6aXNFbmFibGVkKGtpbmQpKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAKLSAgICAgICAgaWYgKGtpbmQgIT0gR2lnYWNhZ2U6OlByaW1pdGl2ZSB8fCBHaWdh
Y2FnZTo6aXNEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZURpc2FibGVkKCkpCi0gICAgICAgICAg
ICBjYWdlV2l0aG91dFVudGFnZ2luZyhraW5kLCBzdG9yYWdlKTsKLSAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBsb2FkUHRyKCZHaWdhY2FnZTo6YmFzZVB0cihraW5kKSwgc2NyYXRjaCk7Ci0g
ICAgICAgICAgICBKdW1wIGRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHNjcmF0Y2gpOwotI2lm
IENQVShBUk02NEUpCi0gICAgICAgICAgICBhdXRvIHRlbXBSZWcgPSBnZXRDYWNoZWRNZW1vcnlU
ZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKLSAgICAgICAgICAgIG1vdmUoc3RvcmFnZSwg
dGVtcFJlZyk7Ci0gICAgICAgICAgICBhbmRQdHIoVHJ1c3RlZEltbVB0cihHaWdhY2FnZTo6bWFz
ayhraW5kKSksIHRlbXBSZWcpOwotICAgICAgICAgICAgYWRkUHRyKHNjcmF0Y2gsIHRlbXBSZWcp
OwotICAgICAgICAgICAgYml0RmllbGRJbnNlcnQ2NCh0ZW1wUmVnLCAwLCA2NCAtIG51bWJlck9m
UEFDQml0cywgc3RvcmFnZSk7Ci0jZWxzZQotICAgICAgICAgICAgYW5kUHRyKFRydXN0ZWRJbW1Q
dHIoR2lnYWNhZ2U6Om1hc2soa2luZCkpLCBzdG9yYWdlKTsKLSAgICAgICAgICAgIGFkZFB0cihz
Y3JhdGNoLCBzdG9yYWdlKTsKLSNlbmRpZgotICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwot
Ci0KLSAgICAgICAgfQotI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gpOwotI2Vu
ZGlmCi0KICAgICB9CiAKICAgICB2b2lkIGVtaXRDb21wdXRlQnV0dGVyZmx5SW5kZXhpbmdNYXNr
KEdQUlJlZyB2ZWN0b3JMZW5ndGhHUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBHUFJSZWcgcmVzdWx0
R1BSKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjY0LmFzbQppbmRleCA5MDM2MzVhZjUyNWE4YjFmNDQ3MDYwMzE0MzA3ZDEwODNkMzYz
NWFkLi42YmE5NzIwNjNlNjBiNjhkM2RiY2ZhNDlmOGQ5YzlkOTVmY2MzZjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQpAQCAtNDIyLDM3ICs0MjIsMzYgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQog
ICAgICAgICBlbmQpCiBlbmQKIAotbWFjcm8gdW5jYWdlKGJhc2VQdHIsIG1hc2ssIHB0ciwgc2Ny
YXRjaE9yTGVuZ3RoKQorbWFjcm8gY2FnZShiYXNlUHRyLCBtYXNrLCBwdHIsIHNjcmF0Y2gpCiAg
ICAgaWYgR0lHQUNBR0VfRU5BQkxFRCBhbmQgbm90IChDX0xPT1Agb3IgQ19MT09QX1dJTikKLSAg
ICAgICAgbG9hZHAgYmFzZVB0ciwgc2NyYXRjaE9yTGVuZ3RoCi0gICAgICAgIGJ0cHogc2NyYXRj
aE9yTGVuZ3RoLCAuZG9uZQorICAgICAgICBsb2FkcCBiYXNlUHRyLCBzY3JhdGNoCisgICAgICAg
IGJ0cHogc2NyYXRjaCwgLmRvbmUKICAgICAgICAgYW5kcCBtYXNrLCBwdHIKLSAgICAgICAgYWRk
cCBzY3JhdGNoT3JMZW5ndGgsIHB0cgorICAgICAgICBhZGRwIHNjcmF0Y2gsIHB0cgogICAgIC5k
b25lOgogICAgIGVuZAogZW5kCiAKLW1hY3JvIGxvYWRDYWdlZFByaW1pdGl2ZShzb3VyY2UsIGRl
c3QsIHNjcmF0Y2hPckxlbmd0aCkKLSAgICBsb2FkcCBzb3VyY2UsIGRlc3QKK21hY3JvIGNhZ2Vk
UHJpbWl0aXZlKHB0ciwgbGVuZ3RoLCBzY3JhdGNoLCBzY3JhdGNoMikKICAgICBpZiBBUk02NEUK
LSAgICAgICAgY29uc3QgcmVzdWx0ID0gdDcKLSAgICAgICAgdW50YWdBcnJheVB0ciBzY3JhdGNo
T3JMZW5ndGgsIGRlc3QKLSAgICAgICAgbW92ZSBkZXN0LCByZXN1bHQKKyAgICAgICAgY29uc3Qg
c291cmNlID0gc2NyYXRjaDIKKyAgICAgICAgbW92ZSBwdHIsIHNjcmF0Y2gyCiAgICAgZWxzZQot
ICAgICAgICBjb25zdCByZXN1bHQgPSBkZXN0CisgICAgICAgIGNvbnN0IHNvdXJjZSA9IHB0cgog
ICAgIGVuZAogICAgIGlmIEdJR0FDQUdFX0VOQUJMRUQKLSAgICAgICAgdW5jYWdlKF9nX2dpZ2Fj
YWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OnByaW1pdGl2ZSwgY29uc3RleHByIEdp
Z2FjYWdlOjpwcmltaXRpdmVHaWdhY2FnZU1hc2ssIHJlc3VsdCwgc2NyYXRjaE9yTGVuZ3RoKQor
ICAgICAgICBjYWdlKF9nX2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OnBy
aW1pdGl2ZSwgY29uc3RleHByIEdpZ2FjYWdlOjpwcmltaXRpdmVHaWdhY2FnZU1hc2ssIHNvdXJj
ZSwgc2NyYXRjaCkKICAgICAgICAgaWYgQVJNNjRFCiAgICAgICAgICAgICBjb25zdCBudW1iZXJP
ZlBBQ0JpdHMgPSBjb25zdGV4cHIgTWFjcm9Bc3NlbWJsZXI6Om51bWJlck9mUEFDQml0cwotICAg
ICAgICAgICAgYmZpcSByZXN1bHQsIDAsIDY0IC0gbnVtYmVyT2ZQQUNCaXRzLCBkZXN0CisgICAg
ICAgICAgICBiZmlxIHNjcmF0Y2gyLCAwLCA2NCAtIG51bWJlck9mUEFDQml0cywgcHRyCisgICAg
ICAgICAgICB1bnRhZ0FycmF5UHRyIGxlbmd0aCwgcHRyCiAgICAgICAgIGVuZAogICAgIGVuZAog
ZW5kCiAKIG1hY3JvIGxvYWRDYWdlZEpTVmFsdWUoc291cmNlLCBkZXN0LCBzY3JhdGNoT3JMZW5n
dGgpCiAgICAgbG9hZHAgc291cmNlLCBkZXN0Ci0gICAgdW5jYWdlKF9nX2dpZ2FjYWdlQmFzZVB0
cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OmpzVmFsdWUsIGNvbnN0ZXhwciBHaWdhY2FnZTo6anNW
YWx1ZUdpZ2FjYWdlTWFzaywgZGVzdCwgc2NyYXRjaE9yTGVuZ3RoKQorICAgIGNhZ2UoX2dfZ2ln
YWNhZ2VCYXNlUHRycyArIEdpZ2FjYWdlOjpCYXNlUHRyczo6anNWYWx1ZSwgY29uc3RleHByIEdp
Z2FjYWdlOjpqc1ZhbHVlR2lnYWNhZ2VNYXNrLCBkZXN0LCBzY3JhdGNoT3JMZW5ndGgpCiBlbmQK
IAogbWFjcm8gbG9hZFZhcmlhYmxlKGdldCwgZmllbGROYW1lLCB2YWx1ZVJlZykKQEAgLTE1MjIs
MTUgKzE1MjEsMTcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5
VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWQKICAgICAjIFN3ZWV0LCBub3cg
d2Uga25vdyB0aGF0IHdlIGhhdmUgYSB0eXBlZCBhcnJheS4gRG8gc29tZSBiYXNpYyB0aGluZ3Mg
bm93LgogCiAgICAgaWYgQVJNNjRFCi0gICAgICAgIGNvbnN0IHNjcmF0Y2hPckxlbmd0aCA9IHQ2
Ci0gICAgICAgIGxvYWRpIEpTQXJyYXlCdWZmZXJWaWV3OjptX2xlbmd0aFt0MF0sIHNjcmF0Y2hP
ckxlbmd0aAotICAgICAgICBiaWFlcSB0MSwgc2NyYXRjaE9yTGVuZ3RoLCAub3BHZXRCeVZhbFNs
b3cKKyAgICAgICAgY29uc3QgbGVuZ3RoID0gdDYKKyAgICAgICAgY29uc3Qgc2NyYXRjaCA9IHQ3
CisgICAgICAgIGxvYWRpIEpTQXJyYXlCdWZmZXJWaWV3OjptX2xlbmd0aFt0MF0sIGxlbmd0aAor
ICAgICAgICBiaWFlcSB0MSwgbGVuZ3RoLCAub3BHZXRCeVZhbFNsb3cKICAgICBlbHNlCi0gICAg
ICAgIGNvbnN0IHNjcmF0Y2hPckxlbmd0aCA9IHQwCisgICAgICAgICMgbGVuZ3RoIGFuZCBzY3Jh
dGNoIGFyZSBpbnRlbnRpb25hbGx5IHVuZGVmaW5lZCBvbiB0aGlzIGJyYW5jaCBiZWNhdXNlIHRo
ZXkgYXJlIG5vdCB1c2VkIG9uIG90aGVyIHBsYXRmb3Jtcy4KICAgICAgICAgYmlhZXEgdDEsIEpT
QXJyYXlCdWZmZXJWaWV3OjptX2xlbmd0aFt0MF0sIC5vcEdldEJ5VmFsU2xvdwogICAgIGVuZAog
Ci0gICAgbG9hZENhZ2VkUHJpbWl0aXZlKEpTQXJyYXlCdWZmZXJWaWV3OjptX3ZlY3Rvclt0MF0s
IHQzLCBzY3JhdGNoT3JMZW5ndGgpCisgICAgbG9hZHAgSlNBcnJheUJ1ZmZlclZpZXc6Om1fdmVj
dG9yW3QwXSwgdDMKKyAgICBjYWdlZFByaW1pdGl2ZSh0MywgbGVuZ3RoLCB0MCwgc2NyYXRjaCkK
IAogICAgICMgTm93IGJpc2VjdCB0aHJvdWdoIHRoZSB2YXJpb3VzIHR5cGVzOgogICAgICMgICAg
SW50OEFycmF5VHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NhZ2VkUHRyLmggYi9T
b3VyY2UvV1RGL3d0Zi9DYWdlZFB0ci5oCmluZGV4IGNhNDczYzRiYWFhOTk1NWJkZTg1NTZjY2Q1
ZWIxYjllMTAzY2FhZGMuLjUyMTBlNzE1N2FlMGE4ZDg0MGZjNzg4M2UxMWE3MTI1YWU3Y2U2YTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NhZ2VkUHRyLmgKKysrIGIvU291cmNlL1dURi93
dGYvQ2FnZWRQdHIuaApAQCAtMzksNiArMzksOCBAQCB0ZW1wbGF0ZTxHaWdhY2FnZTo6S2luZCBw
YXNzZWRLaW5kLCB0eXBlbmFtZSBULCBib29sIHNob3VsZFRhZyA9IGZhbHNlLCB0eXBlbmFtZQog
Y2xhc3MgQ2FnZWRQdHIgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgR2lnYWNhZ2U6
OktpbmQga2luZCA9IHBhc3NlZEtpbmQ7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBu
dW1iZXJPZlBBQ0JpdHMgPSAyNTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBub25Q
QUNCaXRzTWFzayA9ICgxdWxsIDw8ICgoc2l6ZW9mKFQqKSAqIENIQVJfQklUKSAtIG51bWJlck9m
UEFDQml0cykpIC0gMTsKIAogICAgIENhZ2VkUHRyKCkgOiBDYWdlZFB0cihudWxscHRyKSB7IH0K
ICAgICBDYWdlZFB0cihzdGQ6Om51bGxwdHJfdCkKQEAgLTQ5LDIwICs1MSwyMyBAQCBwdWJsaWM6
CiAgICAgICAgIDogbV9wdHIoc2hvdWxkVGFnID8gdGFnQXJyYXlQdHIocHRyLCBzaXplKSA6IHB0
cikKICAgICB7IH0KIAotCiAgICAgVCogZ2V0KHVuc2lnbmVkIHNpemUpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQobV9wdHIpOwogICAgICAgICBUKiBwdHIgPSBQdHJUcmFpdHM6OnVud3Jh
cChtX3B0cik7Ci0gICAgICAgIFQqIHVudGFnZ2VkUHRyID0gc2hvdWxkVGFnID8gdW50YWdBcnJh
eVB0cihwdHIsIHNpemUpIDogcHRyOwotICAgICAgICByZXR1cm4gbWVyZ2VQb2ludGVycyh1bnRh
Z2dlZFB0ciwgR2lnYWNhZ2U6OmNhZ2VkKGtpbmQsIHB0cikpOworICAgICAgICBUKiBjYWdlZFB0
ciA9IEdpZ2FjYWdlOjpjYWdlZChraW5kLCBwdHIpOworICAgICAgICBUKiB1bnRhZ2dlZFB0ciA9
IHNob3VsZFRhZyA/IHVudGFnQXJyYXlQdHIobWVyZ2VQb2ludGVycyhwdHIsIGNhZ2VkUHRyKSwg
c2l6ZSkgOiBjYWdlZFB0cjsKKyAgICAgICAgcmV0dXJuIHVudGFnZ2VkUHRyOwogICAgIH0KIAog
ICAgIFQqIGdldE1heUJlTnVsbCh1bnNpZ25lZCBzaXplKSBjb25zdAogICAgIHsKICAgICAgICAg
VCogcHRyID0gUHRyVHJhaXRzOjp1bndyYXAobV9wdHIpOwotICAgICAgICBUKiB1bnRhZ2dlZFB0
ciA9IHNob3VsZFRhZyA/IHVudGFnQXJyYXlQdHIocHRyLCBzaXplKSA6IHB0cjsKLSAgICAgICAg
cmV0dXJuIG1lcmdlUG9pbnRlcnModW50YWdnZWRQdHIsIEdpZ2FjYWdlOjpjYWdlZE1heUJlTnVs
bChraW5kLCBwdHIpKTsKKyAgICAgICAgaWYgKCFyZW1vdmVBcnJheVB0clRhZyhwdHIpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIFQqIGNhZ2VkUHRyID0gR2lnYWNhZ2U6
OmNhZ2VkKGtpbmQsIHB0cik7CisgICAgICAgIFQqIHVudGFnZ2VkUHRyID0gc2hvdWxkVGFnID8g
dW50YWdBcnJheVB0cihtZXJnZVBvaW50ZXJzKHB0ciwgY2FnZWRQdHIpLCBzaXplKSA6IGNhZ2Vk
UHRyOworICAgICAgICByZXR1cm4gdW50YWdnZWRQdHI7CiAgICAgfQogCiAgICAgVCogZ2V0VW5z
YWZlKCkgY29uc3QKQEAgLTEyNCwxMSArMTI5LDE0IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBw
cm90ZWN0ZWQ6Ci0gICAgc3RhdGljIGlubGluZSBUKiBtZXJnZVBvaW50ZXJzKGNvbnN0IFQqIHVu
dGFnZ2VkUHRyLCBjb25zdCBUKiB1bmNhZ2VkUHRyKQorICAgIHN0YXRpYyBpbmxpbmUgVCogbWVy
Z2VQb2ludGVycyhUKiBzb3VyY2VQdHIsIFQqIGNhZ2VkUHRyKQogICAgIHsKLSAgICAgICAgY29u
c3RleHByIHVuc2lnbmVkIG51bWJlck9mUEFDQml0cyA9IDI1OwotICAgICAgICBjb25zdGV4cHIg
dWludHB0cl90IG1hc2sgPSAoMXVsbCA8PCAoKHNpemVvZihUKikgKiBDSEFSX0JJVCkgLSBudW1i
ZXJPZlBBQ0JpdHMpKSAtIDE7Ci0gICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFQqPigo
cmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHVudGFnZ2VkUHRyKSAmIH5tYXNrKSB8IChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4odW5jYWdlZFB0cikgJiBtYXNrKSk7CisjaWYgQ1BVKEFS
TTY0RSkKKyAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VCo+KChyZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4oc291cmNlUHRyKSAmIH5ub25QQUNCaXRzTWFzaykgfCAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNhZ2VkUHRyKSAmIG5vblBBQ0JpdHNNYXNrKSk7CisjZWxzZQor
ICAgICAgICBVTlVTRURfUEFSQU0oc291cmNlUHRyKTsKKyAgICAgICAgcmV0dXJuIGNhZ2VkUHRy
OworI2VuZGlmCiAgICAgfQogCiAgICAgdHlwZW5hbWUgUHRyVHJhaXRzOjpTdG9yYWdlVHlwZSBt
X3B0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvUHJvY2Vzc0NoZWNrLm1t
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Qcm9jZXNzQ2hlY2subW0KaW5kZXggM2JiNjNmMzUy
NTQyOTg5OGIwOTk0Y2M4NTE3OTNiNTE5NWY1MmIwMi4uYjg3MmM1OWY0ZmU0NGNjMGIzNzZkNDBh
YTNmOWE3N2UxMzFlNmNhMSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Qcm9j
ZXNzQ2hlY2subW0KKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Qcm9jZXNzQ2hlY2subW0K
QEAgLTY2LDcgKzY2LDkgQEAgYm9vbCBzaG91bGRQcm9jZXNzVW5jb25kaXRpb25hbGx5VXNlQm1h
bGxvYygpCiAgICAgICAgICAgICByZXN1bHQgPSBjb250YWlucyhAImNvbS5hcHBsZS5XZWJLaXQi
KSB8fCBjb250YWlucyhAInNhZmFyaSIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
TlNTdHJpbmcgKnByb2Nlc3NOYW1lID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBwcm9j
ZXNzTmFtZV07Ci0gICAgICAgICAgICByZXN1bHQgPSBbcHJvY2Vzc05hbWUgaXNFcXVhbFRvU3Ry
aW5nOkAianNjIl0gfHwgW3Byb2Nlc3NOYW1lIGlzRXF1YWxUb1N0cmluZzpAIndhc20iXTsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IFtwcm9jZXNzTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJqc2MiXQor
ICAgICAgICAgICAgICAgIHx8IFtwcm9jZXNzTmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJ3YXNtIl0K
KyAgICAgICAgICAgICAgICB8fCBbcHJvY2Vzc05hbWUgaGFzUHJlZml4OkAidGVzdCJdOwogICAg
ICAgICB9CiAgICAgfSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>