<?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>227420</bug_id>
          
          <creation_ts>2021-06-25 23:17:26 -0700</creation_ts>
          <short_desc>RELEASE_ASSERT hit in NetworkSessionCocoa::removeWebSocketTask when using WKWebViewConfiguration._attributedBundleIdentifier</short_desc>
          <delta_ts>2021-06-28 09:39:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772861</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-25 23:17:26 -0700</bug_when>
    <thetext>RELEASE_ASSERT hit in NetworkSessionCocoa::removeWebSocketTask when using WKWebViewConfiguration._attributedBundleIdentifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772862</commentid>
    <comment_count>1</comment_count>
      <attachid>432321</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-25 23:22:32 -0700</bug_when>
    <thetext>Created attachment 432321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772863</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-25 23:22:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/79609212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772881</commentid>
    <comment_count>3</comment_count>
      <attachid>432321</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-26 08:17:10 -0700</bug_when>
    <thetext>Comment on attachment 432321
Patch

This is close but not quite correct if a NetworkSocketChannel is using the default session set.  I think we are going to need to have NetworkSocketChannel keep a WeakPtr to the SessionSet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772890</commentid>
    <comment_count>4</comment_count>
      <attachid>432335</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-26 13:19:47 -0700</bug_when>
    <thetext>Created attachment 432335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772891</commentid>
    <comment_count>5</comment_count>
      <attachid>432336</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-26 13:34:12 -0700</bug_when>
    <thetext>Created attachment 432336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773097</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-28 09:39:25 -0700</bug_when>
    <thetext>Committed r279340 (239208@main): &lt;https://commits.webkit.org/239208@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432336.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432321</attachid>
            <date>2021-06-25 23:22:32 -0700</date>
            <delta_ts>2021-06-26 13:19:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227420-20210625232231.patch</filename>
            <type>text/plain</type>
            <size>9325</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjN2JlN2ExOWJlNzNjNGYw
N2I2NTE3NDQ1NmZiZGQ0MDc2NGJjZDYuLjhhNzQzYjMwNGUyNjcyMjg3OGQwMjg0YTFjMjczODBl
ZDIzZmFmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMDYtMjUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUxFQVNFX0FT
U0VSVCBoaXQgaW4gTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayB3aGVu
IHVzaW5nIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjAK
KyAgICAgICAgPHJkYXI6Ly83OTYwOTIxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllciBtYWtlcyB1cyB1c2UgYSBTZXNzaW9uU2V0IHBlciBXS1dlYlZpZXcuCisg
ICAgICAgIFdoZW4gdGhlIFdLV2ViVmlldyBpcyBkZXN0cm95ZWQgd2l0aCBhbiBvcGVuIFdlYlNv
Y2tldCwgdGhlcmUncyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlCisgICAgICAgIE5ldHdv
cmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyBtZXNzYWdlIGNv
bWluZyBmcm9tIHRoZSBVSSBwcm9jZXNzIGFuZCB0aGUKKyAgICAgICAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlIG1lc3NhZ2UgY29taW5nIGZyb20gdGhlIGNsb3Npbmcg
b2YgdGhlIHdlYiBwcm9jZXNzLCB3aGljaAorICAgICAgICBjYWxscyBOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpyZW1vdmVXZWJTb2NrZXRUYXNrIHdoaWNoIGN1cnJlbnRseSBleHBlY3RzIHRoZSBXZWJT
b2NrZXRUYXNrIHRvIHN0aWxsCisgICAgICAgIGJlIHRoZXJlLiAgSW5zdGVhZCwgYWxsb3cgdGhl
IFNlc3Npb25TZXQgdG8gYWxyZWFkeSBoYXZlIGJlZW4gcmVtb3ZlZC4KKworICAgICAgICBJIHdy
b3RlIGFuIEFQSSB0ZXN0IHRoYXQgaGl0cyB0aGlzIGNvbmRpdGlvbiBzb21ldGltZXMgd2hlbiBI
QVZFX05TVVJMU0VTU0lPTl9XRUJTT0NLRVQgaXMgdHJ1ZS4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtTZXNzaW9uQ29jb2E6OnNlc3Npb25TZXRGb3JQYWdlSWZFeGlzdHMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJTb2NrZXRUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayk6CisKIDIw
MjEtMDYtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMjc4OTcwKTogQSBDQVRyYW5zYWN0aW9uIGNvbW1pdEhhbmRsZXIgc2hvdWxk
IG5vdCBleGVjdXRlIGEgY2xpZW50IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IGViMjg1ZDE5YWQw
ODIzOTVmMDk1ODVhNTAzNGViY2VkYzg2ZjNjNDcuLmVlNGI0NjdhZTVlYjZlNzk3YmRhMzc1ZjJm
ZDdhYjlhODQyNzc3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC02NSwxMSArNjUsMTEgQEAgTmV0d29ya1Nv
Y2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWMKIAogTmV0d29ya1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hh
bm5lbCgpCiB7Ci0gICAgaWYgKG1fc2Vzc2lvbikKLSAgICAgICAgbV9zZXNzaW9uLT5yZW1vdmVX
ZWJTb2NrZXRUYXNrKG1fd2ViUGFnZVByb3h5SUQsICptX3NvY2tldCk7Ci0KLSAgICBpZiAobV9z
b2NrZXQpCisgICAgaWYgKG1fc29ja2V0KSB7CisgICAgICAgIGlmIChtX3Nlc3Npb24pCisgICAg
ICAgICAgICBtX3Nlc3Npb24tPnJlbW92ZVdlYlNvY2tldFRhc2sobV93ZWJQYWdlUHJveHlJRCwg
Km1fc29ja2V0KTsKICAgICAgICAgbV9zb2NrZXQtPmNhbmNlbCgpOworICAgIH0KIH0KIAogdm9p
ZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6c2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIG1lc3NhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLmgKaW5kZXggN2RmNDAyNzJiNTg3OTMzZGQ3ZDI4NDg4MjZkYTExNjlhNTA5ODVlNS4u
YTllNmQ0MDdmYWIzOTVjNjJkNjFhNmNjMjQ3ZGNlNDFiMWJlZWFhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
LmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViUGFnZU5ldHdv
cmtQYXJhbWV0ZXJzLCBXZWFrUHRyPFNlc3Npb25TZXQ+PiBtX3BlclBhcmFtZXRlcnNTZXNzaW9u
U2V0czsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZU5TVVJMU2Vzc2lvbnNJblNldChTZXNzaW9uU2V0
JiwgTlNVUkxTZXNzaW9uQ29uZmlndXJhdGlvbiAqKTsKKyAgICBTZXNzaW9uU2V0KiBzZXNzaW9u
U2V0Rm9yUGFnZUlmRXhpc3RzKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwogICAgIFNlc3Npb25T
ZXQmIHNlc3Npb25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOwogICAgIGNvbnN0
IFNlc3Npb25TZXQmIHNlc3Npb25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpIGNv
bnN0OwogICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbFNlc3Npb25TZXQoU2Vzc2lvblNldCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGY0Y2JlNzYwY2U3MjZjYWViZTE3ZjU3OWM5NDA1MDA3
MGYzMDViMzguLjFlMDkzODgzMGU4ZWNmNzAzOTdmNzUyM2MxMWQ3OTY1ZWFiZGQ2Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KQEAgLTEzNDcsNiArMTM0NywxMSBAQCB2b2lkIE5ldHdvcmtTZXNzaW9u
Q29jb2E6OmluaXRpYWxpemVOU1VSTFNlc3Npb25zSW5TZXQoU2Vzc2lvblNldCYgc2Vzc2lvblNl
dCwgTgogICAgIHNlc3Npb25TZXQuc2Vzc2lvbldpdGhvdXRDcmVkZW50aWFsU3RvcmFnZS5pbml0
aWFsaXplKGNvbmZpZ3VyYXRpb24sICp0aGlzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6RG9Ob3RVc2UsIE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluOjpObyk7CiB9CiAKK2F1
dG8gTmV0d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2VJZkV4aXN0cyhXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKSAtPiBTZXNzaW9uU2V0KgoreworICAgIHJl
dHVybiB3ZWJQYWdlUHJveHlJRCA/IG1fcGVyUGFnZVNlc3Npb25TZXRzLmdldCh3ZWJQYWdlUHJv
eHlJRCkgOiBudWxscHRyOworfQorCiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0JiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpzZXNzaW9uU2V0Rm9yUGFnZShXZWJQYWdlUHJveHlJZGVudGlm
aWVyIHdlYlBhZ2VQcm94eUlEKQogewogICAgIFNlc3Npb25TZXQqIHNlc3Npb25TZXQgPSB3ZWJQ
YWdlUHJveHlJRCA/IG1fcGVyUGFnZVNlc3Npb25TZXRzLmdldCh3ZWJQYWdlUHJveHlJRCkgOiBu
dWxscHRyOwpAQCAtMTY5OSwxNCArMTcwNCwxOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0
VGFzaz4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUAog
CiB2b2lkIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViU29ja2V0VGFzayYgdGFzaykKIHsKLSAgICBS
RUxFQVNFX0FTU0VSVCghc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5SUQpLnNlc3Npb25X
aXRoQ3JlZGVudGlhbFN0b3JhZ2Uud2ViU29ja2V0RGF0YVRhc2tNYXAuY29udGFpbnModGFzay5p
ZGVudGlmaWVyKCkpKTsKLSAgICBzZXNzaW9uU2V0Rm9yUGFnZSh3ZWJQYWdlUHJveHlJRCkuc2Vz
c2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS53ZWJTb2NrZXREYXRhVGFza01hcC5hZGQodGFzay5p
ZGVudGlmaWVyKCksICZ0YXNrKTsKKyAgICBhdXRvJiBtYXAgPSBzZXNzaW9uU2V0Rm9yUGFnZSh3
ZWJQYWdlUHJveHlJRCkuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS53ZWJTb2NrZXREYXRh
VGFza01hcDsKKyAgICBSRUxFQVNFX0FTU0VSVCghbWFwLmNvbnRhaW5zKHRhc2suaWRlbnRpZmll
cigpKSk7CisgICAgbWFwLmFkZCh0YXNrLmlkZW50aWZpZXIoKSwgJnRhc2spOwogfQogCiB2b2lk
IE5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRl
bnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViU29ja2V0VGFzayYgdGFzaykKIHsKLSAgICBSRUxF
QVNFX0FTU0VSVChzZXNzaW9uU2V0Rm9yUGFnZSh3ZWJQYWdlUHJveHlJRCkuc2Vzc2lvbldpdGhD
cmVkZW50aWFsU3RvcmFnZS53ZWJTb2NrZXREYXRhVGFza01hcC5jb250YWlucyh0YXNrLmlkZW50
aWZpZXIoKSkpOwotICAgIHNlc3Npb25TZXRGb3JQYWdlKHdlYlBhZ2VQcm94eUlEKS5zZXNzaW9u
V2l0aENyZWRlbnRpYWxTdG9yYWdlLndlYlNvY2tldERhdGFUYXNrTWFwLnJlbW92ZSh0YXNrLmlk
ZW50aWZpZXIoKSk7CisgICAgYXV0byogc2Vzc2lvblNldCA9IHNlc3Npb25TZXRGb3JQYWdlSWZF
eGlzdHMod2ViUGFnZVByb3h5SUQpOworICAgIGlmICghc2Vzc2lvblNldCkKKyAgICAgICAgcmV0
dXJuOworICAgIFJFTEVBU0VfQVNTRVJUKHNlc3Npb25TZXQtPnNlc3Npb25XaXRoQ3JlZGVudGlh
bFN0b3JhZ2Uud2ViU29ja2V0RGF0YVRhc2tNYXAuY29udGFpbnModGFzay5pZGVudGlmaWVyKCkp
KTsKKyAgICBzZXNzaW9uU2V0LT5zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLndlYlNvY2tl
dERhdGFUYXNrTWFwLnJlbW92ZSh0YXNrLmlkZW50aWZpZXIoKSk7CiB9CiAKICNlbmRpZiAvLyBI
QVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTAwZDJhYjcwNjkzMDZhNzExMzA2ZDRmM2FkNTUzODcw
NGZiNTBmOS4uZWQwYTM4ZGNmNjM2MGQyMmFlNTVjYTgxOTFmMWU2OTkzNzc1ZDQyZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTA2LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQgaGl0IGluIE5ldHdvcmtTZXNzaW9uQ29jb2E6
OnJlbW92ZVdlYlNvY2tldFRhc2sgd2hlbiB1c2luZyBXS1dlYlZpZXdDb25maWd1cmF0aW9uLl9h
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NDIwCisgICAgICAgIDxyZGFyOi8vNzk2MDkyMTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlNvY2tldC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIxLTA2LTIzICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgQXBwIFByaXZhY3kgUmVwb3J0IGNvZGUgZnJv
bSBXZWJLaXRBZGRpdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV2ViU29ja2V0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJTb2NrZXQubW0KaW5kZXggNWQ2MzEyZTg2ZDg1MWQxZWYzZjI2MzAzY2EzNjA1
YjU5ZjkyMTY5ZC4uZWZjZGIxZTI5ODE2NmYxMDZmOTE2MjM0NDgyOTYwYjk1YjUxMjE2YiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJTb2NrZXQu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJTb2NrZXQu
bW0KQEAgLTI4LDcgKzI4LDEwIEBACiAjaW1wb3J0ICJIVFRQU2VydmVyLmgiCiAjaW1wb3J0ICJQ
bGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdFVJRGVsZWdhdGUuaCIKKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0
L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiAKQEAgLTgzLDQgKzg2LDQ2IEBAIFRFU1QoV2ViU29ja2V0LCBMb25nTWVzc2FnZU5vRGVmbGF0
ZSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0XSwgIlBB
U1MiKTsKIH0KIAorVEVTVChXZWJTb2NrZXQsIFBhZ2VXaXRoQXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXJEZXN0cm95ZWQpCit7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoW10oQ29ubmVjdGlvbiBj
b25uZWN0aW9uKSB7CisgICAgICAgIGNvbm5lY3Rpb24ud2ViU29ja2V0SGFuZHNoYWtlKCk7Cisg
ICAgfSk7CisKKyAgICBOU1N0cmluZyAqaHRtbCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiIgorICAgICI8c2NyaXB0PiIKKyAgICAiICAgIGxldCB0d29NZWdhYnl0ZXMgPSAyKjEwMjQq
MTAyNDsiCisgICAgIiAgICB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCd3czovLzEyNy4wLjAuMTol
ZC8nKTsiCisgICAgIiAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbigpIHsgYWxlcnQoJ29wZW5lZCBz
dWNjZXNzZnVsbHknKTsgfTsiCisgICAgIiAgICB3cy5vbmVycm9yID0gZnVuY3Rpb24oZXJyb3Ip
IHsgYWxlcnQoJ0ZBSUwgLSBlcnJvciAnICsgZXJyb3IubWVzc2FnZSk7IH0iCisgICAgIjwvc2Ny
aXB0PiIsIHNlcnZlci5wb3J0KCldOworCisgICAgcGlkX3Qgb3JpZ2luYWxOZXR3b3JrUHJvY2Vz
c1BJRCB7IDAgfTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIG5ld10pOworICAgIF9fYmxvY2sgc2l6ZV90IHdlYlNvY2tldHNDb25uZWN0
ZWQgeyAwIH07CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3RVSURlbGVnYXRlIG5l
d10pOworICAgIGRlbGVnYXRlLmdldCgpLnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2UgPSBeKFdLV2ViVmlldyAqLCBOU1N0cmluZyAqbWVzc2FnZSwgV0tGcmFtZUluZm8gKiwgdm9p
ZCAoXmNvbXBsZXRpb25IYW5kbGVyKSh2b2lkKSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
bWVzc2FnZSwgIm9wZW5lZCBzdWNjZXNzZnVsbHkiKTsKKyAgICAgICAgd2ViU29ja2V0c0Nvbm5l
Y3RlZCsrOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH07CisgICAgY29uc3Rl
eHByIHNpemVfdCB2aWV3Q291bnQgPSAyMDsKKworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAg
ICAgICBzdGQ6OmFycmF5PFJldGFpblB0cjxXS1dlYlZpZXc+LCB2aWV3Q291bnQ+IHZpZXdzOwor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZpZXdDb3VudDsgaSsrKSB7CisgICAgICAg
ICAgICBjb25maWd1cmF0aW9uLmdldCgpLl9hdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAidGVzdC5idW5kbGUuaWRlbnRpZmllci4lenUiLCBp
XTsKKyAgICAgICAgICAgIHZpZXdzW2ldID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgICAgIHZpZXdzW2ldLmdldCgpLlVJRGVsZWdhdGUg
PSBkZWxlZ2F0ZS5nZXQoKTsKKyAgICAgICAgICAgIFt2aWV3c1tpXSBsb2FkSFRNTFN0cmluZzpo
dG1sIGJhc2VVUkw6bmlsXTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAod2ViU29ja2V0c0Nv
bm5lY3RlZCA8IHZpZXdDb3VudCkKKyAgICAgICAgICAgIFV0aWw6OnNwaW5SdW5Mb29wKCk7Cisg
ICAgICAgIG9yaWdpbmFsTmV0d29ya1Byb2Nlc3NQSUQgPSBjb25maWd1cmF0aW9uLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUuX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBV
dGlsOjpzcGluUnVuTG9vcCh2aWV3Q291bnQgKiAzKTsKKyAgICBFWFBFQ1RfRVEob3JpZ2luYWxO
ZXR3b3JrUHJvY2Vzc1BJRCwgY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlLl9u
ZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432335</attachid>
            <date>2021-06-26 13:19:47 -0700</date>
            <delta_ts>2021-06-26 13:34:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227420-20210626131946.patch</filename>
            <type>text/plain</type>
            <size>20869</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjN2JlN2ExOWJlNzNjNGYw
