<?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>168249</bug_id>
          
          <creation_ts>2017-02-13 13:35:55 -0800</creation_ts>
          <short_desc>Rename MediaQueryExp.h/cpp to MediaQueryExpression.h/cpp</short_desc>
          <delta_ts>2017-02-13 15:08:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1276339</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-13 13:35:55 -0800</bug_when>
    <thetext>Rename MediaQueryExp.h/cpp to MediaQueryExpression.h/cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276341</commentid>
    <comment_count>1</comment_count>
      <attachid>301383</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-13 13:36:55 -0800</bug_when>
    <thetext>Created attachment 301383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276390</commentid>
    <comment_count>2</comment_count>
      <attachid>301383</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-13 15:08:04 -0800</bug_when>
    <thetext>Comment on attachment 301383
Patch

Clearing flags on attachment: 301383

Committed r212252: &lt;http://trac.webkit.org/changeset/212252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276391</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-13 15:08:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301383</attachid>
            <date>2017-02-13 13:36:55 -0800</date>
            <delta_ts>2017-02-13 15:08:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168249-20170213133423.patch</filename>
            <type>text/plain</type>
            <size>42799</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMjI0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTAyLTEzICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuYW1lIE1lZGlhUXVlcnlFeHAuaC9j
cHAgdG8gTWVkaWFRdWVyeUV4cHJlc3Npb24uaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODI0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBhIEZJWE1FIGFuZCByZW5hbWUgTWVkaWFRdWVy
eUV4cC5oL2NwcCB0byBtYXRjaCB0aGUgY2xhc3MgaXQgY29udGFpbnMsIE1lZGlhUXVlcnlFeHBy
ZXNzaW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NBbGxJbk9uZS5jcHA6
CisgICAgICAgICogY3NzL01lZGlhUXVlcnkuaDoKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5oOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4cC5oOiBSZW1vdmVkLgorICAgICAgICAqIGNzcy9NZWRp
YVF1ZXJ5RXhwcmVzc2lvbi5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXhwLmNwcC4KKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuaC4KKyAgICAgICAgKiBj
c3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuaDoKKwogMjAxNy0wMi0xMyAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBXaW5kb3dzIGJ1aWxkLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMjI0MykKKysrIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL01lZGlhTGlzdC5jcHAKICAgICBjc3MvTWVkaWFR
dWVyeS5jcHAKICAgICBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKLSAgICBjc3MvTWVkaWFR
dWVyeUV4cC5jcHAKKyAgICBjc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCiAgICAgY3NzL01l
ZGlhUXVlcnlMaXN0LmNwcAogICAgIGNzcy9NZWRpYVF1ZXJ5TWF0Y2hlci5jcHAKICAgICBjc3Mv
UGFnZVJ1bGVDb2xsZWN0b3IuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTIyNDMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTE5NDcsOCArMTk0Nyw2IEBACiAJCTRFMTk1OTJBMEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRp
YVF1ZXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RTE5NTkyNDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRFMTk1OTJCMEEzOURBQ0MwMDIyMEZF
NSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRFMTk1OTI1MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcCAqLzsgfTsKIAkJNEUxOTU5MkMwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlh
UXVlcnlFdmFsdWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRFMTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNEUxOTU5
MkQwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEUxOTU5MjcwQTM5REFDQzAwMjIwRkU1IC8q
IE1lZGlhUXVlcnlFeHAuY3BwICovOyB9OwotCQk0RTE5NTkyRTBBMzlEQUNDMDAyMjBGRTUgLyog
TWVkaWFRdWVyeUV4cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEUxOTU5MjgwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjE1MzRERTExQjUz
MkVDMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERDExQjUzMkVDMDAyMUZEODYgLyogRWRpdGlu
Z0JlaGF2aW9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNEYxNTM0RTAxMUI1MzMwMjAwMjFGRDg2IC8qIEVkaXRpbmdCZWhhdmlvclR5cGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RjE1MzRERjEx
QjUzMzAyMDAyMUZEODYgLyogRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0RjZGREQ2NDEzNDFERUREMDAxRjhF
RTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwICovOyB9OwpAQCAtMjk1MSw2ICsyOTQ5LDggQEAKIAkJN0M5M0YzNEUxQUE2
QkYwNzAwQTk4QkFCIC8qIENvbnRlbnRFeHRlbnNpb25Db21waWxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M5M0YzNEMxQUE2QkYwNzAwQTk4QkFC
IC8qIENvbnRlbnRFeHRlbnNpb25Db21waWxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDOURCRkVEMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hU
TUxBdHRhY2htZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QzlEQkZFQjFBOUM0OUIxMDAwRDZCMjUgLyogSlNIVE1MQXR0YWNobWVu
dEVsZW1lbnQuY3BwICovOyB9OwogCQk3QzlEQkZFRTFBOUM0OUIxMDAwRDZCMjUgLyogSlNIVE1M
QXR0YWNobWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDOURCRkVDMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2htZW50RWxl
bWVudC5oICovOyB9OworCQk3Q0I1Q0EzRjFFNTI1QzcxMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4
cHJlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NCNUNBM0QxRTUyNUM2QzAwRkFFRjEzIC8qIE1lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCAq
LzsgfTsKKwkJN0NCNUNBNDAxRTUyNUM3MzAwRkFFRjEzIC8qIE1lZGlhUXVlcnlFeHByZXNzaW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0I1Q0Ez
RTFFNTI1QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0MwMUQwQTFFNEE3QjA0MDBF
NTI5Q0MgLyogSlNET01CdWlsdGluQ29uc3RydWN0b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMENFRjJFMUU0QTU4MzIwMDhERUI4MCAv
KiBKU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvckJhc2UuY3BwICovOyB9OwogCQk3Q0MwMUQwQjFFNEE3
QjA0MDBFNTI5Q0MgLyogSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwQ0VGMkYxRTRBNThBRDAwOERFQjgwIC8q
IEpTRE9NQ29uc3RydWN0b3JCYXNlLmNwcCAqLzsgfTsKIAkJN0NDMDFEMEMxRTRBN0IwNDAwRTUy
OUNDIC8qIEpTRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwQ0VGMzAxRTRBNThGMTAwOERFQjgwIC8q
IEpTRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQuY3BwICovOyB9OwpAQCAtOTI2OCw4ICs5MjY4
LDYgQEAKIAkJNEUxOTU5MjQwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUXVlcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEUxOTU5MjUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RTE5NTkyNjBB
MzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUV2YWx1YXRvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0RTE5NTkyNzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV4cC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeUV4cC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTRFMTk1OTI4MEEzOURBQ0MwMDIyMEZF
NSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZWRpYVF1ZXJ5RXhwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMTUzNEREMTFC
NTMyRUMwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRWRpdGluZ0JlaGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRGMTUzNERGMTFCNTMzMDIwMDIxRkQ4NiAvKiBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nQmVoYXZpb3JUeXBlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyog
SW5zcGVjdG9yUGFnZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3RvclBhZ2VBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDU5OCw2ICsxMDU5Niw4IEBACiAJCTdDOURCRkVBMUE5QzQ4OUYwMDBENkIyNSAvKiBIVE1M
QXR0YWNobWVudEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxBdHRhY2htZW50RWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDOURCRkVCMUE5QzQ5QjEwMDBENkIyNSAvKiBK
U0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDOURCRkVDMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2htZW50RWxl
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxBdHRhY2htZW50
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0I1Q0EzRDFFNTI1QzZD
MDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3Q0I1Q0EzRTFFNTI1QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4
cHJlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUV4
cHJlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDNTY0QjYxOEJBQkVB
NjAwMUI5NjUyIC8qIFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRlbGVwaG9uZU51bWJlckRldGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDQzU2NEI5MThCQUM3MjAwMDFCOTY1MiAvKiBUZWxlcGhvbmVOdW1i
ZXJEZXRlY3RvckNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRlbGVwaG9uZU51bWJlckRldGVjdG9yQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3Q0M2OTkzRTE5MUVDNUY1MDBBRjIyNzAgLyogSlNXZWJLaXROYW1lc3BhY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXROYW1lc3BhY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM5NjAsOCArMjM5NjAsOCBAQAog
CQkJCTRFMTk1OTI0MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5LmggKi8sCiAJCQkJNEUx
OTU5MjUwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFdmFsdWF0b3IuY3BwICovLAogCQkJ
CTRFMTk1OTI2MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggKi8sCi0J
CQkJNEUxOTU5MjcwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnlFeHAuY3BwICovLAotCQkJ
CTRFMTk1OTI4MEEzOURBQ0MwMDIyMEZFNSAvKiBNZWRpYVF1ZXJ5RXhwLmggKi8sCisJCQkJN0NC
NUNBM0QxRTUyNUM2QzAwRkFFRjEzIC8qIE1lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCAqLywKKwkJ
CQk3Q0I1Q0EzRTFFNTI1QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uaCAqLywK
IAkJCQlEM0E5NEEzMTEyMkRBQkFDMDBBMzdCQkMgLyogTWVkaWFRdWVyeUxpc3QuY3BwICovLAog
CQkJCUQzQTk0QTMyMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5oICovLAogCQkJ
CUQzQTk0QTMzMTIyREFCQUMwMEEzN0JCQyAvKiBNZWRpYVF1ZXJ5TGlzdC5pZGwgKi8sCkBAIC0y
NjE0Myw2ICsyNjE0Myw3IEBACiAJCQkJQ0QzRTI1MUMxODA0NkIwNjAwRTI3RjU2IC8qIEdyaWRB
cmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREVGNEZENzE3RTg1QzhGMDBBRUUyNEIgLyogR3Jp
ZExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEyNzA1QzMxNjU2QkQ2NTAwQzJFMjdDIC8q
IEdyaWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0NCNUNBNDAxRTUyNUM3MzAwRkFF
RjEzIC8qIE1lZGlhUXVlcnlFeHByZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY3NDgz
RjE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTJBMTA1MDE2NjQ0NEZEMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjZFQTg5QTcxQjRGMkI3NTAwOEM1RkQyIC8qIEhhc2hhYmxlQWN0aW9u
TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzI5Myw3ICsyNzI5NCw2IEBACiAJCQkJNEUxOTU5
MkEwQTM5REFDQzAwMjIwRkU1IC8qIE1lZGlhUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk0
OTNCNkJGMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5QmxvY2tXYXRjaGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RTE5NTkyQzBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1
YXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNEUxOTU5MkUwQTM5REFDQzAwMjIwRkU1IC8qIE1l
ZGlhUXVlcnlFeHAuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQTk0QTM5MTIyREFCQUMwMEEzN0JC
QyAvKiBNZWRpYVF1ZXJ5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDNBOTRBM0IxMjJEQUJB
QzAwQTM3QkJDIC8qIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQzQUExMEY0MTIzQTk4QUEwMDkyMTUyQiAvKiBNZWRpYVF1ZXJ5TWF0Y2hlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMDY2Nyw2ICszMDY2Nyw3IEBACiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAwN0VE
RDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJCMjEw
NDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEQTE1RUIxMTJCMDNFRTEwMDNBNTgzQSAvKiBKU1Bhbm5lck5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJN0NCNUNBM0YxRTUyNUM3MTAwRkFFRjEzIC8qIE1lZGlhUXVlcnlFeHBy
ZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU1MUE4MURGMTcyOThENzcwMEJGQ0E2MSAv
KiBKU1BlcmZvcm1hbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNCMzhGRDUxMUNDRjkzODkw
MDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Iz
OEZENTcxQ0QyMUUyQTAwNTkyQTNGIC8qIEpTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTMxMTQ5LDcgKzMxMTUwLDYgQEAKIAkJCQk0RTE5NTkyOTBBMzlEQUND
MDAyMjBGRTUgLyogTWVkaWFRdWVyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NDkzQjZCRTFE
NzRCNDEyMDA4OEU3ODAgLyogTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0RTE5NTkyQjBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk0RTE5NTkyRDBBMzlEQUNDMDAyMjBGRTUgLyogTWVkaWFR
dWVyeUV4cC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEM0E5NEEzODEyMkRBQkFDMDBBMzdCQkMg
LyogTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNBQTEwRjMxMjNBOThB
QTAwOTIxNTJCIC8qIE1lZGlhUXVlcnlNYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk0
OTNCNkMwMUQ3NEI0MTIwMDg4RTc4MCAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0FsbEluT25lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCShyZXZpc2lvbiAyMTIyNDMp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05OSw3ICs5OSw3IEBACiAjaW5jbHVkZSAiTWVkaWFMaXN0LmNwcCIKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5LmNwcCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCIKLSNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmNwcCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAi
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3QuY3BwIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRj
aGVyLmNwcCIKICNpbmNsdWRlICJQYWdlUnVsZUNvbGxlY3Rvci5jcHAiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5LmgJKHJldmlzaW9uIDIxMjI0MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCisjaW5jbHVkZSAiTWVkaWFRdWVyeUV4
cHJlc3Npb24uaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAkocmV2aXNp
b24gMjEyMjQzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIk1lZGlhUXVlcnlFeHAuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXhwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4
cC5jcHAJKHJldmlzaW9uIDIxMjI0MykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXhwLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDIzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA2IEtpbW1vIEtpbm51bmVuIDxraW1tby50Lmtpbm51bmVuQG5va2lhLmNvbT4uCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKLQotI2lu
Y2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKLSNpbmNsdWRlICJDU1NQYXJzZXIuaCIKLSNp
bmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlICJDU1NQYXJzZXJUb2tlbi5oIgot
I2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCi0jaW5jbHVkZSAiQ1NTVmFsdWVMaXN0Lmgi
Ci0jaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGlubGluZSBib29s
IGZlYXR1cmVXaXRoVmFsaWRJZGVudChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkK
LXsKLSAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpvcmllbnRh
dGlvbgotI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQotICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmlld01vZGUKLSNlbmRpZgotICAgIHx8IG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JHYW11dAotICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW55SG92ZXIKLSAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OmFueVBvaW50ZXIKLSAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmhvdmVyCi0gICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjppbnZlcnRlZENvbG9ycwotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6cG9pbnRlcgotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6cHJlZmVyc1JlZHVjZWRNb3Rpb247Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJl
V2l0aFZhbGlkRGVuc2l0eShjb25zdCBTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFy
c2VyVG9rZW4mIHRva2VuKQotewotICAgIGlmICghQ1NTUHJpbWl0aXZlVmFsdWU6OmlzUmVzb2x1
dGlvbihzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU+KHRva2VuLnVuaXRU
eXBlKCkpKSB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA8PSAwKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCi0gICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
cmVzb2x1dGlvbgotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWlu
UmVzb2x1dGlvbgotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4
UmVzb2x1dGlvbjsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3Np
dGl2ZUxlbmd0aChjb25zdCBTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVG9r
ZW4mIHRva2VuKQotewotICAgIGlmICghKENTU1ByaW1pdGl2ZVZhbHVlOjppc0xlbmd0aCh0b2tl
bi51bml0VHlwZSgpKSB8fCAodG9rZW4udHlwZSgpID09IE51bWJlclRva2VuICYmICF0b2tlbi5u
dW1lcmljVmFsdWUoKSkpIHx8IHRva2VuLm51bWVyaWNWYWx1ZSgpIDwgMCkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIAotICAgIAotICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OmhlaWdodAotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6bWF4SGVpZ2h0Ci0gICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5IZWlnaHQKLSAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Ondp
ZHRoCi0gICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhXaWR0aAot
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluV2lkdGgKLSAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZUhlaWdodAotICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4RGV2aWNlSGVpZ2h0Ci0gICAg
fHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5EZXZpY2VIZWlnaHQKLSAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZVdpZHRoCi0gICAg
fHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5EZXZpY2VXaWR0aAotICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4RGV2aWNlV2lkdGg7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihjb25zdCBT
dHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuKQotewotICAg
IGlmICh0b2tlbi5udW1lcmljVmFsdWVUeXBlKCkgIT0gSW50ZWdlclZhbHVlVHlwZSB8fCB0b2tl
bi5udW1lcmljVmFsdWUoKSA8IDApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBy
ZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xvcgotICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6IG1heENvbG9yCi0gICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjogbWluQ29sb3IKLSAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9ySW5kZXgKLSAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heENvbG9ySW5kZXgKLSAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbkNvbG9ySW5kZXgKLSAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWUKLSAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6Om1heE1vbm9jaHJvbWUKLSAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6Om1pbk1vbm9jaHJvbWU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9v
bCBmZWF0dXJlV2l0aFBvc2l0aXZlTnVtYmVyKGNvbnN0IFN0cmluZyYgbWVkaWFGZWF0dXJlLCBj
b25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4pCi17Ci0gICAgaWYgKHRva2VuLnR5cGUoKSAhPSBO
dW1iZXJUb2tlbiB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA8IDApCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
Ojp0cmFuc2Zvcm0zZAotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
ZGV2aWNlUGl4ZWxSYXRpbwotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6bWF4RGV2aWNlUGl4ZWxSYXRpbwotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bWluRGV2aWNlUGl4ZWxSYXRpbwotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6dHJhbnNpdGlvbgotICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZl
YXR1cmVOYW1lczo6YW5pbWF0aW9uCi0gICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjp0cmFuc2Zvcm0yZDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRo
WmVyb09yT25lKGNvbnN0IFN0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJUb2tl
biYgdG9rZW4pCi17Ci0gICAgaWYgKHRva2VuLm51bWVyaWNWYWx1ZVR5cGUoKSAhPSBJbnRlZ2Vy
VmFsdWVUeXBlIHx8ICEodG9rZW4ubnVtZXJpY1ZhbHVlKCkgPT0gMSB8fCAhdG9rZW4ubnVtZXJp
Y1ZhbHVlKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgcmV0dXJuIG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Z3JpZDsKLX0KLQotc3RhdGljIGlubGluZSBi
b29sIGlzQXNwZWN0UmF0aW9GZWF0dXJlKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJl
KQotewotICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFzcGVj
dFJhdGlvCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2
aWNlQXNwZWN0UmF0aW8KLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjptaW5Bc3BlY3RSYXRpbwotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6Om1heEFzcGVjdFJhdGlvCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6bWluRGV2aWNlQXNwZWN0UmF0aW8KLSAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhEZXZpY2VBc3BlY3RSYXRpbzsKLX0KLQotc3Rh
dGljIGlubGluZSBib29sIGlzRmVhdHVyZVZhbGlkV2l0aG91dFZhbHVlKGNvbnN0IEF0b21pY1N0
cmluZyYgbWVkaWFGZWF0dXJlKQotewotICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgYXJlIHBy
ZWZpeGVkIGJ5IG1pbi9tYXggY2Fubm90IGJlIHVzZWQgd2l0aG91dCBhIHZhbHVlLgotICAgIHJl
dHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFueUhvdmVyCi0gICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW55UG9pbnRlcgotICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWUKLSAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xvcgotICAgICAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9ySW5kZXgKLSAgICAgICAg
fHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkCi0gICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aGVpZ2h0Ci0gICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6d2lkdGgKLSAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VIZWlnaHQKLSAgICAgICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VXaWR0aAotICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om9yaWVudGF0aW9uCi0gICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YXNwZWN0UmF0aW8KLSAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VBc3BlY3RSYXRpbwotICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhvdmVyCi0gICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtMmQKLSAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp0cmFuc2Zvcm0zZAotICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zaXRpb24KLSAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbmltYXRpb24KLSAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjppbnZlcnRlZENvbG9y
cwotI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQotICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdNb2RlCi0jZW5kaWYKLSAgICAgICAgfHwgbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpwb2ludGVyCi0gICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cHJlZmVyc1JlZHVjZWRNb3Rpb24KLSAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VQaXhlbFJhdGlv
Ci0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlv
bgotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZGVvUGxh
eWFibGVJbmxpbmU7Ci19Ci0KLU1lZGlhUXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5RXhwcmVz
c2lvbihjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFZlY3RvcjxDU1NQYXJzZXJUb2tlbiwg
ND4mIHRva2VuTGlzdCkKLSAgICA6IG1fbWVkaWFGZWF0dXJlKGZlYXR1cmUuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKSkKLSAgICAsIG1faXNWYWxpZChmYWxzZSkKLXsKLSAgICAvLyBDcmVhdGUg
dmFsdWUgZm9yIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb24gdGhhdCBtdXN0IGhhdmUgMSBvciBtb3Jl
IHZhbHVlcy4KLSAgICBpZiAoIXRva2VuTGlzdC5zaXplKCkgJiYgaXNGZWF0dXJlVmFsaWRXaXRo
b3V0VmFsdWUobV9tZWRpYUZlYXR1cmUpKSB7Ci0gICAgICAgIC8vIFZhbGlkLCBjcmVhdGVzIGEg
TWVkaWFRdWVyeUV4cCB3aXRoIGFuICdpbnZhbGlkJyBNZWRpYVF1ZXJ5RXhwVmFsdWUKLSAgICAg
ICAgbV9pc1ZhbGlkID0gdHJ1ZTsKLSAgICB9IGVsc2UgaWYgKHRva2VuTGlzdC5zaXplKCkgPT0g
MSkgewotICAgICAgICBDU1NQYXJzZXJUb2tlbiB0b2tlbiA9IHRva2VuTGlzdC5maXJzdCgpOwot
ICAgICAgICBpZiAodG9rZW4udHlwZSgpID09IElkZW50VG9rZW4pIHsKLSAgICAgICAgICAgIENT
U1ZhbHVlSUQgaWRlbnQgPSB0b2tlbi5pZCgpOwotICAgICAgICAgICAgaWYgKCFmZWF0dXJlV2l0
aFZhbGlkSWRlbnQobV9tZWRpYUZlYXR1cmUpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihp
ZGVudCk7Ci0gICAgICAgICAgICBtX2lzVmFsaWQgPSB0cnVlOwotICAgICAgICB9IGVsc2UgaWYg
KHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiB8fCB0b2tlbi50eXBlKCkgPT0gUGVyY2VudGFn
ZVRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBEaW1lbnNpb25Ub2tlbikgewotICAgICAgICAgICAg
Ly8gQ2hlY2sgZm9yIG51bWVyaWMgdG9rZW4gdHlwZXMgc2luY2UgaXQgaXMgb25seSBzYWZlIGZv
ciB0aGVzZSB0eXBlcyB0byBjYWxsIG51bWVyaWNWYWx1ZS4KLSAgICAgICAgICAgIGlmIChmZWF0
dXJlV2l0aFZhbGlkRGVuc2l0eShtX21lZGlhRmVhdHVyZSwgdG9rZW4pCi0gICAgICAgICAgICAg
ICAgfHwgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ3RoKG1fbWVkaWFGZWF0dXJlLCB0b2tl
bikpIHsKLSAgICAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBu
b24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwgZHBpIG9yIGRwY20sCi0gICAgICAgICAg
ICAgICAgLy8gb3IgTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxs
ZW5ndGg+IG9yIG51bWJlciB2YWx1ZS4KLSAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZSh0b2tlbi5udW1lcmljVmFsdWUoKSwgKENTU1ByaW1pdGl2ZVZh
bHVlOjpVbml0VHlwZSkgdG9rZW4udW5pdFR5cGUoKSk7Ci0gICAgICAgICAgICAgICAgbV9pc1Zh
bGlkID0gdHJ1ZTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoZmVhdHVyZVdpdGhQb3NpdGl2ZUlu
dGVnZXIobV9tZWRpYUZlYXR1cmUsIHRva2VuKQotICAgICAgICAgICAgICAgIHx8IGZlYXR1cmVX
aXRoUG9zaXRpdmVOdW1iZXIobV9tZWRpYUZlYXR1cmUsIHRva2VuKQotICAgICAgICAgICAgICAg
IHx8IGZlYXR1cmVXaXRoWmVyb09yT25lKG1fbWVkaWFGZWF0dXJlLCB0b2tlbikpIHsKLSAgICAg
ICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUg
aW50ZWdlciB2YWx1ZSwKLSAgICAgICAgICAgICAgICAvLyBvciBtZWRpYSBmZWF0dXJlcyB0aGF0
IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgbnVtYmVyIHZhbHVlLAotICAgICAgICAgICAgICAgIC8v
IG9yIG1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlICgwfDEpIHZhbHVlLgotICAgICAgICAg
ICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHRva2VuLm51bWVyaWNW
YWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6OkNTU19OVU1CRVIpOwotICAgICAg
ICAgICAgICAgIG1faXNWYWxpZCA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9IGVsc2UgaWYgKHRva2VuTGlzdC5zaXplKCkgPT0gMyAmJiBpc0FzcGVjdFJhdGlvRmVhdHVy
ZShtX21lZGlhRmVhdHVyZSkpIHsKLSAgICAgICAgLy8gRklYTUU6IDxyYXRpbz4gaXMgc3VwcG9z
ZWQgdG8gYWxsb3cgd2hpdGVzcGFjZSBhcm91bmQgdGhlICcvJwotICAgICAgICAvLyBBcHBsaWNh
YmxlIHRvIGRldmljZS1hc3BlY3QtcmF0aW8gYW5kIGFzcGVjdC1yYXRpby4KLSAgICAgICAgY29u
c3QgQ1NTUGFyc2VyVG9rZW4mIG51bWVyYXRvciA9IHRva2VuTGlzdFswXTsKLSAgICAgICAgY29u
c3QgQ1NTUGFyc2VyVG9rZW4mIGRlbGltaXRlciA9IHRva2VuTGlzdFsxXTsKLSAgICAgICAgY29u
c3QgQ1NTUGFyc2VyVG9rZW4mIGRlbm9taW5hdG9yID0gdG9rZW5MaXN0WzJdOwotICAgICAgICBp
ZiAoZGVsaW1pdGVyLnR5cGUoKSAhPSBEZWxpbWl0ZXJUb2tlbiB8fCBkZWxpbWl0ZXIuZGVsaW1p
dGVyKCkgIT0gJy8nKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobnVtZXJhdG9y
LnR5cGUoKSAhPSBOdW1iZXJUb2tlbiB8fCBudW1lcmF0b3IubnVtZXJpY1ZhbHVlKCkgPD0gMCB8
fCBudW1lcmF0b3IubnVtZXJpY1ZhbHVlVHlwZSgpICE9IEludGVnZXJWYWx1ZVR5cGUpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChkZW5vbWluYXRvci50eXBlKCkgIT0gTnVtYmVy
VG9rZW4gfHwgZGVub21pbmF0b3IubnVtZXJpY1ZhbHVlKCkgPD0gMCB8fCBkZW5vbWluYXRvci5u
dW1lcmljVmFsdWVUeXBlKCkgIT0gSW50ZWdlclZhbHVlVHlwZSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCi0gICAgICAgIG1fdmFsdWUgPSBDU1NBc3BlY3RSYXRpb1ZhbHVlOjpjcmVh
dGUobnVtZXJhdG9yLm51bWVyaWNWYWx1ZSgpLCBkZW5vbWluYXRvci5udW1lcmljVmFsdWUoKSk7
Ci0gICAgICAgIG1faXNWYWxpZCA9IHRydWU7Ci0gICAgfQotfQotCi1TdHJpbmcgTWVkaWFRdWVy
eUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3NlcmlhbGl6YXRp
b25DYWNoZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIG1fc2VyaWFsaXphdGlvbkNhY2hlOwot
Ci0gICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7Ci0gICAgcmVzdWx0LmFwcGVuZCgnKCcpOwotICAg
IHJlc3VsdC5hcHBlbmQobV9tZWRpYUZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSk7
Ci0gICAgaWYgKG1fdmFsdWUpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjogIik7
Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQobV92YWx1ZS0+Y3NzVGV4dCgpKTsKLSAgICB9Ci0gICAg
cmVzdWx0LmFwcGVuZCgnKScpOwotCi0gICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSByZXN1bHQu
dG9TdHJpbmcoKTsKLSAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV4cC5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAg
IyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwLmgJKHJldmlzaW9uIDIxMjI0MykKKysrIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXhwLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw3OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2IEtpbW1vIEtpbm51bmVuIDxraW1tby50Lmtpbm51bmVuQG5v
a2lhLmNvbT4uCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDU1NQYXJzZXJUb2tlbi5oIgotI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCi0jaW5jbHVkZSA8bWVtb3J5PgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLS8vIEZJWE1FOiBSZW5hbWUgdGhlIGZpbGUgdG8gbWF0Y2ggdGhpcyBjbGFzcydzIG5h
bWUuCi1jbGFzcyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbiB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgTWVkaWFRdWVyeUV4cHJlc3Npb24oY29uc3Qg
U3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IFZlY3RvcjxDU1NQYXJzZXJUb2tlbiwgND4mIHRv
a2VuTGlzdCk7Ci0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSgpIGNvbnN0
OwotICAgIENTU1ZhbHVlKiB2YWx1ZSgpIGNvbnN0OwotCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3Q7Ci0KLSAgICBTdHJpbmcgc2VyaWFsaXplKCkgY29uc3Q7Ci0KLSAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgTWVkaWFRdWVyeUV4cHJlc3Npb24mKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBB
dG9taWNTdHJpbmcgbV9tZWRpYUZlYXR1cmU7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBtX3ZhbHVl
OwotICAgIGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKLSAgICBtdXRhYmxlIFN0cmluZyBtX3Nl
cmlhbGl6YXRpb25DYWNoZTsKLX07Ci0KLWlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
UXVlcnlFeHByZXNzaW9uOjptZWRpYUZlYXR1cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX21l
ZGlhRmVhdHVyZTsKLX0KLQotaW5saW5lIENTU1ZhbHVlKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6
dmFsdWUoKSBjb25zdAotewotICAgIHJldHVybiBtX3ZhbHVlLmdldCgpOwotfQotCi1pbmxpbmUg
Ym9vbCBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVF1ZXJ5RXhw
cmVzc2lvbiYgb3RoZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG90aGVyLm1fbWVkaWFGZWF0dXJl
ID09IG1fbWVkaWFGZWF0dXJlCi0gICAgICAgICYmICgoIW1fdmFsdWUgJiYgIW90aGVyLm1fdmFs
dWUpIHx8IChtX3ZhbHVlICYmIG90aGVyLm1fdmFsdWUgJiYgKm1fdmFsdWUgPT0gKm90aGVyLm1f
dmFsdWUpKTsKLX0KLQotaW5saW5lIGJvb2wgTWVkaWFRdWVyeUV4cHJlc3Npb246OmlzVmFsaWQo
KSBjb25zdAotewotICAgIHJldHVybiBtX2lzVmFsaWQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFeHByZXNzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCShyZXZpc2lvbiAyMTIyNDMpCShmcm9tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoyMTIyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjM3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEtpbW1vIEtpbm51bmVuIDxraW1tby50Lmtp
bm51bmVuQG5va2lhLmNvbT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1l
ZGlhUXVlcnlFeHAuaCIKKworI2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKKyNpbmNs
dWRlICJDU1NQYXJzZXIuaCIKKyNpbmNsdWRlICJDU1NQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRl
ICJDU1NQYXJzZXJUb2tlbi5oIgorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5j
bHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiTWVkaWFGZWF0dXJlTmFtZXMuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWRJZGVudChjb25zdCBBdG9taWNT
dHJpbmcmIG1lZGlhRmVhdHVyZSkKK3sKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjpvcmllbnRhdGlvbgorI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElB
KQorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmlld01vZGUKKyNl
bmRpZgorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JHYW11
dAorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW55SG92ZXIKKyAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFueVBvaW50ZXIKKyAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhvdmVyCisgICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjppbnZlcnRlZENvbG9ycworICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cG9pbnRlcgorICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cHJlZmVyc1JlZHVjZWRNb3Rpb247Cit9CisKK3N0YXRp
YyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkRGVuc2l0eShjb25zdCBTdHJpbmcmIG1lZGlh
RmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuKQoreworICAgIGlmICghQ1NTUHJp
bWl0aXZlVmFsdWU6OmlzUmVzb2x1dGlvbihzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGU+KHRva2VuLnVuaXRUeXBlKCkpKSB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA8PSAw
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbgorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWluUmVzb2x1dGlvbgorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWF4UmVzb2x1dGlvbjsKK30KKworc3RhdGljIGlubGluZSBib29s
IGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmd0aChjb25zdCBTdHJpbmcmIG1lZGlhRmVhdHVy
ZSwgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuKQoreworICAgIGlmICghKENTU1ByaW1pdGl2
ZVZhbHVlOjppc0xlbmd0aCh0b2tlbi51bml0VHlwZSgpKSB8fCAodG9rZW4udHlwZSgpID09IE51
bWJlclRva2VuICYmICF0b2tlbi5udW1lcmljVmFsdWUoKSkpIHx8IHRva2VuLm51bWVyaWNWYWx1
ZSgpIDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIAorICAgIHJldHVybiBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhlaWdodAorICAgIHx8IG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4SGVpZ2h0CisgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5IZWlnaHQKKyAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OndpZHRoCisgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVh
dHVyZU5hbWVzOjptYXhXaWR0aAorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6bWluV2lkdGgKKyAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmRldmljZUhlaWdodAorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
bWF4RGV2aWNlSGVpZ2h0CisgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5EZXZpY2VIZWlnaHQKKyAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OmRldmljZVdpZHRoCisgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5EZXZpY2VXaWR0aAorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6bWF4RGV2aWNlV2lkdGg7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBv
c2l0aXZlSW50ZWdlcihjb25zdCBTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2Vy
VG9rZW4mIHRva2VuKQoreworICAgIGlmICh0b2tlbi5udW1lcmljVmFsdWVUeXBlKCkgIT0gSW50
ZWdlclZhbHVlVHlwZSB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA8IDApCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpjb2xvcgorICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6IG1h
eENvbG9yCisgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjogbWluQ29s
b3IKKyAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9ySW5kZXgK
KyAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heENvbG9ySW5kZXgK
KyAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbkNvbG9ySW5kZXgK
KyAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWUKKyAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heE1vbm9jaHJvbWUKKyAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbk1vbm9jaHJvbWU7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlTnVtYmVyKGNvbnN0IFN0
cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4pCit7CisgICAg
aWYgKHRva2VuLnR5cGUoKSAhPSBOdW1iZXJUb2tlbiB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA8
IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjp0cmFuc2Zvcm0zZAorICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlUGl4ZWxSYXRpbworICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4RGV2aWNlUGl4ZWxSYXRpbworICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluRGV2aWNlUGl4ZWxSYXRpbworICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNpdGlvbgorICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uCisgICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp0cmFuc2Zvcm0yZDsKK30KKworc3RhdGljIGlu
bGluZSBib29sIGZlYXR1cmVXaXRoWmVyb09yT25lKGNvbnN0IFN0cmluZyYgbWVkaWFGZWF0dXJl
LCBjb25zdCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4pCit7CisgICAgaWYgKHRva2VuLm51bWVyaWNW
YWx1ZVR5cGUoKSAhPSBJbnRlZ2VyVmFsdWVUeXBlIHx8ICEodG9rZW4ubnVtZXJpY1ZhbHVlKCkg
PT0gMSB8fCAhdG9rZW4ubnVtZXJpY1ZhbHVlKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Z3JpZDsK
K30KKworc3RhdGljIGlubGluZSBib29sIGlzQXNwZWN0UmF0aW9GZWF0dXJlKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWVkaWFGZWF0dXJlKQoreworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmFzcGVjdFJhdGlvCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlQXNwZWN0UmF0aW8KKyAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5Bc3BlY3RSYXRpbworICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heEFzcGVjdFJhdGlvCisgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluRGV2aWNlQXNwZWN0UmF0aW8K
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhEZXZpY2VB
c3BlY3RSYXRpbzsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzRmVhdHVyZVZhbGlkV2l0aG91
dFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQoreworICAgIC8vIE1lZGlh
IGZlYXR1cmVzIHRoYXQgYXJlIHByZWZpeGVkIGJ5IG1pbi9tYXggY2Fubm90IGJlIHVzZWQgd2l0
aG91dCBhIHZhbHVlLgorICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OmFueUhvdmVyCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6YW55UG9pbnRlcgorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om1vbm9jaHJvbWUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpjb2xvcgorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmNvbG9ySW5kZXgKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjpncmlkCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aGVp
Z2h0CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6d2lkdGgK
KyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VIZWln
aHQKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VX
aWR0aAorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om9yaWVu
dGF0aW9uCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YXNw
ZWN0UmF0aW8KKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpk
ZXZpY2VBc3BlY3RSYXRpbworICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6OmhvdmVyCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6dHJhbnNmb3JtMmQKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjp0cmFuc2Zvcm0zZAorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6OnRyYW5zaXRpb24KKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjphbmltYXRpb24KKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjppbnZlcnRlZENvbG9ycworI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdNb2RlCisj
ZW5kaWYKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpwb2lu
dGVyCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cHJlZmVy
c1JlZHVjZWRNb3Rpb24KKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpkZXZpY2VQaXhlbFJhdGlvCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZl
YXR1cmVOYW1lczo6cmVzb2x1dGlvbgorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OnZpZGVvUGxheWFibGVJbmxpbmU7Cit9CisKK01lZGlhUXVlcnlFeHByZXNz
aW9uOjpNZWRpYVF1ZXJ5RXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFZl
Y3RvcjxDU1NQYXJzZXJUb2tlbiwgND4mIHRva2VuTGlzdCkKKyAgICA6IG1fbWVkaWFGZWF0dXJl
KGZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSkKKyAgICAsIG1faXNWYWxpZChmYWxz
ZSkKK3sKKyAgICAvLyBDcmVhdGUgdmFsdWUgZm9yIG1lZGlhIHF1ZXJ5IGV4cHJlc3Npb24gdGhh
dCBtdXN0IGhhdmUgMSBvciBtb3JlIHZhbHVlcy4KKyAgICBpZiAoIXRva2VuTGlzdC5zaXplKCkg
JiYgaXNGZWF0dXJlVmFsaWRXaXRob3V0VmFsdWUobV9tZWRpYUZlYXR1cmUpKSB7CisgICAgICAg
IC8vIFZhbGlkLCBjcmVhdGVzIGEgTWVkaWFRdWVyeUV4cCB3aXRoIGFuICdpbnZhbGlkJyBNZWRp
YVF1ZXJ5RXhwVmFsdWUKKyAgICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYg
KHRva2VuTGlzdC5zaXplKCkgPT0gMSkgeworICAgICAgICBDU1NQYXJzZXJUb2tlbiB0b2tlbiA9
IHRva2VuTGlzdC5maXJzdCgpOworICAgICAgICBpZiAodG9rZW4udHlwZSgpID09IElkZW50VG9r
ZW4pIHsKKyAgICAgICAgICAgIENTU1ZhbHVlSUQgaWRlbnQgPSB0b2tlbi5pZCgpOworICAgICAg
ICAgICAgaWYgKCFmZWF0dXJlV2l0aFZhbGlkSWRlbnQobV9tZWRpYUZlYXR1cmUpKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcihpZGVudCk7CisgICAgICAgICAgICBtX2lzVmFsaWQgPSB0cnVl
OworICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUoKSA9PSBOdW1iZXJUb2tlbiB8fCB0b2tl
bi50eXBlKCkgPT0gUGVyY2VudGFnZVRva2VuIHx8IHRva2VuLnR5cGUoKSA9PSBEaW1lbnNpb25U
b2tlbikgeworICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIG51bWVyaWMgdG9rZW4gdHlwZXMgc2lu
Y2UgaXQgaXMgb25seSBzYWZlIGZvciB0aGVzZSB0eXBlcyB0byBjYWxsIG51bWVyaWNWYWx1ZS4K
KyAgICAgICAgICAgIGlmIChmZWF0dXJlV2l0aFZhbGlkRGVuc2l0eShtX21lZGlhRmVhdHVyZSwg
dG9rZW4pCisgICAgICAgICAgICAgICAgfHwgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ3Ro
KG1fbWVkaWFGZWF0dXJlLCB0b2tlbikpIHsKKyAgICAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0
dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwgZHBp
IG9yIGRwY20sCisgICAgICAgICAgICAgICAgLy8gb3IgTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0
IGhhdmUgbm9uLW5lZ2F0aXZlIDxsZW5ndGg+IG9yIG51bWJlciB2YWx1ZS4KKyAgICAgICAgICAg
ICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh0b2tlbi5udW1lcmljVmFs
dWUoKSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZSkgdG9rZW4udW5pdFR5cGUoKSk7Cisg
ICAgICAgICAgICAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
ZmVhdHVyZVdpdGhQb3NpdGl2ZUludGVnZXIobV9tZWRpYUZlYXR1cmUsIHRva2VuKQorICAgICAg
ICAgICAgICAgIHx8IGZlYXR1cmVXaXRoUG9zaXRpdmVOdW1iZXIobV9tZWRpYUZlYXR1cmUsIHRv
a2VuKQorICAgICAgICAgICAgICAgIHx8IGZlYXR1cmVXaXRoWmVyb09yT25lKG1fbWVkaWFGZWF0
dXJlLCB0b2tlbikpIHsKKyAgICAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11
c3QgaGF2ZSBub24tbmVnYXRpdmUgaW50ZWdlciB2YWx1ZSwKKyAgICAgICAgICAgICAgICAvLyBv
ciBtZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgbnVtYmVyIHZhbHVl
LAorICAgICAgICAgICAgICAgIC8vIG9yIG1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlICgw
fDEpIHZhbHVlLgorICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKHRva2VuLm51bWVyaWNWYWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGU6
OkNTU19OVU1CRVIpOworICAgICAgICAgICAgICAgIG1faXNWYWxpZCA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHRva2VuTGlzdC5zaXplKCkgPT0gMyAm
JiBpc0FzcGVjdFJhdGlvRmVhdHVyZShtX21lZGlhRmVhdHVyZSkpIHsKKyAgICAgICAgLy8gRklY
TUU6IDxyYXRpbz4gaXMgc3VwcG9zZWQgdG8gYWxsb3cgd2hpdGVzcGFjZSBhcm91bmQgdGhlICcv
JworICAgICAgICAvLyBBcHBsaWNhYmxlIHRvIGRldmljZS1hc3BlY3QtcmF0aW8gYW5kIGFzcGVj
dC1yYXRpby4KKyAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIG51bWVyYXRvciA9IHRva2Vu
TGlzdFswXTsKKyAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIGRlbGltaXRlciA9IHRva2Vu
TGlzdFsxXTsKKyAgICAgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIGRlbm9taW5hdG9yID0gdG9r
ZW5MaXN0WzJdOworICAgICAgICBpZiAoZGVsaW1pdGVyLnR5cGUoKSAhPSBEZWxpbWl0ZXJUb2tl
biB8fCBkZWxpbWl0ZXIuZGVsaW1pdGVyKCkgIT0gJy8nKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBpZiAobnVtZXJhdG9yLnR5cGUoKSAhPSBOdW1iZXJUb2tlbiB8fCBudW1lcmF0b3Iu
bnVtZXJpY1ZhbHVlKCkgPD0gMCB8fCBudW1lcmF0b3IubnVtZXJpY1ZhbHVlVHlwZSgpICE9IElu
dGVnZXJWYWx1ZVR5cGUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChkZW5vbWlu
YXRvci50eXBlKCkgIT0gTnVtYmVyVG9rZW4gfHwgZGVub21pbmF0b3IubnVtZXJpY1ZhbHVlKCkg
PD0gMCB8fCBkZW5vbWluYXRvci5udW1lcmljVmFsdWVUeXBlKCkgIT0gSW50ZWdlclZhbHVlVHlw
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIG1fdmFsdWUgPSBDU1NB
c3BlY3RSYXRpb1ZhbHVlOjpjcmVhdGUobnVtZXJhdG9yLm51bWVyaWNWYWx1ZSgpLCBkZW5vbWlu
YXRvci5udW1lcmljVmFsdWUoKSk7CisgICAgICAgIG1faXNWYWxpZCA9IHRydWU7CisgICAgfQor
fQorCitTdHJpbmcgTWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKCFtX3NlcmlhbGl6YXRpb25DYWNoZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIG1f
c2VyaWFsaXphdGlvbkNhY2hlOworCisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgcmVz
dWx0LmFwcGVuZCgnKCcpOworICAgIHJlc3VsdC5hcHBlbmQobV9tZWRpYUZlYXR1cmUuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKSk7CisgICAgaWYgKG1fdmFsdWUpIHsKKyAgICAgICAgcmVzdWx0
LmFwcGVuZExpdGVyYWwoIjogIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV92YWx1ZS0+Y3Nz
VGV4dCgpKTsKKyAgICB9CisgICAgcmVzdWx0LmFwcGVuZCgnKScpOworCisgICAgbV9zZXJpYWxp
emF0aW9uQ2FjaGUgPSByZXN1bHQudG9TdHJpbmcoKTsKKyAgICByZXR1cm4gbV9zZXJpYWxpemF0
aW9uQ2FjaGU7Cit9CisKK30gLy8gbmFtZXNwYWNlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVv
bC1zdHlsZQojIyAtMCwwICsxICMjCituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3Bw
CShyZXZpc2lvbiAyMTIyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJl
c3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhUXVlcnlFeHAuaCIKKyNpbmNsdWRlICJNZWRp
YVF1ZXJ5RXhwcmVzc2lvbi5oIgogCiAjaW5jbHVkZSAiQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU1BhcnNlci5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFeHByZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFeHByZXNzaW9uLmgJKHJldmlzaW9uIDIxMjI0MykJKGZyb20gU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFeHAuaDoyMTIyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cHJlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA2IEtpbW1vIEtpbm51bmVuIDxraW1tby50Lmtpbm51bmVuQG5va2lhLmNv
bT4uCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NQYXJzZXJUb2tlbi5oIgorI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCisjaW5jbHVkZSA8bWVtb3J5PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
Ky8vIEZJWE1FOiBSZW5hbWUgdGhlIGZpbGUgdG8gbWF0Y2ggdGhpcyBjbGFzcydzIG5hbWUuCitj
bGFzcyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFRdWVyeUV4cHJlc3Npb24oY29uc3QgU3RyaW5n
JiBtZWRpYUZlYXR1cmUsIGNvbnN0IFZlY3RvcjxDU1NQYXJzZXJUb2tlbiwgND4mIHRva2VuTGlz
dCk7CisKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSgpIGNvbnN0OworICAg
IENTU1ZhbHVlKiB2YWx1ZSgpIGNvbnN0OworCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisK
KyAgICBTdHJpbmcgc2VyaWFsaXplKCkgY29uc3Q7CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgTWVkaWFRdWVyeUV4cHJlc3Npb24mKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBBdG9taWNT
dHJpbmcgbV9tZWRpYUZlYXR1cmU7CisgICAgUmVmUHRyPENTU1ZhbHVlPiBtX3ZhbHVlOworICAg
IGJvb2wgbV9pc1ZhbGlkIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIFN0cmluZyBtX3NlcmlhbGl6
YXRpb25DYWNoZTsKK307CisKK2lubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhUXVlcnlF
eHByZXNzaW9uOjptZWRpYUZlYXR1cmUoKSBjb25zdAoreworICAgIHJldHVybiBtX21lZGlhRmVh
dHVyZTsKK30KKworaW5saW5lIENTU1ZhbHVlKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6dmFsdWUo
KSBjb25zdAoreworICAgIHJldHVybiBtX3ZhbHVlLmdldCgpOworfQorCitpbmxpbmUgYm9vbCBN
ZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVF1ZXJ5RXhwcmVzc2lv
biYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG90aGVyLm1fbWVkaWFGZWF0dXJlID09IG1f
bWVkaWFGZWF0dXJlCisgICAgICAgICYmICgoIW1fdmFsdWUgJiYgIW90aGVyLm1fdmFsdWUpIHx8
IChtX3ZhbHVlICYmIG90aGVyLm1fdmFsdWUgJiYgKm1fdmFsdWUgPT0gKm90aGVyLm1fdmFsdWUp
KTsKK30KKworaW5saW5lIGJvb2wgTWVkaWFRdWVyeUV4cHJlc3Npb246OmlzVmFsaWQoKSBjb25z
dAoreworICAgIHJldHVybiBtX2lzVmFsaWQ7Cit9CisKK30gLy8gbmFtZXNwYWNlCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5oCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIworbmF0aXZlClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXhwcmVzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXhwcmVzc2lvbi5oCShyZXZpc2lvbiAyMTIyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV4cHJlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBSZW5hbWUgdGhlIGZpbGUgdG8gbWF0Y2gg
dGhpcyBjbGFzcydzIG5hbWUuCiBjbGFzcyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuaAkocmV2aXNpb24gMjEyMjQzKQorKysgU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1
ZXJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUJsb2NrV2F0Y2hlci5oIgotI2luY2x1ZGUgIk1l
ZGlhUXVlcnlFeHAuaCIKKyNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>