<?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>143187</bug_id>
          
          <creation_ts>2015-03-28 17:22:46 -0700</creation_ts>
          <short_desc>[Mac] Update for output device API change</short_desc>
          <delta_ts>2015-03-28 19:08:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080980</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-03-28 17:22:46 -0700</bug_when>
    <thetext>The output device API has changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080983</commentid>
    <comment_count>1</comment_count>
      <attachid>249676</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-03-28 17:45:08 -0700</bug_when>
    <thetext>Created attachment 249676
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080984</commentid>
    <comment_count>2</comment_count>
      <attachid>249676</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-03-28 17:54:32 -0700</bug_when>
    <thetext>Comment on attachment 249676
Proposed patch.

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

&gt; Source/WebCore/platform/spi/cocoa/AVKitSPI.h:2
&gt; + * Copyright (C) 2014 Apple Inc. All rights reserved.

2015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080987</commentid>
    <comment_count>3</comment_count>
      <attachid>249676</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-28 19:08:29 -0700</bug_when>
    <thetext>Comment on attachment 249676
Proposed patch.

Clearing flags on attachment: 249676

Committed r182117: &lt;http://trac.webkit.org/changeset/182117&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080988</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-28 19:08:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249676</attachid>
            <date>2015-03-28 17:45:08 -0700</date>
            <delta_ts>2015-03-28 19:08:29 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>api_update_patch_15.txt</filename>
            <type>text/plain</type>
            <size>43672</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjExNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE1LTAzLTI4ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIFVwZGF0ZSBm
