<?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>235730</bug_id>
          
          <creation_ts>2022-01-27 13:27:16 -0800</creation_ts>
          <short_desc>Begin using coroutines in testing code</short_desc>
          <delta_ts>2022-05-19 10:40:28 -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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>darin</cc>
    
    <cc>hi</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1834677</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-27 13:27:16 -0800</bug_when>
    <thetext>Begin using coroutines in testing code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834679</commentid>
    <comment_count>1</comment_count>
      <attachid>450171</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-27 13:29:09 -0800</bug_when>
    <thetext>Created attachment 450171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835437</commentid>
    <comment_count>2</comment_count>
      <attachid>450171</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-30 23:14:03 -0800</bug_when>
    <thetext>Comment on attachment 450171
Patch

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

&gt; Tools/TestWebKitAPI/cocoa/HTTPServer.h:65
&gt; +    enum class UseCoroutines : bool { Yes };
&gt; +    HTTPServer(UseCoroutines, Function&lt;CoroutineHandle(Connection)&gt;&amp;&amp;, Protocol = Protocol::Http);

I don’t think we need this UseCoroutines::Yes argument. The Function argument already takes CoroutineHandle, so this should be found by normal overloading.

&gt; Tools/TestWebKitAPI/cocoa/HTTPServer.mm:53
&gt; +        for (auto&amp; handle : coroutineHandles)
&gt; +            handle.destroy();

Maybe we should wrap the coroutine handle in a type of our own that does a destroy in the handle’s destructor. Then we would not need this. Like CoroutineHandle could do this.

&gt; Tools/TestWebKitAPI/cocoa/HTTPServer.mm:452
&gt; +    return Awaitable(*this);

This return statement slices the Awaitable, copying out only the suspend_never base class part of the object. I don’t think that’s what you wanted to do here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836870</commentid>
    <comment_count>3</comment_count>
      <attachid>450171</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-03 04:38:43 -0800</bug_when>
    <thetext>Comment on attachment 450171
Patch

review- because of the slice problem; not sure how the test works!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837082</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-03 13:28:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/88452783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870124</commentid>
    <comment_count>5</comment_count>
      <attachid>450171</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-18 13:15:22 -0700</bug_when>
    <thetext>Comment on attachment 450171
Patch

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

&gt;&gt; Tools/TestWebKitAPI/cocoa/HTTPServer.h:65
&gt;&gt; +    HTTPServer(UseCoroutines, Function&lt;CoroutineHandle(Connection)&gt;&amp;&amp;, Protocol = Protocol::Http);
&gt; 
&gt; I don’t think we need this UseCoroutines::Yes argument. The Function argument already takes CoroutineHandle, so this should be found by normal overloading.

The Function returns a CoroutineHandle but takes the same parameter, a Connection.  We currently do need UseCoroutines because otherwise it thinks the constructor is ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870125</commentid>
    <comment_count>6</comment_count>
      <attachid>459553</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-18 13:17:43 -0700</bug_when>
    <thetext>Created attachment 459553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870130</commentid>
    <comment_count>7</comment_count>
      <attachid>459554</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-05-18 13:31:00 -0700</bug_when>
    <thetext>Created attachment 459554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870450</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-19 10:40:26 -0700</bug_when>
    <thetext>Committed r294492 (250751@main): &lt;https://commits.webkit.org/250751@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459554.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450171</attachid>
            <date>2022-01-27 13:29:09 -0800</date>
            <delta_ts>2022-05-18 13:17:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235730-20220127132908.patch</filename>
            <type>text/plain</type>
            <size>8211</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Njc0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzI5MDFjMDA1NjlkMWUyNTZhNDgzZWZkOGU1NzIxY2Mw
