<?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>204449</bug_id>
          
          <creation_ts>2019-11-21 02:28:09 -0800</creation_ts>
          <short_desc>MediaQueryEvaluator shouldn&apos;t know about style resolver</short_desc>
          <delta_ts>2019-11-21 08:51:19 -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>
          
          <blocked>204448</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</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>1592320</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-21 02:28:09 -0800</bug_when>
    <thetext>Gather dependencies to a struct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592333</commentid>
    <comment_count>1</comment_count>
      <attachid>384042</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-21 03:54:04 -0800</bug_when>
    <thetext>Created attachment 384042
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592342</commentid>
    <comment_count>2</comment_count>
      <attachid>384046</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-21 04:47:57 -0800</bug_when>
    <thetext>Created attachment 384046
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592383</commentid>
    <comment_count>3</comment_count>
      <attachid>384046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-21 08:50:21 -0800</bug_when>
    <thetext>Comment on attachment 384046
patch

Clearing flags on attachment: 384046

Committed r252736: &lt;https://trac.webkit.org/changeset/252736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592384</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-21 08:50:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592385</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-21 08:51:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57396106&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384042</attachid>
            <date>2019-11-21 03:54:04 -0800</date>
            <delta_ts>2019-11-21 04:47:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>mediaqueryevaluator-cleanup.patch</filename>
            <type>text/plain</type>
            <size>31101</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NTY4YWNlMTliMS4uNmQ3YzgyZTY3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxOS0xMS0yMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBzaG91bGRuJ3Qga25vdyBhYm91dCBzdHls
ZSByZXNvbHZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA0NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR2F0aGVyIGR5bmFtaWMgZGVwZW5kZW5jaWVzIGZyb20gTWVkaWFRdWVyeUV2YWx1YXRvciBp
bnRvIGEgc3RydWN0IHJhdGhlciB0aGFuIHdyaXRpbmcgdGhlbSBkaXJlY3RseSB0byByZXNvbHZl
ci4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlIGNvbnN0KToKKworICAgICAgICBE
ZWxldGUgYSBkdXBsaWNhdGUgdmVyc2lvbiBvZiBldmFsdWF0ZSgpIHRoYXQgcmV0dXJuZWQgcGFy
dGlhbCBkZXBlbmRlbmNpZXMuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzOjphcHBlbmQpOgor
ICAgICAgICAqIGNzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2l6ZXNBdHRyaWJ1dGVQYXJzZXI6Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyk6CisK
KyAgICAgICAgVGhpcyBkb2Vzbid0IG5lZWQgcmVzb2x2ZXIsIHRoZSBwaWN0dXJlIGVsZW1lbnQg
aW1wbGVtZW50YXRpb24gdGFrZXMgY2FyZSBvZiB0aGUgbWVkaWEgcXVlcnkgZGVwZW5kZW5jaWVz
LgorCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmJlc3RGaXRTb3VyY2VGcm9tUGljdHVyZUVsZW1lbnQpOgor
ICAgICAgICAqIHN0eWxlL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1
bGVTZXQ6OmFkZENoaWxkUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJ1bGVTZXQ6
OmFkZFJ1bGVzRnJvbVNoZWV0KToKKyAgICAgICAgKiBzdHlsZS9SdWxlU2V0Lmg6CisgICAgICAg
ICogc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVz
b2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
OjpSZXNvbHZlcjo6YWRkTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpSZXNvbHZlcjo6aGFzTWVkaWFRdWVyaWVzQWZmZWN0ZWRCeVZpZXdwb3J0Q2hh
bmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6aGFzTWVkaWFR
dWVyaWVzQWZmZWN0ZWRCeUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6Omhhc01lZGlhUXVlcmllc0FmZmVjdGVkQnlB
cHBlYXJhbmNlQ2hhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZl
cjo6YWRkVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6YWRkQWNjZXNzaWJpbGl0eVNldHRpbmdzRGVw
ZW5kZW50TWVkaWFRdWVyeVJlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6UmVzb2x2ZXI6OmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KTogRGVs
ZXRlZC4KKworICAgICAgICBTdG9yZSBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMgc3RydWN0IGlu
c3RlYWQgb2YgaW5kaXZpZHVhbCB2ZWN0b3JzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNv
bHZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpoYXNWaWV3cG9ydERl
cGVuZGVudE1lZGlhUXVlcmllcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVz
b2x2ZXI6Omhhc0FjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcmllcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6Omhhc0FwcGVhcmFuY2VEZXBl
bmRlbnRNZWRpYVF1ZXJpZXMgY29uc3QpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0czo6dXBkYXRl
VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlSWZOZWVkZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlNjb3BlUnVsZVNldHM6OmluaXRpYWxpemVVc2VyU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlNjb3BlUnVsZVNldHM6OmNvbGxlY3RSdWxlc0Zyb21Vc2VyU3R5bGVT
aGVldHMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlUnVsZVNldHM6OmFwcGVuZEF1
dGhvclN0eWxlU2hlZXRzKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaDoK
KwogMjAxOS0xMS0xOSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVuYW1lIENTU0RlZmF1bHRTdHlsZVNoZWV0cyB0byBVc2VyQWdlbnRTdHlsZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDQxMTVjNDJhNzExLi4w
NTgxY2FhZjMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFs
dWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiU3R5bGVSZXNv
bHZlci5oIgogI2luY2x1ZGUgIlRoZW1lLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KQEAgLTE0Niw3ICsx
NDUsNyBAQCBzdGF0aWMgYm9vbCBhcHBseVJlc3RyaWN0b3IoTWVkaWFRdWVyeTo6UmVzdHJpY3Rv
ciByLCBib29sIHZhbHVlKQogICAgIHJldHVybiByID09IE1lZGlhUXVlcnk6Ok5vdCA/ICF2YWx1
ZSA6IHZhbHVlOwogfQogCi1ib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlKGNvbnN0
IE1lZGlhUXVlcnlTZXQmIHF1ZXJ5U2V0LCBTdHlsZTo6UmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIp
IGNvbnN0Citib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlKGNvbnN0IE1lZGlhUXVl
cnlTZXQmIHF1ZXJ5U2V0LCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMqIGR5bmFtaWNSZXN1bHRz
KSBjb25zdAogewogICAgIExPR19XSVRIX1NUUkVBTShNZWRpYVF1ZXJpZXMsIHN0cmVhbSA8PCAi
TWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUgb24gIiA8PCAobV9kb2N1bWVudCA/IG1fZG9j
dW1lbnQtPnVybCgpLnN0cmluZygpIDogZW1wdHlTdHJpbmcoKSkpOwogCkBAIC0xNzAsMTIgKzE2
OSwxNSBAQCBib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlKGNvbnN0IE1lZGlhUXVl
cnlTZXQmIHF1ZXJ5U2V0LCBTdHlsZTo6UmVzb2x2ZQogICAgICAgICAgICAgc2l6ZV90IGogPSAw
OwogICAgICAgICAgICAgZm9yICg7IGogPCBleHByZXNzaW9ucy5zaXplKCk7ICsraikgewogICAg
ICAgICAgICAgICAgIGJvb2wgZXhwcmVzc2lvblJlc3VsdCA9IGV2YWx1YXRlKGV4cHJlc3Npb25z
W2pdKTsKLSAgICAgICAgICAgICAgICBpZiAoc3R5bGVSZXNvbHZlciAmJiBpc1ZpZXdwb3J0RGVw
ZW5kZW50KGV4cHJlc3Npb25zW2pdLm1lZGlhRmVhdHVyZSgpKSkKLSAgICAgICAgICAgICAgICAg
ICAgc3R5bGVSZXNvbHZlci0+YWRkVmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGV4
cHJlc3Npb25zW2pdLCBleHByZXNzaW9uUmVzdWx0KTsKLSAgICAgICAgICAgICAgICBpZiAoc3R5
bGVSZXNvbHZlciAmJiBpc0FjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudChleHByZXNzaW9u
c1tqXS5tZWRpYUZlYXR1cmUoKSkpCi0gICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXIt
PmFkZEFjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHQoZXhwcmVz
c2lvbnNbal0sIGV4cHJlc3Npb25SZXN1bHQpOwotICAgICAgICAgICAgICAgIGlmIChzdHlsZVJl
c29sdmVyICYmIGlzQXBwZWFyYW5jZURlcGVuZGVudChleHByZXNzaW9uc1tqXS5tZWRpYUZlYXR1
cmUoKSkpCi0gICAgICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXItPmFkZEFwcGVhcmFuY2VE
ZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGV4cHJlc3Npb25zW2pdLCBleHByZXNzaW9uUmVzdWx0
KTsKKyAgICAgICAgICAgICAgICBpZiAoZHluYW1pY1Jlc3VsdHMpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzVmlld3BvcnREZXBlbmRlbnQoZXhwcmVzc2lvbnNbal0ubWVkaWFGZWF0dXJl
KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY1Jlc3VsdHMtPnZpZXdwb3J0LmFw
cGVuZCh7IGV4cHJlc3Npb25zW2pdLCBleHByZXNzaW9uUmVzdWx0IH0pOworICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNBcHBlYXJhbmNlRGVwZW5kZW50KGV4cHJlc3Npb25zW2pdLm1lZGlhRmVh
dHVyZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNSZXN1bHRzLT5hcHBlYXJh
bmNlLmFwcGVuZCh7IGV4cHJlc3Npb25zW2pdLCBleHByZXNzaW9uUmVzdWx0IH0pOworICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRlbnQoZXhwcmVz
c2lvbnNbal0ubWVkaWFGZWF0dXJlKCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1p
Y1Jlc3VsdHMtPmFjY2Vzc2liaWxpdHlTZXR0aW5ncy5hcHBlbmQoeyBleHByZXNzaW9uc1tqXSwg
ZXhwcmVzc2lvblJlc3VsdCB9KTsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAg
ICBpZiAoIWV4cHJlc3Npb25SZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQpAQCAtMTkwLDM5ICsxOTIsNiBAQCBib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6
OmV2YWx1YXRlKGNvbnN0IE1lZGlhUXVlcnlTZXQmIHF1ZXJ5U2V0LCBTdHlsZTo6UmVzb2x2ZQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgTWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbHVh
dGUoY29uc3QgTWVkaWFRdWVyeVNldCYgcXVlcnlTZXQsIFZlY3RvcjxNZWRpYVF1ZXJ5UmVzdWx0
PiYgdmlld3BvcnREZXBlbmRlbnRSZXN1bHRzLCBWZWN0b3I8TWVkaWFRdWVyeVJlc3VsdD4mIGFw
cGVhcmFuY2VEZXBlbmRlbnRSZXN1bHRzKSBjb25zdAotewotICAgIGF1dG8mIHF1ZXJpZXMgPSBx
dWVyeVNldC5xdWVyeVZlY3RvcigpOwotICAgIGlmICghcXVlcmllcy5zaXplKCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHF1ZXJpZXMuc2l6ZSgpICYmICFyZXN1bHQ7ICsraSkgewotICAgICAgICBh
dXRvJiBxdWVyeSA9IHF1ZXJpZXNbaV07Ci0KLSAgICAgICAgaWYgKHF1ZXJ5Lmlnbm9yZWQoKSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChtZWRpYVR5cGVNYXRjaChxdWVy
eS5tZWRpYVR5cGUoKSkpIHsKLSAgICAgICAgICAgIGF1dG8mIGV4cHJlc3Npb25zID0gcXVlcnku
ZXhwcmVzc2lvbnMoKTsKLSAgICAgICAgICAgIHNpemVfdCBqID0gMDsKLSAgICAgICAgICAgIGZv
ciAoOyBqIDwgZXhwcmVzc2lvbnMuc2l6ZSgpOyArK2opIHsKLSAgICAgICAgICAgICAgICBib29s
IGV4cHJlc3Npb25SZXN1bHQgPSBldmFsdWF0ZShleHByZXNzaW9uc1tqXSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKGlzVmlld3BvcnREZXBlbmRlbnQoZXhwcmVzc2lvbnNbal0ubWVkaWFGZWF0dXJl
KCkpKQotICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydERlcGVuZGVudFJlc3VsdHMuYXBwZW5k
KHsgZXhwcmVzc2lvbnNbal0sIGV4cHJlc3Npb25SZXN1bHQgfSk7Ci0gICAgICAgICAgICAgICAg
aWYgKGlzQXBwZWFyYW5jZURlcGVuZGVudChleHByZXNzaW9uc1tqXS5tZWRpYUZlYXR1cmUoKSkp
Ci0gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2VEZXBlbmRlbnRSZXN1bHRzLmFwcGVuZCh7
IGV4cHJlc3Npb25zW2pdLCBleHByZXNzaW9uUmVzdWx0IH0pOwotICAgICAgICAgICAgICAgIGlm
ICghZXhwcmVzc2lvblJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICByZXN1bHQgPSBhcHBseVJlc3RyaWN0b3IocXVlcnkucmVzdHJp
Y3RvcigpLCBleHByZXNzaW9ucy5zaXplKCkgPT0gaik7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgcmVzdWx0ID0gYXBwbHlSZXN0cmljdG9yKHF1ZXJ5LnJlc3RyaWN0b3IoKSwgZmFsc2Up
OwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHR5cGVuYW1lIFU+IGJvb2wgY29tcGFyZVZhbHVlKFQgYSwgVSBiLCBNZWRpYUZlYXR1cmVQcmVm
aXggb3ApCiB7CiAgICAgc3dpdGNoIChvcCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgKaW5kZXggNWEyZWNkYjUyM2EuLjZkYjExZGQ5YzczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmgKQEAgLTQ2LDYgKzQ2LDE4IEBAIHN0cnVjdCBN
ZWRpYVF1ZXJ5UmVzdWx0IHsKICAgICBib29sIHJlc3VsdDsKIH07CiAKK3N0cnVjdCBNZWRpYVF1
ZXJ5RHluYW1pY1Jlc3VsdHMgeworICAgIFZlY3RvcjxNZWRpYVF1ZXJ5UmVzdWx0PiB2aWV3cG9y
dDsKKyAgICBWZWN0b3I8TWVkaWFRdWVyeVJlc3VsdD4gYXBwZWFyYW5jZTsKKyAgICBWZWN0b3I8
TWVkaWFRdWVyeVJlc3VsdD4gYWNjZXNzaWJpbGl0eVNldHRpbmdzOworCisgICAgdm9pZCBhcHBl
bmQoY29uc3QgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzJiBvdGhlcikgeworICAgICAgICB2aWV3
cG9ydC5hcHBlbmRWZWN0b3Iob3RoZXIudmlld3BvcnQpOworICAgICAgICBhcHBlYXJhbmNlLmFw
cGVuZFZlY3RvcihvdGhlci5hcHBlYXJhbmNlKTsKKyAgICAgICAgYWNjZXNzaWJpbGl0eVNldHRp
bmdzLmFwcGVuZFZlY3RvcihvdGhlci5hY2Nlc3NpYmlsaXR5U2V0dGluZ3MpOworICAgIH0KK307
CisKIC8vIFNvbWUgb2YgdGhlIGNvbnN0cnVjdG9ycyBhcmUgdXNlZCBmb3IgY2FzZXMgd2hlcmUg
dGhlIGRldmljZSBjaGFyYWN0ZXJpc3RpY3MgYXJlIG5vdCBrbm93bi4KIC8vIFRoZXNlICBjYW4g
YmUgdXNlZCB0byBwcnVuZSB0aGUgbG9hZGluZyBvZiBzdHlsZXNoZWV0cyB0byBvbmx5IHRob3Nl
IHdoaWNoIGFyZSBub3QgYWxyZWFkeSBrbm93biB0byBub3QgbWF0Y2guCiAKQEAgLTY1LDE0ICs3
NywxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBtZWRpYVR5cGVNYXRjaChjb25zdCBTdHJpbmcmIG1l
ZGlhVHlwZVRvTWF0Y2gpIGNvbnN0OwogICAgIGJvb2wgbWVkaWFUeXBlTWF0Y2hTcGVjaWZpYyhj
b25zdCBjaGFyKiBtZWRpYVR5cGVUb01hdGNoKSBjb25zdDsKIAotICAgIC8vIEV2YWx1YXRlcyBh
IGxpc3Qgb2YgbWVkaWEgcXVlcmllcy4KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV2YWx1YXRl
KGNvbnN0IE1lZGlhUXVlcnlTZXQmLCBTdHlsZTo6UmVzb2x2ZXIqID0gbnVsbHB0cikgY29uc3Q7
Ci0KICAgICAvLyBFdmFsdWF0ZXMgbWVkaWEgcXVlcnkgc3ViZXhwcmVzc2lvbiwgaWUgImFuZCAo
bWVkaWEtZmVhdHVyZTogdmFsdWUpIiBwYXJ0LgogICAgIGJvb2wgZXZhbHVhdGUoY29uc3QgTWVk
aWFRdWVyeUV4cHJlc3Npb24mKSBjb25zdDsKIAotICAgIC8vIEV2YWx1YXRlcyBhIGxpc3Qgb2Yg
bWVkaWEgcXVlcmllcyBhbmQgZmlsbHMgaW4gdmVjdG9ycyB3aXRoIGFueSB2aWV3cG9ydCBvciBk
YXJrIG1vZGUgZGVwZW5kZW50IHJlc3VsdHMgZm91bmQuCi0gICAgYm9vbCBldmFsdWF0ZShjb25z
dCBNZWRpYVF1ZXJ5U2V0JiwgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+JiB2aWV3cG9ydERlcGVu
ZGVudFJlc3VsdHMsIFZlY3RvcjxNZWRpYVF1ZXJ5UmVzdWx0PiYgYXBwZWFyYW5jZURlcGVuZGVu
dFJlc3VsdHMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZXZhbHVhdGUoY29uc3Qg
TWVkaWFRdWVyeVNldCYsIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyogPSBudWxscHRyKSBjb25z
dDsKIAogICAgIHN0YXRpYyBib29sIG1lZGlhQXR0cmlidXRlTWF0Y2hlcyhEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgYXR0cmlidXRlVmFsdWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCmluZGV4IDgwNmVkYTg0YjNkLi4yMjYx
YjdjOTJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCBib29sIFNpemVzQXR0cmlidXRlUGFy
c2VyOjptZWRpYUNvbmRpdGlvbk1hdGNoZXMoY29uc3QgTWVkaWFRdWVyeVNldCYgbWVkaWFDb25k
aQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhdXRvJiBz
dHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9y
IHsgInNjcmVlbiIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9u
LCBjb25zdF9jYXN0PFN0eWxlOjpTY29wZSY+KG1fZG9jdW1lbnQuc3R5bGVTY29wZSgpKS5yZXNv
bHZlcklmRXhpc3RzKCkpOworICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgInNjcmVl
biIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9uKTsKIH0KIAog
Ym9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6cGFyc2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5n
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDdkNGFiMzY4
NWNjLi42MDFlZDE0MDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCkBAIC0xNjAsMTIgKzE2MCwxMiBAQCBJbWFnZUNhbmRpZGF0ZSBIVE1MSW1hZ2VFbGVtZW50
OjpiZXN0Rml0U291cmNlRnJvbVBpY3R1cmVFbGVtZW50KCkKICAgICBpZiAoIXBpY3R1cmUpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBwaWN0dXJlLT5jbGVhclZpZXdwb3J0RGVwZW5kZW50
UmVzdWx0cygpOwogICAgIGRvY3VtZW50KCkucmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJl
KCpwaWN0dXJlKTsKLQotICAgIHBpY3R1cmUtPmNsZWFyQXBwZWFyYW5jZURlcGVuZGVudFJlc3Vs
dHMoKTsKICAgICBkb2N1bWVudCgpLnJlbW92ZUFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpw
aWN0dXJlKTsKIAorICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtZWRpYVF1ZXJ5RHluYW1p
Y1Jlc3VsdHM7CisgICAgSW1hZ2VDYW5kaWRhdGUgY2FuZGlkYXRlOworCiAgICAgZm9yIChSZWZQ
dHI8Tm9kZT4gY2hpbGQgPSBwaWN0dXJlLT5maXJzdENoaWxkKCk7IGNoaWxkICYmIGNoaWxkICE9
IHRoaXM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFpczxI
VE1MU291cmNlRWxlbWVudD4oKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTg4
LDIwICsxODgsMjYgQEAgSW1hZ2VDYW5kaWRhdGUgSFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdFNv
dXJjZUZyb21QaWN0dXJlRWxlbWVudCgpCiAgICAgICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZh
bHVhdG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1
bWVudCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUo
KSA6IG51bGxwdHIgfTsKICAgICAgICAgYXV0byogcXVlcmllcyA9IHNvdXJjZS5wYXJzZWRNZWRp
YUF0dHJpYnV0ZShkb2N1bWVudCgpKTsKICAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxJ
bWFnZUVsZW1lbnQgJXAgYmVzdEZpdFNvdXJjZUZyb21QaWN0dXJlRWxlbWVudCBldmFsdWF0aW5n
IG1lZGlhIHF1ZXJpZXMiLCB0aGlzKTsKLSAgICAgICAgYXV0byBldmFsdWF0aW9uID0gIXF1ZXJp
ZXMgfHwgZXZhbHVhdG9yLmV2YWx1YXRlKCpxdWVyaWVzLCBwaWN0dXJlLT52aWV3cG9ydERlcGVu
ZGVudFJlc3VsdHMoKSwgcGljdHVyZS0+YXBwZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSk7Ci0g
ICAgICAgIGlmIChwaWN0dXJlLT5oYXNWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSkKLSAgICAg
ICAgICAgIGRvY3VtZW50KCkuYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJlKTsK
LSAgICAgICAgaWYgKHBpY3R1cmUtPmhhc0FwcGVhcmFuY2VEZXBlbmRlbnRSZXN1bHRzKCkpCi0g
ICAgICAgICAgICBkb2N1bWVudCgpLmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpwaWN0
dXJlKTsKKworICAgICAgICBhdXRvIGV2YWx1YXRpb24gPSAhcXVlcmllcyB8fCBldmFsdWF0b3Iu
ZXZhbHVhdGUoKnF1ZXJpZXMsICZtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogICAgICAgICBp
ZiAoIWV2YWx1YXRpb24pCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvIHNv
dXJjZVNpemUgPSBTaXplc0F0dHJpYnV0ZVBhcnNlcihzb3VyY2UuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihzaXplc0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpKS5sZW5ndGgoKTsK
LSAgICAgICAgYXV0byBjYW5kaWRhdGUgPSBiZXN0Rml0U291cmNlRm9ySW1hZ2VBdHRyaWJ1dGVz
KGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbnVsbEF0b20oKSwgc3Jjc2V0LCBzb3Vy
Y2VTaXplKTsKKyAgICAgICAgY2FuZGlkYXRlID0gYmVzdEZpdFNvdXJjZUZvckltYWdlQXR0cmli
dXRlcyhkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIG51bGxBdG9tKCksIHNyY3NldCwg
c291cmNlU2l6ZSk7CiAgICAgICAgIGlmICghY2FuZGlkYXRlLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0
dXJuIHsgfTsKKworICAgIHBpY3R1cmUtPnNldE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyhXVEZN
b3ZlKG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cykpOworCisgICAgLy8gRklYTUU6IFRoaXMgaXMg
bm90IGhhbmRsaW5nIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3MgZGVwZW5kZW50IG1lZGlhIHF1ZXJp
ZXMuCisgICAgaWYgKHBpY3R1cmUtPmhhc1ZpZXdwb3J0RGVwZW5kZW50UmVzdWx0cygpKQorICAg
ICAgICBkb2N1bWVudCgpLmFkZFZpZXdwb3J0RGVwZW5kZW50UGljdHVyZSgqcGljdHVyZSk7Cisg
ICAgaWYgKHBpY3R1cmUtPmhhc0FwcGVhcmFuY2VEZXBlbmRlbnRSZXN1bHRzKCkpCisgICAgICAg
IGRvY3VtZW50KCkuYWRkQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoKnBpY3R1cmUpOworCisg
ICAgcmV0dXJuIGNhbmRpZGF0ZTsKIH0KIAogdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZWxlY3RJ
bWFnZVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAK
aW5kZXggMDA0NmQxOWM4NjYuLjM2ODRjZmZhYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGljdHVyZUVsZW1lbnQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgSFRNTFBpY3R1cmVF
bGVtZW50Ojp2aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSgpIGNvbnN0CiB7CiAgICAgYXV0
byBkb2N1bWVudEVsZW1lbnQgPSBtYWtlUmVmUHRyKGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCkpOwogICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZhbHVhdG9yIHsgZG9jdW1lbnQoKS5wcmlu
dGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1bWVudCgpLCBkb2N1bWVudEVsZW1lbnQg
PyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUoKSA6IG51bGxwdHIgfTsKLSAgICBmb3Ig
KGF1dG8mIHJlc3VsdCA6IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cykgewor
ICAgIGZvciAoYXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMudmlld3Bv
cnQpIHsKICAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxQaWN0dXJlRWxlbWVudCAlcCB2
aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSBldmFsdWF0aW5nIG1lZGlhIHF1ZXJpZXMiLCB0
aGlzKTsKICAgICAgICAgaWYgKGV2YWx1YXRvci5ldmFsdWF0ZShyZXN1bHQuZXhwcmVzc2lvbikg
IT0gcmVzdWx0LnJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtODMsNyArODMs
NyBAQCBib29sIEhUTUxQaWN0dXJlRWxlbWVudDo6YXBwZWFyYW5jZUNoYW5nZUFmZmVjdGVkUGlj
dHVyZSgpIGNvbnN0CiB7CiAgICAgYXV0byBkb2N1bWVudEVsZW1lbnQgPSBtYWtlUmVmUHRyKGRv
Y3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOwogICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZh
bHVhdG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1
bWVudCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUo
KSA6IG51bGxwdHIgfTsKLSAgICBmb3IgKGF1dG8mIHJlc3VsdCA6IG1fYXBwZWFyYW5jZURlcGVu
ZGVudE1lZGlhUXVlcnlSZXN1bHRzKSB7CisgICAgZm9yIChhdXRvJiByZXN1bHQgOiBtX21lZGlh
UXVlcnlEeW5hbWljUmVzdWx0cy5hcHBlYXJhbmNlKSB7CiAgICAgICAgIExPRyhNZWRpYVF1ZXJp
ZXMsICJIVE1MUGljdHVyZUVsZW1lbnQgJXAgYXBwZWFyYW5jZUNoYW5nZUFmZmVjdGVkUGljdHVy
ZSBldmFsdWF0aW5nIG1lZGlhIHF1ZXJpZXMiLCB0aGlzKTsKICAgICAgICAgaWYgKGV2YWx1YXRv
ci5ldmFsdWF0ZShyZXN1bHQuZXhwcmVzc2lvbikgIT0gcmVzdWx0LnJlc3VsdCkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGlj
dHVyZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgK
aW5kZXggZGQ5OGQ2NTVhMWUuLjhmZmZmNDU2OTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmgKQEAgLTM4LDEzICszOCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNvdXJjZXNDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIGNsZWFyVmlld3BvcnREZXBlbmRlbnRSZXN1
bHRzKCkgeyBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuY2xlYXIoKTsgfQot
ICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV92
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzLnNpemUoKTsgfQotICAgIFZlY3RvcjxN
ZWRpYVF1ZXJ5UmVzdWx0PiYgdmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgeyByZXR1cm4gbV92
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOyB9CiAKLSAgICB2b2lkIGNsZWFyQXBw
ZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSB7IG1fYXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVl
cnlSZXN1bHRzLmNsZWFyKCk7IH0KLSAgICBib29sIGhhc0FwcGVhcmFuY2VEZXBlbmRlbnRSZXN1
bHRzKCkgY29uc3QgeyByZXR1cm4gbV9hcHBlYXJhbmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3Vs
dHMuc2l6ZSgpOyB9Ci0gICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+JiBhcHBlYXJhbmNlRGVw
ZW5kZW50UmVzdWx0cygpIHsgcmV0dXJuIG1fYXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcnlS
ZXN1bHRzOyB9CisgICAgdm9pZCBzZXRNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMoTWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzJiYgcmVzdWx0cykgeyBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyA9
IHJlc3VsdHM7IH0KKworICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMudmlld3BvcnQuc2l6ZSgpOyB9
CisgICAgYm9vbCBoYXNBcHBlYXJhbmNlRGVwZW5kZW50UmVzdWx0cygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLmFwcGVhcmFuY2Uuc2l6ZSgpOyB9CiAKICAgICBi
b29sIHZpZXdwb3J0Q2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CiAgICAgYm9vbCBhcHBl
YXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CkBAIC01OCw4ICs1Niw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1
bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KSBmaW5hbDsKIAotICAgIFZlY3RvcjxNZWRpYVF1
ZXJ5UmVzdWx0PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHM7Ci0gICAgVmVj
dG9yPE1lZGlhUXVlcnlSZXN1bHQ+IG1fYXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcnlSZXN1
bHRzOworICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtX21lZGlhUXVlcnlEeW5hbWljUmVz
dWx0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5j
cHAKaW5kZXggZDQwMWI2Nzg3NzEuLjk3MDJhM2VjNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUGFnZVJ1bGUoU3R5bGVS
dWxlUGFnZSogcnVsZSkKICAgICBtX3BhZ2VSdWxlcy5hcHBlbmQocnVsZSk7CiB9CiAKLXZvaWQg
UnVsZVNldDo6YWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
PiYgcnVsZXMsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgUmVzb2x2ZXIqIHJl
c29sdmVyLCBib29sIGlzSW5pdGlhdGluZ0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUpCit2
b2lkIFJ1bGVTZXQ6OmFkZENoaWxkUnVsZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVC
YXNlPj4mIHJ1bGVzLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFJlc29sdmVy
KiByZXNvbHZlciwgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzJiBtZWRpYVF1ZXJ5RHluYW1pY1Jl
c3VsdHMpCiB7CiAgICAgZm9yIChhdXRvJiBydWxlIDogcnVsZXMpIHsKICAgICAgICAgaWYgKGlz
PFN0eWxlUnVsZT4oKnJ1bGUpKQpAQCAtMjc0LDE2ICsyNzQsMTYgQEAgdm9pZCBSdWxlU2V0Ojph
ZGRDaGlsZFJ1bGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiBydWxlcywg
Y29uc3QgTWUKICAgICAgICAgICAgIGFkZFBhZ2VSdWxlKGRvd25jYXN0PFN0eWxlUnVsZVBhZ2U+
KHJ1bGUuZ2V0KCkpKTsKICAgICAgICAgZWxzZSBpZiAoaXM8U3R5bGVSdWxlTWVkaWE+KCpydWxl
KSkgewogICAgICAgICAgICAgYXV0byYgbWVkaWFSdWxlID0gZG93bmNhc3Q8U3R5bGVSdWxlTWVk
aWE+KCpydWxlKTsKLSAgICAgICAgICAgIGlmICgoIW1lZGlhUnVsZS5tZWRpYVF1ZXJpZXMoKSB8
fCBtZWRpdW0uZXZhbHVhdGUoKm1lZGlhUnVsZS5tZWRpYVF1ZXJpZXMoKSwgcmVzb2x2ZXIpKSkK
LSAgICAgICAgICAgICAgICBhZGRDaGlsZFJ1bGVzKG1lZGlhUnVsZS5jaGlsZFJ1bGVzKCksIG1l
ZGl1bSwgcmVzb2x2ZXIsIGlzSW5pdGlhdGluZ0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUp
OworICAgICAgICAgICAgaWYgKCghbWVkaWFSdWxlLm1lZGlhUXVlcmllcygpIHx8IG1lZGl1bS5l
dmFsdWF0ZSgqbWVkaWFSdWxlLm1lZGlhUXVlcmllcygpLCAmbWVkaWFRdWVyeUR5bmFtaWNSZXN1
bHRzKSkpCisgICAgICAgICAgICAgICAgYWRkQ2hpbGRSdWxlcyhtZWRpYVJ1bGUuY2hpbGRSdWxl
cygpLCBtZWRpdW0sIHJlc29sdmVyLCBtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogICAgICAg
ICB9IGVsc2UgaWYgKGlzPFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZSkgJiYgcmVzb2x2ZXIpIHsK
ICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGZvbnQgZmFjZSB0byBvdXIgc2V0LgotICAgICAgICAg
ICAgcmVzb2x2ZXItPmRvY3VtZW50KCkuZm9udFNlbGVjdG9yKCkuYWRkRm9udEZhY2VSdWxlKGRv
d25jYXN0PFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZS5nZXQoKSksIGlzSW5pdGlhdGluZ0VsZW1l
bnRJblVzZXJBZ2VudFNoYWRvd1RyZWUpOworICAgICAgICAgICAgcmVzb2x2ZXItPmRvY3VtZW50
KCkuZm9udFNlbGVjdG9yKCkuYWRkRm9udEZhY2VSdWxlKGRvd25jYXN0PFN0eWxlUnVsZUZvbnRG
YWNlPigqcnVsZS5nZXQoKSksIGZhbHNlKTsKICAgICAgICAgICAgIHJlc29sdmVyLT5pbnZhbGlk
YXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8U3R5
bGVSdWxlS2V5ZnJhbWVzPigqcnVsZSkgJiYgcmVzb2x2ZXIpCiAgICAgICAgICAgICByZXNvbHZl
ci0+YWRkS2V5ZnJhbWVTdHlsZShkb3duY2FzdDxTdHlsZVJ1bGVLZXlmcmFtZXM+KCpydWxlKSk7
CiAgICAgICAgIGVsc2UgaWYgKGlzPFN0eWxlUnVsZVN1cHBvcnRzPigqcnVsZSkgJiYgZG93bmNh
c3Q8U3R5bGVSdWxlU3VwcG9ydHM+KCpydWxlKS5jb25kaXRpb25Jc1N1cHBvcnRlZCgpKQotICAg
ICAgICAgICAgYWRkQ2hpbGRSdWxlcyhkb3duY2FzdDxTdHlsZVJ1bGVTdXBwb3J0cz4oKnJ1bGUp
LmNoaWxkUnVsZXMoKSwgbWVkaXVtLCByZXNvbHZlciwgaXNJbml0aWF0aW5nRWxlbWVudEluVXNl
ckFnZW50U2hhZG93VHJlZSk7CisgICAgICAgICAgICBhZGRDaGlsZFJ1bGVzKGRvd25jYXN0PFN0
eWxlUnVsZVN1cHBvcnRzPigqcnVsZSkuY2hpbGRSdWxlcygpLCBtZWRpdW0sIHJlc29sdmVyLCBt
ZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJ
T04pCiAgICAgICAgIGVsc2UgaWYgKGlzPFN0eWxlUnVsZVZpZXdwb3J0PigqcnVsZSkgJiYgcmVz
b2x2ZXIpCiAgICAgICAgICAgICByZXNvbHZlci0+dmlld3BvcnRTdHlsZVJlc29sdmVyKCktPmFk
ZFZpZXdwb3J0UnVsZShkb3duY2FzdDxTdHlsZVJ1bGVWaWV3cG9ydD4ocnVsZS5nZXQoKSkpOwpA
QCAtMjkxLDE3ICsyOTEsMjIgQEAgdm9pZCBSdWxlU2V0OjphZGRDaGlsZFJ1bGVzKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiBydWxlcywgY29uc3QgTWUKICAgICB9CiB9CiAK
LXZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiBzaGVl
dCwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgbWVkaXVtLCBSZXNvbHZlciogcmVzb2x2ZXIp
Cit2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYgc2hl
ZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGlhUXVlcnlFdmFsdWF0b3IsIFJlc29s
dmVyKiByZXNvbHZlcikKIHsKKyAgICBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMgbWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzOworCiAgICAgZm9yIChhdXRvJiBydWxlIDogc2hlZXQuaW1wb3J0UnVs
ZXMoKSkgewotICAgICAgICBpZiAocnVsZS0+c3R5bGVTaGVldCgpICYmICghcnVsZS0+bWVkaWFR
dWVyaWVzKCkgfHwgbWVkaXVtLmV2YWx1YXRlKCpydWxlLT5tZWRpYVF1ZXJpZXMoKSwgcmVzb2x2
ZXIpKSkKLSAgICAgICAgICAgIGFkZFJ1bGVzRnJvbVNoZWV0KCpydWxlLT5zdHlsZVNoZWV0KCks
IG1lZGl1bSwgcmVzb2x2ZXIpOworICAgICAgICBpZiAoIXJ1bGUtPnN0eWxlU2hlZXQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAocnVsZS0+bWVkaWFRdWVyaWVzKCkgJiYg
IW1lZGlhUXVlcnlFdmFsdWF0b3IuZXZhbHVhdGUoKnJ1bGUtPm1lZGlhUXVlcmllcygpLCAmbWVk
aWFRdWVyeUR5bmFtaWNSZXN1bHRzKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBh
ZGRSdWxlc0Zyb21TaGVldCgqcnVsZS0+c3R5bGVTaGVldCgpLCBtZWRpYVF1ZXJ5RXZhbHVhdG9y
LCByZXNvbHZlcik7CiAgICAgfQogCi0gICAgLy8gRklYTUU6IFNraXAgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgY2hlY2sgd2hlbiBzdHlsZXNoZWV0IGlzIGluIGEgdXNlciBhZ2VudCBzaGFkb3cg
dHJlZS4KLSAgICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDY2NjM+LgotICAgIGJvb2wgaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93
VHJlZSA9IGZhbHNlOwotICAgIGFkZENoaWxkUnVsZXMoc2hlZXQuY2hpbGRSdWxlcygpLCBtZWRp
dW0sIHJlc29sdmVyLCBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsK
KyAgICBhZGRDaGlsZFJ1bGVzKHNoZWV0LmNoaWxkUnVsZXMoKSwgbWVkaWFRdWVyeUV2YWx1YXRv
ciwgcmVzb2x2ZXIsIG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisKKyAgICBpZiAocmVzb2x2
ZXIpCisgICAgICAgIHJlc29sdmVyLT5hZGRNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMobWVkaWFR
dWVyeUR5bmFtaWNSZXN1bHRzKTsKIAogICAgIGlmIChtX2F1dG9TaHJpbmtUb0ZpdEVuYWJsZWQp
CiAgICAgICAgIHNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKaW5kZXggNTZkYjdi
ZjFlYWQuLjhjZmU1Y2JiNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC0zNSw2ICszNSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1NlbGVjdG9yOwogY2xhc3MgTWVkaWFR
dWVyeUV2YWx1YXRvcjsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKK3N0cnVjdCBNZWRpYVF1
ZXJ5RHluYW1pY1Jlc3VsdHM7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKQEAgLTYxLDcgKzYyLDcg
QEAgcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFJ1bGVEYXRhLCAxPiBSdWxlRGF0YVZlY3Rv
cjsKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVE
YXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKLSAgICB2b2lkIGFkZFJ1bGVzRnJvbVNoZWV0KFN0
eWxlU2hlZXRDb250ZW50cyYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImLCBTdHlsZTo6UmVz
b2x2ZXIqID0gMCk7CisgICAgdm9pZCBhZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVu
dHMmLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiwgU3R5bGU6OlJlc29sdmVyKiA9IG51bGxw
dHIpOwogCiAgICAgdm9pZCBhZGRTdHlsZVJ1bGUoU3R5bGVSdWxlKik7CiAgICAgdm9pZCBhZGRS
dWxlKFN0eWxlUnVsZSosIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9y
TGlzdEluZGV4KTsKQEAgLTk0LDcgKzk1LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSG9zdFBz
ZXVkb0NsYXNzUnVsZXNNYXRjaGluZ0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFz
SG9zdFBzZXVkb0NsYXNzUnVsZXNNYXRjaGluZ0luU2hhZG93VHJlZTsgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgYWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
PiYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgU3R5bGU6OlJlc29sdmVyKiwg
Ym9vbCBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKKyAgICB2b2lk
IGFkZENoaWxkUnVsZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mLCBjb25z
dCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFN0eWxlOjpSZXNvbHZlciosIE1lZGlhUXVl
cnlEeW5hbWljUmVzdWx0cyYpOwogCiAgICAgQXRvbVJ1bGVNYXAgbV9pZFJ1bGVzOwogICAgIEF0
b21SdWxlTWFwIG1fY2xhc3NSdWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggZjI5ZWM0ZTgyNzMuLjg4ZDRkMWQzZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUmVzb2x2ZXI6OmFkZEN1
cnJlbnRTVkdGb250RmFjZVJ1bGVzKCkKIAogdm9pZCBSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5
bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHN0eWxlU2hlZXRz
KQogewotICAgIG1fcnVsZVNldHMuYXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoc3R5bGVTaGVldHMs
ICZtX21lZGlhUXVlcnlFdmFsdWF0b3IsIG1faW5zcGVjdG9yQ1NTT01XcmFwcGVycywgdGhpcyk7
CisgICAgbV9ydWxlU2V0cy5hcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhzdHlsZVNoZWV0cywgJm1f
bWVkaWFRdWVyeUV2YWx1YXRvciwgbV9pbnNwZWN0b3JDU1NPTVdyYXBwZXJzKTsKIAogICAgIGlm
IChhdXRvIHJlbmRlclZpZXcgPSBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkKICAgICAgICAgcmVu
ZGVyVmlldy0+c3R5bGUoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250U2Vs
ZWN0b3IoKSk7CkBAIC02MDIsNDUgKzYwMiwzNSBAQCB2b2lkIFJlc29sdmVyOjphcHBseU1hdGNo
ZWRQcm9wZXJ0aWVzKFN0YXRlJiBzdGF0ZSwgY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdQog
ICAgICAgICBtX21hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5hZGQoc3R5bGUsIHBhcmVudFN0eWxl
LCBjYWNoZUhhc2gsIG1hdGNoUmVzdWx0KTsKIH0KIAotdm9pZCBSZXNvbHZlcjo6YWRkVmlld3Bv
cnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiBl
eHByZXNzaW9uLCBib29sIHJlc3VsdCkKK3ZvaWQgUmVzb2x2ZXI6OmFkZE1lZGlhUXVlcnlEeW5h
bWljUmVzdWx0cyhjb25zdCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmIHJlc3VsdHMpCiB7Ci0g
ICAgbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzLmFwcGVuZChNZWRpYVF1ZXJ5
UmVzdWx0IHsgZXhwcmVzc2lvbiwgcmVzdWx0IH0pOworICAgIG1fbWVkaWFRdWVyeUR5bmFtaWNS
ZXN1bHRzLmFwcGVuZChyZXN1bHRzKTsKIH0KIAogYm9vbCBSZXNvbHZlcjo6aGFzTWVkaWFRdWVy
aWVzQWZmZWN0ZWRCeVZpZXdwb3J0Q2hhbmdlKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWFRdWVy
aWVzLCAiU3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5Vmlld3BvcnRD
aGFuZ2UgZXZhbHVhdGluZyBxdWVyaWVzIik7Ci0gICAgZm9yIChhdXRvJiByZXN1bHQgOiBtX3Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8mIHJlc3Vs
dCA6IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLnZpZXdwb3J0KSB7CiAgICAgICAgIGlmICht
X21lZGlhUXVlcnlFdmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJlc3Vs
dC5yZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFJlc29sdmVyOjphZGRBY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRl
bnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiBleHByZXNzaW9u
LCBib29sIHJlc3VsdCkKLXsKLSAgICBtX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1l
ZGlhUXVlcnlSZXN1bHRzLmFwcGVuZChNZWRpYVF1ZXJ5UmVzdWx0IHsgZXhwcmVzc2lvbiwgcmVz
dWx0IH0pOwotfQotCiBib29sIFJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QWNj
ZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWFRdWVyaWVz
LCAiU3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QWNjZXNzaWJpbGl0
eVNldHRpbmdzQ2hhbmdlIGV2YWx1YXRpbmcgcXVlcmllcyIpOwotICAgIGZvciAoYXV0byYgcmVz
dWx0IDogbV9hY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cykg
eworICAgIGZvciAoYXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuYWNj
ZXNzaWJpbGl0eVNldHRpbmdzKSB7CiAgICAgICAgIGlmIChtX21lZGlhUXVlcnlFdmFsdWF0b3Iu
ZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlc29s
dmVyOjphZGRBcHBlYXJhbmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdChjb25zdCBNZWRpYVF1
ZXJ5RXhwcmVzc2lvbiYgZXhwcmVzc2lvbiwgYm9vbCByZXN1bHQpCi17Ci0gICAgbV9hcHBlYXJh
bmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuYXBwZW5kKE1lZGlhUXVlcnlSZXN1bHQgeyBl
eHByZXNzaW9uLCByZXN1bHQgfSk7Ci19Ci0KIGJvb2wgUmVzb2x2ZXI6Omhhc01lZGlhUXVlcmll
c0FmZmVjdGVkQnlBcHBlYXJhbmNlQ2hhbmdlKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWFRdWVy
aWVzLCAiU3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QXBwZWFyYW5j
ZUNoYW5nZSBldmFsdWF0aW5nIHF1ZXJpZXMiKTsKLSAgICBmb3IgKGF1dG8mIHJlc3VsdCA6IG1f
YXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzKSB7CisgICAgZm9yIChhdXRvJiBy
ZXN1bHQgOiBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cy5hcHBlYXJhbmNlKSB7CiAgICAgICAg
IGlmIChtX21lZGlhUXVlcnlFdmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9
IHJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggNTUxNjQ4ODQ0MWQuLmQxZTVkNDEwMGFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC0xMzEsMTYgKzEzMSwxNCBAQCBw
dWJsaWM6CiAgICAgVmlld3BvcnRTdHlsZVJlc29sdmVyKiB2aWV3cG9ydFN0eWxlUmVzb2x2ZXIo
KSB7IHJldHVybiBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZlci5nZXQoKTsgfQogI2VuZGlmCiAKLSAg
ICB2b2lkIGFkZFZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdChjb25zdCBNZWRpYVF1
ZXJ5RXhwcmVzc2lvbiYsIGJvb2wgcmVzdWx0KTsKLSAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0cy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE1lZGlhUXVlcnlEeW5hbWlj
UmVzdWx0cyhjb25zdCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmKTsKKyAgICBib29sIGhhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gIW1fbWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzLnZpZXdwb3J0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzTWVkaWFR
dWVyaWVzQWZmZWN0ZWRCeVZpZXdwb3J0Q2hhbmdlKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZEFj
Y2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHQoY29uc3QgTWVkaWFR
dWVyeUV4cHJlc3Npb24mLCBib29sIHJlc3VsdCk7Ci0gICAgYm9vbCBoYXNBY2Nlc3NpYmlsaXR5
U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiAhbV9hY2Nlc3Np
YmlsaXR5U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cy5pc0VtcHR5KCk7IH0KKyAg
ICBib29sIGhhc0FjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcmllcygpIGNv
bnN0IHsgcmV0dXJuICFtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cy5hY2Nlc3NpYmlsaXR5U2V0
dGluZ3MuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QWNj
ZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZEFwcGVhcmFu
Y2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiwg
Ym9vbCByZXN1bHQpOwotICAgIGJvb2wgaGFzQXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcmll
cygpIGNvbnN0IHsgcmV0dXJuICFtX2FwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0
cy5pc0VtcHR5KCk7IH0KKyAgICBib29sIGhhc0FwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJp
ZXMoKSBjb25zdCB7IHJldHVybiAhbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuYXBwZWFyYW5j
ZS5pc0VtcHR5KCk7IH0KICAgICBib29sIGhhc01lZGlhUXVlcmllc0FmZmVjdGVkQnlBcHBlYXJh
bmNlQ2hhbmdlKCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxl
UnVsZUtleWZyYW1lcz4mJik7CkBAIC0yMDIsOSArMjAwLDcgQEAgcHJpdmF0ZToKIAogICAgIFJl
bmRlclN0eWxlKiBtX292ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUgeyBudWxscHRyIH07CiAK
LSAgICBWZWN0b3I8TWVkaWFRdWVyeVJlc3VsdD4gbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVl
cnlSZXN1bHRzOwotICAgIFZlY3RvcjxNZWRpYVF1ZXJ5UmVzdWx0PiBtX2FjY2Vzc2liaWxpdHlT
ZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOwotICAgIFZlY3RvcjxNZWRpYVF1ZXJ5
UmVzdWx0PiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKKyAgICBNZWRp
YVF1ZXJ5RHluYW1pY1Jlc3VsdHMgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHM7CiAKICNpZiBF
TkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogICAgIFJlZlB0cjxWaWV3cG9ydFN0eWxlUmVz
b2x2ZXI+IG1fdmlld3BvcnRTdHlsZVJlc29sdmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggOTQyNzI5MjA0MWYuLjhlMDRkNzBmNjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTc3LDYgKzc3
LDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjp1cGRhdGVVc2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGVJ
Zk5lZWRlZCgpIGNvbnN0CiAgICAgLy8gTWVkaWEgcXVlcmllcyBvbiB1c2VyIGFnZW50IHNoZWV0
IG5lZWQgdG8gZXZhbHVhdGVkIGluIGRvY3VtZW50IGNvbnRleHQuIFRoZXkgYmVoYXZlIGxpa2Ug
YXV0aG9yIHNoZWV0cyBpbiB0aGlzIHJlc3BlY3QuCiAgICAgYXV0byYgbWVkaWFRdWVyeUV2YWx1
YXRvciA9IG1fc3R5bGVSZXNvbHZlci5tZWRpYVF1ZXJ5RXZhbHVhdG9yKCk7CiAgICAgbV91c2Vy
QWdlbnRNZWRpYVF1ZXJ5U3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CisgICAgCiAgICAg
bV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KCpVc2VyQWdlbnRT
dHlsZTo6bWVkaWFRdWVyeVN0eWxlU2hlZXQsIG1lZGlhUXVlcnlFdmFsdWF0b3IsICZtX3N0eWxl
UmVzb2x2ZXIpOwogCiAgICAgLy8gVmlld3BvcnQgZGVwZW5kZW50IHF1ZXJpZXMgYXJlIGN1cnJl
bnRseSB0b28gaW5lZmZpY2llbnQgdG8gYWxsb3cgb24gVUEgc2hlZXQuCkBAIC05NywxNyArOTgs
MTcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjppbml0aWFsaXplVXNlclN0eWxlKCkKICAgICBhdXRv
IHRlbXBVc2VyU3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CiAgICAgaWYgKENTU1N0eWxl
U2hlZXQqIHBhZ2VVc2VyU2hlZXQgPSBleHRlbnNpb25TdHlsZVNoZWV0cy5wYWdlVXNlclNoZWV0
KCkpCiAgICAgICAgIHRlbXBVc2VyU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBhZ2VVc2VyU2hl
ZXQtPmNvbnRlbnRzKCksIG1lZGlhUXVlcnlFdmFsdWF0b3IsICZtX3N0eWxlUmVzb2x2ZXIpOwot
ICAgIGNvbGxlY3RSdWxlc0Zyb21Vc2VyU3R5bGVTaGVldHMoZXh0ZW5zaW9uU3R5bGVTaGVldHMu
aW5qZWN0ZWRVc2VyU3R5bGVTaGVldHMoKSwgKnRlbXBVc2VyU3R5bGUsIG1lZGlhUXVlcnlFdmFs
dWF0b3IsIG1fc3R5bGVSZXNvbHZlcik7Ci0gICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNo
ZWV0cyhleHRlbnNpb25TdHlsZVNoZWV0cy5kb2N1bWVudFVzZXJTdHlsZVNoZWV0cygpLCAqdGVt
cFVzZXJTdHlsZSwgbWVkaWFRdWVyeUV2YWx1YXRvciwgbV9zdHlsZVJlc29sdmVyKTsKKyAgICBj
b2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGV4dGVuc2lvblN0eWxlU2hlZXRzLmluamVj
dGVkVXNlclN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpYVF1ZXJ5RXZhbHVhdG9y
KTsKKyAgICBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGV4dGVuc2lvblN0eWxlU2hl
ZXRzLmRvY3VtZW50VXNlclN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpYVF1ZXJ5
RXZhbHVhdG9yKTsKICAgICBpZiAodGVtcFVzZXJTdHlsZS0+cnVsZUNvdW50KCkgPiAwIHx8IHRl
bXBVc2VyU3R5bGUtPnBhZ2VSdWxlcygpLnNpemUoKSA+IDApCiAgICAgICAgIG1fdXNlclN0eWxl
ID0gV1RGTW92ZSh0ZW1wVXNlclN0eWxlKTsKIH0KIAotdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xs
ZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVT
aGVldD4+JiB1c2VyU2hlZXRzLCBSdWxlU2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3ImIG1lZGl1bSwgUmVzb2x2ZXImIHJlc29sdmVyKQordm9pZCBTY29wZVJ1bGVTZXRz
Ojpjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NT
U3R5bGVTaGVldD4+JiB1c2VyU2hlZXRzLCBSdWxlU2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlh
UXVlcnlFdmFsdWF0b3ImIG1lZGl1bSkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
dXNlclNoZWV0cy5zaXplKCk7ICsraSkgewogICAgICAgICBBU1NFUlQodXNlclNoZWV0c1tpXS0+
Y29udGVudHMoKS5pc1VzZXJTdHlsZVNoZWV0KCkpOwotICAgICAgICB1c2VyU3R5bGUuYWRkUnVs
ZXNGcm9tU2hlZXQodXNlclNoZWV0c1tpXS0+Y29udGVudHMoKSwgbWVkaXVtLCAmcmVzb2x2ZXIp
OworICAgICAgICB1c2VyU3R5bGUuYWRkUnVsZXNGcm9tU2hlZXQodXNlclNoZWV0c1tpXS0+Y29u
dGVudHMoKSwgbWVkaXVtLCAmbV9zdHlsZVJlc29sdmVyKTsKICAgICB9CiB9CiAKQEAgLTEzNSwx
NyArMTM2LDIyIEBAIHZvaWQgU2NvcGVSdWxlU2V0czo6cmVzZXRVc2VyQWdlbnRNZWRpYVF1ZXJ5
U3R5bGUoKQogICAgIG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlID0gbnVsbHB0cjsKIH0KIAot
dm9pZCBTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8
UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlFdmFsdWF0b3Iq
IG1lZGl1bSwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01XcmFwcGVycywg
UmVzb2x2ZXIqIHJlc29sdmVyKQordm9pZCBTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHls
ZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMs
IE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1lZGl1bSwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5z
cGVjdG9yQ1NTT01XcmFwcGVycykKIHsKICAgICAvLyBUaGlzIGhhbmRsZXMgc2hlZXRzIGFkZGVk
IHRvIHRoZSBlbmQgb2YgdGhlIHN0eWxlc2hlZXQgbGlzdCBvbmx5LiBJbiBvdGhlciBjYXNlcyB0
aGUgc3R5bGUgcmVzb2x2ZXIKICAgICAvLyBuZWVkcyB0byBiZSByZWNvbnN0cnVjdGVkLiBUbyBo
YW5kbGUgaW5zZXJ0aW9ucyB0b28gdGhlIHJ1bGUgb3JkZXIgbnVtYmVycyB3b3VsZCBuZWVkIHRv
IGJlIHVwZGF0ZWQuCisgICAgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIG1lZGlhUXVlcnlEeW5h
bWljUmVzdWx0czsKKwogICAgIGZvciAoYXV0byYgY3NzU2hlZXQgOiBzdHlsZVNoZWV0cykgewog
ICAgICAgICBBU1NFUlQoIWNzc1NoZWV0LT5kaXNhYmxlZCgpKTsKLSAgICAgICAgaWYgKGNzc1No
ZWV0LT5tZWRpYVF1ZXJpZXMoKSAmJiAhbWVkaXVtLT5ldmFsdWF0ZSgqY3NzU2hlZXQtPm1lZGlh
UXVlcmllcygpLCByZXNvbHZlcikpCisgICAgICAgIGlmIChjc3NTaGVldC0+bWVkaWFRdWVyaWVz
KCkgJiYgIW1lZGl1bS0+ZXZhbHVhdGUoKmNzc1NoZWV0LT5tZWRpYVF1ZXJpZXMoKSwgJm1lZGlh
UXVlcnlEeW5hbWljUmVzdWx0cykpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9h
dXRob3JTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoY3NzU2hlZXQtPmNvbnRlbnRzKCksICptZWRp
dW0sIHJlc29sdmVyKTsKKyAgICAgICAgbV9hdXRob3JTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQo
Y3NzU2hlZXQtPmNvbnRlbnRzKCksICptZWRpdW0sICZtX3N0eWxlUmVzb2x2ZXIpOwogICAgICAg
ICBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNvbGxlY3RGcm9tU3R5bGVTaGVldElmTmVlZGVkKGNz
c1NoZWV0LmdldCgpKTsKICAgICB9CisKKyAgICBtX3N0eWxlUmVzb2x2ZXIuYWRkTWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzKG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisKICAgICBtX2F1dGhv
clN0eWxlLT5zaHJpbmtUb0ZpdCgpOwogICAgIGNvbGxlY3RGZWF0dXJlcygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA4MWI2ZGU4ODdiNS4uNGI3
YWE3ZjIxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBA
IC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVVc2VyU3R5bGUoKTsK
IAogICAgIHZvaWQgcmVzZXRBdXRob3JTdHlsZSgpOwotICAgIHZvaWQgYXBwZW5kQXV0aG9yU3R5
bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mLCBNZWRpYVF1ZXJ5
RXZhbHVhdG9yKiwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYsIFJlc29sdmVyKik7CisgICAgdm9p
ZCBhcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hl
ZXQ+PiYsIE1lZGlhUXVlcnlFdmFsdWF0b3IqLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzJik7CiAK
ICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKQEAgLTg0LDcgKzg0
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgY29sbGVjdEZlYXR1cmVzKCkgY29u
c3Q7Ci0gICAgdm9pZCBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiwgUnVsZVNldCYgdXNlclN0eWxlLCBjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yJiwgUmVzb2x2ZXImKTsKKyAgICB2b2lkIGNvbGxlY3RSdWxlc0Zyb21V
c2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mLCBSdWxl
U2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKICAgICB2b2lkIHVw
ZGF0ZVVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZUlmTmVlZGVkKCkgY29uc3Q7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UnVsZVNldD4gbV9hdXRob3JTdHlsZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384046</attachid>
            <date>2019-11-21 04:47:57 -0800</date>
            <delta_ts>2019-11-21 08:50:21 -0800</delta_ts>
            <desc>patch</desc>
            <filename>mediaqueryevaluator-cleanup-2.patch</filename>
            <type>text/plain</type>
            <size>31386</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NTY4YWNlMTliMS4uYzgxMmFlNjkxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxOS0xMS0yMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWVkaWFRdWVyeUV2YWx1YXRvciBzaG91bGRuJ3Qga25vdyBhYm91dCBzdHls
ZSByZXNvbHZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA0NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgR2F0aGVyIGR5bmFtaWMgZGVwZW5kZW5jaWVzIGZyb20gTWVkaWFRdWVyeUV2YWx1YXRvciBp
bnRvIGEgc3RydWN0IHJhdGhlciB0aGFuIHdyaXRpbmcgdGhlbSBkaXJlY3RseSB0byBhIHJlc29s
dmVyLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeUV2YWx1YXRvcjo6ZXZhbHVhdGUgY29uc3QpOgorCisgICAgICAg
IERlbGV0ZSBhIGR1cGxpY2F0ZSB2ZXJzaW9uIG9mIGV2YWx1YXRlKCkgdGhhdCByZXR1cm5lZCBw
YXJ0aWFsIGRlcGVuZGVuY2llcy4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHM6OmFwcGVuZCk6
CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKToK
KworICAgICAgICBUaGlzIGRvZXNuJ3QgbmVlZCByZXNvbHZlciwgdGhlIHBpY3R1cmUgZWxlbWVu
dCBpbXBsZW1lbnRhdGlvbiB0YWtlcyBjYXJlIG9mIHRoZSBtZWRpYSBxdWVyeSBkZXBlbmRlbmNp
ZXMuCisKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdFNvdXJjZUZyb21QaWN0dXJlRWxlbWVudCk6
CisgICAgICAgICogaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFBpY3R1cmVFbGVtZW50Ojp2aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGljdHVyZUVsZW1lbnQ6OmFwcGVhcmFuY2VDaGFu
Z2VBZmZlY3RlZFBpY3R1cmUgY29uc3QpOgorCisgICAgICAgIFN0b3JlIE1lZGlhUXVlcnlEeW5h
bWljUmVzdWx0cyBzdHJ1Y3QgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIHZlY3RvcnMuCisKKyAgICAg
ICAgKiBzdHlsZS9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0
OjphZGRDaGlsZFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlU2V0OjphZGRS
dWxlc0Zyb21TaGVldCk6CisgICAgICAgICogc3R5bGUvUnVsZVNldC5oOgorICAgICAgICAqIHN0
eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVy
OjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVz
b2x2ZXI6OmFkZE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UmVzb2x2ZXI6Omhhc01lZGlhUXVlcmllc0FmZmVjdGVkQnlWaWV3cG9ydENoYW5nZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6Omhhc01lZGlhUXVlcmll
c0FmZmVjdGVkQnlBY2Nlc3NpYmlsaXR5U2V0dGluZ3NDaGFuZ2UgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QXBwZWFy
YW5jZUNoYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmFk
ZFZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OmFkZEFjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVu
dE1lZGlhUXVlcnlSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJl
c29sdmVyOjphZGRBcHBlYXJhbmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdCk6IERlbGV0ZWQu
CisKKyAgICAgICAgU3RvcmUgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIHN0cnVjdCBpbnN0ZWFk
IG9mIGluZGl2aWR1YWwgdmVjdG9ycy4KKworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6aGFzVmlld3BvcnREZXBlbmRl
bnRNZWRpYVF1ZXJpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVy
OjpoYXNBY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJpZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpoYXNBcHBlYXJhbmNlRGVwZW5kZW50
TWVkaWFRdWVyaWVzIGNvbnN0KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlUnVsZVNldHM6OnVwZGF0ZVVzZXJB
Z2VudE1lZGlhUXVlcnlTdHlsZUlmTmVlZGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlOjpTY29wZVJ1bGVTZXRzOjppbml0aWFsaXplVXNlclN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjpjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JT
dHlsZVNoZWV0cyk6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisKIDIw
MTktMTEtMTkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBDU1NEZWZhdWx0U3R5bGVTaGVldHMgdG8gVXNlckFnZW50U3R5bGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA0MTE1YzQyYTcxMS4uMDU4MWNh
YWYzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAg
LTQ2LDcgKzQ2LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIu
aCIKICNpbmNsdWRlICJUaGVtZS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CkBAIC0xNDYsNyArMTQ1LDcg
QEAgc3RhdGljIGJvb2wgYXBwbHlSZXN0cmljdG9yKE1lZGlhUXVlcnk6OlJlc3RyaWN0b3Igciwg
Ym9vbCB2YWx1ZSkKICAgICByZXR1cm4gciA9PSBNZWRpYVF1ZXJ5OjpOb3QgPyAhdmFsdWUgOiB2
YWx1ZTsKIH0KIAotYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBNZWRp
YVF1ZXJ5U2V0JiBxdWVyeVNldCwgU3R5bGU6OlJlc29sdmVyKiBzdHlsZVJlc29sdmVyKSBjb25z
dAorYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0
JiBxdWVyeVNldCwgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKiBkeW5hbWljUmVzdWx0cykgY29u
c3QKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oTWVkaWFRdWVyaWVzLCBzdHJlYW0gPDwgIk1lZGlh
UXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlIG9uICIgPDwgKG1fZG9jdW1lbnQgPyBtX2RvY3VtZW50
LT51cmwoKS5zdHJpbmcoKSA6IGVtcHR5U3RyaW5nKCkpKTsKIApAQCAtMTcwLDEyICsxNjksMTUg
QEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0
JiBxdWVyeVNldCwgU3R5bGU6OlJlc29sdmUKICAgICAgICAgICAgIHNpemVfdCBqID0gMDsKICAg
ICAgICAgICAgIGZvciAoOyBqIDwgZXhwcmVzc2lvbnMuc2l6ZSgpOyArK2opIHsKICAgICAgICAg
ICAgICAgICBib29sIGV4cHJlc3Npb25SZXN1bHQgPSBldmFsdWF0ZShleHByZXNzaW9uc1tqXSk7
Ci0gICAgICAgICAgICAgICAgaWYgKHN0eWxlUmVzb2x2ZXIgJiYgaXNWaWV3cG9ydERlcGVuZGVu
dChleHByZXNzaW9uc1tqXS5tZWRpYUZlYXR1cmUoKSkpCi0gICAgICAgICAgICAgICAgICAgIHN0
eWxlUmVzb2x2ZXItPmFkZFZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdChleHByZXNz
aW9uc1tqXSwgZXhwcmVzc2lvblJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0eWxlUmVz
b2x2ZXIgJiYgaXNBY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRlbnQoZXhwcmVzc2lvbnNbal0u
bWVkaWFGZWF0dXJlKCkpKQotICAgICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5hZGRB
Y2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGV4cHJlc3Npb25z
W2pdLCBleHByZXNzaW9uUmVzdWx0KTsKLSAgICAgICAgICAgICAgICBpZiAoc3R5bGVSZXNvbHZl
ciAmJiBpc0FwcGVhcmFuY2VEZXBlbmRlbnQoZXhwcmVzc2lvbnNbal0ubWVkaWFGZWF0dXJlKCkp
KQotICAgICAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5hZGRBcHBlYXJhbmNlRGVwZW5k
ZW50TWVkaWFRdWVyeVJlc3VsdChleHByZXNzaW9uc1tqXSwgZXhwcmVzc2lvblJlc3VsdCk7Cisg
ICAgICAgICAgICAgICAgaWYgKGR5bmFtaWNSZXN1bHRzKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChpc1ZpZXdwb3J0RGVwZW5kZW50KGV4cHJlc3Npb25zW2pdLm1lZGlhRmVhdHVyZSgpKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNSZXN1bHRzLT52aWV3cG9ydC5hcHBlbmQo
eyBleHByZXNzaW9uc1tqXSwgZXhwcmVzc2lvblJlc3VsdCB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzQXBwZWFyYW5jZURlcGVuZGVudChleHByZXNzaW9uc1tqXS5tZWRpYUZlYXR1cmUo
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljUmVzdWx0cy0+YXBwZWFyYW5jZS5h
cHBlbmQoeyBleHByZXNzaW9uc1tqXSwgZXhwcmVzc2lvblJlc3VsdCB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzQWNjZXNzaWJpbGl0eVNldHRpbmdzRGVwZW5kZW50KGV4cHJlc3Npb25z
W2pdLm1lZGlhRmVhdHVyZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNSZXN1
bHRzLT5hY2Nlc3NpYmlsaXR5U2V0dGluZ3MuYXBwZW5kKHsgZXhwcmVzc2lvbnNbal0sIGV4cHJl
c3Npb25SZXN1bHQgfSk7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgaWYg
KCFleHByZXNzaW9uUmVzdWx0KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE5MCwzOSArMTkyLDYgQEAgYm9vbCBNZWRpYVF1ZXJ5RXZhbHVhdG9yOjpldmFs
dWF0ZShjb25zdCBNZWRpYVF1ZXJ5U2V0JiBxdWVyeVNldCwgU3R5bGU6OlJlc29sdmUKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIE1lZGlhUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlKGNv
bnN0IE1lZGlhUXVlcnlTZXQmIHF1ZXJ5U2V0LCBWZWN0b3I8TWVkaWFRdWVyeVJlc3VsdD4mIHZp
ZXdwb3J0RGVwZW5kZW50UmVzdWx0cywgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+JiBhcHBlYXJh
bmNlRGVwZW5kZW50UmVzdWx0cykgY29uc3QKLXsKLSAgICBhdXRvJiBxdWVyaWVzID0gcXVlcnlT
ZXQucXVlcnlWZWN0b3IoKTsKLSAgICBpZiAoIXF1ZXJpZXMuc2l6ZSgpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBxdWVyaWVzLnNpemUoKSAmJiAhcmVzdWx0OyArK2kpIHsKLSAgICAgICAgYXV0byYg
cXVlcnkgPSBxdWVyaWVzW2ldOwotCi0gICAgICAgIGlmIChxdWVyeS5pZ25vcmVkKCkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAobWVkaWFUeXBlTWF0Y2gocXVlcnkubWVk
aWFUeXBlKCkpKSB7Ci0gICAgICAgICAgICBhdXRvJiBleHByZXNzaW9ucyA9IHF1ZXJ5LmV4cHJl
c3Npb25zKCk7Ci0gICAgICAgICAgICBzaXplX3QgaiA9IDA7Ci0gICAgICAgICAgICBmb3IgKDsg
aiA8IGV4cHJlc3Npb25zLnNpemUoKTsgKytqKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBleHBy
ZXNzaW9uUmVzdWx0ID0gZXZhbHVhdGUoZXhwcmVzc2lvbnNbal0pOwotICAgICAgICAgICAgICAg
IGlmIChpc1ZpZXdwb3J0RGVwZW5kZW50KGV4cHJlc3Npb25zW2pdLm1lZGlhRmVhdHVyZSgpKSkK
LSAgICAgICAgICAgICAgICAgICAgdmlld3BvcnREZXBlbmRlbnRSZXN1bHRzLmFwcGVuZCh7IGV4
cHJlc3Npb25zW2pdLCBleHByZXNzaW9uUmVzdWx0IH0pOwotICAgICAgICAgICAgICAgIGlmIChp
c0FwcGVhcmFuY2VEZXBlbmRlbnQoZXhwcmVzc2lvbnNbal0ubWVkaWFGZWF0dXJlKCkpKQotICAg
ICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlRGVwZW5kZW50UmVzdWx0cy5hcHBlbmQoeyBleHBy
ZXNzaW9uc1tqXSwgZXhwcmVzc2lvblJlc3VsdCB9KTsKLSAgICAgICAgICAgICAgICBpZiAoIWV4
cHJlc3Npb25SZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmVzdWx0ID0gYXBwbHlSZXN0cmljdG9yKHF1ZXJ5LnJlc3RyaWN0b3Io
KSwgZXhwcmVzc2lvbnMuc2l6ZSgpID09IGopOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IHJlc3VsdCA9IGFwcGx5UmVzdHJpY3RvcihxdWVyeS5yZXN0cmljdG9yKCksIGZhbHNlKTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBib29sIGNvbXBhcmVWYWx1ZShUIGEsIFUgYiwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQogewogICAgIHN3aXRjaCAob3ApIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5oCmluZGV4IDVhMmVjZGI1MjNhLi5iOTA4NGM2YzRmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5oCkBAIC00Niw2ICs0NiwxOSBAQCBzdHJ1Y3QgTWVkaWFR
dWVyeVJlc3VsdCB7CiAgICAgYm9vbCByZXN1bHQ7CiB9OwogCitzdHJ1Y3QgTWVkaWFRdWVyeUR5
bmFtaWNSZXN1bHRzIHsKKyAgICBWZWN0b3I8TWVkaWFRdWVyeVJlc3VsdD4gdmlld3BvcnQ7Cisg
ICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+IGFwcGVhcmFuY2U7CisgICAgVmVjdG9yPE1lZGlh
UXVlcnlSZXN1bHQ+IGFjY2Vzc2liaWxpdHlTZXR0aW5nczsKKworICAgIHZvaWQgYXBwZW5kKGNv
bnN0IE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyYgb3RoZXIpCisgICAgeworICAgICAgICB2aWV3
cG9ydC5hcHBlbmRWZWN0b3Iob3RoZXIudmlld3BvcnQpOworICAgICAgICBhcHBlYXJhbmNlLmFw
cGVuZFZlY3RvcihvdGhlci5hcHBlYXJhbmNlKTsKKyAgICAgICAgYWNjZXNzaWJpbGl0eVNldHRp
bmdzLmFwcGVuZFZlY3RvcihvdGhlci5hY2Nlc3NpYmlsaXR5U2V0dGluZ3MpOworICAgIH0KK307
CisKIC8vIFNvbWUgb2YgdGhlIGNvbnN0cnVjdG9ycyBhcmUgdXNlZCBmb3IgY2FzZXMgd2hlcmUg
dGhlIGRldmljZSBjaGFyYWN0ZXJpc3RpY3MgYXJlIG5vdCBrbm93bi4KIC8vIFRoZXNlICBjYW4g
YmUgdXNlZCB0byBwcnVuZSB0aGUgbG9hZGluZyBvZiBzdHlsZXNoZWV0cyB0byBvbmx5IHRob3Nl
IHdoaWNoIGFyZSBub3QgYWxyZWFkeSBrbm93biB0byBub3QgbWF0Y2guCiAKQEAgLTY1LDE0ICs3
OCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBtZWRpYVR5cGVNYXRjaChjb25zdCBTdHJpbmcmIG1l
ZGlhVHlwZVRvTWF0Y2gpIGNvbnN0OwogICAgIGJvb2wgbWVkaWFUeXBlTWF0Y2hTcGVjaWZpYyhj
b25zdCBjaGFyKiBtZWRpYVR5cGVUb01hdGNoKSBjb25zdDsKIAotICAgIC8vIEV2YWx1YXRlcyBh
IGxpc3Qgb2YgbWVkaWEgcXVlcmllcy4KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGV2YWx1YXRl
KGNvbnN0IE1lZGlhUXVlcnlTZXQmLCBTdHlsZTo6UmVzb2x2ZXIqID0gbnVsbHB0cikgY29uc3Q7
Ci0KICAgICAvLyBFdmFsdWF0ZXMgbWVkaWEgcXVlcnkgc3ViZXhwcmVzc2lvbiwgaWUgImFuZCAo
bWVkaWEtZmVhdHVyZTogdmFsdWUpIiBwYXJ0LgogICAgIGJvb2wgZXZhbHVhdGUoY29uc3QgTWVk
aWFRdWVyeUV4cHJlc3Npb24mKSBjb25zdDsKIAotICAgIC8vIEV2YWx1YXRlcyBhIGxpc3Qgb2Yg
bWVkaWEgcXVlcmllcyBhbmQgZmlsbHMgaW4gdmVjdG9ycyB3aXRoIGFueSB2aWV3cG9ydCBvciBk
YXJrIG1vZGUgZGVwZW5kZW50IHJlc3VsdHMgZm91bmQuCi0gICAgYm9vbCBldmFsdWF0ZShjb25z
dCBNZWRpYVF1ZXJ5U2V0JiwgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+JiB2aWV3cG9ydERlcGVu
ZGVudFJlc3VsdHMsIFZlY3RvcjxNZWRpYVF1ZXJ5UmVzdWx0PiYgYXBwZWFyYW5jZURlcGVuZGVu
dFJlc3VsdHMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZXZhbHVhdGUoY29uc3Qg
TWVkaWFRdWVyeVNldCYsIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyogPSBudWxscHRyKSBjb25z
dDsKIAogICAgIHN0YXRpYyBib29sIG1lZGlhQXR0cmlidXRlTWF0Y2hlcyhEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgYXR0cmlidXRlVmFsdWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCmluZGV4IDgwNmVkYTg0YjNkLi4yMjYx
YjdjOTJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCBib29sIFNpemVzQXR0cmlidXRlUGFy
c2VyOjptZWRpYUNvbmRpdGlvbk1hdGNoZXMoY29uc3QgTWVkaWFRdWVyeVNldCYgbWVkaWFDb25k
aQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhdXRvJiBz
dHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9y
IHsgInNjcmVlbiIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9u
LCBjb25zdF9jYXN0PFN0eWxlOjpTY29wZSY+KG1fZG9jdW1lbnQuc3R5bGVTY29wZSgpKS5yZXNv
bHZlcklmRXhpc3RzKCkpOworICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgInNjcmVl
biIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9uKTsKIH0KIAog
Ym9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6cGFyc2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5n
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDdkNGFiMzY4
NWNjLi42MDFlZDE0MDNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCkBAIC0xNjAsMTIgKzE2MCwxMiBAQCBJbWFnZUNhbmRpZGF0ZSBIVE1MSW1hZ2VFbGVtZW50
OjpiZXN0Rml0U291cmNlRnJvbVBpY3R1cmVFbGVtZW50KCkKICAgICBpZiAoIXBpY3R1cmUpCiAg
ICAgICAgIHJldHVybiB7IH07CiAKLSAgICBwaWN0dXJlLT5jbGVhclZpZXdwb3J0RGVwZW5kZW50
UmVzdWx0cygpOwogICAgIGRvY3VtZW50KCkucmVtb3ZlVmlld3BvcnREZXBlbmRlbnRQaWN0dXJl
KCpwaWN0dXJlKTsKLQotICAgIHBpY3R1cmUtPmNsZWFyQXBwZWFyYW5jZURlcGVuZGVudFJlc3Vs
dHMoKTsKICAgICBkb2N1bWVudCgpLnJlbW92ZUFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpw
aWN0dXJlKTsKIAorICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtZWRpYVF1ZXJ5RHluYW1p
Y1Jlc3VsdHM7CisgICAgSW1hZ2VDYW5kaWRhdGUgY2FuZGlkYXRlOworCiAgICAgZm9yIChSZWZQ
dHI8Tm9kZT4gY2hpbGQgPSBwaWN0dXJlLT5maXJzdENoaWxkKCk7IGNoaWxkICYmIGNoaWxkICE9
IHRoaXM7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFpczxI
VE1MU291cmNlRWxlbWVudD4oKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTg4
LDIwICsxODgsMjYgQEAgSW1hZ2VDYW5kaWRhdGUgSFRNTEltYWdlRWxlbWVudDo6YmVzdEZpdFNv
dXJjZUZyb21QaWN0dXJlRWxlbWVudCgpCiAgICAgICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZh
bHVhdG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1
bWVudCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUo
KSA6IG51bGxwdHIgfTsKICAgICAgICAgYXV0byogcXVlcmllcyA9IHNvdXJjZS5wYXJzZWRNZWRp
YUF0dHJpYnV0ZShkb2N1bWVudCgpKTsKICAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxJ
bWFnZUVsZW1lbnQgJXAgYmVzdEZpdFNvdXJjZUZyb21QaWN0dXJlRWxlbWVudCBldmFsdWF0aW5n
IG1lZGlhIHF1ZXJpZXMiLCB0aGlzKTsKLSAgICAgICAgYXV0byBldmFsdWF0aW9uID0gIXF1ZXJp
ZXMgfHwgZXZhbHVhdG9yLmV2YWx1YXRlKCpxdWVyaWVzLCBwaWN0dXJlLT52aWV3cG9ydERlcGVu
ZGVudFJlc3VsdHMoKSwgcGljdHVyZS0+YXBwZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSk7Ci0g
ICAgICAgIGlmIChwaWN0dXJlLT5oYXNWaWV3cG9ydERlcGVuZGVudFJlc3VsdHMoKSkKLSAgICAg
ICAgICAgIGRvY3VtZW50KCkuYWRkVmlld3BvcnREZXBlbmRlbnRQaWN0dXJlKCpwaWN0dXJlKTsK
LSAgICAgICAgaWYgKHBpY3R1cmUtPmhhc0FwcGVhcmFuY2VEZXBlbmRlbnRSZXN1bHRzKCkpCi0g
ICAgICAgICAgICBkb2N1bWVudCgpLmFkZEFwcGVhcmFuY2VEZXBlbmRlbnRQaWN0dXJlKCpwaWN0
dXJlKTsKKworICAgICAgICBhdXRvIGV2YWx1YXRpb24gPSAhcXVlcmllcyB8fCBldmFsdWF0b3Iu
ZXZhbHVhdGUoKnF1ZXJpZXMsICZtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogICAgICAgICBp
ZiAoIWV2YWx1YXRpb24pCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBhdXRvIHNv
dXJjZVNpemUgPSBTaXplc0F0dHJpYnV0ZVBhcnNlcihzb3VyY2UuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihzaXplc0F0dHIpLnN0cmluZygpLCBkb2N1bWVudCgpKS5sZW5ndGgoKTsK
LSAgICAgICAgYXV0byBjYW5kaWRhdGUgPSBiZXN0Rml0U291cmNlRm9ySW1hZ2VBdHRyaWJ1dGVz
KGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbnVsbEF0b20oKSwgc3Jjc2V0LCBzb3Vy
Y2VTaXplKTsKKyAgICAgICAgY2FuZGlkYXRlID0gYmVzdEZpdFNvdXJjZUZvckltYWdlQXR0cmli
dXRlcyhkb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIG51bGxBdG9tKCksIHNyY3NldCwg
c291cmNlU2l6ZSk7CiAgICAgICAgIGlmICghY2FuZGlkYXRlLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0
dXJuIHsgfTsKKworICAgIHBpY3R1cmUtPnNldE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyhXVEZN
b3ZlKG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cykpOworCisgICAgLy8gRklYTUU6IFRoaXMgaXMg
bm90IGhhbmRsaW5nIGFjY2Vzc2liaWxpdHkgc2V0dGluZ3MgZGVwZW5kZW50IG1lZGlhIHF1ZXJp
ZXMuCisgICAgaWYgKHBpY3R1cmUtPmhhc1ZpZXdwb3J0RGVwZW5kZW50UmVzdWx0cygpKQorICAg
ICAgICBkb2N1bWVudCgpLmFkZFZpZXdwb3J0RGVwZW5kZW50UGljdHVyZSgqcGljdHVyZSk7Cisg
ICAgaWYgKHBpY3R1cmUtPmhhc0FwcGVhcmFuY2VEZXBlbmRlbnRSZXN1bHRzKCkpCisgICAgICAg
IGRvY3VtZW50KCkuYWRkQXBwZWFyYW5jZURlcGVuZGVudFBpY3R1cmUoKnBpY3R1cmUpOworCisg
ICAgcmV0dXJuIGNhbmRpZGF0ZTsKIH0KIAogdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZWxlY3RJ
bWFnZVNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAK
aW5kZXggMDA0NmQxOWM4NjYuLjM2ODRjZmZhYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGljdHVyZUVsZW1lbnQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgSFRNTFBpY3R1cmVF
bGVtZW50Ojp2aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSgpIGNvbnN0CiB7CiAgICAgYXV0
byBkb2N1bWVudEVsZW1lbnQgPSBtYWtlUmVmUHRyKGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCkpOwogICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZhbHVhdG9yIHsgZG9jdW1lbnQoKS5wcmlu
dGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1bWVudCgpLCBkb2N1bWVudEVsZW1lbnQg
PyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUoKSA6IG51bGxwdHIgfTsKLSAgICBmb3Ig
KGF1dG8mIHJlc3VsdCA6IG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cykgewor
ICAgIGZvciAoYXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMudmlld3Bv
cnQpIHsKICAgICAgICAgTE9HKE1lZGlhUXVlcmllcywgIkhUTUxQaWN0dXJlRWxlbWVudCAlcCB2
aWV3cG9ydENoYW5nZUFmZmVjdGVkUGljdHVyZSBldmFsdWF0aW5nIG1lZGlhIHF1ZXJpZXMiLCB0
aGlzKTsKICAgICAgICAgaWYgKGV2YWx1YXRvci5ldmFsdWF0ZShyZXN1bHQuZXhwcmVzc2lvbikg
IT0gcmVzdWx0LnJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtODMsNyArODMs
NyBAQCBib29sIEhUTUxQaWN0dXJlRWxlbWVudDo6YXBwZWFyYW5jZUNoYW5nZUFmZmVjdGVkUGlj
dHVyZSgpIGNvbnN0CiB7CiAgICAgYXV0byBkb2N1bWVudEVsZW1lbnQgPSBtYWtlUmVmUHRyKGRv
Y3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOwogICAgIE1lZGlhUXVlcnlFdmFsdWF0b3IgZXZh
bHVhdG9yIHsgZG9jdW1lbnQoKS5wcmludGluZygpID8gInByaW50IiA6ICJzY3JlZW4iLCBkb2N1
bWVudCgpLCBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPmNvbXB1dGVkU3R5bGUo
KSA6IG51bGxwdHIgfTsKLSAgICBmb3IgKGF1dG8mIHJlc3VsdCA6IG1fYXBwZWFyYW5jZURlcGVu
ZGVudE1lZGlhUXVlcnlSZXN1bHRzKSB7CisgICAgZm9yIChhdXRvJiByZXN1bHQgOiBtX21lZGlh
UXVlcnlEeW5hbWljUmVzdWx0cy5hcHBlYXJhbmNlKSB7CiAgICAgICAgIExPRyhNZWRpYVF1ZXJp
ZXMsICJIVE1MUGljdHVyZUVsZW1lbnQgJXAgYXBwZWFyYW5jZUNoYW5nZUFmZmVjdGVkUGljdHVy
ZSBldmFsdWF0aW5nIG1lZGlhIHF1ZXJpZXMiLCB0aGlzKTsKICAgICAgICAgaWYgKGV2YWx1YXRv
ci5ldmFsdWF0ZShyZXN1bHQuZXhwcmVzc2lvbikgIT0gcmVzdWx0LnJlc3VsdCkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGlj
dHVyZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgK
aW5kZXggZGQ5OGQ2NTVhMWUuLjhmZmZmNDU2OTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmgKQEAgLTM4LDEzICszOCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNvdXJjZXNDaGFuZ2VkKCk7CiAKLSAgICB2b2lkIGNsZWFyVmlld3BvcnREZXBlbmRlbnRSZXN1
bHRzKCkgeyBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuY2xlYXIoKTsgfQot
ICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgY29uc3QgeyByZXR1cm4gbV92
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzLnNpemUoKTsgfQotICAgIFZlY3RvcjxN
ZWRpYVF1ZXJ5UmVzdWx0PiYgdmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgeyByZXR1cm4gbV92
aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOyB9CiAKLSAgICB2b2lkIGNsZWFyQXBw
ZWFyYW5jZURlcGVuZGVudFJlc3VsdHMoKSB7IG1fYXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVl
cnlSZXN1bHRzLmNsZWFyKCk7IH0KLSAgICBib29sIGhhc0FwcGVhcmFuY2VEZXBlbmRlbnRSZXN1
bHRzKCkgY29uc3QgeyByZXR1cm4gbV9hcHBlYXJhbmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3Vs
dHMuc2l6ZSgpOyB9Ci0gICAgVmVjdG9yPE1lZGlhUXVlcnlSZXN1bHQ+JiBhcHBlYXJhbmNlRGVw
ZW5kZW50UmVzdWx0cygpIHsgcmV0dXJuIG1fYXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcnlS
ZXN1bHRzOyB9CisgICAgdm9pZCBzZXRNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMoTWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzJiYgcmVzdWx0cykgeyBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyA9
IHJlc3VsdHM7IH0KKworICAgIGJvb2wgaGFzVmlld3BvcnREZXBlbmRlbnRSZXN1bHRzKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMudmlld3BvcnQuc2l6ZSgpOyB9
CisgICAgYm9vbCBoYXNBcHBlYXJhbmNlRGVwZW5kZW50UmVzdWx0cygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLmFwcGVhcmFuY2Uuc2l6ZSgpOyB9CiAKICAgICBi
b29sIHZpZXdwb3J0Q2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CiAgICAgYm9vbCBhcHBl
YXJhbmNlQ2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3Q7CkBAIC01OCw4ICs1Niw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1
bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KSBmaW5hbDsKIAotICAgIFZlY3RvcjxNZWRpYVF1
ZXJ5UmVzdWx0PiBtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHM7Ci0gICAgVmVj
dG9yPE1lZGlhUXVlcnlSZXN1bHQ+IG1fYXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcnlSZXN1
bHRzOworICAgIE1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyBtX21lZGlhUXVlcnlEeW5hbWljUmVz
dWx0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5j
cHAKaW5kZXggZDQwMWI2Nzg3NzEuLjk3MDJhM2VjNmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0
LmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUGFnZVJ1bGUoU3R5bGVS
dWxlUGFnZSogcnVsZSkKICAgICBtX3BhZ2VSdWxlcy5hcHBlbmQocnVsZSk7CiB9CiAKLXZvaWQg
UnVsZVNldDo6YWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
PiYgcnVsZXMsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgUmVzb2x2ZXIqIHJl
c29sdmVyLCBib29sIGlzSW5pdGlhdGluZ0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUpCit2
b2lkIFJ1bGVTZXQ6OmFkZENoaWxkUnVsZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVC
YXNlPj4mIHJ1bGVzLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFJlc29sdmVy
KiByZXNvbHZlciwgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzJiBtZWRpYVF1ZXJ5RHluYW1pY1Jl
c3VsdHMpCiB7CiAgICAgZm9yIChhdXRvJiBydWxlIDogcnVsZXMpIHsKICAgICAgICAgaWYgKGlz
PFN0eWxlUnVsZT4oKnJ1bGUpKQpAQCAtMjc0LDE2ICsyNzQsMTYgQEAgdm9pZCBSdWxlU2V0Ojph
ZGRDaGlsZFJ1bGVzKGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiBydWxlcywg
Y29uc3QgTWUKICAgICAgICAgICAgIGFkZFBhZ2VSdWxlKGRvd25jYXN0PFN0eWxlUnVsZVBhZ2U+
KHJ1bGUuZ2V0KCkpKTsKICAgICAgICAgZWxzZSBpZiAoaXM8U3R5bGVSdWxlTWVkaWE+KCpydWxl
KSkgewogICAgICAgICAgICAgYXV0byYgbWVkaWFSdWxlID0gZG93bmNhc3Q8U3R5bGVSdWxlTWVk
aWE+KCpydWxlKTsKLSAgICAgICAgICAgIGlmICgoIW1lZGlhUnVsZS5tZWRpYVF1ZXJpZXMoKSB8
fCBtZWRpdW0uZXZhbHVhdGUoKm1lZGlhUnVsZS5tZWRpYVF1ZXJpZXMoKSwgcmVzb2x2ZXIpKSkK
LSAgICAgICAgICAgICAgICBhZGRDaGlsZFJ1bGVzKG1lZGlhUnVsZS5jaGlsZFJ1bGVzKCksIG1l
ZGl1bSwgcmVzb2x2ZXIsIGlzSW5pdGlhdGluZ0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUp
OworICAgICAgICAgICAgaWYgKCghbWVkaWFSdWxlLm1lZGlhUXVlcmllcygpIHx8IG1lZGl1bS5l
dmFsdWF0ZSgqbWVkaWFSdWxlLm1lZGlhUXVlcmllcygpLCAmbWVkaWFRdWVyeUR5bmFtaWNSZXN1
bHRzKSkpCisgICAgICAgICAgICAgICAgYWRkQ2hpbGRSdWxlcyhtZWRpYVJ1bGUuY2hpbGRSdWxl
cygpLCBtZWRpdW0sIHJlc29sdmVyLCBtZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogICAgICAg
ICB9IGVsc2UgaWYgKGlzPFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZSkgJiYgcmVzb2x2ZXIpIHsK
ICAgICAgICAgICAgIC8vIEFkZCB0aGlzIGZvbnQgZmFjZSB0byBvdXIgc2V0LgotICAgICAgICAg
ICAgcmVzb2x2ZXItPmRvY3VtZW50KCkuZm9udFNlbGVjdG9yKCkuYWRkRm9udEZhY2VSdWxlKGRv
d25jYXN0PFN0eWxlUnVsZUZvbnRGYWNlPigqcnVsZS5nZXQoKSksIGlzSW5pdGlhdGluZ0VsZW1l
bnRJblVzZXJBZ2VudFNoYWRvd1RyZWUpOworICAgICAgICAgICAgcmVzb2x2ZXItPmRvY3VtZW50
KCkuZm9udFNlbGVjdG9yKCkuYWRkRm9udEZhY2VSdWxlKGRvd25jYXN0PFN0eWxlUnVsZUZvbnRG
YWNlPigqcnVsZS5nZXQoKSksIGZhbHNlKTsKICAgICAgICAgICAgIHJlc29sdmVyLT5pbnZhbGlk
YXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CiAgICAgICAgIH0gZWxzZSBpZiAoaXM8U3R5
bGVSdWxlS2V5ZnJhbWVzPigqcnVsZSkgJiYgcmVzb2x2ZXIpCiAgICAgICAgICAgICByZXNvbHZl
ci0+YWRkS2V5ZnJhbWVTdHlsZShkb3duY2FzdDxTdHlsZVJ1bGVLZXlmcmFtZXM+KCpydWxlKSk7
CiAgICAgICAgIGVsc2UgaWYgKGlzPFN0eWxlUnVsZVN1cHBvcnRzPigqcnVsZSkgJiYgZG93bmNh
c3Q8U3R5bGVSdWxlU3VwcG9ydHM+KCpydWxlKS5jb25kaXRpb25Jc1N1cHBvcnRlZCgpKQotICAg
ICAgICAgICAgYWRkQ2hpbGRSdWxlcyhkb3duY2FzdDxTdHlsZVJ1bGVTdXBwb3J0cz4oKnJ1bGUp
LmNoaWxkUnVsZXMoKSwgbWVkaXVtLCByZXNvbHZlciwgaXNJbml0aWF0aW5nRWxlbWVudEluVXNl
ckFnZW50U2hhZG93VHJlZSk7CisgICAgICAgICAgICBhZGRDaGlsZFJ1bGVzKGRvd25jYXN0PFN0
eWxlUnVsZVN1cHBvcnRzPigqcnVsZSkuY2hpbGRSdWxlcygpLCBtZWRpdW0sIHJlc29sdmVyLCBt
ZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJ
T04pCiAgICAgICAgIGVsc2UgaWYgKGlzPFN0eWxlUnVsZVZpZXdwb3J0PigqcnVsZSkgJiYgcmVz
b2x2ZXIpCiAgICAgICAgICAgICByZXNvbHZlci0+dmlld3BvcnRTdHlsZVJlc29sdmVyKCktPmFk
ZFZpZXdwb3J0UnVsZShkb3duY2FzdDxTdHlsZVJ1bGVWaWV3cG9ydD4ocnVsZS5nZXQoKSkpOwpA
QCAtMjkxLDE3ICsyOTEsMjIgQEAgdm9pZCBSdWxlU2V0OjphZGRDaGlsZFJ1bGVzKGNvbnN0IFZl
Y3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4+JiBydWxlcywgY29uc3QgTWUKICAgICB9CiB9CiAK
LXZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzJiBzaGVl
dCwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYgbWVkaXVtLCBSZXNvbHZlciogcmVzb2x2ZXIp
Cit2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyYgc2hl
ZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGlhUXVlcnlFdmFsdWF0b3IsIFJlc29s
dmVyKiByZXNvbHZlcikKIHsKKyAgICBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMgbWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzOworCiAgICAgZm9yIChhdXRvJiBydWxlIDogc2hlZXQuaW1wb3J0UnVs
ZXMoKSkgewotICAgICAgICBpZiAocnVsZS0+c3R5bGVTaGVldCgpICYmICghcnVsZS0+bWVkaWFR
dWVyaWVzKCkgfHwgbWVkaXVtLmV2YWx1YXRlKCpydWxlLT5tZWRpYVF1ZXJpZXMoKSwgcmVzb2x2
ZXIpKSkKLSAgICAgICAgICAgIGFkZFJ1bGVzRnJvbVNoZWV0KCpydWxlLT5zdHlsZVNoZWV0KCks
IG1lZGl1bSwgcmVzb2x2ZXIpOworICAgICAgICBpZiAoIXJ1bGUtPnN0eWxlU2hlZXQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAocnVsZS0+bWVkaWFRdWVyaWVzKCkgJiYg
IW1lZGlhUXVlcnlFdmFsdWF0b3IuZXZhbHVhdGUoKnJ1bGUtPm1lZGlhUXVlcmllcygpLCAmbWVk
aWFRdWVyeUR5bmFtaWNSZXN1bHRzKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBh
ZGRSdWxlc0Zyb21TaGVldCgqcnVsZS0+c3R5bGVTaGVldCgpLCBtZWRpYVF1ZXJ5RXZhbHVhdG9y
LCByZXNvbHZlcik7CiAgICAgfQogCi0gICAgLy8gRklYTUU6IFNraXAgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kgY2hlY2sgd2hlbiBzdHlsZXNoZWV0IGlzIGluIGEgdXNlciBhZ2VudCBzaGFkb3cg
dHJlZS4KLSAgICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDY2NjM+LgotICAgIGJvb2wgaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93
VHJlZSA9IGZhbHNlOwotICAgIGFkZENoaWxkUnVsZXMoc2hlZXQuY2hpbGRSdWxlcygpLCBtZWRp
dW0sIHJlc29sdmVyLCBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsK
KyAgICBhZGRDaGlsZFJ1bGVzKHNoZWV0LmNoaWxkUnVsZXMoKSwgbWVkaWFRdWVyeUV2YWx1YXRv
ciwgcmVzb2x2ZXIsIG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisKKyAgICBpZiAocmVzb2x2
ZXIpCisgICAgICAgIHJlc29sdmVyLT5hZGRNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMobWVkaWFR
dWVyeUR5bmFtaWNSZXN1bHRzKTsKIAogICAgIGlmIChtX2F1dG9TaHJpbmtUb0ZpdEVuYWJsZWQp
CiAgICAgICAgIHNocmlua1RvRml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlU2V0LmgKaW5kZXggNTZkYjdi
ZjFlYWQuLjhjZmU1Y2JiNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
U2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZVNldC5oCkBAIC0zNSw2ICszNSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1NlbGVjdG9yOwogY2xhc3MgTWVkaWFR
dWVyeUV2YWx1YXRvcjsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKK3N0cnVjdCBNZWRpYVF1
ZXJ5RHluYW1pY1Jlc3VsdHM7CiAKIG5hbWVzcGFjZSBTdHlsZSB7CiAKQEAgLTYxLDcgKzYyLDcg
QEAgcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFJ1bGVEYXRhLCAxPiBSdWxlRGF0YVZlY3Rv
cjsKICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFJ1bGVE
YXRhVmVjdG9yPj4gQXRvbVJ1bGVNYXA7CiAKLSAgICB2b2lkIGFkZFJ1bGVzRnJvbVNoZWV0KFN0
eWxlU2hlZXRDb250ZW50cyYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImLCBTdHlsZTo6UmVz
b2x2ZXIqID0gMCk7CisgICAgdm9pZCBhZGRSdWxlc0Zyb21TaGVldChTdHlsZVNoZWV0Q29udGVu
dHMmLCBjb25zdCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiwgU3R5bGU6OlJlc29sdmVyKiA9IG51bGxw
dHIpOwogCiAgICAgdm9pZCBhZGRTdHlsZVJ1bGUoU3R5bGVSdWxlKik7CiAgICAgdm9pZCBhZGRS
dWxlKFN0eWxlUnVsZSosIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIHVuc2lnbmVkIHNlbGVjdG9y
TGlzdEluZGV4KTsKQEAgLTk0LDcgKzk1LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSG9zdFBz
ZXVkb0NsYXNzUnVsZXNNYXRjaGluZ0luU2hhZG93VHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFz
SG9zdFBzZXVkb0NsYXNzUnVsZXNNYXRjaGluZ0luU2hhZG93VHJlZTsgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgYWRkQ2hpbGRSdWxlcyhjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
PiYsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgU3R5bGU6OlJlc29sdmVyKiwg
Ym9vbCBpc0luaXRpYXRpbmdFbGVtZW50SW5Vc2VyQWdlbnRTaGFkb3dUcmVlKTsKKyAgICB2b2lk
IGFkZENoaWxkUnVsZXMoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPj4mLCBjb25z
dCBNZWRpYVF1ZXJ5RXZhbHVhdG9yJiBtZWRpdW0sIFN0eWxlOjpSZXNvbHZlciosIE1lZGlhUXVl
cnlEeW5hbWljUmVzdWx0cyYpOwogCiAgICAgQXRvbVJ1bGVNYXAgbV9pZFJ1bGVzOwogICAgIEF0
b21SdWxlTWFwIG1fY2xhc3NSdWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggZjI5ZWM0ZTgyNzMuLjg4ZDRkMWQzZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUmVzb2x2ZXI6OmFkZEN1
cnJlbnRTVkdGb250RmFjZVJ1bGVzKCkKIAogdm9pZCBSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5
bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIHN0eWxlU2hlZXRz
KQogewotICAgIG1fcnVsZVNldHMuYXBwZW5kQXV0aG9yU3R5bGVTaGVldHMoc3R5bGVTaGVldHMs
ICZtX21lZGlhUXVlcnlFdmFsdWF0b3IsIG1faW5zcGVjdG9yQ1NTT01XcmFwcGVycywgdGhpcyk7
CisgICAgbV9ydWxlU2V0cy5hcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhzdHlsZVNoZWV0cywgJm1f
bWVkaWFRdWVyeUV2YWx1YXRvciwgbV9pbnNwZWN0b3JDU1NPTVdyYXBwZXJzKTsKIAogICAgIGlm
IChhdXRvIHJlbmRlclZpZXcgPSBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkKICAgICAgICAgcmVu
ZGVyVmlldy0+c3R5bGUoKS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZG9jdW1lbnQoKS5mb250U2Vs
ZWN0b3IoKSk7CkBAIC02MDIsNDUgKzYwMiwzNSBAQCB2b2lkIFJlc29sdmVyOjphcHBseU1hdGNo
ZWRQcm9wZXJ0aWVzKFN0YXRlJiBzdGF0ZSwgY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdQog
ICAgICAgICBtX21hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5hZGQoc3R5bGUsIHBhcmVudFN0eWxl
LCBjYWNoZUhhc2gsIG1hdGNoUmVzdWx0KTsKIH0KIAotdm9pZCBSZXNvbHZlcjo6YWRkVmlld3Bv
cnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiBl
eHByZXNzaW9uLCBib29sIHJlc3VsdCkKK3ZvaWQgUmVzb2x2ZXI6OmFkZE1lZGlhUXVlcnlEeW5h
bWljUmVzdWx0cyhjb25zdCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmIHJlc3VsdHMpCiB7Ci0g
ICAgbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzLmFwcGVuZChNZWRpYVF1ZXJ5
UmVzdWx0IHsgZXhwcmVzc2lvbiwgcmVzdWx0IH0pOworICAgIG1fbWVkaWFRdWVyeUR5bmFtaWNS
ZXN1bHRzLmFwcGVuZChyZXN1bHRzKTsKIH0KIAogYm9vbCBSZXNvbHZlcjo6aGFzTWVkaWFRdWVy
aWVzQWZmZWN0ZWRCeVZpZXdwb3J0Q2hhbmdlKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWFRdWVy
aWVzLCAiU3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5Vmlld3BvcnRD
aGFuZ2UgZXZhbHVhdGluZyBxdWVyaWVzIik7Ci0gICAgZm9yIChhdXRvJiByZXN1bHQgOiBtX3Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMpIHsKKyAgICBmb3IgKGF1dG8mIHJlc3Vs
dCA6IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzLnZpZXdwb3J0KSB7CiAgICAgICAgIGlmICht
X21lZGlhUXVlcnlFdmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJlc3Vs
dC5yZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFJlc29sdmVyOjphZGRBY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRl
bnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiBleHByZXNzaW9u
LCBib29sIHJlc3VsdCkKLXsKLSAgICBtX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1l
ZGlhUXVlcnlSZXN1bHRzLmFwcGVuZChNZWRpYVF1ZXJ5UmVzdWx0IHsgZXhwcmVzc2lvbiwgcmVz
dWx0IH0pOwotfQotCiBib29sIFJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QWNj
ZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWFRdWVyaWVz
LCAiU3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QWNjZXNzaWJpbGl0
eVNldHRpbmdzQ2hhbmdlIGV2YWx1YXRpbmcgcXVlcmllcyIpOwotICAgIGZvciAoYXV0byYgcmVz
dWx0IDogbV9hY2Nlc3NpYmlsaXR5U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cykg
eworICAgIGZvciAoYXV0byYgcmVzdWx0IDogbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuYWNj
ZXNzaWJpbGl0eVNldHRpbmdzKSB7CiAgICAgICAgIGlmIChtX21lZGlhUXVlcnlFdmFsdWF0b3Iu
ZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9IHJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlc29s
dmVyOjphZGRBcHBlYXJhbmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdChjb25zdCBNZWRpYVF1
ZXJ5RXhwcmVzc2lvbiYgZXhwcmVzc2lvbiwgYm9vbCByZXN1bHQpCi17Ci0gICAgbV9hcHBlYXJh
bmNlRGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMuYXBwZW5kKE1lZGlhUXVlcnlSZXN1bHQgeyBl
eHByZXNzaW9uLCByZXN1bHQgfSk7Ci19Ci0KIGJvb2wgUmVzb2x2ZXI6Omhhc01lZGlhUXVlcmll
c0FmZmVjdGVkQnlBcHBlYXJhbmNlQ2hhbmdlKCkgY29uc3QKIHsKICAgICBMT0coTWVkaWFRdWVy
aWVzLCAiU3R5bGU6OlJlc29sdmVyOjpoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QXBwZWFyYW5j
ZUNoYW5nZSBldmFsdWF0aW5nIHF1ZXJpZXMiKTsKLSAgICBmb3IgKGF1dG8mIHJlc3VsdCA6IG1f
YXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzKSB7CisgICAgZm9yIChhdXRvJiBy
ZXN1bHQgOiBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cy5hcHBlYXJhbmNlKSB7CiAgICAgICAg
IGlmIChtX21lZGlhUXVlcnlFdmFsdWF0b3IuZXZhbHVhdGUocmVzdWx0LmV4cHJlc3Npb24pICE9
IHJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKaW5kZXggNTUxNjQ4ODQ0MWQuLmQxZTVkNDEwMGFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC0xMzEsMTYgKzEzMSwxNCBAQCBw
dWJsaWM6CiAgICAgVmlld3BvcnRTdHlsZVJlc29sdmVyKiB2aWV3cG9ydFN0eWxlUmVzb2x2ZXIo
KSB7IHJldHVybiBtX3ZpZXdwb3J0U3R5bGVSZXNvbHZlci5nZXQoKTsgfQogI2VuZGlmCiAKLSAg
ICB2b2lkIGFkZFZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdChjb25zdCBNZWRpYVF1
ZXJ5RXhwcmVzc2lvbiYsIGJvb2wgcmVzdWx0KTsKLSAgICBib29sIGhhc1ZpZXdwb3J0RGVwZW5k
ZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0cy5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIGFkZE1lZGlhUXVlcnlEeW5hbWlj
UmVzdWx0cyhjb25zdCBNZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMmKTsKKyAgICBib29sIGhhc1Zp
ZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gIW1fbWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzLnZpZXdwb3J0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaGFzTWVkaWFR
dWVyaWVzQWZmZWN0ZWRCeVZpZXdwb3J0Q2hhbmdlKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZEFj
Y2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHQoY29uc3QgTWVkaWFR
dWVyeUV4cHJlc3Npb24mLCBib29sIHJlc3VsdCk7Ci0gICAgYm9vbCBoYXNBY2Nlc3NpYmlsaXR5
U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJpZXMoKSBjb25zdCB7IHJldHVybiAhbV9hY2Nlc3Np
YmlsaXR5U2V0dGluZ3NEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cy5pc0VtcHR5KCk7IH0KKyAg
ICBib29sIGhhc0FjY2Vzc2liaWxpdHlTZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcmllcygpIGNv
bnN0IHsgcmV0dXJuICFtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cy5hY2Nlc3NpYmlsaXR5U2V0
dGluZ3MuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBoYXNNZWRpYVF1ZXJpZXNBZmZlY3RlZEJ5QWNj
ZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZEFwcGVhcmFu
Y2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0KGNvbnN0IE1lZGlhUXVlcnlFeHByZXNzaW9uJiwg
Ym9vbCByZXN1bHQpOwotICAgIGJvb2wgaGFzQXBwZWFyYW5jZURlcGVuZGVudE1lZGlhUXVlcmll
cygpIGNvbnN0IHsgcmV0dXJuICFtX2FwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0
cy5pc0VtcHR5KCk7IH0KKyAgICBib29sIGhhc0FwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJp
ZXMoKSBjb25zdCB7IHJldHVybiAhbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMuYXBwZWFyYW5j
ZS5pc0VtcHR5KCk7IH0KICAgICBib29sIGhhc01lZGlhUXVlcmllc0FmZmVjdGVkQnlBcHBlYXJh
bmNlQ2hhbmdlKCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZEtleWZyYW1lU3R5bGUoUmVmPFN0eWxl
UnVsZUtleWZyYW1lcz4mJik7CkBAIC0yMDIsOSArMjAwLDcgQEAgcHJpdmF0ZToKIAogICAgIFJl
bmRlclN0eWxlKiBtX292ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5bGUgeyBudWxscHRyIH07CiAK
LSAgICBWZWN0b3I8TWVkaWFRdWVyeVJlc3VsdD4gbV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVl
cnlSZXN1bHRzOwotICAgIFZlY3RvcjxNZWRpYVF1ZXJ5UmVzdWx0PiBtX2FjY2Vzc2liaWxpdHlT
ZXR0aW5nc0RlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzOwotICAgIFZlY3RvcjxNZWRpYVF1ZXJ5
UmVzdWx0PiBtX2FwcGVhcmFuY2VEZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0czsKKyAgICBNZWRp
YVF1ZXJ5RHluYW1pY1Jlc3VsdHMgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHM7CiAKICNpZiBF
TkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogICAgIFJlZlB0cjxWaWV3cG9ydFN0eWxlUmVz
b2x2ZXI+IG1fdmlld3BvcnRTdHlsZVJlc29sdmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggOTQyNzI5MjA0MWYuLjhlMDRkNzBmNjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTc3LDYgKzc3
LDcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjp1cGRhdGVVc2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGVJ
Zk5lZWRlZCgpIGNvbnN0CiAgICAgLy8gTWVkaWEgcXVlcmllcyBvbiB1c2VyIGFnZW50IHNoZWV0
IG5lZWQgdG8gZXZhbHVhdGVkIGluIGRvY3VtZW50IGNvbnRleHQuIFRoZXkgYmVoYXZlIGxpa2Ug
YXV0aG9yIHNoZWV0cyBpbiB0aGlzIHJlc3BlY3QuCiAgICAgYXV0byYgbWVkaWFRdWVyeUV2YWx1
YXRvciA9IG1fc3R5bGVSZXNvbHZlci5tZWRpYVF1ZXJ5RXZhbHVhdG9yKCk7CiAgICAgbV91c2Vy
QWdlbnRNZWRpYVF1ZXJ5U3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CisgICAgCiAgICAg
bV91c2VyQWdlbnRNZWRpYVF1ZXJ5U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KCpVc2VyQWdlbnRT
dHlsZTo6bWVkaWFRdWVyeVN0eWxlU2hlZXQsIG1lZGlhUXVlcnlFdmFsdWF0b3IsICZtX3N0eWxl
UmVzb2x2ZXIpOwogCiAgICAgLy8gVmlld3BvcnQgZGVwZW5kZW50IHF1ZXJpZXMgYXJlIGN1cnJl
bnRseSB0b28gaW5lZmZpY2llbnQgdG8gYWxsb3cgb24gVUEgc2hlZXQuCkBAIC05NywxNyArOTgs
MTcgQEAgdm9pZCBTY29wZVJ1bGVTZXRzOjppbml0aWFsaXplVXNlclN0eWxlKCkKICAgICBhdXRv
IHRlbXBVc2VyU3R5bGUgPSBtYWtlVW5pcXVlPFJ1bGVTZXQ+KCk7CiAgICAgaWYgKENTU1N0eWxl
U2hlZXQqIHBhZ2VVc2VyU2hlZXQgPSBleHRlbnNpb25TdHlsZVNoZWV0cy5wYWdlVXNlclNoZWV0
KCkpCiAgICAgICAgIHRlbXBVc2VyU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBhZ2VVc2VyU2hl
ZXQtPmNvbnRlbnRzKCksIG1lZGlhUXVlcnlFdmFsdWF0b3IsICZtX3N0eWxlUmVzb2x2ZXIpOwot
ICAgIGNvbGxlY3RSdWxlc0Zyb21Vc2VyU3R5bGVTaGVldHMoZXh0ZW5zaW9uU3R5bGVTaGVldHMu
aW5qZWN0ZWRVc2VyU3R5bGVTaGVldHMoKSwgKnRlbXBVc2VyU3R5bGUsIG1lZGlhUXVlcnlFdmFs
dWF0b3IsIG1fc3R5bGVSZXNvbHZlcik7Ci0gICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNo
ZWV0cyhleHRlbnNpb25TdHlsZVNoZWV0cy5kb2N1bWVudFVzZXJTdHlsZVNoZWV0cygpLCAqdGVt
cFVzZXJTdHlsZSwgbWVkaWFRdWVyeUV2YWx1YXRvciwgbV9zdHlsZVJlc29sdmVyKTsKKyAgICBj
b2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGV4dGVuc2lvblN0eWxlU2hlZXRzLmluamVj
dGVkVXNlclN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpYVF1ZXJ5RXZhbHVhdG9y
KTsKKyAgICBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGV4dGVuc2lvblN0eWxlU2hl
ZXRzLmRvY3VtZW50VXNlclN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlLCBtZWRpYVF1ZXJ5
RXZhbHVhdG9yKTsKICAgICBpZiAodGVtcFVzZXJTdHlsZS0+cnVsZUNvdW50KCkgPiAwIHx8IHRl
bXBVc2VyU3R5bGUtPnBhZ2VSdWxlcygpLnNpemUoKSA+IDApCiAgICAgICAgIG1fdXNlclN0eWxl
ID0gV1RGTW92ZSh0ZW1wVXNlclN0eWxlKTsKIH0KIAotdm9pZCBTY29wZVJ1bGVTZXRzOjpjb2xs
ZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVT
aGVldD4+JiB1c2VyU2hlZXRzLCBSdWxlU2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlhUXVlcnlF
dmFsdWF0b3ImIG1lZGl1bSwgUmVzb2x2ZXImIHJlc29sdmVyKQordm9pZCBTY29wZVJ1bGVTZXRz
Ojpjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NT
U3R5bGVTaGVldD4+JiB1c2VyU2hlZXRzLCBSdWxlU2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlh
UXVlcnlFdmFsdWF0b3ImIG1lZGl1bSkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
dXNlclNoZWV0cy5zaXplKCk7ICsraSkgewogICAgICAgICBBU1NFUlQodXNlclNoZWV0c1tpXS0+
Y29udGVudHMoKS5pc1VzZXJTdHlsZVNoZWV0KCkpOwotICAgICAgICB1c2VyU3R5bGUuYWRkUnVs
ZXNGcm9tU2hlZXQodXNlclNoZWV0c1tpXS0+Y29udGVudHMoKSwgbWVkaXVtLCAmcmVzb2x2ZXIp
OworICAgICAgICB1c2VyU3R5bGUuYWRkUnVsZXNGcm9tU2hlZXQodXNlclNoZWV0c1tpXS0+Y29u
dGVudHMoKSwgbWVkaXVtLCAmbV9zdHlsZVJlc29sdmVyKTsKICAgICB9CiB9CiAKQEAgLTEzNSwx
NyArMTM2LDIyIEBAIHZvaWQgU2NvcGVSdWxlU2V0czo6cmVzZXRVc2VyQWdlbnRNZWRpYVF1ZXJ5
U3R5bGUoKQogICAgIG1fdXNlckFnZW50TWVkaWFRdWVyeVN0eWxlID0gbnVsbHB0cjsKIH0KIAot
dm9pZCBTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8
UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMsIE1lZGlhUXVlcnlFdmFsdWF0b3Iq
IG1lZGl1bSwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5zcGVjdG9yQ1NTT01XcmFwcGVycywg
UmVzb2x2ZXIqIHJlc29sdmVyKQordm9pZCBTY29wZVJ1bGVTZXRzOjphcHBlbmRBdXRob3JTdHls
ZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgc3R5bGVTaGVldHMs
IE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1lZGl1bSwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYgaW5z
cGVjdG9yQ1NTT01XcmFwcGVycykKIHsKICAgICAvLyBUaGlzIGhhbmRsZXMgc2hlZXRzIGFkZGVk
IHRvIHRoZSBlbmQgb2YgdGhlIHN0eWxlc2hlZXQgbGlzdCBvbmx5LiBJbiBvdGhlciBjYXNlcyB0
aGUgc3R5bGUgcmVzb2x2ZXIKICAgICAvLyBuZWVkcyB0byBiZSByZWNvbnN0cnVjdGVkLiBUbyBo
YW5kbGUgaW5zZXJ0aW9ucyB0b28gdGhlIHJ1bGUgb3JkZXIgbnVtYmVycyB3b3VsZCBuZWVkIHRv
IGJlIHVwZGF0ZWQuCisgICAgTWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzIG1lZGlhUXVlcnlEeW5h
bWljUmVzdWx0czsKKwogICAgIGZvciAoYXV0byYgY3NzU2hlZXQgOiBzdHlsZVNoZWV0cykgewog
ICAgICAgICBBU1NFUlQoIWNzc1NoZWV0LT5kaXNhYmxlZCgpKTsKLSAgICAgICAgaWYgKGNzc1No
ZWV0LT5tZWRpYVF1ZXJpZXMoKSAmJiAhbWVkaXVtLT5ldmFsdWF0ZSgqY3NzU2hlZXQtPm1lZGlh
UXVlcmllcygpLCByZXNvbHZlcikpCisgICAgICAgIGlmIChjc3NTaGVldC0+bWVkaWFRdWVyaWVz
KCkgJiYgIW1lZGl1bS0+ZXZhbHVhdGUoKmNzc1NoZWV0LT5tZWRpYVF1ZXJpZXMoKSwgJm1lZGlh
UXVlcnlEeW5hbWljUmVzdWx0cykpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbV9h
dXRob3JTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQoY3NzU2hlZXQtPmNvbnRlbnRzKCksICptZWRp
dW0sIHJlc29sdmVyKTsKKyAgICAgICAgbV9hdXRob3JTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQo
Y3NzU2hlZXQtPmNvbnRlbnRzKCksICptZWRpdW0sICZtX3N0eWxlUmVzb2x2ZXIpOwogICAgICAg
ICBpbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmNvbGxlY3RGcm9tU3R5bGVTaGVldElmTmVlZGVkKGNz
c1NoZWV0LmdldCgpKTsKICAgICB9CisKKyAgICBtX3N0eWxlUmVzb2x2ZXIuYWRkTWVkaWFRdWVy
eUR5bmFtaWNSZXN1bHRzKG1lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisKICAgICBtX2F1dGhv
clN0eWxlLT5zaHJpbmtUb0ZpdCgpOwogICAgIGNvbGxlY3RGZWF0dXJlcygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAppbmRleCA4MWI2ZGU4ODdiNS4uNGI3
YWE3ZjIxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBA
IC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVVc2VyU3R5bGUoKTsK
IAogICAgIHZvaWQgcmVzZXRBdXRob3JTdHlsZSgpOwotICAgIHZvaWQgYXBwZW5kQXV0aG9yU3R5
bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mLCBNZWRpYVF1ZXJ5
RXZhbHVhdG9yKiwgSW5zcGVjdG9yQ1NTT01XcmFwcGVycyYsIFJlc29sdmVyKik7CisgICAgdm9p
ZCBhcHBlbmRBdXRob3JTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hl
ZXQ+PiYsIE1lZGlhUXVlcnlFdmFsdWF0b3IqLCBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzJik7CiAK
ICAgICB2b2lkIHJlc2V0VXNlckFnZW50TWVkaWFRdWVyeVN0eWxlKCk7CiAKQEAgLTg0LDcgKzg0
LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgY29sbGVjdEZlYXR1cmVzKCkgY29u
c3Q7Ci0gICAgdm9pZCBjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiwgUnVsZVNldCYgdXNlclN0eWxlLCBjb25zdCBNZWRp
YVF1ZXJ5RXZhbHVhdG9yJiwgUmVzb2x2ZXImKTsKKyAgICB2b2lkIGNvbGxlY3RSdWxlc0Zyb21V
c2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mLCBSdWxl
U2V0JiB1c2VyU3R5bGUsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImKTsKICAgICB2b2lkIHVw
ZGF0ZVVzZXJBZ2VudE1lZGlhUXVlcnlTdHlsZUlmTmVlZGVkKCkgY29uc3Q7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UnVsZVNldD4gbV9hdXRob3JTdHlsZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>