<?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>235855</bug_id>
          
          <creation_ts>2022-01-28 22:47:27 -0800</creation_ts>
          <short_desc>Forward messages from NetworkProcess to webpushd</short_desc>
          <delta_ts>2022-02-01 16:48:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>235857</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1835253</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-28 22:47:27 -0800</bug_when>
    <thetext>Forward messages from NetworkProcess to webpushd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835254</commentid>
    <comment_count>1</comment_count>
      <attachid>450316</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-28 22:48:13 -0800</bug_when>
    <thetext>Created attachment 450316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835255</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-28 22:49:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/88218250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835302</commentid>
    <comment_count>3</comment_count>
      <attachid>450330</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 12:44:51 -0800</bug_when>
    <thetext>Created attachment 450330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835359</commentid>
    <comment_count>4</comment_count>
      <attachid>450350</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 21:55:14 -0800</bug_when>
    <thetext>Created attachment 450350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835366</commentid>
    <comment_count>5</comment_count>
      <attachid>450354</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 22:40:14 -0800</bug_when>
    <thetext>Created attachment 450354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836219</commentid>
    <comment_count>6</comment_count>
      <attachid>450354</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-02-01 16:33:25 -0800</bug_when>
    <thetext>Comment on attachment 450354
Patch

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

&gt; Source/WebKit/webpushd/WebPushDaemon.mm:481
&gt; +    UNUSED_PARAM(applicationServerKey);

Should we have any kind of MESSAGE_CHECK macros in here for connection, etc.? Maybe that comes later, once this is fleshed out more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836223</commentid>
    <comment_count>7</comment_count>
      <attachid>450354</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-01 16:35:36 -0800</bug_when>
    <thetext>Comment on attachment 450354
Patch

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

&gt;&gt; Source/WebKit/webpushd/WebPushDaemon.mm:481
&gt;&gt; +    UNUSED_PARAM(applicationServerKey);
&gt; 
&gt; Should we have any kind of MESSAGE_CHECK macros in here for connection, etc.? Maybe that comes later, once this is fleshed out more?

