<?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>221623</bug_id>
          
          <creation_ts>2021-02-09 12:45:04 -0800</creation_ts>
          <short_desc>[WebAuthn] Produce ClientDataJSON in the SPI</short_desc>
          <delta_ts>2021-02-10 15:50:45 -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>WebKit Misc.</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="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727185</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-09 12:45:04 -0800</bug_when>
    <thetext>Produce ClientDataJSON in the SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727186</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-09 12:47:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/71509394&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727225</commentid>
    <comment_count>2</comment_count>
      <attachid>419758</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2021-02-09 13:54:19 -0800</bug_when>
    <thetext>Created attachment 419758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727762</commentid>
    <comment_count>3</comment_count>
      <attachid>419758</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-02-10 14:08:00 -0800</bug_when>
    <thetext>Comment on attachment 419758
Patch

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

r=me, but please fix the unused function warning.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:55
&gt; +

These two method should be inside #if ENABLE(WEB_AUTHN)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727833</commentid>
    <comment_count>4</comment_count>
      <attachid>419909</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-02-10 15:02:26 -0800</bug_when>
    <thetext>Created attachment 419909
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727854</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-10 15:50:44 -0800</bug_when>
    <thetext>Committed r272694: &lt;https://commits.webkit.org/r272694&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419909.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419758</attachid>
            <date>2021-02-09 13:54:19 -0800</date>
            <delta_ts>2021-02-10 15:02:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221623-20210209135418.patch</filename>
            <type>text/plain</type>
            <size>26564</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU3NzY4YWVlNGZiMjMxNDM2
