<?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>225759</bug_id>
          
          <creation_ts>2021-05-13 04:51:44 -0700</creation_ts>
          <short_desc>[LFC] Move inline formatting quirks to its own class</short_desc>
          <delta_ts>2021-05-15 12:51:20 -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>Layout and Rendering</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>
          
          <blocked>225731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759638</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:51:44 -0700</bug_when>
    <thetext>This is part of bug 225731 activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759668</commentid>
    <comment_count>1</comment_count>
      <attachid>428507</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 05:56:21 -0700</bug_when>
    <thetext>Created attachment 428507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760441</commentid>
    <comment_count>2</comment_count>
      <attachid>428736</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-15 11:34:29 -0700</bug_when>
    <thetext>Created attachment 428736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760442</commentid>
    <comment_count>3</comment_count>
      <attachid>428737</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-15 11:43:10 -0700</bug_when>
    <thetext>Created attachment 428737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760444</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 12:51:00 -0700</bug_when>
    <thetext>Committed r277545 (237773@main): &lt;https://commits.webkit.org/237773@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428737.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760445</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 12:51:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78062410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428507</attachid>
            <date>2021-05-13 05:56:21 -0700</date>
            <delta_ts>2021-05-15 11:34:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225759-20210513055620.patch</filename>
            <type>text/plain</type>
            <size>26551</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uZjlmODNkNjYyMzI1MmNiMTcwYzM1YTdlMmY5YWRk
