<?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>224293</bug_id>
          
          <creation_ts>2021-04-07 11:02:56 -0700</creation_ts>
          <short_desc>Remove _WKWebsitePolicies</short_desc>
          <delta_ts>2021-05-15 19:23:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747973</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-07 11:02:56 -0700</bug_when>
    <thetext>Remove _WKWebsitePolicies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747975</commentid>
    <comment_count>1</comment_count>
      <attachid>425419</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-07 11:05:08 -0700</bug_when>
    <thetext>Created attachment 425419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747977</commentid>
    <comment_count>2</comment_count>
      <attachid>425421</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-07 11:08:05 -0700</bug_when>
    <thetext>Created attachment 425421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748094</commentid>
    <comment_count>3</comment_count>
      <attachid>425446</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-07 15:12:47 -0700</bug_when>
    <thetext>Created attachment 425446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750231</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-14 11:03:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/76654686&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751802</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-19 08:57:03 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 425446 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760517</commentid>
    <comment_count>6</comment_count>
      <attachid>425446</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-15 18:12:59 -0700</bug_when>
    <thetext>Comment on attachment 425446
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKWebsitePolicies.h:26
&gt; +// FIXME: Remove this file once rdar://76355111 is resolved.

This is resolved!  I&apos;m going to remove the whole thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760518</commentid>
    <comment_count>7</comment_count>
      <attachid>428756</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-15 18:16:23 -0700</bug_when>
    <thetext>Created attachment 428756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760530</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 18:50:41 -0700</bug_when>
    <thetext>Committed r277555 (237783@main): &lt;https://commits.webkit.org/237783@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428756.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425419</attachid>
            <date>2021-04-07 11:05:08 -0700</date>
            <delta_ts>2021-04-07 11:08:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224293-20210407110507.patch</filename>
            <type>text/plain</type>
            <size>38329</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1YTQ5NWI3YjgwNDUxZDhj
