<?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>226432</bug_id>
          
          <creation_ts>2021-05-29 20:17:59 -0700</creation_ts>
          <short_desc>Drop UncheckedCondition / UncheckedLock</short_desc>
          <delta_ts>2021-05-30 13:37:17 -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>Web Template Framework</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>
          <dependson>226427</dependson>
    
    <dependson>226428</dependson>
    
    <dependson>226431</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765171</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 20:17:59 -0700</bug_when>
    <thetext>Drop UncheckedCondition / UncheckedLock now that they are unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765219</commentid>
    <comment_count>1</comment_count>
      <attachid>430137</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 11:12:18 -0700</bug_when>
    <thetext>Created attachment 430137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765223</commentid>
    <comment_count>2</comment_count>
      <attachid>430137</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-30 11:40:13 -0700</bug_when>
    <thetext>Comment on attachment 430137
Patch

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

&gt; Source/WTF/wtf/Lock.h:146
&gt; +template&lt;typename LockType&gt; inline void assertIsHeld(const LockType&amp; lock) { ASSERT_UNUSED(lock, lock.isLocked()); }

Why is this template needed? What classes is this used on besides Lock? Is a template the best way to do this, or would simple overloading be better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765224</commentid>
    <comment_count>3</comment_count>
      <attachid>430137</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 11:43:43 -0700</bug_when>
    <thetext>Comment on attachment 430137
Patch

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

&gt; Source/WTF/wtf/Condition.h:201
&gt; +                    assertIsHeld(lock);

I had to add an assertIsHeld() here to make clang happy (even though I already marked the whole function as WTF_IGNORES_THREAD_SAFETY_ANALYSIS). I am not sure why but anyway. WTF::Condition is templated and supposed to work with all kind of locks (RecursiveLock comes to mind but this is not limited AFAIK).
As a result, I had to add a templated assertIsHeld() so that this would build no matter what lock type the condition is used with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765225</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 11:53:07 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 430137 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430137&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Condition.h:201
&gt; &gt; +                    assertIsHeld(lock);
&gt; 
&gt; I had to add an assertIsHeld() here to make clang happy (even though I
&gt; already marked the whole function as WTF_IGNORES_THREAD_SAFETY_ANALYSIS). I
&gt; am not sure why but anyway. WTF::Condition is templated and supposed to work
&gt; with all kind of locks (RecursiveLock comes to mind but this is not limited
&gt; AFAIK).
&gt; As a result, I had to add a templated assertIsHeld() so that this would
&gt; build no matter what lock type the condition is used with.

Oh, based on something I just saw online, I may be able to add WTF_IGNORES_THREAD_SAFETY_ANALYSIS on the lambda. Let me try that. If that works, then I wouldn&apos;t need this new templated assertIsHeld at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765227</commentid>
    <comment_count>5</comment_count>
      <attachid>430140</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 11:56:12 -0700</bug_when>
    <thetext>Created attachment 430140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765250</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-30 13:36:06 -0700</bug_when>
    <thetext>Committed r278257 (238294@main): &lt;https://commits.webkit.org/238294@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430140.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765251</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-30 13:37:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78667488&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430137</attachid>
            <date>2021-05-30 11:12:18 -0700</date>
            <delta_ts>2021-05-30 12:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226432-20210530111217.patch</filename>
            <type>text/plain</type>
            <size>19104</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MmUxOGU2NjE3MDk2OTIwOTA0MWRjMWFhOGFkZDQ2MjRkYmI1NmE0Li45MGVkN2YzNWYyYjU4MDZi
