<?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>182716</bug_id>
          
          <creation_ts>2018-02-12 16:03:23 -0800</creation_ts>
          <short_desc>Unify UserAgent into WebCore/platform.</short_desc>
          <delta_ts>2018-02-12 18:27:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1398520</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-02-12 16:03:23 -0800</bug_when>
    <thetext>Unify UserAgent into WebCore/platform (thereby addressing the FIXME leftover by https://bugs.webkit.org/show_bug.cgi?id=163508#c5).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398537</commentid>
    <comment_count>1</comment_count>
      <attachid>333644</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-02-12 16:44:12 -0800</bug_when>
    <thetext>Created attachment 333644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398555</commentid>
    <comment_count>2</comment_count>
      <attachid>333644</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-12 17:20:55 -0800</bug_when>
    <thetext>Comment on attachment 333644
Patch

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

Nice, thanks.

&gt; Source/WebCore/platform/UserAgent.h:-32
&gt; -#if PLATFORM(COCOA)
&gt; -// FIXME: Remove Source/WebCore/page/cocoa/UserAgent.h
&gt; -#include_next &quot;UserAgent.h&quot;
&gt; -#else

Wow, I forgot that #include_next existed. That was awful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398565</commentid>
    <comment_count>3</comment_count>
      <attachid>333644</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-12 18:26:22 -0800</bug_when>
    <thetext>Comment on attachment 333644
Patch

Clearing flags on attachment: 333644

Committed r228413: &lt;https://trac.webkit.org/changeset/228413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398566</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-12 18:26:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398567</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-12 18:27:36 -0800</bug_when>
    <thetext>&lt;rdar://problem/37482805&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333644</attachid>
            <date>2018-02-12 16:44:12 -0800</date>
            <delta_ts>2018-02-12 18:26:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182716-20180212164414.patch</filename>
            <type>text/plain</type>
            <size>36359</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk2ZTM5NWZhYWFmNzZi
MDkzYzAyYjE1MTE0ZDM2NzljNWUxN2M1NS4uZDE3MjNmZmM0OTlhY2QwNzgzNTM2MmFiZDdlZjhm
OGRkZWRlODU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTAyLTEyICBSb3Nz
IEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBVbmlmeSBVc2Vy
QWdlbnQgaW50byBXZWJDb3JlL3BsYXRmb3JtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFNvdXJjZXNJT1MudHh0OgorICAgICAg
ICAqIFNvdXJjZXNNYWMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL2NvY29hL1VzZXJBZ2VudC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIHBsYXRmb3JtL1VzZXJBZ2VudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Vz
ZXJBZ2VudENvY29hLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9V
c2VyQWdlbnQubW0uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1VzZXJBZ2VudElPUy5tbTogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElPUy5tbS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvVXNlckFnZW50TWFjLm1tLgorCiAyMDE4LTAyLTA5ICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlbmRlclRyZWVCdWlsZGVyXSBNb3Zl
IFJlbmRlclJ1YnlSdW46OnRha2VDaGlsZCBtdXRhdGlvbiB0byBhIFJlbmRlclRyZWVCdWlsZGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA2YWFiNGM5MWEzMWJhYWEzMTQzODg2ODQ2N2Ji
MGVlMjk2YzdkNTMzLi4xNGRjMGQxZWRkMzZmMzY4Y2U0MzEwZmQ2MWVmZGM4MzhlOTA5OWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTk4LDcgKzk4LDYgQEAgcGFnZS9jb2NvYS9QZXJm
b3JtYW5jZUxvZ2dpbmdDb2NvYS5tbQogcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNv
Y29hLm1tCiBwYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbQogcGFnZS9jb2Nv
YS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQotcGFnZS9jb2NvYS9Vc2VyQWdlbnQubW0KIAogcGFnZS9t
YWMvQ2hyb21lTWFjLm1tCiBwYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbQpAQCAtMTU4LDYg
KzE1Nyw3IEBAIHBsYXRmb3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tCiBwbGF0Zm9ybS9j
b2NvYS9TeXN0ZW1WZXJzaW9uLm1tCiBwbGF0Zm9ybS9jb2NvYS9UZWxlcGhvbmVOdW1iZXJEZXRl
Y3RvckNvY29hLmNwcAogcGxhdGZvcm0vY29jb2EvVGhlbWVDb2NvYS5tbQorcGxhdGZvcm0vY29j
b2EvVXNlckFnZW50Q29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50Lm1tCiBwbGF0Zm9ybS9jb2NvYS9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAK
IHBsYXRmb3JtL2NvY29hL1dlYkNvcmVOU0Vycm9yRXh0cmFzLm1tCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzSU9TLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNJT1MudHh0
CmluZGV4IDVkNmIzNjJhMmZlNmVhY2Q4MDExNjk0Mjk4OTczZTlhODg4N2RkYjkuLmQ0MDIwMmFh
NWUzY2NiZDIwN2ZiNzA3Y2JmM2VhNzVjMzEzOWRhM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNJT1MudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNJT1MudHh0CkBA
IC01OCw3ICs1OCw2IEBAIGxvYWRlci9pb3MvUHJldmlld0xvYWRlci5tbQogCiBwYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW0KIHBhZ2UvaW9zL0ZyYW1lSU9TLm1tCi1wYWdlL2lvcy9Vc2VyQWdl
bnRJT1MubW0KIHBhZ2UvaW9zL1dlYkV2ZW50UmVnaW9uLm1tCiAKIHBhZ2Uvc2Nyb2xsaW5nL2lv
cy9TY3JvbGxpbmdDb29yZGluYXRvcklPUy5tbQpAQCAtOTEsNiArOTAsNyBAQCBwbGF0Zm9ybS9p
b3MvU2Nyb2xsQW5pbWF0b3JJT1MubW0KIHBsYXRmb3JtL2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5t
bQogcGxhdGZvcm0vaW9zL1Njcm9sbFZpZXdJT1MubW0KIHBsYXRmb3JtL2lvcy9UaGVtZUlPUy5t
bSBAbm8tdW5pZnkKK3BsYXRmb3JtL2lvcy9Vc2VyQWdlbnRJT1MubW0KIHBsYXRmb3JtL2lvcy9W
YWxpZGF0aW9uQnViYmxlSU9TLm1tIEBuby11bmlmeQogcGxhdGZvcm0vaW9zL1ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tIEBuby11bmlmeQogcGxhdGZvcm0vaW9zL3dhay9XQUtTY3Jv
bGxWaWV3Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzTWFjLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNNYWMudHh0CmluZGV4IDU2NDNhZjAzNzQ2ZWZhNTc1MzE4NjQ3
OWI3MDM3YzZiY2I0NjRjZjQuLmIyMTgzNGI3ZDc3ODc3ZTM3MWMzYzg0ZjdjNjI5MTk5NTJkZDdm
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNNYWMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNNYWMudHh0CkBAIC00Miw3ICs0Miw2IEBAIGh0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuY3BwCiBwYWdlL21hYy9FdmVudEhhbmRsZXJN
YWMubW0KIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KIHBhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KLXBhZ2UvbWFjL1VzZXJBZ2VudE1hYy5tbQogcGFnZS9tYWMv
V2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLm1tCiAKIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbQpAQCAtOTcsNiArOTYsNyBAQCBwbGF0Zm9ybS9tYWMvU3VkZGVu
VGVybWluYXRpb24ubW0KIHBsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQogcGxhdGZvcm0vbWFjL1Ro
cmVhZENoZWNrLm1tIEBuby11bmlmeQogcGxhdGZvcm0vbWFjL1VzZXJBY3Rpdml0eU1hYy5tbQor
cGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQogcGxhdGZvcm0vbWFjL1ZhbGlkYXRpb25CdWJi
bGVNYWMubW0KIHBsYXRmb3JtL21hYy9XZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5t
bQogcGxhdGZvcm0vbWFjL1dlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcubW0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMjQz
ODUzNmM5YTJjODBhYzQ2ODZiZTE5NzQ2OWM0M2NhNGZmNmFmLi5hMzI2Mjc4YjVjNmExM2U2MGJl
ZWM4YTliMzNkNjU1NWMwYWMwMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDQsNyArNjQ0LDYgQEAKIAkJMjRGNTRFQUQx
MDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEg
LyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkyNTQyRjREQjExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1
cmVJbmRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MjM5MTM2
MUE2NDhDRUUwMDcyNTFBMyAvKiBDb250ZW50RXh0ZW5zaW9uc0RlYnVnZ2luZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyMzkxMzUxQTY0OENFRTAw
NzI1MUEzIC8qIENvbnRlbnRFeHRlbnNpb25zRGVidWdnaW5nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMjYyNTVGMDMxODg3OEUxMTAwMDZFMUZE
IC8qIFVzZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI2MkVDNDFBMUQwNzhGQjkw
MEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVnaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50
VHJhY2tpbmdSZWdpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMjY1NTQxMzkxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2NTU0MTM3
MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudENvZGVzSU9TLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjY2MDFFQkYxNEIzQjlBRDAwMTJDMEZF
IC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjYwMUVCRDE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1F
dmVudEZhY3RvcnlJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMjg3Myw2ICsyODcyLDcgQEAKIAkJQTMxQzRFNEQxNkUwMkFBNjAwMkY3OTU3
IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTMxQzRFNEMxNkUwMkFBNjAwMkY3OTU3IC8qIE9FU1RleHR1cmVI
YWxmRmxvYXQuY3BwICovOyB9OwogCQlBMzFDNEU0RjE2RTAyQUI0MDAyRjc5NTcgLyogT0VTVGV4
dHVyZUhhbGZGbG9hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTMxQzRFNEUxNkUwMkFCNDAwMkY3OTU3IC8qIE9FU1RleHR1cmVIYWxmRmxvYXQuaCAq
LzsgfTsKIAkJQTMxQzRFNTQxNkUwMkI0MDAwMkY3OTU3IC8qIEpTT0VTVGV4dHVyZUhhbGZGbG9h
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMxQzRF
NTMxNkUwMkI0MDAwMkY3OTU3IC8qIEpTT0VTVGV4dHVyZUhhbGZGbG9hdC5oICovOyB9OworCQlB
M0FGOUQ4NjIwMzI2ODYxMDA2Q0FEMDYgLyogVXNlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0FGOUQ4MjIwMzI1MzI0MDA2Q0FEMDYgLyog
VXNlckFnZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTNCQjU5RjQxNDU3QTQwRDAwQUM1NkZFIC8qIERvY3VtZW50RXZlbnRRdWV1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTNCQjU5RjIxNDU3
QTQwRDAwQUM1NkZFIC8qIERvY3VtZW50RXZlbnRRdWV1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUEzRTI2NDMxMTQ3NDg5OTEwMDVBODU4OCAv
KiBXb3JrZXJFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBM0UyNjQyRjE0NzQ4OTkxMDA1QTg1ODggLyogV29ya2VyRXZlbnRRdWV1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE0MDlD
OTg1MTE2RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE0MDlDOTgzMTE2
RDBEREQwMDcxOTdCRCAvKiBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaCAqLzsgfTsK
QEAgLTYxODEsOSArNjE4MSw2IEBACiAJCTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2Vy
R2VzdHVyZUluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBVc2VyR2VzdHVyZUluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjIzOTEzNTFBNjQ4Q0VFMDA3MjUxQTMgLyogQ29u
dGVudEV4dGVuc2lvbnNEZWJ1Z2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29udGVudEV4dGVuc2lvbnNEZWJ1Z2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMjYyNTVFRkYxODg3OERGRjAwMDZFMUZEIC8qIFVzZXJBZ2VudElPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJBZ2VudElPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJB
Z2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyQWdlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjYyNTVGMDIxODg3OEUxMTAwMDZFMUZEIC8qIFVz
ZXJBZ2VudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVz
ZXJBZ2VudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjYyRUM0MTkxRDA3
OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV2ZW50VHJhY2tpbmdSZWdpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI2MkVDNDFDMUQxMTBCMUYwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2NTU0MTM3MTQ4
OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudENvZGVzSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEtleUV2ZW50Q29kZXNJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg0NzIsNyArODQ2OSw2IEBACiAJCTVEMjFBODAxMTNFQ0U1REYwMEJCNzA2NCAvKiBX
ZWJWVFRQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVlRUUGFy
c2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENTk3NUIxMTk2MzVGMTEwMEQw
MDg3OCAvKiBTeXN0ZW1WZXJzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN5c3RlbVZlcnNpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ1OTc1QjIx
OTYzNUYxMTAwRDAwODc4IC8qIFN5c3RlbVZlcnNpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBTeXN0ZW1WZXJzaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1RDU5NzVCNjE5NjM2MzdCMDBEMDA4NzggLyogVXNlckFnZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFnZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1RDkyNUI2NTBGNjRENEREMDBCODQ3RjAgLyogU2Nyb2xs
QWxpZ25tZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9s
bEFsaWdubWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEOTI1QjY2MEY2
NEQ0REQwMEI4NDdGMCAvKiBTY3JvbGxBbGlnbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2Nyb2xsQWxpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVEQTVFMEZBMTAyQjk1MzgwMDA4OENGOSAvKiBKU1dlYlNvY2tldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYlNvY2tldC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDg3Nyw2ICsxMDg3MywxMCBAQAogCQlBMzFDNEU1MDE2RTAy
QUM1MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gT0VTVGV4dHVyZUhh
bGZGbG9hdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMUM0RTUxMTZFMDJC
MDgwMDJGNzk1NyAvKiBKU09FU1RleHR1cmVIYWxmRmxvYXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMxQzRFNTMxNkUwMkI0MDAwMkY3OTU3IC8qIEpTT0VTVGV4
dHVyZUhhbGZGbG9hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1Rl
eHR1cmVIYWxmRmxvYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTNBRjlEODEy
MDMyNTJFRTAwNkNBRDA2IC8qIFVzZXJBZ2VudENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFnZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUEzQUY5RDgyMjAzMjUzMjQwMDZDQUQwNiAvKiBVc2VyQWdlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUEzQUY5RDgzMjAzMjU2OTEwMDZDQUQwNiAvKiBVc2VyQWdlbnRJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VyQWdlbnRJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEzQUY5RDg0MjAzMjU2QTMwMDZDQUQw
NiAvKiBVc2VyQWdlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBVc2VyQWdlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzQkI1
OUYxMTQ1N0E0MEQwMEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG9jdW1lbnRFdmVudFF1ZXVlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTNCQjU5RjIxNDU3QTQwRDAwQUM1NkZFIC8qIERvY3Vt
ZW50RXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVu
dEV2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTNENDJBODQxRjMz
QkEzNjAwQTY0QjYyIC8qIExheW91dFVuaXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTGF5b3V0VW5pdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTQ3OCw3ICsxNTQ3OCw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlGRTY5MzhCNTEwNDVE
NjdFMDA4RUFCQjYgLyogRXZlbnRIYW5kbGVySU9TLm1tICovLAogCQkJCUZFRDEzRDNCMENFQTkz
NkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSAqLywKLQkJCQkyNjI1NUVGRjE4ODc4REZGMDAwNkUx
RkQgLyogVXNlckFnZW50SU9TLm1tICovLAogCQkJCTIyNUExNkIzMEQ1QzExRTkwMDA5MDI5NSAv
KiBXZWJFdmVudFJlZ2lvbi5oICovLAogCQkJCTIyNUExNkI0MEQ1QzExRTkwMDA5MDI5NSAvKiBX
ZWJFdmVudFJlZ2lvbi5tbSAqLywKIAkJCSk7CkBAIC0xODM0MSw4ICsxODM0MCw2IEBACiAJCQkJ
QURGRTJCNTQxQkQ1RjQxMjAwREFCNDU3IC8qIFJlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0g
Ki8sCiAJCQkJQTUwNzFFODgxQzU2RDRGQTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWRD
b2NvYS5tbSAqLywKIAkJCQlBMTgyRDVCNjFCRTcyMjYyMDA4N0E3Q0MgLyogU2V0dGluZ3NCYXNl
Q29jb2EubW0gKi8sCi0JCQkJMjYyNTVGMDExODg3OEUxMTAwMDZFMUZEIC8qIFVzZXJBZ2VudC5o
ICovLAotCQkJCTVENTk3NUI2MTk2MzYzN0IwMEQwMDg3OCAvKiBVc2VyQWdlbnQubW0gKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE4
NjcwLDYgKzE4NjY3LDcgQEAKIAkJCQk1MURGNkQ3RjBCOTJBMThFMDBDMkRDODUgLyogVGhyZWFk
Q2hlY2subW0gKi8sCiAJCQkJNjU5MzkyMzkwOUFFNDM1QzAwMkM1MzFGIC8qIFVSTE1hYy5tbSAq
LywKIAkJCQk4NjgxNjBEMzE4NzY2OUU3MDAyMUU3OUQgLyogVXNlckFjdGl2aXR5TWFjLm1tICov
LAorCQkJCUEzQUY5RDg0MjAzMjU2QTMwMDZDQUQwNiAvKiBVc2VyQWdlbnRNYWMubW0gKi8sCiAJ
CQkJODNDNDVCOEIxREMyQjY2MzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGVNYWMubW0gKi8s
CiAJCQkJNTJCMEQ0QzExQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oICovLAogCQkJCTUyMTMxRTVBMUM0RjE1NjEwMDMzRjgwMiAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VNYWMubW0gKi8sCkBAIC0xOTgxMSw3ICsxOTgwOSw2IEBACiAJCQkJMkQ5M0FF
RTIxOURGNTY0MTAwMkE4NkMzIC8qIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gKi8sCiAJ
CQkJMkQ0Rjk2RjMxQTFFQ0MyNDAwOThCRjg4IC8qIFRleHRJbmRpY2F0b3JXaW5kb3cuaCAqLywK
IAkJCQkyRDRGOTZGNDFBMUVDQzI0MDA5OEJGODggLyogVGV4dEluZGljYXRvcldpbmRvdy5tbSAq
LywKLQkJCQkyNjI1NUYwMjE4ODc4RTExMDAwNkUxRkQgLyogVXNlckFnZW50TWFjLm1tICovLAog
CQkJCUY1ODc4NTRDMDJERTM3NTkwMUVBNDEyMiAvKiBXZWJDb3JlRnJhbWVWaWV3LmggKi8sCiAJ
CQkJMkU5QjVEOEUxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5o
ICovLAogCQkJCTJFRUVFNTVCMUI2NkEwNDcwMDhFMkNCQyAvKiBXaGVlbEV2ZW50RGVsdGFGaWx0
ZXJNYWMubW0gKi8sCkBAIC0yMDkxNyw2ICsyMDkxNCw3IEBACiAJCQkJNDRDOTkxOUUwRjNEMjEw
RTAwNTg2NjcwIC8qIFRoZW1lSU9TLm1tICovLAogCQkJCTFGNzJCRjA4MTg3RkQ0MjcwMDA5QkNC
MyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuY3BwICovLAogCQkJCTFGNzJCRjA5
MTg3RkQ0MjcwMDA5QkNCMyAvKiBUaWxlQ29udHJvbGxlck1lbW9yeUhhbmRsZXJJT1MuaCAqLywK
KwkJCQlBM0FGOUQ4MzIwMzI1NjkxMDA2Q0FEMDYgLyogVXNlckFnZW50SU9TLm1tICovLAogCQkJ
CTgzN0I3RDFGMURDM0Y1NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovLAog
CQkJCTNGQkM0QUYyMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oICovLAogCQkJCTNGQkM0QUYxMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5tbSAqLywKQEAgLTIxMDU1LDYgKzIxMDUzLDcgQEAKIAkJCQk3Q0M1
NjRCOTE4QkFDNzIwMDAxQjk2NTIgLyogVGVsZXBob25lTnVtYmVyRGV0ZWN0b3JDb2NvYS5jcHAg
Ki8sCiAJCQkJMzEwRDcxOTQxQjMzNUM5RDAwOUM3QjczIC8qIFRoZW1lQ29jb2EuaCAqLywKIAkJ
CQkzMTBENzE5MzFCMzM1QzlEMDA5QzdCNzMgLyogVGhlbWVDb2NvYS5tbSAqLywKKwkJCQlBM0FG
OUQ4MTIwMzI1MkVFMDA2Q0FEMDYgLyogVXNlckFnZW50Q29jb2EubW0gKi8sCiAJCQkJNTJCMEQ0
QkYxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggKi8s
CiAJCQkJNTJENUExQTQxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVsLmgg
Ki8sCiAJCQkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1vZGVs
VmlkZW9FbGVtZW50LmggKi8sCkBAIC0yMzk4OCw2ICsyMzk4Nyw3IEBACiAJCQkJNUM2RTY1NDAx
RDVDRURDOTAwRjc4NjJFIC8qIFVSTFBhcnNlci5oICovLAogCQkJCTg2ODE2MEQxMTg3NjY5QzQw
MDIxRTc5RCAvKiBVc2VyQWN0aXZpdHkuY3BwICovLAogCQkJCTg2ODE2MEQyMTg3NjY5QzQwMDIx
RTc5RCAvKiBVc2VyQWN0aXZpdHkuaCAqLywKKwkJCQlBM0FGOUQ4MjIwMzI1MzI0MDA2Q0FEMDYg
LyogVXNlckFnZW50LmggKi8sCiAJCQkJNzFDOTE2MDcxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCAqLywKIAkJCQk4M0M0NUI4RDFEQzJCNjdDMDA4ODcx
QkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovLAogCQkJCTUxNUY3OTUxMUNGQ0EzQzcwMENDRUQ5
MyAvKiBXZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovLApAQCAtMzAwNzIsNyArMzAwNzIs
NyBAQAogCQkJCTkzRDQzN0EyMUQ1N0IzRkUwMEFCODVFQSAvKiBVUkxVdGlscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTcyNzYzQkYxNjY4OUJGQjAwMkZDQUNCIC8qIFVzZXJBY3Rpb25FbGVtZW50
U2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjgxNjBENjE4NzY2QTEzMDAyMUU3OUQgLyogVXNl
ckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLywKLQkJCQkyNjI1NUYwMzE4ODc4RTExMDAwNkUxRkQg
LyogVXNlckFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBM0FGOUQ4NjIwMzI2ODYxMDA2Q0FE
MDYgLyogVXNlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFCNkQzMTE3QzkyNTk1MDBD
NjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxQjIw
OUQxNEVFNjAwMEU2MUQ3IC8qIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUU3OUQ0MzE4OERCNjFGMDAyMjM5QzIgLyogVXNlckNvbnRlbnRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvVXNl
ckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzAwNDRiNjY2MjIxMThmOTdmY2NjMzZlZDY2NGM1M2Nl
MDcxZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvVXNlckFnZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0
MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFVzZXJBZ2VudF9oCi0jZGVmaW5l
IFVzZXJBZ2VudF9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1XRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRX
aXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lKTsKLQotU3Ry
aW5nIHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JVc2VyQWdlbnRTdHJpbmcoKTsKLVN0cmluZyB1
c2VyQWdlbnRCdW5kbGVWZXJzaW9uKCk7Ci0KLX0KLQotI2VuZGlmIC8vIFVzZXJBZ2VudF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1VzZXJBZ2VudC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvVXNlckFnZW50Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkOGMzODNhNGIzMzBkOThmMjJhOThhNGE2MGExYzQzMjNhYTZkN2JiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvVXNlckFnZW50Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJVc2VyQWdlbnQuaCIK
LQotI2ltcG9ydCAiU3lzdGVtVmVyc2lvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVN0
cmluZyBzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uRm9yVXNlckFnZW50U3RyaW5nKCkKLXsKLSAgICAv
LyBVc2UgdW5kZXJzY29yZXMgaW5zdGVhZCBvZiBkb3RzIGJlY2F1c2Ugd2hlbiB3ZSBmaXJzdCBh
ZGRlZCB0aGUgTWFjIE9TIFggdmVyc2lvbiB0byB0aGUgdXNlciBhZ2VudCBzdHJpbmcKLSAgICAv
LyB3ZSB3ZXJlIGNvbmNlcm5lZCBhYm91dCBvbGQgREhUTUwgbGlicmFyaWVzIGludGVycHJldGlu
ZyAiNC4iIGFzIE5ldHNjYXBlIDQuIFRoYXQncyBubyBsb25nZXIgYSBjb25jZXJuIGZvciB1cwot
ICAgIC8vIGJ1dCB3ZSdyZSBzdGlja2luZyB3aXRoIHRoZSB1bmRlcnNjb3JlcyBmb3IgY29tcGF0
aWJpbGl0eSB3aXRoIHRoZSBmb3JtYXQgdXNlZCBieSBvbGRlciB2ZXJzaW9ucyBvZiBTYWZhcmku
Ci0gICAgcmV0dXJuIFtzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uKCkgc3RyaW5nQnlSZXBsYWNpbmdP
Y2N1cnJlbmNlc09mU3RyaW5nOkAiLiIgd2l0aFN0cmluZzpAIl8iXTsKLX0KLQotU3RyaW5nIHVz
ZXJBZ2VudEJ1bmRsZVZlcnNpb24oKQotewotICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIjYwNS4x
LjE1Iik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL1VzZXJBZ2VudElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L1VzZXJBZ2VudElPUy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODA3N2FlMWQ2
MWEyOGI5OTBlNmUxMGNmMDFlM2YxZjIzNzE2ZGE2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Vc2VyQWdlbnRJ
T1MubW0KKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlVzZXJBZ2VudC5oIgotCi0jaW1wb3J0ICJEZXZp
Y2UuaCIKLSNpbXBvcnQgIlN5c3RlbVZlcnNpb24uaCIKLSNpbXBvcnQgPHBhbC9zcGkvaW9zL01v
YmlsZUdlc3RhbHRTUEkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+Ci0jaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KLQotU09G
VF9MSU5LX0ZSQU1FV09SSyhVSUtpdCk7Ci1TT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQXBwbGlj
YXRpb24pOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Ns
YXNzaWMoKQotewotICAgIHJldHVybiBbW2dldFVJQXBwbGljYXRpb25DbGFzcygpIHNoYXJlZEFw
cGxpY2F0aW9uXSBfaXNDbGFzc2ljXTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGlzQ2xhc3Np
Y1BhZCgpCi17Ci0gICAgcmV0dXJuIFtnZXRVSUFwcGxpY2F0aW9uQ2xhc3MoKSBfY2xhc3NpY01v
ZGVdID09IFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlT3JpZ2luYWxQYWQ7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgYm9vbCBpc0NsYXNzaWNQaG9uZSgpCi17Ci0gICAgcmV0dXJuIGlzQ2xhc3Np
YygpICYmIFtnZXRVSUFwcGxpY2F0aW9uQ2xhc3MoKSBfY2xhc3NpY01vZGVdICE9IFVJQXBwbGlj
YXRpb25TY2VuZUNsYXNzaWNNb2RlT3JpZ2luYWxQYWQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgTlNT
dHJpbmcgKm9zTmFtZUZvclVzZXJBZ2VudCgpCi17Ci0gICAgaWYgKGRldmljZUhhc0lQYWRDYXBh
YmlsaXR5KCkgJiYgIWlzQ2xhc3NpY1Bob25lKCkpCi0gICAgICAgIHJldHVybiBAIk9TIjsKLSAg
ICByZXR1cm4gQCJpUGhvbmUgT1MiOwotfQotCi1zdGF0aWMgaW5saW5lIE5TU3RyaW5nICpkZXZp
Y2VOYW1lRm9yVXNlckFnZW50KCkKLXsKLSAgICBpZiAoaXNDbGFzc2ljKCkpIHsKLSAgICAgICAg
aWYgKGlzQ2xhc3NpY1BhZCgpKQotICAgICAgICAgICAgcmV0dXJuIEAiaVBhZCI7Ci0gICAgICAg
IHJldHVybiBAImlQaG9uZSI7Ci0gICAgfQotCi0gICAgYXV0byBuYW1lID0gcmV0YWluUHRyKChO
U1N0cmluZyAqKWRldmljZU5hbWUoKSk7Ci0jaWYgUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKLSAg
ICBOU1VJbnRlZ2VyIGxvY2F0aW9uID0gW25hbWUgcmFuZ2VPZlN0cmluZzpAIiBTaW11bGF0b3Ii
IG9wdGlvbnM6TlNCYWNrd2FyZHNTZWFyY2hdLmxvY2F0aW9uOwotICAgIGlmIChsb2NhdGlvbiAh
PSBOU05vdEZvdW5kICYmIGxvY2F0aW9uID4gMCkKLSAgICAgICAgcmV0dXJuIFtuYW1lIHN1YnN0
cmluZ1RvSW5kZXg6bG9jYXRpb25dOwotI2VuZGlmCi0gICAgcmV0dXJuIG5hbWUuYXV0b3JlbGVh
c2UoKTsKLX0KLQotU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShj
b25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKLXsKLSAgICAvLyBDaGVjayB0byBzZWUgaWYg
dGhlcmUgaXMgYSB1c2VyIGFnZW50IG92ZXJyaWRlIGZvciBhbGwgV2ViS2l0IGNsaWVudHMuCi0g
ICAgQ0ZQcm9wZXJ0eUxpc3RSZWYgb3ZlcnJpZGUgPSBDRlByZWZlcmVuY2VzQ29weUFwcFZhbHVl
KENGU1RSKCJVc2VyQWdlbnQiKSwgQ0ZTVFIoImNvbS5hcHBsZS5XZWJGb3VuZGF0aW9uIikpOwot
ICAgIGlmIChvdmVycmlkZSkgewotICAgICAgICBpZiAoQ0ZHZXRUeXBlSUQob3ZlcnJpZGUpID09
IENGU3RyaW5nR2V0VHlwZUlEKCkpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlNT
dHJpbmcgKj4oQ0ZCcmlkZ2luZ1JlbGVhc2Uob3ZlcnJpZGUpKTsKLSAgICAgICAgQ0ZSZWxlYXNl
KG92ZXJyaWRlKTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGltcGxlbWVudCB0
aGlzIHdpdGggU3RyaW5nIGFuZC9vciBTdHJpbmdCdWlsZGVyIGluc3RlYWQuCi0gICAgTlNTdHJp
bmcgKndlYktpdFZlcnNpb24gPSB1c2VyQWdlbnRCdW5kbGVWZXJzaW9uKCk7Ci0gICAgTlNTdHJp
bmcgKm9zTWFya2V0aW5nVmVyc2lvblN0cmluZyA9IHN5c3RlbU1hcmtldGluZ1ZlcnNpb25Gb3JV
c2VyQWdlbnRTdHJpbmcoKTsKLSAgICBpZiAoYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKCVA
OyBDUFUgJUAgJUAgbGlrZSBNYWMgT1MgWCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdl
Y2tvKSIsIGRldmljZU5hbWVGb3JVc2VyQWdlbnQoKSwgb3NOYW1lRm9yVXNlckFnZW50KCksIG9z
TWFya2V0aW5nVmVyc2lvblN0cmluZywgd2ViS2l0VmVyc2lvbl07Ci0gICAgcmV0dXJuIFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKCVAOyBDUFUgJUAgJUAgbGlrZSBN
YWMgT1MgWCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSAlQCIsIGRldmljZU5h
bWVGb3JVc2VyQWdlbnQoKSwgb3NOYW1lRm9yVXNlckFnZW50KCksIG9zTWFya2V0aW5nVmVyc2lv
blN0cmluZywgd2ViS2l0VmVyc2lvbiwgc3RhdGljX2Nhc3Q8TlNTdHJpbmcgKj4oYXBwbGljYXRp
b25OYW1lKV07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9Vc2VyQWdlbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9Vc2VyQWdlbnRNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlYWE4
MmY4ZGQxMjgwODU2ZmVmMzk1NWM2NDFhYmRkZGFkYjc0NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVXNlckFn
ZW50TWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJVc2VyQWdlbnQuaCIKLQotI2ltcG9ydCAi
U3lzdGVtVmVyc2lvbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBkZWZpbmVkKF9f
cHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKQotI2RlZmluZSBQUk9DRVNTT1IgIlBQQyIKLSNl
bGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSNkZWZpbmUgUFJP
Q0VTU09SICJJbnRlbCIKLSNlbHNlCi0jZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1cmUKLSNlbmRp
ZgotCi1TdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25OYW1lKQotewotICAgIFN0cmluZyBvc1ZlcnNpb24gPSBzeXN0ZW1N
YXJrZXRpbmdWZXJzaW9uRm9yVXNlckFnZW50U3RyaW5nKCk7Ci0gICAgU3RyaW5nIHdlYktpdFZl
cnNpb25TdHJpbmcgPSB1c2VyQWdlbnRCdW5kbGVWZXJzaW9uKCk7Ci0KLSAgICBpZiAoYXBwbGlj
YXRpb25OYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEv
NS4wIChNYWNpbnRvc2g7ICIgUFJPQ0VTU09SICIgTWFjIE9TIFggIiwgb3NWZXJzaW9uLCAiKSBB
cHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uU3RyaW5nLCAiIChLSFRNTCwgbGlrZSBHZWNrbyki
KTsKLSAgICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgIiBQUk9D
RVNTT1IgIiBNYWMgT1MgWCAiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZl
cnNpb25TdHJpbmcsICIgKEtIVE1MLCBsaWtlIEdlY2tvKSAiLCBhcHBsaWNhdGlvbk5hbWUpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Vc2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VzZXJBZ2VudC5o
CmluZGV4IDczNjVlMGQ4Mzc5YjdlZDU3OTk0ZmQxNThjOTNhNjVhMmI0ZmQ3MjIuLjQxODFlYzEz
YmZmOGY0ZTJhYTgyOTVlMWJmYjdlZmU1OWVkMDgxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VzZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Vz
ZXJBZ2VudC5oCkBAIC0yNiwxOSArMjYsMjAgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLS8vIEZJWE1FOiBSZW1vdmUgU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9V
c2VyQWdlbnQuaAotI2luY2x1ZGVfbmV4dCAiVXNlckFnZW50LmgiCi0jZWxzZQotCiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0
aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSk7CisKK1N0cmlu
ZyBzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uRm9yVXNlckFnZW50U3RyaW5nKCk7CitTdHJpbmcgdXNl
ckFnZW50QnVuZGxlVmVyc2lvbigpOworI2Vsc2UKIGNsYXNzIFVSTDsKIAogV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1l
ID0gZW1wdHlTdHJpbmcoKSwgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvblZlcnNpb24gPSBlbXB0
eVN0cmluZygpKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudEZvclVS
TChjb25zdCBVUkwmKTsKKyNlbmRpZgogCiB9Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVXNlckFnZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9Vc2VyQWdlbnRDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGMzODNhNGIz
MzBkOThmMjJhOThhNGE2MGExYzQzMjNhYTZkN2JiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVXNlckFnZW50Q29jb2EubW0KQEAgLTAsMCArMSw0NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJVc2VyQWdl
bnQuaCIKKworI2ltcG9ydCAiU3lzdGVtVmVyc2lvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1N0cmluZyBzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uRm9yVXNlckFnZW50U3RyaW5nKCkKK3sK
KyAgICAvLyBVc2UgdW5kZXJzY29yZXMgaW5zdGVhZCBvZiBkb3RzIGJlY2F1c2Ugd2hlbiB3ZSBm
aXJzdCBhZGRlZCB0aGUgTWFjIE9TIFggdmVyc2lvbiB0byB0aGUgdXNlciBhZ2VudCBzdHJpbmcK
KyAgICAvLyB3ZSB3ZXJlIGNvbmNlcm5lZCBhYm91dCBvbGQgREhUTUwgbGlicmFyaWVzIGludGVy
cHJldGluZyAiNC4iIGFzIE5ldHNjYXBlIDQuIFRoYXQncyBubyBsb25nZXIgYSBjb25jZXJuIGZv
ciB1cworICAgIC8vIGJ1dCB3ZSdyZSBzdGlja2luZyB3aXRoIHRoZSB1bmRlcnNjb3JlcyBmb3Ig
Y29tcGF0aWJpbGl0eSB3aXRoIHRoZSBmb3JtYXQgdXNlZCBieSBvbGRlciB2ZXJzaW9ucyBvZiBT
YWZhcmkuCisgICAgcmV0dXJuIFtzeXN0ZW1NYXJrZXRpbmdWZXJzaW9uKCkgc3RyaW5nQnlSZXBs
YWNpbmdPY2N1cnJlbmNlc09mU3RyaW5nOkAiLiIgd2l0aFN0cmluZzpAIl8iXTsKK30KKworU3Ry
aW5nIHVzZXJBZ2VudEJ1bmRsZVZlcnNpb24oKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
IjYwNS4xLjE1Iik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Vc2VyQWdlbnRJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvVXNlckFnZW50SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNzdhZTFkNjFhMjhi
OTkwZTZlMTBjZjAxZTNmMWYyMzcxNmRhNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvVXNlckFnZW50SU9TLm1tCkBAIC0wLDAgKzEsOTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVXNlckFnZW50LmgiCisK
KyNpbXBvcnQgIkRldmljZS5oIgorI2ltcG9ydCAiU3lzdGVtVmVyc2lvbi5oIgorI2ltcG9ydCA8
cGFsL3NwaS9pb3MvTW9iaWxlR2VzdGFsdFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9pb3MvVUlL
aXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KTsKK1NPRlRfTElOS19DTEFTUyhV
SUtpdCwgVUlBcHBsaWNhdGlvbik7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGlu
bGluZSBib29sIGlzQ2xhc3NpYygpCit7CisgICAgcmV0dXJuIFtbZ2V0VUlBcHBsaWNhdGlvbkNs
YXNzKCkgc2hhcmVkQXBwbGljYXRpb25dIF9pc0NsYXNzaWNdOworfQorCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNDbGFzc2ljUGFkKCkKK3sKKyAgICByZXR1cm4gW2dldFVJQXBwbGljYXRpb25DbGFz
cygpIF9jbGFzc2ljTW9kZV0gPT0gVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGVPcmlnaW5h
bFBhZDsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzQ2xhc3NpY1Bob25lKCkKK3sKKyAgICBy
ZXR1cm4gaXNDbGFzc2ljKCkgJiYgW2dldFVJQXBwbGljYXRpb25DbGFzcygpIF9jbGFzc2ljTW9k
ZV0gIT0gVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGVPcmlnaW5hbFBhZDsKK30KKworc3Rh
dGljIGlubGluZSBOU1N0cmluZyAqb3NOYW1lRm9yVXNlckFnZW50KCkKK3sKKyAgICBpZiAoZGV2
aWNlSGFzSVBhZENhcGFiaWxpdHkoKSAmJiAhaXNDbGFzc2ljUGhvbmUoKSkKKyAgICAgICAgcmV0
dXJuIEAiT1MiOworICAgIHJldHVybiBAImlQaG9uZSBPUyI7Cit9CisKK3N0YXRpYyBpbmxpbmUg
TlNTdHJpbmcgKmRldmljZU5hbWVGb3JVc2VyQWdlbnQoKQoreworICAgIGlmIChpc0NsYXNzaWMo
KSkgeworICAgICAgICBpZiAoaXNDbGFzc2ljUGFkKCkpCisgICAgICAgICAgICByZXR1cm4gQCJp
UGFkIjsKKyAgICAgICAgcmV0dXJuIEAiaVBob25lIjsKKyAgICB9CisKKyAgICBhdXRvIG5hbWUg
PSByZXRhaW5QdHIoKE5TU3RyaW5nICopZGV2aWNlTmFtZSgpKTsKKyNpZiBQTEFURk9STShJT1Nf
U0lNVUxBVE9SKQorICAgIE5TVUludGVnZXIgbG9jYXRpb24gPSBbbmFtZSByYW5nZU9mU3RyaW5n
OkAiIFNpbXVsYXRvciIgb3B0aW9uczpOU0JhY2t3YXJkc1NlYXJjaF0ubG9jYXRpb247CisgICAg
aWYgKGxvY2F0aW9uICE9IE5TTm90Rm91bmQgJiYgbG9jYXRpb24gPiAwKQorICAgICAgICByZXR1
cm4gW25hbWUgc3Vic3RyaW5nVG9JbmRleDpsb2NhdGlvbl07CisjZW5kaWYKKyAgICByZXR1cm4g
bmFtZS5hdXRvcmVsZWFzZSgpOworfQorCitTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBw
bGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lKQoreworICAgIC8vIENo
ZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhIHVzZXIgYWdlbnQgb3ZlcnJpZGUgZm9yIGFsbCBXZWJL
aXQgY2xpZW50cy4KKyAgICBDRlByb3BlcnR5TGlzdFJlZiBvdmVycmlkZSA9IENGUHJlZmVyZW5j
ZXNDb3B5QXBwVmFsdWUoQ0ZTVFIoIlVzZXJBZ2VudCIpLCBDRlNUUigiY29tLmFwcGxlLldlYkZv
dW5kYXRpb24iKSk7CisgICAgaWYgKG92ZXJyaWRlKSB7CisgICAgICAgIGlmIChDRkdldFR5cGVJ
RChvdmVycmlkZSkgPT0gQ0ZTdHJpbmdHZXRUeXBlSUQoKSkKKyAgICAgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxOU1N0cmluZyAqPihDRkJyaWRnaW5nUmVsZWFzZShvdmVycmlkZSkpOworICAg
ICAgICBDRlJlbGVhc2Uob3ZlcnJpZGUpOworICAgIH0KKworICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgaW1wbGVtZW50IHRoaXMgd2l0aCBTdHJpbmcgYW5kL29yIFN0cmluZ0J1aWxkZXIgaW5zdGVh
ZC4KKyAgICBOU1N0cmluZyAqd2ViS2l0VmVyc2lvbiA9IHVzZXJBZ2VudEJ1bmRsZVZlcnNpb24o
KTsKKyAgICBOU1N0cmluZyAqb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nID0gc3lzdGVtTWFya2V0
aW5nVmVyc2lvbkZvclVzZXJBZ2VudFN0cmluZygpOworICAgIGlmIChhcHBsaWNhdGlvbk5hbWUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJN
b3ppbGxhLzUuMCAoJUA7IENQVSAlQCAlQCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8lQCAo
S0hUTUwsIGxpa2UgR2Vja28pIiwgZGV2aWNlTmFtZUZvclVzZXJBZ2VudCgpLCBvc05hbWVGb3JV
c2VyQWdlbnQoKSwgb3NNYXJrZXRpbmdWZXJzaW9uU3RyaW5nLCB3ZWJLaXRWZXJzaW9uXTsKKyAg
ICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJNb3ppbGxhLzUuMCAoJUA7IENQ
VSAlQCAlQCBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28p
ICVAIiwgZGV2aWNlTmFtZUZvclVzZXJBZ2VudCgpLCBvc05hbWVGb3JVc2VyQWdlbnQoKSwgb3NN
YXJrZXRpbmdWZXJzaW9uU3RyaW5nLCB3ZWJLaXRWZXJzaW9uLCBzdGF0aWNfY2FzdDxOU1N0cmlu
ZyAqPihhcHBsaWNhdGlvbk5hbWUpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNl
YWE4MmY4ZGQxMjgwODU2ZmVmMzk1NWM2NDFhYmRkZGFkYjc0NmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVXNl
ckFnZW50LmgiCisKKyNpbXBvcnQgIlN5c3RlbVZlcnNpb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisjaWYgZGVmaW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fcHBjNjRfXykKKyNkZWZp
bmUgUFJPQ0VTU09SICJQUEMiCisjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f
eDg2XzY0X18pCisjZGVmaW5lIFBST0NFU1NPUiAiSW50ZWwiCisjZWxzZQorI2Vycm9yIFVua25v
d24gYXJjaGl0ZWN0dXJlCisjZW5kaWYKKworU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFw
cGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKK3sKKyAgICBTdHJp
bmcgb3NWZXJzaW9uID0gc3lzdGVtTWFya2V0aW5nVmVyc2lvbkZvclVzZXJBZ2VudFN0cmluZygp
OworICAgIFN0cmluZyB3ZWJLaXRWZXJzaW9uU3RyaW5nID0gdXNlckFnZW50QnVuZGxlVmVyc2lv
bigpOworCisgICAgaWYgKGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyAiIFBST0NFU1NPUiAiIE1hYyBP
UyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0VmVyc2lvblN0cmluZywg
IiAoS0hUTUwsIGxpa2UgR2Vja28pIik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEv
NS4wIChNYWNpbnRvc2g7ICIgUFJPQ0VTU09SICIgTWFjIE9TIFggIiwgb3NWZXJzaW9uLCAiKSBB
cHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uU3RyaW5nLCAiIChLSFRNTCwgbGlrZSBHZWNrbykg
IiwgYXBwbGljYXRpb25OYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>