<?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>200457</bug_id>
          
          <creation_ts>2019-08-05 16:40:12 -0700</creation_ts>
          <short_desc>Adopt -expectMinimumUpcomingSampleBufferPresentationTime:</short_desc>
          <delta_ts>2019-08-07 08:18:42 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>aboya</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1558626</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-05 16:40:12 -0700</bug_when>
    <thetext>Adopt -expectMinimumUpcomingSampleBufferPresentationTime:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558627</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-05 16:40:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/53961130&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558630</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-05 16:40:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/53964377&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558633</commentid>
    <comment_count>3</comment_count>
      <attachid>375584</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-05 16:43:57 -0700</bug_when>
    <thetext>Created attachment 375584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558640</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-05 17:14:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/53961130&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558762</commentid>
    <comment_count>5</comment_count>
      <attachid>375584</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-08-06 06:14:44 -0700</bug_when>
    <thetext>Comment on attachment 375584
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:1279
&gt; +    if (trackID != m_enabledVideoTrackID)
&gt; +        return;

Nit: canSetMinimumUpcomingPresentationTime has already done this check.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:1292
&gt; +    int trackID = trackIDString.toInt();
&gt; +    if (trackID != m_enabledVideoTrackID)
&gt; +        return;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558790</commentid>
    <comment_count>6</comment_count>
      <attachid>375626</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-06 09:23:16 -0700</bug_when>
    <thetext>Created attachment 375626
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558799</commentid>
    <comment_count>7</comment_count>
      <attachid>375626</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-06 10:05:20 -0700</bug_when>
    <thetext>Comment on attachment 375626
Patch for landing

Clearing flags on attachment: 375626

Committed r248301: &lt;https://trac.webkit.org/changeset/248301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558800</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-06 10:05:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559108</commentid>
    <comment_count>9</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-08-07 07:01:15 -0700</bug_when>
    <thetext>What is this used for? It seems to be accessible from internals only.

