<?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>221898</bug_id>
          
          <creation_ts>2021-02-15 05:32:21 -0800</creation_ts>
          <short_desc>Share more code between RemoteRealtimeAudioSource and RemoteRealtimeVideoSource</short_desc>
          <delta_ts>2021-02-15 09:10:17 -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>WebRTC</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1729135</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-15 05:32:21 -0800</bug_when>
    <thetext>Share more code between RemoteRealtimeAudioSource and RemoteRealtimeVideoSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729136</commentid>
    <comment_count>1</comment_count>
      <attachid>420310</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-15 05:33:56 -0800</bug_when>
    <thetext>Created attachment 420310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729138</commentid>
    <comment_count>2</comment_count>
      <attachid>420311</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-15 05:45:52 -0800</bug_when>
    <thetext>Created attachment 420311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729145</commentid>
    <comment_count>3</comment_count>
      <attachid>420313</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-15 06:21:26 -0800</bug_when>
    <thetext>Created attachment 420313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729180</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-15 09:09:29 -0800</bug_when>
    <thetext>Committed r272855: &lt;https://commits.webkit.org/r272855&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420313.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729181</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-15 09:10:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/74352215&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420310</attachid>
            <date>2021-02-15 05:33:56 -0800</date>
            <delta_ts>2021-02-15 05:45:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221898-20210215143354.patch</filename>
            <type>text/plain</type>
            <size>15887</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM5MDdjMGYyYTE0ZDljYzky
OTA3OGVjMzY5ZjRkZjA2MzI0Nzc3ZjkuLmY2YzIyNDY3NDc5Y2RhYTJjZWM3NmFmZTc0MmI2Yzlk
ZmUzNjAxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDItMTUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUgY29kZSBiZXR3
ZWVuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgYW5kIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTg5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgdG8gc2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gdGhlIHR3byBjbGFzc2VzLgorICAgICAgICBUaGlzIGNsYXNzIGltcGxlbWVudHMgbW9z
dCBvZiB0aGUgbWVzc2FnaW5nIHdpdGggY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBObyBjaGFu
Z2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjb25uZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6YXBwbHlDb25z
dHJhaW50c0ZhaWxlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5Ojppc1JlYWR5IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3Rl
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
Ojp+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVz
ZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6d2hlblJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlkRmFpbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEFzUmVhZHkpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjb25uZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjppZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKwog
MjAyMS0wMi0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBXZWJSVENQbGF0Zm9ybUNvZGVjc0luR1BVUHJvY2Vzc0VuYWJsZWQgdG8gUGFnZSBTZXR0
aW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGE0NzJiZGI4MTY2NmU1YmIwYjBhNGY0
NmM3NDdjNmI0MjgwNzhmMjYuLjJmNjFmZTZlZTA5NzMzZDM5MGY0NTdlN2JkZjA1ZDUxZmI3NTQ1
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTcxLDkgKzcxLDExIEBAIHZvaWQgUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogICAgICAg
ICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KKwogICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRp
bmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwog
ICAgICAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsK
KwogICAgICAgICBtX3Byb3h5LnNldEFzUmVhZHkoKTsKICAgICAgICAgaWYgKG1fcHJveHkuc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpKQogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmgKaW5kZXggNTQ0ZTVlOTJiMDMzZTc5ZjFlNDI2ODc4NTYwMmUzNGY0Y2My
ZmU5MS4uMzJmZDRkMTYwZmYxZjk3N2M3YTRlMDA1NWI1Yzc5ZTg1MjkwM2U2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsKIAotY2xhc3MgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCitjbGFzcyBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2UKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nv
bm5lY3Rpb246OkNsaWVudAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKaW5k
ZXggZTY4ZDEzNjBiMTllYjJhMjU1Y2VlNGUwN2IwNGU1MmJjNzQzMzJiZi4uOTA0YTQzZjRkMGFl
MThiOGNmZmNkOWU5NGIzYTE3ZTkyN2ZiNzMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuaApAQCAtNjgsNiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIHNldEFzUmVhZHkoKTsKICAg
ICB2b2lkIHJlc2V0UmVhZHkoKSB7IG1faXNSZWFkeSA9IGZhbHNlOyB9CisgICAgYm9vbCBpc1Jl
YWR5KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlYWR5OyB9CiAKICAgICB2b2lkIGRpZEZhaWwoU3Ry
aW5nJiYgZXJyb3JNZXNzYWdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDQyNTg3
MjhlNzIzNDJiZmVjMDNmMDI1NzQ2MDQ5NmU5OTVmMmU4YmMuLjdlZmU0MGNmZjdjZDEzZjU2MTMw
NWI5N2ViMGI2NThmYzQwZjcxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTU2LDEz
ICs1Niw5IEBAIFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVECiAKIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpCiAgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5h
bWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hT
YWx0KSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9wcm94eShpZGVu
dGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQog
ICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX2RldmljZShkZXZpY2UpCi0gICAgLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKIHsK
LSAgICBpZiAoY29uc3RyYWludHMpCi0gICAgICAgIG1fY29uc3RyYWludHMgPSAqY29uc3RyYWlu
dHM7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAobV9kZXZpY2UudHlwZSgpID09
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKICAgICAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2
ZVNvdXJjZSgqdGhpcyk7CkBAIC03MSw2MyArNjcsMzcgQEAgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmkKIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZSgpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhh
c2hTYWx0KCksIG1fY29uc3RyYWludHMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRp
bmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRv
IGZyYW1lUmF0ZSkgbXV0YWJsZSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3Ms
IGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8gZnJh
bWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKLSAgICAgICAgICAg
IGRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIG1fcHJveHkuZGlk
RmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
YWRkQ2xpZW50KCp0aGlzKTsKLQogICAgICAgICBzZXRTaXplKHNpemUpOwogICAgICAgICBzZXRG
cmFtZVJhdGUoZnJhbWVSYXRlKTsKIAogICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRp
bmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwog
ICAgICAgICBzZXRTdXBwb3J0ZWRQcmVzZXRzKFdURk1vdmUocHJlc2V0cykpOworICAgICAgICBz
ZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKIAotICAgICAg
ICBzZXRBc1JlYWR5KCk7CisgICAgICAgIG1fcHJveHkuc2V0QXNSZWFkeSgpOworICAgICAgICBp
ZiAobV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpCisgICAgICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVu
dCgqdGhpcyk7CiAgICAgfSk7CiB9CiAKIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5SZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlKCkKIHsKLSAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzKQorICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSkKICAg
ICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5yZW1vdmVDbGllbnQoKnRoaXMpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBp
ZiAobV9kZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkK
KyAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9D
YXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICNlbmRpZgogfQogCi12
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OndoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKG1faXNSZWFkeSkKLSAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKLSAgICBtX2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgbV9pc1JlYWR5ID0g
dHJ1ZTsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKLSAgICBp
ZiAobV9jYWxsYmFjaykKLSAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2FnZSk7Ci19Ci0K
LXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0QXNSZWFkeSgpCi17Ci0gICAgQVNT
RVJUKCFtX2lzUmVhZHkpOwotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0KLSAgICBzZXROYW1lKFN0
cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKLQotICAgIGlmIChtX2NhbGxi
YWNrKQotICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Ci19Ci0KIHZvaWQgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFi
aWxpdGllcyk7CkBAIC0xNjIsMjkgKzEzMiw5IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgSW50U2l6CiAg
ICAgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKHNhbXBsZSk7CiB9CiAKLUlQQzo6Q29u
bmVjdGlvbiogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y29ubmVjdGlvbigpCi17Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAgaWYg
KG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAgcmV0dXJuICZXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsK
LSNlbmRpZgotICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0
UHJvZHVjaW5nRGF0YSgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZp
ZXIgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcFByb2R1
Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIgfSwg
MCk7Ci19Ci0KIGJvb2wgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2hvdWxkQXBwbHlS
b3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB7Ci0gICAgY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRBcHBs
eVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOworICAg
IGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U2V0U2hvdWxkQXBwbHlSb3RhdGlvbiB7IGlkZW50aWZpZXIoKSwgc2hvdWxkQXBwbHlSb3Rh
dGlvbiB9LCAwKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTk1LDggKzE0NSw4IEBAIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNhcGFiaWxpdGllcygpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
aGFzRW5kZWQoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwotICAgIG1fbWFu
YWdlci5yZW1vdmVWaWRlb1NvdXJjZShtX2lkZW50aWZpZXIpOworICAgIG1fcHJveHkuaGFzRW5k
ZWQoKTsKKyAgICBtX21hbmFnZXIucmVtb3ZlVmlkZW9Tb3VyY2UoaWRlbnRpZmllcigpKTsKICAg
ICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRl
bnRpZmllcigpKTsKIH0KIApAQCAtMjE0LDcgKzE2NCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKIHsKLSAgICBBU1NFUlQobV9pc1JlYWR5KTsKKyAgICBB
U1NFUlQobV9wcm94eS5pc1JlYWR5KCkpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlIGZyYW1lUmF0ZSwgUmVmUHRyPFZp
ZGVvUHJlc2V0PiBwcmVzZXQpCkBAIC0yMzYsNyArMTg2LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSBmcmFtZVJhdGUsIFJl
ZlB0cjwKICAgICAgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlh
Q29uc3RyYWludFR5cGU6OkhlaWdodCwgaGVpZ2h0Q29uc3RyYWludCk7CiAgICAgfQogCi0gICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKKyAg
ICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OkFwcGx5Q29uc3RyYWludHMgeyBpZGVudGlmaWVyKCksIGNvbnN0cmFpbnRzIH0sIDApOwog
fQogCiBib29sIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnByZWZlcnNQcmVzZXQoVmlkZW9Q
cmVzZXQmKQpAQCAtMjQ3LDEyICsxOTcsMTIgQEAgYm9vbCBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjpwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlk
Q2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewotICAgIEFTU0VSVChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpOworICAgIEFTU0VSVChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MoKSk7CiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV9kZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiB0aGlzICE9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKSkgewor
ICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
ICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9D
YXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7CiAgICAgICAgIC8vIFRyYWNrIGlzIG11
dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVuZCBpdC4KICAg
ICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC0yNjAsNyArMjEwLDcg
QEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRp
ZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8KICNlbmRpZgogCiAgICAgbV9tYW5hZ2VyLnJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25uZWN0
aW9uKCkpOwotICAgIG1faXNSZWFkeSA9IGZhbHNlOworICAgIG1fcHJveHkucmVzZXRSZWFkeSgp
OwogICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCB1cGRhdGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNldHRpbmdzLgogICAgIGlmIChp
c1Byb2R1Y2luZ0RhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGZiMDg1ZDE5NTBkMzlm
YzcyZGI0ODlkMmM4Y2FmMjliOTYyMzVkN2MuLjgwMzNkM2VjYWFmN2UyODI0YjVkYjdjOTY2NzY0
YzIyMmYyNWRkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oPgpAQCAtNDgsNyArNDksNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0Nh
cHR1cmVTb3VyY2UKK2NsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAgICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAogI2VuZGlm
CkBAIC01Nyw4ICs1OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJp
bmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpOwogICAgIH5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAKLSAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCk7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CisgICAgSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9wcm94eS5jb25uZWN0aW9uKCk7IH0K
IAogICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzJiYpOwogCkBAIC03MSw4ICs3Miw4IEBAIHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogCiAgICAgLy8gV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZQotICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7
Ci0gICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RhcnRQcm9k
dWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CisgICAg
dm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdG9wUHJvZHVjaW5nRGF0
YSgpOyB9CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2b2lk
IGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KQEAgLTgwLDggKzgxLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGlu
Z3M7IH0KICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKLSAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlLnR5
cGUoKTsgfQorICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxiYWNr
KSk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQogCiAgICAgLy8g
V2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKICAgICB2b2lkIGdlbmVyYXRlUHJl
c2V0cygpIGZpbmFsOwpAQCAtOTksMTkgKzEwMCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0
QXNSZWFkeSgpOwogICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CiAKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZVByb3h5IG1fcHJveHk7CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsK
KwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmls
aXRpZXM7CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGlu
Z3M7Ci0KLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwotICAgIFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKLQogICAgIFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uIG1fc2FtcGxlUm90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQ
cm9jZXNzIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Ci0gICAgU3Ry
aW5nIG1fZXJyb3JNZXNzYWdlOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4g
bV9jYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420311</attachid>
            <date>2021-02-15 05:45:52 -0800</date>
            <delta_ts>2021-02-15 06:26:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221898-20210215144549.patch</filename>
            <type>text/plain</type>
            <size>38690</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1NTc3ZTg4NDhjYmQ3NTFl
