<?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>217312</bug_id>
          
          <creation_ts>2020-10-05 08:17:00 -0700</creation_ts>
          <short_desc>MediaRecorder should respect enabled and muted tracks</short_desc>
          <delta_ts>2020-10-05 11:52:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694682</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-05 08:17:00 -0700</bug_when>
    <thetext>MediaRecorder should respect enabled and muted tracks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694684</commentid>
    <comment_count>1</comment_count>
      <attachid>410515</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-05 08:20:26 -0700</bug_when>
    <thetext>Created attachment 410515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694709</commentid>
    <comment_count>2</comment_count>
      <attachid>410524</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-05 08:55:14 -0700</bug_when>
    <thetext>Created attachment 410524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694735</commentid>
    <comment_count>3</comment_count>
      <attachid>410524</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-05 09:50:26 -0700</bug_when>
    <thetext>Comment on attachment 410524
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        If track is muted, replace it by either silence (audio buffer filled with zero) or black frames.

s/zero/zeros/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694765</commentid>
    <comment_count>4</comment_count>
      <attachid>410533</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-05 11:15:34 -0700</bug_when>
    <thetext>Created attachment 410533
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694767</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 11:16:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/69962663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694780</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-05 11:52:36 -0700</bug_when>
    <thetext>Committed r267987: &lt;https://trac.webkit.org/changeset/267987&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410533.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410515</attachid>
            <date>2020-10-05 08:20:26 -0700</date>
            <delta_ts>2020-10-05 08:55:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217312-20201005172024.patch</filename>
            <type>text/plain</type>
            <size>21896</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUzN2Y4NTc5MjhlMDA0