M2Y1ZDNiZi4uMjhhNjkxNWM5OWRkYTJjNjQ2ODc5NjBmODY1NGJiNDMwMmM3NmJkYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDIyLTAxLTI3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQmVnaW4gdXNpbmcgY29yb3V0aW5lcyBpbiB0ZXN0aW5nIGNvZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTczMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvX2F3YWl0IGlz
IG5pY2VyIHRoYW4gbmVzdGVkIGxhbWJkYXMuCisgICAgICAgIFRoaXMgYmVnaW5zIFdlYktpdCdz
IHVzZSBvZiBDKysgY29yb3V0aW5lcyBpbiBhIHNtYWxsLCBpbmNvbXBsZXRlLCBhbmQgbG93LXJp
c2sgd2F5IGJ5IHVzaW5nIGl0IHdpdGggdGVzdCBjb2RlLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW06Cisg
ICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIu
aDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvcm91dGluZUhhbmRsZTo6cHJvbWlzZV90eXBl
OjpnZXRfcmV0dXJuX29iamVjdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb3JvdXRpbmVI
YW5kbGU6OnByb21pc2VfdHlwZTo6aW5pdGlhbF9zdXNwZW5kKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OkNvcm91dGluZUhhbmRsZTo6cHJvbWlzZV90eXBlOjp1bmhhbmRsZWRfZXhjZXB0aW9u
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvcm91dGluZUhhbmRsZTo6cHJvbWlzZV90eXBl
OjpyZXR1cm5fdm9pZCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVy
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6UmVxdWVzdERhdGE6On5S
ZXF1ZXN0RGF0YSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpIVFRQU2Vy
dmVyKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Om1fbGlzdGVuZXIpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6bV9wcm90b2NvbCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb25uZWN0
aW9uOjphd2FpdGFibGVSZWNlaXZlSFRUUFJlcXVlc3QgY29uc3QpOgorCiAyMDIyLTAxLTI3ICBL
aW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdl
YkdMIGNvbmZvcm1hbmNlIHRlc3Qgc3VpdGUgdG8gMjAyMi0wMS0xMgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFT
Y3JpcHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0V2YWx1YXRlSmF2YVNjcmlwdC5tbQppbmRleCAyMjA5MjUxZDc5MWZkZDQ1YzA5NDJkNGI3YmY2
ODIzMDAwNGM0Zjg0Li5kN2QwNDVmOWZkOThiMWEzZGU5ZjI5OWMzMDZjMzRhMjZiM2ZlYTViIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmll
d0V2YWx1YXRlSmF2YVNjcmlwdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQpAQCAtMzM2LDE0ICszMzYs
MTMgQEAgVEVTVChXZWJLaXQsIEV2YWx1YXRlSmF2YVNjcmlwdEluQXR0YWNobWVudHMpCiAgICAg
Ly8gRXZhbHVhdGluZyBKYXZhU2NyaXB0IGluIHN1Y2ggYSBkb2N1bWVudCBzaG91bGQgZmFpbCBh
bmQgcmVzdWx0IGluIGFuIGVycm9yLgogCiAgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEk7Ci0gICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10oQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7Ci0g
ICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikg
ewotICAgICAgICAgICAgY29uc3RleHByIGF1dG8gcmVzcG9uc2UgPSAiSFRUUC8xLjEgMjAwIE9L
XHJcbiIKLSAgICAgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDEyXHJcbiIKLSAgICAgICAg
ICAgICAgICAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9ZnJvbUhl
YWRlci50eHQ7XHJcblxyXG4iCi0gICAgICAgICAgICAgICAgIkhlbGxvIHdvcmxkISI7Ci0gICAg
ICAgICAgICBjb25uZWN0aW9uLnNlbmQocmVzcG9uc2UpOwotICAgICAgICB9KTsKKyAgICBIVFRQ
U2VydmVyIHNlcnZlcihIVFRQU2VydmVyOjpVc2VDb3JvdXRpbmVzOjpZZXMsIFtdKENvbm5lY3Rp
b24gY29ubmVjdGlvbikgLT4gQ29yb3V0aW5lSGFuZGxlIHsKKyAgICAgICAgY29fYXdhaXQgY29u
bmVjdGlvbi5hd2FpdGFibGVSZWNlaXZlSFRUUFJlcXVlc3QoKTsKKyAgICAgICAgY29uc3RleHBy
IGF1dG8gcmVzcG9uc2UgPSAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAgICAgICAgICJDb250
ZW50LUxlbmd0aDogMTJcclxuIgorICAgICAgICAgICAgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0
dGFjaG1lbnQ7IGZpbGVuYW1lPWZyb21IZWFkZXIudHh0O1xyXG5cclxuIgorICAgICAgICAgICAg
IkhlbGxvIHdvcmxkISI7CisgICAgICAgIGNvbm5lY3Rpb24uc2VuZChyZXNwb25zZSk7CiAgICAg
fSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbVGVzdFdLV2ViVmlldyBuZXddKTsKICAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
Imh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5oCmluZGV4IDc1ZDI4MmVhOWU0MGQyMTE1YWYxOTQ4YWQzZjhl
YjhmYzYzN2NjZDQuLmU4MTE5ZTEzOWJlNDkxNTY5NjcxYjNmMWY2ZWZiYzQxZDIyMzAwZDAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2ltcG9ydCA8TmV0d29yay9OZXR3b3JrLmg+CisjaW1wb3J0IDxleHBl
cmltZW50YWwvY29yb3V0aW5lPgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KQEAgLTM3LDgg
KzM4LDIwIEBAIE9CSkNfQ0xBU1MgTlNVUkxSZXF1ZXN0OwogbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewogCiBjbGFzcyBDb25uZWN0aW9uOworc3RydWN0IENvcm91dGluZUhhbmRsZTsKIHN0cnVj
dCBIVFRQUmVzcG9uc2U7CiAKK3N0cnVjdCBDb3JvdXRpbmVIYW5kbGUgeworICAgIHN0cnVjdCBw
cm9taXNlX3R5cGUgeworICAgICAgICBDb3JvdXRpbmVIYW5kbGUgZ2V0X3JldHVybl9vYmplY3Qo
KSB7IHJldHVybiB7IHN0ZDo6ZXhwZXJpbWVudGFsOjpjb3JvdXRpbmVfaGFuZGxlPHByb21pc2Vf
dHlwZT46OmZyb21fcHJvbWlzZSgqdGhpcykgfTsgfQorICAgICAgICBzdGQ6OmV4cGVyaW1lbnRh
bDo6c3VzcGVuZF9uZXZlciBpbml0aWFsX3N1c3BlbmQoKSB7IHJldHVybiB7IH07IH0KKyAgICAg
ICAgc3RkOjpleHBlcmltZW50YWw6OnN1c3BlbmRfbmV2ZXIgZmluYWxfc3VzcGVuZCgpIG5vZXhj
ZXB0IHsgcmV0dXJuIHsgfTsgfQorICAgICAgICB2b2lkIHVuaGFuZGxlZF9leGNlcHRpb24oKSB7
IH0KKyAgICAgICAgdm9pZCByZXR1cm5fdm9pZCgpIHsgfQorICAgIH07CisgICAgc3RkOjpleHBl
cmltZW50YWw6OmNvcm91dGluZV9oYW5kbGU8cHJvbWlzZV90eXBlPiBoYW5kbGU7Cit9OworCiBj
bGFzcyBIVFRQU2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
QEAgLTQ4LDYgKzYxLDggQEAgcHVibGljOgogCiAgICAgSFRUUFNlcnZlcihzdGQ6OmluaXRpYWxp
emVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4sIFByb3RvY29sID0gUHJv
dG9jb2w6Okh0dHAsIENlcnRpZmljYXRlVmVyaWZpZXImJiA9IG51bGxwdHIsIFJldGFpblB0cjxT
ZWNJZGVudGl0eVJlZj4mJiA9IG51bGxwdHIsIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IHBvcnQg
PSB7IH0pOwogICAgIEhUVFBTZXJ2ZXIoRnVuY3Rpb248dm9pZChDb25uZWN0aW9uKT4mJiwgUHJv
dG9jb2wgPSBQcm90b2NvbDo6SHR0cCk7CisgICAgZW51bSBjbGFzcyBVc2VDb3JvdXRpbmVzIDog
Ym9vbCB7IFllcyB9OworICAgIEhUVFBTZXJ2ZXIoVXNlQ29yb3V0aW5lcywgRnVuY3Rpb248Q29y
b3V0aW5lSGFuZGxlKENvbm5lY3Rpb24pPiYmLCBQcm90b2NvbCA9IFByb3RvY29sOjpIdHRwKTsK
ICAgICB+SFRUUFNlcnZlcigpOwogICAgIHVpbnQxNl90IHBvcnQoKSBjb25zdDsKICAgICBOU1VS
TFJlcXVlc3QgKnJlcXVlc3QoY29uc3QgU3RyaW5nJiBwYXRoID0gIi8iX3N0cikgY29uc3Q7CkBA
IC04MSw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmQoUmV0YWluUHRyPGRpc3BhdGNo
X2RhdGFfdD4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gbnVsbHB0cikgY29uc3Q7
CiAgICAgdm9pZCByZWNlaXZlQnl0ZXMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8dWlu
dDhfdD4mJik+JiYsIHNpemVfdCBtaW5pbXVtU2l6ZSA9IDEpIGNvbnN0OwogICAgIHZvaWQgcmVj
ZWl2ZUhUVFBSZXF1ZXN0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPGNoYXI+JiYpPiYm
LCBWZWN0b3I8Y2hhcj4mJiBidWZmZXIgPSB7IH0pIGNvbnN0OworICAgIHN0ZDo6ZXhwZXJpbWVu
dGFsOjpzdXNwZW5kX25ldmVyIGF3YWl0YWJsZVJlY2VpdmVIVFRQUmVxdWVzdCgpIGNvbnN0Owog
ICAgIHZvaWQgd2ViU29ja2V0SGFuZHNoYWtlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9
IHsgfSk7CiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKICAgICB2b2lkIGNhbmNlbCgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDg4ZDg2YmYxZDBjMTlmMGNjZjMw
NWZkMDg1ZGFhNGQ3ODczNGQ0OTAuLjFiNjczZmFhZDcxNDIxNGZmMjRlMTFkMThmNjEzOGMzMDg3
MjM1ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2LDEw
ICs0NiwxNyBAQCBzdHJ1Y3QgSFRUUFNlcnZlcjo6UmVxdWVzdERhdGEgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8UmVxdWVzdERhdGEsIFdURjo6RAogICAgICAgICAgICAgbWFwLmFkZChw
YWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7CiAgICAgICAgIHJldHVybiBtYXA7CiAgICAgfShyZXNw
b25zZXMpKSB7IH0KLSAgICAKKworICAgIH5SZXF1ZXN0RGF0YSgpCisgICAgeworICAgICAgICBm
b3IgKGF1dG8mIGhhbmRsZSA6IGNvcm91dGluZUhhbmRsZXMpCisgICAgICAgICAgICBoYW5kbGUu
ZGVzdHJveSgpOworICAgIH0KKwogICAgIHNpemVfdCByZXF1ZXN0Q291bnQgeyAwIH07CiAgICAg
SGFzaE1hcDxTdHJpbmcsIEhUVFBSZXNwb25zZT4gcmVxdWVzdE1hcDsKICAgICBWZWN0b3I8Q29u
bmVjdGlvbj4gY29ubmVjdGlvbnM7CisgICAgVmVjdG9yPHN0ZDo6ZXhwZXJpbWVudGFsOjpjb3Jv
dXRpbmVfaGFuZGxlPD4+IGNvcm91dGluZUhhbmRsZXM7CiB9OwogCiBzdGF0aWMgUmV0YWluUHRy
PG53X3Byb3RvY29sX2RlZmluaXRpb25fdD4gcHJveHlEZWZpbml0aW9uKEhUVFBTZXJ2ZXI6OlBy
b3RvY29sIHByb3RvY29sKQpAQCAtMjE0LDYgKzIyMSwyMSBAQCBIVFRQU2VydmVyOjpIVFRQU2Vy
dmVyKEZ1bmN0aW9uPHZvaWQoQ29ubmVjdGlvbik+JiYgY29ubmVjdGlvbkhhbmRsZXIsIFByb3Rv
Y29sCiAgICAgc3RhcnRMaXN0ZW5pbmcobV9saXN0ZW5lci5nZXQoKSk7CiB9CiAKK0hUVFBTZXJ2
ZXI6OkhUVFBTZXJ2ZXIoVXNlQ29yb3V0aW5lcywgV1RGOjpGdW5jdGlvbjxDb3JvdXRpbmVIYW5k
bGUoQ29ubmVjdGlvbik+JiYgY29ubmVjdGlvbkhhbmRsZXIsIFByb3RvY29sIHByb3RvY29sKQor
ICAgIDogbV9yZXF1ZXN0RGF0YShhZG9wdFJlZigqbmV3IFJlcXVlc3REYXRhKHsgfSkpKQorICAg
ICwgbV9saXN0ZW5lcihhZG9wdE5TKG53X2xpc3RlbmVyX2NyZWF0ZShsaXN0ZW5lclBhcmFtZXRl
cnMocHJvdG9jb2wsIG51bGxwdHIsIG51bGxwdHIsIHsgfSkuZ2V0KCkpKSkKKyAgICAsIG1fcHJv
dG9jb2wocHJvdG9jb2wpCit7CisgICAgbndfbGlzdGVuZXJfc2V0X3F1ZXVlKG1fbGlzdGVuZXIu
Z2V0KCksIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOworICAgIG53X2xpc3RlbmVyX3NldF9u
ZXdfY29ubmVjdGlvbl9oYW5kbGVyKG1fbGlzdGVuZXIuZ2V0KCksIG1ha2VCbG9ja1B0cihbcmVx
dWVzdERhdGEgPSBtX3JlcXVlc3REYXRhLCBjb25uZWN0aW9uSGFuZGxlciA9IFdURk1vdmUoY29u
bmVjdGlvbkhhbmRsZXIpXSAobndfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24pIHsKKyAgICAgICAg
cmVxdWVzdERhdGEtPmNvbm5lY3Rpb25zLmFwcGVuZChDb25uZWN0aW9uKGNvbm5lY3Rpb24pKTsK
KyAgICAgICAgbndfY29ubmVjdGlvbl9zZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSk7CisgICAgICAgIG53X2Nvbm5lY3Rpb25fc3RhcnQoY29ubmVjdGlvbik7
CisgICAgICAgIHJlcXVlc3REYXRhLT5jb3JvdXRpbmVIYW5kbGVzLmFwcGVuZChjb25uZWN0aW9u
SGFuZGxlcihDb25uZWN0aW9uKGNvbm5lY3Rpb24pKS5oYW5kbGUpOworICAgIH0pLmdldCgpKTsK
KyAgICBzdGFydExpc3RlbmluZyhtX2xpc3RlbmVyLmdldCgpKTsKK30KKwogSFRUUFNlcnZlcjo6
fkhUVFBTZXJ2ZXIoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgSFRUUFNlcnZlcjo6YWRkUmVzcG9uc2Uo
U3RyaW5nJiYgcGF0aCwgSFRUUFJlc3BvbnNlJiYgcmVzcG9uc2UpCkBAIC00MTIsNiArNDM0LDI0
IEBAIHZvaWQgQ29ubmVjdGlvbjo6cmVjZWl2ZUhUVFBSZXF1ZXN0KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPGNoYXI+JiYpPiYmIGNvCiAgICAgfSk7CiB9CiAKK3N0ZDo6ZXhwZXJpbWVu
dGFsOjpzdXNwZW5kX25ldmVyIENvbm5lY3Rpb246OmF3YWl0YWJsZVJlY2VpdmVIVFRQUmVxdWVz
dCgpIGNvbnN0Cit7CisgICAgc3RydWN0IEF3YWl0YWJsZSA6IHB1YmxpYyBzdGQ6OmV4cGVyaW1l
bnRhbDo6c3VzcGVuZF9uZXZlciB7CisgICAgICAgIEF3YWl0YWJsZShjb25zdCBDb25uZWN0aW9u
JiBjb25uZWN0aW9uKQorICAgICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikgeyB9
CisgICAgICAgIGJvb2wgYXdhaXRfcmVhZHkoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2
b2lkIGF3YWl0X3N1c3BlbmQoc3RkOjpleHBlcmltZW50YWw6OmNvcm91dGluZV9oYW5kbGU8PiBo
YW5kbGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJl
cXVlc3QoW2hhbmRsZV0oVmVjdG9yPGNoYXI+JiYpIG11dGFibGUgeworICAgICAgICAgICAgICAg
IGhhbmRsZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgQ29ubmVjdGlv
biBtX2Nvbm5lY3Rpb247CisgICAgfTsKKworICAgIHJldHVybiBBd2FpdGFibGUoKnRoaXMpOwor
fQorCiB2b2lkIENvbm5lY3Rpb246OnNlbmQoU3RyaW5nJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIHNlbmQoZGF0
YUZyb21TdHJpbmcoV1RGTW92ZShtZXNzYWdlKSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459553</attachid>
            <date>2022-05-18 13:17:43 -0700</date>
            <delta_ts>2022-05-18 13:30:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235730-20220518131742.patch</filename>
            <type>text/plain</type>
            <size>8946</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">RnJvbSBkZmY0OGQ1OWRiODJmYTA4ZDRkZWRkNjkyNGFlNDUxYzFkOTYwZTk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IENocmlzdGVuc2VuIDxhY2hyaXN0ZW5zZW5AYXBwbGUu