Yjk5ODdlYTA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGlubGluZSBm
b3JtYXR0aW5nIHF1aXJrcyB0byBpdHMgb3duIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpxdWlya3MgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpRdWlya3M6OlF1aXJrcyk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklu
bGluZUNvbnRlbnRCdWlsZGVyLmNwcDoKKwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8Ot
YSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRN
ZWRpYVNyYyByZXdvcmsgdjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMDA3NWUwNDhiZjg4YzNmOTBiNjEy
YzI0YWE2ODliNDY4OTYwZjg2ZS4uZWJkZDlhNTVhOTZiYjQ1MjBlZDQzZmFjMTYyNjA3ZDI0NDM4
NmQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE1MzYsNyArMTUzNiw3IEBAIGxheW91dC9mbG9hdHMv
RmxvYXRpbmdTdGF0ZS5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUNvbnRlbnRCcmVha2VyLmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAotbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCitsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcAogbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcAog
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKIGxheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmUuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWM2MzVmOGQ5ZjNj
ODA2ODBlMmY5N2IwM2NiNDg0OTg5MzliYzA0Zi4uM2FiNjQyMjRjYWYxMTA2YTE2Y2I3MDE2ZWEz
YmRkMzNhMzBmNmZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjE2Miw2ICsyMTYyLDcgQEAKIAkJNkZDRTFBMUEyMjYxOEFC
RDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyogTGF5
b3V0SW50ZWdyYXRpb25SdW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2RkQwOTU0MzI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkQw
OTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFMTk4MTcyMTc4Mzk3QzAw
NDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5l
Q29udGVudEJyZWFrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk2RkU2MzZFODI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1
aXJrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZF
NjM2RTcyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkU3Q0ZBMjIxNzdF
RUYyMDA1QjE1NzMgLyogSW5saW5lSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkZFN0NGQTAyMTc3RUVGMTAwNUIxNTczIC8qIElubGluZUl0ZW0u
aCAqLzsgfTsKIAkJNkZGQTRDMDEyM0YyRkVEOTAwN0U0RUJDIC8qIExheW91dExpbmVCcmVha0Jv
eC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZGQTRD
MDAyM0YyRkVEOTAwN0U0RUJDIC8qIExheW91dExpbmVCcmVha0JveC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGRkRDNDQyMjEyRUZGMTcwMEE5
Q0E5MSAvKiBGbG9hdEF2b2lkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZGRkRDNDQwMjEyRUZGMTYwMEE5Q0E5MSAvKiBGbG9hdEF2b2lkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTk0NCw3
ICs5OTQ1LDcgQEAKIAkJNkYwQjk4QjYyM0YyNjkwNjAwRUVDMkYyIC8qIExheW91dElubGluZVRl
eHRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0SW5saW5lVGV4dEJveC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMENENjkyMjI5RUQzMTkwMEM1OTk0RSAvKiBJ
bmxpbmVMaW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUxpbmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RjBDRDY5NDIyOUVEMzI3MDBDNTk5NEUgLyogSW5saW5l
TGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVMaW5lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGMTBCMDg2MjJCODU2OEQwMDkwRTY5QyAvKiBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTZGMTBCMDg2MjJCODU2OEQwMDkwRTY5QyAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdRdWlya3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RjE1NTIyMDI2NDc2QjVCMDBFMzUzQzYgLyogVGFibGVX
cmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RjE3MjY0QzI0NzBDNUY3MDA1MThDOTYgLyogVGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZVdyYXBw
ZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkYxNzI2NEUyNDcwQzYwQTAwNTE4Qzk2IC8qIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTAwMjgsNiArMTAwMjksNyBAQAogCQk2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0
R2VvbWV0cnlSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEdl
b21ldHJ5UmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxMzIxNzgz
OTdCMDA0NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lQ29udGVudEJyZWFrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lQ29u
dGVudEJyZWFrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lQ29u
dGVudEJyZWFrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkZFNjM2RTcyNjQ3
OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RkU3QUEyNjIxQzM3QjYzMDAyOTZEQ0QgLyogTWFyZ2luVHlwZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWFyZ2luVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZFN0NGQTAyMTc3RUVGMTAwNUIxNTczIC8qIElubGluZUl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RkU4RTZGNzIzN0JBNUU4MDA3NThEMjYgLyogSW52YWxpZGF0aW9uQ29udGV4
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnZhbGlkYXRpb25Db250ZXh0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjU5LDcgKzE4MjYxLDggQEAKIAkJCQk2RjdDQTND
OTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJ
CTZGN0NBM0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICov
LAogCQkJCTZGMzVFRkFGMjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dEdlb21ldHJ5LmNwcCAqLywKLQkJCQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2OUMgLyogSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovLAorCQkJCTZGRTYzNkU3MjY0Nzk2MjkwMEYw
OTUxRSAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi8sCisJCQkJNkYxMEIwODYyMkI4NTY4
RDAwOTBFNjlDIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuY3BwICovLAogCQkJCTExNUNGQTdE
MjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTEx
NUNGQTdDMjA4QjhFMTAwMDFFNjk5MSAvKiBJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCAqLywKIAkJ
CQk2RjdCOENFQzIzNjI2RTY2MDBDOUZGMTUgLyogSW5saW5lSXRlbS5jcHAgKi8sCkBAIC0zNTM0
MSw2ICszNTM0NCw3IEBACiAJCQkJQjIyMjdBNTkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1BhdGhF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDc2QzlGMDExREY2QTU4MDA1NTVCMDIgLyog
U1ZHUGF0aFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNUIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1BhdGhTZWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGRTYzNkU4MjY0Nzk2Mjkw
MEYwOTUxRSAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0E4MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlzdEJ1aWxkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg0QjZCOTc4MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRo
U2VnTGlzdFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYTUxZWFmZmNkYTNlZWNjNDNlMjE1ZDFk
OTY0NjEwNmMwY2M1YTk3Mi4uYzEyODI3N2UyODg2Nzg0NzZkNTQ4NTU3MjU1YjcwZDc1MzdkYzNk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmgi
CiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5lTGlu
ZUJveC5oIgogI2luY2x1ZGUgIklubGluZUxpbmVSdW4uaCIKQEAgLTYwNSw2ICs2MDYsMTIgQEAg
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6aW52YWxpZGF0ZUZvcm1hdHRpbmdTdGF0ZShj
b25zdCBJbnZhbGlkYXRpb25TdGF0ZSYKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIHdoZXJl
IHdlIHdvdWxkIGRlbGV0ZSBpbmxpbmUgaXRlbXMgaWYgdGhlaXIgY29udGVudCBjaGFuZ2VkLgog
fQogCitJbmxpbmVGb3JtYXR0aW5nUXVpcmtzIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpxdWly
a3MoKSBjb25zdAoreworICAgIHJldHVybiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzKCp0aGlzKTsK
KworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5oCmluZGV4IGFkN2VjOTcyMzdjMWU4OGQ3ODg2MDI2N2ExODA3ZTIwNDhhZjQzMmUuLjE2
ZTJiNzkzMDg2NGFjNjEzMmE2OWNkYWU5Mzg1YmJmNmQ3Y2E5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMzUsNiArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5lRm9ybWF0
dGluZ1N0YXRlOworY2xhc3MgSW5saW5lRm9ybWF0dGluZ1F1aXJrczsKIGNsYXNzIEludmFsaWRh
dGlvblN0YXRlOwogY2xhc3MgTGluZUJveDsKIApAQCAtNDcsMjAgKzQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgbGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0IENv
bnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCYpIG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgdXNl
ZENvbnRlbnRIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGNsYXNzIFF1aXJrcyA6IHB1
YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIElu
bGluZUxheW91dFVuaXQgaW5pdGlhbExpbmVIZWlnaHQoKSBjb25zdDsKLSAgICAgICAgYm9vbCBo
YXNTb2Z0V3JhcE9wcG9ydHVuaXR5QXRJbWFnZSgpIGNvbnN0OwotICAgICAgICBib29sIGlubGlu
ZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gmLCBj
b25zdCBMaW5lQm94JikgY29uc3Q7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQgY2xh
c3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgICAgIFF1aXJrcyhjb25zdCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dCYpOwotCi0gICAgICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZv
cm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29u
dGV4dCgpKTsgfQotCi0gICAgfTsKLSAgICBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtz
IHF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIFF1aXJrcygqdGhpcyk7IH0KKyAgICBJbmxpbmVGb3Jt
YXR0aW5nUXVpcmtzIHF1aXJrcygpIGNvbnN0OwogCiAgICAgY29uc3QgSW5saW5lRm9ybWF0dGlu
Z1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVG
b3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0K
ICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJuIGRv
d25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRp
bmdTdGF0ZSgpKTsgfQpAQCAtMTA2LDExICs5NCw2IEBAIGlubGluZSBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0
CiB7CiB9CiAKLWlubGluZSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpRdWlya3Mo
Y29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdDb250ZXh0KQot
ICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyhpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCkK
LXsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkx
YmU2NWRhZDVjYzVmNTZiMjllYjA3MDNlNmNkYzk0MzkwYWMyYTcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTIxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKLQotI2lmIEVOQUJM
RShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0
cnkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLUlubGlu
ZUxheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aW5pdGlhbExpbmVI
ZWlnaHQoKSBjb25zdAotewotICAgIC8vIE5lZ2F0aXZlIGxpbmVIZWlnaHQgdmFsdWUgbWVhbnMg
dGhlIGxpbmUtaGVpZ2h0IGlzIG5vdCBzZXQKLSAgICBhdXRvJiByb290ID0gZm9ybWF0dGluZ0Nv
bnRleHQoKS5yb290KCk7Ci0gICAgaWYgKGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCkg
fHwgIXJvb3Quc3R5bGUoKS5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKQotICAgICAgICByZXR1
cm4gcm9vdC5zdHlsZSgpLmNvbXB1dGVkTGluZUhlaWdodCgpOwotICAgIHJldHVybiByb290LnN0
eWxlKCkuZm9udE1ldHJpY3MoKS5mbG9hdEhlaWdodCgpOwotfQotCi1ib29sIElubGluZUZvcm1h
dHRpbmdDb250ZXh0OjpRdWlya3M6OmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3Qg
TGluZUJveDo6SW5saW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94LCBjb25zdCBMaW5lQm94JiBs
aW5lQm94KSBjb25zdAotewotICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgp
KSB7Ci0gICAgICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIC8vIEluIHF1aXJrcyBtb2RlIGxpbmVicmVhayBi
b3hlcyAoPGJyPikgc3RvcCBhZmZlY3RpbmcgdGhlIGxpbmUgYm94IHdoZW4gKGFzc3VtZSA8YnI+
IGlzIG5lc3RlZCBlLmcuIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwMHB4Ij48YnI+PC9zcGFu
PikKLSAgICAgICAgLy8gMS4gdGhlIHJvb3QgaW5saW5lIGJveCBoYXMgY29udGVudCA8ZGl2PmNv
bnRlbnQ8YnI+L2Rpdj4KLSAgICAgICAgLy8gMi4gdGhlcmUncyBhdCBsZWFzdCBvbmUgYXRvbWlj
IGlubGluZSBsZXZlbCBib3ggb24gdGhlIGxpbmUgZS5nIDxkaXY+PGltZz48YnI+PC9kaXY+IG9y
IDxkaXY+PHNwYW4+PGltZz48L3NwYW4+PGJyPjwvZGl2PgotICAgICAgICAvLyAzLiB0aGVyZSdz
IGF0IGxlYXN0IG9uZSBpbmxpbmUgYm94IHdpdGggY29udGVudCBlLmcuIDxkaXY+PHNwYW4+Y29u
dGVudDwvc3Bhbj48YnI+PC9kaXY+Ci0gICAgICAgIGlmIChsaW5lQm94LnJvb3RJbmxpbmVCb3go
KS5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChs
aW5lQm94Lmhhc0F0b21pY0lubGluZUxldmVsQm94KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgZWl0aGVyIGhhdmUgb25seSB0aGUgPGJy
PiBvbiB0aGUgbGluZSBvciBpbmxpbmUgYm94ZXMgd2l0aCBvciB3aXRob3V0IGNvbnRlbnQuCi0g
ICAgICAgIGF1dG8mIGlubGluZUxldmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZl
bEJveGVzKCk7Ci0gICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5KCkpOwot
ICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3hlcy5zaXplKCkgPT0gMSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJveC5u
b25Sb290SW5saW5lTGV2ZWxCb3hlcygpKSB7Ci0gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGVt
cHR5IGlubGluZSBib3hlcyBlLmcuIDxkaXY+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48YnI+
PC9kaXY+Ci0gICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSAmJiBp
bmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoaW5saW5l
TGV2ZWxCb3guaXNJbmxpbmVCb3goKSkgewotICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKGUuZy4g
cm9vdCBpbmxpbmUgYm94IG9yIDxzcGFuPikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0aHJv
dWdoIHRoZSBzdHJ1dCBvciBhY3R1YWwgY29udGVudC4KLSAgICAgICAgYXV0byBpbmxpbmVCb3hI
YXNJbWFnaW5hcnlTdHJ1dCA9IGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCk7Ci0gICAg
ICAgIGlmIChpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkgfHwgaW5saW5lQm94SGFzSW1hZ2lu
YXJ5U3RydXQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGlubGluZUxl
dmVsQm94LmlzUm9vdElubGluZUJveCgpKSB7Ci0gICAgICAgICAgICBhdXRvIHNob3VsZFJvb3RJ
bmxpbmVCb3hXaXRoTm9Db250ZW50U3RyZXRjaExpbmVCb3ggPSBbJl0gewotICAgICAgICAgICAg
ICAgIGlmIChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKS5zdHlsZSgpLmxpbmVIZWlnaHQoKS5p
c05lZ2F0aXZlKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgICAgICAvLyBUaGUgcm9vdCBpbmxpbmUgYm94IHdpdGggbm9uLWluaXRpYWwgbGluZSBoZWln
aHQgdmFsdWUgc3RyZXRjaGVzIHRoZSBsaW5lIGJveCBldmVuIHdoZW4gcm9vdCBoYXMgbm8gY29u
dGVudAotICAgICAgICAgICAgICAgIC8vIGJ1dCB0aGVyZSdzIGF0IGxlYXN0IG9uZSBpbmxpbmUg
Ym94IHdpdGggY29udGVudC4KLSAgICAgICAgICAgICAgICAvLyBlLmcuIDxkaXYgc3R5bGU9Imxp
bmUtaGVpZ2h0OiAxMDBweDsiPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PC9kaXY+Ci0gICAgICAgICAg
ICAgICAgaWYgKCFsaW5lQm94Lmhhc0lubGluZUJveCgpKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVMZXZlbEJveCA6
IGxpbmVCb3gubm9uUm9vdElubGluZUxldmVsQm94ZXMoKSkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoIWlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlubGluZUxldmVsQm94Lmhh
c0NvbnRlbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9
OwotICAgICAgICAgICAgcmV0dXJuIHNob3VsZFJvb3RJbmxpbmVCb3hXaXRoTm9Db250ZW50U3Ry
ZXRjaExpbmVCb3goKTsKLSAgICAgICAgfQotICAgICAgICAvLyBOb24tcm9vdCBpbmxpbmUgYm94
ZXMgKGUuZy4gPHNwYW4+KS4KLSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5n
Q29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUxldmVsQm94LmxheW91dEJveCgpKTsKLSAg
ICAgICAgaWYgKGJveEdlb21ldHJ5Lmhvcml6b250YWxCb3JkZXIoKSB8fCBib3hHZW9tZXRyeS5o
b3Jpem9udGFsUGFkZGluZygpLnZhbHVlT3IoMF9sdSkpIHsKLSAgICAgICAgICAgIC8vIEhvcml6
b250YWwgYm9yZGVyIGFuZCBwYWRkaW5nIG1ha2UgdGhlIGlubGluZSBib3ggc3RyZXRjaCB0aGUg
bGluZSAoZS5nLiA8c3BhbiBzdHlsZT0icGFkZGluZzogMTBweDsiPjwvc3Bhbj4pLgotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLSAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKSB7Ci0g
ICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3VuZHMoKS5oZWlnaHQoKSkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAvLyBXaGlsZSBpbiBwcmFjdGljZSB3aGVuIHRo
ZSBuZWdhdGl2ZSB2ZXJ0aWNhbCBtYXJnaW4gbWFrZXMgdGhlIGxheW91dCBib3VuZHMgZW1wdHkg
KGUuZzogaGVpZ2h0OiAxMDBweDsgbWFyZ2luLXRvcDogLTEwMHB4OyksIGFuZCB0aGlzIGlubGlu
ZQotICAgICAgICAvLyBsZXZlbCBib3ggY29udHJpYnV0ZXMgMHB4IHRvIHRoZSBsaW5lIGJveCBo
ZWlnaHQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIHRha2VuIGludG8gYWNjb3VudCB3aGlsZSBjb21w
dXRpbmcgbGluZSBib3ggZ2VvbWV0cmllcy4KLSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUxldmVsQm94LmxheW91dEJv
eCgpKTsKLSAgICAgICAgcmV0dXJuIGJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgpIHx8IGJveEdl
b21ldHJ5Lm1hcmdpbkFmdGVyKCk7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9v
bCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpoYXNTb2Z0V3JhcE9wcG9ydHVuaXR5
QXRJbWFnZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFmb3JtYXR0aW5nQ29udGV4dCgpLnJvb3Qo
KS5pc1RhYmxlQ2VsbCgpOwotfQotCi19Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGlu
Z1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGU5MGM0MDFmM2M1
MDFjZTM2Mzc1NzE4MDRiMWRmNTM5NzY2ZGFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1
aXJrcy5jcHAKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIgorCisjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworSW5saW5lRm9y
bWF0dGluZ1F1aXJrczo6SW5saW5lRm9ybWF0dGluZ1F1aXJrcyhjb25zdCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCYgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQpCisgICAgOiBGb3JtYXR0aW5nQ29u
dGV4dDo6UXVpcmtzKGlubGluZUZvcm1hdHRpbmdDb250ZXh0KQoreworfQorCitJbmxpbmVMYXlv
dXRVbml0IElubGluZUZvcm1hdHRpbmdRdWlya3M6OmluaXRpYWxMaW5lSGVpZ2h0KCkgY29uc3QK
K3sKKyAgICAvLyBOZWdhdGl2ZSBsaW5lSGVpZ2h0IHZhbHVlIG1lYW5zIHRoZSBsaW5lLWhlaWdo
dCBpcyBub3Qgc2V0CisgICAgYXV0byYgcm9vdCA9IGZvcm1hdHRpbmdDb250ZXh0KCkucm9vdCgp
OworICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpIHx8ICFyb290LnN0eWxl
KCkubGluZUhlaWdodCgpLmlzTmVnYXRpdmUoKSkKKyAgICAgICAgcmV0dXJuIHJvb3Quc3R5bGUo
KS5jb21wdXRlZExpbmVIZWlnaHQoKTsKKyAgICByZXR1cm4gcm9vdC5zdHlsZSgpLmZvbnRNZXRy
aWNzKCkuZmxvYXRIZWlnaHQoKTsKK30KKworYm9vbCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjpp
bmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KGNvbnN0IExpbmVCb3g6OklubGluZUxldmVsQm94
JiBpbmxpbmVMZXZlbEJveCwgY29uc3QgTGluZUJveCYgbGluZUJveCkgY29uc3QKK3sKKyAgICBp
ZiAoaW5saW5lTGV2ZWxCb3guaXNMaW5lQnJlYWtCb3goKSkgeworICAgICAgICBpZiAobGF5b3V0
U3RhdGUoKS5pblN0YW5kYXJkc01vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAvLyBJbiBxdWlya3MgbW9kZSBsaW5lYnJlYWsgYm94ZXMgKDxicj4pIHN0b3AgYWZmZWN0
aW5nIHRoZSBsaW5lIGJveCB3aGVuIChhc3N1bWUgPGJyPiBpcyBuZXN0ZWQgZS5nLiA8c3BhbiBz
dHlsZT0iZm9udC1zaXplOiAxMDBweCI+PGJyPjwvc3Bhbj4pCisgICAgICAgIC8vIDEuIHRoZSBy
b290IGlubGluZSBib3ggaGFzIGNvbnRlbnQgPGRpdj5jb250ZW50PGJyPi9kaXY+CisgICAgICAg
IC8vIDIuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGF0b21pYyBpbmxpbmUgbGV2ZWwgYm94IG9uIHRo
ZSBsaW5lIGUuZyA8ZGl2PjxpbWc+PGJyPjwvZGl2PiBvciA8ZGl2PjxzcGFuPjxpbWc+PC9zcGFu
Pjxicj48L2Rpdj4KKyAgICAgICAgLy8gMy4gdGhlcmUncyBhdCBsZWFzdCBvbmUgaW5saW5lIGJv
eCB3aXRoIGNvbnRlbnQgZS5nLiA8ZGl2PjxzcGFuPmNvbnRlbnQ8L3NwYW4+PGJyPjwvZGl2Pgor
ICAgICAgICBpZiAobGluZUJveC5yb290SW5saW5lQm94KCkuaGFzQ29udGVudCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAobGluZUJveC5oYXNBdG9taWNJbmxpbmVM
ZXZlbEJveCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAvLyBBdCB0aGlz
IHBvaW50IHdlIGVpdGhlciBoYXZlIG9ubHkgdGhlIDxicj4gb24gdGhlIGxpbmUgb3IgaW5saW5l
IGJveGVzIHdpdGggb3Igd2l0aG91dCBjb250ZW50LgorICAgICAgICBhdXRvJiBpbmxpbmVMZXZl
bEJveGVzID0gbGluZUJveC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygpOworICAgICAgICBBU1NF
UlQoIWlubGluZUxldmVsQm94ZXMuaXNFbXB0eSgpKTsKKyAgICAgICAgaWYgKGlubGluZUxldmVs
Qm94ZXMuc2l6ZSgpID09IDEpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZm9y
IChhdXRvJiBpbmxpbmVMZXZlbEJveCA6IGxpbmVCb3gubm9uUm9vdElubGluZUxldmVsQm94ZXMo
KSkgeworICAgICAgICAgICAgLy8gRmlsdGVyIG91dCBlbXB0eSBpbmxpbmUgYm94ZXMgZS5nLiA8
ZGl2PjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PGJyPjwvZGl2PgorICAgICAgICAgICAgaWYg
KGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkgJiYgaW5saW5lTGV2ZWxCb3guaGFzQ29udGVu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgaWYgKGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkp
IHsKKyAgICAgICAgLy8gSW5saW5lIGJveGVzIChlLmcuIHJvb3QgaW5saW5lIGJveCBvciA8c3Bh
bj4pIGFmZmVjdHMgbGluZSBib3hlcyBlaXRoZXIgdGhyb3VnaCB0aGUgc3RydXQgb3IgYWN0dWFs
IGNvbnRlbnQuCisgICAgICAgIGF1dG8gaW5saW5lQm94SGFzSW1hZ2luYXJ5U3RydXQgPSBsYXlv
dXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpOworICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3gu
aGFzQ29udGVudCgpIHx8IGlubGluZUJveEhhc0ltYWdpbmFyeVN0cnV0KQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc1Jvb3RJbmxpbmVCb3go
KSkgeworICAgICAgICAgICAgYXV0byBzaG91bGRSb290SW5saW5lQm94V2l0aE5vQ29udGVudFN0
cmV0Y2hMaW5lQm94ID0gWyZdIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3gu
bGF5b3V0Qm94KCkuc3R5bGUoKS5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgLy8gVGhlIHJvb3QgaW5s
aW5lIGJveCB3aXRoIG5vbi1pbml0aWFsIGxpbmUgaGVpZ2h0IHZhbHVlIHN0cmV0Y2hlcyB0aGUg
bGluZSBib3ggZXZlbiB3aGVuIHJvb3QgaGFzIG5vIGNvbnRlbnQKKyAgICAgICAgICAgICAgICAv
LyBidXQgdGhlcmUncyBhdCBsZWFzdCBvbmUgaW5saW5lIGJveCB3aXRoIGNvbnRlbnQuCisgICAg
ICAgICAgICAgICAgLy8gZS5nLiA8ZGl2IHN0eWxlPSJsaW5lLWhlaWdodDogMTAwcHg7Ij48c3Bh
bj5jb250ZW50PC9zcGFuPjwvZGl2PgorICAgICAgICAgICAgICAgIGlmICghbGluZUJveC5oYXNJ
bmxpbmVCb3goKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVM
ZXZlbEJveGVzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmxpbmVMZXZlbEJveC5p
c0lubGluZUJveCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiBz
aG91bGRSb290SW5saW5lQm94V2l0aE5vQ29udGVudFN0cmV0Y2hMaW5lQm94KCk7CisgICAgICAg
IH0KKyAgICAgICAgLy8gTm9uLXJvb3QgaW5saW5lIGJveGVzIChlLmcuIDxzcGFuPikuCisgICAg
ICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJv
eChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7CisgICAgICAgIGlmIChib3hHZW9tZXRyeS5o
b3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKS52YWx1
ZU9yKDBfbHUpKSB7CisgICAgICAgICAgICAvLyBIb3Jpem9udGFsIGJvcmRlciBhbmQgcGFkZGlu
ZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUuZy4gPHNwYW4gc3R5bGU9
InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKGlubGluZUxldmVs
Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgeworICAgICAgICBpZiAoaW5saW5lTGV2ZWxC
b3gubGF5b3V0Qm91bmRzKCkuaGVpZ2h0KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgLy8gV2hpbGUgaW4gcHJhY3RpY2Ugd2hlbiB0aGUgbmVnYXRpdmUgdmVydGljYWwgbWFy
Z2luIG1ha2VzIHRoZSBsYXlvdXQgYm91bmRzIGVtcHR5IChlLmc6IGhlaWdodDogMTAwcHg7IG1h
cmdpbi10b3A6IC0xMDBweDspLCBhbmQgdGhpcyBpbmxpbmUKKyAgICAgICAgLy8gbGV2ZWwgYm94
IGNvbnRyaWJ1dGVzIDBweCB0byB0aGUgbGluZSBib3ggaGVpZ2h0LCBpdCBzdGlsbCBuZWVkcyB0
byBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hpbGUgY29tcHV0aW5nIGxpbmUgYm94IGdlb21ldHJp
ZXMuCisgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9t
ZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7CisgICAgICAgIHJldHVybiBi
b3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSB8fCBib3hHZW9tZXRyeS5tYXJnaW5BZnRlcigpOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSW5saW5lRm9ybWF0dGluZ1F1aXJr
czo6aGFzU29mdFdyYXBPcHBvcnR1bml0eUF0SW1hZ2UoKSBjb25zdAoreworICAgIHJldHVybiAh
Zm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCkuaXNUYWJsZUNlbGwoKTsKK30KKworfQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYmVmMTg2YWE4ZDU4NDQyODg2MTMzNWIwZTQyMDJjNTUzNmViZGY3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQor
CisjaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
bmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIElubGluZUZvcm1hdHRpbmdRdWlya3MgOiBwdWJs
aWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7CitwdWJsaWM6CisgICAgSW5saW5lTGF5b3V0
VW5pdCBpbml0aWFsTGluZUhlaWdodCgpIGNvbnN0OworICAgIGJvb2wgaGFzU29mdFdyYXBPcHBv
cnR1bml0eUF0SW1hZ2UoKSBjb25zdDsKKyAgICBib29sIGlubGluZUxldmVsQm94QWZmZWN0c0xp
bmVCb3goY29uc3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gmLCBjb25zdCBMaW5lQm94JikgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIElubGluZUZvcm1hdHRpbmdDb250ZXh0
OworICAgIElubGluZUZvcm1hdHRpbmdRdWlya3MoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQmKTsKKworICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdDb250ZXh0PihG
b3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQorCit9Owor
Cit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVu
dEJ1aWxkZXIuY3BwCmluZGV4IDdkMTc2YTc5YTViOWQyNzlmNzhkZjZjN2NmNGQyYTNiYWI0YmFl
ZjAuLmU0OTQ1OGRjMzdiMmI2OGZiYjE4ZmEwYWQ2ZTNhMjc0ZmE5YjRmOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkJpZGlSZXNvbHZlci5oIgogI2luY2x1ZGUgIklubGluZUZvcm1h
dHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIgogI2lu
Y2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkxheW91dEJveEdlb21l
dHJ5LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428736</attachid>
            <date>2021-05-15 11:34:29 -0700</date>
            <delta_ts>2021-05-15 11:52:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225759-20210515113428.patch</filename>
            <type>text/plain</type>
            <size>25819</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiMTc2MWNiM2RlOTQx