MTFjMTc3NzJkNDA1OGNlNzAxM2ZiNDFkZS4uMDdhNmQ5Y2NiYWRjOWYyYTY0YTc1MmQ1ODZhNGQ3
MzYzNWNkNDhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNo
b3VsZCByZXNwZWN0IGVuYWJsZWQgYW5kIG11dGVkIHRyYWNrcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdHJhY2sgaXMgbXV0ZWQsIHJlcGxhY2Ug
aXQgYnkgZWl0aGVyIHNpbGVuY2UgKGF1ZGlvIGJ1ZmZlciBmaWxsZWQgd2l0aCB6ZXJvKSBvciBi
bGFjayBmcmFtZXMuCisgICAgICAgIE1lZGlhUmVjb3JkZXJQcml2YXRlIHdpbGwga2VlcCB0cmFj
ayBvZiB3aGV0aGVyIHRoZSBzZWxlY3RlZCB0cmFjayBzaG91bGQgYmUgbXV0ZWQuCisgICAgICAg
IEl0IGlzIHRoZW4gdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBzcGVjaWFsaXphdGlvbiB0byBk
byB0aGUgYXBwcm9wcmlhdGUgcHJvY2Vzc2luZy4KKworICAgICAgICBUZXN0OiBodHRwL3dwdC9t
ZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXI6OnRyYWNrTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6
OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9C
dWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6emVy
b0ZsYXRCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnNl
bGVjdFRyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6Y2hl
Y2tUcmFja1N0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
dHJhY2tNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU6OnNob3VsZE11dGVBdWRpbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6c2hvdWxkTXV0ZVZpZGVvIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorCiAyMDIwLTEwLTAzICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgTWVkaWFSZWNvcmRl
ciBkb2VzIG5vdCBjYWxsIGZldGNoRGF0YSB1bnRpbCB0aGUgbGFzdCBmZXRjaERhdGEgaXMgY29t
cGxldGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAKaW5kZXggNzllMDcxZTE3M2I4MGI1OTMyOGY1NGM2MzMxMzk1NTAz
Y2EwM2FhYy4uYTgzYzA5YWI1MjE1ODU3N2I3YTkwM2ZmNWJhZjk3MDgyMTU1ZWIyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmNwcApAQCAtMzAwLDYgKzMwMCwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnRyYWNrRW5k
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAgIHN0b3BSZWNvcmRpbmcoKTsKIH0KIAor
dm9pZCBNZWRpYVJlY29yZGVyOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYgdHJhY2spCit7CisgICAgaWYgKG1fcHJpdmF0ZSkKKyAgICAgICAgbV9wcml2YXRlLT50
cmFja011dGVkQ2hhbmdlZCh0cmFjayk7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlcjo6dHJhY2tF
bmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCit7CisgICAgaWYg
KG1fcHJpdmF0ZSkKKyAgICAgICAgbV9wcml2YXRlLT50cmFja0VuYWJsZWRDaGFuZ2VkKHRyYWNr
KTsKK30KKwogYm9vbCBNZWRpYVJlY29yZGVyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zdGF0ZSAhPSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuaAppbmRleCA0N2Y0MTE0ODczYjMwN2YxMTJhMmViMmFmZDMxNWJiOGM0MWI5MDFlLi4y
ZmI1Nzc2YTMwNWVlYmJkYWJhZWVhMTAxZjMyNGUxZjc4YWQ3Mjc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTEw
OCw5ICsxMDgsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyCiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
ZmluYWw7Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIGZpbmFsIHsgfTsKKyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKLSAgICB2b2lkIHRyYWNrRW5hYmxl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CiAKICAgICBzdGF0
aWMgQ3JlYXRvckZ1bmN0aW9uIG1fY3VzdG9tQ3JlYXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAK
aW5kZXggZTA3NTgwNmI2ZTFjMTRkZjc5MWYxYzYwZmNkZDBmNzY5NTBlNDVlYi4uNmIwYThmZDg5
ZjE3MDhhMjc4NDk5YzM4ZTBlZmJhYjVjZmQxNzE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBA
IC0xNDYsNCArMTQ2LDkgQEAgQXVkaW9CdWZmZXIqIFdlYkF1ZGlvQnVmZmVyTGlzdDo6YnVmZmVy
KHVpbnQzMl90IGluZGV4KSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCit2b2lkIFdl
YkF1ZGlvQnVmZmVyTGlzdDo6emVyb0ZsYXRCdWZmZXIoKQoreworICAgIG1lbXNldChtX2ZsYXRC
dWZmZXIuZGF0YSgpLCAwLCBtX2ZsYXRCdWZmZXIuY2FwYWNpdHkoKSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZm
ZXJMaXN0LmgKaW5kZXggNTc5NjY5MzNkMDNiNWFkMmJlZDhmMzQ0NGJhMzQ1MWJiY2I2YjUwNi4u
N2FlYzA0ZmU5YjM1ZWM1YjI5MmQyNTk1OGM0MjczNjNkNGU5ZWRlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0
LmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWREZXNjcmlwdGlvbihjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CiAKKyAgICB2b2lkIHplcm9GbGF0QnVmZmVyKCk7
CisKIHByaXZhdGU6CiAgICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gS2luZDo6V2ViQXVk
aW9CdWZmZXJMaXN0OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggMjY3OTk4
ZDA2ZDVmODk5YWRhMTE0YjA4ZDBhMWUyZTEyMzA1Nzg1Ny4uYzBiZmIxMmM1ODNmOWY1YTY0NGFl
M2YwNGQ4ZjY4MmVlZmM4NGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNr
cyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2sKIHsKICAgICBBdWRpb1ZpZGVvU2Vs
ZWN0ZWRUcmFja3Mgc2VsZWN0ZWRUcmFja3M7CiAgICAgc3RyZWFtLmZvckVhY2hUcmFjayhbJl0o
YXV0byYgdHJhY2spIHsKLSAgICAgICAgaWYgKCF0cmFjay5lbmFibGVkKCkgfHwgdHJhY2suZW5k
ZWQoKSkKKyAgICAgICAgaWYgKHRyYWNrLmVuZGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHN3aXRjaCAodHJhY2sudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6VmlkZW86IHsKQEAgLTU2LDYgKzU2LDE2IEBAIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3MgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNl
bGVjdFRyYWNrCiAgICAgcmV0dXJuIHNlbGVjdGVkVHJhY2tzOwogfQogCit2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjpjaGVja1RyYWNrU3RhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHRyYWNrKQoreworICAgIGlmICgmdHJhY2suc291cmNlKCkgPT0gbV9hdWRpb1NvdXJjZS5n
ZXQoKSkgeworICAgICAgICBtX3Nob3VsZE11dGVBdWRpbyA9IHRyYWNrLm11dGVkKCkgfHwgIXRy
YWNrLmVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJnRyYWNrLnNv
dXJjZSgpID09IG1fdmlkZW9Tb3VyY2UuZ2V0KCkpCisgICAgICAgIG1fc2hvdWxkTXV0ZVZpZGVv
ID0gdHJhY2subXV0ZWQoKSB8fCAhdHJhY2suZW5hYmxlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5oCmluZGV4IGQ4MTJjNjNkMGM3YjNjYjI5NjFjZGFkZWY0NTNjMTA2MDEwYTdlNTAu
Ljg2NjNhNmY3NmM3MGU2NjVkMzM0N2Q5N2I4MmFlZWFiMzZlZTMyMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgKQEAgLTY1LDExICs2NSwyMSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU3RhcnRS
ZWNvcmRpbmdDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8U3Ry
aW5nPiYmKT47CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UmVjb3JkaW5nKFN0YXJ0UmVjb3JkaW5n
Q2FsbGJhY2smJiBjYWxsYmFjaykgeyBjYWxsYmFjayhTdHJpbmcobWltZVR5cGUoKSkpOyB9CiAK
KyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFj
aykgeyBjaGVja1RyYWNrU3RhdGUodHJhY2spOyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykgeyBjaGVja1RyYWNrU3RhdGUodHJh
Y2spOyB9CisKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHNldFZpZGVvU291cmNlKFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiYmKTsKIAorICAgIHZvaWQgY2hlY2tUcmFja1N0YXRlKGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CisKKyAgICBib29sIHNob3VsZE11dGVBdWRpbygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkTXV0ZUF1ZGlvOyB9CisgICAgYm9vbCBzaG91bGRNdXRlVmlk
ZW8oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE11dGVWaWRlbzsgfQorCiBwcml2YXRlOgorICAg
IGJvb2wgbV9zaG91bGRNdXRlQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRNdXRl
VmlkZW8geyBmYWxzZSB9OwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlv
U291cmNlOwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3ZpZGVvU291cmNlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCA0ZWViMTk1
YzljZDUwNjIzNTYyN2M1ZDhhMDY5NDdkYTk4NzMxY2UyLi42YThlNTQxYTA4YzU4MjI5YWJkNTZm
MWU1NjEyMGFmYmUwYzFlMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuY3BwCkBAIC0yOSwxMyArMjksMjAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBI
QVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uaCIKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5o
IgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKIAorI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRM
aW5rLmgiCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3Jl
YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0
ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CkBAIC01MCwxMCArNTcsMTQgQEAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
OjpjcmVhdGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBhdXRvIHJlY29yZGVyID0g
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4obmV3IE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbCh3cml0ZXIucmVsZWFzZU5vbk51bGwoKSkpOwotICAgIGlmIChz
ZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKQorICAgIGlmIChzZWxlY3RlZFRyYWNrcy5hdWRpb1Ry
YWNrKSB7CiAgICAgICAgIHJlY29yZGVyLT5zZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3Mu
YXVkaW9UcmFjay0+c291cmNlKCkpOwotICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNr
KQorICAgICAgICByZWNvcmRlci0+Y2hlY2tUcmFja1N0YXRlKCpzZWxlY3RlZFRyYWNrcy5hdWRp
b1RyYWNrKTsKKyAgICB9CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spIHsKICAg
ICAgICAgcmVjb3JkZXItPnNldFZpZGVvU291cmNlKCZzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNr
LT5zb3VyY2UoKSk7CisgICAgICAgIHJlY29yZGVyLT5jaGVja1RyYWNrU3RhdGUoKnNlbGVjdGVk
VHJhY2tzLnZpZGVvVHJhY2spOworICAgIH0KICAgICByZXR1cm4gcmVjb3JkZXI7CiB9CiAKQEAg
LTcwLDYgKzgxLDM3IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbCgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2
aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVyKQogeworICAgIGlm
IChzaG91bGRNdXRlVmlkZW8oKSkgeworICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgeworICAg
ICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKKyAg
ICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoZGltZW5zaW9u
cy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOworCisgICAgICAgICAgICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAg
YXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlw
dGlvbik7CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OnZpZGVvU2FtcGxlQXZhaWxhYmxlIDo6dW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRl
c2NyaXB0aW9uOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgICAgICAg
ICAgbV9ibGFja0ZyYW1lID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IGFkb3B0Q0Yo
Zm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICB9CisKKyAgICAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlID0gbnVsbHB0cjsKKyAgICAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0lu
Zm8geyBrQ01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNlbnRhdGlvblRp
bWUoKSksIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07CisgICAgICAgIGF1
dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1f
YmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CisKKyAg
ICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lOiAlZCIsIHN0YXRpY19j
YXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgYXV0byBuZXdTYW1wbGUgPSBhZG9wdENGKHNhbXBsZSk7CisgICAgICAgIG1fd3JpdGVyLT5h
cHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShuZXdTYW1w
bGUuZ2V0KCksIHNhbXBsZUJ1ZmZlci52aWRlb1JvdGF0aW9uKCksIHNhbXBsZUJ1ZmZlci52aWRl
b01pcnJvcmVkKCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYmxhY2tGcmFt
ZSA9IG51bGxwdHI7CisgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBudWxscHRyOwogICAg
IG1fd3JpdGVyLT5hcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihzYW1wbGVCdWZmZXIpOwogfQogCkBA
IC03Nyw2ICsxMTksMTggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWUKIHsKICAgICBBU1NFUlQo
aXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBs
YXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9T
dHJlYW1CYXNpY1R5cGUpOworCisgICAgaWYgKHNob3VsZE11dGVBdWRpbygpKSB7CisgICAgICAg
IGlmICghbV9hdWRpb0J1ZmZlciB8fCBtX2Rlc2NyaXB0aW9uICE9IHRvQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9IHRv
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIG1fYXVk
aW9CdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9kZXNjcmlwdGlvbiwg
c2FtcGxlQ291bnQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fYXVkaW9CdWZmZXIt
PnNldFNhbXBsZUNvdW50KHNhbXBsZUNvdW50KTsKKyAgICAgICAgbV9hdWRpb0J1ZmZlci0+emVy
b0ZsYXRCdWZmZXIoKTsKKyAgICAgICAgbV93cml0ZXItPmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVy
KCptX2F1ZGlvQnVmZmVyLCBkZXNjcmlwdGlvbiwgbWVkaWFUaW1lLCBzYW1wbGVDb3VudCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVC
dWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRleCA5MTFhM2U3ZmMxNzJlOWZh
MDAyZjQ0MDhhZDdiZTBhODZhYzIyOWY1Li4wMDcxZjRmYzE1ZWQzNzliZTI4MTI2MDFlYzgwNjFj
Mjc4MjljZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKQEAgLTI2
LDEyICsyNiwxNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VU
V1JJVEVSREVMRUdBVEUpCiAKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIK
ICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaCIKIAordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVj
dCBfX0NWQnVmZmVyKjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3Jp
cHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogCiBj
bGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwgZmluYWwKICAgICA6IHB1YmxpYyBNZWRp
YVJlY29yZGVyUHJpdmF0ZSB7CkBAIC01Myw2ICs1OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RvcFJlY29yZGluZygpOwogCiAgICAgUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBt
X3dyaXRlcjsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9ibGFja0ZyYW1lOwor
ICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX2JsYWNrRnJhbWVEZXNjcmlw
dGlvbjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRmNjM3MmM0YjgyNzM2MmVhMDM3MWNkNjhi
YmIwZjZmMGZjMTk5MDQuLjlhOGZjNzA1NDllNGI5MmFkYjUyZmNiZmI0ZmM5NWQ2ZWM2ZmNkOGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMC0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFSZWNvcmRlciBzaG91bGQgcmVzcGVjdCBlbmFi
bGVkIGFuZCBtdXRlZCB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFj
a3MuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVyIGRvZXMgbm90IGNhbGwg
ZmV0Y2hEYXRhIHVudGlsIHRoZSBsYXN0IGZldGNoRGF0YSBpcyBjb21wbGV0ZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2OTZjNjgxNjU1MTM2ZjdjNGNlMzZiMTRkOTc3NThh
MTkwNDJjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVj
b3JkZXIvbXV0ZS10cmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKK1BBU1Mg
UmVjb3JkaW5nIGEgbXV0ZWQgYXVkaW8gdHJhY2sgc2hvdWxkIHByb2RjdWUgc2lsZW5jZQorUEFT
UyBNdXRpbmcgYW4gYXVkaW8gdHJhY2sgc2hvdWxkIHJlY29yZCBzaWxlbmNlCitQQVNTIE11dGlu
ZyBhIHZpZGVvIHRyYWNrIHNob3VsZCBwcm9kdWNlIGJsYWNrIGZyYW1lcworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2FhYTRmNzU2MTFhZmQ4ZTI4YzBhNjcwY2VjN2JmYWQxNmU4NzA0NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3Mu
aHRtbApAQCAtMCwwICsxLDIwOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QSByZWNvcmRlZCBtdXRlZCBh
dWRpbyB0cmFjayBzaG91bGQgcHJvZHVjZSBzaWxlbmNlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHZpZGVvIGlkPSJ2aWRlbzEiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVv
IGlkPSJ2aWRlbzIiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJ2aWRlbzMiIGNv
bnRyb2xzPjwvdmlkZW8+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVp
Z2h0PSIyNDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CitmdW5jdGlvbiBhbmFseXNlQXVkaW8o
c3RyZWFtT3JWaWRlbywgZHVyYXRpb24sIGNvbnRleHQpCit7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgdmFyIHNvdXJjZU5vZGUgPSBzdHJl
YW1PclZpZGVvIGluc3RhbmNlb2YgTWVkaWFTdHJlYW0gPyBjb250ZXh0LmNyZWF0ZU1lZGlhU3Ry
ZWFtU291cmNlKHN0cmVhbU9yVmlkZW8pIDogY29udGV4dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3Vy
Y2Uoc3RyZWFtT3JWaWRlbyk7CisKKyAgICAgICAgdmFyIGFuYWx5c2VyID0gY29udGV4dC5jcmVh
dGVBbmFseXNlcigpOworICAgICAgICB2YXIgZ2FpbiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOwor
CisgICAgICAgIHZhciByZXN1bHRzID0geyBoZWFyZEh1bTogZmFsc2UsIGhlYXJkQmlwOiBmYWxz
ZSwgaGVhcmRCb3A6IGZhbHNlLCBoZWFyZE5vaXNlOiBmYWxzZSB9OworCisgICAgICAgIGFuYWx5
c2VyLmZmdFNpemUgPSAyMDQ4OworICAgICAgICBhbmFseXNlci5zbW9vdGhpbmdUaW1lQ29uc3Rh
bnQgPSAwOworICAgICAgICBhbmFseXNlci5taW5EZWNpYmVscyA9IC0xMDA7CisgICAgICAgIGFu
YWx5c2VyLm1heERlY2liZWxzID0gMDsKKyAgICAgICAgZ2Fpbi5nYWluLnZhbHVlID0gMDsKKwor
ICAgICAgICBzb3VyY2VOb2RlLmNvbm5lY3QoYW5hbHlzZXIpOworICAgICAgICBhbmFseXNlci5j
b25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7
CisKKyAgICAgICBmdW5jdGlvbiBhbmFseXNlKCkgeworICAgICAgICAgICB2YXIgZnJlcURvbWFp
biA9IG5ldyBVaW50OEFycmF5KGFuYWx5c2VyLmZyZXF1ZW5jeUJpbkNvdW50KTsKKyAgICAgICAg
ICAgYW5hbHlzZXIuZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEoZnJlcURvbWFpbik7CisKKyAgICAgICAg
ICAgdmFyIGhhc0ZyZXF1ZW5jeSA9IGV4cGVjdGVkRnJlcXVlbmN5ID0+IHsKKyAgICAgICAgICAg
ICAgICB2YXIgYmluID0gTWF0aC5mbG9vcihleHBlY3RlZEZyZXF1ZW5jeSAqIGFuYWx5c2VyLmZm
dFNpemUgLyBjb250ZXh0LnNhbXBsZVJhdGUpOworICAgICAgICAgICAgICAgIHJldHVybiBiaW4g
PCBmcmVxRG9tYWluLmxlbmd0aCAmJiBmcmVxRG9tYWluW2Jpbl0gPj0gMTUwOworICAgICAgICAg
ICB9OworCisgICAgICAgICAgIGlmICghcmVzdWx0cy5oZWFyZEh1bSkKKyAgICAgICAgICAgICAg
ICByZXN1bHRzLmhlYXJkSHVtID0gaGFzRnJlcXVlbmN5KDE1MCk7CisKKyAgICAgICAgICAgaWYg
KCFyZXN1bHRzLmhlYXJkQmlwKQorICAgICAgICAgICAgICAgcmVzdWx0cy5oZWFyZEJpcCA9IGhh
c0ZyZXF1ZW5jeSgxNTAwKTsKKworICAgICAgICAgICBpZiAoIXJlc3VsdHMuaGVhcmRCb3ApCisg
ICAgICAgICAgICAgICAgcmVzdWx0cy5oZWFyZEJvcCA9IGhhc0ZyZXF1ZW5jeSg1MDApOworCisg
ICAgICAgICAgIGlmICghcmVzdWx0cy5oZWFyZE5vaXNlKQorICAgICAgICAgICAgICAgIHJlc3Vs
dHMuaGVhcmROb2lzZSA9IGhhc0ZyZXF1ZW5jeSgzMDAwKTsKKworICAgICAgICAgICBpZiAocmVz
dWx0cy5oZWFyZEh1bSAmJiByZXN1bHRzLmhlYXJkQmlwICYmIHJlc3VsdHMuaGVhcmRCb3AgJiYg
cmVzdWx0cy5oZWFyZE5vaXNlKQorICAgICAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfTsK
KworICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAgICAgICBjbGVhclRpbWVvdXQodGlt
ZW91dCk7CisgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKKworICAgICAgICAg
ICAgcmVzb2x2ZShyZXN1bHRzKTsKKyAgICAgICB9CisKKyAgICAgICAgdmFyIHRpbWVvdXQgPSBz
ZXRUaW1lb3V0KGRvbmUsIDMgKiBkdXJhdGlvbik7CisgICAgICAgIHZhciBpbnRlcnZhbCA9IHNl
dEludGVydmFsKGFuYWx5c2UsIGR1cmF0aW9uIC8gMzApOworICAgICAgICBhbmFseXNlKCk7Cisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3IoZHVyYXRpb24pCit7CisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGR1cmF0aW9uKSk7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIGRvSHVtQW5hbHlzaXMoc3RyZWFtT3JWaWRlbywgZXhwZWN0ZWQp
Cit7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CisgICAgZm9yICh2YXIg
Y3B0ciA9IDA7IGNwdHIgPCAyMDsgY3B0cisrKSB7CisgICAgICAgIHZhciByZXN1bHRzID0gYXdh
aXQgYW5hbHlzZUF1ZGlvKHN0cmVhbU9yVmlkZW8sIDIwMCwgY29udGV4dCk7CisgICAgICAgIGlm
IChyZXN1bHRzLmhlYXJkSHVtID09PSBleHBlY3RlZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBhd2FpdCB3YWl0Rm9yKDUwKTsKKyAgICB9CisgICAgYXdhaXQgY29udGV4dC5j
bG9zZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVuY3Rpb24gaXNWaWRlb0JsYWNrKGNh
bnZhcywgdmlkZW8sIHN0YXJ0WCwgc3RhcnRZLCBncmFiYmVkV2lkdGgsIGdyYWJiZWRIZWlnaHQp
Cit7CisgICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlkZW9XaWR0aDsKKyAgICBjYW52YXMuaGVp
Z2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisgICAgaWYgKCFncmFiYmVkSGVpZ2h0KSB7CisgICAg
ICAgIHN0YXJ0WCA9IDEwOworICAgICAgICBzdGFydFkgPSAxMDsKKyAgICAgICAgZ3JhYmJlZFdp
ZHRoID0gY2FudmFzLndpZHRoIC0gMjA7CisgICAgICAgIGdyYWJiZWRIZWlnaHQgPSBjYW52YXMu
aGVpZ2h0IC0gMjA7CisgICAgfQorCisgICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuZHJhd0lt
YWdlKHZpZGVvLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAgaW1h
Z2VEYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKHN0YXJ0WCwgc3Rh
cnRZLCBncmFiYmVkV2lkdGgsIGdyYWJiZWRIZWlnaHQpOworICAgIGRhdGEgPSBpbWFnZURhdGEu
ZGF0YTsKKyAgICBmb3IgKHZhciBjcHRyID0gMDsgY3B0ciA8IGdyYWJiZWRXaWR0aCAqIGdyYWJi
ZWRIZWlnaHQ7ICsrY3B0cikgeworICAgICAgICAvLyBBcHByb3hpbWF0aXZlbHkgYmxhY2sgcGl4
ZWxzLgorICAgICAgICBpZiAoZGF0YVs0ICogY3B0cl0gPiAzMCB8fCBkYXRhWzQgKiBjcHRyICsg
MV0gPiAzMCB8fCBkYXRhWzQgKiBjcHRyICsgMl0gPiAzMCkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNoZWNr
VmlkZW9CbGFjayhleHBlY3RlZCwgY2FudmFzLCB2aWRlbywgZXJyb3JNZXNzYWdlLCBjb3VudGVy
KQoreworICAgIGlmIChpc1ZpZGVvQmxhY2soY2FudmFzLCB2aWRlbykgPT09IGV4cGVjdGVkKQor
ICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICBpZiAoY291bnRlciA9PT0g
dW5kZWZpbmVkKQorICAgICAgICBjb3VudGVyID0gMDsKKyAgICBpZiAoY291bnRlciA+IDQwMCkg
eworICAgICAgICBpZiAoIWVycm9yTWVzc2FnZSkKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
ICJjaGVja1ZpZGVvQmxhY2sgdGltZWQgb3V0IGV4cGVjdGluZyAiICsgZXhwZWN0ZWQ7CisgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvck1lc3NhZ2UpOworICAgIH0KKworICAgIGF3
YWl0IHdhaXRGb3IoNTApOworICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2soZXhwZWN0ZWQsIGNh
bnZhcywgdmlkZW8sIGVycm9yTWVzc2FnZSwgKytjb3VudGVyKTsKK30KKworcHJvbWlzZV90ZXN0
KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSwgdmlkZW86IGZhbHNlIH0pOwor
CisgICAgY29uc3QgbG9jYWxUcmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAg
IGxvY2FsVHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgIHNldFRpbWVvdXQoKCkgPT4gbG9jYWxU
cmFjay5lbmFibGVkID0gZmFsc2UsIDApOworICAgIGNvbnN0IHJlY29yZGVyID0gbmV3IE1lZGlh
UmVjb3JkZXIoc3RyZWFtKTsKKyAgICBjb25zdCBkYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gcmVjb3JkZXIub25kYXRhYXZhaWxhYmxlID0gKGUpID0+IHJlc29sdmUoZS5kYXRh
KSk7CisKKyAgICByZWNvcmRlci5zdGFydCgpOworICAgIGF3YWl0IHdhaXRGb3IoMTAwMCk7Cisg
ICAgcmVjb3JkZXIuc3RvcCgpOworICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBkYXRhUHJvbWlzZTsK
KworICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7CisgICAgdmlkZW8x
LnNyYyA9IHVybDsKKyAgICBhd2FpdCB2aWRlbzEucGxheSgpOworCisgICAgYXNzZXJ0X2dyZWF0
ZXJfdGhhbih2aWRlbzEuZHVyYXRpb24sIDAuNSk7CisKKyAgICBjb25zdCByZXN1bHRzID0gYXdh
aXQgZG9IdW1BbmFseXNpcyh2aWRlbzEsIGZhbHNlKTsgCisgICAgYXNzZXJ0X3RydWUocmVzdWx0
cywgIlNob3VsZCBub3QgaGVhciBodW0iKTsKKworICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJs
KTsKK30sICJSZWNvcmRpbmcgYSBtdXRlZCBhdWRpbyB0cmFjayBzaG91bGQgcHJvZGN1ZSBzaWxl
bmNlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IHN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRy
dWUsIHZpZGVvOiB0cnVlIH0pOworCisgICAgY29uc3QgbG9jYWxUcmFjayA9IHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpWzBdOworICAgIHNldFRpbWVvdXQoKCkgPT4gbG9jYWxUcmFjay5lbmFibGVk
ID0gZmFsc2UsIDUwKTsKKyAgICBjb25zdCByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHN0
cmVhbSk7CisgICAgY29uc3QgZGF0YVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHJl
Y29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChlKSA9PiByZXNvbHZlKGUuZGF0YSkpOworCisgICAg
cmVjb3JkZXIuc3RhcnQoKTsKKyAgICBhd2FpdCB3YWl0Rm9yKDEwMDApOworICAgIHJlY29yZGVy
LnN0b3AoKTsKKyAgICBjb25zdCBibG9iID0gYXdhaXQgZGF0YVByb21pc2U7CisKKyAgICBjb25z
dCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOworICAgIHZpZGVvMi5zcmMgPSB1cmw7
CisgICAgYXdhaXQgdmlkZW8yLnBsYXkoKTsKKworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4odmlk
ZW8yLmR1cmF0aW9uLCAwLjUpOworCisgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGRvSHVtQW5h
bHlzaXModmlkZW8yLCBmYWxzZSk7IAorICAgIGFzc2VydF90cnVlKHJlc3VsdHMsICJTaG91bGQg
bm90IGhlYXIgaHVtIik7CisKKyAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7Cit9LCAiTXV0
aW5nIGFuIGF1ZGlvIHRyYWNrIHNob3VsZCByZWNvcmQgc2lsZW5jZSIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZSB9KTsK
KworICAgIGNvbnN0IGxvY2FsVHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAg
ICBzZXRUaW1lb3V0KCgpID0+IGxvY2FsVHJhY2suZW5hYmxlZCA9IGZhbHNlLCA1MCk7CisgICAg
Y29uc3QgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcihzdHJlYW0pOworICAgIGNvbnN0IGRh
dGFQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiByZWNvcmRlci5vbmRhdGFhdmFpbGFi
bGUgPSAoZSkgPT4gcmVzb2x2ZShlLmRhdGEpKTsKKworICAgIHJlY29yZGVyLnN0YXJ0KCk7Cisg
ICAgYXdhaXQgd2FpdEZvcigxMDAwKTsKKyAgICByZWNvcmRlci5zdG9wKCk7CisgICAgY29uc3Qg
YmxvYiA9IGF3YWl0IGRhdGFQcm9taXNlOworCisgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9i
amVjdFVSTChibG9iKTsKKyAgICB2aWRlbzMuc3JjID0gdXJsOworICAgIGF3YWl0IHZpZGVvMy5w
bGF5KCk7CisKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHZpZGVvMy5kdXJhdGlvbiwgMC41KTsK
KworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNoZWNrVmlkZW9CbGFjayh0cnVlLCBjYW52YXMz
LCB2aWRlbzMsICJtdXRlZCB2aWRlbyBzaG91bGQgcHJvZHVjZSBibGFjayBmcmFtZXMiKTsKKwor
ICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKK30sICJNdXRpbmcgYSB2aWRlbyB0cmFjayBz
aG91bGQgcHJvZHVjZSBibGFjayBmcmFtZXMiKTsKKworICAgIDwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410524</attachid>
            <date>2020-10-05 08:55:14 -0700</date>
            <delta_ts>2020-10-05 11:15:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217312-20201005175512.patch</filename>
            <type>text/plain</type>
            <size>21977</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUzN2Y4NTc5MjhlMDA0
