<?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>222837</bug_id>
          
          <creation_ts>2021-03-05 15:30:18 -0800</creation_ts>
          <short_desc>Simplify CallbackAggregator in WebsiteDataStore::removeData()</short_desc>
          <delta_ts>2021-03-08 13:32:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222937</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1736600</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-05 15:30:18 -0800</bug_when>
    <thetext>Simplify CallbackAggregator in WebsiteDataStore::removeData().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736607</commentid>
    <comment_count>1</comment_count>
      <attachid>422442</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-05 15:35:04 -0800</bug_when>
    <thetext>Created attachment 422442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736687</commentid>
    <comment_count>2</comment_count>
      <attachid>422459</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-05 17:30:32 -0800</bug_when>
    <thetext>Created attachment 422459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736691</commentid>
    <comment_count>3</comment_count>
      <attachid>422460</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-05 17:46:23 -0800</bug_when>
    <thetext>Created attachment 422460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737162</commentid>
    <comment_count>4</comment_count>
      <attachid>422460</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-08 10:47:52 -0800</bug_when>
    <thetext>Comment on attachment 422460
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737171</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-08 11:04:52 -0800</bug_when>
    <thetext>Committed r274081: &lt;https://commits.webkit.org/r274081&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422460.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737172</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-08 11:05:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/75178483&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422442</attachid>
            <date>2021-03-05 15:35:04 -0800</date>
            <delta_ts>2021-03-05 17:30:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222837-20210305153503.patch</filename>
            <type>text/plain</type>
            <size>9226</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY3ZTYwYWJiMDNjN2I1Mjcz
MjAzNzQ0OTViNzQ3OWU1YTBiYTYzMmUuLjlkOTZlZTY3ZjJkY2YwOTBiNDJjZjBlOWY4ZmM2YTI0
ZjBmZjEwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDMtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBDYWxsYmFja0FnZ3Jl
Z2F0b3IgaW4gV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4MzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSBDYWxsYmFja0FnZ3JlZ2F0
b3IgaW4gV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSgpLiBXZSBkb24ndCBuZWVkIGFuIGV4
cGxpY2l0CisgICAgICAgIGNvdW50ZXIgZGF0YSBtZW1iZXIgb3IgZXhwbGljaXQgY2FsbHMgdG8g
YWRkUGVuZGluZ0NhbGxiYWNrKCkgLyByZW1vdmVQZW5kaW5nQ2FsbGJhY2soKS4KKyAgICAgICAg
V2UgY2FuIHNpbXBseSByZWx5IG9uIHRoZSByZWYgY291bnQgb2YgdGhlIENhbGxiYWNrQWdncmVn
YXRvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSk6CisK
IDIwMjEtMDMtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBN
YWtlIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoKSB0YWtlIGlu
IFNlY3VyaXR5T3JpZ2luRGF0YSBvYmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDhlODdhNWU5
OGY5MmZmMDZiMTk1NThlOWFiNjZhNTMzMTIyMjU0ZGYuLjE2MDc2YzBkODkzNTc3YzViYzFhZmY4
M2RjZDAwZTQ5Njg4ODg0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC04NDYsMTAgKzg0NiwxMSBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZQogICAgICAgICAgICAgb3JpZ2lucy5hcHBlbmQob3Jp
Z2luKTsKICAgICB9CiAKLSAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIDogVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpN
YWluUnVuTG9vcD4gewotICAgICAgICBDYWxsYmFja0FnZ3JlZ2F0b3IoV2Vic2l0ZURhdGFTdG9y
ZSYgZGF0YVN0b3JlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAg
ICAgICAgICA6IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQot
ICAgICAgICAgICAgLCBwcm90ZWN0ZWREYXRhU3RvcmUoZGF0YVN0b3JlKQorICAgIGNsYXNzIENh
bGxiYWNrQWdncmVnYXRvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDYWxsYmFja0Fn
Z3JlZ2F0b3IsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CisgICAgcHVi
bGljOgorICAgICAgICBDYWxsYmFja0FnZ3JlZ2F0b3IoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0
b3JlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAg
ICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
CisgICAgICAgICAgICAsIG1fcHJvdGVjdGVkRGF0YVN0b3JlKGRhdGFTdG9yZSkKICAgICAgICAg
ewogICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgfQpAQCAt
ODU3LDMzICs4NTgsMTIgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgfkNhbGxi
YWNrQWdncmVnYXRvcigpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CisgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZSht
X2NvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGFkZFBlbmRp
bmdDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgICAgICAgICBwZW5kaW5nQ2FsbGJhY2tzKys7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2b2lkIHJlbW92ZVBlbmRpbmdDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBBU1NFUlQocGVuZGluZ0Nh
bGxiYWNrcyk7Ci0gICAgICAgICAgICAtLXBlbmRpbmdDYWxsYmFja3M7Ci0KLSAgICAgICAgICAg
IGNhbGxJZk5lZWRlZCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgdm9pZCBjYWxsSWZOZWVkZWQo
KQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAg
ICAgICAgICAgaWYgKCFwZW5kaW5nQ2FsbGJhY2tzKQotICAgICAgICAgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH0K
LQotICAgICAgICB1bnNpZ25lZCBwZW5kaW5nQ2FsbGJhY2tzID0gMDsKLSAgICAgICAgRnVuY3Rp
b248dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcjsKLSAgICAgICAgUmVmPFdlYnNpdGVEYXRhU3Rv
cmU+IHByb3RlY3RlZERhdGFTdG9yZTsKKyAgICBwcml2YXRlOgorICAgICAgICBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CisgICAgICAgIFJlZjxXZWJzaXRl
RGF0YVN0b3JlPiBtX3Byb3RlY3RlZERhdGFTdG9yZTsKICAgICB9OwogCiAgICAgUmVmUHRyPENh
bGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gYWRvcHRSZWYobmV3IENhbGxi
YWNrQWdncmVnYXRvcigqdGhpcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKQEAgLTg5
NiwxMiArODc2LDggQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgfQogICAgICAg
ICAKICNpZiBFTkFCTEUoVklERU8pCi0gICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVu
ZGluZ0NhbGxiYWNrKCk7CiAgICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFtvcmlnaW5zID0gV1RG
TW92ZShvcmlnaW5zKSwgbWVkaWFDYWNoZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+bWVk
aWFDYWNoZURpcmVjdG9yeSgpLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0FnZ3JlZ2F0b3JdIHsK
ICAgICAgICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFDYWNoZUZv
ck9yaWdpbnMobWVkaWFDYWNoZURpcmVjdG9yeSwgb3JpZ2lucyk7Ci0gICAgICAgICAgICBXVEY6
OlJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAg
ICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICNlbmRpZgogICAgIH0KQEAgLTkzNiwxMCArOTEy
LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICNlbmRpZgogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAg
ICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS5kZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMobV9z
ZXNzaW9uSUQsIGRhdGFUeXBlcywgb3JpZ2lucywgY29va2llSG9zdE5hbWVzLCBIU1RTQ2FjaGVI
b3N0TmFtZXMsIHJlZ2lzdHJhYmxlRG9tYWlucywgW2NhbGxiYWNrQWdncmVnYXRvciwgcHJvY2Vz
c1Bvb2xdIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRp
bmdDYWxsYmFjaygpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBv
cmlnaW5zLCBjb29raWVIb3N0TmFtZXMsIEhTVFNDYWNoZUhvc3ROYW1lcywgcmVnaXN0cmFibGVE
b21haW5zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yLCBwcm9jZXNzUG9vbF0geyB9KTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtOTYxLDIwICs5MzQsMTIgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpy
ZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUK
ICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLQot
ICAgICAgICAgICAgcHJvY2Vzcy5kZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMobV9zZXNzaW9u
SUQsIGRhdGFUeXBlcywgb3JpZ2lucywgW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAg
ICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIHByb2Nlc3MuZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3Jd
IHsgfSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdl
YnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2FsdCkgfHwgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkNvb2tpZXMpKSkgewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3It
PmFkZFBlbmRpbmdDYWxsYmFjaygpOwotCi0gICAgICAgIG1fZGV2aWNlSWRIYXNoU2FsdFN0b3Jh
Z2UtPmRlbGV0ZURldmljZUlkSGFzaFNhbHRGb3JPcmlnaW5zKG9yaWdpbnMsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3JdIHsKLSAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGlu
Z0NhbGxiYWNrKCk7Ci0gICAgICAgIH0pOworICAgICAgICBtX2RldmljZUlkSGFzaFNhbHRTdG9y
YWdlLT5kZWxldGVEZXZpY2VJZEhhc2hTYWx0Rm9yT3JpZ2lucyhvcmlnaW5zLCBbY2FsbGJhY2tB
Z2dyZWdhdG9yXSB7IH0pOwogICAgIH0KIAogICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vi
c2l0ZURhdGFUeXBlOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSkgJiYgaXNQZXJzaXN0ZW50
KCkpIHsKQEAgLTk4NCwxNCArOTQ5LDEwIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3Zl
RGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlCiAgICAg
ICAgICAgICAgICAgb3JpZ2lucy5hZGQoY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbikpOwogICAgICAg
ICB9CiAKLSAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsK
ICAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW29yaWdpbnMgPSBXVEZNb3ZlKG9yaWdpbnMpLCBh
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNh
Y2hlRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCksIGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1
YmRpcmVjdG9yeU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVGbGF0Rmls
ZVN1YmRpcmVjdG9yeU5hbWUoKS5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yXSB7
CiAgICAgICAgICAgICBhdXRvIHN0b3JhZ2UgPSBXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZTo6Y3JlYXRlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnksIGFwcGxpY2F0aW9uQ2FjaGVG
bGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUpOwogICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBv
cmlnaW4gOiBvcmlnaW5zKQogICAgICAgICAgICAgICAgIHN0b3JhZ2UtPmRlbGV0ZUNhY2hlRm9y
T3JpZ2luKG9yaWdpbik7Ci0gICAgICAgICAgICBXVEY6OlJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdh
dG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9
KTsKICAgICB9CiAKQEAgLTEwMDIsMTQgKzk2MywxMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBW
ZQogICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKGNyb3NzVGhyZWFkQ29weShvcmlnaW4pKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxi
YWNrKCk7CiAgICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFtvcmlnaW5zID0gV1RGTW92ZShvcmln
aW5zKSwgY2FsbGJhY2tBZ2dyZWdhdG9yLCB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IG1fY29u
ZmlndXJhdGlvbi0+d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKS5pc29sYXRlZENvcHkoKV0gewog
ICAgICAgICAgICAgYXV0byBkYXRhYmFzZVRyYWNrZXIgPSBXZWJDb3JlOjpEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJXaXRoRGF0YWJhc2VQYXRoKHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KTsKICAg
ICAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKICAgICAgICAgICAgICAgICBk
YXRhYmFzZVRyYWNrZXItPmRlbGV0ZU9yaWdpbihvcmlnaW4pOwotICAgICAgICAgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAgICAg
ICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMTAyMCwxNCArOTc3LDggQEAgdm9pZCBX
ZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRh
dGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAgICBvcmlnaW5zLmFkZChjcm9zc1RocmVh
ZENvcHkob3JpZ2luKSk7CiAgICAgICAgIH0KIAotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3It
PmFkZFBlbmRpbmdDYWxsYmFjaygpOwogICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbbWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+bWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSgpLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0FnZ3JlZ2F0b3IsIG9yaWdpbnMgPSBX
VEZNb3ZlKG9yaWdpbnMpXSB7Ci0KICAgICAgICAgICAgIHJlbW92ZU1lZGlhS2V5cyhtZWRpYUtl
eXNTdG9yYWdlRGlyZWN0b3J5LCBvcmlnaW5zKTsKLQotICAgICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMTA1Myw4ICsxMDA0LDYgQEAgdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBl
cywgY29uc3QgVmUKICAgICAgICAgICAgICAgICAsIG1fcGx1Z2lucyhXVEZNb3ZlKHBsdWdpbnMp
KQogICAgICAgICAgICAgICAgICwgbV9ob3N0TmFtZXMoV1RGTW92ZShob3N0TmFtZXMpKQogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIG1fY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5k
aW5nQ2FsbGJhY2soKTsKLQogICAgICAgICAgICAgICAgIGRlbGV0ZVdlYnNpdGVEYXRhRm9yTmV4
dFBsdWdpbigpOwogICAgICAgICAgICAgfQogCkBAIC0xMDY2LDggKzEwMTUsNiBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0
YVR5cGVzLCBjb25zdCBWZQogICAgICAgICAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck5l
eHRQbHVnaW4oKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlmIChtX3BsdWdpbnMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fY2FsbGJhY2tBZ2dyZWdhdG9yLT5y
ZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLQogICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhp
czsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KQEAgLTEw
ODcsOSArMTAzNCw2IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlCiAgICAgICAgICAgICBTdGF0
ZTo6ZGVsZXRlRGF0YSgqY2FsbGJhY2tBZ2dyZWdhdG9yLCBwbHVnaW5zKCksIFdURk1vdmUoaG9z
dE5hbWVzKSk7CiAgICAgfQogI2VuZGlmCi0KLSAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQg
d2UgZG9uJ3QgaGF2ZSBhbnkgcGVuZGluZyBjYWxsYmFja3MuIElmIHNvLCB3ZSB3YW50IHRvIGRp
c3BhdGNoIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgcmlnaHQgYXdheS4KLSAgICBjYWxsYmFja0Fn
Z3JlZ2F0b3ItPmNhbGxJZk5lZWRlZCgpOwogfQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNl
dFNlcnZpY2VXb3JrZXJUaW1lb3V0Rm9yVGVzdGluZyhTZWNvbmRzIHNlY29uZHMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422459</attachid>
            <date>2021-03-05 17:30:32 -0800</date>
            <delta_ts>2021-03-05 17:46:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222837-20210305173031.patch</filename>
            <type>text/plain</type>
            <size>17931</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmYjc0Mzg1NjRmZWZlNzNh