ZjVmZjljMmMyM2U5NjZlMzdiOTY0NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wNS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgVW5jaGVja2VkQ29uZGl0aW9uIC8gVW5jaGVja2VkTG9jaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NDMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBvbmUgcmVtYWlu
aW5nIHVzZSBvZiBVbmNoZWNrZWRMb2NrIGluIGZhdm9yIG9mIExvY2suCisKKyAgICAgICAgKiBq
aXQvSklUU2FmZXBvaW50LmNwcDoKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3RUaHJlYWQuaDoK
KwogMjAyMS0wNS0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIFdURjo6T3B0aW9uYWwgc3lub255bSBmb3Igc3RkOjpvcHRpb25hbCwgdXNpbmcgdGhh
dCBjbGFzcyB0ZW1wbGF0ZSBkaXJlY3RseSBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzM2Y4YmZkNjExNmUzNTc5
YTY1NzQ1NzRkMmQxM2E0NDMwMWFlMDkuLjBjODExNzM4Yzg0ZjUzZWI0ODRiYzJjNWEyOWVlNWZh
YjUzODU3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDUtMzAgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFVuY2hlY2tlZENvbmRpdGlvbiAvIFVu
Y2hlY2tlZExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNjQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyb3AgVW5jaGVja2VkQ29uZGl0aW9uIC8gVW5jaGVja2VkTG9jayBub3cgdGhhdCB0aGUg
d2hvbGUgY29kZWJhc2UgaGFzIGJlZW4gcG9ydGVkIHRvCisgICAgICAgIENvbmRpdGlvbiAvIExv
Y2ssIHdoaWNoIHN1cHBvcnQgQ2xhbmcgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKworICAgICAg
ICAqIHd0Zi9Db25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAq
IHd0Zi9Mb2NrLmNwcDoKKyAgICAgICAgKFdURjo6TG9jazo6bG9ja1Nsb3cpOgorICAgICAgICAo
V1RGOjpMb2NrOjp1bmxvY2tTbG93KToKKyAgICAgICAgKFdURjo6TG9jazo6dW5sb2NrRmFpcmx5
U2xvdyk6CisgICAgICAgIChXVEY6OkxvY2s6OnNhZmVwb2ludFNsb3cpOgorICAgICAgICAqIHd0
Zi9Mb2NrLmg6CisgICAgICAgIChXVEY6OmFzc2VydElzSGVsZCk6CisgICAgICAgIChXVEY6OldU
Rl9BU1NFUlRTX0FDUVVJUkVEX0xPQ0spOgorCiAyMDIxLTA1LTMwICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV1RGOjpPcHRpb25hbCBzeW5vbnltIGZv
ciBzdGQ6Om9wdGlvbmFsLCB1c2luZyB0aGF0IGNsYXNzIHRlbXBsYXRlIGRpcmVjdGx5IGluc3Rl
YWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU2FmZXBvaW50LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU2FmZXBvaW50LmNwcAppbmRleCA4N2Q5
ODU5NjhhOGQyNmRmMmY0MDNkODcyNDU0NGEyZDAzOTU2YzVmLi44MGM4ZTVlMjg2ZWFkZGQ1ZjM2
MjJmNjAwNGI5MTM2ZGM3ZDdjYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVFNhZmVwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
YWZlcG9pbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2FmZXBvaW50OjphZGQoU2Nhbm5h
YmxlKiBzY2FubmFibGUpCiAgICAgbV9zY2FubmFibGVzLmFwcGVuZChzY2FubmFibGUpOwogfQog
Ci12b2lkIFNhZmVwb2ludDo6YmVnaW4oKQordm9pZCBTYWZlcG9pbnQ6OmJlZ2luKCkgV1RGX0lH
Tk9SRVNfVEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIFJFTEVBU0VfQVNTRVJUKCFtX2Rp
ZENhbGxCZWdpbik7CiAgICAgbV9kaWRDYWxsQmVnaW4gPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdFRocmVhZC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdFRocmVhZC5oCmluZGV4IDA2NWU0NzEwMjc5NDZlZjgx
ZjZiNjBhNzAwYmVmYWQwMzNkMWJjOWIuLjNjOWVlYjRlNTM0Nzg1NzUyYjg4YjJiZDJkMzdhOGI0
Y2U4MDFhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xp
c3RUaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0VGhy
ZWFkLmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdGhyZWFkSXNTdG9w
cGluZyhjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsOwogCi0gICAgVW5jaGVja2VkTG9jayBt
X3JpZ2h0VG9SdW47CisgICAgTG9jayBtX3JpZ2h0VG9SdW47CiAgICAgSklUV29ya2xpc3QmIG1f
d29ya2xpc3Q7CiAgICAgUmVmUHRyPEpJVFBsYW4+IG1fcGxhbiB7IG51bGxwdHIgfTsKICAgICBT
YWZlcG9pbnQqIG1fc2FmZXBvaW50IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQ29uZGl0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAppbmRleCA0ZWVm
MWYxYTYyYTFjYjUyYzFkZTU3MmUxNzFhMzE0MzU2OThiMzY2Li5jMzIxYjhjMmIwOTExYWQ3MDNk
NWVlZjhjYjk2NmI4NjQ0MmJhOTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRp
b24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaApAQCAtNDAsMTYgKzQwLDE2IEBA
IG5hbWVzcGFjZSBXVEYgewogLy8gbm90aWZ5QWxsKCkgcmVxdWlyZSBqdXN0IGEgbG9hZCBhbmQg
YnJhbmNoIGZvciB0aGUgZmFzdCBjYXNlIHdoZXJlIG5vIHRocmVhZCBpcyB3YWl0aW5nLgogLy8g
VGhpcyBjb25kaXRpb24gdmFyaWFibGUsIHdoZW4gdXNlZCB3aXRoIFdURjo6TG9jaywgY2FuIG91
dHBlcmZvcm0gYSBzeXN0ZW0gY29uZGl0aW9uIHZhcmlhYmxlCiAvLyBhbmQgbG9jayBieSB1cCB0
byA1OHguCi1jbGFzcyBVbmNoZWNrZWRDb25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFVuY2hlY2tlZENvbmRpdGlvbik7CitjbGFzcyBDb25kaXRpb24gZmluYWwgewor
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgLy8gVW5jaGVja2VkQ29uZGl0aW9uIHdpbGwgYWNjZXB0
IGFueSBraW5kIG9mIHRpbWUgYW5kIGNvbnZlcnQgaXQgaW50ZXJuYWxseSwgYnV0IHRoaXMgdHlw
ZWRlZiB0ZWxscwotICAgIC8vIHlvdSB3aGF0IGtpbmQgb2YgdGltZSBVbmNoZWNrZWRDb25kaXRp
b24gd291bGQgYmUgYWJsZSB0byB1c2Ugd2l0aG91dCBjb252ZXJzaW9ucy4gSG93ZXZlciwgaWYg
eW91CisgICAgLy8gQ29uZGl0aW9uIHdpbGwgYWNjZXB0IGFueSBraW5kIG9mIHRpbWUgYW5kIGNv
bnZlcnQgaXQgaW50ZXJuYWxseSwgYnV0IHRoaXMgdHlwZWRlZiB0ZWxscworICAgIC8vIHlvdSB3
aGF0IGtpbmQgb2YgdGltZSBDb25kaXRpb24gd291bGQgYmUgYWJsZSB0byB1c2Ugd2l0aG91dCBj
b252ZXJzaW9ucy4gSG93ZXZlciwgaWYgeW91CiAgICAgLy8gYXJlIHVubGlrZWx5IHRvIGJlIGFm
ZmVjdGVkIGJ5IHRoZSBjb3N0IG9mIGNvbnZlcnNpb25zLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIE1v
bm90b25pY1RpbWUuCiAgICAgdXNpbmcgVGltZSA9IFBhcmtpbmdMb3Q6OlRpbWU7CiAKLSAgICBj
b25zdGV4cHIgVW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OworICAgIGNvbnN0ZXhwciBD
b25kaXRpb24oKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3
aGlsZSByZWxlYXNpbmcgdGhlIGdpdmVuIGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1
c3QgYmVmb3JlCiAgICAgLy8gcGFya2luZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0
dXJucyB0cnVlIGlmIHdlIHdva2UgdXAgZHVlIHRvIHNvbWUgY2FsbCB0bwpAQCAtNjksNDQgKzY5
LDM4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KICAgICBib29s
IHdhaXRVbnRpbChMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
JiB0aW1lb3V0KQogICAgIHsKLSAgICAgICAgYm9vbCByZXN1bHQ7Ci0gICAgICAgIGlmICh0aW1l
b3V0IDwgdGltZW91dC5ub3dXaXRoU2FtZUNsb2NrKCkpIHsKLSAgICAgICAgICAgIGxvY2sudW5s
b2NrKCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAg
ICAgICAgICAgICZtX2hhc1dhaXRlcnMsCi0gICAgICAgICAgICAgICAgW3RoaXNdICgpIC0+IGJv
b2wgewotICAgICAgICAgICAgICAgICAgICAvLyBMZXQgZXZlcnlvbmUga25vdyB0aGF0IHdlIHdp
bGwgYmUgd2FpdGluZy4gRG8gdGhpcyB3aGlsZSB3ZSBob2xkIHRoZSBxdWV1ZSBsb2NrLAotICAg
ICAgICAgICAgICAgICAgICAvLyB0byBwcmV2ZW50IHJhY2VzIHdpdGggbm90aWZ5T25lKCkuCi0g
ICAgICAgICAgICAgICAgICAgIG1faGFzV2FpdGVycy5zdG9yZSh0cnVlKTsKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAg
ICBbJmxvY2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0
KS53YXNVbnBhcmtlZDsKLSAgICAgICAgfQotICAgICAgICBsb2NrLmxvY2soKTsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbFVuY2hlY2tlZChsb2NrLCB0
aW1lb3V0KTsKKyAgICB9CisKKyAgICBib29sIHdhaXRVbnRpbChMb2NrJiBsb2NrLCBjb25zdCBU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2sp
CisgICAgeworICAgICAgICByZXR1cm4gd2FpdFVudGlsVW5jaGVja2VkKGxvY2ssIHRpbWVvdXQp
OwogICAgIH0KIAogICAgIC8vIFdhaXQgdW50aWwgdGhlIGdpdmVuIHByZWRpY2F0ZSBpcyBzYXRp
c2ZpZWQuIFJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzYXRpc2ZpZWQgaW4gdGhlIGVuZC4KICAgICAv
LyBNYXkgcmV0dXJuIGVhcmx5IGR1ZSB0byB0aW1lb3V0LgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IExvY2tUeXBlLCB0eXBlbmFtZSBGdW5jdG9yPgotICAgIGJvb2wgd2FpdFVudGlsKAotICAgICAg
ICBMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0
LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCisgICAgYm9vbCB3YWl0VW50aWwoTG9ja1R5cGUm
IGxvY2ssIGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKQogICAgIHsKLSAgICAgICAgd2hpbGUgKCFwcmVkaWNhdGUoKSkgewot
ICAgICAgICAgICAgaWYgKCF3YWl0VW50aWwobG9jaywgdGltZW91dCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHByZWRpY2F0ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICByZXR1cm4gd2FpdFVudGlsVW5jaGVja2VkKGxvY2ssIHRpbWVvdXQsIHByZWRpY2F0
ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBib29sIHdh
aXRVbnRpbChMb2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVv
dXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAg
ICB7CisgICAgICAgIHJldHVybiB3YWl0VW50aWxVbmNoZWNrZWQobG9jaywgdGltZW91dCwgcHJl
ZGljYXRlKTsKICAgICB9CiAKICAgICAvLyBXYWl0IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUg
aXMgc2F0aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYgaXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQu
CiAgICAgLy8gTWF5IHJldHVybiBlYXJseSBkdWUgdG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdhaXRGb3IoCi0g
ICAgICAgIExvY2tUeXBlJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCwgY29uc3QgRnVu
Y3RvciYgcHJlZGljYXRlKQorICAgIGJvb2wgd2FpdEZvcihMb2NrVHlwZSYgbG9jaywgU2Vjb25k
cyByZWxhdGl2ZVRpbWVvdXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB3YWl0VW50aWwobG9jaywgTW9ub3RvbmljVGltZTo6bm93KCkgKyByZWxhdGl2
ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rvcj4KKyAgICBib29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVv
dXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKICAg
ICB7CiAgICAgICAgIHJldHVybiB3YWl0VW50aWwobG9jaywgTW9ub3RvbmljVGltZTo6bm93KCkg
KyByZWxhdGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CiAgICAgfQpAQCAtMTE3LDEyICsxMTEsMjIg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIE1vbm90b25pY1RpbWU6
Om5vdygpICsgcmVsYXRpdmVUaW1lb3V0KTsKICAgICB9CiAKKyAgICBib29sIHdhaXRGb3IoTG9j
ayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2sp
CisgICAgeworICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIE1vbm90b25pY1RpbWU6Om5v
dygpICsgcmVsYXRpdmVUaW1lb3V0KTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBM
b2NrVHlwZT4KICAgICB2b2lkIHdhaXQoTG9ja1R5cGUmIGxvY2spCiAgICAgewogICAgICAgICB3
YWl0VW50aWwobG9jaywgVGltZTo6aW5maW5pdHkoKSk7CiAgICAgfQogCisgICAgdm9pZCB3YWl0
KExvY2smIGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAgICB3YWl0
VW50aWwobG9jaywgVGltZTo6aW5maW5pdHkoKSk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgTG9ja1R5cGUsIHR5cGVuYW1lIEZ1bmN0b3I+CiAgICAgdm9pZCB3YWl0KExvY2tUeXBl
JiBsb2NrLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewpAQCAtMTMwLDYgKzEzNCwx
MyBAQCBwdWJsaWM6CiAgICAgICAgICAgICB3YWl0KGxvY2spOwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCB3YWl0KExvY2smIGxvY2ssIGNvbnN0IEZ1
bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAg
IHdoaWxlICghcHJlZGljYXRlKCkpCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgIH0KKwog
ICAgIC8vIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBpcyBleHRyZW1lbHkgZmFzdCB3aGVuIG5vYm9k
eSBpcyB3YWl0aW5nLiBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIHRyeSB0bwogICAgIC8vIGF2b2lk
IGNhbGxpbmcgdGhpcyBtZXRob2QuIFRoaXMgcmV0dXJucyB0cnVlIGlmIHNvbWVvbmUgd2FzIGFj
dHVhbGx5IHdva2VuIHVwLgogICAgIGJvb2wgbm90aWZ5T25lKCkKQEAgLTE3MCw2NCArMTgxLDQ4
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEF0b21pYzxib29sPiBtX2hh
c1dhaXRlcnMgeyBmYWxzZSB9OwotfTsKLQotLy8gQSBjb25kaXRpb24gdmFyaWFibGUgdHlwZSBm
b3IgTG9jay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBndWFyZGVkIHZhcmlh
YmxlcywgdXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENvbmRpdGlvbiBmaW5hbCB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29uZGl0aW9uKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLSAgICBjb25zdGV4cHIgQ29uZGl0aW9uKCkgPSBkZWZhdWx0Owot
Ci0gICAgYm9vbCB3YWl0VW50aWwoTG9jayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlJiB0aW1lb3V0KSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0
KTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdhaXRV
bnRpbChMb2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQs
IGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2Nr
KSwgdGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVu
Y3Rvcj4KLSAgICBib29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVv
dXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9j
ayksIHJlbGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9y
KExvY2smIGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0KSBXVEZfUkVRVUlSRVNfTE9DSyhs
b2NrKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndhaXRGb3IodW5jaGVja2Vk
Q2FzdChsb2NrKSwgcmVsYXRpdmVUaW1lb3V0KTsKLSAgICB9Ci0gICAgdm9pZCB3YWl0KExvY2sm
IGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRpdGlv
bi53YWl0KHVuY2hlY2tlZENhc3QobG9jaykpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jdG9yPgotICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrLCBjb25zdCBGdW5jdG9yJiBwcmVk
aWNhdGUpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRpdGlv
bi53YWl0KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7Ci0gICAgfQotICAgIGJvb2wg
bm90aWZ5T25lKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KKyAgICBib29sIHdh
aXRVbnRpbFVuY2hlY2tlZChMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlJiB0aW1lb3V0KSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiAgICAg
ewotICAgICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgICAgIGJvb2wg
cmVzdWx0OworICAgICAgICBpZiAodGltZW91dCA8IHRpbWVvdXQubm93V2l0aFNhbWVDbG9jaygp
KSB7CisgICAgICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICAgICAgcmVzdWx0ID0gZmFs
c2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBQYXJraW5nTG90Ojpw
YXJrQ29uZGl0aW9uYWxseSgKKyAgICAgICAgICAgICAgICAmbV9oYXNXYWl0ZXJzLAorICAgICAg
ICAgICAgICAgIFt0aGlzXSAoKSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTGV0
IGV2ZXJ5b25lIGtub3cgdGhhdCB3ZSB3aWxsIGJlIHdhaXRpbmcuIERvIHRoaXMgd2hpbGUgd2Ug
aG9sZCB0aGUgcXVldWUgbG9jaywKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gcHJldmVudCBy
YWNlcyB3aXRoIG5vdGlmeU9uZSgpLgorICAgICAgICAgICAgICAgICAgICBtX2hhc1dhaXRlcnMu
c3RvcmUodHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgWyZsb2NrXSAoKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydElzSGVsZChsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgbG9jay51bmxvY2so
KTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRpbWVvdXQpLndhc1VucGFy
a2VkOworICAgICAgICB9CisgICAgICAgIGxvY2subG9jaygpOworICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIH0KLSAgICB2b2lkIG5vdGlmeUFsbCgpCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBib29sIHdhaXRVbnRpbFVuY2hlY2tl
ZChMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0
LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5B
TFlTSVMKICAgICB7Ci0gICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOworICAgICAgICB3
aGlsZSAoIXByZWRpY2F0ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2NrLCB0
aW1lb3V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlZGljYXRlKCk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotcHJpdmF0ZToKLSAgICBzdGF0aWMgVW5jaGVj
a2VkTG9jayYgdW5jaGVja2VkQ2FzdChMb2NrJiBsb2NrKSB7IHJldHVybiBzdGF0aWNfY2FzdDxV
bmNoZWNrZWRMb2NrJj4obG9jayk7IH0KLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9jb25kaXRp
b247CisKKyAgICBBdG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJzIHsgZmFsc2UgfTsKIH07CiAKLXVz
aW5nIFN0YXRpY1VuY2hlY2tlZENvbmRpdGlvbiA9IFVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5n
IFN0YXRpY0NvbmRpdGlvbiA9IENvbmRpdGlvbjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVz
aW5nIFdURjo6Q29uZGl0aW9uOwotdXNpbmcgV1RGOjpVbmNoZWNrZWRDb25kaXRpb247CiB1c2lu
ZyBXVEY6OlN0YXRpY0NvbmRpdGlvbjsKLXVzaW5nIFdURjo6U3RhdGljVW5jaGVja2VkQ29uZGl0
aW9uOwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Gb3J3YXJkLmgKaW5kZXggYzUxZjY3YWYwMmFmZDZhNzY4YmRiNTFlM2E3YjY2YzFhMWJl
MDZkYi4uZjljNTUyNzE1ZDViNzFkNGQzM2NhMmE1ZDZlN2ViNmNiMTc2ODRmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQu
aApAQCAtNDksNyArNDksNiBAQCBjbGFzcyBUZXh0UG9zaXRpb247CiBjbGFzcyBUZXh0U3RyZWFt
OwogY2xhc3MgVW5pcXVlZFN0cmluZ0ltcGw7CiBjbGFzcyBVUkw7Ci1jbGFzcyBVbmNoZWNrZWRM
b2NrOwogY2xhc3MgV2FsbFRpbWU7CiAKIHN0cnVjdCBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzOwpA
QCAtMTU0LDcgKzE1Myw2IEBAIHVzaW5nIFdURjo6U3RyaW5nVmlldzsKIHVzaW5nIFdURjo6VGV4
dFBvc2l0aW9uOwogdXNpbmcgV1RGOjpUZXh0U3RyZWFtOwogdXNpbmcgV1RGOjpVUkw7Ci11c2lu
ZyBXVEY6OlVuY2hlY2tlZExvY2s7CiB1c2luZyBXVEY6OlVuaXF1ZVJlZjsKIHVzaW5nIFdURjo6
VmFyaWFudDsKIHVzaW5nIFdURjo6VmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TG9jay5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcAppbmRleCBmOWNhZDk2NzFkZmFhNTM1
ZTcxOTQ5ZjBmNjUyYmUxYzU4OGVmY2JiLi41MGVmMmVhZjU3OTJhOTBlMDI5YmY4YWUwYWVmOGQw
MWU1OWM0Y2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9Mb2NrLmNwcApAQCAtMzksMTQgKzM5LDE0IEBAIG5hbWVzcGFjZSBXVEYgewog
CiBzdGF0aWMgY29uc3RleHByIGJvb2wgcHJvZmlsZUxvY2tDb250ZW50aW9uID0gZmFsc2U7CiAK
LXZvaWQgVW5jaGVja2VkTG9jazo6bG9ja1Nsb3coKQordm9pZCBMb2NrOjpsb2NrU2xvdygpCiB7
CiAgICAgaWYgKHByb2ZpbGVMb2NrQ29udGVudGlvbikKICAgICAgICAgU1RBQ0tfU0hPVF9QUk9G
SUxFKDQsIDIsIDUpOwogICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpsb2NrU2xvdyhtX2J5dGUp
OwogfQogCi12b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja1Nsb3coKQordm9pZCBMb2NrOjp1bmxv
Y2tTbG93KCkKIHsKICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhl
IGNlcnRhaW4gdGhyZWFkcyAoZS5nLiBhdWRpbyByZW5kZXJpbmcgdGhyZWFkKSBmb3IgcGVyZm9y
bWFuY2UgcmVhc29ucyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUg
Zm9sbG93aW5nIGFsbG9jYXRpb24ocykuIEluIHNvbWUgcmFyZSBjYXNlcywgdGhlIHVubG9ja1Ns
b3coKSBhbGdvcml0aCBtYXkgY2F1c2UgYWxsb2NhdGlvbnMuCkBAIC01NSw3ICs1NSw3IEBAIHZv
aWQgVW5jaGVja2VkTG9jazo6dW5sb2NrU2xvdygpCiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06
OnVubG9ja1Nsb3cobV9ieXRlLCBEZWZhdWx0TG9ja0FsZ29yaXRobTo6VW5mYWlyKTsKIH0KIAot
dm9pZCBVbmNoZWNrZWRMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkKK3ZvaWQgTG9jazo6dW5sb2Nr
RmFpcmx5U2xvdygpCiB7CiAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9u
IHRoZSBjZXJ0YWluIHRocmVhZHMgKGUuZy4gYXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBl
cmZvcm1hbmNlIHJlYXNvbnMgc28gd2UgbmVlZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cg
dGhlIGZvbGxvd2luZyBhbGxvY2F0aW9uKHMpLiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxv
Y2tTbG93KCkgYWxnb3JpdGggbWF5IGNhdXNlIGFsbG9jYXRpb25zLgpAQCAtNjQsNyArNjQsNyBA
QCB2b2lkIFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogICAgIERlZmF1bHRMb2Nr
QWxnb3JpdGhtOjp1bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tBbGdvcml0aG06OkZhaXIp
OwogfQogCi12b2lkIFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludFNsb3coKQordm9pZCBMb2NrOjpz
YWZlcG9pbnRTbG93KCkKIHsKICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6c2FmZXBvaW50U2xv
dyhtX2J5dGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9jay5oIGIvU291cmNl
L1dURi93dGYvTG9jay5oCmluZGV4IDIzY2UwNzZmNTAyNWIwZDlhNGY1MmRmOGU3Y2E5Zjc0NDMy
OWZlYjEuLjZlYWZhZTE0M2RiYzI4NjViZDY4ODhjZGQwZGJlMGMxYWNmMWQyNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKQEAg
LTUwLDI5ICs1MCwzNSBAQCB0eXBlZGVmIExvY2tBbGdvcml0aG08dWludDhfdCwgMSwgMj4gRGVm
YXVsdExvY2tBbGdvcml0aG07CiAvLyBhdCB3b3JzdCBvbmUgY2FsbCB0byB1bmxvY2soKSBwZXIg
bWlsbGlzZWNvbmQgd2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9mZiB0byB0aGUgdGhyZWFkIHRoYXQg
aXMgYXQKIC8vIHRoZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hlbiB0aGVyZSBhcmUgY29sbGlzaW9u
cywgZWFjaCBjb2xsaXNpb24gaW5jcmVhc2VzIHRoZSBmYWlyIHVubG9jayBkZWxheQogLy8gYnkg
b25lIG1pbGxpc2Vjb25kIGluIHRoZSB3b3JzdCBjYXNlLgotY2xhc3MgVW5jaGVja2VkTG9jayB7
Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVW5jaGVja2VkTG9jayk7CisvLworLy8gVGhpcyBs
b2NrIHR5cGUgc3VwcG9ydHMgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKy8vIFRvIGFubm90YXRl
IGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdpdGggdGhyZWFkIG93bmVy
c2hpcCBpbmZvcm1hdGlvbiwKKy8vIHVzZSBsb2NrIGNhcGFiaWxpdHkgYW5ub3RhdGlvbnMgZGVm
aW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgorY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9D
SyBMb2NrIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0g
ZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgTG9jaygpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgbG9j
aygpCisgICAgdm9pZCBsb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0soKQogICAgIHsKICAgICAgICAg
aWYgKFVOTElLRUxZKCFEZWZhdWx0TG9ja0FsZ29yaXRobTo6bG9ja0Zhc3RBc3N1bWluZ1plcm8o
bV9ieXRlKSkpCiAgICAgICAgICAgICBsb2NrU2xvdygpOwogICAgIH0KIAotICAgIGJvb2wgdHJ5
TG9jaygpCisgICAgYm9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgLy8g
Tk9MSU5UOiBJbnRlbnRpb25hbCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2Nr
LgogICAgIHsKICAgICAgICAgcmV0dXJuIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp0cnlMb2NrKG1f
Ynl0ZSk7CiAgICAgfQogCiAgICAgLy8gTmVlZCB0aGlzIHZlcnNpb24gZm9yIHN0ZDo6dW5pcXVl
X2xvY2suCi0gICAgYm9vbCB0cnlfbG9jaygpCisgICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FV
SVJFU19MT0NLX0lGKHRydWUpCiAgICAgewogICAgICAgICByZXR1cm4gdHJ5TG9jaygpOwogICAg
IH0KIAorICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHRyeUxvY2tXaXRoVGltZW91dChTZWNv
bmRzIHRpbWVvdXQpIFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpOworCiAgICAgLy8gUmVsaW5x
dWlzaCB0aGUgbG9jay4gRWl0aGVyIG9uZSBvZiB0aGUgdGhyZWFkcyB0aGF0IHdlcmUgd2FpdGlu
ZyBmb3IgdGhlIGxvY2ssIG9yIHNvbWUgb3RoZXIKICAgICAvLyB0aHJlYWQgdGhhdCBoYXBwZW5z
IHRvIGJlIHJ1bm5pbmcsIHdpbGwgYmUgYWJsZSB0byBncmFiIHRoZSBsb2NrLiBUaGlzIGJpdCBv
ZiB1bmZhaXJuZXNzIGlzCiAgICAgLy8gY2FsbGVkIGJhcmdpbmcsIGFuZCB3ZSBhbGxvdyBpdCBi
ZWNhdXNlIGl0IG1heGltaXplcyB0aHJvdWdocHV0LiBIb3dldmVyLCB3ZSBib3VuZCBob3cgdW5m
YWlyCkBAIC04MSw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAvLyB3ZSBjaGVjayBpZiB0aGUgbGFz
dCB0aW1lIHRoYXQgd2UgZGlkIGEgZmFpciB1bmxvY2sgd2FzIG1vcmUgdGhhbiByb3VnaGx5IDFt
cyBhZ287IGlmIHNvLCB3ZQogICAgIC8vIHVubG9jayBmYWlybHkuIEZhaXJuZXNzIG1hdHRlcnMg
bW9zdCBmb3IgbG9uZyBjcml0aWNhbCBzZWN0aW9ucywgYW5kIHRoaXMgdmlydHVhbGx5CiAgICAg
Ly8gZ3VhcmFudGVlcyB0aGF0IGxvbmcgY3JpdGljYWwgc2VjdGlvbnMgYWx3YXlzIGdldCBhIGZh
aXIgbG9jay4KLSAgICB2b2lkIHVubG9jaygpCisgICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFT
RVNfTE9DSygpCiAgICAgewogICAgICAgICBpZiAoVU5MSUtFTFkoIURlZmF1bHRMb2NrQWxnb3Jp
dGhtOjp1bmxvY2tGYXN0QXNzdW1pbmdaZXJvKG1fYnl0ZSkpKQogICAgICAgICAgICAgdW5sb2Nr
U2xvdygpOwpAQCAtOTIsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gdG8gYmUgZmFpciBhbnl3
YXkuIEhvd2V2ZXIsIGlmIHlvdSBwbGFuIHRvIHJlbG9jayB0aGUgbG9jayByaWdodCBhZnRlciB1
bmxvY2tpbmcgYW5kIHlvdSB3YW50CiAgICAgLy8gdG8gZW5zdXJlIHRoYXQgc29tZSBvdGhlciB0
aHJlYWQgcnVucyBpbiB0aGUgbWVhbnRpbWUsIHRoaXMgaXMgcHJvYmFibHkgdGhlIGZ1bmN0aW9u
IHlvdQogICAgIC8vIHdhbnQuCi0gICAgdm9pZCB1bmxvY2tGYWlybHkoKQorICAgIHZvaWQgdW5s
b2NrRmFpcmx5KCkgV1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKICAgICAgICAgaWYgKFVOTElL
RUxZKCFEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrRmFzdEFzc3VtaW5nWmVybyhtX2J5dGUp
KSkKICAgICAgICAgICAgIHVubG9ja0ZhaXJseVNsb3coKTsKQEAgLTEzNCw0OSArMTQwLDExIEBA
IHByaXZhdGU6CiAgICAgQXRvbWljPHVpbnQ4X3Q+IG1fYnl0ZSB7IDAgfTsKIH07CiAKLS8vIEEg
bG9jayB0eXBlIHdpdGggc3VwcG9ydCBmb3IgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KLS8vIFRv
IGFubm90YXRlIGEgbWVtYmVyIHZhcmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdpdGggdGhy
ZWFkIG93bmVyc2hpcCBpbmZvcm1hdGlvbiwKLS8vIHVzZSBsb2NrIGNhcGFiaWxpdHkgYW5ub3Rh
dGlvbnMgZGVmaW5lZCBpbiBUaHJlYWRTYWZldHlBbmFseXNpcy5oLgotLy8KLS8vIEV4YW1wbGU6
Ci0vLyAgIGNsYXNzIE15VmFsdWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TXlWYWx1
ZT4KLS8vICAgewotLy8gICBwdWJsaWM6Ci0vLyAgICAgICB2b2lkIHNldFZhbHVlKGludCB2YWx1
ZSkgeyBMb2NrZXIgaG9sZExvY2sgeyBtX2xvY2sgfTsgbV92YWx1ZSA9IHZhbHVlOyAgfQotLy8g
ICAgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWUoaW50IHZhbHVlKQotLy8gICAgICAgewotLy8g
ICAgICAgICAgIGlmICghbV9sb2NrLnRyeUxvY2soKSkKLS8vICAgICAgICAgICAgICByZXR1cm47
Ci0vLyAgICAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9vdGhlckxvY2sgfTsK
LS8vICAgICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsKLS8vICAgICAgIH0KLS8vICAgcHJp
dmF0ZToKLS8vICAgICAgIExvY2sgbV9sb2NrOwotLy8gICAgICAgaW50IG1fdmFsdWUgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spIHsgNzcgfTsKLS8vICAgICAgIGludCBtX290aGVyVmFsdWUg
V1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgODggfTsKLS8vICAgfTsKLWNsYXNzIFdURl9D
QVBBQklMSVRZX0xPQ0sgTG9jayA6IFVuY2hlY2tlZExvY2sgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKExvY2spOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAg
IGNvbnN0ZXhwciBMb2NrKCkgPSBkZWZhdWx0OwotICAgIHZvaWQgbG9jaygpIFdURl9BQ1FVSVJF
U19MT0NLKCkgeyBVbmNoZWNrZWRMb2NrOjpsb2NrKCk7IH0KLSAgICBib29sIHRyeUxvY2soKSBX
VEZfQUNRVUlSRVNfTE9DS19JRih0cnVlKSB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjp0cnlMb2Nr
KCk7IH0KLSAgICBib29sIHRyeV9sb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgeyBy
ZXR1cm4gVW5jaGVja2VkTG9jazo6dHJ5X2xvY2soKTsgfSAvLyBOT0xJTlQ6IEludGVudGlvbmFs
IGRldmlhdGlvbiB0byBzdXBwb3J0IHN0ZDo6c2NvcGVkX2xvY2suCi0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgdHJ5TG9ja1dpdGhUaW1lb3V0KFNlY29uZHMgdGltZW91dCkgV1RGX0FDUVVJ
UkVTX0xPQ0tfSUYodHJ1ZSk7Ci0gICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygp
IHsgVW5jaGVja2VkTG9jazo6dW5sb2NrKCk7IH0KLSAgICB2b2lkIHVubG9ja0ZhaXJseSgpIFdU
Rl9SRUxFQVNFU19MT0NLKCkgeyBVbmNoZWNrZWRMb2NrOjp1bmxvY2tGYWlybHkoKTsgfQotICAg
IHZvaWQgc2FmZXBvaW50KCkgeyBVbmNoZWNrZWRMb2NrOjpzYWZlcG9pbnQoKTsgfQotICAgIGJv
b2wgaXNIZWxkKCkgY29uc3QgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6aXNIZWxkKCk7IH0KLSAg
ICBib29sIGlzTG9ja2VkKCkgY29uc3QgeyByZXR1cm4gVW5jaGVja2VkTG9jazo6aXNMb2NrZWQo
KTsgfQotICAgIGZyaWVuZCBjbGFzcyBDb25kaXRpb247Ci0gICAgZnJpZW5kIHN0cnVjdCBUZXN0
V2ViS2l0QVBJOjpMb2NrSW5zcGVjdG9yOwotfTsKLQogLy8gQXNzZXJ0cyB0aGF0IHRoZSBsb2Nr
IGlzIGhlbGQuCiAvLyBUaGlzIGNhbiBiZSB1c2VkIGluIGNhc2VzIHdoZXJlIHRoZSBhbm5vdGF0
aW9ucyBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGZ1bmN0aW9uCiAvLyBkZWNsYXJhdGlvbi4KLWlu
bGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBMb2NrJiBsb2NrKSBXVEZfQVNTRVJUU19BQ1FV
SVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNFRChsb2NrLCBsb2NrLmlzSGVsZCgpKTsgfQor
dGVtcGxhdGU8dHlwZW5hbWUgTG9ja1R5cGU+IGlubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25z
dCBMb2NrVHlwZSYgbG9jaykgeyBBU1NFUlRfVU5VU0VEKGxvY2ssIGxvY2suaXNMb2NrZWQoKSk7
IH0KK2lubGluZSB2b2lkIGFzc2VydElzSGVsZChjb25zdCBMb2NrJiBsb2NrKSBXVEZfQVNTRVJU
U19BQ1FVSVJFRF9MT0NLKGxvY2spIHsgQVNTRVJUX1VOVVNFRChsb2NrLCBsb2NrLmlzTG9ja2Vk
KCkpOyB9CiAKIC8vIExvY2tlciBzcGVjaWFsaXphdGlvbiB0byB1c2Ugd2l0aCBMb2NrLgogLy8g
Tm9uLW1vdmFibGUgc2ltcGxlIHNjb3BlZCBsb2NrIGhvbGRlci4KQEAgLTIzNCwxMSArMjAyLDgg
QEAgTG9ja2VyKExvY2smKSAtPiBMb2NrZXI8TG9jaz47CiBMb2NrZXIoQWRvcHRMb2NrVGFnLCBM
b2NrJikgLT4gTG9ja2VyPExvY2s+OwogCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+
OwotdXNpbmcgVW5jaGVja2VkTG9ja0hvbGRlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjsKIAog
fSAvLyBuYW1lc3BhY2UgV1RGCiAKLXVzaW5nIFdURjo6VW5jaGVja2VkTG9jazsKIHVzaW5nIFdU
Rjo6TG9jazsKIHVzaW5nIFdURjo6TG9ja0hvbGRlcjsKLXVzaW5nIFdURjo6VW5jaGVja2VkTG9j
a0hvbGRlcjsK
</data>
<flag name="commit-queue"
          id="451511"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430140</attachid>
            <date>2021-05-30 11:56:12 -0700</date>
            <delta_ts>2021-05-30 13:37:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226432-20210530115612.patch</filename>
            <type>text/plain</type>
            <size>18650</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MmUxOGU2NjE3MDk2OTIwOTA0MWRjMWFhOGFkZDQ2MjRkYmI1NmE0Li5mMzc3OTI5MDRlNmFkYmEx
