<?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>170258</bug_id>
          
          <creation_ts>2017-03-29 14:45:41 -0700</creation_ts>
          <short_desc>Remove unused MediaControlsApple implementation</short_desc>
          <delta_ts>2017-03-30 09:09:16 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1292588</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-03-29 14:45:41 -0700</bug_when>
    <thetext>We have not used MediaControlsApple.cpp for the past few years. We should remove this dead code and stop compiling it into WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292589</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-29 14:46:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/31331056&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292620</commentid>
    <comment_count>2</comment_count>
      <attachid>305803</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-03-29 16:00:56 -0700</bug_when>
    <thetext>Created attachment 305803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292646</commentid>
    <comment_count>3</comment_count>
      <attachid>305803</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-03-29 17:24:44 -0700</bug_when>
    <thetext>Comment on attachment 305803
Patch

The Windows build issues seem unrelated to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292797</commentid>
    <comment_count>4</comment_count>
      <attachid>305803</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-30 09:09:13 -0700</bug_when>
    <thetext>Comment on attachment 305803
Patch

Clearing flags on attachment: 305803

Committed r214607: &lt;http://trac.webkit.org/changeset/214607&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1292798</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-30 09:09:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305803</attachid>
            <date>2017-03-29 16:00:56 -0700</date>
            <delta_ts>2017-03-30 09:09:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170258-20170329160055.patch</filename>
            <type>text/plain</type>
            <size>37245</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNDU3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE3LTAzLTI5ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB1bnVzZWQgTWVk