MGEzMDRlNTgwODA5MjJhODM0MTUxNjk1Ni4uYmM0ZDdjN2M5NzI5OTJkNThiMDhmNjg5ODdjZDVm
YjI1ZTk0MTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGlubGluZSBm
b3JtYXR0aW5nIHF1aXJrcyB0byBpdHMgb3duIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NTkKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpxdWlya3MgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpRdWlya3M6OlF1aXJrcyk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklu
bGluZUNvbnRlbnRCdWlsZGVyLmNwcDoKKwogMjAyMS0wNS0xNSAgQWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gTW92ZSB0YWJsZSB3cmFwcGVyIHF1aXJrcyB0
byBpdHMgb3duIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQ4YmZmZTg4M2NjNDZjMzZiYzFkNzg4
MjNlYjU0ZDhkNDI2MWNjYzYuLmU1Y2I3ODA2YTlkNjdjOTNlOTkyMjNkZjNhZjhhOTQzMGZkMDEx
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTM1LDcgKzE1MzUsNyBAQCBsYXlvdXQvZmxvYXRzL0Zs
b2F0aW5nU3RhdGUuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVD
b250ZW50QnJlYWtlci5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKLWxheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwCiBsYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjNjZhMjQ4ZDQwNDYw
NDdhMmU0OTAzNmFkZjBlOWNkZjRjZDc2YTcuLjY3ODRhZTdkZTY2Y2RkMTVkYjhmODVjZjYyMmM2
MmQwZTY0YWE3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIxNjMsNiArMjE2Myw3IEBACiAJCTZGQ0UxQTFBMjI2MThBQkQw
MDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQzIC8qIExheW91
dEludGVncmF0aW9uUnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNkZEMDk1NDMyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZEMDk1
NDEyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVjdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNkZFNjM2RTgyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWly
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTYz
NkU3MjY0Nzk2MjkwMEYwOTUxRSAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFN0NGQTIyMTc3RUVG
MjAwNUIxNTczIC8qIElubGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmgg
Ki87IH07CiAJCTZGRkE0QzAxMjNGMkZFRDkwMDdFNEVCQyAvKiBMYXlvdXRMaW5lQnJlYWtCb3gu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRkE0QzAw
MjNGMkZFRDkwMDdFNEVCQyAvKiBMYXlvdXRMaW5lQnJlYWtCb3guaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkZEQzQ0MjIxMkVGRjE3MDBBOUNB
OTEgLyogRmxvYXRBdm9pZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RkZEQzQ0MDIxMkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5NDYsNyAr
OTk0Nyw3IEBACiAJCTZGMEI5OEI2MjNGMjY5MDYwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVUZXh0
Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dElubGluZVRleHRCb3guY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjBDRDY5MjIyOUVEMzE5MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVMaW5lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxp
bmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2OUMgLyogSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2OUMgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYxNTUyMjAyNjQ3NkI1QjAwRTM1M0M2IC8qIFRhYmxlV3Jh
cHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkYxNzI2NEMyNDcwQzVGNzAwNTE4Qzk2IC8qIFRhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGMTcyNjRFMjQ3MEM2MEEwMDUxOEM5NiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
MDI5LDYgKzEwMDMwLDcgQEAKIAkJNkZEMDk1NDEyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdl
b21ldHJ5UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRHZW9t
ZXRyeVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3
QjAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNvbnRl
bnRCcmVha2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGRTYzNkU3MjY0Nzk2
MjkwMEYwOTUxRSAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdpblR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hcmdpblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkZFOEU2RjcyMzdCQTVFODAwNzU4RDI2IC8qIEludmFsaWRhdGlvbkNvbnRleHQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODI1NCw3ICsxODI1Niw4IEBACiAJCQkJNkY3Q0EzQzky
MDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2
RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywK
IAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgKi8sCi0JCQkJNkYxMEIwODYyMkI4NTY4RDAwOTBFNjlDIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLywKKwkJCQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2
OUMgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAgKi8sCisJCQkJNkZFNjM2RTcyNjQ3OTYy
OTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCAqLywKIAkJCQkxMTVDRkE3RDIw
OEI4RTEwMDAxRTY5OTEgLyogSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKIAkJCQkxMTVD
RkE3QzIwOEI4RTEwMDAxRTY5OTEgLyogSW5saW5lRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJ
NkY3QjhDRUMyMzYyNkU2NjAwQzlGRjE1IC8qIElubGluZUl0ZW0uY3BwICovLApAQCAtMzI5MzUs
NiArMzI5MzgsNyBAQAogCQkJCUI1N0NCNTJFMTgyQTNFRkMwMDc5QTY0NyAvKiBJbmxpbmVFbGVt
ZW50Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFMzBBMTU1QTA1MDAwQTQyMzQgLyog
SW5saW5lRmxvd0JveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY3Q0EzQ0EyMDhDMkIyRTAwMkYy
OUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkU2
MzZFODI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTE1Q0ZBN0UyMDhCOEUxMDAwMUU2OTkxIC8qIElubGluZUZvcm1hdHRpbmdT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZFN0NGQTIyMTc3RUVGMjAwNUIxNTczIC8qIElu
bGluZUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAv
KiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYTUxZWFmZmNkYTNlZWNjNDNlMjE1
ZDFkOTY0NjEwNmMwY2M1YTk3Mi4uYzEyODI3N2UyODg2Nzg0NzZkNTQ4NTU3MjU1YjcwZDc1Mzdk
YzNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nUXVpcmtz
LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5l
TGluZUJveC5oIgogI2luY2x1ZGUgIklubGluZUxpbmVSdW4uaCIKQEAgLTYwNSw2ICs2MDYsMTIg
QEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6aW52YWxpZGF0ZUZvcm1hdHRpbmdTdGF0
ZShjb25zdCBJbnZhbGlkYXRpb25TdGF0ZSYKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIHdo
ZXJlIHdlIHdvdWxkIGRlbGV0ZSBpbmxpbmUgaXRlbXMgaWYgdGhlaXIgY29udGVudCBjaGFuZ2Vk
LgogfQogCitJbmxpbmVGb3JtYXR0aW5nUXVpcmtzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpx
dWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzKCp0aGlz
KTsKKworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IGFkN2VjOTcyMzdjMWU4OGQ3ODg2MDI2N2ExODA3ZTIwNDhhZjQzMmUu
LjE2ZTJiNzkzMDg2NGFjNjEzMmE2OWNkYWU5Mzg1YmJmNmQ3Y2E5YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMzUsNiArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5lRm9y
bWF0dGluZ1N0YXRlOworY2xhc3MgSW5saW5lRm9ybWF0dGluZ1F1aXJrczsKIGNsYXNzIEludmFs
aWRhdGlvblN0YXRlOwogY2xhc3MgTGluZUJveDsKIApAQCAtNDcsMjAgKzQ4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgbGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0
IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCYpIG92ZXJyaWRlOwogICAgIExheW91dFVuaXQg
dXNlZENvbnRlbnRIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGNsYXNzIFF1aXJrcyA6
IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IElubGluZUxheW91dFVuaXQgaW5pdGlhbExpbmVIZWlnaHQoKSBjb25zdDsKLSAgICAgICAgYm9v
bCBoYXNTb2Z0V3JhcE9wcG9ydHVuaXR5QXRJbWFnZSgpIGNvbnN0OwotICAgICAgICBib29sIGlu
bGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gm
LCBjb25zdCBMaW5lQm94JikgY29uc3Q7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQg
Y2xhc3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgICAgIFF1aXJrcyhjb25zdCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCYpOwotCi0gICAgICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdD
b250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5n
Q29udGV4dCgpKTsgfQotCi0gICAgfTsKLSAgICBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVp
cmtzIHF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIFF1aXJrcygqdGhpcyk7IH0KKyAgICBJbmxpbmVG
b3JtYXR0aW5nUXVpcmtzIHF1aXJrcygpIGNvbnN0OwogCiAgICAgY29uc3QgSW5saW5lRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxp
bmVGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7
IH0KICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJu
IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1h
dHRpbmdTdGF0ZSgpKTsgfQpAQCAtMTA2LDExICs5NCw2IEBAIGlubGluZSBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0CiB7CiB9CiAKLWlubGluZSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpRdWly
a3MoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdDb250ZXh0
KQotICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyhpbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCkKLXsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA1MDc1MWViNDYyNzc1OGFjY2Q0NTI3ODIxODBiZTFhZTdkZGFkM2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKLQotI2lmIEVO
QUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiTGF5b3V0Qm94R2Vv
bWV0cnkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLUlu
bGluZUxheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aW5pdGlhbExp
bmVIZWlnaHQoKSBjb25zdAotewotICAgIC8vIE5lZ2F0aXZlIGxpbmVIZWlnaHQgdmFsdWUgbWVh
bnMgdGhlIGxpbmUtaGVpZ2h0IGlzIG5vdCBzZXQKLSAgICBhdXRvJiByb290ID0gZm9ybWF0dGlu
Z0NvbnRleHQoKS5yb290KCk7Ci0gICAgaWYgKGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2Rl
KCkgfHwgIXJvb3Quc3R5bGUoKS5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKQotICAgICAgICBy
ZXR1cm4gcm9vdC5zdHlsZSgpLmNvbXB1dGVkTGluZUhlaWdodCgpOwotICAgIHJldHVybiByb290
LnN0eWxlKCkuZm9udE1ldHJpY3MoKS5mbG9hdEhlaWdodCgpOwotfQotCi1ib29sIElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29u
c3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94LCBjb25zdCBMaW5lQm94
JiBsaW5lQm94KSBjb25zdAotewotICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0Jv
eCgpKSB7Ci0gICAgICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIC8vIEluIHF1aXJrcyBtb2RlIGxpbmVicmVh
ayBib3hlcyAoPGJyPikgc3RvcCBhZmZlY3RpbmcgdGhlIGxpbmUgYm94IHdoZW4gKGFzc3VtZSA8
YnI+IGlzIG5lc3RlZCBlLmcuIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwMHB4Ij48YnI+PC9z
cGFuPikKLSAgICAgICAgLy8gMS4gdGhlIHJvb3QgaW5saW5lIGJveCBoYXMgY29udGVudCA8ZGl2
PmNvbnRlbnQ8YnI+L2Rpdj4KLSAgICAgICAgLy8gMi4gdGhlcmUncyBhdCBsZWFzdCBvbmUgYXRv
bWljIGlubGluZSBsZXZlbCBib3ggb24gdGhlIGxpbmUgZS5nIDxkaXY+PGltZz48YnI+PC9kaXY+
IG9yIDxkaXY+PHNwYW4+PGltZz48L3NwYW4+PGJyPjwvZGl2PgotICAgICAgICAvLyAzLiB0aGVy
ZSdzIGF0IGxlYXN0IG9uZSBpbmxpbmUgYm94IHdpdGggY29udGVudCBlLmcuIDxkaXY+PHNwYW4+
Y29udGVudDwvc3Bhbj48YnI+PC9kaXY+Ci0gICAgICAgIGlmIChsaW5lQm94LnJvb3RJbmxpbmVC
b3goKS5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlm
IChsaW5lQm94Lmhhc0F0b21pY0lubGluZUxldmVsQm94KCkpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgZWl0aGVyIGhhdmUgb25seSB0aGUg
PGJyPiBvbiB0aGUgbGluZSBvciBpbmxpbmUgYm94ZXMgd2l0aCBvciB3aXRob3V0IGNvbnRlbnQu
Ci0gICAgICAgIGF1dG8mIGlubGluZUxldmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVM
ZXZlbEJveGVzKCk7Ci0gICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5KCkp
OwotICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3hlcy5zaXplKCkgPT0gMSkKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJv
eC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygpKSB7Ci0gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0
IGVtcHR5IGlubGluZSBib3hlcyBlLmcuIDxkaXY+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48
YnI+PC9kaXY+Ci0gICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSAm
JiBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoaW5s
aW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSkgewotICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKGUu
Zy4gcm9vdCBpbmxpbmUgYm94IG9yIDxzcGFuPikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0
aHJvdWdoIHRoZSBzdHJ1dCBvciBhY3R1YWwgY29udGVudC4KLSAgICAgICAgYXV0byBpbmxpbmVC
b3hIYXNJbWFnaW5hcnlTdHJ1dCA9IGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCk7Ci0g
ICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkgfHwgaW5saW5lQm94SGFzSW1h
Z2luYXJ5U3RydXQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzUm9vdElubGluZUJveCgpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIHJvb3Qg
aW5saW5lIGJveCBoYXMgbm8gZGlyZWN0IHRleHQgY29udGVudCBhbmQgd2UgYXJlIGluIG5vbi1z
dGFuZGFyZHMgbW9kZS4KLSAgICAgICAgICAgIC8vIE5vdyBhY2NvcmRpbmcgdG8gbGVnYWN5IGxp
bmUgbGF5b3V0LCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBmb2xsb3dpbmcgbGlzdC1pdGVtIHNwZWNp
ZmljIHF1aXJrOgotICAgICAgICAgICAgLy8gV2UgZG8gbm90IGNyZWF0ZSBtYXJrZXJzIGZvciBs
aXN0IGl0ZW1zIHdoZW4gdGhlIGxpc3Qtc3R5bGUtdHlwZSBpcyBub25lLCB3aGlsZSBvdGhlciBi
cm93c2VycyBkby4KLSAgICAgICAgICAgIC8vIFRoZSBzaWRlIGVmZmVjdCBvZiBoYXZpbmcgbm8g
bWFya2VyIGlzIHRoYXQgaW4gcXVpcmtzIG1vZGUgd2UgaGF2ZSB0byBzcGVjaWZpY2FsbHkgY2hl
Y2sgZm9yIGxpc3QtaXRlbQotICAgICAgICAgICAgLy8gYW5kIG1ha2Ugc3VyZSBpdCBpcyB0cmVh
dGVkIGFzIGlmIGl0IGhhZCBjb250ZW50IGFuZCBzdHJldGNoZWQgdGhlIGxpbmUuCi0gICAgICAg
ICAgICAvLyBzZWUgSW5saW5lRmxvd0JveCBjJ3Rvci4KLSAgICAgICAgICAgIHJldHVybiBpbmxp
bmVMZXZlbEJveC5sYXlvdXRCb3goKS5zdHlsZSgpLmlzT3JpZ2luYWxEaXNwbGF5TGlzdEl0ZW1U
eXBlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gTm9uLXJvb3QgaW5saW5lIGJveGVzIChlLmcu
IDxzcGFuPikuCi0gICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQo
KS5nZW9tZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7Ci0gICAgICAgIGlm
IChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnkuaG9yaXpvbnRh
bFBhZGRpbmcoKS52YWx1ZU9yKDBfbHUpKSB7Ci0gICAgICAgICAgICAvLyBIb3Jpem9udGFsIGJv
cmRlciBhbmQgcGFkZGluZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUu
Zy4gPHNwYW4gc3R5bGU9InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
aWYgKGlubGluZUxldmVsQm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgewotICAgICAgICBp
ZiAoaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm91bmRzKCkuaGVpZ2h0KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgLy8gV2hpbGUgaW4gcHJhY3RpY2Ugd2hlbiB0aGUgbmVnYXRp
dmUgdmVydGljYWwgbWFyZ2luIG1ha2VzIHRoZSBsYXlvdXQgYm91bmRzIGVtcHR5IChlLmc6IGhl
aWdodDogMTAwcHg7IG1hcmdpbi10b3A6IC0xMDBweDspLCBhbmQgdGhpcyBpbmxpbmUKLSAgICAg
ICAgLy8gbGV2ZWwgYm94IGNvbnRyaWJ1dGVzIDBweCB0byB0aGUgbGluZSBib3ggaGVpZ2h0LCBp
dCBzdGlsbCBuZWVkcyB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hpbGUgY29tcHV0aW5nIGxp
bmUgYm94IGdlb21ldHJpZXMuCi0gICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGlu
Z0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7Ci0g
ICAgICAgIHJldHVybiBib3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSB8fCBib3hHZW9tZXRyeS5t
YXJnaW5BZnRlcigpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGFzU29mdFdyYXBPcHBvcnR1bml0eUF0SW1hZ2Uo
KSBjb25zdAotewotICAgIHJldHVybiAhZm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCkuaXNUYWJs
ZUNlbGwoKTsKLX0KLQotfQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFhMjNjYmI3MjJhYTFhOTU3ODQ4
YjNjMDhmY2IxNGJmYTFiYjQwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuY3Bw
CkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIklubGluZUZvcm1hdHRpbmdRdWlya3MuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK0lubGluZUxheW91dFVuaXQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aW5pdGlhbExpbmVIZWlnaHQoKSBjb25z
dAoreworICAgIC8vIE5lZ2F0aXZlIGxpbmVIZWlnaHQgdmFsdWUgbWVhbnMgdGhlIGxpbmUtaGVp
Z2h0IGlzIG5vdCBzZXQKKyAgICBhdXRvJiByb290ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5yb290
KCk7CisgICAgaWYgKGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCkgfHwgIXJvb3Quc3R5
bGUoKS5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKQorICAgICAgICByZXR1cm4gcm9vdC5zdHls
ZSgpLmNvbXB1dGVkTGluZUhlaWdodCgpOworICAgIHJldHVybiByb290LnN0eWxlKCkuZm9udE1l
dHJpY3MoKS5mbG9hdEhlaWdodCgpOworfQorCitib29sIElubGluZUZvcm1hdHRpbmdDb250ZXh0
OjpRdWlya3M6OmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3QgTGluZUJveDo6SW5s
aW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94LCBjb25zdCBMaW5lQm94JiBsaW5lQm94KSBjb25z
dAoreworICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgpKSB7CisgICAgICAg
IGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIC8vIEluIHF1aXJrcyBtb2RlIGxpbmVicmVhayBib3hlcyAoPGJyPikg
c3RvcCBhZmZlY3RpbmcgdGhlIGxpbmUgYm94IHdoZW4gKGFzc3VtZSA8YnI+IGlzIG5lc3RlZCBl
LmcuIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwMHB4Ij48YnI+PC9zcGFuPikKKyAgICAgICAg
Ly8gMS4gdGhlIHJvb3QgaW5saW5lIGJveCBoYXMgY29udGVudCA8ZGl2PmNvbnRlbnQ8YnI+L2Rp
dj4KKyAgICAgICAgLy8gMi4gdGhlcmUncyBhdCBsZWFzdCBvbmUgYXRvbWljIGlubGluZSBsZXZl
bCBib3ggb24gdGhlIGxpbmUgZS5nIDxkaXY+PGltZz48YnI+PC9kaXY+IG9yIDxkaXY+PHNwYW4+
PGltZz48L3NwYW4+PGJyPjwvZGl2PgorICAgICAgICAvLyAzLiB0aGVyZSdzIGF0IGxlYXN0IG9u
ZSBpbmxpbmUgYm94IHdpdGggY29udGVudCBlLmcuIDxkaXY+PHNwYW4+Y29udGVudDwvc3Bhbj48
YnI+PC9kaXY+CisgICAgICAgIGlmIChsaW5lQm94LnJvb3RJbmxpbmVCb3goKS5oYXNDb250ZW50
KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChsaW5lQm94Lmhhc0F0
b21pY0lubGluZUxldmVsQm94KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IC8vIEF0IHRoaXMgcG9pbnQgd2UgZWl0aGVyIGhhdmUgb25seSB0aGUgPGJyPiBvbiB0aGUgbGlu
ZSBvciBpbmxpbmUgYm94ZXMgd2l0aCBvciB3aXRob3V0IGNvbnRlbnQuCisgICAgICAgIGF1dG8m
IGlubGluZUxldmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCk7Cisg
ICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5KCkpOworICAgICAgICBpZiAo
aW5saW5lTGV2ZWxCb3hlcy5zaXplKCkgPT0gMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJveC5ub25Sb290SW5saW5l
TGV2ZWxCb3hlcygpKSB7CisgICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGVtcHR5IGlubGluZSBi
b3hlcyBlLmcuIDxkaXY+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48YnI+PC9kaXY+CisgICAg
ICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSAmJiBpbmxpbmVMZXZlbEJv
eC5oYXNDb250ZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJ
bmxpbmVCb3goKSkgeworICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKGUuZy4gcm9vdCBpbmxpbmUg
Ym94IG9yIDxzcGFuPikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0aHJvdWdoIHRoZSBzdHJ1
dCBvciBhY3R1YWwgY29udGVudC4KKyAgICAgICAgYXV0byBpbmxpbmVCb3hIYXNJbWFnaW5hcnlT
dHJ1dCA9IGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCk7CisgICAgICAgIGlmIChpbmxp
bmVMZXZlbEJveC5oYXNDb250ZW50KCkgfHwgaW5saW5lQm94SGFzSW1hZ2luYXJ5U3RydXQpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGlubGluZUxldmVsQm94LmlzUm9v
dElubGluZUJveCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIHJvb3QgaW5saW5lIGJveCBoYXMg
bm8gZGlyZWN0IHRleHQgY29udGVudCBhbmQgd2UgYXJlIGluIG5vbi1zdGFuZGFyZHMgbW9kZS4K
KyAgICAgICAgICAgIC8vIE5vdyBhY2NvcmRpbmcgdG8gbGVnYWN5IGxpbmUgbGF5b3V0LCB3ZSBu
ZWVkIHRvIGFwcGx5IHRoZSBmb2xsb3dpbmcgbGlzdC1pdGVtIHNwZWNpZmljIHF1aXJrOgorICAg
ICAgICAgICAgLy8gV2UgZG8gbm90IGNyZWF0ZSBtYXJrZXJzIGZvciBsaXN0IGl0ZW1zIHdoZW4g
dGhlIGxpc3Qtc3R5bGUtdHlwZSBpcyBub25lLCB3aGlsZSBvdGhlciBicm93c2VycyBkby4KKyAg
ICAgICAgICAgIC8vIFRoZSBzaWRlIGVmZmVjdCBvZiBoYXZpbmcgbm8gbWFya2VyIGlzIHRoYXQg
aW4gcXVpcmtzIG1vZGUgd2UgaGF2ZSB0byBzcGVjaWZpY2FsbHkgY2hlY2sgZm9yIGxpc3QtaXRl
bQorICAgICAgICAgICAgLy8gYW5kIG1ha2Ugc3VyZSBpdCBpcyB0cmVhdGVkIGFzIGlmIGl0IGhh
ZCBjb250ZW50IGFuZCBzdHJldGNoZWQgdGhlIGxpbmUuCisgICAgICAgICAgICAvLyBzZWUgSW5s
aW5lRmxvd0JveCBjJ3Rvci4KKyAgICAgICAgICAgIHJldHVybiBpbmxpbmVMZXZlbEJveC5sYXlv
dXRCb3goKS5zdHlsZSgpLmlzT3JpZ2luYWxEaXNwbGF5TGlzdEl0ZW1UeXBlKCk7CisgICAgICAg
IH0KKyAgICAgICAgLy8gTm9uLXJvb3QgaW5saW5lIGJveGVzIChlLmcuIDxzcGFuPikuCisgICAg
ICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJv
eChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7CisgICAgICAgIGlmIChib3hHZW9tZXRyeS5o
b3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnkuaG9yaXpvbnRhbFBhZGRpbmcoKS52YWx1
ZU9yKDBfbHUpKSB7CisgICAgICAgICAgICAvLyBIb3Jpem9udGFsIGJvcmRlciBhbmQgcGFkZGlu
ZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUuZy4gPHNwYW4gc3R5bGU9
InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKGlubGluZUxldmVs
Qm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgeworICAgICAgICBpZiAoaW5saW5lTGV2ZWxC
b3gubGF5b3V0Qm91bmRzKCkuaGVpZ2h0KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgLy8gV2hpbGUgaW4gcHJhY3RpY2Ugd2hlbiB0aGUgbmVnYXRpdmUgdmVydGljYWwgbWFy
Z2luIG1ha2VzIHRoZSBsYXlvdXQgYm91bmRzIGVtcHR5IChlLmc6IGhlaWdodDogMTAwcHg7IG1h
cmdpbi10b3A6IC0xMDBweDspLCBhbmQgdGhpcyBpbmxpbmUKKyAgICAgICAgLy8gbGV2ZWwgYm94
IGNvbnRyaWJ1dGVzIDBweCB0byB0aGUgbGluZSBib3ggaGVpZ2h0LCBpdCBzdGlsbCBuZWVkcyB0
byBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hpbGUgY29tcHV0aW5nIGxpbmUgYm94IGdlb21ldHJp
ZXMuCisgICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9t
ZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7CisgICAgICAgIHJldHVybiBi
b3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSB8fCBib3hHZW9tZXRyeS5tYXJnaW5BZnRlcigpOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OlF1aXJrczo6aGFzU29mdFdyYXBPcHBvcnR1bml0eUF0SW1hZ2UoKSBjb25zdAoreworICAg
IHJldHVybiAhZm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCkuaXNUYWJsZUNlbGwoKTsKK30KKwor
fQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWly
a3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lYmVmMTg2YWE4ZDU4NDQyODg2MTMzNWIwZTQyMDJjNTUzNmViZGY3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQorCisjaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIElubGluZUZvcm1hdHRpbmdRdWly
a3MgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7CitwdWJsaWM6CisgICAgSW5s
aW5lTGF5b3V0VW5pdCBpbml0aWFsTGluZUhlaWdodCgpIGNvbnN0OworICAgIGJvb2wgaGFzU29m
dFdyYXBPcHBvcnR1bml0eUF0SW1hZ2UoKSBjb25zdDsKKyAgICBib29sIGlubGluZUxldmVsQm94
QWZmZWN0c0xpbmVCb3goY29uc3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gmLCBjb25zdCBMaW5l
Qm94JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIElubGluZUZvcm1hdHRp
bmdDb250ZXh0OworICAgIElubGluZUZvcm1hdHRpbmdRdWlya3MoY29uc3QgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQmKTsKKworICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3Jt
YXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdD
b250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCgpKTsg
fQorCit9OworCit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5s
aW5lQ29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDdkMTc2YTc5YTViOWQyNzlmNzhkZjZjN2NmNGQy
YTNiYWI0YmFlZjAuLmU0OTQ1OGRjMzdiMmI2OGZiYjE4ZmEwYWQ2ZTNhMjc0ZmE5YjRmOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkJpZGlSZXNvbHZlci5oIgogI2luY2x1ZGUgIklu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1F1aXJr
cy5oIgogI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkxheW91
dEJveEdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmgiCg==
</data>
<flag name="commit-queue"
          id="449751"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428737</attachid>
            <date>2021-05-15 11:43:10 -0700</date>
            <delta_ts>2021-05-15 12:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225759-20210515114310.patch</filename>
            <type>text/plain</type>
            <size>25962</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiMTc2MWNiM2RlOTQx
