<?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>232994</bug_id>
          
          <creation_ts>2021-11-11 05:33:13 -0800</creation_ts>
          <short_desc>Introduce SelectorMatchingState and move SelectorFilter there</short_desc>
          <delta_ts>2021-11-11 07:22:58 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813992</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-11 05:33:13 -0800</bug_when>
    <thetext>It will be useful to have an extensible state struct available during style resolution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813993</commentid>
    <comment_count>1</comment_count>
      <attachid>443940</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-11-11 05:40:18 -0800</bug_when>
    <thetext>Created attachment 443940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814020</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-11 07:02:02 -0800</bug_when>
    <thetext>Committed r285630 (244131@main): &lt;https://commits.webkit.org/244131@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443940.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814021</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-11 07:03:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/85297998&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443940</attachid>
            <date>2021-11-11 05:40:18 -0800</date>
            <delta_ts>2021-11-11 07:22:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232994-20211111154016.patch</filename>
            <type>text/plain</type>
            <size>28767</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uMWM0ZjA5MTY1MDU1MzVmZWZjZmQxMzhjZjFlOGRm
MjVhYTlmZTRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIxLTExLTExICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgU2VsZWN0
b3JNYXRjaGluZ1N0YXRlIGFuZCBtb3ZlIFNlbGVjdG9yRmlsdGVyIHRoZXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5OTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3aWxsIGJlIHVzZWZ1bCB0
byBoYXZlIGFuIGV4dGVuc2libGUgc3RhdGUgc3RydWN0IGF2YWlsYWJsZSBkdXJpbmcgc3R5bGUg
cmVzb2x1dGlvbi4KKyAgICAgICAgSW5pdGlhbGx5IGl0IHdpbGwgY29udGFpbiBqdXN0IHRoZSBl
eGlzdGluZyBTZWxlY3RvckZpbHRlci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBzdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OkVsZW1lbnRS
dWxlQ29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKiBzdHlsZS9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIHN0eWxlL1NlbGVjdG9yTWF0Y2hpbmdTdGF0
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVlZGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlRm9yVHJl
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmludmFsaWRhdGVTdHls
ZUZvckRlc2NlbmRhbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6
aW52YWxpZGF0ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZhbGlkYXRvcjo6
aW52YWxpZGF0ZVN0eWxlV2l0aE1hdGNoRWxlbWVudCk6CisgICAgICAgICogc3R5bGUvU3R5bGVJ
bnZhbGlkYXRvci5oOgorICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpzdHlsZUZvckVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQpOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNoYXJpbmdS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2hhcmluZ1Jlc29sdmVyOjpT
aGFyaW5nUmVzb2x2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNoYXJpbmdSZXNvbHZl
cjo6c3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0Y2hlc1J1bGVTZXQgY29uc3QpOgorICAgICAgICAq
IHN0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmg6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVl
UmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6U2Nv
cGU6OlNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6Om1ha2VS
ZXNvbHV0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVy
OjptYWtlUmVzb2x1dGlvbkNvbnRleHRGb3JQc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnB1c2hQYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlRyZWVSZXNvbHZlcjo6cG9wUGFyZW50KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRy
ZWVSZXNvbHZlci5oOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0VsZW1lbnQ6OnJlc29sdmVDdXN0b21TdHlsZSk6CisKIDIwMjEtMTEtMTEgIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBuYXJyb3dlciB0
eXBlcyBmb3Igc3R5bGUgc2NvcGUgb3JkaW5hbCBhbmQgY2FzY2FkZSBsYXllciBwcmlvcml0eQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDI5OWE4ODY2MGYxZWIwMjJjYmQ4YjRlZGMyMzFiMjI5MDliZGExNDQuLjY5ZDNmZDljOGEy
ZmNhNjExNDk3ODg5MGY4MWJlN2NmN2RmMzU4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUyODEsNiArNTI4MSw3IEBACiAJ
CUU0NjE4MDJEMUM4REQyOTAwMDI2QzAyQyAvKiBTdHlsZVJlbGF0aW9ucy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ2MTgwMkMxQzhERDI5MDAwMjZD
MDJDIC8qIFN0eWxlUmVsYXRpb25zLmggKi87IH07CiAJCUU0NjFENjVGMUJCMEM4MEQwMENCNTY0
NSAvKiBTdHlsZVNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDYxRDY1RTFCQjBDODBEMDBDQjU2NDUgLyogU3R5bGVTY29wZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0NjJBNEExMTEzRTcx
QkUwMDRBNDIyMCAvKiBJbnRQb2ludEhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0NjJBNEEwMTEzRTcxQkUwMDRBNDIyMCAvKiBJbnRQb2ludEhh
c2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlF
NDY0MzI4QTI3M0QyRTdDMDA1Qjc1NkIgLyogU2VsZWN0b3JNYXRjaGluZ1N0YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDY0MzI4ODI3M0QyRTdD
MDA1Qjc1NkIgLyogU2VsZWN0b3JNYXRjaGluZ1N0YXRlLmggKi87IH07CiAJCUU0NkEyQjFDMTdD
QTY1QjkwMDBEQkNEOCAvKiBUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NkEyQjFCMTdDQTY1Qjkw
MDBEQkNEOCAvKiBUeXBlZEVsZW1lbnREZXNjZW5kYW50SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDZBMkIxRTE3Q0E3NkIxMDAw
REJDRDggLyogRWxlbWVudENoaWxkSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NkEyQjFEMTdDQTc2QjEwMDBEQkNEOCAvKiBFbGVtZW50
Q2hpbGRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0NkI0MUY5MUNCMjRFNzAwMDhGMTFERSAvKiBTY3JpcHREaXNhbGxvd2VkU2Nv
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NkI0
MUY4MUNCMjRFNzAwMDhGMTFERSAvKiBTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTY5MDAsNiArMTY5MDEs
NyBAQAogCQlFNDYxRDY1QzFCQjBDN0YwMDBDQjU2NDUgLyogU3R5bGVTY29wZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNjb3BlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ2MUQ2NUUxQkIwQzgwRDAwQ0I1NjQ1IC8qIFN0eWxlU2Nv
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVTY29wZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDYyQTRBMDExM0U3MUJFMDA0QTQyMjAgLyogSW50
UG9pbnRIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludFBvaW50SGFz
aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDY0MzI4ODI3M0QyRTdDMDA1Qjc1
NkIgLyogU2VsZWN0b3JNYXRjaGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDZBMkIxQjE3Q0E2NUI5MDAwREJDRDggLyogVHlwZWRFbGVtZW50RGVzY2VuZGFudEl0
ZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkRWxlbWVudERl
c2NlbmRhbnRJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDZBMkIx
RDE3Q0E3NkIxMDAwREJDRDggLyogRWxlbWVudENoaWxkSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENoaWxkSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQ2QjQxRjgxQ0IyNEU3MDAwOEYxMURFIC8qIFNjcmlwdERpc2Fs
bG93ZWRTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHREaXNh
bGxvd2VkU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTIwLDExICsx
ODkyMiwxMSBAQAogCQkxQTU2OUNDNDBEN0UyQjYwMDA3QzM5ODMgLyogYnJpZGdlICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1OUI1OTc3MTExMDg2NTU2
MDA3MTU5RTggLyoganNjICovLAogCQkJCTFBNTY5Q0UyMEQ3RTJCODIwMDdDMzk4MyAvKiBvYmpj
ICovLAogCQkJCTU5OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLywKIAkJCQkx
QTcxRDU3OTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5jcHAgKi8sCiAJCQkJMUE3
MUQ1N0EwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCAqLywKKwkJCQk1OUI1OTc3
MTExMDg2NTU2MDA3MTU5RTggLyoganNjICovLAogCQkJCTFBNTY5Q0VGMEQ3RTJCODIwMDdDMzk4
MyAvKiBydW50aW1lX2FycmF5LmNwcCAqLywKIAkJCQkxQTU2OUNGMDBEN0UyQjgyMDA3QzM5ODMg
LyogcnVudGltZV9hcnJheS5oICovLAogCQkJCTFBNTY5Q0YxMEQ3RTJCODIwMDdDMzk4MyAvKiBy
dW50aW1lX21ldGhvZC5jcHAgKi8sCkBAIC0zMDIyNyw2ICszMDIyOSw3IEBACiAJCQkJQTc5QkFE
QTAxNjFFN0YzRjAwQzJFNjUyIC8qIFJ1bGVTZXQuaCAqLywKIAkJCQlFNDdDRUJFQjI3MDlERkRD
MDBCOEQ4RjUgLyogUnVsZVNldEJ1aWxkZXIuY3BwICovLAogCQkJCUU0N0NFQkU4MjcwOURGRDAw
MEI4RDhGNSAvKiBSdWxlU2V0QnVpbGRlci5oICovLAorCQkJCUU0NjQzMjg4MjczRDJFN0MwMDVC
NzU2QiAvKiBTZWxlY3Rvck1hdGNoaW5nU3RhdGUuaCAqLywKIAkJCQk3MTczREVCRDI2MTRERjA0
MDA5N0RGMzIgLyogU3R5bGVhYmxlLmNwcCAqLywKIAkJCQk3MTM5MjJCQzI1MThBQjcwMDA1REIz
QzIgLyogU3R5bGVhYmxlLmggKi8sCiAJCQkJRTQ1QkE2QjIyMzc2MjI3RTAwNERGQzA3IC8qIFN0
eWxlQWRqdXN0ZXIuY3BwICovLApAQCAtMzU5NjYsNiArMzU5NjksNyBAQAogCQkJCTQzMkQzRkU4
MThBODY1ODQwMEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyNkI5OTk5NzE4MDRENTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1MDcxNTgxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVj
dG9yRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDY0MzI4QTI3M0QyRTdDMDA1Qjc1NkIg
LyogU2VsZWN0b3JNYXRjaGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzEwN0JFMjE4
Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDUzMjJBQzE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjRENDNENjYyMTg4MDM4QjAwRUNFQ0FDIC8qIFNlcmlhbGl6ZWRBdHRhY2ht
ZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggNjljZTBiYWZiMzQ3YTg0ZjUwNDdkNGRlM2I2MThiNWE2
OTljMzFjYi4uY2NkYjQ4YzAxODA4NzMxMWRmMjJjYzU0ZDE1NjcwYjZiODQ1MmE0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtMzgsNyAr
MzgsNyBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNr
ZXJUZXN0RnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDb21waWxlci5oIgotI2luY2x1
ZGUgIlNlbGVjdG9yRmlsdGVyLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JNYXRjaGluZ1N0YXRlLmgi
CiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgog
I2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKQEAgLTgyLDIyICs4MiwyMiBAQCBwdWJsaWM6CiAg
ICAgU2NvcGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsOwogfTsKIAotRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OkVsZW1lbnRSdWxlQ29sbGVjdG9yKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFNjb3BlUnVsZVNldHMmIHJ1bGVTZXRzLCBjb25zdCBTZWxlY3RvckZpbHRlciogc2VsZWN0b3JG
aWx0ZXIpCitFbGVtZW50UnVsZUNvbGxlY3Rvcjo6RWxlbWVudFJ1bGVDb2xsZWN0b3IoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCwgY29uc3QgU2NvcGVSdWxlU2V0cyYgcnVsZVNldHMsIFNlbGVjdG9y
TWF0Y2hpbmdTdGF0ZSogc2VsZWN0b3JNYXRjaGluZ1N0YXRlKQogICAgIDogbV9lbGVtZW50KGVs
ZW1lbnQpCiAgICAgLCBtX2F1dGhvclN0eWxlKHJ1bGVTZXRzLmF1dGhvclN0eWxlKCkpCiAgICAg
LCBtX3VzZXJTdHlsZShydWxlU2V0cy51c2VyU3R5bGUoKSkKICAgICAsIG1fdXNlckFnZW50TWVk
aWFRdWVyeVN0eWxlKHJ1bGVTZXRzLnVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZSgpKQotICAgICwg
bV9zZWxlY3RvckZpbHRlcihzZWxlY3RvckZpbHRlcikKKyAgICAsIG1fc2VsZWN0b3JNYXRjaGlu
Z1N0YXRlKHNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSkKIHsKLSAgICBBU1NFUlQoIW1fc2VsZWN0b3JG
aWx0ZXIgfHwgbV9zZWxlY3RvckZpbHRlci0+cGFyZW50U3RhY2tJc0NvbnNpc3RlbnQoZWxlbWVu
dC5wYXJlbnROb2RlKCkpKTsKKyAgICBBU1NFUlQoIW1fc2VsZWN0b3JNYXRjaGluZ1N0YXRlIHx8
IG1fc2VsZWN0b3JNYXRjaGluZ1N0YXRlLT5zZWxlY3RvckZpbHRlci5wYXJlbnRTdGFja0lzQ29u
c2lzdGVudChlbGVtZW50LnBhcmVudE5vZGUoKSkpOwogfQogCi1FbGVtZW50UnVsZUNvbGxlY3Rv
cjo6RWxlbWVudFJ1bGVDb2xsZWN0b3IoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUnVs
ZVNldCYgYXV0aG9yU3R5bGUsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKiBzZWxlY3RvckZpbHRlcikK
K0VsZW1lbnRSdWxlQ29sbGVjdG9yOjpFbGVtZW50UnVsZUNvbGxlY3Rvcihjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBjb25zdCBSdWxlU2V0JiBhdXRob3JTdHlsZSwgU2VsZWN0b3JNYXRjaGluZ1N0
YXRlKiBzZWxlY3Rvck1hdGNoaW5nU3RhdGUpCiAgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKICAg
ICAsIG1fYXV0aG9yU3R5bGUoYXV0aG9yU3R5bGUpCi0gICAgLCBtX3NlbGVjdG9yRmlsdGVyKHNl
bGVjdG9yRmlsdGVyKQorICAgICwgbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUoc2VsZWN0b3JNYXRj
aGluZ1N0YXRlKQogewotICAgIEFTU0VSVCghbV9zZWxlY3RvckZpbHRlciB8fCBtX3NlbGVjdG9y
RmlsdGVyLT5wYXJlbnRTdGFja0lzQ29uc2lzdGVudChlbGVtZW50LnBhcmVudE5vZGUoKSkpOwor
ICAgIEFTU0VSVCghbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUgfHwgbV9zZWxlY3Rvck1hdGNoaW5n
U3RhdGUtPnNlbGVjdG9yRmlsdGVyLnBhcmVudFN0YWNrSXNDb25zaXN0ZW50KGVsZW1lbnQucGFy
ZW50Tm9kZSgpKSk7CiB9CiAKIGNvbnN0IE1hdGNoUmVzdWx0JiBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6bWF0Y2hSZXN1bHQoKSBjb25zdApAQCAtNDc4LDcgKzQ3OCw3IEBAIHZvaWQgRWxlbWVudFJ1
bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBSdWxlU2V0OjpS
dWxlRGF0YVZlCiAgICAgICAgIGlmICghcnVsZURhdGEuY2FuTWF0Y2hQc2V1ZG9FbGVtZW50KCkg
JiYgbV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCAhPSBQc2V1ZG9JZDo6Tm9uZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChtX3NlbGVjdG9yRmlsdGVyICYmIG1f
c2VsZWN0b3JGaWx0ZXItPmZhc3RSZWplY3RTZWxlY3RvcihydWxlRGF0YS5kZXNjZW5kYW50U2Vs
ZWN0b3JJZGVudGlmaWVySGFzaGVzKCkpKQorICAgICAgICBpZiAobV9zZWxlY3Rvck1hdGNoaW5n
U3RhdGUgJiYgbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUtPnNlbGVjdG9yRmlsdGVyLmZhc3RSZWpl
Y3RTZWxlY3RvcihydWxlRGF0YS5kZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKCkp
KQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byYgcnVsZSA9IHJ1bGVEYXRh
LnN0eWxlUnVsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmgKaW5kZXggYzM1MzFkZDkwOThkZDExZjM2NTI1NTY0Y2Y3NjI5MWVmZjVhNGRhMC4uODVjODJh
NDM0ZmZiYTZmMzBhZDUyZGNkOTMzMzJkYzZkNGI3YmRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCkBAIC0zMSwxNCArMzEsMTEgQEAKICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIFNlbGVjdG9yRmlsdGVyOwotCi1uYW1lc3BhY2UgU3R5bGUgeworbmFt
ZXNwYWNlIFdlYkNvcmU6OlN0eWxlIHsKIAogY2xhc3MgTWF0Y2hSZXF1ZXN0OwogY2xhc3MgU2Nv
cGVSdWxlU2V0czsKK3N0cnVjdCBTZWxlY3Rvck1hdGNoaW5nU3RhdGU7CiAKIGNsYXNzIFBzZXVk
b0VsZW1lbnRSZXF1ZXN0IHsKIHB1YmxpYzoKQEAgLTY5LDggKzY2LDggQEAgc3RydWN0IE1hdGNo
ZWRSdWxlIHsKIAogY2xhc3MgRWxlbWVudFJ1bGVDb2xsZWN0b3IgewogcHVibGljOgotICAgIEVs
ZW1lbnRSdWxlQ29sbGVjdG9yKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBTY29wZVJ1bGVTZXRzJiwg
Y29uc3QgU2VsZWN0b3JGaWx0ZXIqKTsKLSAgICBFbGVtZW50UnVsZUNvbGxlY3Rvcihjb25zdCBF
bGVtZW50JiwgY29uc3QgUnVsZVNldCYgYXV0aG9yU3R5bGUsIGNvbnN0IFNlbGVjdG9yRmlsdGVy
Kik7CisgICAgRWxlbWVudFJ1bGVDb2xsZWN0b3IoY29uc3QgRWxlbWVudCYsIGNvbnN0IFNjb3Bl
UnVsZVNldHMmLCBTZWxlY3Rvck1hdGNoaW5nU3RhdGUqKTsKKyAgICBFbGVtZW50UnVsZUNvbGxl
Y3Rvcihjb25zdCBFbGVtZW50JiwgY29uc3QgUnVsZVNldCYgYXV0aG9yU3R5bGUsIFNlbGVjdG9y
TWF0Y2hpbmdTdGF0ZSopOwogCiAgICAgdm9pZCBzZXRJbmNsdWRlRW1wdHlSdWxlcyhib29sIHZh
bHVlKSB7IG1fc2hvdWxkSW5jbHVkZUVtcHR5UnVsZXMgPSB2YWx1ZTsgfQogCkBAIC0xMzIsNyAr
MTI5LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8Y29uc3QgUnVsZVNldD4gbV9hdXRob3JTdHlsZTsK
ICAgICBSZWZQdHI8Y29uc3QgUnVsZVNldD4gbV91c2VyU3R5bGU7CiAgICAgUmVmUHRyPGNvbnN0
IFJ1bGVTZXQ+IG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlOwotICAgIGNvbnN0IFNlbGVjdG9y
RmlsdGVyKiBtX3NlbGVjdG9yRmlsdGVyOworICAgIFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSogbV9z
ZWxlY3Rvck1hdGNoaW5nU3RhdGU7CiAKICAgICBib29sIG1fc2hvdWxkSW5jbHVkZUVtcHR5UnVs
ZXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1ByaW50U3R5bGUgeyBmYWxzZSB9OwpAQCAtMTUw
LDUgKzE0Nyw0IEBAIHByaXZhdGU6CiAgICAgUHNldWRvSWRTZXQgbV9tYXRjaGVkUHNldWRvRWxl
bWVudElkczsKIH07CiAKLX0gLy8gbmFtZXNwYWNlIFN0eWxlCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TZWxlY3Rvck1hdGNoaW5n
U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1NlbGVjdG9yTWF0Y2hpbmdTdGF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcwYTRlMGQ4MTgxODE3YTQyYmE2ZWJkZDNiMDY0Njc3YTM2YzE2ZmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TZWxlY3Rvck1hdGNoaW5nU3RhdGUu
aApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiU2VsZWN0b3JGaWx0ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmU6OlN0eWxlIHsKKworc3Ry
dWN0IFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSB7CisgICAgU2VsZWN0b3JGaWx0ZXIgc2VsZWN0b3JG
aWx0ZXI7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUlu
dmFsaWRhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3Bw
CmluZGV4IDY1M2Q3ZTYwZjgwM2RiOGFhZTBmOGQ5MmEwYTIyYjUxYTk4YTZjNWQuLmJjZWQ2MzE1
YmRjYzEyZTRiM2UzMWIyNjJmOTRmMzM3N2U4YTY1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlSW52YWxpZGF0b3IuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTFNs
b3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiUnVsZVNldEJ1aWxkZXIuaCIKICNpbmNsdWRlICJSdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JGaWx0ZXIuaCIKKyNpbmNs
dWRlICJTZWxlY3Rvck1hdGNoaW5nU3RhdGUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9ydC5oIgpA
QCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyB2b2lkIGludmFsaWRhdGVBc3NpZ25lZEVsZW1lbnRz
KEhUTUxTbG90RWxlbWVudCYgc2xvdCkKICAgICB9CiB9CiAKLUludmFsaWRhdG9yOjpDaGVja0Rl
c2NlbmRhbnRzIEludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgU2VsZWN0b3JGaWx0ZXIqIGZpbHRlcikKK0ludmFsaWRhdG9yOjpDaGVja0Rlc2Nl
bmRhbnRzIEludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwg
U2VsZWN0b3JNYXRjaGluZ1N0YXRlKiBzZWxlY3Rvck1hdGNoaW5nU3RhdGUpCiB7CiAgICAgaW52
YWxpZGF0ZUluU2hhZG93VHJlZUlmTmVlZGVkKGVsZW1lbnQpOwogCkBAIC0xNTQsNyArMTU0LDcg
QEAgSW52YWxpZGF0b3I6OkNoZWNrRGVzY2VuZGFudHMgSW52YWxpZGF0b3I6OmludmFsaWRhdGVJ
Zk5lZWRlZChFbGVtZW50JiBlbGVtZW50LAogICAgIHN3aXRjaCAoZWxlbWVudC5zdHlsZVZhbGlk
aXR5KCkpIHsKICAgICBjYXNlIFN0eWxlOjpWYWxpZGl0eTo6VmFsaWQ6IHsKICAgICAgICAgZm9y
IChhdXRvJiBydWxlU2V0IDogbV9ydWxlU2V0cykgewotICAgICAgICAgICAgRWxlbWVudFJ1bGVD
b2xsZWN0b3IgcnVsZUNvbGxlY3RvcihlbGVtZW50LCAqcnVsZVNldCwgZmlsdGVyKTsKKyAgICAg
ICAgICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIHJ1bGVDb2xsZWN0b3IoZWxlbWVudCwgKnJ1bGVT
ZXQsIHNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSk7CiAgICAgICAgICAgICBydWxlQ29sbGVjdG9yLnNl
dE1vZGUoU2VsZWN0b3JDaGVja2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXNJZ25vcmluZ1ZpcnR1
YWxQc2V1ZG9FbGVtZW50cyk7CiAKICAgICAgICAgICAgIGlmIChydWxlQ29sbGVjdG9yLm1hdGNo
ZXNBbnlBdXRob3JSdWxlcygpKSB7CkBAIC0xNzUsMTQgKzE3NSwxNCBAQCBJbnZhbGlkYXRvcjo6
Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQsCiAgICAgcmV0dXJuIENoZWNrRGVzY2VuZGFudHM6OlllczsKIH0KIAotdm9pZCBJ
bnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlRm9yVHJlZShFbGVtZW50JiByb290LCBTZWxlY3Rv
ckZpbHRlciogZmlsdGVyKQordm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlRm9yVHJl
ZShFbGVtZW50JiByb290LCBTZWxlY3Rvck1hdGNoaW5nU3RhdGUqIHNlbGVjdG9yTWF0Y2hpbmdT
dGF0ZSkKIHsKLSAgICBpZiAoaW52YWxpZGF0ZUlmTmVlZGVkKHJvb3QsIGZpbHRlcikgPT0gQ2hl
Y2tEZXNjZW5kYW50czo6Tm8pCisgICAgaWYgKGludmFsaWRhdGVJZk5lZWRlZChyb290LCBzZWxl
Y3Rvck1hdGNoaW5nU3RhdGUpID09IENoZWNrRGVzY2VuZGFudHM6Ok5vKQogICAgICAgICByZXR1
cm47Ci0gICAgaW52YWxpZGF0ZVN0eWxlRm9yRGVzY2VuZGFudHMocm9vdCwgZmlsdGVyKTsKKyAg
ICBpbnZhbGlkYXRlU3R5bGVGb3JEZXNjZW5kYW50cyhyb290LCBzZWxlY3Rvck1hdGNoaW5nU3Rh
dGUpOwogfQogCi12b2lkIEludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGVGb3JEZXNjZW5kYW50
cyhFbGVtZW50JiByb290LCBTZWxlY3RvckZpbHRlciogZmlsdGVyKQordm9pZCBJbnZhbGlkYXRv
cjo6aW52YWxpZGF0ZVN0eWxlRm9yRGVzY2VuZGFudHMoRWxlbWVudCYgcm9vdCwgU2VsZWN0b3JN
YXRjaGluZ1N0YXRlKiBzZWxlY3Rvck1hdGNoaW5nU3RhdGUpCiB7CiAgICAgVmVjdG9yPEVsZW1l
bnQqLCAyMD4gcGFyZW50U3RhY2s7CiAgICAgRWxlbWVudCogcHJldmlvdXNFbGVtZW50ID0gJnJv
b3Q7CkBAIC0xOTIsMTkgKzE5MiwxOSBAQCB2b2lkIEludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5
bGVGb3JEZXNjZW5kYW50cyhFbGVtZW50JiByb290LCBTZWxlY3RvckZpbHRlciogZgogICAgICAg
ICBpZiAocGFyZW50U3RhY2suaXNFbXB0eSgpIHx8IHBhcmVudFN0YWNrLmxhc3QoKSAhPSBwYXJl
bnQpIHsKICAgICAgICAgICAgIGlmIChwYXJlbnQgPT0gcHJldmlvdXNFbGVtZW50KSB7CiAgICAg
ICAgICAgICAgICAgcGFyZW50U3RhY2suYXBwZW5kKHBhcmVudCk7Ci0gICAgICAgICAgICAgICAg
aWYgKGZpbHRlcikKLSAgICAgICAgICAgICAgICAgICAgZmlsdGVyLT5wdXNoUGFyZW50SW5pdGlh
bGl6aW5nSWZOZWVkZWQoKnBhcmVudCk7CisgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yTWF0
Y2hpbmdTdGF0ZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3JNYXRjaGluZ1N0YXRlLT5z
ZWxlY3RvckZpbHRlci5wdXNoUGFyZW50SW5pdGlhbGl6aW5nSWZOZWVkZWQoKnBhcmVudCk7CiAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHdoaWxlIChwYXJlbnRTdGFjay5s
YXN0KCkgIT0gcGFyZW50KSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVudFN0YWNrLnJlbW92
ZUxhc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbHRlci0+cG9wUGFyZW50KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChz
ZWxlY3Rvck1hdGNoaW5nU3RhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rvck1h
dGNoaW5nU3RhdGUtPnNlbGVjdG9yRmlsdGVyLnBvcFBhcmVudCgpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBwcmV2aW91c0VsZW1lbnQgPSAm
ZGVzY2VuZGFudDsKIAotICAgICAgICBpZiAoaW52YWxpZGF0ZUlmTmVlZGVkKGRlc2NlbmRhbnQs
IGZpbHRlcikgPT0gQ2hlY2tEZXNjZW5kYW50czo6WWVzKQorICAgICAgICBpZiAoaW52YWxpZGF0
ZUlmTmVlZGVkKGRlc2NlbmRhbnQsIHNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSkgPT0gQ2hlY2tEZXNj
ZW5kYW50czo6WWVzKQogICAgICAgICAgICAgaXQudHJhdmVyc2VOZXh0KCk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIGl0LnRyYXZlcnNlTmV4dFNraXBwaW5nQ2hpbGRyZW4oKTsKQEAgLTIx
OSw4ICsyMTksOCBAQCB2b2lkIEludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUoRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBTZWxlY3RvckZpbHRlciBmaWx0ZXI7Ci0gICAgaW52YWxpZGF0ZVN0eWxlRm9yVHJlZSgq
ZG9jdW1lbnRFbGVtZW50LCAmZmlsdGVyKTsKKyAgICBTZWxlY3Rvck1hdGNoaW5nU3RhdGUgc2Vs
ZWN0b3JNYXRjaGluZ1N0YXRlOworICAgIGludmFsaWRhdGVTdHlsZUZvclRyZWUoKmRvY3VtZW50
RWxlbWVudCwgJnNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSk7CiB9CiAKIHZvaWQgSW52YWxpZGF0b3I6
OmludmFsaWRhdGVTdHlsZShTY29wZSYgc2NvcGUpCkBAIC0yNDYsOCArMjQ2LDggQEAgdm9pZCBJ
bnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiAgICAg
ICAgIHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOwogCiAgICAg
Zm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KHNoYWRvd1Jvb3QpKSB7
Ci0gICAgICAgIFNlbGVjdG9yRmlsdGVyIGZpbHRlcjsKLSAgICAgICAgaW52YWxpZGF0ZVN0eWxl
Rm9yVHJlZShjaGlsZCwgJmZpbHRlcik7CisgICAgICAgIFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSBz
ZWxlY3Rvck1hdGNoaW5nU3RhdGU7CisgICAgICAgIGludmFsaWRhdGVTdHlsZUZvclRyZWUoY2hp
bGQsICZzZWxlY3Rvck1hdGNoaW5nU3RhdGUpOwogICAgIH0KIH0KIApAQCAtMjczLDggKzI3Myw4
IEBAIHZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCwgTWF0Y2hFbGVtZW50CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIE1hdGNoRWxlbWVudDo6QW5jZXN0b3I6IHsKLSAgICAgICAgU2VsZWN0b3JGaWx0ZXIgZmls
dGVyOwotICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JEZXNjZW5kYW50cyhlbGVtZW50LCAmZmls
dGVyKTsKKyAgICAgICAgU2VsZWN0b3JNYXRjaGluZ1N0YXRlIHNlbGVjdG9yTWF0Y2hpbmdTdGF0
ZTsKKyAgICAgICAgaW52YWxpZGF0ZVN0eWxlRm9yRGVzY2VuZGFudHMoZWxlbWVudCwgJnNlbGVj
dG9yTWF0Y2hpbmdTdGF0ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIE1hdGNo
RWxlbWVudDo6RGlyZWN0U2libGluZzoKQEAgLTI5NywxMCArMjk3LDEwIEBAIHZvaWQgSW52YWxp
ZGF0b3I6OmludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwg
TWF0Y2hFbGVtZW50CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNYXRjaEVs
ZW1lbnQ6OkFuY2VzdG9yU2libGluZzogewotICAgICAgICBTZWxlY3RvckZpbHRlciBmaWx0ZXI7
CisgICAgICAgIFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSBzZWxlY3Rvck1hdGNoaW5nU3RhdGU7CiAg
ICAgICAgIGZvciAoYXV0byogc2libGluZyA9IGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nKCk7
IHNpYmxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLT5uZXh0RWxlbWVudFNpYmxpbmcoKSkgewotICAg
ICAgICAgICAgZmlsdGVyLnBvcFBhcmVudHNVbnRpbChlbGVtZW50LnBhcmVudEVsZW1lbnQoKSk7
Ci0gICAgICAgICAgICBpbnZhbGlkYXRlU3R5bGVGb3JEZXNjZW5kYW50cygqc2libGluZywgJmZp
bHRlcik7CisgICAgICAgICAgICBzZWxlY3Rvck1hdGNoaW5nU3RhdGUuc2VsZWN0b3JGaWx0ZXIu
cG9wUGFyZW50c1VudGlsKGVsZW1lbnQucGFyZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgIGlu
dmFsaWRhdGVTdHlsZUZvckRlc2NlbmRhbnRzKCpzaWJsaW5nLCAmc2VsZWN0b3JNYXRjaGluZ1N0
YXRlKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUludmFsaWRhdG9yLmgKaW5kZXggMDZkYjk2OTgzNjkwNDMyMTJjYjFiOTZlZmNiN2Fi
NmQxODJhYjZhOC4uNGQ2ZThlM2EzMzA1MzJhMTc3NWEzMmEyN2IwNDZlMmIwZmUwNTdhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuaApAQCAtMzUsNyArMzUsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBNZWRpYVF1ZXJ5RXZhbHVhdG9yOwotY2xhc3MgU2VsZWN0b3JGaWx0ZXI7CiBjbGFzcyBTaGFk
b3dSb290OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRzOwogCkBAIC00NCw2ICs0Myw3IEBAIG5h
bWVzcGFjZSBTdHlsZSB7CiBjbGFzcyBTY29wZTsKIAogc3RydWN0IEludmFsaWRhdGlvblJ1bGVT
ZXQ7CitzdHJ1Y3QgU2VsZWN0b3JNYXRjaGluZ1N0YXRlOwogCiBjbGFzcyBJbnZhbGlkYXRvciB7
CiBwdWJsaWM6CkBAIC02OCw5ICs2OCw5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBlbnVt
IGNsYXNzIENoZWNrRGVzY2VuZGFudHMgeyBZZXMsIE5vIH07Ci0gICAgQ2hlY2tEZXNjZW5kYW50
cyBpbnZhbGlkYXRlSWZOZWVkZWQoRWxlbWVudCYsIGNvbnN0IFNlbGVjdG9yRmlsdGVyKik7Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVGb3JUcmVlKEVsZW1lbnQmLCBTZWxlY3RvckZpbHRlciop
OwotICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlRm9yRGVzY2VuZGFudHMoRWxlbWVudCYsIFNlbGVj
dG9yRmlsdGVyKik7CisgICAgQ2hlY2tEZXNjZW5kYW50cyBpbnZhbGlkYXRlSWZOZWVkZWQoRWxl
bWVudCYsIFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSopOworICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxl
Rm9yVHJlZShFbGVtZW50JiwgU2VsZWN0b3JNYXRjaGluZ1N0YXRlKik7CisgICAgdm9pZCBpbnZh
bGlkYXRlU3R5bGVGb3JEZXNjZW5kYW50cyhFbGVtZW50JiwgU2VsZWN0b3JNYXRjaGluZ1N0YXRl
Kik7CiAgICAgdm9pZCBpbnZhbGlkYXRlSW5TaGFkb3dUcmVlSWZOZWVkZWQoRWxlbWVudCYpOwog
ICAgIHZvaWQgaW52YWxpZGF0ZVNoYWRvd1BzZXVkb0VsZW1lbnRzKFNoYWRvd1Jvb3QmKTsKICAg
ICB2b2lkIGludmFsaWRhdGVTdHlsZVdpdGhNYXRjaEVsZW1lbnQoRWxlbWVudCYsIE1hdGNoRWxl
bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGQ2YTY2MjVj
ZmZiMDFlZTgzMmNmYzk2MmIxZDQyNjhhZDhjYzhlOWYuLjIwNDUxODIwZGYxYjBmZTVhMzMzNTA4
Yjk0OTVhOWU3MGM2NTZiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC0yNDUsNyArMjQ1LDcgQEAgRWxlbWVudFN0eWxlIFJlc29sdmVyOjpzdHlsZUZvckVsZW1l
bnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVzb2x1dGlvbkMKIAogICAgIFVzZXJB
Z2VudFN0eWxlOjplbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KGVsZW1lbnQpOwog
Ci0gICAgRWxlbWVudFJ1bGVDb2xsZWN0b3IgY29sbGVjdG9yKGVsZW1lbnQsIG1fcnVsZVNldHMs
IGNvbnRleHQuc2VsZWN0b3JGaWx0ZXIpOworICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIGNvbGxl
Y3RvcihlbGVtZW50LCBtX3J1bGVTZXRzLCBjb250ZXh0LnNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSk7
CiAgICAgY29sbGVjdG9yLnNldE1lZGl1bSgmbV9tZWRpYVF1ZXJ5RXZhbHVhdG9yKTsKIAogICAg
IGlmIChtYXRjaGluZ0JlaGF2aW9yID09IFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaE9ubHlV
c2VyQWdlbnRSdWxlcykKQEAgLTM5Miw3ICszOTIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IFJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxl
bQogICAgICAgICBzdGF0ZS5zZXRQYXJlbnRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKnN0
YXRlLnN0eWxlKCkpKTsKICAgICB9CiAKLSAgICBFbGVtZW50UnVsZUNvbGxlY3RvciBjb2xsZWN0
b3IoZWxlbWVudCwgbV9ydWxlU2V0cywgY29udGV4dC5zZWxlY3RvckZpbHRlcik7CisgICAgRWxl
bWVudFJ1bGVDb2xsZWN0b3IgY29sbGVjdG9yKGVsZW1lbnQsIG1fcnVsZVNldHMsIGNvbnRleHQu
c2VsZWN0b3JNYXRjaGluZ1N0YXRlKTsKICAgICBjb2xsZWN0b3Iuc2V0UHNldWRvRWxlbWVudFJl
cXVlc3QocHNldWRvRWxlbWVudFJlcXVlc3QpOwogICAgIGNvbGxlY3Rvci5zZXRNZWRpdW0oJm1f
bWVkaWFRdWVyeUV2YWx1YXRvcik7CiAgICAgY29sbGVjdG9yLm1hdGNoVUFSdWxlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCmluZGV4IDYxNGMxNmM0ODhlMmIwZGFjNmNkZTgy
NjAwMjRmOGM3Y2QzNjI4YWQuLjRkMWU4ODQ5Y2U3YmYxOTBlNTliMDhhOGVhZDEyOTY1MTg4ZTlh
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKQEAgLTcwLDYgKzcwLDggQEAg
ZW51bSBjbGFzcyBSdWxlTWF0Y2hpbmdCZWhhdmlvcjogdWludDhfdCB7CiAKIG5hbWVzcGFjZSBT
dHlsZSB7CiAKK3N0cnVjdCBTZWxlY3Rvck1hdGNoaW5nU3RhdGU7CisKIHN0cnVjdCBFbGVtZW50
U3R5bGUgewogICAgIEVsZW1lbnRTdHlsZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHJl
bmRlclN0eWxlLCBzdGQ6OnVuaXF1ZV9wdHI8UmVsYXRpb25zPiByZWxhdGlvbnMgPSB7IH0pCiAg
ICAgICAgIDogcmVuZGVyU3R5bGUoV1RGTW92ZShyZW5kZXJTdHlsZSkpCkBAIC04NSw3ICs4Nyw3
IEBAIHN0cnVjdCBSZXNvbHV0aW9uQ29udGV4dCB7CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHBh
cmVudEJveFN0eWxlIHsgbnVsbHB0ciB9OwogICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgcHJvdmlk
ZWQgZHVyaW5nIHN0eWxlIHJlc29sdXRpb24gd2hlbiB1cC10by1kYXRlIGRvY3VtZW50IGVsZW1l
bnQgc3R5bGUgaXMgbm90IGF2YWlsYWJsZSB2aWEgRE9NLgogICAgIGNvbnN0IFJlbmRlclN0eWxl
KiBkb2N1bWVudEVsZW1lbnRTdHlsZSB7IG51bGxwdHIgfTsKLSAgICBjb25zdCBTZWxlY3RvckZp
bHRlciogc2VsZWN0b3JGaWx0ZXIgeyBudWxscHRyIH07CisgICAgU2VsZWN0b3JNYXRjaGluZ1N0
YXRlKiBzZWxlY3Rvck1hdGNoaW5nU3RhdGUgeyBudWxscHRyIH07CiB9OwogCiBjbGFzcyBSZXNv
bHZlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJlc29sdmVyPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVNoYXJpbmdSZXNvbHZlci5jcHAKaW5kZXggZTljZGJlYTU0NTFlMTdkYTk5ZDQ1
NzkzZjZkZDU1YTNjODQxN2I0Yy4uNWMwZWUxM2I2MTRmZTgyYmJlZWFhYjI1ZjUyYzBlNzAxYTcw
ZmU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmNw
cApAQCAtNTcsMTAgKzU3LDEwIEBAIHN0cnVjdCBTaGFyaW5nUmVzb2x2ZXI6OkNvbnRleHQgewog
ICAgIEluc2lkZUxpbmsgZWxlbWVudExpbmtTdGF0ZTsKIH07CiAKLVNoYXJpbmdSZXNvbHZlcjo6
U2hhcmluZ1Jlc29sdmVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU2NvcGVSdWxl
U2V0cyYgcnVsZVNldHMsIGNvbnN0IFNlbGVjdG9yRmlsdGVyJiBzZWxlY3RvckZpbHRlcikKK1No
YXJpbmdSZXNvbHZlcjo6U2hhcmluZ1Jlc29sdmVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU2NvcGVSdWxlU2V0cyYgcnVsZVNldHMsIFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSYgc2Vs
ZWN0b3JNYXRjaGluZ1N0YXRlKQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKICAgICAsIG1f
cnVsZVNldHMocnVsZVNldHMpCi0gICAgLCBtX3NlbGVjdG9yRmlsdGVyKHNlbGVjdG9yRmlsdGVy
KQorICAgICwgbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUoc2VsZWN0b3JNYXRjaGluZ1N0YXRlKQog
ewogfQogCkBAIC0zMjYsNyArMzI2LDcgQEAgYm9vbCBTaGFyaW5nUmVzb2x2ZXI6OnN0eWxlU2hh
cmluZ0NhbmRpZGF0ZU1hdGNoZXNSdWxlU2V0KGNvbnN0IFN0eWxlZEVsZW1lbnQmIGUKICAgICBp
ZiAoIXJ1bGVTZXQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEVsZW1lbnRSdWxlQ29s
bGVjdG9yIGNvbGxlY3Rvcihjb25zdF9jYXN0PFN0eWxlZEVsZW1lbnQmPihlbGVtZW50KSwgbV9y
dWxlU2V0cywgJm1fc2VsZWN0b3JGaWx0ZXIpOworICAgIEVsZW1lbnRSdWxlQ29sbGVjdG9yIGNv
bGxlY3RvcihlbGVtZW50LCBtX3J1bGVTZXRzLCAmbV9zZWxlY3Rvck1hdGNoaW5nU3RhdGUpOwog
ICAgIHJldHVybiBjb2xsZWN0b3IuaGFzQW55TWF0Y2hpbmdSdWxlcyhydWxlU2V0KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTaGFyaW5nUmVzb2x2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2hhcmluZ1Jlc29sdmVyLmgKaW5kZXggZDVhYjk0
NDdlMzhmOTU2MzM1MzZiNTQ4ZDBlMzNhZTY2NWI2YmRmYy4uZmEyM2IxNmNlODkxZDllMzc3OGEy
YzI1YjVkN2RjMzI2YjIxYzE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVTaGFyaW5nUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNoYXJp
bmdSZXNvbHZlci5oCkBAIC0zNCw3ICszNCw2IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJTdHlsZTsKLWNsYXNzIFNlbGVjdG9yRmls
dGVyOwogY2xhc3MgU3BhY2VTcGxpdFN0cmluZzsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiAKQEAg
LTQzLDEwICs0MiwxMSBAQCBuYW1lc3BhY2UgU3R5bGUgewogY2xhc3MgUnVsZVNldDsKIGNsYXNz
IFNjb3BlUnVsZVNldHM7CiBjbGFzcyBVcGRhdGU7CitzdHJ1Y3QgU2VsZWN0b3JNYXRjaGluZ1N0
YXRlOwogCiBjbGFzcyBTaGFyaW5nUmVzb2x2ZXIgewogcHVibGljOgotICAgIFNoYXJpbmdSZXNv
bHZlcihjb25zdCBEb2N1bWVudCYsIGNvbnN0IFNjb3BlUnVsZVNldHMmLCBjb25zdCBTZWxlY3Rv
ckZpbHRlciYpOworICAgIFNoYXJpbmdSZXNvbHZlcihjb25zdCBEb2N1bWVudCYsIGNvbnN0IFNj
b3BlUnVsZVNldHMmLCBTZWxlY3Rvck1hdGNoaW5nU3RhdGUmKTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTdHlsZT4gcmVzb2x2ZShjb25zdCBTdHlsZWFibGUmLCBjb25zdCBVcGRhdGUm
KTsKIApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogCiAgICAgY29uc3QgRG9jdW1lbnQmIG1f
ZG9jdW1lbnQ7CiAgICAgY29uc3QgU2NvcGVSdWxlU2V0cyYgbV9ydWxlU2V0czsKLSAgICBjb25z
dCBTZWxlY3RvckZpbHRlciYgbV9zZWxlY3RvckZpbHRlcjsKKyAgICBTZWxlY3Rvck1hdGNoaW5n
U3RhdGUmIG1fc2VsZWN0b3JNYXRjaGluZ1N0YXRlOwogCiAgICAgLy8gRklYTUU6IFVzZSBXZWFr
SGFzaE1hcCBvciBIYXNoTWFwPENoZWNrZWRQdHIsIENoZWNrZWRQdHI+LgogICAgIEhhc2hNYXA8
Y29uc3QgRWxlbWVudCosIGNvbnN0IEVsZW1lbnQqPiBtX2VsZW1lbnRzU2hhcmluZ1N0eWxlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IGUyOGJiZGIy
NmVkZDQwMzM2NjI4MDIyZTZkMWJlMmVjZmZlMTY5NGIuLjIwZTJlM2Q2NTczYzQ4NjdhNWQ5M2Y5
ZThmZGZlMThiZTBiZmVjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAKQEAgLTczLDcgKzczLDcgQEAgVHJlZVJlc29sdmVyOjp+VHJlZVJlc29sdmVyKCkg
PSBkZWZhdWx0OwogCiBUcmVlUmVzb2x2ZXI6OlNjb3BlOjpTY29wZShEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiByZXNvbHZlcihkb2N1bWVudC5zdHlsZVNjb3BlKCkucmVzb2x2ZXIoKSkKLSAg
ICAsIHNoYXJpbmdSZXNvbHZlcihkb2N1bWVudCwgcmVzb2x2ZXItPnJ1bGVTZXRzKCksIHNlbGVj
dG9yRmlsdGVyKQorICAgICwgc2hhcmluZ1Jlc29sdmVyKGRvY3VtZW50LCByZXNvbHZlci0+cnVs
ZVNldHMoKSwgc2VsZWN0b3JNYXRjaGluZ1N0YXRlKQogewogICAgIGRvY3VtZW50LnNldElzUmVz
b2x2aW5nVHJlZVN0eWxlKHRydWUpOwogCkBAIC04NCw3ICs4NCw3IEBAIFRyZWVSZXNvbHZlcjo6
U2NvcGU6OlNjb3BlKERvY3VtZW50JiBkb2N1bWVudCkKIAogVHJlZVJlc29sdmVyOjpTY29wZTo6
U2NvcGUoU2hhZG93Um9vdCYgc2hhZG93Um9vdCwgU2NvcGUmIGVuY2xvc2luZ1Njb3BlKQogICAg
IDogcmVzb2x2ZXIoc2hhZG93Um9vdC5zdHlsZVNjb3BlKCkucmVzb2x2ZXIoKSkKLSAgICAsIHNo
YXJpbmdSZXNvbHZlcihzaGFkb3dSb290LmRvY3VtZW50U2NvcGUoKSwgcmVzb2x2ZXItPnJ1bGVT
ZXRzKCksIHNlbGVjdG9yRmlsdGVyKQorICAgICwgc2hhcmluZ1Jlc29sdmVyKHNoYWRvd1Jvb3Qu
ZG9jdW1lbnRTY29wZSgpLCByZXNvbHZlci0+cnVsZVNldHMoKSwgc2VsZWN0b3JNYXRjaGluZ1N0
YXRlKQogICAgICwgc2hhZG93Um9vdCgmc2hhZG93Um9vdCkKICAgICAsIGVuY2xvc2luZ1Njb3Bl
KCZlbmNsb3NpbmdTY29wZSkKIHsKQEAgLTMwMyw3ICszMDMsNyBAQCBSZXNvbHV0aW9uQ29udGV4
dCBUcmVlUmVzb2x2ZXI6Om1ha2VSZXNvbHV0aW9uQ29udGV4dCgpCiAgICAgICAgICZwYXJlbnQo
KS5zdHlsZSwKICAgICAgICAgcGFyZW50Qm94U3R5bGUoKSwKICAgICAgICAgbV9kb2N1bWVudEVs
ZW1lbnRTdHlsZS5nZXQoKSwKLSAgICAgICAgJnNjb3BlKCkuc2VsZWN0b3JGaWx0ZXIKKyAgICAg
ICAgJnNjb3BlKCkuc2VsZWN0b3JNYXRjaGluZ1N0YXRlCiAgICAgfTsKIH0KIApAQCAtMzEzLDcg
KzMxMyw3IEBAIFJlc29sdXRpb25Db250ZXh0IFRyZWVSZXNvbHZlcjo6bWFrZVJlc29sdXRpb25D
b250ZXh0Rm9yUHNldWRvRWxlbWVudChjb25zdCBFbGVtCiAgICAgICAgIGVsZW1lbnRVcGRhdGUu
c3R5bGUuZ2V0KCksCiAgICAgICAgIHBhcmVudEJveFN0eWxlRm9yUHNldWRvRWxlbWVudChlbGVt
ZW50VXBkYXRlKSwKICAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKSwKLSAgICAg
ICAgJnNjb3BlKCkuc2VsZWN0b3JGaWx0ZXIKKyAgICAgICAgJnNjb3BlKCkuc2VsZWN0b3JNYXRj
aGluZ1N0YXRlCiAgICAgfTsKIH0KIApAQCAtMzk4LDcgKzM5OCw3IEBAIEVsZW1lbnRVcGRhdGUg
VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclN0CiAKIHZvaWQgVHJlZVJlc29sdmVyOjpwdXNoUGFyZW50KEVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgQ2hhbmdlIGNoYW5nZSwgRGVzY2VuZGFudHNU
b1Jlc29sdmUgZGVzY2VuZGFudHNUb1Jlc29sdmUpCiB7Ci0gICAgc2NvcGUoKS5zZWxlY3RvckZp
bHRlci5wdXNoUGFyZW50KCZlbGVtZW50KTsKKyAgICBzY29wZSgpLnNlbGVjdG9yTWF0Y2hpbmdT
dGF0ZS5zZWxlY3RvckZpbHRlci5wdXNoUGFyZW50KCZlbGVtZW50KTsKIAogICAgIFBhcmVudCBw
YXJlbnQoZWxlbWVudCwgc3R5bGUsIGNoYW5nZSwgZGVzY2VuZGFudHNUb1Jlc29sdmUpOwogCkBA
IC00MjQsNyArNDI0LDcgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnBvcFBhcmVudCgpCiAgICAgaWYg
KHBhcmVudCgpLmRpZFB1c2hTY29wZSkKICAgICAgICAgcG9wU2NvcGUoKTsKIAotICAgIHNjb3Bl
KCkuc2VsZWN0b3JGaWx0ZXIucG9wUGFyZW50KCk7CisgICAgc2NvcGUoKS5zZWxlY3Rvck1hdGNo
aW5nU3RhdGUuc2VsZWN0b3JGaWx0ZXIucG9wUGFyZW50KCk7CiAKICAgICBtX3BhcmVudFN0YWNr
LnJlbW92ZUxhc3QoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5o
CmluZGV4IDU2MmVmNzdmODBlYThmN2U2ODcyODcwMWEzYzA4YzZkMjIxOTAxZTcuLmZhMjVhNTE1
NDlkNDBkODdkMDU1NzEzODI1ZWZlYmEwNDZlNmUwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKLSNpbmNsdWRlICJTZWxlY3RvckZpbHRlci5oIgor
I2luY2x1ZGUgIlNlbGVjdG9yTWF0Y2hpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2hhbmdl
LmgiCiAjaW5jbHVkZSAiU3R5bGVTaGFyaW5nUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJTdHlsZVVw
ZGF0ZS5oIgpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIHN0cnVjdCBTY29wZSA6IFJl
ZkNvdW50ZWQ8U2NvcGU+IHsKICAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVE
X1dJVEhfSEVBUF9JREVOVElGSUVSKFRyZWVSZXNvbHZlclNjb3BlKTsKICAgICAgICAgUmVmPFJl
c29sdmVyPiByZXNvbHZlcjsKLSAgICAgICAgU2VsZWN0b3JGaWx0ZXIgc2VsZWN0b3JGaWx0ZXI7
CisgICAgICAgIFNlbGVjdG9yTWF0Y2hpbmdTdGF0ZSBzZWxlY3Rvck1hdGNoaW5nU3RhdGU7CiAg
ICAgICAgIFNoYXJpbmdSZXNvbHZlciBzaGFyaW5nUmVzb2x2ZXI7CiAgICAgICAgIFJlZlB0cjxT
aGFkb3dSb290PiBzaGFkb3dSb290OwogICAgICAgICBSZWZQdHI8U2NvcGU+IGVuY2xvc2luZ1Nj
b3BlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4IDg1YmFmMzVkMDk2NzU4NjM3MGFi
ZGNlOTEyNjdjMWU2YzYzY2MzYWYuLmJiNWM4NjYzZDcxYzE0MDA4YjAzZDU1YzAwZDZkODhlODVi
YjkzNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKQEAgLTY0Myw4ICs2NDMsOCBAQCBz
dGQ6Om9wdGlvbmFsPFN0eWxlOjpFbGVtZW50U3R5bGU+IFNWR0VsZW1lbnQ6OnJlc29sdmVDdXN0
b21TdHlsZShjb25zdCBTdHlsZTo6UgogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIGluIGEgPHVz
ZT4gdHJlZSB3ZSBnZXQgdGhlIHN0eWxlIGZyb20gdGhlIGRlZmluaXRpb24gdHJlZS4KICAgICBp
ZiAoUmVmUHRyIHN0eWxlRWxlbWVudCA9IHRoaXMtPmNvcnJlc3BvbmRpbmdFbGVtZW50KCkpIHsK
ICAgICAgICAgYXV0byBzdHlsZUVsZW1lbnRSZXNvbHV0aW9uQ29udGV4dCA9IHJlc29sdXRpb25D
b250ZXh0OwotICAgICAgICAvLyBDYW4ndCB1c2UgdGhlIHNlbGVjdG9yIGZpbHRlciBzaW5jZSB3
ZSBhcmUgZ29pbmcgdG8gYW5vdGhlciBwYXJ0IG9mIHRoZSB0cmVlLgotICAgICAgICBzdHlsZUVs
ZW1lbnRSZXNvbHV0aW9uQ29udGV4dC5zZWxlY3RvckZpbHRlciA9IG51bGxwdHI7CisgICAgICAg
IC8vIENhbid0IHVzZSB0aGUgc3RhdGUgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGFub3RoZXIgcGFy
dCBvZiB0aGUgdHJlZS4KKyAgICAgICAgc3R5bGVFbGVtZW50UmVzb2x1dGlvbkNvbnRleHQuc2Vs
ZWN0b3JNYXRjaGluZ1N0YXRlID0gbnVsbHB0cjsKICAgICAgICAgYXV0byBzdHlsZSA9IHN0eWxl
RWxlbWVudC0+cmVzb2x2ZVN0eWxlKHN0eWxlRWxlbWVudFJlc29sdXRpb25Db250ZXh0KTsKICAg
ICAgICAgU3R5bGU6OkFkanVzdGVyOjphZGp1c3RTVkdFbGVtZW50U3R5bGUoKnN0eWxlLnJlbmRl
clN0eWxlLCAqdGhpcyk7CiAgICAgICAgIHJldHVybiBzdHlsZTsK
</data>
<flag name="commit-queue"
          id="468799"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>