aWFDb250cm9sc0FwcGxlIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAyNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMx
MzMxMDU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBkZWFkIGNvZGUgcmVsYXRlZCB0byBvbGQgbWVkaWEgY29udHJvbHMuIFdlIHN3aXRj
aGVkIHRvIEhUTUw1LWJhc2VkIG1lZGlhIGNvbnRyb2xzCisgICAgICAgIHNldmVyYWwgeWVhcnMg
YWdvLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gUmVtb3ZpbmcgdGhpcyBkZWFkIGNvZGUgc2hv
dWxkIGhhdmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1vdmUgdW51c2VkIGZpbGVzLgorICAgICAgICAqIGRv
bS9FdmVudExpc3RlbmVyLmg6IFJlbW92ZSB1bnVzZWQgZXZlbnQgdHlwZS4KKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGh0
bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5oOiBSZW1vdmVkLgorCiAyMDE3LTAzLTI5ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIExpbmtCdWZmZXIgYW5k
IEV4ZWN1dGFibGVBbGxvY2F0b3Igc2hvdWxkbid0IGhhdmUgYW55dGhpbmcgdG8gZG8gd2l0aCBW
TQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjE0NTA5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNzA0LDggKzE3MDQsNiBA
QAogCQk0MTUwRjlGMjEyQjZFMEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTBGOUYwMTJC
NkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwICovOyB9OwogCQk0MTU3NDc0
NzFFMzg2OUE0MDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyog
TGliV2ViUlRDTWFjcm9zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDE1NzQ3NDgxRTM4NjlBNzAwRTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3NDc0
NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0MTU3QUY4MDEyRjFGQjA0MDBBOEM2
RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTU3QUY3RTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9s
c0FwcGxlLmggKi87IH07Ci0JCTQxNTdBRjgxMTJGMUZCMDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRy
b2xzQXBwbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE1N0FGN0YxMkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJvbHNBcHBsZS5jcHAgKi87
IH07CiAJCTQxNTdFQkZBMUUzQUI2NzkwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE1N0VCRjkxRTNBQjA2ODAwQUM5RkU5IC8qIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5j
cHAgKi87IH07CiAJCTQxNTdFQkZCMUUzQUI2N0YwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNTdFQkY4MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rp
b24uaCAqLzsgfTsKIAkJNDE1Q0RBRjQxRTZCOEY4NzAwNEYxMUVFIC8qIENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxQzdFMTA1MUU2QTU0MzYwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFT
dHJlYW1UcmFjay5jcHAgKi87IH07CkBAIC0yNzExLDEwICsyNzA5LDEwIEBACiAJCTVFMkM0Mzcx
MUJDRjBENzUwMDAxRTJCRCAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVFMkM0MzZEMUJDRjBENjkwMDAxRTJC
RCAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyLmNwcCAqLzsgfTsKIAkJNUUyQzQzNzIxQkNGMEQ3NTAw
MDFFMkJDIC8qIEpTUlRDUnRwUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVFMkM0MzZFMUJDRjBENjkwMDAxRTJCQyAvKiBKU1JUQ1J0cFJl
Y2VpdmVyLmggKi87IH07CiAJCTVFMkM0MzcyMUJDRjBENzUwMDAxRTJCRCAvKiBKU1JUQ1J0cFRy
YW5zY2VpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1RTJDNDM2RTFCQ0YwRDY5MDAwMUUyQkQgLyogSlNSVENSdHBUcmFuc2NlaXZlci5oICovOyB9
OwotCQk1RTJDNDM3MzFCQ0YwRDc1MDAwMUUyQkUgLyogSlNSVENSdHBQYXJhbWV0ZXJzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVFMkM0MzZGMUJD
RjBENjkwMDAxRTJCRSAvKiBKU1JUQ1J0cFBhcmFtZXRlcnMuY3BwICovOyB9OwotCQk1RTJDNDM3
NDFCQ0YwRDc1MDAwMUUyQkUgLyogSlNSVENSdHBQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RTJDNDM3MDFCQ0YwRDY5MDAwMUUyQkUg
LyogSlNSVENSdHBQYXJhbWV0ZXJzLmggKi87IH07CiAJCTVFMkM0MzczMUJDRjBENzUwMDAxRTJC
QyAvKiBKU1JUQ1J0cFNlbmRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1RTJDNDM2RjFCQ0YwRDY5MDAwMUUyQkMgLyogSlNSVENSdHBTZW5kZXIu
Y3BwICovOyB9OworCQk1RTJDNDM3MzFCQ0YwRDc1MDAwMUUyQkUgLyogSlNSVENSdHBQYXJhbWV0
ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVF
MkM0MzZGMUJDRjBENjkwMDAxRTJCRSAvKiBKU1JUQ1J0cFBhcmFtZXRlcnMuY3BwICovOyB9Owog
CQk1RTJDNDM3NDFCQ0YwRDc1MDAwMUUyQkMgLyogSlNSVENSdHBTZW5kZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVFMkM0MzcwMUJDRjBENjkwMDAx
RTJCQyAvKiBKU1JUQ1J0cFNlbmRlci5oICovOyB9OworCQk1RTJDNDM3NDFCQ0YwRDc1MDAwMUUy
QkUgLyogSlNSVENSdHBQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1RTJDNDM3MDFCQ0YwRDY5MDAwMUUyQkUgLyogSlNSVENSdHBQYXJh
bWV0ZXJzLmggKi87IH07CiAJCTVFMkM0MzdCMUJDRjlBNTcwMDAxRTJCQyAvKiBSVENQZWVyQ29u
bmVjdGlvbkJ1aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1RTJDNDM3NjFCQ0Y5QTBCMDAwMUUyQkMgLyogUlRDUGVlckNvbm5lY3Rpb25CdWls
dGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTVFMkM0MzdDMUJDRjlBODQwMDAxRTJCQyAvKiBSVENQZWVyQ29ubmVjdGlvbkludGVybmFsc0J1
aWx0aW5zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
RTJDNDM3OTFCQ0Y5QTBCMDAwMUUyQkMgLyogUlRDUGVlckNvbm5lY3Rpb25JbnRlcm5hbHNCdWls
dGlucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTVFNEVBQjA0MUQwNzE2NkEwMDA2QTE4NCAvKiBNZWRpYUVuZHBvaW50U2Vzc2lvbkRlc2NyaXB0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RTRF
QUIwMzFEMDcxNjRDMDAwNkExODQgLyogTWVkaWFFbmRwb2ludFNlc3Npb25EZXNjcmlwdGlvbi5o
ICovOyB9OwpAQCAtOTI3Myw4ICs5MjcxLDYgQEAKIAkJNDE1MEY5RjAxMkI2RTBFNzAwMDhDODYw
IC8qIFNsaWRlclRodW1iRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ01hY3Jvcy5oOyBwYXRoID0gbGli
d2VicnRjL0xpYldlYlJUQ01hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUHJvdmlkZXIuaDsgcGF0aCA9IGxpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
MTU3QUY3RTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbHNBcHBsZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk0MTU3QUY3RjEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250
cm9sc0FwcGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlh
Q29udHJvbHNBcHBsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFQkY4
MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAv
KiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1Q0RBRjYxRTZDRTBEMzAwNEYxMUVFIC8qIEpTTWVkaWFT
dHJlYW1UcmFja0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU01lZGlhU3RyZWFtVHJhY2tDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA0MjcsOCArMTA0MjMsOCBAQAogCQk1RTJDNDM2RTFCQ0YwRDY5MDAwMUUyQkMgLyog
SlNSVENSdHBSZWNlaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JU
Q1J0cFJlY2VpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFMkM0MzZFMUJD
RjBENjkwMDAxRTJCRCAvKiBKU1JUQ1J0cFRyYW5zY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUlRDUnRwVHJhbnNjZWl2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUUyQzQzNkYxQkNGMEQ2OTAwMDFFMkJDIC8qIEpTUlRDUnRwU2VuZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDUnRwU2VuZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUUyQzQzNzAxQkNGMEQ2OTAwMDFFMkJD
IC8qIEpTUlRDUnRwU2VuZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
UlRDUnRwU2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFMkM0MzZGMUJD
RjBENjkwMDAxRTJCRSAvKiBKU1JUQ1J0cFBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENSdHBQYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNUUyQzQzNzAxQkNGMEQ2OTAwMDFFMkJDIC8qIEpTUlRDUnRwU2Vu
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUlRDUnRwU2VuZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFMkM0MzcwMUJDRjBENjkwMDAxRTJCRSAv
KiBKU1JUQ1J0cFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNSVENSdHBQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFMkM0
Mzc1MUJDRjlBMEIwMDAxRTJCQyAvKiBSVENQZWVyQ29ubmVjdGlvbkJ1aWx0aW5zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ1BlZXJDb25uZWN0aW9uQnVpbHRp
bnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RTJDNDM3NjFCQ0Y5QTBCMDAw
MUUyQkMgLyogUlRDUGVlckNvbm5lY3Rpb25CdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENQZWVyQ29ubmVjdGlvbkJ1aWx0aW5zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzQ1OCw4ICsxNzQ1NCw2IEBACiAJCQkJREU0OUIzMDAxNjVGMkZD
NjAwMTAzMzhEIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oICovLAogCQkJCTFGM0MzQkU4
MTM1Q0FGM0MwMEI4QzFBQyAvKiBNZWRpYUNvbnRyb2xzLmNwcCAqLywKIAkJCQkxRjNDM0JFOTEz
NUNBRjNDMDBCOEMxQUMgLyogTWVkaWFDb250cm9scy5oICovLAotCQkJCTQxNTdBRjdGMTJGMUZC
MDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRyb2xzQXBwbGUuY3BwICovLAotCQkJCTQxNTdBRjdFMTJG
MUZCMDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRyb2xzQXBwbGUuaCAqLywKIAkJCQlFNEUyNDM4MjFE
QUI5NTNFMDBDMjZFNEIgLyogbWV0ZXJFbGVtZW50U2hhZG93LmNzcyAqLywKIAkJCQlBNzE1RTY1
MDEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLywKIAkJCQlB
NzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi8sCkBA
IC0yODI2OCw3ICsyODI2Miw2IEBACiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1l
ZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQ0ExNDVCNDQ4ODAwQzRD
N0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUYz
QzNCRUIxMzVDQUYzQzAwQjhDMUFDIC8qIE1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxNTdBRjgwMTJGMUZCMDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRyb2xzQXBwbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNEQUI2RDI5MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xz
SG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGMkIwMDQxODFGMDU5QzAwRjJCNDI0IC8qIE1l
ZGlhRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTE1MTQ1QjkwMUIzQTFDRTAwMDY2
MkJGNyAvKiBNZWRpYURldmljZUluZm8uaCBpbiBIZWFkZXJzICovLApAQCAtMzIyNjEsNyArMzIy
NTQsNiBAQAogCQkJCURFQkNDREQ1MTY2NDZFQjIwMEE0NTJFMSAvKiBNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyN0Y2RTcxNDU3NzBEMzAwNzgyMDdE
IC8qIE1lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRjNDM0JFQTEzNUNB
RjNDMDBCOEMxQUMgLyogTWVkaWFDb250cm9scy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MTU3
QUY4MTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQUI2RDI4MTdDN0RFNkMwMEM2MEIzNCAvKiBNZWRpYUNvbnRyb2xzSG9zdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNTlBRTgyQjFCM0E0MDJGMDAzNzQ3OEIgLyogTWVkaWFE
ZXZpY2VJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVFQTcyNUQyMUFDQUJENDcwMEVBRDE3
QiAvKiBNZWRpYURldmljZXMuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudExpc3RlbmVyLmgJKHJldmlzaW9uIDIxNDUwOSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDYgQEAgcHVibGljOgog
ICAgICAgICBHT2JqZWN0RXZlbnRMaXN0ZW5lclR5cGUsCiAgICAgICAgIE5hdGl2ZUV2ZW50TGlz
dGVuZXJUeXBlLAogICAgICAgICBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lclR5cGUsCi0gICAg
ICAgIE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVuZXJUeXBlIAogICAgIH07CiAKICAgICB2
aXJ0dWFsIH5FdmVudExpc3RlbmVyKCkgeyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAJKHJldmlzaW9uIDIxNDUwOSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNBcHBsZS5jcHAJKG5vbmV4
aXN0ZW50KQpAQCAtMSw1NjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIk1lZGlhQ29udHJvbHNBcHBs
ZS5oIgotCi0jaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgotI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudC5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLU1lZGlhQ29udHJvbHNBcHBsZTo6TWVkaWFDb250cm9sc0FwcGxl
KERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IE1lZGlhQ29udHJvbHMoZG9jdW1lbnQpCi17Ci19
Ci0KLVJlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjp0cnlDcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50KQotewotICAgIHJldHVybiBNZWRpYUNvbnRyb2xzQXBwbGU6OnRyeUNyZWF0
ZUNvbnRyb2xzKGRvY3VtZW50KTsKLX0KLQotUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gTWVk
aWFDb250cm9sc0FwcGxlOjp0cnlDcmVhdGVDb250cm9scyhEb2N1bWVudCYgZG9jdW1lbnQpCi17
Ci0gICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgYXV0byBjb250cm9scyA9IGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sc0FwcGxlKGRvY3Vt
ZW50KSk7Ci0KLSAgICBhdXRvIHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwotCi0gICAgYXV0byByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3Jld2lu
ZEJ1dHRvbiA9IHJld2luZEJ1dHRvbi5wdHIoKTsKLSAgICBpZiAocGFuZWwtPmFwcGVuZENoaWxk
KHJld2luZEJ1dHRvbikuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwot
Ci0gICAgYXV0byBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24u
cHRyKCk7Ci0gICAgaWYgKHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uKS5oYXNFeGNlcHRp
b24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBhdXRvIHJldHVyblRvUmVhbHRp
bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0dG9uID0g
cmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5wdHIoKTsKLSAgICBpZiAocGFuZWwtPmFwcGVuZENoaWxk
KHJldHVyblRvUmVhbHRpbWVCdXR0b24pLmhhc0V4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIGlmIChkb2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlhQ29u
dHJvbFN0YXR1c0Rpc3BsYXkoKSkgewotICAgICAgICBhdXRvIHN0YXR1c0Rpc3BsYXkgPSBNZWRp
YUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICAgICAg
Y29udHJvbHMtPm1fc3RhdHVzRGlzcGxheSA9IHN0YXR1c0Rpc3BsYXkucHRyKCk7Ci0gICAgICAg
IGlmIChwYW5lbC0+YXBwZW5kQ2hpbGQoc3RhdHVzRGlzcGxheSkuaGFzRXhjZXB0aW9uKCkpCi0g
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRvIHRpbWVsaW5lQ29u
dGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotCi0gICAgYXV0byBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJy
ZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5t
X2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5wdHIoKTsKLSAgICBpZiAo
dGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheSkuaGFzRXhj
ZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byB0aW1lbGluZSA9
IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5w
dHIoKSk7Ci0gICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5wdHIoKTsKLSAgICBp
ZiAodGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lKS5oYXNFeGNlcHRpb24o
KSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBhdXRvIHRpbWVSZW1haW5pbmdEaXNw
bGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3RpbWVSZW1haW5pbmdEaXNwbGF5ID0gdGltZVJlbWFp
bmluZ0Rpc3BsYXkucHRyKCk7Ci0gICAgaWYgKHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGls
ZCh0aW1lUmVtYWluaW5nRGlzcGxheSkuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBu
dWxscHRyOwotCi0gICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNv
bnRhaW5lci5wdHIoKTsKLSAgICBpZiAocGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFp
bmVyKS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAvLyBG
SVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+
Ci0gICAgYXV0byBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9zZWVrQmFja0J1dHRvbiA9
IHNlZWtCYWNrQnV0dG9uLnB0cigpOwotICAgIGlmIChwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0Jh
Y2tCdXR0b24pLmhhc0V4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81
NzE2Mz4KLSAgICBhdXRvIHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0Zvcndh
cmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3NlZWtG
b3J3YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRCdXR0b24ucHRyKCk7Ci0gICAgaWYgKHBhbmVsLT5h
cHBlbmRDaGlsZChzZWVrRm9yd2FyZEJ1dHRvbikuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgaWYgKGRvY3VtZW50LnBhZ2UoKS0+dGhlbWUoKS5zdXBwb3J0
c0Nsb3NlZENhcHRpb25pbmcoKSkgewotICAgICAgICBhdXRvIGNsb3NlZENhcHRpb25zQ29udGFp
bmVyID0gTWVkaWFDb250cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwotCi0gICAgICAgIGF1dG8gY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QgPSBNZWRp
YUNvbnRyb2xDbG9zZWRDYXB0aW9uc1RyYWNrTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwg
Y29udHJvbHMucHRyKCkpOwotICAgICAgICBjb250cm9scy0+bV9jbG9zZWRDYXB0aW9uc1RyYWNr
TGlzdCA9IGNsb3NlZENhcHRpb25zVHJhY2tMaXN0LnB0cigpOwotICAgICAgICBpZiAoY2xvc2Vk
Q2FwdGlvbnNDb250YWluZXItPmFwcGVuZENoaWxkKGNsb3NlZENhcHRpb25zVHJhY2tMaXN0KS5o
YXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIGF1
dG8gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMucHRyKCkpOwot
ICAgICAgICBjb250cm9scy0+bV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IHRvZ2dsZUNs
b3NlZENhcHRpb25zQnV0dG9uLnB0cigpOwotICAgICAgICBpZiAocGFuZWwtPmFwcGVuZENoaWxk
KHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgICAgIGNvbnRyb2xzLT5tX2Nsb3NlZENhcHRpb25zQ29u
dGFpbmVyID0gY2xvc2VkQ2FwdGlvbnNDb250YWluZXIucHRyKCk7Ci0gICAgICAgIGlmIChjb250
cm9scy0+YXBwZW5kQ2hpbGQoY2xvc2VkQ2FwdGlvbnNDb250YWluZXIpLmhhc0V4Y2VwdGlvbigp
KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IE9u
bHkgY3JlYXRlIHdoZW4gbmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIGF1
dG8gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5CdXR0b24gPSBm
dWxsU2NyZWVuQnV0dG9uLnB0cigpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVu
QnV0dG9uKTsKLQotICAgIC8vIFRoZSBtdXRlIGJ1dHRvbiBhbmQgdGhlIHNsaWRlciBlbGVtZW50
IHNob3VsZCBiZSBpbiB0aGUgc2FtZSBkaXYuCi0gICAgYXV0byBwYW5lbFZvbHVtZUNvbnRyb2xD
b250YWluZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLQotICAgIGlmIChk
b2N1bWVudC5wYWdlKCktPnRoZW1lKCkudXNlc01lZGlhQ29udHJvbFZvbHVtZVNsaWRlcigpKSB7
Ci0gICAgICAgIGF1dG8gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLQotICAgICAgICBhdXRv
IHNsaWRlciA9IE1lZGlhQ29udHJvbFBhbmVsVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLnB0cigp
OwotICAgICAgICBpZiAodm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIp
Lmhhc0V4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAg
Ly8gVGhpcyBpcyBhIGR1cGxpY2F0ZSBtdXRlIGJ1dHRvbiwgd2hpY2ggaXMgdmlzaWJsZSBpbiBz
b21lIHBvcnRzIGF0IHRoZSBib3R0b20gb2YgdGhlIHZvbHVtZSBiYXIuCi0gICAgICAgIC8vIEl0
J3MgaW1wb3J0YW50IG9ubHkgd2hlbiB0aGUgdm9sdW1lIGJhciBpcyBkaXNwbGF5ZWQgYmVsb3cg
dGhlIGNvbnRyb2xzLgotICAgICAgICBhdXRvIHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRl
ck11dGVCdXR0b24ucHRyKCk7Ci0gICAgICAgIGlmICh2b2x1bWVTbGlkZXJDb250YWluZXItPmFw
cGVuZENoaWxkKHZvbHVtZVNsaWRlck11dGVCdXR0b24pLmhhc0V4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVy
Q29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLnB0cigpOwotICAgICAgICBpZiAocGFu
ZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVTbGlkZXJDb250YWlu
ZXIpLmhhc0V4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
Ci0gICAgYXV0byBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLnB0cigpKTsKLSAgICBjb250cm9scy0+
bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24ucHRyKCk7Ci0gICAgaWYgKHBhbmVs
Vm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uKS5oYXNF
eGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAocGFuZWwtPmFw
cGVuZENoaWxkKHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lcikuaGFzRXhjZXB0aW9uKCkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgLy8gRklYTUU6IE9ubHkgY3JlYXRlIHdoZW4g
bmVlZGVkIDxodHRwOi8vd2Via2l0Lm9yZy9iLzU3MTYzPgotICAgIGF1dG8gZnVsbFNjcmVlbk1p
blZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5NaW5Wb2x1
bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLnB0cigpOwotICAgIGlmIChwYW5l
bC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1pblZvbHVtZUJ1dHRvbikuaGFzRXhjZXB0aW9uKCkp
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byBmdWxsU2NyZWVuVm9sdW1lU2xp
ZGVyID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXIucHRyKCk7Ci0gICAgaWYgKHBhbmVsLT5hcHBlbmRDaGlsZChmdWxs
U2NyZWVuVm9sdW1lU2xpZGVyKS5oYXNFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KLSAgICBhdXRvIGZ1bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBj
b250cm9scy0+bV9mdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVt
ZUJ1dHRvbi5wdHIoKTsKLSAgICBpZiAocGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NYXhW
b2x1bWVCdXR0b24pLmhhc0V4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQot
ICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwucHRyKCk7Ci0gICAgaWYgKGNvbnRyb2xzLT5h
cHBlbmRDaGlsZChwYW5lbCkuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgcmV0dXJuIFdURk1vdmUoY29udHJvbHMpOwotfQotCi12b2lkIE1lZGlhQ29udHJv
bHNBcHBsZTo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogY29u
dHJvbGxlcikKLXsKLSAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXIgPT0gY29udHJvbGxlcikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgTWVkaWFDb250cm9sczo6c2V0TWVkaWFDb250cm9sbGVyKGNv
bnRyb2xsZXIpOwotCi0gICAgaWYgKG1fcmV3aW5kQnV0dG9uKQotICAgICAgICBtX3Jld2luZEJ1
dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX3JldHVyblRv
UmVhbFRpbWVCdXR0b24pCi0gICAgICAgIG1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbi0+c2V0TWVk
aWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX3N0YXR1c0Rpc3BsYXkpCi0gICAg
ICAgIG1fc3RhdHVzRGlzcGxheS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAg
IGlmIChtX3RpbWVSZW1haW5pbmdEaXNwbGF5KQotICAgICAgICBtX3RpbWVSZW1haW5pbmdEaXNw
bGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7Ci0gICAgaWYgKG1fdGltZWxpbmVD
b250YWluZXIpCi0gICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxl
cihjb250cm9sbGVyKTsKLSAgICBpZiAobV9zZWVrQmFja0J1dHRvbikKLSAgICAgICAgbV9zZWVr
QmFja0J1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX3Nl
ZWtGb3J3YXJkQnV0dG9uKQotICAgICAgICBtX3NlZWtGb3J3YXJkQnV0dG9uLT5zZXRNZWRpYUNv
bnRyb2xsZXIoY29udHJvbGxlcik7Ci0gICAgaWYgKG1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbikK
LSAgICAgICAgbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29u
dHJvbGxlcik7Ci0gICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQotICAgICAgICBtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAg
IGlmIChtX2Z1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24pCi0gICAgICAgIG1fZnVsbFNjcmVlbk1p
blZvbHVtZUJ1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmICht
X2Z1bGxTY3JlZW5Wb2x1bWVTbGlkZXIpCi0gICAgICAgIG1fZnVsbFNjcmVlblZvbHVtZVNsaWRl
ci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX2Z1bGxTY3JlZW5N
YXhWb2x1bWVCdXR0b24pCi0gICAgICAgIG1fZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi0+c2V0
TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX2Nsb3NlZENhcHRpb25zVHJh
Y2tMaXN0KQotICAgICAgICBtX2Nsb3NlZENhcHRpb25zVHJhY2tMaXN0LT5zZXRNZWRpYUNvbnRy
b2xsZXIoY29udHJvbGxlcik7Ci0gICAgaWYgKG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIpCi0g
ICAgICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihjb250
cm9sbGVyKTsKLX0KLQotdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6OmRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQmIGV2ZW50KQotewotICAgIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmNsaWNrRXZlbnQpIHsKLSAgICAgICAgaWYgKG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIgJiYg
bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+aXNTaG93aW5nKCkpIHsKLSAgICAgICAgICAgIGhp
ZGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCk7Ci0gICAgICAgICAgICBldmVudC5zZXREZWZhdWx0
SGFuZGxlZCgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgTWVkaWFDb250cm9sczo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihldmVudCk7Ci19Ci0KLXZvaWQgTWVkaWFDb250cm9sc0FwcGxlOjpoaWRl
KCkKLXsKLSAgICBNZWRpYUNvbnRyb2xzOjpoaWRlKCk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250
YWluZXItPmhpZGUoKTsKLSAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikKLSAgICAg
ICAgaGlkZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKTsKLX0KLQotdm9pZCBNZWRpYUNvbnRyb2xz
QXBwbGU6Om1ha2VUcmFuc3BhcmVudCgpCi17Ci0gICAgTWVkaWFDb250cm9sczo6bWFrZVRyYW5z
cGFyZW50KCk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPmhpZGUoKTsKLSAgICBpZiAo
bV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lcikKLSAgICAgICAgaGlkZUNsb3NlZENhcHRpb25UcmFj
a0xpc3QoKTsKLX0KLQotdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6OmNoYW5nZWRDbG9zZWRDYXB0
aW9uc1Zpc2liaWxpdHkoKQotewotICAgIE1lZGlhQ29udHJvbHM6OmNoYW5nZWRDbG9zZWRDYXB0
aW9uc1Zpc2liaWxpdHkoKTsKLSAgICBpZiAobV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciAmJiBt
X2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5pc1Nob3dpbmcoKSkKLSAgICAgICAgaGlkZUNsb3Nl
ZENhcHRpb25UcmFja0xpc3QoKTsKLQotfQotCi12b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6cmVz
ZXQoKQotewotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKTsKLSAgICBpZiAoIXBh
Z2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHVwZGF0ZVN0YXR1c0Rpc3BsYXkoKTsKLQotICAg
IGlmIChtX21lZGlhQ29udHJvbGxlci0+c3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkKSkKLSAgICAgICAgbV9mdWxsU2Ny
ZWVuQnV0dG9uLT5zaG93KCk7Ci0gICAgZWxzZQotICAgICAgICBtX2Z1bGxTY3JlZW5CdXR0b24t
PmhpZGUoKTsKLQotICAgIGRvdWJsZSBkdXJhdGlvbiA9IG1fbWVkaWFDb250cm9sbGVyLT5kdXJh
dGlvbigpOwotICAgIGlmIChzdGQ6OmlzZmluaXRlKGR1cmF0aW9uKSB8fCBwYWdlLT50aGVtZSgp
Lmhhc093bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihNZWRpYVNsaWRlclBhcnQpKSB7Ci0gICAg
ICAgIG1fdGltZWxpbmUtPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKLSAgICAgICAgbV90aW1lbGlu
ZUNvbnRhaW5lci0+c2hvdygpOwotICAgICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21l
ZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7Ci0gICAgICAgIHVwZGF0ZUN1cnJlbnRUaW1l
RGlzcGxheSgpOwotICAgIH0gZWxzZQotICAgICAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5oaWRl
KCk7Ci0KLSAgICBpZiAobV9tZWRpYUNvbnRyb2xsZXItPmhhc0F1ZGlvKCkgfHwgcGFnZS0+dGhl
bWUoKS5oYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoTWVkaWFNdXRlQnV0dG9uUGFydCkp
Ci0gICAgICAgIG1fcGFuZWxNdXRlQnV0dG9uLT5zaG93KCk7Ci0gICAgZWxzZQotICAgICAgICBt
X3BhbmVsTXV0ZUJ1dHRvbi0+aGlkZSgpOwotCi0gICAgaWYgKG1fdm9sdW1lU2xpZGVyKQotICAg
ICAgICBzZXRTbGlkZXJWb2x1bWUoKTsKLQotICAgIGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX21lZGlhQ29udHJvbGxlci0+aGFzQ2xvc2VkQ2FwdGlv
bnMoKSkKLSAgICAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24tPnNob3coKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+
aGlkZSgpOwotICAgIH0KLQotICAgIGlmIChtX3BsYXlCdXR0b24pCi0gICAgICAgIG1fcGxheUJ1
dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKLQotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
LSAgICBpZiAobV9mdWxsU2NyZWVuVm9sdW1lU2xpZGVyKQotICAgICAgICBzZXRGdWxsc2NyZWVu
U2xpZGVyVm9sdW1lKCk7Ci0KLSAgICBpZiAobV9pc0Z1bGxzY3JlZW4pIHsKLSAgICAgICAgaWYg
KG1fbWVkaWFDb250cm9sbGVyLT5pc0xpdmVTdHJlYW0oKSkgewotICAgICAgICAgICAgbV9zZWVr
QmFja0J1dHRvbi0+aGlkZSgpOwotICAgICAgICAgICAgbV9zZWVrRm9yd2FyZEJ1dHRvbi0+aGlk
ZSgpOwotICAgICAgICAgICAgbV9yZXdpbmRCdXR0b24tPnNob3coKTsKLSAgICAgICAgICAgIG1f
cmV0dXJuVG9SZWFsVGltZUJ1dHRvbi0+c2hvdygpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgbV9zZWVrQmFja0J1dHRvbi0+c2hvdygpOwotICAgICAgICAgICAgbV9zZWVrRm9yd2Fy
ZEJ1dHRvbi0+c2hvdygpOwotICAgICAgICAgICAgbV9yZXdpbmRCdXR0b24tPmhpZGUoKTsKLSAg
ICAgICAgICAgIG1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbi0+aGlkZSgpOwotICAgICAgICB9Ci0g
ICAgfSBlbHNlCi0jZW5kaWYKLSAgICBpZiAoIW1fbWVkaWFDb250cm9sbGVyLT5pc0xpdmVTdHJl
YW0oKSkgewotICAgICAgICBtX3JldHVyblRvUmVhbFRpbWVCdXR0b24tPmhpZGUoKTsKLSAgICAg
ICAgbV9yZXdpbmRCdXR0b24tPnNob3coKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX3JldHVy
blRvUmVhbFRpbWVCdXR0b24tPnNob3coKTsKLSAgICAgICAgbV9yZXdpbmRCdXR0b24tPmhpZGUo
KTsKLSAgICB9Ci0KLSAgICBtYWtlT3BhcXVlKCk7Ci19Ci0KLXZvaWQgTWVkaWFDb250cm9sc0Fw
cGxlOjp1cGRhdGVDdXJyZW50VGltZURpc3BsYXkoKQotewotICAgIGRvdWJsZSBub3cgPSBtX21l
ZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKTsKLSAgICBkb3VibGUgZHVyYXRpb24gPSBtX21l
ZGlhQ29udHJvbGxlci0+ZHVyYXRpb24oKTsKLQotICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgp
LnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEFsbG93
IHRoZSB0aGVtZSB0byBmb3JtYXQgdGhlIHRpbWUuCi0gICAgbV9jdXJyZW50VGltZURpc3BsYXkt
PnNldElubmVyVGV4dChwYWdlLT50aGVtZSgpLmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGlt
ZShub3csIGR1cmF0aW9uKSk7Ci0gICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldEN1cnJlbnRW
YWx1ZShub3cpOwotICAgIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXktPnNldElubmVyVGV4dChwYWdl
LT50aGVtZSgpLmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKG5vdywgZHVyYXRpb24p
KTsKLSAgICBtX3RpbWVSZW1haW5pbmdEaXNwbGF5LT5zZXRDdXJyZW50VmFsdWUobm93IC0gZHVy
YXRpb24pOwotfQotCi12b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6cmVwb3J0ZWRFcnJvcigpCi17
Ci0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFwYWdlLT50aGVtZSgpLmhhc093bkRpc2FibGVkU3Rh
dGVIYW5kbGluZ0ZvcihNZWRpYVNsaWRlclBhcnQpKQotICAgICAgICBtX3RpbWVsaW5lQ29udGFp
bmVyLT5oaWRlKCk7Ci0KLSAgICBpZiAoIXBhZ2UtPnRoZW1lKCkuaGFzT3duRGlzYWJsZWRTdGF0
ZUhhbmRsaW5nRm9yKE1lZGlhTXV0ZUJ1dHRvblBhcnQpKQotICAgICAgICBtX3BhbmVsTXV0ZUJ1
dHRvbi0+aGlkZSgpOwotCi0gICAgbV9mdWxsU2NyZWVuQnV0dG9uLT5oaWRlKCk7Ci0KLSAgICBp
ZiAobV92b2x1bWVTbGlkZXJDb250YWluZXIpCi0gICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyLT5oaWRlKCk7Ci0gICAgaWYgKG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gJiYgIXBh
Z2UtPnRoZW1lKCkuaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKE1lZGlhVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25QYXJ0KSkKLSAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbi0+aGlkZSgpOwotICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyKQotICAgICAg
ICBoaWRlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwotfQotCi12b2lkIE1lZGlhQ29udHJvbHNB
cHBsZTo6dXBkYXRlU3RhdHVzRGlzcGxheSgpCi17Ci0gICAgaWYgKG1fc3RhdHVzRGlzcGxheSkK
LSAgICAgICAgbV9zdGF0dXNEaXNwbGF5LT51cGRhdGUoKTsKLX0KLQotdm9pZCBNZWRpYUNvbnRy
b2xzQXBwbGU6OmxvYWRlZE1ldGFkYXRhKCkKLXsKLSAgICBpZiAobV9zdGF0dXNEaXNwbGF5ICYm
ICFtX21lZGlhQ29udHJvbGxlci0+aXNMaXZlU3RyZWFtKCkpCi0gICAgICAgIG1fc3RhdHVzRGlz
cGxheS0+aGlkZSgpOwotCi0gICAgTWVkaWFDb250cm9sczo6bG9hZGVkTWV0YWRhdGEoKTsKLX0K
LQotdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6OmNoYW5nZWRNdXRlKCkKLXsKLSAgICBNZWRpYUNv
bnRyb2xzOjpjaGFuZ2VkTXV0ZSgpOwotCi0gICAgaWYgKG1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRv
bikKLSAgICAgICAgbV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uLT5jaGFuZ2VkTXV0ZSgpOwotfQot
Ci12b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6Y2hhbmdlZFZvbHVtZSgpCi17Ci0gICAgTWVkaWFD
b250cm9sczo6Y2hhbmdlZFZvbHVtZSgpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblZvbHVtZVNs
aWRlcikKLSAgICAgICAgc2V0RnVsbHNjcmVlblNsaWRlclZvbHVtZSgpOwotfQotCi12b2lkIE1l
ZGlhQ29udHJvbHNBcHBsZTo6ZW50ZXJlZEZ1bGxzY3JlZW4oKQotewotICAgIE1lZGlhQ29udHJv
bHM6OmVudGVyZWRGdWxsc2NyZWVuKCk7Ci0gICAgbV9wYW5lbC0+c2V0Q2FuQmVEcmFnZ2VkKHRy
dWUpOwotCi0gICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5pc0xpdmVTdHJlYW0oKSkgewotICAg
ICAgICBtX3NlZWtCYWNrQnV0dG9uLT5oaWRlKCk7Ci0gICAgICAgIG1fc2Vla0ZvcndhcmRCdXR0
b24tPmhpZGUoKTsKLSAgICAgICAgbV9yZXdpbmRCdXR0b24tPnNob3coKTsKLSAgICAgICAgbV9y
ZXR1cm5Ub1JlYWxUaW1lQnV0dG9uLT5zaG93KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV9z
ZWVrQmFja0J1dHRvbi0+c2hvdygpOwotICAgICAgICBtX3NlZWtGb3J3YXJkQnV0dG9uLT5zaG93
KCk7Ci0gICAgICAgIG1fcmV3aW5kQnV0dG9uLT5oaWRlKCk7Ci0gICAgICAgIG1fcmV0dXJuVG9S
ZWFsVGltZUJ1dHRvbi0+aGlkZSgpOwotICAgIH0KLX0KLQotdm9pZCBNZWRpYUNvbnRyb2xzQXBw
bGU6OmV4aXRlZEZ1bGxzY3JlZW4oKQotewotICAgIG1fcmV3aW5kQnV0dG9uLT5zaG93KCk7Ci0g
ICAgbV9zZWVrQmFja0J1dHRvbi0+c2hvdygpOwotICAgIG1fc2Vla0ZvcndhcmRCdXR0b24tPnNo
b3coKTsKLSAgICBtX3JldHVyblRvUmVhbFRpbWVCdXR0b24tPnNob3coKTsKLQotICAgIG1fcGFu
ZWwtPnNldENhbkJlRHJhZ2dlZChmYWxzZSk7Ci0KLSAgICAvLyBXZSB3aWxsIGtlZXAgdXNpbmcg
dGhlIHBhbmVsLCBidXQgd2Ugd2FudCBpdCB0byBnbyBiYWNrIHRvIHRoZSBzdGFuZGFyZCBwb3Np
dGlvbi4KLSAgICAvLyBUaGlzIHdpbGwgbWF0dGVyIHJpZ2h0IGF3YXkgYmVjYXVzZSB3ZSB1c2Ug
dGhlIHBhbmVsIGV2ZW4gd2hlbiBub3QgZnVsbHNjcmVlbi4KLSAgICAvLyBBbmQgaWYgd2UgcmVl
bnRlciBmdWxsc2NyZWVuIHdlIGFsc28gd2FudCB0aGUgcGFuZWwgaW4gdGhlIHN0YW5kYXJkIHBv
c2l0aW9uLgotICAgIG1fcGFuZWwtPnJlc2V0UG9zaXRpb24oKTsKLQotICAgIE1lZGlhQ29udHJv
bHM6OmV4aXRlZEZ1bGxzY3JlZW4oKTsKLX0KLQotdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6OnNo
b3dWb2x1bWVTbGlkZXIoKQotewotICAgIGlmICghbV9tZWRpYUNvbnRyb2xsZXItPmhhc0F1ZGlv
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcikK
LSAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNob3coKTsKLX0KLQotdm9pZCBNZWRp
YUNvbnRyb2xzQXBwbGU6OnRvZ2dsZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKQotewotICAgIGlm
ICghbV9tZWRpYUNvbnRyb2xsZXItPmhhc0Nsb3NlZENhcHRpb25zKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyKSB7Ci0gICAgICAgIGlmICht
X2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5pc1Nob3dpbmcoKSkKLSAgICAgICAgICAgIGhpZGVD
bG9zZWRDYXB0aW9uVHJhY2tMaXN0KCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYg
KG1fY2xvc2VkQ2FwdGlvbnNUcmFja0xpc3QpCi0gICAgICAgICAgICAgICAgbV9jbG9zZWRDYXB0
aW9uc1RyYWNrTGlzdC0+dXBkYXRlRGlzcGxheSgpOwotICAgICAgICAgICAgc2hvd0Nsb3NlZENh
cHRpb25UcmFja0xpc3QoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotdm9pZCBNZWRpYUNvbnRy
b2xzQXBwbGU6OnNob3dDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCkKLXsKLSAgICBpZiAoIW1fY2xv
c2VkQ2FwdGlvbnNDb250YWluZXIgfHwgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+aXNTaG93
aW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIt
PnNob3coKTsKLQotICAgIC8vIEVuc3VyZSB0aGUgY29udHJvbHMgcGFuZWwgZG9lcyBub3QgcmVj
ZWl2ZSBhbnkgZXZlbnRzIHdoaWxlIHRoZSBjYXB0aW9ucwotICAgIC8vIHRyYWNrIGxpc3QgaXMg
dmlzaWJsZSBhcyBhbGwgZXZlbnRzIG5vdyBuZWVkIHRvIGJlIGNhcHR1cmVkIGJ5IHRoZQotICAg
IC8vIHRyYWNrIGxpc3QuCi0gICAgbV9wYW5lbC0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVBvaW50ZXJFdmVudHMsIENTU1ZhbHVlTm9uZSk7Ci0KLSAgICBFdmVudExpc3RlbmVy
JiBsaXN0ZW5lciA9IGV2ZW50TGlzdGVuZXIoKTsKLSAgICBtX2Nsb3NlZENhcHRpb25zQ29udGFp
bmVyLT5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBsaXN0ZW5lciwg
dHJ1ZSk7Ci0KLSAgICAvLyBUcmFjayBjbGljayBldmVudHMgaW4gdGhlIGNhcHR1cmUgcGhhc2Ug
YXQgdHdvIGxldmVscywgZmlyc3QgYXQgdGhlIGRvY3VtZW50IGxldmVsCi0gICAgLy8gc3VjaCB0
aGF0IGEgY2xpY2sgb3V0c2lkZSBvZiB0aGUgPHZpZGVvPiBtYXkgZGlzbWlzcyB0aGUgdHJhY2sg
bGlzdCwgc2Vjb25kIGF0IHRoZQotICAgIC8vIG1lZGlhIGNvbnRyb2xzIGxldmVsIHN1Y2ggdGhh
dCBhIGNsaWNrIGFueXdoZXJlIG91dHNpZGUgb2YgdGhlIHRyYWNrIGxpc3QgaGlkZXMgdGhlCi0g
ICAgLy8gdHJhY2sgbGlzdC4gVGhlc2UgdHdvIGxldmVscyBhcmUgbmVjZXNzYXJ5IHNpbmNlIGl0
IHdvdWxkIG5vdCBiZSBwb3NzaWJsZSB0byBnZXQgYQotICAgIC8vIHJlZmVyZW5jZSB0byB0aGUg
dHJhY2sgbGlzdCB3aGVuIGhhbmRsaW5nIHRoZSBldmVudCBvdXRzaWRlIG9mIHRoZSBzaGFkb3cg
dHJlZS4KLSAgICBkb2N1bWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNsaWNr
RXZlbnQsIGxpc3RlbmVyLCB0cnVlKTsKLSAgICBhZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50LCBsaXN0ZW5lciwgdHJ1ZSk7Ci19Ci0KLXZvaWQgTWVkaWFDb250cm9sc0Fw
cGxlOjpoaWRlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpCi17Ci0gICAgaWYgKCFtX2Nsb3NlZENh
cHRpb25zQ29udGFpbmVyIHx8ICFtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5pc1Nob3dpbmco
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lci0+aGlk
ZSgpOwotCi0gICAgLy8gQnV0dG9ucyBpbiB0aGUgY29udHJvbHMgcGFuZWwgbWF5IG5vdyBiZSBp
bnRlcmFjdGl2ZS4KLSAgICBtX3BhbmVsLT5yZW1vdmVJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5UG9pbnRlckV2ZW50cyk7Ci0KLSAgICBFdmVudExpc3RlbmVyJiBsaXN0ZW5lciA9IGV2
ZW50TGlzdGVuZXIoKTsKLSAgICBtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5yZW1vdmVFdmVu
dExpc3RlbmVyKGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCBsaXN0ZW5lciwgdHJ1ZSk7Ci0gICAg
ZG9jdW1lbnQoKS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCBs
aXN0ZW5lciwgdHJ1ZSk7Ci0gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuY2xp
Y2tFdmVudCwgbGlzdGVuZXIsIHRydWUpOwotfQotCi12b2lkIE1lZGlhQ29udHJvbHNBcHBsZTo6
c2V0RnVsbHNjcmVlblNsaWRlclZvbHVtZSgpCi17Ci0gICAgbV9mdWxsU2NyZWVuVm9sdW1lU2xp
ZGVyLT5zZXRWb2x1bWUobV9tZWRpYUNvbnRyb2xsZXItPm11dGVkKCkgPyAwLjAgOiBtX21lZGlh
Q29udHJvbGxlci0+dm9sdW1lKCkpOwotfQotCi1ib29sIE1lZGlhQ29udHJvbHNBcHBsZTo6c2hv
dWxkQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJQcmV2ZW50UGFnZVNjcm9sbGluZyhpbnQgd2hlZWxE
ZWx0YVkpCi17Ci0gICAgaW50IHNjcm9sbFRvcCA9IG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXIt
PnNjcm9sbFRvcCgpOwotICAgIC8vIFNjcm9sbGluZyBkb3duLgotICAgIGlmICh3aGVlbERlbHRh
WSA8IDAgJiYgKHNjcm9sbFRvcCArIG1fY2xvc2VkQ2FwdGlvbnNDb250YWluZXItPm9mZnNldEhl
aWdodCgpKSA+PSBtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5zY3JvbGxIZWlnaHQoKSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgLy8gU2Nyb2xsaW5nIHVwLgotICAgIGlmICh3aGVlbERl
bHRhWSA+IDAgJiYgc2Nyb2xsVG9wIDw9IDApCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotdm9pZCBNZWRpYUNvbnRyb2xzQXBwbGU6OmhhbmRsZUNsaWNrRXZl
bnQoRXZlbnQmIGV2ZW50KQotewotICAgIE5vZGUqIGN1cnJlbnRUYXJnZXQgPSBldmVudC5jdXJy
ZW50VGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIE5vZGUqIHRhcmdldCA9IGV2ZW50LnRhcmdldCgp
LT50b05vZGUoKTsKLQotICAgIGlmICgoY3VycmVudFRhcmdldCA9PSAmZG9jdW1lbnQoKSAmJiAh
c2hhZG93SG9zdCgpLT5jb250YWlucyh0YXJnZXQpKSB8fCAoY3VycmVudFRhcmdldCA9PSB0aGlz
ICYmICFtX2Nsb3NlZENhcHRpb25zQ29udGFpbmVyLT5jb250YWlucyh0YXJnZXQpKSkgewotICAg
ICAgICBoaWRlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpOwotICAgICAgICBldmVudC5zdG9wSW1t
ZWRpYXRlUHJvcGFnYXRpb24oKTsKLSAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTWVkaWFDb250cm9sc0FwcGxlOjpjbG9zZWRDYXB0aW9uVHJhY2tz
Q2hhbmdlZCgpCi17Ci0gICAgaWYgKG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pIHsKLSAg
ICAgICAgaWYgKG1fbWVkaWFDb250cm9sbGVyLT5oYXNDbG9zZWRDYXB0aW9ucygpKQotICAgICAg
ICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbi0+c2hvdygpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5oaWRlKCk7Ci0gICAg
fQotfQotCi1NZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyJiBNZWRpYUNvbnRyb2xzQXBw
bGU6OmV2ZW50TGlzdGVuZXIoKQotewotICAgIGlmICghbV9ldmVudExpc3RlbmVyKQotICAgICAg
ICBtX2V2ZW50TGlzdGVuZXIgPSBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyOjpjcmVh
dGUodGhpcyk7Ci0gICAgcmV0dXJuICptX2V2ZW50TGlzdGVuZXI7Ci19Ci0KLS8vIC0tLS0tLS0t
Ci0KLXZvaWQgTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50KiBldmVudCkKLXsKLSAgICBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkKLSAgICAgICAgbV9tZWRpYUNvbnRyb2xz
LT5oYW5kbGVDbGlja0V2ZW50KCpldmVudCk7Ci0gICAgZWxzZSBpZiAoZXZlbnROYW1lcygpLmlz
V2hlZWxFdmVudFR5cGUoZXZlbnQtPnR5cGUoKSkgJiYgaXM8V2hlZWxFdmVudD4oKmV2ZW50KSkg
ewotICAgICAgICBXaGVlbEV2ZW50JiB3aGVlbEV2ZW50ID0gZG93bmNhc3Q8V2hlZWxFdmVudD4o
KmV2ZW50KTsKLSAgICAgICAgaWYgKG1fbWVkaWFDb250cm9scy0+c2hvdWxkQ2xvc2VkQ2FwdGlv
bnNDb250YWluZXJQcmV2ZW50UGFnZVNjcm9sbGluZyh3aGVlbEV2ZW50LndoZWVsRGVsdGFZKCkp
KQotICAgICAgICAgICAgd2hlZWxFdmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0KLX0KLQot
Ym9vbCBNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2
ZW50TGlzdGVuZXImIGxpc3RlbmVyKSBjb25zdAotewotICAgIGlmIChjb25zdCBNZWRpYUNvbnRy
b2xzQXBwbGVFdmVudExpc3RlbmVyKiBtZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3RlbmVyID0g
TWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lcjo6Y2FzdCgmbGlzdGVuZXIpKQotICAgICAg
ICByZXR1cm4gbV9tZWRpYUNvbnRyb2xzID09IG1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVu
ZXItPm1fbWVkaWFDb250cm9sczsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0KLQotI2VuZGlm
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzQXBwbGUuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmgJKHJldmlz
aW9uIDIxNDUwOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNB
cHBsZS5oCShub25leGlzdGVudCkKQEAgLTEsMTIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFZJREVPKQotCi0jaW5jbHVkZSAiTWVkaWFDb250
cm9scy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIE1lZGlhQ29udHJvbHNBcHBs
ZTsKLQotY2xhc3MgTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVu
dExpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE1lZGlhQ29udHJvbHNBcHBsZUV2
ZW50TGlzdGVuZXI+IGNyZWF0ZShNZWRpYUNvbnRyb2xzQXBwbGUqIG1lZGlhQ29udHJvbHMpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lcihtZWRp
YUNvbnRyb2xzKSk7IH0KLSAgICBzdGF0aWMgY29uc3QgTWVkaWFDb250cm9sc0FwcGxlRXZlbnRM
aXN0ZW5lciogY2FzdChjb25zdCBFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBsaXN0ZW5lci0+dHlwZSgpID09IE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlz
dGVuZXJUeXBlCi0gICAgICAgICAgICA/IHN0YXRpY19jYXN0PGNvbnN0IE1lZGlhQ29udHJvbHNB
cHBsZUV2ZW50TGlzdGVuZXIqPihsaXN0ZW5lcikKLSAgICAgICAgICAgIDogMDsKLSAgICB9Ci0K
LSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgb3RoZXIpIGNvbnN0IG92
ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50TGlzdGVuZXIo
TWVkaWFDb250cm9sc0FwcGxlKiBtZWRpYUNvbnRyb2xzKQotICAgICAgICA6IEV2ZW50TGlzdGVu
ZXIoTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0ZW5lclR5cGUpCi0gICAgICAgICwgbV9tZWRp
YUNvbnRyb2xzKG1lZGlhQ29udHJvbHMpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgaGFuZGxl
RXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50Kikgb3ZlcnJpZGU7Ci0KLSAgICBN
ZWRpYUNvbnRyb2xzQXBwbGUqIG1fbWVkaWFDb250cm9sczsKLX07Ci0KLWNsYXNzIE1lZGlhQ29u
dHJvbHNBcHBsZSBmaW5hbCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPE1lZGlhQ29udHJvbHNBcHBsZT4gdHJ5Q3JlYXRlQ29udHJvbHMoRG9jdW1l
bnQmKTsKLQotICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50YXRpb24uCi0gICAgdm9pZCBz
ZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKikgb3ZlcnJpZGU7Ci0K
LSAgICB2b2lkIGhpZGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIG1ha2VUcmFuc3BhcmVudCgpIG92
ZXJyaWRlOwotCi0gICAgdm9pZCByZXNldCgpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBjaGFuZ2Vk
TXV0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgY2hhbmdlZFZvbHVtZSgpIG92ZXJyaWRlOwotCi0g
ICAgdm9pZCBlbnRlcmVkRnVsbHNjcmVlbigpIG92ZXJyaWRlOwotICAgIHZvaWQgZXhpdGVkRnVs
bHNjcmVlbigpIG92ZXJyaWRlOwotCi0gICAgdm9pZCByZXBvcnRlZEVycm9yKCkgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBsb2FkZWRNZXRhZGF0YSgpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBzaG93Vm9s
dW1lU2xpZGVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1cGRhdGVDdXJyZW50VGltZURpc3BsYXko
KSBvdmVycmlkZTsKLSAgICB2b2lkIHVwZGF0ZVN0YXR1c0Rpc3BsYXkoKSBvdmVycmlkZTsKLQot
ICAgIHZvaWQgY2hhbmdlZENsb3NlZENhcHRpb25zVmlzaWJpbGl0eSgpIG92ZXJyaWRlOwotICAg
IHZvaWQgdG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpIG92ZXJyaWRlOwotICAgIHZvaWQg
Y2xvc2VkQ2FwdGlvblRyYWNrc0NoYW5nZWQoKSBvdmVycmlkZTsKLQotICAgIGJvb2wgc2hvdWxk
Q2xvc2VkQ2FwdGlvbnNDb250YWluZXJQcmV2ZW50UGFnZVNjcm9sbGluZyhpbnQgd2hlZWxEZWx0
YVkpOwotICAgIHZvaWQgaGFuZGxlQ2xpY2tFdmVudChFdmVudCYpOwotCi1wcml2YXRlOgotICAg
IE1lZGlhQ29udHJvbHNBcHBsZShEb2N1bWVudCYpOwotCi0gICAgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Jikgb3ZlcnJpZGU7Ci0gICAgTWVkaWFDb250cm9sc0FwcGxlRXZlbnRMaXN0
ZW5lciYgZXZlbnRMaXN0ZW5lcigpOwotCi0gICAgdm9pZCBzaG93Q2xvc2VkQ2FwdGlvblRyYWNr
TGlzdCgpOwotICAgIHZvaWQgaGlkZUNsb3NlZENhcHRpb25UcmFja0xpc3QoKTsKLSAgICB2b2lk
IHNldEZ1bGxzY3JlZW5TbGlkZXJWb2x1bWUoKTsKLQotICAgIE1lZGlhQ29udHJvbFJld2luZEJ1
dHRvbkVsZW1lbnQqIG1fcmV3aW5kQnV0dG9uIHsgbnVsbHB0ciB9OwotICAgIE1lZGlhQ29udHJv
bFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50KiBtX3JldHVyblRvUmVhbFRpbWVCdXR0b24g
eyBudWxscHRyIH07Ci0gICAgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQqIG1fc3Rh
dHVzRGlzcGxheSB7IG51bGxwdHIgfTsKLSAgICBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlz
cGxheUVsZW1lbnQqIG1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgeyBudWxscHRyIH07Ci0gICAgTWVk
aWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KiBtX3RpbWVsaW5lQ29udGFpbmVyIHsg
bnVsbHB0ciB9OwotICAgIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudCogbV9zZWVr
QmFja0J1dHRvbiB7IG51bGxwdHIgfTsKLSAgICBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRv
bkVsZW1lbnQqIG1fc2Vla0ZvcndhcmRCdXR0b24geyBudWxscHRyIH07Ci0gICAgTWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNUcmFja0xpc3RFbGVtZW50KiBtX2Nsb3NlZENhcHRpb25zVHJhY2tM
aXN0IHsgbnVsbHB0ciB9OwotICAgIE1lZGlhQ29udHJvbENsb3NlZENhcHRpb25zQ29udGFpbmVy
RWxlbWVudCogbV9jbG9zZWRDYXB0aW9uc0NvbnRhaW5lciB7IG51bGxwdHIgfTsKLSAgICBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudCogbV92b2x1bWVTbGlkZXJNdXRl
QnV0dG9uIHsgbnVsbHB0ciB9OwotICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQqIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyIHsgbnVsbHB0ciB9OwotICAgIE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KiBtX2Z1bGxTY3JlZW5NaW5W
b2x1bWVCdXR0b24geyBudWxscHRyIH07Ci0gICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZVNsaWRlckVsZW1lbnQqIG1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciB7IG51bGxwdHIgfTsKLSAg
ICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudCogbV9mdWxsU2Ny
ZWVuTWF4Vm9sdW1lQnV0dG9uIHsgbnVsbHB0ciB9OwotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xz
QXBwbGVFdmVudExpc3RlbmVyPiBtX2V2ZW50TGlzdGVuZXI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuaApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>

          </attachment>
      

    </bug>

</bugzilla>