<?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>210613</bug_id>
          
          <creation_ts>2020-04-16 11:09:34 -0700</creation_ts>
          <short_desc>Date and Time form controls not showing correct initial values on immediate second invocation.</short_desc>
          <delta_ts>2020-04-20 14:46:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1642345</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-04-16 11:09:34 -0700</bug_when>
    <thetext>Date and Time form controls not showing correct initial values on immediate second invocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642902</commentid>
    <comment_count>1</comment_count>
      <attachid>396817</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-04-17 17:00:13 -0700</bug_when>
    <thetext>Created attachment 396817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642910</commentid>
    <comment_count>2</comment_count>
      <attachid>396817</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-17 17:26:20 -0700</bug_when>
    <thetext>Comment on attachment 396817
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:4325
&gt; +- (void)updateValueAsNumberForViewController:(double)value

Nit - the “ForViewController:&quot; suffix makes it sound like the argument should be a `UIViewController *`, but instead it’s a value.

What about naming these -updateFocusedElementValueAsNumber: and -updateFocusedElementValue: instead?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:8488
&gt; +#elif PLATFORM(IOS)

This excludes Mac Catalyst — is that intentional?

&gt; Source/WebKit/UIProcess/ios/forms/WKFormInputControl.mm:153
&gt; +    NSDateComponents *components = [calendar components:(NSCalendarUnitHour) fromDate:[_datePicker date]];

Nit - don’t need () around NSCalendarUnitMinute.

&gt; Source/WebKit/UIProcess/ios/forms/WKFormInputControl.mm:161
&gt; +    NSDateComponents *components = [calendar components:(NSCalendarUnitMinute) fromDate:[_datePicker date]];

Nit - ditto regarding the ().

&gt; Source/WebKit/UIProcess/ios/forms/WKFormInputControl.mm:280
&gt; +    date = [[self dateFormatterForPicker] dateFromString:timeString];

Nit - I don’t think the date local variable adds much value here, but if you prefer to include it, I’d move this down so that it’s just:

NSDate *date = [[self dateFormatterForPicker] dateFromString:timeString];

&gt; Source/WebKit/UIProcess/ios/forms/WKFormInputControl.mm:328
&gt; +    if ([self.control isKindOfClass:WKDateTimePopover.class])

Nit - WKDateTimePopover and WKDateTimePicker are not subclasses of each other, so you don’t need the return statements here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643637</commentid>
    <comment_count>3</comment_count>
      <attachid>397014</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-04-20 14:17:35 -0700</bug_when>
    <thetext>Created attachment 397014
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643646</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-20 14:45:07 -0700</bug_when>
    <thetext>Committed r260402: &lt;https://trac.webkit.org/changeset/260402&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397014.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643647</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-20 14:46:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/62076826&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396817</attachid>
            <date>2020-04-17 17:00:13 -0700</date>
            <delta_ts>2020-04-20 14:17:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210613-20200417170013.patch</filename>
            <type>text/plain</type>
            <size>22687</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxZjc5MGZmYmUxNWExZjkw