b3Igb3V0cHV0IGRldmljZSBBUEkgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDMxODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgQVBJIHVzZWQgZm9yIG91dHB1dCBkZXZpY2UgaXMgYmVp
bmcgZGVwcmVjYXRlZCwgdXBkYXRlIHRvIHRoZSByZXBsYWNlbWVudC4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFNQSSBoZWFkZXJzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldDo6TWVkaWFQbGF5YmFja1RhcmdldCk6IFVwZGF0
ZSBmb3IgQVBJIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ6
OnNldERldmljZVBpY2tlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFj
a1RhcmdldDo6ZGV2aWNlUGlja2VyQ29udGV4dCk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXliYWNrVGFyZ2V0OjpkZWNvZGUpOgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6On5NZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6
Om91dHB1dGVEZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkVGltZXJGaXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6Y3VycmVudERldmlj
ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjpzdG9wTW9uaXRvcmluZ1BsYXliYWNrVGFyZ2V0cyk6CisgICAgICAgICgtW1dlYkFWT3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9i
amVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKC1bV2ViQVZPdXRwdXREZXZpY2VQaWNr
ZXJNZW51Q29udHJvbGxlckhlbHBlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNo
YW5nZTpjb250ZXh0Ol0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjYW5jZWxMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFdp
cmVsZXNzUGxheWJhY2tUYXJnZXQpOgorICAgICAgICAoLVtXZWJDb3JlQVZGTW92aWVPYnNlcnZl
ciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorCisg
ICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0FWS2l0U1BJLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9pb3MvQVZLaXRTUEkuaC4gTW92ZWQKKyAgICAgICAgICAg
IGZyb20gaW9zIGRpcmVjdG9yeSwgYWRkZWQgTWFjIGluY2x1ZGVzIGFuZCBwcm90b3R5cGVzLgor
ICAgICAgICAqIHBsYXRmb3JtL3NwaS9pb3MvQVZLaXRTUEkuaDogUmVtb3ZlZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg6IEFkZGVkLgorCiAyMDE1LTAz
LTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE9w
dGltaXplIFJlbmRlckxheWVyOjppbnRlcnNlY3RzRGFtYWdlUmVjdCgpIHNsaWdodGx5CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAxODIxMTYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM0OCw2ICszNDgsOCBAQAogCQkwN0U5
RTEyRTE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZG
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0U5RTEy
RDE4RjVFMjc2MDAxMUEzQTQgLyogSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmgg
Ki87IH07CiAJCTA3RTlFMTMwMThGNjJCMzcwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRU
cmFja1ByaXZhdGVBVkYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDdFOUUxMkYxOEY2MkIzNzAwMTFBM0E0IC8qIEluYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAgKi87IH07CiAJCTA3RURDM0VFMUFBQ0I3NUQwMDk4M0VCNSAvKiBN
ZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3RURDM0VEMUFBQ0I3NUQwMDk4M0VCNSAvKiBNZWRpYVNlc3Npb25N
YW5hZ2VyTWFjLmNwcCAqLzsgfTsKKwkJMDdGMEI5N0ExQUM1REIzMzAwRTUzNUQ5IC8qIEFWS2l0
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0Yw
Qjk3OTFBQzVEQjMzMDBFNTM1RDkgLyogQVZLaXRTUEkuaCAqLzsgfTsKKwkJMDdGMEI5N0MxQUM1
REI0NjAwRTUzNUQ5IC8qIEFWRm91bmRhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdGMEI5N0IxQUM1REI0NjAwRTUzNUQ5IC8qIEFWRm91
bmRhdGlvblNQSS5oICovOyB9OwogCQkwN0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyogTWVkaWFT
ZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RBRThDMDgxNzQ2Qjk1NzAwNTMyRDc4IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwN0ZCREUy
QzE4RkVEMTc4MDAxQTdDRkYgLyogSlNEYXRhQ3VlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3RkJERTJCMThGRUQxNzgwMDFBN0NGRiAv
KiBKU0RhdGFDdWVDdXN0b20uY3BwICovOyB9OwogCQkwN0ZFOTlEQzE4ODA3QTdEMDAyNTY2NDgg
LyogSFRNTE1lZGlhU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwN0ZFOTlEQTE4ODA3QTdEMDAyNTY2NDggLyogSFRNTE1lZGlhU2Vzc2lv
bi5jcHAgKi87IH07CkBAIC01ODQ0LDcgKzU4NDYsNiBAQAogCQlDRTEyNTIzOTFBMTY2RkEwMDA4
NjQ0ODAgLyogUXVpY2tMb29rU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRTEyNTIzODFBMTY2RkEwMDA4NjQ0ODAgLyogUXVpY2tMb29rU1BJLmgg
Ki87IH07CiAJCUNFMTI1MjNCMUExNjcxMTAwMDg2NDQ4MCAvKiBOU0ZpbGVNYW5hZ2VyU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTEyNTIzQTFB
MTY3MTEwMDA4NjQ0ODAgLyogTlNGaWxlTWFuYWdlclNQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNFMTI1MjNEMUExNjc2Q0QwMDg2NDQ4MCAv
KiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRTEyNTIzQzFBMTY3NkNEMDA4NjQ0ODAgLyogUXVhcnR6Q29yZVNQSS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUNFMTI1MjNGMUEx
NkFFMTIwMDg2NDQ4MCAvKiBBVktpdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0UxMjUyM0UxQTE2QUUxMjAwODY0NDgwIC8qIEFWS2l0U1BJLmgg
Ki87IH07CiAJCUNFMTI1MjQxMUExNkIxQjYwMDg2NDQ4MCAvKiBNZWRpYVBsYXllclNQSS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxMjUyNDAxQTE2
QjFCNjAwODY0NDgwIC8qIE1lZGlhUGxheWVyU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0UxMjUyNDMxQTE2QzAxQTAwODY0NDgwIC8qIENv
cmVVSVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0UxMjUyNDIxQTE2QzAxQTAwODY0NDgwIC8qIENvcmVVSVNQSS5oICovOyB9OwogCQlDRTEyNTI0
NTFBMTZDMjI1MDA4NjQ0ODAgLyogRHluYW1pY0xpbmtlclNQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxMjUyNDQxQTE2QzIyNTAwODY0NDgwIC8q
IER5bmFtaWNMaW5rZXJTUEkuaCAqLzsgfTsKQEAgLTczNzQsNiArNzM3NSw4IEBACiAJCTA3RTlF
MTJEMThGNUUyNzYwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3RTlFMTJGMThG
NjJCMzcwMDExQTNBNCAvKiBJbmJhbmRNZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlQVZGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdFREMzRUQx
QUFDQjc1RDAwOTgzRUI1IC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdlck1hYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3RjBCOTc5MUFDNURCMzMwMEU1MzVEOSAvKiBB
VktpdFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVktpdFNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0YwQjk3QjFBQzVEQjQ2MDBFNTM1RDkgLyog
QVZGb3VuZGF0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWRm91
bmRhdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0ZCREUyQjE4RkVE
MTc4MDAxQTdDRkYgLyogSlNEYXRhQ3VlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRGF0YUN1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3RkU5OURBMTg4MDdBN0QwMDI1NjY0OCAvKiBIVE1MTWVkaWFTZXNzaW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxNZWRpYVNlc3Npb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0ZFOTlEQjE4ODA3QTdEMDAyNTY2
NDggLyogSFRNTE1lZGlhU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MTWVkaWFTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzQx
Myw3ICsxMzQxNiw2IEBACiAJCUNFMTI1MjM4MUExNjZGQTAwMDg2NDQ4MCAvKiBRdWlja0xvb2tT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUXVpY2tMb29rU1BJLmg7IHBh
dGggPSBpb3MvUXVpY2tMb29rU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNF
MTI1MjNBMUExNjcxMTAwMDg2NDQ4MCAvKiBOU0ZpbGVNYW5hZ2VyU1BJLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TRmlsZU1hbmFnZXJTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0UxMjUyM0MxQTE2NzZDRDAwODY0NDgwIC8qIFF1YXJ0ekNvcmVTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUXVhcnR6Q29yZVNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRTEyNTIzRTFBMTZBRTEyMDA4NjQ0ODAgLyogQVZL
aXRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQVZLaXRTUEkuaDsgcGF0
aCA9IGlvcy9BVktpdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTEyNTI0
MDFBMTZCMUI2MDA4NjQ0ODAgLyogTWVkaWFQbGF5ZXJTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTWVkaWFQbGF5ZXJTUEkuaDsgcGF0aCA9IGlvcy9NZWRpYVBsYXllclNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTEyNTI0MjFBMTZDMDFBMDA4NjQ0
ODAgLyogQ29yZVVJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvcmVV
SVNQSS5oOyBwYXRoID0gaW9zL0NvcmVVSVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTEyNTI0NDFBMTZDMjI1MDA4NjQ0ODAgLyogRHluYW1pY0xpbmtlclNQSS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEeW5hbWljTGlua2VyU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ0MCw2ICsxNjQ0Miw3IEBACiAJCTY1M0VGODM3MTlB
MDQzQUUwMDUyMjAyQyAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJMDdGMEI5NzkxQUM1REIzMzAwRTUzNUQ5IC8qIEFWS2l0U1BJLmggKi8s
CiAJCQkJQ0Q0MDk3RkYxQThDODU1RjAwNEM2NUU5IC8qIENGTlNVUkxDb25uZWN0aW9uU1BJLmgg
Ki8sCiAJCQkJMUM1RTk4MEYxQTAyQ0VGQTAwMkRCNTVGIC8qIENvcmVUZXh0U1BJLmggKi8sCiAJ
CQkJQ0UxMjUyNEExQTE2Qzc5QjAwODY0NDgwIC8qIERpc3BhdGNoU1BJLmggKi8sCkBAIC0xNzgw
Miw2ICsxNzgwNSw3IEBACiAJCTkzNDg0MjgwMTlGMUE5MTkwMDA5RDVBRSAvKiBtYWMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTA3RjBCOTdCMUFDNURC
NDYwMEU1MzVEOSAvKiBBVkZvdW5kYXRpb25TUEkuaCAqLywKIAkJCQkyRDU5RjFCRTFBMDA0NEM2
MDAxRjNEMjkgLyogRGF0YURldGVjdG9yc1NQSS5oICovLAogCQkJCTJENDEzRjYwMUExODdBM0Yw
MDQxQTUyMSAvKiBMb29rdXBTUEkuaCAqLywKIAkJCQkxQzY0NjYyNzFBMTJDM0Y5MDA5NDYwM0Mg
LyogTlNGb250U1BJLmggKi8sCkBAIC0xODcwNiw3ICsxODcxMCw2IEBACiAJCUExNzIxODI0MTlE
RTE4MkIwMDQ2NEQxNyAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCUNFMTI1MjNFMUExNkFFMTIwMDg2NDQ4MCAvKiBBVktpdFNQSS5oICovLAog
CQkJCUNFMTI1MjQyMUExNkMwMUEwMDg2NDQ4MCAvKiBDb3JlVUlTUEkuaCAqLywKIAkJCQlDRUMz
MzdBRTFBNDYwODZEMDA5Qjg1MjMgLyogR3JhcGhpY3NTZXJ2aWNlc1NQSS5oICovLAogCQkJCUNF
MTI1MjQ4MUExNkMzQkMwMDg2NDQ4MCAvKiBNb2JpbGVHZXN0YWx0U1BJLmggKi8sCkBAIC0yMzcy
Myw3ICsyMzcyNiw2IEBACiAJCQkJQThDRkYwNEUwQTE1NEYwOTAwMEE0MjM0IC8qIEF1dG9UYWJs
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzYzRTAxODFBMUNEQzAwQzA3NEE1IC8q
IEFWQXVkaW9DYXB0dXJlU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzAzNjNFMjE4MUEx
Q0RDMDBDMDc0QTUgLyogQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQ0UxMjUyM0YxQTE2QUUxMjAwODY0NDgwIC8qIEFWS2l0U1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwNzAzNjNFNDE4MUExQ0RDMDBDMDc0QTUgLyogQVZNZWRpYUNhcHR1cmVTb3VyY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEMzM2RjYyMTdGOUY2NDcwMERERENEMCAvKiBBVlRyYWNrUHJp
dmF0ZUFWRk9iakNJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzAzNjNFNjE4MUExQ0RDMDBD
MDc0QTUgLyogQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwMTQs
NiArMjUwMTYsNyBAQAogCQkJCTZGQTQ0NTRFODk4RjJGQzE2OEJDMzhDMSAvKiBKU0JlZm9yZVVu
bG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREYwOURDOTEzOTlCNjIyMDA2ODhFNUIg
LyogSlNCaXF1YWRGaWx0ZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTJEOTlDRTEwRTJC
QkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4gSGVhZGVycyAqLywKKwkJCQkwN0YwQjk3QzFBQzVE
QjQ2MDBFNTM1RDkgLyogQVZGb3VuZGF0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ5
RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBMzc2MzZDMUEyRTY4QkIwMDlBN0VFMiAvKiBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMjNBMDlEMURFNjUwMDBCRTMyNSAvKiBKU0NhbnZh
c0dyYWRpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MjM4LDYgKzI1MjQxLDcgQEAKIAkJCQkw
N0M1OUI3MjE3Rjc5QzdDMDAwRkJDQkIgLyogSlNNZWRpYVNvdXJjZVN0YXRlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcyNzdFNEQxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW0uaCBp
biBIZWFkZXJzICovLAogCQkJCTA3Mjc3RTRGMTdEMDE4Q0MwMDE1NTM0RCAvKiBKU01lZGlhU3Ry
ZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3RjBCOTdBMUFD
NURCMzMwMEU1MzVEOSAvKiBBVktpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRCRDQ4MEQx
NTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3MDU4NTEzMTdGQTcxMDcwMDVGMkJDQiAvKiBKU01lZGlhU3RyZWFtQ2Fw
YWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzI3N0U1MTE3RDAxOENDMDAxNTUzNEQg
LyogSlNNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0LmgJ
KHJldmlzaW9uIDE4MjExNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWJhY2tUYXJnZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogI2lm
IFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU0tleWVkQXJjaGl2ZXI7CiBPQkpDX0NMQVNT
IE5TS2V5ZWRVbmFyY2hpdmVyOwotT0JKQ19DTEFTUyBBVk91dHB1dERldmljZVBpY2tlckNvbnRl
eHQ7CitPQkpDX0NMQVNTIEFWT3V0cHV0Q29udGV4dDsKICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00MywxOCArNDMsMTggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWJhY2tUYXJnZXQoKSB7IH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQ
T1JUIE1lZGlhUGxheWJhY2tUYXJnZXQoQVZPdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0ICpjb250
ZXh0ID0gbmlsKSB7IG1fZGV2aWNlUGlja2VyQ29udGV4dCA9IGNvbnRleHQ7IH0KKyAgICBXRUJD
T1JFX0VYUE9SVCBNZWRpYVBsYXliYWNrVGFyZ2V0KEFWT3V0cHV0Q29udGV4dCAqY29udGV4dCA9
IG5pbCkgeyBtX2RldmljZVBpY2tlckNvbnRleHQgPSBjb250ZXh0OyB9CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGVuY29kZShOU0tleWVkQXJjaGl2ZXIgKikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGJvb2wgZGVjb2RlKE5TS2V5ZWRVbmFyY2hpdmVyICosIE1lZGlhUGxh
eWJhY2tUYXJnZXQmKTsKIAotICAgIHZvaWQgc2V0RGV2aWNlUGlja2VyQ29udGV4dChBVk91dHB1
dERldmljZVBpY2tlckNvbnRleHQgKmNvbnRleHQpIHsgbV9kZXZpY2VQaWNrZXJDb250ZXh0ID0g
Y29udGV4dDsgfQotICAgIEFWT3V0cHV0RGV2aWNlUGlja2VyQ29udGV4dCAqZGV2aWNlUGlja2Vy
Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlUGlja2VyQ29udGV4dC5nZXQoKTsgfQor
ICAgIHZvaWQgc2V0RGV2aWNlUGlja2VyQ29udGV4dChBVk91dHB1dENvbnRleHQgKmNvbnRleHQp
IHsgbV9kZXZpY2VQaWNrZXJDb250ZXh0ID0gY29udGV4dDsgfQorICAgIEFWT3V0cHV0Q29udGV4
dCAqZGV2aWNlUGlja2VyQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlUGlja2VyQ29u
dGV4dC5nZXQoKTsgfQogI2VuZGlmCiAKIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBSZXRhaW5QdHI8QVZPdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0PiBtX2RldmljZVBpY2tl
ckNvbnRleHQ7CisgICAgUmV0YWluUHRyPEFWT3V0cHV0Q29udGV4dD4gbV9kZXZpY2VQaWNrZXJD
b250ZXh0OwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldE1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
YmFja1RhcmdldE1hYy5tbQkocmV2aXNpb24gMTgyMTE2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJnZXRNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKIAotI2ltcG9ydCA8QVZGb3VuZGF0aW9u
L0FWT3V0cHV0RGV2aWNlUGlja2VyQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVBs
YXliYWNrVGFyZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0
IDxvYmpjL3J1bnRpbWUuaD4KIAotdHlwZWRlZiBBVk91dHB1dERldmljZVBpY2tlckNvbnRleHQg
QVZPdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0VHlwZTsKLQogU09GVF9MSU5LX0ZSQU1FV09SS19P
UFRJT05BTChBVkZvdW5kYXRpb24pCi1TT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVk91
dHB1dERldmljZVBpY2tlckNvbnRleHQpCitTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBB
Vk91dHB1dENvbnRleHQpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMjYgKzQxLDI2
IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IGRldmljZUNvbnRleHRLZXkKIAogdm9pZCBNZWRp
YVBsYXliYWNrVGFyZ2V0OjplbmNvZGUoTlNLZXllZEFyY2hpdmVyICphcmNoaXZlcikgY29uc3QK
IHsKLSAgICBpZiAoW2dldEFWT3V0cHV0RGV2aWNlUGlja2VyQ29udGV4dENsYXNzKCkgY29uZm9y
bXNUb1Byb3RvY29sOkBwcm90b2NvbChOU1NlY3VyZUNvZGluZyldKQorICAgIGlmIChbZ2V0QVZP
dXRwdXRDb250ZXh0Q2xhc3MoKSBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKE5TU2VjdXJl
Q29kaW5nKV0pCiAgICAgICAgIFthcmNoaXZlciBlbmNvZGVPYmplY3Q6bV9kZXZpY2VQaWNrZXJD
b250ZXh0LmdldCgpIGZvcktleTpkZXZpY2VDb250ZXh0S2V5XTsKIH0KIAogYm9vbCBNZWRpYVBs
YXliYWNrVGFyZ2V0OjpkZWNvZGUoTlNLZXllZFVuYXJjaGl2ZXIgKnVuYXJjaGl2ZXIsIE1lZGlh
UGxheWJhY2tUYXJnZXQmIHBsYXliYWNrVGFyZ2V0KQogewotICAgIGlmICghW2dldEFWT3V0cHV0
RGV2aWNlUGlja2VyQ29udGV4dENsYXNzKCkgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChO
U1NlY3VyZUNvZGluZyldKQorICAgIGlmICghW2dldEFWT3V0cHV0Q29udGV4dENsYXNzKCkgY29u
Zm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChOU1NlY3VyZUNvZGluZyldKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBBVk91dHB1dERldmljZVBpY2tlckNvbnRleHQgKmNvbnRleHQgPSBu
aWw7Ci0KKyAgICBBVk91dHB1dENvbnRleHQgKmNvbnRleHQgPSBuaWw7CiAgICAgQHRyeSB7Ci0g
ICAgICAgIGNvbnRleHQgPSBbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNzOmdldEFWT3V0
cHV0RGV2aWNlUGlja2VyQ29udGV4dENsYXNzKCkgZm9yS2V5OmRldmljZUNvbnRleHRLZXldOwor
ICAgICAgICBjb250ZXh0ID0gW3VuYXJjaGl2ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzczpnZXRBVk91
dHB1dENvbnRleHRDbGFzcygpIGZvcktleTpkZXZpY2VDb250ZXh0S2V5XTsKICAgICB9IEBjYXRj
aCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgewotICAgICAgICBMT0dfRVJST1IoIlRoZSB0YXJn
ZXQgcGlja2VyIGJlaW5nIGRlY29kZWQgaXMgbm90IGEgQVZPdXRwdXREZXZpY2VQaWNrZXJDb250
ZXh0LiIpOworICAgICAgICBMT0dfRVJST1IoIlRoZSB0YXJnZXQgcGlja2VyIGJlaW5nIGRlY29k
ZWQgaXMgbm90IGEgQVZPdXRwdXRDb250ZXh0LiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCiAgICAgcGxheWJhY2tUYXJnZXQubV9kZXZpY2VQaWNrZXJDb250ZXh0ID0gY29udGV4
dDsKIAotICAgIHJldHVybiBjb250ZXh0OworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5oCShyZXZpc2lvbiAxODIxMTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDggQEAKICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAotT0JK
Q19DTEFTUyBBVk91dHB1dERldmljZVBpY2tlck1lbnVDb250cm9sbGVyOwotT0JKQ19DTEFTUyBX
ZWJBVk91dHB1dERldmljZVBpY2tlck1lbnVDb250cm9sbGVySGVscGVyOworT0JKQ19DTEFTUyBB
Vk91dHB1dERldmljZU1lbnVDb250cm9sbGVyOworT0JKQ19DTEFTUyBXZWJBVk91dHB1dERldmlj
ZU1lbnVDb250cm9sbGVySGVscGVyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDEx
ICs1NCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJNYWMoTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlcjo6Q2xpZW50Jik7CiAKLSAg
ICBBVk91dHB1dERldmljZVBpY2tlck1lbnVDb250cm9sbGVyICpkZXZpY2VQaWNrZXIoKTsKKyAg
ICBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVyICpkZXZpY2VQaWNrZXIoKTsKICAgICB2b2lk
IG91dHB1dGVEZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkVGltZXJGaXJlZCgpOwogCi0gICAgUmV0
YWluUHRyPEFWT3V0cHV0RGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXI+IG1fZGV2aWNlUGlja2Vy
TWVudUNvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPFdlYkFWT3V0cHV0RGV2aWNlUGlja2VyTWVu
dUNvbnRyb2xsZXJIZWxwZXI+IG1fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZTsK
KyAgICBSZXRhaW5QdHI8QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlcj4gbV9vdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8V2ViQVZPdXRwdXREZXZpY2VNZW51Q29u
dHJvbGxlckhlbHBlcj4gbV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckRlbGVnYXRlOwogICAg
IFJ1bkxvb3A6OlRpbWVyPE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM+IG1fZGV2aWNlQ2hh
bmdlVGltZXI7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0JKHJldmlzaW9uIDE4MjExNikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDM2ICsyOCwyOSBA
QAogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElP
UykKIAorI2ltcG9ydCA8V2ViQ29yZS9BVkZvdW5kYXRpb25TUEkuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvQVZLaXRTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtp
bmcuaD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KIAotQGNsYXNzIEFWT3V0cHV0RGV2aWNlUGlja2VyQ29udGV4dDsKLUBpbnRlcmZhY2UgQVZP
dXRwdXREZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlciA6IE5TT2JqZWN0Ci1AcHJvcGVydHkgKHJl
YWRvbmx5KSBBVk91dHB1dERldmljZVBpY2tlckNvbnRleHQgKiBvdXRwdXREZXZpY2VQaWNrZXJD
b250ZXh0OwotQHByb3BlcnR5IChyZWFkb25seSwgZ2V0dGVyID0gaXNFeHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZSkgQk9PTCBleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZTsKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aE91dHB1dERldmljZVBpY2tlckNvbnRleHQ6KEFWT3V0cHV0RGV2
aWNlUGlja2VyQ29udGV4dCAqKW91dHB1dERldmljZVBpY2tlckNvbnRleHQgTlNfREVTSUdOQVRF
RF9JTklUSUFMSVpFUjsKLS0gKHZvaWQpc2hvd01lbnVGb3JSZWN0OihOU1JlY3Qpc2NyZWVuUmVj
dCBhcHBlYXJhbmNlTmFtZTooTlNTdHJpbmcgKilhcHBlYXJhbmNlTmFtZTsKLUBlbmQKLQotdHlw
ZWRlZiBBVk91dHB1dERldmljZVBpY2tlckNvbnRleHQgQVZPdXRwdXREZXZpY2VQaWNrZXJDb250
ZXh0VHlwZTsKLXR5cGVkZWYgQVZPdXRwdXREZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlciBBVk91
dHB1dERldmljZVBpY2tlck1lbnVDb250cm9sbGVyVHlwZTsKK3R5cGVkZWYgQVZPdXRwdXRDb250
ZXh0IEFWT3V0cHV0Q29udGV4dFR5cGU7Cit0eXBlZGVmIEFWT3V0cHV0RGV2aWNlTWVudUNvbnRy
b2xsZXIgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclR5cGU7CiAKIFNPRlRfTElOS19GUkFN
RVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05B
TChBVktpdCkKIAotU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZPdXRwdXREZXZpY2VQ
aWNrZXJDb250ZXh0KQotU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVk91dHB1dERldmljZVBpY2tl
ck1lbnVDb250cm9sbGVyKQotU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVk91dHB1dERldmljZVBp
Y2tlckRlbGVnYXRlKQorU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZPdXRwdXRDb250
ZXh0KQorU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVy
KQogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIE5TU3RyaW5nICpleHRlcm5h
bE91dHB1dERldmljZUF2YWlsYWJsZUtleU5hbWUgPSBAImV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlIjsKIHN0YXRpYyBOU1N0cmluZyAqZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlO
YW1lID0gQCJleHRlcm5hbE91dHB1dERldmljZVBpY2tlZCI7CiAKLUBpbnRlcmZhY2UgV2ViQVZP
dXRwdXREZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsKK0BpbnRl
cmZhY2UgV2ViQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckhlbHBlciA6IE5TT2JqZWN0IHsK
ICAgICBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjKiBtX2NhbGxiYWNrOwogfQogCkBAIC03
NSw3ICs2OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2UKIAog
TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6TWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1h
YyhNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyOjpDbGllbnQmIGNsaWVudCkKICAgICA6IE1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIoY2xpZW50KQotICAgICwgbV9kZXZpY2VQaWNrZXJNZW51Q29u
dHJvbGxlckRlbGVnYXRlKGFkb3B0TlMoW1tXZWJBVk91dHB1dERldmljZVBpY2tlck1lbnVDb250
cm9sbGVySGVscGVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNdKSkKKyAgICAsIG1fb3V0
cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZShhZG9wdE5TKFtbV2ViQVZPdXRwdXREZXZp
Y2VNZW51Q29udHJvbGxlckhlbHBlciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazp0aGlzXSkpCiAg
ICAgLCBtX2RldmljZUNoYW5nZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk1lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJNYWM6Om91dHB1dGVEZXZpY2VBdmFpbGFiaWxpdHlDaGFuZ2VkVGlt
ZXJGaXJlZCkKIHsKIH0KQEAgLTgzLDE4ICs3NiwxMyBAQCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjOjpNZWRpYVBsYXliCiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjp+TWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlck1hYygpCiB7CiAgICAgbV9kZXZpY2VDaGFuZ2VUaW1lci5zdG9w
KCk7Ci0gICAgW21fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZSBjbGVhckNhbGxi
YWNrXTsKLQotICAgIGlmIChtX2RldmljZVBpY2tlck1lbnVDb250cm9sbGVyKSB7Ci0gICAgICAg
IFttX2RldmljZVBpY2tlck1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fZGV2aWNlUGlj
a2VyTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0
RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07Ci0gICAgICAgIFttX2RldmljZVBpY2tlck1lbnVDb250
cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXJEZWxlZ2F0
ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZV07Ci0g
ICAgICAgIG1fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXIgPSBuaWw7Ci0gICAgfQorICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyRGVsZWdhdGUgY2xlYXJDYWxsYmFja107CisgICAg
c3RvcE1vbml0b3JpbmdQbGF5YmFja1RhcmdldHMoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyTWFjOjpvdXRwdXRlRGV2aWNlQXZhaWxhYmlsaXR5Q2hhbmdlZFRpbWVyRmly
ZWQoKQogewotICAgIGlmICghbV9kZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlciB8fCAhbV9jbGll
bnQpCisgICAgaWYgKCFtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHx8ICFtX2NsaWVudCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jbGllbnQtPmV4dGVybmFsT3V0cHV0RGV2aWNlQXZh
aWxhYmxlRGlkQ2hhbmdlKGRldmljZVBpY2tlcigpLmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxh
YmxlKTsKQEAgLTEwOSwyMCArOTcsMjMgQEAgdm9pZCBNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
TWFjOjphdmFpbAogICAgIG1fZGV2aWNlQ2hhbmdlVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQog
Ci1BVk91dHB1dERldmljZVBpY2tlck1lbnVDb250cm9sbGVyVHlwZSAqTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlck1hYzo6ZGV2aWNlUGlja2VyKCkKK0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXJUeXBlICpNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFjOjpkZXZpY2VQaWNrZXIoKQogewot
ICAgIGlmICghbV9kZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlcikgewotICAgICAgICBSZXRhaW5Q
dHI8QVZPdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0VHlwZT4gY29udGV4dCA9IGFkb3B0TlMoW1tn
ZXRBVk91dHB1dERldmljZVBpY2tlckNvbnRleHRDbGFzcygpIGFsbG9jXSBpbml0XSk7Ci0gICAg
ICAgIG1fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbZ2V0QVZPdXRwdXRE
ZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlckNsYXNzKCkgYWxsb2NdIGluaXRXaXRoT3V0cHV0RGV2
aWNlUGlja2VyQ29udGV4dDpjb250ZXh0LmdldCgpXSk7CisgICAgaWYgKCFnZXRBVk91dHB1dERl
dmljZU1lbnVDb250cm9sbGVyQ2xhc3MoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICAgICAgW21fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXIgYWRkT2JzZXJ2ZXI6bV9kZXZpY2VQ
aWNrZXJNZW51Q29udHJvbGxlckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRw
dXREZXZpY2VBdmFpbGFibGVLZXlOYW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bk5ldyBjb250ZXh0Om5pbF07Ci0gICAgICAgIFttX2RldmljZVBpY2tlck1lbnVDb250cm9sbGVy
IGFkZE9ic2VydmVyOm1fZGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBm
b3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlUGlja2VkS2V5TmFtZSBvcHRpb25zOk5TS2V5
VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDpuaWxdOworICAgIGlmICghbV9vdXRwdXRE
ZXZpY2VNZW51Q29udHJvbGxlcikgeworICAgICAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0
VHlwZT4gY29udGV4dCA9IGFkb3B0TlMoW1tnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIGFsbG9j
XSBpbml0XSk7CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIgPSBhZG9wdE5T
KFtbZ2V0QVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlckNsYXNzKCkgYWxsb2NdIGluaXRXaXRo
T3V0cHV0Q29udGV4dDpjb250ZXh0LmdldCgpXSk7CiAKLSAgICAgICAgaWYgKG1fZGV2aWNlUGlj
a2VyTWVudUNvbnRyb2xsZXIuZ2V0KCkuZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGUpCisg
ICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpIGFkZE9ic2VydmVyOm1f
b3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZSBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZp
bmdPcHRpb25OZXcgY29udGV4dDpudWxscHRyXTsKKyAgICAgICAgW21fb3V0cHV0RGV2aWNlTWVu
dUNvbnRyb2xsZXIuZ2V0KCkgYWRkT2JzZXJ2ZXI6bV9vdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ckRlbGVnYXRlLmdldCgpIGZvcktleVBhdGg6ZXh0ZXJuYWxPdXRwdXREZXZpY2VQaWNrZWRLZXlO
YW1lIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Om51bGxwdHJd
OworCisgICAgICAgIGlmIChtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgpLmV4dGVy
bmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlKQogICAgICAgICAgICAgYXZhaWxhYmxlRGV2aWNlc0Rp
ZENoYW5nZSgpOwogICAgIH0KIAotICAgIHJldHVybiBtX2RldmljZVBpY2tlck1lbnVDb250cm9s
bGVyLmdldCgpOworICAgIHJldHVybiBtX291dHB1dERldmljZU1lbnVDb250cm9sbGVyLmdldCgp
OwogfQogCiB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcihjb25zdCBGbG9hdFJlY3QmIGxvY2F0aW9uLCBib29sKQpAQCAtMTM4LDcgKzEy
OSwxNCBAQCB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OmN1cnJlCiAgICAgaWYg
KCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQtPmRpZENob29zZVBs
YXliYWNrVGFyZ2V0KE1lZGlhUGxheWJhY2tUYXJnZXQoW2RldmljZVBpY2tlcigpIG91dHB1dERl
dmljZVBpY2tlckNvbnRleHRdKSk7CisgICAgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxlclR5
cGUqIGRldmljZVBpY2tlciA9IHRoaXMtPmRldmljZVBpY2tlcigpOworICAgIGlmICghZGV2aWNl
UGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZGV2aWNlUGlja2VyLmlzRXh0ZXJu
YWxPdXRwdXREZXZpY2VQaWNrZWQpCisgICAgICAgIG1fY2xpZW50LT5kaWRDaG9vc2VQbGF5YmFj
a1RhcmdldChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0KFtkZXZpY2VQaWNrZXIgb3V0cHV0
Q29udGV4dF0pKTsKKyAgICBlbHNlCisgICAgICAgIG1fY2xpZW50LT5kaWRDaG9vc2VQbGF5YmFj
a1RhcmdldChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0KG5pbCkpOwogfQogCiB2b2lkIE1l
ZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWM6OnN0YXJ0aW5nTW9uaXRvcmluZ1BsYXliYWNrVGFy
Z2V0cygpCkBAIC0xNDgsMTEgKzE0NiwxNiBAQCB2b2lkIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJNYWM6OnN0YXJ0CiAKIHZvaWQgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYzo6c3RvcE1v
bml0b3JpbmdQbGF5YmFja1RhcmdldHMoKQogeworICAgIGlmIChtX291dHB1dERldmljZU1lbnVD
b250cm9sbGVyKSB7CisgICAgICAgIFttX291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92
ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JL
ZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlS2V5TmFtZV07CisgICAgICAgIFtt
X291dHB1dERldmljZU1lbnVDb250cm9sbGVyIHJlbW92ZU9ic2VydmVyOm1fb3V0cHV0RGV2aWNl
TWVudUNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKSBmb3JLZXlQYXRoOmV4dGVybmFsT3V0cHV0RGV2
aWNlUGlja2VkS2V5TmFtZV07CisgICAgICAgIG1fb3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXIg
PSBudWxscHRyOworICAgIH0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi1AaW1wbGVt
ZW50YXRpb24gV2ViQVZPdXRwdXREZXZpY2VQaWNrZXJNZW51Q29udHJvbGxlckhlbHBlcgorQGlt
cGxlbWVudGF0aW9uIFdlYkFWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xsZXJIZWxwZXIKIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aENhbGxiYWNrOihNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyTWFj
KiljYWxsYmFjawogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpAQCAtMTgwLDcg
KzE4Myw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooaWQpa2V5UGEKICAgICBp
ZiAoIVtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJs
ZUtleU5hbWVdICYmICFba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6ZXh0ZXJuYWxPdXRwdXREZXZp
Y2VQaWNrZWRLZXlOYW1lXSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmV0YWluUHRyPFdlYkFW
T3V0cHV0RGV2aWNlUGlja2VyTWVudUNvbnRyb2xsZXJIZWxwZXI+IHN0cm9uZ1NlbGYgPSBzZWxm
OworICAgIFJldGFpblB0cjxXZWJBVk91dHB1dERldmljZU1lbnVDb250cm9sbGVySGVscGVyPiBz
dHJvbmdTZWxmID0gc2VsZjsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cm9uZ0tleVBhdGgg
PSBrZXlQYXRoOwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1NlbGYsIHN0cm9uZ0tleVBh
dGhdIHsKICAgICAgICAgTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYyogY2FsbGJhY2sgPSBz
dHJvbmdTZWxmLT5tX2NhbGxiYWNrOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAkocmV2aXNp
b24gMTgyMTE2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw3IEBACiBPQkpDX0NMQVNTIEFWQXNzZXRJbWFnZUdlbmVyYXRvcjsK
IE9CSkNfQ0xBU1MgQVZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3Q7CiBPQkpDX0NMQVNTIEFW
TWVkaWFTZWxlY3Rpb25Hcm91cDsKLU9CSkNfQ0xBU1MgQVZPdXRwdXREZXZpY2VQaWNrZXJDb250
ZXh0OworT0JKQ19DTEFTUyBBVk91dHB1dENvbnRleHQ7CiBPQkpDX0NMQVNTIEFWUGxheWVyOwog
T0JKQ19DTEFTUyBBVlBsYXllckl0ZW07CiBPQkpDX0NMQVNTIEFWUGxheWVySXRlbUxlZ2libGVP
dXRwdXQ7CkBAIC0zNTEsNyArMzUxLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIFJldGFpblB0
cjxBVk91dHB1dERldmljZVBpY2tlckNvbnRleHQ+IG1fb3V0cHV0RGV2aWNlUGlja2VyQ29udGV4
dDsKKyAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiBtX291dHB1dENvbnRleHQ7CiAjZW5k
aWYKIAogICAgIG11dGFibGUgUmV0YWluUHRyPE5TQXJyYXk+IG1fY2FjaGVkU2Vla2FibGVSYW5n
ZXM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHJldmlzaW9uIDE4MjExNikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAjaW1wb3J0ICJN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCiAKKyNpbXBvcnQgIkFWRm91bmRh
dGlvblNQSS5oIgogI2ltcG9ydCAiQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5oIgogI2ltcG9y
dCAiQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaCIKICNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2
YXRlQVZGT2JqQy5oIgpAQCAtMTM2LDE0ICsxMzcsNiBAQCBAaW50ZXJmYWNlIEFWVVJMQXNzZXQg
KFdlYktpdEV4dGVuc2lvbnMpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJM
ICpyZXNvbHZlZFVSTDsKIEBlbmQKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKLXR5cGVkZWYgQVZPdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0
IEFWT3V0cHV0RGV2aWNlUGlja2VyQ29udGV4dFR5cGU7Ci0KLUBpbnRlcmZhY2UgQVZQbGF5ZXIg
KFdlYktpdEV4dGVuc2lvbnMpCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQVZPdXRwdXREZXZpY2VQ
aWNrZXJDb250ZXh0ICpvdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0OwotQGVuZAotI2VuZGlmCi0K
IHR5cGVkZWYgQVZQbGF5ZXIgQVZQbGF5ZXJUeXBlOwogdHlwZWRlZiBBVlBsYXllckl0ZW0gQVZQ
bGF5ZXJJdGVtVHlwZTsKIHR5cGVkZWYgQVZQbGF5ZXJJdGVtTGVnaWJsZU91dHB1dCBBVlBsYXll
ckl0ZW1MZWdpYmxlT3V0cHV0VHlwZTsKQEAgLTU1NSw3ICs1NDgsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgICAgIFttX2F2UGxheWVyLmdldCgpIHJl
bW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6QCJyYXRlIl07CiAj
aWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICAgICAgW21fYXZQbGF5ZXIu
Z2V0KCkgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAImV4
dGVybmFsUGxheWJhY2tBY3RpdmUiXTsKLSAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgcmVtb3Zl
T2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIm91dHB1dERldmljZVBp
Y2tlckNvbnRleHQiXTsKKyAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgcmVtb3ZlT2JzZXJ2ZXI6
bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAIm91dHB1dENvbnRleHQiXTsKICNlbmRp
ZgogICAgICAgICBtX2F2UGxheWVyID0gbmlsOwogICAgIH0KQEAgLTkzNyw3ICs5MzAsNyBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgW21fYXZQbGF5ZXIu
Z2V0KCkgYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAInJhdGUi
IG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopTWVk
aWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHRQbGF5ZXJdOwogI2lmIEVOQUJM
RShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgYWRkT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDpAImV4dGVybmFsUGxheWJhY2tB
Y3RpdmUiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lk
ICopTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHRQbGF5ZXJdOwotICAg
IFttX2F2UGxheWVyLmdldCgpIGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktl
eVBhdGg6QCJvdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2Jz
ZXJ2YXRpb25Db250ZXh0UGxheWVyXTsKKyAgICBbbV9hdlBsYXllci5nZXQoKSBhZGRPYnNlcnZl
cjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAib3V0cHV0Q29udGV4dCIgb3B0aW9u
czpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6KHZvaWQgKilNZWRpYVBsYXll
ckFWRm91bmRhdGlvbk9ic2VydmF0aW9uQ29udGV4dFBsYXllcl07CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC05NTMsOCArOTQ2LDggQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQotICAgIGlmIChtX291
dHB1dERldmljZVBpY2tlckNvbnRleHQpCi0gICAgICAgIG1fYXZQbGF5ZXIuZ2V0KCkub3V0cHV0
RGV2aWNlUGlja2VyQ29udGV4dCA9IG1fb3V0cHV0RGV2aWNlUGlja2VyQ29udGV4dC5nZXQoKTsK
KyAgICBpZiAobV9vdXRwdXRDb250ZXh0KQorICAgICAgICBtX2F2UGxheWVyLmdldCgpLm91dHB1
dENvbnRleHQgPSBtX291dHB1dENvbnRleHQuZ2V0KCk7CiAjZW5kaWYKIAogICAgIGlmIChwbGF5
ZXIoKS0+Y2xpZW50KCkubWVkaWFQbGF5ZXJJc1ZpZGVvKCkpCkBAIC0yNzY5LDE0ICsyNzYyLDE0
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICNpZiAhUExBVEZP
Uk0oSU9TKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0KGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXQmIHRhcmdldCkKIHsK
LSAgICBtX291dHB1dERldmljZVBpY2tlckNvbnRleHQgPSB0YXJnZXQuZGV2aWNlUGlja2VyQ29u
dGV4dCgpOworICAgIG1fb3V0cHV0Q29udGV4dCA9IHRhcmdldC5kZXZpY2VQaWNrZXJDb250ZXh0
KCk7CiAKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCVwKSAtIHRhcmdldCA9ICVwIiwgdGhpcywgbV9v
dXRwdXREZXZpY2VQaWNrZXJDb250ZXh0LmdldCgpKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCVw
KSAtIHRhcmdldCA9ICVwIiwgdGhpcywgbV9vdXRwdXRDb250ZXh0LmdldCgpKTsKIAogICAgIGlm
ICghbV9hdlBsYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9hdlBsYXllci5nZXQoKS5v
dXRwdXREZXZpY2VQaWNrZXJDb250ZXh0ID0gbV9vdXRwdXREZXZpY2VQaWNrZXJDb250ZXh0Lmdl
dCgpOworICAgIG1fYXZQbGF5ZXIuZ2V0KCkub3V0cHV0Q29udGV4dCA9IG1fb3V0cHV0Q29udGV4
dC5nZXQoKTsKIH0KICNlbmRpZgogCkBAIC0zMjA5LDcgKzMyMDIsNyBAQCAtICh2b2lkKW9ic2Vy
dmVWYWx1ZUZvcktleVBhdGg6a2V5UGF0aCBvCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkKICAgICAgICAgZWxzZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiZXh0
ZXJuYWxQbGF5YmFja0FjdGl2ZSJdKQogICAgICAgICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQo
Jk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXliYWNrVGFyZ2V0SXNXaXJl
bGVzc0RpZENoYW5nZSwgbV9jYWxsYmFjayk7Ci0gICAgICAgIGVsc2UgaWYgKFtrZXlQYXRoIGlz
RXF1YWxUb1N0cmluZzpAIm91dHB1dERldmljZVBpY2tlckNvbnRleHQiXSkKKyAgICAgICAgZWxz
ZSBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAib3V0cHV0Q29udGV4dCJdKQogICAgICAg
ICAgICAgZnVuY3Rpb24gPSBXVEY6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0RpZENoYW5nZSwgbV9jYWxsYmFjayk7CiAj
ZW5kaWYKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQVZL
aXRTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2Ev
QVZLaXRTUEkuaAkocmV2aXNpb24gMTgyMTE2KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvaW9zL0FWS2l0U1BJLmg6MTgyMTE2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2NvY29hL0FWS2l0U1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxBVktpdC9BVktpdC5oPgorI2ltcG9ydCA8UXVhcnR6Q29yZS9R
dWFydHpDb3JlLmg+CisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorCisjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKworI2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJDb250cm9sbGVyLmg+CisjaW1w
b3J0IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KKyNpbXBvcnQgPEFW
S2l0L0FWUGxheWVyVmlld0NvbnRyb2xsZXJfV2ViS2l0T25seS5oPgorI2ltcG9ydCA8QVZLaXQv
QVZWaWRlb0xheWVyLmg+CisKKyNlbHNlCisKK0BpbnRlcmZhY2UgQVZQbGF5ZXJDb250cm9sbGVy
IDogVUlSZXNwb25kZXIKK0BlbmQKKworQGludGVyZmFjZSBBVlBsYXllckNvbnRyb2xsZXIgKERl
dGFpbHMpCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBVlBsYXllckNvbnRyb2xsZXJTdGF0
dXMpIHsKKyAgICBBVlBsYXllckNvbnRyb2xsZXJTdGF0dXNSZWFkeVRvUGxheSA9IDIsCit9Owor
Cit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBVlBsYXllckNvbnRyb2xsZXJFeHRlcm5hbFBs
YXliYWNrVHlwZSkgeworICAgIEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBl
Tm9uZSA9IDAsCisgICAgQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5cGVBaXJQ
bGF5ID0gMSwKKyAgICBBVlBsYXllckNvbnRyb2xsZXJFeHRlcm5hbFBsYXliYWNrVHlwZVRWT3V0
ID0gMiwKK307CisKK0Bwcm9wZXJ0eSAoTlNfTk9OQVRPTUlDX0lPU09OTFksIHJlYWRvbmx5KSBB
VlBsYXllckNvbnRyb2xsZXJTdGF0dXMgc3RhdHVzOworQGVuZAorCitAcHJvdG9jb2wgQVZWaWRl
b0xheWVyCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBVlZpZGVvTGF5ZXJHcmF2aXR5KSB7
CisgICAgQVZWaWRlb0xheWVyR3Jhdml0eUludmFsaWQgPSAwLAorICAgIEFWVmlkZW9MYXllckdy
YXZpdHlSZXNpemVBc3BlY3QgPSAxLAorICAgIEFWVmlkZW9MYXllckdyYXZpdHlSZXNpemVBc3Bl
Y3RGaWxsID0gMiwKKyAgICBBVlZpZGVvTGF5ZXJHcmF2aXR5UmVzaXplID0gMywKK307CistICh2
b2lkKXNldFBsYXllckNvbnRyb2xsZXI6KEFWUGxheWVyQ29udHJvbGxlciAqKXBsYXllckNvbnRy
b2xsZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQVZWaWRlb0xheWVyR3Jhdml0eSB2aWRlb0xh
eWVyR3Jhdml0eTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0OworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNSZWFkeUZvckRpc3BsYXkpIEJP
T0wgcmVhZHlGb3JEaXNwbGF5OworQGVuZAorCitAcHJvdG9jb2wgQVZQbGF5ZXJWaWV3Q29udHJv
bGxlckRlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAordHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgQVZQbGF5ZXJWaWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29uKSB7CisgICAg
QVZQbGF5ZXJWaWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29uRG9uZUJ1dHRvblRhcHBl
ZCA9IDAsCisgICAgQVZQbGF5ZXJWaWV3Q29udHJvbGxlckV4aXRGdWxsU2NyZWVuUmVhc29uUmVt
b3RlQ29udHJvbFN0b3BFdmVudFJlY2VpdmVkID0gMywKK307CistIChCT09MKXBsYXllclZpZXdD
b250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXIg
c2hvdWxkRXhpdEZ1bGxTY3JlZW5XaXRoUmVhc29uOihBVlBsYXllclZpZXdDb250cm9sbGVyRXhp
dEZ1bGxTY3JlZW5SZWFzb24pcmVhc29uOworLSAodm9pZClwbGF5ZXJWaWV3Q29udHJvbGxlcjoo
QVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHJlc3RvcmVVc2Vy
SW50ZXJmYWNlRm9yT3B0aW1pemVkRnVsbHNjcmVlblN0b3BXaXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKEJPT0wgcmVzdG9yZWQpKWNvbXBsZXRpb25IYW5kbGVyOworQGVuZAorCit0eXBl
ZGVmIE5TSW50ZWdlciBBVlBsYXllclZpZXdDb250cm9sbGVyT3B0aW1pemVkRnVsbHNjcmVlblN0
b3BSZWFzb247CisKK0BpbnRlcmZhY2UgQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAoRGV0YWlscykK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZGVvTGF5ZXI6KENBTGF5ZXIgPEFWVmlkZW9MYXll
cj4gKil2aWRlb0xheWVyOworLSAodm9pZCllbnRlckZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxl
cjsKKy0gKHZvaWQpZXhpdEZ1bGxTY3JlZW5BbmltYXRlZDooQk9PTClhbmltYXRlZCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopKWNvbXBsZXRpb25I
YW5kbGVyOworLSAodm9pZClleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOworCistICh2
b2lkKXN0YXJ0T3B0aW1pemVkRnVsbHNjcmVlbldpdGhTdGFydENvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IqKSlzdGFydENvbXBsZXRpb25IYW5kbGVyIHN0
b3BDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQVZQbGF5ZXJWaWV3Q29udHJvbGxlck9wdGlt
aXplZEZ1bGxzY3JlZW5TdG9wUmVhc29uKSlzdG9wQ29tcGxldGlvbkhhbmRsZXI7CistICh2b2lk
KXN0b3BPcHRpbWl6ZWRGdWxsc2NyZWVuOworLSAodm9pZCljYW5jZWxPcHRpbWl6ZWRGdWxsc2Ny
ZWVuOworLSAodm9pZClzZXRBbGxvd3NPcHRpbWl6ZWRGdWxsc2NyZWVuOihCT09MKWFsbG93c09w
dGltaXplZEZ1bGxzY3JlZW47CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIEFWUGxh
eWVyQ29udHJvbGxlciAqcGxheWVyQ29udHJvbGxlcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrKSBpZCA8QVZQbGF5ZXJWaWV3Q29udHJvbGxlckRlbGVnYXRlPiBkZWxlZ2F0ZTsKK0BlbmQK
KworI2VuZGlmCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX0lQSE9ORV9PU19W
RVJTSU9OX01JTl9SRVFVSVJFRCA8IDkwMDAwCisKKyNpbXBvcnQgPEFWS2l0L0FWVmFsdWVUaW1p
bmcuaD4KKworI2Vsc2UKKworQGludGVyZmFjZSBBVlZhbHVlVGltaW5nIDogTlNPYmplY3QgPE5T
Q29kaW5nLCBOU0NvcHlpbmcsIE5TTXV0YWJsZUNvcHlpbmc+CitAZW5kCisKK0BpbnRlcmZhY2Ug
QVZWYWx1ZVRpbWluZyAoRGV0YWlscykKKysgKEFWVmFsdWVUaW1pbmcgKil2YWx1ZVRpbWluZ1dp
dGhBbmNob3JWYWx1ZTooZG91YmxlKWFuY2hvclZhbHVlIGFuY2hvclRpbWVTdGFtcDooTlNUaW1l
SW50ZXJ2YWwpdGltZVN0YW1wIHJhdGU6KGRvdWJsZSlyYXRlOworQHByb3BlcnR5IChOU19OT05B
VE9NSUNfSU9TT05MWSwgcmVhZG9ubHkpIGRvdWJsZSBjdXJyZW50VmFsdWU7CitAZW5kCisKKyNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0FWS2l0U1BJLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0FWS2l0U1BJ
LmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9B
VktpdFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KKworI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgPEFWS2l0
L0FWS2l0Lmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFVJ
S2l0L1VJS2l0Lmg+CkBAIC05Myw3ICs5Nyw3IEBAIHR5cGVkZWYgTlNJbnRlZ2VyIEFWUGxheWVy
Vmlld0NvbnRyb2xsZXIKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8QVZQbGF5ZXJW
aWV3Q29udHJvbGxlckRlbGVnYXRlPiBkZWxlZ2F0ZTsKIEBlbmQKIAotI2VuZGlmCisjZW5kaWYg
Ly8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
ICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgOTAwMDAKIApAQCAtMTEwLDMg
KzExNCwzMyBAQCB0eXBlZGVmIE5TSW50ZWdlciBBVlBsYXllclZpZXdDb250cm9sbGVyCiBAZW5k
CiAKICNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFWS2l0L0FWT3V0cHV0RGV2aWNlTWVudUNvbnRyb2xs
ZXIuaD4KKworI2Vsc2UKKworQGNsYXNzIEFWT3V0cHV0Q29udGV4dDsKKworTlNfQ0xBU1NfQVZB
SUxBQkxFX01BQygxMF8xMSkKK0BpbnRlcmZhY2UgQVZPdXRwdXREZXZpY2VNZW51Q29udHJvbGxl
ciA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE91dHB1dENvbnRleHQ6KEFW
T3V0cHV0Q29udGV4dCAqKW91dHB1dENvbnRleHQgTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsK
KworQHByb3BlcnR5IChyZWFkb25seSkgQVZPdXRwdXRDb250ZXh0ICpvdXRwdXRDb250ZXh0Owor
QHByb3BlcnR5IChyZWFkb25seSwgZ2V0dGVyPWlzRXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFi
bGUpIEJPT0wgZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGU7CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBnZXR0ZXI9aXNFeHRlcm5hbE91dHB1dERldmljZVBpY2tlZCkgQk9PTCBleHRlcm5hbE91
dHB1dERldmljZVBpY2tlZDsKKworLSAodm9pZClzaG93TWVudUZvclJlY3Q6KE5TUmVjdClzY3Jl
ZW5SZWN0IGFwcGVhcmFuY2VOYW1lOihOU1N0cmluZyAqKWFwcGVhcmFuY2VOYW1lOworCitAZW5k
CisKKworI2VuZGlmCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Bp
L2lvcy9BVktpdFNQSS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9pb3MvQVZLaXRTUEkuaAkocmV2aXNpb24gMTgyMTE2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL2lvcy9BVktpdFNQSS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExMiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8QVZLaXQvQVZLaXQuaD4KLSNpbXBvcnQgPFF1YXJ0ekNv
cmUvUXVhcnR6Q29yZS5oPgotI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KLQotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCi0KLSNpbXBvcnQgPEFWS2l0L0FWUGxheWVyQ29udHJvbGxlci5oPgot
I2ltcG9ydCA8QVZLaXQvQVZQbGF5ZXJWaWV3Q29udHJvbGxlcl9Qcml2YXRlLmg+Ci0jaW1wb3J0
IDxBVktpdC9BVlBsYXllclZpZXdDb250cm9sbGVyX1dlYktpdE9ubHkuaD4KLSNpbXBvcnQgPEFW
S2l0L0FWVmlkZW9MYXllci5oPgotCi0jZWxzZQotCi1AaW50ZXJmYWNlIEFWUGxheWVyQ29udHJv
bGxlciA6IFVJUmVzcG9uZGVyCi1AZW5kCi0KLUBpbnRlcmZhY2UgQVZQbGF5ZXJDb250cm9sbGVy
IChEZXRhaWxzKQotdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVZQbGF5ZXJDb250cm9sbGVy
U3RhdHVzKSB7Ci0gICAgQVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzUmVhZHlUb1BsYXkgPSAyLAot
fTsKLQotdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJu
YWxQbGF5YmFja1R5cGUpIHsKLSAgICBBVlBsYXllckNvbnRyb2xsZXJFeHRlcm5hbFBsYXliYWNr
VHlwZU5vbmUgPSAwLAotICAgIEFWUGxheWVyQ29udHJvbGxlckV4dGVybmFsUGxheWJhY2tUeXBl
QWlyUGxheSA9IDEsCi0gICAgQVZQbGF5ZXJDb250cm9sbGVyRXh0ZXJuYWxQbGF5YmFja1R5cGVU
Vk91dCA9IDIsCi19OwotCi1AcHJvcGVydHkgKE5TX05PTkFUT01JQ19JT1NPTkxZLCByZWFkb25s
eSkgQVZQbGF5ZXJDb250cm9sbGVyU3RhdHVzIHN0YXR1czsKLUBlbmQKLQotQHByb3RvY29sIEFW
VmlkZW9MYXllcgotdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVZWaWRlb0xheWVyR3Jhdml0
eSkgewotICAgIEFWVmlkZW9MYXllckdyYXZpdHlJbnZhbGlkID0gMCwKLSAgICBBVlZpZGVvTGF5
ZXJHcmF2aXR5UmVzaXplQXNwZWN0ID0gMSwKLSAgICBBVlZpZGVvTGF5ZXJHcmF2aXR5UmVzaXpl
QXNwZWN0RmlsbCA9IDIsCi0gICAgQVZWaWRlb0xheWVyR3Jhdml0eVJlc2l6ZSA9IDMsCi19Owot
LSAodm9pZClzZXRQbGF5ZXJDb250cm9sbGVyOihBVlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJD
b250cm9sbGVyOwotQHByb3BlcnR5IChub25hdG9taWMpIEFWVmlkZW9MYXllckdyYXZpdHkgdmlk
ZW9MYXllckdyYXZpdHk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQ0dSZWN0IHZpZGVvUmVjdDsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzUmVhZHlGb3JEaXNwbGF5
KSBCT09MIHJlYWR5Rm9yRGlzcGxheTsKLUBlbmQKLQotQHByb3RvY29sIEFWUGxheWVyVmlld0Nv
bnRyb2xsZXJEZWxlZ2F0ZSA8TlNPYmplY3Q+Ci1Ab3B0aW9uYWwKLXR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNvbikgewot
ICAgIEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNvbkRvbmVCdXR0b25U
YXBwZWQgPSAwLAotICAgIEFWUGxheWVyVmlld0NvbnRyb2xsZXJFeGl0RnVsbFNjcmVlblJlYXNv
blJlbW90ZUNvbnRyb2xTdG9wRXZlbnRSZWNlaXZlZCA9IDMsCi19OwotLSAoQk9PTClwbGF5ZXJW
aWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9s
bGVyIHNob3VsZEV4aXRGdWxsU2NyZWVuV2l0aFJlYXNvbjooQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ckV4aXRGdWxsU2NyZWVuUmVhc29uKXJlYXNvbjsKLS0gKHZvaWQpcGxheWVyVmlld0NvbnRyb2xs
ZXI6KEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKilwbGF5ZXJWaWV3Q29udHJvbGxlciByZXN0b3Jl
VXNlckludGVyZmFjZUZvck9wdGltaXplZEZ1bGxzY3JlZW5TdG9wV2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShCT09MIHJlc3RvcmVkKSljb21wbGV0aW9uSGFuZGxlcjsKLUBlbmQKLQot
dHlwZWRlZiBOU0ludGVnZXIgQVZQbGF5ZXJWaWV3Q29udHJvbGxlck9wdGltaXplZEZ1bGxzY3Jl
ZW5TdG9wUmVhc29uOwotCi1AaW50ZXJmYWNlIEFWUGxheWVyVmlld0NvbnRyb2xsZXIgKERldGFp
bHMpCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWRlb0xheWVyOihDQUxheWVyIDxBVlZpZGVv
TGF5ZXI+ICopdmlkZW9MYXllcjsKLS0gKHZvaWQpZW50ZXJGdWxsU2NyZWVuV2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKikpY29tcGxldGlvbkhh
bmRsZXI7Ci0tICh2b2lkKWV4aXRGdWxsU2NyZWVuQW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKSljb21wbGV0
aW9uSGFuZGxlcjsKLS0gKHZvaWQpZXhpdEZ1bGxTY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKLQot
LSAodm9pZClzdGFydE9wdGltaXplZEZ1bGxzY3JlZW5XaXRoU3RhcnRDb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yKikpc3RhcnRDb21wbGV0aW9uSGFuZGxl
ciBzdG9wQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEFWUGxheWVyVmlld0NvbnRyb2xsZXJP
cHRpbWl6ZWRGdWxsc2NyZWVuU3RvcFJlYXNvbikpc3RvcENvbXBsZXRpb25IYW5kbGVyOwotLSAo
dm9pZClzdG9wT3B0aW1pemVkRnVsbHNjcmVlbjsKLS0gKHZvaWQpY2FuY2VsT3B0aW1pemVkRnVs
bHNjcmVlbjsKLS0gKHZvaWQpc2V0QWxsb3dzT3B0aW1pemVkRnVsbHNjcmVlbjooQk9PTClhbGxv
d3NPcHRpbWl6ZWRGdWxsc2NyZWVuOwotCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBB
VlBsYXllckNvbnRyb2xsZXIgKnBsYXllckNvbnRyb2xsZXI7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgd2VhaykgaWQgPEFWUGxheWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7Ci1A
ZW5kCi0KLSNlbmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCA5MDAwMAotCi0jaW1wb3J0IDxBVktpdC9BVlZhbHVl
VGltaW5nLmg+Ci0KLSNlbHNlCi0KLUBpbnRlcmZhY2UgQVZWYWx1ZVRpbWluZyA6IE5TT2JqZWN0
IDxOU0NvZGluZywgTlNDb3B5aW5nLCBOU011dGFibGVDb3B5aW5nPgotQGVuZAotCi1AaW50ZXJm
YWNlIEFWVmFsdWVUaW1pbmcgKERldGFpbHMpCi0rIChBVlZhbHVlVGltaW5nICopdmFsdWVUaW1p
bmdXaXRoQW5jaG9yVmFsdWU6KGRvdWJsZSlhbmNob3JWYWx1ZSBhbmNob3JUaW1lU3RhbXA6KE5T
VGltZUludGVydmFsKXRpbWVTdGFtcCByYXRlOihkb3VibGUpcmF0ZTsKLUBwcm9wZXJ0eSAoTlNf
Tk9OQVRPTUlDX0lPU09OTFksIHJlYWRvbmx5KSBkb3VibGUgY3VycmVudFZhbHVlOwotQGVuZAot
Ci0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvQVZGb3VuZGF0
aW9uU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9B
VkZvdW5kYXRpb25TUEkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisjaW1wb3J0IDxvYmpjL3J1
bnRpbWUuaD4KKworI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFU
Rk9STShJT1MpCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZPdXRwdXRDb250ZXh0Lmg+CisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZQbGF5
ZXJfUHJpdmF0ZS5oPgorCisjZWxzZQorCitAY2xhc3MgQVZPdXRwdXRDb250ZXh0OworQGludGVy
ZmFjZSBBVk91dHB1dENvbnRleHQgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkZXZpY2VOYW1lOworKyAoaW5zdGFu
Y2V0eXBlKW91dHB1dENvbnRleHQ7CitAZW5kCisKK0BpbnRlcmZhY2UgQVZQbGF5ZXIgKEFWUGxh
eWVyRXh0ZXJuYWxQbGF5YmFja1N1cHBvcnRQcml2YXRlKQorQHByb3BlcnR5IChub25hdG9taWMs
IHJldGFpbikgQVZPdXRwdXRDb250ZXh0ICpvdXRwdXRDb250ZXh0OworQGVuZAorCisjZW5kaWYK
KworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>