<?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>238025</bug_id>
          
          <creation_ts>2022-03-17 08:17:18 -0700</creation_ts>
          <short_desc>Unify calls and checks for CellTag</short_desc>
          <delta_ts>2022-04-20 00:56:00 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail R. Gadelha">mikhail</reporter>
          <assigned_to name="Mikhail R. Gadelha">mikhail</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</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>1852299</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 08:17:18 -0700</bug_when>
    <thetext>Unify calls and checks for CellTag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852309</commentid>
    <comment_count>1</comment_count>
      <attachid>454976</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 08:25:47 -0700</bug_when>
    <thetext>Created attachment 454976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852316</commentid>
    <comment_count>2</comment_count>
      <attachid>454978</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 08:57:25 -0700</bug_when>
    <thetext>Created attachment 454978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852361</commentid>
    <comment_count>3</comment_count>
      <attachid>454990</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 10:34:02 -0700</bug_when>
    <thetext>Created attachment 454990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852482</commentid>
    <comment_count>4</comment_count>
      <attachid>455026</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 14:06:41 -0700</bug_when>
    <thetext>Created attachment 455026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852501</commentid>
    <comment_count>5</comment_count>
      <attachid>455031</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 14:47:32 -0700</bug_when>
    <thetext>Created attachment 455031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852508</commentid>
    <comment_count>6</comment_count>
      <attachid>455032</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-03-17 15:05:05 -0700</bug_when>
    <thetext>Created attachment 455032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853700</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-22 09:08:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/90639297&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858958</commentid>
    <comment_count>8</comment_count>
      <attachid>456846</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-04-06 12:04:03 -0700</bug_when>
    <thetext>Created attachment 456846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859124</commentid>
    <comment_count>9</comment_count>
      <attachid>456883</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-04-06 19:51:35 -0700</bug_when>
    <thetext>Created attachment 456883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859272</commentid>
    <comment_count>10</comment_count>
      <attachid>456931</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-04-07 08:54:52 -0700</bug_when>
    <thetext>Created attachment 456931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862552</commentid>
    <comment_count>11</comment_count>
      <attachid>457893</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-04-19 08:22:09 -0700</bug_when>
    <thetext>Created attachment 457893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862583</commentid>
    <comment_count>12</comment_count>
      <attachid>457905</attachid>
    <who name="Mikhail R. Gadelha">mikhail</who>
    <bug_when>2022-04-19 09:13:13 -0700</bug_when>
    <thetext>Created attachment 457905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862829</commentid>
    <comment_count>13</comment_count>
      <attachid>457905</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-19 22:47:02 -0700</bug_when>
    <thetext>Comment on attachment 457905
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862849</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-20 00:55:57 -0700</bug_when>
    <thetext>Committed r293087 (249798@main): &lt;https://commits.webkit.org/249798@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457905.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454976</attachid>
            <date>2022-03-17 08:25:47 -0700</date>
            <delta_ts>2022-03-17 08:57:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220317152546.patch</filename>
            <type>text/plain</type>
            <size>17983</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZmI5ZDM3ZDg1YWQ3OGQxMzI4YWYzY2FlNzUyZDE0OWRkMDM0ODg5Li4zNGEwMDhjMzllODg3MWFl
OGQ0ZWY4ODEwNjI2ZThjYjdhNWFiNjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgorICAgICAgICAo
SlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpzdG9yZTgpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTXY3OjpzdG9yZVBhaXIzMik6CisgICAgICAgICogZGZnL0RGR09TUkV4aXQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXQ6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBk
ZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZWlm
eUlubGluZWRDYWxsRnJhbWVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMp
OgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmplY3RTdHJpY3RFcXVhbGl0
eSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAgIChKU0M6OkFz
c2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNDZWxsKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlI
ZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3RvcmVDZWxsKToKKyAg
ICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZk5vdENlbGwpOgorICAgICAgICAo
SlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmQ2VsbCk6CisgICAgICAgICogaml0L0NhbGxG
cmFtZVNodWZmbGVyMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnJhbWVTaHVmZmxlcjo6
ZW1pdFN0b3JlKToKKyAgICAgICAgKiBqaXQvSlNJbnRlcmZhY2VKSVQuaDoKKyAgICAgICAgKEpT
Qzo6SlNJbnRlcmZhY2VKSVQ6OmVtaXRMb2FkSlNDZWxsKToKKwogMjAyMi0wMy0xNiAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVH
UkVTU0lPTihyMjkwNzIwKTogRGVidWdnZXI6IFN0ZXAgbmV4dCBzaG91bGQgbm90IGJlaGF2ZSB0
aGUgc2FtZSBhcyBTdGVwIGludG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggZmU3ZjJkNWM0ZjNmYjQxYzFkMzU1
ZWU5NDRkZGQ1YTVhZTE0MDA4Yi4uZjUwMWQxYWI3NjdjMjA0ZjA3NTIyNzM0NzZkNWFiNjBiMjgw
ZmIyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmgKQEAgLTEwNTQsMTIgKzEwNTQsMTIgQEAgcHVibGljOgogICAgICAg
ICBzdG9yZTgoc3JjLCBzZXR1cEFybUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAg
ICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCAqYWRkcmVzcykKKyAgICB2
b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIHN0b3JlOChzcmMsIHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3MoYWRkcmVz
cykpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgY29u
c3Qgdm9pZCAqYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1tLCBjb25z
dCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgoc3RhdGlj
X2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBtb3ZlKGltbTgsIGRhdGFUZW1w
UmVnaXN0ZXIpOwpAQCAtMTA5OSw2ICsxMDk5LDIyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUx
NihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFp
cjMyKFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQor
ICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdp
c3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7CisgICAg
ICAgIHN0b3JlUGFpcjMyKHNyYzEsIHNjcmF0Y2gsIGFkZHJlc3MpOworICAgIH0KKworICAgIHZv
aWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbVB0ciBpbW1QdHIsIFRydXN0ZWRJbW0zMiBpbW0zMiwg
QWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMSA9IGdl
dENhY2hlZEFkZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92
ZShpbW1QdHIsIHNjcmF0Y2gxKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMiA9IGdldENh
Y2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0z
Miwgc2NyYXRjaDIpOworICAgICAgICBzdG9yZVBhaXIzMihzY3JhdGNoMSwgc2NyYXRjaDIsIGFk
ZHJlc3MpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBS
ZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHN0b3JlUGFp
cjMyKHNyYzEsIHNyYzIsIGRlc3QsIFRydXN0ZWRJbW0zMigwKSk7CkBAIC0xMTM2LDYgKzExNTIs
MTUgQEAgcHVibGljOgogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBBZGRyZXNzKHNj
cmF0Y2gsIGFkZHJlc3Mub2Zmc2V0KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihS
ZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisg
ICAgeworICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3MgPSBzZXR1cEFybUFkZHJlc3MoQWJz
b2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsKKyAgICAgICAgQVNTRVJUKGFybUFkZHJlc3MudHlwZSA9
PSBBcm1BZGRyZXNzOjpIYXNPZmZzZXQpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBn
ZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUo
aW1tLCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc2NyYXRjaCwgQWRkcmVz
cyhhcm1BZGRyZXNzLmJhc2UsIGFybUFkZHJlc3MudS5vZmZzZXQpKTsKKyAgICB9CisKICAgICB2
b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBjb25zdCB2
b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgQXJtQWRkcmVzcyBhcm1BZGRyZXNzID0gc2V0
dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRleCBiMjQzYzY3NDc5NTBjZWZkNmI1MmQ4ZGU1M2E1
YWFlYTE0OGJiMGZjLi5mMGZjOTRmYjBjZjE1NGIzMWNjOTcyZmFjYzI3ZmJlY2MwNjRiYzcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTY0Niw4ICs2NDYs
NyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0s
IGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAg
ICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFs
UmVnaXN0ZXIoKSksCiAgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5bG9hZEdQ
UigpKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7Ci0gICAgICAg
ICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsK
KyAgICAgICAgICAgIGppdC5zdG9yZUNlbGwoSlNSSW5mbzo6anNSZWdUMTAsIHNjcmF0Y2ggKyBp
bmRleCk7CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggNTg0
ZmZkODg1NmIxOGM3NzY4YmNhMmQzNzk1ZTkwZTgzMzFlMjEwOS4uNTdjNzVjZjc1ZDA1NWE4ODRm
YjdlYzIxZDJjZjAzMTUzMGI2ZWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzI2LDkgKzMyNiw4IEBA
IHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NS
RXhpdEJhc2UmIGV4aXQpCiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVD
YWxsKQogICAgICAgICAgICAgaml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
NjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFu
dCgpKSkpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAjZWxz
ZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlzIGlzIHRoZSAzMi1iaXQgcGFydAotICAgICAg
ICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxG
cmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAgICAgICAgIGlm
ICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQotICAgICAgICAgICAgaml0LnN0b3Jl
UHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxl
ZUNvbnN0YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVy
KGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7
CisgICAgICAgICAgICBqaXQuc3RvcmVDZWxsKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0
cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OmFk
ZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBD
YWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkgLy8gZW5k
aW5nIHRoZSAjZWxzZSBwYXJ0LCBzbyBkaXJlY3RseSBhYm92ZSBpcyB0aGUgMzItYml0IHBhcnQK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKaW5kZXggMzYwZTE4MTgzZWNiYTFlMGNjMDVkNzZjNzJjZGYxMjE5ZWNjYjE2ZC4uNTI0
Y2FhODM3MjI5N2E2MjRlZDdmMjVlMTA3OWQ1NzU2MjFjYTc0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTIzODMsNyArMjM4Myw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcygpCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEZsdXNoZWRDZWxsOiB7Ci0gICAgICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlLCBtX2ppdC5i
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIEpJVENvbXBpbGVyOjp0YWdGb3Iodmly
dHVhbFJlZ2lzdGVyKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAgICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlLCBtX2ppdC5i
cmFuY2hJZk5vdENlbGwoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtOTc1MCwx
MyArOTc1MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheVdpdGhTcHJl
YWQoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKGJpdFZlY3Rvci0+Z2V0KGkpKSB7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBpbW11dGFibGVCdXR0ZXJmbHkodGhpcywgdXNlKTsK
ICAgICAgICAgICAgIEdQUlJlZyBpbW11dGFibGVCdXR0ZXJmbHlHUFIgPSBpbW11dGFibGVCdXR0
ZXJmbHkuZ3ByKCk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIG1faml0LnN0b3Jl
NjQoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCAmYnVmZmVyW2ldKTsKLSNlbHNlCi0gICAgICAgICAg
ICBjaGFyKiBwb2ludGVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXRpY19jYXN0PHZvaWQqPigm
YnVmZmVyW2ldKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGltbXV0YWJsZUJ1dHRlcmZs
eUdQUiwgcG9pbnRlciArIFBheWxvYWRPZmZzZXQpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUz
MihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHBvaW50ZXIgKyBUYWdPZmZzZXQpOwot
I2VuZGlmCisgICAgICAgICAgICBtX2ppdC5zdG9yZUNlbGwoaW1tdXRhYmxlQnV0dGVyZmx5R1BS
LCAmYnVmZmVyW2ldKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEpTVmFsdWVPcGVy
YW5kIGlucHV0KHRoaXMsIHVzZSk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dFJlZ3Mg
PSBpbnB1dC5qc1ZhbHVlUmVncygpOwpAQCAtMTAxMTksNyArMTAxMTMsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlQXJyYXlJbmRleE9mKE5vZGUqIG5vZGUpCiAjaWYgVVNFKEpTVkFM
VUU2NCkKICAgICAgICAgICAgIGF1dG8gZm91bmQgPSBtX2ppdC5icmFuY2g2NChDQ2FsbEhlbHBl
cnM6OkVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BS
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHNlYXJjaEVsZW1lbnRHUFIpOwogI2Vsc2UK
LSAgICAgICAgICAgIGF1dG8gc2tpcCA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90
RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBUYWdPZmZzZXQpLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZykpOworICAgICAgICAgICAgYXV0byBza2lwID0gbV9qaXQuYnJhbmNoSWZOb3RD
ZWxsKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBUYWdPZmZzZXQpKTsKICAgICAgICAgICAgIG1faml0Lmxv
YWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgUGF5bG9hZE9mZnNldCksIHRlbXBHUFIpOwogICAgICAg
ICAgICAgYXV0byBmb3VuZCA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHRl
bXBHUFIsIHNlYXJjaEVsZW1lbnRHUFIpOwogICAgICAgICAgICAgc2tpcC5saW5rKCZtX2ppdCk7
CkBAIC0xMTM5MCwxOCArMTEzODQsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3
U3RyaW5nT2JqZWN0KE5vZGUqIG5vZGUpCiAgICAgICAgIHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0
cihub2RlLT5zdHJ1Y3R1cmUoKSksIGJ1dHRlcmZseSwgc2NyYXRjaDFHUFIsIHNjcmF0Y2gyR1BS
LAogICAgICAgICBzbG93UGF0aCk7CiAgICAgCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBtX2pp
dC5zdG9yZTY0KAotICAgICAgICBvcGVyYW5kR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1
bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSk7Ci0jZWxzZQot
ICAgIG1faml0LnN0b3JlMzIoCi0gICAgICAgIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwKLSAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmpl
Y3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFz
Qml0cy50YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAgb3BlcmFuZEdQUiwKLSAg
ICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6Omlu
dGVybmFsVmFsdWVPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5w
YXlsb2FkKSkpOwotI2VuZGlmCi0gICAgCisgICAgbV9qaXQuc3RvcmVDZWxsKG9wZXJhbmRHUFIs
IEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5h
bFZhbHVlT2Zmc2V0KCkpKTsKKwogICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKICAgICAK
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA3ZmI1
NjUyMzMyZjljNjBmNjIyMjg2ZmVhYTllNTZiYTYzMjdmNmNhLi44MWYzOTdhYzY1MDNmM2MxNTE5
MjY0MjA1OGE4YjQ5MDZjOGIzOWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTExMDMsMTAgKzExMDMsNyBAQCBH
UFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAgICAg
ICAgICAgICAgICBCYWRUeXBlLAogICAgICAgICAgICAgICAgIEpTVmFsdWVTb3VyY2UoSklUQ29t
cGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSksCiAgICAgICAgICAgICAgICAgZWRn
ZSwKLSAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMigKLSAgICAgICAgICAgICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAotICAgICAgICAgICAgICAgICAgICBKSVRDb21waWxl
cjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlciksCi0gICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaElm
Tm90Q2VsbChKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAg
fQogICAgICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKICAgICAgICAgbV9qaXQubG9hZDMy
KEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIGdwcik7CkBAIC0xMjcx
LDcgKzEyNjgsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmplY3RT
dHJpY3RFcXVhbGl0eShFZGdlIG9iamVjdENoaWxkLCBFZGdlCiAKICAgICBERkdfVFlQRV9DSEVD
SyhKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBvYmplY3RDaGlsZCwgU3BlY09i
amVjdCwgbV9qaXQuYnJhbmNoSWZOb3RPYmplY3Qob3AxR1BSKSk7CiAKLSAgICBicmFuY2gzMihN
YWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMi50YWdHUFIoKSwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpLCBub3RUYWtlbik7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90Q2Vs
bCA9IG1faml0LmJyYW5jaElmTm90Q2VsbChvcDIudGFnR1BSKCkpOworICAgIGFkZEJyYW5jaChu
b3RDZWxsLCBub3RUYWtlbik7CiAgICAgCiAgICAgaWYgKHRha2VuID09IG5leHRCbG9jaygpKSB7
CiAgICAgICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgb3AxR1BSLCBvcDJH
UFIsIG5vdFRha2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcAppbmRleCAwMjRkZGYwYWY2NzcyYjg1Y2Y0NjQ5ZTliYWIyNGZjNDg2NDBlNTk2Li42
ZWNhNGQyMDVlZWJmOTI0NjdhYmQ0MjUzNWJjZTdmZjJlMDMyZDJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAg
dm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzSlNEb3VibGUoR1BSUmVnIGdwcikKIAog
dm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbChHUFJSZWcgZ3ByKQogewotICAg
IEp1bXAgY2hlY2tDZWxsID0gYnJhbmNoMzIoRXF1YWwsIGdwciwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpKTsKKyAgICBKdW1wIGNoZWNrQ2VsbCA9IGJyYW5jaElmQ2VsbChncHIpOwog
ICAgIGFib3J0V2l0aFJlYXNvbihBSElzTm90Q2VsbCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhp
cyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVs
cGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRl
eCAyN2RkNTk3OTBiNzFmOThhMjE3YjEyNTg3NzY3NzE2NWFjNjhlZTBjLi4xZmI2NmZkNzY1ODNk
MjBmZTI3ZjIyMThjYWY0NDdhNDc2ZmQ5ZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzOSwxNCArMTM5LDI2IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgdm9pZCBzdG9yZUNlbGwo
VCBjZWxsLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4KKyAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIFUgYWRkcmVzcykKICAgICB7CiAjaWYg
VVNFKEpTVkFMVUU2NCkKICAgICAgICAgc3RvcmU2NChjZWxsLCBhZGRyZXNzKTsKICNlbHNlCi0g
ICAgICAgIHN0b3JlMzIoY2VsbCwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsK
LSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJlc3Mu
d2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5bG9hZE9m
ZnNldCAmJiBUYWdPZmZzZXQgPT0gNCwgIkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0ZW0iKTsK
KyAgICAgICAgc3RvcmVQYWlyMzIoY2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
LCBhZGRyZXNzKTsKKyNlbmRpZgorICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+Cisg
ICAgdm9pZCBzdG9yZUNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVSBhZGRyZXNzKQorICAgIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzdG9yZTY0KHJlZ3MuZ3ByKCksIGFkZHJlc3MpOwor
I2Vsc2UKKyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5bG9hZE9mZnNldCAmJiBUYWdPZmZzZXQg
PT0gNCwgIkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0ZW0iKTsKKyAgICAgICAgbW92ZShBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVncy50YWdHUFIo
KSk7CisgICAgICAgIHN0b3JlUGFpcjMyKHJlZ3MucGF5bG9hZEdQUigpLCByZWdzLnRhZ0dQUigp
LCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KICAgICAKQEAgLTE1OCw3ICsxNzAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCksIGdw
cik7CiAjZW5kaWYKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHN0b3JlVmFsdWUoSlNWYWx1ZVJl
Z3MgcmVncywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAt
NjYxLDE1ICs2NzMsMTYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgSnVtcCBicmFu
Y2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1Jl
Z2lzdGVycykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZOb3RD
ZWxsKFQgbWF5YmVDZWxsLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFn
UmVnaXN0ZXJzKQotICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWcs
IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVz
dDY0KE5vblplcm8sIHJlZywgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7Cisg
ICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIG1heWJlQ2VsbCwgR1BSSW5m
bzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9u
WmVybywgbWF5YmVDZWxsLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKICNl
bHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgcmVnLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CiAjZW5kaWYKICAg
ICB9CiAKQEAgLTY4MSwxOCArNjk0LDIwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5j
aElmTm90Q2VsbChyZWdzLnRhZ0dQUigpLCBtb2RlKTsKICNlbmRpZgogICAgIH0KLSAgICAKLSAg
ICBKdW1wIGJyYW5jaElmQ2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBI
YXZlVGFnUmVnaXN0ZXJzKQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBKdW1wIGJy
YW5jaElmQ2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1Jl
Z2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKG1vZGUgPT0g
SGF2ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywg
cmVnLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKLSAgICAgICAgcmV0dXJuIGJyYW5j
aFRlc3Q2NChaZXJvLCByZWcsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykpOwor
ICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBtYXliZUNlbGwsIEdQUkluZm86
Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8s
IG1heWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CiAjZWxzZQog
ICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsIHJlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsK
KyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgbWF5YmVDZWxs
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogI2VuZGlmCiAgICAgfQorCiAgICAg
SnVtcCBicmFuY2hJZkNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTEyMTYs
MTEgKzEyMzEsMTMgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlz
VmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rl
ci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KKwogICAg
IHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAg
ICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lz
dGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7CiAgICAgfQorCiAg
ICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKE9wZXJhbmQgb3BlcmFuZCkKICAgICB7CiAgICAgICAg
IEFTU0VSVCghb3BlcmFuZC5pc1RtcCgpKTsKQEAgLTEyMzIsMTEgKzEyNDksMTMgQEAgcHVibGlj
OgogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJl
dHVybiBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBw
YXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAg
ICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkg
KiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGlj
IEFkZHJlc3MgcGF5bG9hZEZvcihPcGVyYW5kIG9wZXJhbmQpCiAgICAgewogICAgICAgICBBU1NF
UlQoIW9wZXJhbmQuaXNUbXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcAppbmRleCAyZmVmNTNkYTYwYTJlNzVhNDdjNjRm
OGQzMDQwYzQ2MjIyYmI4OGVhLi4wZTg3ZTE2OTUzMWFjOTUxYmZhZjBmOWRlZDFiNmYyZmE2NjNk
YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZm
bGVyMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1
ZmZsZXIzMl82NC5jcHAKQEAgLTQ1LDkgKzQ1LDcgQEAgRGF0YUZvcm1hdCBDYWxsRnJhbWVTaHVm
Zmxlcjo6ZW1pdFN0b3JlKENhY2hlZFJlY292ZXJ5JiBsb2NhdGlvbiwgTWFjcm9Bc3NlbWJsZXIK
ICAgICAgICAgbV9qaXQuc3RvcmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBhZGRyZXNz
LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwogICAgICAgICByZXR1cm4gRGF0YUZvcm1hdElu
dDMyOwogICAgIGNhc2UgVW5ib3hlZENlbGxJbkdQUjoKLSAgICAgICAgbV9qaXQuc3RvcmUzMihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICAg
ICAgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAgICBtX2ppdC5zdG9yZTMy
KGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zm
c2V0KSk7CisgICAgICAgIG1faml0LnN0b3JlQ2VsbChsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigp
LCBhZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIERhdGFGb3JtYXRDZWxsOwogICAgIGNhc2UgQ29u
c3RhbnQ6CiAgICAgICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKGxvY2F0aW9uLnJlY292ZXJ5
KCkuY29uc3RhbnQoKSwgYWRkcmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pTSW50ZXJmYWNlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50
ZXJmYWNlSklULmgKaW5kZXggNGI0MjlhMjY3Y2NlZTJjNjQ3M2VkYTcxYzlmYzk0NTRjNTgyMzAw
Yy4uMmFmYWViYmJmM2FmMjExY2ZlZDU5MTUxZjk5ZWQyMjE2OWMwNDM4YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAtNTksNyArNTksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIgPCBWaXJ0
dWFsUmVnaXN0ZXIoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpKTsKICAgICAgICAgbG9hZFB0
cihwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIHBheWxvYWQpOwotICAgICAgICByZXR1cm4g
YnJhbmNoMzIoTm90RXF1YWwsIHRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHRhZ0Zv
cih2aXJ0dWFsUmVnaXN0ZXIpKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6
Okp1bXAgSlNJbnRlcmZhY2VKSVQ6OmVtaXRMb2FkSW50MzIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1
YWxSZWdpc3RlciwgUmVnaXN0ZXJJRCBkc3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454978</attachid>
            <date>2022-03-17 08:57:25 -0700</date>
            <delta_ts>2022-03-17 10:33:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220317155724.patch</filename>
            <type>text/plain</type>
            <size>20972</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZmI5ZDM3ZDg1YWQ3OGQxMzI4YWYzY2FlNzUyZDE0OWRkMDM0ODg5Li5lNjk0ZTBmMzdlZDczYWI0
NzdiZmM1YzEyODdlOTBiZTgzODhiYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZS4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBk
ZmcvREZHT1NSRXhpdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6T1NSRXhpdDo6Y29tcGlsZUV4
aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OnJlaWZ5SW5saW5lZENhbGxGcmFtZXMpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNo
ZWNrQXJndW1lbnRUeXBlcyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2Vs
bCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9i
amVjdFN0cmljdEVxdWFsaXR5KToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNwcDoK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwpOgorICAgICAg
ICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJz
OjpzdG9yZUNlbGwpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90
Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToKKyAg
ICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkNh
bGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFjZUpJ
VC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgorCiAy
MDIyLTAzLTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBSRUdSRVNTSU9OKHIyOTA3MjApOiBEZWJ1Z2dlcjogU3RlcCBuZXh0IHNo
b3VsZCBub3QgYmVoYXZlIHRoZSBzYW1lIGFzIFN0ZXAgaW50bwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBmZTdm
MmQ1YzRmM2ZiNDFjMWQzNTVlZTk0NGRkZDVhNWFlMTQwMDhiLi4zYzZhOWMxYzdjMmFhMjIzZmU0
MTUyOTU5MjBkNWRkNmY4YmRmZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTA1NCwxMiArMTA1NCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIHN0b3JlOChzcmMsIHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSk7
CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lk
ICphZGRyZXNzKQorICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgc3RvcmU4KHNyYywgc2V0dXBBcm1BZGRyZXNzKEFic29s
dXRlQWRkcmVzcyhhZGRyZXNzKSkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlOChUcnVz
dGVkSW1tMzIgaW1tLCBjb25zdCB2b2lkICphZGRyZXNzKQorICAgIHZvaWQgc3RvcmU4KFRydXN0
ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBUcnVzdGVk
SW1tMzIgaW1tOChzdGF0aWNfY2FzdDxpbnQ4X3Q+KGltbS5tX3ZhbHVlKSk7CiAgICAgICAgIG1v
dmUoaW1tOCwgZGF0YVRlbXBSZWdpc3Rlcik7CkBAIC0xMDk5LDYgKzEwOTksMzEgQEAgcHVibGlj
OgogICAgICAgICBzdG9yZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAor
ICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBB
ZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBnZXRD
YWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1t
LCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc2NyYXRjaCwgYWRkcmVzcyk7
CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0ciwgVHJ1
c3RlZEltbTMyIGltbTMyLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBSZWdpc3Rl
cklEIHNjcmF0Y2gxID0gZ2V0Q2FjaGVkQWRkcmVzc1RlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0
ZSgpOworICAgICAgICBtb3ZlKGltbVB0ciwgc2NyYXRjaDEpOworICAgICAgICBSZWdpc3RlcklE
IHNjcmF0Y2gyID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOwor
ICAgICAgICBtb3ZlKGltbTMyLCBzY3JhdGNoMik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNjcmF0
Y2gxLCBzY3JhdGNoMiwgYWRkcmVzcyk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihU
cnVzdGVkSW1tMzIgaW1tMSwgVHJ1c3RlZEltbTMyIGltbTIsIEFkZHJlc3MgYWRkcmVzcykKKyAg
ICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDEgPSBnZXRDYWNoZWRBZGRyZXNzVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tMSwgc2NyYXRjaDEpOwor
ICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2gyID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbTIsIHNjcmF0Y2gyKTsKKyAgICAgICAg
c3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2
b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3Rl
cklEIGRlc3QpCiAgICAgewogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBkZXN0LCBU
cnVzdGVkSW1tMzIoMCkpOwpAQCAtMTEzNiw2ICsxMTYxLDE1IEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgQWRkcmVzcyhzY3JhdGNoLCBhZGRyZXNzLm9mZnNldCkp
OwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVk
SW1tMzIgaW1tLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgQXJtQWRkcmVz
cyBhcm1BZGRyZXNzID0gc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7
CisgICAgICAgIEFTU0VSVChhcm1BZGRyZXNzLnR5cGUgPT0gQXJtQWRkcmVzczo6SGFzT2Zmc2V0
KTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3Rl
cklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7CisgICAgICAg
IHN0b3JlUGFpcjMyKHNyYzEsIHNjcmF0Y2gsIEFkZHJlc3MoYXJtQWRkcmVzcy5iYXNlLCBhcm1B
ZGRyZXNzLnUub2Zmc2V0KSk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3Rl
cklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIEFybUFkZHJlc3MgYXJtQWRkcmVzcyA9IHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFk
ZHJlc3MoYWRkcmVzcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKaW5kZXggOTRlYjYyZjRhMTIxYTYxNDUzMjM2OTEzYWM5
ZDNjYjM5NGFkYjBkMi4uYjE4ZGI5OTRjNDZhMTgzZTIyNDg3MmZhMzljYWFiNTZjZmE2OWQ1OCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ck1JUFMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oCkBAIC0xNjQ5LDYgKzE2NDksMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAg
fQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBp
bW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tLCBhZGRyVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgYWRkclRlbXBSZWdpc3RlciwgYWRk
cmVzcyk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0
ciwgVHJ1c3RlZEltbTMyIGltbTMyLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBt
b3ZlKGltbVB0ciwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoaW1tMzIsIGRhdGFU
ZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZVBhaXIzMihhZGRyVGVtcFJlZ2lzdGVyLCBkYXRh
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRy
dXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAg
IHsKKyAgICAgICAgbW92ZShpbW0xLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShp
bW0yLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoYWRkclRlbXBSZWdp
c3RlciwgZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9y
ZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKICAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgZGVzdCwgVHJ1c3RlZElt
bTMyKDApKTsKQEAgLTE2NzEsNiArMTY5MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMzIo
c3JjMiwgYWRkcmVzcy53aXRoT2Zmc2V0KDQpKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFp
cjMyKFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCogYWRkcmVz
cykKKyAgICB7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBS
ZWdpc3Rlcik7CisgICAgICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
c3RvcmVQYWlyMzIoc3JjMSwgZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlcik7Cisg
ICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQg
c3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZElt
bVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPU1JFeGl0LmNwcAppbmRleCBiMjQzYzY3NDc5NTBjZWZkNmI1MmQ4ZGU1M2E1YWFlYTE0
OGJiMGZjLi5mMGZjOTRmYjBjZjE1NGIzMWNjOTcyZmFjYzI3ZmJlY2MwNjRiYzcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTY0Niw4ICs2NDYsNyBAQCB2
b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0
IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAgICAg
ICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0
ZXIoKSksCiAgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5bG9hZEdQUigpKTsK
LSAgICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7Ci0gICAgICAgICAgICBq
aXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKKyAgICAg
ICAgICAgIGppdC5zdG9yZUNlbGwoSlNSSW5mbzo6anNSZWdUMTAsIHNjcmF0Y2ggKyBpbmRleCk7
CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggNTg0ZmZkODg1
NmIxOGM3NzY4YmNhMmQzNzk1ZTkwZTgzMzFlMjEwOS4uNTdjNzVjZjc1ZDA1NWE4ODRmYjdlYzIx
ZDJjZjAzMTUzMGI2ZWU2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzI2LDkgKzMyNiw4IEBAIHZvaWQg
cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJh
c2UmIGV4aXQpCiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQog
ICAgICAgICAgICAgaml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSkp
LCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxG
cmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAjZWxzZSAvLyBV
U0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlzIGlzIHRoZSAzMi1iaXQgcGFydAotICAgICAgICBqaXQu
c3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwg
QXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+
c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAgICAgICAgIGlmICghaW5s
aW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQotICAgICAgICAgICAgaml0LnN0b3JlUHRyKEFz
c2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0
YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CisgICAg
ICAgICAgICBqaXQuc3RvcmVDZWxsKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxp
bmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJh
bWVTbG90OjpjYWxsZWUpKSk7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkgLy8gZW5kaW5nIHRo
ZSAjZWxzZSBwYXJ0LCBzbyBkaXJlY3RseSBhYm92ZSBpcyB0aGUgMzItYml0IHBhcnQKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
aW5kZXggMzYwZTE4MTgzZWNiYTFlMGNjMDVkNzZjNzJjZGYxMjE5ZWNjYjE2ZC4uNTI0Y2FhODM3
MjI5N2E2MjRlZDdmMjVlMTA3OWQ1NzU2MjFjYTc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTIzODMsNyArMjM4Myw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcygpCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIEZsdXNoZWRDZWxsOiB7Ci0gICAgICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlLCBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJl
Z2lzdGVyKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAgICAgICAgICBz
cGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlLCBtX2ppdC5icmFuY2hJ
Zk5vdENlbGwoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtOTc1MCwxMyArOTc1
MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheVdpdGhTcHJlYWQoTm9k
ZSogbm9kZSkKICAgICAgICAgaWYgKGJpdFZlY3Rvci0+Z2V0KGkpKSB7CiAgICAgICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBpbW11dGFibGVCdXR0ZXJmbHkodGhpcywgdXNlKTsKICAgICAg
ICAgICAgIEdQUlJlZyBpbW11dGFibGVCdXR0ZXJmbHlHUFIgPSBpbW11dGFibGVCdXR0ZXJmbHku
Z3ByKCk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIG1faml0LnN0b3JlNjQoaW1t
dXRhYmxlQnV0dGVyZmx5R1BSLCAmYnVmZmVyW2ldKTsKLSNlbHNlCi0gICAgICAgICAgICBjaGFy
KiBwb2ludGVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXRpY19jYXN0PHZvaWQqPigmYnVmZmVy
W2ldKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGltbXV0YWJsZUJ1dHRlcmZseUdQUiwg
cG9pbnRlciArIFBheWxvYWRPZmZzZXQpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHBvaW50ZXIgKyBUYWdPZmZzZXQpOwotI2VuZGlm
CisgICAgICAgICAgICBtX2ppdC5zdG9yZUNlbGwoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCAmYnVm
ZmVyW2ldKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGlu
cHV0KHRoaXMsIHVzZSk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dFJlZ3MgPSBpbnB1
dC5qc1ZhbHVlUmVncygpOwpAQCAtMTAxMTksNyArMTAxMTMsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJyYXlJbmRleE9mKE5vZGUqIG5vZGUpCiAjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgICAgIGF1dG8gZm91bmQgPSBtX2ppdC5icmFuY2g2NChDQ2FsbEhlbHBlcnM6OkVx
dWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNy
b0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHNlYXJjaEVsZW1lbnRHUFIpOwogI2Vsc2UKLSAgICAg
ICAgICAgIGF1dG8gc2tpcCA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWws
IE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBUYWdPZmZzZXQpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZykpOworICAgICAgICAgICAgYXV0byBza2lwID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0LCBUYWdPZmZzZXQpKTsKICAgICAgICAgICAgIG1faml0LmxvYWQzMihN
YWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCwgUGF5bG9hZE9mZnNldCksIHRlbXBHUFIpOwogICAgICAgICAgICAg
YXV0byBmb3VuZCA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHRlbXBHUFIs
IHNlYXJjaEVsZW1lbnRHUFIpOwogICAgICAgICAgICAgc2tpcC5saW5rKCZtX2ppdCk7CkBAIC0x
MTM5MCwxOCArMTEzODQsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3U3RyaW5n
T2JqZWN0KE5vZGUqIG5vZGUpCiAgICAgICAgIHJlc3VsdEdQUiwgVHJ1c3RlZEltbVB0cihub2Rl
LT5zdHJ1Y3R1cmUoKSksIGJ1dHRlcmZseSwgc2NyYXRjaDFHUFIsIHNjcmF0Y2gyR1BSLAogICAg
ICAgICBzbG93UGF0aCk7CiAgICAgCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBtX2ppdC5zdG9y
ZTY0KAotICAgICAgICBvcGVyYW5kR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIs
IEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSk7Ci0jZWxzZQotICAgIG1f
aml0LnN0b3JlMzIoCi0gICAgICAgIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAg
ICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6Omlu
dGVybmFsVmFsdWVPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50
YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAgb3BlcmFuZEdQUiwKLSAgICAgICAg
SklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFs
VmFsdWVPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2Fk
KSkpOwotI2VuZGlmCi0gICAgCisgICAgbV9qaXQuc3RvcmVDZWxsKG9wZXJhbmRHUFIsIEpJVENv
bXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVl
T2Zmc2V0KCkpKTsKKwogICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKICAgICAKICAgICBh
ZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA3ZmI1NjUyMzMy
ZjljNjBmNjIyMjg2ZmVhYTllNTZiYTYzMjdmNmNhLi44MWYzOTdhYzY1MDNmM2MxNTE5MjY0MjA1
OGE4YjQ5MDZjOGIzOWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTExMDMsMTAgKzExMDMsNyBAQCBHUFJSZWcg
U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAgICAgICAgICAg
ICAgICBCYWRUeXBlLAogICAgICAgICAgICAgICAgIEpTVmFsdWVTb3VyY2UoSklUQ29tcGlsZXI6
OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSksCiAgICAgICAgICAgICAgICAgZWRnZSwKLSAg
ICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMigKLSAgICAgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLAotICAgICAgICAgICAgICAgICAgICBKSVRDb21waWxlcjo6dGFn
Rm9yKHZpcnR1YWxSZWdpc3RlciksCi0gICAgICAgICAgICAgICAgICAgIFRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpDZWxsVGFnKSkpOworICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaElmTm90Q2Vs
bChKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAgfQogICAg
ICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKICAgICAgICAgbV9qaXQubG9hZDMyKEpJVENv
bXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIGdwcik7CkBAIC0xMjcxLDcgKzEy
NjgsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmplY3RTdHJpY3RF
cXVhbGl0eShFZGdlIG9iamVjdENoaWxkLCBFZGdlCiAKICAgICBERkdfVFlQRV9DSEVDSyhKU1Zh
bHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBvYmplY3RDaGlsZCwgU3BlY09iamVjdCwg
bV9qaXQuYnJhbmNoSWZOb3RPYmplY3Qob3AxR1BSKSk7CiAKLSAgICBicmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsIG9wMi50YWdHUFIoKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpLCBub3RUYWtlbik7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90Q2VsbCA9IG1f
aml0LmJyYW5jaElmTm90Q2VsbChvcDIudGFnR1BSKCkpOworICAgIGFkZEJyYW5jaChub3RDZWxs
LCBub3RUYWtlbik7CiAgICAgCiAgICAgaWYgKHRha2VuID09IG5leHRCbG9jaygpKSB7CiAgICAg
ICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgb3AxR1BSLCBvcDJHUFIsIG5v
dFRha2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cAppbmRleCAwMjRkZGYwYWY2NzcyYjg1Y2Y0NjQ5ZTliYWIyNGZjNDg2NDBlNTk2Li42ZWNhNGQy
MDVlZWJmOTI0NjdhYmQ0MjUzNWJjZTdmZjJlMDMyZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBB
c3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzSlNEb3VibGUoR1BSUmVnIGdwcikKIAogdm9pZCBB
c3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbChHUFJSZWcgZ3ByKQogewotICAgIEp1bXAg
Y2hlY2tDZWxsID0gYnJhbmNoMzIoRXF1YWwsIGdwciwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpKTsKKyAgICBKdW1wIGNoZWNrQ2VsbCA9IGJyYW5jaElmQ2VsbChncHIpOwogICAgIGFi
b3J0V2l0aFJlYXNvbihBSElzTm90Q2VsbCk7CiAgICAgY2hlY2tDZWxsLmxpbmsodGhpcyk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCAyN2Rk
NTk3OTBiNzFmOThhMjE3YjEyNTg3NzY3NzE2NWFjNjhlZTBjLi4yNjkxZGEwNTI0NTM0MTFhZjQ4
ZjI2YTNiMTg3YjMyNDNjZmIwOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmgKQEAgLTEzOSwxNCArMTM5LDI2IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgdm9pZCBzdG9yZUNlbGwoVCBjZWxs
LCBBZGRyZXNzIGFkZHJlc3MpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4K
KyAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIFUgYWRkcmVzcykKICAgICB7CiAjaWYgVVNFKEpT
VkFMVUU2NCkKICAgICAgICAgc3RvcmU2NChjZWxsLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAg
IHN0b3JlMzIoY2VsbCwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKLSAgICAg
ICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJlc3Mud2l0aE9m
ZnNldChUYWdPZmZzZXQpKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5bG9hZE9mZnNldCAm
JiBUYWdPZmZzZXQgPT0gNCwgIkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0ZW0iKTsKKyAgICAg
ICAgc3RvcmVQYWlyMzIoY2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBhZGRy
ZXNzKTsKKyNlbmRpZgorICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+CisgICAgdm9p
ZCBzdG9yZUNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVSBhZGRyZXNzKQorICAgIHsKKyNpZiBVU0Uo
SlNWQUxVRTY0KQorICAgICAgICBzdG9yZTY0KHJlZ3MuZ3ByKCksIGFkZHJlc3MpOworI2Vsc2UK
KyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5bG9hZE9mZnNldCAmJiBUYWdPZmZzZXQgPT0gNCwg
IkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0ZW0iKTsKKyAgICAgICAgbW92ZShBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVncy50YWdHUFIoKSk7Cisg
ICAgICAgIHN0b3JlUGFpcjMyKHJlZ3MucGF5bG9hZEdQUigpLCByZWdzLnRhZ0dQUigpLCBhZGRy
ZXNzKTsKICNlbmRpZgogICAgIH0KICAgICAKQEAgLTE1OCw3ICsxNzAsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCksIGdwcik7CiAj
ZW5kaWYKICAgICB9Ci0gICAgCisKICAgICB2b2lkIHN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgcmVn
cywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjg3LDgg
KzI5OSw3IEBAIHB1YmxpYzoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0KFRy
dXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxzZQotICAg
ICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9mZnNl
dChUYWdPZmZzZXQpKTsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5bG9h
ZCgpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgc3RvcmVQ
YWlyMzIoVHJ1c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgVHJ1c3RlZEltbTMyKHZhbHVlLnBheWxv
YWQoKSksIGFkZHJlc3MpOwogI2VuZGlmCiAgICAgfQogCkBAIC0yOTcsNiArMzA4LDkgQEAgcHVi
bGljOgogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpT
VmFsdWU6OmVuY29kZSh2YWx1ZSkpLCBhZGRyZXNzKTsKICNlbHNlCisgICAgICAgIC8vIFdlIGNh
bid0IHVzZSBzdG9yZVBhaXIzMiBoZXJlIGJlY2F1c2UgdGhlIEJhc2VJbmRleCBuZWVkcyB0aGUg
dGVtcCBhZHJlc3MKKyAgICAgICAgLy8gcmVnaXN0ZXIgdG8gY2FsY3VsYXRlIHRoZSBhZGRyZXNz
LCBidXQgd2hlbiBwYXNzaW5nIHR3byBpbW0sIHRoZSB0ZW1wIGFkZHJlc3MKKyAgICAgICAgLy8g
cmVnaXN0ZXIgaXMgYWxzbyBuZWVkZWQKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFs
dWUudGFnKCkpLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CiAgICAgICAgIHN0b3Jl
MzIoVHJ1c3RlZEltbTMyKHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQYXls
b2FkT2Zmc2V0KSk7CiAjZW5kaWYKQEAgLTY2MSwxNSArNjc1LDE2IEBAIHB1YmxpYzoKICNlbmRp
ZgogICAgIH0KIAotICAgIEp1bXAgYnJhbmNoSWZOb3RDZWxsKEdQUlJlZyByZWcsIFRhZ1JlZ2lz
dGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KKyAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9k
ZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICAgICAgaWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBi
cmFuY2hUZXN0NjQoTm9uWmVybywgcmVnLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsK
LSAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWcsIFRydXN0ZWRJbW02NChK
U1ZhbHVlOjpOb3RDZWxsTWFzaykpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChO
b25aZXJvLCBtYXliZUNlbGwsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAg
ICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpT
VmFsdWU6Ok5vdENlbGxNYXNrKSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7
Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHJlZywg
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgbWF5YmVDZWxsLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZykpOwogI2VuZGlmCiAgICAgfQogCkBAIC02ODEsMTggKzY5NiwyMCBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBicmFuY2hJZk5vdENlbGwocmVncy50YWdHUFIoKSwgbW9kZSk7
CiAjZW5kaWYKICAgICB9Ci0gICAgCi0gICAgSnVtcCBicmFuY2hJZkNlbGwoR1BSUmVnIHJlZywg
VGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKKworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+CisgICAgSnVtcCBicmFuY2hJZkNlbGwoVCBtYXliZUNlbGwsIFRhZ1JlZ2lz
dGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAgICAgICBy
ZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rl
cik7Ci0gICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgcmVnLCBUcnVzdGVkSW1tNjQo
SlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQo
WmVybywgbWF5YmVDZWxsLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKKyAgICAgICAg
cmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBtYXliZUNlbGwsIFRydXN0ZWRJbW02NChKU1ZhbHVl
OjpOb3RDZWxsTWFzaykpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwotICAg
ICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCByZWcsIFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6RXF1YWwsIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
KTsKICNlbmRpZgogICAgIH0KKwogICAgIEp1bXAgYnJhbmNoSWZDZWxsKEpTVmFsdWVSZWdzIHJl
Z3MsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lm
IFVTRShKU1ZBTFVFNjQpCkBAIC0xMjE2LDExICsxMjMzLDEzIEBAIHB1YmxpYzoKICAgICAgICAg
QVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAgICByZXR1cm4gQWRkcmVz
cyhiYXNlR1BSLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsg
VGFnT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVn
aXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcikg
KyBUYWdPZmZzZXQpOwogICAgIH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihPcGVyYW5k
IG9wZXJhbmQpCiAgICAgewogICAgICAgICBBU1NFUlQoIW9wZXJhbmQuaXNUbXAoKSk7CkBAIC0x
MjMyLDExICsxMjUxLDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rl
ci5pc1ZhbGlkKCkpOwogICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlR1BSLCB2aXJ0dWFsUmVn
aXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAg
fQorCiAgICAgc3RhdGljIEFkZHJlc3MgcGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVh
bFJlZ2lzdGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlk
KCkpOwogICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
dmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZz
ZXQpOwogICAgIH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoT3BlcmFuZCBvcGVy
YW5kKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFvcGVyYW5kLmlzVG1wKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKaW5k
ZXggMmZlZjUzZGE2MGEyZTc1YTQ3YzY0ZjhkMzA0MGM0NjIyMmJiODhlYS4uMGU4N2UxNjk1MzFh
Yzk1MWJmYWYwZjlkZWQxYjZmMmZhNjYzZGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwCkBAIC00NSw5ICs0NSw3IEBA
IERhdGFGb3JtYXQgQ2FsbEZyYW1lU2h1ZmZsZXI6OmVtaXRTdG9yZShDYWNoZWRSZWNvdmVyeSYg
bG9jYXRpb24sIE1hY3JvQXNzZW1ibGVyCiAgICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24u
cmVjb3ZlcnkoKS5ncHIoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKICAg
ICAgICAgcmV0dXJuIERhdGFGb3JtYXRJbnQzMjsKICAgICBjYXNlIFVuYm94ZWRDZWxsSW5HUFI6
Ci0gICAgICAgIG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSwKLSAgICAgICAgICAgIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQp
KTsKLSAgICAgICAgbV9qaXQuc3RvcmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBhZGRy
ZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworICAgICAgICBtX2ppdC5zdG9yZUNlbGwo
bG9jYXRpb24ucmVjb3ZlcnkoKS5ncHIoKSwgYWRkcmVzcyk7CiAgICAgICAgIHJldHVybiBEYXRh
Rm9ybWF0Q2VsbDsKICAgICBjYXNlIENvbnN0YW50OgogICAgICAgICBtX2ppdC5zdG9yZVRydXN0
ZWRWYWx1ZShsb2NhdGlvbi5yZWNvdmVyeSgpLmNvbnN0YW50KCksIGFkZHJlc3MpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCmluZGV4IDRiNDI5YTI2N2NjZWUy
YzY0NzNlZGE3MWM5ZmM5NDU0YzU4MjMwMGMuLjJhZmFlYmJiZjNhZjIxMWNmZWQ1OTE1MWY5OWVk
MjIxNjljMDQzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRl
cmZhY2VKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklU
LmgKQEAgLTU5LDcgKzU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICBBU1NF
UlQodmlydHVhbFJlZ2lzdGVyIDwgVmlydHVhbFJlZ2lzdGVyKEZpcnN0Q29uc3RhbnRSZWdpc3Rl
ckluZGV4KSk7CiAgICAgICAgIGxvYWRQdHIocGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBw
YXlsb2FkKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE5vdEVxdWFsLCB0YWdGb3IodmlydHVh
bFJlZ2lzdGVyKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0
dXJuIGJyYW5jaElmTm90Q2VsbCh0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSk7CiAgICAgfQogCiAg
ICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZElu
dDMyKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIsIFJlZ2lzdGVySUQgZHN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454990</attachid>
            <date>2022-03-17 10:34:02 -0700</date>
            <delta_ts>2022-03-17 14:06:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220317173400.patch</filename>
            <type>text/plain</type>
            <size>21407</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzk5Zjk5ODY5YTc0NTFiNGE3ZjEzYzAyOWVmZjgwYzU0ODA4ZGI1Li5lNjk0ZTBmMzdlZDczYWI0
NzdiZmM1YzEyODdlOTBiZTgzODhiYjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MTUgKzEsMzkgQEAKIDIwMjItMDMtMTcgIE1pa2hhaWwgUi4gR2FkZWxoYSAgPG1pa2hhaWxAaWdh
bGlhLmNvbT4KIAotICAgICAgICBVbnJldmlld2VkLCBub24tdW5pZmllZCBidWlsZCBmaXgKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzkyOQorICAg
ICAgICBVbmlmeSBjYWxscyBhbmQgY2hlY2tzIGZvciBDZWxsVGFnCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgwMjUKIAotICAgICAgICAqIGRmZy9E
RkdDYXBhYmlsaXRpZXMuY3BwOgotICAgICAgICAqIGppdC9KSVREaXNhc3NlbWJsZXIuY3BwOgot
ICAgICAgICAqIGppdC9KSVRQbGFuLmNwcDoKLSAgICAgICAgKiBsbGludC9MTEludEVudHJ5cG9p
bnQuY3BwOgotICAgICAgICAqIHJ1bnRpbWUvRmlsZUJhc2VkRnV6emVyQWdlbnRCYXNlLmNwcDoK
LSAgICAgICAgKiBydW50aW1lL1NoYWRvd1JlYWxtT2JqZWN0LmNwcDoKLSAgICAgICAgKiBydW50
aW1lL1NoYWRvd1JlYWxtUHJvdG90eXBlLmNwcDoKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBhbGwgdGhlIHBsYWNlcyB3aGVy
ZSBjZWxsIHRhZ3MgYXJlIHdyaXR0ZW4gYW5kIGNoZWNrZWQKKyAgICAgICAgd2hlbiBicmFuY2hp
bmc6IHRoaXMgd2lsbCBiZSBuZWVkZWQgd2hlbiBpbXBsZW1lbnRpbmcgdGhlIGNvbmN1cnJlbmN5
IG9uCisgICAgICAgIDMyIGJpdHMgYXJjaHMsIHNvIHdlIGNhbiBmb2N1cyBvbiBjaGFuZ2luZyBz
dG9yZUNlbGwsIGJyYW5jaElmTm90Q2VsbCBhbmQKKyAgICAgICAgYnJhbmNoSWZDZWxsIHRvIGlt
cGxlbWVudCB0aGUgbXV0ZXggbG9ja3MvdW5sb2Nrcy4KKworICAgICAgICBJdCBhbHNvIHJlZHVj
ZXMgdGhlIGNvZGUgc2l6ZSBpbiBKZXRTdHJlYW0yIGJ5IH4xJSBvbiBhdmVyYWdlLgorCisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXJBUk12Nzo6c3RvcmU4KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk12Nzo6c3RvcmVQYWlyMzIpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09T
UkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVk
Q2FsbEZyYW1lcyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAg
ICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhl
bHBlcnM6OmppdEFzc2VydElzQ2VsbCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5o
OgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChK
U0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZOb3RDZWxsKToKKyAgICAgICAgKEpTQzo6QXNz
ZW1ibHlIZWxwZXJzOjpicmFuY2hJZkNlbGwpOgorICAgICAgICAqIGppdC9DYWxsRnJhbWVTaHVm
ZmxlcjMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lU2h1ZmZsZXI6OmVtaXRTdG9y
ZSk6CisgICAgICAgICogaml0L0pTSW50ZXJmYWNlSklULmg6CisgICAgICAgIChKU0M6OkpTSW50
ZXJmYWNlSklUOjplbWl0TG9hZEpTQ2VsbCk6CiAKIDIwMjItMDMtMTYgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IGZlN2YyZDVjNGYzZmI0MWMxZDM1
NWVlOTQ0ZGRkNWE1YWUxNDAwOGIuLjNjNmE5YzFjN2MyYWEyMjNmZTQxNTI5NTkyMGQ1ZGQ2Zjhi
ZGZlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC0xMDU0LDEyICsxMDU0LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgc3RvcmU4KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQgKmFkZHJlc3MpCisgICAg
dm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBzdG9yZTgoc3JjLCBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJl
c3MpKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIGNv
bnN0IHZvaWQgKmFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgY29u
c3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRp
Y19jYXN0PGludDhfdD4oaW1tLm1fdmFsdWUpKTsKICAgICAgICAgbW92ZShpbW04LCBkYXRhVGVt
cFJlZ2lzdGVyKTsKQEAgLTEwOTksNiArMTA5OSwzMSBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3Jl
MTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBh
aXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykK
KyAgICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAg
ICAgICBzdG9yZVBhaXIzMihzcmMxLCBzY3JhdGNoLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIgaW1tMzIs
IEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDEgPSBn
ZXRDYWNoZWRBZGRyZXNzVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1v
dmUoaW1tUHRyLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSBnZXRD
YWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1t
MzIsIHNjcmF0Y2gyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBh
ZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0x
LCBUcnVzdGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVn
aXN0ZXJJRCBzY3JhdGNoMSA9IGdldENhY2hlZEFkZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0xLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaDIgPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7
CisgICAgICAgIG1vdmUoaW1tMiwgc2NyYXRjaDIpOworICAgICAgICBzdG9yZVBhaXIzMihzY3Jh
dGNoMSwgc2NyYXRjaDIsIGFkZHJlc3MpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIo
UmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CiAgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIHNyYzIsIGRlc3QsIFRydXN0ZWRJbW0zMigwKSk7
CkBAIC0xMTM2LDYgKzExNjEsMTUgQEAgcHVibGljOgogICAgICAgICBzdG9yZVBhaXIzMihzcmMx
LCBzcmMyLCBBZGRyZXNzKHNjcmF0Y2gsIGFkZHJlc3Mub2Zmc2V0KSk7CiAgICAgfQogCisgICAg
dm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0
IHZvaWQqIGFkZHJlc3MpCisgICAgeworICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3MgPSBz
ZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsKKyAgICAgICAgQVNTRVJU
KGFybUFkZHJlc3MudHlwZSA9PSBBcm1BZGRyZXNzOjpIYXNPZmZzZXQpOworICAgICAgICBSZWdp
c3RlcklEIHNjcmF0Y2ggPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRl
KCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3Jj
MSwgc2NyYXRjaCwgQWRkcmVzcyhhcm1BZGRyZXNzLmJhc2UsIGFybUFkZHJlc3MudS5vZmZzZXQp
KTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0
ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgQXJtQWRkcmVz
cyBhcm1BZGRyZXNzID0gc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ck1JUFMuaAppbmRleCA5NGViNjJmNGExMjFhNjE0NTMyMzY5MTNhYzlkM2NiMzk0YWRiMGQyLi5i
MThkYjk5NGM0NmExODNlMjI0ODcyZmEzOWNhYWI1NmNmYTY5ZDU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTE2
NDksNiArMTY0OSwyNiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHN0
b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShpbW0sIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAg
ICBzdG9yZVBhaXIzMihzcmMxLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisK
KyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIg
aW1tMzIsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tUHRyLCBhZGRy
VGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShpbW0zMiwgZGF0YVRlbXBSZWdpc3Rlcik7Cisg
ICAgICAgIHN0b3JlUGFpcjMyKGFkZHJUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFk
ZHJlc3MpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEs
IFRydXN0ZWRJbW0zMiBpbW0yLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3Zl
KGltbTEsIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbTIsIGRhdGFUZW1wUmVn
aXN0ZXIpOworICAgICAgICBzdG9yZVBhaXIzMihhZGRyVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJl
Z2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVy
SUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAg
ICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkpOwpAQCAtMTY3
MSw2ICsxNjkxLDEzIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihzcmMyLCBhZGRyZXNzLndp
dGhPZmZzZXQoNCkpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBz
cmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgbW92ZShpbW0sIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZVBhaXIzMihzcmMx
LCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lk
IHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lk
KiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBh
ZGRyVGVtcFJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3Bw
CmluZGV4IGIyNDNjNjc0Nzk1MGNlZmQ2YjUyZDhkZTUzYTVhYWVhMTQ4YmIwZmMuLmYwZmM5NGZi
MGNmMTU0YjMxY2M5NzJmYWNjMjdmYmVjYzA2NGJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0LmNwcApAQCAtNjQ2LDggKzY0Niw3IEBAIHZvaWQgT1NSRXhpdDo6Y29t
cGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwg
Y29uc3QKICAgICAgICAgICAgIGppdC5sb2FkMzIoCiAgICAgICAgICAgICAgICAgQXNzZW1ibHlI
ZWxwZXJzOjpwYXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwKICAgICAgICAg
ICAgICAgICBKU1JJbmZvOjpqc1JlZ1QxMC5wYXlsb2FkR1BSKCkpOwotICAgICAgICAgICAgaml0
Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEpT
UkluZm86OmpzUmVnVDEwLnRhZ0dQUigpKTsKLSAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpT
UkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOworICAgICAgICAgICAgaml0LnN0b3Jl
Q2VsbChKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJy
ZWFrOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAppbmRleCA1ODRmZmQ4ODU2YjE4Yzc3NjhiY2EyZDM3
OTVlOTBlODMzMWUyMTA5Li41N2M3NWNmNzVkMDU1YTg4NGZiN2VjMjFkMmNmMDMxNTMwYjZlZTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxl
ckNvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29t
cGlsZXJDb21tb24uY3BwCkBAIC0zMjYsOSArMzI2LDggQEAgdm9pZCByZWlmeUlubGluZWRDYWxs
RnJhbWVzKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAg
ICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAgICAgICAgICBqaXQu
c3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNW
YWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKSksIEFzc2VtYmx5SGVscGVy
czo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNl
dCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8v
IHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0Ci0gICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6
OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlz
Q2xvc3VyZUNhbGwpCi0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5
SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFj
a09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKKyAgICAgICAgICAgIGppdC5zdG9y
ZUNlbGwoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0
ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkp
KTsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KSAvLyBlbmRpbmcgdGhlICNlbHNlIHBhcnQsIHNv
IGRpcmVjdGx5IGFib3ZlIGlzIHRoZSAzMi1iaXQgcGFydAogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAzNjBlMTgxODNl
Y2JhMWUwY2MwNWQ3NmM3MmNkZjEyMTllY2NiMTZkLi41MjRjYWE4MzcyMjk3YTYyNGVkN2YyNWUx
MDc5ZDU3NTYyMWNhNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcApAQCAtMjM4Myw3ICsyMzgzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y2hlY2tBcmd1bWVudFR5cGVzKCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgRmx1c2hlZENlbGw6IHsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
QmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
QmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaElmTm90Q2VsbChKSVRDb21w
aWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC05NzUwLDEzICs5NzUwLDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5V2l0aFNwcmVhZChOb2RlKiBub2RlKQogICAgICAg
ICBpZiAoYml0VmVjdG9yLT5nZXQoaSkpIHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGltbXV0YWJsZUJ1dHRlcmZseSh0aGlzLCB1c2UpOwogICAgICAgICAgICAgR1BSUmVnIGlt
bXV0YWJsZUJ1dHRlcmZseUdQUiA9IGltbXV0YWJsZUJ1dHRlcmZseS5ncHIoKTsKLSNpZiBVU0Uo
SlNWQUxVRTY0KQotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChpbW11dGFibGVCdXR0ZXJmbHlH
UFIsICZidWZmZXJbaV0pOwotI2Vsc2UKLSAgICAgICAgICAgIGNoYXIqIHBvaW50ZXIgPSBzdGF0
aWNfY2FzdDxjaGFyKj4oc3RhdGljX2Nhc3Q8dm9pZCo+KCZidWZmZXJbaV0pKTsKLSAgICAgICAg
ICAgIG1faml0LnN0b3JlMzIoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCBwb2ludGVyICsgUGF5bG9h
ZE9mZnNldCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSwgcG9pbnRlciArIFRhZ09mZnNldCk7Ci0jZW5kaWYKKyAgICAgICAgICAgIG1f
aml0LnN0b3JlQ2VsbChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZmZXJbaV0pOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaW5wdXQodGhpcywgdXNlKTsK
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzIGlucHV0UmVncyA9IGlucHV0LmpzVmFsdWVSZWdzKCk7
CkBAIC0xMDExOSw3ICsxMDExMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJh
eUluZGV4T2YoTm9kZSogbm9kZSkKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgYXV0
byBmb3VuZCA9IG1faml0LmJyYW5jaDY0KENDYWxsSGVscGVyczo6RXF1YWwsIE1hY3JvQXNzZW1i
bGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1l
c0VpZ2h0KSwgc2VhcmNoRWxlbWVudEdQUik7CiAjZWxzZQotICAgICAgICAgICAgYXV0byBza2lw
ID0gbV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6
OkJhc2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWln
aHQsIFRhZ09mZnNldCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAg
ICAgICBhdXRvIHNraXAgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQs
IFRhZ09mZnNldCkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0
LCBQYXlsb2FkT2Zmc2V0KSwgdGVtcEdQUik7CiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9q
aXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgdGVtcEdQUiwgc2VhcmNoRWxlbWVudEdQ
Uik7CiAgICAgICAgICAgICBza2lwLmxpbmsoJm1faml0KTsKQEAgLTExMzkwLDE4ICsxMTM4NCw4
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdTdHJpbmdPYmplY3QoTm9kZSogbm9k
ZSkKICAgICAgICAgcmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKG5vZGUtPnN0cnVjdHVyZSgpKSwg
YnV0dGVyZmx5LCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsCiAgICAgICAgIHNsb3dQYXRoKTsK
ICAgICAKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIG1faml0LnN0b3JlNjQoCi0gICAgICAgIG9w
ZXJhbmRHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0
OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpKTsKLSNlbHNlCi0gICAgbV9qaXQuc3RvcmUzMigKLSAg
ICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBKSVRDb21waWxl
cjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNl
dCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICBtX2pp
dC5zdG9yZTMyKAotICAgICAgICBvcGVyYW5kR1BSLAotICAgICAgICBKSVRDb21waWxlcjo6QWRk
cmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpICsg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0jZW5kaWYKLSAg
ICAKKyAgICBtX2ppdC5zdG9yZUNlbGwob3BlcmFuZEdQUiwgSklUQ29tcGlsZXI6OkFkZHJlc3Mo
cmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkpOworCiAg
ICAgbV9qaXQubXV0YXRvckZlbmNlKHZtKCkpOwogICAgIAogICAgIGFkZFNsb3dQYXRoR2VuZXJh
dG9yKHNsb3dQYXRoQ2FsbCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDdmYjU2NTIzMzJmOWM2MGY2MjIyODZmZWFh
OWU1NmJhNjMyN2Y2Y2EuLjgxZjM5N2FjNjUwM2YzYzE1MTkyNjQyMDU4YThiNDkwNmM4YjM5ZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcApAQCAtMTEwMywxMCArMTEwMyw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6
ZmlsbFNwZWN1bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgICAgICAgICAgICAgIEJhZFR5cGUsCiAg
ICAgICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZShKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0
dWFsUmVnaXN0ZXIpKSwKICAgICAgICAgICAgICAgICBlZGdlLAotICAgICAgICAgICAgICAgIG1f
aml0LmJyYW5jaDMyKAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1
YWwsCi0gICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lz
dGVyKSwKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
KSk7CisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0
YWdGb3IodmlydHVhbFJlZ2lzdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIEdQUlJlZyBncHIg
PSBhbGxvY2F0ZSgpOwogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRG
b3IodmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKQEAgLTEyNzEsNyArMTI2OCw4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFN0cmljdEVxdWFsaXR5KEVkZ2Ugb2Jq
ZWN0Q2hpbGQsIEVkZ2UKIAogICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94
ZWRDZWxsKG9wMUdQUiksIG9iamVjdENoaWxkLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hJZk5v
dE9iamVjdChvcDFHUFIpKTsKIAotICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgb3AyLnRhZ0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIG5vdFRha2Vu
KTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RD
ZWxsKG9wMi50YWdHUFIoKSk7CisgICAgYWRkQnJhbmNoKG5vdENlbGwsIG5vdFRha2VuKTsKICAg
ICAKICAgICBpZiAodGFrZW4gPT0gbmV4dEJsb2NrKCkpIHsKICAgICAgICAgYnJhbmNoMzIoTWFj
cm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUiwgbm90VGFrZW4pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDAyNGRkZjBh
ZjY3NzJiODVjZjQ2NDllOWJhYjI0ZmM0ODY0MGU1OTYuLjZlY2E0ZDIwNWVlYmY5MjQ2N2FiZDQy
NTM1YmNlN2ZmMmUwMzJkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6
aml0QXNzZXJ0SXNKU0RvdWJsZShHUFJSZWcgZ3ByKQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6
aml0QXNzZXJ0SXNDZWxsKEdQUlJlZyBncHIpCiB7Ci0gICAgSnVtcCBjaGVja0NlbGwgPSBicmFu
Y2gzMihFcXVhbCwgZ3ByLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgIEp1
bXAgY2hlY2tDZWxsID0gYnJhbmNoSWZDZWxsKGdwcik7CiAgICAgYWJvcnRXaXRoUmVhc29uKEFI
SXNOb3RDZWxsKTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDI3ZGQ1OTc5MGI3MWY5OGEyMTdi
MTI1ODc3Njc3MTY1YWM2OGVlMGMuLjViMmZmZmMwNGNmZWJjN2U1MzQ4YzAyYjhmMGVkOWFmZWFl
NWMxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApA
QCAtMTM5LDE0ICsxMzksMjYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4KLSAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIEFkZHJlc3MgYWRkcmVz
cykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorICAgIHZvaWQgc3RvcmVD
ZWxsKFQgY2VsbCwgVSBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAg
ICBzdG9yZTY0KGNlbGwsIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihjZWxsLCBh
ZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwotICAgICAgICBzdG9yZTMyKFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkp
OworICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0
LCAiQXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBzdG9yZVBhaXIzMihj
ZWxsLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJlc3MpOworI2VuZGlmCisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICB2b2lkIHN0b3JlQ2VsbChKU1Zh
bHVlUmVncyByZWdzLCBVIGFkZHJlc3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAg
ICAgIHN0b3JlNjQocmVncy5ncHIoKSwgYWRkcmVzcyk7CisjZWxzZQorICAgICAgICBzdGF0aWNf
YXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0bGUt
ZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBtb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdzLnRhZ0dQUigpKTsKKyAgICAgICAgc3RvcmVQYWly
MzIocmVncy5wYXlsb2FkR1BSKCksIHJlZ3MudGFnR1BSKCksIGFkZHJlc3MpOwogI2VuZGlmCiAg
ICAgfQogICAgIApAQCAtMTU4LDcgKzE3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDMyKGFk
ZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSwgZ3ByKTsKICNlbmRpZgogICAgIH0KLSAg
ICAKKwogICAgIHZvaWQgc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyByZWdzLCBBZGRyZXNzIGFkZHJl
c3MpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yODcsOCArMjk5LDkgQEAgcHVibGlj
OgogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFs
dWU6OmVuY29kZSh2YWx1ZSkpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwot
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNzLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworICAgICAgICAvLyBzdG9yZTMyKFRydXN0ZWRJbW0z
Mih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyAgICAgICAg
Ly8gc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5bG9hZCgpKSwgYWRkcmVzcy53aXRoT2Zm
c2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyKHZh
bHVlLnBheWxvYWQoKSksIFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3MpOwogI2Vu
ZGlmCiAgICAgfQogCkBAIC0yOTcsNiArMzEwLDkgQEAgcHVibGljOgogI2lmIFVTRShKU1ZBTFVF
NjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkp
LCBhZGRyZXNzKTsKICNlbHNlCisgICAgICAgIC8vIFdlIGNhbid0IHVzZSBzdG9yZVBhaXIzMiBo
ZXJlIGJlY2F1c2UgdGhlIEJhc2VJbmRleCBuZWVkcyB0aGUgdGVtcCBhZHJlc3MKKyAgICAgICAg
Ly8gcmVnaXN0ZXIgdG8gY2FsY3VsYXRlIHRoZSBhZGRyZXNzLCBidXQgd2hlbiBwYXNzaW5nIHR3
byBpbW0sIHRoZSB0ZW1wIGFkZHJlc3MKKyAgICAgICAgLy8gcmVnaXN0ZXIgaXMgYWxzbyBuZWVk
ZWQKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzLndp
dGhPZmZzZXQoVGFnT2Zmc2V0KSk7CiAgICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKHZhbHVl
LnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CiAjZW5kaWYK
QEAgLTY2MSwxNSArNjc3LDE2IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAotICAgIEp1bXAg
YnJhbmNoSWZOb3RDZWxsKEdQUlJlZyByZWcsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVU
YWdSZWdpc3RlcnMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBKdW1wIGJyYW5jaElm
Tm90Q2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lz
dGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKG1vZGUgPT0gSGF2
ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywg
cmVnLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKLSAgICAgICAgcmV0dXJuIGJyYW5j
aFRlc3Q2NChOb25aZXJvLCByZWcsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykp
OworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCBtYXliZUNlbGwsIEdQ
UkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0
KE5vblplcm8sIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7
CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Ci0gICAgICAgIHJldHVybiBicmFu
Y2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHJlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RF
cXVhbCwgbWF5YmVDZWxsLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogI2VuZGlm
CiAgICAgfQogCkBAIC02ODEsMTggKzY5OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBi
cmFuY2hJZk5vdENlbGwocmVncy50YWdHUFIoKSwgbW9kZSk7CiAjZW5kaWYKICAgICB9Ci0gICAg
Ci0gICAgSnVtcCBicmFuY2hJZkNlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgSnVt
cCBicmFuY2hJZkNlbGwoVCBtYXliZUNlbGwsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVU
YWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIGlmIChtb2Rl
ID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFpl
cm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7Ci0gICAgICAgIHJldHVybiBi
cmFuY2hUZXN0NjQoWmVybywgcmVnLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2sp
KTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgbWF5YmVDZWxsLCBHUFJJ
bmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NCha
ZXJvLCBtYXliZUNlbGwsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykpOwogI2Vs
c2UKICAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwotICAgICAgICByZXR1cm4gYnJhbmNoMzIo
TWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCByZWcsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIG1heWJl
Q2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKICNlbmRpZgogICAgIH0KKwog
ICAgIEp1bXAgYnJhbmNoSWZDZWxsKEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1JlZ2lzdGVyc01vZGUg
bW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0x
MjE2LDExICsxMjM1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rl
ci5pc1ZhbGlkKCkpOwogICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlR1BSLCB2aXJ0dWFsUmVn
aXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0KTsKICAgICB9CisK
ICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3Rl
cikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAg
ICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1YWxS
ZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0K
KwogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihPcGVyYW5kIG9wZXJhbmQpCiAgICAgewogICAg
ICAgICBBU1NFUlQoIW9wZXJhbmQuaXNUbXAoKSk7CkBAIC0xMjMyLDExICsxMjUzLDEzIEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAg
ICByZXR1cm4gQWRkcmVzcyhiYXNlR1BSLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGljIEFkZHJl
c3MgcGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQogICAgIHsKICAg
ICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAgICByZXR1cm4g
QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVyLm9mZnNl
dCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpOwogICAgIH0KKwogICAgIHN0
YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoT3BlcmFuZCBvcGVyYW5kKQogICAgIHsKICAgICAgICAg
QVNTRVJUKCFvcGVyYW5kLmlzVG1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKaW5kZXggMmZlZjUzZGE2MGEyZTc1YTQ3
YzY0ZjhkMzA0MGM0NjIyMmJiODhlYS4uMGU4N2UxNjk1MzFhYzk1MWJmYWYwZjlkZWQxYjZmMmZh
NjYzZGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVT
aHVmZmxlcjMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFt
ZVNodWZmbGVyMzJfNjQuY3BwCkBAIC00NSw5ICs0NSw3IEBAIERhdGFGb3JtYXQgQ2FsbEZyYW1l
U2h1ZmZsZXI6OmVtaXRTdG9yZShDYWNoZWRSZWNvdmVyeSYgbG9jYXRpb24sIE1hY3JvQXNzZW1i
bGVyCiAgICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24ucmVjb3ZlcnkoKS5ncHIoKSwgYWRk
cmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKICAgICAgICAgcmV0dXJuIERhdGFGb3Jt
YXRJbnQzMjsKICAgICBjYXNlIFVuYm94ZWRDZWxsSW5HUFI6Ci0gICAgICAgIG1faml0LnN0b3Jl
MzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKLSAgICAg
ICAgICAgIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKLSAgICAgICAgbV9qaXQuc3Rv
cmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBhZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9h
ZE9mZnNldCkpOworICAgICAgICBtX2ppdC5zdG9yZUNlbGwobG9jYXRpb24ucmVjb3ZlcnkoKS5n
cHIoKSwgYWRkcmVzcyk7CiAgICAgICAgIHJldHVybiBEYXRhRm9ybWF0Q2VsbDsKICAgICBjYXNl
IENvbnN0YW50OgogICAgICAgICBtX2ppdC5zdG9yZVRydXN0ZWRWYWx1ZShsb2NhdGlvbi5yZWNv
dmVyeSgpLmNvbnN0YW50KCksIGFkZHJlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
U0ludGVyZmFjZUpJVC5oCmluZGV4IDRiNDI5YTI2N2NjZWUyYzY0NzNlZGE3MWM5ZmM5NDU0YzU4
MjMwMGMuLjJhZmFlYmJiZjNhZjIxMWNmZWQ1OTE1MWY5OWVkMjIxNjljMDQzOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKQEAgLTU5LDcgKzU5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyIDwg
VmlydHVhbFJlZ2lzdGVyKEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4KSk7CiAgICAgICAgIGxv
YWRQdHIocGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBwYXlsb2FkKTsKLSAgICAgICAgcmV0
dXJuIGJyYW5jaDMyKE5vdEVxdWFsLCB0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwgVHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaElmTm90Q2VsbCh0
YWdGb3IodmlydHVhbFJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgaW5saW5lIEpTSW50ZXJmYWNl
SklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEludDMyKFZpcnR1YWxSZWdpc3RlciB2
aXJ0dWFsUmVnaXN0ZXIsIFJlZ2lzdGVySUQgZHN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455026</attachid>
            <date>2022-03-17 14:06:41 -0700</date>
            <delta_ts>2022-03-17 14:47:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220317210639.patch</filename>
            <type>text/plain</type>
            <size>21061</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzk5Zjk5ODY5YTc0NTFiNGE3ZjEzYzAyOWVmZjgwYzU0ODA4ZGI1Li4zYWNlYTZmYWI1NjkyNzkz
MTI3MDFmMTk4ZjQ3ZGU2NzgxNTc5MWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZS4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNdjc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpjb21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RG
R09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxp
bmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgor
ICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAg
IChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3RvcmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlND
OjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmTm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToKKyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZs
ZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUp
OgorICAgICAgICAqIGppdC9KU0ludGVyZmFjZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVy
ZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgorCiAyMDIyLTAzLTE3ICBNaWtoYWlsIFIuIEdhZGVs
aGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZp
ZWQgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IGZlN2YyZDVjNGYzZmI0MWMxZDM1NWVlOTQ0ZGRk
NWE1YWUxNDAwOGIuLjNjNmE5YzFjN2MyYWEyMjNmZTQxNTI5NTkyMGQ1ZGQ2ZjhiZGZlMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5oCkBAIC0xMDU0LDEyICsxMDU0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmU4
KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBz
dG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQgKmFkZHJlc3MpCisgICAgdm9pZCBzdG9y
ZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBz
dG9yZTgoc3JjLCBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKSk7CiAg
ICAgfQogICAgIAotICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQg
KmFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCog
YWRkcmVzcykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGlu
dDhfdD4oaW1tLm1fdmFsdWUpKTsKICAgICAgICAgbW92ZShpbW04LCBkYXRhVGVtcFJlZ2lzdGVy
KTsKQEAgLTEwOTksNiArMTA5OSwzMSBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMTYoZGF0YVRl
bXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdp
c3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7Cisg
ICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICBzdG9y
ZVBhaXIzMihzcmMxLCBzY3JhdGNoLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3Jl
UGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIgaW1tMzIsIEFkZHJlc3Mg
YWRkcmVzcykKKyAgICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDEgPSBnZXRDYWNoZWRB
ZGRyZXNzVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tUHRy
LCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSBnZXRDYWNoZWREYXRh
VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tMzIsIHNjcmF0
Y2gyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsK
KyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVk
SW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBz
Y3JhdGNoMSA9IGdldENhY2hlZEFkZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsK
KyAgICAgICAgbW92ZShpbW0xLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRj
aDIgPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAg
IG1vdmUoaW1tMiwgc2NyYXRjaDIpOworICAgICAgICBzdG9yZVBhaXIzMihzY3JhdGNoMSwgc2Ny
YXRjaDIsIGFkZHJlc3MpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJ
RCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAg
IHN0b3JlUGFpcjMyKHNyYzEsIHNyYzIsIGRlc3QsIFRydXN0ZWRJbW0zMigwKSk7CkBAIC0xMTM2
LDYgKzExNjEsMTUgQEAgcHVibGljOgogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBB
ZGRyZXNzKHNjcmF0Y2gsIGFkZHJlc3Mub2Zmc2V0KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9y
ZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQqIGFk
ZHJlc3MpCisgICAgeworICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3MgPSBzZXR1cEFybUFk
ZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsKKyAgICAgICAgQVNTRVJUKGFybUFkZHJl
c3MudHlwZSA9PSBBcm1BZGRyZXNzOjpIYXNPZmZzZXQpOworICAgICAgICBSZWdpc3RlcklEIHNj
cmF0Y2ggPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAg
ICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc2NyYXRj
aCwgQWRkcmVzcyhhcm1BZGRyZXNzLmJhc2UsIGFybUFkZHJlc3MudS5vZmZzZXQpKTsKKyAgICB9
CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMy
LCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgQXJtQWRkcmVzcyBhcm1BZGRy
ZXNzID0gc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApp
bmRleCA5NGViNjJmNGExMjFhNjE0NTMyMzY5MTNhYzlkM2NiMzk0YWRiMGQyLi5iMThkYjk5NGM0
NmExODNlMjI0ODcyZmEzOWNhYWI1NmNmYTY5ZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTE2NDksNiArMTY0
OSwyNiBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMy
KFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAg
IHsKKyAgICAgICAgbW92ZShpbW0sIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZVBh
aXIzMihzcmMxLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lk
IHN0b3JlUGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIgaW1tMzIsIEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tUHRyLCBhZGRyVGVtcFJlZ2lz
dGVyKTsKKyAgICAgICAgbW92ZShpbW0zMiwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0
b3JlUGFpcjMyKGFkZHJUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwor
ICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEsIFRydXN0ZWRJ
bW0zMiBpbW0yLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbTEsIGFk
ZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbTIsIGRhdGFUZW1wUmVnaXN0ZXIpOwor
ICAgICAgICBzdG9yZVBhaXIzMihhZGRyVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwg
UmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBzdG9yZVBh
aXIzMihzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkpOwpAQCAtMTY3MSw2ICsxNjkx
LDEzIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUzMihzcmMyLCBhZGRyZXNzLndpdGhPZmZzZXQo
NCkpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVz
dGVkSW1tMzIgaW1tLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShU
cnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShp
bW0sIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBkYXRhVGVt
cFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFp
cjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNz
KQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJl
Z2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCmluZGV4IGIy
NDNjNjc0Nzk1MGNlZmQ2YjUyZDhkZTUzYTVhYWVhMTQ4YmIwZmMuLmYwZmM5NGZiMGNmMTU0YjMx
Y2M5NzJmYWNjMjdmYmVjYzA2NGJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmNwcApAQCAtNjQ2LDggKzY0Niw3IEBAIHZvaWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQo
Q0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhpdCYgZXhpdCwgY29uc3QKICAg
ICAgICAgICAgIGppdC5sb2FkMzIoCiAgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpw
YXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwKICAgICAgICAgICAgICAgICBK
U1JJbmZvOjpqc1JlZ1QxMC5wYXlsb2FkR1BSKCkpOwotICAgICAgICAgICAgaml0Lm1vdmUoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEpTUkluZm86Ompz
UmVnVDEwLnRhZ0dQUigpKTsKLSAgICAgICAgICAgIGppdC5zdG9yZVZhbHVlKEpTUkluZm86Ompz
UmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOworICAgICAgICAgICAgaml0LnN0b3JlQ2VsbChKU1JJ
bmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKICAgICAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcAppbmRleCA1ODRmZmQ4ODU2YjE4Yzc3NjhiY2EyZDM3OTVlOTBlODMz
MWUyMTA5Li41N2M3NWNmNzVkMDU1YTg4NGZiN2VjMjFkMmNmMDMxNTMwYjZlZTYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwCkBAIC0zMjYsOSArMzI2LDggQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKEND
YWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAgICAgaWYgKCFp
bmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAgICAgICAgICBqaXQuc3RvcmU2NChB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxp
bmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVz
c0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxG
cmFtZVNsb3Q6OmNhbGxlZSkpKTsKICNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMg
aXMgdGhlIDMyLWJpdCBwYXJ0Ci0gICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihW
aXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSkpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNh
bGwpCi0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6
cGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKKyAgICAgICAgICAgIGppdC5zdG9yZUNlbGwoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3Rh
bnQoKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICNlbmRp
ZiAvLyBVU0UoSlNWQUxVRTY0KSAvLyBlbmRpbmcgdGhlICNlbHNlIHBhcnQsIHNvIGRpcmVjdGx5
IGFib3ZlIGlzIHRoZSAzMi1iaXQgcGFydAogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAzNjBlMTgxODNlY2JhMWUwY2Mw
NWQ3NmM3MmNkZjEyMTllY2NiMTZkLi41MjRjYWE4MzcyMjk3YTYyNGVkN2YyNWUxMDc5ZDU3NTYy
MWNhNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcApAQCAtMjM4Myw3ICsyMzgzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tB
cmd1bWVudFR5cGVzKCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgRmx1c2hlZENlbGw6IHsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
dmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
dmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaElmTm90Q2VsbChKSVRDb21waWxlcjo6dGFn
Rm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CkBAIC05NzUwLDEzICs5NzUwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZU5ld0FycmF5V2l0aFNwcmVhZChOb2RlKiBub2RlKQogICAgICAgICBpZiAoYml0
VmVjdG9yLT5nZXQoaSkpIHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGltbXV0
YWJsZUJ1dHRlcmZseSh0aGlzLCB1c2UpOwogICAgICAgICAgICAgR1BSUmVnIGltbXV0YWJsZUJ1
dHRlcmZseUdQUiA9IGltbXV0YWJsZUJ1dHRlcmZseS5ncHIoKTsKLSNpZiBVU0UoSlNWQUxVRTY0
KQotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZm
ZXJbaV0pOwotI2Vsc2UKLSAgICAgICAgICAgIGNoYXIqIHBvaW50ZXIgPSBzdGF0aWNfY2FzdDxj
aGFyKj4oc3RhdGljX2Nhc3Q8dm9pZCo+KCZidWZmZXJbaV0pKTsKLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCBwb2ludGVyICsgUGF5bG9hZE9mZnNldCk7
Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgcG9pbnRlciArIFRhZ09mZnNldCk7Ci0jZW5kaWYKKyAgICAgICAgICAgIG1faml0LnN0b3Jl
Q2VsbChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZmZXJbaV0pOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaW5wdXQodGhpcywgdXNlKTsKICAgICAgICAg
ICAgIEpTVmFsdWVSZWdzIGlucHV0UmVncyA9IGlucHV0LmpzVmFsdWVSZWdzKCk7CkBAIC0xMDEx
OSw3ICsxMDExMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJheUluZGV4T2Yo
Tm9kZSogbm9kZSkKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgYXV0byBmb3VuZCA9
IG1faml0LmJyYW5jaDY0KENDYWxsSGVscGVyczo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwg
c2VhcmNoRWxlbWVudEdQUik7CiAjZWxzZQotICAgICAgICAgICAgYXV0byBza2lwID0gbV9qaXQu
YnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFRhZ09m
ZnNldCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgICAgICBhdXRv
IHNraXAgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFRhZ09mZnNl
dCkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBQYXlsb2Fk
T2Zmc2V0KSwgdGVtcEdQUik7CiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9qaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgdGVtcEdQUiwgc2VhcmNoRWxlbWVudEdQUik7CiAgICAg
ICAgICAgICBza2lwLmxpbmsoJm1faml0KTsKQEAgLTExMzkwLDE4ICsxMTM4NCw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdTdHJpbmdPYmplY3QoTm9kZSogbm9kZSkKICAgICAg
ICAgcmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKG5vZGUtPnN0cnVjdHVyZSgpKSwgYnV0dGVyZmx5
LCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsCiAgICAgICAgIHNsb3dQYXRoKTsKICAgICAKLSNp
ZiBVU0UoSlNWQUxVRTY0KQotICAgIG1faml0LnN0b3JlNjQoCi0gICAgICAgIG9wZXJhbmRHUFIs
IEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5h
bFZhbHVlT2Zmc2V0KCkpKTsKLSNlbHNlCi0gICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVz
cyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICBtX2ppdC5zdG9yZTMy
KAotICAgICAgICBvcGVyYW5kR1BSLAotICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1
bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpICsgT0JKRUNUX09G
RlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0jZW5kaWYKLSAgICAKKyAgICBt
X2ppdC5zdG9yZUNlbGwob3BlcmFuZEdQUiwgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BS
LCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkpOworCiAgICAgbV9qaXQu
bXV0YXRvckZlbmNlKHZtKCkpOwogICAgIAogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCmluZGV4IDdmYjU2NTIzMzJmOWM2MGY2MjIyODZmZWFhOWU1NmJhNjMy
N2Y2Y2EuLjgxZjM5N2FjNjUwM2YzYzE1MTkyNjQyMDU4YThiNDkwNmM4YjM5ZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cApAQCAtMTEwMywxMCArMTEwMyw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1
bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgICAgICAgICAgICAgIEJhZFR5cGUsCiAgICAgICAgICAg
ICAgICAgSlNWYWx1ZVNvdXJjZShKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0
ZXIpKSwKICAgICAgICAgICAgICAgICBlZGdlLAotICAgICAgICAgICAgICAgIG1faml0LmJyYW5j
aDMyKAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsCi0gICAg
ICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwKLSAg
ICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAg
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0YWdGb3Iodmly
dHVhbFJlZ2lzdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIEdQUlJlZyBncHIgPSBhbGxvY2F0
ZSgpOwogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVh
bFJlZ2lzdGVyKSwgZ3ByKTsKQEAgLTEyNzEsNyArMTI2OCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFN0cmljdEVxdWFsaXR5KEVkZ2Ugb2JqZWN0Q2hpbGQs
IEVkZ2UKIAogICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9w
MUdQUiksIG9iamVjdENoaWxkLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hJZk5vdE9iamVjdChv
cDFHUFIpKTsKIAotICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgb3AyLnRh
Z0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIG5vdFRha2VuKTsKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKG9wMi50
YWdHUFIoKSk7CisgICAgYWRkQnJhbmNoKG5vdENlbGwsIG5vdFRha2VuKTsKICAgICAKICAgICBp
ZiAodGFrZW4gPT0gbmV4dEJsb2NrKCkpIHsKICAgICAgICAgYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUiwgbm90VGFrZW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDAyNGRkZjBhZjY3NzJiODVj
ZjQ2NDllOWJhYjI0ZmM0ODY0MGU1OTYuLjZlY2E0ZDIwNWVlYmY5MjQ2N2FiZDQyNTM1YmNlN2Zm
MmUwMzJkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0
SXNKU0RvdWJsZShHUFJSZWcgZ3ByKQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0
SXNDZWxsKEdQUlJlZyBncHIpCiB7Ci0gICAgSnVtcCBjaGVja0NlbGwgPSBicmFuY2gzMihFcXVh
bCwgZ3ByLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgIEp1bXAgY2hlY2tD
ZWxsID0gYnJhbmNoSWZDZWxsKGdwcik7CiAgICAgYWJvcnRXaXRoUmVhc29uKEFISXNOb3RDZWxs
KTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDI3ZGQ1OTc5MGI3MWY5OGEyMTdiMTI1ODc3Njc3
MTY1YWM2OGVlMGMuLjI2OTFkYTA1MjQ1MzQxMWFmNDhmMjZhM2IxODdiMzI0M2NmYjA5MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTM5LDE0
ICsxMzksMjYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLSAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorICAgIHZvaWQgc3RvcmVDZWxsKFQgY2Vs
bCwgVSBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0
KGNlbGwsIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihjZWxsLCBhZGRyZXNzLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAiQXNzdW1l
cyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBzdG9yZVBhaXIzMihjZWxsLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJlc3MpOworI2VuZGlmCisgICAgfQorCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICB2b2lkIHN0b3JlQ2VsbChKU1ZhbHVlUmVncyBy
ZWdzLCBVIGFkZHJlc3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHN0b3Jl
NjQocmVncy5ncHIoKSwgYWRkcmVzcyk7CisjZWxzZQorICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQ
YXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5
c3RlbSIpOworICAgICAgICBtb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpLCByZWdzLnRhZ0dQUigpKTsKKyAgICAgICAgc3RvcmVQYWlyMzIocmVncy5w
YXlsb2FkR1BSKCksIHJlZ3MudGFnR1BSKCksIGFkZHJlc3MpOwogI2VuZGlmCiAgICAgfQogICAg
IApAQCAtMTU4LDcgKzE3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDMyKGFkZHJlc3Mud2l0
aE9mZnNldChQYXlsb2FkT2Zmc2V0KSwgZ3ByKTsKICNlbmRpZgogICAgIH0KLSAgICAKKwogICAg
IHZvaWQgc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyByZWdzLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yODcsOCArMjk5LDcgQEAgcHVibGljOgogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29k
ZSh2YWx1ZSkpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMy
KHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAgICBz
dG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNzLndpdGhPZmZzZXQo
UGF5bG9hZE9mZnNldCkpOworICAgICAgICBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIodmFsdWUu
dGFnKCkpLCBUcnVzdGVkSW1tMzIodmFsdWUucGF5bG9hZCgpKSwgYWRkcmVzcyk7CiAjZW5kaWYK
ICAgICB9CiAKQEAgLTI5Nyw2ICszMDgsOSBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkK
ICAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFk
ZHJlc3MpOwogI2Vsc2UKKyAgICAgICAgLy8gV2UgY2FuJ3QgdXNlIHN0b3JlUGFpcjMyIGhlcmUg
YmVjYXVzZSB0aGUgQmFzZUluZGV4IG5lZWRzIHRoZSB0ZW1wIGFkcmVzcworICAgICAgICAvLyBy
ZWdpc3RlciB0byBjYWxjdWxhdGUgdGhlIGFkZHJlc3MsIGJ1dCB3aGVuIHBhc3NpbmcgdHdvIGlt
bSwgdGhlIHRlbXAgYWRkcmVzcworICAgICAgICAvLyByZWdpc3RlciBpcyBhbHNvIG5lZWRlZAog
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9m
ZnNldChUYWdPZmZzZXQpKTsKICAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5
bG9hZCgpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKICNlbmRpZgpAQCAt
NjYxLDE1ICs2NzUsMTYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgSnVtcCBicmFu
Y2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1Jl
Z2lzdGVycykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZOb3RD
ZWxsKFQgbWF5YmVDZWxsLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFn
UmVnaXN0ZXJzKQotICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWcs
IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVz
dDY0KE5vblplcm8sIHJlZywgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7Cisg
ICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIG1heWJlQ2VsbCwgR1BSSW5m
bzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9u
WmVybywgbWF5YmVDZWxsLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKICNl
bHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgcmVnLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFs
LCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CiAjZW5kaWYKICAg
ICB9CiAKQEAgLTY4MSwxOCArNjk2LDIwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5j
aElmTm90Q2VsbChyZWdzLnRhZ0dQUigpLCBtb2RlKTsKICNlbmRpZgogICAgIH0KLSAgICAKLSAg
ICBKdW1wIGJyYW5jaElmQ2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBI
YXZlVGFnUmVnaXN0ZXJzKQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBKdW1wIGJy
YW5jaElmQ2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1Jl
Z2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKG1vZGUgPT0g
SGF2ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywg
cmVnLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKLSAgICAgICAgcmV0dXJuIGJyYW5j
aFRlc3Q2NChaZXJvLCByZWcsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykpOwor
ICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBtYXliZUNlbGwsIEdQUkluZm86
Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8s
IG1heWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CiAjZWxzZQog
ICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6RXF1YWwsIHJlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsK
KyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgbWF5YmVDZWxs
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogI2VuZGlmCiAgICAgfQorCiAgICAg
SnVtcCBicmFuY2hJZkNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTEyMTYs
MTEgKzEyMzMsMTMgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlz
VmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rl
ci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KKwogICAg
IHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAg
ICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lz
dGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7CiAgICAgfQorCiAg
ICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKE9wZXJhbmQgb3BlcmFuZCkKICAgICB7CiAgICAgICAg
IEFTU0VSVCghb3BlcmFuZC5pc1RtcCgpKTsKQEAgLTEyMzIsMTEgKzEyNTEsMTMgQEAgcHVibGlj
OgogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJl
dHVybiBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihS
ZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBw
YXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAg
ICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkg
KiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGlj
IEFkZHJlc3MgcGF5bG9hZEZvcihPcGVyYW5kIG9wZXJhbmQpCiAgICAgewogICAgICAgICBBU1NF
UlQoIW9wZXJhbmQuaXNUbXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcAppbmRleCAyZmVmNTNkYTYwYTJlNzVhNDdjNjRm
OGQzMDQwYzQ2MjIyYmI4OGVhLi4wZTg3ZTE2OTUzMWFjOTUxYmZhZjBmOWRlZDFiNmYyZmE2NjNk
YjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZm
bGVyMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1
ZmZsZXIzMl82NC5jcHAKQEAgLTQ1LDkgKzQ1LDcgQEAgRGF0YUZvcm1hdCBDYWxsRnJhbWVTaHVm
Zmxlcjo6ZW1pdFN0b3JlKENhY2hlZFJlY292ZXJ5JiBsb2NhdGlvbiwgTWFjcm9Bc3NlbWJsZXIK
ICAgICAgICAgbV9qaXQuc3RvcmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBhZGRyZXNz
LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwogICAgICAgICByZXR1cm4gRGF0YUZvcm1hdElu
dDMyOwogICAgIGNhc2UgVW5ib3hlZENlbGxJbkdQUjoKLSAgICAgICAgbV9qaXQuc3RvcmUzMihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICAg
ICAgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAgICBtX2ppdC5zdG9yZTMy
KGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zm
c2V0KSk7CisgICAgICAgIG1faml0LnN0b3JlQ2VsbChsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigp
LCBhZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIERhdGFGb3JtYXRDZWxsOwogICAgIGNhc2UgQ29u
c3RhbnQ6CiAgICAgICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKGxvY2F0aW9uLnJlY292ZXJ5
KCkuY29uc3RhbnQoKSwgYWRkcmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pTSW50ZXJmYWNlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50
ZXJmYWNlSklULmgKaW5kZXggNGI0MjlhMjY3Y2NlZTJjNjQ3M2VkYTcxYzlmYzk0NTRjNTgyMzAw
Yy4uMmFmYWViYmJmM2FmMjExY2ZlZDU5MTUxZjk5ZWQyMjE2OWMwNDM4YiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAtNTksNyArNTksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIgPCBWaXJ0
dWFsUmVnaXN0ZXIoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpKTsKICAgICAgICAgbG9hZFB0
cihwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIHBheWxvYWQpOwotICAgICAgICByZXR1cm4g
YnJhbmNoMzIoTm90RXF1YWwsIHRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHRhZ0Zv
cih2aXJ0dWFsUmVnaXN0ZXIpKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6
Okp1bXAgSlNJbnRlcmZhY2VKSVQ6OmVtaXRMb2FkSW50MzIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1
YWxSZWdpc3RlciwgUmVnaXN0ZXJJRCBkc3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455031</attachid>
            <date>2022-03-17 14:47:32 -0700</date>
            <delta_ts>2022-03-17 15:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220317184730.patch</filename>
            <type>text/plain</type>
            <size>23550</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzk5Zjk5ODY5YTc0NTFiNGE3ZjEzYzAyOWVmZjgwYzU0ODA4ZGI1Li45MDU4OGU0MGMyNGVlZmNj
OWEyMjZiN2FjN2RkN2MyMDEwYjMwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTAzLTE3ICBNaWtoYWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4
IDYzMzc3M2FlZWM5ZDFjOTY3ZmE5OGE1YWNiMmExMjQ1MmViMjUwN2MuLjZkM2FiOTJmOTI0ZTQ0
ZmMwNmY5YTlmZGY0NzAyNzc4ZDkxOGQzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xNTIwLDYgKzE1MjAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgRXh0ZW5kOjpOb25lOgogICAgICAgICAgICAgcmV0
dXJuIEFzc2VtYmxlcjo6VVhUWDsKICAgICAgICAgfQorICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDY0KEFkZHJlc3MgYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTk0OSw2ICsxOTUwLDE3IEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmU2NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0
b3JlNjQoVHJ1c3RlZEltbVB0ciBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAg
IGlmICghaW1tLm1fdmFsdWUpIHsKKyAgICAgICAgICAgIHN0b3JlNjQoQVJNNjRSZWdpc3RlcnM6
OnpyLCBhZGRyZXNzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IG1vdmVUb0NhY2hlZFJlZyhpbW0sIGRhdGFNZW1vcnlUZW1wUmVnaXN0ZXIoKSk7CisgICAgICAg
IHN0b3JlNjQoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBz
dG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAg
ICAgaWYgKCFpbW0ubV92YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBmZTdmMmQ1YzRmM2ZiNDFjMWQz
NTVlZTk0NGRkZDVhNWFlMTQwMDhiLi4zYzZhOWMxYzdjMmFhMjIzZmU0MTUyOTU5MjBkNWRkNmY4
YmRmZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTA1NCwxMiArMTA1NCwxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlOChzcmMsIHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkICphZGRyZXNzKQorICAg
IHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsK
ICAgICAgICAgc3RvcmU4KHNyYywgc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRy
ZXNzKSkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1tLCBj
b25zdCB2b2lkICphZGRyZXNzKQorICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIGNv
bnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBUcnVzdGVkSW1tMzIgaW1tOChzdGF0
aWNfY2FzdDxpbnQ4X3Q+KGltbS5tX3ZhbHVlKSk7CiAgICAgICAgIG1vdmUoaW1tOCwgZGF0YVRl
bXBSZWdpc3Rlcik7CkBAIC0xMDk5LDYgKzEwOTksMzEgQEAgcHVibGljOgogICAgICAgICBzdG9y
ZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQ
YWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3Mp
CisgICAgeworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBnZXRDYWNoZWREYXRhVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAg
ICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc2NyYXRjaCwgYWRkcmVzcyk7CisgICAgfQorCisgICAg
dm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0ciwgVHJ1c3RlZEltbTMyIGltbTMy
LCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2gxID0g
Z2V0Q2FjaGVkQWRkcmVzc1RlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBt
b3ZlKGltbVB0ciwgc2NyYXRjaDEpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2gyID0gZ2V0
Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGlt
bTMyLCBzY3JhdGNoMik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNjcmF0Y2gxLCBzY3JhdGNoMiwg
YWRkcmVzcyk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIgaW1t
MSwgVHJ1c3RlZEltbTMyIGltbTIsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIFJl
Z2lzdGVySUQgc2NyYXRjaDEgPSBnZXRDYWNoZWRBZGRyZXNzVGVtcFJlZ2lzdGVySURBbmRJbnZh
bGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tMSwgc2NyYXRjaDEpOworICAgICAgICBSZWdpc3Rl
cklEIHNjcmF0Y2gyID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgp
OworICAgICAgICBtb3ZlKGltbTIsIHNjcmF0Y2gyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc2Ny
YXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMy
KFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkp
OwpAQCAtMTEzNiw2ICsxMTYxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQYWlyMzIoc3Jj
MSwgc3JjMiwgQWRkcmVzcyhzY3JhdGNoLCBhZGRyZXNzLm9mZnNldCkpOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBjb25z
dCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgQXJtQWRkcmVzcyBhcm1BZGRyZXNzID0g
c2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7CisgICAgICAgIEFTU0VS
VChhcm1BZGRyZXNzLnR5cGUgPT0gQXJtQWRkcmVzczo6SGFzT2Zmc2V0KTsKKyAgICAgICAgUmVn
aXN0ZXJJRCBzY3JhdGNoID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0
ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7CisgICAgICAgIHN0b3JlUGFpcjMyKHNy
YzEsIHNjcmF0Y2gsIEFkZHJlc3MoYXJtQWRkcmVzcy5iYXNlLCBhcm1BZGRyZXNzLnUub2Zmc2V0
KSk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lz
dGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIEFybUFkZHJl
c3MgYXJtQWRkcmVzcyA9IHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzcykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmgKaW5kZXggOTRlYjYyZjRhMTIxYTYxNDUzMjM2OTEzYWM5ZDNjYjM5NGFkYjBkMi4u
YjE4ZGI5OTRjNDZhMTgzZTIyNDg3MmZhMzljYWFiNTZjZmE2OWQ1OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC0x
NjQ5LDYgKzE2NDksMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBz
dG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRk
cmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgc3RvcmVQYWlyMzIoc3JjMSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQor
CisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0ciwgVHJ1c3RlZEltbTMy
IGltbTMyLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbVB0ciwgYWRk
clRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoaW1tMzIsIGRhdGFUZW1wUmVnaXN0ZXIpOwor
ICAgICAgICBzdG9yZVBhaXIzMihhZGRyVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0x
LCBUcnVzdGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92
ZShpbW0xLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShpbW0yLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoYWRkclRlbXBSZWdpc3RlciwgZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3Rl
cklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgc3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgZGVzdCwgVHJ1c3RlZEltbTMyKDApKTsKQEAgLTE2
NzEsNiArMTY5MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMzIoc3JjMiwgYWRkcmVzcy53
aXRoT2Zmc2V0KDQpKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQg
c3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisgICAg
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3Jj
MSwgZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgY29uc3Qgdm9p
ZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
YWRkclRlbXBSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggYjJlOTExYWExMzY2M2EyNTA5ODQw
YTA1Njg4NDEyZjI5MjhlZjQ2My4uYTRmZDRjMmQ0YTNkZjg1NmE2NTlmZGZjZWJjY2Q3ZTY2ZmNh
MmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMTAyMSwxMiArMTAyMSwxOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZv
aWQgc3RvcmU2NChUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgc3RvcmU2NChzY3Jh
dGNoUmVnaXN0ZXIoKSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZTY0KFRydXN0
ZWRJbW02NCBpbW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShpbW0s
IHNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9ybShzY3JhdGNo
UmVnaXN0ZXIoKSwgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZSk7CiAgICAgfQotICAgIAorCiAgICAgRGF0YUxhYmVsMzIgc3RvcmU2NFdp
dGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0LmNwcAppbmRleCBiMjQzYzY3NDc5NTBjZWZkNmI1MmQ4ZGU1M2E1YWFlYTE0OGJi
MGZjLi5mMGZjOTRmYjBjZjE1NGIzMWNjOTcyZmFjYzI3ZmJlY2MwNjRiYzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTY0Niw4ICs2NDYsNyBAQCB2b2lk
IE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9T
UkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIo
KSksCiAgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5bG9hZEdQUigpKTsKLSAg
ICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7Ci0gICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKKyAgICAgICAg
ICAgIGppdC5zdG9yZUNlbGwoSlNSSW5mbzo6anNSZWdUMTAsIHNjcmF0Y2ggKyBpbmRleCk7CiAg
ICAgICAgICAgICBicmVhazsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggNTg0ZmZkODg1NmIx
OGM3NzY4YmNhMmQzNzk1ZTkwZTgzMzFlMjEwOS4uNzk5NjQ1YzU5MDQzMTdhNTAzMjE3NTZkM2Yx
ZjIwZGRjZWM5YmMwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzIyLDE0ICszMjIsOCBAQCB2b2lkIHJl
aWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNl
JiBleGl0KQogICAgICAgICBqaXQuc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIEFzc2VtYmx5SGVs
cGVyczo6YWRkcmVzc0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXJGcmFtZU9m
ZnNldCgpKSk7CiAgICAgICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgo
YmFzZWxpbmVDb2RlQmxvY2stPmJ5dGVjb2RlSW5kZXhGb3JFeGl0KGNvZGVPcmlnaW4tPmJ5dGVj
b2RlSW5kZXgoKSkpLmJpdHMoKTsKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoVmly
dHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90
Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAg
ICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKLSAgICAgICAgICAgIGpp
dC5zdG9yZTY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSkpKSwgQXNzZW1ibHlIZWxw
ZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zm
c2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkg
Ly8gc28gdGhpcyBpcyB0aGUgMzItYml0IHBhcnQKLSAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVy
czo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsg
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkKLSAgICAgICAgICAgIGppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSwgQXNzZW1i
bHlIZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0
YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotI2VuZGlmIC8vIFVTRShKU1ZB
TFVFNjQpIC8vIGVuZGluZyB0aGUgI2Vsc2UgcGFydCwgc28gZGlyZWN0bHkgYWJvdmUgaXMgdGhl
IDMyLWJpdCBwYXJ0CisgICAgICAgICAgICBqaXQuc3RvcmVDZWxsKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJs
eUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3Rh
Y2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAgICAgfQogCiAgICAgLy8gRG9u
J3QgbmVlZCB0byBzZXQgdGhlIHRvcGxldmVsIGNvZGUgb3JpZ2luIGlmIHdlIG9ubHkgZGlkIGlu
bGluZSB0YWlsIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDM2MGUxODE4M2VjYmExZTBjYzA1ZDc2YzcyY2RmMTIxOWVjY2Ix
NmQuLjUyNGNhYTgzNzIyOTdhNjI0ZWQ3ZjI1ZTEwNzlkNTc1NjIxY2E3NGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yMzgzLDcg
KzIzODMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMoKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBGbHVzaGVkQ2VsbDogewot
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZSwg
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBKSVRDb21waWxlcjo6dGFn
Rm9yKHZpcnR1YWxSZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZSwg
bV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVy
KSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAg
LTk3NTAsMTMgKzk3NTAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlX
aXRoU3ByZWFkKE5vZGUqIG5vZGUpCiAgICAgICAgIGlmIChiaXRWZWN0b3ItPmdldChpKSkgewog
ICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgaW1tdXRhYmxlQnV0dGVyZmx5KHRoaXMs
IHVzZSk7CiAgICAgICAgICAgICBHUFJSZWcgaW1tdXRhYmxlQnV0dGVyZmx5R1BSID0gaW1tdXRh
YmxlQnV0dGVyZmx5LmdwcigpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBtX2pp
dC5zdG9yZTY0KGltbXV0YWJsZUJ1dHRlcmZseUdQUiwgJmJ1ZmZlcltpXSk7Ci0jZWxzZQotICAg
ICAgICAgICAgY2hhciogcG9pbnRlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzdGF0aWNfY2FzdDx2
b2lkKj4oJmJ1ZmZlcltpXSkpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihpbW11dGFibGVC
dXR0ZXJmbHlHUFIsIHBvaW50ZXIgKyBQYXlsb2FkT2Zmc2V0KTsKLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwb2ludGVyICsgVGFnT2Zm
c2V0KTsKLSNlbmRpZgorICAgICAgICAgICAgbV9qaXQuc3RvcmVDZWxsKGltbXV0YWJsZUJ1dHRl
cmZseUdQUiwgJmJ1ZmZlcltpXSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBpbnB1dCh0aGlzLCB1c2UpOwogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgaW5w
dXRSZWdzID0gaW5wdXQuanNWYWx1ZVJlZ3MoKTsKQEAgLTEwMTE5LDcgKzEwMTEzLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5SW5kZXhPZihOb2RlKiBub2RlKQogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9qaXQuYnJhbmNoNjQoQ0Nh
bGxIZWxwZXJzOjpFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBp
bmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzZWFyY2hFbGVtZW50R1BSKTsK
ICNlbHNlCi0gICAgICAgICAgICBhdXRvIHNraXAgPSBtX2ppdC5icmFuY2gzMihDQ2FsbEhlbHBl
cnM6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4
R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgVGFnT2Zmc2V0KSwgVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgICAgIGF1dG8gc2tpcCA9IG1faml0LmJyYW5j
aElmTm90Q2VsbChNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BS
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgVGFnT2Zmc2V0KSk7CiAgICAgICAgICAgICBt
X2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFBheWxvYWRPZmZzZXQpLCB0ZW1wR1BSKTsK
ICAgICAgICAgICAgIGF1dG8gZm91bmQgPSBtX2ppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkVx
dWFsLCB0ZW1wR1BSLCBzZWFyY2hFbGVtZW50R1BSKTsKICAgICAgICAgICAgIHNraXAubGluaygm
bV9qaXQpOwpAQCAtMTEzOTAsMTggKzExMzg0LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU5ld1N0cmluZ09iamVjdChOb2RlKiBub2RlKQogICAgICAgICByZXN1bHRHUFIsIFRydXN0
ZWRJbW1QdHIobm9kZS0+c3RydWN0dXJlKCkpLCBidXR0ZXJmbHksIHNjcmF0Y2gxR1BSLCBzY3Jh
dGNoMkdQUiwKICAgICAgICAgc2xvd1BhdGgpOwogICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgbV9qaXQuc3RvcmU2NCgKLSAgICAgICAgb3BlcmFuZEdQUiwgSklUQ29tcGlsZXI6OkFkZHJl
c3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkpOwot
I2Vsc2UKLSAgICBtX2ppdC5zdG9yZTMyKAotICAgICAgICBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksCi0gICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFw
cGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1
ZSwgdS5hc0JpdHMudGFnKSkpOwotICAgIG1faml0LnN0b3JlMzIoCi0gICAgICAgIG9wZXJhbmRH
UFIsCi0gICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2Jq
ZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMucGF5bG9hZCkpKTsKLSNlbmRpZgotICAgIAorICAgIG1faml0LnN0b3JlQ2VsbChvcGVy
YW5kR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6
aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSk7CisKICAgICBtX2ppdC5tdXRhdG9yRmVuY2Uodm0oKSk7
CiAgICAgCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5k
ZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5ZTU2YmE2MzI3ZjZjYS4uODFmMzk3YWM2NTAz
ZjNjMTUxOTI2NDIwNThhOGI0OTA2YzhiMzlmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0xMTAzLDEwICsxMTAz
LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2VsbChFZGdlIGVkZ2Up
CiAgICAgICAgICAgICAgICAgQmFkVHlwZSwKICAgICAgICAgICAgICAgICBKU1ZhbHVlU291cmNl
KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlcikpLAogICAgICAgICAgICAg
ICAgIGVkZ2UsCi0gICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoCi0gICAgICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwKLSAgICAgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLAotICAgICAgICAgICAgICAgICAgICBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2hJZk5vdENlbGwoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKSk7CiAg
ICAgICAgIH0KICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7CiAgICAgICAgIG1faml0
LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwpA
QCAtMTI3MSw3ICsxMjY4LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xl
T2JqZWN0U3RyaWN0RXF1YWxpdHkoRWRnZSBvYmplY3RDaGlsZCwgRWRnZQogCiAgICAgREZHX1RZ
UEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgb2JqZWN0Q2hpbGQs
IFNwZWNPYmplY3QsIG1faml0LmJyYW5jaElmTm90T2JqZWN0KG9wMUdQUikpOwogCi0gICAgYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDIudGFnR1BSKCksIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSwgbm90VGFrZW4pOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwob3AyLnRhZ0dQUigpKTsKKyAgICBhZGRC
cmFuY2gobm90Q2VsbCwgbm90VGFrZW4pOwogICAgIAogICAgIGlmICh0YWtlbiA9PSBuZXh0Qmxv
Y2soKSkgewogICAgICAgICBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMUdQ
Uiwgb3AyR1BSLCBub3RUYWtlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5jcHAKaW5kZXggMDI0ZGRmMGFmNjc3MmI4NWNmNDY0OWU5YmFiMjRmYzQ4NjQw
ZTU5Ni4uNmVjYTRkMjA1ZWViZjkyNDY3YWJkNDI1MzViY2U3ZmYyZTAzMmQyYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApAQCAtMTg4LDcgKzE4
OCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0pTRG91YmxlKEdQUlJlZyBn
cHIpCiAKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1BSUmVnIGdwcikK
IHsKLSAgICBKdW1wIGNoZWNrQ2VsbCA9IGJyYW5jaDMyKEVxdWFsLCBncHIsIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgSnVtcCBjaGVja0NlbGwgPSBicmFuY2hJZkNlbGwo
Z3ByKTsKICAgICBhYm9ydFdpdGhSZWFzb24oQUhJc05vdENlbGwpOwogICAgIGNoZWNrQ2VsbC5s
aW5rKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKaW5kZXggMjdkZDU5NzkwYjcxZjk4YTIxN2IxMjU4Nzc2NzcxNjVhYzY4ZWUwYy4uMGYyZDg5
MDUzNWYxNzZlYmY1ODExMjE5MzU3YmVlNzkzMDJhMDRmMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xMzksMTQgKzEzOSwyNiBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIHZvaWQgc3Rv
cmVDZWxsKFQgY2VsbCwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+CisgICAgdm9pZCBzdG9yZUNlbGwoVCBjZWxsLCBVIGFkZHJlc3MpCiAgICAg
ewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoY2VsbCwgYWRkcmVzcyk7CiAj
ZWxzZQotICAgICAgICBzdG9yZTMyKGNlbGwsIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zm
c2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBh
ZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIVBh
eWxvYWRPZmZzZXQgJiYgVGFnT2Zmc2V0ID09IDQsICJBc3N1bWVzIGxpdHRsZS1lbmRpYW4gc3lz
dGVtIik7CisgICAgICAgIHN0b3JlUGFpcjMyKGNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgYWRkcmVzcyk7CisjZW5kaWYKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPgorICAgIHZvaWQgc3RvcmVDZWxsKEpTVmFsdWVSZWdzIHJlZ3MsIFUgYWRkcmVzcykKKyAg
ICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgc3RvcmU2NChyZWdzLmdwcigpLCBhZGRy
ZXNzKTsKKyNlbHNlCisgICAgICAgIHN0YXRpY19hc3NlcnQoIVBheWxvYWRPZmZzZXQgJiYgVGFn
T2Zmc2V0ID09IDQsICJBc3N1bWVzIGxpdHRsZS1lbmRpYW4gc3lzdGVtIik7CisgICAgICAgIG1v
dmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ3Mu
dGFnR1BSKCkpOworICAgICAgICBzdG9yZVBhaXIzMihyZWdzLnBheWxvYWRHUFIoKSwgcmVncy50
YWdHUFIoKSwgYWRkcmVzcyk7CiAjZW5kaWYKICAgICB9CiAgICAgCkBAIC0xNTgsNyArMTcwLDcg
QEAgcHVibGljOgogICAgICAgICBsb2FkMzIoYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZz
ZXQpLCBncHIpOwogI2VuZGlmCiAgICAgfQotICAgIAorCiAgICAgdm9pZCBzdG9yZVZhbHVlKEpT
VmFsdWVSZWdzIHJlZ3MsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKQEAgLTI4Nyw4ICsyOTksNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAg
ICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJlc3Mp
OwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRy
ZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMy
KHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7Cisg
ICAgICAgIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBUcnVzdGVk
SW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KIApAQCAtMjk3LDYg
KzMwOCw5IEBAIHB1YmxpYzoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0KFRy
dXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxzZQorICAg
ICAgICAvLyBXZSBjYW4ndCB1c2Ugc3RvcmVQYWlyMzIgaGVyZSBiZWNhdXNlIHRoZSBCYXNlSW5k
ZXggbmVlZHMgdGhlIHRlbXAgYWRyZXNzCisgICAgICAgIC8vIHJlZ2lzdGVyIHRvIGNhbGN1bGF0
ZSB0aGUgYWRkcmVzcywgYnV0IHdoZW4gcGFzc2luZyB0d28gaW1tLCB0aGUgdGVtcCBhZGRyZXNz
CisgICAgICAgIC8vIHJlZ2lzdGVyIGlzIGFsc28gbmVlZGVkCiAgICAgICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwog
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNzLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwogI2VuZGlmCkBAIC02NjEsMTUgKzY3NSwxNiBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcg
cmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CisgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoVCBtYXliZUNlbGwsIFRh
Z1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAg
ICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1h
c2tSZWdpc3Rlcik7Ci0gICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnLCBU
cnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKKyAgICAgICAgICAgIHJldHVybiBi
cmFuY2hUZXN0NjQoTm9uWmVybywgbWF5YmVDZWxsLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lz
dGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCBtYXliZUNlbGwsIFRy
dXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykpOwogI2Vsc2UKICAgICAgICAgVU5VU0VE
X1BBUkFNKG1vZGUpOwotICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCByZWcsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJl
dHVybiBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1heWJlQ2VsbCwgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKICNlbmRpZgogICAgIH0KIApAQCAtNjgxLDE4ICs2
OTYsMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHJlZ3MudGFn
R1BSKCksIG1vZGUpOwogI2VuZGlmCiAgICAgfQotICAgIAotICAgIEp1bXAgYnJhbmNoSWZDZWxs
KEdQUlJlZyByZWcsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZDZWxsKFQgbWF5YmVD
ZWxsLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQot
ICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWcsIEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywg
VHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoVGVzdDY0KFplcm8sIG1heWJlQ2VsbCwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rl
cik7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgbWF5YmVDZWxsLCBUcnVzdGVk
SW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJB
TShtb2RlKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwg
cmVnLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSk7CiAjZW5kaWYKICAgICB9CisKICAgICBKdW1wIGJyYW5jaElmQ2VsbChK
U1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTIxNiwxMSArMTIzMywxMyBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAg
cmV0dXJuIEFkZHJlc3MoYmFzZUdQUiwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9m
KFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGljIEFkZHJlc3MgdGFn
Rm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NF
UlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyB0
YWdGb3IoT3BlcmFuZCBvcGVyYW5kKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFvcGVyYW5kLmlz
VG1wKCkpOwpAQCAtMTIzMiwxMSArMTI1MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCh2
aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZUdQ
UiwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRP
ZmZzZXQpOwogICAgIH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVn
aXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcikg
KyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9y
KE9wZXJhbmQgb3BlcmFuZCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghb3BlcmFuZC5pc1RtcCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZs
ZXIzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVy
MzJfNjQuY3BwCmluZGV4IDJmZWY1M2RhNjBhMmU3NWE0N2M2NGY4ZDMwNDBjNDYyMjJiYjg4ZWEu
LjBlODdlMTY5NTMxYWM5NTFiZmFmMGY5ZGVkMWI2ZjJmYTY2M2RiMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcApAQCAt
NDUsOSArNDUsNyBAQCBEYXRhRm9ybWF0IENhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUoQ2Fj
aGVkUmVjb3ZlcnkmIGxvY2F0aW9uLCBNYWNyb0Fzc2VtYmxlcgogICAgICAgICBtX2ppdC5zdG9y
ZTMyKGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2Fk
T2Zmc2V0KSk7CiAgICAgICAgIHJldHVybiBEYXRhRm9ybWF0SW50MzI7CiAgICAgY2FzZSBVbmJv
eGVkQ2VsbEluR1BSOgotICAgICAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICBhZGRyZXNzLndpdGhPZmZz
ZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24ucmVjb3Zlcnko
KS5ncHIoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgbV9q
aXQuc3RvcmVDZWxsKGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3MpOwogICAgICAg
ICByZXR1cm4gRGF0YUZvcm1hdENlbGw7CiAgICAgY2FzZSBDb25zdGFudDoKICAgICAgICAgbV9q
aXQuc3RvcmVUcnVzdGVkVmFsdWUobG9jYXRpb24ucmVjb3ZlcnkoKS5jb25zdGFudCgpLCBhZGRy
ZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VK
SVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA0
YjQyOWEyNjdjY2VlMmM2NDczZWRhNzFjOWZjOTQ1NGM1ODIzMDBjLi4yYWZhZWJiYmYzYWYyMTFj
ZmVkNTkxNTFmOTllZDIyMTY5YzA0MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pTSW50ZXJmYWNlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
U0ludGVyZmFjZUpJVC5oCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsK
ICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3RlciA8IFZpcnR1YWxSZWdpc3RlcihGaXJzdENv
bnN0YW50UmVnaXN0ZXJJbmRleCkpOwogICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IodmlydHVh
bFJlZ2lzdGVyKSwgcGF5bG9hZCk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihOb3RFcXVhbCwg
dGFnRm9yKHZpcnR1YWxSZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7
CisgICAgICAgIHJldHVybiBicmFuY2hJZk5vdENlbGwodGFnRm9yKHZpcnR1YWxSZWdpc3Rlcikp
OwogICAgIH0KIAogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJ
VDo6ZW1pdExvYWRJbnQzMihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyLCBSZWdpc3Rl
cklEIGRzdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455032</attachid>
            <date>2022-03-17 15:05:05 -0700</date>
            <delta_ts>2022-04-06 12:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220317190503.patch</filename>
            <type>text/plain</type>
            <size>23550</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzk5Zjk5ODY5YTc0NTFiNGE3ZjEzYzAyOWVmZjgwYzU0ODA4ZGI1Li45MDU4OGU0MGMyNGVlZmNj
OWEyMjZiN2FjN2RkN2MyMDEwYjMwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTAzLTE3ICBNaWtoYWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4
IDYzMzc3M2FlZWM5ZDFjOTY3ZmE5OGE1YWNiMmExMjQ1MmViMjUwN2MuLjZkM2FiOTJmOTI0ZTQ0
ZmMwNmY5YTlmZGY0NzAyNzc4ZDkxOGQzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xNTIwLDYgKzE1MjAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgRXh0ZW5kOjpOb25lOgogICAgICAgICAgICAgcmV0
dXJuIEFzc2VtYmxlcjo6VVhUWDsKICAgICAgICAgfQorICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDY0KEFkZHJlc3MgYWRkcmVzcywg
UmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTk0OSw2ICsxOTUwLDE3IEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmU2NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0
b3JlNjQoVHJ1c3RlZEltbVB0ciBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAg
IGlmICghaW1tLm1fdmFsdWUpIHsKKyAgICAgICAgICAgIHN0b3JlNjQoQVJNNjRSZWdpc3RlcnM6
OnpyLCBhZGRyZXNzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IG1vdmVUb0NhY2hlZFJlZyhpbW0sIGRhdGFNZW1vcnlUZW1wUmVnaXN0ZXIoKSk7CisgICAgICAg
IHN0b3JlNjQoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBz
dG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAg
ICAgaWYgKCFpbW0ubV92YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBmZTdmMmQ1YzRmM2ZiNDFjMWQz
NTVlZTk0NGRkZDVhNWFlMTQwMDhiLi4zYzZhOWMxYzdjMmFhMjIzZmU0MTUyOTU5MjBkNWRkNmY4
YmRmZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTA1NCwxMiArMTA1NCwxMiBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlOChzcmMsIHNldHVwQXJtQWRkcmVzcyhhZGRyZXNzKSk7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkICphZGRyZXNzKQorICAg
IHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgc3JjLCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsK
ICAgICAgICAgc3RvcmU4KHNyYywgc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRy
ZXNzKSkpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1tLCBj
b25zdCB2b2lkICphZGRyZXNzKQorICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIGNv
bnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBUcnVzdGVkSW1tMzIgaW1tOChzdGF0
aWNfY2FzdDxpbnQ4X3Q+KGltbS5tX3ZhbHVlKSk7CiAgICAgICAgIG1vdmUoaW1tOCwgZGF0YVRl
bXBSZWdpc3Rlcik7CkBAIC0xMDk5LDYgKzEwOTksMzEgQEAgcHVibGljOgogICAgICAgICBzdG9y
ZTE2KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQ
YWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3Mp
CisgICAgeworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBnZXRDYWNoZWREYXRhVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAg
ICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc2NyYXRjaCwgYWRkcmVzcyk7CisgICAgfQorCisgICAg
dm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0ciwgVHJ1c3RlZEltbTMyIGltbTMy
LCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2gxID0g
Z2V0Q2FjaGVkQWRkcmVzc1RlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBt
b3ZlKGltbVB0ciwgc2NyYXRjaDEpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2gyID0gZ2V0
Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGlt
bTMyLCBzY3JhdGNoMik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNjcmF0Y2gxLCBzY3JhdGNoMiwg
YWRkcmVzcyk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIgaW1t
MSwgVHJ1c3RlZEltbTMyIGltbTIsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIFJl
Z2lzdGVySUQgc2NyYXRjaDEgPSBnZXRDYWNoZWRBZGRyZXNzVGVtcFJlZ2lzdGVySURBbmRJbnZh
bGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tMSwgc2NyYXRjaDEpOworICAgICAgICBSZWdpc3Rl
cklEIHNjcmF0Y2gyID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgp
OworICAgICAgICBtb3ZlKGltbTIsIHNjcmF0Y2gyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc2Ny
YXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMy
KFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkp
OwpAQCAtMTEzNiw2ICsxMTYxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQYWlyMzIoc3Jj
MSwgc3JjMiwgQWRkcmVzcyhzY3JhdGNoLCBhZGRyZXNzLm9mZnNldCkpOwogICAgIH0KIAorICAg
IHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBjb25z
dCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgQXJtQWRkcmVzcyBhcm1BZGRyZXNzID0g
c2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7CisgICAgICAgIEFTU0VS
VChhcm1BZGRyZXNzLnR5cGUgPT0gQXJtQWRkcmVzczo6SGFzT2Zmc2V0KTsKKyAgICAgICAgUmVn
aXN0ZXJJRCBzY3JhdGNoID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0
ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7CisgICAgICAgIHN0b3JlUGFpcjMyKHNy
YzEsIHNjcmF0Y2gsIEFkZHJlc3MoYXJtQWRkcmVzcy5iYXNlLCBhcm1BZGRyZXNzLnUub2Zmc2V0
KSk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lz
dGVySUQgc3JjMiwgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIEFybUFkZHJl
c3MgYXJtQWRkcmVzcyA9IHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzcykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmgKaW5kZXggOTRlYjYyZjRhMTIxYTYxNDUzMjM2OTEzYWM5ZDNjYjM5NGFkYjBkMi4u
YjE4ZGI5OTRjNDZhMTgzZTIyNDg3MmZhMzljYWFiNTZjZmE2OWQ1OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCkBAIC0x
NjQ5LDYgKzE2NDksMjYgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBz
dG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRk
cmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAg
ICAgc3RvcmVQYWlyMzIoc3JjMSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQor
CisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0ciwgVHJ1c3RlZEltbTMy
IGltbTMyLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbVB0ciwgYWRk
clRlbXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoaW1tMzIsIGRhdGFUZW1wUmVnaXN0ZXIpOwor
ICAgICAgICBzdG9yZVBhaXIzMihhZGRyVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBh
ZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0x
LCBUcnVzdGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92
ZShpbW0xLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShpbW0yLCBkYXRhVGVtcFJl
Z2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoYWRkclRlbXBSZWdpc3RlciwgZGF0YVRlbXBS
ZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3Rl
cklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAg
ICAgc3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgZGVzdCwgVHJ1c3RlZEltbTMyKDApKTsKQEAgLTE2
NzEsNiArMTY5MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMzIoc3JjMiwgYWRkcmVzcy53
aXRoT2Zmc2V0KDQpKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQg
c3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisgICAg
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIG1vdmUoaW1tLCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3Jj
MSwgZGF0YVRlbXBSZWdpc3RlciwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgY29uc3Qgdm9p
ZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzKSwg
YWRkclRlbXBSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggYjJlOTExYWExMzY2M2EyNTA5ODQw
YTA1Njg4NDEyZjI5MjhlZjQ2My4uYTRmZDRjMmQ0YTNkZjg1NmE2NTlmZGZjZWJjY2Q3ZTY2ZmNh
MmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMTAyMSwxMiArMTAyMSwxOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZv
aWQgc3RvcmU2NChUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgc3RvcmU2NChzY3Jh
dGNoUmVnaXN0ZXIoKSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZTY0KFRydXN0
ZWRJbW02NCBpbW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShpbW0s
IHNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9ybShzY3JhdGNo
UmVnaXN0ZXIoKSwgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwg
YWRkcmVzcy5zY2FsZSk7CiAgICAgfQotICAgIAorCiAgICAgRGF0YUxhYmVsMzIgc3RvcmU2NFdp
dGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0LmNwcAppbmRleCBiMjQzYzY3NDc5NTBjZWZkNmI1MmQ4ZGU1M2E1YWFlYTE0OGJi
MGZjLi5mMGZjOTRmYjBjZjE1NGIzMWNjOTcyZmFjYzI3ZmJlY2MwNjRiYzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTY0Niw4ICs2NDYsNyBAQCB2b2lk
IE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBWTSYgdm0sIGNvbnN0IE9T
UkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgICAgICBqaXQubG9hZDMyKAogICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52aXJ0dWFsUmVnaXN0ZXIo
KSksCiAgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5bG9hZEdQUigpKTsKLSAg
ICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7Ci0gICAgICAgICAgICBqaXQu
c3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKKyAgICAgICAg
ICAgIGppdC5zdG9yZUNlbGwoSlNSSW5mbzo6anNSZWdUMTAsIHNjcmF0Y2ggKyBpbmRleCk7CiAg
ICAgICAgICAgICBicmVhazsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5kZXggNTg0ZmZkODg1NmIx
OGM3NzY4YmNhMmQzNzk1ZTkwZTgzMzFlMjEwOS4uNzk5NjQ1YzU5MDQzMTdhNTAzMjE3NTZkM2Yx
ZjIwZGRjZWM5YmMwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzIyLDE0ICszMjIsOCBAQCB2b2lkIHJl
aWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IE9TUkV4aXRCYXNl
JiBleGl0KQogICAgICAgICBqaXQuc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIEFzc2VtYmx5SGVs
cGVyczo6YWRkcmVzc0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXJGcmFtZU9m
ZnNldCgpKSk7CiAgICAgICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9IENhbGxTaXRlSW5kZXgo
YmFzZWxpbmVDb2RlQmxvY2stPmJ5dGVjb2RlSW5kZXhGb3JFeGl0KGNvZGVPcmlnaW4tPmJ5dGVj
b2RlSW5kZXgoKSkpLmJpdHMoKTsKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoVmly
dHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90
Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAg
ICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKLSAgICAgICAgICAgIGpp
dC5zdG9yZTY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSkpKSwgQXNzZW1ibHlIZWxw
ZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zm
c2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkg
Ly8gc28gdGhpcyBpcyB0aGUgMzItYml0IHBhcnQKLSAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVy
czo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsg
Q2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkKLSAgICAgICAgICAgIGppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSwgQXNzZW1i
bHlIZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0
YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotI2VuZGlmIC8vIFVTRShKU1ZB
TFVFNjQpIC8vIGVuZGluZyB0aGUgI2Vsc2UgcGFydCwgc28gZGlyZWN0bHkgYWJvdmUgaXMgdGhl
IDMyLWJpdCBwYXJ0CisgICAgICAgICAgICBqaXQuc3RvcmVDZWxsKEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJs
eUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3Rh
Y2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAgICAgfQogCiAgICAgLy8gRG9u
J3QgbmVlZCB0byBzZXQgdGhlIHRvcGxldmVsIGNvZGUgb3JpZ2luIGlmIHdlIG9ubHkgZGlkIGlu
bGluZSB0YWlsIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCmluZGV4IDM2MGUxODE4M2VjYmExZTBjYzA1ZDc2YzcyY2RmMTIxOWVjY2Ix
NmQuLjUyNGNhYTgzNzIyOTdhNjI0ZWQ3ZjI1ZTEwNzlkNTc1NjIxY2E3NGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0yMzgzLDcg
KzIzODMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3VtZW50VHlwZXMoKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBGbHVzaGVkQ2VsbDogewot
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZSwg
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBKSVRDb21waWxlcjo6dGFn
Rm9yKHZpcnR1YWxSZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOwor
ICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1ZVNvdXJjZSwgbm9kZSwg
bV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVy
KSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKQEAg
LTk3NTAsMTMgKzk3NTAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3QXJyYXlX
aXRoU3ByZWFkKE5vZGUqIG5vZGUpCiAgICAgICAgIGlmIChiaXRWZWN0b3ItPmdldChpKSkgewog
ICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgaW1tdXRhYmxlQnV0dGVyZmx5KHRoaXMs
IHVzZSk7CiAgICAgICAgICAgICBHUFJSZWcgaW1tdXRhYmxlQnV0dGVyZmx5R1BSID0gaW1tdXRh
YmxlQnV0dGVyZmx5LmdwcigpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0gICAgICAgICAgICBtX2pp
dC5zdG9yZTY0KGltbXV0YWJsZUJ1dHRlcmZseUdQUiwgJmJ1ZmZlcltpXSk7Ci0jZWxzZQotICAg
ICAgICAgICAgY2hhciogcG9pbnRlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzdGF0aWNfY2FzdDx2
b2lkKj4oJmJ1ZmZlcltpXSkpOwotICAgICAgICAgICAgbV9qaXQuc3RvcmUzMihpbW11dGFibGVC
dXR0ZXJmbHlHUFIsIHBvaW50ZXIgKyBQYXlsb2FkT2Zmc2V0KTsKLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBwb2ludGVyICsgVGFnT2Zm
c2V0KTsKLSNlbmRpZgorICAgICAgICAgICAgbV9qaXQuc3RvcmVDZWxsKGltbXV0YWJsZUJ1dHRl
cmZseUdQUiwgJmJ1ZmZlcltpXSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBpbnB1dCh0aGlzLCB1c2UpOwogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgaW5w
dXRSZWdzID0gaW5wdXQuanNWYWx1ZVJlZ3MoKTsKQEAgLTEwMTE5LDcgKzEwMTEzLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5SW5kZXhPZihOb2RlKiBub2RlKQogI2lmIFVT
RShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9qaXQuYnJhbmNoNjQoQ0Nh
bGxIZWxwZXJzOjpFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBp
bmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzZWFyY2hFbGVtZW50R1BSKTsK
ICNlbHNlCi0gICAgICAgICAgICBhdXRvIHNraXAgPSBtX2ppdC5icmFuY2gzMihDQ2FsbEhlbHBl
cnM6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4
R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgVGFnT2Zmc2V0KSwgVHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgICAgIGF1dG8gc2tpcCA9IG1faml0LmJyYW5j
aElmTm90Q2VsbChNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BS
LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgVGFnT2Zmc2V0KSk7CiAgICAgICAgICAgICBt
X2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQ
UiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFBheWxvYWRPZmZzZXQpLCB0ZW1wR1BSKTsK
ICAgICAgICAgICAgIGF1dG8gZm91bmQgPSBtX2ppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkVx
dWFsLCB0ZW1wR1BSLCBzZWFyY2hFbGVtZW50R1BSKTsKICAgICAgICAgICAgIHNraXAubGluaygm
bV9qaXQpOwpAQCAtMTEzOTAsMTggKzExMzg0LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZU5ld1N0cmluZ09iamVjdChOb2RlKiBub2RlKQogICAgICAgICByZXN1bHRHUFIsIFRydXN0
ZWRJbW1QdHIobm9kZS0+c3RydWN0dXJlKCkpLCBidXR0ZXJmbHksIHNjcmF0Y2gxR1BSLCBzY3Jh
dGNoMkdQUiwKICAgICAgICAgc2xvd1BhdGgpOwogICAgIAotI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgbV9qaXQuc3RvcmU2NCgKLSAgICAgICAgb3BlcmFuZEdQUiwgSklUQ29tcGlsZXI6OkFkZHJl
c3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkpOwot
I2Vsc2UKLSAgICBtX2ppdC5zdG9yZTMyKAotICAgICAgICBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksCi0gICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFw
cGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1
ZSwgdS5hc0JpdHMudGFnKSkpOwotICAgIG1faml0LnN0b3JlMzIoCi0gICAgICAgIG9wZXJhbmRH
UFIsCi0gICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2Jq
ZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMucGF5bG9hZCkpKTsKLSNlbmRpZgotICAgIAorICAgIG1faml0LnN0b3JlQ2VsbChvcGVy
YW5kR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6
aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSk7CisKICAgICBtX2ppdC5tdXRhdG9yRmVuY2Uodm0oKSk7
CiAgICAgCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5k
ZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5ZTU2YmE2MzI3ZjZjYS4uODFmMzk3YWM2NTAz
ZjNjMTUxOTI2NDIwNThhOGI0OTA2YzhiMzlmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0xMTAzLDEwICsxMTAz
LDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRlQ2VsbChFZGdlIGVkZ2Up
CiAgICAgICAgICAgICAgICAgQmFkVHlwZSwKICAgICAgICAgICAgICAgICBKU1ZhbHVlU291cmNl
KEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3RlcikpLAogICAgICAgICAgICAg
ICAgIGVkZ2UsCi0gICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoCi0gICAgICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwKLSAgICAgICAgICAgICAgICAgICAgSklU
Q29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLAotICAgICAgICAgICAgICAgICAgICBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgICAgICBtX2ppdC5i
cmFuY2hJZk5vdENlbGwoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKSk7CiAg
ICAgICAgIH0KICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7CiAgICAgICAgIG1faml0
LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBncHIpOwpA
QCAtMTI3MSw3ICsxMjY4LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBIb2xl
T2JqZWN0U3RyaWN0RXF1YWxpdHkoRWRnZSBvYmplY3RDaGlsZCwgRWRnZQogCiAgICAgREZHX1RZ
UEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BSKSwgb2JqZWN0Q2hpbGQs
IFNwZWNPYmplY3QsIG1faml0LmJyYW5jaElmTm90T2JqZWN0KG9wMUdQUikpOwogCi0gICAgYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDIudGFnR1BSKCksIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSwgbm90VGFrZW4pOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwob3AyLnRhZ0dQUigpKTsKKyAgICBhZGRC
cmFuY2gobm90Q2VsbCwgbm90VGFrZW4pOwogICAgIAogICAgIGlmICh0YWtlbiA9PSBuZXh0Qmxv
Y2soKSkgewogICAgICAgICBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMUdQ
Uiwgb3AyR1BSLCBub3RUYWtlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2Vt
Ymx5SGVscGVycy5jcHAKaW5kZXggMDI0ZGRmMGFmNjc3MmI4NWNmNDY0OWU5YmFiMjRmYzQ4NjQw
ZTU5Ni4uNmVjYTRkMjA1ZWViZjkyNDY3YWJkNDI1MzViY2U3ZmYyZTAzMmQyYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApAQCAtMTg4LDcgKzE4
OCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0pTRG91YmxlKEdQUlJlZyBn
cHIpCiAKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0NlbGwoR1BSUmVnIGdwcikK
IHsKLSAgICBKdW1wIGNoZWNrQ2VsbCA9IGJyYW5jaDMyKEVxdWFsLCBncHIsIFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgSnVtcCBjaGVja0NlbGwgPSBicmFuY2hJZkNlbGwo
Z3ByKTsKICAgICBhYm9ydFdpdGhSZWFzb24oQUhJc05vdENlbGwpOwogICAgIGNoZWNrQ2VsbC5s
aW5rKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKaW5kZXggMjdkZDU5NzkwYjcxZjk4YTIxN2IxMjU4Nzc2NzcxNjVhYzY4ZWUwYy4uMGYyZDg5
MDUzNWYxNzZlYmY1ODExMjE5MzU3YmVlNzkzMDJhMDRmMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xMzksMTQgKzEzOSwyNiBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIHZvaWQgc3Rv
cmVDZWxsKFQgY2VsbCwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+CisgICAgdm9pZCBzdG9yZUNlbGwoVCBjZWxsLCBVIGFkZHJlc3MpCiAgICAg
ewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoY2VsbCwgYWRkcmVzcyk7CiAj
ZWxzZQotICAgICAgICBzdG9yZTMyKGNlbGwsIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zm
c2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBh
ZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIVBh
eWxvYWRPZmZzZXQgJiYgVGFnT2Zmc2V0ID09IDQsICJBc3N1bWVzIGxpdHRsZS1lbmRpYW4gc3lz
dGVtIik7CisgICAgICAgIHN0b3JlUGFpcjMyKGNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgYWRkcmVzcyk7CisjZW5kaWYKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPgorICAgIHZvaWQgc3RvcmVDZWxsKEpTVmFsdWVSZWdzIHJlZ3MsIFUgYWRkcmVzcykKKyAg
ICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgc3RvcmU2NChyZWdzLmdwcigpLCBhZGRy
ZXNzKTsKKyNlbHNlCisgICAgICAgIHN0YXRpY19hc3NlcnQoIVBheWxvYWRPZmZzZXQgJiYgVGFn
T2Zmc2V0ID09IDQsICJBc3N1bWVzIGxpdHRsZS1lbmRpYW4gc3lzdGVtIik7CisgICAgICAgIG1v
dmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHJlZ3Mu
dGFnR1BSKCkpOworICAgICAgICBzdG9yZVBhaXIzMihyZWdzLnBheWxvYWRHUFIoKSwgcmVncy50
YWdHUFIoKSwgYWRkcmVzcyk7CiAjZW5kaWYKICAgICB9CiAgICAgCkBAIC0xNTgsNyArMTcwLDcg
QEAgcHVibGljOgogICAgICAgICBsb2FkMzIoYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZz
ZXQpLCBncHIpOwogI2VuZGlmCiAgICAgfQotICAgIAorCiAgICAgdm9pZCBzdG9yZVZhbHVlKEpT
VmFsdWVSZWdzIHJlZ3MsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKQEAgLTI4Nyw4ICsyOTksNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAg
ICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJlc3Mp
OwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRy
ZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMy
KHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7Cisg
ICAgICAgIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBUcnVzdGVk
SW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KIApAQCAtMjk3LDYg
KzMwOCw5IEBAIHB1YmxpYzoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0KFRy
dXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxzZQorICAg
ICAgICAvLyBXZSBjYW4ndCB1c2Ugc3RvcmVQYWlyMzIgaGVyZSBiZWNhdXNlIHRoZSBCYXNlSW5k
ZXggbmVlZHMgdGhlIHRlbXAgYWRyZXNzCisgICAgICAgIC8vIHJlZ2lzdGVyIHRvIGNhbGN1bGF0
ZSB0aGUgYWRkcmVzcywgYnV0IHdoZW4gcGFzc2luZyB0d28gaW1tLCB0aGUgdGVtcCBhZGRyZXNz
CisgICAgICAgIC8vIHJlZ2lzdGVyIGlzIGFsc28gbmVlZGVkCiAgICAgICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwog
ICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNzLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwogI2VuZGlmCkBAIC02NjEsMTUgKzY3NSwxNiBAQCBw
dWJsaWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcg
cmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CisgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoVCBtYXliZUNlbGwsIFRh
Z1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAg
ICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1h
c2tSZWdpc3Rlcik7Ci0gICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnLCBU
cnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKKyAgICAgICAgICAgIHJldHVybiBi
cmFuY2hUZXN0NjQoTm9uWmVybywgbWF5YmVDZWxsLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lz
dGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCBtYXliZUNlbGwsIFRy
dXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykpOwogI2Vsc2UKICAgICAgICAgVU5VU0VE
X1BBUkFNKG1vZGUpOwotICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5v
dEVxdWFsLCByZWcsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJl
dHVybiBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1heWJlQ2VsbCwgVHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKICNlbmRpZgogICAgIH0KIApAQCAtNjgxLDE4ICs2
OTYsMjAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHJlZ3MudGFn
R1BSKCksIG1vZGUpOwogI2VuZGlmCiAgICAgfQotICAgIAotICAgIEp1bXAgYnJhbmNoSWZDZWxs
KEdQUlJlZyByZWcsIFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZDZWxsKFQgbWF5YmVD
ZWxsLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNp
ZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQot
ICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWcsIEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywg
VHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoVGVzdDY0KFplcm8sIG1heWJlQ2VsbCwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rl
cik7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgbWF5YmVDZWxsLCBUcnVzdGVk
SW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJB
TShtb2RlKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwg
cmVnLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJh
bmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSk7CiAjZW5kaWYKICAgICB9CisKICAgICBKdW1wIGJyYW5jaElmQ2VsbChK
U1ZhbHVlUmVncyByZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJz
KQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTIxNiwxMSArMTIzMywxMyBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAg
cmV0dXJuIEFkZHJlc3MoYmFzZUdQUiwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9m
KFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGljIEFkZHJlc3MgdGFn
Rm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NF
UlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXpl
b2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyB0
YWdGb3IoT3BlcmFuZCBvcGVyYW5kKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFvcGVyYW5kLmlz
VG1wKCkpOwpAQCAtMTIzMiwxMSArMTI1MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCh2
aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZUdQ
UiwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRP
ZmZzZXQpOwogICAgIH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVn
aXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3Rlcikg
KyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9y
KE9wZXJhbmQgb3BlcmFuZCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghb3BlcmFuZC5pc1RtcCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZs
ZXIzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVy
MzJfNjQuY3BwCmluZGV4IDJmZWY1M2RhNjBhMmU3NWE0N2M2NGY4ZDMwNDBjNDYyMjJiYjg4ZWEu
LjBlODdlMTY5NTMxYWM5NTFiZmFmMGY5ZGVkMWI2ZjJmYTY2M2RiMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcApAQCAt
NDUsOSArNDUsNyBAQCBEYXRhRm9ybWF0IENhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUoQ2Fj
aGVkUmVjb3ZlcnkmIGxvY2F0aW9uLCBNYWNyb0Fzc2VtYmxlcgogICAgICAgICBtX2ppdC5zdG9y
ZTMyKGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2Fk
T2Zmc2V0KSk7CiAgICAgICAgIHJldHVybiBEYXRhRm9ybWF0SW50MzI7CiAgICAgY2FzZSBVbmJv
eGVkQ2VsbEluR1BSOgotICAgICAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICBhZGRyZXNzLndpdGhPZmZz
ZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24ucmVjb3Zlcnko
KS5ncHIoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgbV9q
aXQuc3RvcmVDZWxsKGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3MpOwogICAgICAg
ICByZXR1cm4gRGF0YUZvcm1hdENlbGw7CiAgICAgY2FzZSBDb25zdGFudDoKICAgICAgICAgbV9q
aXQuc3RvcmVUcnVzdGVkVmFsdWUobG9jYXRpb24ucmVjb3ZlcnkoKS5jb25zdGFudCgpLCBhZGRy
ZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VK
SVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA0
YjQyOWEyNjdjY2VlMmM2NDczZWRhNzFjOWZjOTQ1NGM1ODIzMDBjLi4yYWZhZWJiYmYzYWYyMTFj
ZmVkNTkxNTFmOTllZDIyMTY5YzA0MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pTSW50ZXJmYWNlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
U0ludGVyZmFjZUpJVC5oCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsK
ICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3RlciA8IFZpcnR1YWxSZWdpc3RlcihGaXJzdENv
bnN0YW50UmVnaXN0ZXJJbmRleCkpOwogICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IodmlydHVh
bFJlZ2lzdGVyKSwgcGF5bG9hZCk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihOb3RFcXVhbCwg
dGFnRm9yKHZpcnR1YWxSZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7
CisgICAgICAgIHJldHVybiBicmFuY2hJZk5vdENlbGwodGFnRm9yKHZpcnR1YWxSZWdpc3Rlcikp
OwogICAgIH0KIAogICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJ
VDo6ZW1pdExvYWRJbnQzMihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyLCBSZWdpc3Rl
cklEIGRzdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456846</attachid>
            <date>2022-04-06 12:04:03 -0700</date>
            <delta_ts>2022-04-06 19:51:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220406190401.patch</filename>
            <type>text/plain</type>
            <size>24906</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzk5Zjk5ODY5YTc0NTFiNGE3ZjEzYzAyOWVmZjgwYzU0ODA4ZGI1Li45MDU4OGU0MGMyNGVlZmNj
OWEyMjZiN2FjN2RkN2MyMDEwYjMwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTAzLTE3ICBNaWtoYWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5o
CmluZGV4IDJhZjliYjkwNWFkZTMxOTBlNDZlNTZkYTYwMzI3MjQwMGEwOGE1NGEuLmY2YjMzNDIz
ZDBiOTlmMDliMzdjZDRlNmRhZDMxZDI3MWI4Zjc0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCkBAIC05
MjMsNiArOTIzLDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIE5lYXJDYWxsTW9kZTo6UmVndWxh
cjoKICAgICAgICAgICAgIHJldHVybiBDb2RlTG9jYXRpb25MYWJlbDxkZXN0VGFnPih0YWdDb2Rl
UHRyPGRlc3RUYWc+KEFzc2VtYmxlclR5cGU6OnByZXBhcmVGb3JBdG9taWNSZWxpbmtDYWxsQ29u
Y3VycmVudGx5KG5lYXJDYWxsLmRhdGFMb2NhdGlvbigpLCBkZXN0aW5hdGlvbi51bnRhZ2dlZEV4
ZWN1dGFibGVBZGRyZXNzKCkpKSk7CiAgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShuZWFyQ2FsbCk7CiAg
ICAgICAgIHJldHVybiBkZXN0aW5hdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggNjMzNzczYWVlYzlkMWM5
NjdmYTk4YTVhY2IyYTEyNDUyZWIyNTA3Yy4uNmQzYWI5MmY5MjRlNDRmYzA2ZjlhOWZkZjQ3MDI3
NzhkOTE4ZDM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTE1MjAsNiArMTUyMCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBFeHRlbmQ6Ok5vbmU6CiAgICAgICAgICAgICByZXR1cm4gQXNzZW1ibGVyOjpV
WFRYOwogICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgfQogCiAgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CkBAIC0xOTQ5LDYgKzE5NTAsMTcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0KGRhdGFUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1t
UHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgaWYgKCFpbW0ubV92YWx1
ZSkgeworICAgICAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbW92ZVRvQ2FjaGVkUmVn
KGltbSwgZGF0YU1lbW9yeVRlbXBSZWdpc3RlcigpKTsKKyAgICAgICAgc3RvcmU2NChkYXRhVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZElt
bTY0IGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3Zh
bHVlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCmluZGV4IGZlN2YyZDVjNGYzZmI0MWMxZDM1NWVlOTQ0ZGRkNWE1YWUx
NDAwOGIuLjc0NzBiNWI2YmNhYzlmYjg5ZTE5MDEyZjVhZjgxNGExOTBkMWY4YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oCkBAIC0xMDU0LDEyICsxMDU0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmU4KHNyYywg
c2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZTgo
UmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQgKmFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoUmVn
aXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBzdG9yZTgo
c3JjLCBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKSk7CiAgICAgfQog
ICAgIAotICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQgKmFkZHJl
c3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCogYWRkcmVz
cykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4o
aW1tLm1fdmFsdWUpKTsKICAgICAgICAgbW92ZShpbW04LCBkYXRhVGVtcFJlZ2lzdGVyKTsKQEAg
LTEwOTksNiArMTA5OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdp
c3RlciwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklE
IHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAg
IFJlZ2lzdGVySUQgc2NyYXRjaCA9IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFs
aWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICBzdG9yZVBhaXIz
MihzcmMxLCBzY3JhdGNoLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMy
KFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIgaW1tMzIsIEFkZHJlc3MgYWRkcmVz
cykKKyAgICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDEgPSBnZXRDYWNoZWRBZGRyZXNz
VGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tUHRyLCBzY3Jh
dGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSBnZXRDYWNoZWREYXRhVGVtcFJl
Z2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tMzIsIHNjcmF0Y2gyKTsK
KyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9
CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVkSW1tMzIg
aW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNo
MSA9IGdldENhY2hlZEFkZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAg
ICAgbW92ZShpbW0xLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSBz
Y3JhdGNoMTsKKyAgICAgICAgaWYgKGltbTEubV92YWx1ZSAhPSBpbW0yLm1fdmFsdWUpIHsKKyAg
ICAgICAgICAgIHNjcmF0Y2gyID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxp
ZGF0ZSgpOworICAgICAgICAgICAgbW92ZShpbW0yLCBzY3JhdGNoMik7CisgICAgICAgIH0KKyAg
ICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9CisK
ICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBS
ZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBk
ZXN0LCBUcnVzdGVkSW1tMzIoMCkpOwpAQCAtMTEzNiw2ICsxMTY0LDIyIEBAIHB1YmxpYzoKICAg
ICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgQWRkcmVzcyhzY3JhdGNoLCBhZGRyZXNzLm9m
ZnNldCkpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEs
IFRydXN0ZWRJbW0zMiBpbW0yLCBCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIC8v
IFdlIGRvbid0IGhhdmUgZW5vdWdoIHRlbXAgcmVnaXN0ZXJzIHRvIG1vdmUgYm90aCBpbW0gYW5k
IGNhbGN1bGF0ZSB0aGUgYWRkcmVzcworICAgICAgICBzdG9yZTMyKGltbTEsIGFkZHJlc3MpOwor
ICAgICAgICBzdG9yZTMyKGltbTIsIGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7CisgICAgfQorCisg
ICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNv
bnN0IHZvaWQqIGFkZHJlc3MpCisgICAgeworICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3Mg
PSBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsKKyAgICAgICAgQVNT
RVJUKGFybUFkZHJlc3MudHlwZSA9PSBBcm1BZGRyZXNzOjpIYXNPZmZzZXQpOworICAgICAgICBS
ZWdpc3RlcklEIHNjcmF0Y2ggPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlk
YXRlKCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIo
c3JjMSwgc2NyYXRjaCwgQWRkcmVzcyhhcm1BZGRyZXNzLmJhc2UsIGFybUFkZHJlc3MudS5vZmZz
ZXQpKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVn
aXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgQXJtQWRk
cmVzcyBhcm1BZGRyZXNzID0gc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNz
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaAppbmRleCA5NGViNjJmNGExMjFhNjE0NTMyMzY5MTNhYzlkM2NiMzk0YWRiMGQy
Li41ZGVjNTljNjI2NjgwNTBlNDRlMjQwMWNhMDQ5MmZlMjEzMjA4MmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAg
LTE2NDksNiArMTY0OSwzMCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lk
IHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBh
ZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShpbW0sIGFkZHJUZW1wUmVnaXN0ZXIpOworICAg
ICAgICBzdG9yZVBhaXIzMihzcmMxLCBhZGRyVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9
CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1t
MzIgaW1tMzIsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tUHRyLCBh
ZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShpbW0zMiwgZGF0YVRlbXBSZWdpc3Rlcik7
CisgICAgICAgIHN0b3JlUGFpcjMyKGFkZHJUZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIs
IGFkZHJlc3MpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGlt
bTEsIFRydXN0ZWRJbW0zMiBpbW0yLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBt
b3ZlKGltbTEsIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2gg
PSBhZGRyVGVtcFJlZ2lzdGVyOworICAgICAgICBpZiAoaW1tMS5tX3ZhbHVlICE9IGltbTIubV92
YWx1ZSkgeworICAgICAgICAgICAgc2NyYXRjaCA9IGRhdGFUZW1wUmVnaXN0ZXIoKTsKKyAgICAg
ICAgICAgIG1vdmUoaW1tMiwgc2NyYXRjaCk7CisgICAgICAgIH0KKyAgICAgICAgc3RvcmVQYWly
MzIoYWRkclRlbXBSZWdpc3Rlciwgc2NyYXRjaCwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgZGVzdCwgVHJ1
c3RlZEltbTMyKDApKTsKQEAgLTE2NzEsNiArMTY5NSwxOSBAQCBwdWJsaWM6CiAgICAgICAgIHN0
b3JlMzIoc3JjMiwgYWRkcmVzcy53aXRoT2Zmc2V0KDQpKTsKICAgICB9CiAKKyAgICB2b2lkIHN0
b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVkSW1tMzIgaW1tMiwgQmFzZUluZGV4
IGFkZHJlc3MpCisgICAgeworICAgICAgICBzdG9yZTMyKGltbTEsIGFkZHJlc3MpOworICAgICAg
ICBzdG9yZTMyKGltbTIsIGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7CisgICAgfQorCisgICAgdm9p
ZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZv
aWQqIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyks
IGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdpc3Rlcik7
CisgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVn
aXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBS
ZWdpc3RlcklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmlu
ZGV4IGIyZTkxMWFhMTM2NjNhMjUwOTg0MGEwNTY4ODQxMmYyOTI4ZWY0NjMuLmE0ZmQ0YzJkNGEz
ZGY4NTZhNjU5ZmRmY2ViY2NkN2U2NmZjYTJjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTEwMjEsMTIg
KzEwMjEsMTggQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0KHNjcmF0Y2hSZWdpc3RlcigpLCBh
ZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbVB0ciBpbW0sIEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0ZXIo
KSk7CisgICAgICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3MpOworICAgIH0K
KwogICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykK
ICAgICB7CiAgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgIG1f
YXNzZW1ibGVyLm1vdnFfcm0oc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3Mub2Zmc2V0LCBhZGRy
ZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgIH0KLSAgICAKKwog
ICAgIERhdGFMYWJlbDMyIHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQg
c3JjLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBwYWRCZWZvcmVQYXRjaCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggYjI0M2M2NzQ3OTUw
Y2VmZDZiNTJkOGRlNTNhNWFhZWExNDhiYjBmYy4uZjBmYzk0ZmIwY2YxNTRiMzFjYzk3MmZhY2My
N2ZiZWNjMDY0YmM3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3Bw
CkBAIC02NDYsOCArNjQ2LDcgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBl
cnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAgICAgICAg
aml0LmxvYWQzMigKICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3Io
cmVjb3ZlcnkudmlydHVhbFJlZ2lzdGVyKCkpLAogICAgICAgICAgICAgICAgIEpTUkluZm86Ompz
UmVnVDEwLnBheWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShBc3NlbWJseUhlbHBl
cnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgSlNSSW5mbzo6anNSZWdUMTAudGFn
R1BSKCkpOwotICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6anNSZWdUMTAsIHNj
cmF0Y2ggKyBpbmRleCk7CisgICAgICAgICAgICBqaXQuc3RvcmVDZWxsKEpTUkluZm86OmpzUmVn
VDEwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21t
b24uY3BwCmluZGV4IDU4NGZmZDg4NTZiMThjNzc2OGJjYTJkMzc5NWU5MGU4MzMxZTIxMDkuLjc5
OTY0NWM1OTA0MzE3YTUwMzIxNzU2ZDNmMWYyMGRkY2VjOWJjMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAg
LTMyMiwxNCArMzIyLDggQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAgICAgaml0LnN0b3JlUHRyKGNh
bGxlckZyYW1lR1BSLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3JCeXRlT2Zmc2V0KGlubGlu
ZUNhbGxGcmFtZS0+Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgICAgICB1aW50MzJfdCBsb2Nh
dGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGJhc2VsaW5lQ29kZUJsb2NrLT5ieXRlY29kZUluZGV4
Rm9yRXhpdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpKS5iaXRzKCk7CiAgICAgICAgIGpp
dC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFz
c2VtYmx5SGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0
YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7
Ci0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xv
c3VyZUNhbGwpCi0gICAgICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNv
bnN0YW50KCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIo
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsK
LSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0Ci0g
ICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKLSAgICAg
ICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCi0gICAgICAgICAgICBqaXQu
c3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0dWFsUmVn
aXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxl
ZSkpKTsKLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KSAvLyBlbmRpbmcgdGhlICNlbHNlIHBhcnQs
IHNvIGRpcmVjdGx5IGFib3ZlIGlzIHRoZSAzMi1iaXQgcGFydAorICAgICAgICAgICAgaml0LnN0
b3JlQ2VsbChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5j
YWxsZWVDb25zdGFudCgpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxSZWdp
c3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVl
KSkpOwogICAgIH0KIAogICAgIC8vIERvbid0IG5lZWQgdG8gc2V0IHRoZSB0b3BsZXZlbCBjb2Rl
IG9yaWdpbiBpZiB3ZSBvbmx5IGRpZCBpbmxpbmUgdGFpbCBjYWxscwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAzNjBlMTgxODNlY2Jh
MWUwY2MwNWQ3NmM3MmNkZjEyMTllY2NiMTZkLi41MjRjYWE4MzcyMjk3YTYyNGVkN2YyNWUxMDc5
ZDU3NTYyMWNhNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcApAQCAtMjM4Myw3ICsyMzgzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y2hlY2tBcmd1bWVudFR5cGVzKCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgRmx1c2hlZENlbGw6IHsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFk
VHlwZSwgdmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpO
b3RFcXVhbCwgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1t
MzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFk
VHlwZSwgdmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaElmTm90Q2VsbChKSVRDb21waWxl
cjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC05NzUwLDEzICs5NzUwLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5V2l0aFNwcmVhZChOb2RlKiBub2RlKQogICAgICAgICBp
ZiAoYml0VmVjdG9yLT5nZXQoaSkpIHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGltbXV0YWJsZUJ1dHRlcmZseSh0aGlzLCB1c2UpOwogICAgICAgICAgICAgR1BSUmVnIGltbXV0
YWJsZUJ1dHRlcmZseUdQUiA9IGltbXV0YWJsZUJ1dHRlcmZseS5ncHIoKTsKLSNpZiBVU0UoSlNW
QUxVRTY0KQotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChpbW11dGFibGVCdXR0ZXJmbHlHUFIs
ICZidWZmZXJbaV0pOwotI2Vsc2UKLSAgICAgICAgICAgIGNoYXIqIHBvaW50ZXIgPSBzdGF0aWNf
Y2FzdDxjaGFyKj4oc3RhdGljX2Nhc3Q8dm9pZCo+KCZidWZmZXJbaV0pKTsKLSAgICAgICAgICAg
IG1faml0LnN0b3JlMzIoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCBwb2ludGVyICsgUGF5bG9hZE9m
ZnNldCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpD
ZWxsVGFnKSwgcG9pbnRlciArIFRhZ09mZnNldCk7Ci0jZW5kaWYKKyAgICAgICAgICAgIG1faml0
LnN0b3JlQ2VsbChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZmZXJbaV0pOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaW5wdXQodGhpcywgdXNlKTsKICAg
ICAgICAgICAgIEpTVmFsdWVSZWdzIGlucHV0UmVncyA9IGlucHV0LmpzVmFsdWVSZWdzKCk7CkBA
IC0xMDExOSw3ICsxMDExMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJheUlu
ZGV4T2YoTm9kZSogbm9kZSkKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgYXV0byBm
b3VuZCA9IG1faml0LmJyYW5jaDY0KENDYWxsSGVscGVyczo6RXF1YWwsIE1hY3JvQXNzZW1ibGVy
OjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0Vp
Z2h0KSwgc2VhcmNoRWxlbWVudEdQUik7CiAjZWxzZQotICAgICAgICAgICAgYXV0byBza2lwID0g
bV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJh
c2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQs
IFRhZ09mZnNldCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgICAg
ICBhdXRvIHNraXAgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJ
bmRleChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFRh
Z09mZnNldCkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBQ
YXlsb2FkT2Zmc2V0KSwgdGVtcEdQUik7CiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9qaXQu
YnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgdGVtcEdQUiwgc2VhcmNoRWxlbWVudEdQUik7
CiAgICAgICAgICAgICBza2lwLmxpbmsoJm1faml0KTsKQEAgLTExMzkwLDE4ICsxMTM4NCw4IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdTdHJpbmdPYmplY3QoTm9kZSogbm9kZSkK
ICAgICAgICAgcmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKG5vZGUtPnN0cnVjdHVyZSgpKSwgYnV0
dGVyZmx5LCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsCiAgICAgICAgIHNsb3dQYXRoKTsKICAg
ICAKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIG1faml0LnN0b3JlNjQoCi0gICAgICAgIG9wZXJh
bmRHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0Ojpp
bnRlcm5hbFZhbHVlT2Zmc2V0KCkpKTsKLSNlbHNlCi0gICAgbV9qaXQuc3RvcmUzMigKLSAgICAg
ICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBKSVRDb21waWxlcjo6
QWRkcmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgp
ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICBtX2ppdC5z
dG9yZTMyKAotICAgICAgICBvcGVyYW5kR1BSLAotICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVz
cyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0jZW5kaWYKLSAgICAK
KyAgICBtX2ppdC5zdG9yZUNlbGwob3BlcmFuZEdQUiwgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVz
dWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkpOworCiAgICAg
bV9qaXQubXV0YXRvckZlbmNlKHZtKCkpOwogICAgIAogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KHNsb3dQYXRoQ2FsbCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDdmYjU2NTIzMzJmOWM2MGY2MjIyODZmZWFhOWU1
NmJhNjMyN2Y2Y2EuLjgxZjM5N2FjNjUwM2YzYzE1MTkyNjQyMDU4YThiNDkwNmM4YjM5ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcApAQCAtMTEwMywxMCArMTEwMyw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6Zmls
bFNwZWN1bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgICAgICAgICAgICAgIEJhZFR5cGUsCiAgICAg
ICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZShKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFs
UmVnaXN0ZXIpKSwKICAgICAgICAgICAgICAgICBlZGdlLAotICAgICAgICAgICAgICAgIG1faml0
LmJyYW5jaDMyKAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWws
Ci0gICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVy
KSwKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7
CisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0YWdG
b3IodmlydHVhbFJlZ2lzdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIEdQUlJlZyBncHIgPSBh
bGxvY2F0ZSgpOwogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3Io
dmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKQEAgLTEyNzEsNyArMTI2OCw4IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFN0cmljdEVxdWFsaXR5KEVkZ2Ugb2JqZWN0
Q2hpbGQsIEVkZ2UKIAogICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRD
ZWxsKG9wMUdQUiksIG9iamVjdENoaWxkLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hJZk5vdE9i
amVjdChvcDFHUFIpKTsKIAotICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwg
b3AyLnRhZ0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIG5vdFRha2VuKTsK
KyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxs
KG9wMi50YWdHUFIoKSk7CisgICAgYWRkQnJhbmNoKG5vdENlbGwsIG5vdFRha2VuKTsKICAgICAK
ICAgICBpZiAodGFrZW4gPT0gbmV4dEJsb2NrKCkpIHsKICAgICAgICAgYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUiwgbm90VGFrZW4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDAyNGRkZjBhZjY3
NzJiODVjZjQ2NDllOWJhYjI0ZmM0ODY0MGU1OTYuLjZlY2E0ZDIwNWVlYmY5MjQ2N2FiZDQyNTM1
YmNlN2ZmMmUwMzJkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0
QXNzZXJ0SXNKU0RvdWJsZShHUFJSZWcgZ3ByKQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0
QXNzZXJ0SXNDZWxsKEdQUlJlZyBncHIpCiB7Ci0gICAgSnVtcCBjaGVja0NlbGwgPSBicmFuY2gz
MihFcXVhbCwgZ3ByLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgIEp1bXAg
Y2hlY2tDZWxsID0gYnJhbmNoSWZDZWxsKGdwcik7CiAgICAgYWJvcnRXaXRoUmVhc29uKEFISXNO
b3RDZWxsKTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDI3ZGQ1OTc5MGI3MWY5OGEyMTdiMTI1
ODc3Njc3MTY1YWM2OGVlMGMuLmU3MzhkZjkwZmQ3YjZkZDdiZDQxYzBiNjdlNTZhN2NhMjU4ZGY4
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
MTM5LDE3ICsxMzksMjkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLSAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIEFkZHJlc3MgYWRkcmVzcykK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorICAgIHZvaWQgc3RvcmVDZWxs
KFQgY2VsbCwgVSBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBz
dG9yZTY0KGNlbGwsIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihjZWxsLCBhZGRy
ZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAi
QXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBzdG9yZVBhaXIzMihjZWxs
LCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJlc3MpOwogI2VuZGlmCiAgICAg
fQotICAgIAorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICB2b2lkIHN0b3JlQ2VsbChK
U1ZhbHVlUmVncyByZWdzLCBVIGFkZHJlc3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisg
ICAgICAgIHN0b3JlNjQocmVncy5ncHIoKSwgYWRkcmVzcyk7CisjZWxzZQorICAgICAgICBzdGF0
aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0
bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBtb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdzLnRhZ0dQUigpKTsKKyAgICAgICAgc3RvcmVQ
YWlyMzIocmVncy5wYXlsb2FkR1BSKCksIHJlZ3MudGFnR1BSKCksIGFkZHJlc3MpOworI2VuZGlm
CisgICAgfQorCiAgICAgdm9pZCBsb2FkQ2VsbChBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBncHIp
CiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0xNTgsNyArMTcwLDcgQEAgcHVibGljOgog
ICAgICAgICBsb2FkMzIoYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpLCBncHIpOwog
I2VuZGlmCiAgICAgfQotICAgIAorCiAgICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHJl
Z3MsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTI4Nyw4
ICsyOTksNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgc3RvcmU2NChU
cnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJlc3MpOwogI2Vsc2UKLSAg
ICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzLndpdGhPZmZz
ZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKHZhbHVlLnBheWxv
YWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIHN0b3Jl
UGFpcjMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBUcnVzdGVkSW1tMzIodmFsdWUu
dGFnKCkpLCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KIApAQCAtMjk3LDggKzMwOCw3IEBAIHB1
YmxpYzoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW02NChK
U1ZhbHVlOjplbmNvZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxzZQotICAgICAgICBzdG9yZTMy
KFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQp
KTsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5bG9hZCgpKSwgYWRkcmVz
cy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoVHJ1c3Rl
ZEltbTMyKHZhbHVlLnBheWxvYWQoKSksIFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJl
c3MpOwogI2VuZGlmCiAgICAgfQogCkBAIC02NjEsMTUgKzY3MSwxNiBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB9CiAKLSAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBUYWdSZWdp
c3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CisgICAgSnVtcCBicmFuY2hJZk5vdENlbGwoVCBtYXliZUNlbGwsIFRhZ1JlZ2lzdGVyc01v
ZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAg
ICAgICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAgICAgICByZXR1cm4g
YnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7
Ci0gICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnLCBUcnVzdGVkSW1tNjQo
SlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQo
Tm9uWmVybywgbWF5YmVDZWxsLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKKyAgICAg
ICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCBtYXliZUNlbGwsIFRydXN0ZWRJbW02NChK
U1ZhbHVlOjpOb3RDZWxsTWFzaykpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUp
OwotICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCByZWcs
IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJldHVybiBicmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpKTsKICNlbmRpZgogICAgIH0KIApAQCAtNjgxLDE4ICs2OTIsMjAgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHJlZ3MudGFnR1BSKCksIG1vZGUp
OwogI2VuZGlmCiAgICAgfQotICAgIAotICAgIEp1bXAgYnJhbmNoSWZDZWxsKEdQUlJlZyByZWcs
IFRhZ1JlZ2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZDZWxsKFQgbWF5YmVDZWxsLCBUYWdSZWdp
c3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0UoSlNWQUxV
RTY0KQogICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgICAgICAgICAg
cmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWcsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0
ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywgVHJ1c3RlZEltbTY0
KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0
KFplcm8sIG1heWJlQ2VsbCwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAg
IHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgbWF5YmVDZWxsLCBUcnVzdGVkSW1tNjQoSlNWYWx1
ZTo6Tm90Q2VsbE1hc2spKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKLSAg
ICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgcmVnLCBUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkVxdWFsLCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSk7CiAjZW5kaWYKICAgICB9CisKICAgICBKdW1wIGJyYW5jaElmQ2VsbChKU1ZhbHVlUmVncyBy
ZWdzLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNp
ZiBVU0UoSlNWQUxVRTY0KQpAQCAtMTIxNiwxMSArMTIyOSwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJl
c3MoYmFzZUdQUiwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSAr
IFRhZ09mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxS
ZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJl
Z2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIp
ICsgVGFnT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoT3BlcmFu
ZCBvcGVyYW5kKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFvcGVyYW5kLmlzVG1wKCkpOwpAQCAt
MTIzMiwxMSArMTI0NywxMyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0
ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZUdQUiwgdmlydHVhbFJl
Z2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpOwogICAg
IH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1
YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxp
ZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zm
c2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9yKE9wZXJhbmQgb3Bl
cmFuZCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghb3BlcmFuZC5pc1RtcCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwCmlu
ZGV4IDJmZWY1M2RhNjBhMmU3NWE0N2M2NGY4ZDMwNDBjNDYyMjJiYjg4ZWEuLjBlODdlMTY5NTMx
YWM5NTFiZmFmMGY5ZGVkMWI2ZjJmYTY2M2RiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcApAQCAtNDUsOSArNDUsNyBA
QCBEYXRhRm9ybWF0IENhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUoQ2FjaGVkUmVjb3Zlcnkm
IGxvY2F0aW9uLCBNYWNyb0Fzc2VtYmxlcgogICAgICAgICBtX2ppdC5zdG9yZTMyKGxvY2F0aW9u
LnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CiAg
ICAgICAgIHJldHVybiBEYXRhRm9ybWF0SW50MzI7CiAgICAgY2FzZSBVbmJveGVkQ2VsbEluR1BS
OgotICAgICAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgICAgICBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0
KSk7Ci0gICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24ucmVjb3ZlcnkoKS5ncHIoKSwgYWRk
cmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmVDZWxs
KGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3MpOwogICAgICAgICByZXR1cm4gRGF0
YUZvcm1hdENlbGw7CiAgICAgY2FzZSBDb25zdGFudDoKICAgICAgICAgbV9qaXQuc3RvcmVUcnVz
dGVkVmFsdWUobG9jYXRpb24ucmVjb3ZlcnkoKS5jb25zdGFudCgpLCBhZGRyZXNzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA0YjQyOWEyNjdjY2Vl
MmM2NDczZWRhNzFjOWZjOTQ1NGM1ODIzMDBjLi4yYWZhZWJiYmYzYWYyMTFjZmVkNTkxNTFmOTll
ZDIyMTY5YzA0MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50
ZXJmYWNlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJ
VC5oCkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICAgICAgQVNT
RVJUKHZpcnR1YWxSZWdpc3RlciA8IFZpcnR1YWxSZWdpc3RlcihGaXJzdENvbnN0YW50UmVnaXN0
ZXJJbmRleCkpOwogICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwg
cGF5bG9hZCk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihOb3RFcXVhbCwgdGFnRm9yKHZpcnR1
YWxSZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJl
dHVybiBicmFuY2hJZk5vdENlbGwodGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpOwogICAgIH0KIAog
ICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRJ
bnQzMihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyLCBSZWdpc3RlcklEIGRzdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456883</attachid>
            <date>2022-04-06 19:51:35 -0700</date>
            <delta_ts>2022-04-07 08:54:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220407025133.patch</filename>
            <type>text/plain</type>
            <size>27347</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Mzk5Zjk5ODY5YTc0NTFiNGE3ZjEzYzAyOWVmZjgwYzU0ODA4ZGI1Li45MDU4OGU0MGMyNGVlZmNj
OWEyMjZiN2FjN2RkN2MyMDEwYjMwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTAzLTE3ICBNaWtoYWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgbm9uLXVuaWZpZWQgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5o
CmluZGV4IDJhZjliYjkwNWFkZTMxOTBlNDZlNTZkYTYwMzI3MjQwMGEwOGE1NGEuLmY2YjMzNDIz
ZDBiOTlmMDliMzdjZDRlNmRhZDMxZDI3MWI4Zjc0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCkBAIC05
MjMsNiArOTIzLDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIE5lYXJDYWxsTW9kZTo6UmVndWxh
cjoKICAgICAgICAgICAgIHJldHVybiBDb2RlTG9jYXRpb25MYWJlbDxkZXN0VGFnPih0YWdDb2Rl
UHRyPGRlc3RUYWc+KEFzc2VtYmxlclR5cGU6OnByZXBhcmVGb3JBdG9taWNSZWxpbmtDYWxsQ29u
Y3VycmVudGx5KG5lYXJDYWxsLmRhdGFMb2NhdGlvbigpLCBkZXN0aW5hdGlvbi51bnRhZ2dlZEV4
ZWN1dGFibGVBZGRyZXNzKCkpKSk7CiAgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShuZWFyQ2FsbCk7CiAg
ICAgICAgIHJldHVybiBkZXN0aW5hdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggNjMzNzczYWVlYzlkMWM5
NjdmYTk4YTVhY2IyYTEyNDUyZWIyNTA3Yy4uNmQzYWI5MmY5MjRlNDRmYzA2ZjlhOWZkZjQ3MDI3
NzhkOTE4ZDM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTE1MjAsNiArMTUyMCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBFeHRlbmQ6Ok5vbmU6CiAgICAgICAgICAgICByZXR1cm4gQXNzZW1ibGVyOjpV
WFRYOwogICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgfQogCiAgICAgdm9pZCBsb2FkNjQoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CkBAIC0xOTQ5LDYgKzE5NTAsMTcgQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0KGRhdGFUZW1w
UmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1t
UHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgaWYgKCFpbW0ubV92YWx1
ZSkgeworICAgICAgICAgICAgc3RvcmU2NChBUk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbW92ZVRvQ2FjaGVkUmVn
KGltbSwgZGF0YU1lbW9yeVRlbXBSZWdpc3RlcigpKTsKKyAgICAgICAgc3RvcmU2NChkYXRhVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZElt
bTY0IGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3Zh
bHVlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk12Ny5oCmluZGV4IGZlN2YyZDVjNGYzZmI0MWMxZDM1NWVlOTQ0ZGRkNWE1YWUx
NDAwOGIuLjkwZTI4MjVkNDA2ZDFmODNhZjlmNmJkZmM0Mzk4MTVmNDQ5MzRjZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5oCkBAIC05NDMsMTIgKzk0MywxMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIGNh
Y2hlZERhdGFUZW1wUmVnaXN0ZXIoKS5pbnZhbGlkYXRlKCk7CiAgICAgICAgICAgICAgICAgbV9h
c3NlbWJsZXIubGRyZChkZXN0MSwgZGVzdDIsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy51Lm9mZnNl
dCwgLyogaW5kZXg6ICovIHRydWUsIC8qIHdiYWNrOiAqLyBmYWxzZSk7CiAgICAgICAgICAgICB9
IGVsc2UgaWYgKGFkZHJlc3MuYmFzZSA9PSBkZXN0MSkgewotICAgICAgICAgICAgICAgIEFybUFk
ZHJlc3MgaGlnaEFkZHJlc3MoYWRkcmVzcy5iYXNlLCBhZGRyZXNzLnUub2Zmc2V0ICsgNCk7Cisg
ICAgICAgICAgICAgICAgQXJtQWRkcmVzcyBoaWdoQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJl
c3MudS5vZmZzZXQgKyBUYWdPZmZzZXQpOwogICAgICAgICAgICAgICAgIGxvYWQzMihoaWdoQWRk
cmVzcywgZGVzdDIpOwogICAgICAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLCBkZXN0MSk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLCBkZXN0
MSk7Ci0gICAgICAgICAgICAgICAgQXJtQWRkcmVzcyBoaWdoQWRkcmVzcyhhZGRyZXNzLmJhc2Us
IGFkZHJlc3MudS5vZmZzZXQgKyA0KTsKKyAgICAgICAgICAgICAgICBBcm1BZGRyZXNzIGhpZ2hB
ZGRyZXNzKGFkZHJlc3MuYmFzZSwgYWRkcmVzcy51Lm9mZnNldCArIFRhZ09mZnNldCk7CiAgICAg
ICAgICAgICAgICAgbG9hZDMyKGhpZ2hBZGRyZXNzLCBkZXN0Mik7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTEwNTQsMTIgKzEwNTQsMTIgQEAgcHVibGljOgogICAgICAgICBzdG9yZTgo
c3JjLCBzZXR1cEFybUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAgICAKLSAgICB2b2lkIHN0
b3JlOChSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCAqYWRkcmVzcykKKyAgICB2b2lkIHN0b3Jl
OChSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIHN0
b3JlOChzcmMsIHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzcykpKTsKICAg
ICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCAq
YWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1tLCBjb25zdCB2b2lkKiBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgoc3RhdGljX2Nhc3Q8aW50
OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBtb3ZlKGltbTgsIGRhdGFUZW1wUmVnaXN0ZXIp
OwpAQCAtMTA5OSw2ICsxMDk5LDM0IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmUxNihkYXRhVGVt
cFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lz
dGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7CisgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNjcmF0Y2gsIGFkZHJlc3MpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQ
YWlyMzIoVHJ1c3RlZEltbVB0ciBpbW1QdHIsIFRydXN0ZWRJbW0zMiBpbW0zMiwgQWRkcmVzcyBh
ZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMSA9IGdldENhY2hlZEFk
ZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW1QdHIs
IHNjcmF0Y2gxKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMiA9IGdldENhY2hlZERhdGFU
ZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0zMiwgc2NyYXRj
aDIpOworICAgICAgICBzdG9yZVBhaXIzMihzY3JhdGNoMSwgc2NyYXRjaDIsIGFkZHJlc3MpOwor
ICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEsIFRydXN0ZWRJ
bW0zMiBpbW0yLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBSZWdpc3RlcklEIHNj
cmF0Y2gxID0gZ2V0Q2FjaGVkQWRkcmVzc1RlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOwor
ICAgICAgICBtb3ZlKGltbTEsIHNjcmF0Y2gxKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNo
MiA9IHNjcmF0Y2gxOworICAgICAgICBpZiAoaW1tMS5tX3ZhbHVlICE9IGltbTIubV92YWx1ZSkg
eworICAgICAgICAgICAgc2NyYXRjaDIgPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJ
bnZhbGlkYXRlKCk7CisgICAgICAgICAgICBtb3ZlKGltbTIsIHNjcmF0Y2gyKTsKKyAgICAgICAg
fQorICAgICAgICBzdG9yZVBhaXIzMihzY3JhdGNoMSwgc2NyYXRjaDIsIGFkZHJlc3MpOworICAg
IH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNy
YzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIHNy
YzIsIGRlc3QsIFRydXN0ZWRJbW0zMigwKSk7CkBAIC0xMTE4LDcgKzExNDYsNyBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdHJkKHNyYzEsIHNyYzIsIGFkZHJlc3MuYmFzZSwg
YWRkcmVzcy5vZmZzZXQsIC8qIGluZGV4OiAqLyB0cnVlLCAvKiB3YmFjazogKi8gZmFsc2UpOwog
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHN0b3JlMzIoc3JjMSwgYWRkcmVzcyk7Ci0gICAg
ICAgICAgICBzdG9yZTMyKHNyYzIsIGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7CisgICAgICAgICAg
ICBzdG9yZTMyKHNyYzIsIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMTEzNiw2ICsxMTY0LDIyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQ
YWlyMzIoc3JjMSwgc3JjMiwgQWRkcmVzcyhzY3JhdGNoLCBhZGRyZXNzLm9mZnNldCkpOwogICAg
IH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEsIFRydXN0ZWRJbW0z
MiBpbW0yLCBCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIC8vIFdlIGRvbid0IGhh
dmUgZW5vdWdoIHRlbXAgcmVnaXN0ZXJzIHRvIG1vdmUgYm90aCBpbW0gYW5kIGNhbGN1bGF0ZSB0
aGUgYWRkcmVzcworICAgICAgICBzdG9yZTMyKGltbTEsIGFkZHJlc3MpOworICAgICAgICBzdG9y
ZTMyKGltbTIsIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyAgICB9CisKKyAgICB2
b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qg
dm9pZCogYWRkcmVzcykKKyAgICB7CisgICAgICAgIEFybUFkZHJlc3MgYXJtQWRkcmVzcyA9IHNl
dHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3MoYWRkcmVzcykpOworICAgICAgICBBU1NFUlQo
YXJtQWRkcmVzcy50eXBlID09IEFybUFkZHJlc3M6Okhhc09mZnNldCk7CisgICAgICAgIFJlZ2lz
dGVySUQgc2NyYXRjaCA9IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICBzdG9yZVBhaXIzMihzcmMx
LCBzY3JhdGNoLCBBZGRyZXNzKGFybUFkZHJlc3MuYmFzZSwgYXJtQWRkcmVzcy51Lm9mZnNldCkp
OworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3Rl
cklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAgICBBcm1BZGRyZXNz
IGFybUFkZHJlc3MgPSBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
TUlQUy5oCmluZGV4IDk0ZWI2MmY0YTEyMWE2MTQ1MzIzNjkxM2FjOWQzY2IzOTRhZGIwZDIuLmIz
YmMzZWRlYjU5YTZlOGY3Nzg2MmI1ODM0MzlhYTFhNGY2MzU0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaApAQCAtMTMy
OCwxMSArMTMyOCwxMSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoZGVzdDEgIT0g
ZGVzdDIpOyAvLyBJZiBpdCBpcyB0aGUgc2FtZSwgbGRwIGJlY29tZXMgaWxsZWdhbCBpbnN0cnVj
dGlvbi4KICAgICAgICAgaWYgKGFkZHJlc3MuYmFzZSA9PSBkZXN0MSkgewotICAgICAgICAgICAg
bG9hZDMyKGFkZHJlc3Mud2l0aE9mZnNldCg0KSwgZGVzdDIpOworICAgICAgICAgICAgbG9hZDMy
KGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpLCBkZXN0Mik7CiAgICAgICAgICAgICBsb2Fk
MzIoYWRkcmVzcywgZGVzdDEpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbG9hZDMy
KGFkZHJlc3MsIGRlc3QxKTsKLSAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQo
NCksIGRlc3QyKTsKKyAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zm
c2V0KSwgZGVzdDIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzQ4LDExICsxMzQ4LDExIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGFkZHJlc3MuYmFzZSAhPSBkZXN0
Mik7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChhZGRyZXNzLmluZGV4ICE9IGRlc3QyKTsK
IAotICAgICAgICAgICAgbG9hZDMyKGFkZHJlc3Mud2l0aE9mZnNldCg0KSwgZGVzdDIpOworICAg
ICAgICAgICAgbG9hZDMyKGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpLCBkZXN0Mik7CiAg
ICAgICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdDEpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgbG9hZDMyKGFkZHJlc3MsIGRlc3QxKTsKLSAgICAgICAgICAgIGxvYWQzMihhZGRy
ZXNzLndpdGhPZmZzZXQoNCksIGRlc3QyKTsKKyAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLndp
dGhPZmZzZXQoVGFnT2Zmc2V0KSwgZGVzdDIpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNjQ5
LDYgKzE2NDksMzAgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCisgICAgdm9pZCBzdG9y
ZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVz
cykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
c3RvcmVQYWlyMzIoc3JjMSwgYWRkclRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCisg
ICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tUHRyIGltbVB0ciwgVHJ1c3RlZEltbTMyIGlt
bTMyLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbVB0ciwgYWRkclRl
bXBSZWdpc3Rlcik7CisgICAgICAgIG1vdmUoaW1tMzIsIGRhdGFUZW1wUmVnaXN0ZXIpOworICAg
ICAgICBzdG9yZVBhaXIzMihhZGRyVGVtcFJlZ2lzdGVyLCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRy
ZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBU
cnVzdGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShp
bW0xLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gYWRk
clRlbXBSZWdpc3RlcjsKKyAgICAgICAgaWYgKGltbTEubV92YWx1ZSAhPSBpbW0yLm1fdmFsdWUp
IHsKKyAgICAgICAgICAgIHNjcmF0Y2ggPSBkYXRhVGVtcFJlZ2lzdGVyOworICAgICAgICAgICAg
bW92ZShpbW0yLCBzY3JhdGNoKTsKKyAgICAgICAgfQorICAgICAgICBzdG9yZVBhaXIzMihhZGRy
VGVtcFJlZ2lzdGVyLCBzY3JhdGNoLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3Jl
UGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1t
MzIoMCkpOwpAQCAtMTY2MiwxMyArMTY4NiwyNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9yZVBh
aXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgQWRkcmVzcyBhZGRyZXNzKQog
ICAgIHsKICAgICAgICAgc3RvcmUzMihzcmMxLCBhZGRyZXNzKTsKLSAgICAgICAgc3RvcmUzMihz
cmMyLCBhZGRyZXNzLndpdGhPZmZzZXQoNCkpOworICAgICAgICBzdG9yZTMyKHNyYzIsIGFkZHJl
c3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKICAgICB9CiAKICAgICB2b2lkIHN0b3JlUGFpcjMy
KFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBCYXNlSW5kZXggYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHN0b3JlMzIoc3JjMSwgYWRkcmVzcyk7Ci0gICAgICAgIHN0b3JlMzIoc3Jj
MiwgYWRkcmVzcy53aXRoT2Zmc2V0KDQpKTsKKyAgICAgICAgc3RvcmUzMihzcmMyLCBhZGRyZXNz
LndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihU
cnVzdGVkSW1tMzIgaW1tMSwgVHJ1c3RlZEltbTMyIGltbTIsIEJhc2VJbmRleCBhZGRyZXNzKQor
ICAgIHsKKyAgICAgICAgc3RvcmUzMihpbW0xLCBhZGRyZXNzKTsKKyAgICAgICAgc3RvcmUzMihp
bW0yLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisgICAgfQorCisgICAgdm9pZCBz
dG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQq
IGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFk
ZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbSwgZGF0YVRlbXBSZWdpc3Rlcik7Cisg
ICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJUZW1wUmVnaXN0
ZXIpOwogICAgIH0KIAogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdp
c3RlcklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggYjJlOTEx
YWExMzY2M2EyNTA5ODQwYTA1Njg4NDEyZjI5MjhlZjQ2My4uYTRmZDRjMmQ0YTNkZjg1NmE2NTlm
ZGZjZWJjY2Q3ZTY2ZmNhMmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMTAyMSwxMiArMTAyMSwxOCBA
QCBwdWJsaWM6CiAgICAgICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3MpOwog
ICAgIH0KIAorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAg
ICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIoKSwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9p
ZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgbV9hc3NlbWJsZXIu
bW92cV9ybShzY3JhdGNoUmVnaXN0ZXIoKSwgYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwg
YWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQotICAgIAorCiAgICAgRGF0YUxh
YmVsMzIgc3RvcmU2NFdpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJl
c3MgYWRkcmVzcykKICAgICB7CiAgICAgICAgIHBhZEJlZm9yZVBhdGNoKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcAppbmRleCBiMjQzYzY3NDc5NTBjZWZkNmI1MmQ4
ZGU1M2E1YWFlYTE0OGJiMGZjLi5mMGZjOTRmYjBjZjE1NGIzMWNjOTcyZmFjYzI3ZmJlY2MwNjRi
YzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKQEAgLTY0Niw4
ICs2NDYsNyBAQCB2b2lkIE9TUkV4aXQ6OmNvbXBpbGVFeGl0KENDYWxsSGVscGVycyYgaml0LCBW
TSYgdm0sIGNvbnN0IE9TUkV4aXQmIGV4aXQsIGNvbnN0CiAgICAgICAgICAgICBqaXQubG9hZDMy
KAogICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihyZWNvdmVyeS52
aXJ0dWFsUmVnaXN0ZXIoKSksCiAgICAgICAgICAgICAgICAgSlNSSW5mbzo6anNSZWdUMTAucGF5
bG9hZEdQUigpKTsKLSAgICAgICAgICAgIGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBKU1JJbmZvOjpqc1JlZ1QxMC50YWdHUFIoKSk7Ci0g
ICAgICAgICAgICBqaXQuc3RvcmVWYWx1ZShKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGlu
ZGV4KTsKKyAgICAgICAgICAgIGppdC5zdG9yZUNlbGwoSlNSSW5mbzo6anNSZWdUMTAsIHNjcmF0
Y2ggKyBpbmRleCk7CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKaW5k
ZXggNTg0ZmZkODg1NmIxOGM3NzY4YmNhMmQzNzk1ZTkwZTgzMzFlMjEwOS4uNzk5NjQ1YzU5MDQz
MTdhNTAzMjE3NTZkM2YxZjIwZGRjZWM5YmMwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcApAQCAtMzIyLDE0ICsz
MjIsOCBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IE9TUkV4aXRCYXNlJiBleGl0KQogICAgICAgICBqaXQuc3RvcmVQdHIoY2FsbGVyRnJhbWVH
UFIsIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvckJ5dGVPZmZzZXQoaW5saW5lQ2FsbEZyYW1l
LT5jYWxsZXJGcmFtZU9mZnNldCgpKSk7CiAgICAgICAgIHVpbnQzMl90IGxvY2F0aW9uQml0cyA9
IENhbGxTaXRlSW5kZXgoYmFzZWxpbmVDb2RlQmxvY2stPmJ5dGVjb2RlSW5kZXhGb3JFeGl0KGNv
ZGVPcmlnaW4tPmJ5dGVjb2RlSW5kZXgoKSkpLmJpdHMoKTsKICAgICAgICAgaml0LnN0b3JlMzIo
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIobG9jYXRpb25CaXRzKSwgQXNzZW1ibHlIZWxw
ZXJzOjp0YWdGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQg
KyBDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpKTsKLSNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkK
LSAgICAgICAgICAgIGppdC5zdG9yZTY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSkp
KSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotI2Vsc2UgLy8g
VVNFKEpTVkFMVUU2NCkgLy8gc28gdGhpcyBpcyB0aGUgMzItYml0IHBhcnQKLSAgICAgICAgaml0
LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyks
IEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUt
PnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotICAgICAgICBpZiAoIWlu
bGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKLSAgICAgICAgICAgIGppdC5zdG9yZVB0cihB
c3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25z
dGFudCgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3Rlcihpbmxp
bmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwotI2Vu
ZGlmIC8vIFVTRShKU1ZBTFVFNjQpIC8vIGVuZGluZyB0aGUgI2Vsc2UgcGFydCwgc28gZGlyZWN0
bHkgYWJvdmUgaXMgdGhlIDMyLWJpdCBwYXJ0CisgICAgICAgICAgICBqaXQuc3RvcmVDZWxsKEFz
c2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0
YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7CiAgICAg
fQogCiAgICAgLy8gRG9uJ3QgbmVlZCB0byBzZXQgdGhlIHRvcGxldmVsIGNvZGUgb3JpZ2luIGlm
IHdlIG9ubHkgZGlkIGlubGluZSB0YWlsIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDM2MGUxODE4M2VjYmExZTBjYzA1ZDc2
YzcyY2RmMTIxOWVjY2IxNmQuLjUyNGNhYTgzNzIyOTdhNjI0ZWQ3ZjI1ZTEwNzlkNTc1NjIxY2E3
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwCkBAIC0yMzgzLDcgKzIzODMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjaGVja0FyZ3Vt
ZW50VHlwZXMoKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBG
bHVzaGVkQ2VsbDogewotICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1
ZVNvdXJjZSwgbm9kZSwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBK
SVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpDZWxsVGFnKSkpOworICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhCYWRUeXBlLCB2YWx1
ZVNvdXJjZSwgbm9kZSwgbV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0YWdGb3Io
dmlydHVhbFJlZ2lzdGVyKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgZGVmYXVsdDoKQEAgLTk3NTAsMTMgKzk3NTAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlTmV3QXJyYXlXaXRoU3ByZWFkKE5vZGUqIG5vZGUpCiAgICAgICAgIGlmIChiaXRWZWN0
b3ItPmdldChpKSkgewogICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgaW1tdXRhYmxl
QnV0dGVyZmx5KHRoaXMsIHVzZSk7CiAgICAgICAgICAgICBHUFJSZWcgaW1tdXRhYmxlQnV0dGVy
Zmx5R1BSID0gaW1tdXRhYmxlQnV0dGVyZmx5LmdwcigpOwotI2lmIFVTRShKU1ZBTFVFNjQpCi0g
ICAgICAgICAgICBtX2ppdC5zdG9yZTY0KGltbXV0YWJsZUJ1dHRlcmZseUdQUiwgJmJ1ZmZlcltp
XSk7Ci0jZWxzZQotICAgICAgICAgICAgY2hhciogcG9pbnRlciA9IHN0YXRpY19jYXN0PGNoYXIq
PihzdGF0aWNfY2FzdDx2b2lkKj4oJmJ1ZmZlcltpXSkpOwotICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMihpbW11dGFibGVCdXR0ZXJmbHlHUFIsIHBvaW50ZXIgKyBQYXlsb2FkT2Zmc2V0KTsKLSAg
ICAgICAgICAgIG1faml0LnN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBw
b2ludGVyICsgVGFnT2Zmc2V0KTsKLSNlbmRpZgorICAgICAgICAgICAgbV9qaXQuc3RvcmVDZWxs
KGltbXV0YWJsZUJ1dHRlcmZseUdQUiwgJmJ1ZmZlcltpXSk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBpbnB1dCh0aGlzLCB1c2UpOwogICAgICAgICAgICAg
SlNWYWx1ZVJlZ3MgaW5wdXRSZWdzID0gaW5wdXQuanNWYWx1ZVJlZ3MoKTsKQEAgLTEwMTE5LDcg
KzEwMTEzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5SW5kZXhPZihOb2Rl
KiBub2RlKQogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9q
aXQuYnJhbmNoNjQoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQpLCBzZWFy
Y2hFbGVtZW50R1BSKTsKICNlbHNlCi0gICAgICAgICAgICBhdXRvIHNraXAgPSBtX2ppdC5icmFu
Y2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0
b3JhZ2VHUFIsIGluZGV4R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgVGFnT2Zmc2V0
KSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgICAgIGF1dG8gc2tp
cCA9IG1faml0LmJyYW5jaElmTm90Q2VsbChNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3Jh
Z2VHUFIsIGluZGV4R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgVGFnT2Zmc2V0KSk7
CiAgICAgICAgICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9y
YWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFBheWxvYWRPZmZz
ZXQpLCB0ZW1wR1BSKTsKICAgICAgICAgICAgIGF1dG8gZm91bmQgPSBtX2ppdC5icmFuY2gzMihD
Q2FsbEhlbHBlcnM6OkVxdWFsLCB0ZW1wR1BSLCBzZWFyY2hFbGVtZW50R1BSKTsKICAgICAgICAg
ICAgIHNraXAubGluaygmbV9qaXQpOwpAQCAtMTEzOTAsMTggKzExMzg0LDggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1N0cmluZ09iamVjdChOb2RlKiBub2RlKQogICAgICAgICBy
ZXN1bHRHUFIsIFRydXN0ZWRJbW1QdHIobm9kZS0+c3RydWN0dXJlKCkpLCBidXR0ZXJmbHksIHNj
cmF0Y2gxR1BSLCBzY3JhdGNoMkdQUiwKICAgICAgICAgc2xvd1BhdGgpOwogICAgIAotI2lmIFVT
RShKU1ZBTFVFNjQpCi0gICAgbV9qaXQuc3RvcmU2NCgKLSAgICAgICAgb3BlcmFuZEdQUiwgSklU
Q29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFs
dWVPZmZzZXQoKSkpOwotI2Vsc2UKLSAgICBtX2ppdC5zdG9yZTMyKAotICAgICAgICBUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksCi0gICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJl
c3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkgKyBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMudGFnKSkpOwotICAgIG1faml0LnN0b3JlMzIoCi0g
ICAgICAgIG9wZXJhbmRHUFIsCi0gICAgICAgIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQ
UiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VU
T0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSNlbmRpZgotICAgIAorICAgIG1faml0
LnN0b3JlQ2VsbChvcGVyYW5kR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpT
V3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSk7CisKICAgICBtX2ppdC5tdXRh
dG9yRmVuY2Uodm0oKSk7CiAgICAgCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhD
YWxsKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKaW5kZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5ZTU2YmE2MzI3ZjZj
YS4uODFmMzk3YWM2NTAzZjNjMTUxOTI2NDIwNThhOGI0OTA2YzhiMzlmMSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBA
IC0xMTAzLDEwICsxMTAzLDcgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpmaWxsU3BlY3VsYXRl
Q2VsbChFZGdlIGVkZ2UpCiAgICAgICAgICAgICAgICAgQmFkVHlwZSwKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlU291cmNlKEpJVENvbXBpbGVyOjphZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rlcikp
LAogICAgICAgICAgICAgICAgIGVkZ2UsCi0gICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIo
Ci0gICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwKLSAgICAgICAg
ICAgICAgICAgICAgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLAotICAgICAg
ICAgICAgICAgICAgICBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAg
ICAgICAgICBtX2ppdC5icmFuY2hJZk5vdENlbGwoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFs
UmVnaXN0ZXIpKSk7CiAgICAgICAgIH0KICAgICAgICAgR1BSUmVnIGdwciA9IGFsbG9jYXRlKCk7
CiAgICAgICAgIG1faml0LmxvYWQzMihKSVRDb21waWxlcjo6cGF5bG9hZEZvcih2aXJ0dWFsUmVn
aXN0ZXIpLCBncHIpOwpAQCAtMTI3MSw3ICsxMjY4LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVBlZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkoRWRnZSBvYmplY3RDaGlsZCwgRWRn
ZQogCiAgICAgREZHX1RZUEVfQ0hFQ0soSlNWYWx1ZVNvdXJjZTo6dW5ib3hlZENlbGwob3AxR1BS
KSwgb2JqZWN0Q2hpbGQsIFNwZWNPYmplY3QsIG1faml0LmJyYW5jaElmTm90T2JqZWN0KG9wMUdQ
UikpOwogCi0gICAgYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDIudGFnR1BS
KCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgbm90VGFrZW4pOworICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwob3AyLnRhZ0dQ
UigpKTsKKyAgICBhZGRCcmFuY2gobm90Q2VsbCwgbm90VGFrZW4pOwogICAgIAogICAgIGlmICh0
YWtlbiA9PSBuZXh0QmxvY2soKSkgewogICAgICAgICBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
Tm90RXF1YWwsIG9wMUdQUiwgb3AyR1BSLCBub3RUYWtlbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKaW5kZXggMDI0ZGRmMGFmNjc3MmI4NWNmNDY0
OWU5YmFiMjRmYzQ4NjQwZTU5Ni4uNmVjYTRkMjA1ZWViZjkyNDY3YWJkNDI1MzViY2U3ZmYyZTAz
MmQyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cApAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0pT
RG91YmxlKEdQUlJlZyBncHIpCiAKIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpqaXRBc3NlcnRJc0Nl
bGwoR1BSUmVnIGdwcikKIHsKLSAgICBKdW1wIGNoZWNrQ2VsbCA9IGJyYW5jaDMyKEVxdWFsLCBn
cHIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgSnVtcCBjaGVja0NlbGwg
PSBicmFuY2hJZkNlbGwoZ3ByKTsKICAgICBhYm9ydFdpdGhSZWFzb24oQUhJc05vdENlbGwpOwog
ICAgIGNoZWNrQ2VsbC5saW5rKHRoaXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmgKaW5kZXggMjdkZDU5NzkwYjcxZjk4YTIxN2IxMjU4Nzc2NzcxNjVh
YzY4ZWUwYy4uZTczOGRmOTBmZDdiNmRkN2JkNDFjMGI2N2U1NmE3Y2EyNThkZjgwYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCkBAIC0xMzksMTcgKzEz
OSwyOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotICAgIHZvaWQgc3RvcmVDZWxsKFQgY2VsbCwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CisgICAgdm9pZCBzdG9yZUNlbGwoVCBjZWxsLCBV
IGFkZHJlc3MpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoY2Vs
bCwgYWRkcmVzcyk7CiAjZWxzZQotICAgICAgICBzdG9yZTMyKGNlbGwsIGFkZHJlc3Mud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OkNlbGxUYWcpLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisgICAgICAgIHN0
YXRpY19hc3NlcnQoIVBheWxvYWRPZmZzZXQgJiYgVGFnT2Zmc2V0ID09IDQsICJBc3N1bWVzIGxp
dHRsZS1lbmRpYW4gc3lzdGVtIik7CisgICAgICAgIHN0b3JlUGFpcjMyKGNlbGwsIFRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcyk7CiAjZW5kaWYKICAgICB9Ci0gICAgCisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgorICAgIHZvaWQgc3RvcmVDZWxsKEpTVmFsdWVSZWdz
IHJlZ3MsIFUgYWRkcmVzcykKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgc3Rv
cmU2NChyZWdzLmdwcigpLCBhZGRyZXNzKTsKKyNlbHNlCisgICAgICAgIHN0YXRpY19hc3NlcnQo
IVBheWxvYWRPZmZzZXQgJiYgVGFnT2Zmc2V0ID09IDQsICJBc3N1bWVzIGxpdHRsZS1lbmRpYW4g
c3lzdGVtIik7CisgICAgICAgIG1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZyksIHJlZ3MudGFnR1BSKCkpOworICAgICAgICBzdG9yZVBhaXIzMihyZWdz
LnBheWxvYWRHUFIoKSwgcmVncy50YWdHUFIoKSwgYWRkcmVzcyk7CisjZW5kaWYKKyAgICB9CisK
ICAgICB2b2lkIGxvYWRDZWxsKEFkZHJlc3MgYWRkcmVzcywgR1BSUmVnIGdwcikKICAgICB7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKQEAgLTE1OCw3ICsxNzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGxv
YWQzMihhZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCksIGdwcik7CiAjZW5kaWYKICAg
ICB9Ci0gICAgCisKICAgICB2b2lkIHN0b3JlVmFsdWUoSlNWYWx1ZVJlZ3MgcmVncywgQWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMjg3LDggKzI5OSw3IEBA
IHB1YmxpYzoKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW02
NChKU1ZhbHVlOjplbmNvZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxzZQotICAgICAgICBzdG9y
ZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZz
ZXQpKTsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5bG9hZCgpKSwgYWRk
cmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoVHJ1
c3RlZEltbTMyKHZhbHVlLnBheWxvYWQoKSksIFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFk
ZHJlc3MpOwogI2VuZGlmCiAgICAgfQogCkBAIC0yOTcsOCArMzA4LDcgQEAgcHVibGljOgogI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVu
Y29kZSh2YWx1ZSkpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZElt
bTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAg
ICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNzLndpdGhPZmZz
ZXQoUGF5bG9hZE9mZnNldCkpOworICAgICAgICBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIodmFs
dWUucGF5bG9hZCgpKSwgVHJ1c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcyk7CiAjZW5k
aWYKICAgICB9CiAKQEAgLTY2MSwxNSArNjcxLDE2IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0K
IAotICAgIEp1bXAgYnJhbmNoSWZOb3RDZWxsKEdQUlJlZyByZWcsIFRhZ1JlZ2lzdGVyc01vZGUg
bW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBK
dW1wIGJyYW5jaElmTm90Q2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0g
SGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYg
KG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0
NjQoTm9uWmVybywgcmVnLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKLSAgICAgICAg
cmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWcsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpO
b3RDZWxsTWFzaykpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCBt
YXliZUNlbGwsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4g
YnJhbmNoVGVzdDY0KE5vblplcm8sIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5v
dENlbGxNYXNrKSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Ci0gICAgICAg
IHJldHVybiBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIHJlZywgVHJ1c3RlZElt
bTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpOb3RFcXVhbCwgbWF5YmVDZWxsLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRh
ZykpOwogI2VuZGlmCiAgICAgfQogCkBAIC02ODEsMTggKzY5MiwyMCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBicmFuY2hJZk5vdENlbGwocmVncy50YWdHUFIoKSwgbW9kZSk7CiAjZW5kaWYK
ICAgICB9Ci0gICAgCi0gICAgSnVtcCBicmFuY2hJZkNlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0
ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKKworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CisgICAgSnVtcCBicmFuY2hJZkNlbGwoVCBtYXliZUNlbGwsIFRhZ1JlZ2lzdGVyc01vZGUg
bW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAg
ICAgIGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAgICAgICByZXR1cm4gYnJh
bmNoVGVzdDY0KFplcm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7Ci0gICAg
ICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgcmVnLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6
Tm90Q2VsbE1hc2spKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgbWF5
YmVDZWxsLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJy
YW5jaFRlc3Q2NChaZXJvLCBtYXliZUNlbGwsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxs
TWFzaykpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwotICAgICAgICByZXR1
cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCByZWcsIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
RXF1YWwsIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKICNlbmRp
ZgogICAgIH0KKwogICAgIEp1bXAgYnJhbmNoSWZDZWxsKEpTVmFsdWVSZWdzIHJlZ3MsIFRhZ1Jl
Z2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZB
TFVFNjQpCkBAIC0xMjE2LDExICsxMjI5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHZp
cnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlR1BS
LCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFnT2Zmc2V0
KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoVmlydHVhbFJlZ2lzdGVyIHZp
cnR1YWxSZWdpc3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNW
YWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZz
ZXQpOwogICAgIH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihPcGVyYW5kIG9wZXJhbmQp
CiAgICAgewogICAgICAgICBBU1NFUlQoIW9wZXJhbmQuaXNUbXAoKSk7CkBAIC0xMjMyLDExICsx
MjQ3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlk
KCkpOwogICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlR1BSLCB2aXJ0dWFsUmVnaXN0ZXIub2Zm
c2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQorCiAgICAg
c3RhdGljIEFkZHJlc3MgcGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVy
KQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAg
ICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJl
Z2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpOwogICAg
IH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoT3BlcmFuZCBvcGVyYW5kKQogICAg
IHsKICAgICAgICAgQVNTRVJUKCFvcGVyYW5kLmlzVG1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKaW5kZXggMmZlZjUz
ZGE2MGEyZTc1YTQ3YzY0ZjhkMzA0MGM0NjIyMmJiODhlYS4uMGU4N2UxNjk1MzFhYzk1MWJmYWYw
ZjlkZWQxYjZmMmZhNjYzZGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwCkBAIC00NSw5ICs0NSw3IEBAIERhdGFGb3Jt
YXQgQ2FsbEZyYW1lU2h1ZmZsZXI6OmVtaXRTdG9yZShDYWNoZWRSZWNvdmVyeSYgbG9jYXRpb24s
IE1hY3JvQXNzZW1ibGVyCiAgICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24ucmVjb3Zlcnko
KS5ncHIoKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKICAgICAgICAgcmV0
dXJuIERhdGFGb3JtYXRJbnQzMjsKICAgICBjYXNlIFVuYm94ZWRDZWxsSW5HUFI6Ci0gICAgICAg
IG1faml0LnN0b3JlMzIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwKLSAgICAgICAgICAgIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKLSAgICAg
ICAgbV9qaXQuc3RvcmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBhZGRyZXNzLndpdGhP
ZmZzZXQoUGF5bG9hZE9mZnNldCkpOworICAgICAgICBtX2ppdC5zdG9yZUNlbGwobG9jYXRpb24u
cmVjb3ZlcnkoKS5ncHIoKSwgYWRkcmVzcyk7CiAgICAgICAgIHJldHVybiBEYXRhRm9ybWF0Q2Vs
bDsKICAgICBjYXNlIENvbnN0YW50OgogICAgICAgICBtX2ppdC5zdG9yZVRydXN0ZWRWYWx1ZShs
b2NhdGlvbi5yZWNvdmVyeSgpLmNvbnN0YW50KCksIGFkZHJlc3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCmluZGV4IDRiNDI5YTI2N2NjZWUyYzY0NzNlZGE3
MWM5ZmM5NDU0YzU4MjMwMGMuLjJhZmFlYmJiZjNhZjIxMWNmZWQ1OTE1MWY5OWVkMjIxNjljMDQz
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmgKQEAgLTU5
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVh
bFJlZ2lzdGVyIDwgVmlydHVhbFJlZ2lzdGVyKEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4KSk7
CiAgICAgICAgIGxvYWRQdHIocGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXIpLCBwYXlsb2FkKTsK
LSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE5vdEVxdWFsLCB0YWdGb3IodmlydHVhbFJlZ2lzdGVy
KSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5j
aElmTm90Q2VsbCh0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSk7CiAgICAgfQogCiAgICAgaW5saW5l
IEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEludDMyKFZpcnR1
YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIsIFJlZ2lzdGVySUQgZHN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456931</attachid>
            <date>2022-04-07 08:54:52 -0700</date>
            <delta_ts>2022-04-19 08:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220407125450.patch</filename>
            <type>text/plain</type>
            <size>27351</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YmUzZGM5YmJmMjNjNGEzYWFjYzc1Y2Y5YTNlYWE3MzlmNmQ0MzNmLi41MzVhMmUyNjAwODE2Mzcw
OWVhODE3NWQzYmI0NDAzMzg3MzQzMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMy0xNyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTA0LTA3ICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtK
U0NdWzMyYml0XSBVc2UgY29uc3RleHByIHRhZ3MgaW5zdGVhZCBvZiBlbnVtcwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJs
ZXIuaAppbmRleCAyYWY5YmI5MDVhZGUzMTkwZTQ2ZTU2ZGE2MDMyNzI0MDBhMDhhNTRhLi5mNmIz
MzQyM2QwYjk5ZjA5YjM3Y2Q0ZTZkYWQzMWQyNzFiOGY3NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApA
QCAtOTIzLDYgKzkyMyw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBOZWFyQ2FsbE1vZGU6OlJl
Z3VsYXI6CiAgICAgICAgICAgICByZXR1cm4gQ29kZUxvY2F0aW9uTGFiZWw8ZGVzdFRhZz4odGFn
Q29kZVB0cjxkZXN0VGFnPihBc3NlbWJsZXJUeXBlOjpwcmVwYXJlRm9yQXRvbWljUmVsaW5rQ2Fs
bENvbmN1cnJlbnRseShuZWFyQ2FsbC5kYXRhTG9jYXRpb24oKSwgZGVzdGluYXRpb24udW50YWdn
ZWRFeGVjdXRhYmxlQWRkcmVzcygpKSkpOwogICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0obmVhckNhbGwp
OwogICAgICAgICByZXR1cm4gZGVzdGluYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCmluZGV4IDYzMzc3M2FlZWM5
ZDFjOTY3ZmE5OGE1YWNiMmExMjQ1MmViMjUwN2MuLjZkM2FiOTJmOTI0ZTQ0ZmMwNmY5YTlmZGY0
NzAyNzc4ZDkxOGQzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCkBAIC0xNTIwLDYgKzE1MjAsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGNhc2UgRXh0ZW5kOjpOb25lOgogICAgICAgICAgICAgcmV0dXJuIEFzc2VtYmxl
cjo6VVhUWDsKICAgICAgICAgfQorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIH0KIAogICAgIHZvaWQgbG9hZDY0KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQpAQCAtMTk0OSw2ICsxOTUwLDE3IEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmU2NChkYXRh
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3Rl
ZEltbVB0ciBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIGlmICghaW1tLm1f
dmFsdWUpIHsKKyAgICAgICAgICAgIHN0b3JlNjQoQVJNNjRSZWdpc3RlcnM6OnpyLCBhZGRyZXNz
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1vdmVUb0NhY2hl
ZFJlZyhpbW0sIGRhdGFNZW1vcnlUZW1wUmVnaXN0ZXIoKSk7CisgICAgICAgIHN0b3JlNjQoZGF0
YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZTY0KFRydXN0
ZWRJbW02NCBpbW0sIEJhc2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgaWYgKCFpbW0u
bV92YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNdjcuaAppbmRleCBmZTdmMmQ1YzRmM2ZiNDFjMWQzNTVlZTk0NGRkZDVh
NWFlMTQwMDhiLi45MGUyODI1ZDQwNmQxZjgzYWY5ZjZiZGZjNDM5ODE1ZjQ0OTM0Y2Y3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaApAQCAtOTQzLDEyICs5NDMsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAg
ICBjYWNoZWREYXRhVGVtcFJlZ2lzdGVyKCkuaW52YWxpZGF0ZSgpOwogICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmxkcmQoZGVzdDEsIGRlc3QyLCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MudS5v
ZmZzZXQsIC8qIGluZGV4OiAqLyB0cnVlLCAvKiB3YmFjazogKi8gZmFsc2UpOwogICAgICAgICAg
ICAgfSBlbHNlIGlmIChhZGRyZXNzLmJhc2UgPT0gZGVzdDEpIHsKLSAgICAgICAgICAgICAgICBB
cm1BZGRyZXNzIGhpZ2hBZGRyZXNzKGFkZHJlc3MuYmFzZSwgYWRkcmVzcy51Lm9mZnNldCArIDQp
OworICAgICAgICAgICAgICAgIEFybUFkZHJlc3MgaGlnaEFkZHJlc3MoYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzLnUub2Zmc2V0ICsgVGFnT2Zmc2V0KTsKICAgICAgICAgICAgICAgICBsb2FkMzIoaGln
aEFkZHJlc3MsIGRlc3QyKTsKICAgICAgICAgICAgICAgICBsb2FkMzIoYWRkcmVzcywgZGVzdDEp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBsb2FkMzIoYWRkcmVzcywg
ZGVzdDEpOwotICAgICAgICAgICAgICAgIEFybUFkZHJlc3MgaGlnaEFkZHJlc3MoYWRkcmVzcy5i
YXNlLCBhZGRyZXNzLnUub2Zmc2V0ICsgNCk7CisgICAgICAgICAgICAgICAgQXJtQWRkcmVzcyBo
aWdoQWRkcmVzcyhhZGRyZXNzLmJhc2UsIGFkZHJlc3MudS5vZmZzZXQgKyBUYWdPZmZzZXQpOwog
ICAgICAgICAgICAgICAgIGxvYWQzMihoaWdoQWRkcmVzcywgZGVzdDIpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CkBAIC0xMDU0LDEyICsxMDU0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgc3Rv
cmU4KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsKICAgICB9CiAgICAgCi0gICAgdm9p
ZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQgKmFkZHJlc3MpCisgICAgdm9pZCBz
dG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewogICAgICAg
ICBzdG9yZTgoc3JjLCBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKSk7
CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmU4KFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZv
aWQgKmFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9p
ZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW0zMiBpbW04KHN0YXRpY19jYXN0
PGludDhfdD4oaW1tLm1fdmFsdWUpKTsKICAgICAgICAgbW92ZShpbW04LCBkYXRhVGVtcFJlZ2lz
dGVyKTsKQEAgLTEwOTksNiArMTA5OSwzNCBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlMTYoZGF0
YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihS
ZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7
CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJ
REFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOworICAgICAgICBz
dG9yZVBhaXIzMihzcmMxLCBzY3JhdGNoLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0
b3JlUGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIgaW1tMzIsIEFkZHJl
c3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDEgPSBnZXRDYWNo
ZWRBZGRyZXNzVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1t
UHRyLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSBnZXRDYWNoZWRE
YXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tMzIsIHNj
cmF0Y2gyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNz
KTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBUcnVz
dGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJ
RCBzY3JhdGNoMSA9IGdldENhY2hlZEFkZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KTsKKyAgICAgICAgbW92ZShpbW0xLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQgc2Ny
YXRjaDIgPSBzY3JhdGNoMTsKKyAgICAgICAgaWYgKGltbTEubV92YWx1ZSAhPSBpbW0yLm1fdmFs
dWUpIHsKKyAgICAgICAgICAgIHNjcmF0Y2gyID0gZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklE
QW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAgbW92ZShpbW0yLCBzY3JhdGNoMik7CisgICAg
ICAgIH0KKyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsK
KyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJ
RCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBzdG9yZVBhaXIzMihzcmMx
LCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkpOwpAQCAtMTExOCw3ICsxMTQ2LDcgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3RyZChzcmMxLCBzcmMyLCBhZGRyZXNzLmJh
c2UsIGFkZHJlc3Mub2Zmc2V0LCAvKiBpbmRleDogKi8gdHJ1ZSwgLyogd2JhY2s6ICovIGZhbHNl
KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBzdG9yZTMyKHNyYzEsIGFkZHJlc3MpOwot
ICAgICAgICAgICAgc3RvcmUzMihzcmMyLCBhZGRyZXNzLndpdGhPZmZzZXQoNCkpOworICAgICAg
ICAgICAgc3RvcmUzMihzcmMyLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CiAgICAg
ICAgIH0KICAgICB9CiAKQEAgLTExMzYsNiArMTE2NCwyMiBAQCBwdWJsaWM6CiAgICAgICAgIHN0
b3JlUGFpcjMyKHNyYzEsIHNyYzIsIEFkZHJlc3Moc2NyYXRjaCwgYWRkcmVzcy5vZmZzZXQpKTsK
ICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVk
SW1tMzIgaW1tMiwgQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICAvLyBXZSBkb24n
dCBoYXZlIGVub3VnaCB0ZW1wIHJlZ2lzdGVycyB0byBtb3ZlIGJvdGggaW1tIGFuZCBjYWxjdWxh
dGUgdGhlIGFkZHJlc3MKKyAgICAgICAgc3RvcmUzMihpbW0xLCBhZGRyZXNzKTsKKyAgICAgICAg
c3RvcmUzMihpbW0yLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CisgICAgfQorCisg
ICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNv
bnN0IHZvaWQqIGFkZHJlc3MpCisgICAgeworICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3Mg
PSBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsKKyAgICAgICAgQVNT
RVJUKGFybUFkZHJlc3MudHlwZSA9PSBBcm1BZGRyZXNzOjpIYXNPZmZzZXQpOworICAgICAgICBS
ZWdpc3RlcklEIHNjcmF0Y2ggPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlk
YXRlKCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIo
c3JjMSwgc2NyYXRjaCwgQWRkcmVzcyhhcm1BZGRyZXNzLmJhc2UsIGFybUFkZHJlc3MudS5vZmZz
ZXQpKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVn
aXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgQXJtQWRk
cmVzcyBhcm1BZGRyZXNzID0gc2V0dXBBcm1BZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNz
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlck1JUFMuaAppbmRleCA5NGViNjJmNGExMjFhNjE0NTMyMzY5MTNhYzlkM2NiMzk0YWRiMGQy
Li5iM2JjM2VkZWI1OWE2ZThmNzc4NjJiNTgzNDM5YWExYTRmNjM1NDgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAg
LTEzMjgsMTEgKzEzMjgsMTEgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGRlc3Qx
ICE9IGRlc3QyKTsgLy8gSWYgaXQgaXMgdGhlIHNhbWUsIGxkcCBiZWNvbWVzIGlsbGVnYWwgaW5z
dHJ1Y3Rpb24uCiAgICAgICAgIGlmIChhZGRyZXNzLmJhc2UgPT0gZGVzdDEpIHsKLSAgICAgICAg
ICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQoNCksIGRlc3QyKTsKKyAgICAgICAgICAgIGxv
YWQzMihhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSwgZGVzdDIpOwogICAgICAgICAgICAg
bG9hZDMyKGFkZHJlc3MsIGRlc3QxKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGxv
YWQzMihhZGRyZXNzLCBkZXN0MSk7Ci0gICAgICAgICAgICBsb2FkMzIoYWRkcmVzcy53aXRoT2Zm
c2V0KDQpLCBkZXN0Mik7CisgICAgICAgICAgICBsb2FkMzIoYWRkcmVzcy53aXRoT2Zmc2V0KFRh
Z09mZnNldCksIGRlc3QyKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTM0OCwxMSArMTM0OCwx
MSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChhZGRyZXNzLmJhc2UgIT0g
ZGVzdDIpOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoYWRkcmVzcy5pbmRleCAhPSBkZXN0
Mik7CiAKLSAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQoNCksIGRlc3QyKTsK
KyAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSwgZGVzdDIp
OwogICAgICAgICAgICAgbG9hZDMyKGFkZHJlc3MsIGRlc3QxKTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGxvYWQzMihhZGRyZXNzLCBkZXN0MSk7Ci0gICAgICAgICAgICBsb2FkMzIo
YWRkcmVzcy53aXRoT2Zmc2V0KDQpLCBkZXN0Mik7CisgICAgICAgICAgICBsb2FkMzIoYWRkcmVz
cy53aXRoT2Zmc2V0KFRhZ09mZnNldCksIGRlc3QyKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MTY0OSw2ICsxNjQ5LDMwIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQg
c3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBBZGRyZXNzIGFk
ZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAg
ICAgIHN0b3JlUGFpcjMyKHNyYzEsIGFkZHJUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOworICAgIH0K
KworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbVB0ciBpbW1QdHIsIFRydXN0ZWRJbW0z
MiBpbW0zMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShpbW1QdHIsIGFk
ZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbTMyLCBkYXRhVGVtcFJlZ2lzdGVyKTsK
KyAgICAgICAgc3RvcmVQYWlyMzIoYWRkclRlbXBSZWdpc3RlciwgZGF0YVRlbXBSZWdpc3Rlciwg
YWRkcmVzcyk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIgaW1t
MSwgVHJ1c3RlZEltbTMyIGltbTIsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1v
dmUoaW1tMSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9
IGFkZHJUZW1wUmVnaXN0ZXI7CisgICAgICAgIGlmIChpbW0xLm1fdmFsdWUgIT0gaW1tMi5tX3Zh
bHVlKSB7CisgICAgICAgICAgICBzY3JhdGNoID0gZGF0YVRlbXBSZWdpc3RlcjsKKyAgICAgICAg
ICAgIG1vdmUoaW1tMiwgc2NyYXRjaCk7CisgICAgICAgIH0KKyAgICAgICAgc3RvcmVQYWlyMzIo
YWRkclRlbXBSZWdpc3Rlciwgc2NyYXRjaCwgYWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBz
dG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBk
ZXN0KQogICAgIHsKICAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc3JjMiwgZGVzdCwgVHJ1c3Rl
ZEltbTMyKDApKTsKQEAgLTE2NjIsMTMgKzE2ODYsMjYgQEAgcHVibGljOgogICAgIHZvaWQgc3Rv
cmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIEFkZHJlc3MgYWRkcmVz
cykKICAgICB7CiAgICAgICAgIHN0b3JlMzIoc3JjMSwgYWRkcmVzcyk7Ci0gICAgICAgIHN0b3Jl
MzIoc3JjMiwgYWRkcmVzcy53aXRoT2Zmc2V0KDQpKTsKKyAgICAgICAgc3RvcmUzMihzcmMyLCBh
ZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7CiAgICAgfQogCiAgICAgdm9pZCBzdG9yZVBh
aXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgQmFzZUluZGV4IGFkZHJlc3Mp
CiAgICAgewogICAgICAgICBzdG9yZTMyKHNyYzEsIGFkZHJlc3MpOwotICAgICAgICBzdG9yZTMy
KHNyYzIsIGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7CisgICAgICAgIHN0b3JlMzIoc3JjMiwgYWRk
cmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWly
MzIoVHJ1c3RlZEltbTMyIGltbTEsIFRydXN0ZWRJbW0zMiBpbW0yLCBCYXNlSW5kZXggYWRkcmVz
cykKKyAgICB7CisgICAgICAgIHN0b3JlMzIoaW1tMSwgYWRkcmVzcyk7CisgICAgICAgIHN0b3Jl
MzIoaW1tMiwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworICAgIH0KKworICAgIHZv
aWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVkSW1tMzIgaW1tLCBjb25zdCB2
b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShpbW0sIGRhdGFUZW1wUmVnaXN0ZXIp
OworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJl
Z2lzdGVyKTsKICAgICB9CiAKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwg
UmVnaXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBhZGRyZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IGIy
ZTkxMWFhMTM2NjNhMjUwOTg0MGEwNTY4ODQxMmYyOTI4ZWY0NjMuLmE0ZmQ0YzJkNGEzZGY4NTZh
NjU5ZmRmY2ViY2NkN2U2NmZjYTJjZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTEwMjEsMTIgKzEwMjEs
MTggQEAgcHVibGljOgogICAgICAgICBzdG9yZTY0KHNjcmF0Y2hSZWdpc3RlcigpLCBhZGRyZXNz
KTsKICAgICB9CiAKKyAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbVB0ciBpbW0sIEFkZHJlc3Mg
YWRkcmVzcykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Cisg
ICAgICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3MpOworICAgIH0KKwogICAg
IHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7
CiAgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdnFfcm0oc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJh
c2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgIH0KLSAgICAKKwogICAgIERh
dGFMYWJlbDMyIHN0b3JlNjRXaXRoQWRkcmVzc09mZnNldFBhdGNoKFJlZ2lzdGVySUQgc3JjLCBB
ZGRyZXNzIGFkZHJlc3MpCiAgICAgewogICAgICAgICBwYWRCZWZvcmVQYXRjaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKaW5kZXggMjQzMjZhNjgwYjI4ZTk1NmQy
NjU2ZDQyMjMxNWJhZjM2MDc0MzA2NC4uZmE1OTVkYmI0Zjc5MTRjYjJlODcyMTBmODcwNTNlMjM4
MjMwNmI0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwCkBAIC02
NDcsOCArNjQ3LDcgQEAgdm9pZCBPU1JFeGl0Ojpjb21waWxlRXhpdChDQ2FsbEhlbHBlcnMmIGpp
dCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBjb25zdAogICAgICAgICAgICAgaml0Lmxv
YWQzMigKICAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IocmVjb3Zl
cnkudmlydHVhbFJlZ2lzdGVyKCkpLAogICAgICAgICAgICAgICAgIEpTUkluZm86OmpzUmVnVDEw
LnBheWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBqaXQubW92ZShBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgSlNSSW5mbzo6anNSZWdUMTAudGFnR1BSKCkp
OwotICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNSSW5mbzo6anNSZWdUMTAsIHNjcmF0Y2gg
KyBpbmRleCk7CisgICAgICAgICAgICBqaXQuc3RvcmVDZWxsKEpTUkluZm86OmpzUmVnVDEwLCBz
Y3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
CmluZGV4IDNkN2NiOGMwMTE5YmNjODIxODhjODA3YzkzNWExZjU2NTU3NzMwNjMuLjVjMjNlMGEx
MGUxN2UwM2RjOTZiNTg2MTVjZGJkM2Y1OGQ0YjdiYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAgLTMyMiwx
NCArMzIyLDggQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKENDYWxsSGVscGVycyYgaml0
LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAgICAgaml0LnN0b3JlUHRyKGNhbGxlckZy
YW1lR1BSLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3JCeXRlT2Zmc2V0KGlubGluZUNhbGxG
cmFtZS0+Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAgICAgICB1aW50MzJfdCBsb2NhdGlvbkJp
dHMgPSBDYWxsU2l0ZUluZGV4KGJhc2VsaW5lQ29kZUJsb2NrLT5ieXRlY29kZUluZGV4Rm9yRXhp
dChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpKS5iaXRzKCk7CiAgICAgICAgIGppdC5zdG9y
ZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGxvY2F0aW9uQml0cyksIEFzc2VtYmx5
SGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zm
c2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7Ci0jaWYg
VVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNh
bGwpCi0gICAgICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02
NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50
KCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKLSNlbHNl
IC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0Ci0gICAgICAg
IGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZy
YW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKLSAgICAgICAgaWYg
KCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCi0gICAgICAgICAgICBqaXQuc3RvcmVQ
dHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVl
Q29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIo
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsK
LSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KSAvLyBlbmRpbmcgdGhlICNlbHNlIHBhcnQsIHNvIGRp
cmVjdGx5IGFib3ZlIGlzIHRoZSAzMi1iaXQgcGFydAorICAgICAgICAgICAgaml0LnN0b3JlQ2Vs
bChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVD
b25zdGFudCgpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxSZWdpc3Rlcihp
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwog
ICAgIH0KIAogICAgIC8vIERvbid0IG5lZWQgdG8gc2V0IHRoZSB0b3BsZXZlbCBjb2RlIG9yaWdp
biBpZiB3ZSBvbmx5IGRpZCBpbmxpbmUgdGFpbCBjYWxscwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmNmM4NzY0MDMzZjIxMTQwODM3
NGM5MGZlMjUxY2ZmNmZmNjA2YjQyLi5kMGIwYTFiZTMxZjI0OTgzMjYxYTJlMDllYmJjNDliODY0
NWI4NjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcApAQCAtMjQwOCw3ICsyNDA4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tB
cmd1bWVudFR5cGVzKCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgRmx1c2hlZENlbGw6IHsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
dmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVh
bCwgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwg
dmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaElmTm90Q2VsbChKSVRDb21waWxlcjo6dGFn
Rm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CkBAIC05Nzg3LDEzICs5Nzg3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZU5ld0FycmF5V2l0aFNwcmVhZChOb2RlKiBub2RlKQogICAgICAgICBpZiAoYml0
VmVjdG9yLT5nZXQoaSkpIHsKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGltbXV0
YWJsZUJ1dHRlcmZseSh0aGlzLCB1c2UpOwogICAgICAgICAgICAgR1BSUmVnIGltbXV0YWJsZUJ1
dHRlcmZseUdQUiA9IGltbXV0YWJsZUJ1dHRlcmZseS5ncHIoKTsKLSNpZiBVU0UoSlNWQUxVRTY0
KQotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZm
ZXJbaV0pOwotI2Vsc2UKLSAgICAgICAgICAgIGNoYXIqIHBvaW50ZXIgPSBzdGF0aWNfY2FzdDxj
aGFyKj4oc3RhdGljX2Nhc3Q8dm9pZCo+KCZidWZmZXJbaV0pKTsKLSAgICAgICAgICAgIG1faml0
LnN0b3JlMzIoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCBwb2ludGVyICsgUGF5bG9hZE9mZnNldCk7
Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgcG9pbnRlciArIFRhZ09mZnNldCk7Ci0jZW5kaWYKKyAgICAgICAgICAgIG1faml0LnN0b3Jl
Q2VsbChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZmZXJbaV0pOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaW5wdXQodGhpcywgdXNlKTsKICAgICAgICAg
ICAgIEpTVmFsdWVSZWdzIGlucHV0UmVncyA9IGlucHV0LmpzVmFsdWVSZWdzKCk7CkBAIC0xMDE1
Niw3ICsxMDE1MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcnJheUluZGV4T2Yo
Tm9kZSogbm9kZSkKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgYXV0byBmb3VuZCA9
IG1faml0LmJyYW5jaDY0KENDYWxsSGVscGVyczo6RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNl
SW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwg
c2VhcmNoRWxlbWVudEdQUik7CiAjZWxzZQotICAgICAgICAgICAgYXV0byBza2lwID0gbV9qaXQu
YnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRl
eChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFRhZ09m
ZnNldCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgICAgICBhdXRv
IHNraXAgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChz
dG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIFRhZ09mZnNl
dCkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgo
c3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBQYXlsb2Fk
T2Zmc2V0KSwgdGVtcEdQUik7CiAgICAgICAgICAgICBhdXRvIGZvdW5kID0gbV9qaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgdGVtcEdQUiwgc2VhcmNoRWxlbWVudEdQUik7CiAgICAg
ICAgICAgICBza2lwLmxpbmsoJm1faml0KTsKQEAgLTExNDI3LDE4ICsxMTQyMSw4IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdTdHJpbmdPYmplY3QoTm9kZSogbm9kZSkKICAgICAg
ICAgcmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKG5vZGUtPnN0cnVjdHVyZSgpKSwgYnV0dGVyZmx5
LCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsCiAgICAgICAgIHNsb3dQYXRoKTsKICAgICAKLSNp
ZiBVU0UoSlNWQUxVRTY0KQotICAgIG1faml0LnN0b3JlNjQoCi0gICAgICAgIG9wZXJhbmRHUFIs
IEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5h
bFZhbHVlT2Zmc2V0KCkpKTsKLSNlbHNlCi0gICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVz
cyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpICsgT0JK
RUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSAgICBtX2ppdC5zdG9yZTMy
KAotICAgICAgICBvcGVyYW5kR1BSLAotICAgICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1
bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpICsgT0JKRUNUX09G
RlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQpKSk7Ci0jZW5kaWYKLSAgICAKKyAgICBt
X2ppdC5zdG9yZUNlbGwob3BlcmFuZEdQUiwgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BS
LCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSkpOworCiAgICAgbV9qaXQu
bXV0YXRvckZlbmNlKHZtKCkpOwogICAgIAogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCmluZGV4IDYzYTdkZTkwZTU4NTE3ODM4OWMwMGUwMDRmMjY4NmE2ZmM1
ODBjZmUuLjllMGRiZjNiNDk2YzcxZmUwZTVjMmViMDdjOWM3NmJlYmEwMzA4ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cApAQCAtMTEwNiwxMCArMTEwNiw3IEBAIEdQUlJlZyBTcGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1
bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgICAgICAgICAgICAgIEJhZFR5cGUsCiAgICAgICAgICAg
ICAgICAgSlNWYWx1ZVNvdXJjZShKSVRDb21waWxlcjo6YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0
ZXIpKSwKICAgICAgICAgICAgICAgICBlZGdlLAotICAgICAgICAgICAgICAgIG1faml0LmJyYW5j
aDMyKAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsCi0gICAg
ICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSwKLSAg
ICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAg
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpJVENvbXBpbGVyOjp0YWdGb3Iodmly
dHVhbFJlZ2lzdGVyKSkpOwogICAgICAgICB9CiAgICAgICAgIEdQUlJlZyBncHIgPSBhbGxvY2F0
ZSgpOwogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29tcGlsZXI6OnBheWxvYWRGb3IodmlydHVh
bFJlZ2lzdGVyKSwgZ3ByKTsKQEAgLTEyNzQsNyArMTI3MSw4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFN0cmljdEVxdWFsaXR5KEVkZ2Ugb2JqZWN0Q2hpbGQs
IEVkZ2UKIAogICAgIERGR19UWVBFX0NIRUNLKEpTVmFsdWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9w
MUdQUiksIG9iamVjdENoaWxkLCBTcGVjT2JqZWN0LCBtX2ppdC5icmFuY2hJZk5vdE9iamVjdChv
cDFHUFIpKTsKIAotICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgb3AyLnRh
Z0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIG5vdFRha2VuKTsKKyAgICBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKG9wMi50
YWdHUFIoKSk7CisgICAgYWRkQnJhbmNoKG5vdENlbGwsIG5vdFRha2VuKTsKICAgICAKICAgICBp
ZiAodGFrZW4gPT0gbmV4dEJsb2NrKCkpIHsKICAgICAgICAgYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUiwgbm90VGFrZW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IGQxOTE1OWNhZmNkOTc1N2Jk
ZDNkNTlkMjhlYmU2ZWNhOTJjODcwYjYuLjAwODg1YTM3NzM5NGE5NWJhNzU5NzM4ZjEzODc4YjRk
ZjdkZjY0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0
SXNKU0RvdWJsZShHUFJSZWcgZ3ByKQogCiB2b2lkIEFzc2VtYmx5SGVscGVyczo6aml0QXNzZXJ0
SXNDZWxsKEdQUlJlZyBncHIpCiB7Ci0gICAgSnVtcCBjaGVja0NlbGwgPSBicmFuY2gzMihFcXVh
bCwgZ3ByLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgIEp1bXAgY2hlY2tD
ZWxsID0gYnJhbmNoSWZDZWxsKGdwcik7CiAgICAgYWJvcnRXaXRoUmVhc29uKEFISXNOb3RDZWxs
KTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDFiOTAyODk5MjA1ZjdjOTI5YjA1ZjI0YmZhNGQ5
MTQ3NzJhMWUzNTkuLmU0MDc3OTYwNDgxOGI4YWI4OWYyM2I2MDI5ZGM2ZmY0YzU4YjhlMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtMTM5LDE3
ICsxMzksMjkgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLSAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgorICAgIHZvaWQgc3RvcmVDZWxsKFQgY2Vs
bCwgVSBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0
KGNlbGwsIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihjZWxsLCBhZGRyZXNzLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOworICAgICAg
ICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAiQXNzdW1l
cyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBzdG9yZVBhaXIzMihjZWxsLCBUcnVz
dGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJlc3MpOwogI2VuZGlmCiAgICAgfQotICAg
IAorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICB2b2lkIHN0b3JlQ2VsbChKU1ZhbHVl
UmVncyByZWdzLCBVIGFkZHJlc3MpCisgICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAg
IHN0b3JlNjQocmVncy5ncHIoKSwgYWRkcmVzcyk7CisjZWxzZQorICAgICAgICBzdGF0aWNfYXNz
ZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0bGUtZW5k
aWFuIHN5c3RlbSIpOworICAgICAgICBtb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KEpTVmFsdWU6OkNlbGxUYWcpLCByZWdzLnRhZ0dQUigpKTsKKyAgICAgICAgc3RvcmVQYWlyMzIo
cmVncy5wYXlsb2FkR1BSKCksIHJlZ3MudGFnR1BSKCksIGFkZHJlc3MpOworI2VuZGlmCisgICAg
fQorCiAgICAgdm9pZCBsb2FkQ2VsbChBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBncHIpCiAgICAg
ewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0xNTgsNyArMTcwLDcgQEAgcHVibGljOgogICAgICAg
ICBsb2FkMzIoYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpLCBncHIpOwogI2VuZGlm
CiAgICAgfQotICAgIAorCiAgICAgdm9pZCBzdG9yZVZhbHVlKEpTVmFsdWVSZWdzIHJlZ3MsIEFk
ZHJlc3MgYWRkcmVzcykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTI4Nyw4ICsyOTks
NyBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgc3RvcmU2NChUcnVzdGVk
SW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAg
c3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFn
T2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKHZhbHVlLnBheWxvYWQoKSks
IGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIHN0b3JlUGFpcjMy
KFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkp
LCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KIApAQCAtMjk3LDggKzMwOCw3IEBAIHB1YmxpYzoK
ICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBzdG9yZTY0KFRydXN0ZWRJbW02NChKU1ZhbHVl
OjplbmNvZGUodmFsdWUpKSwgYWRkcmVzcyk7CiAjZWxzZQotICAgICAgICBzdG9yZTMyKFRydXN0
ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKLSAg
ICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5bG9hZCgpKSwgYWRkcmVzcy53aXRo
T2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMy
KHZhbHVlLnBheWxvYWQoKSksIFRydXN0ZWRJbW0zMih2YWx1ZS50YWcoKSksIGFkZHJlc3MpOwog
I2VuZGlmCiAgICAgfQogCkBAIC02MzcsMTUgKzY0NywxNiBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB9CiAKLSAgICBKdW1wIGJyYW5jaElmTm90Q2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNN
b2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cisg
ICAgSnVtcCBicmFuY2hJZk5vdENlbGwoVCBtYXliZUNlbGwsIFRhZ1JlZ2lzdGVyc01vZGUgbW9k
ZSA9IEhhdmVUYWdSZWdpc3RlcnMpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAg
IGlmIChtb2RlID09IEhhdmVUYWdSZWdpc3RlcnMpCi0gICAgICAgICAgICByZXR1cm4gYnJhbmNo
VGVzdDY0KE5vblplcm8sIHJlZywgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7Ci0gICAg
ICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnLCBUcnVzdGVkSW1tNjQoSlNWYWx1
ZTo6Tm90Q2VsbE1hc2spKTsKKyAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVy
bywgbWF5YmVDZWxsLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKKyAgICAgICAgcmV0
dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCBtYXliZUNlbGwsIFRydXN0ZWRJbW02NChKU1ZhbHVl
OjpOb3RDZWxsTWFzaykpOwogI2Vsc2UKICAgICAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwotICAg
ICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCByZWcsIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihNYWNy
b0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNl
bGxUYWcpKTsKICNlbmRpZgogICAgIH0KIApAQCAtNjU3LDE4ICs2NjgsMjAgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHJlZ3MudGFnR1BSKCksIG1vZGUpOwogI2Vu
ZGlmCiAgICAgfQotICAgIAotICAgIEp1bXAgYnJhbmNoSWZDZWxsKEdQUlJlZyByZWcsIFRhZ1Jl
Z2lzdGVyc01vZGUgbW9kZSA9IEhhdmVUYWdSZWdpc3RlcnMpCisKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZDZWxsKFQgbWF5YmVDZWxsLCBUYWdSZWdpc3RlcnNN
b2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgICAgICAgICAgcmV0dXJu
IGJyYW5jaFRlc3Q2NChaZXJvLCByZWcsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwot
ICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIHJlZywgVHJ1c3RlZEltbTY0KEpTVmFs
dWU6Ok5vdENlbGxNYXNrKSk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8s
IG1heWJlQ2VsbCwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAgIHJldHVy
biBicmFuY2hUZXN0NjQoWmVybywgbWF5YmVDZWxsLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90
Q2VsbE1hc2spKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKLSAgICAgICAg
cmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgcmVnLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6OkVxdWFsLCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CiAj
ZW5kaWYKICAgICB9CisKICAgICBKdW1wIGJyYW5jaElmQ2VsbChKU1ZhbHVlUmVncyByZWdzLCBU
YWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0Uo
SlNWQUxVRTY0KQpAQCAtMTE5MiwxMSArMTIwNSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VS
VCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFz
ZUdQUiwgdmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09m
ZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKFZpcnR1YWxSZWdpc3Rl
ciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVy
LmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgVGFn
T2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyB0YWdGb3IoT3BlcmFuZCBvcGVy
YW5kKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFvcGVyYW5kLmlzVG1wKCkpOwpAQCAtMTIwOCwx
MSArMTIyMywxMyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNW
YWxpZCgpKTsKICAgICAgICAgcmV0dXJuIEFkZHJlc3MoYmFzZUdQUiwgdmlydHVhbFJlZ2lzdGVy
Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFBheWxvYWRPZmZzZXQpOwogICAgIH0KKwog
ICAgIHN0YXRpYyBBZGRyZXNzIHBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdp
c3RlcikKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIuaXNWYWxpZCgpKTsK
ICAgICAgICAgcmV0dXJuIEFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHZpcnR1
YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KTsK
ICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBwYXlsb2FkRm9yKE9wZXJhbmQgb3BlcmFuZCkK
ICAgICB7CiAgICAgICAgIEFTU0VSVCghb3BlcmFuZC5pc1RtcCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwCmluZGV4IDJm
ZWY1M2RhNjBhMmU3NWE0N2M2NGY4ZDMwNDBjNDYyMjJiYjg4ZWEuLjBlODdlMTY5NTMxYWM5NTFi
ZmFmMGY5ZGVkMWI2ZjJmYTY2M2RiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcApAQCAtNDUsOSArNDUsNyBAQCBEYXRh
Rm9ybWF0IENhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUoQ2FjaGVkUmVjb3ZlcnkmIGxvY2F0
aW9uLCBNYWNyb0Fzc2VtYmxlcgogICAgICAgICBtX2ppdC5zdG9yZTMyKGxvY2F0aW9uLnJlY292
ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7CiAgICAgICAg
IHJldHVybiBEYXRhRm9ybWF0SW50MzI7CiAgICAgY2FzZSBVbmJveGVkQ2VsbEluR1BSOgotICAg
ICAgICBtX2ppdC5zdG9yZTMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
Q2VsbFRhZyksCi0gICAgICAgICAgICBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Ci0g
ICAgICAgIG1faml0LnN0b3JlMzIobG9jYXRpb24ucmVjb3ZlcnkoKS5ncHIoKSwgYWRkcmVzcy53
aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQpKTsKKyAgICAgICAgbV9qaXQuc3RvcmVDZWxsKGxvY2F0
aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3MpOwogICAgICAgICByZXR1cm4gRGF0YUZvcm1h
dENlbGw7CiAgICAgY2FzZSBDb25zdGFudDoKICAgICAgICAgbV9qaXQuc3RvcmVUcnVzdGVkVmFs
dWUobG9jYXRpb24ucmVjb3ZlcnkoKS5jb25zdGFudCgpLCBhZGRyZXNzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAppbmRleCA0YjQyOWEyNjdjY2VlMmM2NDcz
ZWRhNzFjOWZjOTQ1NGM1ODIzMDBjLi4yYWZhZWJiYmYzYWYyMTFjZmVkNTkxNTFmOTllZDIyMTY5
YzA0MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNl
SklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCkBA
IC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICAgICAgQVNTRVJUKHZp
cnR1YWxSZWdpc3RlciA8IFZpcnR1YWxSZWdpc3RlcihGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRl
eCkpOwogICAgICAgICBsb2FkUHRyKHBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgcGF5bG9h
ZCk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihOb3RFcXVhbCwgdGFnRm9yKHZpcnR1YWxSZWdp
c3RlciksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CisgICAgICAgIHJldHVybiBi
cmFuY2hJZk5vdENlbGwodGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpOwogICAgIH0KIAogICAgIGlu
bGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRJbnQzMihW
aXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyLCBSZWdpc3RlcklEIGRzdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457893</attachid>
            <date>2022-04-19 08:22:09 -0700</date>
            <delta_ts>2022-04-19 09:13:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220419152208.patch</filename>
            <type>text/plain</type>
            <size>24934</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
Yjk0M2U2M2UxYzM4MjRjMjdlNmU2ZjE2Mjk2MjI5ZDNmNzY1MTZhLi41NDVmOGQ2NDVkMmNmNjJh
MGJiODRlZjdhMDZmMTU0NTBkYWFhY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wNC0xMyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTA0LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVwbGFjZSBBdG9tU3RyaW5nKGNvbnN0IGNoYXIqKSB3aXRoIEF0b21TdHJpbmc6OmZyb21MYXRp
bjEoY29uc3QgY2hhciopCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCmluZGV4IDQ5NmRmZmI5MGFmZTc5NGExMDE5
MGRmMDIyYzFkZGE0ODMwYTg1NzguLjIxNmYzY2FlNTcyZjVhOTQwZmE5NDg4NDljYzJkZGU3NmE4
NWU1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCkBAIC05MzYsNiArOTM2LDcgQEAgcHVibGljOgogICAg
ICAgICBjYXNlIE5lYXJDYWxsTW9kZTo6UmVndWxhcjoKICAgICAgICAgICAgIHJldHVybiBDb2Rl
TG9jYXRpb25MYWJlbDxkZXN0VGFnPih0YWdDb2RlUHRyPGRlc3RUYWc+KEFzc2VtYmxlclR5cGU6
OnByZXBhcmVGb3JBdG9taWNSZWxpbmtDYWxsQ29uY3VycmVudGx5KG5lYXJDYWxsLmRhdGFMb2Nh
dGlvbigpLCBkZXN0aW5hdGlvbi51bnRhZ2dlZEV4ZWN1dGFibGVBZGRyZXNzKCkpKSk7CiAgICAg
ICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbHNlCiAgICAg
ICAgIFVOVVNFRF9QQVJBTShuZWFyQ2FsbCk7CiAgICAgICAgIHJldHVybiBkZXN0aW5hdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKaW5kZXggZTk2N2YyYzcxZjJiZTQ2MGQ3ZDljZjFiMjEyNWZhZTYyZmY5ZGE0YS4u
OWEzNzU5YmY4MmMyNmNjMjAwYzU4ZTZhMDcxMjRjZTUzODMzMmU4MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAg
LTE1MjIsNiArMTUyMiw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBFeHRlbmQ6Ok5vbmU6CiAg
ICAgICAgICAgICByZXR1cm4gQXNzZW1ibGVyOjpVWFRYOwogICAgICAgICB9CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAgICAgdm9pZCBsb2FkNjQoQWRk
cmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xOTUxLDYgKzE5NTIsMTcgQEAgcHVi
bGljOgogICAgICAgICBzdG9yZTY0KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0K
IAorICAgIHZvaWQgc3RvcmU2NChUcnVzdGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQor
ICAgIHsKKyAgICAgICAgaWYgKCFpbW0ubV92YWx1ZSkgeworICAgICAgICAgICAgc3RvcmU2NChB
Uk02NFJlZ2lzdGVyczo6enIsIGFkZHJlc3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbW92ZVRvQ2FjaGVkUmVnKGltbSwgZGF0YU1lbW9yeVRlbXBSZWdpc3Rl
cigpKTsKKyAgICAgICAgc3RvcmU2NChkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9
CisKICAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZEltbTY0IGltbSwgQmFzZUluZGV4IGFkZHJlc3Mp
CiAgICAgewogICAgICAgICBpZiAoIWltbS5tX3ZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDUwZWI5
Y2Y5ZGY0OTFmNjQ0MmQ5YjkzZGViNWMxYTMyZDk2NjUxOGQuLjY1MDJmMGM1M2MzZjZkNjIwODk3
YzliMzQ2ZTcyOTEzMmIwYjI2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC0xMDU4LDEyICsxMDU4LDEyIEBA
IHB1YmxpYzoKICAgICAgICAgc3RvcmU4KHNyYywgc2V0dXBBcm1BZGRyZXNzKGFkZHJlc3MpKTsK
ICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQg
KmFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoUmVnaXN0ZXJJRCBzcmMsIGNvbnN0IHZvaWQqIGFk
ZHJlc3MpCiAgICAgewogICAgICAgICBzdG9yZTgoc3JjLCBzZXR1cEFybUFkZHJlc3MoQWJzb2x1
dGVBZGRyZXNzKGFkZHJlc3MpKSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc3RvcmU4KFRydXN0
ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQgKmFkZHJlc3MpCisgICAgdm9pZCBzdG9yZTgoVHJ1c3Rl
ZEltbTMyIGltbSwgY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CiAgICAgICAgIFRydXN0ZWRJ
bW0zMiBpbW04KHN0YXRpY19jYXN0PGludDhfdD4oaW1tLm1fdmFsdWUpKTsKICAgICAgICAgbW92
ZShpbW04LCBkYXRhVGVtcFJlZ2lzdGVyKTsKQEAgLTExMDMsNiArMTEwMywzNCBAQCBwdWJsaWM6
CiAgICAgICAgIHN0b3JlMTYoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCisg
ICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIEFk
ZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IGdldENh
Y2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0s
IHNjcmF0Y2gpOworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzY3JhdGNoLCBhZGRyZXNzKTsK
KyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVz
dGVkSW1tMzIgaW1tMzIsIEFkZHJlc3MgYWRkcmVzcykKKyAgICB7CisgICAgICAgIFJlZ2lzdGVy
SUQgc2NyYXRjaDEgPSBnZXRDYWNoZWRBZGRyZXNzVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRl
KCk7CisgICAgICAgIG1vdmUoaW1tUHRyLCBzY3JhdGNoMSk7CisgICAgICAgIFJlZ2lzdGVySUQg
c2NyYXRjaDIgPSBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7Cisg
ICAgICAgIG1vdmUoaW1tMzIsIHNjcmF0Y2gyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRj
aDEsIHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRy
dXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVkSW1tMzIgaW1tMiwgQWRkcmVzcyBhZGRyZXNzKQorICAg
IHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMSA9IGdldENhY2hlZEFkZHJlc3NUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0xLCBzY3JhdGNoMSk7Cisg
ICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaDIgPSBzY3JhdGNoMTsKKyAgICAgICAgaWYgKGltbTEu
bV92YWx1ZSAhPSBpbW0yLm1fdmFsdWUpIHsKKyAgICAgICAgICAgIHNjcmF0Y2gyID0gZ2V0Q2Fj
aGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICAgICAgbW92ZShp
bW0yLCBzY3JhdGNoMik7CisgICAgICAgIH0KKyAgICAgICAgc3RvcmVQYWlyMzIoc2NyYXRjaDEs
IHNjcmF0Y2gyLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lz
dGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAg
ICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBkZXN0LCBUcnVzdGVkSW1tMzIoMCkpOwpAQCAt
MTE0MCw2ICsxMTY4LDIyIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc3Jj
MiwgQWRkcmVzcyhzY3JhdGNoLCBhZGRyZXNzLm9mZnNldCkpOwogICAgIH0KIAorICAgIHZvaWQg
c3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEsIFRydXN0ZWRJbW0zMiBpbW0yLCBCYXNlSW5k
ZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgZW5vdWdoIHRlbXAg
cmVnaXN0ZXJzIHRvIG1vdmUgYm90aCBpbW0gYW5kIGNhbGN1bGF0ZSB0aGUgYWRkcmVzcworICAg
ICAgICBzdG9yZTMyKGltbTEsIGFkZHJlc3MpOworICAgICAgICBzdG9yZTMyKGltbTIsIGFkZHJl
c3Mud2l0aE9mZnNldCg0KSk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3Rl
cklEIHNyYzEsIFRydXN0ZWRJbW0zMiBpbW0sIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAgewor
ICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3MgPSBzZXR1cEFybUFkZHJlc3MoQWJzb2x1dGVB
ZGRyZXNzKGFkZHJlc3MpKTsKKyAgICAgICAgQVNTRVJUKGFybUFkZHJlc3MudHlwZSA9PSBBcm1B
ZGRyZXNzOjpIYXNPZmZzZXQpOworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBnZXRDYWNo
ZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgIG1vdmUoaW1tLCBz
Y3JhdGNoKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoc3JjMSwgc2NyYXRjaCwgQWRkcmVzcyhhcm1B
ZGRyZXNzLmJhc2UsIGFybUFkZHJlc3MudS5vZmZzZXQpKTsKKyAgICB9CisKICAgICB2b2lkIHN0
b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgQXJtQWRkcmVzcyBhcm1BZGRyZXNzID0gc2V0dXBBcm1B
ZGRyZXNzKEFic29sdXRlQWRkcmVzcyhhZGRyZXNzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlck1JUFMuaAppbmRleCBlZDc3ZDI5OTY1
NGNiMzc5YWI0ODdiYjc5ZjdjYjQwMGExODExZDMwLi40ODg4NTg0NjBiNzVkYTU5MWEyMzNkYWM1
YjE4M2M2Y2ExOTZjNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgKQEAgLTE2NTEsNiArMTY1MSwzMCBAQCBwdWJsaWM6
CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3Jj
MSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92
ZShpbW0sIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBhZGRy
VGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRy
dXN0ZWRJbW1QdHIgaW1tUHRyLCBUcnVzdGVkSW1tMzIgaW1tMzIsIEFkZHJlc3MgYWRkcmVzcykK
KyAgICB7CisgICAgICAgIG1vdmUoaW1tUHRyLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
bW92ZShpbW0zMiwgZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlUGFpcjMyKGFkZHJU
ZW1wUmVnaXN0ZXIsIGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOworICAgIH0KKworICAgIHZv
aWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMyIGltbTEsIFRydXN0ZWRJbW0zMiBpbW0yLCBBZGRy
ZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbTEsIGFkZHJUZW1wUmVnaXN0ZXIp
OworICAgICAgICBSZWdpc3RlcklEIHNjcmF0Y2ggPSBhZGRyVGVtcFJlZ2lzdGVyOworICAgICAg
ICBpZiAoaW1tMS5tX3ZhbHVlICE9IGltbTIubV92YWx1ZSkgeworICAgICAgICAgICAgc2NyYXRj
aCA9IGRhdGFUZW1wUmVnaXN0ZXI7CisgICAgICAgICAgICBtb3ZlKGltbTIsIHNjcmF0Y2gpOwor
ICAgICAgICB9CisgICAgICAgIHN0b3JlUGFpcjMyKGFkZHJUZW1wUmVnaXN0ZXIsIHNjcmF0Y2gs
IGFkZHJlc3MpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMx
LCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNyYzIsIGRlc3QsIFRydXN0ZWRJbW0zMigwKSk7CkBAIC0xNjczLDYgKzE2
OTcsMTkgQEAgcHVibGljOgogICAgICAgICBzdG9yZTMyKHNyYzIsIGFkZHJlc3Mud2l0aE9mZnNl
dCg0KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIgaW1tMSwg
VHJ1c3RlZEltbTMyIGltbTIsIEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgc3Rv
cmUzMihpbW0xLCBhZGRyZXNzKTsKKyAgICAgICAgc3RvcmUzMihpbW0yLCBhZGRyZXNzLndpdGhP
ZmZzZXQoNCkpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMx
LCBUcnVzdGVkSW1tMzIgaW1tLCBjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyAgICAgICAg
bW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAg
bW92ZShpbW0sIGRhdGFUZW1wUmVnaXN0ZXIpOworICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBk
YXRhVGVtcFJlZ2lzdGVyLCBhZGRyVGVtcFJlZ2lzdGVyKTsKKyAgICB9CisKICAgICB2b2lkIHN0
b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgUmVnaXN0ZXJJRCBzcmMyLCBjb25zdCB2b2lkKiBh
ZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBhZGRy
VGVtcFJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCBiMmU5MTFhYTEzNjYzYTI1MDk4NDBhMDU2
ODg0MTJmMjkyOGVmNDYzLi5hNGZkNGMyZDRhM2RmODU2YTY1OWZkZmNlYmNjZDdlNjZmY2EyY2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC0xMDIxLDEyICsxMDIxLDE4IEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIoKSwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9pZCBz
dG9yZTY0KFRydXN0ZWRJbW1QdHIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAg
ICBtb3ZlKGltbSwgc2NyYXRjaFJlZ2lzdGVyKCkpOworICAgICAgICBzdG9yZTY0KHNjcmF0Y2hS
ZWdpc3RlcigpLCBhZGRyZXNzKTsKKyAgICB9CisKICAgICB2b2lkIHN0b3JlNjQoVHJ1c3RlZElt
bTY0IGltbSwgQmFzZUluZGV4IGFkZHJlc3MpCiAgICAgewogICAgICAgICBtb3ZlKGltbSwgc2Ny
YXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX3JtKHNjcmF0Y2hSZWdp
c3RlcigpLCBhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRy
ZXNzLnNjYWxlKTsKICAgICB9Ci0gICAgCisKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFk
ZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
ICAgICAgICAgcGFkQmVmb3JlUGF0Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXQuY3BwCmluZGV4IDI0MzI2YTY4MGIyOGU5NTZkMjY1NmQ0MjIzMTViYWYzNjA3NDMwNjQu
LmZhNTk1ZGJiNGY3OTE0Y2IyZTg3MjEwZjg3MDUzZTIzODIzMDZiNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcApAQCAtNjQ3LDggKzY0Nyw3IEBAIHZvaWQgT1NS
RXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhp
dCYgZXhpdCwgY29uc3QKICAgICAgICAgICAgIGppdC5sb2FkMzIoCiAgICAgICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKHJlY292ZXJ5LnZpcnR1YWxSZWdpc3RlcigpKSwK
ICAgICAgICAgICAgICAgICBKU1JJbmZvOjpqc1JlZ1QxMC5wYXlsb2FkR1BSKCkpOwotICAgICAg
ICAgICAgaml0Lm1vdmUoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIEpTUkluZm86OmpzUmVnVDEwLnRhZ0dQUigpKTsKLSAgICAgICAgICAgIGppdC5zdG9y
ZVZhbHVlKEpTUkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOworICAgICAgICAgICAg
aml0LnN0b3JlQ2VsbChKU1JJbmZvOjpqc1JlZ1QxMCwgc2NyYXRjaCArIGluZGV4KTsKICAgICAg
ICAgICAgIGJyZWFrOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAppbmRleCAzZDdjYjhjMDExOWJjYzgy
MTg4YzgwN2M5MzVhMWY1NjU1NzczMDYzLi41YzIzZTBhMTBlMTdlMDNkYzk2YjU4NjE1Y2RiZDNm
NThkNGI3YmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCkBAIC0zMjIsMTQgKzMyMiw4IEBAIHZvaWQgcmVpZnlJ
bmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgT1NSRXhpdEJhc2UmIGV4
aXQpCiAgICAgICAgIGppdC5zdG9yZVB0cihjYWxsZXJGcmFtZUdQUiwgQXNzZW1ibHlIZWxwZXJz
OjphZGRyZXNzRm9yQnl0ZU9mZnNldChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlckZyYW1lT2Zmc2V0
KCkpKTsKICAgICAgICAgdWludDMyX3QgbG9jYXRpb25CaXRzID0gQ2FsbFNpdGVJbmRleChiYXNl
bGluZUNvZGVCbG9jay0+Ynl0ZWNvZGVJbmRleEZvckV4aXQoY29kZU9yaWdpbi0+Ynl0ZWNvZGVJ
bmRleCgpKSkuYml0cygpOwogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihsb2NhdGlvbkJpdHMpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFs
UmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6OmFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKSkpOwotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAg
IGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQotICAgICAgICAgICAgaml0LnN0
b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSkpLCBBc3NlbWJseUhlbHBlcnM6
OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQg
KyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7Ci0jZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBz
byB0aGlzIGlzIHRoZSAzMi1iaXQgcGFydAotICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhl
bHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0
YWdGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBDYWxs
RnJhbWVTbG90OjpjYWxsZWUpKSk7Ci0gICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Ns
b3N1cmVDYWxsKQotICAgICAgICAgICAgaml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1
c3RlZEltbVB0cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJseUhl
bHBlcnM6OnBheWxvYWRGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tP
ZmZzZXQgKyBDYWxsRnJhbWVTbG90OjpjYWxsZWUpKSk7Ci0jZW5kaWYgLy8gVVNFKEpTVkFMVUU2
NCkgLy8gZW5kaW5nIHRoZSAjZWxzZSBwYXJ0LCBzbyBkaXJlY3RseSBhYm92ZSBpcyB0aGUgMzIt
Yml0IHBhcnQKKyAgICAgICAgICAgIGppdC5zdG9yZUNlbGwoQXNzZW1ibHlIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVs
cGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09m
ZnNldCArIENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKICAgICB9CiAKICAgICAvLyBEb24ndCBu
ZWVkIHRvIHNldCB0aGUgdG9wbGV2ZWwgY29kZSBvcmlnaW4gaWYgd2Ugb25seSBkaWQgaW5saW5l
IHRhaWwgY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKaW5kZXggYmE2ZDA3NGNkY2Q0YTgwZjU2NGI5YWQ0Y2I2YWEyZDdmNzk2Mzg1ZC4u
MTk2ZDY0MTI5NDcwNzA5Y2NmMGY3Yjk2NDA1MjBhNWRhOWM2ZTc2NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTI0MDgsNyArMjQw
OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNoZWNrQXJndW1lbnRUeXBlcygpCiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEZsdXNoZWRDZWxsOiB7Ci0gICAg
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlLCBtX2pp
dC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIEpJVENvbXBpbGVyOjp0YWdGb3Io
dmlydHVhbFJlZ2lzdGVyKSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAg
ICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEJhZFR5cGUsIHZhbHVlU291cmNlLCBub2RlLCBtX2pp
dC5icmFuY2hJZk5vdENlbGwoSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpAQCAtOTc5
MywxMyArOTc5Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdBcnJheVdpdGhT
cHJlYWQoTm9kZSogbm9kZSkKICAgICAgICAgaWYgKGJpdFZlY3Rvci0+Z2V0KGkpKSB7CiAgICAg
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBpbW11dGFibGVCdXR0ZXJmbHkodGhpcywgdXNl
KTsKICAgICAgICAgICAgIEdQUlJlZyBpbW11dGFibGVCdXR0ZXJmbHlHUFIgPSBpbW11dGFibGVC
dXR0ZXJmbHkuZ3ByKCk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgICAgIG1faml0LnN0
b3JlNjQoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCAmYnVmZmVyW2ldKTsKLSNlbHNlCi0gICAgICAg
ICAgICBjaGFyKiBwb2ludGVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXRpY19jYXN0PHZvaWQq
PigmYnVmZmVyW2ldKSk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKGltbXV0YWJsZUJ1dHRl
cmZseUdQUiwgcG9pbnRlciArIFBheWxvYWRPZmZzZXQpOwotICAgICAgICAgICAgbV9qaXQuc3Rv
cmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHBvaW50ZXIgKyBUYWdPZmZzZXQp
OwotI2VuZGlmCisgICAgICAgICAgICBtX2ppdC5zdG9yZUNlbGwoaW1tdXRhYmxlQnV0dGVyZmx5
R1BSLCAmYnVmZmVyW2ldKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEpTVmFsdWVP
cGVyYW5kIGlucHV0KHRoaXMsIHVzZSk7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyBpbnB1dFJl
Z3MgPSBpbnB1dC5qc1ZhbHVlUmVncygpOwpAQCAtMTAxNjIsNyArMTAxNTYsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlJbmRleE9mKE5vZGUqIG5vZGUpCiAjaWYgVVNFKEpT
VkFMVUU2NCkKICAgICAgICAgICAgIGF1dG8gZm91bmQgPSBtX2ppdC5icmFuY2g2NChDQ2FsbEhl
bHBlcnM6OkVxdWFsLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4
R1BSLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCksIHNlYXJjaEVsZW1lbnRHUFIpOwogI2Vs
c2UKLSAgICAgICAgICAgIGF1dG8gc2tpcCA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6
Tm90RXF1YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBUYWdPZmZzZXQpLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZykpOworICAgICAgICAgICAgYXV0byBza2lwID0gbV9qaXQuYnJhbmNoSWZO
b3RDZWxsKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBUYWdPZmZzZXQpKTsKICAgICAgICAgICAgIG1faml0
LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIGluZGV4R1BSLCBN
YWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgUGF5bG9hZE9mZnNldCksIHRlbXBHUFIpOwogICAg
ICAgICAgICAgYXV0byBmb3VuZCA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWws
IHRlbXBHUFIsIHNlYXJjaEVsZW1lbnRHUFIpOwogICAgICAgICAgICAgc2tpcC5saW5rKCZtX2pp
dCk7CkBAIC0xMTQzMywxOCArMTE0MjcsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
TmV3U3RyaW5nT2JqZWN0KE5vZGUqIG5vZGUpCiAgICAgICAgIHJlc3VsdEdQUiwgVHJ1c3RlZElt
bVB0cihub2RlLT5zdHJ1Y3R1cmUoKSksIGJ1dHRlcmZseSwgc2NyYXRjaDFHUFIsIHNjcmF0Y2gy
R1BSLAogICAgICAgICBzbG93UGF0aCk7CiAgICAgCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBt
X2ppdC5zdG9yZTY0KAotICAgICAgICBvcGVyYW5kR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhy
ZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSk7Ci0jZWxz
ZQotICAgIG1faml0LnN0b3JlMzIoCi0gICAgICAgIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwKLSAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJP
YmplY3Q6OmludGVybmFsVmFsdWVPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1
LmFzQml0cy50YWcpKSk7Ci0gICAgbV9qaXQuc3RvcmUzMigKLSAgICAgICAgb3BlcmFuZEdQUiwK
LSAgICAgICAgSklUQ29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6
OmludGVybmFsVmFsdWVPZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0
cy5wYXlsb2FkKSkpOwotI2VuZGlmCi0gICAgCisgICAgbV9qaXQuc3RvcmVDZWxsKG9wZXJhbmRH
UFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNXcmFwcGVyT2JqZWN0OjppbnRl
cm5hbFZhbHVlT2Zmc2V0KCkpKTsKKwogICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKICAg
ICAKICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA0
YWYwMDI1N2Y4ZmVhOWQ2MDIxYjAwNDVlNzczOTU3NWI3OGNjYmIzLi5lOGJiMWVmZTI4NGU4ZThm
ZDBhZTcwNGU3ZDYyMzRhZWE5Mjg1ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTExMDYsMTAgKzExMDYsNyBA
QCBHUFJSZWcgU3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVjdWxhdGVDZWxsKEVkZ2UgZWRnZSkKICAg
ICAgICAgICAgICAgICBCYWRUeXBlLAogICAgICAgICAgICAgICAgIEpTVmFsdWVTb3VyY2UoSklU
Q29tcGlsZXI6OmFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVyKSksCiAgICAgICAgICAgICAgICAg
ZWRnZSwKLSAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2gzMigKLSAgICAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLAotICAgICAgICAgICAgICAgICAgICBKSVRDb21w
aWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlciksCi0gICAgICAgICAgICAgICAgICAgIFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSkpOworICAgICAgICAgICAgICAgIG1faml0LmJyYW5j
aElmTm90Q2VsbChKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAg
ICAgfQogICAgICAgICBHUFJSZWcgZ3ByID0gYWxsb2NhdGUoKTsKICAgICAgICAgbV9qaXQubG9h
ZDMyKEpJVENvbXBpbGVyOjpwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIGdwcik7CkBAIC0x
Mjc0LDcgKzEyNzEsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUGVlcEhvbGVPYmpl
Y3RTdHJpY3RFcXVhbGl0eShFZGdlIG9iamVjdENoaWxkLCBFZGdlCiAKICAgICBERkdfVFlQRV9D
SEVDSyhKU1ZhbHVlU291cmNlOjp1bmJveGVkQ2VsbChvcDFHUFIpLCBvYmplY3RDaGlsZCwgU3Bl
Y09iamVjdCwgbV9qaXQuYnJhbmNoSWZOb3RPYmplY3Qob3AxR1BSKSk7CiAKLSAgICBicmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIG9wMi50YWdHUFIoKSwgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkNlbGxUYWcpLCBub3RUYWtlbik7CisgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgbm90
Q2VsbCA9IG1faml0LmJyYW5jaElmTm90Q2VsbChvcDIudGFnR1BSKCkpOworICAgIGFkZEJyYW5j
aChub3RDZWxsLCBub3RUYWtlbik7CiAgICAgCiAgICAgaWYgKHRha2VuID09IG5leHRCbG9jaygp
KSB7CiAgICAgICAgIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgb3AxR1BSLCBv
cDJHUFIsIG5vdFRha2VuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
QXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmNwcAppbmRleCBkMTkxNTljYWZjZDk3NTdiZGQzZDU5ZDI4ZWJlNmVjYTkyYzg3MGI2
Li4wMDg4NWEzNzczOTRhOTViYTc1OTczOGYxMzg3OGI0ZGY3ZGY2NDFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC0xODgsNyArMTg4LDcg
QEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzSlNEb3VibGUoR1BSUmVnIGdwcikK
IAogdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbChHUFJSZWcgZ3ByKQogewot
ICAgIEp1bXAgY2hlY2tDZWxsID0gYnJhbmNoMzIoRXF1YWwsIGdwciwgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkNlbGxUYWcpKTsKKyAgICBKdW1wIGNoZWNrQ2VsbCA9IGJyYW5jaElmQ2VsbChncHIp
OwogICAgIGFib3J0V2l0aFJlYXNvbihBSElzTm90Q2VsbCk7CiAgICAgY2hlY2tDZWxsLmxpbmso
dGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApp
bmRleCAxYjkwMjg5OTIwNWY3YzkyOWIwNWYyNGJmYTRkOTE0NzcyYTFlMzU5Li5lNDA3Nzk2MDQ4
MThiOGFiODlmMjNiNjAyOWRjNmZmNGM1OGI4ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKQEAgLTEzOSwxNyArMTM5LDI5IEBAIHB1YmxpYzoKICNl
bmRpZgogICAgIH0KIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgdm9pZCBzdG9yZUNl
bGwoVCBjZWxsLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgVT4KKyAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGwsIFUgYWRkcmVzcykKICAgICB7CiAj
aWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgc3RvcmU2NChjZWxsLCBhZGRyZXNzKTsKICNlbHNl
Ci0gICAgICAgIHN0b3JlMzIoY2VsbCwgYWRkcmVzcy53aXRoT2Zmc2V0KFBheWxvYWRPZmZzZXQp
KTsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJl
c3Mud2l0aE9mZnNldChUYWdPZmZzZXQpKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5bG9h
ZE9mZnNldCAmJiBUYWdPZmZzZXQgPT0gNCwgIkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0ZW0i
KTsKKyAgICAgICAgc3RvcmVQYWlyMzIoY2VsbCwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxU
YWcpLCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KLSAgICAKKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFU+CisgICAgdm9pZCBzdG9yZUNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVSBhZGRyZXNzKQor
ICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzdG9yZTY0KHJlZ3MuZ3ByKCksIGFk
ZHJlc3MpOworI2Vsc2UKKyAgICAgICAgc3RhdGljX2Fzc2VydCghUGF5bG9hZE9mZnNldCAmJiBU
YWdPZmZzZXQgPT0gNCwgIkFzc3VtZXMgbGl0dGxlLWVuZGlhbiBzeXN0ZW0iKTsKKyAgICAgICAg
bW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcmVn
cy50YWdHUFIoKSk7CisgICAgICAgIHN0b3JlUGFpcjMyKHJlZ3MucGF5bG9hZEdQUigpLCByZWdz
LnRhZ0dQUigpLCBhZGRyZXNzKTsKKyNlbmRpZgorICAgIH0KKwogICAgIHZvaWQgbG9hZENlbGwo
QWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgZ3ByKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQpA
QCAtMTU4LDcgKzE3MCw3IEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDMyKGFkZHJlc3Mud2l0aE9m
ZnNldChQYXlsb2FkT2Zmc2V0KSwgZ3ByKTsKICNlbmRpZgogICAgIH0KLSAgICAKKwogICAgIHZv
aWQgc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyByZWdzLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewog
I2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yODcsOCArMjk5LDcgQEAgcHVibGljOgogI2lmIFVTRShK
U1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZSh2
YWx1ZSkpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKHZh
bHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAgICBzdG9y
ZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNzLndpdGhPZmZzZXQoUGF5
bG9hZE9mZnNldCkpOworICAgICAgICBzdG9yZVBhaXIzMihUcnVzdGVkSW1tMzIodmFsdWUucGF5
bG9hZCgpKSwgVHJ1c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcyk7CiAjZW5kaWYKICAg
ICB9CiAKQEAgLTI5Nyw4ICszMDgsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAg
ICAgICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSksIGFkZHJl
c3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBh
ZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIHN0b3JlMzIoVHJ1c3RlZElt
bTMyKHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSk7
CisgICAgICAgIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBUcnVz
dGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzKTsKICNlbmRpZgogICAgIH0KIApAQCAtNjM3
LDE1ICs2NDcsMTYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgSnVtcCBicmFuY2hJ
Zk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lz
dGVycykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAgYnJhbmNoSWZOb3RDZWxs
KFQgbWF5YmVDZWxsLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQog
ICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpZiAobW9kZSA9PSBIYXZlVGFnUmVn
aXN0ZXJzKQotICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWcsIEdQ
UkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0
KE5vblplcm8sIHJlZywgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CisgICAg
ICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIG1heWJlQ2VsbCwgR1BSSW5mbzo6
bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoTm9uWmVy
bywgbWF5YmVDZWxsLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2VsbE1hc2spKTsKICNlbHNl
CiAgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1h
Y3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgcmVnLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRh
ZykpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBt
YXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7CiAjZW5kaWYKICAgICB9
CiAKQEAgLTY1NywxOCArNjY4LDIwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGJyYW5jaElm
Tm90Q2VsbChyZWdzLnRhZ0dQUigpLCBtb2RlKTsKICNlbmRpZgogICAgIH0KLSAgICAKLSAgICBK
dW1wIGJyYW5jaElmQ2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZl
VGFnUmVnaXN0ZXJzKQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBKdW1wIGJyYW5j
aElmQ2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lz
dGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKG1vZGUgPT0gSGF2
ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hUZXN0NjQoWmVybywgcmVn
LCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaFRl
c3Q2NChaZXJvLCByZWcsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RDZWxsTWFzaykpOworICAg
ICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBtYXliZUNlbGwsIEdQUkluZm86Om5v
dENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KFplcm8sIG1h
eWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNrKSk7CiAjZWxzZQogICAg
ICAgICBVTlVTRURfUEFSQU0obW9kZSk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihNYWNyb0Fz
c2VtYmxlcjo6RXF1YWwsIHJlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAg
ICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVhbCwgbWF5YmVDZWxsLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogI2VuZGlmCiAgICAgfQorCiAgICAgSnVt
cCBicmFuY2hJZkNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0ZXJzTW9kZSBtb2RlID0g
SGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTExOTIsMTEg
KzEyMDUsMTMgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFs
aWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rlci5v
ZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwogICAgIH0KKwogICAgIHN0
YXRpYyBBZGRyZXNzIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZ2lzdGVyKQogICAg
IHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlkKCkpOwogICAgICAgICBy
ZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgdmlydHVhbFJlZ2lzdGVy
Lm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7CiAgICAgfQorCiAgICAg
c3RhdGljIEFkZHJlc3MgdGFnRm9yKE9wZXJhbmQgb3BlcmFuZCkKICAgICB7CiAgICAgICAgIEFT
U0VSVCghb3BlcmFuZC5pc1RtcCgpKTsKQEAgLTEyMDgsMTEgKzEyMjMsMTMgQEAgcHVibGljOgog
ICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVy
biBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdp
c3RlcikgKyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0aWMgQWRkcmVzcyBwYXls
b2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAgICAgewogICAgICAgICBB
U1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0KCkgKiBz
aXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQorCiAgICAgc3RhdGljIEFk
ZHJlc3MgcGF5bG9hZEZvcihPcGVyYW5kIG9wZXJhbmQpCiAgICAgewogICAgICAgICBBU1NFUlQo
IW9wZXJhbmQuaXNUbXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9D
YWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcAppbmRleCAyZmVmNTNkYTYwYTJlNzVhNDdjNjRmOGQz
MDQwYzQ2MjIyYmI4OGVhLi4wZTg3ZTE2OTUzMWFjOTUxYmZhZjBmOWRlZDFiNmYyZmE2NjNkYjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVy
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZs
ZXIzMl82NC5jcHAKQEAgLTQ1LDkgKzQ1LDcgQEAgRGF0YUZvcm1hdCBDYWxsRnJhbWVTaHVmZmxl
cjo6ZW1pdFN0b3JlKENhY2hlZFJlY292ZXJ5JiBsb2NhdGlvbiwgTWFjcm9Bc3NlbWJsZXIKICAg
ICAgICAgbV9qaXQuc3RvcmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBhZGRyZXNzLndp
dGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwogICAgICAgICByZXR1cm4gRGF0YUZvcm1hdEludDMy
OwogICAgIGNhc2UgVW5ib3hlZENlbGxJbkdQUjoKLSAgICAgICAgbV9qaXQuc3RvcmUzMihNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAgICAgICAgICAg
YWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAgICBtX2ppdC5zdG9yZTMyKGxv
Y2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0
KSk7CisgICAgICAgIG1faml0LnN0b3JlQ2VsbChsb2NhdGlvbi5yZWNvdmVyeSgpLmdwcigpLCBh
ZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIERhdGFGb3JtYXRDZWxsOwogICAgIGNhc2UgQ29uc3Rh
bnQ6CiAgICAgICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKGxvY2F0aW9uLnJlY292ZXJ5KCku
Y29uc3RhbnQoKSwgYWRkcmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pTSW50ZXJmYWNlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJm
YWNlSklULmgKaW5kZXggNGI0MjlhMjY3Y2NlZTJjNjQ3M2VkYTcxYzlmYzk0NTRjNTgyMzAwYy4u
MmFmYWViYmJmM2FmMjExY2ZlZDU5MTUxZjk5ZWQyMjE2OWMwNDM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAtNTksNyArNTksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVnaXN0ZXIgPCBWaXJ0dWFs
UmVnaXN0ZXIoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpKTsKICAgICAgICAgbG9hZFB0cihw
YXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIHBheWxvYWQpOwotICAgICAgICByZXR1cm4gYnJh
bmNoMzIoTm90RXF1YWwsIHRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoSWZOb3RDZWxsKHRhZ0Zvcih2
aXJ0dWFsUmVnaXN0ZXIpKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6Okp1
bXAgSlNJbnRlcmZhY2VKSVQ6OmVtaXRMb2FkSW50MzIoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxS
ZWdpc3RlciwgUmVnaXN0ZXJJRCBkc3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457905</attachid>
            <date>2022-04-19 09:13:13 -0700</date>
            <delta_ts>2022-04-20 00:55:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238025-20220419161311.patch</filename>
            <type>text/plain</type>
            <size>25633</size>
            <attacher name="Mikhail R. Gadelha">mikhail</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTljZDkwMWE5ZTNhZGZkMzJiMzNjMjljNDU2NzdmOWZmNDA4MTA5Li40ODI3Njg2NThkMzk1YWVi
YTc5ZWEyZmZiYjFkN2QxYjk0OTYxZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wNC0xMyAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVuaWZ5IGNhbGxzIGFuZCBjaGVja3MgZm9yIENlbGxUYWcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODAyNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
bW92ZXMgYWxsIHRoZSBwbGFjZXMgd2hlcmUgY2VsbCB0YWdzIGFyZSB3cml0dGVuIGFuZCBjaGVj
a2VkCisgICAgICAgIHdoZW4gYnJhbmNoaW5nOiB0aGlzIHdpbGwgYmUgbmVlZGVkIHdoZW4gaW1w
bGVtZW50aW5nIHRoZSBjb25jdXJyZW5jeSBvbgorICAgICAgICAzMiBiaXRzIGFyY2hzLCBzbyB3
ZSBjYW4gZm9jdXMgb24gY2hhbmdpbmcgc3RvcmVDZWxsLCBicmFuY2hJZk5vdENlbGwgYW5kCisg
ICAgICAgIGJyYW5jaElmQ2VsbCB0byBpbXBsZW1lbnQgdGhlIG11dGV4IGxvY2tzL3VubG9ja3Mu
CisKKyAgICAgICAgSXQgYWxzbyByZWR1Y2VzIHRoZSBjb2RlIHNpemUgaW4gSmV0U3RyZWFtMiBi
eSB+MSUgb24gYXZlcmFnZSBvbiAzMgorICAgICAgICBiaXRzIHBsYXRmb3Jtcy4KKworICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3Lmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyQVJNdjc6OnN0b3JlOCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJN
djc6OnN0b3JlUGFpcjMyKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBT
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyTUlQUzo6c3RvcmVQYWlyMzIpOgorICAg
ICAgICAqIGRmZy9ERkdPU1JFeGl0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpPU1JFeGl0Ojpj
b21waWxlRXhpdCk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6cmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmZpbGxTcGVj
dWxhdGVDZWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBl
ZXBIb2xlT2JqZWN0U3RyaWN0RXF1YWxpdHkpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBl
cnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydElzQ2VsbCk6
CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJs
eUhlbHBlcnM6OnN0b3JlQ2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6c3Rv
cmVUcnVzdGVkVmFsdWUpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElm
Tm90Q2VsbCk6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZDZWxsKToK
KyAgICAgICAgKiBqaXQvQ2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6
OkNhbGxGcmFtZVNodWZmbGVyOjplbWl0U3RvcmUpOgorICAgICAgICAqIGppdC9KU0ludGVyZmFj
ZUpJVC5oOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExvYWRKU0NlbGwpOgor
CiAyMDIyLTA0LTE5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBGaXggdGhlIGFkZHJlc3Mgc2FuaXRpemVyIGJ1aWxkIHdoZW4gYnVpbGRpbmcgd2l0
aCBnY2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0
cmFjdE1hY3JvQXNzZW1ibGVyLmgKaW5kZXggNDk2ZGZmYjkwYWZlNzk0YTEwMTkwZGYwMjJjMWRk
YTQ4MzBhODU3OC4uMjE2ZjNjYWU1NzJmNWE5NDBmYTk0ODg0OWNjMmRkZTc2YTg1ZTUyZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNz
ZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1h
Y3JvQXNzZW1ibGVyLmgKQEAgLTkzNiw2ICs5MzYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2Ug
TmVhckNhbGxNb2RlOjpSZWd1bGFyOgogICAgICAgICAgICAgcmV0dXJuIENvZGVMb2NhdGlvbkxh
YmVsPGRlc3RUYWc+KHRhZ0NvZGVQdHI8ZGVzdFRhZz4oQXNzZW1ibGVyVHlwZTo6cHJlcGFyZUZv
ckF0b21pY1JlbGlua0NhbGxDb25jdXJyZW50bHkobmVhckNhbGwuZGF0YUxvY2F0aW9uKCksIGRl
c3RpbmF0aW9uLnVudGFnZ2VkRXhlY3V0YWJsZUFkZHJlc3MoKSkpKTsKICAgICAgICAgfQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2Vsc2UKICAgICAgICAgVU5VU0VE
X1BBUkFNKG5lYXJDYWxsKTsKICAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApp
bmRleCA4YTM4YjU3ZDczYjA1N2U2ZGVhNDc0NjdmZjAwYzM2ZTBjNmJiNWQwLi4yY2MwYTE0ODlm
YTZmMjY2MjMwOTkyMjA2YTE4OGEzYmVhMmQyOGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaApAQCAtMTUyMiw2ICsx
NTIyLDcgQEAgcHVibGljOgogICAgICAgICBjYXNlIEV4dGVuZDo6Tm9uZToKICAgICAgICAgICAg
IHJldHVybiBBc3NlbWJsZXI6OlVYVFg7CiAgICAgICAgIH0KKyAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKICAgICB2b2lkIGxvYWQ2NChBZGRyZXNzIGFkZHJl
c3MsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTE5NTEsNiArMTk1MiwxNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0b3JlNjQoZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgfQogCisgICAgdm9p
ZCBzdG9yZTY0KFRydXN0ZWRJbW1QdHIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAg
ICAgICBpZiAoIWltbS5tX3ZhbHVlKSB7CisgICAgICAgICAgICBzdG9yZTY0KEFSTTY0UmVnaXN0
ZXJzOjp6ciwgYWRkcmVzcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBtb3ZlVG9DYWNoZWRSZWcoaW1tLCBkYXRhTWVtb3J5VGVtcFJlZ2lzdGVyKCkpOworICAg
ICAgICBzdG9yZTY0KGRhdGFUZW1wUmVnaXN0ZXIsIGFkZHJlc3MpOworICAgIH0KKwogICAgIHZv
aWQgc3RvcmU2NChUcnVzdGVkSW1tNjQgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7CiAg
ICAgICAgIGlmICghaW1tLm1fdmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKaW5kZXggNTBlYjljZjlkZjQ5MWY2
NDQyZDliOTNkZWI1YzFhMzJkOTY2NTE4ZC4uNjUwMmYwYzUzYzNmNmQ2MjA4OTdjOWIzNDZlNzI5
MTMyYjBiMjYxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTEwNTgsMTIgKzEwNTgsMTIgQEAgcHVibGljOgog
ICAgICAgICBzdG9yZTgoc3JjLCBzZXR1cEFybUFkZHJlc3MoYWRkcmVzcykpOwogICAgIH0KICAg
ICAKLSAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCAqYWRkcmVzcykK
KyAgICB2b2lkIHN0b3JlOChSZWdpc3RlcklEIHNyYywgY29uc3Qgdm9pZCogYWRkcmVzcykKICAg
ICB7CiAgICAgICAgIHN0b3JlOChzcmMsIHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3Mo
YWRkcmVzcykpKTsKICAgICB9CiAgICAgCi0gICAgdm9pZCBzdG9yZTgoVHJ1c3RlZEltbTMyIGlt
bSwgY29uc3Qgdm9pZCAqYWRkcmVzcykKKyAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1tMzIgaW1t
LCBjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKICAgICAgICAgVHJ1c3RlZEltbTMyIGltbTgo
c3RhdGljX2Nhc3Q8aW50OF90PihpbW0ubV92YWx1ZSkpOwogICAgICAgICBtb3ZlKGltbTgsIGRh
dGFUZW1wUmVnaXN0ZXIpOwpAQCAtMTEwMyw2ICsxMTAzLDM0IEBAIHB1YmxpYzoKICAgICAgICAg
c3RvcmUxNihkYXRhVGVtcFJlZ2lzdGVyLCBhZGRyZXNzKTsKICAgICB9CiAKKyAgICB2b2lkIHN0
b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwgVHJ1c3RlZEltbTMyIGltbSwgQWRkcmVzcyBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoID0gZ2V0Q2FjaGVkRGF0YVRl
bXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaCk7
CisgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIHNjcmF0Y2gsIGFkZHJlc3MpOworICAgIH0KKwor
ICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbVB0ciBpbW1QdHIsIFRydXN0ZWRJbW0zMiBp
bW0zMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNo
MSA9IGdldENhY2hlZEFkZHJlc3NUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAg
ICAgbW92ZShpbW1QdHIsIHNjcmF0Y2gxKTsKKyAgICAgICAgUmVnaXN0ZXJJRCBzY3JhdGNoMiA9
IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92
ZShpbW0zMiwgc2NyYXRjaDIpOworICAgICAgICBzdG9yZVBhaXIzMihzY3JhdGNoMSwgc2NyYXRj
aDIsIGFkZHJlc3MpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbTMy
IGltbTEsIFRydXN0ZWRJbW0zMiBpbW0yLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAg
ICBSZWdpc3RlcklEIHNjcmF0Y2gxID0gZ2V0Q2FjaGVkQWRkcmVzc1RlbXBSZWdpc3RlcklEQW5k
SW52YWxpZGF0ZSgpOworICAgICAgICBtb3ZlKGltbTEsIHNjcmF0Y2gxKTsKKyAgICAgICAgUmVn
aXN0ZXJJRCBzY3JhdGNoMiA9IHNjcmF0Y2gxOworICAgICAgICBpZiAoaW1tMS5tX3ZhbHVlICE9
IGltbTIubV92YWx1ZSkgeworICAgICAgICAgICAgc2NyYXRjaDIgPSBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCk7CisgICAgICAgICAgICBtb3ZlKGltbTIsIHNjcmF0
Y2gyKTsKKyAgICAgICAgfQorICAgICAgICBzdG9yZVBhaXIzMihzY3JhdGNoMSwgc2NyYXRjaDIs
IGFkZHJlc3MpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMx
LCBSZWdpc3RlcklEIHNyYzIsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHN0b3Jl
UGFpcjMyKHNyYzEsIHNyYzIsIGRlc3QsIFRydXN0ZWRJbW0zMigwKSk7CkBAIC0xMTQwLDYgKzEx
NjgsMjIgQEAgcHVibGljOgogICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzcmMyLCBBZGRyZXNz
KHNjcmF0Y2gsIGFkZHJlc3Mub2Zmc2V0KSk7CiAgICAgfQogCisgICAgdm9pZCBzdG9yZVBhaXIz
MihUcnVzdGVkSW1tMzIgaW1tMSwgVHJ1c3RlZEltbTMyIGltbTIsIEJhc2VJbmRleCBhZGRyZXNz
KQorICAgIHsKKyAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBlbm91Z2ggdGVtcCByZWdpc3RlcnMg
dG8gbW92ZSBib3RoIGltbSBhbmQgY2FsY3VsYXRlIHRoZSBhZGRyZXNzCisgICAgICAgIHN0b3Jl
MzIoaW1tMSwgYWRkcmVzcyk7CisgICAgICAgIHN0b3JlMzIoaW1tMiwgYWRkcmVzcy53aXRoT2Zm
c2V0KDQpKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFJlZ2lzdGVySUQgc3JjMSwg
VHJ1c3RlZEltbTMyIGltbSwgY29uc3Qgdm9pZCogYWRkcmVzcykKKyAgICB7CisgICAgICAgIEFy
bUFkZHJlc3MgYXJtQWRkcmVzcyA9IHNldHVwQXJtQWRkcmVzcyhBYnNvbHV0ZUFkZHJlc3MoYWRk
cmVzcykpOworICAgICAgICBBU1NFUlQoYXJtQWRkcmVzcy50eXBlID09IEFybUFkZHJlc3M6Okhh
c09mZnNldCk7CisgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9IGdldENhY2hlZERhdGFUZW1w
UmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKKyAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2gpOwor
ICAgICAgICBzdG9yZVBhaXIzMihzcmMxLCBzY3JhdGNoLCBBZGRyZXNzKGFybUFkZHJlc3MuYmFz
ZSwgYXJtQWRkcmVzcy51Lm9mZnNldCkpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIo
UmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAg
ICAgewogICAgICAgICBBcm1BZGRyZXNzIGFybUFkZHJlc3MgPSBzZXR1cEFybUFkZHJlc3MoQWJz
b2x1dGVBZGRyZXNzKGFkZHJlc3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCmluZGV4IGVkNzdkMjk5NjU0Y2IzNzlhYjQ4
N2JiNzlmN2NiNDAwYTE4MTFkMzAuLjQ4ODg1ODQ2MGI3NWRhNTkxYTIzM2RhYzViMTgzYzZjYTE5
NmM0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJNSVBTLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlck1JUFMuaApAQCAtMTY1MSw2ICsxNjUxLDMwIEBAIHB1YmxpYzoKICAgICAgICAg
fQogICAgIH0KIAorICAgIHZvaWQgc3RvcmVQYWlyMzIoUmVnaXN0ZXJJRCBzcmMxLCBUcnVzdGVk
SW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKGltbSwgYWRk
clRlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIGFkZHJUZW1wUmVnaXN0
ZXIsIGFkZHJlc3MpOworICAgIH0KKworICAgIHZvaWQgc3RvcmVQYWlyMzIoVHJ1c3RlZEltbVB0
ciBpbW1QdHIsIFRydXN0ZWRJbW0zMiBpbW0zMiwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbW92ZShpbW1QdHIsIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbTMy
LCBkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmVQYWlyMzIoYWRkclRlbXBSZWdpc3Rl
ciwgZGF0YVRlbXBSZWdpc3RlciwgYWRkcmVzcyk7CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBh
aXIzMihUcnVzdGVkSW1tMzIgaW1tMSwgVHJ1c3RlZEltbTMyIGltbTIsIEFkZHJlc3MgYWRkcmVz
cykKKyAgICB7CisgICAgICAgIG1vdmUoaW1tMSwgYWRkclRlbXBSZWdpc3Rlcik7CisgICAgICAg
IFJlZ2lzdGVySUQgc2NyYXRjaCA9IGFkZHJUZW1wUmVnaXN0ZXI7CisgICAgICAgIGlmIChpbW0x
Lm1fdmFsdWUgIT0gaW1tMi5tX3ZhbHVlKSB7CisgICAgICAgICAgICBzY3JhdGNoID0gZGF0YVRl
bXBSZWdpc3RlcjsKKyAgICAgICAgICAgIG1vdmUoaW1tMiwgc2NyYXRjaCk7CisgICAgICAgIH0K
KyAgICAgICAgc3RvcmVQYWlyMzIoYWRkclRlbXBSZWdpc3Rlciwgc2NyYXRjaCwgYWRkcmVzcyk7
CisgICAgfQorCiAgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lzdGVy
SUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgc3RvcmVQYWlyMzIoc3Jj
MSwgc3JjMiwgZGVzdCwgVHJ1c3RlZEltbTMyKDApKTsKQEAgLTE2NzMsNiArMTY5NywxOSBAQCBw
dWJsaWM6CiAgICAgICAgIHN0b3JlMzIoc3JjMiwgYWRkcmVzcy53aXRoT2Zmc2V0KDQpKTsKICAg
ICB9CiAKKyAgICB2b2lkIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMiBpbW0xLCBUcnVzdGVkSW1t
MzIgaW1tMiwgQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBzdG9yZTMyKGltbTEs
IGFkZHJlc3MpOworICAgICAgICBzdG9yZTMyKGltbTIsIGFkZHJlc3Mud2l0aE9mZnNldCg0KSk7
CisgICAgfQorCisgICAgdm9pZCBzdG9yZVBhaXIzMihSZWdpc3RlcklEIHNyYzEsIFRydXN0ZWRJ
bW0zMiBpbW0sIGNvbnN0IHZvaWQqIGFkZHJlc3MpCisgICAgeworICAgICAgICBtb3ZlKFRydXN0
ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgICAgICBtb3ZlKGltbSwg
ZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgICAgIHN0b3JlUGFpcjMyKHNyYzEsIGRhdGFUZW1wUmVn
aXN0ZXIsIGFkZHJUZW1wUmVnaXN0ZXIpOworICAgIH0KKwogICAgIHZvaWQgc3RvcmVQYWlyMzIo
UmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAg
ICAgewogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIGFkZHJUZW1wUmVnaXN0
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCmluZGV4IGM3ZmU2Mjc5NmQwNDE2OWJkZDRiMGI0NDFkNTdkY2E3Nzhl
YzAwYzguLmJlYWM3MzZhNjUwMzg3YTAwYmUxOWMxZjQwYmQzMmE2NzA3MjZmZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKQEAgLTEwMjEsNiArMTAyMSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHN0b3JlNjQoc2Ny
YXRjaFJlZ2lzdGVyKCksIGFkZHJlc3MpOwogICAgIH0KIAorICAgIHZvaWQgc3RvcmU2NChUcnVz
dGVkSW1tUHRyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbW92ZShpbW0s
IHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIoKSwg
YWRkcmVzcyk7CisgICAgfQorCiAgICAgdm9pZCBzdG9yZTY0KFRydXN0ZWRJbW02NCBpbW0sIEJh
c2VJbmRleCBhZGRyZXNzKQogICAgIHsKICAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3Rl
cigpKTsKQEAgLTEwMzcsNyArMTA0Myw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHRyYW5z
ZmVyNjQoc3JjLCBkZXN0KTsKICAgICB9Ci0gICAgCisKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0
V2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQog
ICAgIHsKICAgICAgICAgcGFkQmVmb3JlUGF0Y2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXQuY3BwCmluZGV4IDI0MzI2YTY4MGIyOGU5NTZkMjY1NmQ0MjIzMTViYWYzNjA3
NDMwNjQuLjRhYTI0NjZjNWZlODcyOTRkMjhjMDhlN2RhMjQzODBjNjgxMTVmYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcApAQCAtNjM4LDggKzYzOCw3IEBAIHZv
aWQgT1NSRXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3Qg
T1NSRXhpdCYgZXhpdCwgY29uc3QKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ug
VW5ib3hlZENlbGxJbkdQUjoKLSAgICAgICAgICAgIGppdC5zdG9yZTMyKAotICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAorICAg
ICAgICAgICAgaml0LnN0b3JlQ2VsbCgKICAgICAgICAgICAgICAgICAmYml0d2lzZV9jYXN0PEVu
Y29kZWRWYWx1ZURlc2NyaXB0b3IqPihzY3JhdGNoICsgaW5kZXgpLT5hc0JpdHMudGFnKTsKICAg
ICAgICAgICAgIGJyZWFrOwogCkBAIC02NDcsOCArNjQ2LDcgQEAgdm9pZCBPU1JFeGl0Ojpjb21w
aWxlRXhpdChDQ2FsbEhlbHBlcnMmIGppdCwgVk0mIHZtLCBjb25zdCBPU1JFeGl0JiBleGl0LCBj
b25zdAogICAgICAgICAgICAgaml0LmxvYWQzMigKICAgICAgICAgICAgICAgICBBc3NlbWJseUhl
bHBlcnM6OnBheWxvYWRGb3IocmVjb3ZlcnkudmlydHVhbFJlZ2lzdGVyKCkpLAogICAgICAgICAg
ICAgICAgIEpTUkluZm86OmpzUmVnVDEwLnBheWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBqaXQu
bW92ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgSlNS
SW5mbzo6anNSZWdUMTAudGFnR1BSKCkpOwotICAgICAgICAgICAgaml0LnN0b3JlVmFsdWUoSlNS
SW5mbzo6anNSZWdUMTAsIHNjcmF0Y2ggKyBpbmRleCk7CisgICAgICAgICAgICBqaXQuc3RvcmVD
ZWxsKEpTUkluZm86OmpzUmVnVDEwLCBzY3JhdGNoICsgaW5kZXgpOwogICAgICAgICAgICAgYnJl
YWs7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCmluZGV4IDNkN2NiOGMwMTE5YmNjODIxODhjODA3Yzkz
NWExZjU2NTU3NzMwNjMuLjVjMjNlMGExMGUxN2UwM2RjOTZiNTg2MTVjZGJkM2Y1OGQ0YjdiYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
Q29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21w
aWxlckNvbW1vbi5jcHAKQEAgLTMyMiwxNCArMzIyLDggQEAgdm9pZCByZWlmeUlubGluZWRDYWxs
RnJhbWVzKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBPU1JFeGl0QmFzZSYgZXhpdCkKICAgICAg
ICAgaml0LnN0b3JlUHRyKGNhbGxlckZyYW1lR1BSLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3JCeXRlT2Zmc2V0KGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyRnJhbWVPZmZzZXQoKSkpOwogICAg
ICAgICB1aW50MzJfdCBsb2NhdGlvbkJpdHMgPSBDYWxsU2l0ZUluZGV4KGJhc2VsaW5lQ29kZUJs
b2NrLT5ieXRlY29kZUluZGV4Rm9yRXhpdChjb2RlT3JpZ2luLT5ieXRlY29kZUluZGV4KCkpKS5i
aXRzKCk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMy
KGxvY2F0aW9uQml0cyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3Rlcihp
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpKSk7Ci0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaWYgKCFpbmxp
bmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCi0gICAgICAgICAgICBqaXQuc3RvcmU2NChBc3Nl
bWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVD
YWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zv
cihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFt
ZVNsb3Q6OmNhbGxlZSkpKTsKLSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMg
dGhlIDMyLWJpdCBwYXJ0Ci0gICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihWaXJ0
dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENhbGxGcmFtZVNsb3Q6
OmNhbGxlZSkpKTsKLSAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwp
Ci0gICAgICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5
bG9hZEZvcihWaXJ0dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSkpKTsKLSNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KSAvLyBlbmRp
bmcgdGhlICNlbHNlIHBhcnQsIHNvIGRpcmVjdGx5IGFib3ZlIGlzIHRoZSAzMi1iaXQgcGFydAor
ICAgICAgICAgICAgaml0LnN0b3JlQ2VsbChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIo
aW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRy
ZXNzRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgQ2Fs
bEZyYW1lU2xvdDo6Y2FsbGVlKSkpOwogICAgIH0KIAogICAgIC8vIERvbid0IG5lZWQgdG8gc2V0
IHRoZSB0b3BsZXZlbCBjb2RlIG9yaWdpbiBpZiB3ZSBvbmx5IGRpZCBpbmxpbmUgdGFpbCBjYWxs
cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCBlMzkzMThjMzYzN2Q0YjliMDMxNzA3MDE5ZGJlYWVmMmViNzMwNGJhLi45OGU3MjRmYzc1
OTIwNWI4ZTA2ZTM3YTkwMzg5NTFiM2U4NDI0ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjQxMiw3ICsyNDEyLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2hlY2tBcmd1bWVudFR5cGVzKCkKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2UgRmx1c2hlZENlbGw6IHsKLSAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgSklUQ29tcGlsZXI6OnRhZ0Zvcih2aXJ0dWFsUmVn
aXN0ZXIpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0aW9uQ2hlY2soQmFkVHlwZSwgdmFsdWVTb3VyY2UsIG5vZGUsIG1faml0LmJyYW5jaElm
Tm90Q2VsbChKSVRDb21waWxlcjo6dGFnRm9yKHZpcnR1YWxSZWdpc3RlcikpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC05NzkzLDEzICs5Nzkz
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0FycmF5V2l0aFNwcmVhZChOb2Rl
KiBub2RlKQogICAgICAgICBpZiAoYml0VmVjdG9yLT5nZXQoaSkpIHsKICAgICAgICAgICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGltbXV0YWJsZUJ1dHRlcmZseSh0aGlzLCB1c2UpOwogICAgICAg
ICAgICAgR1BSUmVnIGltbXV0YWJsZUJ1dHRlcmZseUdQUiA9IGltbXV0YWJsZUJ1dHRlcmZseS5n
cHIoKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICAgICAgbV9qaXQuc3RvcmU2NChpbW11
dGFibGVCdXR0ZXJmbHlHUFIsICZidWZmZXJbaV0pOwotI2Vsc2UKLSAgICAgICAgICAgIGNoYXIq
IHBvaW50ZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhdGljX2Nhc3Q8dm9pZCo+KCZidWZmZXJb
aV0pKTsKLSAgICAgICAgICAgIG1faml0LnN0b3JlMzIoaW1tdXRhYmxlQnV0dGVyZmx5R1BSLCBw
b2ludGVyICsgUGF5bG9hZE9mZnNldCk7Ci0gICAgICAgICAgICBtX2ppdC5zdG9yZTMyKFRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgcG9pbnRlciArIFRhZ09mZnNldCk7Ci0jZW5kaWYK
KyAgICAgICAgICAgIG1faml0LnN0b3JlQ2VsbChpbW11dGFibGVCdXR0ZXJmbHlHUFIsICZidWZm
ZXJbaV0pOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgaW5w
dXQodGhpcywgdXNlKTsKICAgICAgICAgICAgIEpTVmFsdWVSZWdzIGlucHV0UmVncyA9IGlucHV0
LmpzVmFsdWVSZWdzKCk7CkBAIC0xMDE2Miw3ICsxMDE1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcnJheUluZGV4T2YoTm9kZSogbm9kZSkKICNpZiBVU0UoSlNWQUxVRTY0KQog
ICAgICAgICAgICAgYXV0byBmb3VuZCA9IG1faml0LmJyYW5jaDY0KENDYWxsSGVscGVyczo6RXF1
YWwsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0KSwgc2VhcmNoRWxlbWVudEdQUik7CiAjZWxzZQotICAgICAg
ICAgICAgYXV0byBza2lwID0gbV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwg
TWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3Nl
bWJsZXI6OlRpbWVzRWlnaHQsIFRhZ09mZnNldCksIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSk7CisgICAgICAgICAgICBhdXRvIHNraXAgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQsIFRhZ09mZnNldCkpOwogICAgICAgICAgICAgbV9qaXQubG9hZDMyKE1h
Y3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc3RvcmFnZUdQUiwgaW5kZXhHUFIsIE1hY3JvQXNzZW1i
bGVyOjpUaW1lc0VpZ2h0LCBQYXlsb2FkT2Zmc2V0KSwgdGVtcEdQUik7CiAgICAgICAgICAgICBh
dXRvIGZvdW5kID0gbV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgdGVtcEdQUiwg
c2VhcmNoRWxlbWVudEdQUik7CiAgICAgICAgICAgICBza2lwLmxpbmsoJm1faml0KTsKQEAgLTEx
NDI3LDE4ICsxMTQyMSw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdTdHJpbmdP
YmplY3QoTm9kZSogbm9kZSkKICAgICAgICAgcmVzdWx0R1BSLCBUcnVzdGVkSW1tUHRyKG5vZGUt
PnN0cnVjdHVyZSgpKSwgYnV0dGVyZmx5LCBzY3JhdGNoMUdQUiwgc2NyYXRjaDJHUFIsCiAgICAg
ICAgIHNsb3dQYXRoKTsKICAgICAKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIG1faml0LnN0b3Jl
NjQoCi0gICAgICAgIG9wZXJhbmRHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwg
SlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpKTsKLSNlbHNlCi0gICAgbV9q
aXQuc3RvcmUzMigKLSAgICAgICAgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAotICAg
ICAgICBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50
ZXJuYWxWYWx1ZU9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRh
ZykpKTsKLSAgICBtX2ppdC5zdG9yZTMyKAotICAgICAgICBvcGVyYW5kR1BSLAotICAgICAgICBK
SVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxW
YWx1ZU9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxvYWQp
KSk7Ci0jZW5kaWYKLSAgICAKKyAgICBtX2ppdC5zdG9yZUNlbGwob3BlcmFuZEdQUiwgSklUQ29t
cGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFsVmFsdWVP
ZmZzZXQoKSkpOworCiAgICAgbV9qaXQubXV0YXRvckZlbmNlKHZtKCkpOwogICAgIAogICAgIGFk
ZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDE5MWM1NTVkYjc1
YzkyMGIyMWIyNjFkODMwNWI5YWM3MDg2OTYzNjMuLjM4OTQyZmJjNGUzZDcyODRmZmE3YmU1ZjMx
OWRhNzViN2I5MTRlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMTEwOSwxMCArMTEwOSw3IEBAIEdQUlJlZyBT
cGVjdWxhdGl2ZUpJVDo6ZmlsbFNwZWN1bGF0ZUNlbGwoRWRnZSBlZGdlKQogICAgICAgICAgICAg
ICAgIEJhZFR5cGUsCiAgICAgICAgICAgICAgICAgSlNWYWx1ZVNvdXJjZShKSVRDb21waWxlcjo6
YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKSwKICAgICAgICAgICAgICAgICBlZGdlLAotICAg
ICAgICAgICAgICAgIG1faml0LmJyYW5jaDMyKAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Tm90RXF1YWwsCi0gICAgICAgICAgICAgICAgICAgIEpJVENvbXBpbGVyOjp0YWdG
b3IodmlydHVhbFJlZ2lzdGVyKSwKLSAgICAgICAgICAgICAgICAgICAgVHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkNlbGxUYWcpKSk7CisgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoSWZOb3RDZWxs
KEpJVENvbXBpbGVyOjp0YWdGb3IodmlydHVhbFJlZ2lzdGVyKSkpOwogICAgICAgICB9CiAgICAg
ICAgIEdQUlJlZyBncHIgPSBhbGxvY2F0ZSgpOwogICAgICAgICBtX2ppdC5sb2FkMzIoSklUQ29t
cGlsZXI6OnBheWxvYWRGb3IodmlydHVhbFJlZ2lzdGVyKSwgZ3ByKTsKQEAgLTEyNzcsNyArMTI3
NCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZU9iamVjdFN0cmljdEVx
dWFsaXR5KEVkZ2Ugb2JqZWN0Q2hpbGQsIEVkZ2UKIAogICAgIERGR19UWVBFX0NIRUNLKEpTVmFs
dWVTb3VyY2U6OnVuYm94ZWRDZWxsKG9wMUdQUiksIG9iamVjdENoaWxkLCBTcGVjT2JqZWN0LCBt
X2ppdC5icmFuY2hJZk5vdE9iamVjdChvcDFHUFIpKTsKIAotICAgIGJyYW5jaDMyKE1hY3JvQXNz
ZW1ibGVyOjpOb3RFcXVhbCwgb3AyLnRhZ0dQUigpLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIG5vdFRha2VuKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBub3RDZWxsID0gbV9q
aXQuYnJhbmNoSWZOb3RDZWxsKG9wMi50YWdHUFIoKSk7CisgICAgYWRkQnJhbmNoKG5vdENlbGws
IG5vdFRha2VuKTsKICAgICAKICAgICBpZiAodGFrZW4gPT0gbmV4dEJsb2NrKCkpIHsKICAgICAg
ICAgYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUiwgbm90
VGFrZW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhl
bHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3Bw
CmluZGV4IDJkNWRjNWRlMGYxNzNjMWQxYWQ4NTY0NTcyZTQwYjJlOTc1ZTU3OTAuLmM3MDIxODA3
ZTE1MzQyNGZkNzg4NTU2Yzk3ZjIyNDdkMDdmYzhkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lkIEFz
c2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNKU0RvdWJsZShHUFJSZWcgZ3ByKQogCiB2b2lkIEFz
c2VtYmx5SGVscGVyczo6aml0QXNzZXJ0SXNDZWxsKEdQUlJlZyBncHIpCiB7Ci0gICAgSnVtcCBj
aGVja0NlbGwgPSBicmFuY2gzMihFcXVhbCwgZ3ByLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZykpOworICAgIEp1bXAgY2hlY2tDZWxsID0gYnJhbmNoSWZDZWxsKGdwcik7CiAgICAgYWJv
cnRXaXRoUmVhc29uKEFISXNOb3RDZWxsKTsKICAgICBjaGVja0NlbGwubGluayh0aGlzKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDkzMTlj
NWYzYzcyMzYyZDNhYThiMDUzZDgyOTQ1YTI5ZTg3YTlmYTUuLmFlNWFkNDhjNjljNThmM2FhN2Rj
NGE4ODgxYTg3MGZlZmViNWNkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3Nl
bWJseUhlbHBlcnMuaApAQCAtMTM5LDE3ICsxMzksNDIgQEAgcHVibGljOgogI2VuZGlmCiAgICAg
fQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICB2b2lkIHN0b3JlQ2VsbChUIGNlbGws
IEFkZHJlc3MgYWRkcmVzcykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgor
ICAgIHZvaWQgc3RvcmVDZWxsKFQgY2VsbCwgVSBhZGRyZXNzKQogICAgIHsKICNpZiBVU0UoSlNW
QUxVRTY0KQogICAgICAgICBzdG9yZTY0KGNlbGwsIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAg
c3RvcmUzMihjZWxsLCBhZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwotICAgICAg
ICBzdG9yZTMyKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcy53aXRoT2Zm
c2V0KFRhZ09mZnNldCkpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYm
IFRhZ09mZnNldCA9PSA0LCAiQXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAg
ICBzdG9yZVBhaXIzMihjZWxsLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIGFkZHJl
c3MpOwogI2VuZGlmCiAgICAgfQotICAgIAorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAg
ICB2b2lkIHN0b3JlQ2VsbChKU1ZhbHVlUmVncyByZWdzLCBVIGFkZHJlc3MpCisgICAgeworI2lm
IFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHN0b3JlNjQocmVncy5ncHIoKSwgYWRkcmVzcyk7Cisj
ZWxzZQorICAgICAgICBzdGF0aWNfYXNzZXJ0KCFQYXlsb2FkT2Zmc2V0ICYmIFRhZ09mZnNldCA9
PSA0LCAiQXNzdW1lcyBsaXR0bGUtZW5kaWFuIHN5c3RlbSIpOworICAgICAgICBtb3ZlKEFzc2Vt
Ymx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCByZWdzLnRhZ0dQUigp
KTsKKyAgICAgICAgc3RvcmVQYWlyMzIocmVncy5wYXlsb2FkR1BSKCksIHJlZ3MudGFnR1BSKCks
IGFkZHJlc3MpOworI2VuZGlmCisgICAgfQorCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICB2
b2lkIHN0b3JlQ2VsbChjb25zdCB2b2lkKiBhZGRyZXNzKQorICAgIHsKKyNpZiBFTkFCTEUoQ09O
Q1VSUkVOVF9KUykKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRKSVQoKSkgewor
ICAgICAgICAgICAgc3RvcmUzMkNvbmN1cnJlbnRseShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgYWRkcmVzcyk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyNlbmRpZgorICAgICAgICBzdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBhZGRyZXNzKTsKKyAgICB9CisjZW5kaWYKKwogICAg
IHZvaWQgbG9hZENlbGwoQWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgZ3ByKQogICAgIHsKICNpZiBV
U0UoSlNWQUxVRTY0KQpAQCAtMTU4LDcgKzE4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDMy
KGFkZHJlc3Mud2l0aE9mZnNldChQYXlsb2FkT2Zmc2V0KSwgZ3ByKTsKICNlbmRpZgogICAgIH0K
LSAgICAKKwogICAgIHZvaWQgc3RvcmVWYWx1ZShKU1ZhbHVlUmVncyByZWdzLCBBZGRyZXNzIGFk
ZHJlc3MpCiAgICAgewogI2lmIFVTRShKU1ZBTFVFNjQpCkBAIC0yODcsOCArMzEyLDcgQEAgcHVi
bGljOgogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0b3JlNjQoVHJ1c3RlZEltbTY0KEpT
VmFsdWU6OmVuY29kZSh2YWx1ZSkpLCBhZGRyZXNzKTsKICNlbHNlCi0gICAgICAgIHN0b3JlMzIo
VHJ1c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkp
OwotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMih2YWx1ZS5wYXlsb2FkKCkpLCBhZGRyZXNz
LndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOworICAgICAgICBzdG9yZVBhaXIzMihUcnVzdGVk
SW1tMzIodmFsdWUucGF5bG9hZCgpKSwgVHJ1c3RlZEltbTMyKHZhbHVlLnRhZygpKSwgYWRkcmVz
cyk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTI5Nyw4ICszMjEsNyBAQCBwdWJsaWM6CiAjaWYgVVNF
KEpTVkFMVUU2NCkKICAgICAgICAgc3RvcmU2NChUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2Rl
KHZhbHVlKSksIGFkZHJlc3MpOwogI2Vsc2UKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIo
dmFsdWUudGFnKCkpLCBhZGRyZXNzLndpdGhPZmZzZXQoVGFnT2Zmc2V0KSk7Ci0gICAgICAgIHN0
b3JlMzIoVHJ1c3RlZEltbTMyKHZhbHVlLnBheWxvYWQoKSksIGFkZHJlc3Mud2l0aE9mZnNldChQ
YXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIHN0b3JlUGFpcjMyKFRydXN0ZWRJbW0zMih2YWx1ZS5w
YXlsb2FkKCkpLCBUcnVzdGVkSW1tMzIodmFsdWUudGFnKCkpLCBhZGRyZXNzKTsKICNlbmRpZgog
ICAgIH0KIApAQCAtNjM3LDE1ICs2NjAsMTYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCi0g
ICAgSnVtcCBicmFuY2hJZk5vdENlbGwoR1BSUmVnIHJlZywgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIEp1bXAg
YnJhbmNoSWZOb3RDZWxsKFQgbWF5YmVDZWxsLCBUYWdSZWdpc3RlcnNNb2RlIG1vZGUgPSBIYXZl
VGFnUmVnaXN0ZXJzKQogICAgIHsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBpZiAobW9k
ZSA9PSBIYXZlVGFnUmVnaXN0ZXJzKQotICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChO
b25aZXJvLCByZWcsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwotICAgICAgICByZXR1
cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIHJlZywgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENl
bGxNYXNrKSk7CisgICAgICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDY0KE5vblplcm8sIG1heWJl
Q2VsbCwgR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBicmFu
Y2hUZXN0NjQoTm9uWmVybywgbWF5YmVDZWxsLCBUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6Tm90Q2Vs
bE1hc2spKTsKICNlbHNlCiAgICAgICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKLSAgICAgICAgcmV0
dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwgcmVnLCBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTWFjcm9Bc3NlbWJs
ZXI6Ok5vdEVxdWFsLCBtYXliZUNlbGwsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSk7
CiAjZW5kaWYKICAgICB9CiAKQEAgLTY1NywxOCArNjgxLDIwIEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGJyYW5jaElmTm90Q2VsbChyZWdzLnRhZ0dQUigpLCBtb2RlKTsKICNlbmRpZgogICAg
IH0KLSAgICAKLSAgICBKdW1wIGJyYW5jaElmQ2VsbChHUFJSZWcgcmVnLCBUYWdSZWdpc3RlcnNN
b2RlIG1vZGUgPSBIYXZlVGFnUmVnaXN0ZXJzKQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
KyAgICBKdW1wIGJyYW5jaElmQ2VsbChUIG1heWJlQ2VsbCwgVGFnUmVnaXN0ZXJzTW9kZSBtb2Rl
ID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
aWYgKG1vZGUgPT0gSGF2ZVRhZ1JlZ2lzdGVycykKLSAgICAgICAgICAgIHJldHVybiBicmFuY2hU
ZXN0NjQoWmVybywgcmVnLCBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKLSAgICAgICAg
cmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCByZWcsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpOb3RD
ZWxsTWFzaykpOworICAgICAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3Q2NChaZXJvLCBtYXliZUNl
bGwsIEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNo
VGVzdDY0KFplcm8sIG1heWJlQ2VsbCwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6Ok5vdENlbGxNYXNr
KSk7CiAjZWxzZQogICAgICAgICBVTlVTRURfUEFSQU0obW9kZSk7Ci0gICAgICAgIHJldHVybiBi
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6RXF1YWwsIHJlZywgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkNlbGxUYWcpKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpFcXVh
bCwgbWF5YmVDZWxsLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOwogI2VuZGlmCiAg
ICAgfQorCiAgICAgSnVtcCBicmFuY2hJZkNlbGwoSlNWYWx1ZVJlZ3MgcmVncywgVGFnUmVnaXN0
ZXJzTW9kZSBtb2RlID0gSGF2ZVRhZ1JlZ2lzdGVycykKICAgICB7CiAjaWYgVVNFKEpTVkFMVUU2
NCkKQEAgLTExOTIsMTEgKzEyMTgsMTMgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQodmlydHVh
bFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2VHUFIsIHZp
cnR1YWxSZWdpc3Rlci5vZmZzZXQoKSAqIHNpemVvZihSZWdpc3RlcikgKyBUYWdPZmZzZXQpOwog
ICAgIH0KKwogICAgIHN0YXRpYyBBZGRyZXNzIHRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIgdmlydHVh
bFJlZ2lzdGVyKQogICAgIHsKICAgICAgICAgQVNTRVJUKHZpcnR1YWxSZWdpc3Rlci5pc1ZhbGlk
KCkpOwogICAgICAgICByZXR1cm4gQWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
dmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSArIFRhZ09mZnNldCk7
CiAgICAgfQorCiAgICAgc3RhdGljIEFkZHJlc3MgdGFnRm9yKE9wZXJhbmQgb3BlcmFuZCkKICAg
ICB7CiAgICAgICAgIEFTU0VSVCghb3BlcmFuZC5pc1RtcCgpKTsKQEAgLTEyMDgsMTEgKzEyMzYs
MTMgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7
CiAgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2VHUFIsIHZpcnR1YWxSZWdpc3Rlci5vZmZzZXQo
KSAqIHNpemVvZihSZWdpc3RlcikgKyBQYXlsb2FkT2Zmc2V0KTsKICAgICB9CisKICAgICBzdGF0
aWMgQWRkcmVzcyBwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlciB2aXJ0dWFsUmVnaXN0ZXIpCiAg
ICAgewogICAgICAgICBBU1NFUlQodmlydHVhbFJlZ2lzdGVyLmlzVmFsaWQoKSk7CiAgICAgICAg
IHJldHVybiBBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCB2aXJ0dWFsUmVnaXN0
ZXIub2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpICsgUGF5bG9hZE9mZnNldCk7CiAgICAgfQor
CiAgICAgc3RhdGljIEFkZHJlc3MgcGF5bG9hZEZvcihPcGVyYW5kIG9wZXJhbmQpCiAgICAgewog
ICAgICAgICBBU1NFUlQoIW9wZXJhbmQuaXNUbXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjMyXzY0LmNwcAppbmRleCAyZmVmNTNkYTYw
YTJlNzVhNDdjNjRmOGQzMDQwYzQ2MjIyYmI4OGVhLi4wZTg3ZTE2OTUzMWFjOTUxYmZhZjBmOWRl
ZDFiNmYyZmE2NjNkYjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Nh
bGxGcmFtZVNodWZmbGVyMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q2FsbEZyYW1lU2h1ZmZsZXIzMl82NC5jcHAKQEAgLTQ1LDkgKzQ1LDcgQEAgRGF0YUZvcm1hdCBD
YWxsRnJhbWVTaHVmZmxlcjo6ZW1pdFN0b3JlKENhY2hlZFJlY292ZXJ5JiBsb2NhdGlvbiwgTWFj
cm9Bc3NlbWJsZXIKICAgICAgICAgbV9qaXQuc3RvcmUzMihsb2NhdGlvbi5yZWNvdmVyeSgpLmdw
cigpLCBhZGRyZXNzLndpdGhPZmZzZXQoUGF5bG9hZE9mZnNldCkpOwogICAgICAgICByZXR1cm4g
RGF0YUZvcm1hdEludDMyOwogICAgIGNhc2UgVW5ib3hlZENlbGxJbkdQUjoKLSAgICAgICAgbV9q
aXQuc3RvcmUzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcp
LAotICAgICAgICAgICAgYWRkcmVzcy53aXRoT2Zmc2V0KFRhZ09mZnNldCkpOwotICAgICAgICBt
X2ppdC5zdG9yZTMyKGxvY2F0aW9uLnJlY292ZXJ5KCkuZ3ByKCksIGFkZHJlc3Mud2l0aE9mZnNl
dChQYXlsb2FkT2Zmc2V0KSk7CisgICAgICAgIG1faml0LnN0b3JlQ2VsbChsb2NhdGlvbi5yZWNv
dmVyeSgpLmdwcigpLCBhZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIERhdGFGb3JtYXRDZWxsOwog
ICAgIGNhc2UgQ29uc3RhbnQ6CiAgICAgICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKGxvY2F0
aW9uLnJlY292ZXJ5KCkuY29uc3RhbnQoKSwgYWRkcmVzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pTSW50ZXJmYWNlSklULmgKaW5kZXggNGI0MjlhMjY3Y2NlZTJjNjQ3M2VkYTcxYzlm
Yzk0NTRjNTgyMzAwYy4uMmFmYWViYmJmM2FmMjExY2ZlZDU5MTUxZjk5ZWQyMjE2OWMwNDM4YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJbnRlcmZhY2VKSVQuaApAQCAtNTksNyAr
NTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgICAgIEFTU0VSVCh2aXJ0dWFsUmVn
aXN0ZXIgPCBWaXJ0dWFsUmVnaXN0ZXIoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpKTsKICAg
ICAgICAgbG9hZFB0cihwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlciksIHBheWxvYWQpOwotICAg
ICAgICByZXR1cm4gYnJhbmNoMzIoTm90RXF1YWwsIHRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpLCBU
cnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpOworICAgICAgICByZXR1cm4gYnJhbmNoSWZO
b3RDZWxsKHRhZ0Zvcih2aXJ0dWFsUmVnaXN0ZXIpKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNJ
bnRlcmZhY2VKSVQ6Okp1bXAgSlNJbnRlcmZhY2VKSVQ6OmVtaXRMb2FkSW50MzIoVmlydHVhbFJl
Z2lzdGVyIHZpcnR1YWxSZWdpc3RlciwgUmVnaXN0ZXJJRCBkc3QpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>