ZGMwNmVlMTkxOGI1NGJkZTU5YzU1ZjcuLjRmYTZkMjMxOWRjNjFiN2RlN2E2M2RkNGMzMjQzOWI3
N2IxNmFjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMDItMDkgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByb2R1Y2Ug
Q2xpZW50RGF0YUpTT04gaW4gdGhlIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTUwOTM5
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0
ZWFkIG9mIGFza2luZyB0aGUgY2xpZW50cyBvZiB0aGUgU1BJIHRvIHByZS1jYWxjdWxhdGUgdGhl
IENsaWVudERhdGFKU09OIGhhc2ggZm9yIHVzLCB3ZSBkbworICAgICAgICB0aGF0IGluIHRoZSBT
UEkgc3BhY2Ugb3Vyc2VsdmVzLgorCisgICAgICAgIENvdmVyZWQgYnkgQVBJIHRlc3RzLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2UubW06CisgICAgICAgICgtW19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBp
bml0V2l0aENsaWVudERhdGFKU09OOnJhd0lkOmV4dGVuc2lvbnM6YXV0aGVudGljYXRvckRhdGE6
c2lnbmF0dXJlOnVzZXJIYW5kbGU6XSk6CisgICAgICAgICgtW19XS0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZSBpbml0V2l0aFJhd0lkOmV4dGVuc2lvbnM6YXV0aGVudGljYXRvckRhdGE6
c2lnbmF0dXJlOnVzZXJIYW5kbGU6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2UubW06CisgICAgICAgICgtW19XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
IGluaXRXaXRoQ2xpZW50RGF0YUpTT046cmF3SWQ6ZXh0ZW5zaW9uczphdHRlc3RhdGlvbk9iamVj
dDpdKToKKyAgICAgICAgKC1bX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgaW5p
dFdpdGhSYXdJZDpleHRlbnNpb25zOmF0dGVzdGF0aW9uT2JqZWN0Ol0pOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2VJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVu
dGljYXRvclJlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRo
ZW50aWNhdG9yUmVzcG9uc2UubW06CisgICAgICAgICgtW19XS0F1dGhlbnRpY2F0b3JSZXNwb25z
ZSBpbml0V2l0aENsaWVudERhdGFKU09OOnJhd0lkOmV4dGVuc2lvbnM6XSk6CisgICAgICAgICgt
W19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZSBpbml0V2l0aFJhd0lkOmV4dGVuc2lvbnM6XSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yUmVz
cG9uc2VJbnRlcm5hbC5oOgorICAgICAgICBBZGRzIGEgZmllbGQgdG8gcmV0dXJuIHRoZSBKU09O
IHNlcmlhbGl6ZWQgYnl0ZXMgZm9yIHRoZSBDbGllbnREYXRhSlNPTi4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAg
ICAgKHByb2R1Y2VDbGllbnREYXRhSnNvbik6CisgICAgICAgIChwcm9kdWNlQ2xpZW50RGF0YUpz
b25IYXNoKToKKyAgICAgICAgKHdrQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UpOgor
ICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIG1ha2VDcmVkZW50aWFsV2l0aENo
YWxsZW5nZTpvcmlnaW46b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKHdr
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKToKKyAgICAgICAgKC1bX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbCBnZXRBc3NlcnRpb25XaXRoQ2hhbGxlbmdlOm9yaWdpbjpvcHRpb25zOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
IG1ha2VDcmVkZW50aWFsV2l0aEhhc2g6b3B0aW9uczpjb21wbGV0aW9uSGFuZGxlcjpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBnZXRBc3NlcnRpb25X
aXRoSGFzaDpvcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICBN
b2RpZmllcyB0aGUgU1BJIHRvIGFjY2VwdCBhIGNoYWxsZW5nZSBhbmQgYW4gb3JpZ2luIHRvIGNh
bGN1bGF0ZSB0aGUgQ2xpZW50RGF0YUpTT04uCisKIDIwMjEtMDItMDIgIFJpbmkgUGF0ZWwgIDxy
aW5pX3BhdGVsQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdW51c2VkIGZ1bmN0aW9ucyBm
cm9tIEdyYXBoaWNzQ29udGV4dEdMIGFuZCBFeHRlbnNpb25zR0wKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVz
cG9uc2UubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlLm1tCmluZGV4IDdlOGNmYWVhY2I5NGI1YjY1NmE0YWM5YTM5
OTgwZGE4YzVlYzc1ZTUuLjM4N2YyMjRiNWZlMmRjOWIxYTUxNWJlZDkyZGZiYmExYTU0ZjEzZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5tbQpAQCAtMzIsOSAr
MzIsOSBAQAogCiBAaW1wbGVtZW50YXRpb24gX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJhd0lkOihOU0RhdGEgKilyYXdJZCBleHRl
bnNpb25zOihSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0
cz4mJilleHRlbnNpb25zIGF1dGhlbnRpY2F0b3JEYXRhOihOU0RhdGEgKilhdXRoZW50aWNhdG9y
RGF0YSBzaWduYXR1cmU6KE5TRGF0YSAqKXNpZ25hdHVyZSB1c2VySGFuZGxlOihOU0RhdGEgKil1
c2VySGFuZGxlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDbGllbnREYXRhSlNPTjooTlNEYXRh
ICopY2xpZW50RGF0YUpTT04gcmF3SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVuc2lvbnM6KFJldGFp
blB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiYmKWV4dGVuc2lv
bnMgYXV0aGVudGljYXRvckRhdGE6KE5TRGF0YSAqKWF1dGhlbnRpY2F0b3JEYXRhIHNpZ25hdHVy
ZTooTlNEYXRhICopc2lnbmF0dXJlIHVzZXJIYW5kbGU6KE5TRGF0YSAqKXVzZXJIYW5kbGUKIHsK
LSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoUmF3SWQ6cmF3SWQgZXh0ZW5zaW9uczpX
VEZNb3ZlKGV4dGVuc2lvbnMpXSkpCisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aENs
aWVudERhdGFKU09OOmNsaWVudERhdGFKU09OIHJhd0lkOnJhd0lkIGV4dGVuc2lvbnM6V1RGTW92
ZShleHRlbnNpb25zKV0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgX2F1dGhlbnRpY2F0
b3JEYXRhID0gYXV0aGVudGljYXRvckRhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlSW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9y
QXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oCmluZGV4IDNiODFlNTdlMzU4MjU1YTY5MjA4MDI2
MmJlMzAzYjY0NzUzMjNlZjYuLmVlZjZhMTQ3YTNiMDYzZjRkMzk4MDc4ZmE1OGFlMzgyNjc2OTdj
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRo
ZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2VJbnRl
cm5hbC5oCkBAIC0zNCw3ICszNCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBpbnRl
cmZhY2UgX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlICgpCiAKLS0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFJhd0lkOihOU0RhdGEgKilyYXdJZCBleHRlbnNpb25zOihSZXRhaW5QdHI8
X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cz4mJilleHRlbnNpb25zIGF1
dGhlbnRpY2F0b3JEYXRhOihOU0RhdGEgKilhdXRoZW50aWNhdG9yRGF0YSBzaWduYXR1cmU6KE5T
RGF0YSAqKXNpZ25hdHVyZSB1c2VySGFuZGxlOihOU0RhdGEgKil1c2VySGFuZGxlOworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ2xpZW50RGF0YUpTT046KE5TRGF0YSAqKWNsaWVudERhdGFKU09O
IHJhd0lkOihOU0RhdGEgKilyYXdJZCBleHRlbnNpb25zOihSZXRhaW5QdHI8X1dLQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cz4mJilleHRlbnNpb25zIGF1dGhlbnRpY2F0b3JE
YXRhOihOU0RhdGEgKilhdXRoZW50aWNhdG9yRGF0YSBzaWduYXR1cmU6KE5TRGF0YSAqKXNpZ25h
dHVyZSB1c2VySGFuZGxlOihOU0RhdGEgKil1c2VySGFuZGxlOwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5tbQppbmRleCAwNTZmOTJhNWEwZDM2
ZDcyNDZjY2E4NTg4MmQ4MGQ2NjAwNjI3MDA2Li4zYjE5MWZlZGY1Nzk5ODY0YWMxZmE5NTI3YjRm
Nzc1NDNjNmU5MTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlLm1tCkBAIC0zMiw5ICszMiw5IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSYXdJZDoo
TlNEYXRhICopcmF3SWQgZXh0ZW5zaW9uczooUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudE91dHB1dHM+JiYpZXh0ZW5zaW9ucyBhdHRlc3RhdGlvbk9iamVjdDooTlNE
YXRhICopYXR0ZXN0YXRpb25PYmplY3QKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENsaWVudERh
dGFKU09OOihOU0RhdGEgKiljbGllbnREYXRhSlNPTiByYXdJZDooTlNEYXRhICopcmF3SWQgZXh0
ZW5zaW9uczooUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1
dHM+JiYpZXh0ZW5zaW9ucyBhdHRlc3RhdGlvbk9iamVjdDooTlNEYXRhICopYXR0ZXN0YXRpb25P
YmplY3QKIHsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoUmF3SWQ6cmF3SWQgZXh0
ZW5zaW9uczpXVEZNb3ZlKGV4dGVuc2lvbnMpXSkpCisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBp
bml0V2l0aENsaWVudERhdGFKU09OOmNsaWVudERhdGFKU09OIHJhd0lkOnJhd0lkIGV4dGVuc2lv
bnM6V1RGTW92ZShleHRlbnNpb25zKV0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgX2F0
dGVzdGF0aW9uT2JqZWN0ID0gYXR0ZXN0YXRpb25PYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2VJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlSW50ZXJuYWwuaAppbmRleCA1YTE4OTRhZGMy
MjZmOGQ5OGE0OTc1YzAwOWI1OGRkZGM5ZWQ2YjQ2Li4wNmIxODA3ZDg1ZWQyOWM2NjU2ODdiZDZm
MzkxNDcyNGFiODZiMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2VJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0
YXRpb25SZXNwb25zZUludGVybmFsLmgKQEAgLTM0LDcgKzM0LDcgQEAgTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KIAogQGludGVyZmFjZSBfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZSAoKQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSYXdJZDooTlNEYXRhICopcmF3SWQgZXh0
ZW5zaW9uczooUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1
dHM+JiYpZXh0ZW5zaW9ucyBhdHRlc3RhdGlvbk9iamVjdDooTlNEYXRhICopYXR0ZXN0YXRpb25P
YmplY3Q7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDbGllbnREYXRhSlNPTjooTlNEYXRhICop
Y2xpZW50RGF0YUpTT04gcmF3SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVuc2lvbnM6KFJldGFpblB0
cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiYmKWV4dGVuc2lvbnMg
YXR0ZXN0YXRpb25PYmplY3Q6KE5TRGF0YSAqKWF0dGVzdGF0aW9uT2JqZWN0OwogCiBAZW5kCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50
aWNhdG9yUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dXRoZW50aWNhdG9yUmVzcG9uc2UuaAppbmRleCBhZGNkNzEyNmFmNGZlOGIzN2RjZjczN2QyMGZj
ZWIwN2M0YWQ1OTkwLi4xMWVkZDk0NDQ5NDdmZTM1MzMwZjEzNDM5NmYyZGVjMjg1ODlmZmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGlj
YXRvclJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oCkBAIC0zNiw2ICszNiw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLQXV0aGVudGljYXRvclJlc3BvbnNlIDogTlNPYmplY3QK
IAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0RhdGEgKmNsaWVudERhdGFKU09O
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0RhdGEgKnJhd0lkOwogQHByb3Bl
cnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nKSBfV0tBdXRoZW50aWNh
dGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzICpleHRlbnNpb25zOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclJlc3BvbnNl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JS
ZXNwb25zZS5tbQppbmRleCA3MzU4ODRiMjQ0OTc4MmJiNTdkMmVjZTNhZWQwMmFkMmJkMWVkOGIx
Li44OWQwNjE3ZWVkNzRiYjM0NDZjMWQwOWM2NjYwYzEzZTc1ODc0MzA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclJlc3BvbnNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNh
dG9yUmVzcG9uc2UubW0KQEAgLTMzLDExICszMywxMiBAQCBAaW1wbGVtZW50YXRpb24gX1dLQXV0
aGVudGljYXRvclJlc3BvbnNlIHsKICAgICBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50T3V0cHV0cz4gX2V4dGVuc2lvbnM7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFJhd0lkOihOU0RhdGEgKilyYXdJZCBleHRlbnNpb25zOihSZXRhaW5QdHI8X1dLQXV0
aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cz4mJilleHRlbnNpb25zCistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhDbGllbnREYXRhSlNPTjooTlNEYXRhICopY2xpZW50RGF0YUpTT04g
cmF3SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVuc2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50aWNh
dGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiYmKWV4dGVuc2lvbnMKIHsKICAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAorICAgIF9jbGllbnRE
YXRhSlNPTiA9IGNsaWVudERhdGFKU09OOwogICAgIF9yYXdJZCA9IHJhd0lkOwogICAgIF9leHRl
bnNpb25zID0gZXh0ZW5zaW9uczsKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yUmVzcG9uc2VJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0
b3JSZXNwb25zZUludGVybmFsLmgKaW5kZXggMjQzOTI2MzlhNzk2NGE1MmJiMjJiZWU1MDZmZDll
NmQ5YTRjYjQyZi4uY2U0ZGQzODRhNTg4NDU0NGE1NjFjZmFkMzc3YjkzZTI3NWRlNjA0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0
b3JSZXNwb25zZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZUludGVybmFsLmgKQEAgLTM0LDcgKzM0LDcgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGludGVyZmFjZSBfV0tBdXRoZW50aWNhdG9yUmVz
cG9uc2UgKCkKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmF3SWQ6KE5TRGF0YSAqKXJhd0lk
IGV4dGVuc2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRP
dXRwdXRzPiYmKWV4dGVuc2lvbnM7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDbGllbnREYXRh
SlNPTjooTlNEYXRhICopY2xpZW50RGF0YUpTT04gcmF3SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVu
c2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRz
PiYmKWV4dGVuc2lvbnM7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgKaW5kZXgg
ODRmYmNjZGZmN2E5NzFjZjU3NDI3ODEyNTMwODVkZWJmYmZhMTQ2YS4uNDFhZGVjODYzNTRjNWUy
YzVlMjcyZGY2MjE4NWI3MTcyNzM4ZDU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCkBA
IC04NSw3ICs4NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1dlYkF1dGhlbnRp
Y2F0aW9uU291cmNlKSB7CiAKIC0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgKilwYW5lbCB1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBhbmVsOihfV0tXZWJBdXRoZW50aWNh
dGlvblBhbmVsVXBkYXRlKXVwZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3Mo
MTQuMCkpOwogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVs
IHJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczooTlNVSW50ZWdlcilyZXRyaWVzIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwotLSAodm9pZClwYW5lbDooX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHNlbGVjdEFzc2VydGlvblJlc3BvbnNlOihO
U0FycmF5IDwgX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZSAqPiAqKXJlc3Bv
bnNlcyBzb3VyY2U6KF9XS1dlYkF1dGhlbnRpY2F0aW9uU291cmNlKXNvdXJjZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZSAq
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOworLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHNl
bGVjdEFzc2VydGlvblJlc3BvbnNlOihOU0FycmF5IDwgX1dLV2ViQXV0aGVudGljYXRpb25Bc3Nl
cnRpb25SZXNwb25zZSAqPiAqKXJlc3BvbnNlcyBzb3VyY2U6KF9XS1dlYkF1dGhlbnRpY2F0aW9u
U291cmNlKXNvdXJjZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2ViQXV0aGVudGlj
YXRpb25Bc3NlcnRpb25SZXNwb25zZSAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpcGFuZWw6KF9X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCByZXF1ZXN0TEFDb250ZXh0Rm9yVXNlclZl
cmlmaWNhdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTEFDb250ZXh0ICpjb250
ZXh0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzcxNTA5ODQ4
PiBEZXByZWNhdGUgdGhlIGZvbGxvd2luZyBkZWxlZ2F0ZXMuCkBAIC0xMDMsMTAgKzEwMyw5IEBA
IFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKQogCiAtIChpbnN0
YW5jZXR5cGUpaW5pdDsKIAotLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS83MTUwOTM5ND4gQWRk
cyBDbGllbnREYXRhSlNPTi4KIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNzE1MDk0ODU+IEFk
ZHMgZGV0YWlsZWQgTlNFcnJvci4KLS0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoSGFzaDooTlNE
YXRhICopaGFzaCBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
ICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKWdldEFzc2VydGlv
bldpdGhIYXNoOihOU0RhdGEgKiloYXNoIG9wdGlvbnM6KF9XS1B1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0F1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSAqLCBOU0Vycm9yICopKWhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
bWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxlbmdlOihOU0RhdGEgKiljaGFsbGVuZ2Ugb3JpZ2luOihO
U1N0cmluZyAqKW9yaWdpbiBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKWdldEFz
c2VydGlvbldpdGhDaGFsbGVuZ2U6KE5TRGF0YSAqKWNoYWxsZW5nZSBvcmlnaW46KE5TU3RyaW5n
ICopb3JpZ2luIG9wdGlvbnM6KF9XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAq
KW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZSAqLCBOU0Vycm9yICopKWhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpY2FuY2VsOwogCiAvLyBG
SVhNRTogPHJkYXI6Ly9wcm9ibGVtLzcxNTA5ODQ4PiBEZXByZWNhdGUgdGhlIGZvbGxvd2luZyBw
cm9wZXJ0aWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCA5NzA2ZDViMjFhYmEz
ODhlMGRiZmNmYmJlYWNjOTcwZDJhODQxOWU4Li4yMDM1NmVjOWUxYTkxNWFhYjVkNTk2Y2RlMWIx
MDRhYjNmZmFjZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtNDgsOCArNDgs
MzQgQEAKICNpbXBvcnQgPFdlYkNvcmUvUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaD4KKyNpbXBv
cnQgPHBhbC9jcnlwdG8vQ3J5cHRvRGlnZXN0Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgor
CitzdGF0aWMgUmV0YWluUHRyPE5TRGF0YT4gcHJvZHVjZUNsaWVudERhdGFKc29uKF9XS1dlYkF1
dGhlbnRpY2F0aW9uVHlwZSB0eXBlLCBOU0RhdGEgKmNoYWxsZW5nZSwgTlNTdHJpbmcgKm9yaWdp
bikKK3sKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFy
eSBhbGxvY10gaW5pdF0pOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgX1dLV2ViQXV0
aGVudGljYXRpb25UeXBlQ3JlYXRlOgorICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ3
ZWJhdXRobi5jcmVhdGUiIGZvcktleTpAInR5cGUiXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBfV0tXZWJBdXRoZW50aWNhdGlvblR5cGVHZXQ6CisgICAgICAgIFtkaWN0aW9uYXJ5IHNldE9i
amVjdDpAIndlYmF1dGhuLmdldCIgZm9yS2V5OkAidHlwZSJdOworICAgICAgICBicmVhazsKKyAg
ICB9CisgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OldURjo6YmFzZTY0VVJMRW5jb2RlKGNoYWxs
ZW5nZS5ieXRlcywgY2hhbGxlbmdlLmxlbmd0aCkgZm9yS2V5OkAiY2hhbGxlbmdlIl07CisgICAg
W2RpY3Rpb25hcnkgc2V0T2JqZWN0Om9yaWdpbiBmb3JLZXk6QCJvcmlnaW4iXTsKKworICAgIHJl
dHVybiBbTlNKU09OU2VyaWFsaXphdGlvbiBkYXRhV2l0aEpTT05PYmplY3Q6ZGljdGlvbmFyeS5n
ZXQoKSBvcHRpb25zOk5TSlNPTldyaXRpbmdTb3J0ZWRLZXlzIGVycm9yOm5pbF07Cit9CisKK3N0
YXRpYyBWZWN0b3I8dWludDhfdD4gcHJvZHVjZUNsaWVudERhdGFKc29uSGFzaChOU0RhdGEgKmNs
aWVudERhdGFKc29uKQoreworICAgIGF1dG8gY3J5cHRvID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNy
ZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2KTsKKyAgICBjcnlwdG8t
PmFkZEJ5dGVzKGNsaWVudERhdGFKc29uLmJ5dGVzLCBjbGllbnREYXRhSnNvbi5sZW5ndGgpOwor
ICAgIHJldHVybiBjcnlwdG8tPmNvbXB1dGVIYXNoKCk7Cit9CiAKIEBpbXBsZW1lbnRhdGlvbiBf
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIHsKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQpAQCAtMzMy
LDIzICszNTgsMjUgQEAgKyAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyljb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE8KIH0KIAogI2lmIEVOQUJMRShX
RUJfQVVUSE4pCi1zdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEmIGRhdGEpCitzdGF0aWMgUmV0YWluUHRyPF9XS0F1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlv
blJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEmIGRhdGEs
IE5TRGF0YSAqY2xpZW50RGF0YUpTT04pCiB7Ci0gICAgcmV0dXJuIGFkb3B0TlMoW1tfV0tBdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBhbGxvY10gaW5pdFdpdGhSYXdJZDpbTlNEYXRh
IGRhdGFXaXRoQnl0ZXM6ZGF0YS5yYXdJZC0+ZGF0YSgpIGxlbmd0aDpkYXRhLnJhd0lkLT5ieXRl
TGVuZ3RoKCldIGV4dGVuc2lvbnM6bmlsIGF0dGVzdGF0aW9uT2JqZWN0OltOU0RhdGEgZGF0YVdp
dGhCeXRlczpkYXRhLmF0dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkgbGVuZ3RoOmRhdGEuYXR0ZXN0
YXRpb25PYmplY3QtPmJ5dGVMZW5ndGgoKV1dKTsKKyAgICByZXR1cm4gYWRvcHROUyhbW19XS0F1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aENsaWVudERhdGFK
U09OOmNsaWVudERhdGFKU09OIHJhd0lkOltOU0RhdGEgZGF0YVdpdGhCeXRlczpkYXRhLnJhd0lk
LT5kYXRhKCkgbGVuZ3RoOmRhdGEucmF3SWQtPmJ5dGVMZW5ndGgoKV0gZXh0ZW5zaW9uczpuaWwg
YXR0ZXN0YXRpb25PYmplY3Q6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOmRhdGEuYXR0ZXN0YXRpb25P
YmplY3QtPmRhdGEoKSBsZW5ndGg6ZGF0YS5hdHRlc3RhdGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgp
XV0pOwogfQogI2VuZGlmCiAKLS0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoSGFzaDooTlNEYXRh
ICopaGFzaCBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zICop
b3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVyCistICh2b2lkKW1ha2VDcmVkZW50
aWFsV2l0aENoYWxsZW5nZTooTlNEYXRhICopY2hhbGxlbmdlIG9yaWdpbjooTlNTdHJpbmcgKilv
cmlnaW4gb3B0aW9uczooX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyAqKW9w
dGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0F1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlICosIE5TRXJyb3IgKikpaGFuZGxlcgogewogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCi0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGhhbmRsZXIp
XSAoVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8gY2xpZW50RGF0YUpT
T04gPSBwcm9kdWNlQ2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlQ3JlYXRl
LCBjaGFsbGVuZ2UsIG9yaWdpbik7CisgICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVudERhdGFK
c29uSGFzaChjbGllbnREYXRhSlNPTi5nZXQoKSk7CisgICAgYXV0byBjYWxsYmFjayA9IFtoYW5k
bGVyID0gbWFrZUJsb2NrUHRyKGhhbmRsZXIpLCBjbGllbnREYXRhSlNPTiA9IFdURk1vdmUoY2xp
ZW50RGF0YUpTT04pXSAoVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNl
PiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBX
VEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2U+JiByZXNwb25zZSkgewotICAgICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlKHJlc3BvbnNlLT5kYXRhKCkpLmdldCgpLCBuaWwpOworICAg
ICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKHJlc3Bv
bnNlLT5kYXRhKCksIGNsaWVudERhdGFKU09OLmdldCgpKS5nZXQoKSwgbmlsKTsKICAgICAgICAg
fSwgWyZdKGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgewogICAgICAg
ICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWlu
IGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86bmlsXSk7CiAgICAgICAgIH0pOwogICAgIH07
Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgdmVjdG9yRnJvbU5TRGF0YShoYXNoKSwgW19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhP
cHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBXVEY6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3Ry
aW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxl
UmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZl
cnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2Vi
S2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwg
V1RGOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoY2Fs
bGJhY2spKTsKICNlbmRpZgogfQogCkBAIC0zNzEsNyArMzk5LDcgQEAgKyAoV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zKWNvbnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9u
c1dpdGhPcHQKIH0KIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi1zdGF0aWMgUmV0YWluUHRyPF9X
S0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSYgZGF0YSkK
K3N0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiB3a0F1
dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2VEYXRhJiBkYXRhLCBOU0RhdGEgKmNsaWVudERhdGFKU09OKQogewogICAgIFJldGFp
blB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiBleHRlbnNpb25z
OwogICAgIGlmIChkYXRhLmFwcGlkKQpAQCAtMzgxLDIxICs0MDksMjMgQEAgc3RhdGljIFJldGFp
blB0cjxfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IHdrQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3AKICAgICBpZiAoZGF0YS51c2VySGFuZGxlKQogICAgICAgICB1c2VySGFuZGxl
ID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmRhdGEudXNlckhhbmRsZS0+ZGF0YSgpIGxlbmd0aDpk
YXRhLnVzZXJIYW5kbGUtPmJ5dGVMZW5ndGgoKV07CiAKLSAgICByZXR1cm4gYWRvcHROUyhbW19X
S0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBhbGxvY10gaW5pdFdpdGhSYXdJZDpbTlNE
YXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5yYXdJZC0+ZGF0YSgpIGxlbmd0aDpkYXRhLnJhd0lkLT5i
eXRlTGVuZ3RoKCldIGV4dGVuc2lvbnM6V1RGTW92ZShleHRlbnNpb25zKSBhdXRoZW50aWNhdG9y
RGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5hdXRoZW50aWNhdG9yRGF0YS0+ZGF0YSgp
IGxlbmd0aDpkYXRhLmF1dGhlbnRpY2F0b3JEYXRhLT5ieXRlTGVuZ3RoKCldIHNpZ25hdHVyZTpb
TlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5zaWduYXR1cmUtPmRhdGEoKSBsZW5ndGg6ZGF0YS5z
aWduYXR1cmUtPmJ5dGVMZW5ndGgoKV0gdXNlckhhbmRsZTp1c2VySGFuZGxlXSk7CisgICAgcmV0
dXJuIGFkb3B0TlMoW1tfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgYWxsb2NdIGlu
aXRXaXRoQ2xpZW50RGF0YUpTT046Y2xpZW50RGF0YUpTT04gcmF3SWQ6W05TRGF0YSBkYXRhV2l0
aEJ5dGVzOmRhdGEucmF3SWQtPmRhdGEoKSBsZW5ndGg6ZGF0YS5yYXdJZC0+Ynl0ZUxlbmd0aCgp
XSBleHRlbnNpb25zOldURk1vdmUoZXh0ZW5zaW9ucykgYXV0aGVudGljYXRvckRhdGE6W05TRGF0
YSBkYXRhV2l0aEJ5dGVzOmRhdGEuYXV0aGVudGljYXRvckRhdGEtPmRhdGEoKSBsZW5ndGg6ZGF0
YS5hdXRoZW50aWNhdG9yRGF0YS0+Ynl0ZUxlbmd0aCgpXSBzaWduYXR1cmU6W05TRGF0YSBkYXRh
V2l0aEJ5dGVzOmRhdGEuc2lnbmF0dXJlLT5kYXRhKCkgbGVuZ3RoOmRhdGEuc2lnbmF0dXJlLT5i
eXRlTGVuZ3RoKCldIHVzZXJIYW5kbGU6dXNlckhhbmRsZV0pOwogfQogI2VuZGlmCiAKLS0gKHZv
aWQpZ2V0QXNzZXJ0aW9uV2l0aEhhc2g6KE5TRGF0YSAqKWhhc2ggb3B0aW9uczooX1dLUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlICosIE5TRXJyb3IgKikp
aGFuZGxlcgorLSAodm9pZClnZXRBc3NlcnRpb25XaXRoQ2hhbGxlbmdlOihOU0RhdGEgKiljaGFs
bGVuZ2Ugb3JpZ2luOihOU1N0cmluZyAqKW9yaWdpbiBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVy
CiB7CiAjaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoaGFuZGxlcildIChWYXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNh
dG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgYXV0byBjbGllbnREYXRhSlNPTiA9IHByb2R1Y2VDbGllbnREYXRhSnNvbihfV0tXZWJB
dXRoZW50aWNhdGlvblR5cGVDcmVhdGUsIGNoYWxsZW5nZSwgb3JpZ2luKTsKKyAgICBhdXRvIGhh
c2ggPSBwcm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKU09OLmdldCgpKTsKKyAg
ICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlciksIGNsaWVu
dERhdGFKU09OID0gV1RGTW92ZShjbGllbnREYXRhSlNPTildIChWYXJpYW50PFJlZjxXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LCBbJl0oY29uc3QgUmVm
PFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZT4mIHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICBoYW5kbGVyKHdrQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKHJlc3BvbnNlLT5kYXRh
KCkpLmdldCgpLCBuaWwpOworICAgICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZShyZXNwb25zZS0+ZGF0YSgpLCBjbGllbnREYXRhSlNPTi5nZXQoKSkuZ2V0
KCksIG5pbCk7CiAgICAgICAgIH0sIFsmXShjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBl
eGNlcHRpb24pIHsKICAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhE
b21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOm5pbF0pOwog
ICAgICAgICB9KTsKICAgICB9OwotICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IHZlY3RvckZy
b21OU0RhdGEoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVS
ZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBXVEY6Om51bGxv
cHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShjYWxsYmFjaykpOwor
ICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlv
bnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZh
aWxhYmxlLCBudWxscHRyLCBXVEY6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxw
dHIgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyNGFkYTgyNjg3ZDYyMmFlODc3MGU0
ZmRmN2M4ZGZlNDNmMWQwZDA5Li42YzQ5MjA2ZTlmNWYxZDE3ZDFiOGViZmE1MWFmNmY2OGM2NTgw
OTY4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjEtMDItMDkgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByb2R1Y2UgQ2xpZW50RGF0YUpTT04gaW4gdGhl
IFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIx
NjIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTUwOTM5ND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDIxLTAyLTAyICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gdW56aXAgbGF5b3V0LXRlc3Qt
cmVzdWx0cyBpbiBiYWNrZ3JvdW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0K
aW5kZXggZjIxOGQ5MjI2OTYxYjE5YjFiOTRlNzJlMmJmOTIxNDRiNWZlNDFmYS4uMTQ5YTA3MWY3
MWQ5ZTlmMDc5YThjNmQwMTc5NjM2MWVlMTU1OWMyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbC5tbQpAQCAtMTc3OSw3ICsxNzc5LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBNYWtlQ3JlZGVudGlhbFNQSVRpbWVvdXQpCiAgICAgW29wdGlvbnMgc2V0VGltZW91
dDpAMTBdOwogCiAgICAgYXV0byBwYW5lbCA9IGFkb3B0TlMoW1tfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGFsbG9jXSBpbml0XSk7Ci0gICAgW3BhbmVsIG1ha2VDcmVkZW50aWFsV2l0aEhhc2g6
bnNIYXNoIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS0F1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICBbcGFuZWwgbWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxlbmdlOm5zSGFzaCBvcmlnaW46QCIi
IG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeKF9XS0F1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAg
ICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IHRydWU7CiAKICAgICAgICAgRVhQRUNUX05V
TEwocmVzcG9uc2UpOwpAQCAtMTc5OSw3ICsxNzk5LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBNYWtlQ3JlZGVudGlhbExBKQogICAgIHVpbnQ4X3QgaWRlbnRpZmllcltdID0geyAw
eDAxLCAweDAyLCAweDAzLCAweDA0IH07CiAgICAgdWludDhfdCBoYXNoW10gPSB7IDB4MDEsIDB4
MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMs
IDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4
MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIs
IDB4MDMsIDB4MDQgfTsKICAgICBOU0RhdGEgKm5zSWRlbnRpZmllciA9IFtOU0RhdGEgZGF0YVdp
dGhCeXRlczppZGVudGlmaWVyIGxlbmd0aDpzaXplb2YoaWRlbnRpZmllcildOwotICAgIE5TRGF0
YSAqbnNIYXNoID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmhhc2ggbGVuZ3RoOnNpemVvZihoYXNo
KV07CisgICAgYXV0byBuc0hhc2ggPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOmhhc2ggbGVuZ3RoOnNpemVvZihoYXNoKV0pOwogICAgIGF1dG8gcGFyYW1ldGVycyA9IGFk
b3B0TlMoW1tfV0tQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycyBhbGxvY10gaW5pdFdpdGhB
bGdvcml0aG06QC03XSk7CiAKICAgICBhdXRvIHJwID0gYWRvcHROUyhbW19XS1B1YmxpY0tleUNy
ZWRlbnRpYWxSZWx5aW5nUGFydHlFbnRpdHkgYWxsb2NdIGluaXRXaXRoTmFtZTpAImV4YW1wbGUu
Y29tIl0pOwpAQCAtMTgxMyw3ICsxODEzLDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBNYWtlQ3JlZGVudGlhbExBKQogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFtwYW5lbCBz
ZXREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBbcGFuZWwgbWFrZUNyZWRlbnRpYWxX
aXRoSGFzaDpuc0hhc2ggb3B0aW9uczpvcHRpb25zLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4o
X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgKnJlc3BvbnNlLCBOU0Vycm9yICpl
cnJvcikgeworICAgIFtwYW5lbCBtYWtlQ3JlZGVudGlhbFdpdGhDaGFsbGVuZ2U6bnNIYXNoLmdl
dCgpIG9yaWdpbjpAImV4YW1wbGUuY29tIiBvcHRpb25zOm9wdGlvbnMuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6XihfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSAqcmVzcG9uc2Us
IE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSB0
cnVlOwogICAgICAgICBjbGVhblVwS2V5Y2hhaW4oImV4YW1wbGUuY29tIik7CiAKQEAgLTE4MjEs
NiArMTgyMSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxM
QSkKICAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwogCiAgICAgICAgIEVYUEVDVF9OT1RfTlVM
TChyZXNwb25zZSk7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShbcmVzcG9uc2UuY2xpZW50RGF0
YUpTT04gYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdLCAiZXlKamFHRnNiR1Z1WjJV
aU9pSkJVVWxFUWtGRlEwRjNVVUpCWjAxRlFWRkpSRUpCUlVOQmQxRkNRV2ROUlVGUlNVUkNRVVZE
UVhkUklpd2liM0pwWjJsdUlqb2laWGhoYlhCc1pTNWpiMjBpTENKMGVYQmxJam9pZDJWaVlYVjBh
RzR1WTNKbFlYUmxJbjA9Iik7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShbcmVzcG9uc2UucmF3
SWQgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdLCAiU01TWEhuZ0Y3aEVPc0VsQTcz
QzNSWSs4YlI0PSIpOwogICAgICAgICBFWFBFQ1RfTlVMTChyZXNwb25zZS5leHRlbnNpb25zKTsK
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCBiYXNl
NjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0sICJvMk5tYlhSa2JtOXVaV2RoZEhSVGRHMTBv
R2hoZFhSb1JHRjBZVmlZbzNtbTl1NnZ1YVZlTjR3UmdEVGlkUjVvTDZ1ZkxUQ3JFOUlTVlliT0dV
ZEZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVqRWx4NTRCZTRSRHJCSlFPOXd0MFdQdkcw
ZXBRRUNBeVlnQVNGWUlEai96eFNrektnYUJ1UzNjZFdERjU1OG9mOEFhSXBnRnBzakYvUW0xNzQ5
SWxnZ1ZCSlBncVVJd2ZoV0hKOTFuYjdVUEg3NmMwK1dGT3paS3NsUHl5RnNlNGc9Iik7CkBAIC0x
OTE2LDcgKzE5MTcsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlv
blNQSVRpbWVvdXQpCiAgICAgW29wdGlvbnMgc2V0VGltZW91dDpAMTIwXTsKIAogICAgIGF1dG8g
cGFuZWwgPSBhZG9wdE5TKFtbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBhbGxvY10gaW5pdF0p
OwotICAgIFtwYW5lbCBnZXRBc3NlcnRpb25XaXRoSGFzaDpuc0hhc2ggb3B0aW9uczpvcHRpb25z
LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICBbcGFuZWwgZ2V0QXNzZXJ0aW9u
V2l0aENoYWxsZW5nZTpuc0hhc2ggb3JpZ2luOkAiIiBvcHRpb25zOm9wdGlvbnMuZ2V0KCkgY29t
cGxldGlvbkhhbmRsZXI6XihfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgKnJlc3Bv
bnNlLCBOU0Vycm9yICplcnJvcikgewogICAgICAgICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFu
ID0gdHJ1ZTsKIAogICAgICAgICBFWFBFQ1RfTlVMTChyZXNwb25zZSk7CkBAIC0xOTQ2LDEzICsx
OTQ3LDE0IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uTEEpCiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbERl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3BhbmVsIHNldERlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKIAotICAgIFtwYW5lbCBnZXRBc3NlcnRpb25XaXRoSGFzaDpuc0hhc2ggb3B0aW9uczpv
cHRpb25zLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oX1dLQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICBbcGFuZWwgZ2V0QXNz
ZXJ0aW9uV2l0aENoYWxsZW5nZTpuc0hhc2ggb3JpZ2luOkAiIiBvcHRpb25zOm9wdGlvbnMuZ2V0
KCkgY29tcGxldGlvbkhhbmRsZXI6XihfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Ug
KnJlc3BvbnNlLCBOU0Vycm9yICplcnJvcikgewogICAgICAgICB3ZWJBdXRoZW50aWNhdGlvblBh
bmVsUmFuID0gdHJ1ZTsKICAgICAgICAgY2xlYW5VcEtleWNoYWluKCIiKTsKIAogICAgICAgICBF
WFBFQ1RfTlVMTChlcnJvcik7CiAKICAgICAgICAgRVhQRUNUX05PVF9OVUxMKHJlc3BvbnNlKTsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5jbGllbnREYXRhSlNPTiBiYXNlNjRF
bmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0sICJleUpqYUdGc2JHVnVaMlVpT2lKQlVVbEVRa0ZG
UTBGM1VVSkJaMDFGUVZGSlJFSkJSVU5CZDFGQ1FXZE5SVUZSU1VSQ1FVVkRRWGRSSWl3aWIzSnBa
Mmx1SWpvaUlpd2lkSGx3WlNJNkluZGxZbUYxZEdodUxtTnlaV0YwWlNKOSIpOwogICAgICAgICBF
WFBFQ1RfV0tfU1RSRVEoW3Jlc3BvbnNlLnJhd0lkIGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0
aW9uczowXSwgIlNNU1hIbmdGN2hFT3NFbEE3M0MzUlkrOGJSND0iKTsKICAgICAgICAgRVhQRUNU
X05VTEwocmVzcG9uc2UuZXh0ZW5zaW9ucyk7CiAgICAgICAgIEVYUEVDVF9XS19TVFJFUShbcmVz
cG9uc2UuYXV0aGVudGljYXRvckRhdGEgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBd
LCAiNDdERVFwajhIQlNhKy9USW1XKzVKQ2V1UWVSa201Tk1wSldaRzNoU3VGVUZBQUFBQUE9PSIp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419909</attachid>
            <date>2021-02-10 15:02:26 -0800</date>
            <delta_ts>2021-02-10 15:50:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221623-20210210150225.patch</filename>
            <type>text/plain</type>
            <size>26813</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYwNTFjNzE5MmZkZWMzZWEy