Yeah, we check whether the parameters are sane in the full implementation (https://bugs.webkit.org/show_bug.cgi?id=235857).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836238</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-01 16:48:44 -0800</bug_when>
    <thetext>Committed r288929 (246660@main): &lt;https://commits.webkit.org/246660@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450354.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450316</attachid>
            <date>2022-01-28 22:48:13 -0800</date>
            <delta_ts>2022-01-29 12:44:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235855-20220128224812.patch</filename>
            <type>text/plain</type>
            <size>26854</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M4MmYzZWRkNzU4MWE2
M2FlNmQwMmZhNmEyNzNiZmY0NGM2ODI4Yy4uZGVmZjIxMWUxOGUwM2FlMmNkNjI5NjdjODJkNzQy
ZmVlNzk1MjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTI4ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBO
ZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBFeGNlcHRpb25EYXRhIHVzZSBtb2Rlcm4gZW5jb2Rpbmcg
c2luY2UgdGhlIGRhZW1vbiBJUEMgZW5jb2RlciBkb2Vzbid0IHN1cHBvcnQgbGVnYWN5CisgICAg
ICAgIGVuY29kaW5nLgorCisgICAgICAgICogZG9tL0V4Y2VwdGlvbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE6OmRlY29kZSk6CisKIDIwMjItMDEtMjggIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFB1c2hEYXRhYmFzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBmNjQxZmE4MzA2YzllY2EyZjNkM2NmMzgwODc2Y2JiYmU3YTAxNzcwLi45ZTAyMGFiZWM5NThi
NjIzODRjY2Q2ODk2MmQ5ZDIxYTg2MzNkNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisy
MDIyLTAxLTI4ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZvcndhcmQg
bWVzc2FnZXMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBmb3J3YXJkcyBQdXNoTWFuYWdl
ciBhbmQgUHVzaFN1YnNjcmlwdGlvbi1yZWxhdGVkIElQQyBmcm9tIE5ldHdvcmtQcm9jZXNzIHRv
IHdlYnB1c2hkLgorICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25zIGluIHdlYnB1c2hkIGFyZSBz
dHVicyBpbiB0aGlzIHBhdGNoLCBhbmQgYXMgYSByZXN1bHQgdGhlcmUgYXJlIG5vIG5ldworICAg
ICAgICB0ZXN0cy4gVGhlIGltcGxlbWVudGF0aW9ucyBhbmQgdGVzdHMgd2lsbCBiZSBmaWxsZWQg
b3V0IGluIGEgZnV0dXJlIHBhdGNoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTm90aWZp
Y2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnVuc3Vic2NyaWJlRnJv
bVB1c2hTZXJ2aWNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXI6OmdldFB1c2hTdWJzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdWJzY3JpYmVU
b1B1c2hTZXJ2aWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1
bnN1YnNjcmliZUZyb21QdXNoU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlB1c2hEYWVtb25Db25zdGFudHMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHVzaEQ6
Om1lc3NhZ2VUeXBlU2VuZHNSZXBseSk6CisgICAgICAgICogd2VicHVzaGQvV2ViUHVzaERhZW1v
bi5oOgorICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAgIChXZWJQ
dXNoRDo6TWVzc2FnZUluZm86OnN1YnNjcmliZVRvUHVzaFNlcnZpY2U6OmVuY29kZVJlcGx5KToK
KyAgICAgICAgKFdlYlB1c2hEOjpNZXNzYWdlSW5mbzo6dW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZp
Y2U6OmVuY29kZVJlcGx5KToKKyAgICAgICAgKFdlYlB1c2hEOjpNZXNzYWdlSW5mbzo6Z2V0UHVz
aFN1YnNjcmlwdGlvbjo6ZW5jb2RlUmVwbHkpOgorICAgICAgICAoV2ViUHVzaEQ6Ok1lc3NhZ2VJ
bmZvOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlOjplbmNvZGVSZXBseSk6CisgICAgICAgIChXZWJQ
dXNoRDo6RGFlbW9uOjpkZWNvZGVBbmRIYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYlB1c2hE
OjpEYWVtb246OnN1YnNjcmliZVRvUHVzaFNlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaEQ6OkRh
ZW1vbjo6dW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaEQ6OkRh
ZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpn
ZXRQdXNoUGVybWlzc2lvblN0YXRlKToKKwogMjAyMi0wMS0yNCAgRGF2aWQgUXVlc2FkYSAgPGRh
dmlkX3F1ZXNhZGFAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGFjY2Vzc2VzIHRvIFN5
c3RlbVZlcnNpb24ucGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRp
b25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IGYzNDY2
N2Y5YmZlMGNjYzBjNTYwNTdjYTA2YmIyMzVlYmU5NTA5NWUuLmZjNzk4YjM2NGQzYTc4ZjcxYTNj
MDk5YWQ5ZWRmZWIyMWMwNDQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNl
cHRpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApAQCAt
MzcsNyArMzcsNyBAQCBzdHJ1Y3QgRXhjZXB0aW9uRGF0YSB7CiAgICAgV0VCQ09SRV9FWFBPUlQg
RXhjZXB0aW9uRGF0YSBpc29sYXRlZENvcHkoKSBjb25zdDsKIAogICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBFeGNlcHRpb25EYXRhJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gZGVjb2RlKERlY29kZXImKTsKIAogICAgIEV4Y2Vw
dGlvbiB0b0V4Y2VwdGlvbigpIGNvbnN0CiAgICAgewpAQCAtNTMsMTUgKzUzLDE5IEBAIHZvaWQg
RXhjZXB0aW9uRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB9CiAKIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIEV4Y2VwdGlvbkRhdGE6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBFeGNlcHRpb25EYXRhJiBkYXRhKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRh
PiBFeGNlcHRpb25EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGRhdGEuY29kZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzdGQ6
Om9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IGNvZGU7CisgICAgZGVjb2RlciA+PiBjb2RlOworICAg
IGlmICghY29kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YS5tZXNzYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAg
ICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFdURk1vdmUoKmNvZGUpLCBXVEZN
b3ZlKCptZXNzYWdlKSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YmMxNWNmYjQ1MDY1
NmJjNWM5Y2U4NTA1NGVjNDMyNmYxMTkwYmM5Li4xN2NlZjkxNGFiODZjYjAzN2M3MTZmZWRjYzJk
NjM2ZjczMjllZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIK
ICNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25D
b25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaE1lc3NhZ2UuaCIKQEAgLTEzMiw2ICsx
MzMsNDYgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlm
aWNhdGlvbihjb25zdCBVVUlEJikKICAgICAgICAgcmV0dXJuOwogfQogCit2b2lkIE5ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJM
LCBWZWN0b3I8dWludDhfdD4mJiBhcHBsaWNhdGlvblNlcnZlcktleSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhj
ZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBjb25uZWN0aW9uIHRvIHB1c2ggZGFlbW9uIl9z
IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5
PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6U3Vic2NyaWJlVG9QdXNoU2VydmljZT4oV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2NvcGVVUkwpLCBXVEZNb3ZlKGFwcGxpY2F0aW9u
U2VydmVyS2V5KSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnVuc3Vi
c2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBQdXNoU3Vic2NyaXB0aW9uSWRl
bnRpZmllciBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIk5vIGNv
bm5lY3Rpb24gdG8gcHVzaCBkYWVtb24iX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlOjpVbnN1YnNj
cmliZUZyb21QdXNoU2VydmljZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUo
c2NvcGVVUkwpLCBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hTdWJzY3JpcHRpb24oVVJMJiYgc2NvcGVVUkws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
dXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBBYm9ydEVycm9yLCAi
Tm8gY29ubmVjdGlvbiB0byBwdXNoIGRhZW1vbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6Okdl
dFB1c2hTdWJzY3JpcHRpb24+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEZNb3ZlKHNj
b3BlVVJMKSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hQ
ZXJtaXNzaW9uU3RhdGUoVVJMJiYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhw
ZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBjb25u
ZWN0aW9uIHRvIHB1c2ggZGFlbW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6R2V0UHVzaFBl
cm1pc3Npb25TdGF0ZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2NvcGVV
UkwpKTsKK30KKwogdGVtcGxhdGU8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0
eXBlbmFtZS4uLiBBcmdzPgogdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE1l
c3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CkBAIC0yMDcsNiArMjQ4LDU4IEBAIHRlbXBs
YXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJj4gewogICAg
IH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPFdlYkNvcmU6
OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7CisgICAg
c3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0
YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0
YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29k
ZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IFJl
cGx5Q2FsbGVyPEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsKKyAg
ICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXhw
ZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29k
ZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxk
bid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4g
c3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1
YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7CisgICAgc3RhdGlj
IHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
RGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7
CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJv
cnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307
CisKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9u
OjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50
OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAgICBp
ZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChF
eGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0p
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgq
ZGF0YSkpOworICAgIH0KK307CisKIHRlbXBsYXRlPFdlYlB1c2hEOjpNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgogdm9pZCBO
ZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdzJiYu
Li4gYXJncykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmgKaW5kZXggZjFmZGVkZTAyMDZjOTRlMmY5YjFjYzhjMDFkZjQ2ZTcyNGRkZmY1Zi4uYTky
YmQyZjViZDE3N2IxZGE4ZjVhMjIxNjE4YTg3ZWJlMWViZWYwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTMwLDcgKzMwLDkgQEAKICNpbmNsdWRl
ICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQdXNo
RGFlbW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRp
b25EaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1c2hTdWJzY3JpcHRpb25EYXRhLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU1LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE9yaWdpbnNXaXRoUHVzaEFu
ZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mKT4mJik7CiAgICAgdm9pZCBnZXRQZW5k
aW5nUHVzaE1lc3NhZ2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYlB1
c2hNZXNzYWdlPiYpPiYmKTsKIAorICAgIHZvaWQgc3Vic2NyaWJlVG9QdXNoU2VydmljZShVUkwm
JiBzY29wZVVSTCwgVmVjdG9yPHVpbnQ4X3Q+JiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIHVuc3Vic2NyaWJlRnJv
bVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhPiYmKT4mJik7CisgICAgdm9pZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFVSTCYm
IHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYm
KT4mJik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFVSTCYmIHNjb3BlVVJMLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+JiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
cihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZTk4N2JkYzI3
NmEwNGVhZDVmMmIwODFiOGY5NDdhZTNkYjc5NDJmZC4uNWFkMDIxYjM0MmQxMzhkMjEyMzE5YTYx
OGYzYTlkZDAwNjg1M2Q4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpAQCAtNDQ4LDI0
ICs0NDksNjggQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVRocm90dGxlU3Rh
dGUoKQogICAgIH0KIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN1YnNjcmliZVRv
UHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFZlY3Rvcjx1aW50OF90PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1c2hT
dWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIFZlY3Rvcjx1aW50OF90PiYmIGFwcGxpY2F0aW9uU2VydmVyS2V5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1c2hTdWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25EYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtl
VW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiUHVzaCBwZXJtaXNz
aW9uIHdhcyBkZW5pZWQiX3MgfSkpOworICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVyKCku
Z2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0
cmF0aW9uKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2Vw
dGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIlN1YnNjcmliaW5nIGZvciBwdXNoIHJlcXVp
cmVzIGFuIGFjdGl2ZSBzZXJ2aWNlIHdvcmtlciJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgaWYgKCFzZXNzaW9uKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8g
YWN0aXZlIG5ldHdvcmsgc2Vzc2lvbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBzZXNzaW9uKCktPm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5zdWJzY3JpYmVUb1B1c2hTZXJ2
aWNlKHJlZ2lzdHJhdGlvbi0+c2NvcGVVUkxXaXRob3V0RnJhZ21lbnQoKSwgV1RGTW92ZShhcHBs
aWNhdGlvblNlcnZlcktleSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpQdXNoU3Vi
c2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29s
LCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjp1bnN1YnNjcmliZUZyb21QdXNoU2VydmljZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciBzdWJzY3JpcHRpb25JZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEV4Y2VwdGlvbkRhdGE+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAg
ICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRp
b25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikgeworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJVbnN1YnNjcmliaW5nIGZyb20gcHVzaCByZXF1aXJlcyBhIHNlcnZpY2Ugd29ya2VyIl9z
IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghc2Vzc2lvbigpKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIk5vIGFjdGl2ZSBuZXR3b3JrIHNlc3Npb24iX3MgfSkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgc2Vzc2lvbigpLT5ub3RpZmljYXRpb25NYW5hZ2Vy
KCkudW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UocmVnaXN0cmF0aW9uLT5zY29wZVVSTFdpdGhv
dXRGcmFnbWVudCgpLCBzdWJzY3JpcHRpb25JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXRQdXNoU3Vic2Ny
aXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlv
bkRhdGE+LCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXRQdXNoU3Vic2NyaXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9u
RGF0YT4sIEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNv
bXBsZXRpb25IYW5kbGVyKHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+KHN0ZDo6
bnVsbG9wdCkpOworICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0
aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkdldHRpbmcgcHVzaCBzdWJzY3JpcHRpb24gcmVxdWlyZXMgYSBz
ZXJ2aWNlIHdvcmtlciJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
IXNlc3Npb24oKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChF
eGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgbmV0d29yayBzZXNz
aW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlc3Npb24oKS0+bm90
aWZpY2F0aW9uTWFuYWdlcigpLmdldFB1c2hTdWJzY3JpcHRpb24ocmVnaXN0cmF0aW9uLT5zY29w
ZVVSTFdpdGhvdXRGcmFnbWVudCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
LXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hQZXJtaXNzaW9uU3Rh
dGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50OF90LCBF
eGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9u
SGFuZGxlcihzdGF0aWNfY2FzdDx1aW50OF90PihQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQp
KTsKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlvbihyZWdp
c3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJHZXR0aW5nIHB1c2ggcGVybWlzc2lvbiBzdGF0ZSByZXF1aXJlcyBhIHNlcnZp
Y2Ugd29ya2VyIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghc2Vz
c2lvbigpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2Vw
dGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGFjdGl2ZSBuZXR3b3JrIHNlc3Npb24i
X3MgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2Vzc2lvbigpLT5ub3RpZmlj
YXRpb25NYW5hZ2VyKCkuZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZShyZWdpc3RyYXRpb24tPnNjb3Bl
VVJMV2l0aG91dEZyYWdtZW50KCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24mIGNvbnRleHRDb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oCmluZGV4IDU4MDJiYjA3YzM5YTkz
OThjZjliODg3MDQxZGU5YWJkMjk3ZWJiZGYuLmZjNDdkYzRmMTI3NDg3MjRiMWI1N2M1NzJjMTQ5
YjM4NzhlYzBhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hEYWVt
b25Db25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQdXNoRGFlbW9uQ29u
c3RhbnRzLmgKQEAgLTQ0LDYgKzQ0LDEwIEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1aW50
OF90IHsKICAgICBVcGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbiwKICAgICBJbmplY3RQdXNo
TWVzc2FnZUZvclRlc3RpbmcsCiAgICAgR2V0UGVuZGluZ1B1c2hNZXNzYWdlcywKKyAgICBTdWJz
Y3JpYmVUb1B1c2hTZXJ2aWNlLAorICAgIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlLAorICAg
IEdldFB1c2hTdWJzY3JpcHRpb24sCisgICAgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZQogfTsKIAog
aW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
KQpAQCAtNTUsNiArNTksMTAgQEAgaW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1l
c3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlJlcXVlc3RTeXN0
ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkdldFBlbmRp
bmdQdXNoTWVzc2FnZXM6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6SW5qZWN0UHVzaE1lc3NhZ2VG
b3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN1YnNjcmliZVRvUHVzaFNlcnZpY2U6
CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6VW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2U6CisgICAg
Y2FzZSBNZXNzYWdlVHlwZTo6R2V0UHVzaFN1YnNjcmlwdGlvbjoKKyAgICBjYXNlIE1lc3NhZ2VU
eXBlOjpHZXRQdXNoUGVybWlzc2lvblN0YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBj
YXNlIE1lc3NhZ2VUeXBlOjpTZXREZWJ1Z01vZGVJc0VuYWJsZWQ6CiAgICAgY2FzZSBNZXNzYWdl
VHlwZTo6VXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb246CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
V2ViUHVzaERhZW1vbi5oCmluZGV4IGNhZDQ4MzA3MDUwOGI5ODcwYTk4ZmRhZGYzZTZlMTExOGI4
N2Q5NDQuLmFmMzE4NTdkYjg3MzdhOWI2NDM5NWZiMDAwNDc1MGE5NThlNTQ4ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVk
ZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
UHVzaERhZW1vbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdXNoU3Vi
c2NyaXB0aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTY4LDYgKzcwLDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvbm5lY3Rpb25Db25maWd1cmF0aW9uKENsaWVudENvbm5l
Y3Rpb24qLCBjb25zdCBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24mKTsKICAg
ICB2b2lkIGluamVjdFB1c2hNZXNzYWdlRm9yVGVzdGluZyhDbGllbnRDb25uZWN0aW9uKiwgY29u
c3QgUHVzaE1lc3NhZ2VGb3JUZXN0aW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKENsaWVudENvbm5lY3Rpb24qLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNzYWdl
PiYpPiYmIHJlcGx5U2VuZGVyKTsKKyAgICB2b2lkIHN1YnNjcmliZVRvUHVzaFNlcnZpY2UoQ2xp
ZW50Q29ubmVjdGlvbiosIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRXhw
ZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGE+Jik+JiYgcmVwbHlTZW5kZXIpOworICAgIHZvaWQgdW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZp
Y2UoQ2xpZW50Q29ubmVjdGlvbiosIGNvbnN0IFVSTCYgc2NvcGVVUkwsIFdlYkNvcmU6OlB1c2hT
dWJzY3JpcHRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4cGVj
dGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpOworICAg
IHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0aW9uKiwgY29uc3QgVVJMJiBz
Y29wZVVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBFeHBlY3RlZDxzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YT4mKT4mJiByZXBseVNlbmRlcik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKENs
aWVudENvbm5lY3Rpb24qLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYg
cmVwbHlTZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlNDOjpNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYnJvYWRjYXN0QWxsQ29ubmVjdGlv
bklkZW50aXRpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVz
aERhZW1vbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQppbmRl
eCBmMzEyMjdlOTVjYTc5ODk1N2JiNmI1MGM1MjBkM2JkMjRmNzk2MWMwLi5hOGZlNDlmNTJkNzYz
MjY2MzFjYWM3ZDc2NmMwOTE0OTVlOWNlNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQ
dXNoRGFlbW9uLm1tCkBAIC0zMywxMSArMzMsMTMgQEAKICNpbXBvcnQgIkhhbmRsZU1lc3NhZ2Uu
aCIKICNpbXBvcnQgIk1vY2tBcHBCdW5kbGVSZWdpc3RyeS5oIgogCisjaW1wb3J0IDxXZWJDb3Jl
L1B1c2hQZXJtaXNzaW9uU3RhdGUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2Vy
dmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9ydCA8
d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0
IDx3dGYvU3Bhbi5oPgorI2ltcG9ydCA8d3RmL1VSTC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OjpXZWJQdXNoRDsKIApAQCAtODksNiArOTEsMjYgQEAgQVJHVU1FTlRTKFB1c2hNZXNzYWdl
Rm9yVGVzdGluZykKIFJFUExZKGJvb2wpCiBFTkQKIAorRlVOQ1RJT04oc3Vic2NyaWJlVG9QdXNo
U2VydmljZSkKK0FSR1VNRU5UUyhVUkwsIFZlY3Rvcjx1aW50OF90PikKK1JFUExZKGNvbnN0IEV4
cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhPiYpCitFTkQKKworRlVOQ1RJT04odW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpCitBUkdV
TUVOVFMoVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcikKK1JFUExZKGNv
bnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JikKK0VORAorCitGVU5D
VElPTihnZXRQdXNoU3Vic2NyaXB0aW9uKQorQVJHVU1FTlRTKFVSTCkKK1JFUExZKGNvbnN0IEV4
cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKworRlVOQ1RJT04oZ2V0UHVzaFBlcm1pc3Npb25T
dGF0ZSkKK0FSR1VNRU5UUyhVUkwpCitSRVBMWShjb25zdCBFeHBlY3RlZDx1aW50OF90LCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKwogI3VuZGVmIEZVTkNUSU9OCiAjdW5kZWYgQVJH
VU1FTlRTCiAjdW5kZWYgUkVQTFkKQEAgLTEzNiw2ICsxNTgsMzQgQEAgV2ViUHVzaEQ6OkVuY29k
ZWRNZXNzYWdlIGdldFBlbmRpbmdQdXNoTWVzc2FnZXM6OmVuY29kZVJlcGx5KGNvbnN0IFZlY3Rv
cjxXZWJLaXQKICAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7CiB9CiAKK1dlYlB1c2hE
OjpFbmNvZGVkTWVzc2FnZSBzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlOjplbmNvZGVSZXBseShjb25z
dCBFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7
CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7
Cit9CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSB1bnN1YnNjcmliZUZyb21QdXNoU2Vydmlj
ZTo6ZW5jb2RlUmVwbHkoY29uc3QgRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CisgICAg
ZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7Cit9CisK
K1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBnZXRQdXNoU3Vic2NyaXB0aW9uOjplbmNvZGVSZXBs
eShjb25zdCBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25E
YXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFl
bW9uOjpFbmNvZGVyIGVuY29kZXI7CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4g
ZW5jb2Rlci50YWtlQnVmZmVyKCk7Cit9CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBnZXRQ
dXNoUGVybWlzc2lvblN0YXRlOjplbmNvZGVSZXBseShjb25zdCBFeHBlY3RlZDx1aW50OF90LCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYgcmVwbHkpCit7CisgICAgV2ViS2l0OjpEYWVtb246OkVu
Y29kZXIgZW5jb2RlcjsKKyAgICBlbmNvZGVyIDw8IHJlcGx5OworICAgIHJldHVybiBlbmNvZGVy
LnRha2VCdWZmZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZUluZm8KIAogdGVtcGxh
dGU8dHlwZW5hbWUgSW5mbz4KQEAgLTI3OCw2ICszMjgsMTggQEAgdm9pZCBEYWVtb246OmRlY29k
ZUFuZEhhbmRsZU1lc3NhZ2UoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCBNZXNzYWdlVHlw
ZSBtZXMKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzOgogICAg
ICAgICBoYW5kbGVXZWJQdXNoRE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmdldFBlbmRp
bmdQdXNoTWVzc2FnZXM+KGNsaWVudENvbm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlLCBXVEZNb3Zl
KHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN1
YnNjcmliZVRvUHVzaFNlcnZpY2U6CisgICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdpdGhS
ZXBseTxNZXNzYWdlSW5mbzo6c3Vic2NyaWJlVG9QdXNoU2VydmljZT4oY2xpZW50Q29ubmVjdGlv
biwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6VW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2U6CisgICAg
ICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6dW5zdWJzY3Jp
YmVGcm9tUHVzaFNlcnZpY2U+KGNsaWVudENvbm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlLCBXVEZN
b3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVzc2FnZVR5cGU6
OkdldFB1c2hTdWJzY3JpcHRpb246CisgICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdpdGhS
ZXBseTxNZXNzYWdlSW5mbzo6Z2V0UHVzaFN1YnNjcmlwdGlvbj4oY2xpZW50Q29ubmVjdGlvbiwg
ZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UHVzaFBlcm1pc3Npb25TdGF0ZToKKyAgICAgICAgaGFu
ZGxlV2ViUHVzaERNZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpnZXRQdXNoUGVybWlzc2lv
blN0YXRlPihjbGllbnRDb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBseVNl
bmRlcikpOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTQxNCw2ICs0NzYsMjcgQEAg
dm9pZCBEYWVtb246OmdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgQ29tcGxldGlvbkhhbmQKICAgICByZXBseVNlbmRlcihXVEZNb3ZlKHJlc3VsdE1l
c3NhZ2VzKSk7CiB9CiAKK3ZvaWQgRGFlbW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKENsaWVu
dENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGFwcGxp
Y2F0aW9uU2VydmVyS2V5KTsKKyAgICByZXBseVNlbmRlcihtYWtlVW5leHBlY3RlZChXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhIHsgV2ViQ29yZTo6Tm90QWxsb3dlZEVycm9yLCAiTGFjayBwZXJtaXNz
aW9uIl9zIH0pKTsKK30KKwordm9pZCBEYWVtb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNl
KENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgcmVwbHlTZW5kZXIoZmFsc2Up
OworfQorCit2b2lkIERhZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRh
dGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKQoreworICAgIHJl
cGx5U2VuZGVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+IHsg
fSk7Cit9CisKK3ZvaWQgRGFlbW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKENsaWVudENvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mKT4m
JiByZXBseVNlbmRlcikKK3sKKyAgICByZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90PihX
ZWJDb3JlOjpQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKK30KKwogQ2xpZW50Q29ubmVj
dGlvbiogRGFlbW9uOjp0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0
aW9uKQogewogICAgIGF1dG8gY2xpZW50Q29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQo
Y29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTFjOWFiM2M1ODUzMjM5ZTk1YzU0N2Y5OTk4M2U5NjNlYjhl
NDVjNi4uZmRlNjA5MTFjY2FlMzkzMmZiNzQwZTRjOWYwNzBjYmIxY2IyMmU5ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIyLTAxLTI4ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisg
ICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4
aXN0aW5nIHRlc3RzIHRvIHRlc3QgZm9yIEFib3J0RXJyb3IsIHNpbmNlIHRoYXQncyB0aGUgZXhj
ZXB0aW9uIHR5cGUgc3BlY2lmaWVkIGluCisgICAgICAgIHRoZSBzcGVjLgorCisgICAgICAgICog
aHR0cC93cHQvcHVzaC1hcGkvcHVzaE1hbmFnZXIuYW55LmpzOgorICAgICAgICAocHJvbWlzZV90
ZXN0LmFzeW5jIHRlc3QpOgorCiAyMDIyLTAxLTI0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBwaXhlbCB0b2xlcmFuY2UgdG8gc29tZSBjb21w
b3NpdGluZyB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1hcGkv
cHVzaE1hbmFnZXIuYW55LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1hcGkvcHVzaE1h
bmFnZXIuYW55LmpzCmluZGV4IDRmZjU4OGMxNDBiZWNkMGRjZTQ2MzQ0NjFjMzRmNWNmNzM1MDFi
MWEuLmQ3ZWI4NDVkNDg5MDBlOTUzOTE0MDZlNWNkOTFhYjcxY2I4NzA1ZDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1c2hNYW5hZ2VyLmFueS5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuanMKQEAgLTk5LDcg
Kzk5LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAKIHByb21pc2VfdGVzdChh
c3luYyAodGVzdCkgPT4gewogICAgIC8vIFRPRE86IGNoYW5nZSB0aGlzIHRvIG1ha2Ugc3VyZSB0
aGF0IHN1YnNjcmlwdGlvbiBpcyB2YWxpZCBvbmNlIHdlIGZ1bGx5IGltcGxlbWVudCBzdWJzY3Jp
YmUuCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odGVzdCwgIk5vdEFsbG93ZWRFcnJv
ciIsIHB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19k
b20odGVzdCwgIkFib3J0RXJyb3IiLCBwdXNoTWFuYWdlci5zdWJzY3JpYmUoewogICAgICAgICB1
c2VyVmlzaWJsZU9ubHk6IHRydWUsCiAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVyS2V5OiBWQUxJ
RF9TRVJWRVJfS0VZCiAgICAgfSkpOwpAQCAtMTA3LDcgKzEwNyw3IEBAIHByb21pc2VfdGVzdChh
c3luYyAodGVzdCkgPT4gewogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICAv
LyBUT0RPOiBjaGFuZ2UgdGhpcyB0byBtYWtlIHN1cmUgdGhhdCBzdWJzY3JpcHRpb24gaXMgdmFs
aWQgb25jZSB3ZSBmdWxseSBpbXBsZW1lbnQgc3Vic2NyaWJlLgotICAgIHJldHVybiBwcm9taXNl
X3JlamVjdHNfZG9tKHRlc3QsICJOb3RBbGxvd2VkRXJyb3IiLCBwdXNoTWFuYWdlci5zdWJzY3Jp
YmUoeworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHRlc3QsICJBYm9ydEVycm9yIiwg
cHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKICAgICAgICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAog
ICAgICAgICBhcHBsaWNhdGlvblNlcnZlcktleTogVkFMSURfQkFTRTY0X1NFUlZFUl9LRVkKICAg
ICB9KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450330</attachid>
            <date>2022-01-29 12:44:51 -0800</date>
            <delta_ts>2022-01-29 21:55:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235855-20220129124450.patch</filename>
            <type>text/plain</type>
            <size>27428</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M4MmYzZWRkNzU4MWE2
M2FlNmQwMmZhNmEyNzNiZmY0NGM2ODI4Yy4uZGVmZjIxMWUxOGUwM2FlMmNkNjI5NjdjODJkNzQy
ZmVlNzk1MjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTI4ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBO
ZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBFeGNlcHRpb25EYXRhIHVzZSBtb2Rlcm4gZW5jb2Rpbmcg
c2luY2UgdGhlIGRhZW1vbiBJUEMgZW5jb2RlciBkb2Vzbid0IHN1cHBvcnQgbGVnYWN5CisgICAg
ICAgIGVuY29kaW5nLgorCisgICAgICAgICogZG9tL0V4Y2VwdGlvbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE6OmRlY29kZSk6CisKIDIwMjItMDEtMjggIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFB1c2hEYXRhYmFzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBmNjQxZmE4MzA2YzllY2EyZjNkM2NmMzgwODc2Y2JiYmU3YTAxNzcwLi45ZTAyMGFiZWM5NThi
NjIzODRjY2Q2ODk2MmQ5ZDIxYTg2MzNkNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisy
MDIyLTAxLTI4ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZvcndhcmQg
bWVzc2FnZXMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBmb3J3YXJkcyBQdXNoTWFuYWdl
ciBhbmQgUHVzaFN1YnNjcmlwdGlvbi1yZWxhdGVkIElQQyBmcm9tIE5ldHdvcmtQcm9jZXNzIHRv
IHdlYnB1c2hkLgorICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25zIGluIHdlYnB1c2hkIGFyZSBz
dHVicyBpbiB0aGlzIHBhdGNoLCBhbmQgYXMgYSByZXN1bHQgdGhlcmUgYXJlIG5vIG5ldworICAg
ICAgICB0ZXN0cy4gVGhlIGltcGxlbWVudGF0aW9ucyBhbmQgdGVzdHMgd2lsbCBiZSBmaWxsZWQg
b3V0IGluIGEgZnV0dXJlIHBhdGNoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTm90aWZp
Y2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnVuc3Vic2NyaWJlRnJv
bVB1c2hTZXJ2aWNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXI6OmdldFB1c2hTdWJzY3JpcHRpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlcjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdWJzY3JpYmVU
b1B1c2hTZXJ2aWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1
bnN1YnNjcmliZUZyb21QdXNoU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisgICAgICAgICogU2hh
cmVkL1dlYlB1c2hEYWVtb25Db25zdGFudHMuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHVzaEQ6
Om1lc3NhZ2VUeXBlU2VuZHNSZXBseSk6CisgICAgICAgICogd2VicHVzaGQvV2ViUHVzaERhZW1v
bi5oOgorICAgICAgICAqIHdlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW06CisgICAgICAgIChXZWJQ
dXNoRDo6TWVzc2FnZUluZm86OnN1YnNjcmliZVRvUHVzaFNlcnZpY2U6OmVuY29kZVJlcGx5KToK
KyAgICAgICAgKFdlYlB1c2hEOjpNZXNzYWdlSW5mbzo6dW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZp
Y2U6OmVuY29kZVJlcGx5KToKKyAgICAgICAgKFdlYlB1c2hEOjpNZXNzYWdlSW5mbzo6Z2V0UHVz
aFN1YnNjcmlwdGlvbjo6ZW5jb2RlUmVwbHkpOgorICAgICAgICAoV2ViUHVzaEQ6Ok1lc3NhZ2VJ
bmZvOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlOjplbmNvZGVSZXBseSk6CisgICAgICAgIChXZWJQ
dXNoRDo6RGFlbW9uOjpkZWNvZGVBbmRIYW5kbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYlB1c2hE
OjpEYWVtb246OnN1YnNjcmliZVRvUHVzaFNlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaEQ6OkRh
ZW1vbjo6dW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpOgorICAgICAgICAoV2ViUHVzaEQ6OkRh
ZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbik6CisgICAgICAgIChXZWJQdXNoRDo6RGFlbW9uOjpn
ZXRQdXNoUGVybWlzc2lvblN0YXRlKToKKwogMjAyMi0wMS0yNCAgRGF2aWQgUXVlc2FkYSAgPGRh
dmlkX3F1ZXNhZGFAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGFjY2Vzc2VzIHRvIFN5
c3RlbVZlcnNpb24ucGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRp
b25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IGYzNDY2
N2Y5YmZlMGNjYzBjNTYwNTdjYTA2YmIyMzVlYmU5NTA5NWUuLmZjNzk4YjM2NGQzYTc4ZjcxYTNj
MDk5YWQ5ZWRmZWIyMWMwNDQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNl
cHRpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApAQCAt
MzcsNyArMzcsNyBAQCBzdHJ1Y3QgRXhjZXB0aW9uRGF0YSB7CiAgICAgV0VCQ09SRV9FWFBPUlQg
RXhjZXB0aW9uRGF0YSBpc29sYXRlZENvcHkoKSBjb25zdDsKIAogICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBFeGNlcHRpb25EYXRhJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0
ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gZGVjb2RlKERlY29kZXImKTsKIAogICAgIEV4Y2Vw
dGlvbiB0b0V4Y2VwdGlvbigpIGNvbnN0CiAgICAgewpAQCAtNTMsMTUgKzUzLDE5IEBAIHZvaWQg
RXhjZXB0aW9uRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB9CiAKIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIEV4Y2VwdGlvbkRhdGE6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBFeGNlcHRpb25EYXRhJiBkYXRhKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRh
PiBFeGNlcHRpb25EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGRhdGEuY29kZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzdGQ6
Om9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IGNvZGU7CisgICAgZGVjb2RlciA+PiBjb2RlOworICAg
IGlmICghY29kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YS5tZXNzYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKKyAg
ICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFdURk1vdmUoKmNvZGUpLCBXVEZN
b3ZlKCptZXNzYWdlKSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YmMxNWNmYjQ1MDY1
NmJjNWM5Y2U4NTA1NGVjNDMyNmYxMTkwYmM5Li4xN2NlZjkxNGFiODZjYjAzN2M3MTZmZWRjYzJk
NjM2ZjczMjllZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIuaCIK
ICNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25D
b25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaE1lc3NhZ2UuaCIKQEAgLTEzMiw2ICsx
MzMsNDYgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlm
aWNhdGlvbihjb25zdCBVVUlEJikKICAgICAgICAgcmV0dXJuOwogfQogCit2b2lkIE5ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJM
LCBWZWN0b3I8dWludDhfdD4mJiBhcHBsaWNhdGlvblNlcnZlcktleSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nv
bm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhj
ZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBjb25uZWN0aW9uIHRvIHB1c2ggZGFlbW9uIl9z
IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5
PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6U3Vic2NyaWJlVG9QdXNoU2VydmljZT4oV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2NvcGVVUkwpLCBXVEZNb3ZlKGFwcGxpY2F0aW9u
U2VydmVyS2V5KSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnVuc3Vi
c2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBQdXNoU3Vic2NyaXB0aW9uSWRl
bnRpZmllciBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIk5vIGNv
bm5lY3Rpb24gdG8gcHVzaCBkYWVtb24iX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlOjpVbnN1YnNj
cmliZUZyb21QdXNoU2VydmljZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUo
c2NvcGVVUkwpLCBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hTdWJzY3JpcHRpb24oVVJMJiYgc2NvcGVVUkws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
dXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBBYm9ydEVycm9yLCAi
Tm8gY29ubmVjdGlvbiB0byBwdXNoIGRhZW1vbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6Okdl
dFB1c2hTdWJzY3JpcHRpb24+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEZNb3ZlKHNj
b3BlVVJMKSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hQ
ZXJtaXNzaW9uU3RhdGUoVVJMJiYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhw
ZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBjb25u
ZWN0aW9uIHRvIHB1c2ggZGFlbW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6R2V0UHVzaFBl
cm1pc3Npb25TdGF0ZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2NvcGVV
UkwpKTsKK30KKwogdGVtcGxhdGU8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlLCB0
eXBlbmFtZS4uLiBBcmdzPgogdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE1l
c3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CkBAIC0yMDcsNiArMjQ4LDU4IEBAIHRlbXBs
YXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJj4gewogICAg
IH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPFdlYkNvcmU6
OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7CisgICAg
c3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0
YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0
YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29k
ZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IFJl
cGx5Q2FsbGVyPEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsKKyAg
ICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXhw
ZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29k
ZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxk
bid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4g
c3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1
YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7CisgICAgc3RhdGlj
IHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
RGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
ICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7
CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJv
cnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307
CisKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9u
OjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50
OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAg
ICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAgICBp
ZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChF
eGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0p
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgq
ZGF0YSkpOworICAgIH0KK307CisKIHRlbXBsYXRlPFdlYlB1c2hEOjpNZXNzYWdlVHlwZSBtZXNz
YWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgogdm9pZCBO
ZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdzJiYu
Li4gYXJncykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmgKaW5kZXggZjFmZGVkZTAyMDZjOTRlMmY5YjFjYzhjMDFkZjQ2ZTcyNGRkZmY1Zi4uYTky
YmQyZjViZDE3N2IxZGE4ZjVhMjIxNjE4YTg3ZWJlMWViZWYwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTMwLDcgKzMwLDkgQEAKICNpbmNsdWRl
ICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQdXNo
RGFlbW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRp
b25EaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1c2hTdWJzY3JpcHRpb25EYXRhLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTU1LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE9yaWdpbnNXaXRoUHVzaEFu
ZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mKT4mJik7CiAgICAgdm9pZCBnZXRQZW5k
aW5nUHVzaE1lc3NhZ2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYlB1
c2hNZXNzYWdlPiYpPiYmKTsKIAorICAgIHZvaWQgc3Vic2NyaWJlVG9QdXNoU2VydmljZShVUkwm
JiBzY29wZVVSTCwgVmVjdG9yPHVpbnQ4X3Q+JiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIHVuc3Vic2NyaWJlRnJv
bVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhPiYmKT4mJik7CisgICAgdm9pZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFVSTCYm
IHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYm
KT4mJik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFVSTCYmIHNjb3BlVVJMLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+JiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdl
cihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFtZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZTk4N2JkYzI3
NmEwNGVhZDVmMmIwODFiOGY5NDdhZTNkYjc5NDJmZC4uYzZmNjI2ODFlNGY0MGU5ZjNlODFhNmNl
Y2I5NDdiNDhkYjdlYzZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCIKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpAQCAtNDQ4LDI0
ICs0NDksOTMgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVRocm90dGxlU3Rh
dGUoKQogICAgIH0KIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN1YnNjcmliZVRv
UHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFZlY3Rvcjx1aW50OF90PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1c2hT
dWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIFZlY3Rvcjx1aW50OF90PiYmIGFwcGxpY2F0aW9uU2VydmVyS2V5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1c2hTdWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25EYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtl
VW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiUHVzaCBwZXJtaXNz
aW9uIHdhcyBkZW5pZWQiX3MgfSkpOworI2lmICFFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9O
UykKKyAgICBVTlVTRURfUEFSQU0ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgVU5VU0VE
X1BBUkFNKGFwcGxpY2F0aW9uU2VydmVyS2V5KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtl
VW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIlB1c2ggc2VydmljZSBub3Qg
aW1wbGVtZW50ZWQiX3MgfSkpOworI2Vsc2UKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNlcnZl
cigpLmdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJl
Z2lzdHJhdGlvbikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChF
eGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJTdWJzY3JpYmluZyBmb3IgcHVzaCBy
ZXF1aXJlcyBhbiBhY3RpdmUgc2VydmljZSB3b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIGlmICghc2Vzc2lvbigpKSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik5vIGFjdGl2ZSBuZXR3b3JrIHNlc3Npb24iX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc2Vzc2lvbigpLT5ub3RpZmljYXRpb25NYW5hZ2VyKCkuc3Vic2NyaWJlVG9QdXNo
U2VydmljZShyZWdpc3RyYXRpb24tPnNjb3BlVVJMV2l0aG91dEZyYWdtZW50KCksIFdURk1vdmUo
YXBwbGljYXRpb25TZXJ2ZXJLZXkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisjZW5k
aWYKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVuc3Vic2NyaWJlRnJvbVB1c2hT
ZXJ2aWNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxib29sLCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnN1YnNjcmliZUZyb21QdXNoU2VydmljZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciBzdWJzY3JpcHRpb25J
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPGJvb2wsIEV4Y2VwdGlv
bkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworI2lmICFFTkFCTEUoQlVJTFRfSU5f
Tk9USUZJQ0FUSU9OUykKKyAgICBVTlVTRURfUEFSQU0ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7
CisgICAgVU5VU0VEX1BBUkFNKHN1YnNjcmlwdGlvbklkZW50aWZpZXIpOworCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOworI2Vsc2UKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNlcnZl
cigpLmdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJl
Z2lzdHJhdGlvbikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChF
eGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJVbnN1YnNjcmliaW5nIGZyb20gcHVz
aCByZXF1aXJlcyBhIHNlcnZpY2Ugd29ya2VyIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmICghc2Vzc2lvbigpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1h
a2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGFjdGl2
ZSBuZXR3b3JrIHNlc3Npb24iX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
c2Vzc2lvbigpLT5ub3RpZmljYXRpb25NYW5hZ2VyKCkudW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZp
Y2UocmVnaXN0cmF0aW9uLT5zY29wZVVSTFdpdGhvdXRGcmFnbWVudCgpLCBzdWJzY3JpcHRpb25J
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisjZW5kaWYKIH0KIAotdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hTdWJzY3JpcHRpb24oV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uRGF0YT4sIEV4Y2VwdGlvbkRh
dGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OmdldFB1c2hTdWJzY3JpcHRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25EYXRhPiwgRXhjZXB0aW9uRGF0
YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisjaWYgIUVOQUJMRShCVUlMVF9JTl9OT1RJ
RklDQVRJT05TKQorICAgIFVOVVNFRF9QQVJBTShyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKwog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+
KHN0ZDo6bnVsbG9wdCkpOworI2Vsc2UKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigp
LmdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lz
dHJhdGlvbikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNl
cHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJHZXR0aW5nIHB1c2ggc3Vic2NyaXB0aW9u
IHJlcXVpcmVzIGEgc2VydmljZSB3b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFzZXNzaW9uKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFr
ZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYWN0aXZl
IG5ldHdvcmsgc2Vzc2lvbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
ZXNzaW9uKCktPm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5nZXRQdXNoU3Vic2NyaXB0aW9uKHJlZ2lz
dHJhdGlvbi0+c2NvcGVVUkxXaXRob3V0RnJhZ21lbnQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworI2VuZGlmCiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXRQdXNo
UGVybWlzc2lvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIEV4Y2VwdGlvbkRh
dGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDx1aW50OF90LCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKKyNpZiAhRU5BQkxFKEJVSUxUX0lOX05PVElGSUNBVElPTlMpCisgICAgVU5VU0VEX1BB
UkFNKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3Rh
dGljX2Nhc3Q8dWludDhfdD4oUHVzaFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKSk7CisjZWxzZQor
ICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJh
dGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkdldHRpbmcgcHVzaCBwZXJtaXNzaW9uIHN0YXRlIHJlcXVpcmVzIGEgc2VydmljZSB3
b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFzZXNzaW9u
KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9u
RGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYWN0aXZlIG5ldHdvcmsgc2Vzc2lvbiJfcyB9
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXNzaW9uKCktPm5vdGlmaWNhdGlv
bk1hbmFnZXIoKS5nZXRQdXNoUGVybWlzc2lvblN0YXRlKHJlZ2lzdHJhdGlvbi0+c2NvcGVVUkxX
aXRob3V0RnJhZ21lbnQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworI2VuZGlmCiB9
CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQo
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb250ZXh0Q29ubmVjdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hEYWVtb25Db25zdGFudHMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hEYWVtb25Db25zdGFudHMuaAppbmRleCA1ODAyYmIwN2Mz
OWE5Mzk4Y2Y5Yjg4NzA0MWRlOWFiZDI5N2ViYmRmLi5mYzQ3ZGM0ZjEyNzQ4NzI0YjFiNTdjNTcy
YzE0OWIzODc4ZWMwYTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQdXNo
RGFlbW9uQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHVzaERhZW1v
bkNvbnN0YW50cy5oCkBAIC00NCw2ICs0NCwxMCBAQCBlbnVtIGNsYXNzIE1lc3NhZ2VUeXBlIDog
dWludDhfdCB7CiAgICAgVXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24sCiAgICAgSW5qZWN0
UHVzaE1lc3NhZ2VGb3JUZXN0aW5nLAogICAgIEdldFBlbmRpbmdQdXNoTWVzc2FnZXMsCisgICAg
U3Vic2NyaWJlVG9QdXNoU2VydmljZSwKKyAgICBVbnN1YnNjcmliZUZyb21QdXNoU2VydmljZSwK
KyAgICBHZXRQdXNoU3Vic2NyaXB0aW9uLAorICAgIEdldFB1c2hQZXJtaXNzaW9uU3RhdGUKIH07
CiAKIGlubGluZSBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBseShNZXNzYWdlVHlwZSBtZXNzYWdl
VHlwZSkKQEAgLTU1LDYgKzU5LDEwIEBAIGlubGluZSBib29sIG1lc3NhZ2VUeXBlU2VuZHNSZXBs
eShNZXNzYWdlVHlwZSBtZXNzYWdlVHlwZSkKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpSZXF1ZXN0
U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbjoKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpHZXRQ
ZW5kaW5nUHVzaE1lc3NhZ2VzOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkluamVjdFB1c2hNZXNz
YWdlRm9yVGVzdGluZzoKKyAgICBjYXNlIE1lc3NhZ2VUeXBlOjpTdWJzY3JpYmVUb1B1c2hTZXJ2
aWNlOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlOgor
ICAgIGNhc2UgTWVzc2FnZVR5cGU6OkdldFB1c2hTdWJzY3JpcHRpb246CisgICAgY2FzZSBNZXNz
YWdlVHlwZTo6R2V0UHVzaFBlcm1pc3Npb25TdGF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6U2V0RGVidWdNb2RlSXNFbmFibGVkOgogICAgIGNhc2UgTWVz
c2FnZVR5cGU6OlVwZGF0ZUNvbm5lY3Rpb25Db25maWd1cmF0aW9uOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL1dlYlB1c2hEYWVtb24uaAppbmRleCBjYWQ0ODMwNzA1MDhiOTg3MGE5OGZkYWRmM2U2ZTEx
MThiODdkOTQ0Li5hZjMxODU3ZGI4NzM3YTliNjQzOTVmYjAwMDQ3NTBhOTU4ZTU0OGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24uaApAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgIldlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IldlYlB1c2hEYWVtb25Db25zdGFudHMuaCIKICNpbmNsdWRlICJXZWJQdXNoTWVzc2FnZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHVz
aFN1YnNjcmlwdGlvbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC02OCw2ICs3MCwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbihDbGllbnRD
b25uZWN0aW9uKiwgY29uc3QgV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uJik7
CiAgICAgdm9pZCBpbmplY3RQdXNoTWVzc2FnZUZvclRlc3RpbmcoQ2xpZW50Q29ubmVjdGlvbios
IGNvbnN0IFB1c2hNZXNzYWdlRm9yVGVzdGluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgZ2V0UGVuZGluZ1B1c2hNZXNzYWdlcyhDbGllbnRDb25uZWN0aW9u
KiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJQdXNoTWVz
c2FnZT4mKT4mJiByZXBseVNlbmRlcik7CisgICAgdm9pZCBzdWJzY3JpYmVUb1B1c2hTZXJ2aWNl
KENsaWVudENvbm5lY3Rpb24qLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGFwcGxpY2F0aW9uU2VydmVyS2V5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKTsKKyAgICB2b2lkIHVuc3Vic2NyaWJlRnJvbVB1c2hT
ZXJ2aWNlKENsaWVudENvbm5lY3Rpb24qLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBXZWJDb3JlOjpQ
dXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKTsK
KyAgICB2b2lkIGdldFB1c2hTdWJzY3JpcHRpb24oQ2xpZW50Q29ubmVjdGlvbiosIGNvbnN0IFVS
TCYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgRXhwZWN0ZWQ8c3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpOworICAgIHZvaWQgZ2V0UHVzaFBlcm1pc3Npb25TdGF0
ZShDbGllbnRDb25uZWN0aW9uKiwgY29uc3QgVVJMJiBzY29wZVVSTCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBFeHBlY3RlZDx1aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYp
PiYmIHJlcGx5U2VuZGVyKTsKIAogICAgIHZvaWQgYnJvYWRjYXN0RGVidWdNZXNzYWdlKEpTQzo6
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGJyb2FkY2FzdEFsbENvbm5l
Y3Rpb25JZGVudGl0aWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dl
YlB1c2hEYWVtb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0K
aW5kZXggZjMxMjI3ZTk1Y2E3OTg5NTdiYjZiNTBjNTIwZDNiZDI0Zjc5NjFjMC4uYThmZTQ5ZjUy
ZDc2MzI2NjMxY2FjN2Q3NjZjMDkxNDk1ZTljZTU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
V2ViUHVzaERhZW1vbi5tbQpAQCAtMzMsMTEgKzMzLDEzIEBACiAjaW1wb3J0ICJIYW5kbGVNZXNz
YWdlLmgiCiAjaW1wb3J0ICJNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCIKIAorI2ltcG9ydCA8V2Vi
Q29yZS9QdXNoUGVybWlzc2lvblN0YXRlLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5j
aFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbXBv
cnQgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2lt
cG9ydCA8d3RmL1NwYW4uaD4KKyNpbXBvcnQgPHd0Zi9VUkwuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDo6V2ViUHVzaEQ7CiAKQEAgLTg5LDYgKzkxLDI2IEBAIEFSR1VNRU5UUyhQdXNoTWVz
c2FnZUZvclRlc3RpbmcpCiBSRVBMWShib29sKQogRU5ECiAKK0ZVTkNUSU9OKHN1YnNjcmliZVRv
UHVzaFNlcnZpY2UpCitBUkdVTUVOVFMoVVJMLCBWZWN0b3I8dWludDhfdD4pCitSRVBMWShjb25z
dCBFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT4mKQorRU5ECisKK0ZVTkNUSU9OKHVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKQor
QVJHVU1FTlRTKFVSTCwgV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbklkZW50aWZpZXIpCitSRVBM
WShjb25zdCBFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKwor
RlVOQ1RJT04oZ2V0UHVzaFN1YnNjcmlwdGlvbikKK0FSR1VNRU5UUyhVUkwpCitSRVBMWShjb25z
dCBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mKQorRU5ECisKK0ZVTkNUSU9OKGdldFB1c2hQZXJtaXNz
aW9uU3RhdGUpCitBUkdVTUVOVFMoVVJMKQorUkVQTFkoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mKQorRU5ECisKICN1bmRlZiBGVU5DVElPTgogI3VuZGVm
IEFSR1VNRU5UUwogI3VuZGVmIFJFUExZCkBAIC0xMzYsNiArMTU4LDM0IEBAIFdlYlB1c2hEOjpF
bmNvZGVkTWVzc2FnZSBnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzOjplbmNvZGVSZXBseShjb25zdCBW
ZWN0b3I8V2ViS2l0CiAgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1ZmZlcigpOwogfQogCitXZWJQ
dXNoRDo6RW5jb2RlZE1lc3NhZ2Ugc3Vic2NyaWJlVG9QdXNoU2VydmljZTo6ZW5jb2RlUmVwbHko
Y29uc3QgRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGE+JiByZXBseSkKK3sKKyAgICBXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciBlbmNv
ZGVyOworICAgIGVuY29kZXIgPDwgcmVwbHk7CisgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1ZmZl
cigpOworfQorCitXZWJQdXNoRDo6RW5jb2RlZE1lc3NhZ2UgdW5zdWJzY3JpYmVGcm9tUHVzaFNl
cnZpY2U6OmVuY29kZVJlcGx5KGNvbnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+JiByZXBseSkKK3sKKyAgICBXZWJLaXQ6OkRhZW1vbjo6RW5jb2RlciBlbmNvZGVyOwor
ICAgIGVuY29kZXIgPDwgcmVwbHk7CisgICAgcmV0dXJuIGVuY29kZXIudGFrZUJ1ZmZlcigpOwor
fQorCitXZWJQdXNoRDo6RW5jb2RlZE1lc3NhZ2UgZ2V0UHVzaFN1YnNjcmlwdGlvbjo6ZW5jb2Rl
UmVwbHkoY29uc3QgRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0
aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiByZXBseSkKK3sKKyAgICBXZWJLaXQ6
OkRhZW1vbjo6RW5jb2RlciBlbmNvZGVyOworICAgIGVuY29kZXIgPDwgcmVwbHk7CisgICAgcmV0
dXJuIGVuY29kZXIudGFrZUJ1ZmZlcigpOworfQorCitXZWJQdXNoRDo6RW5jb2RlZE1lc3NhZ2Ug
Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZTo6ZW5jb2RlUmVwbHkoY29uc3QgRXhwZWN0ZWQ8dWludDhf
dCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9u
OjpFbmNvZGVyIGVuY29kZXI7CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5j
b2Rlci50YWtlQnVmZmVyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIE1lc3NhZ2VJbmZvCiAKIHRl
bXBsYXRlPHR5cGVuYW1lIEluZm8+CkBAIC0yNzgsNiArMzI4LDE4IEBAIHZvaWQgRGFlbW9uOjpk
ZWNvZGVBbmRIYW5kbGVNZXNzYWdlKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgTWVzc2Fn
ZVR5cGUgbWVzCiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UGVuZGluZ1B1c2hNZXNzYWdlczoK
ICAgICAgICAgaGFuZGxlV2ViUHVzaERNZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpnZXRQ
ZW5kaW5nUHVzaE1lc3NhZ2VzPihjbGllbnRDb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSwgV1RG
TW92ZShyZXBseVNlbmRlcikpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lc3NhZ2VUeXBl
OjpTdWJzY3JpYmVUb1B1c2hTZXJ2aWNlOgorICAgICAgICBoYW5kbGVXZWJQdXNoRE1lc3NhZ2VX
aXRoUmVwbHk8TWVzc2FnZUluZm86OnN1YnNjcmliZVRvUHVzaFNlcnZpY2U+KGNsaWVudENvbm5l
Y3Rpb24sIGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTWVzc2FnZVR5cGU6OlVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlOgor
ICAgICAgICBoYW5kbGVXZWJQdXNoRE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OnVuc3Vi
c2NyaWJlRnJvbVB1c2hTZXJ2aWNlPihjbGllbnRDb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSwg
V1RGTW92ZShyZXBseVNlbmRlcikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1lc3NhZ2VU
eXBlOjpHZXRQdXNoU3Vic2NyaXB0aW9uOgorICAgICAgICBoYW5kbGVXZWJQdXNoRE1lc3NhZ2VX
aXRoUmVwbHk8TWVzc2FnZUluZm86OmdldFB1c2hTdWJzY3JpcHRpb24+KGNsaWVudENvbm5lY3Rp
b24sIGVuY29kZWRNZXNzYWdlLCBXVEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTWVzc2FnZVR5cGU6OkdldFB1c2hQZXJtaXNzaW9uU3RhdGU6CisgICAgICAg
IGhhbmRsZVdlYlB1c2hETWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6Z2V0UHVzaFBlcm1p
c3Npb25TdGF0ZT4oY2xpZW50Q29ubmVjdGlvbiwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVw
bHlTZW5kZXIpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogfQogCkBAIC00MTQsNiArNDc2LDI3
IEBAIHZvaWQgRGFlbW9uOjpnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKENsaWVudENvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIENvbXBsZXRpb25IYW5kCiAgICAgcmVwbHlTZW5kZXIoV1RGTW92ZShyZXN1
bHRNZXNzYWdlcykpOwogfQogCit2b2lkIERhZW1vbjo6c3Vic2NyaWJlVG9QdXNoU2VydmljZShD
bGllbnRDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGFwcGxpY2F0aW9uU2VydmVyS2V5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKQoreworICAgIFVOVVNFRF9QQVJBTShh
cHBsaWNhdGlvblNlcnZlcktleSk7CisgICAgcmVwbHlTZW5kZXIobWFrZVVuZXhwZWN0ZWQoV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSB7IFdlYkNvcmU6Ok5vdEFsbG93ZWRFcnJvciwgIkxhY2sgcGVy
bWlzc2lvbiJfcyB9KSk7Cit9CisKK3ZvaWQgRGFlbW9uOjp1bnN1YnNjcmliZUZyb21QdXNoU2Vy
dmljZShDbGllbnRDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBX
ZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciBwdXNoU3Vic2NyaXB0aW9uSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBFeHBlY3RlZDxib29sLCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKQoreworICAgIHJlcGx5U2VuZGVyKGZh
bHNlKTsKK30KKwordm9pZCBEYWVtb246OmdldFB1c2hTdWJzY3JpcHRpb24oQ2xpZW50Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgY29uc3QgVVJMJiBzY29wZVVSTCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRp
b25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mKT4mJiByZXBseVNlbmRlcikKK3sKKyAg
ICByZXBseVNlbmRlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRh
PiB7IH0pOworfQorCit2b2lkIERhZW1vbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZShDbGllbnRD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+
Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgcmVwbHlTZW5kZXIoc3RhdGljX2Nhc3Q8dWludDhf
dD4oV2ViQ29yZTo6UHVzaFBlcm1pc3Npb25TdGF0ZTo6RGVuaWVkKSk7Cit9CisKIENsaWVudENv
bm5lY3Rpb24qIERhZW1vbjo6dG9DbGllbnRDb25uZWN0aW9uKHhwY19jb25uZWN0aW9uX3QgY29u
bmVjdGlvbikKIHsKICAgICBhdXRvIGNsaWVudENvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAu
Z2V0KGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGExYzlhYjNjNTg1MzIzOWU5NWM1NDdmOTk5ODNlOTYz
ZWI4ZTQ1YzYuLmZkZTYwOTExY2NhZTM5MzJmYjc0MGU0YzlmMDcwY2JiMWNiMjJlOWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMi0wMS0yOCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4K
KworICAgICAgICBGb3J3YXJkIG1lc3NhZ2VzIGZyb20gTmV0d29ya1Byb2Nlc3MgdG8gd2VicHVz
aGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSBleGlzdGluZyB0ZXN0cyB0byB0ZXN0IGZvciBBYm9ydEVycm9yLCBzaW5jZSB0aGF0J3MgdGhl
IGV4Y2VwdGlvbiB0eXBlIHNwZWNpZmllZCBpbgorICAgICAgICB0aGUgc3BlYy4KKworICAgICAg
ICAqIGh0dHAvd3B0L3B1c2gtYXBpL3B1c2hNYW5hZ2VyLmFueS5qczoKKyAgICAgICAgKHByb21p
c2VfdGVzdC5hc3luYyB0ZXN0KToKKwogMjAyMi0wMS0yNCAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcGl4ZWwgdG9sZXJhbmNlIHRvIHNvbWUg
Y29tcG9zaXRpbmcgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gt
YXBpL3B1c2hNYW5hZ2VyLmFueS5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gtYXBpL3B1
c2hNYW5hZ2VyLmFueS5qcwppbmRleCA0ZmY1ODhjMTQwYmVjZDBkY2U0NjM0NDYxYzM0ZjVjZjcz
NTAxYjFhLi5kN2ViODQ1ZDQ4OTAwZTk1MzkxNDA2ZTVjZDkxYWI3MWNiODcwNWQ5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuanMKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVzaC1hcGkvcHVzaE1hbmFnZXIuYW55LmpzCkBAIC05
OSw3ICs5OSw3IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogCiBwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICAvLyBUT0RPOiBjaGFuZ2UgdGhpcyB0byBtYWtlIHN1
cmUgdGhhdCBzdWJzY3JpcHRpb24gaXMgdmFsaWQgb25jZSB3ZSBmdWxseSBpbXBsZW1lbnQgc3Vi
c2NyaWJlLgotICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHRlc3QsICJOb3RBbGxvd2Vk
RXJyb3IiLCBwdXNoTWFuYWdlci5zdWJzY3JpYmUoeworICAgIHJldHVybiBwcm9taXNlX3JlamVj
dHNfZG9tKHRlc3QsICJBYm9ydEVycm9yIiwgcHVzaE1hbmFnZXIuc3Vic2NyaWJlKHsKICAgICAg
ICAgdXNlclZpc2libGVPbmx5OiB0cnVlLAogICAgICAgICBhcHBsaWNhdGlvblNlcnZlcktleTog
VkFMSURfU0VSVkVSX0tFWQogICAgIH0pKTsKQEAgLTEwNyw3ICsxMDcsNyBAQCBwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAg
ICAgLy8gVE9ETzogY2hhbmdlIHRoaXMgdG8gbWFrZSBzdXJlIHRoYXQgc3Vic2NyaXB0aW9uIGlz
IHZhbGlkIG9uY2Ugd2UgZnVsbHkgaW1wbGVtZW50IHN1YnNjcmliZS4KLSAgICByZXR1cm4gcHJv
bWlzZV9yZWplY3RzX2RvbSh0ZXN0LCAiTm90QWxsb3dlZEVycm9yIiwgcHVzaE1hbmFnZXIuc3Vi
c2NyaWJlKHsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0ZXN0LCAiQWJvcnRFcnJv
ciIsIHB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CiAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1
ZSwKICAgICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZBTElEX0JBU0U2NF9TRVJWRVJfS0VZ
CiAgICAgfSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450350</attachid>
            <date>2022-01-29 21:55:14 -0800</date>
            <delta_ts>2022-01-29 22:40:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235855-20220129215513.patch</filename>
            <type>text/plain</type>
            <size>29472</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEwZWQwNmQ5YTYyOGYy
MmFhZTliZTNmODZiOGIyMjk5ODc4YjQyNC4uZWVkYTlkMDZhZjk4ZGUyMDJkMjY4ZGFhZjBjOGJl
M2E3NGU1MDhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTI5ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBO
ZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBFeGNlcHRpb25EYXRhIHVzZSBtb2Rlcm4gZW5jb2Rpbmcg
c2luY2UgdGhlIGRhZW1vbiBJUEMgZW5jb2RlciBkb2Vzbid0IHN1cHBvcnQgbGVnYWN5CisgICAg
ICAgIGVuY29kaW5nLgorCisgICAgICAgICogZG9tL0V4Y2VwdGlvbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE6OmRlY29kZSk6CisKIDIwMjItMDEtMjkgIEFsZXhleSBT
aHZheWthICA8YXNodmF5a2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJJRExdIEFkZCBhIHNl
bnNpYmxlIGVycm9yIG1lc3NhZ2UgZm9yIGEgcHJpbWl0aXZlIG5vbi1udWxsIEV2ZW50TGlzdGVu
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZDE4YmQ3NGJlZTcwMDg2NDliZjU2YWU5NTc0MWZiMWU0OTM0YjdkYi4u
NWZhMDQ1ZGY4OGI0ZTQxM2JiNzQyYmE0NDk1ZTJlZjVkOTk1YTE2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMi0wMS0yOSAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBGb3J3YXJkIG1lc3NhZ2VzIGZyb20gTmV0d29ya1Byb2Nlc3MgdG8gd2VicHVzaGQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZm9yd2Fy
ZHMgUHVzaE1hbmFnZXIgYW5kIFB1c2hTdWJzY3JpcHRpb24tcmVsYXRlZCBJUEMgZnJvbSBOZXR3
b3JrUHJvY2VzcyB0byB3ZWJwdXNoZC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBpbiB3
ZWJwdXNoZCBhcmUgc3R1YnMgaW4gdGhpcyBwYXRjaCwgYW5kIGFzIGEgcmVzdWx0IHRoZXJlIGFy
ZSBubyBuZXcKKyAgICAgICAgdGVzdHMuIFRoZSBpbXBsZW1lbnRhdGlvbnMgYW5kIHRlc3RzIHdp
bGwgYmUgZmlsbGVkIG91dCBpbiBhIGZ1dHVyZSBwYXRjaC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c3Vic2NyaWJlVG9QdXNo
U2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjp1
bnN1YnNjcmliZUZyb21QdXNoU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpnZXRQdXNoU3Vic2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlv
bjo6c3Vic2NyaWJlVG9QdXNoU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6dW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hTdWJzY3JpcHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQdXNoRGFlbW9uQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlB1c2hEOjptZXNzYWdlVHlwZVNlbmRzUmVwbHkpOgorICAgICAgICAqIHdlYnB1c2hk
L1dlYlB1c2hEYWVtb24uaDoKKyAgICAgICAgKiB3ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgor
ICAgICAgICAoV2ViUHVzaEQ6Ok1lc3NhZ2VJbmZvOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlOjpl
bmNvZGVSZXBseSk6CisgICAgICAgIChXZWJQdXNoRDo6TWVzc2FnZUluZm86OnVuc3Vic2NyaWJl
RnJvbVB1c2hTZXJ2aWNlOjplbmNvZGVSZXBseSk6CisgICAgICAgIChXZWJQdXNoRDo6TWVzc2Fn
ZUluZm86OmdldFB1c2hTdWJzY3JpcHRpb246OmVuY29kZVJlcGx5KToKKyAgICAgICAgKFdlYlB1
c2hEOjpNZXNzYWdlSW5mbzo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZTo6ZW5jb2RlUmVwbHkpOgor
ICAgICAgICAoV2ViUHVzaEQ6OkRhZW1vbjo6ZGVjb2RlQW5kSGFuZGxlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJQdXNoRDo6RGFlbW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKToKKyAgICAgICAg
KFdlYlB1c2hEOjpEYWVtb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKToKKyAgICAgICAg
KFdlYlB1c2hEOjpEYWVtb246OmdldFB1c2hTdWJzY3JpcHRpb24pOgorICAgICAgICAoV2ViUHVz
aEQ6OkRhZW1vbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDEtMjggIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJv
XSBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IHBpeGVsIGR1bXAgZm9yIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNl
cHRpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IGYz
NDY2N2Y5YmZlMGNjYzBjNTYwNTdjYTA2YmIyMzVlYmU5NTA5NWUuLmZjNzk4YjM2NGQzYTc4Zjcx
YTNjMDk5YWQ5ZWRmZWIyMWMwNDQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
eGNlcHRpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApA
QCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgRXhjZXB0aW9uRGF0YSB7CiAgICAgV0VCQ09SRV9FWFBP
UlQgRXhjZXB0aW9uRGF0YSBpc29sYXRlZENvcHkoKSBjb25zdDsKIAogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBFeGNlcHRpb25EYXRhJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gZGVjb2RlKERlY29kZXImKTsKIAogICAgIEV4
Y2VwdGlvbiB0b0V4Y2VwdGlvbigpIGNvbnN0CiAgICAgewpAQCAtNTMsMTUgKzUzLDE5IEBAIHZv
aWQgRXhjZXB0aW9uRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB9CiAKIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIEV4Y2VwdGlvbkRhdGE6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBFeGNlcHRpb25EYXRhJiBkYXRhKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25E
YXRhPiBFeGNlcHRpb25EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGRhdGEuY29kZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IGNvZGU7CisgICAgZGVjb2RlciA+PiBjb2RlOwor
ICAgIGlmICghY29kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoZGF0YS5tZXNzYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2FnZTsK
KyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFdURk1vdmUoKmNvZGUpLCBX
VEZNb3ZlKCptZXNzYWdlKSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YmMxNWNmYjQ1
MDY1NmJjNWM5Y2U4NTA1NGVjNDMyNmYxMTkwYmM5Li4xN2NlZjkxNGFiODZjYjAzN2M3MTZmZWRj
YzJkNjM2ZjczMjllZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIu
aCIKICNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rp
b25Db25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaE1lc3NhZ2UuaCIKQEAgLTEzMiw2
ICsxMzMsNDYgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5v
dGlmaWNhdGlvbihjb25zdCBVVUlEJikKICAgICAgICAgcmV0dXJuOwogfQogCit2b2lkIE5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFVSTCYmIHNjb3Bl
VVJMLCBWZWN0b3I8dWludDhfdD4mJiBhcHBsaWNhdGlvblNlcnZlcktleSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQo
RXhjZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBjb25uZWN0aW9uIHRvIHB1c2ggZGFlbW9u
Il9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbmRNZXNzYWdlV2l0aFJl
cGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6U3Vic2NyaWJlVG9QdXNoU2VydmljZT4oV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2NvcGVVUkwpLCBXVEZNb3ZlKGFwcGxpY2F0
aW9uU2VydmVyS2V5KSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnVu
c3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBQdXNoU3Vic2NyaXB0aW9u
SWRlbnRpZmllciBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIk5v
IGNvbm5lY3Rpb24gdG8gcHVzaCBkYWVtb24iX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlOjpVbnN1
YnNjcmliZUZyb21QdXNoU2VydmljZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1v
dmUoc2NvcGVVUkwpLCBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hTdWJzY3JpcHRpb24oVVJMJiYgc2NvcGVV
UkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQdXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBBYm9ydEVycm9y
LCAiTm8gY29ubmVjdGlvbiB0byBwdXNoIGRhZW1vbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6
OkdldFB1c2hTdWJzY3JpcHRpb24+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEZNb3Zl
KHNjb3BlVVJMKSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1
c2hQZXJtaXNzaW9uU3RhdGUoVVJMJiYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBj
b25uZWN0aW9uIHRvIHB1c2ggZGFlbW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6R2V0UHVz
aFBlcm1pc3Npb25TdGF0ZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2Nv
cGVVUkwpKTsKK30KKwogdGVtcGxhdGU8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
LCB0eXBlbmFtZS4uLiBBcmdzPgogdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2Vu
ZE1lc3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CkBAIC0yMDcsNiArMjQ4LDU4IEBAIHRl
bXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJj4gewog
ICAgIH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7Cisg
ICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
RGF0YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4g
ZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRl
Y29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsK
KyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
RXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRl
Y29kZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNv
dWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRl
PD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVz
aFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7CisgICAgc3Rh
dGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0
aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRh
dGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsg
QWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0K
K307CisKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHVpbnQ4X3QsIFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFl
bW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1
aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAg
ICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9z
IH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZSgqZGF0YSkpOworICAgIH0KK307CisKIHRlbXBsYXRlPFdlYlB1c2hEOjpNZXNzYWdlVHlwZSBt
ZXNzYWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgogdm9p
ZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdz
JiYuLi4gYXJncykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgKaW5kZXggZjFmZGVkZTAyMDZjOTRlMmY5YjFjYzhjMDFkZjQ2ZTcyNGRkZmY1Zi4u
YTkyYmQyZjViZDE3N2IxZGE4ZjVhMjIxNjE4YTg3ZWJlMWViZWYwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTMwLDcgKzMwLDkgQEAKICNpbmNs
dWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQ
dXNoRGFlbW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmlj
YXRpb25EaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1c2hTdWJzY3JpcHRpb25EYXRh
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTU1LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE9yaWdpbnNXaXRoUHVz
aEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mKT4mJik7CiAgICAgdm9pZCBnZXRQ
ZW5kaW5nUHVzaE1lc3NhZ2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdl
YlB1c2hNZXNzYWdlPiYpPiYmKTsKIAorICAgIHZvaWQgc3Vic2NyaWJlVG9QdXNoU2VydmljZShV
UkwmJiBzY29wZVVSTCwgVmVjdG9yPHVpbnQ4X3Q+JiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRh
dGEsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIHVuc3Vic2NyaWJl
RnJvbVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiYmKT4mJik7CisgICAgdm9pZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFVS
TCYmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiYmKT4mJik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFVSTCYmIHNjb3BlVVJM
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGE+JiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlcihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFt
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZTk4N2Jk
YzI3NmEwNGVhZDVmMmIwODFiOGY5NDdhZTNkYjc5NDJmZC4uYjM5MGNhZmE2MDQxZjNlODAxZmQy
ZDNhOGMyNDNiNTU0NzUxMjI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpAQCAtNDQ4
LDI0ICs0NDksOTMgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVRocm90dGxl
U3RhdGUoKQogICAgIH0KIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN1YnNjcmli
ZVRvUHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIFZlY3Rvcjx1aW50OF90PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1
c2hTdWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiYmIGFwcGxpY2F0aW9uU2VydmVyS2V5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1c2hTdWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25E
YXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiUHVzaCBwZXJt
aXNzaW9uIHdhcyBkZW5pZWQiX3MgfSkpOworI2lmICFFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FU
SU9OUykKKyAgICBVTlVTRURfUEFSQU0ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgVU5V
U0VEX1BBUkFNKGFwcGxpY2F0aW9uU2VydmVyS2V5KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIlB1c2ggc2VydmljZSBu
b3QgaW1wbGVtZW50ZWQiX3MgfSkpOworI2Vsc2UKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNl
cnZlcigpLmdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAo
IXJlZ2lzdHJhdGlvbikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJTdWJzY3JpYmluZyBmb3IgcHVz
aCByZXF1aXJlcyBhbiBhY3RpdmUgc2VydmljZSB3b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKCFzZXNzaW9uKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAi
Tm8gYWN0aXZlIG5ldHdvcmsgc2Vzc2lvbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBzZXNzaW9uKCktPm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5zdWJzY3JpYmVUb1B1c2hT
ZXJ2aWNlKHJlZ2lzdHJhdGlvbi0+c2NvcGVVUkxXaXRob3V0RnJhZ21lbnQoKSwgV1RGTW92ZShh
cHBsaWNhdGlvblNlcnZlcktleSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyNlbmRp
ZgogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmVGcm9tUHVzaFNl
cnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPGJvb2wsIEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHN1YnNjcmlwdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgRXhjZXB0aW9u
RGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisjaWYgIUVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKQorICAgIFVOVVNFRF9QQVJBTShyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsK
KyAgICBVTlVTRURfUEFSQU0oc3Vic2NyaXB0aW9uSWRlbnRpZmllcik7CisKICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CisjZWxzZQorICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVy
KCkuZ2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVn
aXN0cmF0aW9uKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4
Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIlVuc3Vic2NyaWJpbmcgZnJvbSBwdXNo
IHJlcXVpcmVzIGEgc2VydmljZSB3b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFzZXNzaW9uKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFr
ZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYWN0aXZl
IG5ldHdvcmsgc2Vzc2lvbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
ZXNzaW9uKCktPm5vdGlmaWNhdGlvbk1hbmFnZXIoKS51bnN1YnNjcmliZUZyb21QdXNoU2Vydmlj
ZShyZWdpc3RyYXRpb24tPnNjb3BlVVJMV2l0aG91dEZyYWdtZW50KCksIHN1YnNjcmlwdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyNlbmRpZgogfQogCi12b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25EYXRhPiwgRXhjZXB0aW9uRGF0
YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
Z2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBFeGNlcHRpb25EYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyNpZiAhRU5BQkxFKEJVSUxUX0lOX05PVElG
SUNBVElPTlMpCisgICAgVU5VU0VEX1BBUkFNKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uRGF0YT4o
c3RkOjpudWxsb3B0KSk7CisjZWxzZQorICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVyKCku
Z2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0
cmF0aW9uKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2Vw
dGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkdldHRpbmcgcHVzaCBzdWJzY3JpcHRpb24g
cmVxdWlyZXMgYSBzZXJ2aWNlIHdvcmtlciJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoIXNlc3Npb24oKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtl
VW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUg
bmV0d29yayBzZXNzaW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNl
c3Npb24oKS0+bm90aWZpY2F0aW9uTWFuYWdlcigpLmdldFB1c2hTdWJzY3JpcHRpb24ocmVnaXN0
cmF0aW9uLT5zY29wZVVSTFdpdGhvdXRGcmFnbWVudCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisjZW5kaWYKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hQ
ZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDhfdCwgRXhjZXB0aW9uRGF0
YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPHVpbnQ4X3QsIEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogeworI2lmICFFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBVTlVTRURfUEFS
QU0ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGF0
aWNfY2FzdDx1aW50OF90PihQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKKyNlbHNlCisg
ICAgYXV0byByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0
aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiR2V0dGluZyBwdXNoIHBlcm1pc3Npb24gc3RhdGUgcmVxdWlyZXMgYSBzZXJ2aWNlIHdv
cmtlciJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXNlc3Npb24o
KSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25E
YXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgbmV0d29yayBzZXNzaW9uIl9zIH0p
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlc3Npb24oKS0+bm90aWZpY2F0aW9u
TWFuYWdlcigpLmdldFB1c2hQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLT5zY29wZVVSTFdp
dGhvdXRGcmFnbWVudCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisjZW5kaWYKIH0K
IAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIGNvbnRleHRDb25uZWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oCmluZGV4IDU4MDJiYjA3YzM5
YTkzOThjZjliODg3MDQxZGU5YWJkMjk3ZWJiZGYuLmZjNDdkYzRmMTI3NDg3MjRiMWI1N2M1NzJj
MTQ5YjM4NzhlYzBhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hE
YWVtb25Db25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQdXNoRGFlbW9u
Q29uc3RhbnRzLmgKQEAgLTQ0LDYgKzQ0LDEwIEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1
aW50OF90IHsKICAgICBVcGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbiwKICAgICBJbmplY3RQ
dXNoTWVzc2FnZUZvclRlc3RpbmcsCiAgICAgR2V0UGVuZGluZ1B1c2hNZXNzYWdlcywKKyAgICBT
dWJzY3JpYmVUb1B1c2hTZXJ2aWNlLAorICAgIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlLAor
ICAgIEdldFB1c2hTdWJzY3JpcHRpb24sCisgICAgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZQogfTsK
IAogaW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VU
eXBlKQpAQCAtNTUsNiArNTksMTAgQEAgaW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5
KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlJlcXVlc3RT
eXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkdldFBl
bmRpbmdQdXNoTWVzc2FnZXM6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6SW5qZWN0UHVzaE1lc3Nh
Z2VGb3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN1YnNjcmliZVRvUHVzaFNlcnZp
Y2U6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6VW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2U6Cisg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UHVzaFN1YnNjcmlwdGlvbjoKKyAgICBjYXNlIE1lc3Nh
Z2VUeXBlOjpHZXRQdXNoUGVybWlzc2lvblN0YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXREZWJ1Z01vZGVJc0VuYWJsZWQ6CiAgICAgY2FzZSBNZXNz
YWdlVHlwZTo6VXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb246CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvV2ViUHVzaERhZW1vbi5oCmluZGV4IGNhZDQ4MzA3MDUwOGI5ODcwYTk4ZmRhZGYzZTZlMTEx
OGI4N2Q5NDQuLmFmMzE4NTdkYjg3MzdhOWI2NDM5NWZiMDAwNDc1MGE5NThlNTQ4ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5j
bHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdXNo
U3Vic2NyaXB0aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTY4LDYgKzcwLDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvbm5lY3Rpb25Db25maWd1cmF0aW9uKENsaWVudENv
bm5lY3Rpb24qLCBjb25zdCBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24mKTsK
ICAgICB2b2lkIGluamVjdFB1c2hNZXNzYWdlRm9yVGVzdGluZyhDbGllbnRDb25uZWN0aW9uKiwg
Y29uc3QgUHVzaE1lc3NhZ2VGb3JUZXN0aW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKENsaWVudENvbm5lY3Rpb24q
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNz
YWdlPiYpPiYmIHJlcGx5U2VuZGVyKTsKKyAgICB2b2lkIHN1YnNjcmliZVRvUHVzaFNlcnZpY2Uo
Q2xpZW50Q29ubmVjdGlvbiosIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
RXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpOworICAgIHZvaWQgdW5zdWJzY3JpYmVGcm9tUHVzaFNl
cnZpY2UoQ2xpZW50Q29ubmVjdGlvbiosIGNvbnN0IFVSTCYgc2NvcGVVUkwsIFdlYkNvcmU6OlB1
c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4
cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpOwor
ICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0aW9uKiwgY29uc3QgVVJM
JiBzY29wZVVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBFeHBlY3RlZDxzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT4mKT4mJiByZXBseVNlbmRlcik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRl
KENsaWVudENvbm5lY3Rpb24qLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+
JiYgcmVwbHlTZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlNDOjpN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYnJvYWRjYXN0QWxsQ29ubmVj
dGlvbklkZW50aXRpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2Vi
UHVzaERhZW1vbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQpp
bmRleCBmMzEyMjdlOTVjYTc5ODk1N2JiNmI1MGM1MjBkM2JkMjRmNzk2MWMwLi5hOGZlNDlmNTJk
NzYzMjY2MzFjYWM3ZDc2NmMwOTE0OTVlOWNlNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9X
ZWJQdXNoRGFlbW9uLm1tCkBAIC0zMywxMSArMzMsMTMgQEAKICNpbXBvcnQgIkhhbmRsZU1lc3Nh
Z2UuaCIKICNpbXBvcnQgIk1vY2tBcHBCdW5kbGVSZWdpc3RyeS5oIgogCisjaW1wb3J0IDxXZWJD
b3JlL1B1c2hQZXJtaXNzaW9uU3RhdGUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNo
U2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9y
dCA8d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1w
b3J0IDx3dGYvU3Bhbi5oPgorI2ltcG9ydCA8d3RmL1VSTC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJQdXNoRDsKIApAQCAtODksNiArOTEsMjYgQEAgQVJHVU1FTlRTKFB1c2hNZXNz
YWdlRm9yVGVzdGluZykKIFJFUExZKGJvb2wpCiBFTkQKIAorRlVOQ1RJT04oc3Vic2NyaWJlVG9Q
dXNoU2VydmljZSkKK0FSR1VNRU5UUyhVUkwsIFZlY3Rvcjx1aW50OF90PikKK1JFUExZKGNvbnN0
IEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiYpCitFTkQKKworRlVOQ1RJT04odW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpCitB
UkdVTUVOVFMoVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcikKK1JFUExZ
KGNvbnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JikKK0VORAorCitG
VU5DVElPTihnZXRQdXNoU3Vic2NyaXB0aW9uKQorQVJHVU1FTlRTKFVSTCkKK1JFUExZKGNvbnN0
IEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKworRlVOQ1RJT04oZ2V0UHVzaFBlcm1pc3Np
b25TdGF0ZSkKK0FSR1VNRU5UUyhVUkwpCitSRVBMWShjb25zdCBFeHBlY3RlZDx1aW50OF90LCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKwogI3VuZGVmIEZVTkNUSU9OCiAjdW5kZWYg
QVJHVU1FTlRTCiAjdW5kZWYgUkVQTFkKQEAgLTEzNiw2ICsxNTgsMzQgQEAgV2ViUHVzaEQ6OkVu
Y29kZWRNZXNzYWdlIGdldFBlbmRpbmdQdXNoTWVzc2FnZXM6OmVuY29kZVJlcGx5KGNvbnN0IFZl
Y3RvcjxXZWJLaXQKICAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7CiB9CiAKK1dlYlB1
c2hEOjpFbmNvZGVkTWVzc2FnZSBzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlOjplbmNvZGVSZXBseShj
b25zdCBFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29k
ZXI7CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVy
KCk7Cit9CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSB1bnN1YnNjcmliZUZyb21QdXNoU2Vy
dmljZTo6ZW5jb2RlUmVwbHkoY29uc3QgRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7Cisg
ICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7Cit9
CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBnZXRQdXNoU3Vic2NyaXB0aW9uOjplbmNvZGVS
ZXBseShjb25zdCBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRp
b25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6
RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1
cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7Cit9CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBn
ZXRQdXNoUGVybWlzc2lvblN0YXRlOjplbmNvZGVSZXBseShjb25zdCBFeHBlY3RlZDx1aW50OF90
LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYgcmVwbHkpCit7CisgICAgV2ViS2l0OjpEYWVtb246
OkVuY29kZXIgZW5jb2RlcjsKKyAgICBlbmNvZGVyIDw8IHJlcGx5OworICAgIHJldHVybiBlbmNv
ZGVyLnRha2VCdWZmZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZUluZm8KIAogdGVt
cGxhdGU8dHlwZW5hbWUgSW5mbz4KQEAgLTI3OCw2ICszMjgsMTggQEAgdm9pZCBEYWVtb246OmRl
Y29kZUFuZEhhbmRsZU1lc3NhZ2UoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCBNZXNzYWdl
VHlwZSBtZXMKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzOgog
ICAgICAgICBoYW5kbGVXZWJQdXNoRE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmdldFBl
bmRpbmdQdXNoTWVzc2FnZXM+KGNsaWVudENvbm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlLCBXVEZN
b3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVzc2FnZVR5cGU6
OlN1YnNjcmliZVRvUHVzaFNlcnZpY2U6CisgICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdp
dGhSZXBseTxNZXNzYWdlSW5mbzo6c3Vic2NyaWJlVG9QdXNoU2VydmljZT4oY2xpZW50Q29ubmVj
dGlvbiwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6VW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2U6Cisg
ICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6dW5zdWJz
Y3JpYmVGcm9tUHVzaFNlcnZpY2U+KGNsaWVudENvbm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlLCBX
VEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVzc2FnZVR5
cGU6OkdldFB1c2hTdWJzY3JpcHRpb246CisgICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdp
dGhSZXBseTxNZXNzYWdlSW5mbzo6Z2V0UHVzaFN1YnNjcmlwdGlvbj4oY2xpZW50Q29ubmVjdGlv
biwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UHVzaFBlcm1pc3Npb25TdGF0ZToKKyAgICAgICAg
aGFuZGxlV2ViUHVzaERNZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpnZXRQdXNoUGVybWlz
c2lvblN0YXRlPihjbGllbnRDb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBs
eVNlbmRlcikpOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTQxNCw2ICs0NzYsMjcg
QEAgdm9pZCBEYWVtb246OmdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29tcGxldGlvbkhhbmQKICAgICByZXBseVNlbmRlcihXVEZNb3ZlKHJlc3Vs
dE1lc3NhZ2VzKSk7CiB9CiAKK3ZvaWQgRGFlbW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKENs
aWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGFw
cGxpY2F0aW9uU2VydmVyS2V5KTsKKyAgICByZXBseVNlbmRlcihtYWtlVW5leHBlY3RlZChXZWJD
b3JlOjpFeGNlcHRpb25EYXRhIHsgV2ViQ29yZTo6Tm90QWxsb3dlZEVycm9yLCAiTGFjayBwZXJt
aXNzaW9uIl9zIH0pKTsKK30KKwordm9pZCBEYWVtb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2
aWNlKENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgcmVwbHlTZW5kZXIoZmFs
c2UpOworfQorCit2b2lkIERhZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlv
bkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKQoreworICAg
IHJlcGx5U2VuZGVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+
IHsgfSk7Cit9CisKK3ZvaWQgRGFlbW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKENsaWVudENv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4m
KT4mJiByZXBseVNlbmRlcikKK3sKKyAgICByZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90
PihXZWJDb3JlOjpQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKK30KKwogQ2xpZW50Q29u
bmVjdGlvbiogRGFlbW9uOjp0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25u
ZWN0aW9uKQogewogICAgIGF1dG8gY2xpZW50Q29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5n
ZXQoY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGEyMmMwNzU1MjIyNGQzNWY2MzJiMmU4MThjOTE0ZGRi
Y2QxZTVhYi4uNWFmMzU4YzE2NmY2ZmEyNTdmMGU0OTljYWMyZTFmZjRmYjUxNWY1NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTI5ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgor
CisgICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNo
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IGV4aXN0aW5nIHRlc3RzIHRvIHRlc3QgZm9yIEFib3J0RXJyb3IsIHNpbmNlIHRoYXQncyB0aGUg
ZXhjZXB0aW9uIHR5cGUgc3BlY2lmaWVkIGluCisgICAgICAgIHRoZSBzcGVjLgorCisgICAgICAg
ICogaHR0cC93cHQvcHVzaC1hcGkvcHVzaE1hbmFnZXIuYW55LmpzOgorICAgICAgICAocHJvbWlz
ZV90ZXN0LmFzeW5jIHRlc3QpOgorCiAyMDIyLTAxLTI5ICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZh
eWthQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBBZGQgYSBzZW5zaWJsZSBlcnJvciBt
ZXNzYWdlIGZvciBhIHByaW1pdGl2ZSBub24tbnVsbCBFdmVudExpc3RlbmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuanMKaW5kZXggNGZmNTg4
YzE0MGJlY2QwZGNlNDYzNDQ2MWMzNGY1Y2Y3MzUwMWIxYS4uZDdlYjg0NWQ0ODkwMGU5NTM5MTQw
NmU1Y2Q5MWFiNzFjYjg3MDVkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVz
aC1hcGkvcHVzaE1hbmFnZXIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gt
YXBpL3B1c2hNYW5hZ2VyLmFueS5qcwpAQCAtOTksNyArOTksNyBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgLy8g
VE9ETzogY2hhbmdlIHRoaXMgdG8gbWFrZSBzdXJlIHRoYXQgc3Vic2NyaXB0aW9uIGlzIHZhbGlk
IG9uY2Ugd2UgZnVsbHkgaW1wbGVtZW50IHN1YnNjcmliZS4KLSAgICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzX2RvbSh0ZXN0LCAiTm90QWxsb3dlZEVycm9yIiwgcHVzaE1hbmFnZXIuc3Vic2NyaWJl
KHsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0ZXN0LCAiQWJvcnRFcnJvciIsIHB1
c2hNYW5hZ2VyLnN1YnNjcmliZSh7CiAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwKICAg
ICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZBTElEX1NFUlZFUl9LRVkKICAgICB9KSk7CkBA
IC0xMDcsNyArMTA3LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAKIHByb21p
c2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIC8vIFRPRE86IGNoYW5nZSB0aGlzIHRvIG1h
a2Ugc3VyZSB0aGF0IHN1YnNjcmlwdGlvbiBpcyB2YWxpZCBvbmNlIHdlIGZ1bGx5IGltcGxlbWVu
dCBzdWJzY3JpYmUuCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odGVzdCwgIk5vdEFs
bG93ZWRFcnJvciIsIHB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0c19kb20odGVzdCwgIkFib3J0RXJyb3IiLCBwdXNoTWFuYWdlci5zdWJzY3JpYmUoewog
ICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCiAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVy
S2V5OiBWQUxJRF9CQVNFNjRfU0VSVkVSX0tFWQogICAgIH0pKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvaHR0cC93cHQvcHVzaC1hcGkvcHVzaE1hbmFnZXIuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaHR0cC93cHQvcHVzaC1hcGkv
cHVzaE1hbmFnZXIuYW55LWV4cGVjdGVkLnR4dAppbmRleCAyYTY2NDE4ZGM1NWVmY2Q1ZGM0MGE1
N2RkNzg4MTQ5Yzk5ZDNkNGEwLi42YWNlMjRkZTE3MTdhYzQ2NjcxNWVmMjMwOWU3YjM3MjYzMGI2
OTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2h0dHAvd3B0L3B1c2gt
YXBpL3B1c2hNYW5hZ2VyLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnktZXhwZWN0ZWQudHh0CkBA
IC05LDcgKzksNyBAQCBQQVNTIHN1YnNjcmliZSByZXF1aXJlcyBhcHBsaWNhdGlvblNlcnZlcktl
eQogUEFTUyBhcHBsaWNhdGlvblNlcnZlcktleSBzdHJpbmcgc2hvdWxkIGJlIGJhc2U2NHVybC1l
bmNvZGVkCiBQQVNTIGFwcGxpY2F0aW9uU2VydmVyS2V5IGJ1ZmZlciBzaG91bGQgYmUgYSB2YWxp
ZCBwb2ludCBvbiB0aGUgUC0yNTYgY3VydmUKIFBBU1MgYXBwbGljYXRpb25TZXJ2ZXJLZXkgc3Ry
aW5nIHNob3VsZCBiZSBhIHZhbGlkIHBvaW50IG9uIHRoZSBQLTI1NiBjdXJ2ZQotRkFJTCBjYW4g
c3Vic2NyaWJlIHdpdGggdmFsaWQgYXBwbGljYXRpb25TZXJ2ZXJLZXkgYnVmZmVyIHByb21pc2Vf
cmVqZWN0c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJJbnZhbGlkQWNjZXNzRXJyb3I6IGFwcGxpY2F0aW9uU2VydmVyS2V5IG11c3QgY29udGFp
biBhIHZhbGlkIFAtMjU2IHB1YmxpYyBrZXkiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE5v
dEFsbG93ZWRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE1LCBleHBlY3RlZCAw
Ci1GQUlMIGNhbiBzdWJzY3JpYmUgd2l0aCB2YWxpZCBhcHBsaWNhdGlvblNlcnZlcktleSBzdHJp
bmcgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogYXBwbGljYXRpb25TZXJ2ZXJLZXkg
bXVzdCBjb250YWluIGEgdmFsaWQgUC0yNTYgcHVibGljIGtleSIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gTm90QWxsb3dlZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTUs
IGV4cGVjdGVkIDAKK0ZBSUwgY2FuIHN1YnNjcmliZSB3aXRoIHZhbGlkIGFwcGxpY2F0aW9uU2Vy
dmVyS2V5IGJ1ZmZlciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBhcHBsaWNhdGlv
blNlcnZlcktleSBtdXN0IGNvbnRhaW4gYSB2YWxpZCBQLTI1NiBwdWJsaWMga2V5IiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwg
dG8gMTUsIGV4cGVjdGVkIDIwCitGQUlMIGNhbiBzdWJzY3JpYmUgd2l0aCB2YWxpZCBhcHBsaWNh
dGlvblNlcnZlcktleSBzdHJpbmcgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogYXBw
bGljYXRpb25TZXJ2ZXJLZXkgbXVzdCBjb250YWluIGEgdmFsaWQgUC0yNTYgcHVibGljIGtleSIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gQWJvcnRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlz
IGVxdWFsIHRvIDE1LCBleHBlY3RlZCAyMAogUEFTUyB1bnJlZ2lzdGVyIHNlcnZpY2Ugd29ya2Vy
CiAK
</data>
<flag name="commit-queue"
          id="476747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450354</attachid>
            <date>2022-01-29 22:40:14 -0800</date>
            <delta_ts>2022-02-01 16:48:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235855-20220129224013.patch</filename>
            <type>text/plain</type>
            <size>31398</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEwZWQwNmQ5YTYyOGYy
MmFhZTliZTNmODZiOGIyMjk5ODc4YjQyNC4uZWVkYTlkMDZhZjk4ZGUyMDJkMjY4ZGFhZjBjOGJl
M2E3NGU1MDhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTI5ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBO
ZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNoZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBFeGNlcHRpb25EYXRhIHVzZSBtb2Rlcm4gZW5jb2Rpbmcg
c2luY2UgdGhlIGRhZW1vbiBJUEMgZW5jb2RlciBkb2Vzbid0IHN1cHBvcnQgbGVnYWN5CisgICAg
ICAgIGVuY29kaW5nLgorCisgICAgICAgICogZG9tL0V4Y2VwdGlvbkRhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE6OmRlY29kZSk6CisKIDIwMjItMDEtMjkgIEFsZXhleSBT
aHZheWthICA8YXNodmF5a2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJJRExdIEFkZCBhIHNl
bnNpYmxlIGVycm9yIG1lc3NhZ2UgZm9yIGEgcHJpbWl0aXZlIG5vbi1udWxsIEV2ZW50TGlzdGVu
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZDE4YmQ3NGJlZTcwMDg2NDliZjU2YWU5NTc0MWZiMWU0OTM0YjdkYi4u
NWZhMDQ1ZGY4OGI0ZTQxM2JiNzQyYmE0NDk1ZTJlZjVkOTk1YTE2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMi0wMS0yOSAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBGb3J3YXJkIG1lc3NhZ2VzIGZyb20gTmV0d29ya1Byb2Nlc3MgdG8gd2VicHVzaGQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZm9yd2Fy
ZHMgUHVzaE1hbmFnZXIgYW5kIFB1c2hTdWJzY3JpcHRpb24tcmVsYXRlZCBJUEMgZnJvbSBOZXR3
b3JrUHJvY2VzcyB0byB3ZWJwdXNoZC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBpbiB3
ZWJwdXNoZCBhcmUgc3R1YnMgaW4gdGhpcyBwYXRjaCwgYW5kIGFzIGEgcmVzdWx0IHRoZXJlIGFy
ZSBubyBuZXcKKyAgICAgICAgdGVzdHMuIFRoZSBpbXBsZW1lbnRhdGlvbnMgYW5kIHRlc3RzIHdp
bGwgYmUgZmlsbGVkIG91dCBpbiBhIGZ1dHVyZSBwYXRjaC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c3Vic2NyaWJlVG9QdXNo
U2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjp1
bnN1YnNjcmliZUZyb21QdXNoU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpnZXRQdXNoU3Vic2NyaXB0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlv
bjo6c3Vic2NyaWJlVG9QdXNoU2VydmljZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6dW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hTdWJzY3JpcHRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQdXNoRGFlbW9uQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlB1c2hEOjptZXNzYWdlVHlwZVNlbmRzUmVwbHkpOgorICAgICAgICAqIHdlYnB1c2hk
L1dlYlB1c2hEYWVtb24uaDoKKyAgICAgICAgKiB3ZWJwdXNoZC9XZWJQdXNoRGFlbW9uLm1tOgor
ICAgICAgICAoV2ViUHVzaEQ6Ok1lc3NhZ2VJbmZvOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlOjpl
bmNvZGVSZXBseSk6CisgICAgICAgIChXZWJQdXNoRDo6TWVzc2FnZUluZm86OnVuc3Vic2NyaWJl
RnJvbVB1c2hTZXJ2aWNlOjplbmNvZGVSZXBseSk6CisgICAgICAgIChXZWJQdXNoRDo6TWVzc2Fn
ZUluZm86OmdldFB1c2hTdWJzY3JpcHRpb246OmVuY29kZVJlcGx5KToKKyAgICAgICAgKFdlYlB1
c2hEOjpNZXNzYWdlSW5mbzo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZTo6ZW5jb2RlUmVwbHkpOgor
ICAgICAgICAoV2ViUHVzaEQ6OkRhZW1vbjo6ZGVjb2RlQW5kSGFuZGxlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJQdXNoRDo6RGFlbW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKToKKyAgICAgICAg
KFdlYlB1c2hEOjpEYWVtb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKToKKyAgICAgICAg
KFdlYlB1c2hEOjpEYWVtb246OmdldFB1c2hTdWJzY3JpcHRpb24pOgorICAgICAgICAoV2ViUHVz
aEQ6OkRhZW1vbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZSk6CisKIDIwMjItMDEtMjggIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJv
XSBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IHBpeGVsIGR1bXAgZm9yIGFjY2VsZXJh
dGVkIGNvbXBvc2l0aW5nIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNl
cHRpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IGYz
NDY2N2Y5YmZlMGNjYzBjNTYwNTdjYTA2YmIyMzVlYmU5NTA5NWUuLmZjNzk4YjM2NGQzYTc4Zjcx
YTNjMDk5YWQ5ZWRmZWIyMWMwNDQ2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
eGNlcHRpb25EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApA
QCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgRXhjZXB0aW9uRGF0YSB7CiAgICAgV0VCQ09SRV9FWFBP
UlQgRXhjZXB0aW9uRGF0YSBpc29sYXRlZENvcHkoKSBjb25zdDsKIAogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBFeGNlcHRpb25EYXRhJik7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gZGVjb2RlKERlY29kZXImKTsKIAogICAgIEV4
Y2VwdGlvbiB0b0V4Y2VwdGlvbigpIGNvbnN0CiAgICAgewpAQCAtNTMsMTUgKzUzLDE5IEBAIHZv
aWQgRXhjZXB0aW9uRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB9CiAKIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIEV4Y2VwdGlvbkRhdGE6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBFeGNlcHRpb25EYXRhJiBkYXRhKQorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25E
YXRhPiBFeGNlcHRpb25EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGRhdGEuY29kZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IGNvZGU7CisgICAgZGVjb2RlciA+PiBjb2RlOwor
ICAgIGlmICghY29kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoZGF0YS5tZXNzYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBtZXNzYWdlOworICAgIGRlY29kZXIgPj4gbWVzc2FnZTsK
KyAgICBpZiAoIW1lc3NhZ2UpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFdURk1vdmUoKmNvZGUpLCBX
VEZNb3ZlKCptZXNzYWdlKSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA2YmMxNWNmYjQ1
MDY1NmJjNWM5Y2U4NTA1NGVjNDMyNmYxMTkwYmM5Li4xN2NlZjkxNGFiODZjYjAzN2M3MTZmZWRj
YzJkNjM2ZjczMjllZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkRhZW1vbkRlY29kZXIu
aCIKICNpbmNsdWRlICJEYWVtb25FbmNvZGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rp
b25Db25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHVzaE1lc3NhZ2UuaCIKQEAgLTEzMiw2
ICsxMzMsNDYgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5v
dGlmaWNhdGlvbihjb25zdCBVVUlEJikKICAgICAgICAgcmV0dXJuOwogfQogCit2b2lkIE5ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFVSTCYmIHNjb3Bl
VVJMLCBWZWN0b3I8dWludDhfdD4mJiBhcHBsaWNhdGlvblNlcnZlcktleSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQo
RXhjZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBjb25uZWN0aW9uIHRvIHB1c2ggZGFlbW9u
Il9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbmRNZXNzYWdlV2l0aFJl
cGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6U3Vic2NyaWJlVG9QdXNoU2VydmljZT4oV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2NvcGVVUkwpLCBXVEZNb3ZlKGFwcGxpY2F0
aW9uU2VydmVyS2V5KSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OnVu
c3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBQdXNoU3Vic2NyaXB0aW9u
SWRlbnRpZmllciBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbikgeworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIk5v
IGNvbm5lY3Rpb24gdG8gcHVzaCBkYWVtb24iX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc2VuZE1lc3NhZ2VXaXRoUmVwbHk8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlOjpVbnN1
YnNjcmliZUZyb21QdXNoU2VydmljZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1v
dmUoc2NvcGVVUkwpLCBwdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1c2hTdWJzY3JpcHRpb24oVVJMJiYgc2NvcGVV
UkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQdXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBBYm9ydEVycm9y
LCAiTm8gY29ubmVjdGlvbiB0byBwdXNoIGRhZW1vbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzZW5kTWVzc2FnZVdpdGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6
OkdldFB1c2hTdWJzY3JpcHRpb24+KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBXVEZNb3Zl
KHNjb3BlVVJMKSk7Cit9CisKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6OmdldFB1
c2hQZXJtaXNzaW9uU3RhdGUoVVJMJiYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEFib3J0RXJyb3IsICJObyBj
b25uZWN0aW9uIHRvIHB1c2ggZGFlbW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHNlbmRNZXNzYWdlV2l0aFJlcGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6R2V0UHVz
aFBlcm1pc3Npb25TdGF0ZT4oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIFdURk1vdmUoc2Nv
cGVVUkwpKTsKK30KKwogdGVtcGxhdGU8V2ViUHVzaEQ6Ok1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
LCB0eXBlbmFtZS4uLiBBcmdzPgogdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2Vu
ZE1lc3NhZ2UoQXJncyYmLi4uIGFyZ3MpIGNvbnN0CiB7CkBAIC0yMDcsNiArMjQ4LDU4IEBAIHRl
bXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPFZlY3RvcjxXZWJQdXNoTWVzc2FnZT4mJj4gewog
ICAgIH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7Cisg
ICAgc3RhdGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
RGF0YSwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4g
ZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRl
Y29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0
IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsK
KyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFlbW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8
RXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRl
Y29kZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNv
dWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0KK307CisKK3RlbXBsYXRl
PD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVz
aFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmPiB7CisgICAgc3Rh
dGljIHZvaWQgY2FsbFJlcGx5KERhZW1vbjo6RGVjb2RlciYmIGRlY29kZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0
aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQorICAgIHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4+IGRh
dGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAgICBpZiAoIWRhdGEpCisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsg
QWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9zIH0pKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSgqZGF0YSkpOworICAgIH0K
K307CisKK3RlbXBsYXRlPD4gc3RydWN0IFJlcGx5Q2FsbGVyPEV4cGVjdGVkPHVpbnQ4X3QsIFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiY+IHsKKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwbHkoRGFl
bW9uOjpEZWNvZGVyJiYgZGVjb2RlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1
aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
KyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4+IGRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gZGF0YTsKKworICAgICAg
ICBpZiAoIWRhdGEpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIkNvdWxkbid0IGRlY29kZSBtZXNzYWdlIl9z
IH0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZSgqZGF0YSkpOworICAgIH0KK307CisKIHRlbXBsYXRlPFdlYlB1c2hEOjpNZXNzYWdlVHlwZSBt
ZXNzYWdlVHlwZSwgdHlwZW5hbWUuLi4gQXJncywgdHlwZW5hbWUuLi4gUmVwbHlBcmdzPgogdm9p
ZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE1lc3NhZ2VXaXRoUmVwbHkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXBseUFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBcmdz
JiYuLi4gYXJncykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgKaW5kZXggZjFmZGVkZTAyMDZjOTRlMmY5YjFjYzhjMDFkZjQ2ZTcyNGRkZmY1Zi4u
YTkyYmQyZjViZDE3N2IxZGE4ZjVhMjIxNjE4YTg3ZWJlMWViZWYwZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRp
b25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTMwLDcgKzMwLDkgQEAKICNpbmNs
dWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQ
dXNoRGFlbW9uQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmlj
YXRpb25EaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1B1c2hTdWJzY3JpcHRpb25EYXRh
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTU1LDYgKzU3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGdldE9yaWdpbnNXaXRoUHVz
aEFuZE5vdGlmaWNhdGlvblBlcm1pc3Npb25zKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mKT4mJik7CiAgICAgdm9pZCBnZXRQ
ZW5kaW5nUHVzaE1lc3NhZ2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdl
YlB1c2hNZXNzYWdlPiYpPiYmKTsKIAorICAgIHZvaWQgc3Vic2NyaWJlVG9QdXNoU2VydmljZShV
UkwmJiBzY29wZVVSTCwgVmVjdG9yPHVpbnQ4X3Q+JiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRh
dGEsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIHVuc3Vic2NyaWJl
RnJvbVB1c2hTZXJ2aWNlKFVSTCYmIHNjb3BlVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9u
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxib29sLCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiYmKT4mJik7CisgICAgdm9pZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFVS
TCYmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiYmKT4mJik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFVSTCYmIHNjb3BlVVJM
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGE+JiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlcihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNlTmFt
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZTk4N2Jk
YzI3NmEwNGVhZDVmMmIwODFiOGY5NDdhZTNkYjc5NDJmZC4uYjM5MGNhZmE2MDQxZjNlODAxZmQy
ZDNhOGMyNDNiNTU0NzUxMjI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpAQCAtNDQ4
LDI0ICs0NDksOTMgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVRocm90dGxl
U3RhdGUoKQogICAgIH0KIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN1YnNjcmli
ZVRvUHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIFZlY3Rvcjx1aW50OF90PiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1
c2hTdWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFZlY3Rvcjx1aW50OF90PiYmIGFwcGxpY2F0aW9uU2VydmVyS2V5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFB1c2hTdWJzY3JpcHRpb25EYXRhLCBFeGNlcHRpb25E
YXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiUHVzaCBwZXJt
aXNzaW9uIHdhcyBkZW5pZWQiX3MgfSkpOworI2lmICFFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FU
SU9OUykKKyAgICBVTlVTRURfUEFSQU0ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgVU5V
U0VEX1BBUkFNKGFwcGxpY2F0aW9uU2VydmVyS2V5KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlciht
YWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgQWJvcnRFcnJvciwgIlB1c2ggc2VydmljZSBu
b3QgaW1wbGVtZW50ZWQiX3MgfSkpOworI2Vsc2UKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IHNl
cnZlcigpLmdldFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAo
IXJlZ2lzdHJhdGlvbikgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3Rl
ZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJTdWJzY3JpYmluZyBmb3IgcHVz
aCByZXF1aXJlcyBhbiBhY3RpdmUgc2VydmljZSB3b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKCFzZXNzaW9uKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAi
Tm8gYWN0aXZlIG5ldHdvcmsgc2Vzc2lvbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBzZXNzaW9uKCktPm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5zdWJzY3JpYmVUb1B1c2hT
ZXJ2aWNlKHJlZ2lzdHJhdGlvbi0+c2NvcGVVUkxXaXRob3V0RnJhZ21lbnQoKSwgV1RGTW92ZShh
cHBsaWNhdGlvblNlcnZlcktleSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyNlbmRp
ZgogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmVGcm9tUHVzaFNl
cnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPGJvb2wsIEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHN1YnNjcmlwdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8Ym9vbCwgRXhjZXB0aW9u
RGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisjaWYgIUVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKQorICAgIFVOVVNFRF9QQVJBTShyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsK
KyAgICBVTlVTRURfUEFSQU0oc3Vic2NyaXB0aW9uSWRlbnRpZmllcik7CisKICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7CisjZWxzZQorICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVy
KCkuZ2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVn
aXN0cmF0aW9uKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4
Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIlVuc3Vic2NyaWJpbmcgZnJvbSBwdXNo
IHJlcXVpcmVzIGEgc2VydmljZSB3b3JrZXIiX3MgfSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFzZXNzaW9uKCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobWFr
ZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYWN0aXZl
IG5ldHdvcmsgc2Vzc2lvbiJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBz
ZXNzaW9uKCktPm5vdGlmaWNhdGlvbk1hbmFnZXIoKS51bnN1YnNjcmliZUZyb21QdXNoU2Vydmlj
ZShyZWdpc3RyYXRpb24tPnNjb3BlVVJMV2l0aG91dEZyYWdtZW50KCksIHN1YnNjcmlwdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyNlbmRpZgogfQogCi12b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFB1c2hTdWJzY3JpcHRpb25EYXRhPiwgRXhjZXB0aW9uRGF0
YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
Z2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBFeGNlcHRpb25EYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyNpZiAhRU5BQkxFKEJVSUxUX0lOX05PVElG
SUNBVElPTlMpCisgICAgVU5VU0VEX1BBUkFNKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uRGF0YT4o
c3RkOjpudWxsb3B0KSk7CisjZWxzZQorICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gc2VydmVyKCku
Z2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0
cmF0aW9uKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG1ha2VVbmV4cGVjdGVkKEV4Y2Vw
dGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkdldHRpbmcgcHVzaCBzdWJzY3JpcHRpb24g
cmVxdWlyZXMgYSBzZXJ2aWNlIHdvcmtlciJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoIXNlc3Npb24oKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtl
VW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUg
bmV0d29yayBzZXNzaW9uIl9zIH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNl
c3Npb24oKS0+bm90aWZpY2F0aW9uTWFuYWdlcigpLmdldFB1c2hTdWJzY3JpcHRpb24ocmVnaXN0
cmF0aW9uLT5zY29wZVVSTFdpdGhvdXRGcmFnbWVudCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisjZW5kaWYKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFB1c2hQ
ZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDhfdCwgRXhjZXB0aW9uRGF0
YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPHVpbnQ4X3QsIEV4Y2VwdGlvbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogeworI2lmICFFTkFCTEUoQlVJTFRfSU5fTk9USUZJQ0FUSU9OUykKKyAgICBVTlVTRURfUEFS
QU0ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisKICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGF0
aWNfY2FzdDx1aW50OF90PihQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKKyNlbHNlCisg
ICAgYXV0byByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0
aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIobWFrZVVuZXhwZWN0ZWQoRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiR2V0dGluZyBwdXNoIHBlcm1pc3Npb24gc3RhdGUgcmVxdWlyZXMgYSBzZXJ2aWNlIHdv
cmtlciJfcyB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXNlc3Npb24o
KSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihtYWtlVW5leHBlY3RlZChFeGNlcHRpb25E
YXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgbmV0d29yayBzZXNzaW9uIl9zIH0p
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlc3Npb24oKS0+bm90aWZpY2F0aW9u
TWFuYWdlcigpLmdldFB1c2hQZXJtaXNzaW9uU3RhdGUocmVnaXN0cmF0aW9uLT5zY29wZVVSTFdp
dGhvdXRGcmFnbWVudCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisjZW5kaWYKIH0K
IAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIGNvbnRleHRDb25uZWN0aW9uKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oCmluZGV4IDU4MDJiYjA3YzM5
YTkzOThjZjliODg3MDQxZGU5YWJkMjk3ZWJiZGYuLmZjNDdkYzRmMTI3NDg3MjRiMWI1N2M1NzJj
MTQ5YjM4NzhlYzBhNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlB1c2hE
YWVtb25Db25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQdXNoRGFlbW9u
Q29uc3RhbnRzLmgKQEAgLTQ0LDYgKzQ0LDEwIEBAIGVudW0gY2xhc3MgTWVzc2FnZVR5cGUgOiB1
aW50OF90IHsKICAgICBVcGRhdGVDb25uZWN0aW9uQ29uZmlndXJhdGlvbiwKICAgICBJbmplY3RQ
dXNoTWVzc2FnZUZvclRlc3RpbmcsCiAgICAgR2V0UGVuZGluZ1B1c2hNZXNzYWdlcywKKyAgICBT
dWJzY3JpYmVUb1B1c2hTZXJ2aWNlLAorICAgIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlLAor
ICAgIEdldFB1c2hTdWJzY3JpcHRpb24sCisgICAgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZQogfTsK
IAogaW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5KE1lc3NhZ2VUeXBlIG1lc3NhZ2VU
eXBlKQpAQCAtNTUsNiArNTksMTAgQEAgaW5saW5lIGJvb2wgbWVzc2FnZVR5cGVTZW5kc1JlcGx5
KE1lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBlKQogICAgIGNhc2UgTWVzc2FnZVR5cGU6OlJlcXVlc3RT
eXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uOgogICAgIGNhc2UgTWVzc2FnZVR5cGU6OkdldFBl
bmRpbmdQdXNoTWVzc2FnZXM6CiAgICAgY2FzZSBNZXNzYWdlVHlwZTo6SW5qZWN0UHVzaE1lc3Nh
Z2VGb3JUZXN0aW5nOgorICAgIGNhc2UgTWVzc2FnZVR5cGU6OlN1YnNjcmliZVRvUHVzaFNlcnZp
Y2U6CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6VW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2U6Cisg
ICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UHVzaFN1YnNjcmlwdGlvbjoKKyAgICBjYXNlIE1lc3Nh
Z2VUeXBlOjpHZXRQdXNoUGVybWlzc2lvblN0YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBjYXNlIE1lc3NhZ2VUeXBlOjpTZXREZWJ1Z01vZGVJc0VuYWJsZWQ6CiAgICAgY2FzZSBNZXNz
YWdlVHlwZTo6VXBkYXRlQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb246CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvV2ViUHVzaERhZW1vbi5oCmluZGV4IGNhZDQ4MzA3MDUwOGI5ODcwYTk4ZmRhZGYzZTZlMTEx
OGI4N2Q5NDQuLmFmMzE4NTdkYjg3MzdhOWI2NDM5NWZiMDAwNDc1MGE5NThlNTQ4ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5j
bHVkZSAiV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIgogI2luY2x1ZGUgIldlYlB1c2hNZXNzYWdlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QdXNo
U3Vic2NyaXB0aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTY4LDYgKzcwLDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvbm5lY3Rpb25Db25maWd1cmF0aW9uKENsaWVudENv
bm5lY3Rpb24qLCBjb25zdCBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24mKTsK
ICAgICB2b2lkIGluamVjdFB1c2hNZXNzYWdlRm9yVGVzdGluZyhDbGllbnRDb25uZWN0aW9uKiwg
Y29uc3QgUHVzaE1lc3NhZ2VGb3JUZXN0aW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7CiAgICAgdm9pZCBnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKENsaWVudENvbm5lY3Rpb24q
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlB1c2hNZXNz
YWdlPiYpPiYmIHJlcGx5U2VuZGVyKTsKKyAgICB2b2lkIHN1YnNjcmliZVRvUHVzaFNlcnZpY2Uo
Q2xpZW50Q29ubmVjdGlvbiosIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
RXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpOworICAgIHZvaWQgdW5zdWJzY3JpYmVGcm9tUHVzaFNl
cnZpY2UoQ2xpZW50Q29ubmVjdGlvbiosIGNvbnN0IFVSTCYgc2NvcGVVUkwsIFdlYkNvcmU6OlB1
c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4
cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpOwor
ICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0aW9uKiwgY29uc3QgVVJM
JiBzY29wZVVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBFeHBlY3RlZDxzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT4mKT4mJiByZXBseVNlbmRlcik7CisgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRl
KENsaWVudENvbm5lY3Rpb24qLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+Jik+
JiYgcmVwbHlTZW5kZXIpOwogCiAgICAgdm9pZCBicm9hZGNhc3REZWJ1Z01lc3NhZ2UoSlNDOjpN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYnJvYWRjYXN0QWxsQ29ubmVj
dGlvbklkZW50aXRpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2Vi
UHVzaERhZW1vbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvV2ViUHVzaERhZW1vbi5tbQpp
bmRleCBmMzEyMjdlOTVjYTc5ODk1N2JiNmI1MGM1MjBkM2JkMjRmNzk2MWMwLi5hOGZlNDlmNTJk
NzYzMjY2MzFjYWM3ZDc2NmMwOTE0OTVlOWNlNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL1dlYlB1c2hEYWVtb24ubW0KKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9X
ZWJQdXNoRGFlbW9uLm1tCkBAIC0zMywxMSArMzMsMTMgQEAKICNpbXBvcnQgIkhhbmRsZU1lc3Nh
Z2UuaCIKICNpbXBvcnQgIk1vY2tBcHBCdW5kbGVSZWdpc3RyeS5oIgogCisjaW1wb3J0IDxXZWJD
b3JlL1B1c2hQZXJtaXNzaW9uU3RhdGUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNo
U2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9y
dCA8d3RmL0hleE51bWJlci5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1w
b3J0IDx3dGYvU3Bhbi5oPgorI2ltcG9ydCA8d3RmL1VSTC5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OjpXZWJQdXNoRDsKIApAQCAtODksNiArOTEsMjYgQEAgQVJHVU1FTlRTKFB1c2hNZXNz
YWdlRm9yVGVzdGluZykKIFJFUExZKGJvb2wpCiBFTkQKIAorRlVOQ1RJT04oc3Vic2NyaWJlVG9Q
dXNoU2VydmljZSkKK0FSR1VNRU5UUyhVUkwsIFZlY3Rvcjx1aW50OF90PikKK1JFUExZKGNvbnN0
IEV4cGVjdGVkPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhLCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhPiYpCitFTkQKKworRlVOQ1RJT04odW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UpCitB
UkdVTUVOVFMoVVJMLCBXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uSWRlbnRpZmllcikKK1JFUExZ
KGNvbnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JikKK0VORAorCitG
VU5DVElPTihnZXRQdXNoU3Vic2NyaXB0aW9uKQorQVJHVU1FTlRTKFVSTCkKK1JFUExZKGNvbnN0
IEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+LCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKworRlVOQ1RJT04oZ2V0UHVzaFBlcm1pc3Np
b25TdGF0ZSkKK0FSR1VNRU5UUyhVUkwpCitSRVBMWShjb25zdCBFeHBlY3RlZDx1aW50OF90LCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpCitFTkQKKwogI3VuZGVmIEZVTkNUSU9OCiAjdW5kZWYg
QVJHVU1FTlRTCiAjdW5kZWYgUkVQTFkKQEAgLTEzNiw2ICsxNTgsMzQgQEAgV2ViUHVzaEQ6OkVu
Y29kZWRNZXNzYWdlIGdldFBlbmRpbmdQdXNoTWVzc2FnZXM6OmVuY29kZVJlcGx5KGNvbnN0IFZl
Y3RvcjxXZWJLaXQKICAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7CiB9CiAKK1dlYlB1
c2hEOjpFbmNvZGVkTWVzc2FnZSBzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlOjplbmNvZGVSZXBseShj
b25zdCBFeHBlY3RlZDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YSwgV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29k
ZXI7CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVy
KCk7Cit9CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSB1bnN1YnNjcmliZUZyb21QdXNoU2Vy
dmljZTo6ZW5jb2RlUmVwbHkoY29uc3QgRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7Cisg
ICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7Cit9
CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBnZXRQdXNoU3Vic2NyaXB0aW9uOjplbmNvZGVS
ZXBseShjb25zdCBFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRp
b25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mIHJlcGx5KQoreworICAgIFdlYktpdDo6
RGFlbW9uOjpFbmNvZGVyIGVuY29kZXI7CisgICAgZW5jb2RlciA8PCByZXBseTsKKyAgICByZXR1
cm4gZW5jb2Rlci50YWtlQnVmZmVyKCk7Cit9CisKK1dlYlB1c2hEOjpFbmNvZGVkTWVzc2FnZSBn
ZXRQdXNoUGVybWlzc2lvblN0YXRlOjplbmNvZGVSZXBseShjb25zdCBFeHBlY3RlZDx1aW50OF90
LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYgcmVwbHkpCit7CisgICAgV2ViS2l0OjpEYWVtb246
OkVuY29kZXIgZW5jb2RlcjsKKyAgICBlbmNvZGVyIDw8IHJlcGx5OworICAgIHJldHVybiBlbmNv
ZGVyLnRha2VCdWZmZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgTWVzc2FnZUluZm8KIAogdGVt
cGxhdGU8dHlwZW5hbWUgSW5mbz4KQEAgLTI3OCw2ICszMjgsMTggQEAgdm9pZCBEYWVtb246OmRl
Y29kZUFuZEhhbmRsZU1lc3NhZ2UoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCBNZXNzYWdl
VHlwZSBtZXMKICAgICBjYXNlIE1lc3NhZ2VUeXBlOjpHZXRQZW5kaW5nUHVzaE1lc3NhZ2VzOgog
ICAgICAgICBoYW5kbGVXZWJQdXNoRE1lc3NhZ2VXaXRoUmVwbHk8TWVzc2FnZUluZm86OmdldFBl
bmRpbmdQdXNoTWVzc2FnZXM+KGNsaWVudENvbm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlLCBXVEZN
b3ZlKHJlcGx5U2VuZGVyKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVzc2FnZVR5cGU6
OlN1YnNjcmliZVRvUHVzaFNlcnZpY2U6CisgICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdp
dGhSZXBseTxNZXNzYWdlSW5mbzo6c3Vic2NyaWJlVG9QdXNoU2VydmljZT4oY2xpZW50Q29ubmVj
dGlvbiwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6VW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2U6Cisg
ICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdpdGhSZXBseTxNZXNzYWdlSW5mbzo6dW5zdWJz
Y3JpYmVGcm9tUHVzaFNlcnZpY2U+KGNsaWVudENvbm5lY3Rpb24sIGVuY29kZWRNZXNzYWdlLCBX
VEZNb3ZlKHJlcGx5U2VuZGVyKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTWVzc2FnZVR5
cGU6OkdldFB1c2hTdWJzY3JpcHRpb246CisgICAgICAgIGhhbmRsZVdlYlB1c2hETWVzc2FnZVdp
dGhSZXBseTxNZXNzYWdlSW5mbzo6Z2V0UHVzaFN1YnNjcmlwdGlvbj4oY2xpZW50Q29ubmVjdGlv
biwgZW5jb2RlZE1lc3NhZ2UsIFdURk1vdmUocmVwbHlTZW5kZXIpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNZXNzYWdlVHlwZTo6R2V0UHVzaFBlcm1pc3Npb25TdGF0ZToKKyAgICAgICAg
aGFuZGxlV2ViUHVzaERNZXNzYWdlV2l0aFJlcGx5PE1lc3NhZ2VJbmZvOjpnZXRQdXNoUGVybWlz
c2lvblN0YXRlPihjbGllbnRDb25uZWN0aW9uLCBlbmNvZGVkTWVzc2FnZSwgV1RGTW92ZShyZXBs
eVNlbmRlcikpOworICAgICAgICBicmVhazsKICAgICB9CiB9CiAKQEAgLTQxNCw2ICs0NzYsMjcg
QEAgdm9pZCBEYWVtb246OmdldFBlbmRpbmdQdXNoTWVzc2FnZXMoQ2xpZW50Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29tcGxldGlvbkhhbmQKICAgICByZXBseVNlbmRlcihXVEZNb3ZlKHJlc3Vs
dE1lc3NhZ2VzKSk7CiB9CiAKK3ZvaWQgRGFlbW9uOjpzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKENs
aWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgRXhwZWN0ZWQ8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGEsIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGFw
cGxpY2F0aW9uU2VydmVyS2V5KTsKKyAgICByZXBseVNlbmRlcihtYWtlVW5leHBlY3RlZChXZWJD
b3JlOjpFeGNlcHRpb25EYXRhIHsgV2ViQ29yZTo6Tm90QWxsb3dlZEVycm9yLCAiTGFjayBwZXJt
aXNzaW9uIl9zIH0pKTsKK30KKwordm9pZCBEYWVtb246OnVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2
aWNlKENsaWVudENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25JZGVudGlmaWVyIHB1c2hTdWJzY3JpcHRpb25JZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+Jik+JiYgcmVwbHlTZW5kZXIpCit7CisgICAgcmVwbHlTZW5kZXIoZmFs
c2UpOworfQorCit2b2lkIERhZW1vbjo6Z2V0UHVzaFN1YnNjcmlwdGlvbihDbGllbnRDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGNvbnN0IEV4cGVjdGVkPHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlv
bkRhdGE+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYpPiYmIHJlcGx5U2VuZGVyKQoreworICAg
IHJlcGx5U2VuZGVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE+
IHsgfSk7Cit9CisKK3ZvaWQgRGFlbW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKENsaWVudENv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IFVSTCYgc2NvcGVVUkwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4m
KT4mJiByZXBseVNlbmRlcikKK3sKKyAgICByZXBseVNlbmRlcihzdGF0aWNfY2FzdDx1aW50OF90
PihXZWJDb3JlOjpQdXNoUGVybWlzc2lvblN0YXRlOjpEZW5pZWQpKTsKK30KKwogQ2xpZW50Q29u
bmVjdGlvbiogRGFlbW9uOjp0b0NsaWVudENvbm5lY3Rpb24oeHBjX2Nvbm5lY3Rpb25fdCBjb25u
ZWN0aW9uKQogewogICAgIGF1dG8gY2xpZW50Q29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5n
ZXQoY29ubmVjdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGEyMmMwNzU1MjIyNGQzNWY2MzJiMmU4MThjOTE0ZGRi
Y2QxZTVhYi4uNWFmMzU4YzE2NmY2ZmEyNTdmMGU0OTljYWMyZTFmZjRmYjUxNWY1NiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDIyLTAxLTI5ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgor
CisgICAgICAgIEZvcndhcmQgbWVzc2FnZXMgZnJvbSBOZXR3b3JrUHJvY2VzcyB0byB3ZWJwdXNo
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IGV4aXN0aW5nIHRlc3RzIHRvIHRlc3QgZm9yIEFib3J0RXJyb3IsIHNpbmNlIHRoYXQncyB0aGUg
ZXhjZXB0aW9uIHR5cGUgc3BlY2lmaWVkIGluCisgICAgICAgIHRoZSBzcGVjLgorCisgICAgICAg
ICogaHR0cC93cHQvcHVzaC1hcGkvcHVzaE1hbmFnZXIuYW55LmpzOgorICAgICAgICAocHJvbWlz
ZV90ZXN0LmFzeW5jIHRlc3QpOgorCiAyMDIyLTAxLTI5ICBBbGV4ZXkgU2h2YXlrYSAgPGFzaHZh
eWthQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBBZGQgYSBzZW5zaWJsZSBlcnJvciBt
ZXNzYWdlIGZvciBhIHByaW1pdGl2ZSBub24tbnVsbCBFdmVudExpc3RlbmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuanMKaW5kZXggNGZmNTg4
YzE0MGJlY2QwZGNlNDYzNDQ2MWMzNGY1Y2Y3MzUwMWIxYS4uZDdlYjg0NWQ0ODkwMGU5NTM5MTQw
NmU1Y2Q5MWFiNzFjYjg3MDVkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvcHVz
aC1hcGkvcHVzaE1hbmFnZXIuYW55LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3B1c2gt
YXBpL3B1c2hNYW5hZ2VyLmFueS5qcwpAQCAtOTksNyArOTksNyBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgLy8g
VE9ETzogY2hhbmdlIHRoaXMgdG8gbWFrZSBzdXJlIHRoYXQgc3Vic2NyaXB0aW9uIGlzIHZhbGlk
IG9uY2Ugd2UgZnVsbHkgaW1wbGVtZW50IHN1YnNjcmliZS4KLSAgICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzX2RvbSh0ZXN0LCAiTm90QWxsb3dlZEVycm9yIiwgcHVzaE1hbmFnZXIuc3Vic2NyaWJl
KHsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2RvbSh0ZXN0LCAiQWJvcnRFcnJvciIsIHB1
c2hNYW5hZ2VyLnN1YnNjcmliZSh7CiAgICAgICAgIHVzZXJWaXNpYmxlT25seTogdHJ1ZSwKICAg
ICAgICAgYXBwbGljYXRpb25TZXJ2ZXJLZXk6IFZBTElEX1NFUlZFUl9LRVkKICAgICB9KSk7CkBA
IC0xMDcsNyArMTA3LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAKIHByb21p
c2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIC8vIFRPRE86IGNoYW5nZSB0aGlzIHRvIG1h
a2Ugc3VyZSB0aGF0IHN1YnNjcmlwdGlvbiBpcyB2YWxpZCBvbmNlIHdlIGZ1bGx5IGltcGxlbWVu
dCBzdWJzY3JpYmUuCi0gICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odGVzdCwgIk5vdEFs
bG93ZWRFcnJvciIsIHB1c2hNYW5hZ2VyLnN1YnNjcmliZSh7CisgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0c19kb20odGVzdCwgIkFib3J0RXJyb3IiLCBwdXNoTWFuYWdlci5zdWJzY3JpYmUoewog
ICAgICAgICB1c2VyVmlzaWJsZU9ubHk6IHRydWUsCiAgICAgICAgIGFwcGxpY2F0aW9uU2VydmVy
S2V5OiBWQUxJRF9CQVNFNjRfU0VSVkVSX0tFWQogICAgIH0pKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2dsaWIvaHR0cC93cHQvcHVzaC1hcGkvcHVzaE1hbmFnZXIuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaHR0cC93cHQvcHVzaC1hcGkv
cHVzaE1hbmFnZXIuYW55LWV4cGVjdGVkLnR4dAppbmRleCAyYTY2NDE4ZGM1NWVmY2Q1ZGM0MGE1
N2RkNzg4MTQ5Yzk5ZDNkNGEwLi42YWNlMjRkZTE3MTdhYzQ2NjcxNWVmMjMwOWU3YjM3MjYzMGI2
OTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2h0dHAvd3B0L3B1c2gt
YXBpL3B1c2hNYW5hZ2VyLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnktZXhwZWN0ZWQudHh0CkBA
IC05LDcgKzksNyBAQCBQQVNTIHN1YnNjcmliZSByZXF1aXJlcyBhcHBsaWNhdGlvblNlcnZlcktl
eQogUEFTUyBhcHBsaWNhdGlvblNlcnZlcktleSBzdHJpbmcgc2hvdWxkIGJlIGJhc2U2NHVybC1l
bmNvZGVkCiBQQVNTIGFwcGxpY2F0aW9uU2VydmVyS2V5IGJ1ZmZlciBzaG91bGQgYmUgYSB2YWxp
ZCBwb2ludCBvbiB0aGUgUC0yNTYgY3VydmUKIFBBU1MgYXBwbGljYXRpb25TZXJ2ZXJLZXkgc3Ry
aW5nIHNob3VsZCBiZSBhIHZhbGlkIHBvaW50IG9uIHRoZSBQLTI1NiBjdXJ2ZQotRkFJTCBjYW4g
c3Vic2NyaWJlIHdpdGggdmFsaWQgYXBwbGljYXRpb25TZXJ2ZXJLZXkgYnVmZmVyIHByb21pc2Vf
cmVqZWN0c19kb206IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2Jq
ZWN0ICJJbnZhbGlkQWNjZXNzRXJyb3I6IGFwcGxpY2F0aW9uU2VydmVyS2V5IG11c3QgY29udGFp
biBhIHZhbGlkIFAtMjU2IHB1YmxpYyBrZXkiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIE5v
dEFsbG93ZWRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE1LCBleHBlY3RlZCAw
Ci1GQUlMIGNhbiBzdWJzY3JpYmUgd2l0aCB2YWxpZCBhcHBsaWNhdGlvblNlcnZlcktleSBzdHJp
bmcgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9
IiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogYXBwbGljYXRpb25TZXJ2ZXJLZXkg
bXVzdCBjb250YWluIGEgdmFsaWQgUC0yNTYgcHVibGljIGtleSIgdGhhdCBpcyBub3QgYSBET01F
eGNlcHRpb24gTm90QWxsb3dlZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTUs
IGV4cGVjdGVkIDAKK0ZBSUwgY2FuIHN1YnNjcmliZSB3aXRoIHZhbGlkIGFwcGxpY2F0aW9uU2Vy
dmVyS2V5IGJ1ZmZlciBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkg
eyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBhcHBsaWNhdGlv
blNlcnZlcktleSBtdXN0IGNvbnRhaW4gYSB2YWxpZCBQLTI1NiBwdWJsaWMga2V5IiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwg
dG8gMTUsIGV4cGVjdGVkIDIwCitGQUlMIGNhbiBzdWJzY3JpYmUgd2l0aCB2YWxpZCBhcHBsaWNh
dGlvblNlcnZlcktleSBzdHJpbmcgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0
aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogYXBw
bGljYXRpb25TZXJ2ZXJLZXkgbXVzdCBjb250YWluIGEgdmFsaWQgUC0yNTYgcHVibGljIGtleSIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gQWJvcnRFcnJvcjogcHJvcGVydHkgImNvZGUiIGlz
IGVxdWFsIHRvIDE1LCBleHBlY3RlZCAyMAogUEFTUyB1bnJlZ2lzdGVyIHNlcnZpY2Ugd29ya2Vy
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaHR0cC93cHQvcHVzaC1h
cGkvcHVzaE1hbmFnZXIuYW55LnNlcnZpY2V3b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ2xpYi9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuc2Vydmlj
ZXdvcmtlci1leHBlY3RlZC50eHQKaW5kZXggOGE5OGZhOGE4NzRlOTEwNWE5OGM1MGYzYjI2ZTYx
OTI0MzFhNDlmMC4uZDA5NmE1YzJmMWFmOWI0YTM3YmY0Y2M5MDllZDY0ZWUyYTU1ZjMwMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9odHRwL3dwdC9wdXNoLWFwaS9wdXNo
TWFuYWdlci5hbnkuc2VydmljZXdvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9odHRwL3dwdC9wdXNoLWFwaS9wdXNoTWFuYWdlci5hbnkuc2VydmljZXdv
cmtlci1leHBlY3RlZC50eHQKQEAgLTksNiArOSw2IEBAIFBBU1Mgc3Vic2NyaWJlIHJlcXVpcmVz
IGFwcGxpY2F0aW9uU2VydmVyS2V5CiBQQVNTIGFwcGxpY2F0aW9uU2VydmVyS2V5IHN0cmluZyBz
aG91bGQgYmUgYmFzZTY0dXJsLWVuY29kZWQKIFBBU1MgYXBwbGljYXRpb25TZXJ2ZXJLZXkgYnVm
ZmVyIHNob3VsZCBiZSBhIHZhbGlkIHBvaW50IG9uIHRoZSBQLTI1NiBjdXJ2ZQogUEFTUyBhcHBs
aWNhdGlvblNlcnZlcktleSBzdHJpbmcgc2hvdWxkIGJlIGEgdmFsaWQgcG9pbnQgb24gdGhlIFAt
MjU2IGN1cnZlCi1GQUlMIGNhbiBzdWJzY3JpYmUgd2l0aCB2YWxpZCBhcHBsaWNhdGlvblNlcnZl
cktleSBidWZmZXIgcHJvbWlzZV9yZWplY3RzX2RvbTogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsg
dGhyb3cgZSB9IiB0aHJldyBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogYXBwbGljYXRpb25T
ZXJ2ZXJLZXkgbXVzdCBjb250YWluIGEgdmFsaWQgUC0yNTYgcHVibGljIGtleSIgdGhhdCBpcyBu
b3QgYSBET01FeGNlcHRpb24gTm90QWxsb3dlZEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1
YWwgdG8gMTUsIGV4cGVjdGVkIDAKLUZBSUwgY2FuIHN1YnNjcmliZSB3aXRoIHZhbGlkIGFwcGxp
Y2F0aW9uU2VydmVyS2V5IHN0cmluZyBwcm9taXNlX3JlamVjdHNfZG9tOiBmdW5jdGlvbiAiZnVu
Y3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBh
cHBsaWNhdGlvblNlcnZlcktleSBtdXN0IGNvbnRhaW4gYSB2YWxpZCBQLTI1NiBwdWJsaWMga2V5
IiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBOb3RBbGxvd2VkRXJyb3I6IHByb3BlcnR5ICJj
b2RlIiBpcyBlcXVhbCB0byAxNSwgZXhwZWN0ZWQgMAorRkFJTCBjYW4gc3Vic2NyaWJlIHdpdGgg
dmFsaWQgYXBwbGljYXRpb25TZXJ2ZXJLZXkgYnVmZmVyIHByb21pc2VfcmVqZWN0c19kb206IGZ1
bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJJbnZhbGlkQWNj
ZXNzRXJyb3I6IGFwcGxpY2F0aW9uU2VydmVyS2V5IG11c3QgY29udGFpbiBhIHZhbGlkIFAtMjU2
IHB1YmxpYyBrZXkiIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEFib3J0RXJyb3I6IHByb3Bl
cnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxNSwgZXhwZWN0ZWQgMjAKK0ZBSUwgY2FuIHN1YnNjcmli
ZSB3aXRoIHZhbGlkIGFwcGxpY2F0aW9uU2VydmVyS2V5IHN0cmluZyBwcm9taXNlX3JlamVjdHNf
ZG9tOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiSW52
YWxpZEFjY2Vzc0Vycm9yOiBhcHBsaWNhdGlvblNlcnZlcktleSBtdXN0IGNvbnRhaW4gYSB2YWxp
ZCBQLTI1NiBwdWJsaWMga2V5IiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBBYm9ydEVycm9y
OiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTUsIGV4cGVjdGVkIDIwCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>