MzBkMzA4MDNmZWZjZTAzMDRkMTYwNjIuLmUzNDdkZTIwZTA1MGMzN2Y2NGQ3YmE5ZWE0OTBhNDlm
YTQ1MThkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDQtMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgX1dL
V2Vic2l0ZVBvbGljaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJdHMgbGFzdCB1c2Ugd2FzIHJlbW92ZWQgaW4gcmRhcjovL3Byb2JsZW0vNTgwNjQ4
NDcgYW5kIHdlJ3ZlIHJlbGVhc2VkIGEgU2FmYXJpIHZlcnNpb24gc2luY2UgdGhlbi4KKworICAg
ICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF91cGRhdGVXZWJzaXRlUG9s
aWNpZXM6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVm
ZXJlbmNlcy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZl
cmVuY2VzSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNp
dGVQb2xpY2llcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBv
bGljaWVzLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZVBvbGljaWVzSW50ZXJuYWwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0
aW9uRGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRp
b25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kQXVkaW9Db21wb25lbnRSZWdpc3RyYXRpb25zKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkcmFnZ2luZ0V4aXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpwZXJmb3JtRHJhZ09wZXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
ZXRQcm9taXNlZERhdGFGb3JJbWFnZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKIDIwMjEtMDQtMDYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgZGVmaW5pdGlvbiB1c2VkIGZvciBzdGFn
aW5nIGNoYW5nZSB3aXRoIGludGVybmFsIHJlcG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBi
OWYwZjRiMWZlMDM1NWVhZjExOTU3ZjY3ZTlkMWYyNDI2NjkyOTM5Li43ODA1OTMzY2UwNmUzYjcw
ZTNiOTFiN2I2MDRmMzhjNzc3NzZjOTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMDAs
NyArMzAwLDYgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5tbQogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCi1VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVQb2xpY2llcy5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElBdHRhY2htZW50Q29j
b2EubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5t
bQogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVn
YXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGQwMWVmNjE2ZDBmZGM0MGZiYjA0OGIzNjY2ZTY5
N2Q4OGIzNDU5NTcuLjllMjkxNTAzZGIzY2RmYjQwYzNjNDZmZjAxYWM2ZTQ3NWMwYjY2M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQg
PFdlYktpdC9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oPgogCiBAY2xhc3MgX1dLQ29u
dGVudFJ1bGVMaXN0QWN0aW9uOwotQGNsYXNzIF9XS1dlYnNpdGVQb2xpY2llczsKIAogI2lmICFU
QVJHRVRfT1NfSVBIT05FCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tXZWJHTExvYWRQ
b2xpY3kpIHsKQEAgLTk3LDkgKzk2LDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3Bv
bnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EKIC0gKHZv
aWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmU6KFdLV2ViVmlldyAqKXdlYlZpZXcg
d2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRl
bSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTbmFw
c2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07CiAt
ICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0
ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVu
Y2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMi4zLCAxMC4xNC40KSwg
aW9zKDEwLjMsIDEyLjIpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2
aWdhdGlvbkFjdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0
ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVu
Y2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMy40LCAxMC4xNSksIGlv
cygxMS4zLCAxMy4wKSk7Ci0tKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdh
dGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNl
cyB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMu
MCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9u
IHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIHVzZXJJbmZv
OihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZp
Z2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVD
b2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0
aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9y
IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDkyMzJmYmEwZmVmN2ZkMGU1OTU5NTYyNzM3
MjdlMDZlMGU5ZmI4M2YuLjI1ODJhYzExMWNkOGE5NGYxMWFiZmE4ZGRjOTRiMjJiNWVmY2NiMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMTE5LDcgKzExOSw2IEBACiAjaW1wb3J0ICJfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oIgog
I2ltcG9ydCAiX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmgiCiAjaW1wb3J0ICJfV0tWaXNpdGVk
TGlua1N0b3JlSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFs
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0FwcEhpZ2hsaWdodC5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
dHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yQ29jb2EuaD4KQEAgLTI1
NjQsMTAgKzI1NjMsNiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IHdrVGV4dE1hbmlwdWxh
dGlvbkVycm9ycyhOU0FycmF5PF9XS1RleHRNYW5pcHVsYXRpb25JdAogICAgIFtzZWxmIF9ldmFs
dWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlwdFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNv
dXJjZVVSTDp1cmwgd2l0aEFyZ3VtZW50czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFt
ZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9u
SGFuZGxlcl07CiB9CiAKLS0gKHZvaWQpX3VwZGF0ZVdlYnNpdGVQb2xpY2llczooX1dLV2Vic2l0
ZVBvbGljaWVzICopd2Vic2l0ZVBvbGljaWVzCi17Ci19Ci0KIC0gKHZvaWQpX3VwZGF0ZVdlYnBh
Z2VQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKil3ZWJwYWdlUHJlZmVyZW5jZXMK
IHsKICAgICBpZiAod2VicGFnZVByZWZlcmVuY2VzLl93ZWJzaXRlRGF0YVN0b3JlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggMWJhYjZmNDExNDlkYzMyMzc1OGY4YWI0YmE2Y2NmYTk5OGFhOTJiOC4uMzBhYjFlMDA4
YTg1N2I3ODkwNmYwN2UxY2E3OWU3NWE4Mzk4MDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xMjUsNyArMTI1
LDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiBAY2xh
c3MgX1dLVGV4dE1hbmlwdWxhdGlvbkNvbmZpZ3VyYXRpb247CiBAY2xhc3MgX1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW07CiBAY2xhc3MgX1dLVGh1bWJuYWlsVmlldzsKLUBjbGFzcyBfV0tXZWJzaXRl
UG9saWNpZXM7CiBAY2xhc3MgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyOwogCiBAcHJvdG9jb2wg
V0tIaXN0b3J5RGVsZWdhdGVQcml2YXRlOwpAQCAtMjEzLDcgKzIxMiw2IEBAIGZvciB0aGlzIHBy
b3BlcnR5LgogLSAoQk9PTClfdHJ5Q2xvc2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40
KSwgaW9zKDEzLjQpKTsKIC0gKEJPT0wpX2lzQ2xvc2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUuNCksIGlvcygxMy40KSk7CiAKLS0gKHZvaWQpX3VwZGF0ZVdlYnNpdGVQb2xpY2llczoo
X1dLV2Vic2l0ZVBvbGljaWVzICopd2Vic2l0ZVBvbGljaWVzIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIi1fdXBkYXRlV2VicGFnZVByZWZlcmVuY2VzOiIsIG1hY29zKDEwLjEz
LCAxMC4xNS40KSwgaW9zKDExLjMsIDEzLjQpKTsKIC0gKHZvaWQpX3VwZGF0ZVdlYnBhZ2VQcmVm
ZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKil3ZWJwYWdlUHJlZmVyZW5jZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIC0gKHZvaWQpX25vdGlmeVVz
ZXJTY3JpcHRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2RlZmVycmFibGVVc2VyU2NyaXB0c05l
ZWROb3RpZmljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQ
cmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5tbQppbmRleCA5MGQwZmUyMWU0Yjg0NzJjM2JkMjM1YzljZTE4NDE5YWU5
NDViYmVkLi45ZWMyNTU2ZmU4MmIxZmUyYmU1YjhmYjlhZGQ4ZDc3OWE0NTM1Yzk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVBy
ZWZlcmVuY2VzLm1tCkBAIC0zMiw3ICszMiw2IEBACiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3Rv
cmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViQ29udGVudE1vZGUuaCIKICNpbXBvcnQgIl9XS0N1
c3RvbUhlYWRlckZpZWxkc0ludGVybmFsLmgiCi0jaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJ
bnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVBy
ZWZlcmVuY2VzSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgKaW5kZXggNDBjNjIxMDA0MTdkMzMyZjRiNzJi
MGI1OTc4OWUxNDYzZjBjNmMwMC4uYTM1MGJjYmIxMmUwNGVhYWJhNjZiN2FmMTZjMWRjMGFiNmEy
OWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
cGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oCkBAIC0yNiw3ICsyNiw2IEBA
CiAjaW1wb3J0ICJBUElXZWJzaXRlUG9saWNpZXMuaCIKICNpbXBvcnQgIldLT2JqZWN0LmgiCiAj
aW1wb3J0ICJXS1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaCIKLSNpbXBvcnQgIl9XS1dlYnNp
dGVQb2xpY2llcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCmluZGV4IDg2
YmFlZjJiNTU5MjIzMTJlNTRiNjllY2I2MjhkOWRmNTEyZTIxNDcuLmRhODZjZjVmYTVjMWZlMzkz
MzRlYTVjZWZkNmEyZGFlNGU5MGRmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKQEAgLTIzLDIzICsyMyw3IEBA
CiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLy8gRklYTUU6IFJl
bW92ZSB0aGlzIGZpbGUgb25jZSByZGFyOi8vNzYzNTUxMTEgaXMgcmVzb2x2ZWQuCisKICNpbXBv
cnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYnBhZ2VQcmVm
ZXJlbmNlc1ByaXZhdGUuaD4KLQotQGNsYXNzIFdLV2Vic2l0ZURhdGFTdG9yZTsKLQotV0tfQ0xB
U1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnBhZ2VQcmVmZXJlbmNlcyIsIG1h
Y29zKDEwLjEyLjMsIDEwLjE1LjQpLCBpb3MoMTAuMywgMTMuNCkpCi1AaW50ZXJmYWNlIF9XS1dl
YnNpdGVQb2xpY2llcyA6IE5TT2JqZWN0Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGNv
bnRlbnRCbG9ja2Vyc0VuYWJsZWQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZUF1
dG9wbGF5UXVpcmsgYWxsb3dlZEF1dG9wbGF5UXVpcmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVBdXRv
cGxheVBvbGljeSBhdXRvcGxheVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwg
aW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0RpY3Rpb25hcnk8TlNT
dHJpbmcgKiwgTlNTdHJpbmcgKj4gKmN1c3RvbUhlYWRlckZpZWxkcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dl
YnNpdGVQb3BVcFBvbGljeSBwb3BVcFBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0
KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLV2Vic2l0ZURh
dGFTdG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0
b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50QXNT
aXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEz
LjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tTmF2aWdh
dG9yUGxhdGZvcm0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3NQb2xpY3kgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7Ci0KLUBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVz
Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDkxOTc3YTY4OWE2YTE3Mzg4NjQw
OGI0N2JlMTZjMzEyZjcyZTlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9s
aWNpZXMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFs
LmgiCi0jaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dL
V2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCIKLQotSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJkZXBy
ZWNhdGVkLWltcGxlbWVudGF0aW9ucyIpCi1AaW1wbGVtZW50YXRpb24gX1dLV2Vic2l0ZVBvbGlj
aWVzCi1JR05PUkVfV0FSTklOR1NfRU5ECi0KLS0gKGluc3RhbmNldHlwZSlpbml0Ci17Ci0gICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBf
d2VicGFnZVByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dLV2VicGFnZVByZWZlcmVuY2VzIGFsbG9j
XSBpbml0XSk7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKFdLV2VicGFnZVByZWZlcmVuY2Vz
ICopd2VicGFnZVByZWZlcmVuY2VzCi17Ci0gICAgcmV0dXJuIF93ZWJwYWdlUHJlZmVyZW5jZXMu
Z2V0KCk7Ci19Ci0KLS0gKHZvaWQpc2V0Q29udGVudEJsb2NrZXJzRW5hYmxlZDooQk9PTCljb250
ZW50QmxvY2tlcnNFbmFibGVkCi17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldENvbnRl
bnRCbG9ja2Vyc0VuYWJsZWQ6Y29udGVudEJsb2NrZXJzRW5hYmxlZF07Ci19Ci0KLS0gKEJPT0wp
Y29udGVudEJsb2NrZXJzRW5hYmxlZAotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfY29udGVudEJsb2NrZXJzRW5hYmxlZF07Ci19Ci0KLS0gKHZvaWQpc2V0QWxsb3dlZEF1dG9w
bGF5UXVpcmtzOihfV0tXZWJzaXRlQXV0b3BsYXlRdWlyaylhbGxvd2VkUXVpcmtzCi17Ci0gICAg
W193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEFsbG93ZWRBdXRvcGxheVF1aXJrczphbGxvd2VkUXVp
cmtzXTsKLX0KLQotLSAoX1dLV2Vic2l0ZUF1dG9wbGF5UXVpcmspYWxsb3dlZEF1dG9wbGF5UXVp
cmtzCi17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9hbGxvd2VkQXV0b3BsYXlR
dWlya3NdOwotfQotCi0tICh2b2lkKXNldEF1dG9wbGF5UG9saWN5OihfV0tXZWJzaXRlQXV0b3Bs
YXlQb2xpY3kpcG9saWN5Ci17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEF1dG9wbGF5
UG9saWN5OnBvbGljeV07Ci19Ci0KLS0gKF9XS1dlYnNpdGVBdXRvcGxheVBvbGljeSlhdXRvcGxh
eVBvbGljeQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfYXV0b3BsYXlQb2xp
Y3ldOwotfQotCi0tICh2b2lkKXNldERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9s
aWN5OihfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kpcG9s
aWN5Ci17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldERldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzUG9saWN5OnBvbGljeV07Ci19Ci0KLS0gKF9XS1dlYnNpdGVEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSlkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc1BvbGljeQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfZGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3ldOwotfQotCi0tICh2b2lkKXNldFBvcFVwUG9s
aWN5OihfV0tXZWJzaXRlUG9wVXBQb2xpY3kpcG9saWN5Ci17Ci0gICAgW193ZWJwYWdlUHJlZmVy
ZW5jZXMgX3NldFBvcFVwUG9saWN5OnBvbGljeV07Ci19Ci0KLS0gKF9XS1dlYnNpdGVQb3BVcFBv
bGljeSlwb3BVcFBvbGljeQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfcG9w
VXBQb2xpY3ldOwotfQotCi0tIChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4g
KiljdXN0b21IZWFkZXJGaWVsZHMKLXsKLSAgICBhdXRvJiBmaWVsZHMgPSBzdGF0aWNfY2FzdDxB
UEk6OldlYnNpdGVQb2xpY2llcyY+KFtfd2VicGFnZVByZWZlcmVuY2VzIF9hcGlPYmplY3RdKS5s
ZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMoKTsKLSAgICBhdXRvIGRpY3Rpb25hcnkgPSBbTlNNdXRh
YmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENhcGFjaXR5OmZpZWxkcy5zaXplKCldOwotICAg
IGZvciAoY29uc3QgYXV0byYgZmllbGQgOiBmaWVsZHMpCi0gICAgICAgIFtkaWN0aW9uYXJ5IHNl
dE9iamVjdDpmaWVsZC52YWx1ZSgpIGZvcktleTpmaWVsZC5uYW1lKCldOwotICAgIHJldHVybiBk
aWN0aW9uYXJ5OwotfQotCi0tICh2b2lkKXNldEN1c3RvbUhlYWRlckZpZWxkczooTlNEaWN0aW9u
YXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopZmllbGRzCi17Ci0gICAgYXV0byB3ZWJzaXRl
UG9saWNpZXMgPSBzdGF0aWNfY2FzdDxBUEk6OldlYnNpdGVQb2xpY2llcyY+KFtfd2VicGFnZVBy
ZWZlcmVuY2VzIF9hcGlPYmplY3RdKTsKLSAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZp
ZWxkPiBwYXJzZWRGaWVsZHM7Ci0gICAgcGFyc2VkRmllbGRzLnJlc2VydmVJbml0aWFsQ2FwYWNp
dHkoZmllbGRzLmNvdW50KTsKLSAgICBmb3IgKE5TU3RyaW5nICpuYW1lIGluIGZpZWxkcykgewot
ICAgICAgICBhdXRvIGZpZWxkID0gV2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkOjpjcmVhdGUobmFt
ZSwgW2ZpZWxkcyBvYmplY3RGb3JLZXk6bmFtZV0pOwotICAgICAgICBpZiAoZmllbGQgJiYgc3Rh
cnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmaWVsZC0+bmFtZSgpLCAieC0iKSkKLSAg
ICAgICAgICAgIHBhcnNlZEZpZWxkcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqZmllbGQpKTsK
LSAgICB9Ci0gICAgd2Vic2l0ZVBvbGljaWVzLnNldExlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcyhX
VEZNb3ZlKHBhcnNlZEZpZWxkcykpOwotfQotCi0tIChXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJz
aXRlRGF0YVN0b3JlCi17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF93ZWJzaXRl
RGF0YVN0b3JlXTsKLX0KLQotLSAodm9pZClzZXRXZWJzaXRlRGF0YVN0b3JlOihXS1dlYnNpdGVE
YXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCi17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMg
X3NldFdlYnNpdGVEYXRhU3RvcmU6d2Vic2l0ZURhdGFTdG9yZV07Ci19Ci0KLS0gKHZvaWQpc2V0
Q3VzdG9tVXNlckFnZW50OihOU1N0cmluZyAqKWN1c3RvbVVzZXJBZ2VudAotewotICAgIFtfd2Vi
cGFnZVByZWZlcmVuY2VzIF9zZXRDdXN0b21Vc2VyQWdlbnQ6Y3VzdG9tVXNlckFnZW50XTsKLX0K
LQotLSAoTlNTdHJpbmcgKiljdXN0b21Vc2VyQWdlbnQKLXsKLSAgICByZXR1cm4gW193ZWJwYWdl
UHJlZmVyZW5jZXMgX2N1c3RvbVVzZXJBZ2VudF07Ci19Ci0KLS0gKHZvaWQpc2V0Q3VzdG9tVXNl
ckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3M6KE5TU3RyaW5nICopY3VzdG9tVXNlckFnZW50Ci17
Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEN1c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNp
ZmljUXVpcmtzOmN1c3RvbVVzZXJBZ2VudF07Ci19Ci0KLS0gKE5TU3RyaW5nICopY3VzdG9tVXNl
ckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MKLXsKLSAgICByZXR1cm4gW193ZWJwYWdlUHJlZmVy
ZW5jZXMgX2N1c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzXTsKLX0KLQotLSAodm9p
ZClzZXRDdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybTooTlNTdHJpbmcgKiljdXN0b21OYXZpZ2F0b3JQ
bGF0Zm9ybQotewotICAgIFtfd2VicGFnZVByZWZlcmVuY2VzIF9zZXRDdXN0b21OYXZpZ2F0b3JQ
bGF0Zm9ybTpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybV07Ci19Ci0KLS0gKE5TU3RyaW5nICopY3Vz
dG9tTmF2aWdhdG9yUGxhdGZvcm0KLXsKLSAgICByZXR1cm4gW193ZWJwYWdlUHJlZmVyZW5jZXMg
X2N1c3RvbU5hdmlnYXRvclBsYXRmb3JtXTsKLX0KLQotLSAoTlNTdHJpbmcgKilkZXNjcmlwdGlv
bgotewotICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjwlQCAlQD4iLCBz
ZWxmLmNsYXNzLCBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBkZXNjcmlwdGlvbl1dOwotfQotCi0tIChB
UEk6Ok9iamVjdCYpX2FwaU9iamVjdAotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfYXBpT2JqZWN0XTsKLX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNlNTQ2MTMzOGU5MGY3MzQ2ZmU4MGMyNWE5YmIy
ZTU4MDI4NTk5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzSW50
ZXJuYWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1w
b3J0ICJfV0tXZWJzaXRlUG9saWNpZXMuaCIKLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLQot
QGNsYXNzIFdLV2VicGFnZVByZWZlcmVuY2VzOwotCi1AaW50ZXJmYWNlIF9XS1dlYnNpdGVQb2xp
Y2llcyAoKQotewotQHBhY2thZ2UKLSAgICBSZXRhaW5QdHI8V0tXZWJwYWdlUHJlZmVyZW5jZXM+
IF93ZWJwYWdlUHJlZmVyZW5jZXM7Ci19Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKndlYnBhZ2VQcmVmZXJlbmNlczsKLQotQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCBm
M2Q3ZTkwNDc0YThkZTlhOTU2MGZmMjljYjZkMTRjNzE4M2ZhYjIyLi4yNGRlZGQzMDA1NGZmMDYw
ODIxZGVkMDg1N2Q5ZDVmODc3NGQxMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtMjA0LDggKzIwNCw2IEBAIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lv
bkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9v
bCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc1Vz
ZXJJbmZvRGVjaXNpb25IYW5kbGVyIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7
Ci0gICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2Vy
SW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFuZGxlciA6IDE7
CiAKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24gOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1t
CmluZGV4IDVkZjM2MjgxMjM1YmI0NWE3NDU1ZWQ0NzkzZmI5OTIyZWU0MDljMDIuLmU1NGY5ZThk
NzBhOTJiMzc0MjkzNWM4MTIwYzBlNTlmZGIzMTJlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTcwLDcgKzcwLDYgQEAKICNp
bXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRzSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1NhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmgi
CiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ3JlZGVudGlhbC5o
PgpAQCAtMTUyLDggKzE1MSw2IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9u
RGVsZWdhdGUoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKIAogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRs
ZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjopXTsKLSAgICBt
X25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXTsKLSAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9u
SGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246dXNlckluZm86
ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc1VzZXJJbmZv
RGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczp1c2Vy
SW5mbzpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXIg
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAKQEAgLTQ3Myw5
ICs0NzAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogCiAgICAgaWYgKCFtX25hdmlnYXRp
b25TdGF0ZSB8fCAoIW1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXIK
ICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNV
c2VySW5mb0RlY2lzaW9uSGFuZGxlcgotICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcgotICAgICAgICAmJiAhbV9uYXZp
Z2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcwotICAg
ICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5k
bGVyV2Vic2l0ZVBvbGljaWVzKSkgeworICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcikpIHsKICAgICAgICAgYXV0byBj
b21wbGV0aW9uSGFuZGxlciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBsaXN0
ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uLCBkZWZhdWx0V2Vic2l0
ZVBvbGljaWVzXSAoYm9vbCBpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAgICAgIGlm
IChpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+aWdu
b3JlKCk7CkBAIC01MTYsMzMgKzUxMSwyMCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogCiAg
ICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnBhZ2VQcmVmZXJlbmNlcyA9IG1fbmF2aWdhdGlvblN0YXRl
LT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIKICAgICAgICAgfHwgbV9u
YXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc1VzZXJJbmZvRGVjaXNpb25I
YW5kbGVyOwotICAgIGJvb2wgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMgPSBtX25hdmlnYXRp
b25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIHx8IG1fbmF2
aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xp
Y2llczsKIAogICAgIGF1dG8gc2VsZWN0b3JGb3JDb21wbGV0aW9uSGFuZGxlckNoZWNrZXIgPSAo
WyZdICgpIC0+IFNFTCB7CiAgICAgICAgIGlmIChkZWxlZ2F0ZUhhc1dlYnBhZ2VQcmVmZXJlbmNl
cykKICAgICAgICAgICAgIHJldHVybiBtX25hdmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFBy
ZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyID8gQHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6KSA6IEBzZWxl
Y3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2Vz
OnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjopOwotICAgICAgICBpZiAoZGVsZWdhdGVIYXNXZWJz
aXRlUG9saWNpZXMpCi0gICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOik7CiAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRl
Y2lzaW9uSGFuZGxlcjopOwogICAgIH0pKCk7CiAKICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0
aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpLCBz
ZWxlY3RvckZvckNvbXBsZXRpb25IYW5kbGVyQ2hlY2tlcik7Ci0gICAgYXV0byBkZWNpc2lvbkhh
bmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzID0gW2xvY2FsTGlzdGVuZXIgPSBXVEZNb3Zl
KGxpc3RlbmVyKSwgbmF2aWdhdGlvbkFjdGlvbiwgY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciks
IHdlYlBhZ2VQcm94eSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgc3ViZnJhbWVOYXZpZ2F0aW9u
LCBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzXSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlv
blBvbGljeSwgaWQgcG9saWNpZXNPclByZWZlcmVuY2VzKSBtdXRhYmxlIHsKKyAgICBhdXRvIGRl
Y2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5lciA9
IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uLCBjaGVja2VyID0gV1RGTW92ZShj
aGVja2VyKSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBzdWJmcmFtZU5h
dmlnYXRpb24sIGRlZmF1bHRXZWJzaXRlUG9saWNpZXNdIChXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3kgYWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMpIG11dGFi
bGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVk
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0
aW9uSGFuZGxlcigpOwogCi0gICAgICAgIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4gYXBp
V2Vic2l0ZVBvbGljaWVzOwotICAgICAgICBpZiAoW3BvbGljaWVzT3JQcmVmZXJlbmNlcyBpc0tp
bmRPZkNsYXNzOldLV2VicGFnZVByZWZlcmVuY2VzLmNsYXNzXSkKLSAgICAgICAgICAgIGFwaVdl
YnNpdGVQb2xpY2llcyA9ICgoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwb2xpY2llc09yUHJlZmVy
ZW5jZXMpLT5fd2Vic2l0ZVBvbGljaWVzLmdldCgpOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfQkVHSU4KLSAgICAgICAgZWxzZSBpZiAoW3BvbGljaWVzT3JQcmVmZXJlbmNlcyBpc0tp
bmRPZkNsYXNzOl9XS1dlYnNpdGVQb2xpY2llcy5jbGFzc10pCi0gICAgICAgICAgICBhcGlXZWJz
aXRlUG9saWNpZXMgPSBbcG9saWNpZXNPclByZWZlcmVuY2VzIHdlYnBhZ2VQcmVmZXJlbmNlc10t
Pl93ZWJzaXRlUG9saWNpZXMuZ2V0KCk7Ci0gICAgICAgIGVsc2UgaWYgKHBvbGljaWVzT3JQcmVm
ZXJlbmNlcykKLSAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVu
dEV4Y2VwdGlvbiBmb3JtYXQ6QCJFeHBlY3RlZCBwb2xpY2llcyBvZiBjbGFzcyAlQCwgYnV0IGdv
dCAlQCIsIE5TU3RyaW5nRnJvbUNsYXNzKF9XS1dlYnNpdGVQb2xpY2llcy5jbGFzcyksIFtwb2xp
Y2llc09yUHJlZmVyZW5jZXMgY2xhc3NdXTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcGlXZWJzaXRlUG9saWNpZXMgPSBkZWZh
dWx0V2Vic2l0ZVBvbGljaWVzOworICAgICAgICBSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+
IGFwaVdlYnNpdGVQb2xpY2llcyA9IHByZWZlcmVuY2VzID8gIHByZWZlcmVuY2VzLT5fd2Vic2l0
ZVBvbGljaWVzLmdldCgpIDogZGVmYXVsdFdlYnNpdGVQb2xpY2llczsKIAogICAgICAgICBpZiAo
YXBpV2Vic2l0ZVBvbGljaWVzKSB7CiAgICAgICAgICAgICBpZiAoYXBpV2Vic2l0ZVBvbGljaWVz
LT53ZWJzaXRlRGF0YVN0b3JlKCkgJiYgc3ViZnJhbWVOYXZpZ2F0aW9uKQpAQCAtNTk3LDE3ICs1
NzksNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIFtu
YXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS0+bV93ZWJWaWV3IGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBw
cmVmZXJlbmNlczp3cmFwcGVyKGRlZmF1bHRXZWJzaXRlUG9saWNpZXMpIGRlY2lzaW9uSGFuZGxl
cjptYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBv
bGljaWVzKSkuZ2V0KCldOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBbKGlkIDxXS05hdmln
YXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmln
YXRpb25TdGF0ZS0+bV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3Jh
cHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBwcmVmZXJlbmNlczp3cmFwcGVyKGRlZmF1bHRXZWJzaXRl
UG9saWNpZXMpIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQ8TlNTZWN1cmVDb2Rp
bmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2Nr
UHRyKFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcykpLmdl
dCgpXTsKLSAgICB9IGVsc2UgaWYgKGRlbGVnYXRlSGFzV2Vic2l0ZVBvbGljaWVzKSB7Ci0gICAg
ICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25I
YW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcykpOwotICAgICAgICBpZiAobV9uYXZpZ2F0
aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVz
KSB7Ci0gICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAg
ICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUtPm1fd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgdXNlckluZm86dXNl
ckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBl
cigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLSAgICAg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICAg
ICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVn
YXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIGRlY2lzaW9uSGFuZGxl
cjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECi0gICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBhdXRvIGRl
Y2lzaW9uSGFuZGxlciA9IFtkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVz
ID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKV0gKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3kpIG11dGFibGUgewogICAgICAgICAg
ICAgZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcyhhY3Rpb25Qb2xpY3ks
IG5pbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQcm94eUNvY29hLm1tCmluZGV4IGEzYzdhMjgzOGViZDA0NzM0YWQzZTdhNjFkZDc2YWQ4YTFk
YTU5YTQuLmE3ZDFiNzFlZDFiYmUzZTU4YzhkYWU4MWE4NDEyYjg2OTk4Y2JhNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRBdWRpb0Nv
bXBvbmVudFJlZ2lzdHJhdGlvbnMoKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyksIHJlZ2lzdHJhdGlvbnMgPSByZXRhaW5QdHIocmVnaXN0cmF0aW9ucyldICgpIG11dGFi
bGUgewotICAgICAgICAgICAgYXV0byByZWdpc3RyYXRpb25EYXRhID0gU2hhcmVkQnVmZmVyOjpj
cmVhdGUocmVnaXN0cmF0aW9ucy5nZXQoKSk7CisgICAgICAgICAgICBhdXRvIHJlZ2lzdHJhdGlv
bkRhdGEgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShyZWdpc3RyYXRpb25zLmdldCgp
KTsKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OkNvbnN1bWVBdWRpb0NvbXBvbmVudFJlZ2lzdHJhdGlvbnMoeyByZWdpc3RyYXRpb25EYXRhIH0p
LCAwKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDZkM2QxMjlkNThjNjk1MDg1MjFmYWUyOTViMzRhYTVi
ZjUxYTkwZTQuLjQ0ODliNmZkMTU2MzZkNTMxYTU1YWIxMjg1YWExZTdhOTUxMjIyOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00MDg3LDcg
KzQwODcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2luZ0V4aXRlZChpZCA8TlNEcmFnZ2lu
Z0luZm8+IGRyYWdnaW5nSW5mbykKIHsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnQoW21f
dmlldyBjb252ZXJ0UG9pbnQ6ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24gZnJvbVZpZXc6
bmlsXSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsKFdlYkNvcmU6Omdsb2JhbFBvaW50
KGRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9uLCBbbV92aWV3IHdpbmRvd10pKTsKLSAgICBX
ZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBj
b3JlRHJhZ09wZXJhdGlvbk1hc2soZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlT3BlcmF0aW9u
TWFzayksIGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSwg
ZHJhZ2dpbmdJbmZvKSwgYW55RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKCksIG1fcGFnZS0+d2ViUGFn
ZUlEKCkpOworICAgIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xp
ZW50LCBnbG9iYWwsIGNvcmVEcmFnT3BlcmF0aW9uTWFzayhkcmFnZ2luZ0luZm8uZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcobV92aWV3LmdldEF1
dG9yZWxlYXNlZCgpLCBkcmFnZ2luZ0luZm8pLCBXZWJDb3JlOjphbnlEcmFnRGVzdGluYXRpb25B
Y3Rpb24oKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CiAgICAgbV9wYWdlLT5kcmFnRXhpdGVkKGRy
YWdEYXRhLCBkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLm5hbWUpOwogICAgIG1fcGFn
ZS0+cmVzZXRDdXJyZW50RHJhZ0luZm9ybWF0aW9uKCk7CiAgICAgZHJhZ2dpbmdJbmZvLm51bWJl
ck9mVmFsaWRJdGVtc0ZvckRyb3AgPSBtX2luaXRpYWxOdW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9w
OwpAQCAtNDEwMyw3ICs0MTAzLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybURyYWdPcGVy
YXRpb24oaWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCiB7CiAgICAgV2ViQ29yZTo6
SW50UG9pbnQgY2xpZW50KFttX3ZpZXcgY29udmVydFBvaW50OmRyYWdnaW5nSW5mby5kcmFnZ2lu
Z0xvY2F0aW9uIGZyb21WaWV3Om5pbF0pOwogICAgIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbChX
ZWJDb3JlOjpnbG9iYWxQb2ludChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiwgW21fdmll
dyB3aW5kb3ddKSk7Ci0gICAgV2ViQ29yZTo6RHJhZ0RhdGEgKmRyYWdEYXRhID0gbmV3IFdlYkNv
cmU6OkRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIGNvcmVEcmFnT3BlcmF0
aW9uTWFzayhkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGlj
YXRpb25GbGFnc0ZvckRyYWcobV92aWV3LmdldEF1dG9yZWxlYXNlZCgpLCBkcmFnZ2luZ0luZm8p
LCBhbnlEcmFnRGVzdGluYXRpb25BY3Rpb24oKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAg
V2ViQ29yZTo6RHJhZ0RhdGEgKmRyYWdEYXRhID0gbmV3IFdlYkNvcmU6OkRyYWdEYXRhKGRyYWdn
aW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIGNvcmVEcmFnT3BlcmF0aW9uTWFzayhkcmFnZ2luZ0lu
Zm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWco
bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpLCBkcmFnZ2luZ0luZm8pLCBXZWJDb3JlOjphbnlEcmFn
RGVzdGluYXRpb25BY3Rpb24oKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CiAKICAgICBOU0FycmF5
ICp0eXBlcyA9IGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQudHlwZXM7CiAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7CkBAIC00MzUxLDgg
KzQzNTEsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShXZWJD
b3JlOjpJbWFnZSogaW1hZ2UsIE5TU3RyaW5nICpmaWxlbgogCiAgICAgUmV0YWluUHRyPE5TRGF0
YT4gY3VzdG9tRGF0YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsK
LSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKSldOwotICAgICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOworICAgICAg
ICBbdHlwZXMgYWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKV07CisgICAgICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURh
dGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAg
ICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+
Y3JlYXRlTlNEYXRhKCk7CiAgICAgfQpAQCAtNDM3MCw3ICs0MzcwLDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIp
Ci0gICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JU
eXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFtwYXN0
ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CiAKICAgICBtX3Byb21pc2VkSW1h
Z2UgPSBpbWFnZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDM1YzE3NGNmN2RiODkxM2Q4NTJmZjQ5Y2EyZTRiN2YyZjU5MDYzYjYu
LjRiYmIwODRjZGJhOWRhMGVkOTY5M2NjNzQwOTQ1MzU4YmVmZTU2OGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI2NCw3ICsxMjY0
LDYgQEAKIAkJNUNBRkRFNDUyMTMwODQ2MzAwQjFGN0UxIC8qIF9XS0luc3BlY3Rvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNBRkRFNDIyMTMwODQz
NTAwQjFGN0UxIC8qIF9XS0luc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTVDQUZERTQ3MjEzMDg0NkEwMEIxRjdFMSAvKiBfV0tJbnNw
ZWN0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUNBRkRFNDQyMTMwODQzNjAwQjFGN0UxIC8qIF9XS0luc3BlY3RvckludGVybmFsLmgg
Ki87IH07CiAJCTVDQjIzNzhDMURGMERFNkUwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjIzNzg5
MURGMERENDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1Q0IyMzc4RTFERjBFMEQzMDAxMTdB
QTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjIzNzhEMURGMEUwQzIwMDExN0FBMyAvKiBfV0tX
ZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oICovOyB9OwogCQk1Q0I2QUU0NDI2MDk3OTlDMDBCNkVE
NUEgLyogUmVhc29uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0I2QUU0MzI2MDk3OTlDMDBCNkVENUEgLyogUmVhc29uU1BJLmggKi87IH07CiAJ
CTVDQjdBRkUwMjNDNTJDRTUwMEU0OUNGMyAvKiBfV0tSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCN0FGREYyM0M1
MkNCQzAwRTQ5Q0YzIC8qIF9XS1Jlc291cmNlTG9hZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUNCN0FGRTcyM0M2ODIwNzAwRTQ5
Q0YzIC8qIFJlc291cmNlTG9hZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDQjdBRkU2MjNDNjgxQjAwMEU0OUNGMyAvKiBSZXNvdXJjZUxvYWRJ
bmZvLmggKi87IH07CkBAIC00NDYxLDggKzQ0NjAsNiBAQAogCQk1Q0FGREU0MzIxMzA4NDM2MDBC
MUY3RTEgLyogX1dLSW5zcGVjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gX1dLSW5zcGVjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
Q0FGREU0NDIxMzA4NDM2MDBCMUY3RTEgLyogX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9ySW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCMjM3ODkxREYwREQ0MzAwMTE3QUEzIC8qIF9XS1dl
YnNpdGVQb2xpY2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJz
aXRlUG9saWNpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNCMjM3OEExREYw
REQ0MzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYnNpdGVQb2xpY2llcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNUNCMjM3OEQxREYwRTBDMjAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQ
b2xpY2llc0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dl
YnNpdGVQb2xpY2llc0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
QjZBRTQzMjYwOTc5OUMwMEI2RUQ1QSAvKiBSZWFzb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVhc29uU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQjdBRkRBMjNDNDNFNjQwMEU0OUNGMyAvKiBBUElSZXNvdXJjZUxvYWRDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJUmVzb3VyY2VMb2FkQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjdBRkREMjNDNTI3M0QwMEU0OUNGMyAvKiBS
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZXNvdXJjZUxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODAx
Myw4ICs4MDEwLDYgQEAKIAkJCQk1QzQ2QzBBRTIxQjcxQUUyMDBCQzU5OTEgLyogX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25JbnRlcm5hbC5oICovLAogCQkJCTQxQzUzNzhGMjFGMTM2
MkQwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0Iy
Mzc4OTFERjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLmggKi8sCi0JCQkJNUNC
MjM3OEExREYwREQ0MzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5tbSAqLywKLQkJCQk1
Q0IyMzc4RDFERjBFMEMyMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCAq
LywKIAkJCQlGNDEwNTY2MTIxMzA2OTlBMDA5MjI4MUQgLyogQVBJQXR0YWNobWVudENvY29hLm1t
ICovLAogCQkJCTdDRUZBOTYwMUFDMDk5OTMwMEI5MTBGRCAvKiBBUElDb250ZW50UnVsZUxpc3RT
dG9yZUNvY29hLm1tICovLAogCQkJCTVDQTQ2RTdBMjFGMUEyMzkwMENFODZCNCAvKiBBUElIVFRQ
Q29va2llU3RvcmVDb2NvYS5tbSAqLywKQEAgLTkyNjgsMTAgKzkyNjMsMTAgQEAKIAkJCQk1MzIx
NTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLywKIAkJCQk1
Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8sCiAJ
CQkJN0VDNEYwRjkxOEU0QTk0NTAwODA1NkFGIC8qIE5ldHdvcmtQcm9jZXNzQ29jb2EubW0gKi8s
Ci0JCQkJNTMyMTU5NTAxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCAq
LywKLQkJCQk1QzIwQ0I5QjFCQjBEQ0QyMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5t
bSAqLywKIAkJCQk1MTgzMjQ3ODI2MTVCMDBEMDAzRjIzOUUgLyogTmV0d29ya1NjaGVtZVVSTFBy
b3RvY29sLmggKi8sCiAJCQkJNTE4MzI0NzkyNjE1QjAwRDAwM0YyMzlFIC8qIE5ldHdvcmtTY2hl
bWVVUkxQcm90b2NvbC5tbSAqLywKKwkJCQk1MzIxNTk1MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0
d29ya1Nlc3Npb25Db2NvYS5oICovLAorCQkJCTVDMjBDQjlCMUJCMERDRDIwMDg5NUJCMSAvKiBO
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tICovLAogCQkJCTQxMjg3RDRDMjI1QzA1QzUwMDlBM0UyNiAv
KiBXZWJTb2NrZXRUYXNrQ29jb2EuaCAqLywKIAkJCQk0MTI4N0Q0QjIyNUMwNUM0MDA5QTNFMjYg
LyogV2ViU29ja2V0VGFza0NvY29hLm1tICovLAogCQkJKTsKQEAgLTExNjUwLDcgKzExNjQ1LDYg
QEAKIAkJCQk0MUM1Mzc5MDIxRjE1QjU1MDA4QjFGQUQgLyogX1dLV2Vic2l0ZURhdGFTdG9yZURl
bGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOTNCNzFBRUIwOEVBMDAxNTBFOUMgLyog
X1dLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0IyMzc4
QzFERjBERTZFMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1Q0IyMzc4RTFERjBFMEQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTVEQzcyMTkxRDgyREEwMERBODA3MiAvKiBfV0tX
ZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExOUREM0MwMUQwN0Qx
NjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE4MkQ1QjUxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMTE2NzYsNyArMTE2NzAsNiBAQAogCQkJCTMxN0ZFN0M1MUM0
ODdBNkMwMEEwQ0E4OSAvKiBBUElFeHBlcmltZW50YWxGZWF0dXJlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwMEI5NjYxNjE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkRENjdBMkUxQkQ4MTk3MzAwNTNCMjUxIC8qIEFQSUZpbmRNYXRjaGVzQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTgzMjQ3RDI2MTY4RkY3MDAzRjIzOUUgLyogTmV0
d29ya1VSTFNjaGVtZVRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RTI1RDZFMThGREU1RDYw
MDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMxMzM3MjE4
NTY2QzdDMDBGM0VDMDUgLyogQVBJRnJhbWVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
RjlFRUU2MUE3ODFGQjQwMEI2Q0ZCRSAvKiBBUElGcmFtZUluZm8uaCBpbiBIZWFkZXJzICovLApA
QCAtMTE5OTcsNiArMTE5OTAsOCBAQAogCQkJCTVDMjBDQkEwMUJCMUVDRDgwMDg5NUJCMSAvKiBO
ZXR3b3JrU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMyMTU5NTUxREJBRTcyOTAwNTRB
QTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzkxNUI5
MjI1NzA0NkYwMEQ2Rjk3RSAvKiBOZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTE4MzI0N0MyNjE2OEM2MjAwM0YyMzlFIC8qIE5ldHdvcmtVUkxTY2hlbWVIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTgzMjQ3RDI2MTY4RkY3MDAzRjIzOUUgLyogTmV0d29y
a1VSTFNjaGVtZVRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MERBQUMyMjMwMzczMDMwMEU4
RkMwNCAvKiBOZmNDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzBEQUFBRTIzMDI2
RjVDMDBFOEZDMDQgLyogTmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNTYx
NDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyODI3LDcgKzEyODIyLDYgQEAKIAkJCQkwRkNCNEU2ODE4QkJFM0Q5MDAw
RkNGQzkgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTIxMjE1RjI0MEVFNTcxMDA2RUQ0NDMgLyogV0tUZXh0UGxhY2Vob2xkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNFNDU5NDVDMjQwRjg4NTUwMDc4MDE5RiAvKiBXS1RleHRTZWxlY3Rpb25S
ZWN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTgzMjQ3QzI2MTY4QzYyMDAzRjIzOUUgLyogTmV0
d29ya1VSTFNjaGVtZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFQjZGQzAxMjAzMDIx
OTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzFBNjc2QTYyMkM2MjMyNTAwN0Q2Mjk1IC8qIFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVj
b2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDgxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVHlwZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425421</attachid>
            <date>2021-04-07 11:08:05 -0700</date>
            <delta_ts>2021-04-07 15:12:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224293-20210407110804.patch</filename>
            <type>text/plain</type>
            <size>36088</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLmJkZGY4ZTJiZGMxYjNmMDMxMDM1ODUzZjcyODYzZGZl