M2ZlNTNkYTNjMmMyMDQ1ZDIzYmFlNjMuLmExY2Q5OTdlZjdjZTEyOWU3NTUyMGYzNzc2M2Y5MWVk
YzA3NTdhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjAtMDQtMTcgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRlIGFuZCBUaW1l
IGZvcm0gY29udHJvbHMgbm90IHNob3dpbmcgY29ycmVjdCBpbml0aWFsIHZhbHVlcyBvbiBpbW1l
ZGlhdGUgc2Vjb25kIGludm9jYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA2MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGluZyB0aGUgd2VicHJvY2VzcyB3aXRoIHRoZSBuZXdseSBw
aWNrZWQgdGltZSBkaWQgbm90IHVwZGF0ZSB0aGUgbG9jYWwgc3RvcmUgb2YgdGhhdCBkYXRhIGlu
IHRoZQorICAgICAgICBVSSBwcm9jZXNzLCBzbyB3aGVuIHRoZSBjb250cm9sIHdhcyBhY3RpdmF0
ZWQgYSBzZWNvbmQgdGltZSwgYW5kIHdlIHNraXBwZWQgdGhlIHJvdW5kIHRyaXAgdG8gdGhlCisg
ICAgICAgIHdlYnByb2Nlc3MgdG8gZ2V0IHRoZSBkYXRhIHdlIHdlcmUgY2VydGlhbiB3ZSBhbHJl
YWR5IGhhZCwgd2UgZGlkIG5vdCBzdGFydCB0aGUgcG9wb3ZlciBpbiB0aGUgCisgICAgICAgIGNv
cnJlY3Qgc3RhdGUuIFdlIG5vdyB1cGRhdGUgdGhlIHdlYnByb2Nlc3MgYW5kIHRoZSBsb2NhbCBV
SSBzdG9yZWQgdmFyaWFibGUgYXQgdGhlIHNhbWUgdGltZS4KKworICAgICAgICBUZXN0OiBmYXN0
L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UuaHRtbAorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgdGltZVBpY2tlclZhbHVlSG91cl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGlt
ZVBpY2tlclZhbHVlTWludXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB1cGRhdGVWYWx1ZUFzTnVt
YmVyRm9yVmlld0NvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdXBkYXRl
VmFsdWVGb3JWaWV3Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRU
aW1lUGlja2VyVmFsdWVUb0hvdXI6bWludXRlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IHRpbWVQaWNrZXJWYWx1ZUhvdXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0aW1lUGlj
a2VyVmFsdWVNaW51dGVdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlu
cHV0Q29udHJvbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRD
b250cm9sLm1tOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIGhvdXJdKToKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBpY2tlciBtaW51dGVdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tl
ciBfZGF0ZUNoYW5nZWRTZXRBc051bWJlcl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2Vy
IF9kYXRlQ2hhbmdlZFNldEFzU3RyaW5nXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIg
c2V0SG91cjptaW51dGU6XSk6CisgICAgICAgICgtW1dLRm9ybUlucHV0Q29udHJvbCBzZXRUaW1l
UGlja2VySG91cjptaW51dGU6XSk6CisgICAgICAgICgtW1dLRm9ybUlucHV0Q29udHJvbCB0aW1l
UGlja2VyVmFsdWVIb3VyXSk6CisgICAgICAgICgtW1dLRm9ybUlucHV0Q29udHJvbCB0aW1lUGlj
a2VyVmFsdWVNaW51dGVdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBvcG92ZXIgc2V0SG91cjpt
aW51dGU6XSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQb3BvdmVyIGhvdXJdKToKKyAgICAgICAg
KC1bV0tEYXRlVGltZVBvcG92ZXIgbWludXRlXSk6CisKIDIwMjAtMDQtMTQgIE1lZ2FuIEdhcmRu
ZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBEYXRhIERldGVjdGVkIEFj
dGlvbnMgc2hlZXRzIGFyZSBwcmVzZW50ZWQgZnJvbSBvZGQgbG9jYXRpb25zLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZ0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2
YXRlRm9yVGVzdGluZ0lPUy5oCmluZGV4IDBmMmQ1OGMzNTczODEzNGVkOTJkNTg2MzQ4OTI0MTFj
MTQ5YTNmOWEuLmRlZWFmMTFiN2E5YmFlMjIyOGNiOTVkNWQ1MjNiNTU5M2QwMGNmOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKQEAgLTQ1LDYgKzQ1LDggQEAKIC0gKHZvaWQpc2Vs
ZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooaW50KXJvd0luZGV4OwogCiAtICh2b2lkKXNldFRp
bWVQaWNrZXJWYWx1ZVRvSG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIpbWlu
dXRlOworLSAoZG91YmxlKXRpbWVQaWNrZXJWYWx1ZUhvdXI7CistIChkb3VibGUpdGltZVBpY2tl
clZhbHVlTWludXRlOwogCiAtICh2b2lkKWFwcGx5QXV0b2NvcnJlY3Rpb246KE5TU3RyaW5nICop
bmV3U3RyaW5nIHRvU3RyaW5nOihOU1N0cmluZyAqKW9sZFN0cmluZyB3aXRoQ29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5k
ZXggM2IyYTAxZWE2Y2YxNmFjNDY0NzZkNjIzNTAwZTVhZjY0OGMwNzc5NS4uOTZkMDhjZGFjMDJj
MmYzODc4NWVlOWZhYzZjMTYzM2FmOGQxMGQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtNjksNiArNjks
MTYgQEAgLSAodm9pZClzZXRUaW1lUGlja2VyVmFsdWVUb0hvdXI6KE5TSW50ZWdlcilob3VyIG1p
bnV0ZTooTlNJbnRlZ2VyKW1pbnV0ZQogICAgIFtfY29udGVudFZpZXcgc2V0VGltZVBpY2tlclZh
bHVlVG9Ib3VyOmhvdXIgbWludXRlOm1pbnV0ZV07CiB9CiAKKy0gKGRvdWJsZSl0aW1lUGlja2Vy
VmFsdWVIb3VyCit7CisgICAgcmV0dXJuIFtfY29udGVudFZpZXcgdGltZVBpY2tlclZhbHVlSG91
cl07Cit9CisKKy0gKGRvdWJsZSl0aW1lUGlja2VyVmFsdWVNaW51dGUKK3sKKyAgICByZXR1cm4g
W19jb250ZW50VmlldyB0aW1lUGlja2VyVmFsdWVNaW51dGVdOworfQorCiAtICh2b2lkKXNlbGVj
dEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KGludClyb3dJbmRleAogewogICAgIFtfY29udGVudFZp
ZXcgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzpyb3dJbmRleF07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5k
ZXggMjdjOWMyNTZkZGNlNTAxYjY5ODVjOGZiYmU5ZGNiMjdkMDMyZDcyYy4uZmQwOTQwN2FiOTM4
ZDQ3MDVmNzUyNzU2YjA1YmM0NTZlYTY4MGI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNTM3LDkgKzUz
NywxMSBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tD
T05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogCiAvLyBVSVdlYkZvcm1BY2Nlc3NvcnlE
ZWxlZ2F0ZSBwcm90b2NvbAogLSAodm9pZClhY2Nlc3NvcnlEb25lOwotCiAtICh2b2lkKWFjY2Vz
c29yeU9wZW47CiAKKy0gKHZvaWQpdXBkYXRlVmFsdWVBc051bWJlckZvclZpZXdDb250cm9sbGVy
Oihkb3VibGUpdmFsdWU7CistICh2b2lkKXVwZGF0ZVZhbHVlRm9yVmlld0NvbnRyb2xsZXI6KE5T
U3RyaW5nICopdmFsdWU7CisKIC0gKHZvaWQpX3JlcXVlc3RET01QYXN0ZUFjY2Vzc1dpdGhFbGVt
ZW50UmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgb3JpZ2luSWRlbnRp
ZmllcjooY29uc3QgU3RyaW5nJilvcmlnaW5JZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYm
KWNvbXBsZXRpb25IYW5kbGVyOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBvc2l0aW9uSW5m
b3JtYXRpb247CkBAIC01OTMsNiArNTk1LDggQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRW
SUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0g
KHZvaWQpX3NpbXVsYXRlVGV4dEVudGVyZWQ6KE5TU3RyaW5nICopdGV4dDsKIC0gKHZvaWQpc2Vs
ZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooTlNJbnRlZ2VyKXJvd0luZGV4OwogLSAodm9pZClz
ZXRUaW1lUGlja2VyVmFsdWVUb0hvdXI6KE5TSW50ZWdlcilob3VyIG1pbnV0ZTooTlNJbnRlZ2Vy
KW1pbnV0ZTsKKy0gKGRvdWJsZSl0aW1lUGlja2VyVmFsdWVIb3VyOworLSAoZG91YmxlKXRpbWVQ
aWNrZXJWYWx1ZU1pbnV0ZTsKIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVy
ZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW07CiAtICh2b2lkKV9kb0FmdGVy
UmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAtICh2
b2lkKV9kb0FmdGVyUmVjZWl2aW5nRWRpdERyYWdTbmFwc2hvdEZvclRlc3Rpbmc6KGRpc3BhdGNo
X2Jsb2NrX3QpYWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggN2ZlOWRkM2Y3Y2E4YmQzMzc1Njk3
Y2EyY2JjYjVmYjZlMDY0ZjE4OC4uMmIzNTgzNTcwNGYwOGU3NzNhZWJhMTY4NzE1NDY5ZTExYmU5
MTQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00MzIyLDYgKzQzMjIsMTggQEAgLSAodm9pZClhY2Nl
c3NvcnlEb25lCiAgICAgX3BhZ2UtPnNldElzU2hvd2luZ0lucHV0Vmlld0ZvckZvY3VzZWRFbGVt
ZW50KGZhbHNlKTsKIH0KIAorLSAodm9pZCl1cGRhdGVWYWx1ZUFzTnVtYmVyRm9yVmlld0NvbnRy
b2xsZXI6KGRvdWJsZSl2YWx1ZQoreworICAgIF9wYWdlLT5zZXRGb2N1c2VkRWxlbWVudFZhbHVl
QXNOdW1iZXIodmFsdWUpOworICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlQXNO
dW1iZXIgPSB2YWx1ZTsKK30KKworLSAodm9pZCl1cGRhdGVWYWx1ZUZvclZpZXdDb250cm9sbGVy
OihOU1N0cmluZyAqKXZhbHVlCit7CisgICAgX3BhZ2UtPnNldEZvY3VzZWRFbGVtZW50VmFsdWUo
dmFsdWUpOworICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLnZhbHVlID0gdmFsdWU7Cit9
CisKIC0gKHZvaWQpYWNjZXNzb3J5VGFiOihCT09MKWlzTmV4dAogewogICAgIC8vIFRoZSBpbnB1
dCBwZXJpcGhlcmFsIG1heSBuZWVkIHRvIHVwZGF0ZSB0aGUgZm9jdXNlZCBET00gbm9kZSBiZWZv
cmUgd2Ugc3dpdGNoIGZvY3VzLiBUaGUgVUkgcHJvY2VzcyBkb2VzCkBAIC04NDczLDcgKzg0ODUs
MjggQEAgLSAodm9pZClzZXRUaW1lUGlja2VyVmFsdWVUb0hvdXI6KE5TSW50ZWdlcilob3VyIG1p
bnV0ZTooTlNJbnRlZ2VyKW1pbnV0ZQogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgaWYgKFtf
cHJlc2VudGVkRnVsbFNjcmVlbklucHV0Vmlld0NvbnRyb2xsZXIgaXNLaW5kT2ZDbGFzczpbV0tU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIgY2xhc3NdXSkKICAgICAgICAgWyhXS1RpbWVQaWNrZXJW
aWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRGdWxsU2NyZWVuSW5wdXRWaWV3Q29udHJvbGxlci5n
ZXQoKSBzZXRIb3VyOmhvdXIgbWludXRlOm1pbnV0ZV07CisjZWxpZiBQTEFURk9STShJT1MpCisg
ICAgaWYgKFtfaW5wdXRQZXJpcGhlcmFsIGlzS2luZE9mQ2xhc3M6W1dLRm9ybUlucHV0Q29udHJv
bCBjbGFzc11dKQorICAgICAgICBbKFdLRm9ybUlucHV0Q29udHJvbCAqKV9pbnB1dFBlcmlwaGVy
YWwuZ2V0KCkgc2V0VGltZVBpY2tlckhvdXI6aG91ciBtaW51dGU6bWludXRlXTsKKyNlbmRpZgor
fQorCistIChkb3VibGUpdGltZVBpY2tlclZhbHVlSG91cgoreworI2lmIFBMQVRGT1JNKElPUykK
KyAgICBpZiAoW19pbnB1dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtSW5wdXRDb250
cm9sIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBbKFdLRm9ybUlucHV0Q29udHJvbCAqKV9pbnB1
dFBlcmlwaGVyYWwuZ2V0KCkgdGltZVBpY2tlclZhbHVlSG91cl07CisjZW5kaWYKKyAgICByZXR1
cm4gLTE7Cit9CisKKy0gKGRvdWJsZSl0aW1lUGlja2VyVmFsdWVNaW51dGUKK3sKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgaWYgKFtfaW5wdXRQZXJpcGhlcmFsIGlzS2luZE9mQ2xhc3M6W1dLRm9y
bUlucHV0Q29udHJvbCBjbGFzc11dKQorICAgICAgICByZXR1cm4gWyhXS0Zvcm1JbnB1dENvbnRy
b2wgKilfaW5wdXRQZXJpcGhlcmFsLmdldCgpIHRpbWVQaWNrZXJWYWx1ZU1pbnV0ZV07CiAjZW5k
aWYKKyAgICByZXR1cm4gLTE7CiB9CiAKIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNl
ckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wuaApp
bmRleCBlMDdiYjQ5MWU4YzZhMzg4NzA2ZjFmNjlkNjI3NDJiN2E1OGZhZjE1Li42NzVhMTI0Yjll
ZjM5NmMwODBmMzhiZTY1OTZmYTczOGE3Y2M4NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5oCkBAIC0zNSw2ICsz
NSw5IEBACiAKIEBpbnRlcmZhY2UgV0tGb3JtSW5wdXRDb250cm9sIChXS1Rlc3RpbmcpCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkYXRlVGltZVBpY2tlckNhbGVu
ZGFyVHlwZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgZG91YmxlIHRpbWVQaWNr
ZXJWYWx1ZUhvdXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGRvdWJsZSB0aW1l
UGlja2VyVmFsdWVNaW51dGU7CistICh2b2lkKXNldFRpbWVQaWNrZXJIb3VyOihOU0ludGVnZXIp
aG91ciBtaW51dGU6KE5TSW50ZWdlciltaW51dGU7CiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0KaW5kZXggZWMzNjkwZjhkNzM2Yjc0NGFlZWMwZTNh
OTExZjE2NTY0MDIyYzE2YS4uMjFmZTFiYzI4NDAyOTNkMThhOGM3NTAzZmJlYWZlMjI4YmE4Yjc0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlu
cHV0Q29udHJvbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tG
b3JtSW5wdXRDb250cm9sLm1tCkBAIC01Niw2ICs1Niw5IEBAIEBpbnRlcmZhY2UgV0tEYXRlVGlt
ZVBvcG92ZXIgOiBXS0Zvcm1Sb3RhdGluZ0FjY2Vzc29yeVBvcG92ZXI8V0tGb3JtQ29udHJvbD4g
ewogLSAoaWQpaW5pdFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldyBkYXRlUGlja2VyTW9k
ZTooVUlEYXRlUGlja2VyTW9kZSltb2RlOwogLSAoV0tEYXRlVGltZVBvcG92ZXJWaWV3Q29udHJv
bGxlciAqKXZpZXdDb250cm9sbGVyOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U1N0cmluZyAqY2FsZW5kYXJUeXBlOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBk
b3VibGUgaG91cjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgZG91YmxlIG1pbnV0
ZTsKKy0gKHZvaWQpc2V0SG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIpbWlu
dXRlOwogQGVuZAogCiBAaW50ZXJmYWNlIFdLRGF0ZVRpbWVQaWNrZXIgOiBOU09iamVjdDxXS0Zv
cm1Db250cm9sPiB7CkBAIC0xNDQsNiArMTQ3LDIyIEBAIC0gKE5TU3RyaW5nICopY2FsZW5kYXJU
eXBlCiAgICAgcmV0dXJuIF9kYXRlUGlja2VyLmdldCgpLmNhbGVuZGFyLmNhbGVuZGFySWRlbnRp
ZmllcjsKIH0KIAorLSAoZG91YmxlKWhvdXIKK3sKKyAgICBOU0NhbGVuZGFyICpjYWxlbmRhciA9
IFtOU0NhbGVuZGFyIGN1cnJlbnRDYWxlbmRhcl07CisgICAgTlNEYXRlQ29tcG9uZW50cyAqY29t
cG9uZW50cyA9IFtjYWxlbmRhciBjb21wb25lbnRzOihOU0NhbGVuZGFyVW5pdEhvdXIpIGZyb21E
YXRlOltfZGF0ZVBpY2tlciBkYXRlXV07CisKKyAgICByZXR1cm4gW2NvbXBvbmVudHMgaG91cl07
Cit9CisKKy0gKGRvdWJsZSltaW51dGUKK3sKKyAgICBOU0NhbGVuZGFyICpjYWxlbmRhciA9IFtO
U0NhbGVuZGFyIGN1cnJlbnRDYWxlbmRhcl07CisgICAgTlNEYXRlQ29tcG9uZW50cyAqY29tcG9u
ZW50cyA9IFtjYWxlbmRhciBjb21wb25lbnRzOihOU0NhbGVuZGFyVW5pdE1pbnV0ZSkgZnJvbURh
dGU6W19kYXRlUGlja2VyIGRhdGVdXTsKKworICAgIHJldHVybiBbY29tcG9uZW50cyBtaW51dGVd
OworfQorCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbX2RhdGVQaWNrZXIgcmVtb3ZlVGFyZ2V0
OnNlbGYgYWN0aW9uOk5VTEwgZm9yQ29udHJvbEV2ZW50czpVSUNvbnRyb2xFdmVudFZhbHVlQ2hh
bmdlZF07CkBAIC0xODMsNyArMjAyLDcgQEAgLSAoTlNTdHJpbmcgKilfc2FuaXRpemVJbnB1dFZh
bHVlRm9yRm9ybWF0dGVyOihOU1N0cmluZyAqKXZhbHVlCiAtICh2b2lkKV9kYXRlQ2hhbmdlZFNl
dEFzTnVtYmVyCiB7CiAgICAgTlNEYXRlICpkYXRlID0gW19kYXRlUGlja2VyIGRhdGVdOwotICAg
IFtfdmlldyBwYWdlXS0+c2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKChbZGF0ZSB0aW1l
SW50ZXJ2YWxTaW5jZTE5NzBdICsgW3NlbGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkg
KiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kKTsKKyAgICBbX3ZpZXcgdXBkYXRlVmFsdWVBc051bWJl
ckZvclZpZXdDb250cm9sbGVyOihbZGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZTE5NzBdICsgW3NlbGYg
X3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kXTsK
IH0KIAogLSAoUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4pZGF0ZUZvcm1hdHRlckZvclBpY2tl
cgpAQCAtMjAwLDggKzIxOSw3IEBAIC0gKHZvaWQpX2RhdGVDaGFuZ2VkU2V0QXNTdHJpbmcKIHsK
ICAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBiZWNhdXNlIHRoYXQgaXMgd2hhdCBIVE1MNSB2
YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gZGF0
ZUZvcm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdOwotCi0gICAgW192aWV3
IHBhZ2VdLT5zZXRGb2N1c2VkRWxlbWVudFZhbHVlKFtkYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21E
YXRlOltfZGF0ZVBpY2tlciBkYXRlXV0pOworICAgIFtfdmlldyB1cGRhdGVWYWx1ZUZvclZpZXdD
b250cm9sbGVyOltkYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21EYXRlOltfZGF0ZVBpY2tlciBkYXRl
XV1dOwogfQogCiAtICh2b2lkKV9kYXRlQ2hhbmdlZApAQCAtMjU1LDYgKzI3MywxNSBAQCAtICh2
b2lkKWNvbnRyb2xFbmRFZGl0aW5nCiB7CiB9CiAKKy0gKHZvaWQpc2V0SG91cjooTlNJbnRlZ2Vy
KWhvdXIgbWludXRlOihOU0ludGVnZXIpbWludXRlCit7CisgICAgTlNEYXRlICpkYXRlOworICAg
IE5TU3RyaW5nICp0aW1lU3RyaW5nID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlLjJs
ZDolLjJsZCIsIChsb25nKWhvdXIsIChsb25nKW1pbnV0ZV07CisgICAgZGF0ZSA9IFtbc2VsZiBk
YXRlRm9ybWF0dGVyRm9yUGlja2VyXSBkYXRlRnJvbVN0cmluZzp0aW1lU3RyaW5nXTsKKyAgICBb
X2RhdGVQaWNrZXIgc2V0RGF0ZTpkYXRlXTsKKyAgICBbc2VsZiBfZGF0ZUNoYW5nZWRdOworfQor
CiBAZW5kCiAKIC8vIFdLRm9ybUlucHV0Q29udHJvbApAQCAtMjk0LDYgKzMyMSwxNCBAQCBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Zvcm1JbnB1dENvbnRyb2wgKFdLVGVzdGluZykKIAorLSAo
dm9pZClzZXRUaW1lUGlja2VySG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIp
bWludXRlCit7CisgICAgaWYgKFtzZWxmLmNvbnRyb2wgaXNLaW5kT2ZDbGFzczpXS0RhdGVUaW1l
UGlja2VyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tEYXRlVGltZVBpY2tlciAqKXNlbGYu
Y29udHJvbCBzZXRIb3VyOmhvdXIgbWludXRlOm1pbnV0ZV07CisgICAgaWYgKFtzZWxmLmNvbnRy
b2wgaXNLaW5kT2ZDbGFzczpXS0RhdGVUaW1lUG9wb3Zlci5jbGFzc10pCisgICAgICAgIHJldHVy
biBbKFdLRGF0ZVRpbWVQb3BvdmVyICopc2VsZi5jb250cm9sIHNldEhvdXI6aG91ciBtaW51dGU6
bWludXRlXTsKK30KKwogLSAoTlNTdHJpbmcgKilkYXRlVGltZVBpY2tlckNhbGVuZGFyVHlwZQog
ewogICAgIGlmIChbc2VsZi5jb250cm9sIGlzS2luZE9mQ2xhc3M6V0tEYXRlVGltZVBpY2tlci5j
bGFzc10pCkBAIC0zMDMsNiArMzM4LDI0IEBAIC0gKE5TU3RyaW5nICopZGF0ZVRpbWVQaWNrZXJD
YWxlbmRhclR5cGUKICAgICByZXR1cm4gbmlsOwogfQogCistIChkb3VibGUpdGltZVBpY2tlclZh
bHVlSG91cgoreworICAgIGlmIChbc2VsZi5jb250cm9sIGlzS2luZE9mQ2xhc3M6V0tEYXRlVGlt
ZVBpY2tlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQaWNrZXIgKilzZWxm
LmNvbnRyb2wgaG91cl07CisgICAgaWYgKFtzZWxmLmNvbnRyb2wgaXNLaW5kT2ZDbGFzczpXS0Rh
dGVUaW1lUG9wb3Zlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQb3BvdmVy
ICopc2VsZi5jb250cm9sIGhvdXJdOworICAgIHJldHVybiAtMTsKK30KKworLSAoZG91YmxlKXRp
bWVQaWNrZXJWYWx1ZU1pbnV0ZQoreworICAgIGlmIChbc2VsZi5jb250cm9sIGlzS2luZE9mQ2xh
c3M6V0tEYXRlVGltZVBpY2tlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQ
aWNrZXIgKilzZWxmLmNvbnRyb2wgbWludXRlXTsKKyAgICBpZiAoW3NlbGYuY29udHJvbCBpc0tp
bmRPZkNsYXNzOldLRGF0ZVRpbWVQb3BvdmVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFsoV0tE
YXRlVGltZVBvcG92ZXIgKilzZWxmLmNvbnRyb2wgbWludXRlXTsKKyAgICByZXR1cm4gLTE7Cit9
CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRGF0ZVRpbWVQb3BvdmVyVmlld0NvbnRyb2xs
ZXIKQEAgLTQxNiwxMiArNDY5LDM2IEBAIC0gKFVJVmlldyAqKWNvbnRyb2xWaWV3CiAgICAgcmV0
dXJuIG5pbDsKIH0KIAorLSAodm9pZClzZXRIb3VyOihOU0ludGVnZXIpaG91ciBtaW51dGU6KE5T
SW50ZWdlciltaW51dGUKK3sKKyAgICBXS0RhdGVUaW1lUGlja2VyICpkYXRlVGltZVBpY2tlciA9
IChXS0RhdGVUaW1lUGlja2VyICopc2VsZi52aWV3Q29udHJvbGxlci5pbm5lckNvbnRyb2w7Cisg
ICAgW2RhdGVUaW1lUGlja2VyIHNldEhvdXI6aG91ciBtaW51dGU6bWludXRlXTsKK30KKwogLSAo
TlNTdHJpbmcgKiljYWxlbmRhclR5cGUKIHsKICAgICBXS0RhdGVUaW1lUGlja2VyICpkYXRlVGlt
ZVBpY2tlciA9IChXS0RhdGVUaW1lUGlja2VyICopc2VsZi52aWV3Q29udHJvbGxlci5pbm5lckNv
bnRyb2w7CiAgICAgcmV0dXJuIGRhdGVUaW1lUGlja2VyLmRhdGVQaWNrZXIuY2FsZW5kYXIuY2Fs
ZW5kYXJJZGVudGlmaWVyOwogfQogCistIChkb3VibGUpaG91cgoreworICAgIFdLRGF0ZVRpbWVQ
aWNrZXIgKmRhdGVUaW1lUGlja2VyID0gKFdLRGF0ZVRpbWVQaWNrZXIgKilzZWxmLnZpZXdDb250
cm9sbGVyLmlubmVyQ29udHJvbDsKKyAgICBOU0NhbGVuZGFyICpjYWxlbmRhciA9IFtOU0NhbGVu
ZGFyIGN1cnJlbnRDYWxlbmRhcl07CisgICAgTlNEYXRlQ29tcG9uZW50cyAqY29tcG9uZW50cyA9
IFtjYWxlbmRhciBjb21wb25lbnRzOihOU0NhbGVuZGFyVW5pdEhvdXIpIGZyb21EYXRlOmRhdGVU
aW1lUGlja2VyLmRhdGVQaWNrZXIuZGF0ZV07CisKKyAgICByZXR1cm4gW2NvbXBvbmVudHMgaG91
cl07Cit9CisKKy0gKGRvdWJsZSltaW51dGUKK3sKKyAgICBXS0RhdGVUaW1lUGlja2VyICpkYXRl
VGltZVBpY2tlciA9IChXS0RhdGVUaW1lUGlja2VyICopc2VsZi52aWV3Q29udHJvbGxlci5pbm5l
ckNvbnRyb2w7CisgICAgTlNDYWxlbmRhciAqY2FsZW5kYXIgPSBbTlNDYWxlbmRhciBjdXJyZW50
Q2FsZW5kYXJdOworICAgIE5TRGF0ZUNvbXBvbmVudHMgKmNvbXBvbmVudHMgPSBbY2FsZW5kYXIg
Y29tcG9uZW50czooTlNDYWxlbmRhclVuaXRNaW51dGUpIGZyb21EYXRlOmRhdGVUaW1lUGlja2Vy
LmRhdGVQaWNrZXIuZGF0ZV07CisKKyAgICByZXR1cm4gW2NvbXBvbmVudHMgbWludXRlXTsKK30K
KwogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZjQ1ZDg4M2NmZTUyZWY4MzU0
Mjg5YTBmMWNmNGM3YzJkNmEyZDlkLi42ZTBhYTE2ODg4N2U4ZmVmYjQyZDBlMGZmYjcxMGEzYzJm
ZDM1ZjRmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDQtMTcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJk
bmVyQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRlIGFuZCBUaW1lIGZvcm0gY29udHJvbHMgbm90
IHNob3dpbmcgY29ycmVjdCBpbml0aWFsIHZhbHVlcyBvbiBpbW1lZGlhdGUgc2Vjb25kIGludm9j
YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTA2MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6dGlt
ZVBpY2tlclZhbHVlSG91ciBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
cjo6dGltZVBpY2tlclZhbHVlTWludXRlIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcklPUzo6dGltZVBpY2tlclZhbHVlSG91ciBjb25zdCk6CisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6dGltZVBpY2tlclZhbHVlTWludXRlIGNvbnN0KToKKwog
MjAyMC0wNC0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIFJlbW92ZSBnZW5lcmljIHBhcmFtZXRlciBzZXJpYWxpemF0aW9uIGZhbGxiYWNr
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCBjZjEyMzQ3
NmE5ODc1ZDEyMzkyM2M1Nzc1ZmM3YzZmZGE2YTM2YzRiLi5jYTU3NTg4ZTNkODAyMjBlOGFjNzU2
NGIyNzY3NTZiMGJmMzY0MmE5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwKQEAgLTIxNCw2ICsyMTQsOCBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVy
IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZvcm1JbnB1dExhYmVsOwogCiAg
ICAgdm9pZCBzZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0ZSk7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSB0aW1lUGlja2VyVmFsdWVIb3VyOworICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlOwogCiAgICAgLy8gU2hh
cmUgc2hlZXQKICAgICB2b2lkIHNldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhS
ZXNvbHV0aW9uKGJvb2xlYW4gcmVzb2x2ZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCA3
NGMyMjBjZjc3MDQxZTU3ZjU0YzRkMjhlYmRhYmY3NTZmMTBiNjA3Li4zNGY4Yzk2MmNkYTg1OTBl
YzYxM2Y3MWEzZjVjZmUwZGU3ZDZkY2ZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtMjA0
LDYgKzIwNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBzZWxlY3RGb3JtUG9wb3ZlclRpdGxlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGZvcm1J
bnB1dExhYmVsKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0
ZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisgICAgdmlydHVhbCBkb3VibGUgdGltZVBpY2tlclZh
bHVlSG91cigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIC0xOyB9CisgICAgdmly
dHVhbCBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gLTE7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nRGF0YUxpc3RTdWdn
ZXN0aW9ucygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
dmlydHVhbCBKU09iamVjdFJlZiBjYWxlbmRhclR5cGUoKSBjb25zdCB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRDYWxlbmRh
clR5cGUoSlNTdHJpbmdSZWYgY2FsZW5kYXJJZGVudGlmaWVyLCBKU1N0cmluZ1JlZiBsb2NhbGVJ
ZGVudGlmaWVyKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmgKaW5kZXggNTY2YzM4OTYyOTc5MDkx
YTE4ZjVhMDk5YTY0ZTVkYTNmNDIxNzEyOC4uNjM0OGZiZTFhYjAyNzI2M2U2YmExZWM1OTUwM2Yz
MTQ4OGIyYTJmMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLmgKQEAgLTg5LDYgKzg5LDggQEAgcHVibGljOgogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBmb3JtSW5wdXRMYWJlbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJvdyhsb25nIHJvd0luZGV4KSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldFRpbWVQaWNrZXJWYWx1ZShsb25nIGhvdXIsIGxvbmcgbWludXRlKSBvdmVy
cmlkZTsKKyAgICBkb3VibGUgdGltZVBpY2tlclZhbHVlSG91cigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGRvdWJsZSB0aW1lUGlja2VyVmFsdWVNaW51dGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGlzUHJlc2VudGluZ01vZGFsbHkoKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgY29u
dGVudE9mZnNldFgoKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgY29udGVudE9mZnNldFko
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9z
L1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCAwZWQyYjc3NmQ0NTllNjc0MTBhZTBiMjMwMjI0
MzNmMWE0MzI4NTM4Li5mZjFhZmI5MmQ3N2ZkYWVmODZlZjg0NzcxOGY1YzZhOTVmN2U2OTcyIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJ
T1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLm1tCkBAIC02MTEsNiArNjExLDE2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpz
ZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0ZSkKICAgICBbd2ViVmlldygp
IHNldFRpbWVQaWNrZXJWYWx1ZVRvSG91cjpob3VyIG1pbnV0ZTptaW51dGVdOwogfQogCitkb3Vi
bGUgVUlTY3JpcHRDb250cm9sbGVySU9TOjp0aW1lUGlja2VyVmFsdWVIb3VyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gW3dlYlZpZXcoKSB0aW1lUGlja2VyVmFsdWVIb3VyXTsKK30KKworZG91Ymxl
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6dGltZVBpY2tlclZhbHVlTWludXRlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gW3dlYlZpZXcoKSB0aW1lUGlja2VyVmFsdWVNaW51dGVdOworfQorCiBib29s
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6aXNQcmVzZW50aW5nTW9kYWxseSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuICEhd2ViVmlldygpLndpbmRvdy5yb290Vmlld0NvbnRyb2xsZXIucHJlc2VudGVk
Vmlld0NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmE1YjNjZjNjOTk1ZWRkYmZmOThlYTU2ODEzZmY1N2Zk
Mjk1ODAwNS4uMmM0YzdiMzlmZmU2N2QyMWRhNDhkNDhhMmQ4NTYyYTcwZTliY2IxMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTE3ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5l
ckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0ZSBhbmQgVGltZSBmb3JtIGNvbnRyb2xzIG5vdCBz
aG93aW5nIGNvcnJlY3QgaW5pdGlhbCB2YWx1ZXMgb24gaW1tZWRpYXRlIHNlY29uZCBpbnZvY2F0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
NjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdp
bmRvdy5VSUhlbHBlci50aW1lclBpY2tlclZhbHVlcyk6CisKIDIwMjAtMDQtMTUgIERpZWdvIFBp
bm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBHYXJkZW5pbmcg
b2YgZmxha3kgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9z
L3RpbWUtcGlja2VyLXZhbHVlLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE0Mzg5YzU4Zjc3ZGQ5YjMxOGE3ZTdkZTMyNGUwMjliNjI4M2Q3OTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFu
Z2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IHRoZSB2YWx1ZSBpbiB0aGUgdGltZSBwaWNrZXIgaXMgdXBkYXRlZCBvbiB0aGUgc2Vjb25kIHBy
ZXNlbnRhdGlvbiBvZiB0aGUgZm9ybS4gVG8gbWFudWFsbHkgcnVuIHRoZSB0ZXN0LCB0YXAgdGhl
IHRpbWUgaW5wdXQgYW5kIGNoYW5nZSB0aGUgdGltZSB0byA5OjQxLCB0aGVuIGRpc21pc3MgdGhl
IHBpY2tlciwgYW5kIHNlbGVjdCBpdCBhZ2FpbiBhbmQgdmVyaWZ5IHRoYXQgaXQgc2F5cyA5OjQx
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBIYW5kbGVkIGNoYW5nZSBl
dmVudAorUEFTUyBIYW5kbGVkIGJsdXIgZXZlbnQKK1BBU1MgcGlja2VyVmFsdWVzLmhvdXIgaXMg
OQorUEFTUyBwaWNrZXJWYWx1ZXMubWludXRlIGlzIDQxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pb3MvdGltZS1waWNrZXItdmFsdWUtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZDRiMjgyYThjOGI0NDM3NWYyZjNmMTk0MjFhNTc2MWJkMDgwOTM5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvdGltZS1waWNrZXItdmFsdWUtY2hhbmdlLmh0
bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
IGRlc2NyaXB0aW9uKGBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgdmFsdWUgaW4gdGhlIHRp
bWUgcGlja2VyIGlzIHVwZGF0ZWQgb24gdGhlIHNlY29uZCBwcmVzZW50YXRpb24gb2YgdGhlIGZv
cm0uIFRvIG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgdGFwIHRoZSB0aW1lIGlucHV0IGFuZCBjaGFu
Z2UgdGhlIHRpbWUgdG8gOTo0MSwgdGhlbiBkaXNtaXNzIHRoZSBwaWNrZXIsIGFuZCBzZWxlY3Qg
aXQgYWdhaW4gYW5kIHZlcmlmeSB0aGF0IGl0IHNheXMgOTo0MS5gKTsKKworICAgIHRpbWUgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpOworICAgIHRpbWUuYWRkRXZlbnRMaXN0ZW5l
cigiY2hhbmdlIiwgKCkgPT4gdGVzdFBhc3NlZCgiSGFuZGxlZCBjaGFuZ2UgZXZlbnQiKSk7Cisg
ICAgdGltZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgKCkgPT4gdGVzdFBhc3NlZCgiSGFuZGxl
ZCBibHVyIGV2ZW50IikpOworCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklu
cHV0U2Vzc2lvbih0aW1lKTsKKyAgICBhd2FpdCBVSUhlbHBlci5zZXRUaW1lUGlja2VyVmFsdWUo
OSwgNDEpOworICAgIGF3YWl0IFVJSGVscGVyLmRpc21pc3NGb3JtQWNjZXNzb3J5VmlldygpOwor
ICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOworICAgIGF3YWl0IFVJ
SGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24odGltZSk7CisgICAg
cGlja2VyVmFsdWVzID0gYXdhaXQgVUlIZWxwZXIudGltZXJQaWNrZXJWYWx1ZXMoKTsKKworICAg
IHNob3VsZEJlKCJwaWNrZXJWYWx1ZXMuaG91ciIsICI5Iik7CisgICAgc2hvdWxkQmUoInBpY2tl
clZhbHVlcy5taW51dGUiLCAiNDEiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlucHV0IHR5cGU9InRpbWUi
IHZhbHVlPSIwNDowMSIgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVpZ2h0OiAxMDBweDsiPjwvaW5w
dXQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
dWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCAw
YzFkNjgzOWM0NTRlZDg1OWJmYmFjNmFhYjQ2ZDU2MmM3ZGJhNDcxLi5hZDlmNmI4ZGVkYWRiNjdj
NWU1YjljZmMzM2E5MjM1NjM2YmM3YWRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMK
QEAgLTcxNCw2ICs3MTQsMTggQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewog
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2Ny
aXB0KHNldFZhbHVlU2NyaXB0LCByZXNvbHZlKSk7CiAgICAgfQogCisgICAgc3RhdGljIHRpbWVy
UGlja2VyVmFsdWVzKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc0lPU0ZhbWlseSgpKQor
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIGNvbnN0IHVp
U2NyaXB0ID0gIkpTT04uc3RyaW5naWZ5KFt1aUNvbnRyb2xsZXIudGltZVBpY2tlclZhbHVlSG91
ciwgdWlDb250cm9sbGVyLnRpbWVQaWNrZXJWYWx1ZU1pbnV0ZV0pIjsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCh1aVNjcmlwdCwg
cmVzdWx0ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IFtob3VyLCBtaW51dGVdID0gSlNPTi5wYXJz
ZShyZXN1bHQpCisgICAgICAgICAgICByZXNvbHZlKHsgaG91cjogaG91ciwgbWludXRlOiBtaW51
dGUgfSk7CisgICAgICAgIH0pKTsKKyAgICB9CisKICAgICBzdGF0aWMgc2V0U2hhcmVTaGVldENv
bXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb24ocmVzb2x2ZWQpCiAgICAgewogICAgICAg
ICBjb25zdCByZXNvbHZlU2hhcmVTaGVldCA9IGAoKCkgPT4gdWlDb250cm9sbGVyLnNldFNoYXJl
U2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uKCR7cmVzb2x2ZWR9KSkoKWA7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397014</attachid>
            <date>2020-04-20 14:17:35 -0700</date>
            <delta_ts>2020-04-20 14:45:08 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210613-20200420141734.patch</filename>
            <type>text/plain</type>
            <size>22629</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxZjc5MGZmYmUxNWExZjkw