MzQ0M2M1N2JmZjg1ZWQxNzVlODkyZjYuLmNhOTcwYTFhNzlhMzM0NDE4OGRiODE2OWZiMzg1NDM0
YmI5YThiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDMtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBDYWxsYmFja0FnZ3Jl
Z2F0b3IgaW4gV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4MzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSBDYWxsYmFja0FnZ3JlZ2F0
b3IgaW4gV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSgpLiBXZSBkb24ndCBuZWVkIGFuIGV4
cGxpY2l0CisgICAgICAgIGNvdW50ZXIgZGF0YSBtZW1iZXIgb3IgZXhwbGljaXQgY2FsbHMgdG8g
YWRkUGVuZGluZ0NhbGxiYWNrKCkgLyByZW1vdmVQZW5kaW5nQ2FsbGJhY2soKS4KKyAgICAgICAg
V2UgY2FuIHNpbXBseSByZWx5IG9uIHRoZSByZWYgY291bnQgb2YgdGhlIENhbGxiYWNrQWdncmVn
YXRvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSk6CisK
IDIwMjEtMDMtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
cGRhdGUgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om9yaWdpbnNXaXRoQ2FjaGUoKSB0byByZXR1
cm4gYSBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4gaW5zdGVhZCBvZiBhIFZlY3RvcjxSZWY8
U2VjdXJpdHlPcmlnaW4+PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmYzA2N2IzMDIyMGM1NWUxNTE1
ZjJlZDViNWZiMzQzYTEzOWUyZTY5Li4xZWZhOWQ2ZjhiOGJmZWZjMjFkYjE5MzI2YzRiZjA0Y2Vk
MzYyM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNjcyLDU5ICs2NzIsMzQgQEAgc3RhdGljIFBy
b2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRhdGFSZW1vdmFs
KE9wdGlvblNldDxXZWIKICAgICByZXR1cm4gcHJvY2Vzc0FjY2Vzc1R5cGU7CiB9CiAKLXZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBk
YXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIDogVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluUnVuTG9vcD4gewotICAgICAgICBDYWxsYmFja0FnZ3JlZ2F0b3IoV2Vic2l0ZURhdGFT
dG9yZSYgZGF0YVN0b3JlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgICAgICAgICA6IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KQotICAgICAgICAgICAgLCBwcm90ZWN0ZWREYXRhU3RvcmUoZGF0YVN0b3JlKQotICAgICAgICB7
Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgfkNhbGxiYWNrQWdncmVnYXRvcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGFkZFBlbmRp
bmdDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgICAgICAgICBwZW5kaW5nQ2FsbGJhY2tzKys7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2b2lkIHJlbW92ZVBlbmRpbmdDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBBU1NFUlQocGVuZGluZ0Nh
bGxiYWNrcyk7Ci0gICAgICAgICAgICAtLXBlbmRpbmdDYWxsYmFja3M7Ci0KLSAgICAgICAgICAg
IGNhbGxJZk5lZWRlZCgpOwotICAgICAgICB9CitjbGFzcyBSZW1vdmFsQ2FsbGJhY2tBZ2dyZWdh
dG9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdncmVnYXRvciwgV1RG
OjpEZXN0cnVjdGlvblRocmVhZDo6TWFpblJ1bkxvb3A+IHsKK3B1YmxpYzoKKyAgICBSZW1vdmFs
Q2FsbGJhY2tBZ2dyZWdhdG9yKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fcHJvdGVj
dGVkRGF0YVN0b3JlKGRhdGFTdG9yZSkKKyAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKKyAgICB9CiAKLSAgICAgICAgdm9pZCBjYWxsSWZOZWVkZWQoKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICAgICAg
aWYgKCFwZW5kaW5nQ2FsbGJhY2tzKQotICAgICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIH0KKyAgICB+UmVt
b3ZhbENhbGxiYWNrQWdncmVnYXRvcigpCisgICAgeworICAgICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShtX2Nv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgfQogCi0gICAgICAgIHVuc2lnbmVkIHBlbmRpbmdDYWxs
YmFja3MgPSAwOwotICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyOwot
ICAgICAgICBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gcHJvdGVjdGVkRGF0YVN0b3JlOwotICAgIH07
Citwcml2YXRlOgorICAgIFJlZjxXZWJzaXRlRGF0YVN0b3JlPiBtX3Byb3RlY3RlZERhdGFTdG9y
ZTsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IG1fY29tcGxldGlvbkhhbmRsZXI7Cit9
OwogCi0gICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0g
YWRvcHRSZWYobmV3IENhbGxiYWNrQWdncmVnYXRvcigqdGhpcywgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpKTsKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIEZ1bmN0
aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdn
cmVnYXRvciA9IGFkb3B0UmVmKG5ldyBSZW1vdmFsQ2FsbGJhY2tBZ2dyZWdhdG9yKCp0aGlzLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlm
IChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CiAgICAgICAgIG1f
cXVldWUtPmRpc3BhdGNoKFttb2RpZmllZFNpbmNlLCBtZWRpYUNhY2hlRGlyZWN0b3J5ID0gbV9j
b25maWd1cmF0aW9uLT5tZWRpYUNhY2hlRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCksIGNhbGxi
YWNrQWdncmVnYXRvcl0gewogICAgICAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
Y2xlYXJNZWRpYUNhY2hlKG1lZGlhQ2FjaGVEaXJlY3RvcnksIG1vZGlmaWVkU2luY2UpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBXVEY6OlJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5y
ZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAg
ICB9CiAjZW5kaWYKQEAgLTc0MCwxMCArNzE1LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpy
ZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgV2FsbFRpbWUK
ICAgICAgICAgRkFMTFRIUk9VR0g7CiAgICAgY2FzZSBQcm9jZXNzQWNjZXNzVHlwZTo6T25seUlm
TGF1bmNoZWQ6CiAgICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNzKSB7Ci0gICAgICAgICAgICBj
YWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+ZGVsZXRlV2Vic2l0ZURhdGEobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywg
bW9kaWZpZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNh
bGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vz
c2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAgICAgICAgIGRp
ZE5vdGlmeU5ldHdvcmtQcm9jZXNzVG9EZWxldGVXZWJzaXRlRGF0YSA9IHRydWU7CiAjZW5kaWYK
QEAgLTc3OCw2OCArNzUwLDM1IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICBw
cm9jZXNzLmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVk
U2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFja0Fn
Z3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBwcm9jZXNzLmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMs
IG1vZGlmaWVkU2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNl
SWRIYXNoU2FsdCkgfHwgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkNvb2tp
ZXMpKSkgewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygp
OwotCi0gICAgICAgIG1fZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UtPmRlbGV0ZURldmljZUlkSGFz
aFNhbHRPcmlnaW5zTW9kaWZpZWRTaW5jZShtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7Ci0gICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxs
YmFjaygpOwotICAgICAgICB9KTsKLSAgICB9CisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkRldmljZUlkSGFzaFNhbHQpIHx8IChkYXRhVHlwZXMuY29udGFpbnMo
V2Vic2l0ZURhdGFUeXBlOjpDb29raWVzKSkpCisgICAgICAgIG1fZGV2aWNlSWRIYXNoU2FsdFN0
b3JhZ2UtPmRlbGV0ZURldmljZUlkSGFzaFNhbHRPcmlnaW5zTW9kaWZpZWRTaW5jZShtb2RpZmll
ZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogCiAgICAgaWYgKGRhdGFUeXBlcy5j
b250YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlKSAmJiBp
c1BlcnNpc3RlbnQoKSkgewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdD
YWxsYmFjaygpOwotCiAgICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFthcHBsaWNhdGlvbkNhY2hl
RGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCku
aXNvbGF0ZWRDb3B5KCksIGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUg
PSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5h
bWUoKS5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yXSB7CiAgICAgICAgICAgICBh
dXRvIHN0b3JhZ2UgPSBXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y3JlYXRlKGFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnksIGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVj
dG9yeU5hbWUpOwotCiAgICAgICAgICAgICBzdG9yYWdlLT5kZWxldGVBbGxDYWNoZXMoKTsKLQot
ICAgICAgICAgICAgV1RGOjpSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrQWdncmVn
YXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGlu
Z0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQogCiAgICAg
aWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OldlYlNRTERhdGFiYXNlcykg
JiYgaXNQZXJzaXN0ZW50KCkpIHsKLSAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5k
aW5nQ2FsbGJhY2soKTsKLQogICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbd2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCku
aXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrQWdncmVnYXRvciwgbW9kaWZpZWRTaW5jZV0gewogICAg
ICAgICAgICAgV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0
aCh3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSktPmRlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2Uo
bW9kaWZpZWRTaW5jZSk7Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9y
LT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9CiAKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6TWVk
aWFLZXlzKSAmJiBpc1BlcnNpc3RlbnQoKSkgewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3It
PmFkZFBlbmRpbmdDYWxsYmFjaygpOwotCiAgICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFttZWRp
YUtleXNTdG9yYWdlRGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT5tZWRpYUtleXNTdG9yYWdl
RGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrQWdncmVnYXRvciwgbW9kaWZpZWRT
aW5jZV0gewogICAgICAgICAgICAgcmVtb3ZlTWVkaWFLZXlzKG1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnksIG1vZGlmaWVkU2luY2UpOwotCi0gICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdn
cmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5
cGU6OlNlYXJjaEZpZWxkUmVjZW50U2VhcmNoZXMpICYmIGlzUGVyc2lzdGVudCgpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7Ci0KICAgICAgICAg
bV9xdWV1ZS0+ZGlzcGF0Y2goW21vZGlmaWVkU2luY2UsIGNhbGxiYWNrQWdncmVnYXRvcl0gewog
ICAgICAgICAgICAgcGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhtb2RpZmllZFNpbmNlKTsK
LQotICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdD
YWxsYmFjaygpOwotICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0KIApAQCAtODU4
LDggKzc5Nyw2IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgICAgICAgICAgICAgLCBt
X3BsdWdpbnMoV1RGTW92ZShwbHVnaW5zKSkKICAgICAgICAgICAgICAgICAsIG1fbW9kaWZpZWRT
aW5jZShtb2RpZmllZFNpbmNlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG1fY2Fs
bGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLQogICAgICAgICAgICAgICAg
IGRlbGV0ZVdlYnNpdGVEYXRhRm9yTmV4dFBsdWdpbigpOwogICAgICAgICAgICAgfQogCkBAIC04
NzEsOCArODA4LDYgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgV2FsbFRpbWUKICAgICAgICAgICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JOZXh0UGx1Z2luKCkKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICBpZiAobV9wbHVnaW5zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBt
X2NhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0KICAgICAgICAg
ICAgICAgICAgICAgZGVsZXRlIHRoaXM7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgICAgICB9CkBAIC04OTQsMjEgKzgyOSwxMiBAQCB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxs
VGltZQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoZGF0
YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykp
IHsKLSAgICAgICAgaWYgKCFkaWROb3RpZnlOZXR3b3JrUHJvY2Vzc1RvRGVsZXRlV2Vic2l0ZURh
dGEpIHsKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuZGVsZXRlV2Vic2l0ZURhdGEobV9z
ZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0g
ewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxi
YWNrKCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIWRpZE5vdGlm
eU5ldHdvcmtQcm9jZXNzVG9EZWxldGVXZWJzaXRlRGF0YSkKKyAgICAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCkuZGVsZXRlV2Vic2l0ZURhdGEobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZp
ZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAotICAgICAgICBjYWxsYmFja0Fn
Z3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICBjbGVhclJlc291cmNlTG9h
ZFN0YXRpc3RpY3NJbldlYlByb2Nlc3NlcyhbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAg
ICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAg
ICB9KTsKKyAgICAgICAgY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMo
W2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICB9CiAjZW5kaWYKLQotICAgIC8vIFRoZXJl
J3MgYSBjaGFuY2UgdGhhdCB3ZSBkb24ndCBoYXZlIGFueSBwZW5kaW5nIGNhbGxiYWNrcy4gSWYg
c28sIHdlIHdhbnQgdG8gZGlzcGF0Y2ggdGhlIGNvbXBsZXRpb24gaGFuZGxlciByaWdodCBhd2F5
LgotICAgIGNhbGxiYWNrQWdncmVnYXRvci0+Y2FsbElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRh
VHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mIGRhdGFSZWNvcmRzLCBGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05MjAsNDcgKzg0Niw3IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiBkYXRhVHlwZXMsIGNvbnN0IFZlCiAgICAgICAgICAgICBvcmlnaW5zLmFwcGVuZChvcmlnaW4p
OwogICAgIH0KIAotICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgOiBUaHJlYWRTYWZlUmVm
Q291bnRlZDxDYWxsYmFja0FnZ3JlZ2F0b3IsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5S
dW5Mb29wPiB7Ci0gICAgICAgIENhbGxiYWNrQWdncmVnYXRvcihXZWJzaXRlRGF0YVN0b3JlJiBk
YXRhU3RvcmUsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAg
ICAgIDogY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi0gICAg
ICAgICAgICAsIHByb3RlY3RlZERhdGFTdG9yZShkYXRhU3RvcmUpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB+
Q2FsbGJhY2tBZ2dyZWdhdG9yKCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgYWRkUGVuZGluZ0NhbGxi
YWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsK
LSAgICAgICAgICAgIHBlbmRpbmdDYWxsYmFja3MrKzsKLSAgICAgICAgfQotCi0gICAgICAgIHZv
aWQgcmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgICAgIEFTU0VSVChwZW5kaW5nQ2FsbGJhY2tz
KTsKLSAgICAgICAgICAgIC0tcGVuZGluZ0NhbGxiYWNrczsKLQotICAgICAgICAgICAgY2FsbElm
TmVlZGVkKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGNhbGxJZk5lZWRlZCgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAg
ICBpZiAoIXBlbmRpbmdDYWxsYmFja3MpCi0gICAgICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHVuc2lnbmVkIHBlbmRpbmdDYWxsYmFja3MgPSAwOwotICAgICAgICBGdW5jdGlvbjx2b2lk
KCk+IGNvbXBsZXRpb25IYW5kbGVyOwotICAgICAgICBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gcHJv
dGVjdGVkRGF0YVN0b3JlOwotICAgIH07Ci0KLSAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9y
PiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBhZG9wdFJlZihuZXcgQ2FsbGJhY2tBZ2dyZWdhdG9yKCp0
aGlzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGF1dG8gY2FsbGJhY2tBZ2dy
ZWdhdG9yID0gYWRvcHRSZWYobmV3IFJlbW92YWxDYWxsYmFja0FnZ3JlZ2F0b3IoKnRoaXMsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgCiAgICAgaWYgKGRhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkpIHsKICAgICAgICAgSGFzaFNldDxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnM7CkBAIC05NzAsMTIgKzg1Niw4IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBl
PiBkYXRhVHlwZXMsIGNvbnN0IFZlCiAgICAgICAgIH0KICAgICAgICAgCiAjaWYgRU5BQkxFKFZJ
REVPKQotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwog
ICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbb3JpZ2lucyA9IFdURk1vdmUob3JpZ2lucyksIG1l
ZGlhQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPm1lZGlhQ2FjaGVEaXJlY3Rvcnko
KS5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yXSB7CiAgICAgICAgICAgICBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKG1lZGlhQ2Fj
aGVEaXJlY3RvcnksIG9yaWdpbnMpOwotICAgICAgICAgICAgV1RGOjpSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNr
QWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAjZW5kaWYKICAgICB9CkBAIC0xMDEwLDEwICs4OTIsNyBAQCB2b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5
cGVzLCBjb25zdCBWZQogI2VuZGlmCiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhbGxi
YWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICBuZXR3b3Jr
UHJvY2VzcygpLmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhtX3Nlc3Npb25JRCwgZGF0YVR5
cGVzLCBvcmlnaW5zLCBjb29raWVIb3N0TmFtZXMsIEhTVFNDYWNoZUhvc3ROYW1lcywgcmVnaXN0
cmFibGVEb21haW5zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yLCBwcm9jZXNzUG9vbF0gewotICAgICAg
ICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0g
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuZGVsZXRlV2Vic2l0
ZURhdGFGb3JPcmlnaW5zKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG9yaWdpbnMsIGNvb2tpZUhv
c3ROYW1lcywgSFNUU0NhY2hlSG9zdE5hbWVzLCByZWdpc3RyYWJsZURvbWFpbnMsIFtjYWxsYmFj
a0FnZ3JlZ2F0b3IsIHByb2Nlc3NQb29sXSB7IH0pOwogICAgICAgICB9CiAgICAgfQogCkBAIC0x
MDM1LDIwICs5MTQsMTIgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY2Fs
bGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLQotICAgICAgICAgICAgcHJv
Y2Vzcy5kZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywg
b3JpZ2lucywgW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNr
QWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgIHByb2Nlc3MuZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKG1fc2Vzc2lvbklE
LCBkYXRhVHlwZXMsIG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgICAg
IH0KICAgICB9CiAKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
RGV2aWNlSWRIYXNoU2FsdCkgfHwgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6
OkNvb2tpZXMpKSkgewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxs
YmFjaygpOwotCi0gICAgICAgIG1fZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UtPmRlbGV0ZURldmlj
ZUlkSGFzaFNhbHRGb3JPcmlnaW5zKG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAg
ICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0g
ICAgICAgIH0pOworICAgICAgICBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlLT5kZWxldGVEZXZp
Y2VJZEhhc2hTYWx0Rm9yT3JpZ2lucyhvcmlnaW5zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0p
OwogICAgIH0KIAogICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSkgJiYgaXNQZXJzaXN0ZW50KCkpIHsKQEAgLTEwNTgs
MTQgKzkyOSwxMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZQogICAgICAgICAgICAgICAgIG9y
aWdpbnMuYWRkKGNyb3NzVGhyZWFkQ29weShvcmlnaW4pKTsKICAgICAgICAgfQogCi0gICAgICAg
IGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CiAgICAgICAgIG1fcXVl
dWUtPmRpc3BhdGNoKFtvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKSwgYXBwbGljYXRpb25DYWNo
ZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgp
Lmlzb2xhdGVkQ29weSgpLCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1l
ID0gbV9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlO
YW1lKCkuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrQWdncmVnYXRvcl0gewogICAgICAgICAgICAg
YXV0byBzdG9yYWdlID0gV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNyZWF0ZShh
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJl
Y3RvcnlOYW1lKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2luIDogb3JpZ2lu
cykKICAgICAgICAgICAgICAgICBzdG9yYWdlLT5kZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4p
OwotICAgICAgICAgICAgV1RGOjpSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrQWdn
cmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVu
ZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQogCkBA
IC0xMDc2LDE0ICs5NDMsMTAgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAg
ICAgICBvcmlnaW5zLmFkZChjcm9zc1RocmVhZENvcHkob3JpZ2luKSk7CiAgICAgICAgIH0KIAot
ICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwogICAgICAg
ICBtX3F1ZXVlLT5kaXNwYXRjaChbb3JpZ2lucyA9IFdURk1vdmUob3JpZ2lucyksIGNhbGxiYWNr
QWdncmVnYXRvciwgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPndl
YlNRTERhdGFiYXNlRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgICAgIGF1
dG8gZGF0YWJhc2VUcmFja2VyID0gV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0
aERhdGFiYXNlUGF0aCh3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSk7CiAgICAgICAgICAgICBmb3Ig
KGF1dG8mIG9yaWdpbiA6IG9yaWdpbnMpCiAgICAgICAgICAgICAgICAgZGF0YWJhc2VUcmFja2Vy
LT5kZWxldGVPcmlnaW4ob3JpZ2luKTsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNw
YXRjaChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dy
ZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9CiAKQEAgLTEwOTQsMTQgKzk1Nyw4IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0
IFZlCiAgICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbikp
OwogICAgICAgICB9CiAKLSAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2Fs
bGJhY2soKTsKICAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW21lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKS5pc29s
YXRlZENvcHkoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yLCBvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5z
KV0gewotCiAgICAgICAgICAgICByZW1vdmVNZWRpYUtleXMobWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeSwgb3JpZ2lucyk7Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9y
LT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9CiAKQEAgLTExMjcsOCArOTg0LDYgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1v
dmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAg
ICAgICAgICAgICAgICAsIG1fcGx1Z2lucyhXVEZNb3ZlKHBsdWdpbnMpKQogICAgICAgICAgICAg
ICAgICwgbV9ob3N0TmFtZXMoV1RGTW92ZShob3N0TmFtZXMpKQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIG1fY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsK
LQogICAgICAgICAgICAgICAgIGRlbGV0ZVdlYnNpdGVEYXRhRm9yTmV4dFBsdWdpbigpOwogICAg
ICAgICAgICAgfQogCkBAIC0xMTQwLDggKzk5NSw2IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6
cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZl
CiAgICAgICAgICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yTmV4dFBsdWdpbigpCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKG1fcGx1Z2lucy5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgbV9jYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxs
YmFjaygpOwotCiAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQpAQCAtMTE2MSw5ICsxMDE0LDYgQEAg
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgIFN0YXRlOjpkZWxldGVEYXRhKCpj
YWxsYmFja0FnZ3JlZ2F0b3IsIHBsdWdpbnMoKSwgV1RGTW92ZShob3N0TmFtZXMpKTsKICAgICB9
CiAjZW5kaWYKLQotICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCB3ZSBkb24ndCBoYXZlIGFu
eSBwZW5kaW5nIGNhbGxiYWNrcy4gSWYgc28sIHdlIHdhbnQgdG8gZGlzcGF0Y2ggdGhlIGNvbXBs
ZXRpb24gaGFuZGxlciByaWdodCBhd2F5LgotICAgIGNhbGxiYWNrQWdncmVnYXRvci0+Y2FsbElm
TmVlZGVkKCk7CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U2VydmljZVdvcmtlclRp
bWVvdXRGb3JUZXN0aW5nKFNlY29uZHMgc2Vjb25kcykK
</data>
<flag name="commit-queue"
          id="441544"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422460</attachid>
            <date>2021-03-05 17:46:23 -0800</date>
            <delta_ts>2021-03-08 11:04:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222837-20210305174622.patch</filename>
            <type>text/plain</type>
            <size>20369</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmYjc0Mzg1NjRmZWZlNzNh