N2I2NTE3NDQ1NmZiZGQ0MDc2NGJjZDYuLjAxZjc4NTc3ZDU5ZDI2OTM5ZjViYzhjODM2YTRkODgw
NGU2OTM2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDYtMjYgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUxFQVNFX0FT
U0VSVCBoaXQgaW4gTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayB3aGVu
IHVzaW5nIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjAK
KyAgICAgICAgPHJkYXI6Ly83OTYwOTIxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllciBtYWtlcyB1cyB1c2UgYSBTZXNzaW9uU2V0IHBlciBXS1dlYlZpZXcuCisg
ICAgICAgIFdoZW4gdGhlIFdLV2ViVmlldyBpcyBkZXN0cm95ZWQgd2l0aCBhbiBvcGVuIFdlYlNv
Y2tldCwgdGhlcmUncyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlCisgICAgICAgIE5ldHdv
cmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyBtZXNzYWdlIGNv
bWluZyBmcm9tIHRoZSBVSSBwcm9jZXNzIGFuZCB0aGUKKyAgICAgICAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlIG1lc3NhZ2UgY29taW5nIGZyb20gdGhlIGNsb3Npbmcg
b2YgdGhlIHdlYiBwcm9jZXNzLCB3aGljaAorICAgICAgICBjYWxscyBOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpyZW1vdmVXZWJTb2NrZXRUYXNrIHdoaWNoIGN1cnJlbnRseSBleHBlY3RzIHRoZSBXZWJT
b2NrZXRUYXNrIHRvIHN0aWxsCisgICAgICAgIGJlIHRoZXJlLiAgSW5zdGVhZCwga2VlcCBhIFdl
YWtQdHI8U2Vzc2lvblNldD4gYW5kIGRvbid0IHJlbW92ZSBpdCBpZiB0aGUgU2Vzc2lvblNldCdz
IG1hcCBpcyBnb25lLgorCisgICAgICAgIEkgd3JvdGUgYW4gQVBJIHRlc3QgdGhhdCBoaXRzIHRo
aXMgY29uZGl0aW9uIHNvbWV0aW1lcyB3aGVuIEhBVkVfTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCBp
cyB0cnVlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnJlbW92ZVdlYlNvY2tldFRhc2spOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uU2V0OjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uQ29jb2E6OnNlc3Npb25TZXRGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2UgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3RhdGVsZXNzU2Vzc2lvbklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblNldDo6aXNvbGF0ZWRTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlNvY2tldFRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpyZW1vdmVXZWJTb2NrZXRU
YXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6U2Vzc2lvblNldDo6
aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb25JZk5lZWRlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OlNlc3Npb25TZXQ6Omlzb2xhdGVk
U2Vzc2lvbik6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29j
a2V0VGFza0NvY29hLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OnNlc3Npb25T
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFzayk6CisKIDIw
MjEtMDYtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMjc4OTcwKTogQSBDQVRyYW5zYWN0aW9uIGNvbW1pdEhhbmRsZXIgc2hvdWxk
IG5vdCBleGVjdXRlIGEgY2xpZW50IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggN2ZhOTI3NDRmMjE1MmRjMzYzMDE1YjhhYzJk
ODI2NTA0MzVkY2IyNC4uMmJmZjE4MjI4MGM0MjhlODFiNmMzNjg0ZjVhYWY5MjhkYjg5NzkzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAt
NTMsMTYgKzUzLDE3IEBAIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1jbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI7CiBjbGFzcyBO
ZXR3b3JrRGF0YVRhc2s7CiBjbGFzcyBOZXR3b3JrTG9hZFNjaGVkdWxlcjsKIGNsYXNzIE5ldHdv
cmtQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgTmV0d29ya1Nv
Y2tldENoYW5uZWw7CitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI7CiBjbGFz
cyBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM7CiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU7CiBjbGFzcyBXZWJTb2NrZXRUYXNrOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOworc3RydWN0IFNlc3Npb25TZXQ7CiAKIGVudW0gY2xhc3MgV2Vic2l0
ZURhdGFUeXBlIDogdWludDMyX3Q7CiAKQEAgLTE0Miw3ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAK
ICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2Nr
ZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgV2ViU29ja2V0VGFzayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXZWJTb2NrZXRU
YXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFk
ZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIHsg
fQogCiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbCYgYmxvYlJlZ2lzdHJ5KCkgeyByZXR1
cm4gbV9ibG9iUmVnaXN0cnk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZWIyODVkMTlhZDA4MjM5NWYwOTU4
NWE1MDM0ZWJjZWRjODZmM2M0Ny4uNzcxMTJmNzhiMmI4ZTQ0ZDJjZDAyNjg1ZjJjOWVhYWYyODhk
MTUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5jcHAKQEAgLTY1LDExICs2NSwxMSBAQCBOZXR3b3JrU29ja2V0Q2hhbm5l
bDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lYwogCiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6fk5ldHdvcmtTb2NrZXRDaGFubmVsKCkKIHsK
LSAgICBpZiAobV9zZXNzaW9uKQotICAgICAgICBtX3Nlc3Npb24tPnJlbW92ZVdlYlNvY2tldFRh
c2sobV93ZWJQYWdlUHJveHlJRCwgKm1fc29ja2V0KTsKLQotICAgIGlmIChtX3NvY2tldCkKKyAg
ICBpZiAobV9zb2NrZXQpIHsKKyAgICAgICAgaWYgKG1fc2Vzc2lvbiAmJiBtX3NvY2tldC0+c2Vz
c2lvblNldCgpKQorICAgICAgICAgICAgbV9zZXNzaW9uLT5yZW1vdmVXZWJTb2NrZXRUYXNrKCpt
X3NvY2tldC0+c2Vzc2lvblNldCgpLCAqbV9zb2NrZXQpOwogICAgICAgICBtX3NvY2tldC0+Y2Fu
Y2VsKCk7CisgICAgfQogfQogCiB2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3RyaW5n
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTb2NrZXRUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tl
dFRhc2suaAppbmRleCA5NjFlNDY0NTliZTc3MTc3ZTI2MDVlN2Q4NjUyYWRhODAyMDk3YjUzLi5j
ZDU0N2RlYjk1YzdlMDliMTQ3NGM1MTEwMjdjZjQ2NTM0NzIxMzQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaApAQCAtMzEsOSArMzEsMTAgQEAKICNp
bmNsdWRlICJXZWJTb2NrZXRUYXNrU291cC5oIgogI2Vsc2UKIAotCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAorc3RydWN0IFNlc3Npb25TZXQ7CisKIGNsYXNzIFdlYlNvY2tldFRhc2sgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDUsNiArNDYsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGNhbmNlbCgpIHsgfQogICAgIHZvaWQgcmVzdW1lKCkgeyB9CisgICAgCisg
ICAgU2Vzc2lvblNldCogc2Vzc2lvblNldCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCA3ZGY0MDI3MmI1ODc5MzNk
ZDdkMjg0ODgyNmRhMTE2OWE1MDk4NWU1Li5jYjk3ZTgyZDBjZjc2YTQ3MjRhNWU0M2E5OGZkM2Iw
ZTIyYzdjZjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtNjQsNiArNjQsMzYgQEAgc3RydWN0IFNl
c3Npb25XcmFwcGVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNlc3Npb25XcmFwcGVyPiB7CiAj
ZW5kaWYKIH07CiAKK3N0cnVjdCBJc29sYXRlZFNlc3Npb24geworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25XaXRoQ3JlZGVu
dGlhbFN0b3JhZ2U7CisgICAgU2Vzc2lvbldyYXBwZXIgc2Vzc2lvbldpdGhvdXRDcmVkZW50aWFs
U3RvcmFnZTsKKyAgICBXYWxsVGltZSBsYXN0VXNlZDsKK307CisKK3N0cnVjdCBTZXNzaW9uU2V0
IDogcHVibGljIFJlZkNvdW50ZWQ8U2Vzc2lvblNldD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxT
ZXNzaW9uU2V0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTZXNzaW9uU2V0PiBjcmVhdGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Vzc2lvblNldCk7CisgICAg
fQorCisgICAgU2Vzc2lvbldyYXBwZXImIGlzb2xhdGVkU2Vzc2lvbihXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBOZXR3b3JrU2Vzc2lvbkNvY29hJik7CisgICAgU2Vzc2lv
bldyYXBwZXImIGluaXRpYWxpemVFcGhlbWVyYWxTdGF0ZWxlc3NTZXNzaW9uSWZOZWVkZWQoTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmKTsKKworICAgIEhh
c2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIHN0ZDo6dW5pcXVlX3B0cjxJc29sYXRl
ZFNlc3Npb24+PiBpc29sYXRlZFNlc3Npb25zOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29sYXRl
ZFNlc3Npb24+IGFwcEJvdW5kU2Vzc2lvbjsKKworICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25X
aXRoQ3JlZGVudGlhbFN0b3JhZ2U7CisgICAgU2Vzc2lvbldyYXBwZXIgc2Vzc2lvbldpdGhvdXRD
cmVkZW50aWFsU3RvcmFnZTsKKyAgICBTZXNzaW9uV3JhcHBlciBlcGhlbWVyYWxTdGF0ZWxlc3NT
ZXNzaW9uOworCitwcml2YXRlOgorCisgICAgU2Vzc2lvblNldCgpID0gZGVmYXVsdDsKK307CisK
IGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24g
ewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+IGNy
ZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYp
OwpAQCAtMTI1LDQyICsxNTUsMTMgQEAgcHJpdmF0ZToKICNpZiBIQVZFKE5TVVJMU0VTU0lPTl9X
RUJTT0NLRVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNv
Y2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKSBm
aW5hbDsKICAgICB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViU29ja2V0VGFzayYpIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlV2ViU29ja2V0VGFzayhXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLCBXZWJTb2NrZXRUYXNrJikgZmluYWw7CisgICAgdm9pZCByZW1v
dmVXZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgZmluYWw7CiAjZW5k
aWYKIAogICAgIHZvaWQgYWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYmKSBmaW5hbDsKICAgICB2b2lkIHJl
bW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBmaW5h
bDsKICAgICBzaXplX3QgY291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdCBmaW5hbDsK
IAotICAgIHN0cnVjdCBJc29sYXRlZFNlc3Npb24gewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25XaXRo
Q3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25XaXRob3V0
Q3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFdhbGxUaW1lIGxhc3RVc2VkOwotICAgIH07Ci0K
LSAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Vzc2lvblNldD4gewotICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFJlZjxTZXNzaW9uU2V0PiBjcmVhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXNzaW9uU2V0KTsKLSAgICAgICAgfQotICAgIAotICAgICAg
ICBTZXNzaW9uV3JhcHBlciYgaXNvbGF0ZWRTZXNzaW9uKFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmKTsKLSAgICAgICAgU2Vzc2lvbldy
YXBwZXImIGluaXRpYWxpemVFcGhlbWVyYWxTdGF0ZWxlc3NTZXNzaW9uSWZOZWVkZWQoTmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmKTsKLQotICAgICAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6OnVuaXF1ZV9wdHI8SXNvbGF0
ZWRTZXNzaW9uPj4gaXNvbGF0ZWRTZXNzaW9uczsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElz
b2xhdGVkU2Vzc2lvbj4gYXBwQm91bmRTZXNzaW9uOwotCi0gICAgICAgIFNlc3Npb25XcmFwcGVy
IHNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIHNl
c3Npb25XaXRob3V0Q3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIGVw
aGVtZXJhbFN0YXRlbGVzc1Nlc3Npb247Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTZXNzaW9u
U2V0KCkgPSBkZWZhdWx0OwotICAgIH07Ci0KICAgICBSZWY8U2Vzc2lvblNldD4gbV9kZWZhdWx0
U2Vzc2lvblNldDsKICAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFJlZjxTZXNz
aW9uU2V0Pj4gbV9wZXJQYWdlU2Vzc2lvblNldHM7CiAgICAgSGFzaE1hcDxXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMsIFdlYWtQdHI8U2Vzc2lvblNldD4+IG1fcGVyUGFyYW1ldGVyc1Nlc3Npb25T
ZXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGY0Y2JlNzYwY2U3MjZjYWViZTE3ZjU3OWM5NDA1
MDA3MGYzMDViMzguLjU1NGY4MTE2MjU2MzEyYmE3MDI4MjcwZDgyNTMxMTA3NWNmMTM0MzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KQEAgLTEzNDcsMTMgKzEzNDcsMTMgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbkNvY29hOjppbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmIHNlc3Np
b25TZXQsIE4KICAgICBzZXNzaW9uU2V0LnNlc3Npb25XaXRob3V0Q3JlZGVudGlhbFN0b3JhZ2Uu
aW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLCAqdGhpcywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k6OkRvTm90VXNlLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8pOwogfQog
Ci1OZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0JiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpz
ZXNzaW9uU2V0Rm9yUGFnZShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQor
U2Vzc2lvblNldCYgTmV0d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2UoV2ViUGFn
ZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkKIHsKICAgICBTZXNzaW9uU2V0KiBzZXNz
aW9uU2V0ID0gd2ViUGFnZVByb3h5SUQgPyBtX3BlclBhZ2VTZXNzaW9uU2V0cy5nZXQod2ViUGFn
ZVByb3h5SUQpIDogbnVsbHB0cjsKICAgICByZXR1cm4gc2Vzc2lvblNldCA/ICpzZXNzaW9uU2V0
IDogbV9kZWZhdWx0U2Vzc2lvblNldC5nZXQoKTsKIH0KIAotY29uc3QgTmV0d29ya1Nlc3Npb25D
b2NvYTo6U2Vzc2lvblNldCYgTmV0d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2Uo
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkgY29uc3QKK2NvbnN0IFNlc3Np
b25TZXQmIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnNlc3Npb25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpIGNvbnN0CiB7CiAgICAgU2Vzc2lvblNldCogc2Vz
c2lvblNldCA9IHdlYlBhZ2VQcm94eUlEID8gbV9wZXJQYWdlU2Vzc2lvblNldHMuZ2V0KHdlYlBh
Z2VQcm94eUlEKSA6IG51bGxwdHI7CiAgICAgcmV0dXJuIHNlc3Npb25TZXQgPyAqc2Vzc2lvblNl
dCA6IG1fZGVmYXVsdFNlc3Npb25TZXQuZ2V0KCk7CkBAIC0xMzY0LDcgKzEzNjQsNyBAQCBTZXNz
aW9uV3JhcHBlciYgTmV0d29ya1Nlc3Npb25Db2NvYTo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRl
bGVzc1Nlc3Npb25JZk5lZWRlZAogICAgIHJldHVybiBzZXNzaW9uU2V0Rm9yUGFnZSh3ZWJQYWdl
UHJveHlJRCkuaW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb25JZk5lZWRlZChpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCAqdGhpcyk7CiB9CiAKLVNlc3Npb25XcmFwcGVyJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3RhdGVs
ZXNzU2Vzc2lvbklmTmVlZGVkKE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmIHNlc3Npb24pCitTZXNzaW9u
V3JhcHBlciYgU2Vzc2lvblNldDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb25J
Zk5lZWRlZChOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiBpc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCBOZXR3b3JrU2Vzc2lvbkNvY29hJiBzZXNzaW9uKQogewogICAgIGlmIChlcGhlbWVy
YWxTdGF0ZWxlc3NTZXNzaW9uLnNlc3Npb24pCiAgICAgICAgIHJldHVybiBlcGhlbWVyYWxTdGF0
ZWxlc3NTZXNzaW9uOwpAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgU2Vzc2lvbldyYXBwZXImIE5ldHdv
cmtTZXNzaW9uQ29jb2E6Omlzb2xhdGVkU2Vzc2lvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlAKICAgICByZXR1cm4gc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5SUQpLmlzb2xhdGVk
U2Vzc2lvbihzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZmlyc3RQYXJ0eURvbWFpbiwgaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgKnRoaXMpOwogfQogCi1TZXNzaW9uV3JhcHBlciYgTmV0
d29ya1Nlc3Npb25Db2NvYTo6U2Vzc2lvblNldDo6aXNvbGF0ZWRTZXNzaW9uKFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluLCBOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBOZXR3b3JrU2Vzc2lvbkNv
Y29hJiBzZXNzaW9uKQorU2Vzc2lvbldyYXBwZXImIFNlc3Npb25TZXQ6Omlzb2xhdGVkU2Vzc2lv
bihXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiwgTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgTmV0
d29ya1Nlc3Npb25Db2NvYSYgc2Vzc2lvbikKIHsKICAgICBhdXRvJiBlbnRyeSA9IGlzb2xhdGVk
U2Vzc2lvbnMuZW5zdXJlKGZpcnN0UGFydHlEb21haW4sIFt0aGlzLCAmc2Vzc2lvbiwgaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbl0gewogICAgICAgICBhdXRvIG5ld0VudHJ5ID0gbWFrZVVu
aXF1ZTxJc29sYXRlZFNlc3Npb24+KCk7CkBAIC0xNjkyLDIxICsxNjkyLDI0IEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2Nr
ZXRUYXNrKFdlYlBhZ2VQCiAgICAgLy8gcmRhcjovL3Byb2JsZW0vNjgwNTcwMzE6IGV4cGxpY2l0
bHkgZGlzYWJsZSBzbmlmZmluZyBmb3IgV2ViU29ja2V0IGhhbmRzaGFrZXMuCiAgICAgW25zUmVx
dWVzdCBfc2V0UHJvcGVydHk6QE5PIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlv
blByb3BlcnR5U2hvdWxkU25pZmZdOwogCi0gICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNv
Y2tldFRhc2s+IHRhc2sgPSBbc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5SUQpLnNlc3Np
b25XaXRoQ3JlZGVudGlhbFN0b3JhZ2Uuc2Vzc2lvbiB3ZWJTb2NrZXRUYXNrV2l0aFJlcXVlc3Q6
bnNSZXF1ZXN0LmdldCgpXTsKKyAgICBhdXRvJiBzZXNzaW9uU2V0ID0gc2Vzc2lvblNldEZvclBh
Z2Uod2ViUGFnZVByb3h5SUQpOworICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRU
YXNrPiB0YXNrID0gW3Nlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS5zZXNz
aW9uIHdlYlNvY2tldFRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3QuZ2V0KCldOwogICAgIHRhc2su
Z2V0KCkubWF4aW11bU1lc3NhZ2VTaXplID0gMDsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJT
b2NrZXRUYXNrPihjaGFubmVsLCB3ZWJQYWdlUHJveHlJRCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNr
KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFn
ZVByb3h5SUQsIG1ha2VXZWFrUHRyKHNlc3Npb25TZXQpLCByZXF1ZXN0LCBXVEZNb3ZlKHRhc2sp
KTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJTb2NrZXRUYXNrKFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYlNvY2tldFRhc2smIHRhc2spCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlQoIXNlc3Npb25TZXRGb3JQYWdlKHdlYlBhZ2VQcm94eUlEKS5z
ZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLndlYlNvY2tldERhdGFUYXNrTWFwLmNvbnRhaW5z
KHRhc2suaWRlbnRpZmllcigpKSk7Ci0gICAgc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5
SUQpLnNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2Uud2ViU29ja2V0RGF0YVRhc2tNYXAuYWRk
KHRhc2suaWRlbnRpZmllcigpLCAmdGFzayk7CisgICAgYXV0byYgbWFwID0gc2Vzc2lvblNldEZv
clBhZ2Uod2ViUGFnZVByb3h5SUQpLnNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2Uud2ViU29j
a2V0RGF0YVRhc2tNYXA7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1hcC5jb250YWlucyh0YXNrLmlk
ZW50aWZpZXIoKSkpOworICAgIG1hcC5hZGQodGFzay5pZGVudGlmaWVyKCksICZ0YXNrKTsKIH0K
IAotdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpyZW1vdmVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYlNvY2tldFRhc2smIHRhc2spCit2b2lk
IE5ldHdvcmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlNvY2tldFRhc2soU2Vzc2lvblNldCYgc2Vz
c2lvblNldCwgV2ViU29ja2V0VGFzayYgdGFzaykKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChzZXNz
aW9uU2V0Rm9yUGFnZSh3ZWJQYWdlUHJveHlJRCkuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFn
ZS53ZWJTb2NrZXREYXRhVGFza01hcC5jb250YWlucyh0YXNrLmlkZW50aWZpZXIoKSkpOwotICAg
IHNlc3Npb25TZXRGb3JQYWdlKHdlYlBhZ2VQcm94eUlEKS5zZXNzaW9uV2l0aENyZWRlbnRpYWxT
dG9yYWdlLndlYlNvY2tldERhdGFUYXNrTWFwLnJlbW92ZSh0YXNrLmlkZW50aWZpZXIoKSk7Cisg
ICAgYXV0byYgbWFwID0gc2Vzc2lvblNldC5zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLndl
YlNvY2tldERhdGFUYXNrTWFwOworICAgIFJFTEVBU0VfQVNTRVJUKG1hcC5jb250YWlucyh0YXNr
LmlkZW50aWZpZXIoKSkpOworICAgIG1hcC5yZW1vdmUodGFzay5pZGVudGlmaWVyKCkpOwogfQog
CiAjZW5kaWYgLy8gSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgKaW5k
ZXggMzk1MzU3MDM1MDJkNWE1NGIzZjVhOWFlMjRjM2ZlMzIwMjgwOGE4OC4uOTMwN2NlZDk5ZDVh
Yzg3MDc1MWQyZGFiNTZkZDQ2YTAzYWQ0MzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5oCkBAIC00MiwxMSAr
NDIsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNz
IE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbDsKK3N0cnVj
dCBTZXNzaW9uU2V0OwogCiBjbGFzcyBXZWJTb2NrZXRUYXNrIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFdlYlNvY2tldFRhc2s+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUmV0YWluUHRyPE5T
VVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYpOworICAgIFdlYlNvY2tldFRhc2soTmV0d29ya1Nv
Y2tldENoYW5uZWwmLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWFrUHRyPFNlc3Npb25TZXQ+
JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFJldGFpblB0cjxOU1VSTFNlc3Np
b25XZWJTb2NrZXRUYXNrPiYmKTsKICAgICB+V2ViU29ja2V0VGFzaygpOwogCiAgICAgdm9pZCBz
ZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CkBAIC02Myw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICBUYXNrSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKiBuZXR3b3JrU2Vz
c2lvbigpOworICAgIFNlc3Npb25TZXQqIHNlc3Npb25TZXQoKSB7IHJldHVybiBtX3Nlc3Npb25T
ZXQuZ2V0KCk7IH0KIAogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlSUQ7IH0KICAgICBTdHJpbmcgcGFydGl0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wYXJ0aXRpb247IH0KQEAgLTc1LDYgKzc3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cmVjZWl2ZWREaWRDbG9zZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlY2VpdmVkRGlkQ29ubmVj
dCB7IGZhbHNlIH07CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3BhZ2VJRDsKKyAgICBX
ZWFrUHRyPFNlc3Npb25TZXQ+IG1fc2Vzc2lvblNldDsKICAgICBTdHJpbmcgbV9wYXJ0aXRpb247
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dl
YlNvY2tldFRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
V2ViU29ja2V0VGFza0NvY29hLm1tCmluZGV4IGQ3Y2I3MjA4NzM3M2U1YmM1Y2JhODE3ZmY4NjBi
OTMzNWU2OWU4NjcuLmZjMjA3NGY4YjZmMGEyZDk1MjY5MDE3N2IwNTMxZGYyOWY4YzdkMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFz
a0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29j
a2V0VGFza0NvY29hLm1tCkBAIC00MCwxMCArNDAsMTEgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJTb2NrZXRUYXNrOjpXZWJTb2NrZXRUYXNr
KE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
dGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrPiYmIHRhc2spCitXZWJTb2NrZXRUYXNr
OjpXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHBhZ2VJRCwgV2Vha1B0cjxTZXNzaW9uU2V0PiYmIHNlc3Npb25TZXQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmV0YWluUHRyPE5TVVJMU2Vz
c2lvbldlYlNvY2tldFRhc2s+JiYgdGFzaykKICAgICA6IG1fY2hhbm5lbChjaGFubmVsKQogICAg
ICwgbV90YXNrKFdURk1vdmUodGFzaykpCi0gICAgLCBtX3BhZ2VJRCh3ZWJQYWdlUHJveHlJRCkK
KyAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAsIG1fc2Vzc2lvblNldChXVEZNb3ZlKHNlc3Np
b25TZXQpKQogICAgICwgbV9wYXJ0aXRpb24ocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKQogewog
ICAgIHJlYWROZXh0TWVzc2FnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAppbmRleCA1Y2QyNzVmYzZiODhmNDAxMjZm
MTdiNGUyZWUwOGM3ZjEwM2Y2Nzg5Li43YTZmNGQxNmI3ZGYzNmMwYjllNzk1MDg4NTk0M2NjZDM3
ZDNiZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2Vi
U29ja2V0VGFza1NvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
V2ViU29ja2V0VGFza1NvdXAuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIGNsYXNzIE5ldHdvcmtTb2NrZXRDaGFubmVsOworc3RydWN0IFNlc3Npb25TZXQ7CiAKIGNs
YXNzIFdlYlNvY2tldFRhc2sgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNDcs
NiArNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWwoKTsKICAgICB2b2lkIHJlc3VtZSgp
OwogCisgICAgU2Vzc2lvblNldCogc2Vzc2lvblNldCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKwog
cHJpdmF0ZToKICAgICB2b2lkIGRpZENvbm5lY3QoR1JlZlB0cjxTb3VwV2Vic29ja2V0Q29ubmVj
dGlvbj4mJik7CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUwMGQyYWI3MDY5MzA2YTcx
MTMwNmQ0ZjNhZDU1Mzg3MDRmYjUwZjkuLmVkMGEzOGRjZjYzNjBkMjJhZTU1Y2E4MTkxZjFlNjk5
Mzc3NWQ0MmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNi0yNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUIGhpdCBpbiBOZXR3
b3JrU2Vzc2lvbkNvY29hOjpyZW1vdmVXZWJTb2NrZXRUYXNrIHdoZW4gdXNpbmcgV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzQyMAorICAgICAgICA8cmRhcjov
Lzc5NjA5MjEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJTb2NrZXQubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0wNi0yMyAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRlIEFwcCBQcml2YWN5
IFJlcG9ydCBjb2RlIGZyb20gV2ViS2l0QWRkaXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlNvY2tldC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViU29ja2V0Lm1tCmluZGV4IDVkNjMxMmU4NmQ4NTFk
MWVmM2YyNjMwM2NhMzYwNWI1OWY5MjE2OWQuLjYzNjQ4MzZlZGFkZjJjZmRlZjhhOTIzZmY3MDBh
NDc3MThhNDliZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViU29ja2V0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2ViU29ja2V0Lm1tCkBAIC0yOCw3ICsyOCwxMCBAQAogI2ltcG9ydCAiSFRUUFNlcnZl
ci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3RVSURlbGVn
YXRlLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCkBAIC04Myw0ICs4Niw0NSBAQCBURVNUKFdlYlNvY2tldCwgTG9u
Z01lc3NhZ2VOb0RlZmxhdGUpCiAgICAgRVhQRUNUX1dLX1NUUkVRKFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JBbGVydF0sICJQQVNTIik7CiB9CiAKK1RFU1QoV2ViU29ja2V0LCBQYWdlV2l0aEF0dHJp
YnV0ZWRCdW5kbGVJZGVudGlmaWVyRGVzdHJveWVkKQoreworICAgIEhUVFBTZXJ2ZXIgc2VydmVy
KFtdKENvbm5lY3Rpb24gY29ubmVjdGlvbikgeworICAgICAgICBjb25uZWN0aW9uLndlYlNvY2tl
dEhhbmRzaGFrZSgpOworICAgIH0pOworCisgICAgTlNTdHJpbmcgKmh0bWwgPSBbTlNTdHJpbmcg
c3RyaW5nV2l0aEZvcm1hdDpAIiIKKyAgICAiPHNjcmlwdD4iCisgICAgIiAgICB2YXIgd3MgPSBu
ZXcgV2ViU29ja2V0KCd3czovLzEyNy4wLjAuMTolZC8nKTsiCisgICAgIiAgICB3cy5vbm9wZW4g
PSBmdW5jdGlvbigpIHsgYWxlcnQoJ29wZW5lZCBzdWNjZXNzZnVsbHknKTsgfTsiCisgICAgIiAg
ICB3cy5vbmVycm9yID0gZnVuY3Rpb24oZXJyb3IpIHsgYWxlcnQoJ0ZBSUwgLSBlcnJvciAnICsg
ZXJyb3IubWVzc2FnZSk7IH0iCisgICAgIjwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldOworCisg
ICAgcGlkX3Qgb3JpZ2luYWxOZXR3b3JrUHJvY2Vzc1BJRCB7IDAgfTsKKyAgICBhdXRvIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAgIF9f
YmxvY2sgc2l6ZV90IHdlYlNvY2tldHNDb25uZWN0ZWQgeyAwIH07CisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1Rlc3RVSURlbGVnYXRlIG5ld10pOworICAgIGRlbGVnYXRlLmdldCgpLnJ1
bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2UgPSBeKFdLV2ViVmlldyAqLCBOU1N0cmlu
ZyAqbWVzc2FnZSwgV0tGcmFtZUluZm8gKiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKSh2b2lk
KSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgIm9wZW5lZCBzdWNjZXNzZnVs
bHkiKTsKKyAgICAgICAgd2ViU29ja2V0c0Nvbm5lY3RlZCsrOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworICAgIH07CisgICAgY29uc3RleHByIHNpemVfdCB2aWV3Q291bnQgPSAyMDsK
KworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBzdGQ6OmFycmF5PFJldGFpblB0cjxX
S1dlYlZpZXc+LCB2aWV3Q291bnQ+IHZpZXdzOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHZpZXdDb3VudDsgaSsrKSB7CisgICAgICAgICAgICBjb25maWd1cmF0aW9uLmdldCgpLl9h
dHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
dGVzdC5idW5kbGUuaWRlbnRpZmllci4lenUiLCBpXTsKKyAgICAgICAgICAgIHZpZXdzW2ldID0g
YWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAg
ICAgIHZpZXdzW2ldLmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKyAgICAgICAg
ICAgIFt2aWV3c1tpXSBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6bmlsXTsKKyAgICAgICAg
fQorICAgICAgICB3aGlsZSAod2ViU29ja2V0c0Nvbm5lY3RlZCA8IHZpZXdDb3VudCkKKyAgICAg
ICAgICAgIFV0aWw6OnNwaW5SdW5Mb29wKCk7CisgICAgICAgIG9yaWdpbmFsTmV0d29ya1Byb2Nl
c3NQSUQgPSBjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUuX25ldHdvcmtQcm9j
ZXNzSWRlbnRpZmllcjsKKyAgICB9CisKKyAgICBVdGlsOjpzcGluUnVuTG9vcCh2aWV3Q291bnQg
KiAzKTsKKyAgICBFWFBFQ1RfRVEob3JpZ2luYWxOZXR3b3JrUHJvY2Vzc1BJRCwgY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlLl9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIpOwor
fQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432336</attachid>
            <date>2021-06-26 13:34:12 -0700</date>
            <delta_ts>2021-06-28 09:39:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227420-20210626133412.patch</filename>
            <type>text/plain</type>
            <size>20825</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjN2JlN2ExOWJlNzNjNGYw