M2ZlNTNkYTNjMmMyMDQ1ZDIzYmFlNjMuLjIyY2FhNDZmMDM3MTYwMWY4ZjgzYWZhYmNiN2QyMWYx
YjM1ZGZhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjAtMDQtMTcgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRlIGFuZCBUaW1l
IGZvcm0gY29udHJvbHMgbm90IHNob3dpbmcgY29ycmVjdCBpbml0aWFsIHZhbHVlcyBvbiBpbW1l
ZGlhdGUgc2Vjb25kIGludm9jYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA2MTMKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNp
ZWguCisKKyAgICAgICAgVXBkYXRpbmcgdGhlIHdlYnByb2Nlc3Mgd2l0aCB0aGUgbmV3bHkgcGlj
a2VkIHRpbWUgZGlkIG5vdCB1cGRhdGUgdGhlIGxvY2FsIHN0b3JlIG9mIHRoYXQgZGF0YSBpbiB0
aGUKKyAgICAgICAgVUkgcHJvY2Vzcywgc28gd2hlbiB0aGUgY29udHJvbCB3YXMgYWN0aXZhdGVk
IGEgc2Vjb25kIHRpbWUsIGFuZCB3ZSBza2lwcGVkIHRoZSByb3VuZCB0cmlwIHRvIHRoZQorICAg
ICAgICB3ZWJwcm9jZXNzIHRvIGdldCB0aGUgZGF0YSB3ZSB3ZXJlIGNlcnRpYW4gd2UgYWxyZWFk
eSBoYWQsIHdlIGRpZCBub3Qgc3RhcnQgdGhlIHBvcG92ZXIgaW4gdGhlIAorICAgICAgICBjb3Jy
ZWN0IHN0YXRlLiBXZSBub3cgdXBkYXRlIHRoZSB3ZWJwcm9jZXNzIGFuZCB0aGUgbG9jYWwgVUkg
c3RvcmVkIHZhcmlhYmxlIGF0IHRoZSBzYW1lIHRpbWUuCisKKyAgICAgICAgVGVzdDogZmFzdC9m
b3Jtcy9pb3MvdGltZS1waWNrZXItdmFsdWUtY2hhbmdlLmh0bWwKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHRpbWVQaWNrZXJWYWx1ZUhvdXJdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRpbWVQ
aWNrZXJWYWx1ZU1pbnV0ZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdXBkYXRlVmFsdWVBc051bWJl
ckZvclZpZXdDb250cm9sbGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHVwZGF0ZVZh
bHVlRm9yVmlld0NvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VGlt
ZVBpY2tlclZhbHVlVG9Ib3VyOm1pbnV0ZTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB0
aW1lUGlja2VyVmFsdWVIb3VyXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdGltZVBpY2tl
clZhbHVlTWludXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1
dENvbnRyb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29u
dHJvbC5tbToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBob3VyXSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQaWNrZXIgbWludXRlXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQaWNrZXIg
X2RhdGVDaGFuZ2VkU2V0QXNOdW1iZXJdKToKKyAgICAgICAgKC1bV0tEYXRlVGltZVBpY2tlciBf
ZGF0ZUNoYW5nZWRTZXRBc1N0cmluZ10pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUGlja2VyIHNl
dEhvdXI6bWludXRlOl0pOgorICAgICAgICAoLVtXS0Zvcm1JbnB1dENvbnRyb2wgc2V0VGltZVBp
Y2tlckhvdXI6bWludXRlOl0pOgorICAgICAgICAoLVtXS0Zvcm1JbnB1dENvbnRyb2wgdGltZVBp
Y2tlclZhbHVlSG91cl0pOgorICAgICAgICAoLVtXS0Zvcm1JbnB1dENvbnRyb2wgdGltZVBpY2tl
clZhbHVlTWludXRlXSk6CisgICAgICAgICgtW1dLRGF0ZVRpbWVQb3BvdmVyIHNldEhvdXI6bWlu
dXRlOl0pOgorICAgICAgICAoLVtXS0RhdGVUaW1lUG9wb3ZlciBob3VyXSk6CisgICAgICAgICgt
W1dLRGF0ZVRpbWVQb3BvdmVyIG1pbnV0ZV0pOgorCiAyMDIwLTA0LTE0ICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRGF0YSBEZXRlY3RlZCBBY3Rp
b25zIHNoZWV0cyBhcmUgcHJlc2VudGVkIGZyb20gb2RkIGxvY2F0aW9ucy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmdJT1MuaAppbmRleCAwZjJkNThjMzU3MzgxMzRlZDkyZDU4NjM0ODkyNDExYzE0
OWEzZjlhLi5kZWVhZjExYjdhOWJhZTIyMjhjYjk1ZDVkNTIzYjU1OTNkMDBjZjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCkBAIC00NSw2ICs0NSw4IEBACiAtICh2b2lkKXNlbGVj
dEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KGludClyb3dJbmRleDsKIAogLSAodm9pZClzZXRUaW1l
UGlja2VyVmFsdWVUb0hvdXI6KE5TSW50ZWdlcilob3VyIG1pbnV0ZTooTlNJbnRlZ2VyKW1pbnV0
ZTsKKy0gKGRvdWJsZSl0aW1lUGlja2VyVmFsdWVIb3VyOworLSAoZG91YmxlKXRpbWVQaWNrZXJW
YWx1ZU1pbnV0ZTsKIAogLSAodm9pZClhcHBseUF1dG9jb3JyZWN0aW9uOihOU1N0cmluZyAqKW5l
d1N0cmluZyB0b1N0cmluZzooTlNTdHJpbmcgKilvbGRTdHJpbmcgd2l0aENvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4
IDNiMmEwMWVhNmNmMTZhYzQ2NDc2ZDYyMzUwMGU1YWY2NDhjMDc3OTUuLjk2ZDA4Y2RhYzAyYzJm
Mzg3ODVlZTlmYWM2YzE2MzNhZjhkMTBkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTY5LDYgKzY5LDE2
IEBAIC0gKHZvaWQpc2V0VGltZVBpY2tlclZhbHVlVG9Ib3VyOihOU0ludGVnZXIpaG91ciBtaW51
dGU6KE5TSW50ZWdlciltaW51dGUKICAgICBbX2NvbnRlbnRWaWV3IHNldFRpbWVQaWNrZXJWYWx1
ZVRvSG91cjpob3VyIG1pbnV0ZTptaW51dGVdOwogfQogCistIChkb3VibGUpdGltZVBpY2tlclZh
bHVlSG91cgoreworICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IHRpbWVQaWNrZXJWYWx1ZUhvdXJd
OworfQorCistIChkb3VibGUpdGltZVBpY2tlclZhbHVlTWludXRlCit7CisgICAgcmV0dXJuIFtf
Y29udGVudFZpZXcgdGltZVBpY2tlclZhbHVlTWludXRlXTsKK30KKwogLSAodm9pZClzZWxlY3RG
b3JtQWNjZXNzb3J5UGlja2VyUm93OihpbnQpcm93SW5kZXgKIHsKICAgICBbX2NvbnRlbnRWaWV3
IHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6cm93SW5kZXhdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IDI3YzljMjU2ZGRjZTUwMWI2OTg1YzhmYmJlOWRjYjI3ZDAzMmQ3MmMuLjU0NzA4N2U0MTNmMTA3
ZGY5ZjY3Y2ZmYzBlOTQyMTc3MmY0ZGZlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTUzNyw5ICs1Mzcs
MTEgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09O
VEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIAogLy8gVUlXZWJGb3JtQWNjZXNzb3J5RGVs
ZWdhdGUgcHJvdG9jb2wKIC0gKHZvaWQpYWNjZXNzb3J5RG9uZTsKLQogLSAodm9pZClhY2Nlc3Nv
cnlPcGVuOwogCistICh2b2lkKXVwZGF0ZUZvY3VzZWRFbGVtZW50VmFsdWVBc051bWJlcjooZG91
YmxlKXZhbHVlOworLSAodm9pZCl1cGRhdGVGb2N1c2VkRWxlbWVudFZhbHVlOihOU1N0cmluZyAq
KXZhbHVlOworCiAtICh2b2lkKV9yZXF1ZXN0RE9NUGFzdGVBY2Nlc3NXaXRoRWxlbWVudFJlY3Q6
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IG9yaWdpbklkZW50aWZpZXI6KGNv
bnN0IFN0cmluZyYpb3JpZ2luSWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlKT4mJiljb21wbGV0
aW9uSGFuZGxlcjsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9u
OwpAQCAtNTkzLDYgKzU5NSw4IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJ
T04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9z
aW11bGF0ZVRleHRFbnRlcmVkOihOU1N0cmluZyAqKXRleHQ7CiAtICh2b2lkKXNlbGVjdEZvcm1B
Y2Nlc3NvcnlQaWNrZXJSb3c6KE5TSW50ZWdlcilyb3dJbmRleDsKIC0gKHZvaWQpc2V0VGltZVBp
Y2tlclZhbHVlVG9Ib3VyOihOU0ludGVnZXIpaG91ciBtaW51dGU6KE5TSW50ZWdlciltaW51dGU7
CistIChkb3VibGUpdGltZVBpY2tlclZhbHVlSG91cjsKKy0gKGRvdWJsZSl0aW1lUGlja2VyVmFs
dWVNaW51dGU7CiAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVt
OihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtOwogLSAodm9pZClfZG9BZnRlclJlc2V0dGlu
Z1NpbmdsZVRhcEdlc3R1cmU6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOwogLSAodm9pZClfZG9B
ZnRlclJlY2VpdmluZ0VkaXREcmFnU25hcHNob3RGb3JUZXN0aW5nOihkaXNwYXRjaF9ibG9ja190
KWFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDdmZTlkZDNmN2NhOGJkMzM3NTY5N2NhMmNiY2I1
ZmI2ZTA2NGYxODguLjYzNGIxYzliNGJmNzgyNDgwNDFmODE2YmQ4M2IxN2Q4ODYwZWM5YWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtNDMyMiw2ICs0MzIyLDE4IEBAIC0gKHZvaWQpYWNjZXNzb3J5RG9u
ZQogICAgIF9wYWdlLT5zZXRJc1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudChmYWxz
ZSk7CiB9CiAKKy0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyOihkb3Vi
bGUpdmFsdWUKK3sKKyAgICBfcGFnZS0+c2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKHZh
bHVlKTsKKyAgICBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi52YWx1ZUFzTnVtYmVyID0gdmFs
dWU7Cit9CisKKy0gKHZvaWQpdXBkYXRlRm9jdXNlZEVsZW1lbnRWYWx1ZTooTlNTdHJpbmcgKil2
YWx1ZQoreworICAgIF9wYWdlLT5zZXRGb2N1c2VkRWxlbWVudFZhbHVlKHZhbHVlKTsKKyAgICBf
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi52YWx1ZSA9IHZhbHVlOworfQorCiAtICh2b2lkKWFj
Y2Vzc29yeVRhYjooQk9PTClpc05leHQKIHsKICAgICAvLyBUaGUgaW5wdXQgcGVyaXBoZXJhbCBt
YXkgbmVlZCB0byB1cGRhdGUgdGhlIGZvY3VzZWQgRE9NIG5vZGUgYmVmb3JlIHdlIHN3aXRjaCBm
b2N1cy4gVGhlIFVJIHByb2Nlc3MgZG9lcwpAQCAtODQ3Myw3ICs4NDg1LDI4IEBAIC0gKHZvaWQp
c2V0VGltZVBpY2tlclZhbHVlVG9Ib3VyOihOU0ludGVnZXIpaG91ciBtaW51dGU6KE5TSW50ZWdl
ciltaW51dGUKICNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIGlmIChbX3ByZXNlbnRlZEZ1bGxT
Y3JlZW5JbnB1dFZpZXdDb250cm9sbGVyIGlzS2luZE9mQ2xhc3M6W1dLVGltZVBpY2tlclZpZXdD
b250cm9sbGVyIGNsYXNzXV0pCiAgICAgICAgIFsoV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIg
KilfcHJlc2VudGVkRnVsbFNjcmVlbklucHV0Vmlld0NvbnRyb2xsZXIuZ2V0KCkgc2V0SG91cjpo
b3VyIG1pbnV0ZTptaW51dGVdOworI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAo
W19pbnB1dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtSW5wdXRDb250cm9sIGNsYXNz
XV0pCisgICAgICAgIFsoV0tGb3JtSW5wdXRDb250cm9sICopX2lucHV0UGVyaXBoZXJhbC5nZXQo
KSBzZXRUaW1lUGlja2VySG91cjpob3VyIG1pbnV0ZTptaW51dGVdOworI2VuZGlmCit9CisKKy0g
KGRvdWJsZSl0aW1lUGlja2VyVmFsdWVIb3VyCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBpZiAoW19pbnB1dFBlcmlwaGVyYWwgaXNLaW5kT2ZDbGFzczpbV0tGb3JtSW5wdXRDb250
cm9sIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBbKFdLRm9ybUlucHV0Q29udHJvbCAqKV9pbnB1
dFBlcmlwaGVyYWwuZ2V0KCkgdGltZVBpY2tlclZhbHVlSG91cl07CisjZW5kaWYKKyAgICByZXR1
cm4gLTE7Cit9CisKKy0gKGRvdWJsZSl0aW1lUGlja2VyVmFsdWVNaW51dGUKK3sKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIGlmIChbX2lucHV0UGVyaXBoZXJhbCBpc0tpbmRPZkNsYXNz
OltXS0Zvcm1JbnB1dENvbnRyb2wgY2xhc3NdXSkKKyAgICAgICAgcmV0dXJuIFsoV0tGb3JtSW5w
dXRDb250cm9sICopX2lucHV0UGVyaXBoZXJhbC5nZXQoKSB0aW1lUGlja2VyVmFsdWVNaW51dGVd
OwogI2VuZGlmCisgICAgcmV0dXJuIC0xOwogfQogCiAtIChOU0RpY3Rpb25hcnkgKilfY29udGVu
dHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250
cm9sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250
cm9sLmgKaW5kZXggZTA3YmI0OTFlOGM2YTM4ODcwNmYxZjY5ZDYyNzQyYjdhNThmYWYxNS4uNjc1
YTEyNGI5ZWYzOTZjMDgwZjM4YmU2NTk2ZmE3MzhhN2NjODViMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRm9ybUlucHV0Q29udHJvbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wuaApAQCAt
MzUsNiArMzUsOSBAQAogCiBAaW50ZXJmYWNlIFdLRm9ybUlucHV0Q29udHJvbCAoV0tUZXN0aW5n
KQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqZGF0ZVRpbWVQaWNr
ZXJDYWxlbmRhclR5cGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGRvdWJsZSB0
aW1lUGlja2VyVmFsdWVIb3VyOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBkb3Vi
bGUgdGltZVBpY2tlclZhbHVlTWludXRlOworLSAodm9pZClzZXRUaW1lUGlja2VySG91cjooTlNJ
bnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIpbWludXRlOwogQGVuZAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0Zvcm1JbnB1dENvbnRyb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGb3JtSW5wdXRDb250cm9sLm1tCmluZGV4IGVjMzY5MGY4ZDczNmI3NDRh
ZWVjMGUzYTkxMWYxNjU2NDAyMmMxNmEuLmQ1MTAwOWE5NGEyM2VmMDViZWU0MzUwMzUxOTQxODkw
ZmVmMWIzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0Zvcm1JbnB1dENvbnRyb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybUlucHV0Q29udHJvbC5tbQpAQCAtNTYsNiArNTYsOSBAQCBAaW50ZXJmYWNlIFdL
RGF0ZVRpbWVQb3BvdmVyIDogV0tGb3JtUm90YXRpbmdBY2Nlc3NvcnlQb3BvdmVyPFdLRm9ybUNv
bnRyb2w+IHsKIC0gKGlkKWluaXRXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXcgZGF0ZVBp
Y2tlck1vZGU6KFVJRGF0ZVBpY2tlck1vZGUpbW9kZTsKIC0gKFdLRGF0ZVRpbWVQb3BvdmVyVmll
d0NvbnRyb2xsZXIgKil2aWV3Q29udHJvbGxlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNTdHJpbmcgKmNhbGVuZGFyVHlwZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgZG91YmxlIGhvdXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGRvdWJs
ZSBtaW51dGU7CistICh2b2lkKXNldEhvdXI6KE5TSW50ZWdlcilob3VyIG1pbnV0ZTooTlNJbnRl
Z2VyKW1pbnV0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBXS0RhdGVUaW1lUGlja2VyIDogTlNPYmpl
Y3Q8V0tGb3JtQ29udHJvbD4gewpAQCAtMTQ0LDYgKzE0NywyMiBAQCAtIChOU1N0cmluZyAqKWNh
bGVuZGFyVHlwZQogICAgIHJldHVybiBfZGF0ZVBpY2tlci5nZXQoKS5jYWxlbmRhci5jYWxlbmRh
cklkZW50aWZpZXI7CiB9CiAKKy0gKGRvdWJsZSlob3VyCit7CisgICAgTlNDYWxlbmRhciAqY2Fs
ZW5kYXIgPSBbTlNDYWxlbmRhciBjdXJyZW50Q2FsZW5kYXJdOworICAgIE5TRGF0ZUNvbXBvbmVu
dHMgKmNvbXBvbmVudHMgPSBbY2FsZW5kYXIgY29tcG9uZW50czpOU0NhbGVuZGFyVW5pdEhvdXIg
ZnJvbURhdGU6W19kYXRlUGlja2VyIGRhdGVdXTsKKworICAgIHJldHVybiBbY29tcG9uZW50cyBo
b3VyXTsKK30KKworLSAoZG91YmxlKW1pbnV0ZQoreworICAgIE5TQ2FsZW5kYXIgKmNhbGVuZGFy
ID0gW05TQ2FsZW5kYXIgY3VycmVudENhbGVuZGFyXTsKKyAgICBOU0RhdGVDb21wb25lbnRzICpj
b21wb25lbnRzID0gW2NhbGVuZGFyIGNvbXBvbmVudHM6TlNDYWxlbmRhclVuaXRNaW51dGUgZnJv
bURhdGU6W19kYXRlUGlja2VyIGRhdGVdXTsKKworICAgIHJldHVybiBbY29tcG9uZW50cyBtaW51
dGVdOworfQorCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbX2RhdGVQaWNrZXIgcmVtb3ZlVGFy
Z2V0OnNlbGYgYWN0aW9uOk5VTEwgZm9yQ29udHJvbEV2ZW50czpVSUNvbnRyb2xFdmVudFZhbHVl
Q2hhbmdlZF07CkBAIC0xODMsNyArMjAyLDcgQEAgLSAoTlNTdHJpbmcgKilfc2FuaXRpemVJbnB1
dFZhbHVlRm9yRm9ybWF0dGVyOihOU1N0cmluZyAqKXZhbHVlCiAtICh2b2lkKV9kYXRlQ2hhbmdl
ZFNldEFzTnVtYmVyCiB7CiAgICAgTlNEYXRlICpkYXRlID0gW19kYXRlUGlja2VyIGRhdGVdOwot
ICAgIFtfdmlldyBwYWdlXS0+c2V0Rm9jdXNlZEVsZW1lbnRWYWx1ZUFzTnVtYmVyKChbZGF0ZSB0
aW1lSW50ZXJ2YWxTaW5jZTE5NzBdICsgW3NlbGYgX3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRl
XSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kKTsKKyAgICBbX3ZpZXcgdXBkYXRlRm9jdXNlZEVs
ZW1lbnRWYWx1ZUFzTnVtYmVyOihbZGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZTE5NzBdICsgW3NlbGYg
X3RpbWVab25lT2Zmc2V0RnJvbUdNVDpkYXRlXSkgKiBrTWlsbGlzZWNvbmRzUGVyU2Vjb25kXTsK
IH0KIAogLSAoUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4pZGF0ZUZvcm1hdHRlckZvclBpY2tl
cgpAQCAtMjAwLDggKzIxOSw3IEBAIC0gKHZvaWQpX2RhdGVDaGFuZ2VkU2V0QXNTdHJpbmcKIHsK
ICAgICAvLyBGb3JjZSBFbmdsaXNoIGxvY2FsZSBiZWNhdXNlIHRoYXQgaXMgd2hhdCBIVE1MNSB2
YWx1ZSBwYXJzaW5nIGV4cGVjdHMuCiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gZGF0
ZUZvcm1hdHRlciA9IFtzZWxmIGRhdGVGb3JtYXR0ZXJGb3JQaWNrZXJdOwotCi0gICAgW192aWV3
IHBhZ2VdLT5zZXRGb2N1c2VkRWxlbWVudFZhbHVlKFtkYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21E
YXRlOltfZGF0ZVBpY2tlciBkYXRlXV0pOworICAgIFtfdmlldyB1cGRhdGVGb2N1c2VkRWxlbWVu
dFZhbHVlOltkYXRlRm9ybWF0dGVyIHN0cmluZ0Zyb21EYXRlOltfZGF0ZVBpY2tlciBkYXRlXV1d
OwogfQogCiAtICh2b2lkKV9kYXRlQ2hhbmdlZApAQCAtMjU1LDYgKzI3MywxMyBAQCAtICh2b2lk
KWNvbnRyb2xFbmRFZGl0aW5nCiB7CiB9CiAKKy0gKHZvaWQpc2V0SG91cjooTlNJbnRlZ2VyKWhv
dXIgbWludXRlOihOU0ludGVnZXIpbWludXRlCit7CisgICAgTlNTdHJpbmcgKnRpbWVTdHJpbmcg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiUuMmxkOiUuMmxkIiwgKGxvbmcpaG91ciwg
KGxvbmcpbWludXRlXTsKKyAgICBbX2RhdGVQaWNrZXIgc2V0RGF0ZTpbW3NlbGYgZGF0ZUZvcm1h
dHRlckZvclBpY2tlcl0gZGF0ZUZyb21TdHJpbmc6dGltZVN0cmluZ11dOworICAgIFtzZWxmIF9k
YXRlQ2hhbmdlZF07Cit9CisKIEBlbmQKIAogLy8gV0tGb3JtSW5wdXRDb250cm9sCkBAIC0yOTQs
NiArMzE5LDE0IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRm9ybUlucHV0Q29udHJvbCAo
V0tUZXN0aW5nKQogCistICh2b2lkKXNldFRpbWVQaWNrZXJIb3VyOihOU0ludGVnZXIpaG91ciBt
aW51dGU6KE5TSW50ZWdlciltaW51dGUKK3sKKyAgICBpZiAoW3NlbGYuY29udHJvbCBpc0tpbmRP
ZkNsYXNzOldLRGF0ZVRpbWVQaWNrZXIuY2xhc3NdKQorICAgICAgICBbKFdLRGF0ZVRpbWVQaWNr
ZXIgKilzZWxmLmNvbnRyb2wgc2V0SG91cjpob3VyIG1pbnV0ZTptaW51dGVdOworICAgIGlmIChb
c2VsZi5jb250cm9sIGlzS2luZE9mQ2xhc3M6V0tEYXRlVGltZVBvcG92ZXIuY2xhc3NdKQorICAg
ICAgICBbKFdLRGF0ZVRpbWVQb3BvdmVyICopc2VsZi5jb250cm9sIHNldEhvdXI6aG91ciBtaW51
dGU6bWludXRlXTsKK30KKwogLSAoTlNTdHJpbmcgKilkYXRlVGltZVBpY2tlckNhbGVuZGFyVHlw
ZQogewogICAgIGlmIChbc2VsZi5jb250cm9sIGlzS2luZE9mQ2xhc3M6V0tEYXRlVGltZVBpY2tl
ci5jbGFzc10pCkBAIC0zMDMsNiArMzM2LDI0IEBAIC0gKE5TU3RyaW5nICopZGF0ZVRpbWVQaWNr
ZXJDYWxlbmRhclR5cGUKICAgICByZXR1cm4gbmlsOwogfQogCistIChkb3VibGUpdGltZVBpY2tl
clZhbHVlSG91cgoreworICAgIGlmIChbc2VsZi5jb250cm9sIGlzS2luZE9mQ2xhc3M6V0tEYXRl
VGltZVBpY2tlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQaWNrZXIgKilz
ZWxmLmNvbnRyb2wgaG91cl07CisgICAgaWYgKFtzZWxmLmNvbnRyb2wgaXNLaW5kT2ZDbGFzczpX
S0RhdGVUaW1lUG9wb3Zlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRpbWVQb3Bv
dmVyICopc2VsZi5jb250cm9sIGhvdXJdOworICAgIHJldHVybiAtMTsKK30KKworLSAoZG91Ymxl
KXRpbWVQaWNrZXJWYWx1ZU1pbnV0ZQoreworICAgIGlmIChbc2VsZi5jb250cm9sIGlzS2luZE9m
Q2xhc3M6V0tEYXRlVGltZVBpY2tlci5jbGFzc10pCisgICAgICAgIHJldHVybiBbKFdLRGF0ZVRp
bWVQaWNrZXIgKilzZWxmLmNvbnRyb2wgbWludXRlXTsKKyAgICBpZiAoW3NlbGYuY29udHJvbCBp
c0tpbmRPZkNsYXNzOldLRGF0ZVRpbWVQb3BvdmVyLmNsYXNzXSkKKyAgICAgICAgcmV0dXJuIFso
V0tEYXRlVGltZVBvcG92ZXIgKilzZWxmLmNvbnRyb2wgbWludXRlXTsKKyAgICByZXR1cm4gLTE7
Cit9CisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRGF0ZVRpbWVQb3BvdmVyVmlld0NvbnRy
b2xsZXIKQEAgLTQxNiwxMiArNDY3LDM2IEBAIC0gKFVJVmlldyAqKWNvbnRyb2xWaWV3CiAgICAg
cmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClzZXRIb3VyOihOU0ludGVnZXIpaG91ciBtaW51dGU6
KE5TSW50ZWdlciltaW51dGUKK3sKKyAgICBXS0RhdGVUaW1lUGlja2VyICpkYXRlVGltZVBpY2tl
ciA9IChXS0RhdGVUaW1lUGlja2VyICopc2VsZi52aWV3Q29udHJvbGxlci5pbm5lckNvbnRyb2w7
CisgICAgW2RhdGVUaW1lUGlja2VyIHNldEhvdXI6aG91ciBtaW51dGU6bWludXRlXTsKK30KKwog
LSAoTlNTdHJpbmcgKiljYWxlbmRhclR5cGUKIHsKICAgICBXS0RhdGVUaW1lUGlja2VyICpkYXRl
VGltZVBpY2tlciA9IChXS0RhdGVUaW1lUGlja2VyICopc2VsZi52aWV3Q29udHJvbGxlci5pbm5l
ckNvbnRyb2w7CiAgICAgcmV0dXJuIGRhdGVUaW1lUGlja2VyLmRhdGVQaWNrZXIuY2FsZW5kYXIu
Y2FsZW5kYXJJZGVudGlmaWVyOwogfQogCistIChkb3VibGUpaG91cgoreworICAgIFdLRGF0ZVRp
bWVQaWNrZXIgKmRhdGVUaW1lUGlja2VyID0gKFdLRGF0ZVRpbWVQaWNrZXIgKilzZWxmLnZpZXdD
b250cm9sbGVyLmlubmVyQ29udHJvbDsKKyAgICBOU0NhbGVuZGFyICpjYWxlbmRhciA9IFtOU0Nh
bGVuZGFyIGN1cnJlbnRDYWxlbmRhcl07CisgICAgTlNEYXRlQ29tcG9uZW50cyAqY29tcG9uZW50
cyA9IFtjYWxlbmRhciBjb21wb25lbnRzOihOU0NhbGVuZGFyVW5pdEhvdXIpIGZyb21EYXRlOmRh
dGVUaW1lUGlja2VyLmRhdGVQaWNrZXIuZGF0ZV07CisKKyAgICByZXR1cm4gW2NvbXBvbmVudHMg
aG91cl07Cit9CisKKy0gKGRvdWJsZSltaW51dGUKK3sKKyAgICBXS0RhdGVUaW1lUGlja2VyICpk
YXRlVGltZVBpY2tlciA9IChXS0RhdGVUaW1lUGlja2VyICopc2VsZi52aWV3Q29udHJvbGxlci5p
bm5lckNvbnRyb2w7CisgICAgTlNDYWxlbmRhciAqY2FsZW5kYXIgPSBbTlNDYWxlbmRhciBjdXJy
ZW50Q2FsZW5kYXJdOworICAgIE5TRGF0ZUNvbXBvbmVudHMgKmNvbXBvbmVudHMgPSBbY2FsZW5k
YXIgY29tcG9uZW50czooTlNDYWxlbmRhclVuaXRNaW51dGUpIGZyb21EYXRlOmRhdGVUaW1lUGlj
a2VyLmRhdGVQaWNrZXIuZGF0ZV07CisKKyAgICByZXR1cm4gW2NvbXBvbmVudHMgbWludXRlXTsK
K30KKwogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZjQ1ZDg4M2NmZTUyZWY4
MzU0Mjg5YTBmMWNmNGM3YzJkNmEyZDlkLi4yZTczN2FkNjdhZDE3MzgwMDRhOGIyNzQ3YjVjMTFl
NGZhYzAzMmFkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDQtMTcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9n
YXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRlIGFuZCBUaW1lIGZvcm0gY29udHJvbHMg
bm90IHNob3dpbmcgY29ycmVjdCBpbml0aWFsIHZhbHVlcyBvbiBpbW1lZGlhdGUgc2Vjb25kIGlu
dm9jYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTA2MTMKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnRp
bWVQaWNrZXJWYWx1ZUhvdXIgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnRpbWVQaWNrZXJWYWx1ZU1pbnV0ZSBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXJJT1M6OnRpbWVQaWNrZXJWYWx1ZUhvdXIgY29uc3QpOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnRpbWVQaWNrZXJWYWx1ZU1pbnV0ZSBjb25zdCk6CisK
IDIwMjAtMDQtMTUgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0NvY29hXSBSZW1vdmUgZ2VuZXJpYyBwYXJhbWV0ZXIgc2VyaWFsaXphdGlvbiBmYWxsYmFj
awpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmlu
ZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggY2YxMjM0
NzZhOTg3NWQxMjM5MjNjNTc3NWZjN2M2ZmRhNmEzNmM0Yi4uY2E1NzU4OGUzZDgwMjIwZThhYzc1
NjRiMjc2NzU2YjBiZjM2NDJhOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCkBAIC0yMTQsNiArMjE0LDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxl
ciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmb3JtSW5wdXRMYWJlbDsKIAog
ICAgIHZvaWQgc2V0VGltZVBpY2tlclZhbHVlKGxvbmcgaG91ciwgbG9uZyBtaW51dGUpOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgdGltZVBpY2tlclZhbHVlSG91cjsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgZG91YmxlIHRpbWVQaWNrZXJWYWx1ZU1pbnV0ZTsKIAogICAgIC8vIFNo
YXJlIHNoZWV0CiAgICAgdm9pZCBzZXRTaGFyZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRlbHlXaXRo
UmVzb2x1dGlvbihib29sZWFuIHJlc29sdmVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
NzRjMjIwY2Y3NzA0MWU1N2Y1NGM0ZDI4ZWJkYWJmNzU2ZjEwYjYwNy4uMzRmOGM5NjJjZGE4NTkw
ZWM2MTNmNzFhM2Y1Y2ZlMGRlN2Q2ZGNmZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTIw
NCw2ICsyMDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gc2VsZWN0Rm9ybVBvcG92ZXJUaXRsZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBmb3Jt
SW5wdXRMYWJlbCgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZVBpY2tlclZhbHVlKGxvbmcgaG91ciwgbG9uZyBtaW51
dGUpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorICAgIHZpcnR1YWwgZG91YmxlIHRpbWVQaWNrZXJW
YWx1ZUhvdXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAtMTsgfQorICAgIHZp
cnR1YWwgZG91YmxlIHRpbWVQaWNrZXJWYWx1ZU1pbnV0ZSgpIGNvbnN0IHsgbm90SW1wbGVtZW50
ZWQoKTsgcmV0dXJuIC0xOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2hvd2luZ0RhdGFMaXN0U3Vn
Z2VzdGlvbnMoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgSlNPYmplY3RSZWYgY2FsZW5kYXJUeXBlKCkgY29uc3QgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0Q2FsZW5k
YXJUeXBlKEpTU3RyaW5nUmVmIGNhbGVuZGFySWRlbnRpZmllciwgSlNTdHJpbmdSZWYgbG9jYWxl
SWRlbnRpZmllcikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4IDU2NmMzODk2Mjk3OTA5
MWExOGY1YTA5OWE2NGU1ZGEzZjQyMTcxMjguLjYzNDhmYmUxYWIwMjcyNjNlNmJhMWVjNTk1MDNm
MzE0ODhiMmEyZjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gZm9ybUlucHV0TGFiZWwoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3cobG9uZyByb3dJbmRleCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzZXRUaW1lUGlja2VyVmFsdWUobG9uZyBob3VyLCBsb25nIG1pbnV0ZSkgb3Zl
cnJpZGU7CisgICAgZG91YmxlIHRpbWVQaWNrZXJWYWx1ZUhvdXIoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBkb3VibGUgdGltZVBpY2tlclZhbHVlTWludXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBpc1ByZXNlbnRpbmdNb2RhbGx5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGNv
bnRlbnRPZmZzZXRYKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGNvbnRlbnRPZmZzZXRZ
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggMGVkMmI3NzZkNDU5ZTY3NDEwYWUwYjIzMDIy
NDMzZjFhNDMyODUzOC4uZmYxYWZiOTJkNzdmZGFlZjg2ZWY4NDc3MThmNWM2YTk1ZjdlNjk3MiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxl
cklPUy5tbQpAQCAtNjExLDYgKzYxMSwxNiBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6
c2V0VGltZVBpY2tlclZhbHVlKGxvbmcgaG91ciwgbG9uZyBtaW51dGUpCiAgICAgW3dlYlZpZXco
KSBzZXRUaW1lUGlja2VyVmFsdWVUb0hvdXI6aG91ciBtaW51dGU6bWludXRlXTsKIH0KIAorZG91
YmxlIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6dGltZVBpY2tlclZhbHVlSG91cigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFt3ZWJWaWV3KCkgdGltZVBpY2tlclZhbHVlSG91cl07Cit9CisKK2RvdWJs
ZSBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnRpbWVQaWNrZXJWYWx1ZU1pbnV0ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFt3ZWJWaWV3KCkgdGltZVBpY2tlclZhbHVlTWludXRlXTsKK30KKwogYm9v
bCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzUHJlc2VudGluZ01vZGFsbHkoKSBjb25zdAogewog
ICAgIHJldHVybiAhIXdlYlZpZXcoKS53aW5kb3cucm9vdFZpZXdDb250cm9sbGVyLnByZXNlbnRl
ZFZpZXdDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZhNWIzY2YzYzk5NWVkZGJmZjk4ZWE1NjgxM2ZmNTdm
ZDI5NTgwMDUuLjYwMTlmMGZmYWU2OGFlZWYxYmI5OTJkMjUwODczNTZlMWEyMmI5OWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xNyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRu
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIERhdGUgYW5kIFRpbWUgZm9ybSBjb250cm9scyBub3Qg
c2hvd2luZyBjb3JyZWN0IGluaXRpYWwgdmFsdWVzIG9uIGltbWVkaWF0ZSBzZWNvbmQgaW52b2Nh
dGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDYxMworCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIGZh
c3QvZm9ybXMvaW9zL3RpbWUtcGlja2VyLXZhbHVlLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL3RpbWUtcGlja2VyLXZhbHVlLWNoYW5nZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2lu
ZG93LlVJSGVscGVyLnRpbWVyUGlja2VyVmFsdWVzKToKKwogMjAyMC0wNC0xNSAgRGllZ28gUGlu
byBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEdhcmRlbmluZyBv
ZiBmbGFreSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3Mv
dGltZS1waWNrZXItdmFsdWUtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW9zL3RpbWUtcGlja2VyLXZhbHVlLWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTQzODljNThmNzdkZDliMzE4YTdlN2RlMzI0ZTAyOWI2MjgzZDc5MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL3RpbWUtcGlja2VyLXZhbHVlLWNoYW5n
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
dGhlIHZhbHVlIGluIHRoZSB0aW1lIHBpY2tlciBpcyB1cGRhdGVkIG9uIHRoZSBzZWNvbmQgcHJl
c2VudGF0aW9uIG9mIHRoZSBmb3JtLiBUbyBtYW51YWxseSBydW4gdGhlIHRlc3QsIHRhcCB0aGUg
dGltZSBpbnB1dCBhbmQgY2hhbmdlIHRoZSB0aW1lIHRvIDk6NDEsIHRoZW4gZGlzbWlzcyB0aGUg
cGlja2VyLCBhbmQgc2VsZWN0IGl0IGFnYWluIGFuZCB2ZXJpZnkgdGhhdCBpdCBzYXlzIDk6NDEu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhhbmRsZWQgY2hhbmdlIGV2
ZW50CitQQVNTIEhhbmRsZWQgYmx1ciBldmVudAorUEFTUyBwaWNrZXJWYWx1ZXMuaG91ciBpcyA5
CitQQVNTIHBpY2tlclZhbHVlcy5taW51dGUgaXMgNDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL3RpbWUtcGlja2VyLXZhbHVlLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVk
NGIyODJhOGM4YjQ0Mzc1ZjJmM2YxOTQyMWE1NzYxYmQwODA5MzkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy90aW1lLXBpY2tlci12YWx1ZS1jaGFuZ2UuaHRt
bApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ZGVzY3JpcHRpb24oYFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSB2YWx1ZSBpbiB0aGUgdGlt
ZSBwaWNrZXIgaXMgdXBkYXRlZCBvbiB0aGUgc2Vjb25kIHByZXNlbnRhdGlvbiBvZiB0aGUgZm9y
bS4gVG8gbWFudWFsbHkgcnVuIHRoZSB0ZXN0LCB0YXAgdGhlIHRpbWUgaW5wdXQgYW5kIGNoYW5n
ZSB0aGUgdGltZSB0byA5OjQxLCB0aGVuIGRpc21pc3MgdGhlIHBpY2tlciwgYW5kIHNlbGVjdCBp
dCBhZ2FpbiBhbmQgdmVyaWZ5IHRoYXQgaXQgc2F5cyA5OjQxLmApOworCisgICAgdGltZSA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0Iik7CisgICAgdGltZS5hZGRFdmVudExpc3RlbmVy
KCJjaGFuZ2UiLCAoKSA9PiB0ZXN0UGFzc2VkKCJIYW5kbGVkIGNoYW5nZSBldmVudCIpKTsKKyAg
ICB0aW1lLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCAoKSA9PiB0ZXN0UGFzc2VkKCJIYW5kbGVk
IGJsdXIgZXZlbnQiKSk7CisKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5w
dXRTZXNzaW9uKHRpbWUpOworICAgIGF3YWl0IFVJSGVscGVyLnNldFRpbWVQaWNrZXJWYWx1ZSg5
LCA0MSk7CisgICAgYXdhaXQgVUlIZWxwZXIuZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCk7Cisg
ICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9IaWRlKCk7CisgICAgYXdhaXQgVUlI
ZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lvbih0aW1lKTsKKyAgICBw
aWNrZXJWYWx1ZXMgPSBhd2FpdCBVSUhlbHBlci50aW1lclBpY2tlclZhbHVlcygpOworCisgICAg
c2hvdWxkQmUoInBpY2tlclZhbHVlcy5ob3VyIiwgIjkiKTsKKyAgICBzaG91bGRCZSgicGlja2Vy
VmFsdWVzLm1pbnV0ZSIsICI0MSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aW5wdXQgdHlwZT0idGltZSIg
dmFsdWU9IjA0OjAxIiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9pbnB1
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91
aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDBj
MWQ2ODM5YzQ1NGVkODU5YmZiYWM2YWFiNDZkNTYyYzdkYmE0NzEuLmFkOWY2YjhkZWRhZGI2N2M1
ZTViOWNmYzMzYTkyMzU2MzZiYzdhZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNl
cy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpA
QCAtNzE0LDYgKzcxNCwxOCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoc2V0VmFsdWVTY3JpcHQsIHJlc29sdmUpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgdGltZXJQ
aWNrZXJWYWx1ZXMoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzSU9TRmFtaWx5KCkpCisg
ICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAgICAgY29uc3QgdWlT
Y3JpcHQgPSAiSlNPTi5zdHJpbmdpZnkoW3VpQ29udHJvbGxlci50aW1lUGlja2VyVmFsdWVIb3Vy
LCB1aUNvbnRyb2xsZXIudGltZVBpY2tlclZhbHVlTWludXRlXSkiOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHVpU2NyaXB0LCBy
ZXN1bHQgPT4geworICAgICAgICAgICAgY29uc3QgW2hvdXIsIG1pbnV0ZV0gPSBKU09OLnBhcnNl
KHJlc3VsdCkKKyAgICAgICAgICAgIHJlc29sdmUoeyBob3VyOiBob3VyLCBtaW51dGU6IG1pbnV0
ZSB9KTsKKyAgICAgICAgfSkpOworICAgIH0KKwogICAgIHN0YXRpYyBzZXRTaGFyZVNoZWV0Q29t
cGxldGVzSW1tZWRpYXRlbHlXaXRoUmVzb2x1dGlvbihyZXNvbHZlZCkKICAgICB7CiAgICAgICAg
IGNvbnN0IHJlc29sdmVTaGFyZVNoZWV0ID0gYCgoKSA9PiB1aUNvbnRyb2xsZXIuc2V0U2hhcmVT
aGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb24oJHtyZXNvbHZlZH0pKSgpYDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>