OTliOTZkYTNhODIyMzk5ZDFlYWMwODYuLjhkY2YxY2JiY2U5ZWZkMGZhODk0M2ZmZTAwMTE5MjUz
MGMyYWRiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDItMTUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUgY29kZSBiZXR3
ZWVuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgYW5kIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTg5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgdG8gc2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gdGhlIHR3byBjbGFzc2VzLgorICAgICAgICBUaGlzIGNsYXNzIGltcGxlbWVudHMgbW9z
dCBvZiB0aGUgbWVzc2FnaW5nIHdpdGggY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBObyBjaGFu
Z2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjb25uZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6YXBwbHlDb25z
dHJhaW50c0ZhaWxlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5Ojppc1JlYWR5IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3Rl
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
Ojp+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVz
ZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6d2hlblJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlkRmFpbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEFzUmVhZHkpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjb25uZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjppZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKwog
MjAyMS0wMi0xMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA0N2RkMWNh
Yjk2NjA0ZTlkZjlkMjlkZmE2ZGM4N2NlMWIxYjk5NTc2Li43MDBjYzgwZDBmZjRjMzZkNzVlYmNh
NmJhMzlhNGZmYjVhNmJiYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01ODMsNiArNTgz
LDcgQEAgV2ViUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JDb2Nv
YS5tbQogV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZTVk
MTNjZTU1NDY1ZWNhOWYyN2YzMGFmN2RhNTYyYzU4MTVjYTY0Li43ZGUxZjNkMWM5NGI3NWZjNjkz
MDkyNTczYjZhMDRkMTg5ZjA4YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2ODQsNiArMzY4NCw4IEBACiAJCTQxNTc4NTMwMjEy
NzZCNkYwMEREMzgwMCAvKiBjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVh
ZGVycy5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gImNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJp
dmF0ZS1oZWFkZXJzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1N0U0QUYy
MEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2I7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTg2NDlBMjNCRTA5MjQwMEEwQTYxRSAvKiBSVENFbmNv
ZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENFbmNv
ZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTYwMDhCMTI1
REE4NkI5MDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0
QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4
MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MDk5LDYgKzkxMDEsOCBAQAogCQkJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThF
RCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MUU2
N0E4RDI1RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgKi8s
CiAJCQkJNDFFNjdBOEMyNUQyQ0ZEMDAwN0IwQTRDIC8qIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaCAqLywKKwkJCQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5LmNwcCAqLywKKwkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODkyRkUgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggKi8sCiAJCQkJNDE2ODRDNTAyNDY0NTBG
RDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAogCQkJCTQxNjg0
QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8sCiAJ
CQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCA2NDIyODY1NzczZWExODZhMGMwY2U3
ZDIwYzNmY2Y3NzdiZmMyMmYxLi4yZjYxZmU2ZWUwOTczM2QzOTBmNDU3ZTdiZGYwNWQ1MWZiNzU0
NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC01NSwxNSArNTUsMTAgQEAgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25z
dCBDYXB0dXJlRGV2aWNlJgogCiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywg
V1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RG
TW92ZShoYXNoU2FsdCkpCi0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1f
cHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25z
dHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQotICAgICwgbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgLCBtX2RldmljZShk
ZXZpY2UpCiB7Ci0gICAgaWYgKGNvbnN0cmFpbnRzKQotICAgICAgICBtX2NvbnN0cmFpbnRzID0g
KmNvbnN0cmFpbnRzOwotCi0gICAgQVNTRVJUKG1fZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKKyAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9
PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogI2VuZGlmCkBAIC03
MSwyMiArNjYsMjUgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKIAogdm9pZCBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgY29ubmVj
dGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0KCksIG1fY29uc3RyYWlu
dHMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShib29sIHN1Y2NlZWRl
ZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0
aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0
aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAg
IGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgICAgICBkaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7CisgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCiAgICAgICAgIHNldFNldHRpbmdz
KFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICAgICAgc2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2Fw
YWJpbGl0aWVzKSk7Ci0gICAgICAgIHNldEFzUmVhZHkoKTsKLSAgICAgICAgaWYgKG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSk7CisKKyAgICAgICAgbV9wcm94eS5zZXRBc1JlYWR5KCk7Cisg
ICAgICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSkKICAgICAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
YWRkQ2xpZW50KCp0aGlzKTsKICAgICB9KTsKIH0KIAogUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKQogewotICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCisgICAgaWYgKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cygpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLnJlbW92ZUNsaWVudCgqdGhpcyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtOTQsMzEgKzkyLDYgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UoKQogI2VuZGlmCiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxs
YmFjaykKLXsKLSAgICBpZiAobV9pc1JlYWR5KQotICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RG
TW92ZShtX2Vycm9yTWVzc2FnZSkpOwotICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpkaWRGYWlsKFN0cmluZyYm
IGVycm9yTWVzc2FnZSkKLXsKLSAgICBtX2lzUmVhZHkgPSB0cnVlOwotICAgIG1fZXJyb3JNZXNz
YWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAg
ICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpzZXRBc1JlYWR5KCkKLXsKLSAgICBBU1NFUlQoIW1faXNSZWFkeSk7Ci0gICAg
bV9pc1JlYWR5ID0gdHJ1ZTsKLQotICAgIHNldE5hbWUoU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJl
bCgpLnN0cmluZygpIH0pOwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNr
KHsgfSk7Ci19Ci0KIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0
aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAg
ICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xMzEsNjIgKzEw
NCwyMiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldFNldHRpbmdzKFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbgogICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hh
bmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGlt
ZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKLSAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVzY3JpcHRp
b24sIHNpemUpOwotfQotCi1JUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OmNvbm5lY3Rpb24oKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0jaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQotICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0g
ICAgICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLX0KLQotdm9pZCBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQ
cm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNp
bmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi1jb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMoKQotewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5k
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3lu
Y1dpdGhSZXBseS4KLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0
cmFpbnRzIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmFwcGx5
Q29uc3RyYWludHNTdWNjZWVkZWQoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGlu
Z3MpCit2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNj
ZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7
CiAgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwotCi0gICAgYXV0byBjYWxsYmFj
ayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAg
Y2FsbGJhY2soeyB9KTsKKyAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoKTsK
IH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKIHsK
LSAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50
YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3Zl
KGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGRhdGEs
IGRlc2NyaXB0aW9uLCBzaXplKTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
OjpoYXNFbmRlZCgpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci0gICAgbV9t
YW5hZ2VyLnJlbW92ZUF1ZGlvU291cmNlKG1faWRlbnRpZmllcik7CisgICAgbV9wcm94eS5oYXNF
bmRlZCgpOworICAgIG1fbWFuYWdlci5yZW1vdmVBdWRpb1NvdXJjZShpZGVudGlmaWVyKCkpOwog
ICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKCkpOwogfQogCkBAIC0yMDUsNyArMTM4LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiB2
b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xv
c2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewotICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpOworICAgIEFTU0VSVChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MoKSk7CiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTgsMTEg
KzE1MSwxMyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25u
ZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogI2VuZGlmCiAKICAgICBtX21hbmFn
ZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9u
KGNvbm5lY3Rpb24oKSk7Ci0gICAgbV9pc1JlYWR5ID0gZmFsc2U7CisgICAgbV9wcm94eS5yZXNl
dFJlYWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHVwZGF0ZSB0aGUgdHJhY2sgYWNjb3JkaW5nIGN1cnJlbnQgc2V0dGluZ3MuCiAg
ICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICBzdGFydFByb2R1Y2luZ0RhdGEoKTsK
KworICAgIG1fcHJveHkuZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcygiR1BVIFByb2Nlc3Mg
dGVybWluYXRlZCJfcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggZWU4
OTFmYTkzMzhiMjNiODNiNDM0Y2FjODE2MmEyOGNjZDM0MzlhMi4uMzJmZDRkMTYwZmYxZjk3N2M3
YTRlMDA1NWI1Yzc5ZTg1MjkwM2U2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC0yOCw4ICsy
OCw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KIApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgOiBw
dWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorY2xhc3MgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9u
OjpDbGllbnQKICNlbmRpZgpAQCAtNTcsMzQgKzU3LDM0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgflJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UoKTsKIAotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24oKTsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0K
KyAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX3Byb3h5LmNvbm5l
Y3Rpb24oKTsgfQogCiAgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJik7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwotICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJv
ck1lc3NhZ2UpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWls
ZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7IH0KIAogICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKICAgICB2b2lkIGNhcHR1cmVG
YWlsZWQoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2UKLSAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFs
IHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RvcFByb2R1Y2luZ0RhdGEoKTsgfQogICAgIGJvb2wg
aXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQg
YmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBjb21taXRDb25maWd1cmF0
aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY2FsbGJhY2spIGZpbmFsIHsg
bV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
IH0KICAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGlu
Z3M7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKLSAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlLnR5
cGUoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAg
dm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNr
KSBmaW5hbCB7IG1fcHJveHkud2hlblJlYWR5KFdURk1vdmUoY2FsbGJhY2spKTsgfQorICAgIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fcHJveHkuZGV2aWNlVHlwZSgpOyB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudApAQCAtOTIsMjIgKzkyLDEy
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
KTsKLSAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKLSAgICB2b2lkIHNl
dEFzUmVhZHkoKTsKICAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwogCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eSBtX3Byb3h5OwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxp
dGllczsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5n
czsKLQotICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzOwotICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Ci0gICAgU3RyaW5nIG1f
ZXJyb3JNZXNzYWdlOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxs
YmFjazsKLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwotICAgIFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzA0MjAw
NThjZTQ2OTY1OTUwZTZmNDkzNjk2MDg5NjdiMGQyOTEzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgiCisKKyNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nl
c3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0lQQzo6Q29ubmVjdGlvbiogUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworI2VuZGlm
CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdGFydFBy
b2R1Y2luZ0RhdGEoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVy
IH0sIDApOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFBy
b2R1Y2luZ0RhdGEoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIg
fSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNl
LCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRzKSwgV1RGTW92ZShjYWxsYmFjaykpOwor
fQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25zdHJhaW50
cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBt
X3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5bmNXaXRoUmVwbHkuCisgICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKK30K
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFp
bnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0
cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBh
dXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmly
c3QoKTsKKyAgICBjYWxsYmFjayhSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRz
RXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkg
fSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpmYWlsQXBwbHlD
b25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIGF1
dG8gY2FsbGJhY2tzID0gV1RGTW92ZShtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tz
KTsKKyAgICB3aGlsZSAoIWNhbGxiYWNrcy5pc0VtcHR5KCkpCisgICAgICAgIGNhbGxiYWNrcy50
YWtlRmlyc3QoKShSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyB7
IH0sIGVycm9yTWVzc2FnZSB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6Omhhc0VuZGVkKCkKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKK30K
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OndoZW5SZWFkeShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1faXNSZWFk
eSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKKyAg
ICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5OjpzZXRBc1JlYWR5KCkKK3sKKyAgICBBU1NFUlQoIW1faXNSZWFk
eSk7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAg
bV9jYWxsYmFjayh7IH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1
ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAo
bV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5ZWE0
Y2Y0YWY0N2MwYjJjNzMyZDkyYTljZDVjNWI2NDMyNmU2YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuaApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50
czsKK2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5IHsKK3B1YmxpYzoKKyAgICBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKKworICAg
IElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUo
KSBjb25zdCB7IHJldHVybiBtX2RldmljZS50eXBlKCk7IH0KKyAgICBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3M7IH0KKworICAgIHVzaW5nIENyZWF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sLCBTdHJpbmcmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNv
cmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47CisgICAg
dm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBDcmVhdGVDYWxsYmFj
ayYmKTsKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOworICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgCisgICAgdm9pZCBoYXNFbmRlZCgpOwor
ICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCk7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hh
bmRsZXImJik7CisKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyk+JiYpOworICAgIHZvaWQgc2V0QXNSZWFkeSgpOworICAgIHZvaWQgcmVzZXRSZWFkeSgp
IHsgbV9pc1JlYWR5ID0gZmFsc2U7IH0KKyAgICBib29sIGlzUmVhZHkoKSBjb25zdCB7IHJldHVy
biBtX2lzUmVhZHk7IH0KKworICAgIHZvaWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2Up
OworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOworICAg
IGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKworICAgIFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKKyAgICBEZXF1ZTxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBw
bHlDb25zdHJhaW50c0NhbGxiYWNrczsKKyAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Cisg
ICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOworICAgIFN0cmlu
ZyBtX2Vycm9yTWVzc2FnZTsKK307CisKK2lubGluZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCisgICAgOiBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKKyAgICAsIG1fZGV2aWNlKGRldmljZSkKKyAgICAsIG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQoreworICAgIGlmIChjb25zdHJh
aW50cykKKyAgICAgICAgbV9jb25zdHJhaW50cyA9ICpjb25zdHJhaW50czsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDQy
NTg3MjhlNzIzNDJiZmVjMDNmMDI1NzQ2MDQ5NmU5OTVmMmU4YmMuLjdlZmU0MGNmZjdjZDEzZjU2
MTMwNWI5N2ViMGI2NThmYzQwZjcxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTU2
LDEzICs1Niw5IEBAIFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVECiAKIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCiAgICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3Zl
KG5hbWUpLCBTdHJpbmc6Om51bWJlcihpZGVudGlmaWVyLnRvVUludDY0KCkpLCBXVEZNb3ZlKGhh
c2hTYWx0KSkKLSAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICwgbV9wcm94eShp
ZGVudGlmaWVyLCBkZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRz
KQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCi0gICAgLCBtX2RldmljZShkZXZpY2UpCi0gICAg
LCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Moc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykK
IHsKLSAgICBpZiAoY29uc3RyYWludHMpCi0gICAgICAgIG1fY29uc3RyYWludHMgPSAqY29uc3Ry
YWludHM7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAobV9kZXZpY2UudHlwZSgp
ID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSkKICAgICAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFj
dGl2ZVNvdXJjZSgqdGhpcyk7CkBAIC03MSw2MyArNjcsMzcgQEAgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmkKIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRp
YVNvdXJjZSgpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJ
REhhc2hTYWx0KCksIG1fY29uc3RyYWludHMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNl
dHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplLCBh
dXRvIGZyYW1lUmF0ZSkgbXV0YWJsZSB7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZShkZXZpY2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGlu
Z3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiBwcmVzZXRzLCBhdXRvIHNpemUsIGF1dG8g
ZnJhbWVSYXRlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKLSAgICAgICAg
ICAgIGRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgIG1fcHJveHku
ZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9u
KCkuYWRkQ2xpZW50KCp0aGlzKTsKLQogICAgICAgICBzZXRTaXplKHNpemUpOwogICAgICAgICBz
ZXRGcmFtZVJhdGUoZnJhbWVSYXRlKTsKIAogICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNl
dHRpbmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykp
OwogICAgICAgICBzZXRTdXBwb3J0ZWRQcmVzZXRzKFdURk1vdmUocHJlc2V0cykpOworICAgICAg
ICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKIAotICAg
ICAgICBzZXRBc1JlYWR5KCk7CisgICAgICAgIG1fcHJveHkuc2V0QXNSZWFkeSgpOworICAgICAg
ICBpZiAobV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpCisgICAgICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENs
aWVudCgqdGhpcyk7CiAgICAgfSk7CiB9CiAKIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6On5S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCkKIHsKLSAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKQorICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSkK
ICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5yZW1vdmVDbGllbnQoKnRoaXMpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBpZiAobV9kZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVy
YSkKKyAgICBpZiAoZGV2aWNlVHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNh
bWVyYSkKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlk
ZW9DYXB0dXJlRmFjdG9yeSgpLnVuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICNlbmRpZgogfQog
Ci12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OndoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCi17Ci0gICAgaWYgKG1faXNSZWFkeSkKLSAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKLSAgICBtX2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCi17Ci0gICAgbV9pc1JlYWR5
ID0gdHJ1ZTsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKLSAg
ICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2FnZSk7Ci19
Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0QXNSZWFkeSgpCi17Ci0gICAg
QVNTRVJUKCFtX2lzUmVhZHkpOwotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0KLSAgICBzZXROYW1l
KFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKLQotICAgIGlmIChtX2Nh
bGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNrKHsgfSk7Ci19Ci0KIHZvaWQgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNh
cGFiaWxpdGllcyk7CkBAIC0xNjIsMjkgKzEzMiw5IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGUmIHNhbXBsZSwgSW50U2l6
CiAgICAgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKHNhbXBsZSk7CiB9CiAKLUlQQzo6
Q29ubmVjdGlvbiogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y29ubmVjdGlvbigpCi17Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAg
aWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAgcmV0dXJuICZXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KTsKLSNlbmRpZgotICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0
YXJ0UHJvZHVjaW5nRGF0YSgpCi17Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTdGFydFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50
aWZpZXIgfSwgMCk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RvcFBy
b2R1Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIg
fSwgMCk7Ci19Ci0KIGJvb2wgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U2hvdWxkQXBw
bHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pCiB7Ci0gICAgY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTZXRTaG91bGRB
cHBseVJvdGF0aW9uIHsgbV9pZGVudGlmaWVyLCBzaG91bGRBcHBseVJvdGF0aW9uIH0sIDApOwor
ICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6U2V0U2hvdWxkQXBwbHlSb3RhdGlvbiB7IGlkZW50aWZpZXIoKSwgc2hvdWxkQXBwbHlS
b3RhdGlvbiB9LCAwKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTk1LDggKzE0NSw4IEBA
IGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6aGFzRW5kZWQoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOwotICAgIG1f
bWFuYWdlci5yZW1vdmVWaWRlb1NvdXJjZShtX2lkZW50aWZpZXIpOworICAgIG1fcHJveHkuaGFz
RW5kZWQoKTsKKyAgICBtX21hbmFnZXIucmVtb3ZlVmlkZW9Tb3VyY2UoaWRlbnRpZmllcigpKTsK
ICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2Uo
aWRlbnRpZmllcigpKTsKIH0KIApAQCAtMjE0LDcgKzE2NCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKIHsKLSAgICBBU1NFUlQobV9pc1JlYWR5KTsKKyAg
ICBBU1NFUlQobV9wcm94eS5pc1JlYWR5KCkpOwogfQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlIGZyYW1lUmF0ZSwgUmVmUHRy
PFZpZGVvUHJlc2V0PiBwcmVzZXQpCkBAIC0yMzYsNyArMTg2LDcgQEAgdm9pZCBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSBmcmFtZVJhdGUs
IFJlZlB0cjwKICAgICAgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1l
ZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwgaGVpZ2h0Q29uc3RyYWludCk7CiAgICAgfQogCi0g
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsK
KyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBpZGVudGlmaWVyKCksIGNvbnN0cmFpbnRzIH0sIDAp
OwogfQogCiBib29sIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnByZWZlcnNQcmVzZXQoVmlk
ZW9QcmVzZXQmKQpAQCAtMjQ3LDEyICsxOTcsMTIgQEAgYm9vbCBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9u
RGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewotICAgIEFTU0VSVChtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpOworICAgIEFTU0VSVChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MoKSk7CiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV9kZXZpY2UudHlwZSgpID09IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiB0aGlzICE9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKSkg
eworICAgIGlmIChkZXZpY2VUeXBlKCkgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2Ft
ZXJhICYmIHRoaXMgIT0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlk
ZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpKSB7CiAgICAgICAgIC8vIFRyYWNrIGlz
IG11dGVkIGFuZCBoYXMgbm8gY2hhbmNlIG9mIGJlaW5nIHVubXV0ZWQsIGxldCdzIGVuZCBpdC4K
ICAgICAgICAgY2FwdHVyZUZhaWxlZCgpOwogICAgICAgICByZXR1cm47CkBAIC0yNjAsNyArMjEw
LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlv
bkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW8KICNlbmRpZgogCiAgICAgbV9tYW5hZ2VyLnJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25u
ZWN0aW9uKCkpOwotICAgIG1faXNSZWFkeSA9IGZhbHNlOworICAgIG1fcHJveHkucmVzZXRSZWFk
eSgpOwogICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCB1cGRhdGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNldHRpbmdzLgogICAgIGlm
IChpc1Byb2R1Y2luZ0RhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGZiMDg1ZDE5NTBk
MzlmYzcyZGI0ODlkMmM4Y2FmMjliOTYyMzVkN2MuLjgwMzNkM2VjYWFmN2UyODI0YjVkYjdjOTY2
NzY0YzIyMmYyNWRkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAi
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oPgpAQCAtNDgsNyArNDksNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNz
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UKK2NsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgZmluYWwgOiBw
dWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAgICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAogI2Vu
ZGlmCkBAIC01Nyw4ICs1OCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBT
dHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpOwogICAgIH5SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKCk7CiAK
LSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uKCk7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CisgICAgSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9wcm94eS5jb25uZWN0aW9uKCk7
IH0KIAogICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiYpOwogCkBAIC03MSw4ICs3Miw4IEBAIHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogCiAgICAgLy8gV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQotICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmlu
YWw7Ci0gICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOworICAgIHZvaWQgc3RhcnRQ
cm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9Cisg
ICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdG9wUHJvZHVjaW5n
RGF0YSgpOyB9CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2
b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KQEAgLTgwLDggKzgxLDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0
dGluZ3M7IH0KICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKLSAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNl
LnR5cGUoKTsgfQorICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJiBjYWxsYmFjaykgZmluYWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxi
YWNrKSk7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQogCiAgICAg
Ly8gV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKICAgICB2b2lkIGdlbmVyYXRl
UHJlc2V0cygpIGZpbmFsOwpAQCAtOTksMTkgKzEwMCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0QXNSZWFkeSgpOwogICAgIHZvaWQgc2V0Q2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CiAKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5IG1fcHJveHk7CiAgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdl
cjsKKwogICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBh
YmlsaXRpZXM7CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0
dGluZ3M7Ci0KLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwotICAgIFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKLQogICAgIFdlYkNvcmU6Ok1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fc2FtcGxlUm90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwotICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Ci0gICAg
U3RyaW5nIG1fZXJyb3JNZXNzYWdlOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
KT4gbV9jYWxsYmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="commit-queue"
          id="438775"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420313</attachid>
            <date>2021-02-15 06:21:26 -0800</date>
            <delta_ts>2021-02-15 09:09:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221898-20210215152124.patch</filename>
            <type>text/plain</type>
            <size>38661</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1NTc3ZTg4NDhjYmQ3NTFl