MGEzMDRlNTgwODA5MjJhODM0MTUxNjk1Ni4uYmM0ZDdjN2M5NzI5OTJkNThiMDhmNjg5ODdjZDVm
YjI1ZTk0MTIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGlubGluZSBm
b3JtYXR0aW5nIHF1aXJrcyB0byBpdHMgb3duIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NTkKKworICAgICAgICBSZXZpZXdlZCBieSBB
bnR0aSBLb2l2aXN0by4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpxdWlya3MgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdD
b250ZXh0OjpRdWlya3M6OlF1aXJrcyk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklu
bGluZUNvbnRlbnRCdWlsZGVyLmNwcDoKKwogMjAyMS0wNS0xNSAgQWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gTW92ZSB0YWJsZSB3cmFwcGVyIHF1aXJrcyB0
byBpdHMgb3duIGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQ4YmZmZTg4M2NjNDZjMzZiYzFkNzg4
MjNlYjU0ZDhkNDI2MWNjYzYuLmU1Y2I3ODA2YTlkNjdjOTNlOTkyMjNkZjNhZjhhOTQzMGZkMDEx
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNTM1LDcgKzE1MzUsNyBAQCBsYXlvdXQvZmxvYXRzL0Zs
b2F0aW5nU3RhdGUuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVD
b250ZW50QnJlYWtlci5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKLWxheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5jcHAKIGxh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwCiBsYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNjNjZhMjQ4ZDQwNDYw
NDdhMmU0OTAzNmFkZjBlOWNkZjRjZDc2YTcuLjY3ODRhZTdkZTY2Y2RkMTVkYjhmODVjZjYyMmM2
MmQwZTY0YWE3NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIxNjMsNiArMjE2Myw3IEBACiAJCTZGQ0UxQTFBMjI2MThBQkQw
MDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQzIC8qIExheW91
dEludGVncmF0aW9uUnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNkZEMDk1NDMyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVj
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZEMDk1
NDEyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdlb21ldHJ5UmVjdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0
NkYwOCAvKiBJbmxpbmVDb250ZW50QnJlYWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNv
bnRlbnRCcmVha2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNkZFNjM2RTgyNjQ3OTYyOTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWly
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTYz
NkU3MjY0Nzk2MjkwMEYwOTUxRSAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZFN0NGQTIyMTc3RUVG
MjAwNUIxNTczIC8qIElubGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmgg
Ki87IH07CiAJCTZGRkE0QzAxMjNGMkZFRDkwMDdFNEVCQyAvKiBMYXlvdXRMaW5lQnJlYWtCb3gu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRkE0QzAw
MjNGMkZFRDkwMDdFNEVCQyAvKiBMYXlvdXRMaW5lQnJlYWtCb3guaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkZEQzQ0MjIxMkVGRjE3MDBBOUNB
OTEgLyogRmxvYXRBdm9pZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RkZEQzQ0MDIxMkVGRjE2MDBBOUNBOTEgLyogRmxvYXRBdm9pZGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5NDYsNyAr
OTk0Nyw3IEBACiAJCTZGMEI5OEI2MjNGMjY5MDYwMEVFQzJGMiAvKiBMYXlvdXRJbmxpbmVUZXh0
Qm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dElubGluZVRleHRCb3guY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjBDRDY5MjIyOUVEMzE5MDBDNTk5NEUgLyogSW5s
aW5lTGluZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVMaW5lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYwQ0Q2OTQyMjlFRDMyNzAwQzU5OTRFIC8qIElubGluZUxp
bmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2OUMgLyogSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2OUMgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYxNTUyMjAyNjQ3NkI1QjAwRTM1M0M2IC8qIFRhYmxlV3Jh
cHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkYxNzI2NEMyNDcwQzVGNzAwNTE4Qzk2IC8qIFRhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZGMTcyNjRFMjQ3MEM2MEEwMDUxOEM5NiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
MDI5LDYgKzEwMDMwLDcgQEAKIAkJNkZEMDk1NDEyNTExMTUyMjAwOTg4NzdEIC8qIExheW91dEdl
b21ldHJ5UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRHZW9t
ZXRyeVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3
QjAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNvbnRl
bnRCcmVha2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGRTYzNkU3MjY0Nzk2
MjkwMEYwOTUxRSAvKiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdpblR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hcmdpblR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZGRTdDRkEwMjE3N0VFRjEwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkZFOEU2RjcyMzdCQTVFODAwNzU4RDI2IC8qIEludmFsaWRhdGlvbkNvbnRleHQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODI1NCw3ICsxODI1Niw4IEBACiAJCQkJNkY3Q0EzQzky
MDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2
RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywK
IAkJCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgKi8sCi0JCQkJNkYxMEIwODYyMkI4NTY4RDAwOTBFNjlDIC8qIElubGluZUZv
cm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLywKKwkJCQk2RjEwQjA4NjIyQjg1NjhEMDA5MEU2
OUMgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAgKi8sCisJCQkJNkZFNjM2RTcyNjQ3OTYy
OTAwRjA5NTFFIC8qIElubGluZUZvcm1hdHRpbmdRdWlya3MuaCAqLywKIAkJCQkxMTVDRkE3RDIw
OEI4RTEwMDAxRTY5OTEgLyogSW5saW5lRm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKIAkJCQkxMTVD
RkE3QzIwOEI4RTEwMDAxRTY5OTEgLyogSW5saW5lRm9ybWF0dGluZ1N0YXRlLmggKi8sCiAJCQkJ
NkY3QjhDRUMyMzYyNkU2NjAwQzlGRjE1IC8qIElubGluZUl0ZW0uY3BwICovLApAQCAtMzI5MzUs
NiArMzI5MzgsNyBAQAogCQkJCUI1N0NCNTJFMTgyQTNFRkMwMDc5QTY0NyAvKiBJbmxpbmVFbGVt
ZW50Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjVFMzBBMTU1QTA1MDAwQTQyMzQgLyog
SW5saW5lRmxvd0JveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkY3Q0EzQ0EyMDhDMkIyRTAwMkYy
OUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkU2
MzZFODI2NDc5NjI5MDBGMDk1MUUgLyogSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTE1Q0ZBN0UyMDhCOEUxMDAwMUU2OTkxIC8qIElubGluZUZvcm1hdHRpbmdT
dGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZFN0NGQTIyMTc3RUVGMjAwNUIxNTczIC8qIElu
bGluZUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTc4OTE2MTEyMEQ2MDgwMDYwRUNFNSAv
KiBJbmxpbmVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYTUxZWFmZmNkYTNlZWNjNDNlMjE1
ZDFkOTY0NjEwNmMwY2M1YTk3Mi4uYzEyODI3N2UyODg2Nzg0NzZkNTQ4NTU3MjU1YjcwZDc1Mzdk
YzNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKyNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nUXVpcmtz
LmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5l
TGluZUJveC5oIgogI2luY2x1ZGUgIklubGluZUxpbmVSdW4uaCIKQEAgLTYwNSw2ICs2MDYsMTIg
QEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6aW52YWxpZGF0ZUZvcm1hdHRpbmdTdGF0
ZShjb25zdCBJbnZhbGlkYXRpb25TdGF0ZSYKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIHdo
ZXJlIHdlIHdvdWxkIGRlbGV0ZSBpbmxpbmUgaXRlbXMgaWYgdGhlaXIgY29udGVudCBjaGFuZ2Vk
LgogfQogCitJbmxpbmVGb3JtYXR0aW5nUXVpcmtzIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpx
dWlya3MoKSBjb25zdAoreworICAgIHJldHVybiBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzKCp0aGlz
KTsKKworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IGFkN2VjOTcyMzdjMWU4OGQ3ODg2MDI2N2ExODA3ZTIwNDhhZjQzMmUu
LjE2ZTJiNzkzMDg2NGFjNjEzMmE2OWNkYWU5Mzg1YmJmNmQ3Y2E5YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMzUsNiArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5lRm9y
bWF0dGluZ1N0YXRlOworY2xhc3MgSW5saW5lRm9ybWF0dGluZ1F1aXJrczsKIGNsYXNzIEludmFs
aWRhdGlvblN0YXRlOwogY2xhc3MgTGluZUJveDsKIApAQCAtNDcsMjAgKzQ4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgbGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0
IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCYpIG92ZXJyaWRlOwogICAgIExheW91dFVuaXQg
dXNlZENvbnRlbnRIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGNsYXNzIFF1aXJrcyA6
IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IElubGluZUxheW91dFVuaXQgaW5pdGlhbExpbmVIZWlnaHQoKSBjb25zdDsKLSAgICAgICAgYm9v
bCBoYXNTb2Z0V3JhcE9wcG9ydHVuaXR5QXRJbWFnZSgpIGNvbnN0OwotICAgICAgICBib29sIGlu
bGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gm
LCBjb25zdCBMaW5lQm94JikgY29uc3Q7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBmcmllbmQg
Y2xhc3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgICAgIFF1aXJrcyhjb25zdCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dCYpOwotCi0gICAgICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdD
b250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5n
Q29udGV4dCgpKTsgfQotCi0gICAgfTsKLSAgICBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVp
cmtzIHF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIFF1aXJrcygqdGhpcyk7IH0KKyAgICBJbmxpbmVG
b3JtYXR0aW5nUXVpcmtzIHF1aXJrcygpIGNvbnN0OwogCiAgICAgY29uc3QgSW5saW5lRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxp
bmVGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7
IH0KICAgICBJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJu
IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1h
dHRpbmdTdGF0ZSgpKTsgfQpAQCAtMTA2LDExICs5NCw2IEBAIGlubGluZSBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6Okdlb21ldHJ5KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0CiB7CiB9CiAKLWlubGluZSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpRdWly
a3MoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdDb250ZXh0
KQotICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyhpbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCkKLXsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA1MDc1MWViNDYyNzc1OGFjY2Q0NTI3ODIxODBiZTFhZTdkZGFkM2YuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTExICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKLQotI2lmIEVO
QUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiTGF5b3V0Qm94R2Vv
bWV0cnkuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLUlu
bGluZUxheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aW5pdGlhbExp
bmVIZWlnaHQoKSBjb25zdAotewotICAgIC8vIE5lZ2F0aXZlIGxpbmVIZWlnaHQgdmFsdWUgbWVh
bnMgdGhlIGxpbmUtaGVpZ2h0IGlzIG5vdCBzZXQKLSAgICBhdXRvJiByb290ID0gZm9ybWF0dGlu
Z0NvbnRleHQoKS5yb290KCk7Ci0gICAgaWYgKGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2Rl
KCkgfHwgIXJvb3Quc3R5bGUoKS5saW5lSGVpZ2h0KCkuaXNOZWdhdGl2ZSgpKQotICAgICAgICBy
ZXR1cm4gcm9vdC5zdHlsZSgpLmNvbXB1dGVkTGluZUhlaWdodCgpOwotICAgIHJldHVybiByb290
LnN0eWxlKCkuZm9udE1ldHJpY3MoKS5mbG9hdEhlaWdodCgpOwotfQotCi1ib29sIElubGluZUZv
cm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29u
c3QgTGluZUJveDo6SW5saW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94LCBjb25zdCBMaW5lQm94
JiBsaW5lQm94KSBjb25zdAotewotICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0Jv
eCgpKSB7Ci0gICAgICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIC8vIEluIHF1aXJrcyBtb2RlIGxpbmVicmVh
ayBib3hlcyAoPGJyPikgc3RvcCBhZmZlY3RpbmcgdGhlIGxpbmUgYm94IHdoZW4gKGFzc3VtZSA8
YnI+IGlzIG5lc3RlZCBlLmcuIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwMHB4Ij48YnI+PC9z
cGFuPikKLSAgICAgICAgLy8gMS4gdGhlIHJvb3QgaW5saW5lIGJveCBoYXMgY29udGVudCA8ZGl2
PmNvbnRlbnQ8YnI+L2Rpdj4KLSAgICAgICAgLy8gMi4gdGhlcmUncyBhdCBsZWFzdCBvbmUgYXRv
bWljIGlubGluZSBsZXZlbCBib3ggb24gdGhlIGxpbmUgZS5nIDxkaXY+PGltZz48YnI+PC9kaXY+
IG9yIDxkaXY+PHNwYW4+PGltZz48L3NwYW4+PGJyPjwvZGl2PgotICAgICAgICAvLyAzLiB0aGVy
ZSdzIGF0IGxlYXN0IG9uZSBpbmxpbmUgYm94IHdpdGggY29udGVudCBlLmcuIDxkaXY+PHNwYW4+
Y29udGVudDwvc3Bhbj48YnI+PC9kaXY+Ci0gICAgICAgIGlmIChsaW5lQm94LnJvb3RJbmxpbmVC
b3goKS5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlm
IChsaW5lQm94Lmhhc0F0b21pY0lubGluZUxldmVsQm94KCkpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgZWl0aGVyIGhhdmUgb25seSB0aGUg
PGJyPiBvbiB0aGUgbGluZSBvciBpbmxpbmUgYm94ZXMgd2l0aCBvciB3aXRob3V0IGNvbnRlbnQu
Ci0gICAgICAgIGF1dG8mIGlubGluZUxldmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVM
ZXZlbEJveGVzKCk7Ci0gICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5KCkp
OwotICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3hlcy5zaXplKCkgPT0gMSkKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJv
eC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygpKSB7Ci0gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0
IGVtcHR5IGlubGluZSBib3hlcyBlLmcuIDxkaXY+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48
YnI+PC9kaXY+Ci0gICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSAm
JiBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoaW5s
aW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSkgewotICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKGUu
Zy4gcm9vdCBpbmxpbmUgYm94IG9yIDxzcGFuPikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0
aHJvdWdoIHRoZSBzdHJ1dCBvciBhY3R1YWwgY29udGVudC4KLSAgICAgICAgYXV0byBpbmxpbmVC
b3hIYXNJbWFnaW5hcnlTdHJ1dCA9IGxheW91dFN0YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCk7Ci0g
ICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkgfHwgaW5saW5lQm94SGFzSW1h
Z2luYXJ5U3RydXQpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzUm9vdElubGluZUJveCgpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIHJvb3Qg
aW5saW5lIGJveCBoYXMgbm8gZGlyZWN0IHRleHQgY29udGVudCBhbmQgd2UgYXJlIGluIG5vbi1z
dGFuZGFyZHMgbW9kZS4KLSAgICAgICAgICAgIC8vIE5vdyBhY2NvcmRpbmcgdG8gbGVnYWN5IGxp
bmUgbGF5b3V0LCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBmb2xsb3dpbmcgbGlzdC1pdGVtIHNwZWNp
ZmljIHF1aXJrOgotICAgICAgICAgICAgLy8gV2UgZG8gbm90IGNyZWF0ZSBtYXJrZXJzIGZvciBs
aXN0IGl0ZW1zIHdoZW4gdGhlIGxpc3Qtc3R5bGUtdHlwZSBpcyBub25lLCB3aGlsZSBvdGhlciBi
cm93c2VycyBkby4KLSAgICAgICAgICAgIC8vIFRoZSBzaWRlIGVmZmVjdCBvZiBoYXZpbmcgbm8g
bWFya2VyIGlzIHRoYXQgaW4gcXVpcmtzIG1vZGUgd2UgaGF2ZSB0byBzcGVjaWZpY2FsbHkgY2hl
Y2sgZm9yIGxpc3QtaXRlbQotICAgICAgICAgICAgLy8gYW5kIG1ha2Ugc3VyZSBpdCBpcyB0cmVh
dGVkIGFzIGlmIGl0IGhhZCBjb250ZW50IGFuZCBzdHJldGNoZWQgdGhlIGxpbmUuCi0gICAgICAg
ICAgICAvLyBzZWUgSW5saW5lRmxvd0JveCBjJ3Rvci4KLSAgICAgICAgICAgIHJldHVybiBpbmxp
bmVMZXZlbEJveC5sYXlvdXRCb3goKS5zdHlsZSgpLmlzT3JpZ2luYWxEaXNwbGF5TGlzdEl0ZW1U
eXBlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gTm9uLXJvb3QgaW5saW5lIGJveGVzIChlLmcu
IDxzcGFuPikuCi0gICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQo
KS5nZW9tZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7Ci0gICAgICAgIGlm
IChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnkuaG9yaXpvbnRh
bFBhZGRpbmcoKS52YWx1ZU9yKDBfbHUpKSB7Ci0gICAgICAgICAgICAvLyBIb3Jpem9udGFsIGJv
cmRlciBhbmQgcGFkZGluZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUu
Zy4gPHNwYW4gc3R5bGU9InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
aWYgKGlubGluZUxldmVsQm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgewotICAgICAgICBp
ZiAoaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm91bmRzKCkuaGVpZ2h0KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgLy8gV2hpbGUgaW4gcHJhY3RpY2Ugd2hlbiB0aGUgbmVnYXRp
dmUgdmVydGljYWwgbWFyZ2luIG1ha2VzIHRoZSBsYXlvdXQgYm91bmRzIGVtcHR5IChlLmc6IGhl
aWdodDogMTAwcHg7IG1hcmdpbi10b3A6IC0xMDBweDspLCBhbmQgdGhpcyBpbmxpbmUKLSAgICAg
ICAgLy8gbGV2ZWwgYm94IGNvbnRyaWJ1dGVzIDBweCB0byB0aGUgbGluZSBib3ggaGVpZ2h0LCBp
dCBzdGlsbCBuZWVkcyB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hpbGUgY29tcHV0aW5nIGxp
bmUgYm94IGdlb21ldHJpZXMuCi0gICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGlu
Z0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7Ci0g
ICAgICAgIHJldHVybiBib3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSB8fCBib3hHZW9tZXRyeS5t
YXJnaW5BZnRlcigpOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGFzU29mdFdyYXBPcHBvcnR1bml0eUF0SW1hZ2Uo
KSBjb25zdAotewotICAgIHJldHVybiAhZm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCkuaXNUYWJs
ZUNlbGwoKTsKLX0KLQotfQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdjYmE2YzM2MWFhNGU1NzIwYTEx
YmQ2OWZlOTY4ZWEzZGM3Mjc2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuY3Bw
CkBAIC0wLDAgKzEsMTE2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIklubGluZUZvcm1hdHRpbmdRdWlya3MuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK0lubGluZUZvcm1hdHRpbmdR
dWlya3M6OklubGluZUZvcm1hdHRpbmdRdWlya3MoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQmIGlubGluZUZvcm1hdHRpbmdDb250ZXh0KQorICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6OlF1
aXJrcyhpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCkKK3sKK30KKworSW5saW5lTGF5b3V0VW5pdCBJ
bmxpbmVGb3JtYXR0aW5nUXVpcmtzOjppbml0aWFsTGluZUhlaWdodCgpIGNvbnN0Cit7CisgICAg
Ly8gTmVnYXRpdmUgbGluZUhlaWdodCB2YWx1ZSBtZWFucyB0aGUgbGluZS1oZWlnaHQgaXMgbm90
IHNldAorICAgIGF1dG8mIHJvb3QgPSBmb3JtYXR0aW5nQ29udGV4dCgpLnJvb3QoKTsKKyAgICBp
ZiAobGF5b3V0U3RhdGUoKS5pblN0YW5kYXJkc01vZGUoKSB8fCAhcm9vdC5zdHlsZSgpLmxpbmVI
ZWlnaHQoKS5pc05lZ2F0aXZlKCkpCisgICAgICAgIHJldHVybiByb290LnN0eWxlKCkuY29tcHV0
ZWRMaW5lSGVpZ2h0KCk7CisgICAgcmV0dXJuIHJvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLmZs
b2F0SGVpZ2h0KCk7Cit9CisKK2Jvb2wgSW5saW5lRm9ybWF0dGluZ1F1aXJrczo6aW5saW5lTGV2
ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBMaW5lQm94OjpJbmxpbmVMZXZlbEJveCYgaW5saW5l
TGV2ZWxCb3gsIGNvbnN0IExpbmVCb3gmIGxpbmVCb3gpIGNvbnN0Cit7CisgICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzTGluZUJyZWFrQm94KCkpIHsKKyAgICAgICAgaWYgKGxheW91dFN0YXRlKCku
aW5TdGFuZGFyZHNNb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgLy8g
SW4gcXVpcmtzIG1vZGUgbGluZWJyZWFrIGJveGVzICg8YnI+KSBzdG9wIGFmZmVjdGluZyB0aGUg
bGluZSBib3ggd2hlbiAoYXNzdW1lIDxicj4gaXMgbmVzdGVkIGUuZy4gPHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTogMTAwcHgiPjxicj48L3NwYW4+KQorICAgICAgICAvLyAxLiB0aGUgcm9vdCBpbmxp
bmUgYm94IGhhcyBjb250ZW50IDxkaXY+Y29udGVudDxicj4vZGl2PgorICAgICAgICAvLyAyLiB0
aGVyZSdzIGF0IGxlYXN0IG9uZSBhdG9taWMgaW5saW5lIGxldmVsIGJveCBvbiB0aGUgbGluZSBl
LmcgPGRpdj48aW1nPjxicj48L2Rpdj4gb3IgPGRpdj48c3Bhbj48aW1nPjwvc3Bhbj48YnI+PC9k
aXY+CisgICAgICAgIC8vIDMuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGlubGluZSBib3ggd2l0aCBj
b250ZW50IGUuZy4gPGRpdj48c3Bhbj5jb250ZW50PC9zcGFuPjxicj48L2Rpdj4KKyAgICAgICAg
aWYgKGxpbmVCb3gucm9vdElubGluZUJveCgpLmhhc0NvbnRlbnQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGxpbmVCb3guaGFzQXRvbWljSW5saW5lTGV2ZWxCb3go
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCB3
ZSBlaXRoZXIgaGF2ZSBvbmx5IHRoZSA8YnI+IG9uIHRoZSBsaW5lIG9yIGlubGluZSBib3hlcyB3
aXRoIG9yIHdpdGhvdXQgY29udGVudC4KKyAgICAgICAgYXV0byYgaW5saW5lTGV2ZWxCb3hlcyA9
IGxpbmVCb3gubm9uUm9vdElubGluZUxldmVsQm94ZXMoKTsKKyAgICAgICAgQVNTRVJUKCFpbmxp
bmVMZXZlbEJveGVzLmlzRW1wdHkoKSk7CisgICAgICAgIGlmIChpbmxpbmVMZXZlbEJveGVzLnNp
emUoKSA9PSAxKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGZvciAoYXV0byYg
aW5saW5lTGV2ZWxCb3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCkpIHsKKyAg
ICAgICAgICAgIC8vIEZpbHRlciBvdXQgZW1wdHkgaW5saW5lIGJveGVzIGUuZy4gPGRpdj48c3Bh
bj48L3NwYW4+PHNwYW4+PC9zcGFuPjxicj48L2Rpdj4KKyAgICAgICAgICAgIGlmIChpbmxpbmVM
ZXZlbEJveC5pc0lubGluZUJveCgpICYmIGlubGluZUxldmVsQm94Lmhhc0NvbnRlbnQoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0lubGluZUJveCgpKSB7CisgICAg
ICAgIC8vIElubGluZSBib3hlcyAoZS5nLiByb290IGlubGluZSBib3ggb3IgPHNwYW4+KSBhZmZl
Y3RzIGxpbmUgYm94ZXMgZWl0aGVyIHRocm91Z2ggdGhlIHN0cnV0IG9yIGFjdHVhbCBjb250ZW50
LgorICAgICAgICBhdXRvIGlubGluZUJveEhhc0ltYWdpbmFyeVN0cnV0ID0gbGF5b3V0U3RhdGUo
KS5pblN0YW5kYXJkc01vZGUoKTsKKyAgICAgICAgaWYgKGlubGluZUxldmVsQm94Lmhhc0NvbnRl
bnQoKSB8fCBpbmxpbmVCb3hIYXNJbWFnaW5hcnlTdHJ1dCkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNSb290SW5saW5lQm94KCkpIHsKKyAg
ICAgICAgICAgIC8vIFRoaXMgcm9vdCBpbmxpbmUgYm94IGhhcyBubyBkaXJlY3QgdGV4dCBjb250
ZW50IGFuZCB3ZSBhcmUgaW4gbm9uLXN0YW5kYXJkcyBtb2RlLgorICAgICAgICAgICAgLy8gTm93
IGFjY29yZGluZyB0byBsZWdhY3kgbGluZSBsYXlvdXQsIHdlIG5lZWQgdG8gYXBwbHkgdGhlIGZv
bGxvd2luZyBsaXN0LWl0ZW0gc3BlY2lmaWMgcXVpcms6CisgICAgICAgICAgICAvLyBXZSBkbyBu
b3QgY3JlYXRlIG1hcmtlcnMgZm9yIGxpc3QgaXRlbXMgd2hlbiB0aGUgbGlzdC1zdHlsZS10eXBl
IGlzIG5vbmUsIHdoaWxlIG90aGVyIGJyb3dzZXJzIGRvLgorICAgICAgICAgICAgLy8gVGhlIHNp
ZGUgZWZmZWN0IG9mIGhhdmluZyBubyBtYXJrZXIgaXMgdGhhdCBpbiBxdWlya3MgbW9kZSB3ZSBo
YXZlIHRvIHNwZWNpZmljYWxseSBjaGVjayBmb3IgbGlzdC1pdGVtCisgICAgICAgICAgICAvLyBh
bmQgbWFrZSBzdXJlIGl0IGlzIHRyZWF0ZWQgYXMgaWYgaXQgaGFkIGNvbnRlbnQgYW5kIHN0cmV0
Y2hlZCB0aGUgbGluZS4KKyAgICAgICAgICAgIC8vIHNlZSBJbmxpbmVGbG93Qm94IGMndG9yLgor
ICAgICAgICAgICAgcmV0dXJuIGlubGluZUxldmVsQm94LmxheW91dEJveCgpLnN0eWxlKCkuaXNP
cmlnaW5hbERpc3BsYXlMaXN0SXRlbVR5cGUoKTsKKyAgICAgICAgfQorICAgICAgICAvLyBOb24t
cm9vdCBpbmxpbmUgYm94ZXMgKGUuZy4gPHNwYW4+KS4KKyAgICAgICAgYXV0byYgYm94R2VvbWV0
cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUxldmVsQm94Lmxh
eW91dEJveCgpKTsKKyAgICAgICAgaWYgKGJveEdlb21ldHJ5Lmhvcml6b250YWxCb3JkZXIoKSB8
fCBib3hHZW9tZXRyeS5ob3Jpem9udGFsUGFkZGluZygpLnZhbHVlT3IoMF9sdSkpIHsKKyAgICAg
ICAgICAgIC8vIEhvcml6b250YWwgYm9yZGVyIGFuZCBwYWRkaW5nIG1ha2UgdGhlIGlubGluZSBi
b3ggc3RyZXRjaCB0aGUgbGluZSAoZS5nLiA8c3BhbiBzdHlsZT0icGFkZGluZzogMTBweDsiPjwv
c3Bhbj4pLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNBdG9taWNJbmxpbmVM
ZXZlbEJveCgpKSB7CisgICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3VuZHMoKS5o
ZWlnaHQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAvLyBXaGlsZSBpbiBw
cmFjdGljZSB3aGVuIHRoZSBuZWdhdGl2ZSB2ZXJ0aWNhbCBtYXJnaW4gbWFrZXMgdGhlIGxheW91
dCBib3VuZHMgZW1wdHkgKGUuZzogaGVpZ2h0OiAxMDBweDsgbWFyZ2luLXRvcDogLTEwMHB4Oyks
IGFuZCB0aGlzIGlubGluZQorICAgICAgICAvLyBsZXZlbCBib3ggY29udHJpYnV0ZXMgMHB4IHRv
IHRoZSBsaW5lIGJveCBoZWlnaHQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIHRha2VuIGludG8gYWNj
b3VudCB3aGlsZSBjb21wdXRpbmcgbGluZSBib3ggZ2VvbWV0cmllcy4KKyAgICAgICAgYXV0byYg
Ym94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUxl
dmVsQm94LmxheW91dEJveCgpKTsKKyAgICAgICAgcmV0dXJuIGJveEdlb21ldHJ5Lm1hcmdpbkJl
Zm9yZSgpIHx8IGJveEdlb21ldHJ5Lm1hcmdpbkFmdGVyKCk7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjpoYXNTb2Z0V3JhcE9wcG9y
dHVuaXR5QXRJbWFnZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFmb3JtYXR0aW5nQ29udGV4dCgp
LnJvb3QoKS5pc1RhYmxlQ2VsbCgpOworfQorCit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9y
bWF0dGluZ1F1aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZWYxODZhYThk
NTg0NDI4ODYxMzM1YjBlNDIwMmM1NTM2ZWJkZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5n
UXVpcmtzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJGb3JtYXR0
aW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsK
KworY2xhc3MgSW5saW5lRm9ybWF0dGluZ1F1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4
dDo6UXVpcmtzIHsKK3B1YmxpYzoKKyAgICBJbmxpbmVMYXlvdXRVbml0IGluaXRpYWxMaW5lSGVp
Z2h0KCkgY29uc3Q7CisgICAgYm9vbCBoYXNTb2Z0V3JhcE9wcG9ydHVuaXR5QXRJbWFnZSgpIGNv
bnN0OworICAgIGJvb2wgaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBMaW5lQm94
OjpJbmxpbmVMZXZlbEJveCYsIGNvbnN0IExpbmVCb3gmKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBmcmllbmQgY2xhc3MgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ7CisgICAgSW5saW5lRm9ybWF0
dGluZ1F1aXJrcyhjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOworCisgICAgY29uc3Qg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1
cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdDb250ZXh0OjpR
dWlya3M6OmZvcm1hdHRpbmdDb250ZXh0KCkpOyB9CisKK307CisKK30KK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5jcHAKaW5kZXgg
N2QxNzZhNzlhNWI5ZDI3OWY3OGRmNmM3Y2Y0ZDJhM2JhYjRiYWVmMC4uZTQ5NDU4ZGMzN2IyYjY4
ZmJiMThmYTBhZDZlM2EyNzRmYTliNGY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
QmlkaVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0
dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNpbmNsdWRlICJM
YXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>