MzQ0M2M1N2JmZjg1ZWQxNzVlODkyZjYuLmNhOTcwYTFhNzlhMzM0NDE4OGRiODE2OWZiMzg1NDM0
YmI5YThiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDMtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBDYWxsYmFja0FnZ3Jl
Z2F0b3IgaW4gV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4MzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSBDYWxsYmFja0FnZ3JlZ2F0
b3IgaW4gV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSgpLiBXZSBkb24ndCBuZWVkIGFuIGV4
cGxpY2l0CisgICAgICAgIGNvdW50ZXIgZGF0YSBtZW1iZXIgb3IgZXhwbGljaXQgY2FsbHMgdG8g
YWRkUGVuZGluZ0NhbGxiYWNrKCkgLyByZW1vdmVQZW5kaW5nQ2FsbGJhY2soKS4KKyAgICAgICAg
V2UgY2FuIHNpbXBseSByZWx5IG9uIHRoZSByZWYgY291bnQgb2YgdGhlIENhbGxiYWNrQWdncmVn
YXRvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YSk6CisK
IDIwMjEtMDMtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
cGRhdGUgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om9yaWdpbnNXaXRoQ2FjaGUoKSB0byByZXR1
cm4gYSBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4gaW5zdGVhZCBvZiBhIFZlY3RvcjxSZWY8
U2VjdXJpdHlPcmlnaW4+PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmYzA2N2IzMDIyMGM1NWUxNTE1
ZjJlZDViNWZiMzQzYTEzOWUyZTY5Li4yMzdiMjEzYTM5MDQxODA3Yzk0YTMyMjNiYjc5ZGNiOWZh
NzZlMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNjcyLDU5ICs2NzIsMzQgQEAgc3RhdGljIFBy
b2Nlc3NBY2Nlc3NUeXBlIGNvbXB1dGVXZWJQcm9jZXNzQWNjZXNzVHlwZUZvckRhdGFSZW1vdmFs
KE9wdGlvblNldDxXZWIKICAgICByZXR1cm4gcHJvY2Vzc0FjY2Vzc1R5cGU7CiB9CiAKLXZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBk
YXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBzdHJ1Y3QgQ2FsbGJhY2tBZ2dyZWdhdG9yIDogVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q2FsbGJhY2tBZ2dyZWdhdG9yLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFk
OjpNYWluUnVuTG9vcD4gewotICAgICAgICBDYWxsYmFja0FnZ3JlZ2F0b3IoV2Vic2l0ZURhdGFT
dG9yZSYgZGF0YVN0b3JlLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi0g
ICAgICAgICAgICA6IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KQotICAgICAgICAgICAgLCBwcm90ZWN0ZWREYXRhU3RvcmUoZGF0YVN0b3JlKQotICAgICAgICB7
Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgfkNhbGxiYWNrQWdncmVnYXRvcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGFkZFBlbmRp
bmdDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgICAgICAgICBwZW5kaW5nQ2FsbGJhY2tzKys7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2b2lkIHJlbW92ZVBlbmRpbmdDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBBU1NFUlQocGVuZGluZ0Nh
bGxiYWNrcyk7Ci0gICAgICAgICAgICAtLXBlbmRpbmdDYWxsYmFja3M7Ci0KLSAgICAgICAgICAg
IGNhbGxJZk5lZWRlZCgpOwotICAgICAgICB9CitjbGFzcyBSZW1vdmFsQ2FsbGJhY2tBZ2dyZWdh
dG9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlbW92YWxDYWxsYmFja0FnZ3JlZ2F0
b3IsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CitwdWJsaWM6CisgICAg
UmVtb3ZhbENhbGxiYWNrQWdncmVnYXRvcihXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBt
X3Byb3RlY3RlZERhdGFTdG9yZShkYXRhU3RvcmUpCisgICAgICAgICwgbV9jb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CisgICAgfQogCi0gICAgICAgIHZvaWQgY2FsbElmTmVlZGVkKCkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAg
ICAgICAgIGlmICghcGVuZGluZ0NhbGxiYWNrcykKLSAgICAgICAgICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICB9Cisg
ICAgflJlbW92YWxDYWxsYmFja0FnZ3JlZ2F0b3IoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1v
dmUobV9jb21wbGV0aW9uSGFuZGxlcikpOworICAgIH0KIAotICAgICAgICB1bnNpZ25lZCBwZW5k
aW5nQ2FsbGJhY2tzID0gMDsKLSAgICAgICAgRnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFu
ZGxlcjsKLSAgICAgICAgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IHByb3RlY3RlZERhdGFTdG9yZTsK
LSAgICB9OworcHJpdmF0ZToKKyAgICBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gbV9wcm90ZWN0ZWRE
YXRhU3RvcmU7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBtX2NvbXBsZXRpb25IYW5k
bGVyOworfTsKIAotICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVn
YXRvciA9IGFkb3B0UmVmKG5ldyBDYWxsYmFja0FnZ3JlZ2F0b3IoKnRoaXMsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKSk7Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0
aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZSBtb2RpZmllZFNpbmNl
LCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxs
YmFja0FnZ3JlZ2F0b3IgPSBhZG9wdFJlZihuZXcgUmVtb3ZhbENhbGxiYWNrQWdncmVnYXRvcigq
dGhpcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKIAogI2lmIEVOQUJMRShWSURFTykK
ICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hlKSkg
ewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwogICAg
ICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbbW9kaWZpZWRTaW5jZSwgbWVkaWFDYWNoZURpcmVjdG9y
eSA9IG1fY29uZmlndXJhdGlvbi0+bWVkaWFDYWNoZURpcmVjdG9yeSgpLmlzb2xhdGVkQ29weSgp
LCBjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKICAgICAgICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmNsZWFyTWVkaWFDYWNoZShtZWRpYUNhY2hlRGlyZWN0b3J5LCBtb2RpZmllZFNpbmNl
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgV1RGOjpSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAgICAgfQogI2VuZGlmCkBAIC03NDAsMTAgKzcxNSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdh
bGxUaW1lCiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgUHJvY2Vzc0FjY2Vzc1R5cGU6
Ok9ubHlJZkxhdW5jaGVkOgogICAgICAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykgewotICAgICAg
ICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAg
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRh
VHlwZXMsIG1vZGlmaWVkU2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAg
ICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBtX25ldHdvcmtQcm9jZXNzLT5kZWxldGVXZWJzaXRlRGF0
YShtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7IH0pOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgICAg
ICAgICBkaWROb3RpZnlOZXR3b3JrUHJvY2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEgPSB0cnVlOwog
I2VuZGlmCkBAIC03NzgsNjggKzc1MCwzNSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92
ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAg
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAgICAg
ICAgICAgcHJvY2Vzcy5kZWxldGVXZWJzaXRlRGF0YShtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBt
b2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2Fs
bGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgcHJvY2Vzcy5kZWxldGVXZWJzaXRlRGF0YShtX3Nlc3Npb25JRCwgZGF0
YVR5cGVzLCBtb2RpZmllZFNpbmNlLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgICAg
ICB9CiAgICAgfQogCi0gICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6
OkRldmljZUlkSGFzaFNhbHQpIHx8IChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpDb29raWVzKSkpIHsKLSAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2Fs
bGJhY2soKTsKLQotICAgICAgICBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlLT5kZWxldGVEZXZp
Y2VJZEhhc2hTYWx0T3JpZ2luc01vZGlmaWVkU2luY2UobW9kaWZpZWRTaW5jZSwgW2NhbGxiYWNr
QWdncmVnYXRvcl0gewotICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5k
aW5nQ2FsbGJhY2soKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGlmIChkYXRhVHlwZXMuY29u
dGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpEZXZpY2VJZEhhc2hTYWx0KSB8fCAoZGF0YVR5cGVzLmNv
bnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6Q29va2llcykpKQorICAgICAgICBtX2RldmljZUlkSGFz
aFNhbHRTdG9yYWdlLT5kZWxldGVEZXZpY2VJZEhhc2hTYWx0T3JpZ2luc01vZGlmaWVkU2luY2Uo
bW9kaWZpZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAogICAgIGlmIChkYXRh
VHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZSkgJiYgaXNQZXJzaXN0ZW50KCkpIHsKLSAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQ
ZW5kaW5nQ2FsbGJhY2soKTsKLQogICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbYXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZURpcmVj
dG9yeSgpLmlzb2xhdGVkQ29weSgpLCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3Rv
cnlOYW1lID0gbV9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJl
Y3RvcnlOYW1lKCkuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrQWdncmVnYXRvcl0gewogICAgICAg
ICAgICAgYXV0byBzdG9yYWdlID0gV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNy
ZWF0ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVT
dWJkaXJlY3RvcnlOYW1lKTsKLQogICAgICAgICAgICAgc3RvcmFnZS0+ZGVsZXRlQWxsQ2FjaGVz
KCk7Ci0KLSAgICAgICAgICAgIFdURjo6UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFj
a0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92
ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0K
IAogICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpXZWJTUUxEYXRh
YmFzZXMpICYmIGlzUGVyc2lzdGVudCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+
YWRkUGVuZGluZ0NhbGxiYWNrKCk7Ci0KICAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3dlYlNR
TERhdGFiYXNlRGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT53ZWJTUUxEYXRhYmFzZURpcmVj
dG9yeSgpLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0FnZ3JlZ2F0b3IsIG1vZGlmaWVkU2luY2Vd
IHsKICAgICAgICAgICAgIFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcldpdGhEYXRh
YmFzZVBhdGgod2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpLT5kZWxldGVEYXRhYmFzZXNNb2RpZmll
ZFNpbmNlKG1vZGlmaWVkU2luY2UpOwotCi0gICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdn
cmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfQogCiAgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5
cGU6Ok1lZGlhS2V5cykgJiYgaXNQZXJzaXN0ZW50KCkpIHsKLSAgICAgICAgY2FsbGJhY2tBZ2dy
ZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLQogICAgICAgICBtX3F1ZXVlLT5kaXNwYXRj
aChbbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+bWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSgpLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0FnZ3JlZ2F0b3IsIG1v
ZGlmaWVkU2luY2VdIHsKICAgICAgICAgICAgIHJlbW92ZU1lZGlhS2V5cyhtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5LCBtb2RpZmllZFNpbmNlKTsKLQotICAgICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgIH0KIAogICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0
ZURhdGFUeXBlOjpTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzKSAmJiBpc1BlcnNpc3RlbnQoKSkg
ewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotCiAg
ICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFttb2RpZmllZFNpbmNlLCBjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsKICAgICAgICAgICAgIHBsYXRmb3JtUmVtb3ZlUmVjZW50U2VhcmNoZXMobW9kaWZpZWRT
aW5jZSk7Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tB
Z2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQ
ZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9CiAK
QEAgLTg0NywxOSArNzg2LDE3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIFdhbGxUaW1lCiAgICAgaWYgKGRh
dGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OlBsdWdJbkRhdGEpICYmIGlzUGVyc2lz
dGVudCgpKSB7CiAgICAgICAgIGNsYXNzIFN0YXRlIHsKICAgICAgICAgcHVibGljOgotICAgICAg
ICAgICAgc3RhdGljIHZvaWQgZGVsZXRlRGF0YShSZWY8Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmIGNh
bGxiYWNrQWdncmVnYXRvciwgVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+JiYgcGx1Z2lucywgV2Fs
bFRpbWUgbW9kaWZpZWRTaW5jZSkKKyAgICAgICAgICAgIHN0YXRpYyB2b2lkIGRlbGV0ZURhdGEo
UmVmPFJlbW92YWxDYWxsYmFja0FnZ3JlZ2F0b3I+JiYgY2FsbGJhY2tBZ2dyZWdhdG9yLCBWZWN0
b3I8UGx1Z2luTW9kdWxlSW5mbz4mJiBwbHVnaW5zLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQog
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIG5ldyBTdGF0ZShXVEZNb3ZlKGNhbGxiYWNr
QWdncmVnYXRvciksIFdURk1vdmUocGx1Z2lucyksIG1vZGlmaWVkU2luY2UpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBTdGF0ZShSZWY8Q2FsbGJhY2tB
Z2dyZWdhdG9yPiYmIGNhbGxiYWNrQWdncmVnYXRvciwgVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+
JiYgcGx1Z2lucywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKKyAgICAgICAgICAgIFN0YXRlKFJl
ZjxSZW1vdmFsQ2FsbGJhY2tBZ2dyZWdhdG9yPiYmIGNhbGxiYWNrQWdncmVnYXRvciwgVmVjdG9y
PFBsdWdpbk1vZHVsZUluZm8+JiYgcGx1Z2lucywgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKICAg
ICAgICAgICAgICAgICA6IG1fY2FsbGJhY2tBZ2dyZWdhdG9yKFdURk1vdmUoY2FsbGJhY2tBZ2dy
ZWdhdG9yKSkKICAgICAgICAgICAgICAgICAsIG1fcGx1Z2lucyhXVEZNb3ZlKHBsdWdpbnMpKQog
ICAgICAgICAgICAgICAgICwgbV9tb2RpZmllZFNpbmNlKG1vZGlmaWVkU2luY2UpCiAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgbV9jYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdD
YWxsYmFjaygpOwotCiAgICAgICAgICAgICAgICAgZGVsZXRlV2Vic2l0ZURhdGFGb3JOZXh0UGx1
Z2luKCk7CiAgICAgICAgICAgICB9CiAKQEAgLTg3MSw4ICs4MDgsNiBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVz
LCBXYWxsVGltZQogICAgICAgICAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck5leHRQbHVn
aW4oKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlmIChtX3BsdWdpbnMuaXNFbXB0
eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQ
ZW5kaW5nQ2FsbGJhY2soKTsKLQogICAgICAgICAgICAgICAgICAgICBkZWxldGUgdGhpczsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KQEAgLTg4Myw3ICs4
MTgsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICBSZWY8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBtX2NhbGxi
YWNrQWdncmVnYXRvcjsKKyAgICAgICAgICAgIFJlZjxSZW1vdmFsQ2FsbGJhY2tBZ2dyZWdhdG9y
PiBtX2NhbGxiYWNrQWdncmVnYXRvcjsKICAgICAgICAgICAgIFZlY3RvcjxQbHVnaW5Nb2R1bGVJ
bmZvPiBtX3BsdWdpbnM7CiAgICAgICAgICAgICBXYWxsVGltZSBtX21vZGlmaWVkU2luY2U7CiAg
ICAgICAgIH07CkBAIC04OTQsMjEgKzgyOSwxMiBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJl
bW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGltZQog
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoZGF0YVR5cGVz
LmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcykpIHsKLSAg
ICAgICAgaWYgKCFkaWROb3RpZnlOZXR3b3JrUHJvY2Vzc1RvRGVsZXRlV2Vic2l0ZURhdGEpIHsK
LSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuZGVsZXRlV2Vic2l0ZURhdGEobV9zZXNzaW9u
SUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAg
ICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIWRpZE5vdGlmeU5ldHdv
cmtQcm9jZXNzVG9EZWxldGVXZWJzaXRlRGF0YSkKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNz
KCkuZGVsZXRlV2Vic2l0ZURhdGEobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywgbW9kaWZpZWRTaW5j
ZSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0
b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICBjbGVhclJlc291cmNlTG9hZFN0YXRp
c3RpY3NJbldlYlByb2Nlc3NlcyhbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICBj
YWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICB9KTsK
KyAgICAgICAgY2xlYXJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzSW5XZWJQcm9jZXNzZXMoW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKICAgICB9CiAjZW5kaWYKLQotICAgIC8vIFRoZXJlJ3MgYSBj
aGFuY2UgdGhhdCB3ZSBkb24ndCBoYXZlIGFueSBwZW5kaW5nIGNhbGxiYWNrcy4gSWYgc28sIHdl
IHdhbnQgdG8gZGlzcGF0Y2ggdGhlIGNvbXBsZXRpb24gaGFuZGxlciByaWdodCBhd2F5LgotICAg
IGNhbGxiYWNrQWdncmVnYXRvci0+Y2FsbElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IGNvbnN0IFZlY3RvcjxXZWJzaXRlRGF0YVJlY29yZD4mIGRhdGFSZWNvcmRzLCBGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05MjAsNDcgKzg0Niw3IEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRh
VHlwZXMsIGNvbnN0IFZlCiAgICAgICAgICAgICBvcmlnaW5zLmFwcGVuZChvcmlnaW4pOwogICAg
IH0KIAotICAgIHN0cnVjdCBDYWxsYmFja0FnZ3JlZ2F0b3IgOiBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxDYWxsYmFja0FnZ3JlZ2F0b3IsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29w
PiB7Ci0gICAgICAgIENhbGxiYWNrQWdncmVnYXRvcihXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3Rv
cmUsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLSAgICAgICAgICAgIDog
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi0gICAgICAgICAg
ICAsIHByb3RlY3RlZERhdGFTdG9yZShkYXRhU3RvcmUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIH0KLQotICAgICAgICB+Q2FsbGJh
Y2tBZ2dyZWdhdG9yKCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgYWRkUGVuZGluZ0NhbGxiYWNrKCkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAg
ICAgICAgIHBlbmRpbmdDYWxsYmFja3MrKzsKLSAgICAgICAgfQotCi0gICAgICAgIHZvaWQgcmVt
b3ZlUGVuZGluZ0NhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKLSAgICAgICAgICAgIEFTU0VSVChwZW5kaW5nQ2FsbGJhY2tzKTsKLSAg
ICAgICAgICAgIC0tcGVuZGluZ0NhbGxiYWNrczsKLQotICAgICAgICAgICAgY2FsbElmTmVlZGVk
KCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2b2lkIGNhbGxJZk5lZWRlZCgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgICAgICBpZiAo
IXBlbmRpbmdDYWxsYmFja3MpCi0gICAgICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3Bh
dGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHVu
c2lnbmVkIHBlbmRpbmdDYWxsYmFja3MgPSAwOwotICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IGNv
bXBsZXRpb25IYW5kbGVyOwotICAgICAgICBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gcHJvdGVjdGVk
RGF0YVN0b3JlOwotICAgIH07Ci0KLSAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxs
YmFja0FnZ3JlZ2F0b3IgPSBhZG9wdFJlZihuZXcgQ2FsbGJhY2tBZ2dyZWdhdG9yKCp0aGlzLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9y
ID0gYWRvcHRSZWYobmV3IFJlbW92YWxDYWxsYmFja0FnZ3JlZ2F0b3IoKnRoaXMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKSk7CiAgICAgCiAgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkpIHsKICAgICAgICAgSGFzaFNldDxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnM7CkBAIC05NzAsMTIgKzg1Niw4IEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRh
VHlwZXMsIGNvbnN0IFZlCiAgICAgICAgIH0KICAgICAgICAgCiAjaWYgRU5BQkxFKFZJREVPKQot
ICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwogICAgICAg
ICBtX3F1ZXVlLT5kaXNwYXRjaChbb3JpZ2lucyA9IFdURk1vdmUob3JpZ2lucyksIG1lZGlhQ2Fj
aGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPm1lZGlhQ2FjaGVEaXJlY3RvcnkoKS5pc29s
YXRlZENvcHkoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yXSB7CiAgICAgICAgICAgICBXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKG1lZGlhQ2FjaGVEaXJl
Y3RvcnksIG9yaWdpbnMpOwotICAgICAgICAgICAgV1RGOjpSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAjZW5kaWYKICAgICB9CkBAIC0xMDEwLDEwICs4OTIsNyBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBj
b25zdCBWZQogI2VuZGlmCiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhbGxiYWNrQWdn
cmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBv
cmlnaW5zLCBjb29raWVIb3N0TmFtZXMsIEhTVFNDYWNoZUhvc3ROYW1lcywgcmVnaXN0cmFibGVE
b21haW5zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yLCBwcm9jZXNzUG9vbF0gewotICAgICAgICAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuZGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG9yaWdpbnMsIGNvb2tpZUhvc3ROYW1l
cywgSFNUU0NhY2hlSG9zdE5hbWVzLCByZWdpc3RyYWJsZURvbWFpbnMsIFtjYWxsYmFja0FnZ3Jl
Z2F0b3IsIHByb2Nlc3NQb29sXSB7IH0pOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDM1LDIw
ICs5MTQsMTIgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY2FsbGJhY2tB
Z2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLQotICAgICAgICAgICAgcHJvY2Vzcy5k
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywgb3JpZ2lu
cywgW2NhbGxiYWNrQWdncmVnYXRvcl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVn
YXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgIHByb2Nlc3MuZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKG1fc2Vzc2lvbklELCBkYXRh
VHlwZXMsIG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgICAgIH0KICAg
ICB9CiAKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6RGV2aWNl
SWRIYXNoU2FsdCkgfHwgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkNvb2tp
ZXMpKSkgewotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygp
OwotCi0gICAgICAgIG1fZGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UtPmRlbGV0ZURldmljZUlkSGFz
aFNhbHRGb3JPcmlnaW5zKG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0NhbGxiYWNrKCk7Ci0gICAgICAg
IH0pOworICAgICAgICBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlLT5kZWxldGVEZXZpY2VJZEhh
c2hTYWx0Rm9yT3JpZ2lucyhvcmlnaW5zLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAg
IH0KIAogICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpPZmZsaW5l
V2ViQXBwbGljYXRpb25DYWNoZSkgJiYgaXNQZXJzaXN0ZW50KCkpIHsKQEAgLTEwNTgsMTQgKzky
OSwxMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZQogICAgICAgICAgICAgICAgIG9yaWdpbnMu
YWRkKGNyb3NzVGhyZWFkQ29weShvcmlnaW4pKTsKICAgICAgICAgfQogCi0gICAgICAgIGNhbGxi
YWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7CiAgICAgICAgIG1fcXVldWUtPmRp
c3BhdGNoKFtvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKSwgYXBwbGljYXRpb25DYWNoZURpcmVj
dG9yeSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpLmlzb2xh
dGVkQ29weSgpLCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lID0gbV9j
b25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCku
aXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrQWdncmVnYXRvcl0gewogICAgICAgICAgICAgYXV0byBz
dG9yYWdlID0gV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNyZWF0ZShhcHBsaWNh
dGlvbkNhY2hlRGlyZWN0b3J5LCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlO
YW1lKTsKICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2luIDogb3JpZ2lucykKICAg
ICAgICAgICAgICAgICBzdG9yYWdlLT5kZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4pOwotICAg
ICAgICAgICAgV1RGOjpSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrQWdncmVnYXRv
cl0gewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+cmVtb3ZlUGVuZGluZ0Nh
bGxiYWNrKCk7Ci0gICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQogCkBAIC0xMDc2
LDE0ICs5NDMsMTAgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAgICBv
cmlnaW5zLmFkZChjcm9zc1RocmVhZENvcHkob3JpZ2luKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwogICAgICAgICBtX3F1
ZXVlLT5kaXNwYXRjaChbb3JpZ2lucyA9IFdURk1vdmUob3JpZ2lucyksIGNhbGxiYWNrQWdncmVn
YXRvciwgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPndlYlNRTERh
dGFiYXNlRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgICAgIGF1dG8gZGF0
YWJhc2VUcmFja2VyID0gV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFi
YXNlUGF0aCh3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSk7CiAgICAgICAgICAgICBmb3IgKGF1dG8m
IG9yaWdpbiA6IG9yaWdpbnMpCiAgICAgICAgICAgICAgICAgZGF0YWJhc2VUcmFja2VyLT5kZWxl
dGVPcmlnaW4ob3JpZ2luKTsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9y
LT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
ICAgICB9CiAKQEAgLTEwOTQsMTQgKzk1Nyw4IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cmVt
b3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIGNvbnN0IFZlCiAg
ICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoY3Jvc3NUaHJlYWRDb3B5KG9yaWdpbikpOwogICAg
ICAgICB9CiAKLSAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2so
KTsKICAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnkg
PSBtX2NvbmZpZ3VyYXRpb24tPm1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKS5pc29sYXRlZENv
cHkoKSwgY2FsbGJhY2tBZ2dyZWdhdG9yLCBvcmlnaW5zID0gV1RGTW92ZShvcmlnaW5zKV0gewot
CiAgICAgICAgICAgICByZW1vdmVNZWRpYUtleXMobWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSwg
b3JpZ2lucyk7Ci0KLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJh
Y2tBZ2dyZWdhdG9yXSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1v
dmVQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9
CiAKQEAgLTExMTYsMTkgKzk3MywxNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZQogCiAgICAg
ICAgIGNsYXNzIFN0YXRlIHsKICAgICAgICAgcHVibGljOgotICAgICAgICAgICAgc3RhdGljIHZv
aWQgZGVsZXRlRGF0YShSZWY8Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmIGNhbGxiYWNrQWdncmVnYXRv
ciwgVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+JiYgcGx1Z2lucywgVmVjdG9yPFN0cmluZz4mJiBo
b3N0TmFtZXMpCisgICAgICAgICAgICBzdGF0aWMgdm9pZCBkZWxldGVEYXRhKFJlZjxSZW1vdmFs
Q2FsbGJhY2tBZ2dyZWdhdG9yPiYmIGNhbGxiYWNrQWdncmVnYXRvciwgVmVjdG9yPFBsdWdpbk1v
ZHVsZUluZm8+JiYgcGx1Z2lucywgVmVjdG9yPFN0cmluZz4mJiBob3N0TmFtZXMpCiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgbmV3IFN0YXRlKFdURk1vdmUoY2FsbGJhY2tBZ2dyZWdh
dG9yKSwgV1RGTW92ZShwbHVnaW5zKSwgV1RGTW92ZShob3N0TmFtZXMpKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgU3RhdGUoUmVmPENhbGxiYWNrQWdn
cmVnYXRvcj4mJiBjYWxsYmFja0FnZ3JlZ2F0b3IsIFZlY3RvcjxQbHVnaW5Nb2R1bGVJbmZvPiYm
IHBsdWdpbnMsIFZlY3RvcjxTdHJpbmc+JiYgaG9zdE5hbWVzKQorICAgICAgICAgICAgU3RhdGUo
UmVmPFJlbW92YWxDYWxsYmFja0FnZ3JlZ2F0b3I+JiYgY2FsbGJhY2tBZ2dyZWdhdG9yLCBWZWN0
b3I8UGx1Z2luTW9kdWxlSW5mbz4mJiBwbHVnaW5zLCBWZWN0b3I8U3RyaW5nPiYmIGhvc3ROYW1l
cykKICAgICAgICAgICAgICAgICA6IG1fY2FsbGJhY2tBZ2dyZWdhdG9yKFdURk1vdmUoY2FsbGJh
Y2tBZ2dyZWdhdG9yKSkKICAgICAgICAgICAgICAgICAsIG1fcGx1Z2lucyhXVEZNb3ZlKHBsdWdp
bnMpKQogICAgICAgICAgICAgICAgICwgbV9ob3N0TmFtZXMoV1RGTW92ZShob3N0TmFtZXMpKQog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG1fY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQ
ZW5kaW5nQ2FsbGJhY2soKTsKLQogICAgICAgICAgICAgICAgIGRlbGV0ZVdlYnNpdGVEYXRhRm9y
TmV4dFBsdWdpbigpOwogICAgICAgICAgICAgfQogCkBAIC0xMTQwLDggKzk5NSw2IEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBk
YXRhVHlwZXMsIGNvbnN0IFZlCiAgICAgICAgICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9y
TmV4dFBsdWdpbigpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKG1fcGx1Z2lu
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV9jYWxsYmFja0FnZ3JlZ2F0b3It
PnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotCiAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQpAQCAt
MTE1Miw3ICsxMDA1LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVEYXRhKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUKICAgICAgICAgICAgICAg
ICB9KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgUmVmPENhbGxiYWNrQWdncmVnYXRv
cj4gbV9jYWxsYmFja0FnZ3JlZ2F0b3I7CisgICAgICAgICAgICBSZWY8UmVtb3ZhbENhbGxiYWNr
QWdncmVnYXRvcj4gbV9jYWxsYmFja0FnZ3JlZ2F0b3I7CiAgICAgICAgICAgICBWZWN0b3I8UGx1
Z2luTW9kdWxlSW5mbz4gbV9wbHVnaW5zOwogICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gbV9o
b3N0TmFtZXM7CiAgICAgICAgIH07CkBAIC0xMTYxLDkgKzEwMTQsNiBAQCB2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVz
LCBjb25zdCBWZQogICAgICAgICAgICAgU3RhdGU6OmRlbGV0ZURhdGEoKmNhbGxiYWNrQWdncmVn
YXRvciwgcGx1Z2lucygpLCBXVEZNb3ZlKGhvc3ROYW1lcykpOwogICAgIH0KICNlbmRpZgotCi0g
ICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHdlIGRvbid0IGhhdmUgYW55IHBlbmRpbmcgY2Fs
bGJhY2tzLiBJZiBzbywgd2Ugd2FudCB0byBkaXNwYXRjaCB0aGUgY29tcGxldGlvbiBoYW5kbGVy
IHJpZ2h0IGF3YXkuCi0gICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5jYWxsSWZOZWVkZWQoKTsKIH0K
IAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTZXJ2aWNlV29ya2VyVGltZW91dEZvclRlc3Rp
bmcoU2Vjb25kcyBzZWNvbmRzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>