ZTIwZGFkZDVjNDBiZTIyZjU3YzA4YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0wNS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIERyb3AgVW5jaGVja2VkQ29uZGl0aW9uIC8gVW5jaGVja2VkTG9jaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NDMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRHJvcCBvbmUgcmVtYWluaW5n
IHVzZSBvZiBVbmNoZWNrZWRMb2NrIGluIGZhdm9yIG9mIExvY2suCisKKyAgICAgICAgKiBqaXQv
SklUU2FmZXBvaW50LmNwcDoKKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3RUaHJlYWQuaDoKKwog
MjAyMS0wNS0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIFdURjo6T3B0aW9uYWwgc3lub255bSBmb3Igc3RkOjpvcHRpb25hbCwgdXNpbmcgdGhhdCBj
bGFzcyB0ZW1wbGF0ZSBkaXJlY3RseSBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUzM2Y4YmZkNjExNmUzNTc5YTY1
NzQ1NzRkMmQxM2E0NDMwMWFlMDkuLjRjNGQ4ZDRlZTBmYWQzNjU5Mjc3YTZjYzFmYjI4NGMzMjI1
NTIxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDUtMzAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIFVuY2hlY2tlZENvbmRpdGlvbiAvIFVuY2hl
Y2tlZExvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIERy
b3AgVW5jaGVja2VkQ29uZGl0aW9uIC8gVW5jaGVja2VkTG9jayBub3cgdGhhdCB0aGUgd2hvbGUg
Y29kZWJhc2UgaGFzIGJlZW4gcG9ydGVkIHRvCisgICAgICAgIENvbmRpdGlvbiAvIExvY2ssIHdo
aWNoIHN1cHBvcnQgQ2xhbmcgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKworICAgICAgICAqIHd0
Zi9Db25kaXRpb24uaDoKKyAgICAgICAgKiB3dGYvRm9yd2FyZC5oOgorICAgICAgICAqIHd0Zi9M
b2NrLmNwcDoKKyAgICAgICAgKFdURjo6TG9jazo6bG9ja1Nsb3cpOgorICAgICAgICAoV1RGOjpM
b2NrOjp1bmxvY2tTbG93KToKKyAgICAgICAgKFdURjo6TG9jazo6dW5sb2NrRmFpcmx5U2xvdyk6
CisgICAgICAgIChXVEY6OkxvY2s6OnNhZmVwb2ludFNsb3cpOgorICAgICAgICAqIHd0Zi9Mb2Nr
Lmg6CisgICAgICAgIChXVEY6OmFzc2VydElzSGVsZCk6CisgICAgICAgIChXVEY6OldURl9BU1NF
UlRTX0FDUVVJUkVEX0xPQ0spOgorCiAyMDIxLTA1LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgV1RGOjpPcHRpb25hbCBzeW5vbnltIGZvciBzdGQ6
Om9wdGlvbmFsLCB1c2luZyB0aGF0IGNsYXNzIHRlbXBsYXRlIGRpcmVjdGx5IGluc3RlYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU2FmZXBvaW50LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU2FmZXBvaW50LmNwcAppbmRleCA4N2Q5ODU5Njhh
OGQyNmRmMmY0MDNkODcyNDU0NGEyZDAzOTU2YzVmLi44MGM4ZTVlMjg2ZWFkZGQ1ZjM2MjJmNjAw
NGI5MTM2ZGM3ZDdjYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFNhZmVwb2ludC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTYWZlcG9p
bnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU2FmZXBvaW50OjphZGQoU2Nhbm5hYmxlKiBz
Y2FubmFibGUpCiAgICAgbV9zY2FubmFibGVzLmFwcGVuZChzY2FubmFibGUpOwogfQogCi12b2lk
IFNhZmVwb2ludDo6YmVnaW4oKQordm9pZCBTYWZlcG9pbnQ6OmJlZ2luKCkgV1RGX0lHTk9SRVNf
VEhSRUFEX1NBRkVUWV9BTkFMWVNJUwogewogICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RpZENhbGxC
ZWdpbik7CiAgICAgbV9kaWRDYWxsQmVnaW4gPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdFRocmVhZC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRXb3JrbGlzdFRocmVhZC5oCmluZGV4IDA2NWU0NzEwMjc5NDZlZjgxZjZiNjBh
NzAwYmVmYWQwMzNkMWJjOWIuLjNjOWVlYjRlNTM0Nzg1NzUyYjg4YjJiZDJkMzdhOGI0Y2U4MDFh
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3RUaHJl
YWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0VGhyZWFkLmgK
QEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdGhyZWFkSXNTdG9wcGluZyhj
b25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsOwogCi0gICAgVW5jaGVja2VkTG9jayBtX3JpZ2h0
VG9SdW47CisgICAgTG9jayBtX3JpZ2h0VG9SdW47CiAgICAgSklUV29ya2xpc3QmIG1fd29ya2xp
c3Q7CiAgICAgUmVmUHRyPEpJVFBsYW4+IG1fcGxhbiB7IG51bGxwdHIgfTsKICAgICBTYWZlcG9p
bnQqIG1fc2FmZXBvaW50IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Q29uZGl0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAppbmRleCA0ZWVmMWYxYTYy
YTFjYjUyYzFkZTU3MmUxNzFhMzE0MzU2OThiMzY2Li5iMDM1ZjVlMzFlMzA1MjJiZjdlYzI1YzQ4
ZmZiYWRjYjQxYTY4ZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaApAQCAtNDAsMTYgKzQwLDE2IEBAIG5hbWVz
cGFjZSBXVEYgewogLy8gbm90aWZ5QWxsKCkgcmVxdWlyZSBqdXN0IGEgbG9hZCBhbmQgYnJhbmNo
IGZvciB0aGUgZmFzdCBjYXNlIHdoZXJlIG5vIHRocmVhZCBpcyB3YWl0aW5nLgogLy8gVGhpcyBj
b25kaXRpb24gdmFyaWFibGUsIHdoZW4gdXNlZCB3aXRoIFdURjo6TG9jaywgY2FuIG91dHBlcmZv
cm0gYSBzeXN0ZW0gY29uZGl0aW9uIHZhcmlhYmxlCiAvLyBhbmQgbG9jayBieSB1cCB0byA1OHgu
Ci1jbGFzcyBVbmNoZWNrZWRDb25kaXRpb24gZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFVuY2hlY2tlZENvbmRpdGlvbik7CitjbGFzcyBDb25kaXRpb24gZmluYWwgeworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgLy8gVW5jaGVja2VkQ29uZGl0aW9uIHdpbGwgYWNjZXB0IGFueSBr
aW5kIG9mIHRpbWUgYW5kIGNvbnZlcnQgaXQgaW50ZXJuYWxseSwgYnV0IHRoaXMgdHlwZWRlZiB0
ZWxscwotICAgIC8vIHlvdSB3aGF0IGtpbmQgb2YgdGltZSBVbmNoZWNrZWRDb25kaXRpb24gd291
bGQgYmUgYWJsZSB0byB1c2Ugd2l0aG91dCBjb252ZXJzaW9ucy4gSG93ZXZlciwgaWYgeW91Cisg
ICAgLy8gQ29uZGl0aW9uIHdpbGwgYWNjZXB0IGFueSBraW5kIG9mIHRpbWUgYW5kIGNvbnZlcnQg
aXQgaW50ZXJuYWxseSwgYnV0IHRoaXMgdHlwZWRlZiB0ZWxscworICAgIC8vIHlvdSB3aGF0IGtp
bmQgb2YgdGltZSBDb25kaXRpb24gd291bGQgYmUgYWJsZSB0byB1c2Ugd2l0aG91dCBjb252ZXJz
aW9ucy4gSG93ZXZlciwgaWYgeW91CiAgICAgLy8gYXJlIHVubGlrZWx5IHRvIGJlIGFmZmVjdGVk
IGJ5IHRoZSBjb3N0IG9mIGNvbnZlcnNpb25zLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIE1vbm90b25p
Y1RpbWUuCiAgICAgdXNpbmcgVGltZSA9IFBhcmtpbmdMb3Q6OlRpbWU7CiAKLSAgICBjb25zdGV4
cHIgVW5jaGVja2VkQ29uZGl0aW9uKCkgPSBkZWZhdWx0OworICAgIGNvbnN0ZXhwciBDb25kaXRp
b24oKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBXYWl0IG9uIGEgcGFya2luZyBxdWV1ZSB3aGlsZSBy
ZWxlYXNpbmcgdGhlIGdpdmVuIGxvY2suIEl0IHdpbGwgdW5sb2NrIHRoZSBsb2NrIGp1c3QgYmVm
b3JlCiAgICAgLy8gcGFya2luZywgYW5kIHJlbG9jayBpdCB1cG9uIHdha2V1cC4gUmV0dXJucyB0
cnVlIGlmIHdlIHdva2UgdXAgZHVlIHRvIHNvbWUgY2FsbCB0bwpAQCAtNjksNDQgKzY5LDM4IEBA
IHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KICAgICBib29sIHdhaXRV
bnRpbChMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1l
b3V0KQogICAgIHsKLSAgICAgICAgYm9vbCByZXN1bHQ7Ci0gICAgICAgIGlmICh0aW1lb3V0IDwg
dGltZW91dC5ub3dXaXRoU2FtZUNsb2NrKCkpIHsKLSAgICAgICAgICAgIGxvY2sudW5sb2NrKCk7
Ci0gICAgICAgICAgICByZXN1bHQgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHJlc3VsdCA9IFBhcmtpbmdMb3Q6OnBhcmtDb25kaXRpb25hbGx5KAotICAgICAgICAgICAg
ICAgICZtX2hhc1dhaXRlcnMsCi0gICAgICAgICAgICAgICAgW3RoaXNdICgpIC0+IGJvb2wgewot
ICAgICAgICAgICAgICAgICAgICAvLyBMZXQgZXZlcnlvbmUga25vdyB0aGF0IHdlIHdpbGwgYmUg
d2FpdGluZy4gRG8gdGhpcyB3aGlsZSB3ZSBob2xkIHRoZSBxdWV1ZSBsb2NrLAotICAgICAgICAg
ICAgICAgICAgICAvLyB0byBwcmV2ZW50IHJhY2VzIHdpdGggbm90aWZ5T25lKCkuCi0gICAgICAg
ICAgICAgICAgICAgIG1faGFzV2FpdGVycy5zdG9yZSh0cnVlKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBbJmxv
Y2tdICgpIHsgbG9jay51bmxvY2soKTsgfSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0KS53YXNV
bnBhcmtlZDsKLSAgICAgICAgfQotICAgICAgICBsb2NrLmxvY2soKTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIHdhaXRVbnRpbFVuY2hlY2tlZChsb2NrLCB0aW1lb3V0
KTsKKyAgICB9CisKKyAgICBib29sIHdhaXRVbnRpbChMb2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0
aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAg
eworICAgICAgICByZXR1cm4gd2FpdFVudGlsVW5jaGVja2VkKGxvY2ssIHRpbWVvdXQpOwogICAg
IH0KIAogICAgIC8vIFdhaXQgdW50aWwgdGhlIGdpdmVuIHByZWRpY2F0ZSBpcyBzYXRpc2ZpZWQu
IFJldHVybnMgdHJ1ZSBpZiBpdCBpcyBzYXRpc2ZpZWQgaW4gdGhlIGVuZC4KICAgICAvLyBNYXkg
cmV0dXJuIGVhcmx5IGR1ZSB0byB0aW1lb3V0LgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExvY2tU
eXBlLCB0eXBlbmFtZSBGdW5jdG9yPgotICAgIGJvb2wgd2FpdFVudGlsKAotICAgICAgICBMb2Nr
VHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25z
dCBGdW5jdG9yJiBwcmVkaWNhdGUpCisgICAgYm9vbCB3YWl0VW50aWwoTG9ja1R5cGUmIGxvY2ss
IGNvbnN0IFRpbWVXaXRoRHluYW1pY0Nsb2NrVHlwZSYgdGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQogICAgIHsKLSAgICAgICAgd2hpbGUgKCFwcmVkaWNhdGUoKSkgewotICAgICAg
ICAgICAgaWYgKCF3YWl0VW50aWwobG9jaywgdGltZW91dCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHByZWRpY2F0ZSgpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICByZXR1cm4gd2FpdFVudGlsVW5jaGVja2VkKGxvY2ssIHRpbWVvdXQsIHByZWRpY2F0ZSk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBib29sIHdhaXRVbnRp
bChMb2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQsIGNv
bnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7Cisg
ICAgICAgIHJldHVybiB3YWl0VW50aWxVbmNoZWNrZWQobG9jaywgdGltZW91dCwgcHJlZGljYXRl
KTsKICAgICB9CiAKICAgICAvLyBXYWl0IHVudGlsIHRoZSBnaXZlbiBwcmVkaWNhdGUgaXMgc2F0
aXNmaWVkLiBSZXR1cm5zIHRydWUgaWYgaXQgaXMgc2F0aXNmaWVkIGluIHRoZSBlbmQuCiAgICAg
Ly8gTWF5IHJldHVybiBlYXJseSBkdWUgdG8gdGltZW91dC4KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBMb2NrVHlwZSwgdHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdhaXRGb3IoCi0gICAgICAg
IExvY2tUeXBlJiBsb2NrLCBTZWNvbmRzIHJlbGF0aXZlVGltZW91dCwgY29uc3QgRnVuY3RvciYg
cHJlZGljYXRlKQorICAgIGJvb2wgd2FpdEZvcihMb2NrVHlwZSYgbG9jaywgU2Vjb25kcyByZWxh
dGl2ZVRpbWVvdXQsIGNvbnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiB3YWl0VW50aWwobG9jaywgTW9ub3RvbmljVGltZTo6bm93KCkgKyByZWxhdGl2ZVRpbWVv
dXQsIHByZWRpY2F0ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4K
KyAgICBib29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQsIGNv
bnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKICAgICB7CiAg
ICAgICAgIHJldHVybiB3YWl0VW50aWwobG9jaywgTW9ub3RvbmljVGltZTo6bm93KCkgKyByZWxh
dGl2ZVRpbWVvdXQsIHByZWRpY2F0ZSk7CiAgICAgfQpAQCAtMTE3LDEyICsxMTEsMjIgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIE1vbm90b25pY1RpbWU6Om5vdygp
ICsgcmVsYXRpdmVUaW1lb3V0KTsKICAgICB9CiAKKyAgICBib29sIHdhaXRGb3IoTG9jayYgbG9j
aywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQpIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAg
eworICAgICAgICByZXR1cm4gd2FpdFVudGlsKGxvY2ssIE1vbm90b25pY1RpbWU6Om5vdygpICsg
cmVsYXRpdmVUaW1lb3V0KTsKKyAgICB9CisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlw
ZT4KICAgICB2b2lkIHdhaXQoTG9ja1R5cGUmIGxvY2spCiAgICAgewogICAgICAgICB3YWl0VW50
aWwobG9jaywgVGltZTo6aW5maW5pdHkoKSk7CiAgICAgfQogCisgICAgdm9pZCB3YWl0KExvY2sm
IGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spCisgICAgeworICAgICAgICB3YWl0VW50aWwo
bG9jaywgVGltZTo6aW5maW5pdHkoKSk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
TG9ja1R5cGUsIHR5cGVuYW1lIEZ1bmN0b3I+CiAgICAgdm9pZCB3YWl0KExvY2tUeXBlJiBsb2Nr
LCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUpCiAgICAgewpAQCAtMTMwLDYgKzEzNCwxMyBAQCBw
dWJsaWM6CiAgICAgICAgICAgICB3YWl0KGxvY2spOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmN0b3I+CisgICAgdm9pZCB3YWl0KExvY2smIGxvY2ssIGNvbnN0IEZ1bmN0b3Im
IHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKKyAgICB7CisgICAgICAgIHdoaWxl
ICghcHJlZGljYXRlKCkpCisgICAgICAgICAgICB3YWl0KGxvY2spOworICAgIH0KKwogICAgIC8v
IE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBpcyBleHRyZW1lbHkgZmFzdCB3aGVuIG5vYm9keSBpcyB3
YWl0aW5nLiBJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIHRyeSB0bwogICAgIC8vIGF2b2lkIGNhbGxp
bmcgdGhpcyBtZXRob2QuIFRoaXMgcmV0dXJucyB0cnVlIGlmIHNvbWVvbmUgd2FzIGFjdHVhbGx5
IHdva2VuIHVwLgogICAgIGJvb2wgbm90aWZ5T25lKCkKQEAgLTE3MCw2NCArMTgxLDQ3IEBAIHB1
YmxpYzoKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEF0b21pYzxib29sPiBtX2hhc1dhaXRl
cnMgeyBmYWxzZSB9OwotfTsKLQotLy8gQSBjb25kaXRpb24gdmFyaWFibGUgdHlwZSBmb3IgTG9j
ay4KLS8vIEZvciBwcmVkaWNhdGVzIHRoYXQgYWNjZXNzIHRoZSBndWFyZGVkIHZhcmlhYmxlcywg
dXNlIGFzc2VydElzSGVsZChsb2NrKS4KLWNsYXNzIENvbmRpdGlvbiBmaW5hbCB7Ci0gICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ29uZGl0aW9uKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICBjb25zdGV4cHIgQ29uZGl0aW9uKCkgPSBkZWZhdWx0OwotCi0gICAg
Ym9vbCB3YWl0VW50aWwoTG9jayYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
JiB0aW1lb3V0KSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IG1fY29uZGl0aW9uLndhaXRVbnRpbCh1bmNoZWNrZWRDYXN0KGxvY2spLCB0aW1lb3V0KTsKLSAg
ICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBib29sIHdhaXRVbnRpbChM
b2NrJiBsb2NrLCBjb25zdCBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUmIHRpbWVvdXQsIGNvbnN0
IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0VW50aWwodW5jaGVja2VkQ2FzdChsb2NrKSwgdGlt
ZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4K
LSAgICBib29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcyByZWxhdGl2ZVRpbWVvdXQsIGNv
bnN0IEZ1bmN0b3ImIHByZWRpY2F0ZSkgV1RGX1JFUVVJUkVTX0xPQ0sobG9jaykKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKHVuY2hlY2tlZENhc3QobG9jayksIHJl
bGF0aXZlVGltZW91dCwgcHJlZGljYXRlKTsKLSAgICB9Ci0gICAgYm9vbCB3YWl0Rm9yKExvY2sm
IGxvY2ssIFNlY29uZHMgcmVsYXRpdmVUaW1lb3V0KSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29uZGl0aW9uLndhaXRGb3IodW5jaGVja2VkQ2FzdChs
b2NrKSwgcmVsYXRpdmVUaW1lb3V0KTsKLSAgICB9Ci0gICAgdm9pZCB3YWl0KExvY2smIGxvY2sp
IFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRpdGlvbi53YWl0
KHVuY2hlY2tlZENhc3QobG9jaykpOwotICAgIH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dG9yPgotICAgIHZvaWQgd2FpdChMb2NrJiBsb2NrLCBjb25zdCBGdW5jdG9yJiBwcmVkaWNhdGUp
IFdURl9SRVFVSVJFU19MT0NLKGxvY2spCi0gICAgewotICAgICAgICBtX2NvbmRpdGlvbi53YWl0
KHVuY2hlY2tlZENhc3QobG9jayksIHByZWRpY2F0ZSk7Ci0gICAgfQotICAgIGJvb2wgbm90aWZ5
T25lKCkKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZT4KKyAgICBib29sIHdhaXRVbnRp
bFVuY2hlY2tlZChMb2NrVHlwZSYgbG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBl
JiB0aW1lb3V0KSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZX0FOQUxZU0lTCiAgICAgewotICAg
ICAgICByZXR1cm4gbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CisgICAgICAgIGJvb2wgcmVzdWx0
OworICAgICAgICBpZiAodGltZW91dCA8IHRpbWVvdXQubm93V2l0aFNhbWVDbG9jaygpKSB7Cisg
ICAgICAgICAgICBsb2NrLnVubG9jaygpOworICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBQYXJraW5nTG90OjpwYXJrQ29u
ZGl0aW9uYWxseSgKKyAgICAgICAgICAgICAgICAmbV9oYXNXYWl0ZXJzLAorICAgICAgICAgICAg
ICAgIFt0aGlzXSAoKSAtPiBib29sIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gTGV0IGV2ZXJ5
b25lIGtub3cgdGhhdCB3ZSB3aWxsIGJlIHdhaXRpbmcuIERvIHRoaXMgd2hpbGUgd2UgaG9sZCB0
aGUgcXVldWUgbG9jaywKKyAgICAgICAgICAgICAgICAgICAgLy8gdG8gcHJldmVudCByYWNlcyB3
aXRoIG5vdGlmeU9uZSgpLgorICAgICAgICAgICAgICAgICAgICBtX2hhc1dhaXRlcnMuc3RvcmUo
dHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAg
IH0sCisgICAgICAgICAgICAgICAgWyZsb2NrXSAoKSBXVEZfSUdOT1JFU19USFJFQURfU0FGRVRZ
X0FOQUxZU0lTIHsKKyAgICAgICAgICAgICAgICAgICAgbG9jay51bmxvY2soKTsKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRpbWVvdXQpLndhc1VucGFya2VkOworICAgICAg
ICB9CisgICAgICAgIGxvY2subG9jaygpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
LSAgICB2b2lkIG5vdGlmeUFsbCgpCisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMb2NrVHlwZSwg
dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBib29sIHdhaXRVbnRpbFVuY2hlY2tlZChMb2NrVHlwZSYg
bG9jaywgY29uc3QgVGltZVdpdGhEeW5hbWljQ2xvY2tUeXBlJiB0aW1lb3V0LCBjb25zdCBGdW5j
dG9yJiBwcmVkaWNhdGUpIFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMKICAgICB7
Ci0gICAgICAgIG1fY29uZGl0aW9uLm5vdGlmeUFsbCgpOworICAgICAgICB3aGlsZSAoIXByZWRp
Y2F0ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXdhaXRVbnRpbChsb2NrLCB0aW1lb3V0KSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcHJlZGljYXRlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQotcHJpdmF0ZToKLSAgICBzdGF0aWMgVW5jaGVja2VkTG9jayYgdW5j
aGVja2VkQ2FzdChMb2NrJiBsb2NrKSB7IHJldHVybiBzdGF0aWNfY2FzdDxVbmNoZWNrZWRMb2Nr
Jj4obG9jayk7IH0KLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9jb25kaXRpb247CisKKyAgICBB
dG9taWM8Ym9vbD4gbV9oYXNXYWl0ZXJzIHsgZmFsc2UgfTsKIH07CiAKLXVzaW5nIFN0YXRpY1Vu
Y2hlY2tlZENvbmRpdGlvbiA9IFVuY2hlY2tlZENvbmRpdGlvbjsKIHVzaW5nIFN0YXRpY0NvbmRp
dGlvbiA9IENvbmRpdGlvbjsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6Q29u
ZGl0aW9uOwotdXNpbmcgV1RGOjpVbmNoZWNrZWRDb25kaXRpb247CiB1c2luZyBXVEY6OlN0YXRp
Y0NvbmRpdGlvbjsKLXVzaW5nIFdURjo6U3RhdGljVW5jaGVja2VkQ29uZGl0aW9uOwotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJkLmggYi9Tb3VyY2UvV1RGL3d0Zi9Gb3J3YXJk
LmgKaW5kZXggYzUxZjY3YWYwMmFmZDZhNzY4YmRiNTFlM2E3YjY2YzFhMWJlMDZkYi4uZjljNTUy
NzE1ZDViNzFkNGQzM2NhMmE1ZDZlN2ViNmNiMTc2ODRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRm9yd2FyZC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaApAQCAtNDksNyAr
NDksNiBAQCBjbGFzcyBUZXh0UG9zaXRpb247CiBjbGFzcyBUZXh0U3RyZWFtOwogY2xhc3MgVW5p
cXVlZFN0cmluZ0ltcGw7CiBjbGFzcyBVUkw7Ci1jbGFzcyBVbmNoZWNrZWRMb2NrOwogY2xhc3Mg
V2FsbFRpbWU7CiAKIHN0cnVjdCBBbnlUaHJlYWRzQWNjZXNzVHJhaXRzOwpAQCAtMTU0LDcgKzE1
Myw2IEBAIHVzaW5nIFdURjo6U3RyaW5nVmlldzsKIHVzaW5nIFdURjo6VGV4dFBvc2l0aW9uOwog
dXNpbmcgV1RGOjpUZXh0U3RyZWFtOwogdXNpbmcgV1RGOjpVUkw7Ci11c2luZyBXVEY6OlVuY2hl
Y2tlZExvY2s7CiB1c2luZyBXVEY6OlVuaXF1ZVJlZjsKIHVzaW5nIFdURjo6VmFyaWFudDsKIHVz
aW5nIFdURjo6VmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9jay5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcAppbmRleCBmOWNhZDk2NzFkZmFhNTM1ZTcxOTQ5ZjBmNjUy
YmUxYzU4OGVmY2JiLi41MGVmMmVhZjU3OTJhOTBlMDI5YmY4YWUwYWVmOGQwMWU1OWM0Y2IzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9M
b2NrLmNwcApAQCAtMzksMTQgKzM5LDE0IEBAIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMgY29u
c3RleHByIGJvb2wgcHJvZmlsZUxvY2tDb250ZW50aW9uID0gZmFsc2U7CiAKLXZvaWQgVW5jaGVj
a2VkTG9jazo6bG9ja1Nsb3coKQordm9pZCBMb2NrOjpsb2NrU2xvdygpCiB7CiAgICAgaWYgKHBy
b2ZpbGVMb2NrQ29udGVudGlvbikKICAgICAgICAgU1RBQ0tfU0hPVF9QUk9GSUxFKDQsIDIsIDUp
OwogICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjpsb2NrU2xvdyhtX2J5dGUpOwogfQogCi12b2lk
IFVuY2hlY2tlZExvY2s6OnVubG9ja1Nsb3coKQordm9pZCBMb2NrOjp1bmxvY2tTbG93KCkKIHsK
ICAgICAvLyBIZWFwIGFsbG9jYXRpb25zIGFyZSBmb3JiaWRkZW4gb24gdGhlIGNlcnRhaW4gdGhy
ZWFkcyAoZS5nLiBhdWRpbyByZW5kZXJpbmcgdGhyZWFkKSBmb3IgcGVyZm9ybWFuY2UgcmVhc29u
cyBzbyB3ZSBuZWVkIHRvCiAgICAgLy8gZXhwbGljaXRseSBhbGxvdyB0aGUgZm9sbG93aW5nIGFs
bG9jYXRpb24ocykuIEluIHNvbWUgcmFyZSBjYXNlcywgdGhlIHVubG9ja1Nsb3coKSBhbGdvcml0
aCBtYXkgY2F1c2UgYWxsb2NhdGlvbnMuCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgVW5jaGVja2Vk
TG9jazo6dW5sb2NrU2xvdygpCiAgICAgRGVmYXVsdExvY2tBbGdvcml0aG06OnVubG9ja1Nsb3co
bV9ieXRlLCBEZWZhdWx0TG9ja0FsZ29yaXRobTo6VW5mYWlyKTsKIH0KIAotdm9pZCBVbmNoZWNr
ZWRMb2NrOjp1bmxvY2tGYWlybHlTbG93KCkKK3ZvaWQgTG9jazo6dW5sb2NrRmFpcmx5U2xvdygp
CiB7CiAgICAgLy8gSGVhcCBhbGxvY2F0aW9ucyBhcmUgZm9yYmlkZGVuIG9uIHRoZSBjZXJ0YWlu
IHRocmVhZHMgKGUuZy4gYXVkaW8gcmVuZGVyaW5nIHRocmVhZCkgZm9yIHBlcmZvcm1hbmNlIHJl
YXNvbnMgc28gd2UgbmVlZCB0bwogICAgIC8vIGV4cGxpY2l0bHkgYWxsb3cgdGhlIGZvbGxvd2lu
ZyBhbGxvY2F0aW9uKHMpLiBJbiBzb21lIHJhcmUgY2FzZXMsIHRoZSB1bmxvY2tTbG93KCkgYWxn
b3JpdGggbWF5IGNhdXNlIGFsbG9jYXRpb25zLgpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFVuY2hl
Y2tlZExvY2s6OnVubG9ja0ZhaXJseVNsb3coKQogICAgIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp1
bmxvY2tTbG93KG1fYnl0ZSwgRGVmYXVsdExvY2tBbGdvcml0aG06OkZhaXIpOwogfQogCi12b2lk
IFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludFNsb3coKQordm9pZCBMb2NrOjpzYWZlcG9pbnRTbG93
KCkKIHsKICAgICBEZWZhdWx0TG9ja0FsZ29yaXRobTo6c2FmZXBvaW50U2xvdyhtX2J5dGUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTG9jay5oIGIvU291cmNlL1dURi93dGYvTG9j
ay5oCmluZGV4IDIzY2UwNzZmNTAyNWIwZDlhNGY1MmRmOGU3Y2E5Zjc0NDMyOWZlYjEuLjQyZTRh
YWMwYzlhNGFhZTU5ZTcxYjVlOTM1OGNiODYwMThkN2U0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2suaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKQEAgLTUwLDI5ICs1MCwz
NSBAQCB0eXBlZGVmIExvY2tBbGdvcml0aG08dWludDhfdCwgMSwgMj4gRGVmYXVsdExvY2tBbGdv
cml0aG07CiAvLyBhdCB3b3JzdCBvbmUgY2FsbCB0byB1bmxvY2soKSBwZXIgbWlsbGlzZWNvbmQg
d2lsbCBkbyBhIGRpcmVjdCBoYW5kLW9mZiB0byB0aGUgdGhyZWFkIHRoYXQgaXMgYXQKIC8vIHRo
ZSBoZWFkIG9mIHRoZSBxdWV1ZS4gV2hlbiB0aGVyZSBhcmUgY29sbGlzaW9ucywgZWFjaCBjb2xs
aXNpb24gaW5jcmVhc2VzIHRoZSBmYWlyIHVubG9jayBkZWxheQogLy8gYnkgb25lIG1pbGxpc2Vj
b25kIGluIHRoZSB3b3JzdCBjYXNlLgotY2xhc3MgVW5jaGVja2VkTG9jayB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoVW5jaGVja2VkTG9jayk7CisvLworLy8gVGhpcyBsb2NrIHR5cGUgc3Vw
cG9ydHMgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKy8vIFRvIGFubm90YXRlIGEgbWVtYmVyIHZh
cmlhYmxlIG9yIGEgZ2xvYmFsIHZhcmlhYmxlIHdpdGggdGhyZWFkIG93bmVyc2hpcCBpbmZvcm1h
dGlvbiwKKy8vIHVzZSBsb2NrIGNhcGFiaWxpdHkgYW5ub3RhdGlvbnMgZGVmaW5lZCBpbiBUaHJl
YWRTYWZldHlBbmFseXNpcy5oLgorY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9DSyBMb2NrIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShMb2NrKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBjb25zdGV4cHIgVW5jaGVja2VkTG9jaygpID0gZGVmYXVsdDsKKyAg
ICBjb25zdGV4cHIgTG9jaygpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgbG9jaygpCisgICAgdm9p
ZCBsb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0soKQogICAgIHsKICAgICAgICAgaWYgKFVOTElLRUxZ
KCFEZWZhdWx0TG9ja0FsZ29yaXRobTo6bG9ja0Zhc3RBc3N1bWluZ1plcm8obV9ieXRlKSkpCiAg
ICAgICAgICAgICBsb2NrU2xvdygpOwogICAgIH0KIAotICAgIGJvb2wgdHJ5TG9jaygpCisgICAg
Ym9vbCB0cnlMb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0tfSUYodHJ1ZSkgLy8gTk9MSU5UOiBJbnRl
bnRpb25hbCBkZXZpYXRpb24gdG8gc3VwcG9ydCBzdGQ6OnNjb3BlZF9sb2NrLgogICAgIHsKICAg
ICAgICAgcmV0dXJuIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp0cnlMb2NrKG1fYnl0ZSk7CiAgICAg
fQogCiAgICAgLy8gTmVlZCB0aGlzIHZlcnNpb24gZm9yIHN0ZDo6dW5pcXVlX2xvY2suCi0gICAg
Ym9vbCB0cnlfbG9jaygpCisgICAgYm9vbCB0cnlfbG9jaygpIFdURl9BQ1FVSVJFU19MT0NLX0lG
KHRydWUpCiAgICAgewogICAgICAgICByZXR1cm4gdHJ5TG9jaygpOwogICAgIH0KIAorICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBib29sIHRyeUxvY2tXaXRoVGltZW91dChTZWNvbmRzIHRpbWVvdXQp
IFdURl9BQ1FVSVJFU19MT0NLX0lGKHRydWUpOworCiAgICAgLy8gUmVsaW5xdWlzaCB0aGUgbG9j
ay4gRWl0aGVyIG9uZSBvZiB0aGUgdGhyZWFkcyB0aGF0IHdlcmUgd2FpdGluZyBmb3IgdGhlIGxv
Y2ssIG9yIHNvbWUgb3RoZXIKICAgICAvLyB0aHJlYWQgdGhhdCBoYXBwZW5zIHRvIGJlIHJ1bm5p
bmcsIHdpbGwgYmUgYWJsZSB0byBncmFiIHRoZSBsb2NrLiBUaGlzIGJpdCBvZiB1bmZhaXJuZXNz
IGlzCiAgICAgLy8gY2FsbGVkIGJhcmdpbmcsIGFuZCB3ZSBhbGxvdyBpdCBiZWNhdXNlIGl0IG1h
eGltaXplcyB0aHJvdWdocHV0LiBIb3dldmVyLCB3ZSBib3VuZCBob3cgdW5mYWlyCkBAIC04MSw3
ICs4Nyw3IEBAIHB1YmxpYzoKICAgICAvLyB3ZSBjaGVjayBpZiB0aGUgbGFzdCB0aW1lIHRoYXQg
d2UgZGlkIGEgZmFpciB1bmxvY2sgd2FzIG1vcmUgdGhhbiByb3VnaGx5IDFtcyBhZ287IGlmIHNv
LCB3ZQogICAgIC8vIHVubG9jayBmYWlybHkuIEZhaXJuZXNzIG1hdHRlcnMgbW9zdCBmb3IgbG9u
ZyBjcml0aWNhbCBzZWN0aW9ucywgYW5kIHRoaXMgdmlydHVhbGx5CiAgICAgLy8gZ3VhcmFudGVl
cyB0aGF0IGxvbmcgY3JpdGljYWwgc2VjdGlvbnMgYWx3YXlzIGdldCBhIGZhaXIgbG9jay4KLSAg
ICB2b2lkIHVubG9jaygpCisgICAgdm9pZCB1bmxvY2soKSBXVEZfUkVMRUFTRVNfTE9DSygpCiAg
ICAgewogICAgICAgICBpZiAoVU5MSUtFTFkoIURlZmF1bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tG
YXN0QXNzdW1pbmdaZXJvKG1fYnl0ZSkpKQogICAgICAgICAgICAgdW5sb2NrU2xvdygpOwpAQCAt
OTIsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gdG8gYmUgZmFpciBhbnl3YXkuIEhvd2V2ZXIs
IGlmIHlvdSBwbGFuIHRvIHJlbG9jayB0aGUgbG9jayByaWdodCBhZnRlciB1bmxvY2tpbmcgYW5k
IHlvdSB3YW50CiAgICAgLy8gdG8gZW5zdXJlIHRoYXQgc29tZSBvdGhlciB0aHJlYWQgcnVucyBp
biB0aGUgbWVhbnRpbWUsIHRoaXMgaXMgcHJvYmFibHkgdGhlIGZ1bmN0aW9uIHlvdQogICAgIC8v
IHdhbnQuCi0gICAgdm9pZCB1bmxvY2tGYWlybHkoKQorICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkg
V1RGX1JFTEVBU0VTX0xPQ0soKQogICAgIHsKICAgICAgICAgaWYgKFVOTElLRUxZKCFEZWZhdWx0
TG9ja0FsZ29yaXRobTo6dW5sb2NrRmFzdEFzc3VtaW5nWmVybyhtX2J5dGUpKSkKICAgICAgICAg
ICAgIHVubG9ja0ZhaXJseVNsb3coKTsKQEAgLTEzNCw0NSArMTQwLDYgQEAgcHJpdmF0ZToKICAg
ICBBdG9taWM8dWludDhfdD4gbV9ieXRlIHsgMCB9OwogfTsKIAotLy8gQSBsb2NrIHR5cGUgd2l0
aCBzdXBwb3J0IGZvciB0aHJlYWQgc2FmZXR5IGFuYWx5c2lzLgotLy8gVG8gYW5ub3RhdGUgYSBt
ZW1iZXIgdmFyaWFibGUgb3IgYSBnbG9iYWwgdmFyaWFibGUgd2l0aCB0aHJlYWQgb3duZXJzaGlw
IGluZm9ybWF0aW9uLAotLy8gdXNlIGxvY2sgY2FwYWJpbGl0eSBhbm5vdGF0aW9ucyBkZWZpbmVk
IGluIFRocmVhZFNhZmV0eUFuYWx5c2lzLmguCi0vLwotLy8gRXhhbXBsZToKLS8vICAgY2xhc3Mg
TXlWYWx1ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNeVZhbHVlPgotLy8gICB7Ci0v
LyAgIHB1YmxpYzoKLS8vICAgICAgIHZvaWQgc2V0VmFsdWUoaW50IHZhbHVlKSB7IExvY2tlciBo
b2xkTG9jayB7IG1fbG9jayB9OyBtX3ZhbHVlID0gdmFsdWU7ICB9Ci0vLyAgICAgICB2b2lkIG1h
eWJlU2V0T3RoZXJWYWx1ZShpbnQgdmFsdWUpCi0vLyAgICAgICB7Ci0vLyAgICAgICAgICAgaWYg
KCFtX2xvY2sudHJ5TG9jaygpKQotLy8gICAgICAgICAgICAgIHJldHVybjsKLS8vICAgICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX290aGVyTG9jayB9OwotLy8gICAgICAgICAg
IG1fb3RoZXJWYWx1ZSA9IHZhbHVlOwotLy8gICAgICAgfQotLy8gICBwcml2YXRlOgotLy8gICAg
ICAgTG9jayBtX2xvY2s7Ci0vLyAgICAgICBpbnQgbV92YWx1ZSBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fbG9jaykgeyA3NyB9OwotLy8gICAgICAgaW50IG1fb3RoZXJWYWx1ZSBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fbG9jaykgeyA4OCB9OwotLy8gICB9OwotY2xhc3MgV1RGX0NBUEFCSUxJVFlfTE9D
SyBMb2NrIDogVW5jaGVja2VkTG9jayB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9jayk7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgY29uc3RleHByIExv
Y2soKSA9IGRlZmF1bHQ7Ci0gICAgdm9pZCBsb2NrKCkgV1RGX0FDUVVJUkVTX0xPQ0soKSB7IFVu
Y2hlY2tlZExvY2s6OmxvY2soKTsgfQotICAgIGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FVSVJFU19M
T0NLX0lGKHRydWUpIHsgcmV0dXJuIFVuY2hlY2tlZExvY2s6OnRyeUxvY2soKTsgfQotICAgIGJv
b2wgdHJ5X2xvY2soKSBXVEZfQUNRVUlSRVNfTE9DS19JRih0cnVlKSB7IHJldHVybiBVbmNoZWNr
ZWRMb2NrOjp0cnlfbG9jaygpOyB9IC8vIE5PTElOVDogSW50ZW50aW9uYWwgZGV2aWF0aW9uIHRv
IHN1cHBvcnQgc3RkOjpzY29wZWRfbG9jay4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0
cnlMb2NrV2l0aFRpbWVvdXQoU2Vjb25kcyB0aW1lb3V0KSBXVEZfQUNRVUlSRVNfTE9DS19JRih0
cnVlKTsKLSAgICB2b2lkIHVubG9jaygpIFdURl9SRUxFQVNFU19MT0NLKCkgeyBVbmNoZWNrZWRM
b2NrOjp1bmxvY2soKTsgfQotICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkgV1RGX1JFTEVBU0VTX0xP
Q0soKSB7IFVuY2hlY2tlZExvY2s6OnVubG9ja0ZhaXJseSgpOyB9Ci0gICAgdm9pZCBzYWZlcG9p
bnQoKSB7IFVuY2hlY2tlZExvY2s6OnNhZmVwb2ludCgpOyB9Ci0gICAgYm9vbCBpc0hlbGQoKSBj
b25zdCB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjppc0hlbGQoKTsgfQotICAgIGJvb2wgaXNMb2Nr
ZWQoKSBjb25zdCB7IHJldHVybiBVbmNoZWNrZWRMb2NrOjppc0xvY2tlZCgpOyB9Ci0gICAgZnJp
ZW5kIGNsYXNzIENvbmRpdGlvbjsKLSAgICBmcmllbmQgc3RydWN0IFRlc3RXZWJLaXRBUEk6Okxv
Y2tJbnNwZWN0b3I7Ci19OwotCiAvLyBBc3NlcnRzIHRoYXQgdGhlIGxvY2sgaXMgaGVsZC4KIC8v
IFRoaXMgY2FuIGJlIHVzZWQgaW4gY2FzZXMgd2hlcmUgdGhlIGFubm90YXRpb25zIGNhbm5vdCBi
ZSBhZGRlZCB0byB0aGUgZnVuY3Rpb24KIC8vIGRlY2xhcmF0aW9uLgpAQCAtMjM0LDExICsyMDEs
OCBAQCBMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKIExvY2tlcihBZG9wdExvY2tUYWcs
IExvY2smKSAtPiBMb2NrZXI8TG9jaz47CiAKIHVzaW5nIExvY2tIb2xkZXIgPSBMb2NrZXI8TG9j
az47Ci11c2luZyBVbmNoZWNrZWRMb2NrSG9sZGVyID0gTG9ja2VyPFVuY2hlY2tlZExvY2s+Owog
CiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotdXNpbmcgV1RGOjpVbmNoZWNrZWRMb2NrOwogdXNpbmcg
V1RGOjpMb2NrOwogdXNpbmcgV1RGOjpMb2NrSG9sZGVyOwotdXNpbmcgV1RGOjpVbmNoZWNrZWRM
b2NrSG9sZGVyOwo=
</data>
<flag name="commit-queue"
          id="451515"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>