Y29tPgpEYXRlOiBXZWQsIDE4IE1heSAyMDIyIDEzOjE1OjQwIC0wNzAwClN1YmplY3Q6IFtQQVRD
SF0gQmVnaW4gdXNpbmcgY29yb3V0aW5lcyBpbiB0ZXN0aW5nIGNvZGUKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU3MzAKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKY29fYXdhaXQgaXMgbmljZXIgdGhhbiBuZXN0ZWQgbGFtYmRhcy4KVGhpcyBiZWdpbnMg
V2ViS2l0J3MgdXNlIG9mIEMrKyBjb3JvdXRpbmVzIGluIGEgc21hbGwsIGluY29tcGxldGUsIGFu
ZCBsb3ctcmlzayB3YXkgYnkgdXNpbmcgaXQgd2l0aCB0ZXN0IGNvZGUuCi0tLQogLi4uL1dLV2Vi
Vmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSAgICAgICAgICAgIHwgMTQgKysrLS0KIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oICAgICAgICB8IDU0ICsrKysrKysrKysrKysr
KysrKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSAgICAgICB8IDQy
ICsrKysrKysrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAxMSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCmluZGV4
IDY1YzEzMzI0ZDA3Mi4uMmFjM2E0ZWI3MjkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0V2YWx1YXRl
SmF2YVNjcmlwdC5tbQpAQCAtMzM2LDE0ICszMzYsMTIgQEAgVEVTVChXZWJLaXQsIEV2YWx1YXRl
SmF2YVNjcmlwdEluQXR0YWNobWVudHMpCiAgICAgLy8gRXZhbHVhdGluZyBKYXZhU2NyaXB0IGlu
IHN1Y2ggYSBkb2N1bWVudCBzaG91bGQgZmFpbCBhbmQgcmVzdWx0IGluIGFuIGVycm9yLgogCiAg
ICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7Ci0gICAgSFRUUFNlcnZlciBzZXJ2ZXIo
W10oQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7Ci0gICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhU
VFBSZXF1ZXN0KFs9XShWZWN0b3I8Y2hhcj4mJikgewotICAgICAgICAgICAgY29uc3RleHByIGF1
dG8gcmVzcG9uc2UgPSAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKLSAgICAgICAgICAgICAgICAiQ29u
dGVudC1MZW5ndGg6IDEyXHJcbiIKLSAgICAgICAgICAgICAgICAiQ29udGVudC1EaXNwb3NpdGlv
bjogYXR0YWNobWVudDsgZmlsZW5hbWU9ZnJvbUhlYWRlci50eHQ7XHJcblxyXG4iCi0gICAgICAg
ICAgICAgICAgIkhlbGxvIHdvcmxkISJfczsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChy
ZXNwb25zZSk7Ci0gICAgICAgIH0pOworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKEhUVFBTZXJ2ZXI6
OlVzZUNvcm91dGluZXM6OlllcywgW10oQ29ubmVjdGlvbiBjb25uZWN0aW9uKSAtPiBUYXNrIHsK
KyAgICAgICAgY29fYXdhaXQgY29ubmVjdGlvbi5hd2FpdGFibGVSZWNlaXZlSFRUUFJlcXVlc3Qo
KTsKKyAgICAgICAgY29fYXdhaXQgY29ubmVjdGlvbi5hd2FpdGFibGVTZW5kKCJIVFRQLzEuMSAy
MDAgT0tcclxuIgorICAgICAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAxMlxyXG4iCisgICAgICAg
ICAgICAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9ZnJvbUhlYWRl
ci50eHQ7XHJcblxyXG4iCisgICAgICAgICAgICAiSGVsbG8gd29ybGQhIl9zKTsKICAgICB9KTsK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtUZXN0V0tXZWJWaWV3IG5ld10pOwogICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0
cDovLzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIucG9ydCgpXV1dXTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9IVFRQU2VydmVyLmgKaW5kZXggOWY5ZDI3MjU4YzJlLi45MmE4MTc3NzA5MTUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2ltcG9ydCA8TmV0d29yay9OZXR3b3JrLmg+CisjaW1wb3J0IDxleHBlcmlt
ZW50YWwvY29yb3V0aW5lPgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW1w
b3J0IDx3dGYvRm9yd2FyZC5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KQEAgLTM5LDYgKzQw
LDI5IEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIGNsYXNzIENvbm5lY3Rpb247CiBzdHJ1
Y3QgSFRUUFJlc3BvbnNlOwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9taXNlVHlwZT4KK3N0cnVj
dCBDb3JvdXRpbmVIYW5kbGUgeworICAgIENvcm91dGluZUhhbmRsZShzdGQ6OmV4cGVyaW1lbnRh
bDo6Y29yb3V0aW5lX2hhbmRsZTxQcm9taXNlVHlwZT4mJiBoYW5kbGUpIDogaGFuZGxlKFdURk1v
dmUoaGFuZGxlKSkgeyB9CisgICAgQ29yb3V0aW5lSGFuZGxlKGNvbnN0IENvcm91dGluZUhhbmRs
ZSYpID0gZGVsZXRlOworICAgIENvcm91dGluZUhhbmRsZShDb3JvdXRpbmVIYW5kbGUmJiBvdGhl
cikgOiBoYW5kbGUoc3RkOjpleGNoYW5nZShvdGhlci5oYW5kbGUsIG51bGxwdHIpKSB7IH0KKyAg
ICB+Q29yb3V0aW5lSGFuZGxlKCkgeyBpZiAoaGFuZGxlKSBoYW5kbGUuZGVzdHJveSgpOyB9Cisg
ICAgc3RkOjpleHBlcmltZW50YWw6OmNvcm91dGluZV9oYW5kbGU8UHJvbWlzZVR5cGU+IGhhbmRs
ZTsKK307CisKK3N0cnVjdCBUYXNrIHsKKyAgICBzdHJ1Y3QgcHJvbWlzZV90eXBlIHsKKyAgICAg
ICAgVGFzayBnZXRfcmV0dXJuX29iamVjdCgpIHsgcmV0dXJuIHsgc3RkOjpleHBlcmltZW50YWw6
OmNvcm91dGluZV9oYW5kbGU8cHJvbWlzZV90eXBlPjo6ZnJvbV9wcm9taXNlKCp0aGlzKSB9OyB9
CisgICAgICAgIHN0ZDo6ZXhwZXJpbWVudGFsOjpzdXNwZW5kX25ldmVyIGluaXRpYWxfc3VzcGVu
ZCgpIHsgcmV0dXJuIHsgfTsgfQorICAgICAgICBzdGQ6OmV4cGVyaW1lbnRhbDo6c3VzcGVuZF9u
ZXZlciBmaW5hbF9zdXNwZW5kKCkgbm9leGNlcHQgeyByZXR1cm4geyB9OyB9CisgICAgICAgIHZv
aWQgdW5oYW5kbGVkX2V4Y2VwdGlvbigpIHsgfQorICAgICAgICB2b2lkIHJldHVybl92b2lkKCkg
eyB9CisgICAgfTsKKyAgICBDb3JvdXRpbmVIYW5kbGU8cHJvbWlzZV90eXBlPiBoYW5kbGU7Cit9
OworCitjbGFzcyBSZWNlaXZlT3BlcmF0aW9uOworY2xhc3MgU2VuZE9wZXJhdGlvbjsKKwogY2xh
c3MgSFRUUFNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBA
IC00OCw2ICs3Miw4IEBAIHB1YmxpYzoKIAogICAgIEhUVFBTZXJ2ZXIoc3RkOjppbml0aWFsaXpl
cl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+LCBQcm90b2NvbCA9IFByb3Rv
Y29sOjpIdHRwLCBDZXJ0aWZpY2F0ZVZlcmlmaWVyJiYgPSBudWxscHRyLCBSZXRhaW5QdHI8U2Vj
SWRlbnRpdHlSZWY+JiYgPSBudWxscHRyLCBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiBwb3J0ID0g
eyB9KTsKICAgICBIVFRQU2VydmVyKEZ1bmN0aW9uPHZvaWQoQ29ubmVjdGlvbik+JiYsIFByb3Rv
Y29sID0gUHJvdG9jb2w6Okh0dHApOworICAgIGVudW0gY2xhc3MgVXNlQ29yb3V0aW5lcyA6IGJv
b2wgeyBZZXMgfTsKKyAgICBIVFRQU2VydmVyKFVzZUNvcm91dGluZXMsIEZ1bmN0aW9uPFRhc2so
Q29ubmVjdGlvbik+JiYsIFByb3RvY29sID0gUHJvdG9jb2w6Okh0dHApOwogICAgIH5IVFRQU2Vy
dmVyKCk7CiAgICAgdWludDE2X3QgcG9ydCgpIGNvbnN0OwogICAgIFN0cmluZyBvcmlnaW4oKSBj
b25zdDsKQEAgLTgwLDkgKzEwNiwxMyBAQCBjbGFzcyBDb25uZWN0aW9uIHsKIHB1YmxpYzoKICAg
ICB2b2lkIHNlbmQoU3RyaW5nJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IG51bGxw
dHIpIGNvbnN0OwogICAgIHZvaWQgc2VuZChWZWN0b3I8dWludDhfdD4mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmID0gbnVsbHB0cikgY29uc3Q7CisgICAgdm9pZCBzZW5kKFJldGFpblB0
cjxkaXNwYXRjaF9kYXRhX3Q+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgPSBu
dWxscHRyKSBjb25zdDsKKyAgICBTZW5kT3BlcmF0aW9uIGF3YWl0YWJsZVNlbmQoU3RyaW5nJiYp
OwogICAgIHZvaWQgc2VuZEFuZFJlcG9ydEVycm9yKFZlY3Rvcjx1aW50OF90PiYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKICAgICB2b2lkIHJlY2VpdmVCeXRlcyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rvcjx1aW50OF90PiYmKT4mJiwgc2l6ZV90IG1pbmlt
dW1TaXplID0gMSkgY29uc3Q7CiAgICAgdm9pZCByZWNlaXZlSFRUUFJlcXVlc3QoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8Y2hhcj4mJik+JiYsIFZlY3RvcjxjaGFyPiYmIGJ1ZmZlciA9
IHsgfSkgY29uc3Q7CisgICAgUmVjZWl2ZU9wZXJhdGlvbiBhd2FpdGFibGVSZWNlaXZlSFRUUFJl
cXVlc3QoKSBjb25zdDsKKyAgICBTZW5kT3BlcmF0aW9uIGF3YWl0YWJsZVNlbmQoKSBjb25zdDsK
ICAgICB2b2lkIHdlYlNvY2tldEhhbmRzaGFrZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
PSB7IH0pOwogICAgIHZvaWQgdGVybWluYXRlKCk7CiAgICAgdm9pZCBjYW5jZWwoKTsKQEAgLTky
LDExICsxMjIsMzEgQEAgcHJpdmF0ZToKICAgICBDb25uZWN0aW9uKG53X2Nvbm5lY3Rpb25fdCBj
b25uZWN0aW9uKQogICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKSB7IH0KIAotICAg
IHZvaWQgc2VuZChSZXRhaW5QdHI8ZGlzcGF0Y2hfZGF0YV90PiYmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKLQogICAgIFJldGFpblB0cjxud19jb25uZWN0aW9uX3Q+
IG1fY29ubmVjdGlvbjsKIH07CiAKK2NsYXNzIFJlY2VpdmVPcGVyYXRpb24gOiBwdWJsaWMgc3Rk
OjpleHBlcmltZW50YWw6OnN1c3BlbmRfbmV2ZXIgeworcHVibGljOgorICAgIFJlY2VpdmVPcGVy
YXRpb24oY29uc3QgQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2Nvbm5lY3Rp
b24oY29ubmVjdGlvbikgeyB9CisgICAgYm9vbCBhd2FpdF9yZWFkeSgpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdm9pZCBhd2FpdF9zdXNwZW5kKHN0ZDo6ZXhwZXJpbWVudGFsOjpjb3JvdXRpbmVf
aGFuZGxlPD4pOworcHJpdmF0ZToKKyAgICBDb25uZWN0aW9uIG1fY29ubmVjdGlvbjsKK307CisK
K2NsYXNzIFNlbmRPcGVyYXRpb24gOiBwdWJsaWMgc3RkOjpleHBlcmltZW50YWw6OnN1c3BlbmRf
bmV2ZXIgeworcHVibGljOgorICAgIFNlbmRPcGVyYXRpb24oUmV0YWluUHRyPGRpc3BhdGNoX2Rh
dGFfdD4mJiBkYXRhLCBjb25zdCBDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorICAgICAgICA6IG1f
ZGF0YShXVEZNb3ZlKGRhdGEpKQorICAgICAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKSB7
IH0KKyAgICBib29sIGF3YWl0X3JlYWR5KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGF3
YWl0X3N1c3BlbmQoc3RkOjpleHBlcmltZW50YWw6OmNvcm91dGluZV9oYW5kbGU8Pik7Citwcml2
YXRlOgorICAgIFJldGFpblB0cjxkaXNwYXRjaF9kYXRhX3Q+IG1fZGF0YTsKKyAgICBDb25uZWN0
aW9uIG1fY29ubmVjdGlvbjsKK307CisKIHN0cnVjdCBIVFRQUmVzcG9uc2UgewogICAgIGVudW0g
Y2xhc3MgVGVybWluYXRlQ29ubmVjdGlvbiB7IE5vLCBZZXMgfTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDc3YzBmNzM2OWFhNC4uNWEzMGJhMzY0MzRjIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCkBAIC00NiwxMCArNDYsMTEg
QEAgc3RydWN0IEhUVFBTZXJ2ZXI6OlJlcXVlc3REYXRhIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFJlcXVlc3REYXRhLCBXVEY6OkQKICAgICAgICAgICAgIG1hcC5hZGQocGFpci5maXJz
dCwgcGFpci5zZWNvbmQpOwogICAgICAgICByZXR1cm4gbWFwOwogICAgIH0ocmVzcG9uc2VzKSkg
eyB9Ci0gICAgCisKICAgICBzaXplX3QgcmVxdWVzdENvdW50IHsgMCB9OwogICAgIEhhc2hNYXA8
U3RyaW5nLCBIVFRQUmVzcG9uc2U+IHJlcXVlc3RNYXA7CiAgICAgVmVjdG9yPENvbm5lY3Rpb24+
IGNvbm5lY3Rpb25zOworICAgIFZlY3RvcjxDb3JvdXRpbmVIYW5kbGU8VGFzazo6cHJvbWlzZV90
eXBlPj4gY29yb3V0aW5lSGFuZGxlczsKIH07CiAKIHN0YXRpYyBSZXRhaW5QdHI8bndfcHJvdG9j
b2xfZGVmaW5pdGlvbl90PiBwcm94eURlZmluaXRpb24oSFRUUFNlcnZlcjo6UHJvdG9jb2wgcHJv
dG9jb2wpCkBAIC0yMTQsNiArMjE1LDIxIEBAIEhUVFBTZXJ2ZXI6OkhUVFBTZXJ2ZXIoRnVuY3Rp
b248dm9pZChDb25uZWN0aW9uKT4mJiBjb25uZWN0aW9uSGFuZGxlciwgUHJvdG9jb2wKICAgICBz
dGFydExpc3RlbmluZyhtX2xpc3RlbmVyLmdldCgpKTsKIH0KIAorSFRUUFNlcnZlcjo6SFRUUFNl
cnZlcihVc2VDb3JvdXRpbmVzLCBXVEY6OkZ1bmN0aW9uPFRhc2soQ29ubmVjdGlvbik+JiYgY29u
bmVjdGlvbkhhbmRsZXIsIFByb3RvY29sIHByb3RvY29sKQorICAgIDogbV9yZXF1ZXN0RGF0YShh
ZG9wdFJlZigqbmV3IFJlcXVlc3REYXRhKHsgfSkpKQorICAgICwgbV9saXN0ZW5lcihhZG9wdE5T
KG53X2xpc3RlbmVyX2NyZWF0ZShsaXN0ZW5lclBhcmFtZXRlcnMocHJvdG9jb2wsIG51bGxwdHIs
IG51bGxwdHIsIHsgfSkuZ2V0KCkpKSkKKyAgICAsIG1fcHJvdG9jb2wocHJvdG9jb2wpCit7Cisg
ICAgbndfbGlzdGVuZXJfc2V0X3F1ZXVlKG1fbGlzdGVuZXIuZ2V0KCksIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCkpOworICAgIG53X2xpc3RlbmVyX3NldF9uZXdfY29ubmVjdGlvbl9oYW5kbGVy
KG1fbGlzdGVuZXIuZ2V0KCksIG1ha2VCbG9ja1B0cihbcmVxdWVzdERhdGEgPSBtX3JlcXVlc3RE
YXRhLCBjb25uZWN0aW9uSGFuZGxlciA9IFdURk1vdmUoY29ubmVjdGlvbkhhbmRsZXIpXSAobndf
Y29ubmVjdGlvbl90IGNvbm5lY3Rpb24pIHsKKyAgICAgICAgcmVxdWVzdERhdGEtPmNvbm5lY3Rp
b25zLmFwcGVuZChDb25uZWN0aW9uKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgbndfY29ubmVjdGlv
bl9zZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAg
ICAgIG53X2Nvbm5lY3Rpb25fc3RhcnQoY29ubmVjdGlvbik7CisgICAgICAgIHJlcXVlc3REYXRh
LT5jb3JvdXRpbmVIYW5kbGVzLmFwcGVuZChjb25uZWN0aW9uSGFuZGxlcihDb25uZWN0aW9uKGNv
bm5lY3Rpb24pKS5oYW5kbGUpOworICAgIH0pLmdldCgpKTsKKyAgICBzdGFydExpc3RlbmluZyht
X2xpc3RlbmVyLmdldCgpKTsKK30KKwogSFRUUFNlcnZlcjo6fkhUVFBTZXJ2ZXIoKSA9IGRlZmF1
bHQ7CiAKIHZvaWQgSFRUUFNlcnZlcjo6YWRkUmVzcG9uc2UoU3RyaW5nJiYgcGF0aCwgSFRUUFJl
c3BvbnNlJiYgcmVzcG9uc2UpCkBAIC00MjMsNiArNDM5LDMwIEBAIHZvaWQgQ29ubmVjdGlvbjo6
cmVjZWl2ZUhUVFBSZXF1ZXN0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPGNoYXI+JiYp
PiYmIGNvCiAgICAgfSk7CiB9CiAKK1JlY2VpdmVPcGVyYXRpb24gQ29ubmVjdGlvbjo6YXdhaXRh
YmxlUmVjZWl2ZUhUVFBSZXF1ZXN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4geyAqdGhpcyB9Owor
fQorCit2b2lkIFJlY2VpdmVPcGVyYXRpb246OmF3YWl0X3N1c3BlbmQoc3RkOjpleHBlcmltZW50
YWw6OmNvcm91dGluZV9oYW5kbGU8PiBoYW5kbGUpCit7CisgICAgbV9jb25uZWN0aW9uLnJlY2Vp
dmVIVFRQUmVxdWVzdChbaGFuZGxlXShWZWN0b3I8Y2hhcj4mJikgbXV0YWJsZSB7CisgICAgICAg
IGhhbmRsZSgpOworICAgIH0pOworfQorCit2b2lkIFNlbmRPcGVyYXRpb246OmF3YWl0X3N1c3Bl
bmQoc3RkOjpleHBlcmltZW50YWw6OmNvcm91dGluZV9oYW5kbGU8PiBoYW5kbGUpCit7CisgICAg
bV9jb25uZWN0aW9uLnNlbmQoV1RGTW92ZShtX2RhdGEpLCBbaGFuZGxlXSAoYm9vbCkgbXV0YWJs
ZSB7CisgICAgICAgIGhhbmRsZSgpOworICAgIH0pOworfQorCitTZW5kT3BlcmF0aW9uIENvbm5l
Y3Rpb246OmF3YWl0YWJsZVNlbmQoU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICByZXR1cm4geyBk
YXRhRnJvbVN0cmluZyhXVEZNb3ZlKG1lc3NhZ2UpKSwgKnRoaXMgfTsKK30KKwogdm9pZCBDb25u
ZWN0aW9uOjpzZW5kKFN0cmluZyYmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKICAgICBzZW5kKGRhdGFGcm9tU3RyaW5nKFdU
Rk1vdmUobWVzc2FnZSkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKGJvb2wpIG11dGFibGUgewotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459554</attachid>
            <date>2022-05-18 13:31:00 -0700</date>
            <delta_ts>2022-05-19 10:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235730-20220518133059.patch</filename>
            <type>text/plain</type>
            <size>9094</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">RnJvbSBmZmJhZWIwOGRhZTgwY2Q0OTMyYWVjMGRmNTEzNWZlOTZjMzkxZTI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IENocmlzdGVuc2VuIDxhY2hyaXN0ZW5zZW5AYXBwbGUu