MzA5NDdiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDQtMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgX1dL
V2Vic2l0ZVBvbGljaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJdHMgbGFzdCB1c2Ugd2FzIHJlbW92ZWQgaW4gcmRhcjovL3Byb2JsZW0vNTgwNjQ4
NDcgYW5kIHdlJ3ZlIHJlbGVhc2VkIGEgU2FmYXJpIHZlcnNpb24gc2luY2UgdGhlbi4KKyAgICAg
ICAgSXQgd2FzIHJlcGxhY2VkIGJ5IFdLV2VicGFnZVByZWZlcmVuY2VzCisKKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOl0p
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMu
bW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNp
ZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5t
bTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xp
Y2llc0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZHJhZ2dpbmdFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9y
bURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlz
ZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUu
b3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4g
Y2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGI5ZjBmNGIxZmUwMzU1ZWFmMTE5NTdmNjdlOWQxZjI0MjY2OTI5MzkuLjc4MDU5MzNjZTA2ZTNi
NzBlM2I5MWI3YjYwNGYzOGM3Nzc3NmM5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMw
MCw3ICszMDAsNiBAQCBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KLVVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZVBvbGljaWVzLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUF0dGFjaG1lbnRD
b2NvYS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29h
Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZDAxZWY2MTZkMGZkYzQwZmJiMDQ4YjM2NjZl
Njk3ZDg4YjM0NTk1Ny4uOWUyOTE1MDNkYjNjZGZiNDBjM2M0NmZmMDFhYzZlNDc1YzBiNjYzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtMjksNyArMjksNiBAQAogI2ltcG9y
dCA8V2ViS2l0L19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmg+CiAKIEBjbGFzcyBfV0tD
b250ZW50UnVsZUxpc3RBY3Rpb247Ci1AY2xhc3MgX1dLV2Vic2l0ZVBvbGljaWVzOwogCiAjaWYg
IVRBUkdFVF9PU19JUEhPTkUKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1dlYkdMTG9h
ZFBvbGljeSkgewpAQCAtOTcsOSArOTYsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAo
dm9pZClfd2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmll
dyB3aXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJ
dGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNu
YXBzaG90QmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsK
IC0gKHZvaWQpX3dlYlZpZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJz
aXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVy
ZW5jZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQp
LCBpb3MoMTAuMywgMTIuMikpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKilu
YXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJz
aXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVy
ZW5jZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEzLjQsIDEwLjE1KSwg
aW9zKDExLjMsIDEzLjApKTsKLS0odm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZp
Z2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVu
Y2VzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNl
cyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rp
b24gcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgdXNlcklu
Zm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lz
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gdXNlckluZm86KGlkIDxOU1NlY3Vy
ZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEx
LjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbE5hdmln
YXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJy
b3IgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOTIzMmZiYTBmZWY3ZmQwZTU5NTk1NjI3
MzcyN2UwNmUwZTlmYjgzZi4uMjU4MmFjMTExY2Q4YTk0ZjExYWJmYThkZGM5NGIyMmI1ZWZjY2Ix
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0xMTksNyArMTE5LDYgQEAKICNpbXBvcnQgIl9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmgi
CiAjaW1wb3J0ICJfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCIKICNpbXBvcnQgIl9XS1Zpc2l0
ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJu
YWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JDb2NvYS5oPgpAQCAt
MjU2NCwxMCArMjU2Myw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gd2tUZXh0TWFuaXB1
bGF0aW9uRXJyb3JzKE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0CiAgICAgW3NlbGYgX2V2
YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRo
U291cmNlVVJMOnVybCB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZy
YW1lOmZyYW1lIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRp
b25IYW5kbGVyXTsKIH0KIAotLSAodm9pZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJz
aXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMKLXsKLX0KLQogLSAodm9pZClfdXBkYXRlV2Vi
cGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdlYnBhZ2VQcmVmZXJlbmNl
cwogewogICAgIGlmICh3ZWJwYWdlUHJlZmVyZW5jZXMuX3dlYnNpdGVEYXRhU3RvcmUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAppbmRleCAxYmFiNmY0MTE0OWRjMzIzNzU4ZjhhYjRiYTZjY2ZhOTk4YWE5MmI4Li4zMGFiMWUw
MDhhODU3Yjc4OTA2ZjA3ZTFjYTc5ZTc1YTgzOTgwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTEyNSw3ICsx
MjUsNiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIEBj
bGFzcyBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbjsKIEBjbGFzcyBfV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbTsKIEBjbGFzcyBfV0tUaHVtYm5haWxWaWV3OwotQGNsYXNzIF9XS1dlYnNp
dGVQb2xpY2llczsKIEBjbGFzcyBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXI7CiAKIEBwcm90b2Nv
bCBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGU7CkBAIC0yMTMsNyArMjEyLDYgQEAgZm9yIHRoaXMg
cHJvcGVydHkuCiAtIChCT09MKV90cnlDbG9zZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
LjQpLCBpb3MoMTMuNCkpOwogLSAoQk9PTClfaXNDbG9zZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIAotLSAodm9pZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVz
OihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiLV91cGRhdGVXZWJwYWdlUHJlZmVyZW5jZXM6IiwgbWFjb3MoMTAu
MTMsIDEwLjE1LjQpLCBpb3MoMTEuMywgMTMuNCkpOwogLSAodm9pZClfdXBkYXRlV2VicGFnZVBy
ZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdlYnBhZ2VQcmVmZXJlbmNlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogLSAodm9pZClfbm90aWZ5
VXNlclNjcmlwdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfZGVmZXJyYWJsZVVzZXJTY3JpcHRz
TmVlZE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFn
ZVByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
cGFnZVByZWZlcmVuY2VzLm1tCmluZGV4IDkwZDBmZTIxZTRiODQ3MmMzYmQyMzVjOWNlMTg0MTlh
ZTk0NWJiZWQuLjllYzI1NTZmZTgyYjFmZTJiZTViOGZiOWFkZDhkNzc5YTQ1MzVjOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMubW0KQEAgLTMyLDcgKzMyLDYgQEAKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFT
dG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDb250ZW50TW9kZS5oIgogI2ltcG9ydCAiX1dL
Q3VzdG9tSGVhZGVyRmllbGRzSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVQb2xpY2ll
c0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXNJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaAppbmRleCA0MGM2MjEwMDQxN2QzMzJmNGI3
MmIwYjU5Nzg5ZTE0NjNmMGM2YzAwLi5hMzUwYmNiYjEyZTA0ZWFhYmE2NmI3YWYxNmMxZGMwYWI2
YTI5ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbXBvcnQgIkFQSVdlYnNpdGVQb2xpY2llcy5oIgogI2ltcG9ydCAiV0tPYmplY3QuaCIK
ICNpbXBvcnQgIldLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIgotI2ltcG9ydCAiX1dLV2Vi
c2l0ZVBvbGljaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXgg
ODZiYWVmMmI1NTkyMjMxMmU1NGI2OWVjYjYyOGQ5ZGY1MTJlMjE0Ny4uZGE4NmNmNWZhNWMxZmUz
OTMzNGVhNWNlZmQ2YTJkYWU0ZTkwZGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaApAQCAtMjMsMjMgKzIzLDcg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBGSVhNRTog
UmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NjM1NTExMSBpcyByZXNvbHZlZC4KKwogI2lt
cG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVBy
ZWZlcmVuY2VzUHJpdmF0ZS5oPgotCi1AY2xhc3MgV0tXZWJzaXRlRGF0YVN0b3JlOwotCi1XS19D
TEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2VicGFnZVByZWZlcmVuY2VzIiwg
bWFjb3MoMTAuMTIuMywgMTAuMTUuNCksIGlvcygxMC4zLCAxMy40KSkKLUBpbnRlcmZhY2UgX1dL
V2Vic2l0ZVBvbGljaWVzIDogTlNPYmplY3QKLQotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
Y29udGVudEJsb2NrZXJzRW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRl
QXV0b3BsYXlRdWlyayBhbGxvd2VkQXV0b3BsYXlRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZUF1
dG9wbGF5UG9saWN5IGF1dG9wbGF5UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY3VzdG9tSGVhZGVyRmllbGRzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dL
V2Vic2l0ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRl
RGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1
c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnRB
c1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3Mo
MTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZp
Z2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwotQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc1BvbGljeSBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLQotQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2ll
cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNp
ZXMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0OTE5NzdhNjg5YTZhMTczODg2
NDA4YjQ3YmUxNmMzMTJmNzJlOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQ
b2xpY2llcy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpbXBvcnQgIldLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJu
YWwuaCIKLSNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCi0jaW1wb3J0ICJf
V0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgotCi1JR05PUkVfV0FSTklOR1NfQkVHSU4oImRl
cHJlY2F0ZWQtaW1wbGVtZW50YXRpb25zIikKLUBpbXBsZW1lbnRhdGlvbiBfV0tXZWJzaXRlUG9s
aWNpZXMKLUlHTk9SRV9XQVJOSU5HU19FTkQKLQotLSAoaW5zdGFuY2V0eXBlKWluaXQKLXsKLSAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAg
IF93ZWJwYWdlUHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxs
b2NdIGluaXRdKTsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKil3ZWJwYWdlUHJlZmVyZW5jZXMKLXsKLSAgICByZXR1cm4gX3dlYnBhZ2VQcmVmZXJlbmNl
cy5nZXQoKTsKLX0KLQotLSAodm9pZClzZXRDb250ZW50QmxvY2tlcnNFbmFibGVkOihCT09MKWNv
bnRlbnRCbG9ja2Vyc0VuYWJsZWQKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q29u
dGVudEJsb2NrZXJzRW5hYmxlZDpjb250ZW50QmxvY2tlcnNFbmFibGVkXTsKLX0KLQotLSAoQk9P
TCljb250ZW50QmxvY2tlcnNFbmFibGVkCi17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVu
Y2VzIF9jb250ZW50QmxvY2tlcnNFbmFibGVkXTsKLX0KLQotLSAodm9pZClzZXRBbGxvd2VkQXV0
b3BsYXlRdWlya3M6KF9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKWFsbG93ZWRRdWlya3MKLXsKLSAg
ICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0QWxsb3dlZEF1dG9wbGF5UXVpcmtzOmFsbG93ZWRR
dWlya3NdOwotfQotCi0tIChfV0tXZWJzaXRlQXV0b3BsYXlRdWlyaylhbGxvd2VkQXV0b3BsYXlR
dWlya3MKLXsKLSAgICByZXR1cm4gW193ZWJwYWdlUHJlZmVyZW5jZXMgX2FsbG93ZWRBdXRvcGxh
eVF1aXJrc107Ci19Ci0KLS0gKHZvaWQpc2V0QXV0b3BsYXlQb2xpY3k6KF9XS1dlYnNpdGVBdXRv
cGxheVBvbGljeSlwb2xpY3kKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0QXV0b3Bs
YXlQb2xpY3k6cG9saWN5XTsKLX0KLQotLSAoX1dLV2Vic2l0ZUF1dG9wbGF5UG9saWN5KWF1dG9w
bGF5UG9saWN5Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9hdXRvcGxheVBv
bGljeV07Ci19Ci0KLS0gKHZvaWQpc2V0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQ
b2xpY3k6KF9XS1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSlw
b2xpY3kKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NQb2xpY3k6cG9saWN5XTsKLX0KLQotLSAoX1dLV2Vic2l0ZURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5KWRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzUG9saWN5Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9kZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeV07Ci19Ci0KLS0gKHZvaWQpc2V0UG9wVXBQ
b2xpY3k6KF9XS1dlYnNpdGVQb3BVcFBvbGljeSlwb2xpY3kKLXsKLSAgICBbX3dlYnBhZ2VQcmVm
ZXJlbmNlcyBfc2V0UG9wVXBQb2xpY3k6cG9saWN5XTsKLX0KLQotLSAoX1dLV2Vic2l0ZVBvcFVw
UG9saWN5KXBvcFVwUG9saWN5Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9w
b3BVcFBvbGljeV07Ci19Ci0KLS0gKE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAq
PiAqKWN1c3RvbUhlYWRlckZpZWxkcwotewotICAgIGF1dG8mIGZpZWxkcyA9IHN0YXRpY19jYXN0
PEFQSTo6V2Vic2l0ZVBvbGljaWVzJj4oW193ZWJwYWdlUHJlZmVyZW5jZXMgX2FwaU9iamVjdF0p
LmxlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcygpOwotICAgIGF1dG8gZGljdGlvbmFyeSA9IFtOU011
dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ2FwYWNpdHk6ZmllbGRzLnNpemUoKV07Ci0g
ICAgZm9yIChjb25zdCBhdXRvJiBmaWVsZCA6IGZpZWxkcykKLSAgICAgICAgW2RpY3Rpb25hcnkg
c2V0T2JqZWN0OmZpZWxkLnZhbHVlKCkgZm9yS2V5OmZpZWxkLm5hbWUoKV07Ci0gICAgcmV0dXJu
IGRpY3Rpb25hcnk7Ci19Ci0KLS0gKHZvaWQpc2V0Q3VzdG9tSGVhZGVyRmllbGRzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKilmaWVsZHMKLXsKLSAgICBhdXRvIHdlYnNp
dGVQb2xpY2llcyA9IHN0YXRpY19jYXN0PEFQSTo6V2Vic2l0ZVBvbGljaWVzJj4oW193ZWJwYWdl
UHJlZmVyZW5jZXMgX2FwaU9iamVjdF0pOwotICAgIFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVhZGVy
RmllbGQ+IHBhcnNlZEZpZWxkczsKLSAgICBwYXJzZWRGaWVsZHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShmaWVsZHMuY291bnQpOwotICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgaW4gZmllbGRzKSB7
Ci0gICAgICAgIGF1dG8gZmllbGQgPSBXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ6OmNyZWF0ZShu
YW1lLCBbZmllbGRzIG9iamVjdEZvcktleTpuYW1lXSk7Ci0gICAgICAgIGlmIChmaWVsZCAmJiBz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZpZWxkLT5uYW1lKCksICJ4LSIpKQot
ICAgICAgICAgICAgcGFyc2VkRmllbGRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCpmaWVsZCkp
OwotICAgIH0KLSAgICB3ZWJzaXRlUG9saWNpZXMuc2V0TGVnYWN5Q3VzdG9tSGVhZGVyRmllbGRz
KFdURk1vdmUocGFyc2VkRmllbGRzKSk7Ci19Ci0KLS0gKFdLV2Vic2l0ZURhdGFTdG9yZSAqKXdl
YnNpdGVEYXRhU3RvcmUKLXsKLSAgICByZXR1cm4gW193ZWJwYWdlUHJlZmVyZW5jZXMgX3dlYnNp
dGVEYXRhU3RvcmVdOwotfQotCi0tICh2b2lkKXNldFdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0
ZURhdGFTdG9yZSAqKXdlYnNpdGVEYXRhU3RvcmUKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfc2V0V2Vic2l0ZURhdGFTdG9yZTp3ZWJzaXRlRGF0YVN0b3JlXTsKLX0KLQotLSAodm9pZClz
ZXRDdXN0b21Vc2VyQWdlbnQ6KE5TU3RyaW5nICopY3VzdG9tVXNlckFnZW50Ci17Ci0gICAgW193
ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEN1c3RvbVVzZXJBZ2VudDpjdXN0b21Vc2VyQWdlbnRdOwot
fQotCi0tIChOU1N0cmluZyAqKWN1c3RvbVVzZXJBZ2VudAotewotICAgIHJldHVybiBbX3dlYnBh
Z2VQcmVmZXJlbmNlcyBfY3VzdG9tVXNlckFnZW50XTsKLX0KLQotLSAodm9pZClzZXRDdXN0b21V
c2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrczooTlNTdHJpbmcgKiljdXN0b21Vc2VyQWdlbnQK
LXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q3VzdG9tVXNlckFnZW50QXNTaXRlU3Bl
Y2lmaWNRdWlya3M6Y3VzdG9tVXNlckFnZW50XTsKLX0KLQotLSAoTlNTdHJpbmcgKiljdXN0b21V
c2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrcwotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVm
ZXJlbmNlcyBfY3VzdG9tVXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3NdOwotfQotCi0tICh2
b2lkKXNldEN1c3RvbU5hdmlnYXRvclBsYXRmb3JtOihOU1N0cmluZyAqKWN1c3RvbU5hdmlnYXRv
clBsYXRmb3JtCi17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEN1c3RvbU5hdmlnYXRv
clBsYXRmb3JtOmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtXTsKLX0KLQotLSAoTlNTdHJpbmcgKilj
dXN0b21OYXZpZ2F0b3JQbGF0Zm9ybQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm1dOwotfQotCi0tIChOU1N0cmluZyAqKWRlc2NyaXB0
aW9uCi17Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAICVAPiIs
IHNlbGYuY2xhc3MsIFtfd2VicGFnZVByZWZlcmVuY2VzIGRlc2NyaXB0aW9uXV07Ci19Ci0KLS0g
KEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVu
Y2VzIF9hcGlPYmplY3RdOwotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2U1NDYxMzM4ZTkwZjczNDZmZTgwYzI1YTli
YjJlNTgwMjg1OTk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXNJ
bnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bXBvcnQgIl9XS1dlYnNpdGVQb2xpY2llcy5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgot
Ci1AY2xhc3MgV0tXZWJwYWdlUHJlZmVyZW5jZXM7Ci0KLUBpbnRlcmZhY2UgX1dLV2Vic2l0ZVBv
bGljaWVzICgpCi17Ci1AcGFja2FnZQotICAgIFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNl
cz4gX3dlYnBhZ2VQcmVmZXJlbmNlczsKLX0KLQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqd2VicGFnZVByZWZlcmVuY2VzOwotCi1AZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCmluZGV4
IGYzZDdlOTA0NzRhOGRlOWE5NTYwZmYyOWNiNmQxNGM3MTgzZmFiMjIuLjI0ZGVkZDMwMDU0ZmYw
NjA4MjFkZWQwODU3ZDlkNWY4Nzc0ZDEzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0yMDQsOCArMjA0LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lz
aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2Vz
VXNlckluZm9EZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIDog
MTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVz
ZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIDogMTsKICAgICAgICAgYm9vbCB3
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5kbGVyIDog
MTsKIAogICAgICAgICBib29sIHdlYlZpZXdEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbiA6
IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KaW5kZXggNWRmMzYyODEyMzViYjQ1YTc0NTVlZDQ3OTNmYjk5MjJlZTQwOWMwMi4uZTU0Zjll
OGQ3MGE5MmIzNzQyOTM1YzgxMjBjMGU1OWZkYjMxMmU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtNzAsNyArNzAsNiBAQAog
I2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLU2FtZURvY3VtZW50TmF2aWdh
dGlvblR5cGVJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwu
aCIKICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25NYWMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFs
Lmg+CkBAIC0xNTIsOCArMTUxLDYgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRp
b25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogCiAgICAgbV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFu
ZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOildOwotICAg
IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNp
b25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5m
bzpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzVXNlcklu
Zm9EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVz
ZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjopXTsKIApAQCAtNDcz
LDkgKzQ3MCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAKICAgICBpZiAoIW1fbmF2aWdh
dGlvblN0YXRlIHx8ICghbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxl
cgogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNl
c1VzZXJJbmZvRGVjaXNpb25IYW5kbGVyCi0gICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS0+
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyCi0gICAgICAgICYmICFtX25h
dmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzCi0g
ICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhh
bmRsZXJXZWJzaXRlUG9saWNpZXMpKSB7CisgICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS0+
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyKSkgewogICAgICAgICBhdXRv
IGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYlBhZ2UgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIGxp
c3RlbmVyID0gV1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24sIGRlZmF1bHRXZWJz
aXRlUG9saWNpZXNdIChib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAg
aWYgKGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAgICAgIGxpc3RlbmVyLT5p
Z25vcmUoKTsKQEAgLTUxNiwzMyArNTExLDIwIEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAK
ICAgICBib29sIGRlbGVnYXRlSGFzV2VicGFnZVByZWZlcmVuY2VzID0gbV9uYXZpZ2F0aW9uU3Rh
dGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcgogICAgICAgICB8fCBt
X25hdmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzVXNlckluZm9EZWNpc2lv
bkhhbmRsZXI7Ci0gICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnNpdGVQb2xpY2llcyA9IG1fbmF2aWdh
dGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgfHwgbV9u
YXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBv
bGljaWVzOwogCiAgICAgYXV0byBzZWxlY3RvckZvckNvbXBsZXRpb25IYW5kbGVyQ2hlY2tlciA9
IChbJl0gKCkgLT4gU0VMIHsKICAgICAgICAgaWYgKGRlbGVnYXRlSGFzV2VicGFnZVByZWZlcmVu
Y2VzKQogICAgICAgICAgICAgcmV0dXJuIG1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRo
UHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgPyBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjopIDogQHNl
bGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVyZW5j
ZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOik7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZUhhc1dl
YnNpdGVQb2xpY2llcykKLSAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KTsKICAgICAgICAg
cmV0dXJuIEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
ZGVjaXNpb25IYW5kbGVyOik7CiAgICAgfSkoKTsKIAogICAgIGF1dG8gY2hlY2tlciA9IENvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCks
IHNlbGVjdG9yRm9yQ29tcGxldGlvbkhhbmRsZXJDaGVja2VyKTsKLSAgICBhdXRvIGRlY2lzaW9u
SGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5lciA9IFdURk1v
dmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2Vy
KSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBzdWJmcmFtZU5hdmlnYXRp
b24sIGRlZmF1bHRXZWJzaXRlUG9saWNpZXNdIChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0
aW9uUG9saWN5LCBpZCBwb2xpY2llc09yUHJlZmVyZW5jZXMpIG11dGFibGUgeworICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcyA9IFtsb2NhbExpc3RlbmVy
ID0gV1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24sIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpLCB3ZWJQYWdlUHJveHkgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIHN1YmZyYW1l
TmF2aWdhdGlvbiwgZGVmYXVsdFdlYnNpdGVQb2xpY2llc10gKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSBhY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICpwcmVmZXJlbmNlcykgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxs
ZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBs
ZXRpb25IYW5kbGVyKCk7CiAKLSAgICAgICAgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiBh
cGlXZWJzaXRlUG9saWNpZXM7Ci0gICAgICAgIGlmIChbcG9saWNpZXNPclByZWZlcmVuY2VzIGlz
S2luZE9mQ2xhc3M6V0tXZWJwYWdlUHJlZmVyZW5jZXMuY2xhc3NdKQotICAgICAgICAgICAgYXBp
V2Vic2l0ZVBvbGljaWVzID0gKChXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXBvbGljaWVzT3JQcmVm
ZXJlbmNlcyktPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCk7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgotICAgICAgICBlbHNlIGlmIChbcG9saWNpZXNPclByZWZlcmVuY2VzIGlz
S2luZE9mQ2xhc3M6X1dLV2Vic2l0ZVBvbGljaWVzLmNsYXNzXSkKLSAgICAgICAgICAgIGFwaVdl
YnNpdGVQb2xpY2llcyA9IFtwb2xpY2llc09yUHJlZmVyZW5jZXMgd2VicGFnZVByZWZlcmVuY2Vz
XS0+X3dlYnNpdGVQb2xpY2llcy5nZXQoKTsKLSAgICAgICAgZWxzZSBpZiAocG9saWNpZXNPclBy
ZWZlcmVuY2VzKQotICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIkV4cGVjdGVkIHBvbGljaWVzIG9mIGNsYXNzICVALCBidXQg
Z290ICVAIiwgTlNTdHJpbmdGcm9tQ2xhc3MoX1dLV2Vic2l0ZVBvbGljaWVzLmNsYXNzKSwgW3Bv
bGljaWVzT3JQcmVmZXJlbmNlcyBjbGFzc11dOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFwaVdlYnNpdGVQb2xpY2llcyA9IGRl
ZmF1bHRXZWJzaXRlUG9saWNpZXM7CisgICAgICAgIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2ll
cz4gYXBpV2Vic2l0ZVBvbGljaWVzID0gcHJlZmVyZW5jZXMgPyAgcHJlZmVyZW5jZXMtPl93ZWJz
aXRlUG9saWNpZXMuZ2V0KCkgOiBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzOwogCiAgICAgICAgIGlm
IChhcGlXZWJzaXRlUG9saWNpZXMpIHsKICAgICAgICAgICAgIGlmIChhcGlXZWJzaXRlUG9saWNp
ZXMtPndlYnNpdGVEYXRhU3RvcmUoKSAmJiBzdWJmcmFtZU5hdmlnYXRpb24pCkBAIC01OTcsMTcg
KzU3OSw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAg
W25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24p
IHByZWZlcmVuY2VzOndyYXBwZXIoZGVmYXVsdFdlYnNpdGVQb2xpY2llcykgZGVjaXNpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09y
UG9saWNpZXMpKS5nZXQoKV07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFsoaWQgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3
cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIHByZWZlcmVuY2VzOndyYXBwZXIoZGVmYXVsdFdlYnNp
dGVQb2xpY2llcykgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZDxOU1NlY3VyZUNv
ZGluZz4+KHVzZXJJbmZvLT53cmFwcGVyKCkpIDogbmlsIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxv
Y2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKSku
Z2V0KCldOwotICAgIH0gZWxzZSBpZiAoZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMpIHsKLSAg
ICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lv
bkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKSk7Ci0gICAgICAgIGlmIChtX25hdmln
YXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNp
ZXMpIHsKLSAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0g
ICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25E
ZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS0+bV93ZWJWaWV3IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSB1c2VySW5mbzp1
c2VySW5mbyA/IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVzZXJJbmZvLT53cmFw
cGVyKCkpIDogbmlsIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAg
ICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUtPm1fd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgZGVjaXNpb25IYW5k
bGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Ci0gICAgICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKLSAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNp
ZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMpXSAo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKGFjdGlvblBvbGlj
eSwgbmlsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggYTNjN2EyODM4ZWJkMDQ3MzRhZDNlN2E2MWRkNzZhZDhh
MWRhNTlhNC4uYTdkMWI3MWVkMWJiZTNlNThjOGRhZTgxYTg0MTJiODY5OThjYmE0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29j
b2EubW0KQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlv
Q29tcG9uZW50UmVnaXN0cmF0aW9ucygpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKSwgcmVnaXN0cmF0aW9ucyA9IHJldGFpblB0cihyZWdpc3RyYXRpb25zKV0gKCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbkRhdGEgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShyZWdpc3RyYXRpb25zLmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8gcmVnaXN0cmF0
aW9uRGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlZ2lzdHJhdGlvbnMuZ2V0
KCkpOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6Q29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyh7IHJlZ2lzdHJhdGlvbkRhdGEg
fSksIDApOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggODdiYWQyYjRjNDBhODM2YzEzNGZmYTc0YjA2ODA3
ZWNjYzI0NzBkOC4uOGNhYjE0YzIxMjdmNzNkM2U2MDI3OTFlNGNjMDM3MzcxMzg5ODM4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQwOTEs
NyArNDA5MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdnaW5nRXhpdGVkKGlkIDxOU0RyYWdn
aW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQogewogICAgIFdlYkNvcmU6OkludFBvaW50IGNsaWVudChb
bV92aWV3IGNvbnZlcnRQb2ludDpkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiBmcm9tVmll
dzpuaWxdKTsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWwoV2ViQ29yZTo6Z2xvYmFsUG9p
bnQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24sIFttX3ZpZXcgd2luZG93XSkpOwotICAg
IFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWws
IGNvcmVEcmFnT3BlcmF0aW9uTWFzayhkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRp
b25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcobV92aWV3LmdldEF1dG9yZWxlYXNlZCgp
LCBkcmFnZ2luZ0luZm8pLCBhbnlEcmFnRGVzdGluYXRpb25BY3Rpb24oKSwgbV9wYWdlLT53ZWJQ
YWdlSUQoKSk7CisgICAgV2ViQ29yZTo6RHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBj
bGllbnQsIGdsb2JhbCwgY29yZURyYWdPcGVyYXRpb25NYXNrKGRyYWdnaW5nSW5mby5kcmFnZ2lu
Z1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcuZ2V0
QXV0b3JlbGVhc2VkKCksIGRyYWdnaW5nSW5mbyksIFdlYkNvcmU6OmFueURyYWdEZXN0aW5hdGlv
bkFjdGlvbigpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKICAgICBtX3BhZ2UtPmRyYWdFeGl0ZWQo
ZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7CiAgICAgbV9w
YWdlLT5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24oKTsKICAgICBkcmFnZ2luZ0luZm8ubnVt
YmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA9IG1faW5pdGlhbE51bWJlck9mVmFsaWRJdGVtc0ZvckRy
b3A7CkBAIC00MTA3LDcgKzQxMDcsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtRHJhZ09w
ZXJhdGlvbihpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKIHsKICAgICBXZWJDb3Jl
OjpJbnRQb2ludCBjbGllbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6ZHJhZ2dpbmdJbmZvLmRyYWdn
aW5nTG9jYXRpb24gZnJvbVZpZXc6bmlsXSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFs
KFdlYkNvcmU6Omdsb2JhbFBvaW50KGRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9uLCBbbV92
aWV3IHdpbmRvd10pKTsKLSAgICBXZWJDb3JlOjpEcmFnRGF0YSAqZHJhZ0RhdGEgPSBuZXcgV2Vi
Q29yZTo6RHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgY29yZURyYWdPcGVy
YXRpb25NYXNrKGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBs
aWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCksIGRyYWdnaW5nSW5m
byksIGFueURyYWdEZXN0aW5hdGlvbkFjdGlvbigpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAg
ICBXZWJDb3JlOjpEcmFnRGF0YSAqZHJhZ0RhdGEgPSBuZXcgV2ViQ29yZTo6RHJhZ0RhdGEoZHJh
Z2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgY29yZURyYWdPcGVyYXRpb25NYXNrKGRyYWdnaW5n
SW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJh
ZyhtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCksIGRyYWdnaW5nSW5mbyksIFdlYkNvcmU6OmFueURy
YWdEZXN0aW5hdGlvbkFjdGlvbigpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKIAogICAgIE5TQXJy
YXkgKnR5cGVzID0gZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC50eXBlczsKICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKQEAgLTQzNTUs
OCArNDM1NSw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKFdl
YkNvcmU6OkltYWdlKiBpbWFnZSwgTlNTdHJpbmcgKmZpbGVuCiAKICAgICBSZXRhaW5QdHI8TlNE
YXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5JZGVudGlmaWVyLmxlbmd0aCkg
ewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKV07Ci0gICAgICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CisgICAg
ICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkpXTsKKyAgICAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9t
RGF0YTsKICAgICAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAg
ICAgICAgIGN1c3RvbURhdGFCdWZmZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigp
LT5jcmVhdGVOU0RhdGEoKTsKICAgICB9CkBAIC00Mzc0LDcgKzQzNzQsNyBAQCBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBpZiAoY3VzdG9tRGF0YUJ1ZmZl
cikKLSAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZv
clR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3Bh
c3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChXZWJDb3Jl
OjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKIAogICAgIG1fcHJvbWlzZWRJ
bWFnZSA9IGltYWdlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggY2YzNWNiZmRhM2FlYmJkOTJjYjg3N2MyZGFmN2UxYmJmZWNmNTc5
NS4uODg4NzUwMTFjNTc0NTk1OWFmNzYxMTg3MDIxMjVmODQyMjZlODBmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjY0LDcgKzEy
NjQsNiBAQAogCQk1Q0FGREU0NTIxMzA4NDYzMDBCMUY3RTEgLyogX1dLSW5zcGVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0FGREU0MjIxMzA4
NDM1MDBCMUY3RTEgLyogX1dLSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUNBRkRFNDcyMTMwODQ2QTAwQjFGN0UxIC8qIF9XS0lu
c3BlY3RvckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0FGREU0NDIxMzA4NDM2MDBCMUY3RTEgLyogX1dLSW5zcGVjdG9ySW50ZXJuYWwu
aCAqLzsgfTsKIAkJNUNCMjM3OEMxREYwREU2RTAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2ll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMjM3
ODkxREYwREQ0MzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTVDQjIzNzhFMURGMEUwRDMwMDEx
N0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMjM3OEQxREYwRTBDMjAwMTE3QUEzIC8qIF9X
S1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmggKi87IH07CiAJCTVDQjZBRTQ0MjYwOTc5OUMwMEI2
RUQ1QSAvKiBSZWFzb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDQjZBRTQzMjYwOTc5OUMwMEI2RUQ1QSAvKiBSZWFzb25TUEkuaCAqLzsgfTsK
IAkJNUNCN0FGRTAyM0M1MkNFNTAwRTQ5Q0YzIC8qIF9XS1Jlc291cmNlTG9hZERlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I3QUZERjIz
QzUyQ0JDMDBFNDlDRjMgLyogX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0I3QUZFNzIzQzY4MjA3MDBF
NDlDRjMgLyogUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9h
ZEluZm8uaCAqLzsgfTsKQEAgLTQ0NTksOCArNDQ1OCw2IEBACiAJCTVDQUZERTQzMjEzMDg0MzYw
MEIxRjdFMSAvKiBfV0tJbnNwZWN0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBfV0tJbnNwZWN0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQUZERTQ0MjEzMDg0MzYwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IyMzc4OTFERjBERDQzMDAxMTdBQTMgLyogX1dL
V2Vic2l0ZVBvbGljaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dl
YnNpdGVQb2xpY2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0IyMzc4QTFE
RjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2Vic2l0ZVBvbGljaWVzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1Q0IyMzc4RDFERjBFMEMyMDAxMTdBQTMgLyogX1dLV2Vic2l0
ZVBvbGljaWVzSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
V2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUNCNkFFNDMyNjA5Nzk5QzAwQjZFRDVBIC8qIFJlYXNvblNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZWFzb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUNCN0FGREEyM0M0M0U2NDAwRTQ5Q0YzIC8qIEFQSVJlc291cmNlTG9hZENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElSZXNvdXJjZUxvYWRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCN0FGREQyM0M1MjczRDAwRTQ5Q0YzIC8q
IFJlc291cmNlTG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlc291cmNlTG9hZERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
MDA5LDggKzgwMDYsNiBAQAogCQkJCTVDNDZDMEFFMjFCNzFBRTIwMEJDNTk5MSAvKiBfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVybmFsLmggKi8sCiAJCQkJNDFDNTM3OEYyMUYx
MzYyRDAwOEIxRkFEIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oICovLAogCQkJCTVD
QjIzNzg5MURGMERENDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCAqLywKLQkJCQk1
Q0IyMzc4QTFERjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLm1tICovLAotCQkJ
CTVDQjIzNzhEMURGMEUwQzIwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5o
ICovLAogCQkJCUY0MTA1NjYxMjEzMDY5OUEwMDkyMjgxRCAvKiBBUElBdHRhY2htZW50Q29jb2Eu
bW0gKi8sCiAJCQkJN0NFRkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSUNvbnRlbnRSdWxlTGlz
dFN0b3JlQ29jb2EubW0gKi8sCiAJCQkJNUNBNDZFN0EyMUYxQTIzOTAwQ0U4NkI0IC8qIEFQSUhU
VFBDb29raWVTdG9yZUNvY29hLm1tICovLApAQCAtMTE2NDYsNyArMTE2NDEsNiBAQAogCQkJCTQx
QzUzNzkwMjFGMTVCNTUwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEE5M0I3MUFFQjA4RUEwMDE1MEU5QyAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQjIzNzhDMURGMERFNkUw
MDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTVDQjIz
NzhFMURGMEUwRDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTExNURDNzIxOTFEODJEQTAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmlu
dEZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5REQzQzAxRDA3RDE2ODAwQUM4MjNC
IC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMTgyRDVCNTFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRl
cnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425446</attachid>
            <date>2021-04-07 15:12:47 -0700</date>
            <delta_ts>2021-05-15 18:16:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224293-20210407151247.patch</filename>
            <type>text/plain</type>
            <size>42725</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwODc4MTk1YTllNWY3ZTI1
