<?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>80310</bug_id>
          
          <creation_ts>2012-03-05 12:05:52 -0800</creation_ts>
          <short_desc>Add support for hosting layers in the window server in WebKit2</short_desc>
          <delta_ts>2012-03-05 14:57:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>570922</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-03-05 12:05:52 -0800</bug_when>
    <thetext>Add support for hosting layers in the window server in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570979</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-03-05 13:06:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/10400246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570981</commentid>
    <comment_count>2</comment_count>
      <attachid>130190</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-03-05 13:07:46 -0800</bug_when>
    <thetext>Created attachment 130190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571011</commentid>
    <comment_count>3</comment_count>
      <attachid>130190</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-05 13:48:10 -0800</bug_when>
    <thetext>Comment on attachment 130190
Patch

Attachment 130190 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11819166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571071</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-03-05 14:57:55 -0800</bug_when>
    <thetext>Committed r109804: &lt;http://trac.webkit.org/changeset/109804&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130190</attachid>
            <date>2012-03-05 13:07:46 -0800</date>
            <delta_ts>2012-03-05 13:48:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80310-20120305130751.patch</filename>
            <type>text/plain</type>
            <size>50591</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
OGQ1NmU5OWIwOGRkYTFkYTgyOWZiYjgzZjkzMmJjNWYxOGJiYjRhLi44ZDdlYzI5ZGFhMTYyODI4
NmQzYjU1YjFkYzlhN2Y0YzhlNzNmN2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0wMy0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBob3N0aW5nIGxheWVycyBpbiB0aGUgd2luZG93IHNlcnZl
ciBpbiBXZWJLaXQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDQwMDI0Nj4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMzEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KyAgICAgICAgQWRkIEhBVkVfTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSLgorCiAyMDEy
LTAzLTA1ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCBmb3IgIUVOQUJMRShKSVQpIGFmdGVyIHIxMDk3MDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMTg3NDRlYjI5ZWZlYTJkOTBiZDk3ZjAyM2M4M2ZiNDNiYzhjMzU2Ny4uZjNk
ZDdhZjA0YjJhODAxMDQwMmFhNDU3MTA3MmU3M2MwYjQwYzRkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk2IEBACisyMDEyLTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGhvc3RpbmcgbGF5ZXJzIGluIHRoZSB3aW5kb3cgc2VydmVy
IGluIFdlYktpdDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwNDAwMjQ2PgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1cnJlbnRseSBvbmx5
IHdvcmtzIGlmIHlvdSBhcmUgdXNpbmcgVGlsZWRDb3JlQW5pbWF0aW9uIGRyYXdpbmcgbW9kZWwu
CisKKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1JlbW90ZUxheWVyQ2xpZW50LmguCisg
ICAgICAgICogUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW06IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvUmVtb3RlTGF5ZXJDbGllbnQubW0uCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpMYXllckhvc3RpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yV2luZG93U2VydmVy
KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6fkxheWVySG9zdGluZ0Nv
bnRleHQpOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpzZXRSb290TGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpyb290TGF5ZXIpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpjb250ZXh0SUQpOgorICAgICAg
ICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjppbnZhbGlkYXRlKToKKyAgICAgICAgUmVu
YW1lZCBSZW1vdGVMYXllckNsaWVudCB0byBMYXllckhvc3RpbmdDb250ZXh0IGFuZCBhZGQgYWJp
bGl0eSB0byB1c2UgdGhlIHdpbmRvdyBzZXJ2ZXIKKyAgICAgICAgYXMgdGhlIHJlbW90ZSBjb250
ZXh0LgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3Bw
OgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAg
ICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAg
ICAgICBVcGRhdGUgZm9yIG5ldyBuYW1lcy4KKworICAgICAgICAqIFNoYXJlZC9MYXllclRyZWVD
b250ZXh0Lmg6CisgICAgICAgIEFkZCBMYXllckhvc3RpbmdNb2RlIGVudW0uCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1Bh
Z2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpsYXllckhvc3RpbmdNb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKToKKyAgICAgICAgQWRkIFBhZ2VDbGllbnQgYWNjZXNzIHBvaW50cyB0byBn
ZXQgdGhlIGN1cnJlbnQgbGF5ZXIgaG9zdGluZyBtb2RlLAorICAgICAgICBhbmQgYSBob29rIHRv
IHRlbGwgdGhlIHVuZGVybHlpbmcgdmlldyB0aGF0IHRoZSBsYXllciBob3N0aW5nIGNvbnRleHQK
KyAgICAgICAgaGFzIGNoYW5nZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAg
ICAgICAgKC1bV0tWaWV3IF91cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZTpXZWJLaXQ6
Ol0pOgorICAgICAgICBJbXBsZW1lbnQgcmVzcG9uZGluZyB0byBhIG5ldyBsYXllciBob3N0aW5n
IGNvbnRleHQgYXMgYSBzaW1wbGUKKyAgICAgICAgZXhpdCBhbmQgcmUtZW50cmFuY2Ugb2YgY29t
cG9zaXRpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpsYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdl
KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5OjpsYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICBQaXBlIGxheWVyIGhvc3RpbmcgY2hhbmdlcyBhcm91bmQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6bGF5ZXJIb3N0aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2Up
OgorICAgICAgICBDYWNoZSB0aGUgY3VycmVudCBsYXllciBob3N0aW5nIG1vZGUgc28gd2UgZG9u
J3Qgb3ZlcnplYWxvdXNseQorICAgICAgICB0ZWxsIHRoZSBXZWJQcm9jZXNzIHRvIHJlc2V0IGl0
cyBjb250ZXh0LiBSZS1jaGVjayBsYXllciBob3N0aW5nCisgICAgICAgIG1vZGUgZWFjaCB0aW1l
IHdlIGFyZSBhZGRlZC9yZW1vdmVkIGZyb20gYSB3aW5kb3cuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWFjLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJGdWxsU2NyZWVuTWFuYWdlck1hYy5tbToKKyAg
ICAgICAgVXBkYXRlIGZvciBuZXcgbmFtZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnNldERldmlj
ZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnNldExheWVySG9z
dGluZ01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgUGlwZSBsYXllciBob3N0aW5nIGNoYW5nZXMgYXJvdW5kLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL21hYy9MYXllclRyZWVIb3N0Q0FNYWMuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvY2EvbWFjL0xheWVyVHJlZUhvc3RDQU1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBTWFjOjp+TGF5ZXJUcmVlSG9zdENB
TWFjKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdENBTWFjOjpwbGF0Zm9ybUluaXRp
YWxpemUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0Q0FNYWM6OmludmFsaWRhdGUp
OgorICAgICAgICBVcGRhdGUgZm9yIG5ldyBuYW1lcy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6c2V0TGF5ZXJIb3N0aW5nTW9kZSk6CisgICAgICAgIFJlc3BvbmQgdG8g
YSBjaGFuZ2UgaW4gdGhlIGxheWVyIGhvc3RpbmcgbW9kZSBieSBpbnZhbGlkYXRpbmcgb3VyIG9s
ZCBjb250ZXh0LAorICAgICAgICBtYWtpbmcgYSBuZXcgb25lIG9mIHRoZSByaWdodCB0eXBlLCBh
bmQgaW5mb3JtaW5nIHRoZSBVSVByb2Nlc3Mgb2Ygb3VyIG5ldyBjb250ZXh0LgorCisgICAgICAg
ICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZp
bGVzLgorCiAyMDEyLTAzLTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igbm90aWZpY2F0aW9uIHJlcGxhY2VJZCBpbiBNYWMgV2ViS2l0IGFu
ZCBXSzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAzMmQ0NmI0ZTQxZWRl
YTY5NGZkOTBkOTg0MmM0YTM3NDQ1NzM5M2E3Li4xMTE4Mzk4YmU4ZmFiNzQwZGI0ZDMyNTc5NmE1
ZTk0ZWUzZjdhNWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC01NTgs
NiArNTU4LDkgQEAKICNpZiBkZWZpbmVkKEVOQUJMRV9WSURFTykKICNkZWZpbmUgRU5BQkxFX1ZJ
REVPX1RSQUNLIDEKICNlbmRpZgorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fTElPTikKKyNkZWZpbmUgSEFWRV9MQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIgMQor
I2VuZGlmCiAjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAqLwogCiAj
aWYgUExBVEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwYzNhZGY0
Y2U3ZDdlY2ZlZDFjZDE2ZjZiM2M1NjlmOTdmYWVjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCkBAIC0wLDAgKzEs
NjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIExheWVySG9zdGluZ0NvbnRleHRfaAorI2RlZmlu
ZSBMYXllckhvc3RpbmdDb250ZXh0X2gKKworI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgor
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBDQUxheWVyOwordHlwZWRl
ZiBzdHJ1Y3QgX19XS0NBQ29udGV4dFJlZiAqV0tDQUNvbnRleHRSZWY7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0IHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShMYXllckhvc3RpbmdDb250ZXh0KTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxMYXllckhvc3RpbmdDb250ZXh0PiBjcmVhdGVGb3JQb3J0KG1hY2hfcG9ydF90IHNlcnZl
clBvcnQpOworI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQorICAgIHN0
YXRpYyBQYXNzT3duUHRyPExheWVySG9zdGluZ0NvbnRleHQ+IGNyZWF0ZUZvcldpbmRvd1NlcnZl
cigpOworI2VuZGlmCisgICAgfkxheWVySG9zdGluZ0NvbnRleHQoKTsKKworICAgIHZvaWQgc2V0
Um9vdExheWVyKENBTGF5ZXIgKik7CisgICAgQ0FMYXllciAqcm9vdExheWVyKCkgY29uc3Q7CisK
KyAgICB1aW50MzJfdCBjb250ZXh0SUQoKSBjb25zdDsKKyAgICB2b2lkIGludmFsaWRhdGUoKTsK
KworICAgIExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIHsgcmV0dXJuIG1fbGF5
ZXJIb3N0aW5nTW9kZTsgfQorCitwcml2YXRlOgorICAgIExheWVySG9zdGluZ0NvbnRleHQobWFj
aF9wb3J0X3Qgc2VydmVyUG9ydCk7CisjaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19T
RVJWRVIpCisgICAgTGF5ZXJIb3N0aW5nQ29udGV4dCgpOworI2VuZGlmCisKKyAgICBMYXllckhv
c3RpbmdNb2RlIG1fbGF5ZXJIb3N0aW5nTW9kZTsKKyAgICBSZXRhaW5QdHI8V0tDQUNvbnRleHRS
ZWY+IG1fY29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
TGF5ZXJIb3N0aW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NGIzNWYwNWNlZDk5YTdjYTg4
MmM0ZTM3NmNlOWZlYzZmZTFmZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQpAQCAtMCwwICsxLDgyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0
LmgiCisKKyNpbXBvcnQgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NPd25QdHI8TGF5ZXJIb3N0
aW5nQ29udGV4dD4gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChtYWNoX3BvcnRf
dCBzZXJ2ZXJQb3J0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgTGF5ZXJIb3N0aW5nQ29u
dGV4dChzZXJ2ZXJQb3J0KSk7Cit9CisKK0xheWVySG9zdGluZ0NvbnRleHQ6OkxheWVySG9zdGlu
Z0NvbnRleHQobWFjaF9wb3J0X3Qgc2VydmVyUG9ydCkKK3sKKyAgICBtX2xheWVySG9zdGluZ01v
ZGUgPSBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsKKyAgICBtX2NvbnRleHQgPSBXS0NBQ29udGV4
dE1ha2VSZW1vdGVXaXRoU2VydmVyUG9ydChzZXJ2ZXJQb3J0KTsKK30KKworI2lmIEhBVkUoTEFZ
RVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQorUGFzc093blB0cjxMYXllckhvc3RpbmdDb250
ZXh0PiBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JXaW5kb3dTZXJ2ZXIoKQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTGF5ZXJIb3N0aW5nQ29udGV4dCk7Cit9CisKK0xheWVySG9z
dGluZ0NvbnRleHQ6OkxheWVySG9zdGluZ0NvbnRleHQoKQoreworICAgIG1fbGF5ZXJIb3N0aW5n
TW9kZSA9IExheWVySG9zdGluZ01vZGVJbldpbmRvd1NlcnZlcjsKKyAgICBtX2NvbnRleHQgPSBX
S0NBQ29udGV4dE1ha2VSZW1vdGVGb3JXaW5kb3dTZXJ2ZXIoKTsKK30KKyNlbmRpZgorCitMYXll
ckhvc3RpbmdDb250ZXh0Ojp+TGF5ZXJIb3N0aW5nQ29udGV4dCgpCit7Cit9CisKK3ZvaWQgTGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Um9vdExheWVyKENBTGF5ZXIgKnJvb3RMYXllcikKK3sKKyAg
ICBXS0NBQ29udGV4dFNldExheWVyKG1fY29udGV4dC5nZXQoKSwgcm9vdExheWVyKTsKK30KKwor
Q0FMYXllciAqTGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExheWVyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gV0tDQUNvbnRleHRHZXRMYXllcihtX2NvbnRleHQuZ2V0KCkpOworfQorCit1aW50MzJf
dCBMYXllckhvc3RpbmdDb250ZXh0Ojpjb250ZXh0SUQoKSBjb25zdAoreworICAgIHJldHVybiBX
S0NBQ29udGV4dEdldENvbnRleHRJZChtX2NvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIExheWVy
SG9zdGluZ0NvbnRleHQ6OmludmFsaWRhdGUoKQoreworICAgIFdLQ0FDb250ZXh0SW52YWxpZGF0
ZShtX2NvbnRleHQuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SZW1vdGVMYXllckNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1JlbW90ZUxheWVyQ2xpZW50LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE0YmI0ZjY0Y2Y4ODBiMDgyMjgyNmI3NGY0MDZjNWZhMGQwOTA4
M2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL1JlbW90ZUxheWVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSZW1vdGVMYXllckNsaWVudF9o
Ci0jZGVmaW5lIFJlbW90ZUxheWVyQ2xpZW50X2gKLQotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgotCi1PQkpDX0NMQVNTIENBTGF5ZXI7Ci0KLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCi1PQkpDX0NMQVNTIENBUmVtb3RlTGF5ZXJDbGllbnQ7Ci10eXBlZGVmIENBUmVt
b3RlTGF5ZXJDbGllbnQgKlBsYXRmb3JtUmVtb3RlTGF5ZXJDbGllbnQ7Ci0jZWxzZQotdHlwZWRl
ZiBzdHJ1Y3QgX19XS0NBUmVtb3RlTGF5ZXJDbGllbnRSZWYqIFdLQ0FSZW1vdGVMYXllckNsaWVu
dFJlZjsKLXR5cGVkZWYgV0tDQVJlbW90ZUxheWVyQ2xpZW50UmVmIFBsYXRmb3JtUmVtb3RlTGF5
ZXJDbGllbnQ7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFJlbW90ZUxh
eWVyQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZW1vdGVMYXllckNsaWVudCk7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UmVtb3RlTGF5ZXJDbGllbnQ+IGNyZWF0
ZShtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0LCBDQUxheWVyICpyb290TGF5ZXIpOwotICAgIH5SZW1v
dGVMYXllckNsaWVudCgpOwotCi0gICAgdWludDMyX3QgY2xpZW50SUQoKSBjb25zdDsKLSAgICB2
b2lkIGludmFsaWRhdGUoKTsKLQotcHJpdmF0ZToKLSAgICBSZW1vdGVMYXllckNsaWVudChtYWNo
X3BvcnRfdCBzZXJ2ZXJQb3J0LCBDQUxheWVyICpyb290TGF5ZXIpOwotCi0gICAgUmV0YWluUHRy
PFBsYXRmb3JtUmVtb3RlTGF5ZXJDbGllbnQ+IG1fcGxhdGZvcm1DbGllbnQ7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFJlbW90ZUxheWVyQ2xpZW50X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SZW1vdGVMYXllckNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SZW1vdGVMYXllckNsaWVudC5tbQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjE4YmVlMTExNGViZTJjNmU3NjRkNGNmYjBlOGRiYmMz
ZTIyZDljZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvUmVtb3RlTGF5ZXJDbGllbnQubW0KKysrIC9kZXYv
bnVsbApAQCAtMSw3NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0j
aW1wb3J0ICJSZW1vdGVMYXllckNsaWVudC5oIgotCi0jaW1wb3J0IDx3dGYvUGFzc093blB0ci5o
PgotCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotI2ltcG9ydCA8UXVh
cnR6Q29yZS9DQVJlbW90ZUxheWVyQ2xpZW50Lmg+Ci0jZWxzZQotI2ltcG9ydCA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVBhc3NPd25Q
dHI8UmVtb3RlTGF5ZXJDbGllbnQ+IFJlbW90ZUxheWVyQ2xpZW50OjpjcmVhdGUobWFjaF9wb3J0
X3Qgc2VydmVyUG9ydCwgQ0FMYXllciAqcm9vdExheWVyKQotewotICAgIHJldHVybiBhZG9wdFB0
cihuZXcgUmVtb3RlTGF5ZXJDbGllbnQoc2VydmVyUG9ydCwgcm9vdExheWVyKSk7Ci19Ci0KLVJl
bW90ZUxheWVyQ2xpZW50OjpSZW1vdGVMYXllckNsaWVudChtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0
LCBDQUxheWVyICpyb290TGF5ZXIpCi17Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQotICAgIG1fcGxhdGZvcm1DbGllbnQgPSBhZG9wdE5TKFtbQ0FSZW1vdGVMYXllckNs
aWVudCBhbGxvY10gaW5pdFdpdGhTZXJ2ZXJQb3J0OnNlcnZlclBvcnRdKTsKLSAgICBtX3BsYXRm
b3JtQ2xpZW50LmdldCgpLmxheWVyID0gcm9vdExheWVyOwotI2Vsc2UKLSAgICBtX3BsYXRmb3Jt
Q2xpZW50ID0gV0tDQVJlbW90ZUxheWVyQ2xpZW50TWFrZVdpdGhTZXJ2ZXJQb3J0KHNlcnZlclBv
cnQpOwotICAgIFdLQ0FSZW1vdGVMYXllckNsaWVudFNldExheWVyKG1fcGxhdGZvcm1DbGllbnQu
Z2V0KCksIHJvb3RMYXllcik7Ci0jZW5kaWYKLX0KLQotUmVtb3RlTGF5ZXJDbGllbnQ6On5SZW1v
dGVMYXllckNsaWVudCgpCi17Ci19Ci0KLXVpbnQzMl90IFJlbW90ZUxheWVyQ2xpZW50OjpjbGll
bnRJRCgpIGNvbnN0Ci17Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQot
ICAgIHJldHVybiBtX3BsYXRmb3JtQ2xpZW50LmdldCgpLmNsaWVudElkOwotI2Vsc2UKLSAgICBy
ZXR1cm4gV0tDQVJlbW90ZUxheWVyQ2xpZW50R2V0Q2xpZW50SWQobV9wbGF0Zm9ybUNsaWVudC5n
ZXQoKSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBSZW1vdGVMYXllckNsaWVudDo6aW52YWxpZGF0ZSgp
Ci17Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQotICAgIFttX3BsYXRm
b3JtQ2xpZW50LmdldCgpIGludmFsaWRhdGVdOwotI2Vsc2UKLSAgICBXS0NBUmVtb3RlTGF5ZXJD
bGllbnRJbnZhbGlkYXRlKG1fcGxhdGZvcm1DbGllbnQuZ2V0KCkpOwotI2VuZGlmCi19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDQyNzUwOWI0N2Q4ZDM3MTNhZjc3
ZjJlMzJmNjFlZmVkYzUxN2UwZDEuLjFmZDFiMTEyNDZlYzJlOWE4NGUxMTc2MGM1M2M4OTBkOGZj
NmY3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKLSNpbmNsdWRlICJSZW1vdGVMYXll
ckNsaWVudC5oIgorI2luY2x1ZGUgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNlbmRpZgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDJlMTI0NjRhOGU3MTBkNGYzYjNi
YTU1MDNmMmY2MmQ4ZDVmZTNiNGMuLmU4NjA5MjVjMWVmYTZhMTRkMDEzYzY1YjU5YTRiYmFjNDE2
ZWM5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5D
b250cm9sbGVyUHJveHkuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBSZW1vdGVMYXllckNsaWVudDsKK2NsYXNzIExh
eWVySG9zdGluZ0NvbnRleHQ7CiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CiBjbGFzcyBXZWJQcm9j
ZXNzQ29ubmVjdGlvbjsKIHN0cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7CkBAIC0xODYs
NyArMTg2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNDb21wbGV4VGV4dElucHV0RW5hYmxl
ZDsKIAogICAgIC8vIEZvciBDQSBwbHVnLWlucywgdGhpcyBob2xkcyB0aGUgaW5mb3JtYXRpb24g
bmVlZGVkIHRvIGV4cG9ydCB0aGUgbGF5ZXIgaGllcmFyY2h5IHRvIHRoZSBVSSBwcm9jZXNzLgot
ICAgIE93blB0cjxSZW1vdGVMYXllckNsaWVudD4gbV9yZW1vdGVMYXllckNsaWVudDsKKyAgICBP
d25QdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gbV9sYXllckhvc3RpbmdDb250ZXh0OwogI2VuZGlm
CiAKICAgICAvLyBUaGUgY29udGVudHMgc2NhbGUgZmFjdG9yIG9mIHRoaXMgcGx1Zy1pbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xs
ZXJQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNv
bnRyb2xsZXJQcm94eU1hYy5tbQppbmRleCA3YmFjNjZhYWI4MTZlN2JiYTgyYTIzMGVjY2NmNmVi
MDYwODJmY2Q2Li5hYTJlYTQ5NzliNjg3MWE5MGNiODY5ODZkMWIzMDk4MzRkMWYyYTU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVy
UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
Q29udHJvbGxlclByb3h5TWFjLm1tCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoUExV
R0lOX1BST0NFU1MpCiAKKyNpbXBvcnQgIkxheWVySG9zdGluZ0NvbnRleHQuaCIKICNpbXBvcnQg
IlBsdWdpblByb2Nlc3MuaCIKICNpbXBvcnQgIlBsdWdpblByb3h5TWVzc2FnZXMuaCIKLSNpbXBv
cnQgIlJlbW90ZUxheWVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAKQEAgLTU5LDI1ICs1OSwyNiBA
QCB2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBp
ZiAoIXBsYXRmb3JtTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghbV9yZW1v
dGVMYXllckNsaWVudCk7Ci0gICAgbV9yZW1vdGVMYXllckNsaWVudCA9IFJlbW90ZUxheWVyQ2xp
ZW50OjpjcmVhdGUoUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0KCksIHBsYXRmb3JtTGF5ZXIpOworICAgIEFTU0VSVCghbV9sYXllckhvc3RpbmdDb250
ZXh0KTsKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBMYXllckhvc3RpbmdDb250ZXh0Ojpj
cmVhdGVGb3JQb3J0KFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2Vy
dmVyUG9ydCgpKTsKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihwbGF0
Zm9ybUxheWVyKTsKIH0KIAogdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsYXRmb3JtRGVz
dHJveSgpCiB7Ci0gICAgaWYgKCFtX3JlbW90ZUxheWVyQ2xpZW50KQorICAgIGlmICghbV9sYXll
ckhvc3RpbmdDb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3JlbW90ZUxheWVyQ2xp
ZW50LT5pbnZhbGlkYXRlKCk7Ci0gICAgbV9yZW1vdGVMYXllckNsaWVudCA9IG51bGxwdHI7Cisg
ICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5pbnZhbGlkYXRlKCk7CisgICAgbV9sYXllckhvc3Rp
bmdDb250ZXh0ID0gbnVsbHB0cjsKIH0KIAogdWludDMyX3QgUGx1Z2luQ29udHJvbGxlclByb3h5
OjpyZW1vdGVMYXllckNsaWVudElEKCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVtb3RlTGF5ZXJD
bGllbnQpCisgICAgaWYgKCFtX2xheWVySG9zdGluZ0NvbnRleHQpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJDbGllbnQtPmNsaWVudElEKCk7CisgICAgcmV0
dXJuIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCk7CiB9CiAKIHZvaWQgUGx1Z2lu
Q29udHJvbGxlclByb3h5OjpwbGF0Zm9ybUdlb21ldHJ5RGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDJkYjU4NGU1Nzk0YjdiYjk2YjM4OGNi
NmYyMmQwZjNhNzBmYjBlNjcuLmYzM2ZhOTc3MmMwM2M3MTBiZTNiZmM0MWU0NDE1YjlkYzVkM2Mw
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAtMzMsNiAr
MzMsMTMgQEAgbmFtZXNwYWNlIENvcmVJUEMgewogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorZW51
bSBMYXllckhvc3RpbmdNb2RlIHsKKyAgICBMYXllckhvc3RpbmdNb2RlRGVmYXVsdCwKKyNpZiBI
QVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBMYXllckhvc3RpbmdNb2Rl
SW5XaW5kb3dTZXJ2ZXIKKyNlbmRpZgorfTsKKwogY2xhc3MgTGF5ZXJUcmVlQ29udGV4dCB7CiBw
dWJsaWM6CiAgICAgTGF5ZXJUcmVlQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggZGQ1YTc1MjQ0OGIyNTVjYjcw
ZDc0ZDEzNzg1ZTA0NWQ3ZTVjZmIxZS4uZGJlOTQ3YTM5ZTkxMDc2NmUzMGE0YTI0ZjcyYmU2ZGEz
NDhiYjcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5oCkBAIC01NSw3ICs1NSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGlzVmlld0ZvY3VzZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3VmlzaWJsZSgpOwogICAg
IHZpcnR1YWwgYm9vbCBpc1ZpZXdJbldpbmRvdygpOwotICAgIAorICAgIHZpcnR1YWwgTGF5ZXJI
b3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKCk7CisKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
c0RpZENyYXNoKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhZ2VDbG9zZWQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCk7CkBAIC05MSw2ICs5Miw3IEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBM
YXllclRyZWVDb250ZXh0Jik7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNj
ZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlblJlY2VpdmVkKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQppbmRleCBiNjNlYzQ0YjNhYmY0NzYzZWUyOGQ0Yzg4ZDc2ZDBkNzE3N2U2
N2EzLi43MWExYTUwNzVjN2MzZWRlMWI2YWIxYWM3MDZlY2IwMjA5MjFhYTIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAt
NTIsNiArNTIsMTIgQEAKIC0gKE5TQ3Vyc29yICopX2N1cnNvclJlY3RDdXJzb3I7CiBAZW5kCiAK
KyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKK0BpbnRlcmZhY2UgTlNX
aW5kb3cgKFdlYk5TV2luZG93RGV0YWlscykKKy0gKEJPT0wpX2hvc3RzTGF5ZXJzSW5XaW5kb3dT
ZXJ2ZXI7CitAZW5kCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCkBAIC0xODQsNiArMTkwLDE4IEBAIGJvb2wgUGFnZUNsaWVudElt
cGw6OmlzVmlld0luV2luZG93KCkKICAgICByZXR1cm4gW21fd2tWaWV3IHdpbmRvd107CiB9CiAK
K0xheWVySG9zdGluZ01vZGUgUGFnZUNsaWVudEltcGw6OmxheWVySG9zdGluZ01vZGUoKQorewor
I2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQorICAgIGlmICghW21fd2tW
aWV3IHdpbmRvd10pCisgICAgICAgIHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsKKwor
ICAgIHJldHVybiBbW21fd2tWaWV3IHdpbmRvd10gX2hvc3RzTGF5ZXJzSW5XaW5kb3dTZXJ2ZXJd
ID8gTGF5ZXJIb3N0aW5nTW9kZUluV2luZG93U2VydmVyIDogTGF5ZXJIb3N0aW5nTW9kZURlZmF1
bHQ7CisjZWxzZQorICAgIHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsKKyNlbmRpZgor
fQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkQ3Jhc2goKQogewogICAgIFttX3dr
VmlldyBfcHJvY2Vzc0RpZENyYXNoXTsKQEAgLTMzNyw2ICszNTUsMTEgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKICAgICBbbV93a1Zp
ZXcgX2V4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZV07CiB9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNv
bnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit7CisgICAgW21fd2tWaWV3IF91cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZTpsYXllclRyZWVDb250ZXh0XTsKK30KICNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnBsdWdpbkZv
Y3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElk
ZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkNWI0YTg4ZmM1YjFmNzAw
NTI0NTQ5NjVhOTkwM2IxMTI4YTAzNzk2Li5iNTBjZTM2ZWE3ZjA0MzIyNDBmOTI2ZmQyNDAwNmQ1
NjBkZGNjMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CkBAIC0yNDU5LDYgKzI0NTksMTIgQEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VCYWNrZ3JvdW5kKENH
Q29udGV4dFJlZiBjb250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IEkKICAgICBfZGF0
YS0+X2xheWVySG9zdGluZ1ZpZXcgPSBudWxscHRyOwogfQogCistICh2b2lkKV91cGRhdGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZTooY29uc3QgV2ViS2l0OjpMYXllclRyZWVDb250ZXh0Jils
YXllclRyZWVDb250ZXh0Cit7CisgICAgW3NlbGYgX2V4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZV07CisgICAgW3NlbGYgX2VudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6bGF5ZXJU
cmVlQ29udGV4dF07Cit9CisKIC0gKHZvaWQpX3NldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9r
ZW46KE5TRGF0YSAqKWRhdGEKIHsKICAgICBfZGF0YS0+X3JlbW90ZUFjY2Vzc2liaWxpdHlDaGls
ZCA9IFdLQVhSZW1vdGVFbGVtZW50Rm9yVG9rZW4oZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCBmZDNlMTUyZTkxMDRh
YjI3MGQwNTJiYmIyN2Q5YmI1OGUyNzcxY2MwLi44MzM0NmQzZjFkNmJjOWY2NTlmZTRiM2U3OGI3
YzA3Zjc3NWRjZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmgKQEAgLTY0LDYgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IC0gKHZvaWQpX2VudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6KGNvbnN0IFdlYktpdDo6
TGF5ZXJUcmVlQ29udGV4dCYpbGF5ZXJUcmVlQ29udGV4dDsKIC0gKHZvaWQpX2V4aXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZTsKKy0gKHZvaWQpX3VwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlOihjb25zdCBXZWJLaXQ6OkxheWVyVHJlZUNvbnRleHQmKWxheWVyVHJlZUNvbnRleHQ7
CiAKIC0gKHZvaWQpX3NldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW46KE5TRGF0YSAqKWRh
dGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4
IDkwMDFhY2I2OTI3NWExYzI4NWRjZDQ2ZGRiMGViOTdhYzgzZThkNjAuLjhiOGRjMmIwZDkwMGE3
NWNhNTA3ZjA3MTFkMjllNDNiMGYyMGU4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkuaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAKICAgICAvLyBG
SVhNRTogVGhlc2Ugc2hvdWxkIGJlIHB1cmUgdmlydHVhbC4KICAgICB2aXJ0dWFsIHZvaWQgdmlz
aWJpbGl0eURpZENoYW5nZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsYXllckhvc3RpbmdNb2Rl
RGlkQ2hhbmdlKCkgeyB9CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0QmFja2luZ1N0b3JlSXNEaXNj
YXJkYWJsZShib29sKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB3YWl0Rm9yQmFja2luZ1N0b3Jl
VXBkYXRlT25OZXh0UGFpbnQoKSB7IH0KQEAgLTEyMyw2ICsxMjUsNyBAQCBwcml2YXRlOgogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBMYXllclRyZWVDb250ZXh0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRh
dGVJbmZvJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmKSB7IH0KICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgZGlk
VXBkYXRlR2VvbWV0cnkoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZTI3YjViZjI2OTQxNzI1ZDkwYjA0
YmIxOTEyYjE3NTEzODQ5N2RiNC4uN2RiZGNlYmFiYjZlZGRiM2M0MjU5OTQyOGQwZmIxODY2MDZl
MzAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHkubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0Fy
ZWFQcm94eSB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIEVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgV2Vi
S2l0OjpMYXllclRyZWVDb250ZXh0IGNvbnRleHQpCiAgICAgRXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIFdlYktpdDo6VXBkYXRlSW5m
byB1cGRhdGVJbmZvKQorICAgIFVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIFdlYktpdDo6TGF5ZXJUcmVlQ29udGV4dCBjb250ZXh0
KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAppbmRleCA3MGRkZjA3ZmE1ZTUwZGNmNTdlODk5YjZiZDhkODBkY2ZhYjg2NTA5Li5m
MDZkODI3MWZiMmEwMjk1ZjMzOTZmMjZiNWNmNTJiODZjMWU1ODY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTkzLDcgKzkzLDEwIEBAIHB1YmxpYzoKIAogICAgIC8v
IFJldHVybiB3aGV0aGVyIHRoZSB2aWV3IGlzIGluIGEgd2luZG93LgogICAgIHZpcnR1YWwgYm9v
bCBpc1ZpZXdJbldpbmRvdygpID0gMDsKLSAgICAKKworICAgIC8vIFJldHVybiB0aGUgbGF5ZXIg
aG9zdGluZyBtb2RlIGZvciB0aGUgdmlldy4KKyAgICB2aXJ0dWFsIExheWVySG9zdGluZ01vZGUg
dmlld0xheWVySG9zdGluZ01vZGUoKSB7IHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsg
fQorCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYWdlQ2xv
c2VkKCkgPSAwOwpAQCAtMTY1LDYgKzE2OCw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikg
PSAwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGMzZDQxMjJhYzRkNmEwY2FiNDNjYjNlM2E1NGM3MDA1
Y2Y1MTJlZDIuLjI5OWFjMWM3YmI1ZWI3MzNhYmNmNjY2MDViZjQ1MTI2ZDNkYjY2ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNjEsNiArMTYxLDcg
QEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFz
c1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9yKDEpCiAg
ICAgLCBtX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX2N1c3RvbURldmlj
ZVNjYWxlRmFjdG9yKDApCisgICAgLCBtX2xheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9k
ZURlZmF1bHQpCiAgICAgLCBtX2RyYXdzQmFja2dyb3VuZCh0cnVlKQogICAgICwgbV9kcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZChmYWxzZSkKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRD
YWxsc0VuYWJsZWQodHJ1ZSkKQEAgLTc2MCw2ICs3NjEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGVGbGFncyBmbGFncykKICAgICAgICAgICAgIG1f
aXNJbldpbmRvdyA9IGlzSW5XaW5kb3c7CiAgICAgICAgICAgICBwcm9jZXNzKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldElzSW5XaW5kb3coaXNJbldpbmRvdyksIG1fcGFnZUlEKTsKICAg
ICAgICAgfQorCisgICAgICAgIExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSA9IG1f
cGFnZUNsaWVudC0+dmlld0xheWVySG9zdGluZ01vZGUoKTsKKyAgICAgICAgaWYgKG1fbGF5ZXJI
b3N0aW5nTW9kZSAhPSBsYXllckhvc3RpbmdNb2RlKSB7CisgICAgICAgICAgICBtX2xheWVySG9z
dGluZ01vZGUgPSBsYXllckhvc3RpbmdNb2RlOworICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+
bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOworICAgICAgICB9CiAgICAgfQogCiAgICAgdXBk
YXRlQmFja2luZ1N0b3JlRGlzY2FyZGFibGVTdGF0ZSgpOwpAQCAtMzM1Nyw2ICszMzY0LDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewog
ICAgIG1fcGFnZUNsaWVudC0+ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiB9CisK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25z
dCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQoreworICAgIG1fcGFnZUNsaWVu
dC0+dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Cit9
CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6YmFja0ZvcndhcmRDbGVhcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggZjM0ZGU3MzI4MzhmYjI3MDYzY2NkM2E0NzZmYjJlYTRkNDVlM2IzOS4uNTA0
OTIyOGUyMTlkYmI4ZDg4MDBjMWMwZDU2MGFlYWJiZjI4ZGJiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzgsNiArMzgsNyBAQAogI2lmIFBMQVRGT1JNKFFU
KQogI2luY2x1ZGUgIlF0TmV0d29ya1JlcXVlc3REYXRhLmgiCiAjZW5kaWYKKyNpbmNsdWRlICJM
YXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgpAQCAtNDMyLDcgKzQzMyw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2
b2lkIHNldEN1c3RvbURldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2b2lkIHdpbmRvd1Nj
cmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCk7Ci0gICAgCisKKyAgICBMYXllckhvc3Rp
bmdNb2RlIGxheWVySG9zdGluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX2xheWVySG9zdGluZ01v
ZGU7IH0KKwogICAgIHZvaWQgc2V0VXNlRml4ZWRMYXlvdXQoYm9vbCk7CiAgICAgdm9pZCBzZXRG
aXhlZExheW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIGJvb2wgdXNlRml4
ZWRMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX3VzZUZpeGVkTGF5b3V0OyB9OwpAQCAtNTMxLDYg
KzUzNCw3IEBAIHB1YmxpYzoKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
dmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpOwogI2VuZGlmCiAgICAgCiAgICAgdm9pZCBkaWRE
cmF3KCk7CkBAIC05NDUsNiArOTQ5LDggQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2ludHJpbnNp
Y0RldmljZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fY3VzdG9tRGV2aWNlU2NhbGVGYWN0b3I7
CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIG1fbGF5ZXJIb3N0aW5nTW9kZTsKKwogICAgIGJvb2wg
bV9kcmF3c0JhY2tncm91bmQ7CiAgICAgYm9vbCBtX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDc1Yjk1YzQwOGYwNzM0
OTllNDNiZjk2MzQwZjZmZjA2ZGQ4N2ZjYjMuLmRmNmM0MTE3OTJmNjg2Yjg5NzA3YWQ0ZmQyZmI4
NGFiMGEyOWQ1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00MSw5
ICs0MSwxMiBAQCBwcml2YXRlOgogCiAgICAgLy8gRHJhd2luZ0FyZWFQcm94eQogICAgIHZpcnR1
YWwgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBsYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNpemVEaWRDaGFuZ2UoKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgdm9pZCBlbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQs
IGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZXhp
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQs
IGNvbnN0IFVwZGF0ZUluZm8mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpIE9WRVJSSURFOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlR2VvbWV0cnkoKSBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAzMTliY2I0MDEzOTk0ODVkZDhhOTVi
ZmRiNmZhNjc3MDI5M2U3Y2ExLi5kOGY3ZDlkNDk5Njk0Zjc4NjY4Y2JkZGNiOWM2ODRkYzM4ZmQ3
NTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC01Niw2ICs1Niwx
MSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRldmljZVNjYWxl
RmFjdG9yRGlkQ2hhbmdlKCkKICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0RGV2aWNlU2NhbGVGYWN0b3IobV93ZWJQYWdlUHJveHkt
PmRldmljZVNjYWxlRmFjdG9yKCkpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOwogfQogCit2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmxheWVySG9zdGluZ01vZGVE
aWRDaGFuZ2UoKQoreworICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPnNlbmQoTWVzc2Fn
ZXM6OkRyYXdpbmdBcmVhOjpTZXRMYXllckhvc3RpbmdNb2RlKG1fd2ViUGFnZVByb3h5LT5sYXll
ckhvc3RpbmdNb2RlKCkpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCkpOworfQorCiB2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnNpemVEaWRDaGFuZ2UoKQogewogICAg
IGlmICghbV93ZWJQYWdlUHJveHktPmlzVmFsaWQoKSkKQEAgLTg3LDYgKzkyLDExIEBAIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKHVpbnQ2NF90CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK3ZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS0+dXBkYXRl
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Cit9CisKIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkoKQog
ewogICAgIEFTU0VSVChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMmI3
ZTc3MjBkMGI0ZTc4ZDk1MWRjNTc5MTdiYzQ0OGU1YmY0MTBlLi45YmMxNTQxOTAwNDQ4ZDlmYTQ1
OGNlN2JkOTViZWU0ZmJiYjFjYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03OTEsOCArNzkxLDggQEAKIAkJQkNERTA5M0Ix
MzI3MjQ5NjAwMTI1OUZCIC8qIE1haW5NYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWMu
Y3BwICovOyB9OwogCQlCQ0RFMDkzRDEzMjcyNDk2MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzc1No
aW0uZHlsaWIgaW4gQ29weSBQbHVnLWluIFByb2Nlc3MgU2hpbSAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUMyNUZCMDEyQTQ4RUE3MDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vz
c1NoaW0uZHlsaWIgKi87IH07CiAJCUJDREUwQUJGMTMyNzI3MDgwMDEyNTlGQiAvKiBQbHVnaW5Q
cm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNERTA5NDIxMzI3MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwICovOyB9Owot
CQlCQ0UwOTM3NzE0RkIxMjhDMDAxMTM4RDkgLyogUmVtb3RlTGF5ZXJDbGllbnQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwOTM3NTE0RkIxMjhC
MDAxMTM4RDkgLyogUmVtb3RlTGF5ZXJDbGllbnQubW0gKi87IH07Ci0JCUJDRTA5Mzc4MTRGQjEy
OEMwMDExMzhEOSAvKiBSZW1vdGVMYXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMDkzNzYxNEZCMTI4QjAwMTEzOEQ5IC8qIFJlbW90
ZUxheWVyQ2xpZW50LmggKi87IH07CisJCUJDRTA5Mzc3MTRGQjEyOEMwMDExMzhEOSAvKiBMYXll
ckhvc3RpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNFMDkzNzUxNEZCMTI4QjAwMTEzOEQ5IC8qIExheWVySG9zdGluZ0NvbnRleHQu
bW0gKi87IH07CisJCUJDRTA5Mzc4MTRGQjEyOEMwMDExMzhEOSAvKiBMYXllckhvc3RpbmdDb250
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Uw
OTM3NjE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0aW5nQ29udGV4dC5oICovOyB9OwogCQlC
Q0UxN0I3RDEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdlUHJpdmF0ZU1hYy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxN0I3QjEzODFGMTE3MDAx
MkE2NDEgLyogV0tQYWdlUHJpdmF0ZU1hYy5jcHAgKi87IH07CiAJCUJDRTE3QjdFMTM4MUYxMTcw
MDEyQTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UxN0I3QzEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdlUHJp
dmF0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDRTIzMTVEMTIyQzMwQ0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UyMzE1QjEyMkMzMENBMDBE
NUMzNUEgLyogV2ViVVJMUmVxdWVzdC5oICovOyB9OwpAQCAtMTgxNiw4ICsxODE2LDggQEAKIAkJ
QkNERTA1OTkxMUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNERTA1OUExMUNE
QThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0RFMDk0MjEzMjcyNDk2
MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4
ID0gMDsgcGF0aCA9IFBsdWdpblByb2Nlc3MuYXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwotCQlCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogUmVtb3RlTGF5ZXJDbGll
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVMYXll
ckNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMDkzNzYxNEZCMTI4
QjAwMTEzOEQ5IC8qIFJlbW90ZUxheWVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZUxheWVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDRTA5Mzc1MTRGQjEyOEIwMDExMzhEOSAvKiBMYXllckhvc3RpbmdDb250ZXh0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGF5ZXJIb3N0aW5nQ29udGV4
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNFMDkzNzYxNEZCMTI4QjAwMTEz
OEQ5IC8qIExheWVySG9zdGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF5ZXJIb3N0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0UxN0I3QjEzODFGMTE3MDAxMkE2NDEgLyogV0tQYWdlUHJpdmF0ZU1hYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXS1BhZ2VQcml2YXRlTWFjLmNwcDsgcGF0
aCA9IG1hYy9XS1BhZ2VQcml2YXRlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNFMTdCN0MxMzgxRjExNzAwMTJBNjQxIC8qIFdLUGFnZVByaXZhdGVNYWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tQYWdlUHJpdmF0ZU1hYy5oOyBwYXRoID0gbWFj
L1dLUGFnZVByaXZhdGVNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFMjMx
NUIxMjJDMzBDQTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViVVJMUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjI3Myw4ICsyMjczLDggQEAKIAkJCQkxQTI0QjVGMDExRjUzMUU4MDBDMzgyNjkgLyog
TWFjaFV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMUEyNEI1RjExMUY1MzFFODAwQzM4MjY5IC8qIE1h
Y2hVdGlsaXRpZXMuaCAqLywKIAkJCQlDMEUzQUE0ODEyMDlFNDUwMDBBNDlEMDEgLyogTW9kdWxl
TWFjLm1tICovLAotCQkJCUJDRTA5Mzc1MTRGQjEyOEIwMDExMzhEOSAvKiBSZW1vdGVMYXllckNs
aWVudC5tbSAqLywKLQkJCQlCQ0UwOTM3NjE0RkIxMjhCMDAxMTM4RDkgLyogUmVtb3RlTGF5ZXJD
bGllbnQuaCAqLywKKwkJCQlCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0aW5n
Q29udGV4dC5tbSAqLywKKwkJCQlCQ0UwOTM3NjE0RkIxMjhCMDAxMTM4RDkgLyogTGF5ZXJIb3N0
aW5nQ29udGV4dC5oICovLAogCQkJCTFBMjRCRjM5MTIwODk2QTYwMEZCQjA1OSAvKiBTaGFyZWRN
ZW1vcnlNYWMuY3BwICovLAogCQkJCTI5NkJEODVCMTUwMTlCQzMwMDcxRjQyNCAvKiBTdHJpbmdV
dGlsaXRpZXMuaCAqLywKIAkJCQkyOTZCRDg1QzE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRp
bGl0aWVzLm1tICovLApAQCAtNDE0OSw3ICs0MTQ5LDcgQEAKIAkJCQlCQzJFNkU4RTExNDE5NzE1
MDBBNjNCMUUgLyogV29ya1F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0MkU4NzE0QkJC
QkIyMDA0MjcyRjcgLyogS2V5Y2hhaW5TaGltUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxN0JGOTk2MTREMEE3M0UwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDRTA5Mzc4MTRGQjEyOEMwMDExMzhEOSAvKiBSZW1vdGVM
YXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkNFMDkzNzgxNEZCMTI4QzAwMTEzOEQ5
IC8qIExheWVySG9zdGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5NkJEODVEMTUw
MTlCQzMwMDcxRjQyNCAvKiBTdHJpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtNDg4OSw3ICs0
ODg5LDcgQEAKIAkJCQlCQzJFNkU4RDExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDMDA5MkY4MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVN
YWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3QkY5OTgxNEQwQUE4MzAwQTVBMDY5IC8qIE5l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUJDRTA5Mzc3MTRG
QjEyOEMwMDExMzhEOSAvKiBSZW1vdGVMYXllckNsaWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUJDRTA5Mzc3MTRGQjEyOEMwMDExMzhEOSAvKiBMYXllckhvc3RpbmdDb250ZXh0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGll
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL21hYy9XZWJGdWxsU2NyZWVuTWFuYWdlck1hYy5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL21hYy9XZWJGdWxsU2NyZWVuTWFuYWdlck1hYy5oCmluZGV4IDMz
Y2YzZjM5N2M0MTQxMzBkYjU5MzZhOWVhYzhkZjJmODVjY2U4MzcuLjQ4OWNjOWI4ZDVhY2Q1NzRi
OTc1ODNmZjI3MjJmNTE0NjQxZjY1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViRnVsbFNjcmVlbk1hbmFnZXJNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWFjLmgKQEAgLTM4LDcgKzM4LDcgQEAgT0JKQ19DTEFTUyBXZWJGdWxsU2NyZWVuTWFuYWdlckFu
aW1hdGlvbkxpc3RlbmVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmVtb3RlTGF5
ZXJDbGllbnQ7CitjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0OwogCiBjbGFzcyBXZWJGdWxsU2Ny
ZWVuTWFuYWdlck1hYyA6IHB1YmxpYyBXZWJGdWxsU2NyZWVuTWFuYWdlciB7CiBwdWJsaWM6CkBA
IC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NM
YXllcj4gbV9yb290TGF5ZXI7CiAgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRl
eHQ7Ci0gICAgT3duUHRyPFJlbW90ZUxheWVyQ2xpZW50PiBtX3JlbW90ZUxheWVyQ2xpZW50Owor
ICAgIE93blB0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CiAg
ICAgUmV0YWluUHRyPGlkPiBtX2VudGVyRnVsbFNjcmVlbkxpc3RlbmVyOwogICAgIFJldGFpblB0
cjxpZD4gbV9leGl0RnVsbFNjcmVlbkxpc3RlbmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViRnVsbFNjcmVlbk1hbmFnZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vbWFjL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyTWFjLm1tCmluZGV4IDM2ZmExOWQxZjAzZjIzZjBkOTc0MzAyZDBlMTMzODVkNWRi
M2JlZjcuLmEwOTVhZDQ4NTIyZTBlZTgwZDI3ZmFiZmU4MzllZWFkMDIyYjFiZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9tYWMvV2ViRnVsbFNjcmVl
bk1hbmFnZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVu
L21hYy9XZWJGdWxsU2NyZWVuTWFuYWdlck1hYy5tbQpAQCAtMjgsOSArMjgsOSBAQAogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKIAogI2ltcG9ydCAiQ29ubmVjdGlvbi5oIgorI2ltcG9ydCAi
TGF5ZXJIb3N0aW5nQ29udGV4dC5oIgogI2ltcG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2lt
cG9ydCAiTWVzc2FnZUlELmgiCi0jaW1wb3J0ICJSZW1vdGVMYXllckNsaWVudC5oIgogI2ltcG9y
dCAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYWdl
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCkBAIC0xNjMsOSArMTYzLDEwIEBAIHZvaWQgV2Vi
RnVsbFNjcmVlbk1hbmFnZXJNYWM6OnNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogbGF5CiAKICAgICAgICAgW21fcm9vdExheWVyLT5wbGF0Zm9ybUxheWVyKCkg
c2V0R2VvbWV0cnlGbGlwcGVkOllFU107CiAKLSAgICAgICAgbV9yZW1vdGVMYXllckNsaWVudCA9
IFJlbW90ZUxheWVyQ2xpZW50OjpjcmVhdGUoV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRp
bmdSZW5kZXJTZXJ2ZXJQb3J0KCksIG1fcm9vdExheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwotICAg
ICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9yZW1vdGVMYXllckNsaWVudC0+
Y2xpZW50SUQoKTsKLQorICAgICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQgPSBMYXllckhvc3Rp
bmdDb250ZXh0OjpjcmVhdGVGb3JQb3J0KFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydCgpKTsKKyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRS
b290TGF5ZXIobV9yb290TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgIAorICAgICAg
ICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9sYXllckhvc3RpbmdDb250ZXh0LT5j
b250ZXh0SUQoKTsKICAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKG1fbGF5ZXJUcmVl
Q29udGV4dCkpOwogICAgIH0KIApAQCAtMTgxLDExICsxODIsMTEgQEAgdm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlck1hYzo6c2V0Um9vdEZ1bGxTY3JlZW5MYXllcihXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiBsYXkKIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlck1hYzo6ZGlzcG9zZU9mTGF5ZXJD
bGllbnQoKQogewotICAgIGlmICghbV9yZW1vdGVMYXllckNsaWVudCkKKyAgICBpZiAoIW1fbGF5
ZXJIb3N0aW5nQ29udGV4dCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcmVtb3RlTGF5
ZXJDbGllbnQtPmludmFsaWRhdGUoKTsKLSAgICBtX3JlbW90ZUxheWVyQ2xpZW50ID0gbnVsbHB0
cjsKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKKyAgICBtX2xheWVy
SG9zdGluZ0NvbnRleHQgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
TWFjOjpiZWdpbkVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbihmbG9hdCBkdXJhdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggMWFi
MGVmOTliNDllMjgwMGU0OTk2ZTJiZTQ1MDcwYTVlOTA4NTdkZi4uMmZhMzU5OGE3N2E2Mzg2NDJk
MzU2NGFiZTc0YWVkZWYzMDcyNjVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTEwNiw3ICsxMDYsOCBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKE1BQykKICAgICAvLyBVc2VkIGJ5IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiB2aWV3U2l6ZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9y
KGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNl
U2NhbGVGYWN0b3IoZmxvYXQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdN
b2RlKHVpbnQzMl90KSB7IH0KICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmluZGV4IDg1
N2Y4NzI5MzY4NWI5M2QyOWM3OGEyYzY4MmRjMzMwZDA0MWEyNTguLjBkOTJhNDk4NjNhZmM0OGI0
YTc0MTNiYmFjNTZjYjYyMDBmY2VlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEubWVzc2FnZXMuaW4KQEAgLTMxLDUgKzMx
LDYgQEAgbWVzc2FnZXMgLT4gRHJhd2luZ0FyZWEgewogICAgIC8vIFVzZWQgYnkgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuCiAgICAgVXBkYXRlR2VvbWV0cnkoV2ViQ29yZTo6SW50U2l6
ZSB2aWV3U2l6ZSkKICAgICBTZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcikKKyAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVpbnQzMl90IGxheWVySG9zdGluZ01vZGUp
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9jYS9tYWMvTGF5ZXJUcmVlSG9zdENBTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvY2EvbWFjL0xheWVyVHJlZUhvc3RDQU1hYy5oCmluZGV4IDU1NTliYmQ2MzZlZDVk
MjU3NDQ0MTNlYjFmNDJhZjU2ODJkMzkzMjMuLjhmNDEzNTVjMzg3ZjM3M2FjZmFjMDBhNzE5NGQ3
NmIyOTRhZmJkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9jYS9tYWMvTGF5ZXJUcmVlSG9zdENBTWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2NhL21hYy9MYXllclRyZWVIb3N0Q0FNYWMuaApAQCAtMjcsMTIgKzI3LDEz
IEBACiAjZGVmaW5lIExheWVyVHJlZUhvc3RDQU1hY19oCiAKICNpbmNsdWRlICJMYXllclRyZWVI
b3N0Q0EuaCIKLSNpbmNsdWRlICJSZW1vdGVMYXllckNsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTGF5ZXJGbHVzaFNjaGVkdWxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgTGF5ZXJIb3N0
aW5nQ29udGV4dDsKKwogY2xhc3MgTGF5ZXJUcmVlSG9zdENBTWFjIDogcHVibGljIExheWVyVHJl
ZUhvc3RDQSwgcHVibGljIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPExheWVyVHJlZUhvc3RDQU1hYz4gY3JlYXRlKFdl
YlBhZ2UqKTsKQEAgLTU5LDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBMYXllckZsdXNoU2No
ZWR1bGVyQ2xpZW50CiAgICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7CiAKLSAgICBPd25Q
dHI8UmVtb3RlTGF5ZXJDbGllbnQ+IG1fcmVtb3RlTGF5ZXJDbGllbnQ7CisgICAgT3duUHRyPExh
eWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29udGV4dDsKICAgICBXZWJDb3JlOjpM
YXllckZsdXNoU2NoZWR1bGVyIG1fbGF5ZXJGbHVzaFNjaGVkdWxlcjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9jYS9tYWMvTGF5ZXJUcmVlSG9z
dENBTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL21hYy9MYXll
clRyZWVIb3N0Q0FNYWMubW0KaW5kZXggNzgxMTdlYmQzODcwYjVhZDM0ZDVlMjg1ZjViNzUzZDgw
MDE4NWUyNi4uZTcyYmQyMjkzMzE4ZThmNzM1YzcwZDMyMGJjNjI1OThjNGRjMzk4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL21hYy9MYXllclRyZWVI
b3N0Q0FNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL21h
Yy9MYXllclRyZWVIb3N0Q0FNYWMubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiTGF5ZXJUcmVlSG9zdENBTWFjLmgiCiAKKyNpbXBvcnQgIkxheWVySG9z
dGluZ0NvbnRleHQuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQgPFF1YXJ0ekNv
cmUvQ0FUcmFuc2FjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CkBA
IC01MywxMyArNTQsMTUgQEAgTGF5ZXJUcmVlSG9zdENBTWFjOjpMYXllclRyZWVIb3N0Q0FNYWMo
V2ViUGFnZSogd2ViUGFnZSkKIAogTGF5ZXJUcmVlSG9zdENBTWFjOjp+TGF5ZXJUcmVlSG9zdENB
TWFjKCkKIHsKLSAgICBBU1NFUlQoIW1fcmVtb3RlTGF5ZXJDbGllbnQpOworICAgIEFTU0VSVCgh
bV9sYXllckhvc3RpbmdDb250ZXh0KTsKIH0KIAogdm9pZCBMYXllclRyZWVIb3N0Q0FNYWM6OnBs
YXRmb3JtSW5pdGlhbGl6ZShMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQogewot
ICAgIG1fcmVtb3RlTGF5ZXJDbGllbnQgPSBSZW1vdGVMYXllckNsaWVudDo6Y3JlYXRlKFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpLCByb290TGF5ZXIo
KS0+cGxhdGZvcm1MYXllcigpKTsKLSAgICBsYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IG1f
cmVtb3RlTGF5ZXJDbGllbnQtPmNsaWVudElEKCk7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSk7CisgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0LT5zZXRSb290TGF5ZXIocm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIoKSk7CisKKyAgICBs
YXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4
dElEKCk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlSG9zdENBTWFjOjpzY2hlZHVsZUxheWVyRmx1c2go
KQpAQCAtNzksOCArODIsOCBAQCB2b2lkIExheWVyVHJlZUhvc3RDQU1hYzo6aW52YWxpZGF0ZSgp
CiB7CiAgICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLmludmFsaWRhdGUoKTsKIAotICAgIG1fcmVt
b3RlTGF5ZXJDbGllbnQtPmludmFsaWRhdGUoKTsKLSAgICBtX3JlbW90ZUxheWVyQ2xpZW50ID0g
bnVsbHB0cjsKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKKyAgICBt
X2xheWVySG9zdGluZ0NvbnRleHQgPSBudWxscHRyOwogCiAgICAgTGF5ZXJUcmVlSG9zdENBOjpp
bnZhbGlkYXRlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgK
aW5kZXggZTkxM2ExNDdiY2U0YWEwZGRlMzdkNmRkNGRmNzBjYTEzYzk2MzMyYS4uMTkxNGRkZmEz
YWUzYzhhZmE4MmU2OTE3NDVmZmFhMjE4NTBjNTQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYV9oCiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgorI2luY2x1
ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJD
bGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0xheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaD4KQEAgLTM3LDcgKzM4LDcg
QEAgT0JKQ19DTEFTUyBXS0NvbnRlbnRMYXllcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNs
YXNzIFJlbW90ZUxheWVyQ2xpZW50OworY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKIAogY2xh
c3MgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEgOiBwdWJsaWMgRHJhd2luZ0FyZWEsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQsIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXJD
bGllbnQgewogcHVibGljOgpAQCAtNzUsNiArNzYsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3Nh
Z2UgaGFuZGxlcnMuCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHZpZXdTaXplKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2
aWNlU2NhbGVGYWN0b3IoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXll
ckhvc3RpbmdNb2RlKHVpbnQzMl90KSBPVkVSUklERTsKIAogICAgIHZvaWQgc2V0Um9vdENvbXBv
c2l0aW5nTGF5ZXIoQ0FMYXllciAqKTsKIApAQCAtODQsNyArODYsOSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuOwogICAgIFdlYkNvcmU6OkxheWVyRmx1c2hT
Y2hlZHVsZXIgbV9sYXllckZsdXNoU2NoZWR1bGVyOwogCi0gICAgT3duUHRyPFJlbW90ZUxheWVy
Q2xpZW50PiBtX3JlbW90ZUxheWVyQ2xpZW50OworICAgIE93blB0cjxMYXllckhvc3RpbmdDb250
ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CisgICAgTGF5ZXJIb3N0aW5nTW9kZSBtX2xheWVy
SG9zdGluZ01vZGU7CisgICAgCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fcm9vdExheWVyOwog
ICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3BlbmRpbmdSb290Q29tcG9zaXRpbmdMYXllcjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggMzA5ZGNkNWVh
Y2E3NmU5ZDQ0NjE0YmYzMzVkZmExZWU2ODFiMjg0MC4uNDMyMDBjODhmMjQyZTk3YTIxYTkxM2Iy
N2I0MGE1OGZjNTE0ZWFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCkBAIC0yOCw4ICsyOCw4IEBACiAKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHlNZXNz
YWdlcy5oIgogI2ltcG9ydCAiRXZlbnREaXNwYXRjaGVyLmgiCisjaW1wb3J0ICJMYXllckhvc3Rp
bmdDb250ZXh0LmgiCiAjaW1wb3J0ICJMYXllclRyZWVDb250ZXh0LmgiCi0jaW1wb3J0ICJSZW1v
dGVMYXllckNsaWVudC5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vz
cy5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CkBAIC03NiwxMCArNzYsMTEg
QEAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhKFdlYlBhZ2UqIHdlYlBhZ2UsIGMKICAgICBtX3Jvb3RMYXllci5nZXQoKS5vcGFxdWUg
PSBZRVM7CiAgICAgbV9yb290TGF5ZXIuZ2V0KCkuZ2VvbWV0cnlGbGlwcGVkID0gWUVTOwogCi0g
ICAgbV9yZW1vdGVMYXllckNsaWVudCA9IFJlbW90ZUxheWVyQ2xpZW50OjpjcmVhdGUoV2ViUHJv
Y2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCksIG1fcm9vdExheWVy
LmdldCgpKTsKLQorICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRl
eHQ6OmNyZWF0ZUZvclBvcnQoV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0KCkpOworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKG1f
cm9vdExheWVyLmdldCgpKTsKKyAgICAKICAgICBMYXllclRyZWVDb250ZXh0IGxheWVyVHJlZUNv
bnRleHQ7Ci0gICAgbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBtX3JlbW90ZUxheWVyQ2xp
ZW50LT5jbGllbnRJRCgpOworICAgIGxheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9sYXll
ckhvc3RpbmdDb250ZXh0LT5jb250ZXh0SUQoKTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoMCwg
bGF5ZXJUcmVlQ29udGV4dCkpOwogfQogCkBAIC0yNDUsNiArMjQ2LDM3IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yCiAgICAgbV93ZWJQYWdlLT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VT
Y2FsZUZhY3Rvcik7CiB9CiAKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNl
dExheWVySG9zdGluZ01vZGUodWludDMyX3Qgb3BhcXVlTGF5ZXJIb3N0aW5nTW9kZSkKK3sKKyAg
ICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUgPSBzdGF0aWNfY2FzdDxMYXllckhv
c3RpbmdNb2RlPihvcGFxdWVMYXllckhvc3RpbmdNb2RlKTsKKyAgICBpZiAobGF5ZXJIb3N0aW5n
TW9kZSAhPSBtX2xheWVySG9zdGluZ0NvbnRleHQtPmxheWVySG9zdGluZ01vZGUoKSkgeworICAg
ICAgICAvLyBUaGUgbW9kZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgCisgICAgICAgIC8vIEZpcnN0
LCBpbnZhbGlkYXRlIHRoZSBvbGQgaG9zdGluZyBjb250ZXh0LgorICAgICAgICBtX2xheWVySG9z
dGluZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKKyAgICAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
ID0gbnVsbHB0cjsKKworICAgICAgICAvLyBDcmVhdGUgYSBuZXcgY29udGV4dCBhbmQgc2V0IGl0
IHVwLgorICAgICAgICBzd2l0Y2ggKGxheWVySG9zdGluZ01vZGUpIHsKKyAgICAgICAgY2FzZSBM
YXllckhvc3RpbmdNb2RlRGVmYXVsdDoKKyAgICAgICAgICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4
dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQoV2ViUHJvY2Vzczo6c2hhcmVk
KCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkpOworICAgICAgICAgICAgYnJlYWs7Cisj
aWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCisgICAgICAgIGNhc2UgTGF5
ZXJIb3N0aW5nTW9kZUluV2luZG93U2VydmVyOgorICAgICAgICAgICAgbV9sYXllckhvc3RpbmdD
b250ZXh0ID0gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yV2luZG93U2VydmVyKCk7ICAg
ICAgICAKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBt
X2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihtX3Jvb3RMYXllci5nZXQoKSk7CisK
KyAgICAgICAgLy8gRmluYWxseSwgaW5mb3JtIHRoZSBVSVByb2Nlc3MgdGhhdCB0aGUgY29udGV4
dCBoYXMgY2hhbmdlZC4KKyAgICAgICAgTGF5ZXJUcmVlQ29udGV4dCBsYXllclRyZWVDb250ZXh0
OworICAgICAgICBsYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dC0+Y29udGV4dElEKCk7CisgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6RHJh
d2luZ0FyZWFQcm94eTo6VXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoMCwgbGF5ZXJU
cmVlQ29udGV4dCkpOworICAgIH0KK30KKwogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoQ0FMYXllciAqbGF5ZXIpCiB7CiAgICAgQVNT
RVJUKCFtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4pOwo=
</data>
<flag name="review"
          id="133118"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="133128"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>