OTliOTZkYTNhODIyMzk5ZDFlYWMwODYuLjhkY2YxY2JiY2U5ZWZkMGZhODk0M2ZmZTAwMTE5MjUz
MGMyYWRiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDItMTUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNoYXJlIG1vcmUgY29kZSBiZXR3
ZWVuIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgYW5kIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTg5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgdG8gc2hhcmUgbW9yZSBjb2RlIGJl
dHdlZW4gdGhlIHR3byBjbGFzc2VzLgorICAgICAgICBUaGlzIGNsYXNzIGltcGxlbWVudHMgbW9z
dCBvZiB0aGUgbWVzc2FnaW5nIHdpdGggY2FwdHVyZSBwcm9jZXNzLgorICAgICAgICBObyBjaGFu
Z2Ugb2YgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjb25uZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6YXBwbHlDb25z
dHJhaW50c0ZhaWxlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5Ojppc1JlYWR5IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3Rl
TWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
Ojp+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlUHJlc2V0cyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVz
ZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6d2hlblJlYWR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlkRmFpbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEFzUmVhZHkpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjb25uZWN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9k
dWNpbmdEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjppZGVudGlmaWVyIGNvbnN0KTogRGVsZXRlZC4KKwog
MjAyMS0wMi0xMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA0N2RkMWNh
Yjk2NjA0ZTlkZjlkMjlkZmE2ZGM4N2NlMWIxYjk5NTc2Li43MDBjYzgwZDBmZjRjMzZkNzVlYmNh
NmJhMzlhNGZmYjVhNmJiYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01ODMsNiArNTgz
LDcgQEAgV2ViUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JDb2Nv
YS5tbQogV2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0ZTVk
MTNjZTU1NDY1ZWNhOWYyN2YzMGFmN2RhNTYyYzU4MTVjYTY0Li43ZGUxZjNkMWM5NGI3NWZjNjkz
MDkyNTczYjZhMDRkMTg5ZjA4YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2ODQsNiArMzY4NCw4IEBACiAJCTQxNTc4NTMwMjEy
NzZCNkYwMEREMzgwMCAvKiBjb3B5LXdlYmNvbnRlbnQtcmVzb3VyY2VzLXRvLXByaXZhdGUtaGVh
ZGVycy5zaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuc2NyaXB0LnNoOyBwYXRoID0gImNvcHktd2ViY29udGVudC1yZXNvdXJjZXMtdG8tcHJp
dmF0ZS1oZWFkZXJzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1N0U0QUYy
MEUyRUM5ODAwQTZDMEQ3IC8qIGNvbS5nb29nbGUubzFkYnJvd3NlcnBsdWdpbi5zYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBjb20uZ29vZ2xlLm8xZGJyb3dzZXJwbHVnaW4uc2I7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTg2NDlBMjNCRTA5MjQwMEEwQTYxRSAvKiBSVENFbmNv
ZGVySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENFbmNv
ZGVySWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTYwMDhCMTI1
REE4NkI5MDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0
QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2ODRDNEUyNDY0M0M4
MTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjg0QzRGMjQ2NDNEM0YwMDFDRThFRCAvKiBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MDk5LDYgKzkxMDEsOCBAQAogCQkJCTQxNjg0QzREMjQ2NDNCRkEwMDFDRThF
RCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCQk0MUU2
N0E4RDI1RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgKi8s
CiAJCQkJNDFFNjdBOEMyNUQyQ0ZEMDAwN0IwQTRDIC8qIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaCAqLywKKwkJCQk0MTYwMDhCMjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5LmNwcCAqLywKKwkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODkyRkUgLyog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggKi8sCiAJCQkJNDE2ODRDNTAyNDY0NTBG
RDAwMUNFOEVEIC8qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLAogCQkJCTQxNjg0
QzUxMjQ2NDUwRkQwMDFDRThFRCAvKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggKi8sCiAJ
CQkJQ0Q0OTFCMDUxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAppbmRleCA2NDIyODY1NzczZWExODZhMGMwY2U3
ZDIwYzNmY2Y3NzdiZmMyMmYxLi4yZjYxZmU2ZWUwOTczM2QzOTBmNDU3ZTdiZGYwNWQ1MWZiNzU0
NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC01NSwxNSArNTUsMTAgQEAgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25z
dCBDYXB0dXJlRGV2aWNlJgogCiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywg
V1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RG
TW92ZShoYXNoU2FsdCkpCi0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1f
cHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25z
dHJhaW50cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQotICAgICwgbV9zaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgLCBtX2RldmljZShk
ZXZpY2UpCiB7Ci0gICAgaWYgKGNvbnN0cmFpbnRzKQotICAgICAgICBtX2NvbnN0cmFpbnRzID0g
KmNvbnN0cmFpbnRzOwotCi0gICAgQVNTRVJUKG1fZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKKyAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9
PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogI2VuZGlmCkBAIC03
MSwyMiArNjYsMjUgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmkKIAogdm9pZCBSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpCiB7Ci0gICAgY29ubmVj
dGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0KCksIG1fY29uc3RyYWlu
dHMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShib29sIHN1Y2NlZWRl
ZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0
aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsKKyAgICBtX3Byb3h5LmNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0
aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAg
IGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgICAgICBkaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7CisgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCiAgICAgICAgIHNldFNldHRpbmdz
KFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICAgICAgc2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2Fw
YWJpbGl0aWVzKSk7Ci0gICAgICAgIHNldEFzUmVhZHkoKTsKLSAgICAgICAgaWYgKG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSk7CisKKyAgICAgICAgbV9wcm94eS5zZXRBc1JlYWR5KCk7Cisg
ICAgICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSkKICAgICAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
YWRkQ2xpZW50KCp0aGlzKTsKICAgICB9KTsKIH0KIAogUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6flJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoKQogewotICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCisgICAgaWYgKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cygpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLnJlbW92ZUNsaWVudCgqdGhpcyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtOTQsMzEgKzkyLDYgQEAgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6flJlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2UoKQogI2VuZGlmCiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxs
YmFjaykKLXsKLSAgICBpZiAobV9pc1JlYWR5KQotICAgICAgICByZXR1cm4gY2FsbGJhY2soV1RG
TW92ZShtX2Vycm9yTWVzc2FnZSkpOwotICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpkaWRGYWlsKFN0cmluZyYm
IGVycm9yTWVzc2FnZSkKLXsKLSAgICBtX2lzUmVhZHkgPSB0cnVlOwotICAgIG1fZXJyb3JNZXNz
YWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAg
ICBtX2NhbGxiYWNrKG1fZXJyb3JNZXNzYWdlKTsKLX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpzZXRBc1JlYWR5KCkKLXsKLSAgICBBU1NFUlQoIW1faXNSZWFkeSk7Ci0gICAg
bV9pc1JlYWR5ID0gdHJ1ZTsKLQotICAgIHNldE5hbWUoU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJl
bCgpLnN0cmluZygpIH0pOwotICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAgICBtX2NhbGxiYWNr
KHsgfSk7Ci19Ci0KIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0Q2FwYWJpbGl0
aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAg
ICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xMzEsNjIgKzEw
NCwyMiBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldFNldHRpbmdzKFJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbgogICAgIG5vdGlmeVNldHRpbmdzRGlkQ2hh
bmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgdGlt
ZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKLSAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVzY3JpcHRp
b24sIHNpemUpOwotfQotCi1JUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OmNvbm5lY3Rpb24oKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0jaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQotICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0g
ICAgICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLX0KLQotdm9pZCBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQotewotICAgIGNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQ
cm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQcm9kdWNp
bmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi1jb25zdCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjYXBh
YmlsaXRpZXMoKQotewotICAgIHJldHVybiBtX2NhcGFiaWxpdGllczsKLX0KLQotdm9pZCBSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMmIGNvbnN0cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5k
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3lu
Y1dpdGhSZXBseS4KLSAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OkFwcGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0
cmFpbnRzIH0sIDApOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmFwcGx5
Q29uc3RyYWludHNTdWNjZWVkZWQoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGlu
Z3MpCit2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNj
ZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7
CiAgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwotCi0gICAgYXV0byBjYWxsYmFj
ayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAg
Y2FsbGJhY2soeyB9KTsKKyAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoKTsK
IH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2l6ZSkKIHsK
LSAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50
YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3Zl
KGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKHRpbWUsIGRhdGEs
IGRlc2NyaXB0aW9uLCBzaXplKTsKIH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
OjpoYXNFbmRlZCgpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpFbmQgeyBtX2lkZW50aWZpZXIgfSwgMCk7Ci0gICAgbV9t
YW5hZ2VyLnJlbW92ZUF1ZGlvU291cmNlKG1faWRlbnRpZmllcik7CisgICAgbV9wcm94eS5oYXNF
bmRlZCgpOworICAgIG1fbWFuYWdlci5yZW1vdmVBdWRpb1NvdXJjZShpZGVudGlmaWVyKCkpOwog
ICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKCkpOwogfQogCkBAIC0yMDUsNyArMTM4LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiB2
b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xv
c2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewotICAgIEFTU0VSVChtX3Nob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpOworICAgIEFTU0VSVChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MoKSk7CiAgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMTgsMTEg
KzE1MSwxMyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25u
ZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogI2VuZGlmCiAKICAgICBtX21hbmFn
ZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9u
KGNvbm5lY3Rpb24oKSk7Ci0gICAgbV9pc1JlYWR5ID0gZmFsc2U7CisgICAgbV9wcm94eS5yZXNl
dFJlYWR5KCk7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkIHVwZGF0ZSB0aGUgdHJhY2sgYWNjb3JkaW5nIGN1cnJlbnQgc2V0dGluZ3MuCiAg
ICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQogICAgICAgICBzdGFydFByb2R1Y2luZ0RhdGEoKTsK
KworICAgIG1fcHJveHkuZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcygiR1BVIFByb2Nlc3Mg
dGVybWluYXRlZCJfcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggZWU4
OTFmYTkzMzhiMjNiODNiNDM0Y2FjODE2MmEyOGNjZDM0MzlhMi4uMzJmZDRkMTYwZmYxZjk3N2M3
YTRlMDA1NWI1Yzc5ZTg1MjkwM2U2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC0yOCw4ICsy
OCw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KIApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UgOiBw
dWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorY2xhc3MgUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9u
OjpDbGllbnQKICNlbmRpZgpAQCAtNTcsMzQgKzU3LDM0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wg
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CiAgICAgflJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UoKTsKIAotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBJUEM6OkNvbm5lY3Rp
b24qIGNvbm5lY3Rpb24oKTsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0K
KyAgICBJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX3Byb3h5LmNvbm5l
Y3Rpb24oKTsgfQogCiAgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJik7CiAKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwotICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJv
ck1lc3NhZ2UpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWls
ZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsgbV9wcm94eS5hcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7IH0KIAogICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKICAgICB2b2lkIGNhcHR1cmVG
YWlsZWQoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNv
bnN0IFdURjo6TWVkaWFUaW1lJiwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1BdWRpb0RhdGEmLCBj
b25zdCBXZWJDb3JlOjpBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiwgc2l6ZV90KTsKKyAgICB2b2lk
IHJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBXZWJD
b3JlOjpQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpOwogCiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
JiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9v
bCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKIAogICAgIC8vIFJlYWx0aW1lTWVkaWFTb3Vy
Y2UKLSAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFs
IHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RvcFByb2R1Y2luZ0RhdGEoKTsgfQogICAgIGJvb2wg
aXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQg
YmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBjb21taXRDb25maWd1cmF0
aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKKyAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYg
Y29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY2FsbGJhY2spIGZpbmFsIHsg
bV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
IH0KICAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGlu
Z3M7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
JiBjYXBhYmlsaXRpZXMoKSBmaW5hbDsKLSAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOwotICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZGV2aWNlLnR5
cGUoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAg
dm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNr
KSBmaW5hbCB7IG1fcHJveHkud2hlblJlYWR5KFdURk1vdmUoY2FsbGJhY2spKTsgfQorICAgIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fcHJveHkuZGV2aWNlVHlwZSgpOyB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudApAQCAtOTIsMjIgKzkyLDEy
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
KTsKLSAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKTsKLSAgICB2b2lkIHNl
dEFzUmVhZHkoKTsKICAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwogCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VQcm94eSBtX3Byb3h5OwogICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxp
dGllczsKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5n
czsKLQotICAgIERlcXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNv
bnN0cmFpbnRzQ2FsbGJhY2tzOwotICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Ci0gICAgU3RyaW5nIG1f
ZXJyb3JNZXNzYWdlOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxs
YmFjazsKLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOwotICAgIFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzA0MjAw
NThjZTQ2OTY1OTUwZTZmNDkzNjk2MDg5NjdiMGQyOTEzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgiCisKKyNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nl
c3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3Bh
Y2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0lQQzo6Q29ubmVjdGlvbiogUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpjb25uZWN0aW9uKCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICBpZiAobV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOworI2VuZGlm
CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpzdGFydFBy
b2R1Y2luZ0RhdGEoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RhcnRQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVy
IH0sIDApOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6c3RvcFBy
b2R1Y2luZ0RhdGEoKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U3RvcFByb2R1Y2luZ0RhdGEgeyBtX2lkZW50aWZpZXIg
fSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpjcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlESGFzaFNhbHQsIENyZWF0ZUNh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNl
LCBkZXZpY2VJREhhc2hTYWx0LCBtX2NvbnN0cmFpbnRzKSwgV1RGTW92ZShjYWxsYmFjaykpOwor
fQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eTo6YXBwbHlDb25zdHJhaW50
cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBt
X3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5bmNXaXRoUmVwbHkuCisgICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKK30K
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoKQoreworICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdBcHBseUNvbnN0cmFp
bnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOworICAgIGNhbGxiYWNrKHsgfSk7Cit9CisKK3ZvaWQg
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0
cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKK3sKKyAgICBh
dXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50YWtlRmly
c3QoKTsKKyAgICBjYWxsYmFjayhSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRz
RXJyb3IgeyBXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkg
fSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5OjpmYWlsQXBwbHlD
b25zdHJhaW50Q2FsbGJhY2tzKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQoreworICAgIGF1
dG8gY2FsbGJhY2tzID0gV1RGTW92ZShtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tz
KTsKKyAgICB3aGlsZSAoIWNhbGxiYWNrcy5pc0VtcHR5KCkpCisgICAgICAgIGNhbGxiYWNrcy50
YWtlRmlyc3QoKShSZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyB7
IH0sIGVycm9yTWVzc2FnZSB9KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6Omhhc0VuZGVkKCkKK3sKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKK30K
Kwordm9pZCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OndoZW5SZWFkeShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1faXNSZWFk
eSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKFdURk1vdmUobV9lcnJvck1lc3NhZ2UpKTsKKyAg
ICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZVByb3h5OjpzZXRBc1JlYWR5KCkKK3sKKyAgICBBU1NFUlQoIW1faXNSZWFk
eSk7CisgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAg
bV9jYWxsYmFjayh7IH0pOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCit7CisgICAgbV9pc1JlYWR5ID0gdHJ1
ZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAo
bV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhtX2Vycm9yTWVzc2FnZSk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE5ZWE0
Y2Y0YWY0N2MwYjJjNzMyZDkyYTljZDVjNWI2NDMyNmU2YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJv
eHkuaApAQCAtMCwwICsxLDk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
bjsKK2NsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50
czsKK2NsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5IHsKK3B1YmxpYzoKKyAgICBSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKKworICAg
IElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUo
KSBjb25zdCB7IHJldHVybiBtX2RldmljZS50eXBlKCk7IH0KKyAgICBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3M7IH0KKworICAgIHVzaW5nIENyZWF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sLCBTdHJpbmcmJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNv
cmU6OlZpZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47CisgICAg
dm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcmLCBDcmVhdGVDYWxsYmFj
ayYmKTsKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOworICAgIHZvaWQg
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZmFpbEFwcGx5Q29uc3RyYWludENhbGxiYWNrcyhj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgCisgICAgdm9pZCBoYXNFbmRlZCgpOwor
ICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCk7CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXBwbHlDb25zdHJhaW50c0hh
bmRsZXImJik7CisKKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyk+JiYpOworICAgIHZvaWQgc2V0QXNSZWFkeSgpOworICAgIHZvaWQgcmVzZXRSZWFkeSgp
IHsgbV9pc1JlYWR5ID0gZmFsc2U7IH0KKyAgICBib29sIGlzUmVhZHkoKSBjb25zdCB7IHJldHVy
biBtX2lzUmVhZHk7IH0KKworICAgIHZvaWQgZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2Up
OworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIG1fZGV2aWNlOworICAg
IGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKKworICAgIFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMgbV9jb25zdHJhaW50czsKKyAgICBEZXF1ZTxXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBw
bHlDb25zdHJhaW50c0NhbGxiYWNrczsKKyAgICBib29sIG1faXNSZWFkeSB7IGZhbHNlIH07Cisg
ICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOworICAgIFN0cmlu
ZyBtX2Vycm9yTWVzc2FnZTsKK307CisKK2lubGluZSBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHk6OlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eShXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBkZXZpY2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCisgICAgOiBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKKyAgICAsIG1fZGV2aWNlKGRldmljZSkKKyAgICAsIG1fc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcyhzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQoreworICAgIGlmIChjb25zdHJh
aW50cykKKyAgICAgICAgbV9jb25zdHJhaW50cyA9ICpjb25zdHJhaW50czsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDQy
NTg3MjhlNzIzNDJiZmVjMDNmMDI1NzQ2MDQ5NmU5OTVmMmU4YmMuLmU4MDBhMTM0MzI5OWVmOGY3
MDA0ZTRhMjEzYjkwOGIzNGY0ZTEzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTU2
LDc4ICs1Niw0OCBAQCBSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+IFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRAogCiBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhh
c2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0
dXJlSW5HUFVQcm9jZXNzKQogICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92
ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZSho
YXNoU2FsdCkpCi0gICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAsIG1fcHJveHko
aWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzLCBjb25zdHJhaW50
cykKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQotICAgICwgbV9kZXZpY2UoZGV2aWNlKQotICAg
ICwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
CiB7Ci0gICAgaWYgKGNvbnN0cmFpbnRzKQotICAgICAgICBtX2NvbnN0cmFpbnRzID0gKmNvbnN0
cmFpbnRzOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fZGV2aWNlLnR5cGUo
KSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCisgICAgaWYgKGRldmljZVR5
cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCiAgICAgICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5z
ZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogI2VuZGlmCiB9CiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIGNvbm5lY3Rpb24o
KS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRl
bnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1
dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywg
YXV0byYmIHByZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFibGUgeworICAg
IG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShib29sIHN1Y2NlZWRlZCwgYXV0byYm
IGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRv
JiYgcHJlc2V0cywgYXV0byBzaXplLCBhdXRvIGZyYW1lUmF0ZSkgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghc3VjY2VlZGVkKSB7Ci0gICAgICAgICAgICBkaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7CisgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgqdGhpcyk7Ci0KICAgICAg
ICAgc2V0U2l6ZShzaXplKTsKICAgICAgICAgc2V0RnJhbWVSYXRlKGZyYW1lUmF0ZSk7CiAKICAg
ICAgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgICAgICBzZXRDYXBhYmls
aXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKICAgICAgICAgc2V0U3VwcG9ydGVkUHJlc2V0
cyhXVEZNb3ZlKHByZXNldHMpKTsKKyAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdz
LmxhYmVsKCkuc3RyaW5nKCkgfSk7CiAKLSAgICAgICAgc2V0QXNSZWFkeSgpOworICAgICAgICBt
X3Byb3h5LnNldEFzUmVhZHkoKTsKKyAgICAgICAgaWYgKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUlu
R1BVUHJvY2VzcygpKQorICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOwogICAgIH0pOwogfQogCiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjp+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpCiB7
Ci0gICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICBpZiAobV9wcm94eS5z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkucmVtb3ZlQ2xpZW50KCp0aGlzKTsKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fZGV2aWNlLnR5cGUoKSA9PSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCisgICAgaWYgKGRldmljZVR5cGUoKSA9PSBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEpCiAgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS51bnNldEFjdGl2
ZVNvdXJjZSgqdGhpcyk7CiAjZW5kaWYKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlOjp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNr
KQotewotICAgIGlmIChtX2lzUmVhZHkpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhXVEZNb3Zl
KG1fZXJyb3JNZXNzYWdlKSk7Ci0gICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwot
fQotCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKQotewotICAgIG1faXNSZWFkeSA9IHRydWU7Ci0gICAgbV9lcnJvck1lc3NhZ2Ug
PSBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7Ci0gICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgIG1f
Y2FsbGJhY2sobV9lcnJvck1lc3NhZ2UpOwotfQotCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldEFzUmVhZHkoKQotewotICAgIEFTU0VSVCghbV9pc1JlYWR5KTsKLSAgICBtX2lz
UmVhZHkgPSB0cnVlOwotCi0gICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCku
c3RyaW5nKCkgfSk7Ci0KLSAgICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgbV9jYWxsYmFjayh7
IH0pOwotfQotCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldENhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVzKQogewogICAg
IG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwpAQCAtMTYyLDI5ICsxMzIs
OSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KE1lZGlhU2FtcGxlJiBzYW1wbGUsIEludFNpegogICAgIGRpc3BhdGNoTWVkaWFTYW1wbGVUb09i
c2VydmVycyhzYW1wbGUpOwogfQogCi1JUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNvbm5lY3Rpb24oKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0j
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpCi0gICAgICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0jZW5kaWYKLSAgICByZXR1cm4gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLX0KLQotdm9pZCBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQotewotICAgIGNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U3RhcnRQcm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCi12b2lkIFJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKLXsKLSAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlN0b3BQ
cm9kdWNpbmdEYXRhIHsgbV9pZGVudGlmaWVyIH0sIDApOwotfQotCiBib29sIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OnNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJv
dGF0aW9uKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U2V0U2hvdWxkQXBwbHlSb3RhdGlvbiB7IG1faWRlbnRpZmllciwg
c2hvdWxkQXBwbHlSb3RhdGlvbiB9LCAwKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNldFNob3VsZEFwcGx5Um90YXRpb24g
eyBpZGVudGlmaWVyKCksIHNob3VsZEFwcGx5Um90YXRpb24gfSwgMCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTE5NSw4ICsxNDUsOCBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogCiB2
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKLSAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7
IG1faWRlbnRpZmllciB9LCAwKTsKLSAgICBtX21hbmFnZXIucmVtb3ZlVmlkZW9Tb3VyY2UobV9p
ZGVudGlmaWVyKTsKKyAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7CisgICAgbV9tYW5hZ2VyLnJlbW92
ZVZpZGVvU291cmNlKGlkZW50aWZpZXIoKSk7CiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiB9CiAKQEAgLTIxNCw3
ICsxNjQsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcHR1cmVGYWlsZWQo
KQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCiB7
Ci0gICAgQVNTRVJUKG1faXNSZWFkeSk7CisgICAgQVNTRVJUKG1fcHJveHkuaXNSZWFkeSgpKTsK
IH0KIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRGcmFtZVJhdGVXaXRoUHJl
c2V0KGRvdWJsZSBmcmFtZVJhdGUsIFJlZlB0cjxWaWRlb1ByZXNldD4gcHJlc2V0KQpAQCAtMjM2
LDcgKzE4Niw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRl
V2l0aFByZXNldChkb3VibGUgZnJhbWVSYXRlLCBSZWZQdHI8CiAgICAgICAgIGNvbnN0cmFpbnRz
Lm1hbmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGhl
aWdodENvbnN0cmFpbnQpOwogICAgIH0KIAotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyB7IG1faWRl
bnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgaWRl
bnRpZmllcigpLCBjb25zdHJhaW50cyB9LCAwKTsKIH0KIAogYm9vbCBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikKQEAgLTI0NywxMiArMTk3LDEy
IEBAIGJvb2wgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cHJlZmVyc1ByZXNldChWaWRlb1By
ZXNldCYpCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9u
JikKIHsKLSAgICBBU1NFUlQobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBBU1NF
UlQobV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpOwogICAgIGlmIChpc0VuZGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYg
KG1fZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYg
dGhpcyAhPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0NhcHR1
cmVGYWN0b3J5KCkuYWN0aXZlU291cmNlKCkpIHsKKyAgICBpZiAoZGV2aWNlVHlwZSgpID09IENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiB0aGlzICE9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3Vy
Y2UoKSkgewogICAgICAgICAvLyBUcmFjayBpcyBtdXRlZCBhbmQgaGFzIG5vIGNoYW5jZSBvZiBi
ZWluZyB1bm11dGVkLCBsZXQncyBlbmQgaXQuCiAgICAgICAgIGNhcHR1cmVGYWlsZWQoKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjYwLDcgKzIxMCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlv
CiAjZW5kaWYKIAogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRp
ZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKLSAgICBtX2lzUmVhZHkgPSBm
YWxzZTsKKyAgICBtX3Byb3h5LnJlc2V0UmVhZHkoKTsKICAgICBjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZSgpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXBkYXRlIHRoZSB0cmFjayBhY2NvcmRp
bmcgY3VycmVudCBzZXR0aW5ncy4KICAgICBpZiAoaXNQcm9kdWNpbmdEYXRhKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAppbmRleCBmYjA4NWQxOTUwZDM5ZmM3MmRiNDg5ZDJjOGNhZjI5Yjk2MjM1ZDdj
Li44MDMzZDNlY2FhZjdlMjgyNGI1ZGI3Yzk2Njc2NGMyMjJmMjVkZDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3Vy
Y2UuaD4KQEAgLTQ4LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOwogCi1jbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIDog
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlCitjbGFzcyBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9D
YXB0dXJlU291cmNlCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICwgcHVibGljIEdQVVBy
b2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICNlbmRpZgpAQCAtNTcsOCArNTgsOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gY3Jl
YXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKICAgICB+UmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCi0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQotICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpOworICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3By
b3h5LmlkZW50aWZpZXIoKTsgfQorICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsg
cmV0dXJuIG1fcHJveHkuY29ubmVjdGlvbigpOyB9CiAKICAgICB2b2lkIHNldFNldHRpbmdzKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKIApAQCAtNzEsOCArNzIsOCBA
QCBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKTsKIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKLSAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwotICAgIHZvaWQgc3RvcFByb2R1Y2luZ0Rh
dGEoKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94
eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBm
aW5hbCB7IG1fcHJveHkuc3RvcFByb2R1Y2luZ0RhdGEoKTsgfQogICAgIGJvb2wgaXNDYXB0dXJl
U291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgYmVnaW5Db25m
aWd1cmF0aW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBjb21taXRDb25maWd1cmF0aW9uKCkgZmlu
YWwgeyB9CkBAIC04MCw4ICs4MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYXNFbmRlZCgpIGZp
bmFsOwogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0
dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7Ci0g
ICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBmaW5h
bDsKLSAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2RldmljZS50eXBlKCk7IH0KKyAgICB2b2lkIHdoZW5SZWFk
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spIGZpbmFsIHsgbV9w
cm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9w
cm94eS5kZXZpY2VUeXBlKCk7IH0KIAogICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlCiAgICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBmaW5hbDsKQEAgLTk5LDE5ICsx
MDAsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEFzUmVhZHkoKTsKICAgICB2b2lkIHNldENh
cGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOwog
Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZGVudGlmaWVy
OworICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSBtX3Byb3h5OwogICAgIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CisKICAgICBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOwogICAgIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOwotCi0gICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSBtX2RldmljZTsKLSAgICBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIG1fY29uc3Ry
YWludHM7Ci0KICAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3NhbXBs
ZVJvdGF0aW9uIHsgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUgfTsK
LSAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07Ci0gICAgYm9v
bCBtX2lzUmVhZHkgeyBmYWxzZSB9OwotICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKLSAgICBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>