NGU4YTBiYWYwNmYyZDJhZDljMWVmNjguLmJkZGY4ZTJiZGMxYjNmMDMxMDM1ODUzZjcyODYzZGZl
MzA5NDdiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDQtMDcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgX1dL
V2Vic2l0ZVBvbGljaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJdHMgbGFzdCB1c2Ugd2FzIHJlbW92ZWQgaW4gcmRhcjovL3Byb2JsZW0vNTgwNjQ4
NDcgYW5kIHdlJ3ZlIHJlbGVhc2VkIGEgU2FmYXJpIHZlcnNpb24gc2luY2UgdGhlbi4KKyAgICAg
ICAgSXQgd2FzIHJlcGxhY2VkIGJ5IFdLV2VicGFnZVByZWZlcmVuY2VzCisKKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOl0p
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMu
bW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNp
ZXMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5t
bTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xp
Y2llc0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW06CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVn
YXRlKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6ZHJhZ2dpbmdFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9y
bURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlz
ZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIxLTA0LTA3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUu
b3JnPgogCiAgICAgICAgIFtXUEVdW0dUS10gTnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4g
Y2hpbGQgcHJvY2VzcyBleGl0cyBpbW1lZGlhdGVseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGI5ZjBmNGIxZmUwMzU1ZWFmMTE5NTdmNjdlOWQxZjI0MjY2OTI5MzkuLjc4MDU5MzNjZTA2ZTNi
NzBlM2I5MWI3YjYwNGYzOGM3Nzc3NmM5MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMw
MCw3ICszMDAsNiBAQCBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW0KLVVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZVBvbGljaWVzLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUF0dGFjaG1lbnRD
b2NvYS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29h
Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZDAxZWY2MTZkMGZkYzQwZmJiMDQ4YjM2NjZl
Njk3ZDg4YjM0NTk1Ny4uOWUyOTE1MDNkYjNjZGZiNDBjM2M0NmZmMDFhYzZlNDc1YzBiNjYzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtMjksNyArMjksNiBAQAogI2ltcG9y
dCA8V2ViS2l0L19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmg+CiAKIEBjbGFzcyBfV0tD
b250ZW50UnVsZUxpc3RBY3Rpb247Ci1AY2xhc3MgX1dLV2Vic2l0ZVBvbGljaWVzOwogCiAjaWYg
IVRBUkdFVF9PU19JUEhPTkUKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1dlYkdMTG9h
ZFBvbGljeSkgewpAQCAtOTcsOSArOTYsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQogLSAo
dm9pZClfd2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmll
dyB3aXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJ
dGVtICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNu
YXBzaG90QmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsK
IC0gKHZvaWQpX3dlYlZpZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkp
OwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJz
aXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVy
ZW5jZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEyLjMsIDEwLjE0LjQp
LCBpb3MoMTAuMywgMTIuMikpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKilu
YXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJz
aXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVy
ZW5jZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEzLjQsIDEwLjE1KSwg
aW9zKDExLjMsIDEzLjApKTsKLS0odm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZp
Z2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVu
Y2VzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNl
cyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rp
b24gcHJlZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgdXNlcklu
Zm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkIChe
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lz
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gdXNlckluZm86KGlkIDxOU1NlY3Vy
ZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDEx
LjMpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmFpbE5hdmln
YXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gd2l0aEVycm9yOihOU0Vycm9yICopZXJy
b3IgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOTIzMmZiYTBmZWY3ZmQwZTU5NTk1NjI3
MzcyN2UwNmUwZTlmYjgzZi4uMjU4MmFjMTExY2Q4YTk0ZjExYWJmYThkZGM5NGIyMmI1ZWZjY2Ix
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0xMTksNyArMTE5LDYgQEAKICNpbXBvcnQgIl9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmgi
CiAjaW1wb3J0ICJfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCIKICNpbXBvcnQgIl9XS1Zpc2l0
ZWRMaW5rU3RvcmVJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJu
YWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3JDb2NvYS5oPgpAQCAt
MjU2NCwxMCArMjU2Myw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gd2tUZXh0TWFuaXB1
bGF0aW9uRXJyb3JzKE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0CiAgICAgW3NlbGYgX2V2
YWx1YXRlSmF2YVNjcmlwdDpqYXZhU2NyaXB0U3RyaW5nIGFzQXN5bmNGdW5jdGlvbjpOTyB3aXRo
U291cmNlVVJMOnVybCB3aXRoQXJndW1lbnRzOm5pbCBmb3JjZVVzZXJHZXN0dXJlOllFUyBpbkZy
YW1lOmZyYW1lIGluV29ybGQ6Y29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRp
b25IYW5kbGVyXTsKIH0KIAotLSAodm9pZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOihfV0tXZWJz
aXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMKLXsKLX0KLQogLSAodm9pZClfdXBkYXRlV2Vi
cGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdlYnBhZ2VQcmVmZXJlbmNl
cwogewogICAgIGlmICh3ZWJwYWdlUHJlZmVyZW5jZXMuX3dlYnNpdGVEYXRhU3RvcmUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAppbmRleCAxYmFiNmY0MTE0OWRjMzIzNzU4ZjhhYjRiYTZjY2ZhOTk4YWE5MmI4Li4zMGFiMWUw
MDhhODU3Yjc4OTA2ZjA3ZTFjYTc5ZTc1YTgzOTgwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTEyNSw3ICsx
MjUsNiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsKIEBj
bGFzcyBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbjsKIEBjbGFzcyBfV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbTsKIEBjbGFzcyBfV0tUaHVtYm5haWxWaWV3OwotQGNsYXNzIF9XS1dlYnNp
dGVQb2xpY2llczsKIEBjbGFzcyBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXI7CiAKIEBwcm90b2Nv
bCBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGU7CkBAIC0yMTMsNyArMjEyLDYgQEAgZm9yIHRoaXMg
cHJvcGVydHkuCiAtIChCT09MKV90cnlDbG9zZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
LjQpLCBpb3MoMTMuNCkpOwogLSAoQk9PTClfaXNDbG9zZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIAotLSAodm9pZClfdXBkYXRlV2Vic2l0ZVBvbGljaWVz
OihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiLV91cGRhdGVXZWJwYWdlUHJlZmVyZW5jZXM6IiwgbWFjb3MoMTAu
MTMsIDEwLjE1LjQpLCBpb3MoMTEuMywgMTMuNCkpOwogLSAodm9pZClfdXBkYXRlV2VicGFnZVBy
ZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdlYnBhZ2VQcmVmZXJlbmNlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogLSAodm9pZClfbm90aWZ5
VXNlclNjcmlwdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfZGVmZXJyYWJsZVVzZXJTY3JpcHRz
TmVlZE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFn
ZVByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
cGFnZVByZWZlcmVuY2VzLm1tCmluZGV4IDkwZDBmZTIxZTRiODQ3MmMzYmQyMzVjOWNlMTg0MTlh
ZTk0NWJiZWQuLjllYzI1NTZmZTgyYjFmZTJiZTViOGZiOWFkZDhkNzc5YTQ1MzVjOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXMubW0KQEAgLTMyLDcgKzMyLDYgQEAKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFT
dG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDb250ZW50TW9kZS5oIgogI2ltcG9ydCAiX1dL
Q3VzdG9tSGVhZGVyRmllbGRzSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVQb2xpY2ll
c0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdl
UHJlZmVyZW5jZXNJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaAppbmRleCA0MGM2MjEwMDQxN2QzMzJmNGI3
MmIwYjU5Nzg5ZTE0NjNmMGM2YzAwLi5hMzUwYmNiYjEyZTA0ZWFhYmE2NmI3YWYxNmMxZGMwYWI2
YTI5ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgKQEAgLTI2LDcgKzI2LDYg
QEAKICNpbXBvcnQgIkFQSVdlYnNpdGVQb2xpY2llcy5oIgogI2ltcG9ydCAiV0tPYmplY3QuaCIK
ICNpbXBvcnQgIldLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oIgotI2ltcG9ydCAiX1dLV2Vi
c2l0ZVBvbGljaWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLmgKaW5kZXgg
ODZiYWVmMmI1NTkyMjMxMmU1NGI2OWVjYjYyOGQ5ZGY1MTJlMjE0Ny4uZGE4NmNmNWZhNWMxZmUz
OTMzNGVhNWNlZmQ2YTJkYWU0ZTkwZGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMuaApAQCAtMjMsMjMgKzIzLDcg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvLyBGSVhNRTog
UmVtb3ZlIHRoaXMgZmlsZSBvbmNlIHJkYXI6Ly83NjM1NTExMSBpcyByZXNvbHZlZC4KKwogI2lt
cG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVBy
ZWZlcmVuY2VzUHJpdmF0ZS5oPgotCi1AY2xhc3MgV0tXZWJzaXRlRGF0YVN0b3JlOwotCi1XS19D
TEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2VicGFnZVByZWZlcmVuY2VzIiwg
bWFjb3MoMTAuMTIuMywgMTAuMTUuNCksIGlvcygxMC4zLCAxMy40KSkKLUBpbnRlcmZhY2UgX1dL
V2Vic2l0ZVBvbGljaWVzIDogTlNPYmplY3QKLQotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
Y29udGVudEJsb2NrZXJzRW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRl
QXV0b3BsYXlRdWlyayBhbGxvd2VkQXV0b3BsYXlRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMyksIGlvcygxMS4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dLV2Vic2l0ZUF1
dG9wbGF5UG9saWN5IGF1dG9wbGF5UG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMp
LCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY3VzdG9tSGVhZGVyRmllbGRzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgX1dL
V2Vic2l0ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTQpLCBpb3MoMTIuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRl
RGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMu
NCksIGlvcygxMS4zKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1
c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnRB
c1NpdGVTcGVjaWZpY1F1aXJrcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3Mo
MTMuNCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21OYXZp
Z2F0b3JQbGF0Zm9ybSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OwotQHByb3BlcnR5IChub25hdG9taWMpIF9XS1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc1BvbGljeSBkZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLQotQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2ll
cy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNp
ZXMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0OTE5NzdhNjg5YTZhMTczODg2
NDA4YjQ3YmUxNmMzMTJmNzJlOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQ
b2xpY2llcy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpbXBvcnQgIldLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJu
YWwuaCIKLSNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCi0jaW1wb3J0ICJf
V0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgotCi1JR05PUkVfV0FSTklOR1NfQkVHSU4oImRl
cHJlY2F0ZWQtaW1wbGVtZW50YXRpb25zIikKLUBpbXBsZW1lbnRhdGlvbiBfV0tXZWJzaXRlUG9s
aWNpZXMKLUlHTk9SRV9XQVJOSU5HU19FTkQKLQotLSAoaW5zdGFuY2V0eXBlKWluaXQKLXsKLSAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAg
IF93ZWJwYWdlUHJlZmVyZW5jZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxs
b2NdIGluaXRdKTsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoV0tXZWJwYWdlUHJlZmVyZW5j
ZXMgKil3ZWJwYWdlUHJlZmVyZW5jZXMKLXsKLSAgICByZXR1cm4gX3dlYnBhZ2VQcmVmZXJlbmNl
cy5nZXQoKTsKLX0KLQotLSAodm9pZClzZXRDb250ZW50QmxvY2tlcnNFbmFibGVkOihCT09MKWNv
bnRlbnRCbG9ja2Vyc0VuYWJsZWQKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q29u
dGVudEJsb2NrZXJzRW5hYmxlZDpjb250ZW50QmxvY2tlcnNFbmFibGVkXTsKLX0KLQotLSAoQk9P
TCljb250ZW50QmxvY2tlcnNFbmFibGVkCi17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVu
Y2VzIF9jb250ZW50QmxvY2tlcnNFbmFibGVkXTsKLX0KLQotLSAodm9pZClzZXRBbGxvd2VkQXV0
b3BsYXlRdWlya3M6KF9XS1dlYnNpdGVBdXRvcGxheVF1aXJrKWFsbG93ZWRRdWlya3MKLXsKLSAg
ICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0QWxsb3dlZEF1dG9wbGF5UXVpcmtzOmFsbG93ZWRR
dWlya3NdOwotfQotCi0tIChfV0tXZWJzaXRlQXV0b3BsYXlRdWlyaylhbGxvd2VkQXV0b3BsYXlR
dWlya3MKLXsKLSAgICByZXR1cm4gW193ZWJwYWdlUHJlZmVyZW5jZXMgX2FsbG93ZWRBdXRvcGxh
eVF1aXJrc107Ci19Ci0KLS0gKHZvaWQpc2V0QXV0b3BsYXlQb2xpY3k6KF9XS1dlYnNpdGVBdXRv
cGxheVBvbGljeSlwb2xpY3kKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0QXV0b3Bs
YXlQb2xpY3k6cG9saWN5XTsKLX0KLQotLSAoX1dLV2Vic2l0ZUF1dG9wbGF5UG9saWN5KWF1dG9w
bGF5UG9saWN5Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9hdXRvcGxheVBv
bGljeV07Ci19Ci0KLS0gKHZvaWQpc2V0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQ
b2xpY3k6KF9XS1dlYnNpdGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSlw
b2xpY3kKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0RGV2aWNlT3JpZW50YXRpb25B
bmRNb3Rpb25BY2Nlc3NQb2xpY3k6cG9saWN5XTsKLX0KLQotLSAoX1dLV2Vic2l0ZURldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5KWRldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzUG9saWN5Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9kZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeV07Ci19Ci0KLS0gKHZvaWQpc2V0UG9wVXBQ
b2xpY3k6KF9XS1dlYnNpdGVQb3BVcFBvbGljeSlwb2xpY3kKLXsKLSAgICBbX3dlYnBhZ2VQcmVm
ZXJlbmNlcyBfc2V0UG9wVXBQb2xpY3k6cG9saWN5XTsKLX0KLQotLSAoX1dLV2Vic2l0ZVBvcFVw
UG9saWN5KXBvcFVwUG9saWN5Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9w
b3BVcFBvbGljeV07Ci19Ci0KLS0gKE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAq
PiAqKWN1c3RvbUhlYWRlckZpZWxkcwotewotICAgIGF1dG8mIGZpZWxkcyA9IHN0YXRpY19jYXN0
PEFQSTo6V2Vic2l0ZVBvbGljaWVzJj4oW193ZWJwYWdlUHJlZmVyZW5jZXMgX2FwaU9iamVjdF0p
LmxlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcygpOwotICAgIGF1dG8gZGljdGlvbmFyeSA9IFtOU011
dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ2FwYWNpdHk6ZmllbGRzLnNpemUoKV07Ci0g
ICAgZm9yIChjb25zdCBhdXRvJiBmaWVsZCA6IGZpZWxkcykKLSAgICAgICAgW2RpY3Rpb25hcnkg
c2V0T2JqZWN0OmZpZWxkLnZhbHVlKCkgZm9yS2V5OmZpZWxkLm5hbWUoKV07Ci0gICAgcmV0dXJu
IGRpY3Rpb25hcnk7Ci19Ci0KLS0gKHZvaWQpc2V0Q3VzdG9tSGVhZGVyRmllbGRzOihOU0RpY3Rp
b25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKilmaWVsZHMKLXsKLSAgICBhdXRvIHdlYnNp
dGVQb2xpY2llcyA9IHN0YXRpY19jYXN0PEFQSTo6V2Vic2l0ZVBvbGljaWVzJj4oW193ZWJwYWdl
UHJlZmVyZW5jZXMgX2FwaU9iamVjdF0pOwotICAgIFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVhZGVy
RmllbGQ+IHBhcnNlZEZpZWxkczsKLSAgICBwYXJzZWRGaWVsZHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShmaWVsZHMuY291bnQpOwotICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgaW4gZmllbGRzKSB7
Ci0gICAgICAgIGF1dG8gZmllbGQgPSBXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ6OmNyZWF0ZShu
YW1lLCBbZmllbGRzIG9iamVjdEZvcktleTpuYW1lXSk7Ci0gICAgICAgIGlmIChmaWVsZCAmJiBz
dGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZpZWxkLT5uYW1lKCksICJ4LSIpKQot
ICAgICAgICAgICAgcGFyc2VkRmllbGRzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCpmaWVsZCkp
OwotICAgIH0KLSAgICB3ZWJzaXRlUG9saWNpZXMuc2V0TGVnYWN5Q3VzdG9tSGVhZGVyRmllbGRz
KFdURk1vdmUocGFyc2VkRmllbGRzKSk7Ci19Ci0KLS0gKFdLV2Vic2l0ZURhdGFTdG9yZSAqKXdl
YnNpdGVEYXRhU3RvcmUKLXsKLSAgICByZXR1cm4gW193ZWJwYWdlUHJlZmVyZW5jZXMgX3dlYnNp
dGVEYXRhU3RvcmVdOwotfQotCi0tICh2b2lkKXNldFdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0
ZURhdGFTdG9yZSAqKXdlYnNpdGVEYXRhU3RvcmUKLXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfc2V0V2Vic2l0ZURhdGFTdG9yZTp3ZWJzaXRlRGF0YVN0b3JlXTsKLX0KLQotLSAodm9pZClz
ZXRDdXN0b21Vc2VyQWdlbnQ6KE5TU3RyaW5nICopY3VzdG9tVXNlckFnZW50Ci17Ci0gICAgW193
ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEN1c3RvbVVzZXJBZ2VudDpjdXN0b21Vc2VyQWdlbnRdOwot
fQotCi0tIChOU1N0cmluZyAqKWN1c3RvbVVzZXJBZ2VudAotewotICAgIHJldHVybiBbX3dlYnBh
Z2VQcmVmZXJlbmNlcyBfY3VzdG9tVXNlckFnZW50XTsKLX0KLQotLSAodm9pZClzZXRDdXN0b21V
c2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrczooTlNTdHJpbmcgKiljdXN0b21Vc2VyQWdlbnQK
LXsKLSAgICBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBfc2V0Q3VzdG9tVXNlckFnZW50QXNTaXRlU3Bl
Y2lmaWNRdWlya3M6Y3VzdG9tVXNlckFnZW50XTsKLX0KLQotLSAoTlNTdHJpbmcgKiljdXN0b21V
c2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrcwotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVm
ZXJlbmNlcyBfY3VzdG9tVXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3NdOwotfQotCi0tICh2
b2lkKXNldEN1c3RvbU5hdmlnYXRvclBsYXRmb3JtOihOU1N0cmluZyAqKWN1c3RvbU5hdmlnYXRv
clBsYXRmb3JtCi17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEN1c3RvbU5hdmlnYXRv
clBsYXRmb3JtOmN1c3RvbU5hdmlnYXRvclBsYXRmb3JtXTsKLX0KLQotLSAoTlNTdHJpbmcgKilj
dXN0b21OYXZpZ2F0b3JQbGF0Zm9ybQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm1dOwotfQotCi0tIChOU1N0cmluZyAqKWRlc2NyaXB0
aW9uCi17Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPCVAICVAPiIs
IHNlbGYuY2xhc3MsIFtfd2VicGFnZVByZWZlcmVuY2VzIGRlc2NyaXB0aW9uXV07Ci19Ci0KLS0g
KEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Ci17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVu
Y2VzIF9hcGlPYmplY3RdOwotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2U1NDYxMzM4ZTkwZjczNDZmZTgwYzI1YTli
YjJlNTgwMjg1OTk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXNJ
bnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bXBvcnQgIl9XS1dlYnNpdGVQb2xpY2llcy5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgot
Ci1AY2xhc3MgV0tXZWJwYWdlUHJlZmVyZW5jZXM7Ci0KLUBpbnRlcmZhY2UgX1dLV2Vic2l0ZVBv
bGljaWVzICgpCi17Ci1AcGFja2FnZQotICAgIFJldGFpblB0cjxXS1dlYnBhZ2VQcmVmZXJlbmNl
cz4gX3dlYnBhZ2VQcmVmZXJlbmNlczsKLX0KLQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqd2VicGFnZVByZWZlcmVuY2VzOwotCi1AZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCmluZGV4
IGYzZDdlOTA0NzRhOGRlOWE5NTYwZmYyOWNiNmQxNGM3MTgzZmFiMjIuLjI0ZGVkZDMwMDU0ZmYw
NjA4MjFkZWQwODU3ZDlkNWY4Nzc0ZDEzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCkBAIC0yMDQsOCArMjA0LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lz
aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2Vz
VXNlckluZm9EZWNpc2lvbkhhbmRsZXIgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIDog
MTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVz
ZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzIDogMTsKICAgICAgICAgYm9vbCB3
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5kbGVyIDog
MTsKIAogICAgICAgICBib29sIHdlYlZpZXdEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbiA6
IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
bW0KaW5kZXggNWRmMzYyODEyMzViYjQ1YTc0NTVlZDQ3OTNmYjk5MjJlZTQwOWMwMi4uZTU0Zjll
OGQ3MGE5MmIzNzQyOTM1YzgxMjBjMGU1OWZkYjMxMmU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtNzAsNyArNzAsNiBAQAog
I2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudHNJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLU2FtZURvY3VtZW50TmF2aWdh
dGlvblR5cGVJbnRlcm5hbC5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwu
aCIKICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRpb25NYWMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFs
Lmg+CkBAIC0xNTIsOCArMTUxLDYgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRp
b25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogCiAgICAgbV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFu
ZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOildOwotICAg
IG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOildOwotICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNp
b25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5m
bzpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzVXNlcklu
Zm9EZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVz
ZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjopXTsKIApAQCAtNDcz
LDkgKzQ3MCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAKICAgICBpZiAoIW1fbmF2aWdh
dGlvblN0YXRlIHx8ICghbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxl
cgogICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNl
c1VzZXJJbmZvRGVjaXNpb25IYW5kbGVyCi0gICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS0+
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyCi0gICAgICAgICYmICFtX25h
dmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzCi0g
ICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhh
bmRsZXJXZWJzaXRlUG9saWNpZXMpKSB7CisgICAgICAgICYmICFtX25hdmlnYXRpb25TdGF0ZS0+
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyKSkgewogICAgICAgICBhdXRv
IGNvbXBsZXRpb25IYW5kbGVyID0gW3dlYlBhZ2UgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIGxp
c3RlbmVyID0gV1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24sIGRlZmF1bHRXZWJz
aXRlUG9saWNpZXNdIChib29sIGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAg
aWYgKGludGVyY2VwdGVkTmF2aWdhdGlvbikgewogICAgICAgICAgICAgICAgIGxpc3RlbmVyLT5p
Z25vcmUoKTsKQEAgLTUxNiwzMyArNTExLDIwIEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAK
ICAgICBib29sIGRlbGVnYXRlSGFzV2VicGFnZVByZWZlcmVuY2VzID0gbV9uYXZpZ2F0aW9uU3Rh
dGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcgogICAgICAgICB8fCBt
X25hdmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzVXNlckluZm9EZWNpc2lv
bkhhbmRsZXI7Ci0gICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnNpdGVQb2xpY2llcyA9IG1fbmF2aWdh
dGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgfHwgbV9u
YXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBv
bGljaWVzOwogCiAgICAgYXV0byBzZWxlY3RvckZvckNvbXBsZXRpb25IYW5kbGVyQ2hlY2tlciA9
IChbJl0gKCkgLT4gU0VMIHsKICAgICAgICAgaWYgKGRlbGVnYXRlSGFzV2VicGFnZVByZWZlcmVu
Y2VzKQogICAgICAgICAgICAgcmV0dXJuIG1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRo
UHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIgPyBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjopIDogQHNl
bGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVyZW5j
ZXM6dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOik7Ci0gICAgICAgIGlmIChkZWxlZ2F0ZUhhc1dl
YnNpdGVQb2xpY2llcykKLSAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6KTsKICAgICAgICAg
cmV0dXJuIEBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
ZGVjaXNpb25IYW5kbGVyOik7CiAgICAgfSkoKTsKIAogICAgIGF1dG8gY2hlY2tlciA9IENvbXBs
ZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCks
IHNlbGVjdG9yRm9yQ29tcGxldGlvbkhhbmRsZXJDaGVja2VyKTsKLSAgICBhdXRvIGRlY2lzaW9u
SGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMgPSBbbG9jYWxMaXN0ZW5lciA9IFdURk1v
dmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2Vy
KSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3ZWJQYWdlUHJveHkpLCBzdWJmcmFtZU5hdmlnYXRp
b24sIGRlZmF1bHRXZWJzaXRlUG9saWNpZXNdIChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgYWN0
aW9uUG9saWN5LCBpZCBwb2xpY2llc09yUHJlZmVyZW5jZXMpIG11dGFibGUgeworICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcyA9IFtsb2NhbExpc3RlbmVy
ID0gV1RGTW92ZShsaXN0ZW5lciksIG5hdmlnYXRpb25BY3Rpb24sIGNoZWNrZXIgPSBXVEZNb3Zl
KGNoZWNrZXIpLCB3ZWJQYWdlUHJveHkgPSBtYWtlUmVmKHdlYlBhZ2VQcm94eSksIHN1YmZyYW1l
TmF2aWdhdGlvbiwgZGVmYXVsdFdlYnNpdGVQb2xpY2llc10gKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSBhY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICpwcmVmZXJlbmNlcykgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxs
ZWQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBs
ZXRpb25IYW5kbGVyKCk7CiAKLSAgICAgICAgUmVmUHRyPEFQSTo6V2Vic2l0ZVBvbGljaWVzPiBh
cGlXZWJzaXRlUG9saWNpZXM7Ci0gICAgICAgIGlmIChbcG9saWNpZXNPclByZWZlcmVuY2VzIGlz
S2luZE9mQ2xhc3M6V0tXZWJwYWdlUHJlZmVyZW5jZXMuY2xhc3NdKQotICAgICAgICAgICAgYXBp
V2Vic2l0ZVBvbGljaWVzID0gKChXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXBvbGljaWVzT3JQcmVm
ZXJlbmNlcyktPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCk7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgotICAgICAgICBlbHNlIGlmIChbcG9saWNpZXNPclByZWZlcmVuY2VzIGlz
S2luZE9mQ2xhc3M6X1dLV2Vic2l0ZVBvbGljaWVzLmNsYXNzXSkKLSAgICAgICAgICAgIGFwaVdl
YnNpdGVQb2xpY2llcyA9IFtwb2xpY2llc09yUHJlZmVyZW5jZXMgd2VicGFnZVByZWZlcmVuY2Vz
XS0+X3dlYnNpdGVQb2xpY2llcy5nZXQoKTsKLSAgICAgICAgZWxzZSBpZiAocG9saWNpZXNPclBy
ZWZlcmVuY2VzKQotICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIkV4cGVjdGVkIHBvbGljaWVzIG9mIGNsYXNzICVALCBidXQg
Z290ICVAIiwgTlNTdHJpbmdGcm9tQ2xhc3MoX1dLV2Vic2l0ZVBvbGljaWVzLmNsYXNzKSwgW3Bv
bGljaWVzT3JQcmVmZXJlbmNlcyBjbGFzc11dOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFwaVdlYnNpdGVQb2xpY2llcyA9IGRl
ZmF1bHRXZWJzaXRlUG9saWNpZXM7CisgICAgICAgIFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2ll
cz4gYXBpV2Vic2l0ZVBvbGljaWVzID0gcHJlZmVyZW5jZXMgPyAgcHJlZmVyZW5jZXMtPl93ZWJz
aXRlUG9saWNpZXMuZ2V0KCkgOiBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzOwogCiAgICAgICAgIGlm
IChhcGlXZWJzaXRlUG9saWNpZXMpIHsKICAgICAgICAgICAgIGlmIChhcGlXZWJzaXRlUG9saWNp
ZXMtPndlYnNpdGVEYXRhU3RvcmUoKSAmJiBzdWJmcmFtZU5hdmlnYXRpb24pCkBAIC01OTcsMTcg
KzU3OSw2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAg
W25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24p
IHByZWZlcmVuY2VzOndyYXBwZXIoZGVmYXVsdFdlYnNpdGVQb2xpY2llcykgZGVjaXNpb25IYW5k
bGVyOm1ha2VCbG9ja1B0cihXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09y
UG9saWNpZXMpKS5nZXQoKV07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFsoaWQgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3
cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIHByZWZlcmVuY2VzOndyYXBwZXIoZGVmYXVsdFdlYnNp
dGVQb2xpY2llcykgdXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZDxOU1NlY3VyZUNv
ZGluZz4+KHVzZXJJbmZvLT53cmFwcGVyKCkpIDogbmlsIGRlY2lzaW9uSGFuZGxlcjptYWtlQmxv
Y2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKSku
Z2V0KCldOwotICAgIH0gZWxzZSBpZiAoZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMpIHsKLSAg
ICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lv
bkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKSk7Ci0gICAgICAgIGlmIChtX25hdmln
YXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNp
ZXMpIHsKLSAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0g
ICAgICAgICAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25E
ZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS0+bV93ZWJWaWV3IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSB1c2VySW5mbzp1
c2VySW5mbyA/IHN0YXRpY19jYXN0PGlkIDxOU1NlY3VyZUNvZGluZz4+KHVzZXJJbmZvLT53cmFw
cGVyKCkpIDogbmlsIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAg
ICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVs
ZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUtPm1fd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikgZGVjaXNpb25IYW5k
bGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Ci0gICAgICAgICAgICBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKLSAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGF1dG8g
ZGVjaXNpb25IYW5kbGVyID0gW2RlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNp
ZXMgPSBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMpXSAo
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IGFjdGlvblBvbGljeSkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzKGFjdGlvblBvbGlj
eSwgbmlsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggYTNjN2EyODM4ZWJkMDQ3MzRhZDNlN2E2MWRkNzZhZDhh
MWRhNTlhNC4uYTdkMWI3MWVkMWJiZTNlNThjOGRhZTgxYTg0MTJiODY5OThjYmE0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29j
b2EubW0KQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZEF1ZGlv
Q29tcG9uZW50UmVnaXN0cmF0aW9ucygpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKSwgcmVnaXN0cmF0aW9ucyA9IHJldGFpblB0cihyZWdpc3RyYXRpb25zKV0gKCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbkRhdGEgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShyZWdpc3RyYXRpb25zLmdldCgpKTsKKyAgICAgICAgICAgIGF1dG8gcmVnaXN0cmF0
aW9uRGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlZ2lzdHJhdGlvbnMuZ2V0
KCkpOwogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6Q29uc3VtZUF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyh7IHJlZ2lzdHJhdGlvbkRhdGEg
fSksIDApOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggODdiYWQyYjRjNDBhODM2YzEzNGZmYTc0YjA2ODA3
ZWNjYzI0NzBkOC4uOGNhYjE0YzIxMjdmNzNkM2U2MDI3OTFlNGNjMDM3MzcxMzg5ODM4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQwOTEs
NyArNDA5MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdnaW5nRXhpdGVkKGlkIDxOU0RyYWdn
aW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQogewogICAgIFdlYkNvcmU6OkludFBvaW50IGNsaWVudChb
bV92aWV3IGNvbnZlcnRQb2ludDpkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiBmcm9tVmll
dzpuaWxdKTsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWwoV2ViQ29yZTo6Z2xvYmFsUG9p
bnQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24sIFttX3ZpZXcgd2luZG93XSkpOwotICAg
IFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWws
IGNvcmVEcmFnT3BlcmF0aW9uTWFzayhkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRp
b25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcobV92aWV3LmdldEF1dG9yZWxlYXNlZCgp
LCBkcmFnZ2luZ0luZm8pLCBhbnlEcmFnRGVzdGluYXRpb25BY3Rpb24oKSwgbV9wYWdlLT53ZWJQ
YWdlSUQoKSk7CisgICAgV2ViQ29yZTo6RHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBj
bGllbnQsIGdsb2JhbCwgY29yZURyYWdPcGVyYXRpb25NYXNrKGRyYWdnaW5nSW5mby5kcmFnZ2lu
Z1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcuZ2V0
QXV0b3JlbGVhc2VkKCksIGRyYWdnaW5nSW5mbyksIFdlYkNvcmU6OmFueURyYWdEZXN0aW5hdGlv
bkFjdGlvbigpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKICAgICBtX3BhZ2UtPmRyYWdFeGl0ZWQo
ZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7CiAgICAgbV9w
YWdlLT5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24oKTsKICAgICBkcmFnZ2luZ0luZm8ubnVt
YmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA9IG1faW5pdGlhbE51bWJlck9mVmFsaWRJdGVtc0ZvckRy
b3A7CkBAIC00MTA3LDcgKzQxMDcsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtRHJhZ09w
ZXJhdGlvbihpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKIHsKICAgICBXZWJDb3Jl
OjpJbnRQb2ludCBjbGllbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6ZHJhZ2dpbmdJbmZvLmRyYWdn
aW5nTG9jYXRpb24gZnJvbVZpZXc6bmlsXSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFs
KFdlYkNvcmU6Omdsb2JhbFBvaW50KGRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9uLCBbbV92
aWV3IHdpbmRvd10pKTsKLSAgICBXZWJDb3JlOjpEcmFnRGF0YSAqZHJhZ0RhdGEgPSBuZXcgV2Vi
Q29yZTo6RHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgY29yZURyYWdPcGVy
YXRpb25NYXNrKGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBs
aWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCksIGRyYWdnaW5nSW5m
byksIGFueURyYWdEZXN0aW5hdGlvbkFjdGlvbigpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKKyAg
ICBXZWJDb3JlOjpEcmFnRGF0YSAqZHJhZ0RhdGEgPSBuZXcgV2ViQ29yZTo6RHJhZ0RhdGEoZHJh
Z2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgY29yZURyYWdPcGVyYXRpb25NYXNrKGRyYWdnaW5n
SW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJh
ZyhtX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCksIGRyYWdnaW5nSW5mbyksIFdlYkNvcmU6OmFueURy
YWdEZXN0aW5hdGlvbkFjdGlvbigpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKIAogICAgIE5TQXJy
YXkgKnR5cGVzID0gZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC50eXBlczsKICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKQEAgLTQzNTUs
OCArNDM1NSw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKFdl
YkNvcmU6OkltYWdlKiBpbWFnZSwgTlNTdHJpbmcgKmZpbGVuCiAKICAgICBSZXRhaW5QdHI8TlNE
YXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5JZGVudGlmaWVyLmxlbmd0aCkg
ewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKV07Ci0gICAgICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CisgICAg
ICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkpXTsKKyAgICAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9t
RGF0YTsKICAgICAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAg
ICAgICAgIGN1c3RvbURhdGFCdWZmZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigp
LT5jcmVhdGVOU0RhdGEoKTsKICAgICB9CkBAIC00Mzc0LDcgKzQzNzQsNyBAQCBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBpZiAoY3VzdG9tRGF0YUJ1ZmZl
cikKLSAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZv
clR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3Bh
c3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChXZWJDb3Jl
OjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKIAogICAgIG1fcHJvbWlzZWRJ
bWFnZSA9IGltYWdlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggY2YzNWNiZmRhM2FlYmJkOTJjYjg3N2MyZGFmN2UxYmJmZWNmNTc5
NS4uODg4NzUwMTFjNTc0NTk1OWFmNzYxMTg3MDIxMjVmODQyMjZlODBmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjY0LDcgKzEy
NjQsNiBAQAogCQk1Q0FGREU0NTIxMzA4NDYzMDBCMUY3RTEgLyogX1dLSW5zcGVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0FGREU0MjIxMzA4
NDM1MDBCMUY3RTEgLyogX1dLSW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUNBRkRFNDcyMTMwODQ2QTAwQjFGN0UxIC8qIF9XS0lu
c3BlY3RvckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0FGREU0NDIxMzA4NDM2MDBCMUY3RTEgLyogX1dLSW5zcGVjdG9ySW50ZXJuYWwu
aCAqLzsgfTsKIAkJNUNCMjM3OEMxREYwREU2RTAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2ll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMjM3
ODkxREYwREQ0MzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTVDQjIzNzhFMURGMEUwRDMwMDEx
N0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMjM3OEQxREYwRTBDMjAwMTE3QUEzIC8qIF9X
S1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmggKi87IH07CiAJCTVDQjZBRTQ0MjYwOTc5OUMwMEI2
RUQ1QSAvKiBSZWFzb25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDQjZBRTQzMjYwOTc5OUMwMEI2RUQ1QSAvKiBSZWFzb25TUEkuaCAqLzsgfTsK
IAkJNUNCN0FGRTAyM0M1MkNFNTAwRTQ5Q0YzIC8qIF9XS1Jlc291cmNlTG9hZERlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I3QUZERjIz
QzUyQ0JDMDBFNDlDRjMgLyogX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0I3QUZFNzIzQzY4MjA3MDBF
NDlDRjMgLyogUmVzb3VyY2VMb2FkSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9h
ZEluZm8uaCAqLzsgfTsKQEAgLTQ0NTksOCArNDQ1OCw2IEBACiAJCTVDQUZERTQzMjEzMDg0MzYw
MEIxRjdFMSAvKiBfV0tJbnNwZWN0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBfV0tJbnNwZWN0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDQUZERTQ0MjEzMDg0MzYwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0IyMzc4OTFERjBERDQzMDAxMTdBQTMgLyogX1dL
V2Vic2l0ZVBvbGljaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dl
YnNpdGVQb2xpY2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1Q0IyMzc4QTFE
RjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2Vic2l0ZVBvbGljaWVzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1Q0IyMzc4RDFERjBFMEMyMDAxMTdBQTMgLyogX1dLV2Vic2l0
ZVBvbGljaWVzSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
V2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUNCNkFFNDMyNjA5Nzk5QzAwQjZFRDVBIC8qIFJlYXNvblNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZWFzb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUNCN0FGREEyM0M0M0U2NDAwRTQ5Q0YzIC8qIEFQSVJlc291cmNlTG9hZENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElSZXNvdXJjZUxvYWRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNCN0FGREQyM0M1MjczRDAwRTQ5Q0YzIC8q
IFJlc291cmNlTG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlc291cmNlTG9hZERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04
MDA5LDggKzgwMDYsNiBAQAogCQkJCTVDNDZDMEFFMjFCNzFBRTIwMEJDNTk5MSAvKiBfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVybmFsLmggKi8sCiAJCQkJNDFDNTM3OEYyMUYx
MzYyRDAwOEIxRkFEIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oICovLAogCQkJCTVD
QjIzNzg5MURGMERENDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCAqLywKLQkJCQk1
Q0IyMzc4QTFERjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLm1tICovLAotCQkJ
CTVDQjIzNzhEMURGMEUwQzIwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5o
ICovLAogCQkJCUY0MTA1NjYxMjEzMDY5OUEwMDkyMjgxRCAvKiBBUElBdHRhY2htZW50Q29jb2Eu
bW0gKi8sCiAJCQkJN0NFRkE5NjAxQUMwOTk5MzAwQjkxMEZEIC8qIEFQSUNvbnRlbnRSdWxlTGlz
dFN0b3JlQ29jb2EubW0gKi8sCiAJCQkJNUNBNDZFN0EyMUYxQTIzOTAwQ0U4NkI0IC8qIEFQSUhU
VFBDb29raWVTdG9yZUNvY29hLm1tICovLApAQCAtMTE2NDYsNyArMTE2NDEsNiBAQAogCQkJCTQx
QzUzNzkwMjFGMTVCNTUwMDhCMUZBRCAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEE5M0I3MUFFQjA4RUEwMDE1MEU5QyAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQjIzNzhDMURGMERFNkUw
MDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTVDQjIz
NzhFMURGMEUwRDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTExNURDNzIxOTFEODJEQTAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmlu
dEZvcm1hdHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5REQzQzAxRDA3RDE2ODAwQUM4MjNC
IC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMTgyRDVCNTFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMzU4ZjhhMTdhMGVmY2ZiNmMzZTJlOTE3ZjAwZGQ0MGU4MmUwMzMzMS4uNjdmNmE1ZjhkNGZi
ZWM1MTE2NWVlMTY0NGI1MTdhNmUwMTljOWM5NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA0LTA3ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3Zl
IF9XS1dlYnNpdGVQb2xpY2llcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI0MjkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNpdGVQb2xp
Y2llcy5tbToKKyAgICAgICAgKC1bQ3VzdG9tVXNlckFnZW50RGVsZWdhdGUgX3dlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczp1c2VySW5mbzpkZWNpc2lv
bkhhbmRsZXI6XSk6CisgICAgICAgICgtW0N1c3RvbUphdmFTY3JpcHRVc2VyQWdlbnREZWxlZ2F0
ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246cHJlZmVyZW5jZXM6ZGVj
aXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtDdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybURlbGVn
YXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpk
ZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1BvcFVwUG9saWNpZXNEZWxlZ2F0ZSB3ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOgor
ICAgICAgICAoLVtQb3BVcFBvbGljaWVzRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KC1bQ3VzdG9tVXNlckFnZW50RGVsZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW0N1c3RvbUphdmFTY3JpcHRVc2VyQWdlbnREZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bQ3VzdG9tTmF2aWdhdG9yUGxhdGZvcm1EZWxlZ2F0ZSBfd2ViVmlldzpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bUG9wVXBQb2xpY2llc0RlbGVnYXRlIF93ZWJWaWV3OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVk
LgorCiAyMDIxLTA0LTA3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gQ29tbWl0IHF1ZXVlIHNob3VsZCBwb3N0IHRoZSBp
ZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYnNpdGVQb2xpY2llcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IGJlZjI0Mjg4YWUwZWZmZWExNDQ2YThmY2Ex
YWE4YjhlNzI3NmJkNTYuLjZlNTlkODZkMjE2YzIzODNmYTQ3MDgxNjExYTNjMmFjOTY2ZGFmMjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0
ZVBvbGljaWVzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V2Vic2l0ZVBvbGljaWVzLm1tCkBAIC02MjksMjcgKzYyOSw2IEBAIFRFU1QoV2VicGFnZVByZWZl
cmVuY2VzLCBXZWJzaXRlUG9saWNpZXNXaXRoQnJpZGdpbmdDYXN0KQogICAgIEVYUEVDVF9UUlVF
KGRpZEludm9rZURlY2lzaW9uSGFuZGxlcik7CiB9CiAKLVRFU1QoV2VicGFnZVByZWZlcmVuY2Vz
LCBXZWJzaXRlUG9saWNpZXNXaXRoVW5leHBlY3RlZFR5cGUpCi17Ci0gICAgYXV0byBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
LSAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMzNiwgMjc2KSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1dlYnNpdGVQb2xp
Y2llc05hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwotCi0gICAgX19ibG9jayBib29s
IGRpZENhdGNoRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgW2RlbGVnYXRlIHNldERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25XaXRoV2Vic2l0ZVBvbGljaWVzOl4oV0tOYXZpZ2F0aW9uQWN0
aW9uICosIFdLV2VicGFnZVByZWZlcmVuY2VzICosIHZvaWQgKF5kZWNpc2lvbkhhbmRsZXIpKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpIHsKLSAgICAg
ICAgQHRyeSB7Ci0gICAgICAgICAgICBpZCBmYWtlUG9saWNpZXMgPSBAIkhlbGxvIjsKLSAgICAg
ICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgKFdL
V2VicGFnZVByZWZlcmVuY2VzICopZmFrZVBvbGljaWVzKTsKLSAgICAgICAgfSBAY2F0Y2ggKE5T
RXhjZXB0aW9uICpleGNlcHRpb24pIHsKLSAgICAgICAgICAgIGRpZENhdGNoRXhjZXB0aW9uID0g
dHJ1ZTsKLSAgICAgICAgfQotICAgIH1dOwotCi0gICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRl
bGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKLSAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
InNpbXBsZSJdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQ2F0Y2hFeGNlcHRp
b24pOwotfQotCiBzdHJ1Y3QgUGFyc2VkUmFuZ2UgewogICAgIFBhcnNlZFJhbmdlKFN0cmluZyBz
dHJpbmcpCiAgICAgewpAQCAtMTIxMCw5ICsxMTg5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvYWRD
b3VudDsKIAogQGltcGxlbWVudGF0aW9uIEN1c3RvbVVzZXJBZ2VudERlbGVnYXRlCiAKLUlHTk9S
RV9XQVJOSU5HU19CRUdJTigiZGVwcmVjYXRlZC1pbXBsZW1lbnRhdGlvbnMiKQotLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8
TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRs
ZXIKLUlHTk9SRV9XQVJOSU5HU19FTkQKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9u
ICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilw
cmVmZXJlbmNlcyB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJl
ZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgYXV0byB3ZWJzaXRlUG9saWNpZXMg
PSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsKICAgICBpZiAo
bmF2aWdhdGlvbkFjdGlvbi50YXJnZXRGcmFtZS5tYWluRnJhbWUpCkBAIC0xMzAyLDcgKzEyNzks
NyBAQCBURVNUKFdlYnBhZ2VQcmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzQ3VzdG9tVXNlckFn
ZW50KQogCiBAaW1wbGVtZW50YXRpb24gQ3VzdG9tSmF2YVNjcmlwdFVzZXJBZ2VudERlbGVnYXRl
CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB1
c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikp
ZGVjaXNpb25IYW5kbGVyCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdh
dGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNl
cyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgYXV0byB3ZWJzaXRl
UG9saWNpZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRdKTsK
ICAgICBpZiAobmF2aWdhdGlvbkFjdGlvbi50YXJnZXRGcmFtZS5tYWluRnJhbWUpIHsKQEAgLTEz
OTksNyArMTM3Niw3IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXND
dXN0b21Vc2VyQWdlbnRBc1NpdGVTcGVjaWZpY1F1aXJrcykKIAogQGltcGxlbWVudGF0aW9uIEN1
c3RvbU5hdmlnYXRvclBsYXRmb3JtRGVsZWdhdGUKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRp
b25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+
KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lv
bkhhbmRsZXIKIHsKICAgICBhdXRvIHdlYnNpdGVQb2xpY2llcyA9IGFkb3B0TlMoW1tXS1dlYnBh
Z2VQcmVmZXJlbmNlcyBhbGxvY10gaW5pdF0pOwogICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLnRh
cmdldEZyYW1lLm1haW5GcmFtZSkKQEAgLTE1NjAsMTIgKzE1MzcsMTIgQEAgVEVTVChXZWJwYWdl
UHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc0RldmljZU9yaWVudGF0aW9uQXNrQWNjZXNzKQog
CiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpZGVjaXNpb25I
YW5kbGVyCiB7Ci0gICAgLy8gX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjpkZWNpc2lvbkhhbmRsZXI6IHNob3VsZCBiZSBjYWxsZWQgaW5zdGVhZCBpZiBpdCBpcyBpbXBs
ZW1lbnRlZC4KKyAgICAvLyB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOiBzaG91bGQgYmUgY2FsbGVkIGluc3RlYWQgaWYg
aXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOwogICAgIGRlY2lzaW9u
SGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7CiB9CiAKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KikpZGVjaXNpb25IYW5kbGVyCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2
aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJl
bmNlcyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwg
V0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgYXV0byB3ZWJz
aXRlUG9saWNpZXMgPSBhZG9wdE5TKFtbV0tXZWJwYWdlUHJlZmVyZW5jZXMgYWxsb2NdIGluaXRd
KTsKICAgICBpZiAoX3BvcFVwUG9saWN5Rm9yVVJMKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428756</attachid>
            <date>2021-05-15 18:16:23 -0700</date>
            <delta_ts>2021-05-15 19:23:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224293-20210515181623.patch</filename>
            <type>text/plain</type>
            <size>43579</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlM2Y1ZWJhZWIwYWFlMzg2