N2I2NTE3NDQ1NmZiZGQ0MDc2NGJjZDYuLjAxZjc4NTc3ZDU5ZDI2OTM5ZjViYzhjODM2YTRkODgw
NGU2OTM2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDYtMjYgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUxFQVNFX0FT
U0VSVCBoaXQgaW4gTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayB3aGVu
IHVzaW5nIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjAK
KyAgICAgICAgPHJkYXI6Ly83OTYwOTIxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uLl9hdHRyaWJ1dGVkQnVu
ZGxlSWRlbnRpZmllciBtYWtlcyB1cyB1c2UgYSBTZXNzaW9uU2V0IHBlciBXS1dlYlZpZXcuCisg
ICAgICAgIFdoZW4gdGhlIFdLV2ViVmlldyBpcyBkZXN0cm95ZWQgd2l0aCBhbiBvcGVuIFdlYlNv
Y2tldCwgdGhlcmUncyBhIHJhY2UgY29uZGl0aW9uIGJldHdlZW4gdGhlCisgICAgICAgIE5ldHdv
cmtTZXNzaW9uQ29jb2E6OnJlbW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyBtZXNzYWdlIGNv
bWluZyBmcm9tIHRoZSBVSSBwcm9jZXNzIGFuZCB0aGUKKyAgICAgICAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlIG1lc3NhZ2UgY29taW5nIGZyb20gdGhlIGNsb3Npbmcg
b2YgdGhlIHdlYiBwcm9jZXNzLCB3aGljaAorICAgICAgICBjYWxscyBOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpyZW1vdmVXZWJTb2NrZXRUYXNrIHdoaWNoIGN1cnJlbnRseSBleHBlY3RzIHRoZSBXZWJT
b2NrZXRUYXNrIHRvIHN0aWxsCisgICAgICAgIGJlIHRoZXJlLiAgSW5zdGVhZCwga2VlcCBhIFdl
YWtQdHI8U2Vzc2lvblNldD4gYW5kIGRvbid0IHJlbW92ZSBpdCBpZiB0aGUgU2Vzc2lvblNldCdz
IG1hcCBpcyBnb25lLgorCisgICAgICAgIEkgd3JvdGUgYW4gQVBJIHRlc3QgdGhhdCBoaXRzIHRo
aXMgY29uZGl0aW9uIHNvbWV0aW1lcyB3aGVuIEhBVkVfTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCBp
cyB0cnVlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246OnJlbW92ZVdlYlNvY2tldFRhc2spOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1NvY2tldENoYW5uZWw6On5OZXR3b3JrU29ja2V0Q2hhbm5lbCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uU2V0OjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uQ29jb2E6OnNlc3Npb25TZXRGb3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2UgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3RhdGVsZXNzU2Vzc2lvbklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblNldDo6aXNvbGF0ZWRTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFkZFdlYlNvY2tldFRhc2sp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hOjpyZW1vdmVXZWJTb2NrZXRU
YXNrKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6U2Vzc2lvblNldDo6
aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb25JZk5lZWRlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OlNlc3Npb25TZXQ6Omlzb2xhdGVk
U2Vzc2lvbik6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29j
a2V0VGFza0NvY29hLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldFRhc2s6OnNlc3Npb25T
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFzayk6CisKIDIw
MjEtMDYtMjMgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMjc4OTcwKTogQSBDQVRyYW5zYWN0aW9uIGNvbW1pdEhhbmRsZXIgc2hvdWxk
IG5vdCBleGVjdXRlIGEgY2xpZW50IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKaW5kZXggN2ZhOTI3NDRmMjE1MmRjMzYzMDE1YjhhYzJk
ODI2NTA0MzVkY2IyNC4uMmJmZjE4MjI4MGM0MjhlODFiNmMzNjg0ZjVhYWY5MjhkYjg5NzkzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaApAQCAt
NTMsMTYgKzUzLDE3IEBAIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1jbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI7CiBjbGFzcyBO
ZXR3b3JrRGF0YVRhc2s7CiBjbGFzcyBOZXR3b3JrTG9hZFNjaGVkdWxlcjsKIGNsYXNzIE5ldHdv
cmtQcm9jZXNzOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgTmV0d29ya1Nv
Y2tldENoYW5uZWw7CitjbGFzcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI7CiBjbGFz
cyBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM7CiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU7CiBjbGFzcyBXZWJTb2NrZXRUYXNrOwogc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOworc3RydWN0IFNlc3Npb25TZXQ7CiAKIGVudW0gY2xhc3MgV2Vic2l0
ZURhdGFUeXBlIDogdWludDMyX3Q7CiAKQEAgLTE0Miw3ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAK
ICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2Nr
ZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgV2ViU29ja2V0VGFzayYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXZWJTb2NrZXRU
YXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFk
ZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIHsg
fQogCiAgICAgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbCYgYmxvYlJlZ2lzdHJ5KCkgeyByZXR1
cm4gbV9ibG9iUmVnaXN0cnk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZWIyODVkMTlhZDA4MjM5NWYwOTU4
NWE1MDM0ZWJjZWRjODZmM2M0Ny4uNzcxMTJmNzhiMmI4ZTQ0ZDJjZDAyNjg1ZjJjOWVhYWYyODhk
MTUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5jcHAKQEAgLTY1LDExICs2NSwxMSBAQCBOZXR3b3JrU29ja2V0Q2hhbm5l
bDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lYwogCiBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6fk5ldHdvcmtTb2NrZXRDaGFubmVsKCkKIHsK
LSAgICBpZiAobV9zZXNzaW9uKQotICAgICAgICBtX3Nlc3Npb24tPnJlbW92ZVdlYlNvY2tldFRh
c2sobV93ZWJQYWdlUHJveHlJRCwgKm1fc29ja2V0KTsKLQotICAgIGlmIChtX3NvY2tldCkKKyAg
ICBpZiAobV9zb2NrZXQpIHsKKyAgICAgICAgaWYgKG1fc2Vzc2lvbiAmJiBtX3NvY2tldC0+c2Vz
c2lvblNldCgpKQorICAgICAgICAgICAgbV9zZXNzaW9uLT5yZW1vdmVXZWJTb2NrZXRUYXNrKCpt
X3NvY2tldC0+c2Vzc2lvblNldCgpLCAqbV9zb2NrZXQpOwogICAgICAgICBtX3NvY2tldC0+Y2Fu
Y2VsKCk7CisgICAgfQogfQogCiB2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpzZW5kU3RyaW5n
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9XZWJTb2NrZXRUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tl
dFRhc2suaAppbmRleCA5NjFlNDY0NTliZTc3MTc3ZTI2MDVlN2Q4NjUyYWRhODAyMDk3YjUzLi5j
ZDU0N2RlYjk1YzdlMDliMTQ3NGM1MTEwMjdjZjQ2NTM0NzIxMzQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1dlYlNvY2tldFRhc2suaApAQCAtMzEsOSArMzEsMTAgQEAKICNp
bmNsdWRlICJXZWJTb2NrZXRUYXNrU291cC5oIgogI2Vsc2UKIAotCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAorc3RydWN0IFNlc3Npb25TZXQ7CisKIGNsYXNzIFdlYlNvY2tldFRhc2sgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDUsNiArNDYsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGNhbmNlbCgpIHsgfQogICAgIHZvaWQgcmVzdW1lKCkgeyB9CisgICAgCisg
ICAgU2Vzc2lvblNldCogc2Vzc2lvblNldCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCA3ZGY0MDI3MmI1ODc5MzNk
ZDdkMjg0ODgyNmRhMTE2OWE1MDk4NWU1Li5jYjk3ZTgyZDBjZjc2YTQ3MjRhNWU0M2E5OGZkM2Iw
ZTIyYzdjZjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtNjQsNiArNjQsMzYgQEAgc3RydWN0IFNl
c3Npb25XcmFwcGVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNlc3Npb25XcmFwcGVyPiB7CiAj
ZW5kaWYKIH07CiAKK3N0cnVjdCBJc29sYXRlZFNlc3Npb24geworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25XaXRoQ3JlZGVu
dGlhbFN0b3JhZ2U7CisgICAgU2Vzc2lvbldyYXBwZXIgc2Vzc2lvbldpdGhvdXRDcmVkZW50aWFs
U3RvcmFnZTsKKyAgICBXYWxsVGltZSBsYXN0VXNlZDsKK307CisKK3N0cnVjdCBTZXNzaW9uU2V0
IDogcHVibGljIFJlZkNvdW50ZWQ8U2Vzc2lvblNldD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxT
ZXNzaW9uU2V0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTZXNzaW9uU2V0PiBjcmVhdGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Vzc2lvblNldCk7CisgICAg
fQorCisgICAgU2Vzc2lvbldyYXBwZXImIGlzb2xhdGVkU2Vzc2lvbihXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIE5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBOZXR3b3JrU2Vzc2lvbkNvY29hJik7CisgICAgU2Vzc2lv
bldyYXBwZXImIGluaXRpYWxpemVFcGhlbWVyYWxTdGF0ZWxlc3NTZXNzaW9uSWZOZWVkZWQoTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmKTsKKworICAgIEhh
c2hNYXA8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4sIHN0ZDo6dW5pcXVlX3B0cjxJc29sYXRl
ZFNlc3Npb24+PiBpc29sYXRlZFNlc3Npb25zOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29sYXRl
ZFNlc3Npb24+IGFwcEJvdW5kU2Vzc2lvbjsKKworICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25X
aXRoQ3JlZGVudGlhbFN0b3JhZ2U7CisgICAgU2Vzc2lvbldyYXBwZXIgc2Vzc2lvbldpdGhvdXRD
cmVkZW50aWFsU3RvcmFnZTsKKyAgICBTZXNzaW9uV3JhcHBlciBlcGhlbWVyYWxTdGF0ZWxlc3NT
ZXNzaW9uOworCitwcml2YXRlOgorCisgICAgU2Vzc2lvblNldCgpID0gZGVmYXVsdDsKK307CisK
IGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya1Nlc3Npb24g
ewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nlc3Npb24+IGNy
ZWF0ZShOZXR3b3JrUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzJiYp
OwpAQCAtMTI1LDQyICsxNTUsMTMgQEAgcHJpdmF0ZToKICNpZiBIQVZFKE5TVVJMU0VTU0lPTl9X
RUJTT0NLRVQpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNv
Y2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKSBm
aW5hbDsKICAgICB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViU29ja2V0VGFzayYpIGZpbmFsOwotICAgIHZvaWQgcmVtb3ZlV2ViU29ja2V0VGFzayhXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLCBXZWJTb2NrZXRUYXNrJikgZmluYWw7CisgICAgdm9pZCByZW1v
dmVXZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgZmluYWw7CiAjZW5k
aWYKIAogICAgIHZvaWQgYWRkV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIFdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyYmKSBmaW5hbDsKICAgICB2b2lkIHJl
bW92ZVdlYlBhZ2VOZXR3b3JrUGFyYW1ldGVycyhXZWJQYWdlUHJveHlJZGVudGlmaWVyKSBmaW5h
bDsKICAgICBzaXplX3QgY291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSBjb25zdCBmaW5hbDsK
IAotICAgIHN0cnVjdCBJc29sYXRlZFNlc3Npb24gewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25XaXRo
Q3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIHNlc3Npb25XaXRob3V0
Q3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFdhbGxUaW1lIGxhc3RVc2VkOwotICAgIH07Ci0K
LSAgICBzdHJ1Y3QgU2Vzc2lvblNldCA6IHB1YmxpYyBSZWZDb3VudGVkPFNlc3Npb25TZXQ+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Vzc2lvblNldD4gewotICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFJlZjxTZXNzaW9uU2V0PiBjcmVhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXNzaW9uU2V0KTsKLSAgICAgICAgfQotICAgIAotICAgICAg
ICBTZXNzaW9uV3JhcHBlciYgaXNvbGF0ZWRTZXNzaW9uKFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiwgTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmKTsKLSAgICAgICAgU2Vzc2lvbldy
YXBwZXImIGluaXRpYWxpemVFcGhlbWVyYWxTdGF0ZWxlc3NTZXNzaW9uSWZOZWVkZWQoTmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmKTsKLQotICAgICAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6OnVuaXF1ZV9wdHI8SXNvbGF0
ZWRTZXNzaW9uPj4gaXNvbGF0ZWRTZXNzaW9uczsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPElz
b2xhdGVkU2Vzc2lvbj4gYXBwQm91bmRTZXNzaW9uOwotCi0gICAgICAgIFNlc3Npb25XcmFwcGVy
IHNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIHNl
c3Npb25XaXRob3V0Q3JlZGVudGlhbFN0b3JhZ2U7Ci0gICAgICAgIFNlc3Npb25XcmFwcGVyIGVw
aGVtZXJhbFN0YXRlbGVzc1Nlc3Npb247Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBTZXNzaW9u
U2V0KCkgPSBkZWZhdWx0OwotICAgIH07Ci0KICAgICBSZWY8U2Vzc2lvblNldD4gbV9kZWZhdWx0
U2Vzc2lvblNldDsKICAgICBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFJlZjxTZXNz
aW9uU2V0Pj4gbV9wZXJQYWdlU2Vzc2lvblNldHM7CiAgICAgSGFzaE1hcDxXZWJQYWdlTmV0d29y
a1BhcmFtZXRlcnMsIFdlYWtQdHI8U2Vzc2lvblNldD4+IG1fcGVyUGFyYW1ldGVyc1Nlc3Npb25T
ZXRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGY0Y2JlNzYwY2U3MjZjYWViZTE3ZjU3OWM5NDA1
MDA3MGYzMDViMzguLmZkY2U3NjgxZmU2ZjI4ODcyYjQyMmU2MzU0OTE5MmQ1MTk0NzY3MjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KQEAgLTEzNDcsMTMgKzEzNDcsMTMgQEAgdm9pZCBOZXR3b3JrU2Vz
c2lvbkNvY29hOjppbml0aWFsaXplTlNVUkxTZXNzaW9uc0luU2V0KFNlc3Npb25TZXQmIHNlc3Np
b25TZXQsIE4KICAgICBzZXNzaW9uU2V0LnNlc3Npb25XaXRob3V0Q3JlZGVudGlhbFN0b3JhZ2Uu
aW5pdGlhbGl6ZShjb25maWd1cmF0aW9uLCAqdGhpcywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k6OkRvTm90VXNlLCBOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjo6Tm8pOwogfQog
Ci1OZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0JiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpz
ZXNzaW9uU2V0Rm9yUGFnZShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQor
U2Vzc2lvblNldCYgTmV0d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2UoV2ViUGFn
ZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkKIHsKICAgICBTZXNzaW9uU2V0KiBzZXNz
aW9uU2V0ID0gd2ViUGFnZVByb3h5SUQgPyBtX3BlclBhZ2VTZXNzaW9uU2V0cy5nZXQod2ViUGFn
ZVByb3h5SUQpIDogbnVsbHB0cjsKICAgICByZXR1cm4gc2Vzc2lvblNldCA/ICpzZXNzaW9uU2V0
IDogbV9kZWZhdWx0U2Vzc2lvblNldC5nZXQoKTsKIH0KIAotY29uc3QgTmV0d29ya1Nlc3Npb25D
b2NvYTo6U2Vzc2lvblNldCYgTmV0d29ya1Nlc3Npb25Db2NvYTo6c2Vzc2lvblNldEZvclBhZ2Uo
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkgY29uc3QKK2NvbnN0IFNlc3Np
b25TZXQmIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnNlc3Npb25TZXRGb3JQYWdlKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpIGNvbnN0CiB7CiAgICAgU2Vzc2lvblNldCogc2Vz
c2lvblNldCA9IHdlYlBhZ2VQcm94eUlEID8gbV9wZXJQYWdlU2Vzc2lvblNldHMuZ2V0KHdlYlBh
Z2VQcm94eUlEKSA6IG51bGxwdHI7CiAgICAgcmV0dXJuIHNlc3Npb25TZXQgPyAqc2Vzc2lvblNl
dCA6IG1fZGVmYXVsdFNlc3Npb25TZXQuZ2V0KCk7CkBAIC0xMzY0LDcgKzEzNjQsNyBAQCBTZXNz
aW9uV3JhcHBlciYgTmV0d29ya1Nlc3Npb25Db2NvYTo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRl
bGVzc1Nlc3Npb25JZk5lZWRlZAogICAgIHJldHVybiBzZXNzaW9uU2V0Rm9yUGFnZSh3ZWJQYWdl
UHJveHlJRCkuaW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb25JZk5lZWRlZChpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCAqdGhpcyk7CiB9CiAKLVNlc3Npb25XcmFwcGVyJiBO
ZXR3b3JrU2Vzc2lvbkNvY29hOjpTZXNzaW9uU2V0Ojppbml0aWFsaXplRXBoZW1lcmFsU3RhdGVs
ZXNzU2Vzc2lvbklmTmVlZGVkKE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluIGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4sIE5ldHdvcmtTZXNzaW9uQ29jb2EmIHNlc3Npb24pCitTZXNzaW9u
V3JhcHBlciYgU2Vzc2lvblNldDo6aW5pdGlhbGl6ZUVwaGVtZXJhbFN0YXRlbGVzc1Nlc3Npb25J
Zk5lZWRlZChOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiBpc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCBOZXR3b3JrU2Vzc2lvbkNvY29hJiBzZXNzaW9uKQogewogICAgIGlmIChlcGhlbWVy
YWxTdGF0ZWxlc3NTZXNzaW9uLnNlc3Npb24pCiAgICAgICAgIHJldHVybiBlcGhlbWVyYWxTdGF0
ZWxlc3NTZXNzaW9uOwpAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgU2Vzc2lvbldyYXBwZXImIE5ldHdv
cmtTZXNzaW9uQ29jb2E6Omlzb2xhdGVkU2Vzc2lvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlAKICAgICByZXR1cm4gc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5SUQpLmlzb2xhdGVk
U2Vzc2lvbihzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZmlyc3RQYXJ0eURvbWFpbiwgaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgKnRoaXMpOwogfQogCi1TZXNzaW9uV3JhcHBlciYgTmV0
d29ya1Nlc3Npb25Db2NvYTo6U2Vzc2lvblNldDo6aXNvbGF0ZWRTZXNzaW9uKFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9tYWluLCBOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBOZXR3b3JrU2Vzc2lvbkNv
Y29hJiBzZXNzaW9uKQorU2Vzc2lvbldyYXBwZXImIFNlc3Npb25TZXQ6Omlzb2xhdGVkU2Vzc2lv
bihXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZmlyc3RQYXJ0eURvbWFpbiwgTmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgTmV0
d29ya1Nlc3Npb25Db2NvYSYgc2Vzc2lvbikKIHsKICAgICBhdXRvJiBlbnRyeSA9IGlzb2xhdGVk
U2Vzc2lvbnMuZW5zdXJlKGZpcnN0UGFydHlEb21haW4sIFt0aGlzLCAmc2Vzc2lvbiwgaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbl0gewogICAgICAgICBhdXRvIG5ld0VudHJ5ID0gbWFrZVVu
aXF1ZTxJc29sYXRlZFNlc3Npb24+KCk7CkBAIC0xNjkyLDIxICsxNjkyLDIyIEBAIHN0ZDo6dW5p
cXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2Nr
ZXRUYXNrKFdlYlBhZ2VQCiAgICAgLy8gcmRhcjovL3Byb2JsZW0vNjgwNTcwMzE6IGV4cGxpY2l0
bHkgZGlzYWJsZSBzbmlmZmluZyBmb3IgV2ViU29ja2V0IGhhbmRzaGFrZXMuCiAgICAgW25zUmVx
dWVzdCBfc2V0UHJvcGVydHk6QE5PIGZvcktleTooTlNTdHJpbmcgKilfa0NGVVJMQ29ubmVjdGlv
blByb3BlcnR5U2hvdWxkU25pZmZdOwogCi0gICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNv
Y2tldFRhc2s+IHRhc2sgPSBbc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5SUQpLnNlc3Np
b25XaXRoQ3JlZGVudGlhbFN0b3JhZ2Uuc2Vzc2lvbiB3ZWJTb2NrZXRUYXNrV2l0aFJlcXVlc3Q6
bnNSZXF1ZXN0LmdldCgpXTsKKyAgICBhdXRvJiBzZXNzaW9uU2V0ID0gc2Vzc2lvblNldEZvclBh
Z2Uod2ViUGFnZVByb3h5SUQpOworICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRU
YXNrPiB0YXNrID0gW3Nlc3Npb25TZXQuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS5zZXNz
aW9uIHdlYlNvY2tldFRhc2tXaXRoUmVxdWVzdDpuc1JlcXVlc3QuZ2V0KCldOwogICAgIHRhc2su
Z2V0KCkubWF4aW11bU1lc3NhZ2VTaXplID0gMDsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJT
b2NrZXRUYXNrPihjaGFubmVsLCB3ZWJQYWdlUHJveHlJRCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNr
KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFn
ZVByb3h5SUQsIG1ha2VXZWFrUHRyKHNlc3Npb25TZXQpLCByZXF1ZXN0LCBXVEZNb3ZlKHRhc2sp
KTsKIH0KIAogdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphZGRXZWJTb2NrZXRUYXNrKFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYlNvY2tldFRhc2smIHRhc2spCiB7
Ci0gICAgUkVMRUFTRV9BU1NFUlQoIXNlc3Npb25TZXRGb3JQYWdlKHdlYlBhZ2VQcm94eUlEKS5z
ZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLndlYlNvY2tldERhdGFUYXNrTWFwLmNvbnRhaW5z
KHRhc2suaWRlbnRpZmllcigpKSk7Ci0gICAgc2Vzc2lvblNldEZvclBhZ2Uod2ViUGFnZVByb3h5
SUQpLnNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2Uud2ViU29ja2V0RGF0YVRhc2tNYXAuYWRk
KHRhc2suaWRlbnRpZmllcigpLCAmdGFzayk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBzZXNzaW9u
U2V0Rm9yUGFnZSh3ZWJQYWdlUHJveHlJRCkuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS53
ZWJTb2NrZXREYXRhVGFza01hcC5hZGQodGFzay5pZGVudGlmaWVyKCksICZ0YXNrKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CiAKLXZvaWQgTmV0d29ya1Nl
c3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBXZWJTb2NrZXRUYXNrJiB0YXNrKQordm9pZCBOZXR3b3JrU2Vzc2lvbkNv
Y29hOjpyZW1vdmVXZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQmIHNlc3Npb25TZXQsIFdlYlNvY2tl
dFRhc2smIHRhc2spCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoc2Vzc2lvblNldEZvclBhZ2Uod2Vi
UGFnZVByb3h5SUQpLnNlc3Npb25XaXRoQ3JlZGVudGlhbFN0b3JhZ2Uud2ViU29ja2V0RGF0YVRh
c2tNYXAuY29udGFpbnModGFzay5pZGVudGlmaWVyKCkpKTsKLSAgICBzZXNzaW9uU2V0Rm9yUGFn
ZSh3ZWJQYWdlUHJveHlJRCkuc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZS53ZWJTb2NrZXRE
YXRhVGFza01hcC5yZW1vdmUodGFzay5pZGVudGlmaWVyKCkpOworICAgIGJvb2wgY29udGFpbmVk
ID0gc2Vzc2lvblNldC5zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlLndlYlNvY2tldERhdGFU
YXNrTWFwLnJlbW92ZSh0YXNrLmlkZW50aWZpZXIoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoY29u
dGFpbmVkKTsKIH0KIAogI2VuZGlmIC8vIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFz
a0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRh
c2tDb2NvYS5oCmluZGV4IDM5NTM1NzAzNTAyZDVhNTRiM2Y1YTlhZTI0YzNmZTMyMDI4MDhhODgu
LjkzMDdjZWQ5OWQ1YWM4NzA3NTFkMmRhYjU2ZGQ0NmEwM2FkNDMzZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2Eu
aApAQCAtNDIsMTEgKzQyLDEyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgTmV0d29ya1Nl
c3Npb247CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya1NvY2tldENo
YW5uZWw7CitzdHJ1Y3QgU2Vzc2lvblNldDsKIAogY2xhc3MgV2ViU29ja2V0VGFzayA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxXZWJTb2NrZXRUYXNrPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYs
IFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrPiYmKTsKKyAgICBXZWJTb2NrZXRU
YXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vha1B0
cjxTZXNzaW9uU2V0PiYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBSZXRhaW5Q
dHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzaz4mJik7CiAgICAgfldlYlNvY2tldFRhc2soKTsK
IAogICAgIHZvaWQgc2VuZFN0cmluZyhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNjMsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgVGFz
a0lkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0OwogCiAgICAgTmV0d29ya1Nlc3Npb25Db2Nv
YSogbmV0d29ya1Nlc3Npb24oKTsKKyAgICBTZXNzaW9uU2V0KiBzZXNzaW9uU2V0KCkgeyByZXR1
cm4gbV9zZXNzaW9uU2V0LmdldCgpOyB9CiAKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBh
Z2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9CiAgICAgU3RyaW5nIHBhcnRpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fcGFydGl0aW9uOyB9CkBAIC03NSw2ICs3Nyw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3JlY2VpdmVkRGlkQ2xvc2UgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZWNl
aXZlZERpZENvbm5lY3QgeyBmYWxzZSB9OwogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9w
YWdlSUQ7CisgICAgV2Vha1B0cjxTZXNzaW9uU2V0PiBtX3Nlc3Npb25TZXQ7CiAgICAgU3RyaW5n
IG1fcGFydGl0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQppbmRleCBkN2NiNzIwODczNzNlNWJj
NWNiYTgxN2ZmODYwYjkzMzVlNjllODY3Li5mYzIwNzRmOGI2ZjBhMmQ5NTI2OTAxNzdiMDUzMWRm
MjlmOGM3ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L1dlYlNvY2tldFRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpAQCAtNDAsMTAgKzQwLDExIEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotV2ViU29ja2V0VGFzazo6
V2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzaz4mJiB0YXNrKQor
V2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5l
bCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdlYWtQdHI8U2Vzc2lvblNldD4mJiBz
ZXNzaW9uU2V0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJldGFp
blB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrPiYmIHRhc2spCiAgICAgOiBtX2NoYW5uZWwo
Y2hhbm5lbCkKICAgICAsIG1fdGFzayhXVEZNb3ZlKHRhc2spKQotICAgICwgbV9wYWdlSUQod2Vi
UGFnZVByb3h5SUQpCisgICAgLCBtX3BhZ2VJRChwYWdlSUQpCisgICAgLCBtX3Nlc3Npb25TZXQo
V1RGTW92ZShzZXNzaW9uU2V0KSkKICAgICAsIG1fcGFydGl0aW9uKHJlcXVlc3QuY2FjaGVQYXJ0
aXRpb24oKSkKIHsKICAgICByZWFkTmV4dE1lc3NhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKaW5kZXggNWNkMjc1
ZmM2Yjg4ZjQwMTI2ZjE3YjRlMmVlMDhjN2YxMDNmNjc4OS4uN2E2ZjRkMTZiN2RmMzZjMGI5ZTc5
NTA4ODU5NDNjY2QzN2QzYmZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbDsKK3N0cnVjdCBTZXNz
aW9uU2V0OwogCiBjbGFzcyBXZWJTb2NrZXRUYXNrIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKQEAgLTQ3LDYgKzQ4LDggQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsKCk7CiAgICAg
dm9pZCByZXN1bWUoKTsKIAorICAgIFNlc3Npb25TZXQqIHNlc3Npb25TZXQoKSB7IHJldHVybiBu
dWxscHRyOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDb25uZWN0KEdSZWZQdHI8U291cFdl
YnNvY2tldENvbm5lY3Rpb24+JiYpOwogICAgIHZvaWQgZGlkRmFpbChjb25zdCBTdHJpbmcmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMDBk
MmFiNzA2OTMwNmE3MTEzMDZkNGYzYWQ1NTM4NzA0ZmI1MGY5Li5lZDBhMzhkY2Y2MzYwZDIyYWU1
NWNhODE5MWYxZTY5OTM3NzVkNDJlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDYtMjUgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUxFQVNFX0FTU0VS
VCBoaXQgaW4gTmV0d29ya1Nlc3Npb25Db2NvYTo6cmVtb3ZlV2ViU29ja2V0VGFzayB3aGVuIHVz
aW5nIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc0MjAKKyAg
ICAgICAgPHJkYXI6Ly83OTYwOTIxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViU29j
a2V0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDYtMjMgIEth
dGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgTWlncmF0
ZSBBcHAgUHJpdmFjeSBSZXBvcnQgY29kZSBmcm9tIFdlYktpdEFkZGl0aW9ucwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJTb2NrZXQubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYlNvY2tldC5tbQppbmRleCA1
ZDYzMTJlODZkODUxZDFlZjNmMjYzMDNjYTM2MDViNTlmOTIxNjlkLi42MzY0ODM2ZWRhZGYyY2Zk
ZWY4YTkyM2ZmNzAwYTQ3NzE4YTQ5YmVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dlYlNvY2tldC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dlYlNvY2tldC5tbQpAQCAtMjgsNyArMjgsMTAgQEAKICNpbXBv
cnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJUZXN0VUlEZWxlZ2F0ZS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+
CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtODMsNCArODYsNDUgQEAgVEVTVChX
ZWJTb2NrZXQsIExvbmdNZXNzYWdlTm9EZWZsYXRlKQogICAgIEVYUEVDVF9XS19TVFJFUShbd2Vi
VmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAiUEFTUyIpOwogfQogCitURVNUKFdlYlNvY2tldCwg
UGFnZVdpdGhBdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllckRlc3Ryb3llZCkKK3sKKyAgICBIVFRQ
U2VydmVyIHNlcnZlcihbXShDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgY29ubmVj
dGlvbi53ZWJTb2NrZXRIYW5kc2hha2UoKTsKKyAgICB9KTsKKworICAgIE5TU3RyaW5nICpodG1s
ID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIiCisgICAgIjxzY3JpcHQ+IgorICAgICIg
ICAgdmFyIHdzID0gbmV3IFdlYlNvY2tldCgnd3M6Ly8xMjcuMC4wLjE6JWQvJyk7IgorICAgICIg
ICAgd3Mub25vcGVuID0gZnVuY3Rpb24oKSB7IGFsZXJ0KCdvcGVuZWQgc3VjY2Vzc2Z1bGx5Jyk7
IH07IgorICAgICIgICAgd3Mub25lcnJvciA9IGZ1bmN0aW9uKGVycm9yKSB7IGFsZXJ0KCdGQUlM
IC0gZXJyb3IgJyArIGVycm9yLm1lc3NhZ2UpOyB9IgorICAgICI8L3NjcmlwdD4iLCBzZXJ2ZXIu
cG9ydCgpXTsKKworICAgIHBpZF90IG9yaWdpbmFsTmV0d29ya1Byb2Nlc3NQSUQgeyAwIH07Cisg
ICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBu
ZXddKTsKKyAgICBfX2Jsb2NrIHNpemVfdCB3ZWJTb2NrZXRzQ29ubmVjdGVkIHsgMCB9OworICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0VUlEZWxlZ2F0ZSBuZXddKTsKKyAgICBkZWxl
Z2F0ZS5nZXQoKS5ydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlID0gXihXS1dlYlZp
ZXcgKiwgTlNTdHJpbmcgKm1lc3NhZ2UsIFdLRnJhbWVJbmZvICosIHZvaWQgKF5jb21wbGV0aW9u
SGFuZGxlcikodm9pZCkpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsICJvcGVu
ZWQgc3VjY2Vzc2Z1bGx5Iik7CisgICAgICAgIHdlYlNvY2tldHNDb25uZWN0ZWQrKzsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9OworICAgIGNvbnN0ZXhwciBzaXplX3Qgdmll
d0NvdW50ID0gMjA7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgc3RkOjphcnJh
eTxSZXRhaW5QdHI8V0tXZWJWaWV3Piwgdmlld0NvdW50PiB2aWV3czsKKyAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB2aWV3Q291bnQ7IGkrKykgeworICAgICAgICAgICAgY29uZmlndXJh
dGlvbi5nZXQoKS5fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIgPSBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAInRlc3QuYnVuZGxlLmlkZW50aWZpZXIuJXp1IiwgaV07CisgICAgICAgICAg
ICB2aWV3c1tpXSA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
XSk7CisgICAgICAgICAgICB2aWV3c1tpXS5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0
KCk7CisgICAgICAgICAgICBbdmlld3NbaV0gbG9hZEhUTUxTdHJpbmc6aHRtbCBiYXNlVVJMOm5p
bF07CisgICAgICAgIH0KKyAgICAgICAgd2hpbGUgKHdlYlNvY2tldHNDb25uZWN0ZWQgPCB2aWV3
Q291bnQpCisgICAgICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgpOworICAgICAgICBvcmlnaW5h
bE5ldHdvcmtQcm9jZXNzUElEID0gY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3Jl
Ll9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXI7CisgICAgfQorCisgICAgVXRpbDo6c3BpblJ1bkxv
b3Aodmlld0NvdW50ICogMyk7CisgICAgRVhQRUNUX0VRKG9yaWdpbmFsTmV0d29ya1Byb2Nlc3NQ
SUQsIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZS5fbmV0d29ya1Byb2Nlc3NJ
ZGVudGlmaWVyKTsKK30KKwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>