And why are these the expected values of internals.minimumUpcomingPresentationTimeForTrackID(sourceBuffer, 1) in the first two cases in the provided test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559121</commentid>
    <comment_count>10</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-07 08:18:42 -0700</bug_when>
    <thetext>(In reply to Alicia Boya García from comment #9)
&gt; What is this used for? It seems to be accessible from internals only.

It&apos;s an implementation detail of AVSampleBufferDisplayLayer. I tried to set up SourceBufferPrivate so that other ports wouldn&apos;t need to worry about it.

That said, it allows SourceBufferPrivate to be notified about timing of not-yet-enqueued samples. If you have a hypothetical decoder that won&apos;t start decoding samples until just before the earliest enqueued PTS, but only has a short sample queue, it&apos;s possible that an not-yet-enqueued sample has a lower PTS than all the enqueued ones, and unless the decoder knows about it, it could drop that sample by not decoding other samples in the queue until after that PTS.
 
&gt; And why are these the expected values of
&gt; internals.minimumUpcomingPresentationTimeForTrackID(sourceBuffer, 1) in the
&gt; first two cases in the provided test?

The mock SourceBuffer&apos;s queue depth is set to 3, and the first three samples have PTSs of 0, 2, and 3. So the minimum upcoming un-enqueued PTS is 1. After a seek to PTS of 4, the buffer is flushed and the samples re-enqueued, starting at PTSs of 4, 5, and 6. The minimum upcoming PTS is 8. When a sample with a PTS of 7 is appended, that gets re-calculated and the minimum upcoming PTS is 7.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375584</attachid>
            <date>2019-08-05 16:43:57 -0700</date>
            <delta_ts>2019-08-06 09:23:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200457-20190805164357.patch</filename>
            <type>text/plain</type>
            <size>24765</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY4MWU4Mjc0Mzc4ZmNl
ZTcxNmZiZDVjMGRlN2M0NmZkZmM4YmU2YS4uZDAyZTM3MDlmZTYwNTQxNmYzNzQ5ZTBlMjNjZTI5
Y2UxODEyMjU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTA4LTA1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IC1leHBlY3RNaW5p
bXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNDU3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81Mzk2MTEzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLW1pbmltdW11
cGNvbWluZ3ByZXNlbnRhdGlvbnRpbWUuaHRtbAorCisgICAgICAgIEFkb3B0IGEgbmV3IEFQSSB2
ZW5kZWQgYnkgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIsIHBpcGVkIGZyb20gU291cmNlQnVm
ZmVyIGRvd24KKyAgICAgICAgdGhyb3VnaCBTb3VyY2VCdWZmZXJQcml2YXRlIHRvIFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLiBUaGlzIHZhbHVlIHNob3VsZCBiZQorICAgICAgICByZXNldCBh
bmQgdXBkYXRlZCB3aGVuIG5ldyBzYW1wbGVzIGFyZSBhcHBlbmRlZC4KKworICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6dXBkYXRlTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnJlc2V0TWluaW11bVVwY29taW5n
UHJlc2VudGF0aW9uVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6Om1pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlcjo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGU6OmNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZTo6c2V0TWluaW11bVVw
Y29taW5nUHJlc2VudGF0aW9uVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQ
cml2YXRlOjpjbGVhck1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZTo6ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRCk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlOjptaW5pbXVtVXBjb21pbmdQ
cmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlOjpzZXRNYXhpbXVtUXVldWVEZXB0aEZvclRyYWNrSUQpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0
TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Y2xlYXJNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRl
OjptaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRCk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JU
cmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpjYW5T
ZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRp
b25UaW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpjbGVh
ck1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAx
OS0wNy0yMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
cGVyLWRvY3VtZW50IGF1dG9wbGF5IHF1aXJrIGZvciBuZXRmbGl4LmNvbS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCAw
ZmI1MTBiMjAwOWNjMTJiNTAzYTg1NTcwZmI2NWUyMjkzOTdlZTI1Li40MjA2ZGZiYzlkYmM3ZGFl
OTIyMmU2MzhjZGJlOWYxMzEzZTU5OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC03MCw2ICs3MCw3IEBAIHN0cnVj
dCBTb3VyY2VCdWZmZXI6OlRyYWNrQnVmZmVyIHsKICAgICBNZWRpYVRpbWUgbGFzdEZyYW1lRHVy
YXRpb247CiAgICAgTWVkaWFUaW1lIGhpZ2hlc3RQcmVzZW50YXRpb25UaW1lc3RhbXA7CiAgICAg
TWVkaWFUaW1lIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWU7CisgICAgTWVkaWFUaW1lIG1p
bmltdW1FbnF1ZXVlZFByZXNlbnRhdGlvblRpbWU7CiAgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6
OktleVR5cGUgbGFzdEVucXVldWVkRGVjb2RlS2V5OwogICAgIE1lZGlhVGltZSBsYXN0RW5xdWV1
ZWREZWNvZGVEdXJhdGlvbjsKICAgICBNZWRpYVRpbWUgcm91bmRlZFRpbWVzdGFtcE9mZnNldDsK
QEAgLTc3LDYgKzc4LDcgQEAgc3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tCdWZmZXIgewogICAg
IGJvb2wgbmVlZFJhbmRvbUFjY2Vzc0ZsYWcgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG5lZWRzUmVlbnF1ZXVlaW5nIHsgZmFsc2UgfTsKKyAgICBib29s
IG5lZWRzTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZVVwZGF0aW5nIHsgZmFsc2UgfTsK
ICAgICBTYW1wbGVNYXAgc2FtcGxlczsKICAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlw
ZSBkZWNvZGVRdWV1ZTsKICAgICBSZWZQdHI8TWVkaWFEZXNjcmlwdGlvbj4gZGVzY3JpcHRpb247
CkBAIC0xNzg4LDYgKzE3OTAsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVTYW1wbGUoTWVkaWFTYW1wbGUmIHNhbXBsZSkKICAgICAgICAgRGVjb2Rl
T3JkZXJTYW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5KHNhbXBsZS5kZWNvZGVUaW1lKCksIHNh
bXBsZS5wcmVzZW50YXRpb25UaW1lKCkpOwogICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVu
cXVldWVkRGVjb2RlS2V5LmZpcnN0LmlzSW52YWxpZCgpIHx8IGRlY29kZUtleSA+IHRyYWNrQnVm
ZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleSkgewogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVj
b2RlUXVldWUuaW5zZXJ0KERlY29kZU9yZGVyU2FtcGxlTWFwOjpNYXBUeXBlOjp2YWx1ZV90eXBl
KGRlY29kZUtleSwgJnNhbXBsZSkpOworCisgICAgICAgICAgICBpZiAodHJhY2tCdWZmZXIubWlu
aW11bUVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgc2FtcGxlLnByZXNlbnRh
dGlvblRpbWUoKSA8IHRyYWNrQnVmZmVyLm1pbmltdW1FbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUp
CisgICAgICAgICAgICAgICAgdHJhY2tCdWZmZXIubmVlZHNNaW5pbXVtVXBjb21pbmdQcmVzZW50
YXRpb25UaW1lVXBkYXRpbmcgPSB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTk9URTog
dGhlIHNwZWMgY29uc2lkZXJzICJDb2RlZCBGcmFtZSBEdXJhdGlvbiIgdG8gYmUgdGhlIHByZXNl
bnRhdGlvbiBkdXJhdGlvbiwgYnV0IHRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5IGVxdWFsCkBAIC0y
MDIxLDYgKzIwMjYsOSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YShUcmFj
a0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAgdW5zaWduZWQgZW5x
dWV1ZWRTYW1wbGVzID0gMDsKICNlbmRpZgogCisgICAgaWYgKHRyYWNrQnVmZmVyLm5lZWRzTWlu
aW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZVVwZGF0aW5nKQorICAgICAgICByZXNldE1pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tCdWZmZXIsIHRyYWNrSUQpOworCiAgICAg
d2hpbGUgKCF0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5lbXB0eSgpKSB7CiAgICAgICAgIGlmICgh
bV9wcml2YXRlLT5pc1JlYWR5Rm9yTW9yZVNhbXBsZXModHJhY2tJRCkpIHsKICAgICAgICAgICAg
IERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAiYmFpbGluZyBlYXJseSwgdHJhY2sgaWQgIiwgdHJh
Y2tJRCwgIiBpcyBub3QgcmVhZHkgZm9yIG1vcmUgZGF0YSIpOwpAQCAtMjA2MSw2ICsyMDY5LDgg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImIHRyYWNr
QnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJgogI2VuZGlmCiAgICAgfQogCisgICAgdXBkYXRlTWlu
aW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0J1ZmZlciwgdHJhY2tJRCk7CisKICNp
ZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgImVu
cXVldWVkICIsIGVucXVldWVkU2FtcGxlcywgIiBzYW1wbGVzLCAiLCBzdGF0aWNfY2FzdDxzaXpl
X3Q+KHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLnNpemUoKSksICIgcmVtYWluaW5nIik7CiAjZW5k
aWYKQEAgLTIwNjgsNiArMjA3OCw0MSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlh
RGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAgdHJ5
U2lnbmFsQWxsU2FtcGxlc0luVHJhY2tFbnF1ZXVlZCh0cmFja0lEKTsKIH0KIAordm9pZCBTb3Vy
Y2VCdWZmZXI6OnVwZGF0ZU1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEKQoreworICAgIGlmICgh
bV9wcml2YXRlLT5jYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNrSUQp
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuZW1w
dHkoKSkgeworICAgICAgICB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25U
aW1lID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgICAgICBtX3ByaXZhdGUtPmNsZWFy
TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lEKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gbWluUHRzID0gc3RkOjptaW5fZWxlbWVudCh0cmFja0J1ZmZl
ci5kZWNvZGVRdWV1ZS5iZWdpbigpLCB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5lbmQoKSwgW10o
YXV0byYgbGVmdCwgYXV0byYgcmlnaHQpIC0+IGJvb2wgeworICAgICAgICByZXR1cm4gbGVmdC5z
ZWNvbmQtPm91dHB1dFByZXNlbnRhdGlvblRpbWUoKSA8IHJpZ2h0LnNlY29uZC0+b3V0cHV0UHJl
c2VudGF0aW9uVGltZSgpOworICAgIH0pOworCisgICAgaWYgKG1pblB0cyA9PSB0cmFja0J1ZmZl
ci5kZWNvZGVRdWV1ZS5lbmQoKSkgeworICAgICAgICB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1
ZWRQcmVzZW50YXRpb25UaW1lID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgICAgICBt
X3ByaXZhdGUtPmNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lEKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRyYWNrQnVmZmVyLm1pbmltdW1FbnF1ZXVl
ZFByZXNlbnRhdGlvblRpbWUgPSBtaW5QdHMtPnNlY29uZC0+b3V0cHV0UHJlc2VudGF0aW9uVGlt
ZSgpOworICAgIG1fcHJpdmF0ZS0+c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0
cmFja0lELCB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKTsKK30K
KworCit2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCkK
K3sKKyAgICBpZiAoIW1fcHJpdmF0ZS0+Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9u
VGltZSh0cmFja0lEKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdHJhY2tCdWZmZXIubWluaW11
bUVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAg
ICBtX3ByaXZhdGUtPmNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lE
KTsKK30KKwogdm9pZCBTb3VyY2VCdWZmZXI6OnRyeVNpZ25hbEFsbFNhbXBsZXNJblRyYWNrRW5x
dWV1ZWQoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCkKIHsKICAgICBpZiAobV9zb3VyY2UtPmlz
RW5kZWQoKSAmJiBtX3RyYWNrQnVmZmVyTWFwLmdldCh0cmFja0lEKS5kZWNvZGVRdWV1ZS5lbXB0
eSgpKSB7CkBAIC0yMjcxLDYgKzIzMTYsMTYgQEAgVmVjdG9yPFN0cmluZz4gU291cmNlQnVmZmVy
OjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQKICAg
ICByZXR1cm4gbV9wcml2YXRlLT5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHRyYWNrSUQpOwog
fQogCitNZWRpYVRpbWUgU291cmNlQnVmZmVyOjptaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEKQoreworICAgIHJldHVybiBt
X3ByaXZhdGUtPm1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKHRyYWNr
SUQpOworfQorCit2b2lkIFNvdXJjZUJ1ZmZlcjo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFj
a0lEKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQsIHNpemVfdCBtYXhRdWV1ZURlcHRoKQorewor
ICAgIG1fcHJpdmF0ZS0+c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKHRyYWNrSUQsIG1h
eFF1ZXVlRGVwdGgpOworfQorCiBEb2N1bWVudCYgU291cmNlQnVmZmVyOjpkb2N1bWVudCgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAppbmRleCAzMTNk
MDdjY2Y5MjU1ZDlhNzYxZTMyZWE0YTYzODBiNjBhMzkzZWVkLi5hNDUwMmI1YjY3NWM2ZjAwNzI0
ZjhhNjkwNzY5ZDY5NjA2ZTRjZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKQEAgLTE5OCw2ICsxOTgsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVwb3J0RXh0cmFNZW1vcnlBbGxvY2F0ZWQoKTsKIAogICAgIHZvaWQgdXBkYXRl
QnVmZmVyZWRGcm9tVHJhY2tCdWZmZXJzKCk7CisgICAgdm9pZCB1cGRhdGVNaW5pbXVtVXBjb21p
bmdQcmVzZW50YXRpb25UaW1lKFRyYWNrQnVmZmVyJiwgY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJ
RCk7CisgICAgdm9pZCByZXNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoVHJhY2tC
dWZmZXImLCBjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lEKTsKIAogICAgIHZvaWQgYXBwZW5kRXJy
b3IoYm9vbCk7CiAKQEAgLTIxMCw2ICsyMTIsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBJbnRlcm5hbHM7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gYnVmZmVyZWRT
YW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
VmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5n
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFUaW1lIG1pbmltdW1VcGNvbWluZ1ByZXNlbnRh
dGlvblRpbWVGb3JUcmFja0lEKGNvbnN0IEF0b21TdHJpbmcmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJiwg
c2l6ZV90KTsKIAogICAgIFJlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiBtX3ByaXZhdGU7CiAgICAg
TWVkaWFTb3VyY2UqIG1fc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvU291cmNlQnVmZmVyUHJpdmF0ZS5oCmluZGV4IDQ2ZTMwMmQzMThlNmI1YWQ2
Nzc5Mzk3YTJlOGZmMTU4M2EwZDEzMWMuLjI3ZTIxMTljNjU1OWVhNzdmMGEzYmRkZjg3Y2JmNTYx
MGU4MWQ2MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Nv
dXJjZUJ1ZmZlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Tb3VyY2VCdWZmZXJQcml2YXRlLmgKQEAgLTYyLDEwICs2MiwxNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVN0cmluZyYpIHsgfQogCi0g
ICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0
IEF0b21TdHJpbmcmKSB7IHJldHVybiB7IH07IH0KLQorICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRN
aW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNaW5pbXVtVXBjb21pbmdQcmVz
ZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBNZWRpYVRpbWUmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0
IEF0b21TdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgY2FuU3dpdGNoVG9UeXBlKGNvbnN0
IENvbnRlbnRUeXBlJikgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIC8vIEludGVybmFscyBVdGls
aXR5IG1ldGhvZHM6CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbnF1ZXVlZFNhbXBsZXNG
b3JUcmFja0lEKGNvbnN0IEF0b21TdHJpbmcmKSB7IHJldHVybiB7IH07IH0KKyAgICB2aXJ0dWFs
IE1lZGlhVGltZSBtaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRChjb25z
dCBBdG9tU3RyaW5nJikgeyByZXR1cm4gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOyB9CisgICAg
dmlydHVhbCB2b2lkIHNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRChjb25zdCBBdG9tU3Ry
aW5nJiwgc2l6ZV90KSB7IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHZpcnR1
YWwgY29uc3QgTG9nZ2VyJiBzb3VyY2VCdWZmZXJMb2dnZXIoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBjb25zdCB2b2lkKiBzb3VyY2VCdWZmZXJMb2dJZGVudGlmaWVyKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgKaW5k
ZXggN2Y3NWFmOTU2YjY3MjQ3ZWMxMWQyNWJlODAxN2NmYjEzNDBjZmFjYi4uZGZhMTM0YjRkNjhm
ZGI3NDczNDM3OGQ5ZjlkZDNiZDg0MWYzM2Q2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC0xNjMsNiArMTYzLDkgQEAg
cHJpdmF0ZToKICAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tU3RyaW5n
JiB0cmFja0lEKSBmaW5hbDsKICAgICB2b2lkIHNldEFjdGl2ZShib29sKSBmaW5hbDsKICAgICB2
b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TdHJpbmcm
IHRyYWNrSUQpIGZpbmFsOworICAgIGJvb2wgY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0
aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRN
aW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBN
ZWRpYVRpbWUmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyTWluaW11bVVwY29taW5nUHJlc2Vu
dGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5Td2l0
Y2hUb1R5cGUoY29uc3QgQ29udGVudFR5cGUmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQmVjb21l
UmVhZHlGb3JNb3JlU2FtcGxlcyhpbnQgdHJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDMyNDI3NjM3ODE3
ZDFmM2M2NzRiOTBlNzczMmI1YTAyODc2MmU5NDguLjc3OTBkZDM3YTM1MTM0YjdiNWZlZmFhOTg0
MmIxYWM5MTc4NDdlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02OSw2ICs2OSw4IEBACiAKIEBpbnRlcmZhY2Ug
QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIgKFdlYkNvcmVBVlNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllclF1ZXVlTWFuYWdlbWVudFByaXZhdGUpCiAtICh2b2lkKXByZXJvbGxEZWNvZGVXaXRoQ29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgc3VjY2VzcykpYmxvY2s7CistICh2b2lkKWV4
cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6IChDTVRpbWUp
bWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZTsKKy0gKHZvaWQpcmVzZXRVcGNvbWluZ1Nh
bXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWVFeHBlY3RhdGlvbnM7CiBAZW5kCiAKICNwcmFnbWEg
bWFyayAtCkBAIC0xMjU4LDYgKzEyNjAsNDAgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQzo6bm90aWZ5Q2xpZW50V2hlblJlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVMKICAg
ICB9CiB9CiAKK2Jvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1V
cGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmluZykg
Y29uc3QKK3sKKyAgICBpbnQgdHJhY2tJRCA9IHRyYWNrSURTdHJpbmcudG9JbnQoKTsKKyAgICBp
ZiAodHJhY2tJRCA9PSBtX2VuYWJsZWRWaWRlb1RyYWNrSUQpCisgICAgICAgIHJldHVybiBbZ2V0
QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVj
dG9yOkBzZWxlY3RvcihleHBlY3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRp
b25UaW1lOildOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9t
U3RyaW5nJiB0cmFja0lEU3RyaW5nLCBjb25zdCBNZWRpYVRpbWUmIHByZXNlbnRhdGlvblRpbWUp
Cit7CisgICAgQVNTRVJUKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJh
Y2tJRFN0cmluZykpOworICAgIGlmICghY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9u
VGltZSh0cmFja0lEU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW50IHRyYWNrSUQg
PSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CisgICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlk
ZW9UcmFja0lEKQorICAgICAgICByZXR1cm47CisKKyAgICBbbV9kaXNwbGF5TGF5ZXIgZXhwZWN0
TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZTp0b0NNVGltZShwcmVz
ZW50YXRpb25UaW1lKV07Cit9CisKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNs
ZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiB0cmFj
a0lEU3RyaW5nKQoreworICAgIEFTU0VSVChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRp
b25UaW1lKHRyYWNrSURTdHJpbmcpKTsKKyAgICBpZiAoIWNhblNldE1pbmltdW1VcGNvbWluZ1By
ZXNlbnRhdGlvblRpbWUodHJhY2tJRFN0cmluZykpCisgICAgICAgIHJldHVybjsKKworICAgIGlu
dCB0cmFja0lEID0gdHJhY2tJRFN0cmluZy50b0ludCgpOworICAgIGlmICh0cmFja0lEICE9IG1f
ZW5hYmxlZFZpZGVvVHJhY2tJRCkKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fZGlzcGxheUxh
eWVyIHJlc2V0VXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lRXhwZWN0YXRpb25z
XTsKK30KKwogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Y2FuU3dpdGNoVG9UeXBl
KGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIGNvbnRlbnRUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0
ZS5jcHAKaW5kZXggYjQyZjA0YmVkZjAxZWQwN2FiZTA5YzUzZjliODlmNjEwZGJmYWZlYS4uNmIx
MzczZTQ0NzNiOTM3ODUyNjcwNWVjMGZiYTBhNDAxYjAwODUzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2Nr
U291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKQEAgLTI0MCw2ICsyNDAsMzEgQEAgVmVjdG9yPFN0cmlu
Zz4gTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29u
c3QgQXRvbVN0cmkKICAgICByZXR1cm4gbV9lbnF1ZXVlZFNhbXBsZXM7CiB9CiAKK01lZGlhVGlt
ZSBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6bWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZUZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYpCit7CisgICAgcmV0dXJuIG1fbWluaW11bVVw
Y29taW5nUHJlc2VudGF0aW9uVGltZTsKK30KKwordm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKGNvbnN0IEF0b21TdHJpbmcmLCBzaXpl
X3QgbWF4UXVldWVEZXB0aCkKK3sKKyAgICBtX21heFF1ZXVlRGVwdGggPSBtYXhRdWV1ZURlcHRo
OworfQorCitib29sIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpjYW5TZXRNaW5pbXVtVXBjb21p
bmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdAoreworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIE1vY2tTb3VyY2VCdWZmZXJQcml2YXRlOjpzZXRNaW5pbXVtVXBj
b21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmLCBjb25zdCBNZWRpYVRpbWUm
IHByZXNlbnRhdGlvblRpbWUpCit7CisgICAgbV9taW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25U
aW1lID0gcHJlc2VudGF0aW9uVGltZTsKK30KKwordm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0
ZTo6Y2xlYXJNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcm
KQoreworICAgIG1fbWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6
aW52YWxpZFRpbWUoKTsKK30KKwogYm9vbCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6Y2FuU3dp
dGNoVG9UeXBlKGNvbnN0IENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKICAgICBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmgKaW5kZXggZTRiOTU5OWRlOWE5NmQ3OTA5MWZhMmM4NjUwYzVlZmJiZmJlMzE2
ZC4uY2JiMzUwZDNhMjdjYmE0NDcyYTcxZTU2Y2U0YTI2YmY2NTAyNmI1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2Uv
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaApAQCAtNjIsMTQgKzYyLDE5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZW1vdmVkRnJvbU1lZGlhU291cmNlKCkgZmluYWw7CiAgICAgTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0UmVhZHlT
dGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgZmluYWw7CisgICAgYm9vbCBjYW5TZXRNaW5p
bXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmKSBjb25zdCBmaW5h
bDsKKyAgICB2b2lkIHNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRv
bVN0cmluZyYsIGNvbnN0IE1lZGlhVGltZSYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKICAgICBi
b29sIGNhblN3aXRjaFRvVHlwZShjb25zdCBDb250ZW50VHlwZSYpIGZpbmFsOwogCi0gICAgdm9p
ZCBmbHVzaChjb25zdCBBdG9tU3RyaW5nJikgZmluYWwgeyBtX2VucXVldWVkU2FtcGxlcy5jbGVh
cigpOyB9CisgICAgdm9pZCBmbHVzaChjb25zdCBBdG9tU3RyaW5nJikgZmluYWwgeyBtX2VucXVl
dWVkU2FtcGxlcy5jbGVhcigpOyBtX21pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgPSBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7IH0KICAgICB2b2lkIGVucXVldWVTYW1wbGUoUmVmPE1l
ZGlhU2FtcGxlPiYmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBpc1JlYWR5
Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KyAgICBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tU3RyaW5nJikgZmluYWwg
eyByZXR1cm4gIW1fbWF4UXVldWVEZXB0aCB8fCBtX2VucXVldWVkU2FtcGxlcy5zaXplKCkgPCBt
X21heFF1ZXVlRGVwdGgudmFsdWUoKTsgfQogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpIGZpbmFs
OwogCiAgICAgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBB
dG9tU3RyaW5nJikgZmluYWw7CisgICAgTWVkaWFUaW1lIG1pbmltdW1VcGNvbWluZ1ByZXNlbnRh
dGlvblRpbWVGb3JUcmFja0lEKGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHNl
dE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJiwgc2l6ZV90KSBm
aW5hbDsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChjb25zdCBN
b2NrSW5pdGlhbGl6YXRpb25Cb3gmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTYW1wbGUoY29uc3Qg
TW9ja1NhbXBsZUJveCYpOwpAQCAtODEsOCArODYsOSBAQCBwcml2YXRlOgogCiAgICAgTW9ja01l
ZGlhU291cmNlUHJpdmF0ZSogbV9tZWRpYVNvdXJjZTsKICAgICBTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50KiBtX2NsaWVudDsKKyAgICBNZWRpYVRpbWUgbV9taW5pbXVtVXBjb21pbmdQcmVzZW50
YXRpb25UaW1lOwogICAgIFZlY3RvcjxTdHJpbmc+IG1fZW5xdWV1ZWRTYW1wbGVzOwotCisgICAg
T3B0aW9uYWw8c2l6ZV90PiBtX21heFF1ZXVlRGVwdGg7CiAgICAgVmVjdG9yPGNoYXI+IG1faW5w
dXRCdWZmZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggY2Rm
MTY5NGVlNmI0ZGZjODIxOTRiMTE2YmYzYTI0MTMwYWMzMTcxNi4uODRhYjk4YzI4OTE4NzNhOTFj
YmZjYjY3ZWJkNzc3YTI5Y2ZlMmNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtMzc1MCwxMSArMzc1MCwyMSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OmVucXVl
dWVkU2FtcGxlc0ZvclRyYWNrSUQoU291cmNlQnVmZmVyJiBidWZmZXIsIGNvbnN0CiAgICAgcmV0
dXJuIGJ1ZmZlci5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHRyYWNrSUQpOwogfQogCitkb3Vi
bGUgSW50ZXJuYWxzOjptaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRChT
b3VyY2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCkKK3sKKyAgICBy
ZXR1cm4gYnVmZmVyLm1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKHRy
YWNrSUQpLnRvRG91YmxlKCk7Cit9CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRTaG91bGRHZW5lcmF0
ZVRpbWVzdGFtcHMoU291cmNlQnVmZmVyJiBidWZmZXIsIGJvb2wgZmxhZykKIHsKICAgICBidWZm
ZXIuc2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKGZsYWcpOwogfQogCit2b2lkIEludGVybmFs
czo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKFNvdXJjZUJ1ZmZlciYgYnVmZmVyLCBj
b25zdCBBdG9tU3RyaW5nJiB0cmFja0lELCBzaXplX3QgbWF4UXVldWVEZXB0aCkKK3sKKyAgICBi
dWZmZXIuc2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKHRyYWNrSUQsIG1heFF1ZXVlRGVw
dGgpOworfQorCiAjZW5kaWYKIAogdm9pZCBJbnRlcm5hbHM6OmVuYWJsZU1vY2tNZWRpYUNhcGFi
aWxpdGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhNWNiMjFjYTE4ZGFi
OThhODJhNjQ4MzcxM2VhOGI1NDIxZWE2Yzc2Li5hOWFmMzE5OWVhYjhlMDAzZjMzZTU2M2VkMzkx
Mzc4MGQ1OGE5M2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTU4Myw3ICs1
ODMsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgdm9pZCBpbml0
aWFsaXplTW9ja01lZGlhU291cmNlKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gYnVmZmVyZWRTYW1w
bGVzRm9yVHJhY2tJRChTb3VyY2VCdWZmZXImLCBjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgVmVj
dG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChTb3VyY2VCdWZmZXImLCBjb25z
dCBBdG9tU3RyaW5nJik7CisgICAgZG91YmxlIG1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRp
bWVGb3JUcmFja0lEKFNvdXJjZUJ1ZmZlciYsIGNvbnN0IEF0b21TdHJpbmcmKTsKICAgICB2b2lk
IHNldFNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyhTb3VyY2VCdWZmZXImLCBib29sKTsKKyAgICB2
b2lkIHNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRChTb3VyY2VCdWZmZXImLCBjb25zdCBB
dG9tU3RyaW5nJiwgc2l6ZV90KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDJlMjhkNDYxYWE3YmI5NGUyYWY4ZTNiZDY3
ZTBjZWE0NjlhN2FhYTkuLjdiYzg2MDRkNDkzZTkxMzMyNDMxOWZhNmEyNjE0ZGI2YzBlYjZmZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU4NSw2ICs1ODUsOCBAQCBl
bnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFXSBz
ZXF1ZW5jZTxET01TdHJpbmc+IGJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSUQoU291cmNlQnVmZmVy
IGJ1ZmZlciwgRE9NU3RyaW5nIHRyYWNrSUQpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TT1VS
Q0VdIHNlcXVlbmNlPERPTVN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChTb3VyY2VC
dWZmZXIgYnVmZmVyLCBET01TdHJpbmcgdHJhY2tJRCk7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElB
X1NPVVJDRV0gdm9pZCBzZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMoU291cmNlQnVmZmVyIGJ1
ZmZlciwgYm9vbGVhbiBmbGFnKTsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFXSBkb3Vi
bGUgbWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZUZvclRyYWNrSUQoU291cmNlQnVmZmVy
IGJ1ZmZlciwgRE9NU3RyaW5nIHRyYWNrSUQpOworICAgIFtDb25kaXRpb25hbD1NRURJQV9TT1VS
Q0VdIHZvaWQgc2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKFNvdXJjZUJ1ZmZlciBidWZm
ZXIsIERPTVN0cmluZyB0cmFja0lELCB1bnNpZ25lZCBsb25nIG1heFF1ZXVlRGVwdGgpOwogCiAg
ICAgW0NvbmRpdGlvbmFsPVZJREVPLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBiZWdpbk1lZGlh
U2Vzc2lvbkludGVycnVwdGlvbihET01TdHJpbmcgaW50ZXJydXB0aW9uVHlwZSk7CiAgICAgW0Nv
bmRpdGlvbmFsPVZJREVPXSB2b2lkIGVuZE1lZGlhU2Vzc2lvbkludGVycnVwdGlvbihET01TdHJp
bmcgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhLXNvdXJjZS1taW5pbXVtdXBjb21pbmdwcmVzZW50YXRpb250aW1lLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtbWluaW11bXVwY29t
aW5ncHJlc2VudGF0aW9udGltZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU3YTRlYzc0ZmM2
ZjY0NjFkYmQ0ZDlmZjM5MzE4OTVhYTAyYjA5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtbWluaW11bXVwY29taW5ncHJlc2Vu
dGF0aW9udGltZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorCitURVNUKHNvdXJjZS5h
ZGRTb3VyY2VCdWZmZXIoImludmFsaWQiKSkgVEhST1dTKERPTUV4Y2VwdGlvbi5OT1RfU1VQUE9S
VEVEX0VSUikgT0sKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoImludmFs
aWQiKSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRl
ZCgidmlkZW8vbW9jazsgY29kZWNzPW1vY2siKSA9PSAndHJ1ZScpIE9LCitSVU4odmlkZW8uc3Jj
ID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpKQorRVZFTlQoc291cmNlb3BlbikKK1JVTihz
b3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBjb2RlY3M9
bW9jayIpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpKQorRVZF
TlQodXBkYXRlZW5kKQorUlVOKGludGVybmFscy5zZXRNYXhpbXVtUXVldWVEZXB0aEZvclRyYWNr
SUQoc291cmNlQnVmZmVyLCAxLCAzKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHNh
bXBsZXMpKQorRVZFTlQodXBkYXRlZW5kKQorRVhQRUNURUQgKGludGVybmFscy5taW5pbXVtVXBj
b21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpID09ICcxJykg
T0sKK1JVTih2aWRlby5jdXJyZW50VGltZSA9IDQpCitFVkVOVChzZWVrZWQpCitFWFBFQ1RFRCAo
aW50ZXJuYWxzLm1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKHNvdXJj
ZUJ1ZmZlciwgMSkgPT0gJzgnKSBPSworUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoc2Ft
cGxlcykpCitFVkVOVCh1cGRhdGVlbmQpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLm1pbmltdW1VcGNv
bWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkgPT0gJzcnKSBP
SworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1taW5pbXVtdXBjb21pbmdwcmVzZW50YXRpb250aW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLW1pbmltdW11cGNvbWlu
Z3ByZXNlbnRhdGlvbnRpbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzFkNjE4NDUxNTJlYjM1MmUwOGQ2
NjcyOTYyNzllODg1ZGUyM2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1taW5pbXVtdXBjb21pbmdwcmVzZW50YXRpb250aW1l
Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDx0aXRsZT5tb2NrLW1lZGlhLXNvdXJjZTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Im1v
Y2stbWVkaWEtc291cmNlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8t
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgc291cmNlOworICAgIHZh
ciBzb3VyY2VCdWZmZXI7CisgICAgdmFyIHNhbXBsZXM7CisKKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgaW50ZXJuYWxzLmluaXRpYWxpemVNb2NrTWVkaWFTb3VyY2UoKTsKKwor
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAg
ICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICAgICAgc291cmNlID0gbmV3IE1lZGlhU291
cmNlKCk7CisgICAgICAgIHRlc3RET01FeGNlcHRpb24oJ3NvdXJjZS5hZGRTb3VyY2VCdWZmZXIo
ImludmFsaWQiKScsICdET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlInKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoImludmFsaWQiKScsIGZh
bHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQo
InZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIiknLCB0cnVlKTsKKworICAgICAgICBydW4oJ3ZpZGVv
LnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKScpOworICAgICAgICBhd2FpdCB3YWl0
Rm9yKHNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9
IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIiknKTsKKyAg
ICAgICAgaW5pdFNlZ21lbnQgPSBtYWtlQUluaXQoOCwgW21ha2VBVHJhY2soMSwgJ21vY2snLCBU
UkFDS19LSU5ELlZJREVPKV0pOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZm
ZXIoaW5pdFNlZ21lbnQpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAn
dXBkYXRlZW5kJyk7CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TWF4aW11bVF1ZXVlRGVw
dGhGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSwgMyknKTsKKworICAgICAgICBzYW1wbGVzID0g
Y29uY2F0ZW5hdGVTYW1wbGVzKFsKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDAsIDAsIDEsIDEs
IDEsIFNBTVBMRV9GTEFHLlNZTkMpLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMiwgMSwgMSwg
MSwgMSwgU0FNUExFX0ZMQUcuTk9ORSksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgzLCAyLCAx
LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDEsIDMs
IDEsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoNCwg
NCwgMSwgMSwgMSwgU0FNUExFX0ZMQUcuU1lOQyksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSg1
LCA1LCAxLCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxl
KDYsIDYsIDEsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLAorICAgICAgICAgICAgbWFrZUFTYW1w
bGUoOCwgNywgMSwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSksCisgICAgICAgIF0pOworICAgICAg
ICAKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHNhbXBsZXMpJyk7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMubWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZUZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKScsIDEpOworCisgICAgICAgIHJ1bigndmlkZW8u
Y3VycmVudFRpbWUgPSA0Jyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdzZWVrZWQn
KTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5taW5pbXVtVXBjb21pbmdQcmVz
ZW50YXRpb25UaW1lRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpJywgOCk7CisKKyAgICAgICAg
c2FtcGxlcyA9IG1ha2VBU2FtcGxlKDcsIDgsIDEsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLAor
CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihzYW1wbGVzKScpOworICAg
ICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAg
IHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLm1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVG
b3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSknLCA3KTsKKworICAgICAgICBlbmRUZXN0KCk7Cisg
ICAgfSk7CisgICAgCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8+
PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375626</attachid>
            <date>2019-08-06 09:23:16 -0700</date>
            <delta_ts>2019-08-06 10:05:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-200457-20190806092315.patch</filename>
            <type>text/plain</type>
            <size>24877</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY4MWU4Mjc0Mzc4ZmNl
ZTcxNmZiZDVjMGRlN2M0NmZkZmM4YmU2YS4uYjQ4ZTQ0NTBkY2ZjNzUxMDUzNTBmODEzYjdmZDhi
Y2EwNjRiZjY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTA4LTA1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IC1leHBlY3RNaW5p
bXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNDU3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81Mzk2MTEzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgVGVzdDogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1taW5pbXVtdXBj
b21pbmdwcmVzZW50YXRpb250aW1lLmh0bWwKKworICAgICAgICBBZG9wdCBhIG5ldyBBUEkgdmVu
ZGVkIGJ5IEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLCBwaXBlZCBmcm9tIFNvdXJjZUJ1ZmZl
ciBkb3duCisgICAgICAgIHRocm91Z2ggU291cmNlQnVmZmVyUHJpdmF0ZSB0byBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy4gVGhpcyB2YWx1ZSBzaG91bGQgYmUKKyAgICAgICAgcmVzZXQgYW5k
IHVwZGF0ZWQgd2hlbiBuZXcgc2FtcGxlcyBhcmUgYXBwZW5kZWQuCisKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXI6OnVwZGF0ZU1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpyZXNldE1pbmltdW1VcGNvbWluZ1By
ZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjptaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRCk6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXI6OnNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRCk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Tb3VyY2VCdWZmZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VC
dWZmZXJQcml2YXRlOjpjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU6OnNldE1pbmltdW1VcGNv
bWluZ1ByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJp
dmF0ZTo6Y2xlYXJNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGU6OmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZTo6bWluaW11bVVwY29taW5nUHJl
c2VudGF0aW9uVGltZUZvclRyYWNrSUQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZTo6c2V0TWF4aW11bVF1ZXVlRGVwdGhGb3JUcmFja0lEKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakM6OmNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnNldE1p
bmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVy
UHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6
bWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZUZvclRyYWNrSUQpOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJh
Y2tJRCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6Y2FuU2V0
TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9u
VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6Y2xlYXJN
aW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptaW5pbXVtVXBj
b21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRCk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTkt
MDctMjMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHBl
ci1kb2N1bWVudCBhdXRvcGxheSBxdWlyayBmb3IgbmV0ZmxpeC5jb20uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMGZi
NTEwYjIwMDljYzEyYjUwM2E4NTU3MGZiNjVlMjI5Mzk3ZWUyNS4uNDIwNmRmYmM5ZGJjN2RhZTky
MjJlNjM4Y2RiZTlmMTMxM2U1OTliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtNzAsNiArNzAsNyBAQCBzdHJ1Y3Qg
U291cmNlQnVmZmVyOjpUcmFja0J1ZmZlciB7CiAgICAgTWVkaWFUaW1lIGxhc3RGcmFtZUR1cmF0
aW9uOwogICAgIE1lZGlhVGltZSBoaWdoZXN0UHJlc2VudGF0aW9uVGltZXN0YW1wOwogICAgIE1l
ZGlhVGltZSBsYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lOworICAgIE1lZGlhVGltZSBtaW5p
bXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lOwogICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpL
ZXlUeXBlIGxhc3RFbnF1ZXVlZERlY29kZUtleTsKICAgICBNZWRpYVRpbWUgbGFzdEVucXVldWVk
RGVjb2RlRHVyYXRpb247CiAgICAgTWVkaWFUaW1lIHJvdW5kZWRUaW1lc3RhbXBPZmZzZXQ7CkBA
IC03Nyw2ICs3OCw3IEBAIHN0cnVjdCBTb3VyY2VCdWZmZXI6OlRyYWNrQnVmZmVyIHsKICAgICBi
b29sIG5lZWRSYW5kb21BY2Nlc3NGbGFnIHsgdHJ1ZSB9OwogICAgIGJvb2wgZW5hYmxlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBuZWVkc1JlZW5xdWV1ZWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBu
ZWVkc01pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVVcGRhdGluZyB7IGZhbHNlIH07CiAg
ICAgU2FtcGxlTWFwIHNhbXBsZXM7CiAgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGUg
ZGVjb2RlUXVldWU7CiAgICAgUmVmUHRyPE1lZGlhRGVzY3JpcHRpb24+IGRlc2NyaXB0aW9uOwpA
QCAtMTc4OCw2ICsxNzkwLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgICAgIERlY29kZU9y
ZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtleShzYW1wbGUuZGVjb2RlVGltZSgpLCBzYW1w
bGUucHJlc2VudGF0aW9uVGltZSgpKTsKICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLmxhc3RFbnF1
ZXVlZERlY29kZUtleS5maXJzdC5pc0ludmFsaWQoKSB8fCBkZWNvZGVLZXkgPiB0cmFja0J1ZmZl
ci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkpIHsKICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29k
ZVF1ZXVlLmluc2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZShk
ZWNvZGVLZXksICZzYW1wbGUpKTsKKworICAgICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLm1pbmlt
dW1FbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUuaXNWYWxpZCgpICYmIHNhbXBsZS5wcmVzZW50YXRp
b25UaW1lKCkgPCB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKQor
ICAgICAgICAgICAgICAgIHRyYWNrQnVmZmVyLm5lZWRzTWluaW11bVVwY29taW5nUHJlc2VudGF0
aW9uVGltZVVwZGF0aW5nID0gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE5PVEU6IHRo
ZSBzcGVjIGNvbnNpZGVycyAiQ29kZWQgRnJhbWUgRHVyYXRpb24iIHRvIGJlIHRoZSBwcmVzZW50
YXRpb24gZHVyYXRpb24sIGJ1dCB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSBlcXVhbApAQCAtMjAy
MSw2ICsyMDI2LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tC
dWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJgogICAgIHVuc2lnbmVkIGVucXVl
dWVkU2FtcGxlcyA9IDA7CiAjZW5kaWYKIAorICAgIGlmICh0cmFja0J1ZmZlci5uZWVkc01pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVVcGRhdGluZykKKyAgICAgICAgcmVzZXRNaW5pbXVt
VXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNrQnVmZmVyLCB0cmFja0lEKTsKKwogICAgIHdo
aWxlICghdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuZW1wdHkoKSkgewogICAgICAgICBpZiAoIW1f
cHJpdmF0ZS0+aXNSZWFkeUZvck1vcmVTYW1wbGVzKHRyYWNrSUQpKSB7CiAgICAgICAgICAgICBE
RUJVR19MT0coTE9HSURFTlRJRklFUiwgImJhaWxpbmcgZWFybHksIHRyYWNrIGlkICIsIHRyYWNr
SUQsICIgaXMgbm90IHJlYWR5IGZvciBtb3JlIGRhdGEiKTsKQEAgLTIwNjEsNiArMjA2OSw4IEBA
IHZvaWQgU291cmNlQnVmZmVyOjpwcm92aWRlTWVkaWFEYXRhKFRyYWNrQnVmZmVyJiB0cmFja0J1
ZmZlciwgY29uc3QgQXRvbVN0cmluZyYKICNlbmRpZgogICAgIH0KIAorICAgIHVwZGF0ZU1pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tCdWZmZXIsIHRyYWNrSUQpOworCiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJlbnF1
ZXVlZCAiLCBlbnF1ZXVlZFNhbXBsZXMsICIgc2FtcGxlcywgIiwgc3RhdGljX2Nhc3Q8c2l6ZV90
Pih0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5zaXplKCkpLCAiIHJlbWFpbmluZyIpOwogI2VuZGlm
CkBAIC0yMDY4LDYgKzIwNzgsNDEgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURh
dGEoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJgogICAgIHRyeVNp
Z25hbEFsbFNhbXBsZXNJblRyYWNrRW5xdWV1ZWQodHJhY2tJRCk7CiB9CiAKK3ZvaWQgU291cmNl
QnVmZmVyOjp1cGRhdGVNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKFRyYWNrQnVmZmVy
JiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCkKK3sKKyAgICBpZiAoIW1f
cHJpdmF0ZS0+Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0cmFja0lEKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmVtcHR5
KCkpIHsKKyAgICAgICAgdHJhY2tCdWZmZXIubWluaW11bUVucXVldWVkUHJlc2VudGF0aW9uVGlt
ZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICAgICAgbV9wcml2YXRlLT5jbGVhck1p
bmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIG1pblB0cyA9IHN0ZDo6bWluX2VsZW1lbnQodHJhY2tCdWZmZXIu
ZGVjb2RlUXVldWUuYmVnaW4oKSwgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuZW5kKCksIFtdKGF1
dG8mIGxlZnQsIGF1dG8mIHJpZ2h0KSAtPiBib29sIHsKKyAgICAgICAgcmV0dXJuIGxlZnQuc2Vj
b25kLT5vdXRwdXRQcmVzZW50YXRpb25UaW1lKCkgPCByaWdodC5zZWNvbmQtPm91dHB1dFByZXNl
bnRhdGlvblRpbWUoKTsKKyAgICB9KTsKKworICAgIGlmIChtaW5QdHMgPT0gdHJhY2tCdWZmZXIu
ZGVjb2RlUXVldWUuZW5kKCkpIHsKKyAgICAgICAgdHJhY2tCdWZmZXIubWluaW11bUVucXVldWVk
UHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKKyAgICAgICAgbV9w
cml2YXRlLT5jbGVhck1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0cmFja0J1ZmZlci5taW5pbXVtRW5xdWV1ZWRQ
cmVzZW50YXRpb25UaW1lID0gbWluUHRzLT5zZWNvbmQtPm91dHB1dFByZXNlbnRhdGlvblRpbWUo
KTsKKyAgICBtX3ByaXZhdGUtPnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJh
Y2tJRCwgdHJhY2tCdWZmZXIubWluaW11bUVucXVldWVkUHJlc2VudGF0aW9uVGltZSk7Cit9CisK
Kwordm9pZCBTb3VyY2VCdWZmZXI6OnJlc2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQpCit7
CisgICAgaWYgKCFtX3ByaXZhdGUtPmNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRp
bWUodHJhY2tJRCkpCisgICAgICAgIHJldHVybjsKKworICAgIHRyYWNrQnVmZmVyLm1pbmltdW1F
bnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CisgICAg
bV9wcml2YXRlLT5jbGVhck1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUodHJhY2tJRCk7
Cit9CisKIHZvaWQgU291cmNlQnVmZmVyOjp0cnlTaWduYWxBbGxTYW1wbGVzSW5UcmFja0VucXVl
dWVkKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQpCiB7CiAgICAgaWYgKG1fc291cmNlLT5pc0Vu
ZGVkKCkgJiYgbV90cmFja0J1ZmZlck1hcC5nZXQodHJhY2tJRCkuZGVjb2RlUXVldWUuZW1wdHko
KSkgewpAQCAtMjI3MSw2ICsyMzE2LDE2IEBAIFZlY3RvcjxTdHJpbmc+IFNvdXJjZUJ1ZmZlcjo6
ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lECiAgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+ZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRCh0cmFja0lEKTsKIH0K
IAorTWVkaWFUaW1lIFNvdXJjZUJ1ZmZlcjo6bWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZUZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCkKK3sKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5taW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRCh0cmFja0lE
KTsKK30KKwordm9pZCBTb3VyY2VCdWZmZXI6OnNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJ
RChjb25zdCBBdG9tU3RyaW5nJiB0cmFja0lELCBzaXplX3QgbWF4UXVldWVEZXB0aCkKK3sKKyAg
ICBtX3ByaXZhdGUtPnNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRCh0cmFja0lELCBtYXhR
dWV1ZURlcHRoKTsKK30KKwogRG9jdW1lbnQmIFNvdXJjZUJ1ZmZlcjo6ZG9jdW1lbnQoKSBjb25z
dAogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKaW5kZXggMzEzZDA3
Y2NmOTI1NWQ5YTc2MWUzMmVhNGE2MzgwYjYwYTM5M2VlZC4uYTQ1MDJiNWI2NzVjNmYwMDcyNGY4
YTY5MDc2OWQ2OTYwNmU0Y2YzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC0xOTgsNiArMTk4LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5QWxsb2NhdGVkKCk7CiAKICAgICB2b2lkIHVwZGF0ZUJ1
ZmZlcmVkRnJvbVRyYWNrQnVmZmVycygpOworICAgIHZvaWQgdXBkYXRlTWluaW11bVVwY29taW5n
UHJlc2VudGF0aW9uVGltZShUcmFja0J1ZmZlciYsIGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQp
OworICAgIHZvaWQgcmVzZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKFRyYWNrQnVm
ZmVyJiwgY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRCk7CiAKICAgICB2b2lkIGFwcGVuZEVycm9y
KGJvb2wpOwogCkBAIC0yMTAsNiArMjEyLDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
SW50ZXJuYWxzOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGJ1ZmZlcmVkU2Ft
cGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZl
Y3RvcjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYp
OworICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhVGltZSBtaW5pbXVtVXBjb21pbmdQcmVzZW50YXRp
b25UaW1lRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRNYXhpbXVtUXVldWVEZXB0aEZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYsIHNp
emVfdCk7CiAKICAgICBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZT4gbV9wcml2YXRlOwogICAgIE1l
ZGlhU291cmNlKiBtX3NvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1NvdXJjZUJ1ZmZlclByaXZhdGUuaAppbmRleCA0NmUzMDJkMzE4ZTZiNWFkNjc3
OTM5N2EyZThmZjE1ODNhMGQxMzFjLi4yN2UyMTE5YzY1NTllYTc3ZjBhM2JkZGY4N2NiZjU2MTBl
ODFkNjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U291cmNlQnVmZmVyUHJpdmF0ZS5oCkBAIC02MiwxMCArNjIsMTYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNs
aWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TdHJpbmcmKSB7IH0KIAotICAg
IHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChjb25zdCBB
dG9tU3RyaW5nJikgeyByZXR1cm4geyB9OyB9Ci0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0TWlu
aW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bVVwY29taW5nUHJlc2Vu
dGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgTWVkaWFUaW1lJikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGNsZWFyTWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBB
dG9tU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCBib29sIGNhblN3aXRjaFRvVHlwZShjb25zdCBD
b250ZW50VHlwZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICAvLyBJbnRlcm5hbHMgVXRpbGl0
eSBtZXRob2RzOgorICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5xdWV1ZWRTYW1wbGVzRm9y
VHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJikgeyByZXR1cm4geyB9OyB9CisgICAgdmlydHVhbCBN
ZWRpYVRpbWUgbWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZUZvclRyYWNrSUQoY29uc3Qg
QXRvbVN0cmluZyYpIHsgcmV0dXJuIE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRNYXhpbXVtUXVldWVEZXB0aEZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmlu
ZyYsIHNpemVfdCkgeyB9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB2aXJ0dWFs
IGNvbnN0IExvZ2dlciYgc291cmNlQnVmZmVyTG9nZ2VyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgY29uc3Qgdm9pZCogc291cmNlQnVmZmVyTG9nSWRlbnRpZmllcigpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCmluZGV4
IDdmNzVhZjk1NmI2NzI0N2VjMTFkMjViZTgwMTdjZmIxMzQwY2ZhY2IuLmRmYTEzNGI0ZDY4ZmRi
NzQ3MzQzNzhkOWY5ZGQzYmQ4NDFmMzNkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaApAQCAtMTYzLDYgKzE2Myw5IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVN0cmluZyYg
dHJhY2tJRCkgZmluYWw7CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCkgZmluYWw7CiAgICAgdm9p
ZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhjb25zdCBBdG9tU3RyaW5nJiB0
cmFja0lEKSBmaW5hbDsKKyAgICBib29sIGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlv
blRpbWUoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TWlu
aW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgTWVk
aWFUaW1lJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhck1pbmltdW1VcGNvbWluZ1ByZXNlbnRh
dGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwogICAgIGJvb2wgY2FuU3dpdGNo
VG9UeXBlKGNvbnN0IENvbnRlbnRUeXBlJikgZmluYWw7CiAKICAgICB2b2lkIGRpZEJlY29tZVJl
YWR5Rm9yTW9yZVNhbXBsZXMoaW50IHRyYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCAzMjQyNzYzNzgxN2Qx
ZjNjNjc0YjkwZTc3MzJiNWEwMjg3NjJlOTQ4Li44ZWM5OGUxOTBiYmE0NmJkOTc4ZjU3ODExNTAw
Njc1YTE3NTA5NWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNjksNiArNjksOCBAQAogCiBAaW50ZXJmYWNlIEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIChXZWJDb3JlQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJRdWV1ZU1hbmFnZW1lbnRQcml2YXRlKQogLSAodm9pZClwcmVyb2xsRGVjb2RlV2l0aENvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHN1Y2Nlc3MpKWJsb2NrOworLSAodm9pZClleHBl
Y3RNaW5pbXVtVXBjb21pbmdTYW1wbGVCdWZmZXJQcmVzZW50YXRpb25UaW1lOiAoQ01UaW1lKW1p
bmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWU7CistICh2b2lkKXJlc2V0VXBjb21pbmdTYW1w
bGVCdWZmZXJQcmVzZW50YXRpb25UaW1lRXhwZWN0YXRpb25zOwogQGVuZAogCiAjcHJhZ21hIG1h
cmsgLQpAQCAtMTI1OCw2ICsxMjYwLDI4IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6Om5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKGNvbnN0IEF0b21TCiAgICAg
fQogfQogCitib29sIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5TZXRNaW5pbXVtVXBj
b21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSURTdHJpbmcpIGNv
bnN0Cit7CisgICAgaW50IHRyYWNrSUQgPSB0cmFja0lEU3RyaW5nLnRvSW50KCk7CisgICAgaWYg
KHRyYWNrSUQgPT0gbV9lbmFibGVkVmlkZW9UcmFja0lEKQorICAgICAgICByZXR1cm4gW2dldEFW
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyQ2xhc3MoKSBpbnN0YW5jZXNSZXNwb25kVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoZXhwZWN0TWluaW11bVVwY29taW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9u
VGltZTopXTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OnNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0
cmluZyYgdHJhY2tJRFN0cmluZywgY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25UaW1lKQor
eworICAgIEFTU0VSVChjYW5TZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKHRyYWNr
SURTdHJpbmcpKTsKKyAgICBpZiAoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGlt
ZSh0cmFja0lEU3RyaW5nKSkKKyAgICAgICAgW21fZGlzcGxheUxheWVyIGV4cGVjdE1pbmltdW1V
cGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6dG9DTVRpbWUocHJlc2VudGF0aW9u
VGltZSldOworfQorCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjbGVhck1pbmlt
dW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJRFN0cmlu
ZykKK3sKKyAgICBBU1NFUlQoY2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSh0
cmFja0lEU3RyaW5nKSk7CisgICAgaWYgKGNhblNldE1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlv
blRpbWUodHJhY2tJRFN0cmluZykpCisgICAgICAgIFttX2Rpc3BsYXlMYXllciByZXNldFVwY29t
aW5nU2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZUV4cGVjdGF0aW9uc107Cit9CisKIGJvb2wg
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhblN3aXRjaFRvVHlwZShjb25zdCBDb250ZW50
VHlwZSYgY29udGVudFR5cGUpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBjb250
ZW50VHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCmluZGV4IGI0
MmYwNGJlZGYwMWVkMDdhYmUwOWM1M2Y5Yjg5ZjYxMGRiZmFmZWEuLjZiMTM3M2U0NDczYjkzNzg1
MjY3MDVlYzBmYmEwYTQwMWIwMDg1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclBy
aXZhdGUuY3BwCkBAIC0yNDAsNiArMjQwLDMxIEBAIFZlY3RvcjxTdHJpbmc+IE1vY2tTb3VyY2VC
dWZmZXJQcml2YXRlOjplbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKGNvbnN0IEF0b21TdHJpCiAg
ICAgcmV0dXJuIG1fZW5xdWV1ZWRTYW1wbGVzOwogfQogCitNZWRpYVRpbWUgTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGU6Om1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKGNv
bnN0IEF0b21TdHJpbmcmKQoreworICAgIHJldHVybiBtX21pbmltdW1VcGNvbWluZ1ByZXNlbnRh
dGlvblRpbWU7Cit9CisKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OnNldE1heGltdW1R
dWV1ZURlcHRoRm9yVHJhY2tJRChjb25zdCBBdG9tU3RyaW5nJiwgc2l6ZV90IG1heFF1ZXVlRGVw
dGgpCit7CisgICAgbV9tYXhRdWV1ZURlcHRoID0gbWF4UXVldWVEZXB0aDsKK30KKworYm9vbCBN
b2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6Y2FuU2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0aW9u
VGltZShjb25zdCBBdG9tU3RyaW5nJikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBNb2NrU291cmNlQnVmZmVyUHJpdmF0ZTo6c2V0TWluaW11bVVwY29taW5nUHJlc2VudGF0
aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJiwgY29uc3QgTWVkaWFUaW1lJiBwcmVzZW50YXRpb25U
aW1lKQoreworICAgIG1fbWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZSA9IHByZXNlbnRh
dGlvblRpbWU7Cit9CisKK3ZvaWQgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmNsZWFyTWluaW11
bVVwY29taW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJikKK3sKKyAgICBtX21p
bmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7
Cit9CisKIGJvb2wgTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGU6OmNhblN3aXRjaFRvVHlwZShjb25z
dCBDb250ZW50VHlwZSYgY29udGVudFR5cGUpCiB7CiAgICAgTWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyBwYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCmlu
ZGV4IGU0Yjk1OTlkZTlhOTZkNzkwOTFmYTJjODY1MGM1ZWZiYmZiZTMxNmQuLmNiYjM1MGQzYTI3
Y2JhNDQ3MmE3MWU1NmNlNGEyNmJmNjUwMjZiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZm
ZXJQcml2YXRlLmgKQEAgLTYyLDE0ICs2MiwxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3Zl
ZEZyb21NZWRpYVNvdXJjZSgpIGZpbmFsOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUpIGZpbmFsOworICAgIGJvb2wgY2FuU2V0TWluaW11bVVwY29taW5nUHJl
c2VudGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBz
ZXRNaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IEF0b21TdHJpbmcmLCBjb25z
dCBNZWRpYVRpbWUmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyTWluaW11bVVwY29taW5nUHJlc2Vu
dGF0aW9uVGltZShjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBjYW5Td2l0Y2hU
b1R5cGUoY29uc3QgQ29udGVudFR5cGUmKSBmaW5hbDsKIAotICAgIHZvaWQgZmx1c2goY29uc3Qg
QXRvbVN0cmluZyYpIGZpbmFsIHsgbV9lbnF1ZXVlZFNhbXBsZXMuY2xlYXIoKTsgfQorICAgIHZv
aWQgZmx1c2goY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsIHsgbV9lbnF1ZXVlZFNhbXBsZXMuY2xl
YXIoKTsgbV9taW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lID0gTWVkaWFUaW1lOjppbnZh
bGlkVGltZSgpOyB9CiAgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVz
KGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBpc1Jl
YWR5Rm9yTW9yZVNhbXBsZXMoY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsIHsgcmV0dXJuICFtX21h
eFF1ZXVlRGVwdGggfHwgbV9lbnF1ZXVlZFNhbXBsZXMuc2l6ZSgpIDwgbV9tYXhRdWV1ZURlcHRo
LnZhbHVlKCk7IH0KICAgICB2b2lkIHNldEFjdGl2ZShib29sKSBmaW5hbDsKIAogICAgIFZlY3Rv
cjxTdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIE1lZGlhVGltZSBtaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJh
Y2tJRChjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBzZXRNYXhpbXVtUXVldWVE
ZXB0aEZvclRyYWNrSUQoY29uc3QgQXRvbVN0cmluZyYsIHNpemVfdCkgZmluYWw7CiAKICAgICB2
b2lkIGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpemF0
aW9uQm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1wbGVCb3gm
KTsKQEAgLTgxLDggKzg2LDkgQEAgcHJpdmF0ZToKIAogICAgIE1vY2tNZWRpYVNvdXJjZVByaXZh
dGUqIG1fbWVkaWFTb3VyY2U7CiAgICAgU291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudCogbV9jbGll
bnQ7CisgICAgTWVkaWFUaW1lIG1fbWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZTsKICAg
ICBWZWN0b3I8U3RyaW5nPiBtX2VucXVldWVkU2FtcGxlczsKLQorICAgIE9wdGlvbmFsPHNpemVf
dD4gbV9tYXhRdWV1ZURlcHRoOwogICAgIFZlY3RvcjxjaGFyPiBtX2lucHV0QnVmZmVyOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNkZjE2OTRlZTZiNGRmYzgy
MTk0YjExNmJmM2EyNDEzMGFjMzE3MTYuLjg0YWI5OGMyODkxODczYTkxY2JmY2I2N2ViZDc3N2Ey
OWNmZTJjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM3NTAsMTEg
KzM3NTAsMjEgQEAgVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjplbnF1ZXVlZFNhbXBsZXNGb3JU
cmFja0lEKFNvdXJjZUJ1ZmZlciYgYnVmZmVyLCBjb25zdAogICAgIHJldHVybiBidWZmZXIuZW5x
dWV1ZWRTYW1wbGVzRm9yVHJhY2tJRCh0cmFja0lEKTsKIH0KIAorZG91YmxlIEludGVybmFsczo6
bWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZUZvclRyYWNrSUQoU291cmNlQnVmZmVyJiBi
dWZmZXIsIGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSUQpCit7CisgICAgcmV0dXJuIGJ1ZmZlci5t
aW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRCh0cmFja0lEKS50b0RvdWJs
ZSgpOworfQorCiB2b2lkIEludGVybmFsczo6c2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKFNv
dXJjZUJ1ZmZlciYgYnVmZmVyLCBib29sIGZsYWcpCiB7CiAgICAgYnVmZmVyLnNldFNob3VsZEdl
bmVyYXRlVGltZXN0YW1wcyhmbGFnKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldE1heGltdW1R
dWV1ZURlcHRoRm9yVHJhY2tJRChTb3VyY2VCdWZmZXImIGJ1ZmZlciwgY29uc3QgQXRvbVN0cmlu
ZyYgdHJhY2tJRCwgc2l6ZV90IG1heFF1ZXVlRGVwdGgpCit7CisgICAgYnVmZmVyLnNldE1heGlt
dW1RdWV1ZURlcHRoRm9yVHJhY2tJRCh0cmFja0lELCBtYXhRdWV1ZURlcHRoKTsKK30KKwogI2Vu
ZGlmCiAKIHZvaWQgSW50ZXJuYWxzOjplbmFibGVNb2NrTWVkaWFDYXBhYmlsaXRpZXMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYTVjYjIxY2ExOGRhYjk4YTgyYTY0ODM3MTNl
YThiNTQyMWVhNmM3Ni4uYTlhZjMxOTllYWI4ZTAwM2YzM2U1NjNlZDM5MTM3ODBkNThhOTNiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC01ODMsNyArNTgzLDkgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHZvaWQgaW5pdGlhbGl6ZU1vY2tNZWRp
YVNvdXJjZSgpOwogICAgIFZlY3RvcjxTdHJpbmc+IGJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSUQo
U291cmNlQnVmZmVyJiwgY29uc3QgQXRvbVN0cmluZyYpOwogICAgIFZlY3RvcjxTdHJpbmc+IGVu
cXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoU291cmNlQnVmZmVyJiwgY29uc3QgQXRvbVN0cmluZyYp
OworICAgIGRvdWJsZSBtaW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9yVHJhY2tJRChT
b3VyY2VCdWZmZXImLCBjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgdm9pZCBzZXRTaG91bGRHZW5l
cmF0ZVRpbWVzdGFtcHMoU291cmNlQnVmZmVyJiwgYm9vbCk7CisgICAgdm9pZCBzZXRNYXhpbXVt
UXVldWVEZXB0aEZvclRyYWNrSUQoU291cmNlQnVmZmVyJiwgY29uc3QgQXRvbVN0cmluZyYsIHNp
emVfdCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAppbmRleCAyZTI4ZDQ2MWFhN2JiOTRlMmFmOGUzYmQ2N2UwY2VhNDY5YTdhYWE5
Li43YmM4NjA0ZDQ5M2U5MTMzMjQzMTlmYTZhMjYxNGRiNmMwZWI2ZmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01ODUsNiArNTg1LDggQEAgZW51bSBDb21wb3NpdGlu
Z1BvbGljeSB7CiAgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NPVVJDRV0gc2VxdWVuY2U8RE9NU3Ry
aW5nPiBidWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKFNvdXJjZUJ1ZmZlciBidWZmZXIsIERPTVN0
cmluZyB0cmFja0lEKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFXSBzZXF1ZW5jZTxE
T01TdHJpbmc+IGVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoU291cmNlQnVmZmVyIGJ1ZmZlciwg
RE9NU3RyaW5nIHRyYWNrSUQpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TT1VSQ0VdIHZvaWQg
c2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKFNvdXJjZUJ1ZmZlciBidWZmZXIsIGJvb2xlYW4g
ZmxhZyk7CisgICAgW0NvbmRpdGlvbmFsPU1FRElBX1NPVVJDRV0gZG91YmxlIG1pbmltdW1VcGNv
bWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFja0lEKFNvdXJjZUJ1ZmZlciBidWZmZXIsIERPTVN0
cmluZyB0cmFja0lEKTsKKyAgICBbQ29uZGl0aW9uYWw9TUVESUFfU09VUkNFXSB2b2lkIHNldE1h
eGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRChTb3VyY2VCdWZmZXIgYnVmZmVyLCBET01TdHJpbmcg
dHJhY2tJRCwgdW5zaWduZWQgbG9uZyBtYXhRdWV1ZURlcHRoKTsKIAogICAgIFtDb25kaXRpb25h
bD1WSURFTywgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgYmVnaW5NZWRpYVNlc3Npb25JbnRlcnJ1
cHRpb24oRE9NU3RyaW5nIGludGVycnVwdGlvblR5cGUpOwogICAgIFtDb25kaXRpb25hbD1WSURF
T10gdm9pZCBlbmRNZWRpYVNlc3Npb25JbnRlcnJ1cHRpb24oRE9NU3RyaW5nIGZsYWdzKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAwNzIwODcxYTIwNmU0YzMwMzJjMDI5OGZmMWZlNTY5MzhhNjNkOGRjLi4xOGUyYWRhYjBh
ZmU0NTRlNTY5ZmFlMDljOWY4ZmE3MGY1NWRjMTY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTktMDgtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgLWV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNlbnRhdGlvblRpbWU6Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA0NTcKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzOTYxMTMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
bWluaW11bXVwY29taW5ncHJlc2VudGF0aW9udGltZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtbWluaW11bXVwY29taW5ncHJl
c2VudGF0aW9udGltZS5odG1sOiBBZGRlZC4KKwogMjAxOS0wOC0wMSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkgc2hvdWxkIG5vdCB1c2UgYXVkaW8rdmlkZW8gZGVuaWVkIHJlcXVlc3RzIHRv
IGRlbnkgYXVkaW8tb25seSBvciB2aWRlby1vbmx5IHJlcXVlc3RzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLW1pbmltdW11cGNvbWluZ3By
ZXNlbnRhdGlvbnRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1taW5pbXVtdXBjb21pbmdwcmVzZW50YXRpb250aW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MjdkOTc0YmM0ZGNiMWQwNmIzMzQwMWJmMWRjYTRkMTE0MjMwNWJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1taW5pbXVtdXBjb21pbmdwcmVzZW50YXRpb250aW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE4IEBACisKK1JVTih2aWRlby5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJj
ZSkpCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3Vy
Y2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIikpCitSVU4oc291cmNlQnVmZmVyLmFw
cGVuZEJ1ZmZlcihpbml0U2VnbWVudCkpCitFVkVOVCh1cGRhdGVlbmQpCitSVU4oaW50ZXJuYWxz
LnNldE1heGltdW1RdWV1ZURlcHRoRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEsIDMpKQorUlVO
KHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoc2FtcGxlcykpCitFVkVOVCh1cGRhdGVlbmQpCitF
WFBFQ1RFRCAoaW50ZXJuYWxzLm1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVGb3JUcmFj
a0lEKHNvdXJjZUJ1ZmZlciwgMSkgPT0gJzEnKSBPSworUlVOKHZpZGVvLmN1cnJlbnRUaW1lID0g
NCkKK0VWRU5UKHNlZWtlZCkKK0VYUEVDVEVEIChpbnRlcm5hbHMubWluaW11bVVwY29taW5nUHJl
c2VudGF0aW9uVGltZUZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKSA9PSAnOCcpIE9LCitSVU4o
c291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihzYW1wbGVzKSkKK0VWRU5UKHVwZGF0ZWVuZCkKK0VY
UEVDVEVEIChpbnRlcm5hbHMubWluaW11bVVwY29taW5nUHJlc2VudGF0aW9uVGltZUZvclRyYWNr
SUQoc291cmNlQnVmZmVyLCAxKSA9PSAnNycpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLW1pbmltdW11cGNv
bWluZ3ByZXNlbnRhdGlvbnRpbWUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtbWluaW11bXVwY29taW5ncHJlc2VudGF0aW9udGltZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZkMzI2NGUxMzRlZjk4YjEzZWEyOTcyN2EyNjg4YWI2MjBmMTk5MjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLW1p
bmltdW11cGNvbWluZ3ByZXNlbnRhdGlvbnRpbWUuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1vY2stbWVkaWEtc291cmNl
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0ibW9jay1tZWRpYS1zb3VyY2UuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgIHZhciBzb3VyY2U7CisgICAgdmFyIHNvdXJjZUJ1ZmZlcjsKKyAgICB2YXIgc2Ft
cGxlczsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuaW5p
dGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSgpOworCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKwor
ICAgICAgICBzb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgcnVuKCd2aWRlby5z
cmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZv
cihzb3VyY2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBz
b3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBjb2RlY3M9bW9jayIpJyk7CisgICAg
ICAgIGluaXRTZWdtZW50ID0gbWFrZUFJbml0KDgsIFttYWtlQVRyYWNrKDEsICdtb2NrJywgVFJB
Q0tfS0lORC5WSURFTyldKTsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KGluaXRTZWdtZW50KScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3Vw
ZGF0ZWVuZCcpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldE1heGltdW1RdWV1ZURlcHRo
Rm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEsIDMpJyk7CisKKyAgICAgICAgc2FtcGxlcyA9IGNv
bmNhdGVuYXRlU2FtcGxlcyhbCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgwLCAwLCAxLCAxLCAx
LCBTQU1QTEVfRkxBRy5TWU5DKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDIsIDEsIDEsIDEs
IDEsIFNBTVBMRV9GTEFHLk5PTkUpLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMywgMiwgMSwg
MSwgMSwgU0FNUExFX0ZMQUcuTk9ORSksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgxLCAzLCAx
LCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDQsIDQs
IDEsIDEsIDEsIFNBTVBMRV9GTEFHLlNZTkMpLAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoNSwg
NSwgMSwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSksCisgICAgICAgICAgICBtYWtlQVNhbXBsZSg2
LCA2LCAxLCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwKKyAgICAgICAgICAgIG1ha2VBU2FtcGxl
KDgsIDcsIDEsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLAorICAgICAgICBdKTsKKyAgICAgICAg
CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihzYW1wbGVzKScpOworICAg
ICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAg
IHRlc3RFeHBlY3RlZCgnaW50ZXJuYWxzLm1pbmltdW1VcGNvbWluZ1ByZXNlbnRhdGlvblRpbWVG
b3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSknLCAxKTsKKworICAgICAgICBydW4oJ3ZpZGVvLmN1
cnJlbnRUaW1lID0gNCcpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHZpZGVvLCAnc2Vla2VkJyk7
CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMubWluaW11bVVwY29taW5nUHJlc2Vu
dGF0aW9uVGltZUZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKScsIDgpOworCisgICAgICAgIHNh
bXBsZXMgPSBtYWtlQVNhbXBsZSg3LCA4LCAxLCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwKKwor
ICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoc2FtcGxlcyknKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5taW5pbXVtVXBjb21pbmdQcmVzZW50YXRpb25UaW1lRm9y
VHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpJywgNyk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAg
IH0pOworICAgIAorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvPjwv
dmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>