MTFjMTc3NzJkNDA1OGNlNzAxM2ZiNDFkZS4uMDdhNmQ5Y2NiYWRjOWYyYTY0YTc1MmQ1ODZhNGQ3
MzYzNWNkNDhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNo
b3VsZCByZXNwZWN0IGVuYWJsZWQgYW5kIG11dGVkIHRyYWNrcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdHJhY2sgaXMgbXV0ZWQsIHJlcGxhY2Ug
aXQgYnkgZWl0aGVyIHNpbGVuY2UgKGF1ZGlvIGJ1ZmZlciBmaWxsZWQgd2l0aCB6ZXJvKSBvciBi
bGFjayBmcmFtZXMuCisgICAgICAgIE1lZGlhUmVjb3JkZXJQcml2YXRlIHdpbGwga2VlcCB0cmFj
ayBvZiB3aGV0aGVyIHRoZSBzZWxlY3RlZCB0cmFjayBzaG91bGQgYmUgbXV0ZWQuCisgICAgICAg
IEl0IGlzIHRoZW4gdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBzcGVjaWFsaXphdGlvbiB0byBk
byB0aGUgYXBwcm9wcmlhdGUgcHJvY2Vzc2luZy4KKworICAgICAgICBUZXN0OiBodHRwL3dwdC9t
ZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXI6OnRyYWNrTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6
OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9C
dWZmZXJMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdDo6emVy
b0ZsYXRCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU6OnNl
bGVjdFRyYWNrcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6Y2hl
Y2tUcmFja1N0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
dHJhY2tNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGU6OnNob3VsZE11dGVBdWRpbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZTo6c2hvdWxkTXV0ZVZpZGVvIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
YXVkaW9TYW1wbGVzQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorCiAyMDIwLTEwLTAzICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgTWVkaWFSZWNvcmRl
ciBkb2VzIG5vdCBjYWxsIGZldGNoRGF0YSB1bnRpbCB0aGUgbGFzdCBmZXRjaERhdGEgaXMgY29t
cGxldGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAKaW5kZXggNzllMDcxZTE3M2I4MGI1OTMyOGY1NGM2MzMxMzk1NTAz
Y2EwM2FhYy4uYTgzYzA5YWI1MjE1ODU3N2I3YTkwM2ZmNWJhZjk3MDgyMTU1ZWIyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmNwcApAQCAtMzAwLDYgKzMwMCwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnRyYWNrRW5k
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQogICAgIHN0b3BSZWNvcmRpbmcoKTsKIH0KIAor
dm9pZCBNZWRpYVJlY29yZGVyOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYgdHJhY2spCit7CisgICAgaWYgKG1fcHJpdmF0ZSkKKyAgICAgICAgbV9wcml2YXRlLT50
cmFja011dGVkQ2hhbmdlZCh0cmFjayk7Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlcjo6dHJhY2tF
bmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spCit7CisgICAgaWYg
KG1fcHJpdmF0ZSkKKyAgICAgICAgbV9wcml2YXRlLT50cmFja0VuYWJsZWRDaGFuZ2VkKHRyYWNr
KTsKK30KKwogYm9vbCBNZWRpYVJlY29yZGVyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zdGF0ZSAhPSBSZWNvcmRpbmdTdGF0ZTo6SW5hY3RpdmU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXIuaAppbmRleCA0N2Y0MTE0ODczYjMwN2YxMTJhMmViMmFmZDMxNWJiOGM0MWI5MDFlLi4y
ZmI1Nzc2YTMwNWVlYmJkYWJhZWVhMTAxZjMyNGUxZjc4YWQ3Mjc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKQEAgLTEw
OCw5ICsxMDgsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
Ok9ic2VydmVyCiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
ZmluYWw7Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIGZpbmFsIHsgfTsKKyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CiAgICAgdm9pZCB0cmFja1NldHRpbmdzQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKLSAgICB2b2lkIHRyYWNrRW5hYmxl
ZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IH07CiAKICAgICBzdGF0
aWMgQ3JlYXRvckZ1bmN0aW9uIG1fY3VzdG9tQ3JlYXRvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAK
aW5kZXggZTA3NTgwNmI2ZTFjMTRkZjc5MWYxYzYwZmNkZDBmNzY5NTBlNDVlYi4uNmIwYThmZDg5
ZjE3MDhhMjc4NDk5YzM4ZTBlZmJhYjVjZmQxNzE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCkBA
IC0xNDYsNCArMTQ2LDkgQEAgQXVkaW9CdWZmZXIqIFdlYkF1ZGlvQnVmZmVyTGlzdDo6YnVmZmVy
KHVpbnQzMl90IGluZGV4KSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCit2b2lkIFdl
YkF1ZGlvQnVmZmVyTGlzdDo6emVyb0ZsYXRCdWZmZXIoKQoreworICAgIG1lbXNldChtX2ZsYXRC
dWZmZXIuZGF0YSgpLCAwLCBtX2ZsYXRCdWZmZXIuY2FwYWNpdHkoKSk7Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVy
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZm
ZXJMaXN0LmgKaW5kZXggNTc5NjY5MzNkMDNiNWFkMmJlZDhmMzQ0NGJhMzQ1MWJiY2I2YjUwNi4u
N2FlYzA0ZmU5YjM1ZWM1YjI5MmQyNTk1OGM0MjczNjNkNGU5ZWRlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0
LmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWREZXNjcmlwdGlvbihjb25zdCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRp
b24mLCB1aW50MzJfdCBzYW1wbGVDb3VudCk7CiAKKyAgICB2b2lkIHplcm9GbGF0QnVmZmVyKCk7
CisKIHByaXZhdGU6CiAgICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gS2luZDo6V2ViQXVk
aW9CdWZmZXJMaXN0OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggMjY3OTk4
ZDA2ZDVmODk5YWRhMTE0YjA4ZDBhMWUyZTEyMzA1Nzg1Ny4uYzBiZmIxMmM1ODNmOWY1YTY0NGFl
M2YwNGQ4ZjY4MmVlZmM4NGJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgTWVkaWFSZWNvcmRlclByaXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNr
cyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2VsZWN0VHJhY2sKIHsKICAgICBBdWRpb1ZpZGVvU2Vs
ZWN0ZWRUcmFja3Mgc2VsZWN0ZWRUcmFja3M7CiAgICAgc3RyZWFtLmZvckVhY2hUcmFjayhbJl0o
YXV0byYgdHJhY2spIHsKLSAgICAgICAgaWYgKCF0cmFjay5lbmFibGVkKCkgfHwgdHJhY2suZW5k
ZWQoKSkKKyAgICAgICAgaWYgKHRyYWNrLmVuZGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIHN3aXRjaCAodHJhY2sudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6VmlkZW86IHsKQEAgLTU2LDYgKzU2LDE2IEBAIE1lZGlhUmVjb3JkZXJQ
cml2YXRlOjpBdWRpb1ZpZGVvU2VsZWN0ZWRUcmFja3MgTWVkaWFSZWNvcmRlclByaXZhdGU6OnNl
bGVjdFRyYWNrCiAgICAgcmV0dXJuIHNlbGVjdGVkVHJhY2tzOwogfQogCit2b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlOjpjaGVja1RyYWNrU3RhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmIHRyYWNrKQoreworICAgIGlmICgmdHJhY2suc291cmNlKCkgPT0gbV9hdWRpb1NvdXJjZS5n
ZXQoKSkgeworICAgICAgICBtX3Nob3VsZE11dGVBdWRpbyA9IHRyYWNrLm11dGVkKCkgfHwgIXRy
YWNrLmVuYWJsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoJnRyYWNrLnNv
dXJjZSgpID09IG1fdmlkZW9Tb3VyY2UuZ2V0KCkpCisgICAgICAgIG1fc2hvdWxkTXV0ZVZpZGVv
ID0gdHJhY2subXV0ZWQoKSB8fCAhdHJhY2suZW5hYmxlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5oCmluZGV4IGQ4MTJjNjNkMGM3YjNjYjI5NjFjZGFkZWY0NTNjMTA2MDEwYTdlNTAu
Ljg2NjNhNmY3NmM3MGU2NjVkMzM0N2Q5N2I4MmFlZWFiMzZlZTMyMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXJQcml2YXRlLmgKQEAgLTY1LDExICs2NSwyMSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgU3RhcnRS
ZWNvcmRpbmdDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8U3Ry
aW5nPiYmKT47CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UmVjb3JkaW5nKFN0YXJ0UmVjb3JkaW5n
Q2FsbGJhY2smJiBjYWxsYmFjaykgeyBjYWxsYmFjayhTdHJpbmcobWltZVR5cGUoKSkpOyB9CiAK
KyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFj
aykgeyBjaGVja1RyYWNrU3RhdGUodHJhY2spOyB9CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykgeyBjaGVja1RyYWNrU3RhdGUodHJh
Y2spOyB9CisKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldEF1ZGlvU291cmNlKFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiYmKTsKICAgICB2b2lkIHNldFZpZGVvU291cmNlKFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiYmKTsKIAorICAgIHZvaWQgY2hlY2tUcmFja1N0YXRlKGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CisKKyAgICBib29sIHNob3VsZE11dGVBdWRpbygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkTXV0ZUF1ZGlvOyB9CisgICAgYm9vbCBzaG91bGRNdXRlVmlk
ZW8oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZE11dGVWaWRlbzsgfQorCiBwcml2YXRlOgorICAg
IGJvb2wgbV9zaG91bGRNdXRlQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGRNdXRl
VmlkZW8geyBmYWxzZSB9OwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX2F1ZGlv
U291cmNlOwogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3ZpZGVvU291cmNlOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAppbmRleCA0ZWViMTk1
YzljZDUwNjIzNTYyN2M1ZDhhMDY5NDdkYTk4NzMxY2UyLi42YThlNTQxYTA4YzU4MjI5YWJkNTZm
MWU1NjEyMGFmYmUwYzFlMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuY3BwCkBAIC0yOSwxMyArMjksMjAgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBI
QVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24uaCIKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5o
IgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCisjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKIAorI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRM
aW5rLmgiCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGw+IE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3Jl
YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtLCBjb25zdCBNZWRpYVJlY29yZGVyUHJpdmF0
ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CkBAIC01MCwxMCArNTcsMTQgQEAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBs
OjpjcmVhdGUKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBhdXRvIHJlY29yZGVyID0g
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbD4obmV3IE1lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbCh3cml0ZXIucmVsZWFzZU5vbk51bGwoKSkpOwotICAgIGlmIChz
ZWxlY3RlZFRyYWNrcy5hdWRpb1RyYWNrKQorICAgIGlmIChzZWxlY3RlZFRyYWNrcy5hdWRpb1Ry
YWNrKSB7CiAgICAgICAgIHJlY29yZGVyLT5zZXRBdWRpb1NvdXJjZSgmc2VsZWN0ZWRUcmFja3Mu
YXVkaW9UcmFjay0+c291cmNlKCkpOwotICAgIGlmIChzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNr
KQorICAgICAgICByZWNvcmRlci0+Y2hlY2tUcmFja1N0YXRlKCpzZWxlY3RlZFRyYWNrcy5hdWRp
b1RyYWNrKTsKKyAgICB9CisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2spIHsKICAg
ICAgICAgcmVjb3JkZXItPnNldFZpZGVvU291cmNlKCZzZWxlY3RlZFRyYWNrcy52aWRlb1RyYWNr
LT5zb3VyY2UoKSk7CisgICAgICAgIHJlY29yZGVyLT5jaGVja1RyYWNrU3RhdGUoKnNlbGVjdGVk
VHJhY2tzLnZpZGVvVHJhY2spOworICAgIH0KICAgICByZXR1cm4gcmVjb3JkZXI7CiB9CiAKQEAg
LTcwLDYgKzgxLDM3IEBAIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6fk1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbCgpCiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp2
aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZSYgc2FtcGxlQnVmZmVyKQogeworICAgIGlm
IChzaG91bGRNdXRlVmlkZW8oKSkgeworICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSkgeworICAg
ICAgICAgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBs
ZUJ1ZmZlcik7CisgICAgICAgICAgICBhdXRvIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXREaW1lbnNpb25zKG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpKTsKKyAg
ICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IGNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoZGltZW5zaW9u
cy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQpOworCisgICAgICAgICAgICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBudWxscHRyOworICAgICAgICAgICAg
YXV0byBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX2JsYWNrRnJhbWUuZ2V0KCksICZmb3JtYXREZXNjcmlw
dGlvbik7CisgICAgICAgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OnZpZGVvU2FtcGxlQXZhaWxhYmxlIDo6dW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lIGRl
c2NyaXB0aW9uOiAlZCIsIHN0YXRpY19jYXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgICAgICAg
ICAgbV9ibGFja0ZyYW1lID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IGFkb3B0Q0Yo
Zm9ybWF0RGVzY3JpcHRpb24pOworICAgICAgICB9CisKKyAgICAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlID0gbnVsbHB0cjsKKyAgICAgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0lu
Zm8geyBrQ01UaW1lSW52YWxpZCwgdG9DTVRpbWUoc2FtcGxlQnVmZmVyLnByZXNlbnRhdGlvblRp
bWUoKSksIHRvQ01UaW1lKHNhbXBsZUJ1ZmZlci5kZWNvZGVUaW1lKCkpIH07CisgICAgICAgIGF1
dG8gc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZiltX2JsYWNrRnJhbWUuZ2V0KCksIG1f
YmxhY2tGcmFtZURlc2NyaXB0aW9uLmdldCgpLCAmdGltaW5nSW5mbywgJnNhbXBsZSk7CisKKyAg
ICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlIC0gdW5hYmxlIHRvIGNyZWF0ZSBhIGJsYWNrIGZyYW1lOiAlZCIsIHN0YXRpY19j
YXN0PGludD4oc3RhdHVzKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgYXV0byBuZXdTYW1wbGUgPSBhZG9wdENGKHNhbXBsZSk7CisgICAgICAgIG1fd3JpdGVyLT5h
cHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShuZXdTYW1w
bGUuZ2V0KCksIHNhbXBsZUJ1ZmZlci52aWRlb1JvdGF0aW9uKCksIHNhbXBsZUJ1ZmZlci52aWRl
b01pcnJvcmVkKCkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYmxhY2tGcmFt
ZSA9IG51bGxwdHI7CisgICAgbV9ibGFja0ZyYW1lRGVzY3JpcHRpb24gPSBudWxscHRyOwogICAg
IG1fd3JpdGVyLT5hcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihzYW1wbGVCdWZmZXIpOwogfQogCkBA
IC03Nyw2ICsxMTksMTggQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShjb25zdCBXVEY6Ok1lZGlhVGltZSYgbWUKIHsKICAgICBBU1NFUlQo
aXM8V2ViQXVkaW9CdWZmZXJMaXN0PihkYXRhKSk7CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBs
YXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9T
dHJlYW1CYXNpY1R5cGUpOworCisgICAgaWYgKHNob3VsZE11dGVBdWRpbygpKSB7CisgICAgICAg
IGlmICghbV9hdWRpb0J1ZmZlciB8fCBtX2Rlc2NyaXB0aW9uICE9IHRvQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkgeworICAgICAgICAgICAgbV9kZXNjcmlwdGlvbiA9IHRv
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgICAgIG1fYXVk
aW9CdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4obV9kZXNjcmlwdGlvbiwg
c2FtcGxlQ291bnQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fYXVkaW9CdWZmZXIt
PnNldFNhbXBsZUNvdW50KHNhbXBsZUNvdW50KTsKKyAgICAgICAgbV9hdWRpb0J1ZmZlci0+emVy
b0ZsYXRCdWZmZXIoKTsKKyAgICAgICAgbV93cml0ZXItPmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVy
KCptX2F1ZGlvQnVmZmVyLCBkZXNjcmlwdGlvbiwgbWVkaWFUaW1lLCBzYW1wbGVDb3VudCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVC
dWZmZXIoZGF0YSwgZGVzY3JpcHRpb24sIG1lZGlhVGltZSwgc2FtcGxlQ291bnQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVj
b3JkZXJQcml2YXRlQVZGSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNv
cmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaAppbmRleCA5MTFhM2U3ZmMxNzJlOWZh
MDAyZjQ0MDhhZDdiZTBhODZhYzIyOWY1Li4wMDcxZjRmYzE1ZWQzNzliZTI4MTI2MDFlYzgwNjFj
Mjc4MjljZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKQEAgLTI2
LDEyICsyNiwxNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VU
V1JJVEVSREVMRUdBVEUpCiAKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIK
ICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EuaCIKIAordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVj
dCBfX0NWQnVmZmVyKjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3Jp
cHRpb24qIENNRm9ybWF0RGVzY3JpcHRpb25SZWY7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgV2ViQXVkaW9CdWZmZXJMaXN0OwogCiBj
bGFzcyBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwgZmluYWwKICAgICA6IHB1YmxpYyBNZWRp
YVJlY29yZGVyUHJpdmF0ZSB7CkBAIC01Myw2ICs1OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
c3RvcFJlY29yZGluZygpOwogCiAgICAgUmVmPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBt
X3dyaXRlcjsKKyAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9ibGFja0ZyYW1lOwor
ICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX2JsYWNrRnJhbWVEZXNjcmlw
dGlvbjsKKyAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQXVkaW9CdWZmZXJMaXN0PiBtX2F1ZGlvQnVmZmVyOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRmNjM3MmM0YjgyNzM2MmVhMDM3MWNkNjhi
YmIwZjZmMGZjMTk5MDQuLjlhOGZjNzA1NDllNGI5MmFkYjUyZmNiZmI0ZmM5NWQ2ZWM2ZmNkOGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMC0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFSZWNvcmRlciBzaG91bGQgcmVzcGVjdCBlbmFi
bGVkIGFuZCBtdXRlZCB0cmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNzMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFj
a3MuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVyIGRvZXMgbm90IGNhbGwg
ZmV0Y2hEYXRhIHVudGlsIHRoZSBsYXN0IGZldGNoRGF0YSBpcyBjb21wbGV0ZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2OTZjNjgxNjU1MTM2ZjdjNGNlMzZiMTRkOTc3NThh
MTkwNDJjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVj
b3JkZXIvbXV0ZS10cmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKK1BBU1Mg
UmVjb3JkaW5nIGEgbXV0ZWQgYXVkaW8gdHJhY2sgc2hvdWxkIHByb2RjdWUgc2lsZW5jZQorUEFT
UyBNdXRpbmcgYW4gYXVkaW8gdHJhY2sgc2hvdWxkIHJlY29yZCBzaWxlbmNlCitQQVNTIE11dGlu
ZyBhIHZpZGVvIHRyYWNrIHNob3VsZCBwcm9kdWNlIGJsYWNrIGZyYW1lcworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODc4ZDEzNzk0ZTc1NmIwMGFiOTJlMzg2NzIwZDVkMGNlOGUyNzI4MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3Mu
aHRtbApAQCAtMCwwICsxLDIxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QSByZWNvcmRlZCBtdXRlZCBh
dWRpbyB0cmFjayBzaG91bGQgcHJvZHVjZSBzaWxlbmNlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHZpZGVvIGlkPSJ2aWRlbzEiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVv
IGlkPSJ2aWRlbzIiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJ2aWRlbzMiIGNv
bnRyb2xzPjwvdmlkZW8+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVp
Z2h0PSIyNDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykK
KyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMoZmFsc2UpOwor
CitmdW5jdGlvbiBhbmFseXNlQXVkaW8oc3RyZWFtT3JWaWRlbywgZHVyYXRpb24sIGNvbnRleHQp
Cit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgdmFyIHNvdXJjZU5vZGUgPSBzdHJlYW1PclZpZGVvIGluc3RhbmNlb2YgTWVkaWFTdHJlYW0g
PyBjb250ZXh0LmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlKHN0cmVhbU9yVmlkZW8pIDogY29udGV4
dC5jcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2Uoc3RyZWFtT3JWaWRlbyk7CisKKyAgICAgICAgdmFy
IGFuYWx5c2VyID0gY29udGV4dC5jcmVhdGVBbmFseXNlcigpOworICAgICAgICB2YXIgZ2FpbiA9
IGNvbnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIHZhciByZXN1bHRzID0geyBoZWFyZEh1
bTogZmFsc2UsIGhlYXJkQmlwOiBmYWxzZSwgaGVhcmRCb3A6IGZhbHNlLCBoZWFyZE5vaXNlOiBm
YWxzZSB9OworCisgICAgICAgIGFuYWx5c2VyLmZmdFNpemUgPSAyMDQ4OworICAgICAgICBhbmFs
eXNlci5zbW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwOworICAgICAgICBhbmFseXNlci5taW5EZWNp
YmVscyA9IC0xMDA7CisgICAgICAgIGFuYWx5c2VyLm1heERlY2liZWxzID0gMDsKKyAgICAgICAg
Z2Fpbi5nYWluLnZhbHVlID0gMDsKKworICAgICAgICBzb3VyY2VOb2RlLmNvbm5lY3QoYW5hbHlz
ZXIpOworICAgICAgICBhbmFseXNlci5jb25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5l
Y3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICBmdW5jdGlvbiBhbmFseXNlKCkgewor
ICAgICAgICAgICB2YXIgZnJlcURvbWFpbiA9IG5ldyBVaW50OEFycmF5KGFuYWx5c2VyLmZyZXF1
ZW5jeUJpbkNvdW50KTsKKyAgICAgICAgICAgYW5hbHlzZXIuZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEo
ZnJlcURvbWFpbik7CisKKyAgICAgICAgICAgdmFyIGhhc0ZyZXF1ZW5jeSA9IGV4cGVjdGVkRnJl
cXVlbmN5ID0+IHsKKyAgICAgICAgICAgICAgICB2YXIgYmluID0gTWF0aC5mbG9vcihleHBlY3Rl
ZEZyZXF1ZW5jeSAqIGFuYWx5c2VyLmZmdFNpemUgLyBjb250ZXh0LnNhbXBsZVJhdGUpOworICAg
ICAgICAgICAgICAgIHJldHVybiBiaW4gPCBmcmVxRG9tYWluLmxlbmd0aCAmJiBmcmVxRG9tYWlu
W2Jpbl0gPj0gMTUwOworICAgICAgICAgICB9OworCisgICAgICAgICAgIGlmICghcmVzdWx0cy5o
ZWFyZEh1bSkKKyAgICAgICAgICAgICAgICByZXN1bHRzLmhlYXJkSHVtID0gaGFzRnJlcXVlbmN5
KDE1MCk7CisKKyAgICAgICAgICAgaWYgKCFyZXN1bHRzLmhlYXJkQmlwKQorICAgICAgICAgICAg
ICAgcmVzdWx0cy5oZWFyZEJpcCA9IGhhc0ZyZXF1ZW5jeSgxNTAwKTsKKworICAgICAgICAgICBp
ZiAoIXJlc3VsdHMuaGVhcmRCb3ApCisgICAgICAgICAgICAgICAgcmVzdWx0cy5oZWFyZEJvcCA9
IGhhc0ZyZXF1ZW5jeSg1MDApOworCisgICAgICAgICAgIGlmICghcmVzdWx0cy5oZWFyZE5vaXNl
KQorICAgICAgICAgICAgICAgIHJlc3VsdHMuaGVhcmROb2lzZSA9IGhhc0ZyZXF1ZW5jeSgzMDAw
KTsKKworICAgICAgICAgICBpZiAocmVzdWx0cy5oZWFyZEh1bSAmJiByZXN1bHRzLmhlYXJkQmlw
ICYmIHJlc3VsdHMuaGVhcmRCb3AgJiYgcmVzdWx0cy5oZWFyZE5vaXNlKQorICAgICAgICAgICAg
ICAgIGRvbmUoKTsKKyAgICAgICAgfTsKKworICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAg
ICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7CisgICAgICAgICAgICBjbGVhckludGVydmFs
KGludGVydmFsKTsKKworICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHRzKTsKKyAgICAgICB9CisK
KyAgICAgICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGRvbmUsIDMgKiBkdXJhdGlvbik7Cisg
ICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGFuYWx5c2UsIGR1cmF0aW9uIC8gMzAp
OworICAgICAgICBhbmFseXNlKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3IoZHVy
YXRpb24pCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0
KHJlc29sdmUsIGR1cmF0aW9uKSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvSHVtQW5hbHlzaXMo
c3RyZWFtT3JWaWRlbywgZXhwZWN0ZWQpCit7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9D
b250ZXh0KCk7CisgICAgZm9yICh2YXIgY3B0ciA9IDA7IGNwdHIgPCAyMDsgY3B0cisrKSB7Cisg
ICAgICAgIHZhciByZXN1bHRzID0gYXdhaXQgYW5hbHlzZUF1ZGlvKHN0cmVhbU9yVmlkZW8sIDIw
MCwgY29udGV4dCk7CisgICAgICAgIGlmIChyZXN1bHRzLmhlYXJkSHVtID09PSBleHBlY3RlZCkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBhd2FpdCB3YWl0Rm9yKDUwKTsKKyAg
ICB9CisgICAgYXdhaXQgY29udGV4dC5jbG9zZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
ZnVuY3Rpb24gaXNWaWRlb0JsYWNrKGNhbnZhcywgdmlkZW8sIHN0YXJ0WCwgc3RhcnRZLCBncmFi
YmVkV2lkdGgsIGdyYWJiZWRIZWlnaHQpCit7CisgICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlk
ZW9XaWR0aDsKKyAgICBjYW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisgICAgaWYg
KCFncmFiYmVkSGVpZ2h0KSB7CisgICAgICAgIHN0YXJ0WCA9IDEwOworICAgICAgICBzdGFydFkg
PSAxMDsKKyAgICAgICAgZ3JhYmJlZFdpZHRoID0gY2FudmFzLndpZHRoIC0gMjA7CisgICAgICAg
IGdyYWJiZWRIZWlnaHQgPSBjYW52YXMuaGVpZ2h0IC0gMjA7CisgICAgfQorCisgICAgY2FudmFz
LmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdlKHZpZGVvLCAwLCAwLCBjYW52YXMud2lkdGgsIGNh
bnZhcy5oZWlnaHQpOworCisgICAgaW1hZ2VEYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJyku
Z2V0SW1hZ2VEYXRhKHN0YXJ0WCwgc3RhcnRZLCBncmFiYmVkV2lkdGgsIGdyYWJiZWRIZWlnaHQp
OworICAgIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKKyAgICBmb3IgKHZhciBjcHRyID0gMDsgY3B0
ciA8IGdyYWJiZWRXaWR0aCAqIGdyYWJiZWRIZWlnaHQ7ICsrY3B0cikgeworICAgICAgICAvLyBB
cHByb3hpbWF0aXZlbHkgYmxhY2sgcGl4ZWxzLgorICAgICAgICBpZiAoZGF0YVs0ICogY3B0cl0g
PiAzMCB8fCBkYXRhWzQgKiBjcHRyICsgMV0gPiAzMCB8fCBkYXRhWzQgKiBjcHRyICsgMl0gPiAz
MCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2FzeW5jIGZ1bmN0aW9uIGNoZWNrVmlkZW9CbGFjayhleHBlY3RlZCwgY2FudmFzLCB2aWRl
bywgZXJyb3JNZXNzYWdlLCBjb3VudGVyKQoreworICAgIGlmIChpc1ZpZGVvQmxhY2soY2FudmFz
LCB2aWRlbykgPT09IGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7
CisKKyAgICBpZiAoY291bnRlciA9PT0gdW5kZWZpbmVkKQorICAgICAgICBjb3VudGVyID0gMDsK
KyAgICBpZiAoY291bnRlciA+IDQwMCkgeworICAgICAgICBpZiAoIWVycm9yTWVzc2FnZSkKKyAg
ICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJjaGVja1ZpZGVvQmxhY2sgdGltZWQgb3V0IGV4cGVj
dGluZyAiICsgZXhwZWN0ZWQ7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvck1l
c3NhZ2UpOworICAgIH0KKworICAgIGF3YWl0IHdhaXRGb3IoNTApOworICAgIHJldHVybiBjaGVj
a1ZpZGVvQmxhY2soZXhwZWN0ZWQsIGNhbnZhcywgdmlkZW8sIGVycm9yTWVzc2FnZSwgKytjb3Vu
dGVyKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzog
dHJ1ZSwgdmlkZW86IGZhbHNlIH0pOworCisgICAgY29uc3QgbG9jYWxUcmFjayA9IHN0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpWzBdOworICAgIGxvY2FsVHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAg
IHNldFRpbWVvdXQoKCkgPT4gbG9jYWxUcmFjay5lbmFibGVkID0gZmFsc2UsIDApOworICAgIGNv
bnN0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIoc3RyZWFtKTsKKyAgICBjb25zdCBkYXRh
UHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVjb3JkZXIub25kYXRhYXZhaWxhYmxl
ID0gKGUpID0+IHJlc29sdmUoZS5kYXRhKSk7CisKKyAgICByZWNvcmRlci5zdGFydCgpOworICAg
IGF3YWl0IHdhaXRGb3IoMTAwMCk7CisgICAgcmVjb3JkZXIuc3RvcCgpOworICAgIGNvbnN0IGJs
b2IgPSBhd2FpdCBkYXRhUHJvbWlzZTsKKworICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmpl
Y3RVUkwoYmxvYik7CisgICAgdmlkZW8xLnNyYyA9IHVybDsKKyAgICBhd2FpdCB2aWRlbzEucGxh
eSgpOworCisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbih2aWRlbzEuZHVyYXRpb24sIDAuNSk7CisK
KyAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZG9IdW1BbmFseXNpcyh2aWRlbzEsIGZhbHNlKTsg
CisgICAgYXNzZXJ0X3RydWUocmVzdWx0cywgIlNob3VsZCBub3QgaGVhciBodW0iKTsKKworICAg
IFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKK30sICJSZWNvcmRpbmcgYSBtdXRlZCBhdWRpbyB0
cmFjayBzaG91bGQgcHJvZGN1ZSBzaWxlbmNlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiB0cnVlIH0pOworCisgICAgY29uc3Qg
bG9jYWxUcmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgIHNldFRpbWVvdXQo
KCkgPT4gbG9jYWxUcmFjay5lbmFibGVkID0gZmFsc2UsIDUwKTsKKyAgICBjb25zdCByZWNvcmRl
ciA9IG5ldyBNZWRpYVJlY29yZGVyKHN0cmVhbSk7CisgICAgY29uc3QgZGF0YVByb21pc2UgPSBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChlKSA9PiBy
ZXNvbHZlKGUuZGF0YSkpOworCisgICAgcmVjb3JkZXIuc3RhcnQoKTsKKyAgICBhd2FpdCB3YWl0
Rm9yKDEwMDApOworICAgIHJlY29yZGVyLnN0b3AoKTsKKyAgICBjb25zdCBibG9iID0gYXdhaXQg
ZGF0YVByb21pc2U7CisKKyAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2Ip
OworICAgIHZpZGVvMi5zcmMgPSB1cmw7CisgICAgYXdhaXQgdmlkZW8yLnBsYXkoKTsKKworICAg
IGFzc2VydF9ncmVhdGVyX3RoYW4odmlkZW8yLmR1cmF0aW9uLCAwLjUpOworCisgICAgY29uc3Qg
cmVzdWx0cyA9IGF3YWl0IGRvSHVtQW5hbHlzaXModmlkZW8yLCBmYWxzZSk7IAorICAgIGFzc2Vy
dF90cnVlKHJlc3VsdHMsICJTaG91bGQgbm90IGhlYXIgaHVtIik7CisKKyAgICBVUkwucmV2b2tl
T2JqZWN0VVJMKHVybCk7Cit9LCAiTXV0aW5nIGFuIGF1ZGlvIHRyYWNrIHNob3VsZCByZWNvcmQg
c2lsZW5jZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBz
dHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlv
OiB0cnVlLCB2aWRlbzogdHJ1ZSB9KTsKKworICAgIGNvbnN0IGxvY2FsVHJhY2sgPSBzdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICBzZXRUaW1lb3V0KCgpID0+IGxvY2FsVHJhY2suZW5h
YmxlZCA9IGZhbHNlLCA1MCk7CisgICAgY29uc3QgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRl
cihzdHJlYW0pOworICAgIGNvbnN0IGRhdGFQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiByZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSAoZSkgPT4gcmVzb2x2ZShlLmRhdGEpKTsKKwor
ICAgIHJlY29yZGVyLnN0YXJ0KCk7CisgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsKKyAgICByZWNv
cmRlci5zdG9wKCk7CisgICAgY29uc3QgYmxvYiA9IGF3YWl0IGRhdGFQcm9taXNlOworCisgICAg
Y29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKKyAgICB2aWRlbzMuc3JjID0g
dXJsOworICAgIGF3YWl0IHZpZGVvMy5wbGF5KCk7CisKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFu
KHZpZGVvMy5kdXJhdGlvbiwgMC41KTsKKworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNoZWNr
VmlkZW9CbGFjayh0cnVlLCBjYW52YXMzLCB2aWRlbzMsICJtdXRlZCB2aWRlbyBzaG91bGQgcHJv
ZHVjZSBibGFjayBmcmFtZXMiKTsKKworICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKK30s
ICJNdXRpbmcgYSB2aWRlbyB0cmFjayBzaG91bGQgcHJvZHVjZSBibGFjayBmcmFtZXMiKTsKKwor
ICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410533</attachid>
            <date>2020-10-05 11:15:34 -0700</date>
            <delta_ts>2020-10-05 11:52:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217312-20201005201532.patch</filename>
            <type>text/plain</type>
            <size>21974</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUzN2Y4NTc5MjhlMDA0
