<?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>201323</bug_id>
          
          <creation_ts>2019-08-29 18:10:57 -0700</creation_ts>
          <short_desc>[MSE] Don&apos;t enqueue samples that start at a big discontinuity</short_desc>
          <delta_ts>2020-01-16 02:44:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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="Alicia Boya García">aboya</reporter>
          <assigned_to name="Alicia Boya García">aboya</assigned_to>
          <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1566504</commentid>
    <comment_count>0</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-08-29 18:10:57 -0700</bug_when>
    <thetext>With the old logic SourceBuffer was enqueueing the first frame to be
appended in any circumstances. This was a bug because the user could
append first [5, 10) and then [0, 5). With the old behavior [5, 10)
would be enqueued first despite being clearly ahead of the initial
playback time (zero). By the time [0, 5) is enqueued it can&apos;t be
enqueued anymore because the decodeQueue is already ahead.

This patch fixes that logic to work when the first segments are
appended unordered. The test media-source-first-append-not-starting-at-zero.html
validates it.

The test media-source-append-presentation-durations.html checks the
new logic does not break in presence of presentation duration !=
decode duration.

As part of the same logic block, the lastEnqueuedPresentationTime was
used to decide when it&apos;s necessary to perform reenqueue after an
.erase() (it is necessary if any enqueued frames are replaced). Using
lastEnqueuedPresentationTime was not entirely accurate in presence of
B-frames, as you could erase a frame that has a presentation time
higher than the last enqueued one. That logic is replaced with a
monotonicly increasing highestEnqueuedPresentationTime and is tested
by media-source-remove-b-frame.html.

Tests: media/media-source/media-source-append-presentation-durations.html
       media/media-source/media-source-first-append-not-starting-at-zero.html
       media/media-source/media-source-remove-b-frame.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566505</commentid>
    <comment_count>1</comment_count>
      <attachid>377665</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-08-29 18:12:24 -0700</bug_when>
    <thetext>Created attachment 377665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566532</commentid>
    <comment_count>2</comment_count>
      <attachid>377665</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-29 20:47:13 -0700</bug_when>
    <thetext>Comment on attachment 377665