NmU1MGFjYmQyODBmODQ3ZjdkYmQyNjUuLmUwYzE0YTMwYjY2ZGNmZDBmYjUxYWI2Mzk1YWJlYTll
NDNhODQwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMDItMTAgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFByb2R1Y2Ug
Q2xpZW50RGF0YUpTT04gaW4gdGhlIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTUwOTM5
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIEluc3Rl
YWQgb2YgYXNraW5nIHRoZSBjbGllbnRzIG9mIHRoZSBTUEkgdG8gcHJlLWNhbGN1bGF0ZSB0aGUg
Q2xpZW50RGF0YUpTT04gaGFzaCBmb3IgdXMsIHdlIGRvCisgICAgICAgIHRoYXQgaW4gdGhlIFNQ
SSBzcGFjZSBvdXJzZWx2ZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNw
b25zZS5tbToKKyAgICAgICAgKC1bX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlIGlu
aXRXaXRoQ2xpZW50RGF0YUpTT046cmF3SWQ6ZXh0ZW5zaW9uczphdXRoZW50aWNhdG9yRGF0YTpz
aWduYXR1cmU6dXNlckhhbmRsZTpdKToKKyAgICAgICAgKC1bX1dLQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlIGluaXRXaXRoUmF3SWQ6ZXh0ZW5zaW9uczphdXRoZW50aWNhdG9yRGF0YTpz
aWduYXR1cmU6dXNlckhhbmRsZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZUludGVybmFsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZS5tbToKKyAgICAgICAgKC1bX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Ug
aW5pdFdpdGhDbGllbnREYXRhSlNPTjpyYXdJZDpleHRlbnNpb25zOmF0dGVzdGF0aW9uT2JqZWN0
Ol0pOgorICAgICAgICAoLVtfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSBpbml0
V2l0aFJhd0lkOmV4dGVuc2lvbnM6YXR0ZXN0YXRpb25PYmplY3Q6XSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZUludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50
aWNhdG9yUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhl
bnRpY2F0b3JSZXNwb25zZS5tbToKKyAgICAgICAgKC1bX1dLQXV0aGVudGljYXRvclJlc3BvbnNl
IGluaXRXaXRoQ2xpZW50RGF0YUpTT046cmF3SWQ6ZXh0ZW5zaW9uczpdKToKKyAgICAgICAgKC1b
X1dLQXV0aGVudGljYXRvclJlc3BvbnNlIGluaXRXaXRoUmF3SWQ6ZXh0ZW5zaW9uczpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNw
b25zZUludGVybmFsLmg6CisgICAgICAgIEFkZHMgYSBmaWVsZCB0byByZXR1cm4gdGhlIEpTT04g
c2VyaWFsaXplZCBieXRlcyBmb3IgdGhlIENsaWVudERhdGFKU09OLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAg
ICAocHJvZHVjZUNsaWVudERhdGFKc29uKToKKyAgICAgICAgKHByb2R1Y2VDbGllbnREYXRhSnNv
bkhhc2gpOgorICAgICAgICAod2tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSk6Cisg
ICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgbWFrZUNyZWRlbnRpYWxXaXRoQ2hh
bGxlbmdlOm9yaWdpbjpvcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAod2tB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UpOgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsIGdldEFzc2VydGlvbldpdGhDaGFsbGVuZ2U6b3JpZ2luOm9wdGlvbnM6Y29t
cGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwg
bWFrZUNyZWRlbnRpYWxXaXRoSGFzaDpvcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGdldEFzc2VydGlvbldp
dGhIYXNoOm9wdGlvbnM6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgIE1v
ZGlmaWVzIHRoZSBTUEkgdG8gYWNjZXB0IGEgY2hhbGxlbmdlIGFuZCBhbiBvcmlnaW4gdG8gY2Fs
Y3VsYXRlIHRoZSBDbGllbnREYXRhSlNPTi4KKwogMjAyMS0wMi0xMCAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3
MjUwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLm1tCmluZGV4IDdl
OGNmYWVhY2I5NGI1YjY1NmE0YWM5YTM5OTgwZGE4YzVlYzc1ZTUuLjM4N2YyMjRiNWZlMmRjOWIx
YTUxNWJlZDkyZGZiYmExYTU0ZjEzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBc3NlcnRp
b25SZXNwb25zZS5tbQpAQCAtMzIsOSArMzIsOSBAQAogCiBAaW1wbGVtZW50YXRpb24gX1dLQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJh
d0lkOihOU0RhdGEgKilyYXdJZCBleHRlbnNpb25zOihSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRp
b25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cz4mJilleHRlbnNpb25zIGF1dGhlbnRpY2F0b3JEYXRh
OihOU0RhdGEgKilhdXRoZW50aWNhdG9yRGF0YSBzaWduYXR1cmU6KE5TRGF0YSAqKXNpZ25hdHVy
ZSB1c2VySGFuZGxlOihOU0RhdGEgKil1c2VySGFuZGxlCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhDbGllbnREYXRhSlNPTjooTlNEYXRhICopY2xpZW50RGF0YUpTT04gcmF3SWQ6KE5TRGF0YSAq
KXJhd0lkIGV4dGVuc2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnND
bGllbnRPdXRwdXRzPiYmKWV4dGVuc2lvbnMgYXV0aGVudGljYXRvckRhdGE6KE5TRGF0YSAqKWF1
dGhlbnRpY2F0b3JEYXRhIHNpZ25hdHVyZTooTlNEYXRhICopc2lnbmF0dXJlIHVzZXJIYW5kbGU6
KE5TRGF0YSAqKXVzZXJIYW5kbGUKIHsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRo
UmF3SWQ6cmF3SWQgZXh0ZW5zaW9uczpXVEZNb3ZlKGV4dGVuc2lvbnMpXSkpCisgICAgaWYgKCEo
c2VsZiA9IFtzdXBlciBpbml0V2l0aENsaWVudERhdGFKU09OOmNsaWVudERhdGFKU09OIHJhd0lk
OnJhd0lkIGV4dGVuc2lvbnM6V1RGTW92ZShleHRlbnNpb25zKV0pKQogICAgICAgICByZXR1cm4g
bmlsOwogCiAgICAgX2F1dGhlbnRpY2F0b3JEYXRhID0gYXV0aGVudGljYXRvckRhdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRv
ckFzc2VydGlvblJlc3BvbnNlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oCmluZGV4
IDNiODFlNTdlMzU4MjU1YTY5MjA4MDI2MmJlMzAzYjY0NzUzMjNlZjYuLmVlZjZhMTQ3YTNiMDYz
ZjRkMzk4MDc4ZmE1OGFlMzgyNjc2OTdjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oCkBAIC0zNCw3ICszNCw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiAKIEBpbnRlcmZhY2UgX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlICgpCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJhd0lkOihOU0RhdGEgKilyYXdJ
ZCBleHRlbnNpb25zOihSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50
T3V0cHV0cz4mJilleHRlbnNpb25zIGF1dGhlbnRpY2F0b3JEYXRhOihOU0RhdGEgKilhdXRoZW50
aWNhdG9yRGF0YSBzaWduYXR1cmU6KE5TRGF0YSAqKXNpZ25hdHVyZSB1c2VySGFuZGxlOihOU0Rh
dGEgKil1c2VySGFuZGxlOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ2xpZW50RGF0YUpTT046
KE5TRGF0YSAqKWNsaWVudERhdGFKU09OIHJhd0lkOihOU0RhdGEgKilyYXdJZCBleHRlbnNpb25z
OihSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cz4mJill
eHRlbnNpb25zIGF1dGhlbnRpY2F0b3JEYXRhOihOU0RhdGEgKilhdXRoZW50aWNhdG9yRGF0YSBz
aWduYXR1cmU6KE5TRGF0YSAqKXNpZ25hdHVyZSB1c2VySGFuZGxlOihOU0RhdGEgKil1c2VySGFu
ZGxlOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25z
ZS5tbQppbmRleCAwNTZmOTJhNWEwZDM2ZDcyNDZjY2E4NTg4MmQ4MGQ2NjAwNjI3MDA2Li4zYjE5
MWZlZGY1Nzk5ODY0YWMxZmE5NTI3YjRmNzc1NDNjNmU5MTUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhl
bnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLm1tCkBAIC0zMiw5ICszMiw5IEBACiAKIEBpbXBs
ZW1lbnRhdGlvbiBfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZQogCi0tIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhSYXdJZDooTlNEYXRhICopcmF3SWQgZXh0ZW5zaW9uczooUmV0YWlu
UHRyPF9XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHM+JiYpZXh0ZW5zaW9u
cyBhdHRlc3RhdGlvbk9iamVjdDooTlNEYXRhICopYXR0ZXN0YXRpb25PYmplY3QKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aENsaWVudERhdGFKU09OOihOU0RhdGEgKiljbGllbnREYXRhSlNPTiBy
YXdJZDooTlNEYXRhICopcmF3SWQgZXh0ZW5zaW9uczooUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0
aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHM+JiYpZXh0ZW5zaW9ucyBhdHRlc3RhdGlvbk9iamVj
dDooTlNEYXRhICopYXR0ZXN0YXRpb25PYmplY3QKIHsKLSAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRXaXRoUmF3SWQ6cmF3SWQgZXh0ZW5zaW9uczpXVEZNb3ZlKGV4dGVuc2lvbnMpXSkpCisg
ICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aENsaWVudERhdGFKU09OOmNsaWVudERhdGFK
U09OIHJhd0lkOnJhd0lkIGV4dGVuc2lvbnM6V1RGTW92ZShleHRlbnNpb25zKV0pKQogICAgICAg
ICByZXR1cm4gbmlsOwogCiAgICAgX2F0dGVzdGF0aW9uT2JqZWN0ID0gYXR0ZXN0YXRpb25PYmpl
Y3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2VJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlSW50
ZXJuYWwuaAppbmRleCA1YTE4OTRhZGMyMjZmOGQ5OGE0OTc1YzAwOWI1OGRkZGM5ZWQ2YjQ2Li4w
NmIxODA3ZDg1ZWQyOWM2NjU2ODdiZDZmMzkxNDcyNGFiODZiMzVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZUludGVybmFsLmgKQEAgLTM0LDcg
KzM0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGludGVyZmFjZSBfV0tBdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSAoKQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhS
YXdJZDooTlNEYXRhICopcmF3SWQgZXh0ZW5zaW9uczooUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0
aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHM+JiYpZXh0ZW5zaW9ucyBhdHRlc3RhdGlvbk9iamVj
dDooTlNEYXRhICopYXR0ZXN0YXRpb25PYmplY3Q7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhD
bGllbnREYXRhSlNPTjooTlNEYXRhICopY2xpZW50RGF0YUpTT04gcmF3SWQ6KE5TRGF0YSAqKXJh
d0lkIGV4dGVuc2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGll
bnRPdXRwdXRzPiYmKWV4dGVuc2lvbnMgYXR0ZXN0YXRpb25PYmplY3Q6KE5TRGF0YSAqKWF0dGVz
dGF0aW9uT2JqZWN0OwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yUmVzcG9uc2UuaAppbmRleCBhZGNk
NzEyNmFmNGZlOGIzN2RjZjczN2QyMGZjZWIwN2M0YWQ1OTkwLi4xMWVkZDk0NDQ5NDdmZTM1MzMw
ZjEzNDM5NmYyZGVjMjg1ODlmZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oCkBAIC0zNiw2
ICszNiw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLQXV0aGVudGlj
YXRvclJlc3BvbnNlIDogTlNPYmplY3QKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU0RhdGEgKmNsaWVudERhdGFKU09OOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU0RhdGEgKnJhd0lkOwogQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCByZWFkb25s
eSwgc3Ryb25nKSBfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzICpleHRl
bnNpb25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQXV0aGVudGljYXRvclJlc3BvbnNlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZS5tbQppbmRleCA3MzU4ODRiMjQ0OTc4MmJi
NTdkMmVjZTNhZWQwMmFkMmJkMWVkOGIxLi44OWQwNjE3ZWVkNzRiYjM0NDZjMWQwOWM2NjYwYzEz
ZTc1ODc0MzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQXV0aGVudGljYXRvclJlc3BvbnNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yUmVzcG9uc2UubW0KQEAgLTMzLDExICszMywxMiBA
QCBAaW1wbGVtZW50YXRpb24gX1dLQXV0aGVudGljYXRvclJlc3BvbnNlIHsKICAgICBSZXRhaW5Q
dHI8X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cz4gX2V4dGVuc2lvbnM7
CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJhd0lkOihOU0RhdGEgKilyYXdJZCBleHRl
bnNpb25zOihSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0
cz4mJilleHRlbnNpb25zCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDbGllbnREYXRhSlNPTjoo
TlNEYXRhICopY2xpZW50RGF0YUpTT04gcmF3SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVuc2lvbnM6
KFJldGFpblB0cjxfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiYmKWV4
dGVuc2lvbnMKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAorICAgIF9jbGllbnREYXRhSlNPTiA9IGNsaWVudERhdGFKU09OOwogICAgIF9y
YXdJZCA9IHJhd0lkOwogICAgIF9leHRlbnNpb25zID0gZXh0ZW5zaW9uczsKICAgICByZXR1cm4g
c2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dXRoZW50aWNhdG9yUmVzcG9uc2VJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZUludGVybmFsLmgKaW5kZXggMjQzOTI2
MzlhNzk2NGE1MmJiMjJiZWU1MDZmZDllNmQ5YTRjYjQyZi4uY2U0ZGQzODRhNTg4NDU0NGE1NjFj
ZmFkMzc3YjkzZTI3NWRlNjA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZUludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZUludGVy
bmFsLmgKQEAgLTM0LDcgKzM0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGludGVy
ZmFjZSBfV0tBdXRoZW50aWNhdG9yUmVzcG9uc2UgKCkKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUmF3SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVuc2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiYmKWV4dGVuc2lvbnM7CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDbGllbnREYXRhSlNPTjooTlNEYXRhICopY2xpZW50RGF0YUpTT04gcmF3
SWQ6KE5TRGF0YSAqKXJhd0lkIGV4dGVuc2lvbnM6KFJldGFpblB0cjxfV0tBdXRoZW50aWNhdGlv
bkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiYmKWV4dGVuc2lvbnM7CiAKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLmgKaW5kZXggODRmYmNjZGZmN2E5NzFjZjU3NDI3ODEyNTMwODVkZWJm
YmZhMTQ2YS4uNDFhZGVjODYzNTRjNWUyYzVlMjcyZGY2MjE4NWI3MTcyNzM4ZDU1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5oCkBAIC04NSw3ICs4NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIF9XS1dlYkF1dGhlbnRpY2F0aW9uU291cmNlKSB7CiAKIC0gKHZvaWQpcGFuZWw6
KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCB1cGRhdGVXZWJBdXRoZW50aWNhdGlv
blBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlKXVwZGF0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczoo
TlNVSW50ZWdlcilyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAq
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOwotLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHNl
bGVjdEFzc2VydGlvblJlc3BvbnNlOihOU0FycmF5IDwgX1dLV2ViQXV0aGVudGljYXRpb25Bc3Nl
cnRpb25SZXNwb25zZSAqPiAqKXJlc3BvbnNlcyBzb3VyY2U6KF9XS1dlYkF1dGhlbnRpY2F0aW9u
U291cmNlKXNvdXJjZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2ViQXV0aGVudGlj
YXRpb25Bc3NlcnRpb25SZXNwb25zZSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOworLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbCAqKXBhbmVsIHNlbGVjdEFzc2VydGlvblJlc3BvbnNlOihOU0FycmF5IDwg
X1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZSAqPiAqKXJlc3BvbnNlcyBzb3Vy
Y2U6KF9XS1dlYkF1dGhlbnRpY2F0aW9uU291cmNlKXNvdXJjZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZSAqIF9OdWxsYWJs
ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKIC0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBy
ZXF1ZXN0TEFDb250ZXh0Rm9yVXNlclZlcmlmaWNhdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTEFDb250ZXh0ICpjb250ZXh0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBGSVhNRTog
PHJkYXI6Ly9wcm9ibGVtLzcxNTA5ODQ4PiBEZXByZWNhdGUgdGhlIGZvbGxvd2luZyBkZWxlZ2F0
ZXMuCkBAIC0xMDMsMTAgKzEwMyw5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNS40
KSwgaW9zKDEzLjQpKQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdDsKIAotLy8gRklYTUU6IDxyZGFy
Oi8vcHJvYmxlbS83MTUwOTM5ND4gQWRkcyBDbGllbnREYXRhSlNPTi4KIC8vIEZJWE1FOiA8cmRh
cjovL3Byb2JsZW0vNzE1MDk0ODU+IEFkZHMgZGV0YWlsZWQgTlNFcnJvci4KLS0gKHZvaWQpbWFr
ZUNyZWRlbnRpYWxXaXRoSGFzaDooTlNEYXRhICopaGFzaCBvcHRpb25zOihfV0tQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSlo
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tICh2b2lkKWdldEFzc2VydGlvbldpdGhIYXNoOihOU0RhdGEgKiloYXNoIG9wdGlvbnM6
KF9XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSAqLCBO
U0Vycm9yICopKWhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxlbmdlOihOU0Rh
dGEgKiljaGFsbGVuZ2Ugb3JpZ2luOihOU1N0cmluZyAqKW9yaWdpbiBvcHRpb25zOihfV0tQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgKiwgTlNFcnJv
ciAqKSloYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKWdldEFzc2VydGlvbldpdGhDaGFsbGVuZ2U6KE5TRGF0YSAqKWNo
YWxsZW5nZSBvcmlnaW46KE5TU3RyaW5nICopb3JpZ2luIG9wdGlvbnM6KF9XS1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSAqLCBOU0Vycm9yICopKWhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IC0gKHZvaWQpY2FuY2VsOwogCiAvLyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzcxNTA5ODQ4PiBE
ZXByZWNhdGUgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQppbmRleCA5NzA2ZDViMjFhYmEzODhlMGRiZmNmYmJlYWNjOTcwZDJhODQxOWU4Li40MWJi
ZmUxMWI2YzdmZGNkYTlhNmFmY2M0NDI4YWQwNjUyMTVhMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbC5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC00OCw4ICs0OCwzNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJBdXRoZW50aWNhdGlv
bkNvbnN0YW50cy5oPgorI2ltcG9ydCA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KICNpbXBv
cnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8
d3RmL3RleHQvQmFzZTY0Lmg+CisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorc3RhdGljIFJldGFp
blB0cjxOU0RhdGE+IHByb2R1Y2VDbGllbnREYXRhSnNvbihfV0tXZWJBdXRoZW50aWNhdGlvblR5
cGUgdHlwZSwgTlNEYXRhICpjaGFsbGVuZ2UsIE5TU3RyaW5nICpvcmlnaW4pCit7CisgICAgYXV0
byBkaWN0aW9uYXJ5ID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRd
KTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIF9XS1dlYkF1dGhlbnRpY2F0aW9uVHlw
ZUNyZWF0ZToKKyAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OkAid2ViYXV0aG4uY3JlYXRl
IiBmb3JLZXk6QCJ0eXBlIl07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgX1dLV2ViQXV0aGVu
dGljYXRpb25UeXBlR2V0OgorICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6QCJ3ZWJhdXRo
bi5nZXQiIGZvcktleTpAInR5cGUiXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFtkaWN0
aW9uYXJ5IHNldE9iamVjdDpXVEY6OmJhc2U2NFVSTEVuY29kZShjaGFsbGVuZ2UuYnl0ZXMsIGNo
YWxsZW5nZS5sZW5ndGgpIGZvcktleTpAImNoYWxsZW5nZSJdOworICAgIFtkaWN0aW9uYXJ5IHNl
dE9iamVjdDpvcmlnaW4gZm9yS2V5OkAib3JpZ2luIl07CisKKyAgICByZXR1cm4gW05TSlNPTlNl
cmlhbGl6YXRpb24gZGF0YVdpdGhKU09OT2JqZWN0OmRpY3Rpb25hcnkuZ2V0KCkgb3B0aW9uczpO
U0pTT05Xcml0aW5nU29ydGVkS2V5cyBlcnJvcjpuaWxdOworfQorCitzdGF0aWMgVmVjdG9yPHVp
bnQ4X3Q+IHByb2R1Y2VDbGllbnREYXRhSnNvbkhhc2goTlNEYXRhICpjbGllbnREYXRhSnNvbikK
K3sKKyAgICBhdXRvIGNyeXB0byA9IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlw
dG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7CisgICAgY3J5cHRvLT5hZGRCeXRlcyhjbGll
bnREYXRhSnNvbi5ieXRlcywgY2xpZW50RGF0YUpzb24ubGVuZ3RoKTsKKyAgICByZXR1cm4gY3J5
cHRvLT5jb21wdXRlSGFzaCgpOworfQorI2VuZGlmCiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsIHsKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQpAQCAtMzMyLDIzICsz
NjAsMjUgQEAgKyAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucylj
b252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE8KIH0KIAogI2lmIEVOQUJMRShXRUJfQVVU
SE4pCi1zdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
PiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OkF1dGhl
bnRpY2F0b3JSZXNwb25zZURhdGEmIGRhdGEpCitzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEmIGRhdGEsIE5TRGF0
YSAqY2xpZW50RGF0YUpTT04pCiB7Ci0gICAgcmV0dXJuIGFkb3B0TlMoW1tfV0tBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZSBhbGxvY10gaW5pdFdpdGhSYXdJZDpbTlNEYXRhIGRhdGFX
aXRoQnl0ZXM6ZGF0YS5yYXdJZC0+ZGF0YSgpIGxlbmd0aDpkYXRhLnJhd0lkLT5ieXRlTGVuZ3Ro
KCldIGV4dGVuc2lvbnM6bmlsIGF0dGVzdGF0aW9uT2JqZWN0OltOU0RhdGEgZGF0YVdpdGhCeXRl
czpkYXRhLmF0dGVzdGF0aW9uT2JqZWN0LT5kYXRhKCkgbGVuZ3RoOmRhdGEuYXR0ZXN0YXRpb25P
YmplY3QtPmJ5dGVMZW5ndGgoKV1dKTsKKyAgICByZXR1cm4gYWRvcHROUyhbW19XS0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aENsaWVudERhdGFKU09OOmNs
aWVudERhdGFKU09OIHJhd0lkOltOU0RhdGEgZGF0YVdpdGhCeXRlczpkYXRhLnJhd0lkLT5kYXRh
KCkgbGVuZ3RoOmRhdGEucmF3SWQtPmJ5dGVMZW5ndGgoKV0gZXh0ZW5zaW9uczpuaWwgYXR0ZXN0
YXRpb25PYmplY3Q6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOmRhdGEuYXR0ZXN0YXRpb25PYmplY3Qt
PmRhdGEoKSBsZW5ndGg6ZGF0YS5hdHRlc3RhdGlvbk9iamVjdC0+Ynl0ZUxlbmd0aCgpXV0pOwog
fQogI2VuZGlmCiAKLS0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoSGFzaDooTlNEYXRhICopaGFz
aCBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zICopb3B0aW9u
cyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVyCistICh2b2lkKW1ha2VDcmVkZW50aWFsV2l0
aENoYWxsZW5nZTooTlNEYXRhICopY2hhbGxlbmdlIG9yaWdpbjooTlNTdHJpbmcgKilvcmlnaW4g
b3B0aW9uczooX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyAqKW9wdGlvbnMg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJl
c3BvbnNlICosIE5TRXJyb3IgKikpaGFuZGxlcgogewogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0g
ICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gbWFrZUJsb2NrUHRyKGhhbmRsZXIpXSAoVmFy
aWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgeworICAgIGF1dG8gY2xpZW50RGF0YUpTT04gPSBw
cm9kdWNlQ2xpZW50RGF0YUpzb24oX1dLV2ViQXV0aGVudGljYXRpb25UeXBlQ3JlYXRlLCBjaGFs
bGVuZ2UsIG9yaWdpbik7CisgICAgYXV0byBoYXNoID0gcHJvZHVjZUNsaWVudERhdGFKc29uSGFz
aChjbGllbnREYXRhSlNPTi5nZXQoKSk7CisgICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0g
bWFrZUJsb2NrUHRyKGhhbmRsZXIpLCBjbGllbnREYXRhSlNPTiA9IFdURk1vdmUoY2xpZW50RGF0
YUpTT04pXSAoVmFyaWFudDxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlPiwgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBXVEY6OnN3
aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9u
c2U+JiByZXNwb25zZSkgewotICAgICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JBdHRl
c3RhdGlvblJlc3BvbnNlKHJlc3BvbnNlLT5kYXRhKCkpLmdldCgpLCBuaWwpOworICAgICAgICAg
ICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlKHJlc3BvbnNlLT5k
YXRhKCksIGNsaWVudERhdGFKU09OLmdldCgpKS5nZXQoKSwgbmlsKTsKICAgICAgICAgfSwgWyZd
KGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikgewogICAgICAgICAgICAg
aGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6
V0tFcnJvclVua25vd24gdXNlckluZm86bmlsXSk7CiAgICAgICAgIH0pOwogICAgIH07Ci0gICAg
X3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgdmVjdG9yRnJvbU5TRGF0YShoYXNoKSwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25z
Om9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6
OlVuYXZhaWxhYmxlLCBudWxscHRyLCBXVEY6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCks
IG51bGxwdHIgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVz
dCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0Nv
cmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpX
ZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgV1RGOjpu
dWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyIH0sIFdURk1vdmUoY2FsbGJhY2sp
KTsKICNlbmRpZgogfQogCkBAIC0zNzEsNyArNDAxLDcgQEAgKyAoV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zKWNvbnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dpdGhP
cHQKIH0KIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi1zdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9u
c2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSYgZGF0YSkKK3N0YXRp
YyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiB3a0F1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9u
c2VEYXRhJiBkYXRhLCBOU0RhdGEgKmNsaWVudERhdGFKU09OKQogewogICAgIFJldGFpblB0cjxf
V0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzPiBleHRlbnNpb25zOwogICAg
IGlmIChkYXRhLmFwcGlkKQpAQCAtMzgxLDIxICs0MTEsMjMgQEAgc3RhdGljIFJldGFpblB0cjxf
V0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IHdrQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3AKICAgICBpZiAoZGF0YS51c2VySGFuZGxlKQogICAgICAgICB1c2VySGFuZGxlID0gW05T
RGF0YSBkYXRhV2l0aEJ5dGVzOmRhdGEudXNlckhhbmRsZS0+ZGF0YSgpIGxlbmd0aDpkYXRhLnVz
ZXJIYW5kbGUtPmJ5dGVMZW5ndGgoKV07CiAKLSAgICByZXR1cm4gYWRvcHROUyhbW19XS0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSBhbGxvY10gaW5pdFdpdGhSYXdJZDpbTlNEYXRhIGRh
dGFXaXRoQnl0ZXM6ZGF0YS5yYXdJZC0+ZGF0YSgpIGxlbmd0aDpkYXRhLnJhd0lkLT5ieXRlTGVu
Z3RoKCldIGV4dGVuc2lvbnM6V1RGTW92ZShleHRlbnNpb25zKSBhdXRoZW50aWNhdG9yRGF0YTpb
TlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5hdXRoZW50aWNhdG9yRGF0YS0+ZGF0YSgpIGxlbmd0
aDpkYXRhLmF1dGhlbnRpY2F0b3JEYXRhLT5ieXRlTGVuZ3RoKCldIHNpZ25hdHVyZTpbTlNEYXRh
IGRhdGFXaXRoQnl0ZXM6ZGF0YS5zaWduYXR1cmUtPmRhdGEoKSBsZW5ndGg6ZGF0YS5zaWduYXR1
cmUtPmJ5dGVMZW5ndGgoKV0gdXNlckhhbmRsZTp1c2VySGFuZGxlXSk7CisgICAgcmV0dXJuIGFk
b3B0TlMoW1tfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRo
Q2xpZW50RGF0YUpTT046Y2xpZW50RGF0YUpTT04gcmF3SWQ6W05TRGF0YSBkYXRhV2l0aEJ5dGVz
OmRhdGEucmF3SWQtPmRhdGEoKSBsZW5ndGg6ZGF0YS5yYXdJZC0+Ynl0ZUxlbmd0aCgpXSBleHRl
bnNpb25zOldURk1vdmUoZXh0ZW5zaW9ucykgYXV0aGVudGljYXRvckRhdGE6W05TRGF0YSBkYXRh
V2l0aEJ5dGVzOmRhdGEuYXV0aGVudGljYXRvckRhdGEtPmRhdGEoKSBsZW5ndGg6ZGF0YS5hdXRo
ZW50aWNhdG9yRGF0YS0+Ynl0ZUxlbmd0aCgpXSBzaWduYXR1cmU6W05TRGF0YSBkYXRhV2l0aEJ5
dGVzOmRhdGEuc2lnbmF0dXJlLT5kYXRhKCkgbGVuZ3RoOmRhdGEuc2lnbmF0dXJlLT5ieXRlTGVu
Z3RoKCldIHVzZXJIYW5kbGU6dXNlckhhbmRsZV0pOwogfQogI2VuZGlmCiAKLS0gKHZvaWQpZ2V0
QXNzZXJ0aW9uV2l0aEhhc2g6KE5TRGF0YSAqKWhhc2ggb3B0aW9uczooX1dLUHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlICosIE5TRXJyb3IgKikpaGFuZGxl
cgorLSAodm9pZClnZXRBc3NlcnRpb25XaXRoQ2hhbGxlbmdlOihOU0RhdGEgKiljaGFsbGVuZ2Ug
b3JpZ2luOihOU1N0cmluZyAqKW9yaWdpbiBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVyCiB7CiAj
aWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoaGFuZGxlcildIChWYXJpYW50PFJlZjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVz
cG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
YXV0byBjbGllbnREYXRhSlNPTiA9IHByb2R1Y2VDbGllbnREYXRhSnNvbihfV0tXZWJBdXRoZW50
aWNhdGlvblR5cGVDcmVhdGUsIGNoYWxsZW5nZSwgb3JpZ2luKTsKKyAgICBhdXRvIGhhc2ggPSBw
cm9kdWNlQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFKU09OLmdldCgpKTsKKyAgICBhdXRv
IGNhbGxiYWNrID0gW2hhbmRsZXIgPSBtYWtlQmxvY2tQdHIoaGFuZGxlciksIGNsaWVudERhdGFK
U09OID0gV1RGTW92ZShjbGllbnREYXRhSlNPTildIChWYXJpYW50PFJlZjxXZWJDb3JlOjpBdXRo
ZW50aWNhdG9yUmVzcG9uc2U+LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LCBbJl0oY29uc3QgUmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZT4mIHJlc3BvbnNlKSB7Ci0gICAgICAgICAgICBoYW5k
bGVyKHdrQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKHJlc3BvbnNlLT5kYXRhKCkpLmdl
dCgpLCBuaWwpOworICAgICAgICAgICAgaGFuZGxlcih3a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZShyZXNwb25zZS0+ZGF0YSgpLCBjbGllbnREYXRhSlNPTi5nZXQoKSkuZ2V0KCksIG5p
bCk7CiAgICAgICAgIH0sIFsmXShjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJiBleGNlcHRp
b24pIHsKICAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46
V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOm5pbF0pOwogICAgICAg
ICB9KTsKICAgICB9OwotICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IHZlY3RvckZyb21OU0Rh
dGEoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVSZXF1ZXN0
T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBXVEY6Om51bGxvcHQsIHsg
fSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9w
YW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBu
dWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxl
LCBudWxscHRyLCBXVEY6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIgfSwg
V1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNjQ5NzRmMTQxMWE1ZmM2ODVmMTRjMjE3ZDM4
NzcyZTRkZjYwNjk4Li4yYjFiMTEyMTUxNzZlZjFjNzVhY2VlMzQxNTk1ODlmMjZmMzkxYjUxIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjEtMDItMTAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4K
KworICAgICAgICBbV2ViQXV0aG5dIFByb2R1Y2UgQ2xpZW50RGF0YUpTT04gaW4gdGhlIFNQSQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNjIzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTUwOTM5ND4KKworICAgICAgICBSZXZpZXdlZCBieSBC
cmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisKIDIwMjEtMDItMTAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzI1MDcuCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggYWFmZDFiYTQ3ZDUxYjEwOTY0NDRmMWQ4MWI5YzFl
YzVmYmVkNDg1Yi4uZjNhYmY1ZTZhYjNkNGQwOTNlNWExYTc4N2NmY2E5ZjljNTEzOWI4YiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMTc0MSw3ICsxNzQxLDcgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbFNQSVRpbWVvdXQpCiAg
ICAgW29wdGlvbnMgc2V0VGltZW91dDpAMTBdOwogCiAgICAgYXV0byBwYW5lbCA9IGFkb3B0TlMo
W1tfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGFsbG9jXSBpbml0XSk7Ci0gICAgW3BhbmVsIG1h
a2VDcmVkZW50aWFsV2l0aEhhc2g6bnNIYXNoIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBjb21wbGV0
aW9uSGFuZGxlcjpeKF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlICpyZXNwb25z
ZSwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICBbcGFuZWwgbWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxl
bmdlOm5zSGFzaCBvcmlnaW46QCIiIG9wdGlvbnM6b3B0aW9ucy5nZXQoKSBjb21wbGV0aW9uSGFu
ZGxlcjpeKF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlICpyZXNwb25zZSwgTlNF
cnJvciAqZXJyb3IpIHsKICAgICAgICAgd2ViQXV0aGVudGljYXRpb25QYW5lbFJhbiA9IHRydWU7
CiAKICAgICAgICAgRVhQRUNUX05VTEwocmVzcG9uc2UpOwpAQCAtMTc2MSw3ICsxNzYxLDcgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbExBKQogICAgIHVpbnQ4
X3QgaWRlbnRpZmllcltdID0geyAweDAxLCAweDAyLCAweDAzLCAweDA0IH07CiAgICAgdWludDhf
dCBoYXNoW10gPSB7IDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4
MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEs
IDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4
MDMsIDB4MDQsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQgfTsKICAgICBOU0RhdGEgKm5zSWRlbnRp
ZmllciA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczppZGVudGlmaWVyIGxlbmd0aDpzaXplb2YoaWRl
bnRpZmllcildOwotICAgIE5TRGF0YSAqbnNIYXNoID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzOmhh
c2ggbGVuZ3RoOnNpemVvZihoYXNoKV07CisgICAgYXV0byBuc0hhc2ggPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOmhhc2ggbGVuZ3RoOnNpemVvZihoYXNoKV0pOwogICAg
IGF1dG8gcGFyYW1ldGVycyA9IGFkb3B0TlMoW1tfV0tQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1l
dGVycyBhbGxvY10gaW5pdFdpdGhBbGdvcml0aG06QC03XSk7CiAKICAgICBhdXRvIHJwID0gYWRv
cHROUyhbW19XS1B1YmxpY0tleUNyZWRlbnRpYWxSZWx5aW5nUGFydHlFbnRpdHkgYWxsb2NdIGlu
aXRXaXRoTmFtZTpAImV4YW1wbGUuY29tIl0pOwpAQCAtMTc3NSw3ICsxNzc1LDcgQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbExBKQogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgIFtwYW5lbCBzZXREZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBb
cGFuZWwgbWFrZUNyZWRlbnRpYWxXaXRoSGFzaDpuc0hhc2ggb3B0aW9uczpvcHRpb25zLmdldCgp
IGNvbXBsZXRpb25IYW5kbGVyOl4oX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Ug
KnJlc3BvbnNlLCBOU0Vycm9yICplcnJvcikgeworICAgIFtwYW5lbCBtYWtlQ3JlZGVudGlhbFdp
dGhDaGFsbGVuZ2U6bnNIYXNoLmdldCgpIG9yaWdpbjpAImV4YW1wbGUuY29tIiBvcHRpb25zOm9w
dGlvbnMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZSAqcmVzcG9uc2UsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIHdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxSYW4gPSB0cnVlOwogICAgICAgICBjbGVhblVwS2V5Y2hhaW4oImV4YW1w
bGUuY29tIik7CiAKQEAgLTE3ODMsNiArMTc4Myw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTWFrZUNyZWRlbnRpYWxMQSkKICAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwogCiAg
ICAgICAgIEVYUEVDVF9OT1RfTlVMTChyZXNwb25zZSk7CisgICAgICAgIEVYUEVDVF9XS19TVFJF
UShbcmVzcG9uc2UuY2xpZW50RGF0YUpTT04gYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25z
OjBdLCAiZXlKamFHRnNiR1Z1WjJVaU9pSkJVVWxFUWtGRlEwRjNVVUpCWjAxRlFWRkpSRUpCUlVO
QmQxRkNRV2ROUlVGUlNVUkNRVVZEUVhkUklpd2liM0pwWjJsdUlqb2laWGhoYlhCc1pTNWpiMjBp
TENKMGVYQmxJam9pZDJWaVlYVjBhRzR1WTNKbFlYUmxJbjA9Iik7CiAgICAgICAgIEVYUEVDVF9X
S19TVFJFUShbcmVzcG9uc2UucmF3SWQgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBd
LCAiU01TWEhuZ0Y3aEVPc0VsQTczQzNSWSs4YlI0PSIpOwogICAgICAgICBFWFBFQ1RfTlVMTChy
ZXNwb25zZS5leHRlbnNpb25zKTsKICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5h
dHRlc3RhdGlvbk9iamVjdCBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0sICJvMk5t
YlhSa2JtOXVaV2RoZEhSVGRHMTBvR2hoZFhSb1JHRjBZVmlZbzNtbTl1NnZ1YVZlTjR3UmdEVGlk
UjVvTDZ1ZkxUQ3JFOUlTVlliT0dVZEZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVqRWx4
NTRCZTRSRHJCSlFPOXd0MFdQdkcwZXBRRUNBeVlnQVNGWUlEai96eFNrektnYUJ1UzNjZFdERjU1
OG9mOEFhSXBnRnBzakYvUW0xNzQ5SWxnZ1ZCSlBncVVJd2ZoV0hKOTFuYjdVUEg3NmMwK1dGT3pa
S3NsUHl5RnNlNGc9Iik7CkBAIC0xODc4LDcgKzE4NzksNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIEdldEFzc2VydGlvblNQSVRpbWVvdXQpCiAgICAgW29wdGlvbnMgc2V0VGltZW91
dDpAMTIwXTsKIAogICAgIGF1dG8gcGFuZWwgPSBhZG9wdE5TKFtbX1dLV2ViQXV0aGVudGljYXRp
b25QYW5lbCBhbGxvY10gaW5pdF0pOwotICAgIFtwYW5lbCBnZXRBc3NlcnRpb25XaXRoSGFzaDpu
c0hhc2ggb3B0aW9uczpvcHRpb25zLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oX1dLQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICBbcGFuZWwgZ2V0QXNzZXJ0aW9uV2l0aENoYWxsZW5nZTpuc0hhc2ggb3JpZ2luOkAiIiBvcHRp
b25zOm9wdGlvbnMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihfV0tBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcG9uc2UgKnJlc3BvbnNlLCBOU0Vycm9yICplcnJvcikgewogICAgICAgICB3ZWJB
dXRoZW50aWNhdGlvblBhbmVsUmFuID0gdHJ1ZTsKIAogICAgICAgICBFWFBFQ1RfTlVMTChyZXNw
b25zZSk7CkBAIC0xOTA4LDEzICsxOTA5LDE0IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgR2V0QXNzZXJ0aW9uTEEpCiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3BhbmVsIHNl
dERlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAotICAgIFtwYW5lbCBnZXRBc3NlcnRpb25XaXRo
SGFzaDpuc0hhc2ggb3B0aW9uczpvcHRpb25zLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4oX1dL
QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlICpyZXNwb25zZSwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICBbcGFuZWwgZ2V0QXNzZXJ0aW9uV2l0aENoYWxsZW5nZTpuc0hhc2ggb3JpZ2luOkAi
IiBvcHRpb25zOm9wdGlvbnMuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihfV0tBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UgKnJlc3BvbnNlLCBOU0Vycm9yICplcnJvcikgewogICAgICAg
ICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuID0gdHJ1ZTsKICAgICAgICAgY2xlYW5VcEtleWNo
YWluKCIiKTsKIAogICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CiAKICAgICAgICAgRVhQRUNU
X05PVF9OVUxMKHJlc3BvbnNlKTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFtyZXNwb25zZS5j
bGllbnREYXRhSlNPTiBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF0sICJleUpqYUdG
c2JHVnVaMlVpT2lKQlVVbEVRa0ZGUTBGM1VVSkJaMDFGUVZGSlJFSkJSVU5CZDFGQ1FXZE5SVUZS
U1VSQ1FVVkRRWGRSSWl3aWIzSnBaMmx1SWpvaUlpd2lkSGx3WlNJNkluZGxZbUYxZEdodUxtTnla
V0YwWlNKOSIpOwogICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoW3Jlc3BvbnNlLnJhd0lkIGJhc2U2
NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXSwgIlNNU1hIbmdGN2hFT3NFbEE3M0MzUlkrOGJS
ND0iKTsKICAgICAgICAgRVhQRUNUX05VTEwocmVzcG9uc2UuZXh0ZW5zaW9ucyk7CiAgICAgICAg
IEVYUEVDVF9XS19TVFJFUShbcmVzcG9uc2UuYXV0aGVudGljYXRvckRhdGEgYmFzZTY0RW5jb2Rl
ZFN0cmluZ1dpdGhPcHRpb25zOjBdLCAiNDdERVFwajhIQlNhKy9USW1XKzVKQ2V1UWVSa201Tk1w
SldaRzNoU3VGVUZBQUFBQUE9PSIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>