MTFjMTc3NzJkNDA1OGNlNzAxM2ZiNDFkZS4uZjUyZGIyOWUwNTBhMTI5Yjc5M2Y3YzhjYzUyMDhl
MWM5OGJmN2MwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNo
b3VsZCByZXNwZWN0IGVuYWJsZWQgYW5kIG11dGVkIHRyYWNrcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MzEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIElmIHRyYWNrIGlzIG11dGVkLCByZXBsYWNlIGl0
IGJ5IGVpdGhlciBzaWxlbmNlIChhdWRpbyBidWZmZXIgZmlsbGVkIHdpdGggemVyb3MpIG9yIGJs
YWNrIGZyYW1lcy4KKyAgICAgICAgTWVkaWFSZWNvcmRlclByaXZhdGUgd2lsbCBrZWVwIHRyYWNr
IG9mIHdoZXRoZXIgdGhlIHNlbGVjdGVkIHRyYWNrIHNob3VsZCBiZSBtdXRlZC4KKyAgICAgICAg
SXQgaXMgdGhlbiB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIHNwZWNpYWxpemF0aW9uIHRvIGRv
IHRoZSBhcHByb3ByaWF0ZSBwcm9jZXNzaW5nLgorCisgICAgICAgIFRlc3Q6IGh0dHAvd3B0L21l
ZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
cjo6dHJhY2tNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6
dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1
ZmZlckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0Ojp6ZXJv
RmxhdEJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZm
ZXJMaXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Vs
ZWN0VHJhY2tzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjpjaGVj
a1RyYWNrU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlOjp0
cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0
ZTo6dHJhY2tFbmFibGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
UHJpdmF0ZTo6c2hvdWxkTXV0ZUF1ZGlvIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlOjpzaG91bGRNdXRlVmlkZW8gY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVBdmFp
bGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjph
dWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmg6CisKIDIwMjAtMTAtMDMgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVy
IGRvZXMgbm90IGNhbGwgZmV0Y2hEYXRhIHVudGlsIHRoZSBsYXN0IGZldGNoRGF0YSBpcyBjb21w
bGV0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9N
ZWRpYVJlY29yZGVyLmNwcAppbmRleCA3OWUwNzFlMTczYjgwYjU5MzI4ZjU0YzYzMzEzOTU1MDNj
YTAzYWFjLi5hODNjMDlhYjUyMTU4NTc3YjdhOTAzZmY1YmFmOTcwODIxNTVlYjI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuY3BwCkBAIC0zMDAsNiArMzAwLDE4IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6dHJhY2tFbmRl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCiAgICAgc3RvcFJlY29yZGluZygpOwogfQogCit2
b2lkIE1lZGlhUmVjb3JkZXI6OnRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiB0cmFjaykKK3sKKyAgICBpZiAobV9wcml2YXRlKQorICAgICAgICBtX3ByaXZhdGUtPnRy
YWNrTXV0ZWRDaGFuZ2VkKHRyYWNrKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyOjp0cmFja0Vu
YWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykKK3sKKyAgICBpZiAo
bV9wcml2YXRlKQorICAgICAgICBtX3ByaXZhdGUtPnRyYWNrRW5hYmxlZENoYW5nZWQodHJhY2sp
OworfQorCiBib29sIE1lZGlhUmVjb3JkZXI6OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBj
b25zdAogewogICAgIHJldHVybiBtX3N0YXRlICE9IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5oCmluZGV4IDQ3ZjQxMTQ4NzNiMzA3ZjExMmEyZWIyYWZkMzE1YmI4YzQxYjkwMWUuLjJm
YjU3NzZhMzA1ZWViYmRhYmFlZWExMDFmMzI0ZTFmNzhhZDcyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtMTA4
LDkgKzEwOCw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
T2JzZXJ2ZXIKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBm
aW5hbDsKLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JikgZmluYWwgeyB9OworICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwgeyB9OwotICAgIHZvaWQgdHJhY2tFbmFibGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgfTsKIAogICAgIHN0YXRp
YyBDcmVhdG9yRnVuY3Rpb24gbV9jdXN0b21DcmVhdG9yOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcApp
bmRleCBlMDc1ODA2YjZlMWMxNGRmNzkxZjFjNjBmY2RkMGY3Njk1MGU0NWViLi42YjBhOGZkODlm
MTcwOGEyNzg0OTljMzhlMGVmYmFiNWNmZDE3MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL1dlYkF1ZGlvQnVmZmVyTGlzdC5jcHAKQEAg
LTE0Niw0ICsxNDYsOSBAQCBBdWRpb0J1ZmZlciogV2ViQXVkaW9CdWZmZXJMaXN0OjpidWZmZXIo
dWludDMyX3QgaW5kZXgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3ZvaWQgV2Vi
QXVkaW9CdWZmZXJMaXN0Ojp6ZXJvRmxhdEJ1ZmZlcigpCit7CisgICAgbWVtc2V0KG1fZmxhdEJ1
ZmZlci5kYXRhKCksIDAsIG1fZmxhdEJ1ZmZlci5jYXBhY2l0eSgpKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvV2ViQXVkaW9CdWZmZXJM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZl
ckxpc3QuaAppbmRleCA1Nzk2NjkzM2QwM2I1YWQyYmVkOGYzNDQ0YmEzNDUxYmJjYjZiNTA2Li43
YWVjMDRmZTliMzVlYzViMjkyZDI1OTU4YzQyNzM2M2Q0ZTllZGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9XZWJBdWRpb0J1ZmZlckxpc3Qu
aApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBpc1N1cHBvcnRlZERlc2NyaXB0aW9uKGNvbnN0IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYsIHVpbnQzMl90IHNhbXBsZUNvdW50KTsKIAorICAgIHZvaWQgemVyb0ZsYXRCdWZmZXIoKTsK
KwogcHJpdmF0ZToKICAgICBLaW5kIGtpbmQoKSBjb25zdCB7IHJldHVybiBLaW5kOjpXZWJBdWRp
b0J1ZmZlckxpc3Q7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAppbmRleCAyNjc5OThk
MDZkNWY4OTlhZGExMTRiMDhkMGExZTJlMTIzMDU3ODU3Li5jMGJmYjEyYzU4M2Y5ZjVhNjQ0YWUz
ZjA0ZDhmNjgyZWVmYzg0YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMzYs
NyArMzYsNyBAQCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6QXVkaW9WaWRlb1NlbGVjdGVkVHJhY2tz
IE1lZGlhUmVjb3JkZXJQcml2YXRlOjpzZWxlY3RUcmFjawogewogICAgIEF1ZGlvVmlkZW9TZWxl
Y3RlZFRyYWNrcyBzZWxlY3RlZFRyYWNrczsKICAgICBzdHJlYW0uZm9yRWFjaFRyYWNrKFsmXShh
dXRvJiB0cmFjaykgewotICAgICAgICBpZiAoIXRyYWNrLmVuYWJsZWQoKSB8fCB0cmFjay5lbmRl
ZCgpKQorICAgICAgICBpZiAodHJhY2suZW5kZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgc3dpdGNoICh0cmFjay50eXBlKCkpIHsKICAgICAgICAgY2FzZSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbzogewpAQCAtNTYsNiArNTYsMTYgQEAgTWVkaWFSZWNvcmRlclBy
aXZhdGU6OkF1ZGlvVmlkZW9TZWxlY3RlZFRyYWNrcyBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6c2Vs
ZWN0VHJhY2sKICAgICByZXR1cm4gc2VsZWN0ZWRUcmFja3M7CiB9CiAKK3ZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGU6OmNoZWNrVHJhY2tTdGF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYgdHJhY2spCit7CisgICAgaWYgKCZ0cmFjay5zb3VyY2UoKSA9PSBtX2F1ZGlvU291cmNlLmdl
dCgpKSB7CisgICAgICAgIG1fc2hvdWxkTXV0ZUF1ZGlvID0gdHJhY2subXV0ZWQoKSB8fCAhdHJh
Y2suZW5hYmxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICgmdHJhY2suc291
cmNlKCkgPT0gbV92aWRlb1NvdXJjZS5nZXQoKSkKKyAgICAgICAgbV9zaG91bGRNdXRlVmlkZW8g
PSB0cmFjay5tdXRlZCgpIHx8ICF0cmFjay5lbmFibGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlLmgKaW5kZXggZDgxMmM2M2QwYzdiM2NiMjk2MWNkYWRlZjQ1M2MxMDYwMTBhN2U1MC4u
ODY2M2E2Zjc2YzcwZTY2NWQzMzQ3ZDk3YjgyYWVlYWIzNmVlMzIxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGUuaApAQCAtNjUsMTEgKzY1LDIxIEBAIHB1YmxpYzoKICAgICB1c2luZyBTdGFydFJl
Y29yZGluZ0NhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxTdHJp
bmc+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSZWNvcmRpbmcoU3RhcnRSZWNvcmRpbmdD
YWxsYmFjayYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKFN0cmluZyhtaW1lVHlwZSgpKSk7IH0KIAor
ICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNr
KSB7IGNoZWNrVHJhY2tTdGF0ZSh0cmFjayk7IH0KKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSB7IGNoZWNrVHJhY2tTdGF0ZSh0cmFj
ayk7IH0KKwogcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0QXVkaW9Tb3VyY2UoUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOwogICAgIHZvaWQgc2V0VmlkZW9Tb3VyY2UoUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+JiYpOwogCisgICAgdm9pZCBjaGVja1RyYWNrU3RhdGUoY29uc3QgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKTsKKworICAgIGJvb2wgc2hvdWxkTXV0ZUF1ZGlvKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRNdXRlQXVkaW87IH0KKyAgICBib29sIHNob3VsZE11dGVWaWRl
bygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkTXV0ZVZpZGVvOyB9CisKIHByaXZhdGU6CisgICAg
Ym9vbCBtX3Nob3VsZE11dGVBdWRpbyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZE11dGVW
aWRlbyB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fYXVkaW9T
b3VyY2U7CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fdmlkZW9Tb3VyY2U7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRp
YVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuY3BwCmluZGV4IDRlZWIxOTVj
OWNkNTA2MjM1NjI3YzVkOGEwNjk0N2RhOTg3MzFjZTIuLjZhOGU1NDFhMDhjNTgyMjlhYmQ1NmYx
ZTU2MTIwYWZiZTBjMWUwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1w
bC5jcHAKQEAgLTI5LDEzICsyOSwyMCBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhB
VkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogCiAjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbi5oIgorI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMu
aCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKKyNpbmNsdWRlICJSZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogCisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExp
bmsuaCIKKyNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKwogbmFtZXNwYWNl
IFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogc3RkOjp1bmlxdWVfcHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlQVZGSW1wbD4gTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjpjcmVh
dGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0sIGNvbnN0IE1lZGlhUmVjb3JkZXJQcml2YXRl
T3B0aW9ucyYgb3B0aW9ucykKIHsKQEAgLTUwLDEwICs1NywxNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6
OmNyZWF0ZQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gcmVjb3JkZXIgPSBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsPihuZXcgTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsKHdyaXRlci5yZWxlYXNlTm9uTnVsbCgpKSk7Ci0gICAgaWYgKHNl
bGVjdGVkVHJhY2tzLmF1ZGlvVHJhY2spCisgICAgaWYgKHNlbGVjdGVkVHJhY2tzLmF1ZGlvVHJh
Y2spIHsKICAgICAgICAgcmVjb3JkZXItPnNldEF1ZGlvU291cmNlKCZzZWxlY3RlZFRyYWNrcy5h
dWRpb1RyYWNrLT5zb3VyY2UoKSk7Ci0gICAgaWYgKHNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2sp
CisgICAgICAgIHJlY29yZGVyLT5jaGVja1RyYWNrU3RhdGUoKnNlbGVjdGVkVHJhY2tzLmF1ZGlv
VHJhY2spOworICAgIH0KKyAgICBpZiAoc2VsZWN0ZWRUcmFja3MudmlkZW9UcmFjaykgewogICAg
ICAgICByZWNvcmRlci0+c2V0VmlkZW9Tb3VyY2UoJnNlbGVjdGVkVHJhY2tzLnZpZGVvVHJhY2st
PnNvdXJjZSgpKTsKKyAgICAgICAgcmVjb3JkZXItPmNoZWNrVHJhY2tTdGF0ZSgqc2VsZWN0ZWRU
cmFja3MudmlkZW9UcmFjayk7CisgICAgfQogICAgIHJldHVybiByZWNvcmRlcjsKIH0KIApAQCAt
NzAsNiArODEsMzcgQEAgTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsOjp+TWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsKCkKIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6OnZp
ZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGVCdWZmZXIpCiB7CisgICAgaWYg
KHNob3VsZE11dGVWaWRlbygpKSB7CisgICAgICAgIGlmICghbV9ibGFja0ZyYW1lKSB7CisgICAg
ICAgICAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLnBsYXRmb3JtU2FtcGxlKCkuc2FtcGxlLmNtU2FtcGxl
QnVmZmVyKTsKKyAgICAgICAgICAgIGF1dG8gZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvbkdldERpbWVuc2lvbnMobV9ibGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCkpOworICAg
ICAgICAgICAgbV9ibGFja0ZyYW1lID0gY3JlYXRlQmxhY2tQaXhlbEJ1ZmZlcihkaW1lbnNpb25z
LndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CisKKyAgICAgICAgICAgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBh
dXRvIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZUZvckltYWdlQnVmZmVy
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG1fYmxhY2tGcmFtZS5nZXQoKSwgJmZvcm1hdERlc2NyaXB0
aW9uKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6
dmlkZW9TYW1wbGVBdmFpbGFibGUgOjp1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWUgZGVz
Y3JpcHRpb246ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihzdGF0dXMpKTsKKyAgICAgICAgICAgICAg
ICBtX2JsYWNrRnJhbWUgPSBudWxscHRyOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIG1fYmxhY2tGcmFtZURlc2NyaXB0aW9uID0gYWRvcHRDRihm
b3JtYXREZXNjcmlwdGlvbik7CisgICAgICAgIH0KKworICAgICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGUgPSBudWxscHRyOworICAgICAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5m
byB7IGtDTVRpbWVJbnZhbGlkLCB0b0NNVGltZShzYW1wbGVCdWZmZXIucHJlc2VudGF0aW9uVGlt
ZSgpKSwgdG9DTVRpbWUoc2FtcGxlQnVmZmVyLmRlY29kZVRpbWUoKSkgfTsKKyAgICAgICAgYXV0
byBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZVJlYWR5V2l0aEltYWdlQnVmZmVyKGtDRkFs
bG9jYXRvckRlZmF1bHQsIChDVkltYWdlQnVmZmVyUmVmKW1fYmxhY2tGcmFtZS5nZXQoKSwgbV9i
bGFja0ZyYW1lRGVzY3JpcHRpb24uZ2V0KCksICZ0aW1pbmdJbmZvLCAmc2FtcGxlKTsKKworICAg
ICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6dmlkZW9TYW1wbGVB
dmFpbGFibGUgLSB1bmFibGUgdG8gY3JlYXRlIGEgYmxhY2sgZnJhbWU6ICVkIiwgc3RhdGljX2Nh
c3Q8aW50PihzdGF0dXMpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBhdXRvIG5ld1NhbXBsZSA9IGFkb3B0Q0Yoc2FtcGxlKTsKKyAgICAgICAgbV93cml0ZXItPmFw
cGVuZFZpZGVvU2FtcGxlQnVmZmVyKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKG5ld1NhbXBs
ZS5nZXQoKSwgc2FtcGxlQnVmZmVyLnZpZGVvUm90YXRpb24oKSwgc2FtcGxlQnVmZmVyLnZpZGVv
TWlycm9yZWQoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9ibGFja0ZyYW1l
ID0gbnVsbHB0cjsKKyAgICBtX2JsYWNrRnJhbWVEZXNjcmlwdGlvbiA9IG51bGxwdHI7CiAgICAg
bV93cml0ZXItPmFwcGVuZFZpZGVvU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlcik7CiB9CiAKQEAg
LTc3LDYgKzExOSwxOCBAQCB2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbDo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IFdURjo6TWVkaWFUaW1lJiBtZQogewogICAgIEFTU0VSVChp
czxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpKTsKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0
cmVhbUJhc2ljVHlwZSk7CisKKyAgICBpZiAoc2hvdWxkTXV0ZUF1ZGlvKCkpIHsKKyAgICAgICAg
aWYgKCFtX2F1ZGlvQnVmZmVyIHx8IG1fZGVzY3JpcHRpb24gIT0gdG9DQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24oZGVzY3JpcHRpb24pKSB7CisgICAgICAgICAgICBtX2Rlc2NyaXB0aW9uID0gdG9D
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgICAgICAgICAgbV9hdWRp
b0J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihtX2Rlc2NyaXB0aW9uLCBz
YW1wbGVDb3VudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9hdWRpb0J1ZmZlci0+
c2V0U2FtcGxlQ291bnQoc2FtcGxlQ291bnQpOworICAgICAgICBtX2F1ZGlvQnVmZmVyLT56ZXJv
RmxhdEJ1ZmZlcigpOworICAgICAgICBtX3dyaXRlci0+YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIo
Km1fYXVkaW9CdWZmZXIsIGRlc2NyaXB0aW9uLCBtZWRpYVRpbWUsIHNhbXBsZUNvdW50KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fd3JpdGVyLT5hcHBlbmRBdWRpb1NhbXBsZUJ1
ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgbWVkaWFUaW1lLCBzYW1wbGVDb3VudCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlclByaXZhdGVBVkZJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCmluZGV4IDkxMWEzZTdmYzE3MmU5ZmEw
MDJmNDQwOGFkN2JlMGE4NmFjMjI5ZjUuLjAwNzFmNGZjMTVlZDM3OWJlMjgxMjYwMWVjODA2MWMy
NzgyOWNmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaApAQCAtMjYs
MTIgKzI2LDE3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRX
UklURVJERUxFR0FURSkKIAorI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgog
I2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXJDb2NvYS5oIgogCit1c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3RydWN0
IF9fQ1ZCdWZmZXIqOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlw
dGlvbiogQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CitjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiAKIGNs
YXNzIE1lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbCBmaW5hbAogICAgIDogcHVibGljIE1lZGlh
UmVjb3JkZXJQcml2YXRlIHsKQEAgLTUzLDYgKzU4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
dG9wUmVjb3JkaW5nKCk7CiAKICAgICBSZWY8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IG1f
d3JpdGVyOworICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX2JsYWNrRnJhbWU7Cisg
ICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fYmxhY2tGcmFtZURlc2NyaXB0
aW9uOworICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJBdWRpb0J1ZmZlckxpc3Q+IG1fYXVkaW9CdWZmZXI7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGY2MzcyYzRiODI3MzYyZWEwMzcxY2Q2OGJi
YjBmNmYwZmMxOTkwNC4uMDc4OTdkMTUyOTdjYmMxY2M4YzVlYmIzNGQ5NzQ2NTlhMDE1N2YzNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVJlY29yZGVyIHNob3VsZCByZXNwZWN0IGVuYWJs
ZWQgYW5kIG11dGVkIHRyYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE3MzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3Mu
aHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVyIGRvZXMgbm90IGNhbGwgZmV0
Y2hEYXRhIHVudGlsIHRoZSBsYXN0IGZldGNoRGF0YSBpcyBjb21wbGV0ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9tdXRlLXRyYWNrcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA2OTZjNjgxNjU1MTM2ZjdjNGNlMzZiMTRkOTc3NThhMTkw
NDJjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3Jk
ZXIvbXV0ZS10cmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKK1BBU1MgUmVj
b3JkaW5nIGEgbXV0ZWQgYXVkaW8gdHJhY2sgc2hvdWxkIHByb2RjdWUgc2lsZW5jZQorUEFTUyBN
dXRpbmcgYW4gYXVkaW8gdHJhY2sgc2hvdWxkIHJlY29yZCBzaWxlbmNlCitQQVNTIE11dGluZyBh
IHZpZGVvIHRyYWNrIHNob3VsZCBwcm9kdWNlIGJsYWNrIGZyYW1lcworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL211dGUtdHJhY2tzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODc4ZDEzNzk0ZTc1NmIwMGFiOTJlMzg2NzIwZDVkMGNlOGUyNzI4MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvbXV0ZS10cmFja3MuaHRt
bApAQCAtMCwwICsxLDIxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+QSByZWNvcmRlZCBtdXRlZCBhdWRp
byB0cmFjayBzaG91bGQgcHJvZHVjZSBzaWxlbmNlPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPHZpZGVvIGlkPSJ2aWRlbzEiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVvIGlk
PSJ2aWRlbzIiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJ2aWRlbzMiIGNvbnRy
b2xzPjwvdmlkZW8+CisgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0
PSIyNDAiPjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFVzZUdQVVByb2Nlc3NGb3JXZWJSVEMoZmFsc2UpOworCitm
dW5jdGlvbiBhbmFseXNlQXVkaW8oc3RyZWFtT3JWaWRlbywgZHVyYXRpb24sIGNvbnRleHQpCit7
CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
dmFyIHNvdXJjZU5vZGUgPSBzdHJlYW1PclZpZGVvIGluc3RhbmNlb2YgTWVkaWFTdHJlYW0gPyBj
b250ZXh0LmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlKHN0cmVhbU9yVmlkZW8pIDogY29udGV4dC5j
cmVhdGVNZWRpYUVsZW1lbnRTb3VyY2Uoc3RyZWFtT3JWaWRlbyk7CisKKyAgICAgICAgdmFyIGFu
YWx5c2VyID0gY29udGV4dC5jcmVhdGVBbmFseXNlcigpOworICAgICAgICB2YXIgZ2FpbiA9IGNv
bnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIHZhciByZXN1bHRzID0geyBoZWFyZEh1bTog
ZmFsc2UsIGhlYXJkQmlwOiBmYWxzZSwgaGVhcmRCb3A6IGZhbHNlLCBoZWFyZE5vaXNlOiBmYWxz
ZSB9OworCisgICAgICAgIGFuYWx5c2VyLmZmdFNpemUgPSAyMDQ4OworICAgICAgICBhbmFseXNl
ci5zbW9vdGhpbmdUaW1lQ29uc3RhbnQgPSAwOworICAgICAgICBhbmFseXNlci5taW5EZWNpYmVs
cyA9IC0xMDA7CisgICAgICAgIGFuYWx5c2VyLm1heERlY2liZWxzID0gMDsKKyAgICAgICAgZ2Fp
bi5nYWluLnZhbHVlID0gMDsKKworICAgICAgICBzb3VyY2VOb2RlLmNvbm5lY3QoYW5hbHlzZXIp
OworICAgICAgICBhbmFseXNlci5jb25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5lY3Qo
Y29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICBmdW5jdGlvbiBhbmFseXNlKCkgeworICAg
ICAgICAgICB2YXIgZnJlcURvbWFpbiA9IG5ldyBVaW50OEFycmF5KGFuYWx5c2VyLmZyZXF1ZW5j
eUJpbkNvdW50KTsKKyAgICAgICAgICAgYW5hbHlzZXIuZ2V0Qnl0ZUZyZXF1ZW5jeURhdGEoZnJl
cURvbWFpbik7CisKKyAgICAgICAgICAgdmFyIGhhc0ZyZXF1ZW5jeSA9IGV4cGVjdGVkRnJlcXVl
bmN5ID0+IHsKKyAgICAgICAgICAgICAgICB2YXIgYmluID0gTWF0aC5mbG9vcihleHBlY3RlZEZy
ZXF1ZW5jeSAqIGFuYWx5c2VyLmZmdFNpemUgLyBjb250ZXh0LnNhbXBsZVJhdGUpOworICAgICAg
ICAgICAgICAgIHJldHVybiBiaW4gPCBmcmVxRG9tYWluLmxlbmd0aCAmJiBmcmVxRG9tYWluW2Jp
bl0gPj0gMTUwOworICAgICAgICAgICB9OworCisgICAgICAgICAgIGlmICghcmVzdWx0cy5oZWFy
ZEh1bSkKKyAgICAgICAgICAgICAgICByZXN1bHRzLmhlYXJkSHVtID0gaGFzRnJlcXVlbmN5KDE1
MCk7CisKKyAgICAgICAgICAgaWYgKCFyZXN1bHRzLmhlYXJkQmlwKQorICAgICAgICAgICAgICAg
cmVzdWx0cy5oZWFyZEJpcCA9IGhhc0ZyZXF1ZW5jeSgxNTAwKTsKKworICAgICAgICAgICBpZiAo
IXJlc3VsdHMuaGVhcmRCb3ApCisgICAgICAgICAgICAgICAgcmVzdWx0cy5oZWFyZEJvcCA9IGhh
c0ZyZXF1ZW5jeSg1MDApOworCisgICAgICAgICAgIGlmICghcmVzdWx0cy5oZWFyZE5vaXNlKQor
ICAgICAgICAgICAgICAgIHJlc3VsdHMuaGVhcmROb2lzZSA9IGhhc0ZyZXF1ZW5jeSgzMDAwKTsK
KworICAgICAgICAgICBpZiAocmVzdWx0cy5oZWFyZEh1bSAmJiByZXN1bHRzLmhlYXJkQmlwICYm
IHJlc3VsdHMuaGVhcmRCb3AgJiYgcmVzdWx0cy5oZWFyZE5vaXNlKQorICAgICAgICAgICAgICAg
IGRvbmUoKTsKKyAgICAgICAgfTsKKworICAgICAgIGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAg
ICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7CisgICAgICAgICAgICBjbGVhckludGVydmFsKGlu
dGVydmFsKTsKKworICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHRzKTsKKyAgICAgICB9CisKKyAg
ICAgICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGRvbmUsIDMgKiBkdXJhdGlvbik7CisgICAg
ICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGFuYWx5c2UsIGR1cmF0aW9uIC8gMzApOwor
ICAgICAgICBhbmFseXNlKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3IoZHVyYXRp
b24pCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJl
c29sdmUsIGR1cmF0aW9uKSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvSHVtQW5hbHlzaXMoc3Ry
ZWFtT3JWaWRlbywgZXhwZWN0ZWQpCit7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgQXVkaW9Db250
ZXh0KCk7CisgICAgZm9yICh2YXIgY3B0ciA9IDA7IGNwdHIgPCAyMDsgY3B0cisrKSB7CisgICAg
ICAgIHZhciByZXN1bHRzID0gYXdhaXQgYW5hbHlzZUF1ZGlvKHN0cmVhbU9yVmlkZW8sIDIwMCwg
Y29udGV4dCk7CisgICAgICAgIGlmIChyZXN1bHRzLmhlYXJkSHVtID09PSBleHBlY3RlZCkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBhd2FpdCB3YWl0Rm9yKDUwKTsKKyAgICB9
CisgICAgYXdhaXQgY29udGV4dC5jbG9zZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZnVu
Y3Rpb24gaXNWaWRlb0JsYWNrKGNhbnZhcywgdmlkZW8sIHN0YXJ0WCwgc3RhcnRZLCBncmFiYmVk
V2lkdGgsIGdyYWJiZWRIZWlnaHQpCit7CisgICAgY2FudmFzLndpZHRoID0gdmlkZW8udmlkZW9X
aWR0aDsKKyAgICBjYW52YXMuaGVpZ2h0ID0gdmlkZW8udmlkZW9IZWlnaHQ7CisgICAgaWYgKCFn
cmFiYmVkSGVpZ2h0KSB7CisgICAgICAgIHN0YXJ0WCA9IDEwOworICAgICAgICBzdGFydFkgPSAx
MDsKKyAgICAgICAgZ3JhYmJlZFdpZHRoID0gY2FudmFzLndpZHRoIC0gMjA7CisgICAgICAgIGdy
YWJiZWRIZWlnaHQgPSBjYW52YXMuaGVpZ2h0IC0gMjA7CisgICAgfQorCisgICAgY2FudmFzLmdl
dENvbnRleHQoJzJkJykuZHJhd0ltYWdlKHZpZGVvLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZh
cy5oZWlnaHQpOworCisgICAgaW1hZ2VEYXRhID0gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0
SW1hZ2VEYXRhKHN0YXJ0WCwgc3RhcnRZLCBncmFiYmVkV2lkdGgsIGdyYWJiZWRIZWlnaHQpOwor
ICAgIGRhdGEgPSBpbWFnZURhdGEuZGF0YTsKKyAgICBmb3IgKHZhciBjcHRyID0gMDsgY3B0ciA8
IGdyYWJiZWRXaWR0aCAqIGdyYWJiZWRIZWlnaHQ7ICsrY3B0cikgeworICAgICAgICAvLyBBcHBy
b3hpbWF0aXZlbHkgYmxhY2sgcGl4ZWxzLgorICAgICAgICBpZiAoZGF0YVs0ICogY3B0cl0gPiAz
MCB8fCBkYXRhWzQgKiBjcHRyICsgMV0gPiAzMCB8fCBkYXRhWzQgKiBjcHRyICsgMl0gPiAzMCkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2FzeW5jIGZ1bmN0aW9uIGNoZWNrVmlkZW9CbGFjayhleHBlY3RlZCwgY2FudmFzLCB2aWRlbywg
ZXJyb3JNZXNzYWdlLCBjb3VudGVyKQoreworICAgIGlmIChpc1ZpZGVvQmxhY2soY2FudmFzLCB2
aWRlbykgPT09IGV4cGVjdGVkKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisK
KyAgICBpZiAoY291bnRlciA9PT0gdW5kZWZpbmVkKQorICAgICAgICBjb3VudGVyID0gMDsKKyAg
ICBpZiAoY291bnRlciA+IDQwMCkgeworICAgICAgICBpZiAoIWVycm9yTWVzc2FnZSkKKyAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9ICJjaGVja1ZpZGVvQmxhY2sgdGltZWQgb3V0IGV4cGVjdGlu
ZyAiICsgZXhwZWN0ZWQ7CisgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvck1lc3Nh
Z2UpOworICAgIH0KKworICAgIGF3YWl0IHdhaXRGb3IoNTApOworICAgIHJldHVybiBjaGVja1Zp
ZGVvQmxhY2soZXhwZWN0ZWQsIGNhbnZhcywgdmlkZW8sIGVycm9yTWVzc2FnZSwgKytjb3VudGVy
KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3Qgc3RyZWFt
ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1
ZSwgdmlkZW86IGZhbHNlIH0pOworCisgICAgY29uc3QgbG9jYWxUcmFjayA9IHN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpWzBdOworICAgIGxvY2FsVHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgIHNl
dFRpbWVvdXQoKCkgPT4gbG9jYWxUcmFjay5lbmFibGVkID0gZmFsc2UsIDApOworICAgIGNvbnN0
IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIoc3RyZWFtKTsKKyAgICBjb25zdCBkYXRhUHJv
bWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcmVjb3JkZXIub25kYXRhYXZhaWxhYmxlID0g
KGUpID0+IHJlc29sdmUoZS5kYXRhKSk7CisKKyAgICByZWNvcmRlci5zdGFydCgpOworICAgIGF3
YWl0IHdhaXRGb3IoMTAwMCk7CisgICAgcmVjb3JkZXIuc3RvcCgpOworICAgIGNvbnN0IGJsb2Ig
PSBhd2FpdCBkYXRhUHJvbWlzZTsKKworICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RV
UkwoYmxvYik7CisgICAgdmlkZW8xLnNyYyA9IHVybDsKKyAgICBhd2FpdCB2aWRlbzEucGxheSgp
OworCisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbih2aWRlbzEuZHVyYXRpb24sIDAuNSk7CisKKyAg
ICBjb25zdCByZXN1bHRzID0gYXdhaXQgZG9IdW1BbmFseXNpcyh2aWRlbzEsIGZhbHNlKTsgCisg
ICAgYXNzZXJ0X3RydWUocmVzdWx0cywgIlNob3VsZCBub3QgaGVhciBodW0iKTsKKworICAgIFVS
TC5yZXZva2VPYmplY3RVUkwodXJsKTsKK30sICJSZWNvcmRpbmcgYSBtdXRlZCBhdWRpbyB0cmFj
ayBzaG91bGQgcHJvZGN1ZSBzaWxlbmNlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkg
PT4geworICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHsgYXVkaW86IHRydWUsIHZpZGVvOiB0cnVlIH0pOworCisgICAgY29uc3QgbG9j
YWxUcmFjayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOworICAgIHNldFRpbWVvdXQoKCkg
PT4gbG9jYWxUcmFjay5lbmFibGVkID0gZmFsc2UsIDUwKTsKKyAgICBjb25zdCByZWNvcmRlciA9
IG5ldyBNZWRpYVJlY29yZGVyKHN0cmVhbSk7CisgICAgY29uc3QgZGF0YVByb21pc2UgPSBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChlKSA9PiByZXNv
bHZlKGUuZGF0YSkpOworCisgICAgcmVjb3JkZXIuc3RhcnQoKTsKKyAgICBhd2FpdCB3YWl0Rm9y
KDEwMDApOworICAgIHJlY29yZGVyLnN0b3AoKTsKKyAgICBjb25zdCBibG9iID0gYXdhaXQgZGF0
YVByb21pc2U7CisKKyAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwor
ICAgIHZpZGVvMi5zcmMgPSB1cmw7CisgICAgYXdhaXQgdmlkZW8yLnBsYXkoKTsKKworICAgIGFz
c2VydF9ncmVhdGVyX3RoYW4odmlkZW8yLmR1cmF0aW9uLCAwLjUpOworCisgICAgY29uc3QgcmVz
dWx0cyA9IGF3YWl0IGRvSHVtQW5hbHlzaXModmlkZW8yLCBmYWxzZSk7IAorICAgIGFzc2VydF90
cnVlKHJlc3VsdHMsICJTaG91bGQgbm90IGhlYXIgaHVtIik7CisKKyAgICBVUkwucmV2b2tlT2Jq
ZWN0VVJMKHVybCk7Cit9LCAiTXV0aW5nIGFuIGF1ZGlvIHRyYWNrIHNob3VsZCByZWNvcmQgc2ls
ZW5jZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0
cnVlLCB2aWRlbzogdHJ1ZSB9KTsKKworICAgIGNvbnN0IGxvY2FsVHJhY2sgPSBzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXTsKKyAgICBzZXRUaW1lb3V0KCgpID0+IGxvY2FsVHJhY2suZW5hYmxl
ZCA9IGZhbHNlLCA1MCk7CisgICAgY29uc3QgcmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcihz
dHJlYW0pOworICAgIGNvbnN0IGRhdGFQcm9taXNlID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBy
ZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSAoZSkgPT4gcmVzb2x2ZShlLmRhdGEpKTsKKworICAg
IHJlY29yZGVyLnN0YXJ0KCk7CisgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsKKyAgICByZWNvcmRl
ci5zdG9wKCk7CisgICAgY29uc3QgYmxvYiA9IGF3YWl0IGRhdGFQcm9taXNlOworCisgICAgY29u
c3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsKKyAgICB2aWRlbzMuc3JjID0gdXJs
OworICAgIGF3YWl0IHZpZGVvMy5wbGF5KCk7CisKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHZp
ZGVvMy5kdXJhdGlvbiwgMC41KTsKKworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNoZWNrVmlk
ZW9CbGFjayh0cnVlLCBjYW52YXMzLCB2aWRlbzMsICJtdXRlZCB2aWRlbyBzaG91bGQgcHJvZHVj
ZSBibGFjayBmcmFtZXMiKTsKKworICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKK30sICJN
dXRpbmcgYSB2aWRlbyB0cmFjayBzaG91bGQgcHJvZHVjZSBibGFjayBmcmFtZXMiKTsKKworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>