Y29tPgpEYXRlOiBXZWQsIDE4IE1heSAyMDIyIDEzOjE1OjQwIC0wNzAwClN1YmplY3Q6IFtQQVRD
SF0gQmVnaW4gdXNpbmcgY29yb3V0aW5lcyBpbiB0ZXN0aW5nIGNvZGUKIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU3MzAKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKY29fYXdhaXQgaXMgbmljZXIgdGhhbiBuZXN0ZWQgbGFtYmRhcy4KVGhpcyBiZWdpbnMg
V2ViS2l0J3MgdXNlIG9mIEMrKyBjb3JvdXRpbmVzIGluIGEgc21hbGwsIGluY29tcGxldGUsIGFu
ZCBsb3ctcmlzayB3YXkgYnkgdXNpbmcgaXQgd2l0aCB0ZXN0IGNvZGUuCi0tLQogLi4uL1dLV2Vi
Vmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSAgICAgICAgICAgIHwgMTQgKystLS0KIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5oICAgICAgICB8IDYxICsrKysrKysrKysrKysr
KysrKy0KIFRvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbSAgICAgICB8IDQz
ICsrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMoKyksIDExIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0KaW5kZXgg
NjVjMTMzMjRkMDcyLi4yYWMzYTRlYjcyOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RXZhbHVhdGVK
YXZhU2NyaXB0Lm1tCkBAIC0zMzYsMTQgKzMzNiwxMiBAQCBURVNUKFdlYktpdCwgRXZhbHVhdGVK
YXZhU2NyaXB0SW5BdHRhY2htZW50cykKICAgICAvLyBFdmFsdWF0aW5nIEphdmFTY3JpcHQgaW4g
c3VjaCBhIGRvY3VtZW50IHNob3VsZCBmYWlsIGFuZCByZXN1bHQgaW4gYW4gZXJyb3IuCiAKICAg
ICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKLSAgICBIVFRQU2VydmVyIHNlcnZlcihb
XShDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKLSAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRU
UFJlcXVlc3QoWz1dKFZlY3RvcjxjaGFyPiYmKSB7Ci0gICAgICAgICAgICBjb25zdGV4cHIgYXV0
byByZXNwb25zZSA9ICJIVFRQLzEuMSAyMDAgT0tcclxuIgotICAgICAgICAgICAgICAgICJDb250
ZW50LUxlbmd0aDogMTJcclxuIgotICAgICAgICAgICAgICAgICJDb250ZW50LURpc3Bvc2l0aW9u
OiBhdHRhY2htZW50OyBmaWxlbmFtZT1mcm9tSGVhZGVyLnR4dDtcclxuXHJcbiIKLSAgICAgICAg
ICAgICAgICAiSGVsbG8gd29ybGQhIl9zOwotICAgICAgICAgICAgY29ubmVjdGlvbi5zZW5kKHJl
c3BvbnNlKTsKLSAgICAgICAgfSk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoSFRUUFNlcnZlcjo6
VXNlQ29yb3V0aW5lczo6WWVzLCBbXShDb25uZWN0aW9uIGNvbm5lY3Rpb24pIC0+IFRhc2sgewor
ICAgICAgICBjb19hd2FpdCBjb25uZWN0aW9uLmF3YWl0YWJsZVJlY2VpdmVIVFRQUmVxdWVzdCgp
OworICAgICAgICBjb19hd2FpdCBjb25uZWN0aW9uLmF3YWl0YWJsZVNlbmQoIkhUVFAvMS4xIDIw
MCBPS1xyXG4iCisgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDEyXHJcbiIKKyAgICAgICAg
ICAgICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mcm9tSGVhZGVy
LnR4dDtcclxuXHJcbiIKKyAgICAgICAgICAgICJIZWxsbyB3b3JsZCEiX3MpOwogICAgIH0pOwog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1Rlc3RXS1dlYlZpZXcgbmV3XSk7CiAgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRw
Oi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL0hUVFBTZXJ2ZXIuaAppbmRleCA5ZjlkMjcyNThjMmUuLjk1ZDQ1YWM5YzU2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLmgKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW1wb3J0IDxOZXR3b3JrL05ldHdvcmsuaD4KKyNpbXBvcnQgPGV4cGVyaW1l
bnRhbC9jb3JvdXRpbmU+CiAjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbXBv
cnQgPHd0Zi9Gb3J3YXJkLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgpAQCAtMzksNiArNDAs
MzUgQEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogY2xhc3MgQ29ubmVjdGlvbjsKIHN0cnVj
dCBIVFRQUmVzcG9uc2U7CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFByb21pc2VUeXBlPgorc3RydWN0
IENvcm91dGluZUhhbmRsZSB7CisgICAgQ29yb3V0aW5lSGFuZGxlKHN0ZDo6ZXhwZXJpbWVudGFs
Ojpjb3JvdXRpbmVfaGFuZGxlPFByb21pc2VUeXBlPiYmIGhhbmRsZSkKKyAgICAgICAgOiBoYW5k
bGUoV1RGTW92ZShoYW5kbGUpKSB7IH0KKyAgICBDb3JvdXRpbmVIYW5kbGUoY29uc3QgQ29yb3V0
aW5lSGFuZGxlJikgPSBkZWxldGU7CisgICAgQ29yb3V0aW5lSGFuZGxlKENvcm91dGluZUhhbmRs
ZSYmIG90aGVyKQorICAgICAgICA6IGhhbmRsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLmhhbmRsZSwg
bnVsbHB0cikpIHsgfQorICAgIH5Db3JvdXRpbmVIYW5kbGUoKQorICAgIHsKKyAgICAgICAgaWYg
KGhhbmRsZSkKKyAgICAgICAgICAgIGhhbmRsZS5kZXN0cm95KCk7CisgICAgfQorICAgIHN0ZDo6
ZXhwZXJpbWVudGFsOjpjb3JvdXRpbmVfaGFuZGxlPFByb21pc2VUeXBlPiBoYW5kbGU7Cit9Owor
CitzdHJ1Y3QgVGFzayB7CisgICAgc3RydWN0IHByb21pc2VfdHlwZSB7CisgICAgICAgIFRhc2sg
Z2V0X3JldHVybl9vYmplY3QoKSB7IHJldHVybiB7IHN0ZDo6ZXhwZXJpbWVudGFsOjpjb3JvdXRp
bmVfaGFuZGxlPHByb21pc2VfdHlwZT46OmZyb21fcHJvbWlzZSgqdGhpcykgfTsgfQorICAgICAg
ICBzdGQ6OmV4cGVyaW1lbnRhbDo6c3VzcGVuZF9uZXZlciBpbml0aWFsX3N1c3BlbmQoKSB7IHJl
dHVybiB7IH07IH0KKyAgICAgICAgc3RkOjpleHBlcmltZW50YWw6OnN1c3BlbmRfbmV2ZXIgZmlu
YWxfc3VzcGVuZCgpIG5vZXhjZXB0IHsgcmV0dXJuIHsgfTsgfQorICAgICAgICB2b2lkIHVuaGFu
ZGxlZF9leGNlcHRpb24oKSB7IH0KKyAgICAgICAgdm9pZCByZXR1cm5fdm9pZCgpIHsgfQorICAg
IH07CisgICAgQ29yb3V0aW5lSGFuZGxlPHByb21pc2VfdHlwZT4gaGFuZGxlOworfTsKKworY2xh
c3MgUmVjZWl2ZU9wZXJhdGlvbjsKK2NsYXNzIFNlbmRPcGVyYXRpb247CisKIGNsYXNzIEhUVFBT
ZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDgsNiAr
NzgsOCBAQCBwdWJsaWM6CiAKICAgICBIVFRQU2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxz
dGQ6OnBhaXI8U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiwgUHJvdG9jb2wgPSBQcm90b2NvbDo6SHR0
cCwgQ2VydGlmaWNhdGVWZXJpZmllciYmID0gbnVsbHB0ciwgUmV0YWluUHRyPFNlY0lkZW50aXR5
UmVmPiYmID0gbnVsbHB0ciwgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gcG9ydCA9IHsgfSk7CiAg
ICAgSFRUUFNlcnZlcihGdW5jdGlvbjx2b2lkKENvbm5lY3Rpb24pPiYmLCBQcm90b2NvbCA9IFBy
b3RvY29sOjpIdHRwKTsKKyAgICBlbnVtIGNsYXNzIFVzZUNvcm91dGluZXMgOiBib29sIHsgWWVz
IH07CisgICAgSFRUUFNlcnZlcihVc2VDb3JvdXRpbmVzLCBGdW5jdGlvbjxUYXNrKENvbm5lY3Rp
b24pPiYmLCBQcm90b2NvbCA9IFByb3RvY29sOjpIdHRwKTsKICAgICB+SFRUUFNlcnZlcigpOwog
ICAgIHVpbnQxNl90IHBvcnQoKSBjb25zdDsKICAgICBTdHJpbmcgb3JpZ2luKCkgY29uc3Q7CkBA
IC04MCw5ICsxMTIsMTIgQEAgY2xhc3MgQ29ubmVjdGlvbiB7CiBwdWJsaWM6CiAgICAgdm9pZCBz
ZW5kKFN0cmluZyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBudWxscHRyKSBjb25z
dDsKICAgICB2b2lkIHNlbmQoVmVjdG9yPHVpbnQ4X3Q+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiA9IG51bGxwdHIpIGNvbnN0OworICAgIHZvaWQgc2VuZChSZXRhaW5QdHI8ZGlzcGF0
Y2hfZGF0YV90PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmID0gbnVsbHB0cikg
Y29uc3Q7CisgICAgU2VuZE9wZXJhdGlvbiBhd2FpdGFibGVTZW5kKFN0cmluZyYmKTsKICAgICB2
b2lkIHNlbmRBbmRSZXBvcnRFcnJvcihWZWN0b3I8dWludDhfdD4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgY29uc3Q7CiAgICAgdm9pZCByZWNlaXZlQnl0ZXMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8dWludDhfdD4mJik+JiYsIHNpemVfdCBtaW5pbXVtU2l6ZSA9
IDEpIGNvbnN0OwogICAgIHZvaWQgcmVjZWl2ZUhUVFBSZXF1ZXN0KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPGNoYXI+JiYpPiYmLCBWZWN0b3I8Y2hhcj4mJiBidWZmZXIgPSB7IH0pIGNv
bnN0OworICAgIFJlY2VpdmVPcGVyYXRpb24gYXdhaXRhYmxlUmVjZWl2ZUhUVFBSZXF1ZXN0KCkg
Y29uc3Q7CiAgICAgdm9pZCB3ZWJTb2NrZXRIYW5kc2hha2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmID0geyB9KTsKICAgICB2b2lkIHRlcm1pbmF0ZSgpOwogICAgIHZvaWQgY2FuY2VsKCk7
CkBAIC05MiwxMSArMTI3LDMzIEBAIHByaXZhdGU6CiAgICAgQ29ubmVjdGlvbihud19jb25uZWN0
aW9uX3QgY29ubmVjdGlvbikKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikgeyB9
CiAKLSAgICB2b2lkIHNlbmQoUmV0YWluUHRyPGRpc3BhdGNoX2RhdGFfdD4mJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7Ci0KICAgICBSZXRhaW5QdHI8bndfY29ubmVj
dGlvbl90PiBtX2Nvbm5lY3Rpb247CiB9OwogCitjbGFzcyBSZWNlaXZlT3BlcmF0aW9uIDogcHVi
bGljIHN0ZDo6ZXhwZXJpbWVudGFsOjpzdXNwZW5kX25ldmVyIHsKK3B1YmxpYzoKKyAgICBSZWNl
aXZlT3BlcmF0aW9uKGNvbnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9j
b25uZWN0aW9uKGNvbm5lY3Rpb24pIHsgfQorICAgIGJvb2wgYXdhaXRfcmVhZHkoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZvaWQgYXdhaXRfc3VzcGVuZChzdGQ6OmV4cGVyaW1lbnRhbDo6Y29y
b3V0aW5lX2hhbmRsZTw+KTsKKyAgICBWZWN0b3I8Y2hhcj4gYXdhaXRfcmVzdW1lKCkgeyByZXR1
cm4gV1RGTW92ZShtX3Jlc3VsdCk7IH0KK3ByaXZhdGU6CisgICAgQ29ubmVjdGlvbiBtX2Nvbm5l
Y3Rpb247CisgICAgVmVjdG9yPGNoYXI+IG1fcmVzdWx0OworfTsKKworY2xhc3MgU2VuZE9wZXJh
dGlvbiA6IHB1YmxpYyBzdGQ6OmV4cGVyaW1lbnRhbDo6c3VzcGVuZF9uZXZlciB7CitwdWJsaWM6
CisgICAgU2VuZE9wZXJhdGlvbihSZXRhaW5QdHI8ZGlzcGF0Y2hfZGF0YV90PiYmIGRhdGEsIGNv
bnN0IENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9kYXRhKFdURk1vdmUoZGF0
YSkpCisgICAgICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pIHsgfQorICAgIGJvb2wgYXdh
aXRfcmVhZHkoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgYXdhaXRfc3VzcGVuZChzdGQ6
OmV4cGVyaW1lbnRhbDo6Y29yb3V0aW5lX2hhbmRsZTw+KTsKK3ByaXZhdGU6CisgICAgUmV0YWlu
UHRyPGRpc3BhdGNoX2RhdGFfdD4gbV9kYXRhOworICAgIENvbm5lY3Rpb24gbV9jb25uZWN0aW9u
OworfTsKKwogc3RydWN0IEhUVFBSZXNwb25zZSB7CiAgICAgZW51bSBjbGFzcyBUZXJtaW5hdGVD
b25uZWN0aW9uIHsgTm8sIFllcyB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2
ZXIubW0KaW5kZXggNzdjMGY3MzY5YWE0Li40NjUwMmU0NmMyNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTQ2LDEwICs0NiwxMSBAQCBzdHJ1Y3QgSFRUUFNl
cnZlcjo6UmVxdWVzdERhdGEgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVxdWVzdERh
dGEsIFdURjo6RAogICAgICAgICAgICAgbWFwLmFkZChwYWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7
CiAgICAgICAgIHJldHVybiBtYXA7CiAgICAgfShyZXNwb25zZXMpKSB7IH0KLSAgICAKKwogICAg
IHNpemVfdCByZXF1ZXN0Q291bnQgeyAwIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIEhUVFBSZXNw
b25zZT4gcmVxdWVzdE1hcDsKICAgICBWZWN0b3I8Q29ubmVjdGlvbj4gY29ubmVjdGlvbnM7Cisg
ICAgVmVjdG9yPENvcm91dGluZUhhbmRsZTxUYXNrOjpwcm9taXNlX3R5cGU+PiBjb3JvdXRpbmVI
YW5kbGVzOwogfTsKIAogc3RhdGljIFJldGFpblB0cjxud19wcm90b2NvbF9kZWZpbml0aW9uX3Q+
IHByb3h5RGVmaW5pdGlvbihIVFRQU2VydmVyOjpQcm90b2NvbCBwcm90b2NvbCkKQEAgLTIxNCw2
ICsyMTUsMjEgQEAgSFRUUFNlcnZlcjo6SFRUUFNlcnZlcihGdW5jdGlvbjx2b2lkKENvbm5lY3Rp
b24pPiYmIGNvbm5lY3Rpb25IYW5kbGVyLCBQcm90b2NvbAogICAgIHN0YXJ0TGlzdGVuaW5nKG1f
bGlzdGVuZXIuZ2V0KCkpOwogfQogCitIVFRQU2VydmVyOjpIVFRQU2VydmVyKFVzZUNvcm91dGlu
ZXMsIFdURjo6RnVuY3Rpb248VGFzayhDb25uZWN0aW9uKT4mJiBjb25uZWN0aW9uSGFuZGxlciwg
UHJvdG9jb2wgcHJvdG9jb2wpCisgICAgOiBtX3JlcXVlc3REYXRhKGFkb3B0UmVmKCpuZXcgUmVx
dWVzdERhdGEoeyB9KSkpCisgICAgLCBtX2xpc3RlbmVyKGFkb3B0TlMobndfbGlzdGVuZXJfY3Jl
YXRlKGxpc3RlbmVyUGFyYW1ldGVycyhwcm90b2NvbCwgbnVsbHB0ciwgbnVsbHB0ciwgeyB9KS5n
ZXQoKSkpKQorICAgICwgbV9wcm90b2NvbChwcm90b2NvbCkKK3sKKyAgICBud19saXN0ZW5lcl9z
ZXRfcXVldWUobV9saXN0ZW5lci5nZXQoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7Cisg
ICAgbndfbGlzdGVuZXJfc2V0X25ld19jb25uZWN0aW9uX2hhbmRsZXIobV9saXN0ZW5lci5nZXQo
KSwgbWFrZUJsb2NrUHRyKFtyZXF1ZXN0RGF0YSA9IG1fcmVxdWVzdERhdGEsIGNvbm5lY3Rpb25I
YW5kbGVyID0gV1RGTW92ZShjb25uZWN0aW9uSGFuZGxlcildIChud19jb25uZWN0aW9uX3QgY29u
bmVjdGlvbikgeworICAgICAgICByZXF1ZXN0RGF0YS0+Y29ubmVjdGlvbnMuYXBwZW5kKENvbm5l
Y3Rpb24oY29ubmVjdGlvbikpOworICAgICAgICBud19jb25uZWN0aW9uX3NldF9xdWV1ZShjb25u
ZWN0aW9uLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKKyAgICAgICAgbndfY29ubmVjdGlv
bl9zdGFydChjb25uZWN0aW9uKTsKKyAgICAgICAgcmVxdWVzdERhdGEtPmNvcm91dGluZUhhbmRs
ZXMuYXBwZW5kKGNvbm5lY3Rpb25IYW5kbGVyKENvbm5lY3Rpb24oY29ubmVjdGlvbikpLmhhbmRs
ZSk7CisgICAgfSkuZ2V0KCkpOworICAgIHN0YXJ0TGlzdGVuaW5nKG1fbGlzdGVuZXIuZ2V0KCkp
OworfQorCiBIVFRQU2VydmVyOjp+SFRUUFNlcnZlcigpID0gZGVmYXVsdDsKIAogdm9pZCBIVFRQ
U2VydmVyOjphZGRSZXNwb25zZShTdHJpbmcmJiBwYXRoLCBIVFRQUmVzcG9uc2UmJiByZXNwb25z
ZSkKQEAgLTQyMyw2ICs0MzksMzEgQEAgdm9pZCBDb25uZWN0aW9uOjpyZWNlaXZlSFRUUFJlcXVl
c3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8Y2hhcj4mJik+JiYgY28KICAgICB9KTsK
IH0KIAorUmVjZWl2ZU9wZXJhdGlvbiBDb25uZWN0aW9uOjphd2FpdGFibGVSZWNlaXZlSFRUUFJl
cXVlc3QoKSBjb25zdAoreworICAgIHJldHVybiB7ICp0aGlzIH07Cit9CisKK3ZvaWQgUmVjZWl2
ZU9wZXJhdGlvbjo6YXdhaXRfc3VzcGVuZChzdGQ6OmV4cGVyaW1lbnRhbDo6Y29yb3V0aW5lX2hh
bmRsZTw+IGhhbmRsZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFt0
aGlzLCBoYW5kbGVdKFZlY3RvcjxjaGFyPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1f
cmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpOworICAgICAgICBoYW5kbGUoKTsKKyAgICB9KTsKK30K
Kwordm9pZCBTZW5kT3BlcmF0aW9uOjphd2FpdF9zdXNwZW5kKHN0ZDo6ZXhwZXJpbWVudGFsOjpj
b3JvdXRpbmVfaGFuZGxlPD4gaGFuZGxlKQoreworICAgIG1fY29ubmVjdGlvbi5zZW5kKFdURk1v
dmUobV9kYXRhKSwgW2hhbmRsZV0gKGJvb2wpIG11dGFibGUgeworICAgICAgICBoYW5kbGUoKTsK
KyAgICB9KTsKK30KKworU2VuZE9wZXJhdGlvbiBDb25uZWN0aW9uOjphd2FpdGFibGVTZW5kKFN0
cmluZyYmIG1lc3NhZ2UpCit7CisgICAgcmV0dXJuIHsgZGF0YUZyb21TdHJpbmcoV1RGTW92ZSht
ZXNzYWdlKSksICp0aGlzIH07Cit9CisKIHZvaWQgQ29ubmVjdGlvbjo6c2VuZChTdHJpbmcmJiBt
ZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNv
bnN0CiB7CiAgICAgc2VuZChkYXRhRnJvbVN0cmluZyhXVEZNb3ZlKG1lc3NhZ2UpKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChib29sKSBtdXRhYmxl
IHsKLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>