Patch

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

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1803
&gt; +        if (trackBuffer.lastEnqueuedDecodeTime.isInvalid() || sample.decodeTime() &gt;= trackBuffer.lastEnqueuedDecodeTime) {

decodeTime is insufficient to enforce a strict ordering of samples. Two samples with the same decodeTime but different presentationTimes need to be ordered by both the DTS and PTS, which is why the original code uses the Decode maps KeyType.

I also don’t understand why this code is necessary. Why isn’t the decode queue flushed and re-enqueued when [0,5) samples are appended? Time can’t be moving on from 0 since there’s nothing to display yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566648</commentid>
    <comment_count>3</comment_count>
      <attachid>377665</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-08-30 07:40:14 -0700</bug_when>
    <thetext>Comment on attachment 377665
Patch

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

&gt;&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:1803
&gt;&gt; +        if (trackBuffer.lastEnqueuedDecodeTime.isInvalid() || sample.decodeTime() &gt;= trackBuffer.lastEnqueuedDecodeTime) {
&gt; 
&gt; decodeTime is insufficient to enforce a strict ordering of samples. Two samples with the same decodeTime but different presentationTimes need to be ordered by both the DTS and PTS, which is why the original code uses the Decode maps KeyType.
&gt; 
&gt; I also don’t understand why this code is necessary. Why isn’t the decode queue flushed and re-enqueued when [0,5) samples are appended? Time can’t be moving on from 0 since there’s nothing to display yet.

You have a point about the first paragraph, I will rework it to use DecodeKey instead of DecodeTime.

About why the if in the first place instead of just flushing... well, this function is called every time a frame is appended (therefore, in append-order), which does not need to coincide with decode order. In the [5, 10) [0, 5) case this may not seem like a big deal, but imagine [0, 10) [15, 20) [10, 15)... inserting frames blindly in the decode queue would require a flush while the player is potentially playing [0, 10), which would cause an unnecessary hiccup as the decoders would have to start from scratch when [10, 15) was inserted. Never enqueueing frames too far ahead in the future avoids that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566789</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-08-30 13:33:39 -0700</bug_when>
    <thetext>(In reply to Alicia Boya García from comment #3)
&gt; About why the if in the first place instead of just flushing... well, this
&gt; function is called every time a frame is appended

Is that true? provideMediaData() should only be called in sourceBufferPrivateAppendComplete(), removeCodedFrames(), and sourceBufferPrivateDidBecomeReadyForMoreSamples(). None of which are per-appended-frame.

&gt; (therefore, in
&gt; append-order), which does not need to coincide with decode order.  In the [5,
&gt; 10) [0, 5) case this may not seem like a big deal, but imagine [0, 10) [15,
&gt; 20) [10, 15)... inserting frames blindly in the decode queue would require a
&gt; flush while the player is potentially playing [0, 10), which would cause an
&gt; unnecessary hiccup as the decoders would have to start from scratch when
&gt; [10, 15) was inserted. Never enqueueing frames too far ahead in the future
&gt; avoids that.

That may be true, but I&apos;m trying to work out why the decode queue cares about presentation times.  There was already code to detect an unreasonably large gap between decode times.  Why is that insufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566904</commentid>
    <comment_count>5</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-08-30 17:37:14 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #4)
&gt; (In reply to Alicia Boya García from comment #3)
&gt; &gt; About why the if in the first place instead of just flushing... well, this
&gt; &gt; function is called every time a frame is appended
&gt; 
&gt; Is that true? provideMediaData() should only be called in
&gt; sourceBufferPrivateAppendComplete(), removeCodedFrames(), and
&gt; sourceBufferPrivateDidBecomeReadyForMoreSamples(). None of which are
&gt; per-appended-frame.

What is done per-frame is adding frames to the decodeQueue while an append is being parsed. provideMediaData(), is indeed called only once when that append has being finished parsing and tries to actually send the frames of the queue into the decoders.

The piece of code the comment was in was sourceBufferPrivateDidReceiveSample(), which is called per-frame, and it decides whether a frame can be added to the queue or if it&apos;s late (the decode queue is ahead of that frame in decode time).

&gt; 
&gt; &gt; (therefore, in
&gt; &gt; append-order), which does not need to coincide with decode order.  In the [5,
&gt; &gt; 10) [0, 5) case this may not seem like a big deal, but imagine [0, 10) [15,
&gt; &gt; 20) [10, 15)... inserting frames blindly in the decode queue would require a
&gt; &gt; flush while the player is potentially playing [0, 10), which would cause an
&gt; &gt; unnecessary hiccup as the decoders would have to start from scratch when
&gt; &gt; [10, 15) was inserted. Never enqueueing frames too far ahead in the future
&gt; &gt; avoids that.
&gt; 
&gt; That may be true, but I&apos;m trying to work out why the decode queue cares
&gt; about presentation times.  There was already code to detect an unreasonably
&gt; large gap between decode times.  Why is that insufficient?

All the numbers in the explanation above are decode time, not presentation time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566990</commentid>
    <comment_count>6</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-08-31 09:40:53 -0700</bug_when>
    <thetext>(In reply to Alicia Boya García from comment #5)
&gt; The piece of code the comment was in was
&gt; sourceBufferPrivateDidReceiveSample(), which is called per-frame, and it
&gt; decides whether a frame can be added to the queue or if it&apos;s late (the
&gt; decode queue is ahead of that frame in decode time).

Correction: if it&apos;s late (a frame with an earlier DTS has already been enqueued).

It&apos;s always confusing because enqueuing and adding to the decodeQueue mean different things. Enqueuing is the last part when SourceBuffer calls `enqueueSample()` on the SourceBufferPrivate to feed the frame to the decoder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567039</commentid>
    <comment_count>7</comment_count>
      <attachid>377820</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-09-01 05:21:56 -0700</bug_when>
    <thetext>Created attachment 377820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604626</commentid>
    <comment_count>8</comment_count>
      <attachid>387229</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-01-09 07:54:26 -0800</bug_when>
    <thetext>Created attachment 387229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604643</commentid>
    <comment_count>9</comment_count>
      <attachid>387229</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-01-09 08:38:58 -0800</bug_when>
    <thetext>Comment on attachment 387229
Patch

LGTM, though maybe we could give Eric/Jer some time to have a look as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606907</commentid>
    <comment_count>10</comment_count>
      <attachid>387788</attachid>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2020-01-15 06:40:11 -0800</bug_when>
    <thetext>Created attachment 387788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607389</commentid>
    <comment_count>11</comment_count>
      <attachid>387788</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 02:43:25 -0800</bug_when>
    <thetext>Comment on attachment 387788
Patch

Clearing flags on attachment: 387788

Committed r254670: &lt;https://trac.webkit.org/changeset/254670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607390</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-16 02:43:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607391</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-16 02:44:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/58638968&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377665</attachid>
            <date>2019-08-29 18:12:24 -0700</date>
            <delta_ts>2019-09-01 05:21:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201323-20190830031222.patch</filename>
            <type>text/plain</type>
            <size>28196</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU2YmMxNWU2YjY0Zjkw
NjJiODM3YWNmNmJjMmJiNDVmYjc0ODUxMS4uODY3MTdjY2I4MDFlOTFjMjJiNWQ1ZGU1M2RkY2Iz
M2FlYTlmYzEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA0LTA5ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXSBEb24n
dCBlbnF1ZXVlIHNhbXBsZXMgdGhhdCBzdGFydCBhdCBhIGJpZyBkaXNjb250aW51aXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzMjMKKworICAg
ICAgICBXaXRoIHRoZSBvbGQgbG9naWMgU291cmNlQnVmZmVyIHdhcyBlbnF1ZXVlaW5nIHRoZSBm
aXJzdCBmcmFtZSB0byBiZQorICAgICAgICBhcHBlbmRlZCBpbiBhbnkgY2lyY3Vtc3RhbmNlcy4g
VGhpcyB3YXMgYSBidWcgYmVjYXVzZSB0aGUgdXNlciBjb3VsZAorICAgICAgICBhcHBlbmQgZmly
c3QgWzUsIDEwKSBhbmQgdGhlbiBbMCwgNSkuIFdpdGggdGhlIG9sZCBiZWhhdmlvciBbNSwgMTAp
CisgICAgICAgIHdvdWxkIGJlIGVucXVldWVkIGZpcnN0IGRlc3BpdGUgYmVpbmcgY2xlYXJseSBh
aGVhZCBvZiB0aGUgaW5pdGlhbAorICAgICAgICBwbGF5YmFjayB0aW1lICh6ZXJvKS4gQnkgdGhl
IHRpbWUgWzAsIDUpIGlzIGVucXVldWVkIGl0IGNhbid0IGJlCisgICAgICAgIGVucXVldWVkIGFu
eW1vcmUgYmVjYXVzZSB0aGUgZGVjb2RlUXVldWUgaXMgYWxyZWFkeSBhaGVhZC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIHRoYXQgbG9naWMgdG8gd29yayB3aGVuIHRoZSBmaXJzdCBzZWdt
ZW50cyBhcmUKKyAgICAgICAgYXBwZW5kZWQgdW5vcmRlcmVkLiBUaGUgdGVzdCBtZWRpYS1zb3Vy
Y2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWwKKyAgICAgICAgdmFsaWRh
dGVzIGl0LgorCisgICAgICAgIFRoZSB0ZXN0IG1lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0
aW9uLWR1cmF0aW9ucy5odG1sIGNoZWNrcyB0aGUKKyAgICAgICAgbmV3IGxvZ2ljIGRvZXMgbm90
IGJyZWFrIGluIHByZXNlbmNlIG9mIHByZXNlbnRhdGlvbiBkdXJhdGlvbiAhPQorICAgICAgICBk
ZWNvZGUgZHVyYXRpb24uCisKKyAgICAgICAgQXMgcGFydCBvZiB0aGUgc2FtZSBsb2dpYyBibG9j
aywgdGhlIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgd2FzCisgICAgICAgIHVzZWQgdG8g
ZGVjaWRlIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gcGVyZm9ybSByZWVucXVldWUgYWZ0ZXIgYW4K
KyAgICAgICAgLmVyYXNlKCkgKGl0IGlzIG5lY2Vzc2FyeSBpZiBhbnkgZW5xdWV1ZWQgZnJhbWVz
IGFyZSByZXBsYWNlZCkuIFVzaW5nCisgICAgICAgIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRp
bWUgd2FzIG5vdCBlbnRpcmVseSBhY2N1cmF0ZSBpbiBwcmVzZW5jZSBvZgorICAgICAgICBCLWZy
YW1lcywgYXMgeW91IGNvdWxkIGVyYXNlIGEgZnJhbWUgdGhhdCBoYXMgYSBwcmVzZW50YXRpb24g
dGltZQorICAgICAgICBoaWdoZXIgdGhhbiB0aGUgbGFzdCBlbnF1ZXVlZCBvbmUuIFRoYXQgbG9n
aWMgaXMgcmVwbGFjZWQgd2l0aCBhCisgICAgICAgIG1vbm90b25pY2x5IGluY3JlYXNpbmcgaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSBhbmQgaXMgdGVzdGVkCisgICAgICAgIGJ5IG1l
ZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwKKyAgICAgICAgICAgICAg
IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGlu
Zy1hdC16ZXJvLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtcmVtb3ZlLWItZnJhbWUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpUcmFj
a0J1ZmZlcjo6VHJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpy
ZW1vdmVDb2RlZEZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OlRyYWNrQnVmZmVyOjpsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbik6IERlbGV0ZWQuCisK
IDIwMTktMDgtMjkgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gR3JhY2VmdWxseSBmYWlsIG9uIGludmFsaWQgbm9uLWZp
cnN0IGluaXRpYWxpemF0aW9uIHNlZ21lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA0MjA2ZGZiYzlkYmM3ZGFlOTIy
MmU2MzhjZGJlOWYxMzEzZTU5OWI1Li41N2Q1MTQzY2E3OGZjZGVkYmVjNzI5NmYxNzNiZjM1MDIz
ZGRjZWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCkBAIC02NCwxNSArNjQsMjQgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNvdXJjZUJ1ZmZlcik7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgRXhwb25lbnRpYWxN
b3ZpbmdBdmVyYWdlQ29lZmZpY2llbnQgPSAwLjE7CiAKKy8vIERvIG5vdCBlbnF1ZXVlIHNhbXBs
ZXMgc3Bhbm5pbmcgYSBzaWduaWZpY2FudCB1bmJ1ZmZlcmVkIGdhcC4KKy8vIE5PVEU6IG9uZSBz
ZWNvbmQgaXMgc29tZXdoYXQgYXJiaXRyYXJ5LiBNZWRpYVNvdXJjZTo6bW9uaXRvclNvdXJjZUJ1
ZmZlcnMoKSBpcyBydW4KKy8vIG9uIHRoZSBwbGF5YmFja1RpbWVyLCB3aGljaCBpcyBlZmZlY3Rp
dmVseSBldmVyeSAzNTBtcy4gQWxsb3dpbmcgPiAzNTBtcyBnYXAgYmV0d2VlbgorLy8gZW5xdWV1
ZWQgc2FtcGxlcyBhbGxvd3MgZm9yIHNpdHVhdGlvbnMgd2hlcmUgd2Ugb3ZlcnJ1biB0aGUgZW5k
IG9mIGEgYnVmZmVyZWQgcmFuZ2UKKy8vIGJ1dCBkb24ndCBub3RpY2UgZm9yIDM1MHMgb2YgcGxh
eWJhY2sgdGltZSwgYW5kIHRoZSBjbGllbnQgY2FuIGVucXVldWUgZGF0YSBmb3IgdGhlCisvLyBu
ZXcgY3VycmVudCB0aW1lIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGlzIGVhcmx5IHJldHVybi4KKy8v
IEZJWE1FKDEzNTg2Nyk6IE1ha2UgdGhpcyBnYXAgZGV0ZWN0aW9uIGxvZ2ljIGxlc3MgYXJiaXRy
YXJ5Lgorc3RhdGljIGNvbnN0IE1lZGlhVGltZSBkaXNjb250aW51aXR5VG9sZXJhbmNlID0gTWVk
aWFUaW1lKDEsIDEpOworCiBzdHJ1Y3QgU291cmNlQnVmZmVyOjpUcmFja0J1ZmZlciB7CiAgICAg
TWVkaWFUaW1lIGxhc3REZWNvZGVUaW1lc3RhbXA7CiAgICAgTWVkaWFUaW1lIGdyZWF0ZXN0RGVj
b2RlRHVyYXRpb247CiAgICAgTWVkaWFUaW1lIGxhc3RGcmFtZUR1cmF0aW9uOwogICAgIE1lZGlh
VGltZSBoaWdoZXN0UHJlc2VudGF0aW9uVGltZXN0YW1wOwotICAgIE1lZGlhVGltZSBsYXN0RW5x
dWV1ZWRQcmVzZW50YXRpb25UaW1lOworICAgIE1lZGlhVGltZSBoaWdoZXN0RW5xdWV1ZWRQcmVz
ZW50YXRpb25UaW1lOwogICAgIE1lZGlhVGltZSBtaW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25U
aW1lOwotICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGxhc3RFbnF1ZXVlZERlY29k
ZUtleTsKLSAgICBNZWRpYVRpbWUgbGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb247CisgICAgTWVk
aWFUaW1lIGxhc3RFbnF1ZXVlZERlY29kZVRpbWU7CisgICAgTWVkaWFUaW1lIGVucXVldWVEaXNj
b250aW51aXR5Qm91bmRhcnkgeyBNZWRpYVRpbWU6Onplcm9UaW1lKCkgfTsKICAgICBNZWRpYVRp
bWUgcm91bmRlZFRpbWVzdGFtcE9mZnNldDsKICAgICB1aW50MzJfdCBsYXN0RnJhbWVUaW1lc2Nh
bGUgeyAwIH07CiAgICAgYm9vbCBuZWVkUmFuZG9tQWNjZXNzRmxhZyB7IHRydWUgfTsKQEAgLTg5
LDkgKzk4LDkgQEAgc3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tCdWZmZXIgewogICAgICAgICAs
IGdyZWF0ZXN0RGVjb2RlRHVyYXRpb24oTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAgICAg
ICAsIGxhc3RGcmFtZUR1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAgICAg
LCBoaWdoZXN0UHJlc2VudGF0aW9uVGltZXN0YW1wKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkK
LSAgICAgICAgLCBsYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKSkKLSAgICAgICAgLCBsYXN0RW5xdWV1ZWREZWNvZGVLZXkoe01lZGlhVGltZTo6aW52
YWxpZFRpbWUoKSwgTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpfSkKLSAgICAgICAgLCBsYXN0RW5x
dWV1ZWREZWNvZGVEdXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCisgICAgICAgICwg
aGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZShNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkp
CisgICAgICAgICwgbGFzdEVucXVldWVkRGVjb2RlVGltZShNZWRpYVRpbWU6OmludmFsaWRUaW1l
KCkpCisgICAgICAgICwgZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFyeShkaXNjb250aW51aXR5
VG9sZXJhbmNlKQogICAgIHsKICAgICB9CiB9OwpAQCAtODg2LDggKzg5NSw4IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuCiAKICAgICAgICAgLy8gT25seSBmb3JjZSB0aGUgVHJhY2tCdWZmZXIg
dG8gcmUtZW5xdWV1ZSBpZiB0aGUgcmVtb3ZlZCByYW5nZXMgb3ZlcmxhcCB3aXRoIGVucXVldWVk
IGFuZCBwb3NzaWJseQogICAgICAgICAvLyBub3QgeWV0IGRpc3BsYXllZCBzYW1wbGVzLgotICAg
ICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlk
KCkgJiYgY3VycmVudE1lZGlhVGltZSA8IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRh
dGlvblRpbWUpIHsKLSAgICAgICAgICAgIFBsYXRmb3JtVGltZVJhbmdlcyBwb3NzaWJseUVucXVl
dWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNl
bnRhdGlvblRpbWUpOworICAgICAgICBpZiAodHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJl
c2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSA8IHRyYWNrQnVmZmVy
LmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsKKyAgICAgICAgICAgIFBsYXRmb3Jt
VGltZVJhbmdlcyBwb3NzaWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNr
QnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAgcG9z
c2libHlFbnF1ZXVlZFJhbmdlcy5pbnRlcnNlY3RXaXRoKGVyYXNlZFJhbmdlcyk7CiAgICAgICAg
ICAgICBpZiAocG9zc2libHlFbnF1ZXVlZFJhbmdlcy5sZW5ndGgoKSkgewogICAgICAgICAgICAg
ICAgIHRyYWNrQnVmZmVyLm5lZWRzUmVlbnF1ZXVlaW5nID0gdHJ1ZTsKQEAgLTE3NTksOCArMTc2
OCw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNh
bXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAgICAgLy8gT25seSBmb3JjZSB0aGUg
VHJhY2tCdWZmZXIgdG8gcmUtZW5xdWV1ZSBpZiB0aGUgcmVtb3ZlZCByYW5nZXMgb3ZlcmxhcCB3
aXRoIGVucXVldWVkIGFuZCBwb3NzaWJseQogICAgICAgICAgICAgLy8gbm90IHlldCBkaXNwbGF5
ZWQgc2FtcGxlcy4KICAgICAgICAgICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lID0gbV9z
b3VyY2UtPmN1cnJlbnRUaW1lKCk7Ci0gICAgICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVu
cXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSA8IHRy
YWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsKLSAgICAgICAgICAgICAg
ICBQbGF0Zm9ybVRpbWVSYW5nZXMgcG9zc2libHlFbnF1ZXVlZFJhbmdlcyhjdXJyZW50TWVkaWFU
aW1lLCB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKTsKKyAgICAgICAg
ICAgIGlmICh0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlzVmFs
aWQoKSAmJiBjdXJyZW50TWVkaWFUaW1lIDwgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJl
c2VudGF0aW9uVGltZSkgeworICAgICAgICAgICAgICAgIFBsYXRmb3JtVGltZVJhbmdlcyBwb3Nz
aWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmhpZ2hlc3RF
bnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAgICAgIHBvc3NpYmx5RW5xdWV1
ZWRSYW5nZXMuaW50ZXJzZWN0V2l0aChlcmFzZWRSYW5nZXMpOwogICAgICAgICAgICAgICAgIGlm
IChwb3NzaWJseUVucXVldWVkUmFuZ2VzLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgICAgICB0
cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyA9IHRydWU7CkBAIC0xNzgyLDEzICsxNzkxLDE3
IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBs
ZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICB0cmFja0J1ZmZlci5zYW1wbGVzLmFkZFNh
bXBsZShzYW1wbGUpOwogCiAgICAgICAgIC8vIE5vdGU6IFRoZSB0ZXJtaW5vbG9neSBoZXJlIGlz
IGNvbmZ1c2luZzogImVucXVldWluZyIgbWVhbnMgcHJvdmlkaW5nIGEgZnJhbWUgdG8gdGhlIGlu
bmVyIG1lZGlhIGZyYW1ld29yay4KLSAgICAgICAgLy8gRmlyc3QsIGZyYW1lcyBhcmUgaW5zZXJ0
ZWQgaW4gdGhlIGRlY29kZSBxdWV1ZTsgbGF0ZXIsIGF0IHRoZSBlbmQgb2YgdGhlIGFwcGVuZCBh
bGwgdGhlIGZyYW1lcyBpbiB0aGUgZGVjb2RlCi0gICAgICAgIC8vIHF1ZXVlIGFyZSAiZW5xdWV1
ZWQiIChzZW50IHRvIHRoZSBpbm5lciBtZWRpYSBmcmFtZXdvcmspIGluIGBwcm92aWRlTWVkaWFE
YXRhKClgLgorICAgICAgICAvLyBGaXJzdCwgZnJhbWVzIGFyZSBpbnNlcnRlZCBpbiB0aGUgZGVj
b2RlIHF1ZXVlOyBsYXRlciwgYXQgdGhlIGVuZCBvZiB0aGUgYXBwZW5kIHNvbWUgb2YgdGhlIGZy
YW1lcyBpbiB0aGUKKyAgICAgICAgLy8gZGVjb2RlIG1heSBiZSAiZW5xdWV1ZWQiIChzZW50IHRv
IHRoZSBpbm5lciBtZWRpYSBmcmFtZXdvcmspIGluIGBwcm92aWRlTWVkaWFEYXRhKClgLgorICAg
ICAgICAvLworICAgICAgICAvLyBJbiBvcmRlciB0byBjaGVjayB3aGV0aGVyIGEgZnJhbWUgc2hv
dWxkIGJlIGFkZGVkIHRvIHRoZSBkZWNvZGUgcXVldWUgd2UgY2hlY2sgdGhhdCBpdCBkb2VzIG5v
dCBwcmVjZWRlIGFueQorICAgICAgICAvLyBmcmFtZSBhbHJlYWR5IGVucXVldWVkLgogICAgICAg
ICAvLwotICAgICAgICAvLyBJbiBvcmRlciB0byBjaGVjayB3aGV0aGVyIGEgZnJhbWUgc2hvdWxk
IGJlIGFkZGVkIHRvIHRoZSBkZWNvZGUgcXVldWUgd2UgY2hlY2sgd2hldGhlciBpdCBzdGFydHMg
YWZ0ZXIgdGhlCi0gICAgICAgIC8vIGxhc3RFbnF1ZXVlZERlY29kZUtleS4KLSAgICAgICAgRGVj
b2RlT3JkZXJTYW1wbGVNYXA6OktleVR5cGUgZGVjb2RlS2V5KHNhbXBsZS5kZWNvZGVUaW1lKCks
IHNhbXBsZS5wcmVzZW50YXRpb25UaW1lKCkpOwotICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFz
dEVucXVldWVkRGVjb2RlS2V5LmZpcnN0LmlzSW52YWxpZCgpIHx8IGRlY29kZUtleSA+IHRyYWNr
QnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleSkgeworICAgICAgICAvLyBOb3RlIHRoYXQgYWRk
aW5nIGEgZnJhbWUgdG8gdGhlIGRlY29kZSBxdWV1ZSBpcyBubyBndWFyYW50ZWUgdGhhdCBpdCB3
aWxsIGJlIGFjdHVhbGx5IGVucXVldWVkIGF0IHRoYXQgcG9pbnQuCisgICAgICAgIC8vIElmIHRo
ZSBmcmFtZSBpcyBhZnRlciB0aGUgZGlzY29udGludWl0eSBib3VuZGFyeSwgdGhlIGVucXVldWVp
bmcgYWxnb3JpdGhtIHdpbGwgaG9sZCBpdCB0aGVyZSB1bnRpbCBzYW1wbGVzCisgICAgICAgIC8v
IHdpdGggZWFybGllciB0aW1lc3RhbXBzIGFyZSBlbnF1ZXVlZC4gVGhlIGRlY29kZSBxdWV1ZSBp
cyBub3QgRklGTywgYnV0IHJhdGhlciBhbiBvcmRlcmVkIG1hcC4KKyAgICAgICAgaWYgKHRyYWNr
QnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZVRpbWUuaXNJbnZhbGlkKCkgfHwgc2FtcGxlLmRlY29k
ZVRpbWUoKSA+PSB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVUaW1lKSB7CisgICAgICAg
ICAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6S2V5VHlwZSBkZWNvZGVLZXkoc2FtcGxlLmRlY29k
ZVRpbWUoKSwgc2FtcGxlLnByZXNlbnRhdGlvblRpbWUoKSk7CiAgICAgICAgICAgICB0cmFja0J1
ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQoRGVjb2RlT3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGU6OnZh
bHVlX3R5cGUoZGVjb2RlS2V5LCAmc2FtcGxlKSk7CiAKICAgICAgICAgICAgIGlmICh0cmFja0J1
ZmZlci5taW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlzVmFsaWQoKSAmJiBzYW1wbGUu
cHJlc2VudGF0aW9uVGltZSgpIDwgdHJhY2tCdWZmZXIubWluaW11bUVucXVldWVkUHJlc2VudGF0
aW9uVGltZSkKQEAgLTIwNDEsMjggKzIwNTQsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3Zp
ZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJgog
ICAgICAgICAvLyByYXRoZXIgdGhhbiB3aGVuIGFsbCBzYW1wbGVzIGhhdmUgYmVlbiBlbnF1ZXVl
ZC4KICAgICAgICAgYXV0byBzYW1wbGUgPSB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5iZWdpbigp
LT5zZWNvbmQ7CiAKLSAgICAgICAgLy8gRG8gbm90IGVucXVldWUgc2FtcGxlcyBzcGFubmluZyBh
IHNpZ25pZmljYW50IHVuYnVmZmVyZWQgZ2FwLgotICAgICAgICAvLyBOT1RFOiBvbmUgc2Vjb25k
IGlzIHNvbWV3aGF0IGFyYml0cmFyeS4gTWVkaWFTb3VyY2U6Om1vbml0b3JTb3VyY2VCdWZmZXJz
KCkgaXMgcnVuCi0gICAgICAgIC8vIG9uIHRoZSBwbGF5YmFja1RpbWVyLCB3aGljaCBpcyBlZmZl
Y3RpdmVseSBldmVyeSAzNTBtcy4gQWxsb3dpbmcgPiAzNTBtcyBnYXAgYmV0d2VlbgotICAgICAg
ICAvLyBlbnF1ZXVlZCBzYW1wbGVzIGFsbG93cyBmb3Igc2l0dWF0aW9ucyB3aGVyZSB3ZSBvdmVy
cnVuIHRoZSBlbmQgb2YgYSBidWZmZXJlZCByYW5nZQotICAgICAgICAvLyBidXQgZG9uJ3Qgbm90
aWNlIGZvciAzNTBzIG9mIHBsYXliYWNrIHRpbWUsIGFuZCB0aGUgY2xpZW50IGNhbiBlbnF1ZXVl
IGRhdGEgZm9yIHRoZQotICAgICAgICAvLyBuZXcgY3VycmVudCB0aW1lIHdpdGhvdXQgdHJpZ2dl
cmluZyB0aGlzIGVhcmx5IHJldHVybi4KLSAgICAgICAgLy8gRklYTUUoMTM1ODY3KTogTWFrZSB0
aGlzIGdhcCBkZXRlY3Rpb24gbG9naWMgbGVzcyBhcmJpdHJhcnkuCi0gICAgICAgIE1lZGlhVGlt
ZSBvbmVTZWNvbmQoMSwgMSk7Ci0gICAgICAgIGlmICh0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRE
ZWNvZGVLZXkuZmlyc3QuaXNWYWxpZCgpCi0gICAgICAgICAgICAmJiB0cmFja0J1ZmZlci5sYXN0
RW5xdWV1ZWREZWNvZGVEdXJhdGlvbi5pc1ZhbGlkKCkKLSAgICAgICAgICAgICYmIHNhbXBsZS0+
ZGVjb2RlVGltZSgpIC0gdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5LmZpcnN0ID4g
b25lU2Vjb25kICsgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb24pIHsKLQot
ICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwgImJhaWxpbmcgZWFybHkgYmVjYXVzZSBv
ZiB1bmJ1ZmZlcmVkIGdhcCwgbmV3IHNhbXBsZTogIiwgc2FtcGxlLT5kZWNvZGVUaW1lKCksICIs
IGxhc3QgZW5xdWV1ZWQgc2FtcGxlIGVuZHM6ICIsIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERl
Y29kZUtleS5maXJzdCArIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUR1cmF0aW9uKTsK
KyAgICAgICAgaWYgKHNhbXBsZS0+ZGVjb2RlVGltZSgpID4gdHJhY2tCdWZmZXIuZW5xdWV1ZURp
c2NvbnRpbnVpdHlCb3VuZGFyeSkgeworICAgICAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJ
RVIsICJiYWlsaW5nIGVhcmx5IGJlY2F1c2Ugb2YgdW5idWZmZXJlZCBnYXAsIG5ldyBzYW1wbGU6
ICIsIHNhbXBsZS0+ZGVjb2RlVGltZSgpLCAiID49IHRoZSBjdXJyZW50IGRpc2NvbnRpbnVpdHkg
Ym91bmRhcnk6ICIsIHRyYWNrQnVmZmVyLmVucXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBSZW1vdmUgdGhlIHNh
bXBsZSBmcm9tIHRoZSBkZWNvZGUgcXVldWUgbm93LgogICAgICAgICB0cmFja0J1ZmZlci5kZWNv
ZGVRdWV1ZS5lcmFzZSh0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5iZWdpbigpKTsKIAotICAgICAg
ICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0gc2FtcGxlLT5wcmVz
ZW50YXRpb25UaW1lKCk7Ci0gICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtl
eSA9IHtzYW1wbGUtPmRlY29kZVRpbWUoKSwgc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCl9Owot
ICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbiA9IHNhbXBsZS0+
ZHVyYXRpb24oKTsKKyAgICAgICAgTWVkaWFUaW1lIHNhbXBsZVByZXNlbnRhdGlvbkVuZCA9IHNh
bXBsZS0+cHJlc2VudGF0aW9uVGltZSgpICsgc2FtcGxlLT5kdXJhdGlvbigpOworICAgICAgICBp
ZiAodHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc0ludmFsaWQo
KSB8fCBzYW1wbGVQcmVzZW50YXRpb25FbmQgPiB0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQ
cmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVk
UHJlc2VudGF0aW9uVGltZSA9IHNhbXBsZVByZXNlbnRhdGlvbkVuZDsKKworICAgICAgICB0cmFj
a0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVUaW1lID0gc2FtcGxlLT5kZWNvZGVUaW1lKCk7Cisg
ICAgICAgIHRyYWNrQnVmZmVyLmVucXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkgPSBzYW1wbGUt
PmRlY29kZVRpbWUoKSArIHNhbXBsZS0+ZHVyYXRpb24oKSArIGRpc2NvbnRpbnVpdHlUb2xlcmFu
Y2U7CisKICAgICAgICAgbV9wcml2YXRlLT5lbnF1ZXVlU2FtcGxlKHNhbXBsZS5yZWxlYXNlTm9u
TnVsbCgpLCB0cmFja0lEKTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgKytl
bnF1ZXVlZFNhbXBsZXM7CkBAIC0yMTMyLDYgKzIxMzgsMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXI6
OnJlZW5xdWV1ZU1lZGlhRm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0
b21TdHIKICAgICBtX3ByaXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNrQnVmZmVyLmRl
Y29kZVF1ZXVlLmNsZWFyKCk7CiAKKyAgICB0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVz
ZW50YXRpb25UaW1lID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgIHRyYWNrQnVmZmVy
Lmxhc3RFbnF1ZXVlZERlY29kZVRpbWUgPSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCk7CisgICAg
dHJhY2tCdWZmZXIuZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFyeSA9IHRpbWUgKyBkaXNjb250
aW51aXR5VG9sZXJhbmNlOworCiAgICAgLy8gRmluZCB0aGUgc2FtcGxlIHdoaWNoIGNvbnRhaW5z
IHRoZSBjdXJyZW50IHByZXNlbnRhdGlvbiB0aW1lLgogICAgIGF1dG8gY3VycmVudFNhbXBsZVBU
U0l0ZXJhdG9yID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5wcmVzZW50YXRpb25PcmRlcigpLmZpbmRT
YW1wbGVDb250YWluaW5nUHJlc2VudGF0aW9uVGltZSh0aW1lKTsKIApAQCAtMjE1OSwxOSArMjE2
OSw2IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZm
ZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyCiAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29k
ZVF1ZXVlLmluc2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZShk
ZWNvZGVLZXksIFdURk1vdmUoY29weSkpKTsKICAgICB9CiAKLSAgICBpZiAoIXRyYWNrQnVmZmVy
LmRlY29kZVF1ZXVlLmVtcHR5KCkpIHsKLSAgICAgICAgYXV0byBsYXN0U2FtcGxlSXRlciA9IHRy
YWNrQnVmZmVyLmRlY29kZVF1ZXVlLnJiZWdpbigpOwotICAgICAgICBhdXRvIGxhc3RTYW1wbGVE
ZWNvZGVLZXkgPSBsYXN0U2FtcGxlSXRlci0+Zmlyc3Q7Ci0gICAgICAgIGF1dG8gbGFzdFNhbXBs
ZUR1cmF0aW9uID0gbGFzdFNhbXBsZUl0ZXItPnNlY29uZC0+ZHVyYXRpb24oKTsKLSAgICAgICAg
dHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IGxhc3RTYW1wbGVEZWNv
ZGVLZXkuc2Vjb25kOwotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkg
PSBsYXN0U2FtcGxlRGVjb2RlS2V5OwotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRE
ZWNvZGVEdXJhdGlvbiA9IGxhc3RTYW1wbGVEdXJhdGlvbjsKLSAgICB9IGVsc2UgewotICAgICAg
ICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0gTWVkaWFUaW1lOjpp
bnZhbGlkVGltZSgpOwotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkg
PSB7TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpLCBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCl9Owot
ICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbiA9IE1lZGlhVGlt
ZTo6aW52YWxpZFRpbWUoKTsKLSAgICB9Ci0KICAgICAvLyBGaWxsIHRoZSBkZWNvZGUgcXVldWUg
d2l0aCB0aGUgcmVtYWluaW5nIHNhbXBsZXMuCiAgICAgZm9yIChhdXRvIGl0ZXIgPSBjdXJyZW50
U2FtcGxlRFRTSXRlcmF0b3I7IGl0ZXIgIT0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRl
cigpLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmluc2Vy
dCgqaXRlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYmZlYTMxNThjMmViMDMxZDQ3NTI0MDQ3MjczYzgxMzBkY2UzNzhh
Mi4uNzBjMWNlYWFhZTAwZTRiMjIwYWFiMDhiNTlmNGNkZGQ5NmU2NTdkYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE5LTA0LTA5ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbTVNFXSBEb24ndCBlbnF1ZXVlIHNhbXBsZXMgdGhhdCBzdGFydCBh
dCBhIGJpZyBkaXNjb250aW51aXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDEzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXBy
ZXNlbnRhdGlvbi1kdXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8uaHRt
bDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1v
dmUtYi1mcmFtZS5odG1sOiBBZGRlZC4KKwogMjAxOS0wOC0yOSAgQWxpY2lhIEJveWEgR2FyY8Ot
YSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBHcmFjZWZ1
bGx5IGZhaWwgb24gaW52YWxpZCBub24tZmlyc3QgaW5pdGlhbGl6YXRpb24gc2VnbWVudApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBl
bmQtcHJlc2VudGF0aW9uLWR1cmF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25z
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTE3ZmRjNTJkNGQ3ZGVlYzI1MDFkZGRhMzNjNmU0
N2E4YzBlYzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0aW9uLWR1cmF0aW9ucy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyNCBAQAorCitFWFBFQ1RFRCAoc291cmNlLnJlYWR5U3RhdGUgPT0gJ2Ns
b3NlZCcpIE9LCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5h
ZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIikpCitSVU4oc291cmNlQnVm
ZmVyLmFwcGVuZEJ1ZmZlcihpbml0U2VnbWVudCkpCitFVkVOVCh1cGRhdGVlbmQpCitSVU4oc291
cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkb3VibGVJYnBTYW1wbGVSdW4oKSkpCitFVkVOVCh1cGRh
dGVlbmQpCitCdWZmZXJlZDoKK3tQVFMoezAvMTAgPSAwLjAwMDAwMH0pLCBEVFMoezAvMTAgPSAw
LjAwMDAwMH0pLCBkdXJhdGlvbih7NS8xMCA9IDAuNTAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0
aW9uKDApfQore1BUUyh7MjAvMTAgPSAyLjAwMDAwMH0pLCBEVFMoezUvMTAgPSAwLjUwMDAwMH0p
LCBkdXJhdGlvbih7NS8xMCA9IDAuNTAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQor
e1BUUyh7MTAvMTAgPSAxLjAwMDAwMH0pLCBEVFMoezEwLzEwID0gMS4wMDAwMDB9KSwgZHVyYXRp
b24oezIwLzEwID0gMi4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsz
MC8xMCA9IDMuMDAwMDAwfSksIERUUyh7MzAvMTAgPSAzLjAwMDAwMH0pLCBkdXJhdGlvbih7NS8x
MCA9IDAuNTAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQore1BUUyh7NTAvMTAgPSA1
LjAwMDAwMH0pLCBEVFMoezM1LzEwID0gMy41MDAwMDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUw
MDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezQwLzEwID0gNC4wMDAwMDB9
KSwgRFRTKHs0MC8xMCA9IDQuMDAwMDAwfSksIGR1cmF0aW9uKHsyMC8xMCA9IDIuMDAwMDAwfSks
IGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQorRW5xdWV1ZWQ6Cit7UFRTKHswLzEwID0gMC4wMDAw
MDB9KSwgRFRTKHswLzEwID0gMC4wMDAwMDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0p
LCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezIwLzEwID0gMi4wMDAwMDB9KSwgRFRT
KHs1LzEwID0gMC41MDAwMDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0pLCBmbGFncygw
KSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezEwLzEwID0gMS4wMDAwMDB9KSwgRFRTKHsxMC8xMCA9
IDEuMDAwMDAwfSksIGR1cmF0aW9uKHsyMC8xMCA9IDIuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5l
cmF0aW9uKDApfQore1BUUyh7MzAvMTAgPSAzLjAwMDAwMH0pLCBEVFMoezMwLzEwID0gMy4wMDAw
MDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigw
KX0KK3tQVFMoezUwLzEwID0gNS4wMDAwMDB9KSwgRFRTKHszNS8xMCA9IDMuNTAwMDAwfSksIGR1
cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRT
KHs0MC8xMCA9IDQuMDAwMDAwfSksIERUUyh7NDAvMTAgPSA0LjAwMDAwMH0pLCBkdXJhdGlvbih7
MjAvMTAgPSAyLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK0VORCBPRiBURVNU
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlvbnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYTA3NjAxN2M0MGNkMzRlMDI0NWI1ZjU3OTcyZTkyNjkxNTU4ZDYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0aW9uLWR1cmF0aW9ucy5odG1sCkBAIC0wLDAgKzEsNjQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtc291
cmNlLWFwcGVuZC1hY2Itbm8tZnJhbWUtbG9zdDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Im1v
Y2stbWVkaWEtc291cmNlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8t
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgc291cmNlOworICAgIHZh
ciBzb3VyY2VCdWZmZXI7CisgICAgdmFyIGluaXRTZWdtZW50OworCisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5pbml0aWFsaXplTW9ja01lZGlhU291cmNlKCk7
CisKKyAgICBmdW5jdGlvbiBkb3VibGVJYnBTYW1wbGVSdW4oKSB7CisgICAgICAgIC8vIElCUCBp
biBwcmVzZW50YXRpb24gb3JkZXIsIElQQiBpbiBkZWNvZGUgb3JkZXIuCisgICAgICAgIC8vIFNv
bWUgTVA0IGZpbGVzIGRvIGEgdHJpY2sgd2hlcmUgdGhleSBwbGF5IHdpdGggdGhlIGRlY29kZSBk
dXJhdGlvbnMgdG8gaGF2ZSBCLWZyYW1lcyB3aXRoIHRoZSBwcmVzZW50YXRpb24KKyAgICAgICAg
Ly8gdGltZWxpbmUgc3RhcnRpbmcgYXQgemVybyB3aXRob3V0IHVzaW5nIGVkaXQgbGlzdHMuCisg
ICAgICAgIC8vIFRoaXMgdGVzdCBjaGVja3MgdGhlc2Uga2luZCBvZiBmaWxlcyBhcmUgaGFuZGxl
ZCBjb3JyZWN0bHkuCisgICAgICAgIHJldHVybiBjb25jYXRlbmF0ZVNhbXBsZXMoWworICAgICAg
ICAgICAgbWFrZUFTYW1wbGUoIDAsICAwLCAgNSwgMTAsIDEsIFNBTVBMRV9GTEFHLlNZTkMpLCAv
LyBJCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgyMCwgIDUsICA1LCAxMCwgMSwgU0FNUExFX0ZM
QUcuTk9ORSksIC8vIFAKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDEwLCAxMCwgMjAsIDEwLCAx
LCBTQU1QTEVfRkxBRy5OT05FKSwgLy8gQgorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMzAsIDMw
LCAgNSwgMTAsIDEsIFNBTVBMRV9GTEFHLlNZTkMpLCAvLyBJCisgICAgICAgICAgICBtYWtlQVNh
bXBsZSg1MCwgMzUsICA1LCAxMCwgMSwgU0FNUExFX0ZMQUcuTk9ORSksIC8vIFAKKyAgICAgICAg
ICAgIG1ha2VBU2FtcGxlKDQwLCA0MCwgMjAsIDEwLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwgLy8g
QgorICAgICAgICBdKTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9h
ZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICBz
b3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2Uu
cmVhZHlTdGF0ZScsICdjbG9zZWQnKTsKKyAgICAgICAgY29uc3Qgc291cmNlT3BlbmVkID0gd2Fp
dEZvcihzb3VyY2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgY29uc3QgdmlkZW9Tb3VyY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb3VyY2UnKTsKKyAgICAgICAgdmlkZW9Tb3VyY2Uu
dHlwZSA9ICd2aWRlby9tb2NrOyBjb2RlY3M9bW9jayc7CisgICAgICAgIHZpZGVvU291cmNlLnNy
YyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKTsKKyAgICAgICAgdmlkZW8uYXBwZW5kQ2hp
bGQodmlkZW9Tb3VyY2UpOworCisgICAgICAgIGF3YWl0IHNvdXJjZU9wZW5lZDsKKyAgICAgICAg
cnVuKCdzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBj
b2RlY3M9bW9jayIpJyk7CisKKyAgICAgICAgaW5pdFNlZ21lbnQgPSBtYWtlQUluaXQoMjAsIFtt
YWtlQVRyYWNrKDEsICdtb2NrJywgVFJBQ0tfS0lORC5WSURFTyldKTsKKworICAgICAgICBydW4o
J3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpJyk7CisgICAgICAgIGF3YWl0
IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgcnVuKCdzb3Vy
Y2VCdWZmZXIuYXBwZW5kQnVmZmVyKGRvdWJsZUlicFNhbXBsZVJ1bigpKScpOworICAgICAgICBh
d2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAgIGNvbnNv
bGVXcml0ZSgiQnVmZmVyZWQ6Iik7CisgICAgICAgIGludGVybmFscy5idWZmZXJlZFNhbXBsZXNG
b3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25zb2xlV3JpdGUpOworICAgICAg
ICBjb25zb2xlV3JpdGUoIkVucXVldWVkOiIpOworICAgICAgICBpbnRlcm5hbHMuZW5xdWV1ZWRT
YW1wbGVzRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpLmZvckVhY2goY29uc29sZVdyaXRlKTsK
KworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQtemVy
by1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQtemVyby1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTM5MmVjNzIyM2U1Njc5NTE0OTYwNDNiMjYwNjllYjRmZWNlNGYxMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmly
c3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0
IEBACisKK0VYUEVDVEVEIChzb3VyY2UucmVhZHlTdGF0ZSA9PSAnY2xvc2VkJykgT0sKK0VWRU5U
KHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcigi
dmlkZW8vbW9jazsgY29kZWNzPW1vY2siKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KGluaXRTZWdtZW50KSkKK0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5k
QnVmZmVyKHN5bmNTYW1wbGVSdW4oNSwgMTApKSkKK0VWRU5UKHVwZGF0ZWVuZCkKK0VucXVldWVk
IHNvIGZhcjogKGV4cGVjdGluZyBubyBmcmFtZXMgeWV0KQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBl
bmRCdWZmZXIoc3luY1NhbXBsZVJ1bigwLCA1KSkpCitFVkVOVCh1cGRhdGVlbmQpCitFbnF1ZXVl
ZCBub3c6Cit7UFRTKHswLzEgPSAwLjAwMDAwMH0pLCBEVFMoezAvMSA9IDAuMDAwMDAwfSksIGR1
cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMo
ezEvMSA9IDEuMDAwMDAwfSksIERUUyh7MS8xID0gMS4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9
IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7Mi8xID0gMi4wMDAw
MDB9KSwgRFRTKHsyLzEgPSAyLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwg
ZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHszLzEgPSAzLjAwMDAwMH0pLCBEVFMoezMv
MSA9IDMuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2Vu
ZXJhdGlvbigwKX0KK3tQVFMoezQvMSA9IDQuMDAwMDAwfSksIERUUyh7NC8xID0gNC4wMDAwMDB9
KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQor
e1BUUyh7NS8xID0gNS4wMDAwMDB9KSwgRFRTKHs1LzEgPSA1LjAwMDAwMH0pLCBkdXJhdGlvbih7
MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs2LzEgPSA2
LjAwMDAwMH0pLCBEVFMoezYvMSA9IDYuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAw
MH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezcvMSA9IDcuMDAwMDAwfSksIERU
Uyh7Ny8xID0gNy4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDAp
LCBnZW5lcmF0aW9uKDApfQore1BUUyh7OC8xID0gOC4wMDAwMDB9KSwgRFRTKHs4LzEgPSA4LjAw
MDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24o
MCl9Cit7UFRTKHs5LzEgPSA5LjAwMDAwMH0pLCBEVFMoezkvMSA9IDkuMDAwMDAwfSksIGR1cmF0
aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK0VORCBPRiBU
RVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3RhcnRp
bmctYXQtemVyby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5N2E3NTEyM2MzMjI4NjI4ZTA2MDhkOTZkNDZl
NzgyYTA1MzYwZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQtemVyby5odG1s
CkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
dGl0bGU+bWVkaWEtc291cmNlLWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQtemVybzwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Im1vY2stbWVkaWEtc291cmNlLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB2
YXIgc291cmNlOworICAgIHZhciBzb3VyY2VCdWZmZXI7CisgICAgdmFyIGluaXRTZWdtZW50Owor
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5pbml0aWFsaXpl
TW9ja01lZGlhU291cmNlKCk7CisKKyAgICBmdW5jdGlvbiBzeW5jU2FtcGxlUnVuKHN0YXJ0LCBl
bmQpIHsKKyAgICAgICAgY29uc3Qgc2FtcGxlcyA9IFtdOworICAgICAgICBmb3IgKGxldCB0aW1l
ID0gc3RhcnQ7IHRpbWUgPCBlbmQ7IHRpbWUrKykKKyAgICAgICAgICAgIHNhbXBsZXMucHVzaCht
YWtlQVNhbXBsZSh0aW1lLCB0aW1lLCAxLCAxLCAxLCB0aW1lID09PSBzdGFydCA/IFNBTVBMRV9G
TEFHLlNZTkMgOiBTQU1QTEVfRkxBRy5OT05FKSk7CisgICAgICAgIHJldHVybiBjb25jYXRlbmF0
ZVNhbXBsZXMoc2FtcGxlcyk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAg
ICAgc291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnc291
cmNlLnJlYWR5U3RhdGUnLCAnY2xvc2VkJyk7CisgICAgICAgIGNvbnN0IHNvdXJjZU9wZW5lZCA9
IHdhaXRGb3Ioc291cmNlLCAnc291cmNlb3BlbicpOworCisgICAgICAgIGNvbnN0IHZpZGVvU291
cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc291cmNlJyk7CisgICAgICAgIHZpZGVvU291
cmNlLnR5cGUgPSAndmlkZW8vbW9jazsgY29kZWNzPW1vY2snOworICAgICAgICB2aWRlb1NvdXJj
ZS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSk7CisgICAgICAgIHZpZGVvLmFwcGVu
ZENoaWxkKHZpZGVvU291cmNlKTsKKworICAgICAgICBhd2FpdCBzb3VyY2VPcGVuZWQ7CisgICAg
ICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9j
azsgY29kZWNzPW1vY2siKScpOworCisgICAgICAgIGluaXRTZWdtZW50ID0gbWFrZUFJbml0KDEw
LCBbbWFrZUFUcmFjaygxLCAnbW9jaycsIFRSQUNLX0tJTkQuVklERU8pXSk7CisKKyAgICAgICAg
cnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGluaXRTZWdtZW50KScpOworICAgICAgICBh
d2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAgIHJ1bign
c291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihzeW5jU2FtcGxlUnVuKDUsIDEwKSknKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICBj
b25zb2xlV3JpdGUoIkVucXVldWVkIHNvIGZhcjogKGV4cGVjdGluZyBubyBmcmFtZXMgeWV0KSIp
OworICAgICAgICBpbnRlcm5hbHMuZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChzb3VyY2VCdWZm
ZXIsIDEpLmZvckVhY2goY29uc29sZVdyaXRlKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZl
ci5hcHBlbmRCdWZmZXIoc3luY1NhbXBsZVJ1bigwLCA1KSknKTsKKyAgICAgICAgYXdhaXQgd2Fp
dEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICBjb25zb2xlV3JpdGUo
IkVucXVldWVkIG5vdzoiKTsKKyAgICAgICAgaW50ZXJuYWxzLmVucXVldWVkU2FtcGxlc0ZvclRy
YWNrSUQoc291cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisKKyAgICAgICAg
ZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlbW92ZS1iLWZyYW1lLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMzRkNmMwMWEzNjgwOTE3MTU4ZTFkYWU2YTJkMjIzMmNlMjk1N2U0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1yZW1vdmUtYi1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorCitFWFBF
Q1RFRCAoc291cmNlLnJlYWR5U3RhdGUgPT0gJ2Nsb3NlZCcpIE9LCitFVkVOVChzb3VyY2VvcGVu
KQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7
IGNvZGVjcz1tb2NrIikpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpbml0U2VnbWVu
dCkpCitFVkVOVCh1cGRhdGVlbmQpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpYnBT
YW1wbGVSdW4oKSkpCitFVkVOVCh1cGRhdGVlbmQpCit7UFRTKHswLzEgPSAwLjAwMDAwMH0pLCBE
VFMoey0xLzEgPSAtMS4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdz
KDEpLCBnZW5lcmF0aW9uKDApfQore1BUUyh7Mi8xID0gMi4wMDAwMDB9KSwgRFRTKHswLzEgPSAw
LjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRp
b24oMCl9Cit7UFRTKHsxLzEgPSAxLjAwMDAwMH0pLCBEVFMoezEvMSA9IDEuMDAwMDAwfSksIGR1
cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK1JVTihz
b3VyY2VCdWZmZXIucmVtb3ZlKDEsIDIpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJjZUJ1
ZmZlci5hcHBlbmRCdWZmZXIobmV3IFVpbnQ4QXJyYXkoKSkpCitFVkVOVCh1cGRhdGVlbmQpCitU
aGUgZnJhbWUgd2l0aCBwcmVzZW50YXRpb24gdGltZSBbMSwgMikgc2hvdWxkIGhhdmUgYmVlbiBk
ZWxldGVkIGZyb20gdGhlIGJ1ZmZlcmVkIHNhbXBsZXMgYW5kIGEgcmVlbnF1ZXVlIG11c3QgaGF2
ZSBoYXBwZW5lZC4gVGhhdCBmcmFtZSBzaG91bGQgbm90IGhhdmUgYmVlbiBlbnF1ZXVlZC4KK0J1
ZmZlcmVkOgore1BUUyh7MC8xID0gMC4wMDAwMDB9KSwgRFRTKHstMS8xID0gLTEuMDAwMDAwfSks
IGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQ
VFMoezIvMSA9IDIuMDAwMDAwfSksIERUUyh7MC8xID0gMC4wMDAwMDB9KSwgZHVyYXRpb24oezEv
MSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQorRW5xdWV1ZWQ6Cit7UFRT
KHswLzEgPSAwLjAwMDAwMH0pLCBEVFMoey0xLzEgPSAtMS4wMDAwMDB9KSwgZHVyYXRpb24oezEv
MSA9IDEuMDAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQore1BUUyh7Mi8xID0gMi4w
MDAwMDB9KSwgRFRTKHswLzEgPSAwLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9
KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlbW92ZS1iLWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlbW92
ZS1iLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI3NTMwZTU3NDM2NzU2NmVmOWU2MzI3NTU5Yjdj
ZTNkYzkyNzljMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJhbWUuaHRtbApAQCAtMCwwICsxLDY5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1h
cHBlbmQtcmVtb3ZlLWItZnJhbWU8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJtb2NrLW1lZGlh
LXNvdXJjZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIgc291cmNl
QnVmZmVyOworICAgIHZhciBpbml0U2VnbWVudDsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuaW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSgpOworCisgICAg
ZnVuY3Rpb24gaWJwU2FtcGxlUnVuKCkgeworICAgICAgICAvLyBJQlAgaW4gcHJlc2VudGF0aW9u
IG9yZGVyLCBJUEIgaW4gZGVjb2RlIG9yZGVyLgorICAgICAgICByZXR1cm4gY29uY2F0ZW5hdGVT
YW1wbGVzKFsKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDAsIC0xLCAxLCAxLCAxLCBTQU1QTEVf
RkxBRy5TWU5DKSwgLy8gSQorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMiwgIDAsIDEsIDEsIDEs
IFNBTVBMRV9GTEFHLk5PTkUpLCAvLyBQCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgxLCAgMSwg
MSwgMSwgMSwgU0FNUExFX0ZMQUcuTk9ORSksIC8vIEIKKyAgICAgICAgXSk7CisgICAgfQorCisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgc291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgnc291cmNlLnJlYWR5U3RhdGUnLCAnY2xvc2VkJyk7Cisg
ICAgICAgIGNvbnN0IHNvdXJjZU9wZW5lZCA9IHdhaXRGb3Ioc291cmNlLCAnc291cmNlb3Blbicp
OworCisgICAgICAgIGNvbnN0IHZpZGVvU291cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c291cmNlJyk7CisgICAgICAgIHZpZGVvU291cmNlLnR5cGUgPSAndmlkZW8vbW9jazsgY29kZWNz
PW1vY2snOworICAgICAgICB2aWRlb1NvdXJjZS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNv
dXJjZSk7CisgICAgICAgIHZpZGVvLmFwcGVuZENoaWxkKHZpZGVvU291cmNlKTsKKworICAgICAg
ICBhd2FpdCBzb3VyY2VPcGVuZWQ7CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNl
LmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9jazsgY29kZWNzPW1vY2siKScpOworCisgICAgICAg
IGluaXRTZWdtZW50ID0gbWFrZUFJbml0KDEwLCBbbWFrZUFUcmFjaygxLCAnbW9jaycsIFRSQUNL
X0tJTkQuVklERU8pXSk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KGluaXRTZWdtZW50KScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3Vw
ZGF0ZWVuZCcpOworCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpYnBT
YW1wbGVSdW4oKSknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRh
dGVlbmQnKTsKKyAgICAgICAgaW50ZXJuYWxzLmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoc291
cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisKKyAgICAgICAgcnVuKCdzb3Vy
Y2VCdWZmZXIucmVtb3ZlKDEsIDIpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVm
ZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgLy8gRXZlbiBpZiAucmVtb3ZlKCkgc2V0cyB0
cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyB0byB0cnVlLCByZWVucXVldWVpbmcgd2lsbCBv
bmx5IGhhcHBlbiBhZnRlciBhbiBhcHBlbmQuCisgICAgICAgIC8vIFNvIGxldCdzIG1ha2UgYW4g
ZW1wdHkgYXBwZW5kLgorICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIobmV3
IFVpbnQ4QXJyYXkoKSknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1
cGRhdGVlbmQnKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoIlRoZSBmcmFtZSB3aXRoIHByZXNl
bnRhdGlvbiB0aW1lIFsxLCAyKSBzaG91bGQgaGF2ZSBiZWVuIGRlbGV0ZWQgZnJvbSB0aGUgYnVm
ZmVyZWQgc2FtcGxlcyBhbmQgIiArCisgICAgICAgICAgICAiYSByZWVucXVldWUgbXVzdCBoYXZl
IGhhcHBlbmVkLiBUaGF0IGZyYW1lIHNob3VsZCBub3QgaGF2ZSBiZWVuIGVucXVldWVkLiIpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoIkJ1ZmZlcmVkOiIpOworICAgICAgICBpbnRlcm5hbHMuYnVm
ZmVyZWRTYW1wbGVzRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpLmZvckVhY2goY29uc29sZVdy
aXRlKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCJFbnF1ZXVlZDoiKTsKKyAgICAgICAgaW50ZXJu
YWxzLmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNv
bnNvbGVXcml0ZSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377820</attachid>
            <date>2019-09-01 05:21:56 -0700</date>
            <delta_ts>2020-01-09 07:54:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201323-20190901142154.patch</filename>
            <type>text/plain</type>
            <size>27681</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU2YmMxNWU2YjY0Zjkw
NjJiODM3YWNmNmJjMmJiNDVmYjc0ODUxMS4uODY3MTdjY2I4MDFlOTFjMjJiNWQ1ZGU1M2RkY2Iz
M2FlYTlmYzEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA0LTA5ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXSBEb24n
dCBlbnF1ZXVlIHNhbXBsZXMgdGhhdCBzdGFydCBhdCBhIGJpZyBkaXNjb250aW51aXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzMjMKKworICAg
ICAgICBXaXRoIHRoZSBvbGQgbG9naWMgU291cmNlQnVmZmVyIHdhcyBlbnF1ZXVlaW5nIHRoZSBm
aXJzdCBmcmFtZSB0byBiZQorICAgICAgICBhcHBlbmRlZCBpbiBhbnkgY2lyY3Vtc3RhbmNlcy4g
VGhpcyB3YXMgYSBidWcgYmVjYXVzZSB0aGUgdXNlciBjb3VsZAorICAgICAgICBhcHBlbmQgZmly
c3QgWzUsIDEwKSBhbmQgdGhlbiBbMCwgNSkuIFdpdGggdGhlIG9sZCBiZWhhdmlvciBbNSwgMTAp
CisgICAgICAgIHdvdWxkIGJlIGVucXVldWVkIGZpcnN0IGRlc3BpdGUgYmVpbmcgY2xlYXJseSBh
aGVhZCBvZiB0aGUgaW5pdGlhbAorICAgICAgICBwbGF5YmFjayB0aW1lICh6ZXJvKS4gQnkgdGhl
IHRpbWUgWzAsIDUpIGlzIGVucXVldWVkIGl0IGNhbid0IGJlCisgICAgICAgIGVucXVldWVkIGFu
eW1vcmUgYmVjYXVzZSB0aGUgZGVjb2RlUXVldWUgaXMgYWxyZWFkeSBhaGVhZC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIHRoYXQgbG9naWMgdG8gd29yayB3aGVuIHRoZSBmaXJzdCBzZWdt
ZW50cyBhcmUKKyAgICAgICAgYXBwZW5kZWQgdW5vcmRlcmVkLiBUaGUgdGVzdCBtZWRpYS1zb3Vy
Y2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWwKKyAgICAgICAgdmFsaWRh
dGVzIGl0LgorCisgICAgICAgIFRoZSB0ZXN0IG1lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0
aW9uLWR1cmF0aW9ucy5odG1sIGNoZWNrcyB0aGUKKyAgICAgICAgbmV3IGxvZ2ljIGRvZXMgbm90
IGJyZWFrIGluIHByZXNlbmNlIG9mIHByZXNlbnRhdGlvbiBkdXJhdGlvbiAhPQorICAgICAgICBk
ZWNvZGUgZHVyYXRpb24uCisKKyAgICAgICAgQXMgcGFydCBvZiB0aGUgc2FtZSBsb2dpYyBibG9j
aywgdGhlIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgd2FzCisgICAgICAgIHVzZWQgdG8g
ZGVjaWRlIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gcGVyZm9ybSByZWVucXVldWUgYWZ0ZXIgYW4K
KyAgICAgICAgLmVyYXNlKCkgKGl0IGlzIG5lY2Vzc2FyeSBpZiBhbnkgZW5xdWV1ZWQgZnJhbWVz
IGFyZSByZXBsYWNlZCkuIFVzaW5nCisgICAgICAgIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRp
bWUgd2FzIG5vdCBlbnRpcmVseSBhY2N1cmF0ZSBpbiBwcmVzZW5jZSBvZgorICAgICAgICBCLWZy
YW1lcywgYXMgeW91IGNvdWxkIGVyYXNlIGEgZnJhbWUgdGhhdCBoYXMgYSBwcmVzZW50YXRpb24g
dGltZQorICAgICAgICBoaWdoZXIgdGhhbiB0aGUgbGFzdCBlbnF1ZXVlZCBvbmUuIFRoYXQgbG9n
aWMgaXMgcmVwbGFjZWQgd2l0aCBhCisgICAgICAgIG1vbm90b25pY2x5IGluY3JlYXNpbmcgaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSBhbmQgaXMgdGVzdGVkCisgICAgICAgIGJ5IG1l
ZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwKKyAgICAgICAgICAgICAg
IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGlu
Zy1hdC16ZXJvLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtcmVtb3ZlLWItZnJhbWUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpUcmFj
a0J1ZmZlcjo6VHJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpy
ZW1vdmVDb2RlZEZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OlRyYWNrQnVmZmVyOjpsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbik6IERlbGV0ZWQuCisK
IDIwMTktMDgtMjkgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gR3JhY2VmdWxseSBmYWlsIG9uIGludmFsaWQgbm9uLWZp
cnN0IGluaXRpYWxpemF0aW9uIHNlZ21lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCA0MjA2ZGZiYzlkYmM3ZGFlOTIy
MmU2MzhjZGJlOWYxMzEzZTU5OWI1Li45MDQ2ZTE5YjBkNjA5OTEzODFlYWNhNjA1NTBlYjg5OWJi
M2U5NDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCkBAIC02NCwxNSArNjQsMjQgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKFNvdXJjZUJ1ZmZlcik7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgRXhwb25lbnRpYWxN
b3ZpbmdBdmVyYWdlQ29lZmZpY2llbnQgPSAwLjE7CiAKKy8vIERvIG5vdCBlbnF1ZXVlIHNhbXBs
ZXMgc3Bhbm5pbmcgYSBzaWduaWZpY2FudCB1bmJ1ZmZlcmVkIGdhcC4KKy8vIE5PVEU6IG9uZSBz
ZWNvbmQgaXMgc29tZXdoYXQgYXJiaXRyYXJ5LiBNZWRpYVNvdXJjZTo6bW9uaXRvclNvdXJjZUJ1
ZmZlcnMoKSBpcyBydW4KKy8vIG9uIHRoZSBwbGF5YmFja1RpbWVyLCB3aGljaCBpcyBlZmZlY3Rp
dmVseSBldmVyeSAzNTBtcy4gQWxsb3dpbmcgPiAzNTBtcyBnYXAgYmV0d2VlbgorLy8gZW5xdWV1
ZWQgc2FtcGxlcyBhbGxvd3MgZm9yIHNpdHVhdGlvbnMgd2hlcmUgd2Ugb3ZlcnJ1biB0aGUgZW5k
IG9mIGEgYnVmZmVyZWQgcmFuZ2UKKy8vIGJ1dCBkb24ndCBub3RpY2UgZm9yIDM1MHMgb2YgcGxh
eWJhY2sgdGltZSwgYW5kIHRoZSBjbGllbnQgY2FuIGVucXVldWUgZGF0YSBmb3IgdGhlCisvLyBu
ZXcgY3VycmVudCB0aW1lIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGlzIGVhcmx5IHJldHVybi4KKy8v
IEZJWE1FKDEzNTg2Nyk6IE1ha2UgdGhpcyBnYXAgZGV0ZWN0aW9uIGxvZ2ljIGxlc3MgYXJiaXRy
YXJ5Lgorc3RhdGljIGNvbnN0IE1lZGlhVGltZSBkaXNjb250aW51aXR5VG9sZXJhbmNlID0gTWVk
aWFUaW1lKDEsIDEpOworCiBzdHJ1Y3QgU291cmNlQnVmZmVyOjpUcmFja0J1ZmZlciB7CiAgICAg
TWVkaWFUaW1lIGxhc3REZWNvZGVUaW1lc3RhbXA7CiAgICAgTWVkaWFUaW1lIGdyZWF0ZXN0RGVj
b2RlRHVyYXRpb247CiAgICAgTWVkaWFUaW1lIGxhc3RGcmFtZUR1cmF0aW9uOwogICAgIE1lZGlh
VGltZSBoaWdoZXN0UHJlc2VudGF0aW9uVGltZXN0YW1wOwotICAgIE1lZGlhVGltZSBsYXN0RW5x
dWV1ZWRQcmVzZW50YXRpb25UaW1lOworICAgIE1lZGlhVGltZSBoaWdoZXN0RW5xdWV1ZWRQcmVz
ZW50YXRpb25UaW1lOwogICAgIE1lZGlhVGltZSBtaW5pbXVtRW5xdWV1ZWRQcmVzZW50YXRpb25U
aW1lOwogICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGxhc3RFbnF1ZXVlZERlY29k
ZUtleTsKLSAgICBNZWRpYVRpbWUgbGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb247CisgICAgTWVk
aWFUaW1lIGVucXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkgeyBNZWRpYVRpbWU6Onplcm9UaW1l
KCkgfTsKICAgICBNZWRpYVRpbWUgcm91bmRlZFRpbWVzdGFtcE9mZnNldDsKICAgICB1aW50MzJf
dCBsYXN0RnJhbWVUaW1lc2NhbGUgeyAwIH07CiAgICAgYm9vbCBuZWVkUmFuZG9tQWNjZXNzRmxh
ZyB7IHRydWUgfTsKQEAgLTg5LDkgKzk4LDkgQEAgc3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tC
dWZmZXIgewogICAgICAgICAsIGdyZWF0ZXN0RGVjb2RlRHVyYXRpb24oTWVkaWFUaW1lOjppbnZh
bGlkVGltZSgpKQogICAgICAgICAsIGxhc3RGcmFtZUR1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKSkKICAgICAgICAgLCBoaWdoZXN0UHJlc2VudGF0aW9uVGltZXN0YW1wKE1lZGlhVGlt
ZTo6aW52YWxpZFRpbWUoKSkKLSAgICAgICAgLCBsYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1l
KE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKKyAgICAgICAgLCBoaWdoZXN0RW5xdWV1ZWRQcmVz
ZW50YXRpb25UaW1lKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAgICAgLCBsYXN0RW5x
dWV1ZWREZWNvZGVLZXkoe01lZGlhVGltZTo6aW52YWxpZFRpbWUoKSwgTWVkaWFUaW1lOjppbnZh
bGlkVGltZSgpfSkKLSAgICAgICAgLCBsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbihNZWRpYVRp
bWU6OmludmFsaWRUaW1lKCkpCisgICAgICAgICwgZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFy
eShkaXNjb250aW51aXR5VG9sZXJhbmNlKQogICAgIHsKICAgICB9CiB9OwpAQCAtODg2LDggKzg5
NSw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRp
bWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuCiAKICAgICAgICAgLy8gT25seSBmb3JjZSB0
aGUgVHJhY2tCdWZmZXIgdG8gcmUtZW5xdWV1ZSBpZiB0aGUgcmVtb3ZlZCByYW5nZXMgb3Zlcmxh
cCB3aXRoIGVucXVldWVkIGFuZCBwb3NzaWJseQogICAgICAgICAvLyBub3QgeWV0IGRpc3BsYXll
ZCBzYW1wbGVzLgotICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0
aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSA8IHRyYWNrQnVmZmVyLmxhc3RF
bnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsKLSAgICAgICAgICAgIFBsYXRmb3JtVGltZVJhbmdl
cyBwb3NzaWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmxh
c3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOworICAgICAgICBpZiAodHJhY2tCdWZmZXIuaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGlt
ZSA8IHRyYWNrQnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsKKyAgICAg
ICAgICAgIFBsYXRmb3JtVGltZVJhbmdlcyBwb3NzaWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRN
ZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOwog
ICAgICAgICAgICAgcG9zc2libHlFbnF1ZXVlZFJhbmdlcy5pbnRlcnNlY3RXaXRoKGVyYXNlZFJh
bmdlcyk7CiAgICAgICAgICAgICBpZiAocG9zc2libHlFbnF1ZXVlZFJhbmdlcy5sZW5ndGgoKSkg
ewogICAgICAgICAgICAgICAgIHRyYWNrQnVmZmVyLm5lZWRzUmVlbnF1ZXVlaW5nID0gdHJ1ZTsK
QEAgLTE3NTksOCArMTc2OCw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2
YXRlRGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAgICAgLy8g
T25seSBmb3JjZSB0aGUgVHJhY2tCdWZmZXIgdG8gcmUtZW5xdWV1ZSBpZiB0aGUgcmVtb3ZlZCBy
YW5nZXMgb3ZlcmxhcCB3aXRoIGVucXVldWVkIGFuZCBwb3NzaWJseQogICAgICAgICAgICAgLy8g
bm90IHlldCBkaXNwbGF5ZWQgc2FtcGxlcy4KICAgICAgICAgICAgIE1lZGlhVGltZSBjdXJyZW50
TWVkaWFUaW1lID0gbV9zb3VyY2UtPmN1cnJlbnRUaW1lKCk7Ci0gICAgICAgICAgICBpZiAodHJh
Y2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVu
dE1lZGlhVGltZSA8IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsK
LSAgICAgICAgICAgICAgICBQbGF0Zm9ybVRpbWVSYW5nZXMgcG9zc2libHlFbnF1ZXVlZFJhbmdl
cyhjdXJyZW50TWVkaWFUaW1lLCB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25U
aW1lKTsKKyAgICAgICAgICAgIGlmICh0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVzZW50
YXRpb25UaW1lLmlzVmFsaWQoKSAmJiBjdXJyZW50TWVkaWFUaW1lIDwgdHJhY2tCdWZmZXIuaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSkgeworICAgICAgICAgICAgICAgIFBsYXRmb3Jt
VGltZVJhbmdlcyBwb3NzaWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNr
QnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAgICAg
IHBvc3NpYmx5RW5xdWV1ZWRSYW5nZXMuaW50ZXJzZWN0V2l0aChlcmFzZWRSYW5nZXMpOwogICAg
ICAgICAgICAgICAgIGlmIChwb3NzaWJseUVucXVldWVkUmFuZ2VzLmxlbmd0aCgpKQogICAgICAg
ICAgICAgICAgICAgICB0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyA9IHRydWU7CkBAIC0x
NzgyLDExICsxNzkxLDE1IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRl
RGlkUmVjZWl2ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICB0cmFja0J1ZmZl
ci5zYW1wbGVzLmFkZFNhbXBsZShzYW1wbGUpOwogCiAgICAgICAgIC8vIE5vdGU6IFRoZSB0ZXJt
aW5vbG9neSBoZXJlIGlzIGNvbmZ1c2luZzogImVucXVldWluZyIgbWVhbnMgcHJvdmlkaW5nIGEg
ZnJhbWUgdG8gdGhlIGlubmVyIG1lZGlhIGZyYW1ld29yay4KLSAgICAgICAgLy8gRmlyc3QsIGZy
YW1lcyBhcmUgaW5zZXJ0ZWQgaW4gdGhlIGRlY29kZSBxdWV1ZTsgbGF0ZXIsIGF0IHRoZSBlbmQg
b2YgdGhlIGFwcGVuZCBhbGwgdGhlIGZyYW1lcyBpbiB0aGUgZGVjb2RlCi0gICAgICAgIC8vIHF1
ZXVlIGFyZSAiZW5xdWV1ZWQiIChzZW50IHRvIHRoZSBpbm5lciBtZWRpYSBmcmFtZXdvcmspIGlu
IGBwcm92aWRlTWVkaWFEYXRhKClgLgorICAgICAgICAvLyBGaXJzdCwgZnJhbWVzIGFyZSBpbnNl
cnRlZCBpbiB0aGUgZGVjb2RlIHF1ZXVlOyBsYXRlciwgYXQgdGhlIGVuZCBvZiB0aGUgYXBwZW5k
IHNvbWUgb2YgdGhlIGZyYW1lcyBpbiB0aGUKKyAgICAgICAgLy8gZGVjb2RlIG1heSBiZSAiZW5x
dWV1ZWQiIChzZW50IHRvIHRoZSBpbm5lciBtZWRpYSBmcmFtZXdvcmspIGluIGBwcm92aWRlTWVk
aWFEYXRhKClgLgorICAgICAgICAvLworICAgICAgICAvLyBJbiBvcmRlciB0byBjaGVjayB3aGV0
aGVyIGEgZnJhbWUgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkZWNvZGUgcXVldWUgd2UgY2hlY2sg
dGhhdCBpdCBkb2VzIG5vdCBwcmVjZWRlIGFueQorICAgICAgICAvLyBmcmFtZSBhbHJlYWR5IGVu
cXVldWVkLgogICAgICAgICAvLwotICAgICAgICAvLyBJbiBvcmRlciB0byBjaGVjayB3aGV0aGVy
IGEgZnJhbWUgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkZWNvZGUgcXVldWUgd2UgY2hlY2sgd2hl
dGhlciBpdCBzdGFydHMgYWZ0ZXIgdGhlCi0gICAgICAgIC8vIGxhc3RFbnF1ZXVlZERlY29kZUtl
eS4KKyAgICAgICAgLy8gTm90ZSB0aGF0IGFkZGluZyBhIGZyYW1lIHRvIHRoZSBkZWNvZGUgcXVl
dWUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBiZSBhY3R1YWxseSBlbnF1ZXVlZCBhdCB0
aGF0IHBvaW50LgorICAgICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgYWZ0ZXIgdGhlIGRpc2NvbnRp
bnVpdHkgYm91bmRhcnksIHRoZSBlbnF1ZXVlaW5nIGFsZ29yaXRobSB3aWxsIGhvbGQgaXQgdGhl
cmUgdW50aWwgc2FtcGxlcworICAgICAgICAvLyB3aXRoIGVhcmxpZXIgdGltZXN0YW1wcyBhcmUg
ZW5xdWV1ZWQuIFRoZSBkZWNvZGUgcXVldWUgaXMgbm90IEZJRk8sIGJ1dCByYXRoZXIgYW4gb3Jk
ZXJlZCBtYXAuCiAgICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtl
eShzYW1wbGUuZGVjb2RlVGltZSgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpKTsKICAgICAg
ICAgaWYgKHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleS5maXJzdC5pc0ludmFsaWQo
KSB8fCBkZWNvZGVLZXkgPiB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkpIHsKICAg
ICAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmluc2VydChEZWNvZGVPcmRlclNhbXBs
ZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZShkZWNvZGVLZXksICZzYW1wbGUpKTsKQEAgLTIwNDEs
MjggKzIwNTQsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tC
dWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAgICAvLyByYXRoZXIg
dGhhbiB3aGVuIGFsbCBzYW1wbGVzIGhhdmUgYmVlbiBlbnF1ZXVlZC4KICAgICAgICAgYXV0byBz
YW1wbGUgPSB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5iZWdpbigpLT5zZWNvbmQ7CiAKLSAgICAg
ICAgLy8gRG8gbm90IGVucXVldWUgc2FtcGxlcyBzcGFubmluZyBhIHNpZ25pZmljYW50IHVuYnVm
ZmVyZWQgZ2FwLgotICAgICAgICAvLyBOT1RFOiBvbmUgc2Vjb25kIGlzIHNvbWV3aGF0IGFyYml0
cmFyeS4gTWVkaWFTb3VyY2U6Om1vbml0b3JTb3VyY2VCdWZmZXJzKCkgaXMgcnVuCi0gICAgICAg
IC8vIG9uIHRoZSBwbGF5YmFja1RpbWVyLCB3aGljaCBpcyBlZmZlY3RpdmVseSBldmVyeSAzNTBt
cy4gQWxsb3dpbmcgPiAzNTBtcyBnYXAgYmV0d2VlbgotICAgICAgICAvLyBlbnF1ZXVlZCBzYW1w
bGVzIGFsbG93cyBmb3Igc2l0dWF0aW9ucyB3aGVyZSB3ZSBvdmVycnVuIHRoZSBlbmQgb2YgYSBi
dWZmZXJlZCByYW5nZQotICAgICAgICAvLyBidXQgZG9uJ3Qgbm90aWNlIGZvciAzNTBzIG9mIHBs
YXliYWNrIHRpbWUsIGFuZCB0aGUgY2xpZW50IGNhbiBlbnF1ZXVlIGRhdGEgZm9yIHRoZQotICAg
ICAgICAvLyBuZXcgY3VycmVudCB0aW1lIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGlzIGVhcmx5IHJl
dHVybi4KLSAgICAgICAgLy8gRklYTUUoMTM1ODY3KTogTWFrZSB0aGlzIGdhcCBkZXRlY3Rpb24g
bG9naWMgbGVzcyBhcmJpdHJhcnkuCi0gICAgICAgIE1lZGlhVGltZSBvbmVTZWNvbmQoMSwgMSk7
Ci0gICAgICAgIGlmICh0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkuZmlyc3QuaXNW
YWxpZCgpCi0gICAgICAgICAgICAmJiB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVEdXJh
dGlvbi5pc1ZhbGlkKCkKLSAgICAgICAgICAgICYmIHNhbXBsZS0+ZGVjb2RlVGltZSgpIC0gdHJh
Y2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5LmZpcnN0ID4gb25lU2Vjb25kICsgdHJhY2tC
dWZmZXIubGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb24pIHsKLQotICAgICAgICBERUJVR19MT0co
TE9HSURFTlRJRklFUiwgImJhaWxpbmcgZWFybHkgYmVjYXVzZSBvZiB1bmJ1ZmZlcmVkIGdhcCwg
bmV3IHNhbXBsZTogIiwgc2FtcGxlLT5kZWNvZGVUaW1lKCksICIsIGxhc3QgZW5xdWV1ZWQgc2Ft
cGxlIGVuZHM6ICIsIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleS5maXJzdCArIHRy
YWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUR1cmF0aW9uKTsKKyAgICAgICAgaWYgKHNhbXBs
ZS0+ZGVjb2RlVGltZSgpID4gdHJhY2tCdWZmZXIuZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFy
eSkgeworICAgICAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJiYWlsaW5nIGVhcmx5
IGJlY2F1c2Ugb2YgdW5idWZmZXJlZCBnYXAsIG5ldyBzYW1wbGU6ICIsIHNhbXBsZS0+ZGVjb2Rl
VGltZSgpLCAiID49IHRoZSBjdXJyZW50IGRpc2NvbnRpbnVpdHkgYm91bmRhcnk6ICIsIHRyYWNr
QnVmZmVyLmVucXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBSZW1vdmUgdGhlIHNhbXBsZSBmcm9tIHRoZSBkZWNv
ZGUgcXVldWUgbm93LgogICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5lcmFzZSh0cmFj
a0J1ZmZlci5kZWNvZGVRdWV1ZS5iZWdpbigpKTsKIAotICAgICAgICB0cmFja0J1ZmZlci5sYXN0
RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0gc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCk7Cisg
ICAgICAgIE1lZGlhVGltZSBzYW1wbGVQcmVzZW50YXRpb25FbmQgPSBzYW1wbGUtPnByZXNlbnRh
dGlvblRpbWUoKSArIHNhbXBsZS0+ZHVyYXRpb24oKTsKKyAgICAgICAgaWYgKHRyYWNrQnVmZmVy
LmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUuaXNJbnZhbGlkKCkgfHwgc2FtcGxlUHJl
c2VudGF0aW9uRW5kID4gdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGlt
ZSkKKyAgICAgICAgICAgIHRyYWNrQnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRp
bWUgPSBzYW1wbGVQcmVzZW50YXRpb25FbmQ7CisKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVu
cXVldWVkRGVjb2RlS2V5ID0ge3NhbXBsZS0+ZGVjb2RlVGltZSgpLCBzYW1wbGUtPnByZXNlbnRh
dGlvblRpbWUoKX07Ci0gICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUR1cmF0
aW9uID0gc2FtcGxlLT5kdXJhdGlvbigpOworICAgICAgICB0cmFja0J1ZmZlci5lbnF1ZXVlRGlz
Y29udGludWl0eUJvdW5kYXJ5ID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0
aW9uKCkgKyBkaXNjb250aW51aXR5VG9sZXJhbmNlOworCiAgICAgICAgIG1fcHJpdmF0ZS0+ZW5x
dWV1ZVNhbXBsZShzYW1wbGUucmVsZWFzZU5vbk51bGwoKSwgdHJhY2tJRCk7CiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgICAgICsrZW5xdWV1ZWRTYW1wbGVzOwpAQCAtMjEzMiw2ICsy
MTM4LDEwIEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tC
dWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyCiAgICAgbV9wcml2YXRlLT5mbHVzaCh0
cmFja0lEKTsKICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5jbGVhcigpOwogCisgICAgdHJh
Y2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6aW52
YWxpZFRpbWUoKTsKKyAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkgPSB7TWVk
aWFUaW1lOjppbnZhbGlkVGltZSgpLCBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCl9OworICAgIHRy
YWNrQnVmZmVyLmVucXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkgPSB0aW1lICsgZGlzY29udGlu
dWl0eVRvbGVyYW5jZTsKKwogICAgIC8vIEZpbmQgdGhlIHNhbXBsZSB3aGljaCBjb250YWlucyB0
aGUgY3VycmVudCBwcmVzZW50YXRpb24gdGltZS4KICAgICBhdXRvIGN1cnJlbnRTYW1wbGVQVFNJ
dGVyYXRvciA9IHRyYWNrQnVmZmVyLnNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKS5maW5kU2Ft
cGxlQ29udGFpbmluZ1ByZXNlbnRhdGlvblRpbWUodGltZSk7CiAKQEAgLTIxNTksMTkgKzIxNjks
NiBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVy
JiB0cmFja0J1ZmZlciwgY29uc3QgQXRvbVN0cgogICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVR
dWV1ZS5pbnNlcnQoRGVjb2RlT3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5cGUoZGVj
b2RlS2V5LCBXVEZNb3ZlKGNvcHkpKSk7CiAgICAgfQogCi0gICAgaWYgKCF0cmFja0J1ZmZlci5k
ZWNvZGVRdWV1ZS5lbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gbGFzdFNhbXBsZUl0ZXIgPSB0cmFj
a0J1ZmZlci5kZWNvZGVRdWV1ZS5yYmVnaW4oKTsKLSAgICAgICAgYXV0byBsYXN0U2FtcGxlRGVj
b2RlS2V5ID0gbGFzdFNhbXBsZUl0ZXItPmZpcnN0OwotICAgICAgICBhdXRvIGxhc3RTYW1wbGVE
dXJhdGlvbiA9IGxhc3RTYW1wbGVJdGVyLT5zZWNvbmQtPmR1cmF0aW9uKCk7Ci0gICAgICAgIHRy
YWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBsYXN0U2FtcGxlRGVjb2Rl
S2V5LnNlY29uZDsKLSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5ID0g
bGFzdFNhbXBsZURlY29kZUtleTsKLSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVj
b2RlRHVyYXRpb24gPSBsYXN0U2FtcGxlRHVyYXRpb247Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
dHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6aW52
YWxpZFRpbWUoKTsKLSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5ID0g
e01lZGlhVGltZTo6aW52YWxpZFRpbWUoKSwgTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpfTsKLSAg
ICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb24gPSBNZWRpYVRpbWU6
OmludmFsaWRUaW1lKCk7Ci0gICAgfQotCiAgICAgLy8gRmlsbCB0aGUgZGVjb2RlIHF1ZXVlIHdp
dGggdGhlIHJlbWFpbmluZyBzYW1wbGVzLgogICAgIGZvciAoYXV0byBpdGVyID0gY3VycmVudFNh
bXBsZURUU0l0ZXJhdG9yOyBpdGVyICE9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3JkZXIo
KS5lbmQoKTsgKytpdGVyKQogICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQo
Kml0ZXIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGJmZWEzMTU4YzJlYjAzMWQ0NzUyNDA0NzI3M2M4MTMwZGNlMzc4YTIu
LjcwYzFjZWFhYWUwMGU0YjIyMGFhYjA4YjU5ZjRjZGRkOTZlNjU3ZGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOS0wNC0wOSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW01TRV0gRG9uJ3QgZW5xdWV1ZSBzYW1wbGVzIHRoYXQgc3RhcnQgYXQg
YSBiaWcgZGlzY29udGludWl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAxMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVz
ZW50YXRpb24tZHVyYXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3Zl
LWItZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMTktMDgtMjkgIEFsaWNpYSBCb3lhIEdhcmPDrWEg
IDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gR3JhY2VmdWxs
eSBmYWlsIG9uIGludmFsaWQgbm9uLWZpcnN0IGluaXRpYWxpemF0aW9uIHNlZ21lbnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5k
LXByZXNlbnRhdGlvbi1kdXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0aW9uLWR1cmF0aW9ucy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUxN2ZkYzUyZDRkN2RlZWMyNTAxZGRkYTMzYzZlNDdh
OGMwZWMyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlvbnMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjQgQEAKKworRVhQRUNURUQgKHNvdXJjZS5yZWFkeVN0YXRlID09ICdjbG9z
ZWQnKSBPSworRVZFTlQoc291cmNlb3BlbikKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRk
U291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBjb2RlY3M9bW9jayIpKQorUlVOKHNvdXJjZUJ1ZmZl
ci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJj
ZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZG91YmxlSWJwU2FtcGxlUnVuKCkpKQorRVZFTlQodXBkYXRl
ZW5kKQorQnVmZmVyZWQ6Cit7UFRTKHswLzEwID0gMC4wMDAwMDB9KSwgRFRTKHswLzEwID0gMC4w
MDAwMDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlv
bigwKX0KK3tQVFMoezIwLzEwID0gMi4wMDAwMDB9KSwgRFRTKHs1LzEwID0gMC41MDAwMDB9KSwg
ZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQ
VFMoezEwLzEwID0gMS4wMDAwMDB9KSwgRFRTKHsxMC8xMCA9IDEuMDAwMDAwfSksIGR1cmF0aW9u
KHsyMC8xMCA9IDIuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MzAv
MTAgPSAzLjAwMDAwMH0pLCBEVFMoezMwLzEwID0gMy4wMDAwMDB9KSwgZHVyYXRpb24oezUvMTAg
PSAwLjUwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezUwLzEwID0gNS4w
MDAwMDB9KSwgRFRTKHszNS8xMCA9IDMuNTAwMDAwfSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAw
MDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs0MC8xMCA9IDQuMDAwMDAwfSks
IERUUyh7NDAvMTAgPSA0LjAwMDAwMH0pLCBkdXJhdGlvbih7MjAvMTAgPSAyLjAwMDAwMH0pLCBm
bGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK0VucXVldWVkOgore1BUUyh7MC8xMCA9IDAuMDAwMDAw
fSksIERUUyh7MC8xMCA9IDAuMDAwMDAwfSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwg
ZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsyMC8xMCA9IDIuMDAwMDAwfSksIERUUyh7
NS8xMCA9IDAuNTAwMDAwfSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMCks
IGdlbmVyYXRpb24oMCl9Cit7UFRTKHsxMC8xMCA9IDEuMDAwMDAwfSksIERUUyh7MTAvMTAgPSAx
LjAwMDAwMH0pLCBkdXJhdGlvbih7MjAvMTAgPSAyLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJh
dGlvbigwKX0KK3tQVFMoezMwLzEwID0gMy4wMDAwMDB9KSwgRFRTKHszMC8xMCA9IDMuMDAwMDAw
fSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9
Cit7UFRTKHs1MC8xMCA9IDUuMDAwMDAwfSksIERUUyh7MzUvMTAgPSAzLjUwMDAwMH0pLCBkdXJh
dGlvbih7NS8xMCA9IDAuNTAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7
NDAvMTAgPSA0LjAwMDAwMH0pLCBEVFMoezQwLzEwID0gNC4wMDAwMDB9KSwgZHVyYXRpb24oezIw
LzEwID0gMi4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitFTkQgT0YgVEVTVAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWEwNzYwMTdjNDBjZDM0ZTAyNDViNWY1Nzk3MmU5MjY5MTU1OGQ2MQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDY0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJj
ZS1hcHBlbmQtYWNiLW5vLWZyYW1lLWxvc3Q8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJtb2Nr
LW1lZGlhLXNvdXJjZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIg
c291cmNlQnVmZmVyOworICAgIHZhciBpbml0U2VnbWVudDsKKworICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuaW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSgpOwor
CisgICAgZnVuY3Rpb24gZG91YmxlSWJwU2FtcGxlUnVuKCkgeworICAgICAgICAvLyBJQlAgaW4g
cHJlc2VudGF0aW9uIG9yZGVyLCBJUEIgaW4gZGVjb2RlIG9yZGVyLgorICAgICAgICAvLyBTb21l
IE1QNCBmaWxlcyBkbyBhIHRyaWNrIHdoZXJlIHRoZXkgcGxheSB3aXRoIHRoZSBkZWNvZGUgZHVy
YXRpb25zIHRvIGhhdmUgQi1mcmFtZXMgd2l0aCB0aGUgcHJlc2VudGF0aW9uCisgICAgICAgIC8v
IHRpbWVsaW5lIHN0YXJ0aW5nIGF0IHplcm8gd2l0aG91dCB1c2luZyBlZGl0IGxpc3RzLgorICAg
ICAgICAvLyBUaGlzIHRlc3QgY2hlY2tzIHRoZXNlIGtpbmQgb2YgZmlsZXMgYXJlIGhhbmRsZWQg
Y29ycmVjdGx5LgorICAgICAgICByZXR1cm4gY29uY2F0ZW5hdGVTYW1wbGVzKFsKKyAgICAgICAg
ICAgIG1ha2VBU2FtcGxlKCAwLCAgMCwgIDUsIDEwLCAxLCBTQU1QTEVfRkxBRy5TWU5DKSwgLy8g
SQorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMjAsICA1LCAgNSwgMTAsIDEsIFNBTVBMRV9GTEFH
Lk5PTkUpLCAvLyBQCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgxMCwgMTAsIDIwLCAxMCwgMSwg
U0FNUExFX0ZMQUcuTk9ORSksIC8vIEIKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDMwLCAzMCwg
IDUsIDEwLCAxLCBTQU1QTEVfRkxBRy5TWU5DKSwgLy8gSQorICAgICAgICAgICAgbWFrZUFTYW1w
bGUoNTAsIDM1LCAgNSwgMTAsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLCAvLyBQCisgICAgICAgICAg
ICBtYWtlQVNhbXBsZSg0MCwgNDAsIDIwLCAxMCwgMSwgU0FNUExFX0ZMQUcuTk9ORSksIC8vIEIK
KyAgICAgICAgXSk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBhc3luYyAoKSA9PiB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgc291
cmNlID0gbmV3IE1lZGlhU291cmNlKCk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnc291cmNlLnJl
YWR5U3RhdGUnLCAnY2xvc2VkJyk7CisgICAgICAgIGNvbnN0IHNvdXJjZU9wZW5lZCA9IHdhaXRG
b3Ioc291cmNlLCAnc291cmNlb3BlbicpOworCisgICAgICAgIGNvbnN0IHZpZGVvU291cmNlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc291cmNlJyk7CisgICAgICAgIHZpZGVvU291cmNlLnR5
cGUgPSAndmlkZW8vbW9jazsgY29kZWNzPW1vY2snOworICAgICAgICB2aWRlb1NvdXJjZS5zcmMg
PSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNvdXJjZSk7CisgICAgICAgIHZpZGVvLmFwcGVuZENoaWxk
KHZpZGVvU291cmNlKTsKKworICAgICAgICBhd2FpdCBzb3VyY2VPcGVuZWQ7CisgICAgICAgIHJ1
bignc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9jazsgY29k
ZWNzPW1vY2siKScpOworCisgICAgICAgIGluaXRTZWdtZW50ID0gbWFrZUFJbml0KDIwLCBbbWFr
ZUFUcmFjaygxLCAnbW9jaycsIFRSQUNLX0tJTkQuVklERU8pXSk7CisKKyAgICAgICAgcnVuKCdz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGluaXRTZWdtZW50KScpOworICAgICAgICBhd2FpdCB3
YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAgIHJ1bignc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihkb3VibGVJYnBTYW1wbGVSdW4oKSknKTsKKyAgICAgICAgYXdh
aXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICBjb25zb2xl
V3JpdGUoIkJ1ZmZlcmVkOiIpOworICAgICAgICBpbnRlcm5hbHMuYnVmZmVyZWRTYW1wbGVzRm9y
VHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpLmZvckVhY2goY29uc29sZVdyaXRlKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCJFbnF1ZXVlZDoiKTsKKyAgICAgICAgaW50ZXJuYWxzLmVucXVldWVkU2Ft
cGxlc0ZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisK
KyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmUzOTJlYzcyMjNlNTY3OTUxNDk2MDQzYjI2MDY5ZWI0ZmVjZTRmMTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWZpcnN0
LWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQtemVyby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBA
QAorCitFWFBFQ1RFRCAoc291cmNlLnJlYWR5U3RhdGUgPT0gJ2Nsb3NlZCcpIE9LCitFVkVOVChz
b3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZp
ZGVvL21vY2s7IGNvZGVjcz1tb2NrIikpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihp
bml0U2VnbWVudCkpCitFVkVOVCh1cGRhdGVlbmQpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1
ZmZlcihzeW5jU2FtcGxlUnVuKDUsIDEwKSkpCitFVkVOVCh1cGRhdGVlbmQpCitFbnF1ZXVlZCBz
byBmYXI6IChleHBlY3Rpbmcgbm8gZnJhbWVzIHlldCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5k
QnVmZmVyKHN5bmNTYW1wbGVSdW4oMCwgNSkpKQorRVZFTlQodXBkYXRlZW5kKQorRW5xdWV1ZWQg
bm93Ogore1BUUyh7MC8xID0gMC4wMDAwMDB9KSwgRFRTKHswLzEgPSAwLjAwMDAwMH0pLCBkdXJh
dGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsx
LzEgPSAxLjAwMDAwMH0pLCBEVFMoezEvMSA9IDEuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAx
LjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezIvMSA9IDIuMDAwMDAw
fSksIERUUyh7Mi8xID0gMi4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZs
YWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7My8xID0gMy4wMDAwMDB9KSwgRFRTKHszLzEg
PSAzLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVy
YXRpb24oMCl9Cit7UFRTKHs0LzEgPSA0LjAwMDAwMH0pLCBEVFMoezQvMSA9IDQuMDAwMDAwfSks
IGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQ
VFMoezUvMSA9IDUuMDAwMDAwfSksIERUUyh7NS8xID0gNS4wMDAwMDB9KSwgZHVyYXRpb24oezEv
MSA9IDEuMDAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQore1BUUyh7Ni8xID0gNi4w
MDAwMDB9KSwgRFRTKHs2LzEgPSA2LjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9
KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs3LzEgPSA3LjAwMDAwMH0pLCBEVFMo
ezcvMSA9IDcuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwg
Z2VuZXJhdGlvbigwKX0KK3tQVFMoezgvMSA9IDguMDAwMDAwfSksIERUUyh7OC8xID0gOC4wMDAw
MDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDAp
fQore1BUUyh7OS8xID0gOS4wMDAwMDB9KSwgRFRTKHs5LzEgPSA5LjAwMDAwMH0pLCBkdXJhdGlv
bih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitFTkQgT0YgVEVT
VAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQtemVyby5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5n
LWF0LXplcm8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOTdhNzUxMjNjMzIyODYyOGUwNjA4ZDk2ZDQ2ZTc4
MmEwNTM2MGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8uaHRtbApA
QCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPm1lZGlhLXNvdXJjZS1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm88L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSJtb2NrLW1lZGlhLXNvdXJjZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFy
IHNvdXJjZTsKKyAgICB2YXIgc291cmNlQnVmZmVyOworICAgIHZhciBpbml0U2VnbWVudDsKKwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuaW5pdGlhbGl6ZU1v
Y2tNZWRpYVNvdXJjZSgpOworCisgICAgZnVuY3Rpb24gc3luY1NhbXBsZVJ1bihzdGFydCwgZW5k
KSB7CisgICAgICAgIGNvbnN0IHNhbXBsZXMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgdGltZSA9
IHN0YXJ0OyB0aW1lIDwgZW5kOyB0aW1lKyspCisgICAgICAgICAgICBzYW1wbGVzLnB1c2gobWFr
ZUFTYW1wbGUodGltZSwgdGltZSwgMSwgMSwgMSwgdGltZSA9PT0gc3RhcnQgPyBTQU1QTEVfRkxB
Ry5TWU5DIDogU0FNUExFX0ZMQUcuTk9ORSkpOworICAgICAgICByZXR1cm4gY29uY2F0ZW5hdGVT
YW1wbGVzKHNhbXBsZXMpOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgYXN5bmMgKCkgPT4geworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAg
IHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJj
ZS5yZWFkeVN0YXRlJywgJ2Nsb3NlZCcpOworICAgICAgICBjb25zdCBzb3VyY2VPcGVuZWQgPSB3
YWl0Rm9yKHNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBjb25zdCB2aWRlb1NvdXJj
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvdXJjZScpOworICAgICAgICB2aWRlb1NvdXJj
ZS50eXBlID0gJ3ZpZGVvL21vY2s7IGNvZGVjcz1tb2NrJzsKKyAgICAgICAgdmlkZW9Tb3VyY2Uu
c3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpOworICAgICAgICB2aWRlby5hcHBlbmRD
aGlsZCh2aWRlb1NvdXJjZSk7CisKKyAgICAgICAgYXdhaXQgc291cmNlT3BlbmVkOworICAgICAg
ICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7
IGNvZGVjcz1tb2NrIiknKTsKKworICAgICAgICBpbml0U2VnbWVudCA9IG1ha2VBSW5pdCgxMCwg
W21ha2VBVHJhY2soMSwgJ21vY2snLCBUUkFDS19LSU5ELlZJREVPKV0pOworCisgICAgICAgIHJ1
bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpbml0U2VnbWVudCknKTsKKyAgICAgICAgYXdh
aXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICBydW4oJ3Nv
dXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoc3luY1NhbXBsZVJ1big1LCAxMCkpJyk7CisgICAgICAg
IGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCJFbnF1ZXVlZCBzbyBmYXI6IChleHBlY3Rpbmcgbm8gZnJhbWVzIHlldCkiKTsK
KyAgICAgICAgaW50ZXJuYWxzLmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoc291cmNlQnVmZmVy
LCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIu
YXBwZW5kQnVmZmVyKHN5bmNTYW1wbGVSdW4oMCwgNSkpJyk7CisgICAgICAgIGF3YWl0IHdhaXRG
b3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCJF
bnF1ZXVlZCBub3c6Iik7CisgICAgICAgIGludGVybmFscy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFj
a0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25zb2xlV3JpdGUpOworCisgICAgICAgIGVu
ZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDx2
aWRlbyBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTM0ZDZjMDFhMzY4MDkxNzE1OGUxZGFlNmEyZDIyMzJjZTI5NTdlNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtcmVtb3ZlLWItZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKKworRVhQRUNU
RUQgKHNvdXJjZS5yZWFkeVN0YXRlID09ICdjbG9zZWQnKSBPSworRVZFTlQoc291cmNlb3BlbikK
K1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBj
b2RlY3M9bW9jayIpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQp
KQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaWJwU2Ft
cGxlUnVuKCkpKQorRVZFTlQodXBkYXRlZW5kKQore1BUUyh7MC8xID0gMC4wMDAwMDB9KSwgRFRT
KHstMS8xID0gLTEuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygx
KSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezIvMSA9IDIuMDAwMDAwfSksIERUUyh7MC8xID0gMC4w
MDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9u
KDApfQore1BUUyh7MS8xID0gMS4wMDAwMDB9KSwgRFRTKHsxLzEgPSAxLjAwMDAwMH0pLCBkdXJh
dGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitSVU4oc291
cmNlQnVmZmVyLnJlbW92ZSgxLCAyKSkKK0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihzb3VyY2VCdWZm
ZXIuYXBwZW5kQnVmZmVyKG5ldyBVaW50OEFycmF5KCkpKQorRVZFTlQodXBkYXRlZW5kKQorVGhl
IGZyYW1lIHdpdGggcHJlc2VudGF0aW9uIHRpbWUgWzEsIDIpIHNob3VsZCBoYXZlIGJlZW4gZGVs
ZXRlZCBmcm9tIHRoZSBidWZmZXJlZCBzYW1wbGVzIGFuZCBhIHJlZW5xdWV1ZSBtdXN0IGhhdmUg
aGFwcGVuZWQuIFRoYXQgZnJhbWUgc2hvdWxkIG5vdCBoYXZlIGJlZW4gZW5xdWV1ZWQuCitCdWZm
ZXJlZDoKK3tQVFMoezAvMSA9IDAuMDAwMDAwfSksIERUUyh7LTEvMSA9IC0xLjAwMDAwMH0pLCBk
dXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRT
KHsyLzEgPSAyLjAwMDAwMH0pLCBEVFMoezAvMSA9IDAuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEg
PSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK0VucXVldWVkOgore1BUUyh7
MC8xID0gMC4wMDAwMDB9KSwgRFRTKHstMS8xID0gLTEuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEg
PSAxLjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezIvMSA9IDIuMDAw
MDAwfSksIERUUyh7MC8xID0gMC4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSks
IGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5o
dG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUt
Yi1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNzUzMGU1NzQzNjc1NjZlZjllNjMyNzU1OWI3Y2Uz
ZGM5Mjc5YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLXJlbW92ZS1iLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYXBw
ZW5kLXJlbW92ZS1iLWZyYW1lPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0ibW9jay1tZWRpYS1z
b3VyY2UuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHZhciBzb3VyY2U7CisgICAgdmFyIHNvdXJjZUJ1
ZmZlcjsKKyAgICB2YXIgaW5pdFNlZ21lbnQ7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLmluaXRpYWxpemVNb2NrTWVkaWFTb3VyY2UoKTsKKworICAgIGZ1
bmN0aW9uIGlicFNhbXBsZVJ1bigpIHsKKyAgICAgICAgLy8gSUJQIGluIHByZXNlbnRhdGlvbiBv
cmRlciwgSVBCIGluIGRlY29kZSBvcmRlci4KKyAgICAgICAgcmV0dXJuIGNvbmNhdGVuYXRlU2Ft
cGxlcyhbCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgwLCAtMSwgMSwgMSwgMSwgU0FNUExFX0ZM
QUcuU1lOQyksIC8vIEkKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDIsICAwLCAxLCAxLCAxLCBT
QU1QTEVfRkxBRy5OT05FKSwgLy8gUAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMSwgIDEsIDEs
IDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLCAvLyBCCisgICAgICAgIF0pOworICAgIH0KKworICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgKCkgPT4geworICAgICAgICBm
aW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgIHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJjZS5yZWFkeVN0YXRlJywgJ2Nsb3NlZCcpOworICAg
ICAgICBjb25zdCBzb3VyY2VPcGVuZWQgPSB3YWl0Rm9yKHNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsK
KworICAgICAgICBjb25zdCB2aWRlb1NvdXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nv
dXJjZScpOworICAgICAgICB2aWRlb1NvdXJjZS50eXBlID0gJ3ZpZGVvL21vY2s7IGNvZGVjcz1t
b2NrJzsKKyAgICAgICAgdmlkZW9Tb3VyY2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3Vy
Y2UpOworICAgICAgICB2aWRlby5hcHBlbmRDaGlsZCh2aWRlb1NvdXJjZSk7CisKKyAgICAgICAg
YXdhaXQgc291cmNlT3BlbmVkOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNvdXJjZS5h
ZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIiknKTsKKworICAgICAgICBp
bml0U2VnbWVudCA9IG1ha2VBSW5pdCgxMCwgW21ha2VBVHJhY2soMSwgJ21vY2snLCBUUkFDS19L
SU5ELlZJREVPKV0pOworCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihp
bml0U2VnbWVudCknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRh
dGVlbmQnKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaWJwU2Ft
cGxlUnVuKCkpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRl
ZW5kJyk7CisgICAgICAgIGludGVybmFscy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJj
ZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25zb2xlV3JpdGUpOworCisgICAgICAgIHJ1bignc291cmNl
QnVmZmVyLnJlbW92ZSgxLCAyKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZl
ciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAgIC8vIEV2ZW4gaWYgLnJlbW92ZSgpIHNldHMgdHJh
Y2tCdWZmZXIubmVlZHNSZWVucXVldWVpbmcgdG8gdHJ1ZSwgcmVlbnF1ZXVlaW5nIHdpbGwgb25s
eSBoYXBwZW4gYWZ0ZXIgYW4gYXBwZW5kLgorICAgICAgICAvLyBTbyBsZXQncyBtYWtlIGFuIGVt
cHR5IGFwcGVuZC4KKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG5ldyBV
aW50OEFycmF5KCkpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBk
YXRlZW5kJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCJUaGUgZnJhbWUgd2l0aCBwcmVzZW50
YXRpb24gdGltZSBbMSwgMikgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVkIGZyb20gdGhlIGJ1ZmZl
cmVkIHNhbXBsZXMgYW5kICIgKworICAgICAgICAgICAgImEgcmVlbnF1ZXVlIG11c3QgaGF2ZSBo
YXBwZW5lZC4gVGhhdCBmcmFtZSBzaG91bGQgbm90IGhhdmUgYmVlbiBlbnF1ZXVlZC4iKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCJCdWZmZXJlZDoiKTsKKyAgICAgICAgaW50ZXJuYWxzLmJ1ZmZl
cmVkU2FtcGxlc0ZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0
ZSk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgiRW5xdWV1ZWQ6Iik7CisgICAgICAgIGludGVybmFs
cy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25z
b2xlV3JpdGUpOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387229</attachid>
            <date>2020-01-09 07:54:26 -0800</date>
            <delta_ts>2020-01-15 06:40:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201323-20200109165424.patch</filename>
            <type>text/plain</type>
            <size>27628</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwMjhlY2U1ZGZlM2Zi
ODMwYmQwNWQ1OGI0NGIyNmRlZGVjZGU3YS4uMDg5NmY2ZWQ3NDU3YjRmYTM2YmNhNzhmODA1ODUx
ZTNjOTI3YjI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA0LTA5ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXSBEb24n
dCBlbnF1ZXVlIHNhbXBsZXMgdGhhdCBzdGFydCBhdCBhIGJpZyBkaXNjb250aW51aXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzMjMKKworICAg
ICAgICBXaXRoIHRoZSBvbGQgbG9naWMgU291cmNlQnVmZmVyIHdhcyBlbnF1ZXVlaW5nIHRoZSBm
aXJzdCBmcmFtZSB0byBiZQorICAgICAgICBhcHBlbmRlZCBpbiBhbnkgY2lyY3Vtc3RhbmNlcy4g
VGhpcyB3YXMgYSBidWcgYmVjYXVzZSB0aGUgdXNlciBjb3VsZAorICAgICAgICBhcHBlbmQgZmly
c3QgWzUsIDEwKSBhbmQgdGhlbiBbMCwgNSkuIFdpdGggdGhlIG9sZCBiZWhhdmlvciBbNSwgMTAp
CisgICAgICAgIHdvdWxkIGJlIGVucXVldWVkIGZpcnN0IGRlc3BpdGUgYmVpbmcgY2xlYXJseSBh
aGVhZCBvZiB0aGUgaW5pdGlhbAorICAgICAgICBwbGF5YmFjayB0aW1lICh6ZXJvKS4gQnkgdGhl
IHRpbWUgWzAsIDUpIGlzIGVucXVldWVkIGl0IGNhbid0IGJlCisgICAgICAgIGVucXVldWVkIGFu
eW1vcmUgYmVjYXVzZSB0aGUgZGVjb2RlUXVldWUgaXMgYWxyZWFkeSBhaGVhZC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIHRoYXQgbG9naWMgdG8gd29yayB3aGVuIHRoZSBmaXJzdCBzZWdt
ZW50cyBhcmUKKyAgICAgICAgYXBwZW5kZWQgdW5vcmRlcmVkLiBUaGUgdGVzdCBtZWRpYS1zb3Vy
Y2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWwKKyAgICAgICAgdmFsaWRh
dGVzIGl0LgorCisgICAgICAgIFRoZSB0ZXN0IG1lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0
aW9uLWR1cmF0aW9ucy5odG1sIGNoZWNrcyB0aGUKKyAgICAgICAgbmV3IGxvZ2ljIGRvZXMgbm90
IGJyZWFrIGluIHByZXNlbmNlIG9mIHByZXNlbnRhdGlvbiBkdXJhdGlvbiAhPQorICAgICAgICBk
ZWNvZGUgZHVyYXRpb24uCisKKyAgICAgICAgQXMgcGFydCBvZiB0aGUgc2FtZSBsb2dpYyBibG9j
aywgdGhlIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgd2FzCisgICAgICAgIHVzZWQgdG8g
ZGVjaWRlIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gcGVyZm9ybSByZWVucXVldWUgYWZ0ZXIgYW4K
KyAgICAgICAgLmVyYXNlKCkgKGl0IGlzIG5lY2Vzc2FyeSBpZiBhbnkgZW5xdWV1ZWQgZnJhbWVz
IGFyZSByZXBsYWNlZCkuIFVzaW5nCisgICAgICAgIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRp
bWUgd2FzIG5vdCBlbnRpcmVseSBhY2N1cmF0ZSBpbiBwcmVzZW5jZSBvZgorICAgICAgICBCLWZy
YW1lcywgYXMgeW91IGNvdWxkIGVyYXNlIGEgZnJhbWUgdGhhdCBoYXMgYSBwcmVzZW50YXRpb24g
dGltZQorICAgICAgICBoaWdoZXIgdGhhbiB0aGUgbGFzdCBlbnF1ZXVlZCBvbmUuIFRoYXQgbG9n
aWMgaXMgcmVwbGFjZWQgd2l0aCBhCisgICAgICAgIG1vbm90b25pY2x5IGluY3JlYXNpbmcgaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSBhbmQgaXMgdGVzdGVkCisgICAgICAgIGJ5IG1l
ZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwKKyAgICAgICAgICAgICAg
IG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGlu
Zy1hdC16ZXJvLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtcmVtb3ZlLWItZnJhbWUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpUcmFj
a0J1ZmZlcjo6VHJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpy
ZW1vdmVDb2RlZEZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OlRyYWNrQnVmZmVyOjpsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbik6IERlbGV0ZWQuCisK
IDIwMjAtMDEtMDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQxMzIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggYzUxMWM0
MjczODNiZWUzYWJkZDNiYWMxYWM5NGJlYWM0NWJkN2M1Mi4uZWRhMmM5MzZhNDY1OTExNTdmMTIw
OTA2NTRhMjE0Y2QzMGYxYTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtNjYsMTUgKzY2LDI0IEBAIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChTb3VyY2VCdWZmZXIpOwogCiBzdGF0aWMgY29uc3QgZG91Ymxl
IEV4cG9uZW50aWFsTW92aW5nQXZlcmFnZUNvZWZmaWNpZW50ID0gMC4xOwogCisvLyBEbyBub3Qg
ZW5xdWV1ZSBzYW1wbGVzIHNwYW5uaW5nIGEgc2lnbmlmaWNhbnQgdW5idWZmZXJlZCBnYXAuCisv
LyBOT1RFOiBvbmUgc2Vjb25kIGlzIHNvbWV3aGF0IGFyYml0cmFyeS4gTWVkaWFTb3VyY2U6Om1v
bml0b3JTb3VyY2VCdWZmZXJzKCkgaXMgcnVuCisvLyBvbiB0aGUgcGxheWJhY2tUaW1lciwgd2hp
Y2ggaXMgZWZmZWN0aXZlbHkgZXZlcnkgMzUwbXMuIEFsbG93aW5nID4gMzUwbXMgZ2FwIGJldHdl
ZW4KKy8vIGVucXVldWVkIHNhbXBsZXMgYWxsb3dzIGZvciBzaXR1YXRpb25zIHdoZXJlIHdlIG92
ZXJydW4gdGhlIGVuZCBvZiBhIGJ1ZmZlcmVkIHJhbmdlCisvLyBidXQgZG9uJ3Qgbm90aWNlIGZv
ciAzNTBzIG9mIHBsYXliYWNrIHRpbWUsIGFuZCB0aGUgY2xpZW50IGNhbiBlbnF1ZXVlIGRhdGEg
Zm9yIHRoZQorLy8gbmV3IGN1cnJlbnQgdGltZSB3aXRob3V0IHRyaWdnZXJpbmcgdGhpcyBlYXJs
eSByZXR1cm4uCisvLyBGSVhNRSgxMzU4NjcpOiBNYWtlIHRoaXMgZ2FwIGRldGVjdGlvbiBsb2dp
YyBsZXNzIGFyYml0cmFyeS4KK3N0YXRpYyBjb25zdCBNZWRpYVRpbWUgZGlzY29udGludWl0eVRv
bGVyYW5jZSA9IE1lZGlhVGltZSgxLCAxKTsKKwogc3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tC
dWZmZXIgewogICAgIE1lZGlhVGltZSBsYXN0RGVjb2RlVGltZXN0YW1wOwogICAgIE1lZGlhVGlt
ZSBncmVhdGVzdERlY29kZUR1cmF0aW9uOwogICAgIE1lZGlhVGltZSBsYXN0RnJhbWVEdXJhdGlv
bjsKICAgICBNZWRpYVRpbWUgaGlnaGVzdFByZXNlbnRhdGlvblRpbWVzdGFtcDsKLSAgICBNZWRp
YVRpbWUgbGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZTsKKyAgICBNZWRpYVRpbWUgaGlnaGVz
dEVucXVldWVkUHJlc2VudGF0aW9uVGltZTsKICAgICBNZWRpYVRpbWUgbWluaW11bUVucXVldWVk
UHJlc2VudGF0aW9uVGltZTsKICAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6S2V5VHlwZSBsYXN0
RW5xdWV1ZWREZWNvZGVLZXk7Ci0gICAgTWVkaWFUaW1lIGxhc3RFbnF1ZXVlZERlY29kZUR1cmF0
aW9uOworICAgIE1lZGlhVGltZSBlbnF1ZXVlRGlzY29udGludWl0eUJvdW5kYXJ5IHsgTWVkaWFU
aW1lOjp6ZXJvVGltZSgpIH07CiAgICAgTWVkaWFUaW1lIHJvdW5kZWRUaW1lc3RhbXBPZmZzZXQ7
CiAgICAgdWludDMyX3QgbGFzdEZyYW1lVGltZXNjYWxlIHsgMCB9OwogICAgIGJvb2wgbmVlZFJh
bmRvbUFjY2Vzc0ZsYWcgeyB0cnVlIH07CkBAIC05MSw5ICsxMDAsOSBAQCBzdHJ1Y3QgU291cmNl
QnVmZmVyOjpUcmFja0J1ZmZlciB7CiAgICAgICAgICwgZ3JlYXRlc3REZWNvZGVEdXJhdGlvbihN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAgICAgICwgbGFzdEZyYW1lRHVyYXRpb24oTWVk
aWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAgICAgICAsIGhpZ2hlc3RQcmVzZW50YXRpb25UaW1l
c3RhbXAoTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQotICAgICAgICAsIGxhc3RFbnF1ZXVlZFBy
ZXNlbnRhdGlvblRpbWUoTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQorICAgICAgICAsIGhpZ2hl
c3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUoTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAg
ICAgICAsIGxhc3RFbnF1ZXVlZERlY29kZUtleSh7TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpLCBN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCl9KQotICAgICAgICAsIGxhc3RFbnF1ZXVlZERlY29kZUR1
cmF0aW9uKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKKyAgICAgICAgLCBlbnF1ZXVlRGlzY29u
dGludWl0eUJvdW5kYXJ5KGRpc2NvbnRpbnVpdHlUb2xlcmFuY2UpCiAgICAgewogICAgIH0KIH07
CkBAIC04NjcsOCArODc2LDggQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnJlbW92ZUNvZGVkRnJhbWVz
KGNvbnN0IE1lZGlhVGltZSYgc3RhcnQsIGNvbnN0IE1lZGlhVGltZSYgZW4KIAogICAgICAgICAv
LyBPbmx5IGZvcmNlIHRoZSBUcmFja0J1ZmZlciB0byByZS1lbnF1ZXVlIGlmIHRoZSByZW1vdmVk
IHJhbmdlcyBvdmVybGFwIHdpdGggZW5xdWV1ZWQgYW5kIHBvc3NpYmx5CiAgICAgICAgIC8vIG5v
dCB5ZXQgZGlzcGxheWVkIHNhbXBsZXMuCi0gICAgICAgIGlmICh0cmFja0J1ZmZlci5sYXN0RW5x
dWV1ZWRQcmVzZW50YXRpb25UaW1lLmlzVmFsaWQoKSAmJiBjdXJyZW50TWVkaWFUaW1lIDwgdHJh
Y2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSkgewotICAgICAgICAgICAgUGxh
dGZvcm1UaW1lUmFuZ2VzIHBvc3NpYmx5RW5xdWV1ZWRSYW5nZXMoY3VycmVudE1lZGlhVGltZSwg
dHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSk7CisgICAgICAgIGlmICh0
cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlzVmFsaWQoKSAmJiBj
dXJyZW50TWVkaWFUaW1lIDwgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9u
VGltZSkgeworICAgICAgICAgICAgUGxhdGZvcm1UaW1lUmFuZ2VzIHBvc3NpYmx5RW5xdWV1ZWRS
YW5nZXMoY3VycmVudE1lZGlhVGltZSwgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2Vu
dGF0aW9uVGltZSk7CiAgICAgICAgICAgICBwb3NzaWJseUVucXVldWVkUmFuZ2VzLmludGVyc2Vj
dFdpdGgoZXJhc2VkUmFuZ2VzKTsKICAgICAgICAgICAgIGlmIChwb3NzaWJseUVucXVldWVkUmFu
Z2VzLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAgICAgdHJhY2tCdWZmZXIubmVlZHNSZWVucXVl
dWVpbmcgPSB0cnVlOwpAQCAtMTc0MCw4ICsxNzQ5LDggQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNv
dXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAg
ICAgICAgICAgICAvLyBPbmx5IGZvcmNlIHRoZSBUcmFja0J1ZmZlciB0byByZS1lbnF1ZXVlIGlm
IHRoZSByZW1vdmVkIHJhbmdlcyBvdmVybGFwIHdpdGggZW5xdWV1ZWQgYW5kIHBvc3NpYmx5CiAg
ICAgICAgICAgICAvLyBub3QgeWV0IGRpc3BsYXllZCBzYW1wbGVzLgogICAgICAgICAgICAgTWVk
aWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUgPSBtX3NvdXJjZS0+Y3VycmVudFRpbWUoKTsKLSAgICAg
ICAgICAgIGlmICh0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlzVmFs
aWQoKSAmJiBjdXJyZW50TWVkaWFUaW1lIDwgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2Vu
dGF0aW9uVGltZSkgewotICAgICAgICAgICAgICAgIFBsYXRmb3JtVGltZVJhbmdlcyBwb3NzaWJs
eUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVl
ZFByZXNlbnRhdGlvblRpbWUpOworICAgICAgICAgICAgaWYgKHRyYWNrQnVmZmVyLmhpZ2hlc3RF
bnF1ZXVlZFByZXNlbnRhdGlvblRpbWUuaXNWYWxpZCgpICYmIGN1cnJlbnRNZWRpYVRpbWUgPCB0
cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKSB7CisgICAgICAgICAg
ICAgICAgUGxhdGZvcm1UaW1lUmFuZ2VzIHBvc3NpYmx5RW5xdWV1ZWRSYW5nZXMoY3VycmVudE1l
ZGlhVGltZSwgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSk7CiAg
ICAgICAgICAgICAgICAgcG9zc2libHlFbnF1ZXVlZFJhbmdlcy5pbnRlcnNlY3RXaXRoKGVyYXNl
ZFJhbmdlcyk7CiAgICAgICAgICAgICAgICAgaWYgKHBvc3NpYmx5RW5xdWV1ZWRSYW5nZXMubGVu
Z3RoKCkpCiAgICAgICAgICAgICAgICAgICAgIHRyYWNrQnVmZmVyLm5lZWRzUmVlbnF1ZXVlaW5n
ID0gdHJ1ZTsKQEAgLTE3NjMsMTEgKzE3NzIsMTUgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJj
ZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAg
ICAgIHRyYWNrQnVmZmVyLnNhbXBsZXMuYWRkU2FtcGxlKHNhbXBsZSk7CiAKICAgICAgICAgLy8g
Tm90ZTogVGhlIHRlcm1pbm9sb2d5IGhlcmUgaXMgY29uZnVzaW5nOiAiZW5xdWV1aW5nIiBtZWFu
cyBwcm92aWRpbmcgYSBmcmFtZSB0byB0aGUgaW5uZXIgbWVkaWEgZnJhbWV3b3JrLgotICAgICAg
ICAvLyBGaXJzdCwgZnJhbWVzIGFyZSBpbnNlcnRlZCBpbiB0aGUgZGVjb2RlIHF1ZXVlOyBsYXRl
ciwgYXQgdGhlIGVuZCBvZiB0aGUgYXBwZW5kIGFsbCB0aGUgZnJhbWVzIGluIHRoZSBkZWNvZGUK
LSAgICAgICAgLy8gcXVldWUgYXJlICJlbnF1ZXVlZCIgKHNlbnQgdG8gdGhlIGlubmVyIG1lZGlh
IGZyYW1ld29yaykgaW4gYHByb3ZpZGVNZWRpYURhdGEoKWAuCisgICAgICAgIC8vIEZpcnN0LCBm
cmFtZXMgYXJlIGluc2VydGVkIGluIHRoZSBkZWNvZGUgcXVldWU7IGxhdGVyLCBhdCB0aGUgZW5k
IG9mIHRoZSBhcHBlbmQgc29tZSBvZiB0aGUgZnJhbWVzIGluIHRoZQorICAgICAgICAvLyBkZWNv
ZGUgbWF5IGJlICJlbnF1ZXVlZCIgKHNlbnQgdG8gdGhlIGlubmVyIG1lZGlhIGZyYW1ld29yaykg
aW4gYHByb3ZpZGVNZWRpYURhdGEoKWAuCisgICAgICAgIC8vCisgICAgICAgIC8vIEluIG9yZGVy
IHRvIGNoZWNrIHdoZXRoZXIgYSBmcmFtZSBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGRlY29kZSBx
dWV1ZSB3ZSBjaGVjayB0aGF0IGl0IGRvZXMgbm90IHByZWNlZGUgYW55CisgICAgICAgIC8vIGZy
YW1lIGFscmVhZHkgZW5xdWV1ZWQuCiAgICAgICAgIC8vCi0gICAgICAgIC8vIEluIG9yZGVyIHRv
IGNoZWNrIHdoZXRoZXIgYSBmcmFtZSBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGRlY29kZSBxdWV1
ZSB3ZSBjaGVjayB3aGV0aGVyIGl0IHN0YXJ0cyBhZnRlciB0aGUKLSAgICAgICAgLy8gbGFzdEVu
cXVldWVkRGVjb2RlS2V5LgorICAgICAgICAvLyBOb3RlIHRoYXQgYWRkaW5nIGEgZnJhbWUgdG8g
dGhlIGRlY29kZSBxdWV1ZSBpcyBubyBndWFyYW50ZWUgdGhhdCBpdCB3aWxsIGJlIGFjdHVhbGx5
IGVucXVldWVkIGF0IHRoYXQgcG9pbnQuCisgICAgICAgIC8vIElmIHRoZSBmcmFtZSBpcyBhZnRl
ciB0aGUgZGlzY29udGludWl0eSBib3VuZGFyeSwgdGhlIGVucXVldWVpbmcgYWxnb3JpdGhtIHdp
bGwgaG9sZCBpdCB0aGVyZSB1bnRpbCBzYW1wbGVzCisgICAgICAgIC8vIHdpdGggZWFybGllciB0
aW1lc3RhbXBzIGFyZSBlbnF1ZXVlZC4gVGhlIGRlY29kZSBxdWV1ZSBpcyBub3QgRklGTywgYnV0
IHJhdGhlciBhbiBvcmRlcmVkIG1hcC4KICAgICAgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXA6Oktl
eVR5cGUgZGVjb2RlS2V5KHNhbXBsZS5kZWNvZGVUaW1lKCksIHNhbXBsZS5wcmVzZW50YXRpb25U
aW1lKCkpOwogICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5LmZp
cnN0LmlzSW52YWxpZCgpIHx8IGRlY29kZUtleSA+IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERl
Y29kZUtleSkgewogICAgICAgICAgICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuaW5zZXJ0KERl
Y29kZU9yZGVyU2FtcGxlTWFwOjpNYXBUeXBlOjp2YWx1ZV90eXBlKGRlY29kZUtleSwgJnNhbXBs
ZSkpOwpAQCAtMjAyMiwyOCArMjAzNSwyMSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1l
ZGlhRGF0YShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAg
ICAgIC8vIHJhdGhlciB0aGFuIHdoZW4gYWxsIHNhbXBsZXMgaGF2ZSBiZWVuIGVucXVldWVkLgog
ICAgICAgICBhdXRvIHNhbXBsZSA9IHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmJlZ2luKCktPnNl
Y29uZDsKIAotICAgICAgICAvLyBEbyBub3QgZW5xdWV1ZSBzYW1wbGVzIHNwYW5uaW5nIGEgc2ln
bmlmaWNhbnQgdW5idWZmZXJlZCBnYXAuCi0gICAgICAgIC8vIE5PVEU6IG9uZSBzZWNvbmQgaXMg
c29tZXdoYXQgYXJiaXRyYXJ5LiBNZWRpYVNvdXJjZTo6bW9uaXRvclNvdXJjZUJ1ZmZlcnMoKSBp
cyBydW4KLSAgICAgICAgLy8gb24gdGhlIHBsYXliYWNrVGltZXIsIHdoaWNoIGlzIGVmZmVjdGl2
ZWx5IGV2ZXJ5IDM1MG1zLiBBbGxvd2luZyA+IDM1MG1zIGdhcCBiZXR3ZWVuCi0gICAgICAgIC8v
IGVucXVldWVkIHNhbXBsZXMgYWxsb3dzIGZvciBzaXR1YXRpb25zIHdoZXJlIHdlIG92ZXJydW4g
dGhlIGVuZCBvZiBhIGJ1ZmZlcmVkIHJhbmdlCi0gICAgICAgIC8vIGJ1dCBkb24ndCBub3RpY2Ug
Zm9yIDM1MHMgb2YgcGxheWJhY2sgdGltZSwgYW5kIHRoZSBjbGllbnQgY2FuIGVucXVldWUgZGF0
YSBmb3IgdGhlCi0gICAgICAgIC8vIG5ldyBjdXJyZW50IHRpbWUgd2l0aG91dCB0cmlnZ2VyaW5n
IHRoaXMgZWFybHkgcmV0dXJuLgotICAgICAgICAvLyBGSVhNRSgxMzU4NjcpOiBNYWtlIHRoaXMg
Z2FwIGRldGVjdGlvbiBsb2dpYyBsZXNzIGFyYml0cmFyeS4KLSAgICAgICAgTWVkaWFUaW1lIG9u
ZVNlY29uZCgxLCAxKTsKLSAgICAgICAgaWYgKHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29k
ZUtleS5maXJzdC5pc1ZhbGlkKCkKLSAgICAgICAgICAgICYmIHRyYWNrQnVmZmVyLmxhc3RFbnF1
ZXVlZERlY29kZUR1cmF0aW9uLmlzVmFsaWQoKQotICAgICAgICAgICAgJiYgc2FtcGxlLT5kZWNv
ZGVUaW1lKCkgLSB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkuZmlyc3QgPiBvbmVT
ZWNvbmQgKyB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbikgewotCi0gICAg
ICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCAiYmFpbGluZyBlYXJseSBiZWNhdXNlIG9mIHVu
YnVmZmVyZWQgZ2FwLCBuZXcgc2FtcGxlOiAiLCBzYW1wbGUtPmRlY29kZVRpbWUoKSwgIiwgbGFz
dCBlbnF1ZXVlZCBzYW1wbGUgZW5kczogIiwgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2Rl
S2V5LmZpcnN0ICsgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb24pOworICAg
ICAgICBpZiAoc2FtcGxlLT5kZWNvZGVUaW1lKCkgPiB0cmFja0J1ZmZlci5lbnF1ZXVlRGlzY29u
dGludWl0eUJvdW5kYXJ5KSB7CisgICAgICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklFUiwg
ImJhaWxpbmcgZWFybHkgYmVjYXVzZSBvZiB1bmJ1ZmZlcmVkIGdhcCwgbmV3IHNhbXBsZTogIiwg
c2FtcGxlLT5kZWNvZGVUaW1lKCksICIgPj0gdGhlIGN1cnJlbnQgZGlzY29udGludWl0eSBib3Vu
ZGFyeTogIiwgdHJhY2tCdWZmZXIuZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFyeSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFJlbW92ZSB0aGUgc2FtcGxl
IGZyb20gdGhlIGRlY29kZSBxdWV1ZSBub3cuCiAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1
ZXVlLmVyYXNlKHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmJlZ2luKCkpOwogCi0gICAgICAgIHRy
YWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBzYW1wbGUtPnByZXNlbnRh
dGlvblRpbWUoKTsKKyAgICAgICAgTWVkaWFUaW1lIHNhbXBsZVByZXNlbnRhdGlvbkVuZCA9IHNh
bXBsZS0+cHJlc2VudGF0aW9uVGltZSgpICsgc2FtcGxlLT5kdXJhdGlvbigpOworICAgICAgICBp
ZiAodHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc0ludmFsaWQo
KSB8fCBzYW1wbGVQcmVzZW50YXRpb25FbmQgPiB0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQ
cmVzZW50YXRpb25UaW1lKQorICAgICAgICAgICAgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVk
UHJlc2VudGF0aW9uVGltZSA9IHNhbXBsZVByZXNlbnRhdGlvbkVuZDsKKwogICAgICAgICB0cmFj
a0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkgPSB7c2FtcGxlLT5kZWNvZGVUaW1lKCksIHNh
bXBsZS0+cHJlc2VudGF0aW9uVGltZSgpfTsKLSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVl
dWVkRGVjb2RlRHVyYXRpb24gPSBzYW1wbGUtPmR1cmF0aW9uKCk7CisgICAgICAgIHRyYWNrQnVm
ZmVyLmVucXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkgPSBzYW1wbGUtPmRlY29kZVRpbWUoKSAr
IHNhbXBsZS0+ZHVyYXRpb24oKSArIGRpc2NvbnRpbnVpdHlUb2xlcmFuY2U7CisKICAgICAgICAg
bV9wcml2YXRlLT5lbnF1ZXVlU2FtcGxlKHNhbXBsZS5yZWxlYXNlTm9uTnVsbCgpLCB0cmFja0lE
KTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgKytlbnF1ZXVlZFNhbXBsZXM7
CkBAIC0yMTEzLDYgKzIxMTksMTAgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnJlZW5xdWV1ZU1lZGlh
Rm9yVGltZShUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIsIGNvbnN0IEF0b21TdHIKICAgICBtX3By
aXZhdGUtPmZsdXNoKHRyYWNrSUQpOwogICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmNsZWFy
KCk7CiAKKyAgICB0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0g
TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOworICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERl
Y29kZUtleSA9IHtNZWRpYVRpbWU6OmludmFsaWRUaW1lKCksIE1lZGlhVGltZTo6aW52YWxpZFRp
bWUoKX07CisgICAgdHJhY2tCdWZmZXIuZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFyeSA9IHRp
bWUgKyBkaXNjb250aW51aXR5VG9sZXJhbmNlOworCiAgICAgLy8gRmluZCB0aGUgc2FtcGxlIHdo
aWNoIGNvbnRhaW5zIHRoZSBjdXJyZW50IHByZXNlbnRhdGlvbiB0aW1lLgogICAgIGF1dG8gY3Vy
cmVudFNhbXBsZVBUU0l0ZXJhdG9yID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5wcmVzZW50YXRpb25P
cmRlcigpLmZpbmRTYW1wbGVDb250YWluaW5nUHJlc2VudGF0aW9uVGltZSh0aW1lKTsKIApAQCAt
MjE0MCwxOSArMjE1MCw2IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRp
bWUoVHJhY2tCdWZmZXImIHRyYWNrQnVmZmVyLCBjb25zdCBBdG9tU3RyCiAgICAgICAgIHRyYWNr
QnVmZmVyLmRlY29kZVF1ZXVlLmluc2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZTo6
dmFsdWVfdHlwZShkZWNvZGVLZXksIFdURk1vdmUoY29weSkpKTsKICAgICB9CiAKLSAgICBpZiAo
IXRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmVtcHR5KCkpIHsKLSAgICAgICAgYXV0byBsYXN0U2Ft
cGxlSXRlciA9IHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLnJiZWdpbigpOwotICAgICAgICBhdXRv
IGxhc3RTYW1wbGVEZWNvZGVLZXkgPSBsYXN0U2FtcGxlSXRlci0+Zmlyc3Q7Ci0gICAgICAgIGF1
dG8gbGFzdFNhbXBsZUR1cmF0aW9uID0gbGFzdFNhbXBsZUl0ZXItPnNlY29uZC0+ZHVyYXRpb24o
KTsKLSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IGxh
c3RTYW1wbGVEZWNvZGVLZXkuc2Vjb25kOwotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1
ZWREZWNvZGVLZXkgPSBsYXN0U2FtcGxlRGVjb2RlS2V5OwotICAgICAgICB0cmFja0J1ZmZlci5s
YXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbiA9IGxhc3RTYW1wbGVEdXJhdGlvbjsKLSAgICB9IGVs
c2UgewotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lID0g
TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1
ZWREZWNvZGVLZXkgPSB7TWVkaWFUaW1lOjppbnZhbGlkVGltZSgpLCBNZWRpYVRpbWU6OmludmFs
aWRUaW1lKCl9OwotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlv
biA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKLSAgICB9Ci0KICAgICAvLyBGaWxsIHRoZSBk
ZWNvZGUgcXVldWUgd2l0aCB0aGUgcmVtYWluaW5nIHNhbXBsZXMuCiAgICAgZm9yIChhdXRvIGl0
ZXIgPSBjdXJyZW50U2FtcGxlRFRTSXRlcmF0b3I7IGl0ZXIgIT0gdHJhY2tCdWZmZXIuc2FtcGxl
cy5kZWNvZGVPcmRlcigpLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29k
ZVF1ZXVlLmluc2VydCgqaXRlcik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzQwMTU4Y2QwODhlZGY5MmRmYzkwYjQ4OGYx
MWIwZTYxNDFkMWZkMi4uNWI0YjdiNDM5MzQ4NWNmZmYwOTljZmJmMGU0MzljNTYzYmM2YTBjYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA0LTA5ICBBbGljaWEgQm95YSBHYXJjw61hICA8
YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXSBEb24ndCBlbnF1ZXVlIHNhbXBsZXMg
dGhhdCBzdGFydCBhdCBhIGJpZyBkaXNjb250aW51aXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5n
LWF0LXplcm8uaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wMS0wNyAgVHJ1aXR0
IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIENvcnJlY3Qgc29tZSBjb25m
bGljdGluZyBleHBlY3RhdGlvbnMgZm9yIGZhc3QvdGV4dC9lbW9qaS1nZW5kZXItIHRlc3RzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFw
cGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlv
bnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMTdmZGM1MmQ0ZDdkZWVjMjUwMWRkZGEzM2M2
ZTQ3YThjMGVjMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDI0IEBACisKK0VYUEVDVEVEIChzb3VyY2UucmVhZHlTdGF0ZSA9PSAn
Y2xvc2VkJykgT0sKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gc291cmNl
LmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9jazsgY29kZWNzPW1vY2siKSkKK1JVTihzb3VyY2VC
dWZmZXIuYXBwZW5kQnVmZmVyKGluaXRTZWdtZW50KSkKK0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihz
b3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGRvdWJsZUlicFNhbXBsZVJ1bigpKSkKK0VWRU5UKHVw
ZGF0ZWVuZCkKK0J1ZmZlcmVkOgore1BUUyh7MC8xMCA9IDAuMDAwMDAwfSksIERUUyh7MC8xMCA9
IDAuMDAwMDAwfSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVy
YXRpb24oMCl9Cit7UFRTKHsyMC8xMCA9IDIuMDAwMDAwfSksIERUUyh7NS8xMCA9IDAuNTAwMDAw
fSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9
Cit7UFRTKHsxMC8xMCA9IDEuMDAwMDAwfSksIERUUyh7MTAvMTAgPSAxLjAwMDAwMH0pLCBkdXJh
dGlvbih7MjAvMTAgPSAyLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMo
ezMwLzEwID0gMy4wMDAwMDB9KSwgRFRTKHszMC8xMCA9IDMuMDAwMDAwfSksIGR1cmF0aW9uKHs1
LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs1MC8xMCA9
IDUuMDAwMDAwfSksIERUUyh7MzUvMTAgPSAzLjUwMDAwMH0pLCBkdXJhdGlvbih7NS8xMCA9IDAu
NTAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7NDAvMTAgPSA0LjAwMDAw
MH0pLCBEVFMoezQwLzEwID0gNC4wMDAwMDB9KSwgZHVyYXRpb24oezIwLzEwID0gMi4wMDAwMDB9
KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitFbnF1ZXVlZDoKK3tQVFMoezAvMTAgPSAwLjAw
MDAwMH0pLCBEVFMoezAvMTAgPSAwLjAwMDAwMH0pLCBkdXJhdGlvbih7NS8xMCA9IDAuNTAwMDAw
fSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MjAvMTAgPSAyLjAwMDAwMH0pLCBE
VFMoezUvMTAgPSAwLjUwMDAwMH0pLCBkdXJhdGlvbih7NS8xMCA9IDAuNTAwMDAwfSksIGZsYWdz
KDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MTAvMTAgPSAxLjAwMDAwMH0pLCBEVFMoezEwLzEw
ID0gMS4wMDAwMDB9KSwgZHVyYXRpb24oezIwLzEwID0gMi4wMDAwMDB9KSwgZmxhZ3MoMCksIGdl
bmVyYXRpb24oMCl9Cit7UFRTKHszMC8xMCA9IDMuMDAwMDAwfSksIERUUyh7MzAvMTAgPSAzLjAw
MDAwMH0pLCBkdXJhdGlvbih7NS8xMCA9IDAuNTAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9u
KDApfQore1BUUyh7NTAvMTAgPSA1LjAwMDAwMH0pLCBEVFMoezM1LzEwID0gMy41MDAwMDB9KSwg
ZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQ
VFMoezQwLzEwID0gNC4wMDAwMDB9KSwgRFRTKHs0MC8xMCA9IDQuMDAwMDAwfSksIGR1cmF0aW9u
KHsyMC8xMCA9IDIuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQorRU5EIE9GIFRF
U1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hcHBlbmQtcHJlc2VudGF0aW9uLWR1cmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0aW9uLWR1cmF0aW9u
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFhMDc2MDE3YzQwY2QzNGUwMjQ1YjVmNTc5NzJlOTI2OTE1NThk
NjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwKQEAgLTAsMCArMSw2
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1z
b3VyY2UtYXBwZW5kLWFjYi1uby1mcmFtZS1sb3N0PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
bW9jay1tZWRpYS1zb3VyY2UuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHZhciBzb3VyY2U7CisgICAg
dmFyIHNvdXJjZUJ1ZmZlcjsKKyAgICB2YXIgaW5pdFNlZ21lbnQ7CisKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLmluaXRpYWxpemVNb2NrTWVkaWFTb3VyY2Uo
KTsKKworICAgIGZ1bmN0aW9uIGRvdWJsZUlicFNhbXBsZVJ1bigpIHsKKyAgICAgICAgLy8gSUJQ
IGluIHByZXNlbnRhdGlvbiBvcmRlciwgSVBCIGluIGRlY29kZSBvcmRlci4KKyAgICAgICAgLy8g
U29tZSBNUDQgZmlsZXMgZG8gYSB0cmljayB3aGVyZSB0aGV5IHBsYXkgd2l0aCB0aGUgZGVjb2Rl
IGR1cmF0aW9ucyB0byBoYXZlIEItZnJhbWVzIHdpdGggdGhlIHByZXNlbnRhdGlvbgorICAgICAg
ICAvLyB0aW1lbGluZSBzdGFydGluZyBhdCB6ZXJvIHdpdGhvdXQgdXNpbmcgZWRpdCBsaXN0cy4K
KyAgICAgICAgLy8gVGhpcyB0ZXN0IGNoZWNrcyB0aGVzZSBraW5kIG9mIGZpbGVzIGFyZSBoYW5k
bGVkIGNvcnJlY3RseS4KKyAgICAgICAgcmV0dXJuIGNvbmNhdGVuYXRlU2FtcGxlcyhbCisgICAg
ICAgICAgICBtYWtlQVNhbXBsZSggMCwgIDAsICA1LCAxMCwgMSwgU0FNUExFX0ZMQUcuU1lOQyks
IC8vIEkKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDIwLCAgNSwgIDUsIDEwLCAxLCBTQU1QTEVf
RkxBRy5OT05FKSwgLy8gUAorICAgICAgICAgICAgbWFrZUFTYW1wbGUoMTAsIDEwLCAyMCwgMTAs
IDEsIFNBTVBMRV9GTEFHLk5PTkUpLCAvLyBCCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgzMCwg
MzAsICA1LCAxMCwgMSwgU0FNUExFX0ZMQUcuU1lOQyksIC8vIEkKKyAgICAgICAgICAgIG1ha2VB
U2FtcGxlKDUwLCAzNSwgIDUsIDEwLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwgLy8gUAorICAgICAg
ICAgICAgbWFrZUFTYW1wbGUoNDAsIDQwLCAyMCwgMTAsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLCAv
LyBCCisgICAgICAgIF0pOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgYXN5bmMgKCkgPT4geworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAg
IHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJj
ZS5yZWFkeVN0YXRlJywgJ2Nsb3NlZCcpOworICAgICAgICBjb25zdCBzb3VyY2VPcGVuZWQgPSB3
YWl0Rm9yKHNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBjb25zdCB2aWRlb1NvdXJj
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvdXJjZScpOworICAgICAgICB2aWRlb1NvdXJj
ZS50eXBlID0gJ3ZpZGVvL21vY2s7IGNvZGVjcz1tb2NrJzsKKyAgICAgICAgdmlkZW9Tb3VyY2Uu
c3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpOworICAgICAgICB2aWRlby5hcHBlbmRD
aGlsZCh2aWRlb1NvdXJjZSk7CisKKyAgICAgICAgYXdhaXQgc291cmNlT3BlbmVkOworICAgICAg
ICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7
IGNvZGVjcz1tb2NrIiknKTsKKworICAgICAgICBpbml0U2VnbWVudCA9IG1ha2VBSW5pdCgyMCwg
W21ha2VBVHJhY2soMSwgJ21vY2snLCBUUkFDS19LSU5ELlZJREVPKV0pOworCisgICAgICAgIHJ1
bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpbml0U2VnbWVudCknKTsKKyAgICAgICAgYXdh
aXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICBydW4oJ3Nv
dXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZG91YmxlSWJwU2FtcGxlUnVuKCkpJyk7CisgICAgICAg
IGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCJCdWZmZXJlZDoiKTsKKyAgICAgICAgaW50ZXJuYWxzLmJ1ZmZlcmVkU2FtcGxl
c0ZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisgICAg
ICAgIGNvbnNvbGVXcml0ZSgiRW5xdWV1ZWQ6Iik7CisgICAgICAgIGludGVybmFscy5lbnF1ZXVl
ZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25zb2xlV3JpdGUp
OworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16
ZXJvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMzkyZWM3MjIzZTU2Nzk1MTQ5NjA0M2IyNjA2OWViNGZlY2U0ZjEwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1m
aXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjQgQEAKKworRVhQRUNURUQgKHNvdXJjZS5yZWFkeVN0YXRlID09ICdjbG9zZWQnKSBPSworRVZF
TlQoc291cmNlb3BlbikKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVy
KCJ2aWRlby9tb2NrOyBjb2RlY3M9bW9jayIpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZm
ZXIoaW5pdFNlZ21lbnQpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBl
bmRCdWZmZXIoc3luY1NhbXBsZVJ1big1LCAxMCkpKQorRVZFTlQodXBkYXRlZW5kKQorRW5xdWV1
ZWQgc28gZmFyOiAoZXhwZWN0aW5nIG5vIGZyYW1lcyB5ZXQpCitSVU4oc291cmNlQnVmZmVyLmFw
cGVuZEJ1ZmZlcihzeW5jU2FtcGxlUnVuKDAsIDUpKSkKK0VWRU5UKHVwZGF0ZWVuZCkKK0VucXVl
dWVkIG5vdzoKK3tQVFMoezAvMSA9IDAuMDAwMDAwfSksIERUUyh7MC8xID0gMC4wMDAwMDB9KSwg
ZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQore1BU
Uyh7MS8xID0gMS4wMDAwMDB9KSwgRFRTKHsxLzEgPSAxLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8x
ID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsyLzEgPSAyLjAw
MDAwMH0pLCBEVFMoezIvMSA9IDIuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0p
LCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezMvMSA9IDMuMDAwMDAwfSksIERUUyh7
My8xID0gMy4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBn
ZW5lcmF0aW9uKDApfQore1BUUyh7NC8xID0gNC4wMDAwMDB9KSwgRFRTKHs0LzEgPSA0LjAwMDAw
MH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9
Cit7UFRTKHs1LzEgPSA1LjAwMDAwMH0pLCBEVFMoezUvMSA9IDUuMDAwMDAwfSksIGR1cmF0aW9u
KHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezYvMSA9
IDYuMDAwMDAwfSksIERUUyh7Ni8xID0gNi4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAw
MDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7Ny8xID0gNy4wMDAwMDB9KSwg
RFRTKHs3LzEgPSA3LjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3Mo
MCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs4LzEgPSA4LjAwMDAwMH0pLCBEVFMoezgvMSA9IDgu
MDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlv
bigwKX0KK3tQVFMoezkvMSA9IDkuMDAwMDAwfSksIERUUyh7OS8xID0gOS4wMDAwMDB9KSwgZHVy
YXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQorRU5EIE9G
IFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8uaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFy
dGluZy1hdC16ZXJvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk3YTc1MTIzYzMyMjg2MjhlMDYwOGQ5NmQ0
NmU3ODJhMDUzNjBlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0
bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDx0aXRsZT5tZWRpYS1zb3VyY2UtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0ibW9jay1tZWRpYS1zb3VyY2UuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
IHZhciBzb3VyY2U7CisgICAgdmFyIHNvdXJjZUJ1ZmZlcjsKKyAgICB2YXIgaW5pdFNlZ21lbnQ7
CisKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLmluaXRpYWxp
emVNb2NrTWVkaWFTb3VyY2UoKTsKKworICAgIGZ1bmN0aW9uIHN5bmNTYW1wbGVSdW4oc3RhcnQs
IGVuZCkgeworICAgICAgICBjb25zdCBzYW1wbGVzID0gW107CisgICAgICAgIGZvciAobGV0IHRp
bWUgPSBzdGFydDsgdGltZSA8IGVuZDsgdGltZSsrKQorICAgICAgICAgICAgc2FtcGxlcy5wdXNo
KG1ha2VBU2FtcGxlKHRpbWUsIHRpbWUsIDEsIDEsIDEsIHRpbWUgPT09IHN0YXJ0ID8gU0FNUExF
X0ZMQUcuU1lOQyA6IFNBTVBMRV9GTEFHLk5PTkUpKTsKKyAgICAgICAgcmV0dXJuIGNvbmNhdGVu
YXRlU2FtcGxlcyhzYW1wbGVzKTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIGFzeW5jICgpID0+IHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAg
ICAgICBzb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdz
b3VyY2UucmVhZHlTdGF0ZScsICdjbG9zZWQnKTsKKyAgICAgICAgY29uc3Qgc291cmNlT3BlbmVk
ID0gd2FpdEZvcihzb3VyY2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgY29uc3QgdmlkZW9T
b3VyY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb3VyY2UnKTsKKyAgICAgICAgdmlkZW9T
b3VyY2UudHlwZSA9ICd2aWRlby9tb2NrOyBjb2RlY3M9bW9jayc7CisgICAgICAgIHZpZGVvU291
cmNlLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwoc291cmNlKTsKKyAgICAgICAgdmlkZW8uYXBw
ZW5kQ2hpbGQodmlkZW9Tb3VyY2UpOworCisgICAgICAgIGF3YWl0IHNvdXJjZU9wZW5lZDsKKyAg
ICAgICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9t
b2NrOyBjb2RlY3M9bW9jayIpJyk7CisKKyAgICAgICAgaW5pdFNlZ21lbnQgPSBtYWtlQUluaXQo
MTAsIFttYWtlQVRyYWNrKDEsICdtb2NrJywgVFJBQ0tfS0lORC5WSURFTyldKTsKKworICAgICAg
ICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpJyk7CisgICAgICAg
IGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgcnVu
KCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHN5bmNTYW1wbGVSdW4oNSwgMTApKScpOworICAg
ICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAg
IGNvbnNvbGVXcml0ZSgiRW5xdWV1ZWQgc28gZmFyOiAoZXhwZWN0aW5nIG5vIGZyYW1lcyB5ZXQp
Iik7CisgICAgICAgIGludGVybmFscy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1
ZmZlciwgMSkuZm9yRWFjaChjb25zb2xlV3JpdGUpOworCisgICAgICAgIHJ1bignc291cmNlQnVm
ZmVyLmFwcGVuZEJ1ZmZlcihzeW5jU2FtcGxlUnVuKDAsIDUpKScpOworICAgICAgICBhd2FpdCB3
YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAgICAgIGNvbnNvbGVXcml0
ZSgiRW5xdWV1ZWQgbm93OiIpOworICAgICAgICBpbnRlcm5hbHMuZW5xdWV1ZWRTYW1wbGVzRm9y
VHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpLmZvckVhY2goY29uc29sZVdyaXRlKTsKKworICAgICAg
ICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLXJlbW92ZS1iLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJhbWUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUzNGQ2YzAxYTM2ODA5MTcxNThlMWRhZTZhMmQyMjMyY2UyOTU3ZTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLXJlbW92ZS1iLWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACisKK0VY
UEVDVEVEIChzb3VyY2UucmVhZHlTdGF0ZSA9PSAnY2xvc2VkJykgT0sKK0VWRU5UKHNvdXJjZW9w
ZW4pCitSVU4oc291cmNlQnVmZmVyID0gc291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9j
azsgY29kZWNzPW1vY2siKSkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGluaXRTZWdt
ZW50KSkKK0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGli
cFNhbXBsZVJ1bigpKSkKK0VWRU5UKHVwZGF0ZWVuZCkKK3tQVFMoezAvMSA9IDAuMDAwMDAwfSks
IERUUyh7LTEvMSA9IC0xLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxh
Z3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsyLzEgPSAyLjAwMDAwMH0pLCBEVFMoezAvMSA9
IDAuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJh
dGlvbigwKX0KK3tQVFMoezEvMSA9IDEuMDAwMDAwfSksIERUUyh7MS8xID0gMS4wMDAwMDB9KSwg
ZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQorUlVO
KHNvdXJjZUJ1ZmZlci5yZW1vdmUoMSwgMikpCitFVkVOVCh1cGRhdGVlbmQpCitSVU4oc291cmNl
QnVmZmVyLmFwcGVuZEJ1ZmZlcihuZXcgVWludDhBcnJheSgpKSkKK0VWRU5UKHVwZGF0ZWVuZCkK
K1RoZSBmcmFtZSB3aXRoIHByZXNlbnRhdGlvbiB0aW1lIFsxLCAyKSBzaG91bGQgaGF2ZSBiZWVu
IGRlbGV0ZWQgZnJvbSB0aGUgYnVmZmVyZWQgc2FtcGxlcyBhbmQgYSByZWVucXVldWUgbXVzdCBo
YXZlIGhhcHBlbmVkLiBUaGF0IGZyYW1lIHNob3VsZCBub3QgaGF2ZSBiZWVuIGVucXVldWVkLgor
QnVmZmVyZWQ6Cit7UFRTKHswLzEgPSAwLjAwMDAwMH0pLCBEVFMoey0xLzEgPSAtMS4wMDAwMDB9
KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDEpLCBnZW5lcmF0aW9uKDApfQor
e1BUUyh7Mi8xID0gMi4wMDAwMDB9KSwgRFRTKHswLzEgPSAwLjAwMDAwMH0pLCBkdXJhdGlvbih7
MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitFbnF1ZXVlZDoKK3tQ
VFMoezAvMSA9IDAuMDAwMDAwfSksIERUUyh7LTEvMSA9IC0xLjAwMDAwMH0pLCBkdXJhdGlvbih7
MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsyLzEgPSAy
LjAwMDAwMH0pLCBEVFMoezAvMSA9IDAuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAw
MH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVt
b3ZlLWItZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjc1MzBlNTc0MzY3NTY2ZWY5ZTYzMjc1NTli
N2NlM2RjOTI3OWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNjkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtc291cmNl
LWFwcGVuZC1yZW1vdmUtYi1mcmFtZTwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Im1vY2stbWVk
aWEtc291cmNlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgc291cmNlOworICAgIHZhciBzb3Vy
Y2VCdWZmZXI7CisgICAgdmFyIGluaXRTZWdtZW50OworCisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIGludGVybmFscy5pbml0aWFsaXplTW9ja01lZGlhU291cmNlKCk7CisKKyAg
ICBmdW5jdGlvbiBpYnBTYW1wbGVSdW4oKSB7CisgICAgICAgIC8vIElCUCBpbiBwcmVzZW50YXRp
b24gb3JkZXIsIElQQiBpbiBkZWNvZGUgb3JkZXIuCisgICAgICAgIHJldHVybiBjb25jYXRlbmF0
ZVNhbXBsZXMoWworICAgICAgICAgICAgbWFrZUFTYW1wbGUoMCwgLTEsIDEsIDEsIDEsIFNBTVBM
RV9GTEFHLlNZTkMpLCAvLyBJCisgICAgICAgICAgICBtYWtlQVNhbXBsZSgyLCAgMCwgMSwgMSwg
MSwgU0FNUExFX0ZMQUcuTk9ORSksIC8vIFAKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDEsICAx
LCAxLCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwgLy8gQgorICAgICAgICBdKTsKKyAgICB9CisK
KyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICBzb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2Uo
KTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdzb3VyY2UucmVhZHlTdGF0ZScsICdjbG9zZWQnKTsK
KyAgICAgICAgY29uc3Qgc291cmNlT3BlbmVkID0gd2FpdEZvcihzb3VyY2UsICdzb3VyY2VvcGVu
Jyk7CisKKyAgICAgICAgY29uc3QgdmlkZW9Tb3VyY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzb3VyY2UnKTsKKyAgICAgICAgdmlkZW9Tb3VyY2UudHlwZSA9ICd2aWRlby9tb2NrOyBjb2Rl
Y3M9bW9jayc7CisgICAgICAgIHZpZGVvU291cmNlLnNyYyA9IFVSTC5jcmVhdGVPYmplY3RVUkwo
c291cmNlKTsKKyAgICAgICAgdmlkZW8uYXBwZW5kQ2hpbGQodmlkZW9Tb3VyY2UpOworCisgICAg
ICAgIGF3YWl0IHNvdXJjZU9wZW5lZDsKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBzb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBjb2RlY3M9bW9jayIpJyk7CisKKyAgICAg
ICAgaW5pdFNlZ21lbnQgPSBtYWtlQUluaXQoMTAsIFttYWtlQVRyYWNrKDEsICdtb2NrJywgVFJB
Q0tfS0lORC5WSURFTyldKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZm
ZXIoaW5pdFNlZ21lbnQpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAn
dXBkYXRlZW5kJyk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKGli
cFNhbXBsZVJ1bigpKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3Vw
ZGF0ZWVuZCcpOworICAgICAgICBpbnRlcm5hbHMuZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChz
b3VyY2VCdWZmZXIsIDEpLmZvckVhY2goY29uc29sZVdyaXRlKTsKKworICAgICAgICBydW4oJ3Nv
dXJjZUJ1ZmZlci5yZW1vdmUoMSwgMiknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VC
dWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICAvLyBFdmVuIGlmIC5yZW1vdmUoKSBzZXRz
IHRyYWNrQnVmZmVyLm5lZWRzUmVlbnF1ZXVlaW5nIHRvIHRydWUsIHJlZW5xdWV1ZWluZyB3aWxs
IG9ubHkgaGFwcGVuIGFmdGVyIGFuIGFwcGVuZC4KKyAgICAgICAgLy8gU28gbGV0J3MgbWFrZSBh
biBlbXB0eSBhcHBlbmQuCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihu
ZXcgVWludDhBcnJheSgpKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwg
J3VwZGF0ZWVuZCcpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgiVGhlIGZyYW1lIHdpdGggcHJl
c2VudGF0aW9uIHRpbWUgWzEsIDIpIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSBi
dWZmZXJlZCBzYW1wbGVzIGFuZCAiICsKKyAgICAgICAgICAgICJhIHJlZW5xdWV1ZSBtdXN0IGhh
dmUgaGFwcGVuZWQuIFRoYXQgZnJhbWUgc2hvdWxkIG5vdCBoYXZlIGJlZW4gZW5xdWV1ZWQuIik7
CisgICAgICAgIGNvbnNvbGVXcml0ZSgiQnVmZmVyZWQ6Iik7CisgICAgICAgIGludGVybmFscy5i
dWZmZXJlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25zb2xl
V3JpdGUpOworICAgICAgICBjb25zb2xlV3JpdGUoIkVucXVldWVkOiIpOworICAgICAgICBpbnRl
cm5hbHMuZW5xdWV1ZWRTYW1wbGVzRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEpLmZvckVhY2go
Y29uc29sZVdyaXRlKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387788</attachid>
            <date>2020-01-15 06:40:11 -0800</date>
            <delta_ts>2020-01-16 02:43:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201323-20200115154009.patch</filename>
            <type>text/plain</type>
            <size>27657</size>
            <attacher name="Alicia Boya García">aboya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZmOGM1MmE1ZTM5Y2Nk
Mzg5MDdlYjcxNmRlMTM1YmU0ODBmOGIwZi4uM2IwNTE0NTBkY2E4MzdhYmYyMjliOGI4NGZiZWVk
YTFjNTA0MjFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA0LTA5ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbTVNFXSBEb24n
dCBlbnF1ZXVlIHNhbXBsZXMgdGhhdCBzdGFydCBhdCBhIGJpZyBkaXNjb250aW51aXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDEzMjMKKworICAg
ICAgICBXaXRoIHRoZSBvbGQgbG9naWMgU291cmNlQnVmZmVyIHdhcyBlbnF1ZXVlaW5nIHRoZSBm
aXJzdCBmcmFtZSB0byBiZQorICAgICAgICBhcHBlbmRlZCBpbiBhbnkgY2lyY3Vtc3RhbmNlcy4g
VGhpcyB3YXMgYSBidWcgYmVjYXVzZSB0aGUgdXNlciBjb3VsZAorICAgICAgICBhcHBlbmQgZmly
c3QgWzUsIDEwKSBhbmQgdGhlbiBbMCwgNSkuIFdpdGggdGhlIG9sZCBiZWhhdmlvciBbNSwgMTAp
CisgICAgICAgIHdvdWxkIGJlIGVucXVldWVkIGZpcnN0IGRlc3BpdGUgYmVpbmcgY2xlYXJseSBh
aGVhZCBvZiB0aGUgaW5pdGlhbAorICAgICAgICBwbGF5YmFjayB0aW1lICh6ZXJvKS4gQnkgdGhl
IHRpbWUgWzAsIDUpIGlzIGVucXVldWVkIGl0IGNhbid0IGJlCisgICAgICAgIGVucXVldWVkIGFu
eW1vcmUgYmVjYXVzZSB0aGUgZGVjb2RlUXVldWUgaXMgYWxyZWFkeSBhaGVhZC4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIHRoYXQgbG9naWMgdG8gd29yayB3aGVuIHRoZSBmaXJzdCBzZWdt
ZW50cyBhcmUKKyAgICAgICAgYXBwZW5kZWQgdW5vcmRlcmVkLiBUaGUgdGVzdCBtZWRpYS1zb3Vy
Y2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWwKKyAgICAgICAgdmFsaWRh
dGVzIGl0LgorCisgICAgICAgIFRoZSB0ZXN0IG1lZGlhLXNvdXJjZS1hcHBlbmQtcHJlc2VudGF0
aW9uLWR1cmF0aW9ucy5odG1sIGNoZWNrcyB0aGUKKyAgICAgICAgbmV3IGxvZ2ljIGRvZXMgbm90
IGJyZWFrIGluIHByZXNlbmNlIG9mIHByZXNlbnRhdGlvbiBkdXJhdGlvbiAhPQorICAgICAgICBk
ZWNvZGUgZHVyYXRpb24uCisKKyAgICAgICAgQXMgcGFydCBvZiB0aGUgc2FtZSBsb2dpYyBibG9j
aywgdGhlIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgd2FzCisgICAgICAgIHVzZWQgdG8g
ZGVjaWRlIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gcGVyZm9ybSByZWVucXVldWUgYWZ0ZXIgYW4K
KyAgICAgICAgLmVyYXNlKCkgKGl0IGlzIG5lY2Vzc2FyeSBpZiBhbnkgZW5xdWV1ZWQgZnJhbWVz
IGFyZSByZXBsYWNlZCkuIFVzaW5nCisgICAgICAgIGxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRp
bWUgd2FzIG5vdCBlbnRpcmVseSBhY2N1cmF0ZSBpbiBwcmVzZW5jZSBvZgorICAgICAgICBCLWZy
YW1lcywgYXMgeW91IGNvdWxkIGVyYXNlIGEgZnJhbWUgdGhhdCBoYXMgYSBwcmVzZW50YXRpb24g
dGltZQorICAgICAgICBoaWdoZXIgdGhhbiB0aGUgbGFzdCBlbnF1ZXVlZCBvbmUuIFRoYXQgbG9n
aWMgaXMgcmVwbGFjZWQgd2l0aCBhCisgICAgICAgIG1vbm90b25pY2x5IGluY3JlYXNpbmcgaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSBhbmQgaXMgdGVzdGVkCisgICAgICAgIGJ5IG1l
ZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sLgorCisgICAgICAgIFJldmlld2VkIGJ5IFhh
YmllciBSb2RyaWd1ZXotQ2FsdmFyLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwKKyAgICAg
ICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5v
dC1zdGFydGluZy1hdC16ZXJvLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJhbWUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyOjpUcmFja0J1ZmZlcjo6VHJhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZm
ZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlcjo6cHJvdmlkZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXI6OnJlZW5xdWV1ZU1lZGlhRm9yVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpT
b3VyY2VCdWZmZXI6OlRyYWNrQnVmZmVyOjpsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbik6IERl
bGV0ZWQuCisKIDIwMjAtMDEtMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIFVucmV2aWV3ZWQgYnVpbGQgd2FybmluZyBmaXgg
YWZ0ZXIgcjI1NDUwMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IGRkNTM5N2MyYWQxZWJhY2I2ZTJkZDA0OTgyMzk3MTE2
YmM2OGVlYjcuLjJmNGU1OThkZThlNTZlNzAwZWJhOWRhYjI5NjhjMjRlNzU1ZTU5NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHAKQEAgLTY2LDE1ICs2NiwyNCBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU291cmNl
QnVmZmVyKTsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBFeHBvbmVudGlhbE1vdmluZ0F2ZXJhZ2VD
b2VmZmljaWVudCA9IDAuMTsKIAorLy8gRG8gbm90IGVucXVldWUgc2FtcGxlcyBzcGFubmluZyBh
IHNpZ25pZmljYW50IHVuYnVmZmVyZWQgZ2FwLgorLy8gTk9URTogb25lIHNlY29uZCBpcyBzb21l
d2hhdCBhcmJpdHJhcnkuIE1lZGlhU291cmNlOjptb25pdG9yU291cmNlQnVmZmVycygpIGlzIHJ1
bgorLy8gb24gdGhlIHBsYXliYWNrVGltZXIsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IGV2ZXJ5IDM1
MG1zLiBBbGxvd2luZyA+IDM1MG1zIGdhcCBiZXR3ZWVuCisvLyBlbnF1ZXVlZCBzYW1wbGVzIGFs
bG93cyBmb3Igc2l0dWF0aW9ucyB3aGVyZSB3ZSBvdmVycnVuIHRoZSBlbmQgb2YgYSBidWZmZXJl
ZCByYW5nZQorLy8gYnV0IGRvbid0IG5vdGljZSBmb3IgMzUwcyBvZiBwbGF5YmFjayB0aW1lLCBh
bmQgdGhlIGNsaWVudCBjYW4gZW5xdWV1ZSBkYXRhIGZvciB0aGUKKy8vIG5ldyBjdXJyZW50IHRp
bWUgd2l0aG91dCB0cmlnZ2VyaW5nIHRoaXMgZWFybHkgcmV0dXJuLgorLy8gRklYTUUoMTM1ODY3
KTogTWFrZSB0aGlzIGdhcCBkZXRlY3Rpb24gbG9naWMgbGVzcyBhcmJpdHJhcnkuCitzdGF0aWMg
Y29uc3QgTWVkaWFUaW1lIGRpc2NvbnRpbnVpdHlUb2xlcmFuY2UgPSBNZWRpYVRpbWUoMSwgMSk7
CisKIHN0cnVjdCBTb3VyY2VCdWZmZXI6OlRyYWNrQnVmZmVyIHsKICAgICBNZWRpYVRpbWUgbGFz
dERlY29kZVRpbWVzdGFtcDsKICAgICBNZWRpYVRpbWUgZ3JlYXRlc3REZWNvZGVEdXJhdGlvbjsK
ICAgICBNZWRpYVRpbWUgbGFzdEZyYW1lRHVyYXRpb247CiAgICAgTWVkaWFUaW1lIGhpZ2hlc3RQ
cmVzZW50YXRpb25UaW1lc3RhbXA7Ci0gICAgTWVkaWFUaW1lIGxhc3RFbnF1ZXVlZFByZXNlbnRh
dGlvblRpbWU7CisgICAgTWVkaWFUaW1lIGhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWU7
CiAgICAgTWVkaWFUaW1lIG1pbmltdW1FbnF1ZXVlZFByZXNlbnRhdGlvblRpbWU7CiAgICAgRGVj
b2RlT3JkZXJTYW1wbGVNYXA6OktleVR5cGUgbGFzdEVucXVldWVkRGVjb2RlS2V5OwotICAgIE1l
ZGlhVGltZSBsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbjsKKyAgICBNZWRpYVRpbWUgZW5xdWV1
ZURpc2NvbnRpbnVpdHlCb3VuZGFyeSB7IE1lZGlhVGltZTo6emVyb1RpbWUoKSB9OwogICAgIE1l
ZGlhVGltZSByb3VuZGVkVGltZXN0YW1wT2Zmc2V0OwogICAgIHVpbnQzMl90IGxhc3RGcmFtZVRp
bWVzY2FsZSB7IDAgfTsKICAgICBib29sIG5lZWRSYW5kb21BY2Nlc3NGbGFnIHsgdHJ1ZSB9OwpA
QCAtOTEsOSArMTAwLDkgQEAgc3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tCdWZmZXIgewogICAg
ICAgICAsIGdyZWF0ZXN0RGVjb2RlRHVyYXRpb24oTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQog
ICAgICAgICAsIGxhc3RGcmFtZUR1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAg
ICAgICAgLCBoaWdoZXN0UHJlc2VudGF0aW9uVGltZXN0YW1wKE1lZGlhVGltZTo6aW52YWxpZFRp
bWUoKSkKLSAgICAgICAgLCBsYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKE1lZGlhVGltZTo6
aW52YWxpZFRpbWUoKSkKKyAgICAgICAgLCBoaWdoZXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1l
KE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKICAgICAgICAgLCBsYXN0RW5xdWV1ZWREZWNvZGVL
ZXkoe01lZGlhVGltZTo6aW52YWxpZFRpbWUoKSwgTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpfSkK
LSAgICAgICAgLCBsYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRU
aW1lKCkpCisgICAgICAgICwgZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFyeShkaXNjb250aW51
aXR5VG9sZXJhbmNlKQogICAgIHsKICAgICB9CiB9OwpAQCAtODY0LDggKzg3Myw4IEBAIHZvaWQg
U291cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBj
b25zdCBNZWRpYVRpbWUmIGVuCiAKICAgICAgICAgLy8gT25seSBmb3JjZSB0aGUgVHJhY2tCdWZm
ZXIgdG8gcmUtZW5xdWV1ZSBpZiB0aGUgcmVtb3ZlZCByYW5nZXMgb3ZlcmxhcCB3aXRoIGVucXVl
dWVkIGFuZCBwb3NzaWJseQogICAgICAgICAvLyBub3QgeWV0IGRpc3BsYXllZCBzYW1wbGVzLgot
ICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1Zh
bGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSA8IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNl
bnRhdGlvblRpbWUpIHsKLSAgICAgICAgICAgIFBsYXRmb3JtVGltZVJhbmdlcyBwb3NzaWJseUVu
cXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFBy
ZXNlbnRhdGlvblRpbWUpOworICAgICAgICBpZiAodHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVk
UHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSA8IHRyYWNrQnVm
ZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsKKyAgICAgICAgICAgIFBsYXRm
b3JtVGltZVJhbmdlcyBwb3NzaWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRy
YWNrQnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAg
cG9zc2libHlFbnF1ZXVlZFJhbmdlcy5pbnRlcnNlY3RXaXRoKGVyYXNlZFJhbmdlcyk7CiAgICAg
ICAgICAgICBpZiAocG9zc2libHlFbnF1ZXVlZFJhbmdlcy5sZW5ndGgoKSkgewogICAgICAgICAg
ICAgICAgIHRyYWNrQnVmZmVyLm5lZWRzUmVlbnF1ZXVlaW5nID0gdHJ1ZTsKQEAgLTE3MzcsOCAr
MTc0Niw4IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2
ZVNhbXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICAgICAgLy8gT25seSBmb3JjZSB0
aGUgVHJhY2tCdWZmZXIgdG8gcmUtZW5xdWV1ZSBpZiB0aGUgcmVtb3ZlZCByYW5nZXMgb3Zlcmxh
cCB3aXRoIGVucXVldWVkIGFuZCBwb3NzaWJseQogICAgICAgICAgICAgLy8gbm90IHlldCBkaXNw
bGF5ZWQgc2FtcGxlcy4KICAgICAgICAgICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lID0g
bV9zb3VyY2UtPmN1cnJlbnRUaW1lKCk7Ci0gICAgICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFz
dEVucXVldWVkUHJlc2VudGF0aW9uVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSA8
IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpIHsKLSAgICAgICAgICAg
ICAgICBQbGF0Zm9ybVRpbWVSYW5nZXMgcG9zc2libHlFbnF1ZXVlZFJhbmdlcyhjdXJyZW50TWVk
aWFUaW1lLCB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lKTsKKyAgICAg
ICAgICAgIGlmICh0cmFja0J1ZmZlci5oaWdoZXN0RW5xdWV1ZWRQcmVzZW50YXRpb25UaW1lLmlz
VmFsaWQoKSAmJiBjdXJyZW50TWVkaWFUaW1lIDwgdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVk
UHJlc2VudGF0aW9uVGltZSkgeworICAgICAgICAgICAgICAgIFBsYXRmb3JtVGltZVJhbmdlcyBw
b3NzaWJseUVucXVldWVkUmFuZ2VzKGN1cnJlbnRNZWRpYVRpbWUsIHRyYWNrQnVmZmVyLmhpZ2hl
c3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUpOwogICAgICAgICAgICAgICAgIHBvc3NpYmx5RW5x
dWV1ZWRSYW5nZXMuaW50ZXJzZWN0V2l0aChlcmFzZWRSYW5nZXMpOwogICAgICAgICAgICAgICAg
IGlmIChwb3NzaWJseUVucXVldWVkUmFuZ2VzLmxlbmd0aCgpKQogICAgICAgICAgICAgICAgICAg
ICB0cmFja0J1ZmZlci5uZWVkc1JlZW5xdWV1ZWluZyA9IHRydWU7CkBAIC0xNzYwLDExICsxNzY5
LDE1IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNh
bXBsZShNZWRpYVNhbXBsZSYgc2FtcGxlKQogICAgICAgICB0cmFja0J1ZmZlci5zYW1wbGVzLmFk
ZFNhbXBsZShzYW1wbGUpOwogCiAgICAgICAgIC8vIE5vdGU6IFRoZSB0ZXJtaW5vbG9neSBoZXJl
IGlzIGNvbmZ1c2luZzogImVucXVldWluZyIgbWVhbnMgcHJvdmlkaW5nIGEgZnJhbWUgdG8gdGhl
IGlubmVyIG1lZGlhIGZyYW1ld29yay4KLSAgICAgICAgLy8gRmlyc3QsIGZyYW1lcyBhcmUgaW5z
ZXJ0ZWQgaW4gdGhlIGRlY29kZSBxdWV1ZTsgbGF0ZXIsIGF0IHRoZSBlbmQgb2YgdGhlIGFwcGVu
ZCBhbGwgdGhlIGZyYW1lcyBpbiB0aGUgZGVjb2RlCi0gICAgICAgIC8vIHF1ZXVlIGFyZSAiZW5x
dWV1ZWQiIChzZW50IHRvIHRoZSBpbm5lciBtZWRpYSBmcmFtZXdvcmspIGluIGBwcm92aWRlTWVk
aWFEYXRhKClgLgorICAgICAgICAvLyBGaXJzdCwgZnJhbWVzIGFyZSBpbnNlcnRlZCBpbiB0aGUg
ZGVjb2RlIHF1ZXVlOyBsYXRlciwgYXQgdGhlIGVuZCBvZiB0aGUgYXBwZW5kIHNvbWUgb2YgdGhl
IGZyYW1lcyBpbiB0aGUKKyAgICAgICAgLy8gZGVjb2RlIG1heSBiZSAiZW5xdWV1ZWQiIChzZW50
IHRvIHRoZSBpbm5lciBtZWRpYSBmcmFtZXdvcmspIGluIGBwcm92aWRlTWVkaWFEYXRhKClgLgor
ICAgICAgICAvLworICAgICAgICAvLyBJbiBvcmRlciB0byBjaGVjayB3aGV0aGVyIGEgZnJhbWUg
c2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkZWNvZGUgcXVldWUgd2UgY2hlY2sgdGhhdCBpdCBkb2Vz
IG5vdCBwcmVjZWRlIGFueQorICAgICAgICAvLyBmcmFtZSBhbHJlYWR5IGVucXVldWVkLgogICAg
ICAgICAvLwotICAgICAgICAvLyBJbiBvcmRlciB0byBjaGVjayB3aGV0aGVyIGEgZnJhbWUgc2hv
dWxkIGJlIGFkZGVkIHRvIHRoZSBkZWNvZGUgcXVldWUgd2UgY2hlY2sgd2hldGhlciBpdCBzdGFy
dHMgYWZ0ZXIgdGhlCi0gICAgICAgIC8vIGxhc3RFbnF1ZXVlZERlY29kZUtleS4KKyAgICAgICAg
Ly8gTm90ZSB0aGF0IGFkZGluZyBhIGZyYW1lIHRvIHRoZSBkZWNvZGUgcXVldWUgaXMgbm8gZ3Vh
cmFudGVlIHRoYXQgaXQgd2lsbCBiZSBhY3R1YWxseSBlbnF1ZXVlZCBhdCB0aGF0IHBvaW50Lgor
ICAgICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgYWZ0ZXIgdGhlIGRpc2NvbnRpbnVpdHkgYm91bmRh
cnksIHRoZSBlbnF1ZXVlaW5nIGFsZ29yaXRobSB3aWxsIGhvbGQgaXQgdGhlcmUgdW50aWwgc2Ft
cGxlcworICAgICAgICAvLyB3aXRoIGVhcmxpZXIgdGltZXN0YW1wcyBhcmUgZW5xdWV1ZWQuIFRo
ZSBkZWNvZGUgcXVldWUgaXMgbm90IEZJRk8sIGJ1dCByYXRoZXIgYW4gb3JkZXJlZCBtYXAuCiAg
ICAgICAgIERlY29kZU9yZGVyU2FtcGxlTWFwOjpLZXlUeXBlIGRlY29kZUtleShzYW1wbGUuZGVj
b2RlVGltZSgpLCBzYW1wbGUucHJlc2VudGF0aW9uVGltZSgpKTsKICAgICAgICAgaWYgKHRyYWNr
QnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleS5maXJzdC5pc0ludmFsaWQoKSB8fCBkZWNvZGVL
ZXkgPiB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkpIHsKICAgICAgICAgICAgIHRy
YWNrQnVmZmVyLmRlY29kZVF1ZXVlLmluc2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlw
ZTo6dmFsdWVfdHlwZShkZWNvZGVLZXksICZzYW1wbGUpKTsKQEAgLTIwMTksMjggKzIwMzIsMjEg
QEAgdm9pZCBTb3VyY2VCdWZmZXI6OnByb3ZpZGVNZWRpYURhdGEoVHJhY2tCdWZmZXImIHRyYWNr
QnVmZmVyLCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAgICAvLyByYXRoZXIgdGhhbiB3aGVuIGFs
bCBzYW1wbGVzIGhhdmUgYmVlbiBlbnF1ZXVlZC4KICAgICAgICAgYXV0byBzYW1wbGUgPSB0cmFj
a0J1ZmZlci5kZWNvZGVRdWV1ZS5iZWdpbigpLT5zZWNvbmQ7CiAKLSAgICAgICAgLy8gRG8gbm90
IGVucXVldWUgc2FtcGxlcyBzcGFubmluZyBhIHNpZ25pZmljYW50IHVuYnVmZmVyZWQgZ2FwLgot
ICAgICAgICAvLyBOT1RFOiBvbmUgc2Vjb25kIGlzIHNvbWV3aGF0IGFyYml0cmFyeS4gTWVkaWFT
b3VyY2U6Om1vbml0b3JTb3VyY2VCdWZmZXJzKCkgaXMgcnVuCi0gICAgICAgIC8vIG9uIHRoZSBw
bGF5YmFja1RpbWVyLCB3aGljaCBpcyBlZmZlY3RpdmVseSBldmVyeSAzNTBtcy4gQWxsb3dpbmcg
PiAzNTBtcyBnYXAgYmV0d2VlbgotICAgICAgICAvLyBlbnF1ZXVlZCBzYW1wbGVzIGFsbG93cyBm
b3Igc2l0dWF0aW9ucyB3aGVyZSB3ZSBvdmVycnVuIHRoZSBlbmQgb2YgYSBidWZmZXJlZCByYW5n
ZQotICAgICAgICAvLyBidXQgZG9uJ3Qgbm90aWNlIGZvciAzNTBzIG9mIHBsYXliYWNrIHRpbWUs
IGFuZCB0aGUgY2xpZW50IGNhbiBlbnF1ZXVlIGRhdGEgZm9yIHRoZQotICAgICAgICAvLyBuZXcg
Y3VycmVudCB0aW1lIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGlzIGVhcmx5IHJldHVybi4KLSAgICAg
ICAgLy8gRklYTUUoMTM1ODY3KTogTWFrZSB0aGlzIGdhcCBkZXRlY3Rpb24gbG9naWMgbGVzcyBh
cmJpdHJhcnkuCi0gICAgICAgIE1lZGlhVGltZSBvbmVTZWNvbmQoMSwgMSk7Ci0gICAgICAgIGlm
ICh0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkuZmlyc3QuaXNWYWxpZCgpCi0gICAg
ICAgICAgICAmJiB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVEdXJhdGlvbi5pc1ZhbGlk
KCkKLSAgICAgICAgICAgICYmIHNhbXBsZS0+ZGVjb2RlVGltZSgpIC0gdHJhY2tCdWZmZXIubGFz
dEVucXVldWVkRGVjb2RlS2V5LmZpcnN0ID4gb25lU2Vjb25kICsgdHJhY2tCdWZmZXIubGFzdEVu
cXVldWVkRGVjb2RlRHVyYXRpb24pIHsKLQotICAgICAgICBERUJVR19MT0coTE9HSURFTlRJRklF
UiwgImJhaWxpbmcgZWFybHkgYmVjYXVzZSBvZiB1bmJ1ZmZlcmVkIGdhcCwgbmV3IHNhbXBsZTog
Iiwgc2FtcGxlLT5kZWNvZGVUaW1lKCksICIsIGxhc3QgZW5xdWV1ZWQgc2FtcGxlIGVuZHM6ICIs
IHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUtleS5maXJzdCArIHRyYWNrQnVmZmVyLmxh
c3RFbnF1ZXVlZERlY29kZUR1cmF0aW9uKTsKKyAgICAgICAgaWYgKHNhbXBsZS0+ZGVjb2RlVGlt
ZSgpID4gdHJhY2tCdWZmZXIuZW5xdWV1ZURpc2NvbnRpbnVpdHlCb3VuZGFyeSkgeworICAgICAg
ICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsICJiYWlsaW5nIGVhcmx5IGJlY2F1c2Ugb2Yg
dW5idWZmZXJlZCBnYXAsIG5ldyBzYW1wbGU6ICIsIHNhbXBsZS0+ZGVjb2RlVGltZSgpLCAiID49
IHRoZSBjdXJyZW50IGRpc2NvbnRpbnVpdHkgYm91bmRhcnk6ICIsIHRyYWNrQnVmZmVyLmVucXVl
dWVEaXNjb250aW51aXR5Qm91bmRhcnkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBSZW1vdmUgdGhlIHNhbXBsZSBmcm9tIHRoZSBkZWNvZGUgcXVldWUgbm93
LgogICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5lcmFzZSh0cmFja0J1ZmZlci5kZWNv
ZGVRdWV1ZS5iZWdpbigpKTsKIAotICAgICAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWRQcmVz
ZW50YXRpb25UaW1lID0gc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCk7CisgICAgICAgIE1lZGlh
VGltZSBzYW1wbGVQcmVzZW50YXRpb25FbmQgPSBzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSAr
IHNhbXBsZS0+ZHVyYXRpb24oKTsKKyAgICAgICAgaWYgKHRyYWNrQnVmZmVyLmhpZ2hlc3RFbnF1
ZXVlZFByZXNlbnRhdGlvblRpbWUuaXNJbnZhbGlkKCkgfHwgc2FtcGxlUHJlc2VudGF0aW9uRW5k
ID4gdHJhY2tCdWZmZXIuaGlnaGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSkKKyAgICAgICAg
ICAgIHRyYWNrQnVmZmVyLmhpZ2hlc3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBzYW1wbGVQ
cmVzZW50YXRpb25FbmQ7CisKICAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2Rl
S2V5ID0ge3NhbXBsZS0+ZGVjb2RlVGltZSgpLCBzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKX07
Ci0gICAgICAgIHRyYWNrQnVmZmVyLmxhc3RFbnF1ZXVlZERlY29kZUR1cmF0aW9uID0gc2FtcGxl
LT5kdXJhdGlvbigpOworICAgICAgICB0cmFja0J1ZmZlci5lbnF1ZXVlRGlzY29udGludWl0eUJv
dW5kYXJ5ID0gc2FtcGxlLT5kZWNvZGVUaW1lKCkgKyBzYW1wbGUtPmR1cmF0aW9uKCkgKyBkaXNj
b250aW51aXR5VG9sZXJhbmNlOworCiAgICAgICAgIG1fcHJpdmF0ZS0+ZW5xdWV1ZVNhbXBsZShz
YW1wbGUucmVsZWFzZU5vbk51bGwoKSwgdHJhY2tJRCk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgICAgICsrZW5xdWV1ZWRTYW1wbGVzOwpAQCAtMjExMCw2ICsyMTE2LDEwIEBAIHZv
aWQgU291cmNlQnVmZmVyOjpyZWVucXVldWVNZWRpYUZvclRpbWUoVHJhY2tCdWZmZXImIHRyYWNr
QnVmZmVyLCBjb25zdCBBdG9tU3RyCiAgICAgbV9wcml2YXRlLT5mbHVzaCh0cmFja0lEKTsKICAg
ICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5jbGVhcigpOwogCisgICAgdHJhY2tCdWZmZXIuaGln
aGVzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsK
KyAgICB0cmFja0J1ZmZlci5sYXN0RW5xdWV1ZWREZWNvZGVLZXkgPSB7TWVkaWFUaW1lOjppbnZh
bGlkVGltZSgpLCBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCl9OworICAgIHRyYWNrQnVmZmVyLmVu
cXVldWVEaXNjb250aW51aXR5Qm91bmRhcnkgPSB0aW1lICsgZGlzY29udGludWl0eVRvbGVyYW5j
ZTsKKwogICAgIC8vIEZpbmQgdGhlIHNhbXBsZSB3aGljaCBjb250YWlucyB0aGUgY3VycmVudCBw
cmVzZW50YXRpb24gdGltZS4KICAgICBhdXRvIGN1cnJlbnRTYW1wbGVQVFNJdGVyYXRvciA9IHRy
YWNrQnVmZmVyLnNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKS5maW5kU2FtcGxlQ29udGFpbmlu
Z1ByZXNlbnRhdGlvblRpbWUodGltZSk7CiAKQEAgLTIxMzcsMTkgKzIxNDcsNiBAQCB2b2lkIFNv
dXJjZUJ1ZmZlcjo6cmVlbnF1ZXVlTWVkaWFGb3JUaW1lKFRyYWNrQnVmZmVyJiB0cmFja0J1ZmZl
ciwgY29uc3QgQXRvbVN0cgogICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQo
RGVjb2RlT3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5cGUoZGVjb2RlS2V5LCBXVEZN
b3ZlKGNvcHkpKSk7CiAgICAgfQogCi0gICAgaWYgKCF0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5l
bXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gbGFzdFNhbXBsZUl0ZXIgPSB0cmFja0J1ZmZlci5kZWNv
ZGVRdWV1ZS5yYmVnaW4oKTsKLSAgICAgICAgYXV0byBsYXN0U2FtcGxlRGVjb2RlS2V5ID0gbGFz
dFNhbXBsZUl0ZXItPmZpcnN0OwotICAgICAgICBhdXRvIGxhc3RTYW1wbGVEdXJhdGlvbiA9IGxh
c3RTYW1wbGVJdGVyLT5zZWNvbmQtPmR1cmF0aW9uKCk7Ci0gICAgICAgIHRyYWNrQnVmZmVyLmxh
c3RFbnF1ZXVlZFByZXNlbnRhdGlvblRpbWUgPSBsYXN0U2FtcGxlRGVjb2RlS2V5LnNlY29uZDsK
LSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5ID0gbGFzdFNhbXBsZURl
Y29kZUtleTsKLSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb24g
PSBsYXN0U2FtcGxlRHVyYXRpb247Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdHJhY2tCdWZmZXIu
bGFzdEVucXVldWVkUHJlc2VudGF0aW9uVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsK
LSAgICAgICAgdHJhY2tCdWZmZXIubGFzdEVucXVldWVkRGVjb2RlS2V5ID0ge01lZGlhVGltZTo6
aW52YWxpZFRpbWUoKSwgTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpfTsKLSAgICAgICAgdHJhY2tC
dWZmZXIubGFzdEVucXVldWVkRGVjb2RlRHVyYXRpb24gPSBNZWRpYVRpbWU6OmludmFsaWRUaW1l
KCk7Ci0gICAgfQotCiAgICAgLy8gRmlsbCB0aGUgZGVjb2RlIHF1ZXVlIHdpdGggdGhlIHJlbWFp
bmluZyBzYW1wbGVzLgogICAgIGZvciAoYXV0byBpdGVyID0gY3VycmVudFNhbXBsZURUU0l0ZXJh
dG9yOyBpdGVyICE9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3JkZXIoKS5lbmQoKTsgKytp
dGVyKQogICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQoKml0ZXIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDU0MzdiYWYzM2NkN2I5Mjc2MWFlYzhjODdlM2M0YmMxODc1NTk3YTkuLjRjNjFkNjk0MjNm
NjQ1OTY5ZjdjYjM3NzU4OTZlNGJlMTYzMzVjMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
OS0wNC0wOSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW01TRV0gRG9uJ3QgZW5xdWV1ZSBzYW1wbGVzIHRoYXQgc3RhcnQgYXQgYSBiaWcgZGlzY29u
dGludWl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAxMzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFiaWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisK
KyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVzZW50
YXRpb24tZHVyYXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtZmlyc3QtYXBwZW5kLW5vdC1zdGFydGluZy1hdC16ZXJvLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWIt
ZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDEtMTQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBTdXBwb3J0IHRoZSBmZWF0
dXJlIGZsYWcgaW4gRHVtcFJlbmRlclRyZWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXByZXNlbnRhdGlvbi1kdXJhdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1hcHBlbmQtcHJlc2VudGF0aW9uLWR1cmF0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmUxN2ZkYzUyZDRkN2RlZWMyNTAxZGRkYTMzYzZlNDdhOGMwZWMyZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXBy
ZXNlbnRhdGlvbi1kdXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKKworRVhQ
RUNURUQgKHNvdXJjZS5yZWFkeVN0YXRlID09ICdjbG9zZWQnKSBPSworRVZFTlQoc291cmNlb3Bl
bikKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2Nr
OyBjb2RlY3M9bW9jayIpKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21l
bnQpKQorRVZFTlQodXBkYXRlZW5kKQorUlVOKHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoZG91
YmxlSWJwU2FtcGxlUnVuKCkpKQorRVZFTlQodXBkYXRlZW5kKQorQnVmZmVyZWQ6Cit7UFRTKHsw
LzEwID0gMC4wMDAwMDB9KSwgRFRTKHswLzEwID0gMC4wMDAwMDB9KSwgZHVyYXRpb24oezUvMTAg
PSAwLjUwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezIwLzEwID0gMi4w
MDAwMDB9KSwgRFRTKHs1LzEwID0gMC41MDAwMDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUwMDAw
MH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezEwLzEwID0gMS4wMDAwMDB9KSwg
RFRTKHsxMC8xMCA9IDEuMDAwMDAwfSksIGR1cmF0aW9uKHsyMC8xMCA9IDIuMDAwMDAwfSksIGZs
YWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MzAvMTAgPSAzLjAwMDAwMH0pLCBEVFMoezMw
LzEwID0gMy4wMDAwMDB9KSwgZHVyYXRpb24oezUvMTAgPSAwLjUwMDAwMH0pLCBmbGFncygxKSwg
Z2VuZXJhdGlvbigwKX0KK3tQVFMoezUwLzEwID0gNS4wMDAwMDB9KSwgRFRTKHszNS8xMCA9IDMu
NTAwMDAwfSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRp
b24oMCl9Cit7UFRTKHs0MC8xMCA9IDQuMDAwMDAwfSksIERUUyh7NDAvMTAgPSA0LjAwMDAwMH0p
LCBkdXJhdGlvbih7MjAvMTAgPSAyLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0K
K0VucXVldWVkOgore1BUUyh7MC8xMCA9IDAuMDAwMDAwfSksIERUUyh7MC8xMCA9IDAuMDAwMDAw
fSksIGR1cmF0aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9
Cit7UFRTKHsyMC8xMCA9IDIuMDAwMDAwfSksIERUUyh7NS8xMCA9IDAuNTAwMDAwfSksIGR1cmF0
aW9uKHs1LzEwID0gMC41MDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsx
MC8xMCA9IDEuMDAwMDAwfSksIERUUyh7MTAvMTAgPSAxLjAwMDAwMH0pLCBkdXJhdGlvbih7MjAv
MTAgPSAyLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezMwLzEwID0g
My4wMDAwMDB9KSwgRFRTKHszMC8xMCA9IDMuMDAwMDAwfSksIGR1cmF0aW9uKHs1LzEwID0gMC41
MDAwMDB9KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs1MC8xMCA9IDUuMDAwMDAw
fSksIERUUyh7MzUvMTAgPSAzLjUwMDAwMH0pLCBkdXJhdGlvbih7NS8xMCA9IDAuNTAwMDAwfSks
IGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7NDAvMTAgPSA0LjAwMDAwMH0pLCBEVFMo
ezQwLzEwID0gNC4wMDAwMDB9KSwgZHVyYXRpb24oezIwLzEwID0gMi4wMDAwMDB9KSwgZmxhZ3Mo
MCksIGdlbmVyYXRpb24oMCl9CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1wcmVzZW50YXRpb24tZHVy
YXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LWFwcGVuZC1wcmVzZW50YXRpb24tZHVyYXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEwNzYwMTdj
NDBjZDM0ZTAyNDViNWY1Nzk3MmU5MjY5MTU1OGQ2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYXBwZW5kLXByZXNlbnRhdGlv
bi1kdXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1hcHBlbmQtYWNiLW5vLWZyYW1lLWxv
c3Q8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJtb2NrLW1lZGlhLXNvdXJjZS5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIgc291cmNlQnVmZmVyOworICAgIHZhciBp
bml0U2VnbWVudDsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuaW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSgpOworCisgICAgZnVuY3Rpb24gZG91YmxlSWJw
U2FtcGxlUnVuKCkgeworICAgICAgICAvLyBJQlAgaW4gcHJlc2VudGF0aW9uIG9yZGVyLCBJUEIg
aW4gZGVjb2RlIG9yZGVyLgorICAgICAgICAvLyBTb21lIE1QNCBmaWxlcyBkbyBhIHRyaWNrIHdo
ZXJlIHRoZXkgcGxheSB3aXRoIHRoZSBkZWNvZGUgZHVyYXRpb25zIHRvIGhhdmUgQi1mcmFtZXMg
d2l0aCB0aGUgcHJlc2VudGF0aW9uCisgICAgICAgIC8vIHRpbWVsaW5lIHN0YXJ0aW5nIGF0IHpl
cm8gd2l0aG91dCB1c2luZyBlZGl0IGxpc3RzLgorICAgICAgICAvLyBUaGlzIHRlc3QgY2hlY2tz
IHRoZXNlIGtpbmQgb2YgZmlsZXMgYXJlIGhhbmRsZWQgY29ycmVjdGx5LgorICAgICAgICByZXR1
cm4gY29uY2F0ZW5hdGVTYW1wbGVzKFsKKyAgICAgICAgICAgIG1ha2VBU2FtcGxlKCAwLCAgMCwg
IDUsIDEwLCAxLCBTQU1QTEVfRkxBRy5TWU5DKSwgLy8gSQorICAgICAgICAgICAgbWFrZUFTYW1w
bGUoMjAsICA1LCAgNSwgMTAsIDEsIFNBTVBMRV9GTEFHLk5PTkUpLCAvLyBQCisgICAgICAgICAg
ICBtYWtlQVNhbXBsZSgxMCwgMTAsIDIwLCAxMCwgMSwgU0FNUExFX0ZMQUcuTk9ORSksIC8vIEIK
KyAgICAgICAgICAgIG1ha2VBU2FtcGxlKDMwLCAzMCwgIDUsIDEwLCAxLCBTQU1QTEVfRkxBRy5T
WU5DKSwgLy8gSQorICAgICAgICAgICAgbWFrZUFTYW1wbGUoNTAsIDM1LCAgNSwgMTAsIDEsIFNB
TVBMRV9GTEFHLk5PTkUpLCAvLyBQCisgICAgICAgICAgICBtYWtlQVNhbXBsZSg0MCwgNDAsIDIw
LCAxMCwgMSwgU0FNUExFX0ZMQUcuTk9ORSksIC8vIEIKKyAgICAgICAgXSk7CisgICAgfQorCisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyAoKSA9PiB7CisgICAgICAg
IGZpbmRNZWRpYUVsZW1lbnQoKTsKKyAgICAgICAgc291cmNlID0gbmV3IE1lZGlhU291cmNlKCk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgnc291cmNlLnJlYWR5U3RhdGUnLCAnY2xvc2VkJyk7Cisg
ICAgICAgIGNvbnN0IHNvdXJjZU9wZW5lZCA9IHdhaXRGb3Ioc291cmNlLCAnc291cmNlb3Blbicp
OworCisgICAgICAgIGNvbnN0IHZpZGVvU291cmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c291cmNlJyk7CisgICAgICAgIHZpZGVvU291cmNlLnR5cGUgPSAndmlkZW8vbW9jazsgY29kZWNz
PW1vY2snOworICAgICAgICB2aWRlb1NvdXJjZS5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHNv
dXJjZSk7CisgICAgICAgIHZpZGVvLmFwcGVuZENoaWxkKHZpZGVvU291cmNlKTsKKworICAgICAg
ICBhd2FpdCBzb3VyY2VPcGVuZWQ7CisgICAgICAgIHJ1bignc291cmNlQnVmZmVyID0gc291cmNl
LmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbW9jazsgY29kZWNzPW1vY2siKScpOworCisgICAgICAg
IGluaXRTZWdtZW50ID0gbWFrZUFJbml0KDIwLCBbbWFrZUFUcmFjaygxLCAnbW9jaycsIFRSQUNL
X0tJTkQuVklERU8pXSk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVy
KGluaXRTZWdtZW50KScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3Vw
ZGF0ZWVuZCcpOworCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihkb3Vi
bGVJYnBTYW1wbGVSdW4oKSknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIs
ICd1cGRhdGVlbmQnKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoIkJ1ZmZlcmVkOiIpOworICAg
ICAgICBpbnRlcm5hbHMuYnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJRChzb3VyY2VCdWZmZXIsIDEp
LmZvckVhY2goY29uc29sZVdyaXRlKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCJFbnF1ZXVlZDoi
KTsKKyAgICAgICAgaW50ZXJuYWxzLmVucXVldWVkU2FtcGxlc0ZvclRyYWNrSUQoc291cmNlQnVm
ZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAg
IH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHZpZGVvIGNvbnRyb2xz
PjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1m
aXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0
aW5nLWF0LXplcm8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzOTJlYzcyMjNlNTY3OTUxNDk2
MDQzYjI2MDY5ZWI0ZmVjZTRmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3RhcnRpbmctYXQt
emVyby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorCitFWFBFQ1RFRCAoc291cmNlLnJl
YWR5U3RhdGUgPT0gJ2Nsb3NlZCcpIE9LCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1
ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIikp
CitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpbml0U2VnbWVudCkpCitFVkVOVCh1cGRh
dGVlbmQpCitSVU4oc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihzeW5jU2FtcGxlUnVuKDUsIDEw
KSkpCitFVkVOVCh1cGRhdGVlbmQpCitFbnF1ZXVlZCBzbyBmYXI6IChleHBlY3Rpbmcgbm8gZnJh
bWVzIHlldCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHN5bmNTYW1wbGVSdW4oMCwg
NSkpKQorRVZFTlQodXBkYXRlZW5kKQorRW5xdWV1ZWQgbm93Ogore1BUUyh7MC8xID0gMC4wMDAw
MDB9KSwgRFRTKHswLzEgPSAwLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwg
ZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsxLzEgPSAxLjAwMDAwMH0pLCBEVFMoezEv
MSA9IDEuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2Vu
ZXJhdGlvbigwKX0KK3tQVFMoezIvMSA9IDIuMDAwMDAwfSksIERUUyh7Mi8xID0gMi4wMDAwMDB9
KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQor
e1BUUyh7My8xID0gMy4wMDAwMDB9KSwgRFRTKHszLzEgPSAzLjAwMDAwMH0pLCBkdXJhdGlvbih7
MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHs0LzEgPSA0
LjAwMDAwMH0pLCBEVFMoezQvMSA9IDQuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAw
MH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezUvMSA9IDUuMDAwMDAwfSksIERU
Uyh7NS8xID0gNS4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDEp
LCBnZW5lcmF0aW9uKDApfQore1BUUyh7Ni8xID0gNi4wMDAwMDB9KSwgRFRTKHs2LzEgPSA2LjAw
MDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxhZ3MoMCksIGdlbmVyYXRpb24o
MCl9Cit7UFRTKHs3LzEgPSA3LjAwMDAwMH0pLCBEVFMoezcvMSA9IDcuMDAwMDAwfSksIGR1cmF0
aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMoezgv
MSA9IDguMDAwMDAwfSksIERUUyh7OC8xID0gOC4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9IDEu
MDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7OS8xID0gOS4wMDAwMDB9
KSwgRFRTKHs5LzEgPSA5LjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwgZmxh
Z3MoMCksIGdlbmVyYXRpb24oMCl9CitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWZpcnN0LWFwcGVuZC1ub3Qtc3Rh
cnRpbmctYXQtemVyby5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1maXJzdC1hcHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iOTdhNzUxMjNjMzIyODYyOGUwNjA4ZDk2ZDQ2ZTc4MmEwNTM2MGU3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1maXJzdC1h
cHBlbmQtbm90LXN0YXJ0aW5nLWF0LXplcm8uaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1hcHBlbmQt
bm90LXN0YXJ0aW5nLWF0LXplcm88L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJtb2NrLW1lZGlh
LXNvdXJjZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIHNvdXJjZTsKKyAgICB2YXIgc291cmNl
QnVmZmVyOworICAgIHZhciBpbml0U2VnbWVudDsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuaW5pdGlhbGl6ZU1vY2tNZWRpYVNvdXJjZSgpOworCisgICAg
ZnVuY3Rpb24gc3luY1NhbXBsZVJ1bihzdGFydCwgZW5kKSB7CisgICAgICAgIGNvbnN0IHNhbXBs
ZXMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgdGltZSA9IHN0YXJ0OyB0aW1lIDwgZW5kOyB0aW1l
KyspCisgICAgICAgICAgICBzYW1wbGVzLnB1c2gobWFrZUFTYW1wbGUodGltZSwgdGltZSwgMSwg
MSwgMSwgdGltZSA9PT0gc3RhcnQgPyBTQU1QTEVfRkxBRy5TWU5DIDogU0FNUExFX0ZMQUcuTk9O
RSkpOworICAgICAgICByZXR1cm4gY29uY2F0ZW5hdGVTYW1wbGVzKHNhbXBsZXMpOworICAgIH0K
KworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgKCkgPT4geworICAg
ICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgIHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJj
ZSgpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3NvdXJjZS5yZWFkeVN0YXRlJywgJ2Nsb3NlZCcp
OworICAgICAgICBjb25zdCBzb3VyY2VPcGVuZWQgPSB3YWl0Rm9yKHNvdXJjZSwgJ3NvdXJjZW9w
ZW4nKTsKKworICAgICAgICBjb25zdCB2aWRlb1NvdXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3NvdXJjZScpOworICAgICAgICB2aWRlb1NvdXJjZS50eXBlID0gJ3ZpZGVvL21vY2s7IGNv
ZGVjcz1tb2NrJzsKKyAgICAgICAgdmlkZW9Tb3VyY2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVS
TChzb3VyY2UpOworICAgICAgICB2aWRlby5hcHBlbmRDaGlsZCh2aWRlb1NvdXJjZSk7CisKKyAg
ICAgICAgYXdhaXQgc291cmNlT3BlbmVkOworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNv
dXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21vY2s7IGNvZGVjcz1tb2NrIiknKTsKKworICAg
ICAgICBpbml0U2VnbWVudCA9IG1ha2VBSW5pdCgxMCwgW21ha2VBVHJhY2soMSwgJ21vY2snLCBU
UkFDS19LSU5ELlZJREVPKV0pOworCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1
ZmZlcihpbml0U2VnbWVudCknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIs
ICd1cGRhdGVlbmQnKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIo
c3luY1NhbXBsZVJ1big1LCAxMCkpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVm
ZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCJFbnF1ZXVlZCBzbyBm
YXI6IChleHBlY3Rpbmcgbm8gZnJhbWVzIHlldCkiKTsKKyAgICAgICAgaW50ZXJuYWxzLmVucXVl
dWVkU2FtcGxlc0ZvclRyYWNrSUQoc291cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0
ZSk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKHN5bmNTYW1wbGVS
dW4oMCwgNSkpJyk7CisgICAgICAgIGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRl
ZW5kJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCJFbnF1ZXVlZCBub3c6Iik7CisgICAgICAg
IGludGVybmFscy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9y
RWFjaChjb25zb2xlV3JpdGUpOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1yZW1vdmUtYi1mcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM0ZDZjMDFhMzY4
MDkxNzE1OGUxZGFlNmEyZDIyMzJjZTI5NTdlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVtb3ZlLWItZnJhbWUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKKworRVhQRUNURUQgKHNvdXJjZS5yZWFkeVN0YXRlID09
ICdjbG9zZWQnKSBPSworRVZFTlQoc291cmNlb3BlbikKK1JVTihzb3VyY2VCdWZmZXIgPSBzb3Vy
Y2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tb2NrOyBjb2RlY3M9bW9jayIpKQorUlVOKHNvdXJj
ZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaW5pdFNlZ21lbnQpKQorRVZFTlQodXBkYXRlZW5kKQorUlVO
KHNvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaWJwU2FtcGxlUnVuKCkpKQorRVZFTlQodXBkYXRl
ZW5kKQore1BUUyh7MC8xID0gMC4wMDAwMDB9KSwgRFRTKHstMS8xID0gLTEuMDAwMDAwfSksIGR1
cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygxKSwgZ2VuZXJhdGlvbigwKX0KK3tQVFMo
ezIvMSA9IDIuMDAwMDAwfSksIERUUyh7MC8xID0gMC4wMDAwMDB9KSwgZHVyYXRpb24oezEvMSA9
IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDApfQore1BUUyh7MS8xID0gMS4wMDAw
MDB9KSwgRFRTKHsxLzEgPSAxLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9KSwg
ZmxhZ3MoMCksIGdlbmVyYXRpb24oMCl9CitSVU4oc291cmNlQnVmZmVyLnJlbW92ZSgxLCAyKSkK
K0VWRU5UKHVwZGF0ZWVuZCkKK1JVTihzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG5ldyBVaW50
OEFycmF5KCkpKQorRVZFTlQodXBkYXRlZW5kKQorVGhlIGZyYW1lIHdpdGggcHJlc2VudGF0aW9u
IHRpbWUgWzEsIDIpIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSBidWZmZXJlZCBz
YW1wbGVzIGFuZCBhIHJlZW5xdWV1ZSBtdXN0IGhhdmUgaGFwcGVuZWQuIFRoYXQgZnJhbWUgc2hv
dWxkIG5vdCBoYXZlIGJlZW4gZW5xdWV1ZWQuCitCdWZmZXJlZDoKK3tQVFMoezAvMSA9IDAuMDAw
MDAwfSksIERUUyh7LTEvMSA9IC0xLjAwMDAwMH0pLCBkdXJhdGlvbih7MS8xID0gMS4wMDAwMDB9
KSwgZmxhZ3MoMSksIGdlbmVyYXRpb24oMCl9Cit7UFRTKHsyLzEgPSAyLjAwMDAwMH0pLCBEVFMo
ezAvMSA9IDAuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygwKSwg
Z2VuZXJhdGlvbigwKX0KK0VucXVldWVkOgore1BUUyh7MC8xID0gMC4wMDAwMDB9KSwgRFRTKHst
MS8xID0gLTEuMDAwMDAwfSksIGR1cmF0aW9uKHsxLzEgPSAxLjAwMDAwMH0pLCBmbGFncygxKSwg
Z2VuZXJhdGlvbigwKX0KK3tQVFMoezIvMSA9IDIuMDAwMDAwfSksIERUUyh7MC8xID0gMC4wMDAw
MDB9KSwgZHVyYXRpb24oezEvMSA9IDEuMDAwMDAwfSksIGZsYWdzKDApLCBnZW5lcmF0aW9uKDAp
fQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZW1vdmUtYi1mcmFtZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRiNzUzMGU1NzQzNjc1NjZlZjllNjMyNzU1OWI3Y2UzZGM5Mjc5YzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlbW92ZS1i
LWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYXBwZW5kLXJlbW92ZS1iLWZyYW1lPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0ibW9jay1tZWRpYS1zb3VyY2UuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0Pgor
ICAgIHZhciBzb3VyY2U7CisgICAgdmFyIHNvdXJjZUJ1ZmZlcjsKKyAgICB2YXIgaW5pdFNlZ21l
bnQ7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLmluaXRp
YWxpemVNb2NrTWVkaWFTb3VyY2UoKTsKKworICAgIGZ1bmN0aW9uIGlicFNhbXBsZVJ1bigpIHsK
KyAgICAgICAgLy8gSUJQIGluIHByZXNlbnRhdGlvbiBvcmRlciwgSVBCIGluIGRlY29kZSBvcmRl
ci4KKyAgICAgICAgcmV0dXJuIGNvbmNhdGVuYXRlU2FtcGxlcyhbCisgICAgICAgICAgICBtYWtl
QVNhbXBsZSgwLCAtMSwgMSwgMSwgMSwgU0FNUExFX0ZMQUcuU1lOQyksIC8vIEkKKyAgICAgICAg
ICAgIG1ha2VBU2FtcGxlKDIsICAwLCAxLCAxLCAxLCBTQU1QTEVfRkxBRy5OT05FKSwgLy8gUAor
ICAgICAgICAgICAgbWFrZUFTYW1wbGUoMSwgIDEsIDEsIDEsIDEsIFNBTVBMRV9GTEFHLk5PTkUp
LCAvLyBCCisgICAgICAgIF0pOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgYXN5bmMgKCkgPT4geworICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAg
ICAgIHNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Nv
dXJjZS5yZWFkeVN0YXRlJywgJ2Nsb3NlZCcpOworICAgICAgICBjb25zdCBzb3VyY2VPcGVuZWQg
PSB3YWl0Rm9yKHNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBjb25zdCB2aWRlb1Nv
dXJjZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvdXJjZScpOworICAgICAgICB2aWRlb1Nv
dXJjZS50eXBlID0gJ3ZpZGVvL21vY2s7IGNvZGVjcz1tb2NrJzsKKyAgICAgICAgdmlkZW9Tb3Vy
Y2Uuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChzb3VyY2UpOworICAgICAgICB2aWRlby5hcHBl
bmRDaGlsZCh2aWRlb1NvdXJjZSk7CisKKyAgICAgICAgYXdhaXQgc291cmNlT3BlbmVkOworICAg
ICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IHNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21v
Y2s7IGNvZGVjcz1tb2NrIiknKTsKKworICAgICAgICBpbml0U2VnbWVudCA9IG1ha2VBSW5pdCgx
MCwgW21ha2VBVHJhY2soMSwgJ21vY2snLCBUUkFDS19LSU5ELlZJREVPKV0pOworCisgICAgICAg
IHJ1bignc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcihpbml0U2VnbWVudCknKTsKKyAgICAgICAg
YXdhaXQgd2FpdEZvcihzb3VyY2VCdWZmZXIsICd1cGRhdGVlbmQnKTsKKworICAgICAgICBydW4o
J3NvdXJjZUJ1ZmZlci5hcHBlbmRCdWZmZXIoaWJwU2FtcGxlUnVuKCkpJyk7CisgICAgICAgIGF3
YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisgICAgICAgIGludGVybmFs
cy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFja0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25z
b2xlV3JpdGUpOworCisgICAgICAgIHJ1bignc291cmNlQnVmZmVyLnJlbW92ZSgxLCAyKScpOwor
ICAgICAgICBhd2FpdCB3YWl0Rm9yKHNvdXJjZUJ1ZmZlciwgJ3VwZGF0ZWVuZCcpOworCisgICAg
ICAgIC8vIEV2ZW4gaWYgLnJlbW92ZSgpIHNldHMgdHJhY2tCdWZmZXIubmVlZHNSZWVucXVldWVp
bmcgdG8gdHJ1ZSwgcmVlbnF1ZXVlaW5nIHdpbGwgb25seSBoYXBwZW4gYWZ0ZXIgYW4gYXBwZW5k
LgorICAgICAgICAvLyBTbyBsZXQncyBtYWtlIGFuIGVtcHR5IGFwcGVuZC4KKyAgICAgICAgcnVu
KCdzb3VyY2VCdWZmZXIuYXBwZW5kQnVmZmVyKG5ldyBVaW50OEFycmF5KCkpJyk7CisgICAgICAg
IGF3YWl0IHdhaXRGb3Ioc291cmNlQnVmZmVyLCAndXBkYXRlZW5kJyk7CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCJUaGUgZnJhbWUgd2l0aCBwcmVzZW50YXRpb24gdGltZSBbMSwgMikgc2hvdWxk
IGhhdmUgYmVlbiBkZWxldGVkIGZyb20gdGhlIGJ1ZmZlcmVkIHNhbXBsZXMgYW5kICIgKworICAg
ICAgICAgICAgImEgcmVlbnF1ZXVlIG11c3QgaGF2ZSBoYXBwZW5lZC4gVGhhdCBmcmFtZSBzaG91
bGQgbm90IGhhdmUgYmVlbiBlbnF1ZXVlZC4iKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCJCdWZm
ZXJlZDoiKTsKKyAgICAgICAgaW50ZXJuYWxzLmJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSUQoc291
cmNlQnVmZmVyLCAxKS5mb3JFYWNoKGNvbnNvbGVXcml0ZSk7CisgICAgICAgIGNvbnNvbGVXcml0
ZSgiRW5xdWV1ZWQ6Iik7CisgICAgICAgIGludGVybmFscy5lbnF1ZXVlZFNhbXBsZXNGb3JUcmFj
a0lEKHNvdXJjZUJ1ZmZlciwgMSkuZm9yRWFjaChjb25zb2xlV3JpdGUpOworCisgICAgICAgIGVu
ZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDx2
aWRlbyBjb250cm9scz48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>