Y2Y2YzAxNGZlODJkY2QxNmRjMjdmNTYuLjFiNzkwZTQwMzRiMGNkNzY2YzBhMjk0NzAyZTRmMjYz
NzA3ZTQzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjEtMDUtMTUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgX1dL
V2Vic2l0ZVBvbGljaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBJdHMgbGFzdCB1c2Ugd2FzIHJlbW92ZWQgaW4gcmRhcjovL3Byb2JsZW0vNTgwNjQ4NDcg
YW5kIHdlJ3ZlIHJlbGVhc2VkIGEgU2FmYXJpIHZlcnNpb24gc2luY2UgdGhlbi4KKyAgICAgICAg
SXQgd2FzIHJlcGxhY2VkIGJ5IFdLV2VicGFnZVByZWZlcmVuY2VzCisKKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfdXBkYXRlV2Vic2l0ZVBvbGljaWVzOl0pOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW06
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVy
bmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5tbTog
UmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2ll
c0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06
CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRl
KToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6c2VuZEF1ZGlvQ29tcG9uZW50UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
ZHJhZ2dpbmdFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybURy
YWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWRE
YXRhRm9ySW1hZ2UpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDIxLTA1LTE1ICBJYW4gR2lsYmVydCAgPGlhbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlcGxhY2UgUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZTo6S2V5ZnJhbWVWYWx1ZSB3aXRoIFZh
cmlhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAwNGVhYTc5ZjYxNjA5NjU1NDEyNjc5ZjM2
OTY3MTljNmYyMWEwY2VjLi5hODI4MzMzMGU1NGM5MWI4MzM4MTI4NmEwYmFhN2Q1YzRlNDFlMmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMDMsNyArMzAzLDYgQEAgVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU2l6ZS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLm1tCi1VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5tbQogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9BUElBdHRhY2htZW50Q29jb2EubW0KIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9B
UElIVFRQQ29va2llU3RvcmVDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCmlu
ZGV4IGNjNWM1YWRhOGQzZmZiYWNiZTczODY3NmJmZjczYWI2MDhlMTAwMzYuLjhlM2I2YTA4ZDQ2
ZjQ3ZWUyMWMxZDExNjI2M2FjY2UzMjlkZTczYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2
YXRlLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbXBvcnQgPFdlYktpdC9fV0tTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZS5oPgogCiBAY2xhc3MgX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uOwotQGNs
YXNzIF9XS1dlYnNpdGVQb2xpY2llczsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tXZWJHTExvYWRQb2xpY3kpIHsKQEAgLTk3LDkgKzk2LDcg
QEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25S
ZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EKIC0gKHZvaWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdh
dGlvbkdlc3R1cmU6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3
YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTbmFwc2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06
KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3RGlkUmVtb3Zl
TmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0
aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFu
ZGxlcjoiLCBtYWNvcygxMC4xMi4zLCAxMC4xNC40KSwgaW9zKDEwLjMsIDEyLjIpKTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB1c2VySW5mbzoo
aWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFu
ZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFu
ZGxlcjoiLCBtYWNvcygxMC4xMy40LCAxMC4xNSksIGlvcygxMS4zLCAxMy4wKSk7Ci0tKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBwcmVmZXJlbmNlczoo
V0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcyB1c2VySW5mbzooaWQgPE5TU2VjdXJl
Q29kaW5nPil1c2VySW5mbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKikpZGVjaXNpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOworLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05h
dmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVz
ZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKilu
YXZpZ2F0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZp
Z2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVD
b2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4z
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IGZiMGNjMGM0ZDUxMGNiNWNiOTQ5MGQ5NTJkM2IwNDg2MjJhZTYwNzcuLjE3MTA2ZmMx
YzkwYjc2ODM1YTIyYzk0ZGU2NjUyYjJhMzZiMDU4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTE5LDcgKzExOSw2IEBACiAjaW1w
b3J0ICJfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oIgogI2ltcG9ydCAiX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmgiCiAjaW1wb3J0ICJfV0tWaXNpdGVkTGlua1N0b3JlSW50ZXJuYWwuaCIKLSNp
bXBvcnQgIl9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0Fw
cEhpZ2hsaWdodC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdHRyaWJ1dGVkU3RyaW5nLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0NvbG9yQ29jb2EuaD4KQEAgLTI3NzEsMTAgKzI3NzAsNiBAQCBzdGF0aWMg
dm9pZCBjb252ZXJ0QW5kQWRkSGlnaGxpZ2h0KFZlY3RvcjxSZWY8V2ViS2l0OjpTaGFyZWRNZW1v
cnk+PiYgYnVmZmVycywgTgogICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHQ6amF2YVNjcmlw
dFN0cmluZyBhc0FzeW5jRnVuY3Rpb246Tk8gd2l0aFNvdXJjZVVSTDp1cmwgd2l0aEFyZ3VtZW50
czpuaWwgZm9yY2VVc2VyR2VzdHVyZTpZRVMgaW5GcmFtZTpmcmFtZSBpbldvcmxkOmNvbnRlbnRX
b3JsZCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKLS0gKHZvaWQp
X3VwZGF0ZVdlYnNpdGVQb2xpY2llczooX1dLV2Vic2l0ZVBvbGljaWVzICopd2Vic2l0ZVBvbGlj
aWVzCi17Ci19Ci0KIC0gKHZvaWQpX3VwZGF0ZVdlYnBhZ2VQcmVmZXJlbmNlczooV0tXZWJwYWdl
UHJlZmVyZW5jZXMgKil3ZWJwYWdlUHJlZmVyZW5jZXMKIHsKICAgICBUSFJPV19JRl9TVVNQRU5E
RUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAppbmRleCBhYWYzN2QxZDRjZDU5ZDM2NzUwNThkYzc0NjNkZGYyYWJjOGY3ZjFh
Li4yNTc1NjJjMTBjMjI3N2ZjYmJkMTlmMjYwNWQ2ZWZlNmVhNmU5MjYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAg
LTEyNSw3ICsxMjUsNiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVk
Z2UpIHsKIEBjbGFzcyBfV0tUZXh0TWFuaXB1bGF0aW9uQ29uZmlndXJhdGlvbjsKIEBjbGFzcyBf
V0tUZXh0TWFuaXB1bGF0aW9uSXRlbTsKIEBjbGFzcyBfV0tUaHVtYm5haWxWaWV3OwotQGNsYXNz
IF9XS1dlYnNpdGVQb2xpY2llczsKIEBjbGFzcyBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXI7CiAK
IEBwcm90b2NvbCBXS0hpc3RvcnlEZWxlZ2F0ZVByaXZhdGU7CkBAIC0yMTMsNyArMjEyLDYgQEAg
Zm9yIHRoaXMgcHJvcGVydHkuCiAtIChCT09MKV90cnlDbG9zZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogLSAoQk9PTClfaXNDbG9zZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIAotLSAodm9pZClfdXBkYXRlV2Vic2l0
ZVBvbGljaWVzOihfV0tXZWJzaXRlUG9saWNpZXMgKil3ZWJzaXRlUG9saWNpZXMgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV91cGRhdGVXZWJwYWdlUHJlZmVyZW5jZXM6Iiwg
bWFjb3MoMTAuMTMsIDEwLjE1LjQpLCBpb3MoMTEuMywgMTMuNCkpOwogLSAodm9pZClfdXBkYXRl
V2VicGFnZVByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXdlYnBhZ2VQcmVmZXJl
bmNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogLSAodm9p
ZClfbm90aWZ5VXNlclNjcmlwdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfZGVmZXJyYWJsZVVz
ZXJTY3JpcHRzTmVlZE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2VicGFnZVByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2VicGFnZVByZWZlcmVuY2VzLm1tCmluZGV4IDI3NzA5YjcyNDFhMWI2M2RhZTNjN2Nl
MDI3NzM4NDg2YzhmYmI0NWQuLjVlYjEyMDE4ZDlhNDdlMzRiNjZlZGQ3ZWUwODU4M2UxNzg3NGYz
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBh
Z2VQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KQEAgLTMyLDcgKzMyLDYgQEAKICNpbXBvcnQgIldLV2Vi
c2l0ZURhdGFTdG9yZUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDb250ZW50TW9kZS5oIgogI2lt
cG9ydCAiX1dLQ3VzdG9tSGVhZGVyRmllbGRzSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNp
dGVQb2xpY2llc0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzSW50ZXJuYWwuaAppbmRleCBlM2MzODBhMmMx
MzQyNDNkMDc1NDVlM2UyZThkY2FhNjQ4OTNlMWMwLi42ZTExOWY5MDFkZDE0ZWExOWMwNzRjZmQz
MTQ4ZmI3Mjk5NDE1YTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFsLmgKQEAgLTI1
LDcgKzI1LDYgQEAKIAogI2ltcG9ydCAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCiAjaW1wb3J0ICJX
S09iamVjdC5oIgotI2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzLmgiCiAjaW1wb3J0IDxXZWJL
aXQvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQ
b2xpY2llcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQ
b2xpY2llcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmJhZWYyYjU1OTIyMzEy
ZTU0YjY5ZWNiNjI4ZDlkZjUxMmUyMTQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlUG9saWNpZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLSNpbXBvcnQgPFdlYktpdC9X
S1dlYnBhZ2VQcmVmZXJlbmNlc1ByaXZhdGUuaD4KLQotQGNsYXNzIFdLV2Vic2l0ZURhdGFTdG9y
ZTsKLQotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnBhZ2VQcmVm
ZXJlbmNlcyIsIG1hY29zKDEwLjEyLjMsIDEwLjE1LjQpLCBpb3MoMTAuMywgMTMuNCkpCi1AaW50
ZXJmYWNlIF9XS1dlYnNpdGVQb2xpY2llcyA6IE5TT2JqZWN0Ci0KLUBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykg
X1dLV2Vic2l0ZUF1dG9wbGF5UXVpcmsgYWxsb3dlZEF1dG9wbGF5UXVpcmtzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMpIF9X
S1dlYnNpdGVBdXRvcGxheVBvbGljeSBhdXRvcGxheVBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzKSwgaW9zKDExLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmN1c3RvbUhlYWRlckZpZWxkcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25h
dG9taWMpIF9XS1dlYnNpdGVQb3BVcFBvbGljeSBwb3BVcFBvbGljeSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcp
IFdLV2Vic2l0ZURhdGFTdG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5T
U3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9t
VXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAq
Y3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBfV0tXZWJzaXRlRGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7Ci0KLUBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlUG9saWNpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZVBvbGljaWVzLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDkxOTc3YTY4
OWE2YTE3Mzg4NjQwOGI0N2JlMTZjMzEyZjcyZTlhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlUG9saWNpZXMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNzIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJXS1dlYnBhZ2VQcmVmZXJl
bmNlc0ludGVybmFsLmgiCi0jaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgot
I2ltcG9ydCAiX1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCIKLQotSUdOT1JFX1dBUk5JTkdT
X0JFR0lOKCJkZXByZWNhdGVkLWltcGxlbWVudGF0aW9ucyIpCi1AaW1wbGVtZW50YXRpb24gX1dL
V2Vic2l0ZVBvbGljaWVzCi1JR05PUkVfV0FSTklOR1NfRU5ECi0KLS0gKGluc3RhbmNldHlwZSlp
bml0Ci17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICBfd2VicGFnZVByZWZlcmVuY2VzID0gYWRvcHROUyhbW1dLV2VicGFnZVByZWZl
cmVuY2VzIGFsbG9jXSBpbml0XSk7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKFdLV2VicGFn
ZVByZWZlcmVuY2VzICopd2VicGFnZVByZWZlcmVuY2VzCi17Ci0gICAgcmV0dXJuIF93ZWJwYWdl
UHJlZmVyZW5jZXMuZ2V0KCk7Ci19Ci0KLS0gKHZvaWQpc2V0Q29udGVudEJsb2NrZXJzRW5hYmxl
ZDooQk9PTCljb250ZW50QmxvY2tlcnNFbmFibGVkCi17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5j
ZXMgX3NldENvbnRlbnRCbG9ja2Vyc0VuYWJsZWQ6Y29udGVudEJsb2NrZXJzRW5hYmxlZF07Ci19
Ci0KLS0gKEJPT0wpY29udGVudEJsb2NrZXJzRW5hYmxlZAotewotICAgIHJldHVybiBbX3dlYnBh
Z2VQcmVmZXJlbmNlcyBfY29udGVudEJsb2NrZXJzRW5hYmxlZF07Ci19Ci0KLS0gKHZvaWQpc2V0
QWxsb3dlZEF1dG9wbGF5UXVpcmtzOihfV0tXZWJzaXRlQXV0b3BsYXlRdWlyaylhbGxvd2VkUXVp
cmtzCi17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEFsbG93ZWRBdXRvcGxheVF1aXJr
czphbGxvd2VkUXVpcmtzXTsKLX0KLQotLSAoX1dLV2Vic2l0ZUF1dG9wbGF5UXVpcmspYWxsb3dl
ZEF1dG9wbGF5UXVpcmtzCi17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9hbGxv
d2VkQXV0b3BsYXlRdWlya3NdOwotfQotCi0tICh2b2lkKXNldEF1dG9wbGF5UG9saWN5OihfV0tX
ZWJzaXRlQXV0b3BsYXlQb2xpY3kpcG9saWN5Ci17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMg
X3NldEF1dG9wbGF5UG9saWN5OnBvbGljeV07Ci19Ci0KLS0gKF9XS1dlYnNpdGVBdXRvcGxheVBv
bGljeSlhdXRvcGxheVBvbGljeQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBf
YXV0b3BsYXlQb2xpY3ldOwotfQotCi0tICh2b2lkKXNldERldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzUG9saWN5OihfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3NQb2xpY3kpcG9saWN5Ci17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldERldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5OnBvbGljeV07Ci19Ci0KLS0gKF9XS1dlYnNp
dGVEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc1BvbGljeSlkZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc1BvbGljeQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVmZXJlbmNl
cyBfZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3ldOwotfQotCi0tICh2b2lk
KXNldFBvcFVwUG9saWN5OihfV0tXZWJzaXRlUG9wVXBQb2xpY3kpcG9saWN5Ci17Ci0gICAgW193
ZWJwYWdlUHJlZmVyZW5jZXMgX3NldFBvcFVwUG9saWN5OnBvbGljeV07Ci19Ci0KLS0gKF9XS1dl
YnNpdGVQb3BVcFBvbGljeSlwb3BVcFBvbGljeQotewotICAgIHJldHVybiBbX3dlYnBhZ2VQcmVm
ZXJlbmNlcyBfcG9wVXBQb2xpY3ldOwotfQotCi0tIChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwg
TlNTdHJpbmcgKj4gKiljdXN0b21IZWFkZXJGaWVsZHMKLXsKLSAgICBhdXRvJiBmaWVsZHMgPSBz
dGF0aWNfY2FzdDxBUEk6OldlYnNpdGVQb2xpY2llcyY+KFtfd2VicGFnZVByZWZlcmVuY2VzIF9h
cGlPYmplY3RdKS5sZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMoKTsKLSAgICBhdXRvIGRpY3Rpb25h
cnkgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aENhcGFjaXR5OmZpZWxkcy5z
aXplKCldOwotICAgIGZvciAoY29uc3QgYXV0byYgZmllbGQgOiBmaWVsZHMpCi0gICAgICAgIFtk
aWN0aW9uYXJ5IHNldE9iamVjdDpmaWVsZC52YWx1ZSgpIGZvcktleTpmaWVsZC5uYW1lKCldOwot
ICAgIHJldHVybiBkaWN0aW9uYXJ5OwotfQotCi0tICh2b2lkKXNldEN1c3RvbUhlYWRlckZpZWxk
czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopZmllbGRzCi17Ci0gICAg
YXV0byB3ZWJzaXRlUG9saWNpZXMgPSBzdGF0aWNfY2FzdDxBUEk6OldlYnNpdGVQb2xpY2llcyY+
KFtfd2VicGFnZVByZWZlcmVuY2VzIF9hcGlPYmplY3RdKTsKLSAgICBWZWN0b3I8V2ViQ29yZTo6
SFRUUEhlYWRlckZpZWxkPiBwYXJzZWRGaWVsZHM7Ci0gICAgcGFyc2VkRmllbGRzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoZmllbGRzLmNvdW50KTsKLSAgICBmb3IgKE5TU3RyaW5nICpuYW1lIGlu
IGZpZWxkcykgewotICAgICAgICBhdXRvIGZpZWxkID0gV2ViQ29yZTo6SFRUUEhlYWRlckZpZWxk
OjpjcmVhdGUobmFtZSwgW2ZpZWxkcyBvYmplY3RGb3JLZXk6bmFtZV0pOwotICAgICAgICBpZiAo
ZmllbGQgJiYgc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmaWVsZC0+bmFtZSgp
LCAieC0iKSkKLSAgICAgICAgICAgIHBhcnNlZEZpZWxkcy51bmNoZWNrZWRBcHBlbmQoV1RGTW92
ZSgqZmllbGQpKTsKLSAgICB9Ci0gICAgd2Vic2l0ZVBvbGljaWVzLnNldExlZ2FjeUN1c3RvbUhl
YWRlckZpZWxkcyhXVEZNb3ZlKHBhcnNlZEZpZWxkcykpOwotfQotCi0tIChXS1dlYnNpdGVEYXRh
U3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCi17Ci0gICAgcmV0dXJuIFtfd2VicGFnZVByZWZlcmVu
Y2VzIF93ZWJzaXRlRGF0YVN0b3JlXTsKLX0KLQotLSAodm9pZClzZXRXZWJzaXRlRGF0YVN0b3Jl
OihXS1dlYnNpdGVEYXRhU3RvcmUgKil3ZWJzaXRlRGF0YVN0b3JlCi17Ci0gICAgW193ZWJwYWdl
UHJlZmVyZW5jZXMgX3NldFdlYnNpdGVEYXRhU3RvcmU6d2Vic2l0ZURhdGFTdG9yZV07Ci19Ci0K
LS0gKHZvaWQpc2V0Q3VzdG9tVXNlckFnZW50OihOU1N0cmluZyAqKWN1c3RvbVVzZXJBZ2VudAot
ewotICAgIFtfd2VicGFnZVByZWZlcmVuY2VzIF9zZXRDdXN0b21Vc2VyQWdlbnQ6Y3VzdG9tVXNl
ckFnZW50XTsKLX0KLQotLSAoTlNTdHJpbmcgKiljdXN0b21Vc2VyQWdlbnQKLXsKLSAgICByZXR1
cm4gW193ZWJwYWdlUHJlZmVyZW5jZXMgX2N1c3RvbVVzZXJBZ2VudF07Ci19Ci0KLS0gKHZvaWQp
c2V0Q3VzdG9tVXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3M6KE5TU3RyaW5nICopY3VzdG9t
VXNlckFnZW50Ci17Ci0gICAgW193ZWJwYWdlUHJlZmVyZW5jZXMgX3NldEN1c3RvbVVzZXJBZ2Vu
dEFzU2l0ZVNwZWNpZmljUXVpcmtzOmN1c3RvbVVzZXJBZ2VudF07Ci19Ci0KLS0gKE5TU3RyaW5n
ICopY3VzdG9tVXNlckFnZW50QXNTaXRlU3BlY2lmaWNRdWlya3MKLXsKLSAgICByZXR1cm4gW193
ZWJwYWdlUHJlZmVyZW5jZXMgX2N1c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzXTsK
LX0KLQotLSAodm9pZClzZXRDdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybTooTlNTdHJpbmcgKiljdXN0
b21OYXZpZ2F0b3JQbGF0Zm9ybQotewotICAgIFtfd2VicGFnZVByZWZlcmVuY2VzIF9zZXRDdXN0
b21OYXZpZ2F0b3JQbGF0Zm9ybTpjdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybV07Ci19Ci0KLS0gKE5T
U3RyaW5nICopY3VzdG9tTmF2aWdhdG9yUGxhdGZvcm0KLXsKLSAgICByZXR1cm4gW193ZWJwYWdl
UHJlZmVyZW5jZXMgX2N1c3RvbU5hdmlnYXRvclBsYXRmb3JtXTsKLX0KLQotLSAoTlNTdHJpbmcg
KilkZXNjcmlwdGlvbgotewotICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpA
IjwlQCAlQD4iLCBzZWxmLmNsYXNzLCBbX3dlYnBhZ2VQcmVmZXJlbmNlcyBkZXNjcmlwdGlvbl1d
OwotfQotCi0tIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAotewotICAgIHJldHVybiBbX3dlYnBh
Z2VQcmVmZXJlbmNlcyBfYXBpT2JqZWN0XTsKLX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzSW50
ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNlNTQ2MTMzOGU5MGY3MzQ2
ZmU4MGMyNWE5YmIyZTU4MDI4NTk5OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0
ZVBvbGljaWVzSW50ZXJuYWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXMuaCIKLSNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KLQotQGNsYXNzIFdLV2VicGFnZVByZWZlcmVuY2VzOwotCi1AaW50ZXJmYWNlIF9X
S1dlYnNpdGVQb2xpY2llcyAoKQotewotQHBhY2thZ2UKLSAgICBSZXRhaW5QdHI8V0tXZWJwYWdl
UHJlZmVyZW5jZXM+IF93ZWJwYWdlUHJlZmVyZW5jZXM7Ci19Ci0KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKndlYnBhZ2VQcmVmZXJlbmNlczsK
LQotQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUuaAppbmRleCBiOTYwMWZlYWMyMWFhODUyMDgwZDFmZGY3MTRlOTFlOWM2MWVkZjIxLi44ZTM2
NzcwYmE2ZjFjYTcwNjE2ZWE3MzUzOTRjYzg2ZTRhODhkNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtMjA0LDggKzIwNCw2IEBA
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25EZWNpc2lvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyIDogMTsK
ICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQ
cmVmZXJlbmNlc1VzZXJJbmZvRGVjaXNpb25IYW5kbGVyIDogMTsKLSAgICAgICAgYm9vbCB3ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQ
b2xpY2llcyA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9u
SGFuZGxlciA6IDE7CiAKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkU3RhcnRQcm92aXNpb25hbE5h
dmlnYXRpb24gOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TmF2aWdhdGlvblN0YXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLm1tCmluZGV4IGU1ZGRmZTU2ZWVkYjFjYzUwMTcyN2RhZDE3NDFjNWVjZDZkYTVj
MzcuLjJjNWNhZDI4ZDQ2ZThiNWRmYTI0NzQ0NTZkMTY4NmEwNWU1MzM3OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KQEAgLTcwLDcg
KzcwLDYgQEAKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9X
S1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1NhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlSW50ZXJuYWwuaCIKLSNpbXBvcnQgIl9XS1dlYnNpdGVQb2xpY2ll
c0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uTWFjLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Q3JlZGVudGlhbC5oPgpAQCAtMTUyLDggKzE1MSw2IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpz
ZXROYXZpZ2F0aW9uRGVsZWdhdGUoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSkK
IAogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpk
ZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25I
YW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9uSGFuZGxl
cjopXTsKLSAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopXTsKLSAgICBtX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2Vy
SW5mb0RlY2lzaW9uSGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJl
bmNlc1VzZXJJbmZvRGVjaXNpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVm
ZXJlbmNlczp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNp
c2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6KV07
CiAKQEAgLTQ3Myw5ICs0NzAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNs
aWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJQYWdlUAogCiAgICAgaWYg
KCFtX25hdmlnYXRpb25TdGF0ZSB8fCAoIW1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNp
c2lvbkhhbmRsZXIKICAgICAgICAgJiYgIW1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRo
UHJlZmVyZW5jZXNVc2VySW5mb0RlY2lzaW9uSGFuZGxlcgotICAgICAgICAmJiAhbV9uYXZpZ2F0
aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcgotICAgICAg
ICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9uSGFuZGxlcldlYnNpdGVQ
b2xpY2llcwotICAgICAgICAmJiAhbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZv
RGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGljaWVzKSkgeworICAgICAgICAmJiAhbV9uYXZpZ2F0
aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc0RlY2lzaW9uSGFuZGxlcikpIHsKICAg
ICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt3ZWJQYWdlID0gbWFrZVJlZih3ZWJQYWdl
UHJveHkpLCBsaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uLCBk
ZWZhdWx0V2Vic2l0ZVBvbGljaWVzXSAoYm9vbCBpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAg
ICAgICAgICAgIGlmIChpbnRlcmNlcHRlZE5hdmlnYXRpb24pIHsKICAgICAgICAgICAgICAgICBs
aXN0ZW5lci0+aWdub3JlKCk7CkBAIC01MTYsMzMgKzUxMSwyMCBAQCB2b2lkIE5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihX
ZWJQYWdlUAogCiAgICAgYm9vbCBkZWxlZ2F0ZUhhc1dlYnBhZ2VQcmVmZXJlbmNlcyA9IG1fbmF2
aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJlZmVyZW5jZXNEZWNpc2lvbkhhbmRsZXIKICAg
ICAgICAgfHwgbV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhQcmVmZXJlbmNlc1VzZXJJ
bmZvRGVjaXNpb25IYW5kbGVyOwotICAgIGJvb2wgZGVsZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMg
PSBtX25hdmlnYXRpb25TdGF0ZS0+bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBvbGlj
aWVzIHx8IG1fbmF2aWdhdGlvblN0YXRlLT5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Vc2VySW5mb0RlY2lzaW9uSGFuZGxl
cldlYnNpdGVQb2xpY2llczsKIAogICAgIGF1dG8gc2VsZWN0b3JGb3JDb21wbGV0aW9uSGFuZGxl
ckNoZWNrZXIgPSAoWyZdICgpIC0+IFNFTCB7CiAgICAgICAgIGlmIChkZWxlZ2F0ZUhhc1dlYnBh
Z2VQcmVmZXJlbmNlcykKICAgICAgICAgICAgIHJldHVybiBtX25hdmlnYXRpb25TdGF0ZS0+bV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uV2l0aFByZWZlcmVuY2VzRGVjaXNpb25IYW5kbGVyID8gQHNlbGVjdG9yKHdlYlZpZXc6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lvbkhhbmRs
ZXI6KSA6IEBzZWxlY3Rvcihfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OnByZWZlcmVuY2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjopOwotICAgICAgICBpZiAoZGVs
ZWdhdGVIYXNXZWJzaXRlUG9saWNpZXMpCi0gICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF93
ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOik7
CiAgICAgICAgIHJldHVybiBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjopOwogICAgIH0pKCk7CiAKICAgICBhdXRvIGNoZWNr
ZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobmF2aWdhdGlvbkRlbGVn
YXRlLmdldCgpLCBzZWxlY3RvckZvckNvbXBsZXRpb25IYW5kbGVyQ2hlY2tlcik7Ci0gICAgYXV0
byBkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBvbGljaWVzID0gW2xvY2FsTGlzdGVu
ZXIgPSBXVEZNb3ZlKGxpc3RlbmVyKSwgbmF2aWdhdGlvbkFjdGlvbiwgY2hlY2tlciA9IFdURk1v
dmUoY2hlY2tlciksIHdlYlBhZ2VQcm94eSA9IG1ha2VSZWYod2ViUGFnZVByb3h5KSwgc3ViZnJh
bWVOYXZpZ2F0aW9uLCBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzXSAoV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5IGFjdGlvblBvbGljeSwgaWQgcG9saWNpZXNPclByZWZlcmVuY2VzKSBtdXRhYmxlIHsK
KyAgICBhdXRvIGRlY2lzaW9uSGFuZGxlcldpdGhQcmVmZXJlbmNlc09yUG9saWNpZXMgPSBbbG9j
YWxMaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBuYXZpZ2F0aW9uQWN0aW9uLCBjaGVja2Vy
ID0gV1RGTW92ZShjaGVja2VyKSwgd2ViUGFnZVByb3h5ID0gbWFrZVJlZih3ZWJQYWdlUHJveHkp
LCBzdWJmcmFtZU5hdmlnYXRpb24sIGRlZmF1bHRXZWJzaXRlUG9saWNpZXNdIChXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3kgYWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqcHJlZmVy
ZW5jZXMpIG11dGFibGUgewogICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJI
YXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNoZWNrZXItPmRp
ZENhbGxDb21wbGV0aW9uSGFuZGxlcigpOwogCi0gICAgICAgIFJlZlB0cjxBUEk6OldlYnNpdGVQ
b2xpY2llcz4gYXBpV2Vic2l0ZVBvbGljaWVzOwotICAgICAgICBpZiAoW3BvbGljaWVzT3JQcmVm
ZXJlbmNlcyBpc0tpbmRPZkNsYXNzOldLV2VicGFnZVByZWZlcmVuY2VzLmNsYXNzXSkKLSAgICAg
ICAgICAgIGFwaVdlYnNpdGVQb2xpY2llcyA9ICgoV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwb2xp
Y2llc09yUHJlZmVyZW5jZXMpLT5fd2Vic2l0ZVBvbGljaWVzLmdldCgpOwotQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICAgICAgZWxzZSBpZiAoW3BvbGljaWVzT3JQcmVm
ZXJlbmNlcyBpc0tpbmRPZkNsYXNzOl9XS1dlYnNpdGVQb2xpY2llcy5jbGFzc10pCi0gICAgICAg
ICAgICBhcGlXZWJzaXRlUG9saWNpZXMgPSBbcG9saWNpZXNPclByZWZlcmVuY2VzIHdlYnBhZ2VQ
cmVmZXJlbmNlc10tPl93ZWJzaXRlUG9saWNpZXMuZ2V0KCk7Ci0gICAgICAgIGVsc2UgaWYgKHBv
bGljaWVzT3JQcmVmZXJlbmNlcykKLSAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0lu
dmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJFeHBlY3RlZCBwb2xpY2llcyBvZiBjbGFz
cyAlQCwgYnV0IGdvdCAlQCIsIE5TU3RyaW5nRnJvbUNsYXNzKF9XS1dlYnNpdGVQb2xpY2llcy5j
bGFzcyksIFtwb2xpY2llc09yUHJlZmVyZW5jZXMgY2xhc3NdXTsKLUFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAotICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcGlXZWJzaXRlUG9s
aWNpZXMgPSBkZWZhdWx0V2Vic2l0ZVBvbGljaWVzOworICAgICAgICBSZWZQdHI8QVBJOjpXZWJz
aXRlUG9saWNpZXM+IGFwaVdlYnNpdGVQb2xpY2llcyA9IHByZWZlcmVuY2VzID8gIHByZWZlcmVu
Y2VzLT5fd2Vic2l0ZVBvbGljaWVzLmdldCgpIDogZGVmYXVsdFdlYnNpdGVQb2xpY2llczsKIAog
ICAgICAgICBpZiAoYXBpV2Vic2l0ZVBvbGljaWVzKSB7CiAgICAgICAgICAgICBpZiAoYXBpV2Vi
c2l0ZVBvbGljaWVzLT53ZWJzaXRlRGF0YVN0b3JlKCkgJiYgc3ViZnJhbWVOYXZpZ2F0aW9uKQpA
QCAtNTk3LDE3ICs1NzksNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAgICAgICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS0+
bV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246d3JhcHBlcihuYXZpZ2F0
aW9uQWN0aW9uKSBwcmVmZXJlbmNlczp3cmFwcGVyKGRlZmF1bHRXZWJzaXRlUG9saWNpZXMpIGRl
Y2lzaW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJl
ZmVyZW5jZXNPclBvbGljaWVzKSkuZ2V0KCldOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBb
KGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2Vi
VmlldzptX25hdmlnYXRpb25TdGF0ZS0+bV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246d3JhcHBlcihuYXZpZ2F0aW9uQWN0aW9uKSBwcmVmZXJlbmNlczp3cmFwcGVyKGRl
ZmF1bHRXZWJzaXRlUG9saWNpZXMpIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQ8
TlNTZWN1cmVDb2Rpbmc+Pih1c2VySW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRs
ZXI6bWFrZUJsb2NrUHRyKFdURk1vdmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQ
b2xpY2llcykpLmdldCgpXTsKLSAgICB9IGVsc2UgaWYgKGRlbGVnYXRlSGFzV2Vic2l0ZVBvbGlj
aWVzKSB7Ci0gICAgICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFdURk1v
dmUoZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcykpOwotICAgICAgICBp
ZiAobV9uYXZpZ2F0aW9uU3RhdGUtPm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vi
c2l0ZVBvbGljaWVzKSB7Ci0gICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgotICAgICAgICAgICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPilu
YXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUtPm1fd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOndyYXBwZXIobmF2aWdhdGlvbkFjdGlvbikg
dXNlckluZm86dXNlckluZm8gPyBzdGF0aWNfY2FzdDxpZCA8TlNTZWN1cmVDb2Rpbmc+Pih1c2Vy
SW5mby0+d3JhcHBlcigpKSA6IG5pbCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdl
dCgpXTsKLSAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KLSAgICAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2
aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLT5tX3dlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp3cmFwcGVyKG5hdmlnYXRpb25BY3Rpb24pIGRl
Y2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotICAgICAgICAgICAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgIH0KICAgICB9IGVsc2UgewogICAg
ICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IFtkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5j
ZXNPclBvbGljaWVzID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXJXaXRoUHJlZmVyZW5jZXNPclBv
bGljaWVzKV0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBhY3Rpb25Qb2xpY3kpIG11dGFibGUg
ewogICAgICAgICAgICAgZGVjaXNpb25IYW5kbGVyV2l0aFByZWZlcmVuY2VzT3JQb2xpY2llcyhh
Y3Rpb25Qb2xpY3ksIG5pbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCmluZGV4IGRjNTBjZDJjNTE1MGQ1NTc5ODU0YWI3ZTY1ZTc1ZDYyNTVlM2IwOWMu
LmNiM2Y4YWU4N2I5NzkzNDVlMzRlMWQ4ZTZmNzEwZjlhNTBhYjk3M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00MDg3LDcgKzQwODcsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2luZ0V4aXRlZChpZCA8TlNEcmFnZ2luZ0luZm8+IGRy
YWdnaW5nSW5mbykKIHsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnQoW21fdmlldyBjb252
ZXJ0UG9pbnQ6ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24gZnJvbVZpZXc6bmlsXSk7CiAg
ICAgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsKFdlYkNvcmU6Omdsb2JhbFBvaW50KGRyYWdnaW5n
SW5mby5kcmFnZ2luZ0xvY2F0aW9uLCBbbV92aWV3IHdpbmRvd10pKTsKLSAgICBXZWJDb3JlOjpE
cmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBjb3JlRHJhZ09w
ZXJhdGlvbk1hc2soZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzayksIGFw
cGxpY2F0aW9uRmxhZ3NGb3JEcmFnKG1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSwgZHJhZ2dpbmdJ
bmZvKSwgYW55RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKCksIG1fcGFnZS0+d2ViUGFnZUlEKCkpOwor
ICAgIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9i
YWwsIGNvcmVEcmFnT3BlcmF0aW9uTWFzayhkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVy
YXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcobV92aWV3LmdldEF1dG9yZWxlYXNl
ZCgpLCBkcmFnZ2luZ0luZm8pLCBXZWJDb3JlOjphbnlEcmFnRGVzdGluYXRpb25BY3Rpb24oKSwg
bV9wYWdlLT53ZWJQYWdlSUQoKSk7CiAgICAgbV9wYWdlLT5kcmFnRXhpdGVkKGRyYWdEYXRhLCBk
cmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLm5hbWUpOwogICAgIG1fcGFnZS0+cmVzZXRD
dXJyZW50RHJhZ0luZm9ybWF0aW9uKCk7CiAgICAgZHJhZ2dpbmdJbmZvLm51bWJlck9mVmFsaWRJ
dGVtc0ZvckRyb3AgPSBtX2luaXRpYWxOdW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wOwpAQCAtNDEw
Myw3ICs0MTAzLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybURyYWdPcGVyYXRpb24oaWQg
PE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCiB7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQg
Y2xpZW50KFttX3ZpZXcgY29udmVydFBvaW50OmRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9u
IGZyb21WaWV3Om5pbF0pOwogICAgIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbChXZWJDb3JlOjpn
bG9iYWxQb2ludChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiwgW21fdmlldyB3aW5kb3dd
KSk7Ci0gICAgV2ViQ29yZTo6RHJhZ0RhdGEgKmRyYWdEYXRhID0gbmV3IFdlYkNvcmU6OkRyYWdE
YXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIGNvcmVEcmFnT3BlcmF0aW9uTWFzayhk
cmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFn
c0ZvckRyYWcobV92aWV3LmdldEF1dG9yZWxlYXNlZCgpLCBkcmFnZ2luZ0luZm8pLCBhbnlEcmFn
RGVzdGluYXRpb25BY3Rpb24oKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CisgICAgV2ViQ29yZTo6
RHJhZ0RhdGEgKmRyYWdEYXRhID0gbmV3IFdlYkNvcmU6OkRyYWdEYXRhKGRyYWdnaW5nSW5mbywg
Y2xpZW50LCBnbG9iYWwsIGNvcmVEcmFnT3BlcmF0aW9uTWFzayhkcmFnZ2luZ0luZm8uZHJhZ2dp
bmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcobV92aWV3Lmdl
dEF1dG9yZWxlYXNlZCgpLCBkcmFnZ2luZ0luZm8pLCBXZWJDb3JlOjphbnlEcmFnRGVzdGluYXRp
b25BY3Rpb24oKSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CiAKICAgICBOU0FycmF5ICp0eXBlcyA9
IGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQudHlwZXM7CiAgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGU7CkBAIC00MzQ2LDggKzQzNDYsOCBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShXZWJDb3JlOjpJbWFn
ZSogaW1hZ2UsIE5TU3RyaW5nICpmaWxlbgogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9t
RGF0YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAg
W3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOwot
ICAgICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOworICAgICAgICBbdHlwZXMg
YWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07
CisgICAgICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAg
ICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAgICAgICBjdXN0
b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNE
YXRhKCk7CiAgICAgfQpAQCAtNDM2NSw3ICs0MzY1LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0gICAgICAg
IFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFtwYXN0ZWJvYXJkIHNl
dERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CiAKICAgICBtX3Byb21pc2VkSW1hZ2UgPSBpbWFn
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDUxNGIxZTA2ZDk2NmJmYmI4MmUyNTYwMjAxMzVkOTlkNGMwMDU4NmQuLjAwZmQ5ZDM2
MDY0NGEwN2NjN2IyMjM2YzE1ZjJlNGI2YjQ3ZTY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI4NCw4ICsxMjg0LDYgQEAKIAkJ
NUNBRERFMDUyMTUwNDZCRDAwNjdEMzA5IC8qIFdLV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3NDMwMEUyMTUwMDQ5MjAwNEJGQTE3
IC8qIFdLV2ViUHJvY2Vzcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTVDQUZERTQ1MjEzMDg0NjMwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQUZERTQyMjEz
MDg0MzUwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1Q0FGREU0NzIxMzA4NDZBMDBCMUY3RTEgLyogX1dL
SW5zcGVjdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDQUZERTQ0MjEzMDg0MzYwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5h
bC5oICovOyB9OwotCQk1Q0IyMzc4QzFERjBERTZFMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGlj
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0Iy
Mzc4OTFERjBERDQzMDAxMTdBQTMgLyogX1dLV2Vic2l0ZVBvbGljaWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNUNCMjM3OEUxREYwRTBEMzAw
MTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0IyMzc4RDFERjBFMEMyMDAxMTdBQTMgLyog
X1dLV2Vic2l0ZVBvbGljaWVzSW50ZXJuYWwuaCAqLzsgfTsKIAkJNUNCNkFFNDQyNjA5Nzk5QzAw
QjZFRDVBIC8qIFJlYXNvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUNCNkFFNDMyNjA5Nzk5QzAwQjZFRDVBIC8qIFJlYXNvblNQSS5oICovOyB9
OwogCQk1Q0I3QUZFMDIzQzUyQ0U1MDBFNDlDRjMgLyogX1dLUmVzb3VyY2VMb2FkRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQjdBRkRG
MjNDNTJDQkMwMEU0OUNGMyAvKiBfV0tSZXNvdXJjZUxvYWREZWxlZ2F0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDQjdBRkU3MjNDNjgyMDcw
MEU0OUNGMyAvKiBSZXNvdXJjZUxvYWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0I3QUZFNjIzQzY4MUIwMDBFNDlDRjMgLyogUmVzb3VyY2VM
b2FkSW5mby5oICovOyB9OwpAQCAtNDUxMCw5ICs0NTA4LDYgQEAKIAkJNUNBRkRFNDIyMTMwODQz
NTAwQjFGN0UxIC8qIF9XS0luc3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tJbnNwZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNBRkRF
NDMyMTMwODQzNjAwQjFGN0UxIC8qIF9XS0luc3BlY3Rvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0luc3BlY3Rvci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUNBRkRFNDQyMTMwODQzNjAwQjFGN0UxIC8qIF9XS0luc3BlY3RvckludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjIzNzg5MURGMERENDMwMDEx
N0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLV2Vic2l0ZVBvbGljaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTVDQjIzNzhBMURGMERENDMwMDExN0FBMyAvKiBfV0tXZWJzaXRlUG9saWNpZXMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJzaXRlUG9saWNpZXMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDQjIzNzhEMURGMEUwQzIwMDExN0FBMyAv
KiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1Q0I2QUU0MzI2MDk3OTlDMDBCNkVENUEgLyogUmVhc29uU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYXNvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1Q0I3QUZEQTIzQzQzRTY0MDBFNDlDRjMgLyogQVBJUmVzb3VyY2VMb2Fk
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVJlc291cmNlTG9h
ZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0I3QUZERDIzQzUyNzNE
MDBFNDlDRjMgLyogUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTgwOTUsOSArODA5MCw2IEBACiAJCQkJNTEyMEM4MzQxRTVCNzE1NzAwMjVCMjUw
IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tICovLAogCQkJCTVDNDZDMEFF
MjFCNzFBRTIwMEJDNTk5MSAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbkludGVy
bmFsLmggKi8sCiAJCQkJNDFDNTM3OEYyMUYxMzYyRDAwOEIxRkFEIC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmVEZWxlZ2F0ZS5oICovLAotCQkJCTVDQjIzNzg5MURGMERENDMwMDExN0FBMyAvKiBfV0tX
ZWJzaXRlUG9saWNpZXMuaCAqLywKLQkJCQk1Q0IyMzc4QTFERjBERDQzMDAxMTdBQTMgLyogX1dL
V2Vic2l0ZVBvbGljaWVzLm1tICovLAotCQkJCTVDQjIzNzhEMURGMEUwQzIwMDExN0FBMyAvKiBf
V0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oICovLAogCQkJCUY0MTA1NjYxMjEzMDY5OUEwMDky
MjgxRCAvKiBBUElBdHRhY2htZW50Q29jb2EubW0gKi8sCiAJCQkJN0NFRkE5NjAxQUMwOTk5MzAw
QjkxMEZEIC8qIEFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0gKi8sCiAJCQkJNUNBNDZF
N0EyMUYxQTIzOTAwQ0U4NkI0IC8qIEFQSUhUVFBDb29raWVTdG9yZUNvY29hLm1tICovLApAQCAt
MTE3NTAsOCArMTE3NDIsNiBAQAogCQkJCTUxMjBDODM1MUU1Qjc0QjkwMDI1QjI1MCAvKiBfV0tX
ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNTM3
OTAyMUYxNUI1NTAwOEIxRkFEIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE0QTkzQjcxQUVCMDhFQTAwMTUwRTlDIC8qIF9XS1dlYnNpdGVEYXRh
U3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNUNCMjM3OEMxREYwREU2RTAwMTE3
QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNUNCMjM3OEUx
REYwRTBEMzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llc0ludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTE1REM3MjE5MUQ4MkRBMDBEQTgwNzIgLyogX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTlERDNDMDFEMDdEMTY4MDBBQzgyM0IgLyog
X1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
ODJENUI1MUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAx
MDVmOThlNzMyOTIxMzBhODljYWRjY2M4MDQ4MWRhODg1NjJhMDdkLi4xM2QwY2EwOGFiYjZkZTk5
YjZmOWNhZGRlNTM4ODcyNzUwNGMzNzBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMTUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgX1dL
V2Vic2l0ZVBvbGljaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyOTMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vic2l0ZVBvbGljaWVzLm1t
OgorICAgICAgICAoLVtDdXN0b21Vc2VyQWdlbnREZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bQ3VzdG9tSmF2YVNjcmlwdFVzZXJBZ2VudERlbGVnYXRlIHdlYlZp
ZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpwcmVmZXJlbmNlczpkZWNpc2lvbkhh
bmRsZXI6XSk6CisgICAgICAgICgtW0N1c3RvbU5hdmlnYXRvclBsYXRmb3JtRGVsZWdhdGUgd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnByZWZlcmVuY2VzOmRlY2lzaW9u
SGFuZGxlcjpdKToKKyAgICAgICAgKC1bUG9wVXBQb2xpY2llc0RlbGVnYXRlIHdlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1BvcFVwUG9saWNpZXNEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb246cHJlZmVyZW5jZXM6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtDdXN0
b21Vc2VyQWdlbnREZWxlZ2F0ZSBfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uOnVzZXJJbmZvOmRlY2lzaW9uSGFuZGxlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bQ3Vz
dG9tSmF2YVNjcmlwdFVzZXJBZ2VudERlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtDdXN0b21OYXZpZ2F0b3JQbGF0Zm9ybURlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtQb3BVcFBvbGljaWVzRGVsZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisKIDIw
MjEtMDUtMTUgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IHJlcG9ydC1ub24taW5jbHVzaXZlLWxhbmd1YWdlIHNob3VsZCBza2lwIG5vZGVfbW9kdWxlcyBk
aXJlY3RvcnkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2Vic2l0ZVBvbGljaWVzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJzaXRlUG9saWNpZXMubW0KaW5kZXggOGU3NzAwNjhkMzEyZTQyNDNiMTIxYWQ1Mzk0
OWFhY2UwYzFlMDQzZS4uMjkzMjE0MGQ2M2Y3MWRjMDc0OTEzNmU0NzIzOTAzZjNhZGIzZmIxMCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJzaXRl
UG9saWNpZXMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
ZWJzaXRlUG9saWNpZXMubW0KQEAgLTYyOSwyNyArNjI5LDYgQEAgVEVTVChXZWJwYWdlUHJlZmVy
ZW5jZXMsIFdlYnNpdGVQb2xpY2llc1dpdGhCcmlkZ2luZ0Nhc3QpCiAgICAgRVhQRUNUX1RSVUUo
ZGlkSW52b2tlRGVjaXNpb25IYW5kbGVyKTsKIH0KIAotVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMs
IFdlYnNpdGVQb2xpY2llc1dpdGhVbmV4cGVjdGVkVHlwZSkKLXsKLSAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwot
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzM2LCAyNzYpIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vic2l0ZVBvbGlj
aWVzTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7Ci0KLSAgICBfX2Jsb2NrIGJvb2wg
ZGlkQ2F0Y2hFeGNlcHRpb24gPSBmYWxzZTsKLSAgICBbZGVsZWdhdGUgc2V0RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbldpdGhXZWJzaXRlUG9saWNpZXM6XihXS05hdmlnYXRpb25BY3Rp
b24gKiwgV0tXZWJwYWdlUHJlZmVyZW5jZXMgKiwgdm9pZCAoXmRlY2lzaW9uSGFuZGxlcikoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSkgewotICAgICAg
ICBAdHJ5IHsKLSAgICAgICAgICAgIGlkIGZha2VQb2xpY2llcyA9IEAiSGVsbG8iOwotICAgICAg
ICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCAoV0tX
ZWJwYWdlUHJlZmVyZW5jZXMgKilmYWtlUG9saWNpZXMpOwotICAgICAgICB9IEBjYXRjaCAoTlNF
eGNlcHRpb24gKmV4Y2VwdGlvbikgewotICAgICAgICAgICAgZGlkQ2F0Y2hFeGNlcHRpb24gPSB0
cnVlOwotICAgICAgICB9Ci0gICAgfV07Ci0KLSAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwotICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAi
c2ltcGxlIl07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDYXRjaEV4Y2VwdGlv
bik7Ci19Ci0KIHN0cnVjdCBQYXJzZWRSYW5nZSB7CiAgICAgUGFyc2VkUmFuZ2UoU3RyaW5nIHN0
cmluZykKICAgICB7CkBAIC0xMjEwLDkgKzExODksNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9hZENv
dW50OwogCiBAaW1wbGVtZW50YXRpb24gQ3VzdG9tVXNlckFnZW50RGVsZWdhdGUKIAotSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJkZXByZWNhdGVkLWltcGxlbWVudGF0aW9ucyIpCi0tICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gdXNlckluZm86KGlkIDxO
U1NlY3VyZUNvZGluZz4pdXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxl
cgotSUdOT1JFX1dBUk5JTkdTX0VORAorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24g
KiluYXZpZ2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXBy
ZWZlcmVuY2VzIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVm
ZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBhdXRvIHdlYnNpdGVQb2xpY2llcyA9
IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxvY10gaW5pdF0pOwogICAgIGlmIChu
YXZpZ2F0aW9uQWN0aW9uLnRhcmdldEZyYW1lLm1haW5GcmFtZSkKQEAgLTEzMDIsNyArMTI3OSw3
IEBAIFRFU1QoV2VicGFnZVByZWZlcmVuY2VzLCBXZWJzaXRlUG9saWNpZXNDdXN0b21Vc2VyQWdl
bnQpCiAKIEBpbXBsZW1lbnRhdGlvbiBDdXN0b21KYXZhU2NyaXB0VXNlckFnZW50RGVsZWdhdGUK
IAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHVz
ZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlk
ZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0
aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2Vz
IGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dl
YnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBhdXRvIHdlYnNpdGVQ
b2xpY2llcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxvY10gaW5pdF0pOwog
ICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLnRhcmdldEZyYW1lLm1haW5GcmFtZSkgewpAQCAtMTM5
OSw3ICsxMzc2LDcgQEAgVEVTVChXZWJwYWdlUHJlZmVyZW5jZXMsIFdlYnNpdGVQb2xpY2llc0N1
c3RvbVVzZXJBZ2VudEFzU2l0ZVNwZWNpZmljUXVpcmtzKQogCiBAaW1wbGVtZW50YXRpb24gQ3Vz
dG9tTmF2aWdhdG9yUGxhdGZvcm1EZWxlZ2F0ZQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlv
bkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4p
dXNlckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9uSGFuZGxlcgorLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246
KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gcHJlZmVyZW5jZXM6KFdLV2Vi
cGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIFdLV2VicGFnZVByZWZlcmVuY2VzICopKWRlY2lzaW9u
SGFuZGxlcgogewogICAgIGF1dG8gd2Vic2l0ZVBvbGljaWVzID0gYWRvcHROUyhbW1dLV2VicGFn
ZVByZWZlcmVuY2VzIGFsbG9jXSBpbml0XSk7CiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24udGFy
Z2V0RnJhbWUubWFpbkZyYW1lKQpAQCAtMTU2MCwxMiArMTUzNywxMiBAQCBURVNUKFdlYnBhZ2VQ
cmVmZXJlbmNlcywgV2Vic2l0ZVBvbGljaWVzRGV2aWNlT3JpZW50YXRpb25Bc2tBY2Nlc3MpCiAK
IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSlkZWNpc2lvbkhh
bmRsZXIKIHsKLSAgICAvLyBfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OmRlY2lzaW9uSGFuZGxlcjogc2hvdWxkIGJlIGNhbGxlZCBpbnN0ZWFkIGlmIGl0IGlzIGltcGxl
bWVudGVkLgorICAgIC8vIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjpw
cmVmZXJlbmNlczpkZWNpc2lvbkhhbmRsZXI6IHNob3VsZCBiZSBjYWxsZWQgaW5zdGVhZCBpZiBp
dCBpcyBpbXBsZW1lbnRlZC4KICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CiAgICAgZGVjaXNpb25I
YW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKIH0KIAotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
OihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQcmVmZXJlbmNlcyAq
KSlkZWNpc2lvbkhhbmRsZXIKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZp
Z2F0aW9uQWN0aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVu
Y2VzIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBX
S1dlYnBhZ2VQcmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBhdXRvIHdlYnNp
dGVQb2xpY2llcyA9IGFkb3B0TlMoW1tXS1dlYnBhZ2VQcmVmZXJlbmNlcyBhbGxvY10gaW5pdF0p
OwogICAgIGlmIChfcG9wVXBQb2xpY3lGb3JVUkwpCg==
</data>
<flag name="commit-queue"
          id="449788"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>