<?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>251880</bug_id>
          
          <creation_ts>2023-02-07 12:45:33 -0800</creation_ts>
          <short_desc>REGRESSION(259884@main): caused animations to be super flickery</short_desc>
          <delta_ts>2023-02-07 12:50:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>250995</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1931816</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-02-07 12:45:33 -0800</bug_when>
    <thetext>https://commits.webkit.org/259884@main introduced a regression:
caused animations to be super flickery

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931818</commentid>
    <comment_count>1</comment_count>
      <attachid>464892</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-02-07 12:45:38 -0800</bug_when>
    <thetext>Created attachment 464892
REVERT of 259884@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931820</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-02-07 12:49:50 -0800</bug_when>
    <thetext>Committed 259974@main (c18479edbced): &lt;https://commits.webkit.org/259974@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464892.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931821</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-02-07 12:50:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/105141242&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464892</attachid>
            <date>2023-02-07 12:45:38 -0800</date>
            <delta_ts>2023-02-07 12:49:52 -0800</delta_ts>
            <desc>REVERT of 259884@main</desc>
            <filename>bug-251880-20230207124538.patch</filename>
            <type>text/plain</type>
            <size>37470</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSAwYmQ5YmIwNzIyMWIzOTkyYzUyNjdjYjc0YmZmMTU3NjgwOTY0NjJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUdWUsIDcgRmViIDIwMjMgMTI6NDU6MzYgLTA4MDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgcjI1OTg4NEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1MTg4MAoKY2F1c2VkIGFuaW1hdGlvbnMgdG8gYmUgc3VwZXIg
ZmxpY2tlcnkKClJldmVydGVkIGNoYW5nZXNldDoKCiJbV2ViR1BVXSBNaWdyYXRlIGZyb20gY3Jl
YXRlU3VyZmFjZVRleHR1cmUoKSB0byBnZXRDdXJyZW50VGV4dHVyZSgpIgpodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUwOTk1Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQu
b3JnLzI1OTg4NEBtYWluCi0tLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2
aWNlLmNwcCAgIHwgIDUgKwogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNl
LmggICAgIHwgIDEgKwogLi4uL01vZHVsZXMvV2ViR1BVL0dQVVByZXNlbnRhdGlvbkNvbnRleHQu
Y3BwIHwgIDggKysKIC4uLi9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVzZW50YXRpb25Db250ZXh0Lmgg
ICB8ICA1ICsKIC4uLi9JbXBsL1dlYkdQVUNvbXBvc2l0b3JJbnRlZ3JhdGlvbkltcGwuY3BwICB8
ICAyICstCiAuLi4vZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5jcHAgfCA2
NiArKysrKysrKysrKy0tLQogLi4uL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVURldmljZUlt
cGwuaCAgIHwgIDEgKwogLi4uL0ltcGwvV2ViR1BVUHJlc2VudGF0aW9uQ29udGV4dEltcGwuY3Bw
ICAgIHwgMTcgKysrKwogLi4uL0ltcGwvV2ViR1BVUHJlc2VudGF0aW9uQ29udGV4dEltcGwuaCAg
ICAgIHwgIDggKy0KIC4uLi9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaCAg
ICB8ICAxICsKIC4uLi9XZWJHUFUvV2ViR1BVUHJlc2VudGF0aW9uQ29udGV4dC5oICAgICAgICB8
ICA2ICsrCiAuLi4vaHRtbC9jYW52YXMvR1BVQ2FudmFzQ29udGV4dENvY29hLmNwcCAgICAgfCAx
NSArKy0KIC4uLi9XZWJHUFUvUHJlc2VudGF0aW9uQ29udGV4dElPU3VyZmFjZS5oICAgICB8ICA0
ICsKIC4uLi9XZWJHUFUvUHJlc2VudGF0aW9uQ29udGV4dElPU3VyZmFjZS5tbSAgICB8IDI3ICsr
KysrKwogU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5tbSAgICAgICAgICAgICAgIHwgOTEg
KysrKysrKysrKysrKysrKystLQogU291cmNlL1dlYkdQVS9XZWJHUFUvV2ViR1BVRXh0LmggICAg
ICAgICAgICAgIHwgMTYgKysrKwogLi4uL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuY3Bw
ICAgICAgICAgIHwgMTQgKysrCiAuLi4vR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
RGV2aWNlLmggfCAgMSArCiAuLi4vZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5tZXNzYWdl
cy5pbiAgfCAgMSArCiAuLi4vV2ViR1BVL1JlbW90ZVByZXNlbnRhdGlvbkNvbnRleHQuY3BwICAg
ICAgfCAxMiArKysKIC4uLi9XZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dC5oICAgICAg
ICB8ICA2ICsrCiAuLi4vUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dC5tZXNzYWdlcy5pbiAgICAg
fCAgNCArCiAuLi4vR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5jcHAgfCAx
NSArKysKIC4uLi9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZVByb3h5LmggICB8ICAx
ICsKIC4uLi9XZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dFByb3h5LmNwcCB8IDI3ICsr
KysrKwogLi4uL1dlYkdQVS9SZW1vdGVQcmVzZW50YXRpb25Db250ZXh0UHJveHkuaCAgIHwgIDYg
KysKIDI2IGZpbGVzIGNoYW5nZWQsIDMzNSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlLmNwcAppbmRleCAzMTM0
ZTg0OTNjZmUuLjg2MmE3MjFmNWRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9XZWJHUFUvR1BVRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQ
VS9HUFVEZXZpY2UuY3BwCkBAIC0xMTgsNiArMTE4LDExIEBAIFJlZjxHUFVUZXh0dXJlPiBHUFVE
ZXZpY2U6OmNyZWF0ZVRleHR1cmUoY29uc3QgR1BVVGV4dHVyZURlc2NyaXB0b3ImIHRleHR1cmVE
ZXNjCiAgICAgcmV0dXJuIEdQVVRleHR1cmU6OmNyZWF0ZShtX2JhY2tpbmctPmNyZWF0ZVRleHR1
cmUodGV4dHVyZURlc2NyaXB0b3IuY29udmVydFRvQmFja2luZygpKSk7CiB9CiAKK1JlZjxHUFVU
ZXh0dXJlPiBHUFVEZXZpY2U6OmNyZWF0ZVN1cmZhY2VUZXh0dXJlKGNvbnN0IEdQVVRleHR1cmVE
ZXNjcmlwdG9yJiB0ZXh0dXJlRGVzY3JpcHRvciwgY29uc3QgR1BVUHJlc2VudGF0aW9uQ29udGV4
dCYgcHJlc2VudGF0aW9uQ29udGV4dCkKK3sKKyAgICByZXR1cm4gR1BVVGV4dHVyZTo6Y3JlYXRl
KG1fYmFja2luZy0+Y3JlYXRlU3VyZmFjZVRleHR1cmUodGV4dHVyZURlc2NyaXB0b3IuY29udmVy
dFRvQmFja2luZygpLCBwcmVzZW50YXRpb25Db250ZXh0LmJhY2tpbmcoKSkpOworfQorCiBzdGF0
aWMgUEFMOjpXZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yIGNvbnZlcnRUb0JhY2tpbmcoY29uc3Qg
c3RkOjpvcHRpb25hbDxHUFVTYW1wbGVyRGVzY3JpcHRvcj4mIHNhbXBsZXJEZXNjcmlwdG9yKQog
ewogICAgIGlmICghc2FtcGxlckRlc2NyaXB0b3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9X
ZWJHUFUvR1BVRGV2aWNlLmgKaW5kZXggMWIzMDk5ZDBhOTBmLi5lZWRiNmIwYjA5MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZS5oCkBAIC05Nyw2ICs5Nyw3IEBA
IHB1YmxpYzoKIAogICAgIFJlZjxHUFVCdWZmZXI+IGNyZWF0ZUJ1ZmZlcihjb25zdCBHUFVCdWZm
ZXJEZXNjcmlwdG9yJik7CiAgICAgUmVmPEdQVVRleHR1cmU+IGNyZWF0ZVRleHR1cmUoY29uc3Qg
R1BVVGV4dHVyZURlc2NyaXB0b3ImKTsKKyAgICBSZWY8R1BVVGV4dHVyZT4gY3JlYXRlU3VyZmFj
ZVRleHR1cmUoY29uc3QgR1BVVGV4dHVyZURlc2NyaXB0b3ImLCBjb25zdCBHUFVQcmVzZW50YXRp
b25Db250ZXh0Jik7CiAgICAgUmVmPEdQVVNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoY29uc3Qgc3Rk
OjpvcHRpb25hbDxHUFVTYW1wbGVyRGVzY3JpcHRvcj4mKTsKICAgICBSZWY8R1BVRXh0ZXJuYWxU
ZXh0dXJlPiBpbXBvcnRFeHRlcm5hbFRleHR1cmUoY29uc3QgR1BVRXh0ZXJuYWxUZXh0dXJlRGVz
Y3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9H
UFVQcmVzZW50YXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BV
L0dQVVByZXNlbnRhdGlvbkNvbnRleHQuY3BwCmluZGV4IDJmYjRmNzQ2MGNjNS4uODg0ZWZjN2Nl
ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVzZW50
YXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQ
cmVzZW50YXRpb25Db250ZXh0LmNwcApAQCAtNTMsNyArNTMsMTUgQEAgUmVmUHRyPEdQVVRleHR1
cmU+IEdQVVByZXNlbnRhdGlvbkNvbnRleHQ6OmdldEN1cnJlbnRUZXh0dXJlKCkKIAogdm9pZCBH
UFVQcmVzZW50YXRpb25Db250ZXh0OjpwcmVzZW50KCkKIHsKKyAgICBtX2JhY2tpbmctPnByZXNl
bnQoKTsKICAgICBtX2N1cnJlbnRUZXh0dXJlID0gbnVsbHB0cjsKIH0KIAorI2lmIFBMQVRGT1JN
KENPQ09BKQordm9pZCBHUFVQcmVzZW50YXRpb25Db250ZXh0OjpwcmVwYXJlRm9yRGlzcGxheShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBtX2JhY2tpbmctPnByZXBhcmVGb3JEaXNwbGF5KFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVzZW50YXRpb25D
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVzZW50YXRpb25D
b250ZXh0LmgKaW5kZXggMTg2N2RiODE3M2ZhLi5hZGEwY2JjZWQzYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVVByZXNlbnRhdGlvbkNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVQcmVzZW50YXRpb25Db250ZXh0LmgK
QEAgLTUxLDggKzUxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHVuY29uZmlndXJlKCk7CiAKICAg
ICBSZWZQdHI8R1BVVGV4dHVyZT4gZ2V0Q3VycmVudFRleHR1cmUoKTsKKwogICAgIHZvaWQgcHJl
c2VudCgpOwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxh
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJik7CisjZW5k
aWYKKwogICAgIFBBTDo6V2ViR1BVOjpQcmVzZW50YXRpb25Db250ZXh0JiBiYWNraW5nKCkgeyBy
ZXR1cm4gbV9iYWNraW5nOyB9CiAgICAgY29uc3QgUEFMOjpXZWJHUFU6OlByZXNlbnRhdGlvbkNv
bnRleHQmIGJhY2tpbmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVDb21w
b3NpdG9ySW50ZWdyYXRpb25JbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhp
Y3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29tcG9zaXRvckludGVncmF0aW9uSW1wbC5jcHAKaW5kZXgg
NjZlN2NjZjQxMjA2Li5lODc3MDI2NWRhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVQ29tcG9zaXRvckludGVncmF0aW9uSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9X
ZWJHUFVDb21wb3NpdG9ySW50ZWdyYXRpb25JbXBsLmNwcApAQCAtNDQsNyArNDQsNyBAQCBDb21w
b3NpdG9ySW50ZWdyYXRpb25JbXBsOjp+Q29tcG9zaXRvckludGVncmF0aW9uSW1wbCgpID0gZGVm
YXVsdDsKIAogdm9pZCBDb21wb3NpdG9ySW50ZWdyYXRpb25JbXBsOjpwcmVwYXJlRm9yRGlzcGxh
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
bV9wcmVzZW50YXRpb25Db250ZXh0LT5wcmVzZW50KCk7CisgICAgc3RhdGljX2Nhc3Q8UHJlc2Vu
dGF0aW9uQ29udGV4dCo+KG1fcHJlc2VudGF0aW9uQ29udGV4dC5nZXQoKSktPnByZXNlbnQoKTsK
IAogICAgIG1fb25TdWJtaXR0ZWRXb3JrU2NoZWR1bGVkQ2FsbGJhY2soV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFw
aGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5jcHAKaW5kZXggNjMy
YTQ4ZjYzZDhkLi4yNmU0NTAzNzI5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvZ3JhcGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVRGV2aWNlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmNw
cApAQCAtMTAwLDI4ICsxMDAsNjggQEAgUmVmPEJ1ZmZlcj4gRGV2aWNlSW1wbDo6Y3JlYXRlQnVm
ZmVyKGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiAgICAgcmV0dXJuIEJ1ZmZl
ckltcGw6OmNyZWF0ZSh3Z3B1RGV2aWNlQ3JlYXRlQnVmZmVyKG1fYmFja2luZywgJmJhY2tpbmdE
ZXNjcmlwdG9yKSwgbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dCk7CiB9CiAKLVJlZjxUZXh0dXJl
PiBEZXZpY2VJbXBsOjpjcmVhdGVUZXh0dXJlKGNvbnN0IFRleHR1cmVEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yKQorc3RhdGljIFdHUFVUZXh0dXJlRGVzY3JpcHRvclZpZXdGb3JtYXRzIGNyZWF0ZUJh
Y2tpbmdUZXh0dXJlRGVzY3JpcHRvclZpZXdGb3JtYXRzKGNvbnN0IFRleHR1cmVEZXNjcmlwdG9y
ICZkZXNjcmlwdG9yLCBjb25zdCBSZWY8Q29udmVydFRvQmFja2luZ0NvbnRleHQ+ICZjb252ZXJ0
VG9CYWNraW5nQ29udGV4dCkKIHsKLSAgICBhdXRvIGxhYmVsID0gZGVzY3JpcHRvci5sYWJlbC51
dGY4KCk7Ci0KICAgICBhdXRvIGJhY2tpbmdUZXh0dXJlRm9ybWF0cyA9IGRlc2NyaXB0b3Iudmll
d0Zvcm1hdHMubWFwKFsmXSAoVGV4dHVyZUZvcm1hdCB0ZXh0dXJlRm9ybWF0KSB7Ci0gICAgICAg
IHJldHVybiBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKHRleHR1
cmVGb3JtYXQpOworICAgICAgICByZXR1cm4gY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZl
cnRUb0JhY2tpbmcodGV4dHVyZUZvcm1hdCk7CiAgICAgfSk7CiAKLSAgICBXR1BVVGV4dHVyZURl
c2NyaXB0b3IgYmFja2luZ0Rlc2NyaXB0b3IgewotICAgICAgICBudWxscHRyLAorICAgIHJldHVy
biBXR1BVVGV4dHVyZURlc2NyaXB0b3JWaWV3Rm9ybWF0cyB7CisgICAgICAgIHsKKyAgICAgICAg
ICAgIG51bGxwdHIsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXR1BVU1R5cGU+KFdHUFVTVHlw
ZUV4dGVuZGVkX1RleHR1cmVEZXNjcmlwdG9yVmlld0Zvcm1hdHMpLAorICAgICAgICB9LAorICAg
ICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYmFja2luZ1RleHR1cmVGb3JtYXRzLnNpemUoKSks
CisgICAgICAgIGJhY2tpbmdUZXh0dXJlRm9ybWF0cy5kYXRhKCksCisgICAgfTsKK30KKworc3Rh
dGljIFdHUFVUZXh0dXJlRGVzY3JpcHRvciBjcmVhdGVCYWNraW5nRGVzY3JpcHRvcihXR1BVVGV4
dHVyZURlc2NyaXB0b3JWaWV3Rm9ybWF0cyAmYmFja2luZ1ZpZXdGb3JtYXRzLCBjb25zdCBUZXh0
dXJlRGVzY3JpcHRvciAmZGVzY3JpcHRvciwgY29uc3QgUmVmPENvbnZlcnRUb0JhY2tpbmdDb250
ZXh0PiAmY29udmVydFRvQmFja2luZ0NvbnRleHQpCit7CisgICAgYXV0byBsYWJlbCA9IGRlc2Ny
aXB0b3IubGFiZWwudXRmOCgpOworICAgIGF1dG8gc2l6ZSA9IGNvbnZlcnRUb0JhY2tpbmdDb250
ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGRlc2NyaXB0b3Iuc2l6ZSk7CisKKyAgICByZXR1cm4gV0dQ
VVRleHR1cmVEZXNjcmlwdG9yIHsKKyAgICAgICAgJmJhY2tpbmdWaWV3Rm9ybWF0cy5jaGFpbiwK
ICAgICAgICAgbGFiZWwuZGF0YSgpLAotICAgICAgICBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0
LT5jb252ZXJ0VGV4dHVyZVVzYWdlRmxhZ3NUb0JhY2tpbmcoZGVzY3JpcHRvci51c2FnZSksCi0g
ICAgICAgIG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoZGVzY3Jp
cHRvci5kaW1lbnNpb24pLAotICAgICAgICBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252
ZXJ0VG9CYWNraW5nKGRlc2NyaXB0b3Iuc2l6ZSksCi0gICAgICAgIG1fY29udmVydFRvQmFja2lu
Z0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoZGVzY3JpcHRvci5mb3JtYXQpLAorICAgICAgICBj
b252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29udmVydFRleHR1cmVVc2FnZUZsYWdzVG9CYWNraW5n
KGRlc2NyaXB0b3IudXNhZ2UpLAorICAgICAgICBjb252ZXJ0VG9CYWNraW5nQ29udGV4dC0+Y29u
dmVydFRvQmFja2luZyhkZXNjcmlwdG9yLmRpbWVuc2lvbiksCisgICAgICAgIHNpemUsCisgICAg
ICAgIGNvbnZlcnRUb0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKGRlc2NyaXB0b3Iu
Zm9ybWF0KSwKICAgICAgICAgZGVzY3JpcHRvci5taXBMZXZlbENvdW50LAogICAgICAgICBkZXNj
cmlwdG9yLnNhbXBsZUNvdW50LAotICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYmFja2lu
Z1RleHR1cmVGb3JtYXRzLnNpemUoKSksCi0gICAgICAgIGJhY2tpbmdUZXh0dXJlRm9ybWF0cy5k
YXRhKCksCisgICAgICAgIGJhY2tpbmdWaWV3Rm9ybWF0cy52aWV3Rm9ybWF0c0NvdW50LAorICAg
ICAgICBiYWNraW5nVmlld0Zvcm1hdHMudmlld0Zvcm1hdHMKKyAgICB9OworfQorCitSZWY8VGV4
dHVyZT4gRGV2aWNlSW1wbDo6Y3JlYXRlVGV4dHVyZShjb25zdCBUZXh0dXJlRGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKK3sKKyAgICBhdXRvIGJhY2tpbmdWaWV3Rm9ybWF0cyA9IGNyZWF0ZUJhY2tp
bmdUZXh0dXJlRGVzY3JpcHRvclZpZXdGb3JtYXRzKGRlc2NyaXB0b3IsIG1fY29udmVydFRvQmFj
a2luZ0NvbnRleHQpOworICAgIGF1dG8gYmFja2luZ0Rlc2NyaXB0b3IgPSBjcmVhdGVCYWNraW5n
RGVzY3JpcHRvcihiYWNraW5nVmlld0Zvcm1hdHMsIGRlc2NyaXB0b3IsIG1fY29udmVydFRvQmFj
a2luZ0NvbnRleHQpOworICAgIHJldHVybiBUZXh0dXJlSW1wbDo6Y3JlYXRlKHdncHVEZXZpY2VD
cmVhdGVUZXh0dXJlKG1fYmFja2luZywgJmJhY2tpbmdEZXNjcmlwdG9yKSwgZGVzY3JpcHRvci5m
b3JtYXQsIGRlc2NyaXB0b3IuZGltZW5zaW9uLCBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0KTsK
K30KKworUmVmPFRleHR1cmU+IERldmljZUltcGw6OmNyZWF0ZVN1cmZhY2VUZXh0dXJlKGNvbnN0
IFRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBjb25zdCBQcmVzZW50YXRpb25Db250ZXh0
JiBwcmVzZW50YXRpb25Db250ZXh0KQoreworICAgIElPU3VyZmFjZVJlZiBpb1N1cmZhY2UgPSBz
dGF0aWNfY2FzdDxjb25zdCBQcmVzZW50YXRpb25Db250ZXh0SW1wbCY+KHByZXNlbnRhdGlvbkNv
bnRleHQpLmRyYXdpbmdCdWZmZXIoKTsKKyAgICBBU1NFUlQoaW9TdXJmYWNlKTsKKyAgICBhdXRv
IGJhY2tpbmdUZXh0dXJlRm9ybWF0cyA9IGRlc2NyaXB0b3Iudmlld0Zvcm1hdHMubWFwKFsmXSAo
VGV4dHVyZUZvcm1hdCB0ZXh0dXJlRm9ybWF0KSB7CisgICAgICAgIHJldHVybiBtX2NvbnZlcnRU
b0JhY2tpbmdDb250ZXh0LT5jb252ZXJ0VG9CYWNraW5nKHRleHR1cmVGb3JtYXQpOworICAgIH0p
OworCisgICAgV0dQVVRleHR1cmVEZXNjcmlwdG9yQ29jb2FDdXN0b21TdXJmYWNlIGlvU3VyZmFj
ZURlc2NyaXB0b3IgeworICAgICAgICB7CisgICAgICAgICAgICBudWxscHRyLAorICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8V0dQVVNUeXBlPihXR1BVU1R5cGVFeHRlbmRlZF9UZXh0dXJlRGVzY3Jp
cHRvckNvY29hU3VyZmFjZUJhY2tpbmcpCisgICAgICAgIH0sCisgICAgICAgIGlvU3VyZmFjZQog
ICAgIH07CiAKLSAgICByZXR1cm4gVGV4dHVyZUltcGw6OmNyZWF0ZSh3Z3B1RGV2aWNlQ3JlYXRl
VGV4dHVyZShiYWNraW5nKCksICZiYWNraW5nRGVzY3JpcHRvciksIGRlc2NyaXB0b3IuZm9ybWF0
LCBkZXNjcmlwdG9yLmRpbWVuc2lvbiwgbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dCk7CisgICAg
YXV0byBiYWNraW5nVmlld0Zvcm1hdHMgPSBjcmVhdGVCYWNraW5nVGV4dHVyZURlc2NyaXB0b3JW
aWV3Rm9ybWF0cyhkZXNjcmlwdG9yLCBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0KTsKKyAgICBi
YWNraW5nVmlld0Zvcm1hdHMuY2hhaW4ubmV4dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8V0dQVUNoYWlu
ZWRTdHJ1Y3QqPigmaW9TdXJmYWNlRGVzY3JpcHRvcik7CisgICAgV0dQVVRleHR1cmVEZXNjcmlw
dG9yIGJhY2tpbmdEZXNjcmlwdG9yID0gY3JlYXRlQmFja2luZ0Rlc2NyaXB0b3IoYmFja2luZ1Zp
ZXdGb3JtYXRzLCBkZXNjcmlwdG9yLCBtX2NvbnZlcnRUb0JhY2tpbmdDb250ZXh0KTsKKyAgICBy
ZXR1cm4gVGV4dHVyZUltcGw6OmNyZWF0ZSh3Z3B1RGV2aWNlQ3JlYXRlVGV4dHVyZShtX2JhY2tp
bmcsICZiYWNraW5nRGVzY3JpcHRvciksIGRlc2NyaXB0b3IuZm9ybWF0LCBkZXNjcmlwdG9yLmRp
bWVuc2lvbiwgbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dCk7CiB9CiAKIFJlZjxTYW1wbGVyPiBE
ZXZpY2VJbXBsOjpjcmVhdGVTYW1wbGVyKGNvbnN0IFNhbXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUv
SW1wbC9XZWJHUFVEZXZpY2VJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNz
L1dlYkdQVS9JbXBsL1dlYkdQVURldmljZUltcGwuaAppbmRleCAyYjA0MTExNTYzOGIuLjQ4OTk4
ZGFjM2ZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJH
UFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVEZXZpY2VJbXBsLmgKQEAgLTY1LDYgKzY1LDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZjxCdWZmZXI+IGNyZWF0ZUJ1ZmZlcihjb25zdCBCdWZmZXJEZXNj
cmlwdG9yJikgZmluYWw7CiAgICAgUmVmPFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoY29uc3QgVGV4
dHVyZURlc2NyaXB0b3ImKSBmaW5hbDsKKyAgICBSZWY8VGV4dHVyZT4gY3JlYXRlU3VyZmFjZVRl
eHR1cmUoY29uc3QgVGV4dHVyZURlc2NyaXB0b3ImLCBjb25zdCBQcmVzZW50YXRpb25Db250ZXh0
JikgZmluYWw7CiAgICAgUmVmPFNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoY29uc3QgU2FtcGxlckRl
c2NyaXB0b3ImKSBmaW5hbDsKICAgICBSZWY8RXh0ZXJuYWxUZXh0dXJlPiBpbXBvcnRFeHRlcm5h
bFRleHR1cmUoY29uc3QgRXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciYpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQ
VVByZXNlbnRhdGlvbkNvbnRleHRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL0ltcGwvV2ViR1BVUHJlc2VudGF0aW9uQ29udGV4dEltcGwuY3BwCmluZGV4
IDIwYWI1ZGNmZmYxZC4uOGQ5ZGZmYTkxYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVByZXNlbnRhdGlvbkNvbnRleHRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dl
YkdQVVByZXNlbnRhdGlvbkNvbnRleHRJbXBsLmNwcApAQCAtNTMsNiArNTMsMTEgQEAgUHJlc2Vu
dGF0aW9uQ29udGV4dEltcGw6On5QcmVzZW50YXRpb25Db250ZXh0SW1wbCgpCiAgICAgd2dwdVN1
cmZhY2VSZWxlYXNlKG1fYmFja2luZyk7CiB9CiAKK0lPU3VyZmFjZVJlZiBQcmVzZW50YXRpb25D
b250ZXh0SW1wbDo6ZHJhd2luZ0J1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdncHVTdXJm
YWNlQ29jb2FDdXN0b21TdXJmYWNlR2V0RHJhd2luZ0J1ZmZlcihtX2JhY2tpbmcpOworfQorCiB2
b2lkIFByZXNlbnRhdGlvbkNvbnRleHRJbXBsOjpjb25maWd1cmUoY29uc3QgQ2FudmFzQ29uZmln
dXJhdGlvbiYgY2FudmFzQ29uZmlndXJhdGlvbikKIHsKICAgICBpZiAobV9zd2FwQ2hhaW4pCkBA
IC0xMDcsNiArMTEyLDE4IEBAIHZvaWQgUHJlc2VudGF0aW9uQ29udGV4dEltcGw6OnByZXNlbnQo
KQogICAgIG1fY3VycmVudFRleHR1cmUgPSBudWxscHRyOwogfQogCisjaWYgUExBVEZPUk0oQ09D
T0EpCit2b2lkIFByZXNlbnRhdGlvbkNvbnRleHRJbXBsOjpwcmVwYXJlRm9yRGlzcGxheShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fc3dhcENoYWluKQorICAgICAgICByZXR1cm47CisKKyAgICB3
Z3B1U3dhcENoYWluUHJlc2VudChtX3N3YXBDaGFpbik7CisgICAgYXV0byBpb1N1cmZhY2UgPSB3
Z3B1U3VyZmFjZUNvY29hQ3VzdG9tU3VyZmFjZUdldERpc3BsYXlCdWZmZXIobV9iYWNraW5nKTsK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihNYWNoU2VuZFJpZ2h0OjphZG9wdChJT1N1cmZhY2VDcmVh
dGVNYWNoUG9ydChpb1N1cmZhY2UpKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgUEFM
OjpXZWJHUFUKIAogI2VuZGlmIC8vIEhBVkUoV0VCR1BVX0lNUExFTUVOVEFUSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVQ
cmVzZW50YXRpb25Db250ZXh0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGlj
cy9XZWJHUFUvSW1wbC9XZWJHUFVQcmVzZW50YXRpb25Db250ZXh0SW1wbC5oCmluZGV4IDBjOWQ2
ZmRlZjgwZi4uODVmYWNkNzYzM2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2dyYXBoaWNzL1dlYkdQVS9JbXBsL1dlYkdQVVByZXNlbnRhdGlvbkNvbnRleHRJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvSW1wbC9XZWJHUFVQcmVz
ZW50YXRpb25Db250ZXh0SW1wbC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICAgICAg
bV9oZWlnaHQgPSBoZWlnaHQ7CiAgICAgfQogCi0gICAgdm9pZCBwcmVzZW50KCk7CisgICAgSU9T
dXJmYWNlUmVmIGRyYXdpbmdCdWZmZXIoKSBjb25zdDsKIAogICAgIFdHUFVTdXJmYWNlIGJhY2tp
bmcoKSBjb25zdCB7IHJldHVybiBtX2JhY2tpbmc7IH0KIApAQCAtNzUsNiArNzUsMTIgQEAgcHJp
dmF0ZToKIAogICAgIFJlZlB0cjxUZXh0dXJlPiBnZXRDdXJyZW50VGV4dHVyZSgpIGZpbmFsOwog
CisgICAgdm9pZCBwcmVzZW50KCkgZmluYWw7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2
b2lkIHByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2Vu
ZFJpZ2h0JiYpPiYmKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgVGV4dHVyZUZvcm1hdCBtX2Zvcm1h
dCB7IFRleHR1cmVGb3JtYXQ6OkJncmE4dW5vcm0gfTsKICAgICB1aW50MzJfdCBtX3dpZHRoIHsg
MCB9OwogICAgIHVpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVEZXZpY2UuaAppbmRleCA4NmUwMzhi
NDU2YWQuLmFhZTgyNjExNmExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9n
cmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRGV2aWNlLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBSZWY8QnVmZmVyPiBjcmVhdGVCdWZmZXIoY29uc3QgQnVmZmVyRGVz
Y3JpcHRvciYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKGNv
bnN0IFRleHR1cmVEZXNjcmlwdG9yJikgPSAwOworICAgIHZpcnR1YWwgUmVmPFRleHR1cmU+IGNy
ZWF0ZVN1cmZhY2VUZXh0dXJlKGNvbnN0IFRleHR1cmVEZXNjcmlwdG9yJiwgY29uc3QgUHJlc2Vu
dGF0aW9uQ29udGV4dCYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTYW1wbGVyPiBjcmVhdGVTYW1w
bGVyKGNvbnN0IFNhbXBsZXJEZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgUmVmPEV4dGVy
bmFsVGV4dHVyZT4gaW1wb3J0RXh0ZXJuYWxUZXh0dXJlKGNvbnN0IEV4dGVybmFsVGV4dHVyZURl
c2NyaXB0b3ImKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3Jh
cGhpY3MvV2ViR1BVL1dlYkdQVVByZXNlbnRhdGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZXNlbnRhdGlvbkNvbnRleHQuaAppbmRl
eCAyMDgwYTUzNjY4N2EuLmNjMDFiYWNkNmIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUHJlc2VudGF0aW9uQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVVByZXNlbnRhdGlv
bkNvbnRleHQuaApAQCAtNDgsNiArNDgsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBSZWZQ
dHI8VGV4dHVyZT4gZ2V0Q3VycmVudFRleHR1cmUoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cHJlc2VudCgpID0gMDsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgdm9pZCBw
cmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdo
dCYmKT4mJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBQcmVzZW50YXRpb25Db250
ZXh0KCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9HUFVDYW52YXNDb250ZXh0Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
R1BVQ2FudmFzQ29udGV4dENvY29hLmNwcAppbmRleCA4ZDNkYWIzMDc5YjkuLmU1ZjAxNzViZTI3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvR1BVQ2FudmFzQ29udGV4
dENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9HUFVDYW52YXNDb250
ZXh0Q29jb2EuY3BwCkBAIC0xNzEsOCArMTcxLDIwIEBAIFJlZlB0cjxHUFVUZXh0dXJlPiBHUFVD
YW52YXNDb250ZXh0Q29jb2E6OmdldEN1cnJlbnRUZXh0dXJlKCkKICAgICBpZiAobV9jdXJyZW50
VGV4dHVyZSkKICAgICAgICAgcmV0dXJuIG1fY3VycmVudFRleHR1cmU7CiAKKyAgICBHUFVUZXh0
dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yID0geworICAgICAgICB7ICJXZWJHUFUgRGlzcGxheSB0
ZXh0dXJlIl9zIH0sCisgICAgICAgIEdQVUV4dGVudDNERGljdCB7IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihtX3dpZHRoKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1faGVpZ2h0KSwgMSB9LAorICAg
ICAgICAxIC8qIG1pcE1hcENvdW50ICovLAorICAgICAgICAxIC8qIHNhbXBsZUNvdW50ICovLAor
ICAgICAgICBHUFVUZXh0dXJlRGltZW5zaW9uOjpfMmQsCisgICAgICAgIG1fY29uZmlndXJhdGlv
bi0+Zm9ybWF0LAorICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnVzYWdlLAorICAgICAgICBtX2Nv
bmZpZ3VyYXRpb24tPnZpZXdGb3JtYXRzCisgICAgfTsKKwogICAgIG1hcmtDb250ZXh0Q2hhbmdl
ZEFuZE5vdGlmeUNhbnZhc09ic2VydmVycygpOwotICAgIG1fY3VycmVudFRleHR1cmUgPSBtX3By
ZXNlbnRhdGlvbkNvbnRleHQtPmdldEN1cnJlbnRUZXh0dXJlKCk7CisgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIHVzZSBQcmVzZW50YXRpb25Db250ZXh0OjpnZXRDdXJyZW50VGV4dHVyZSgpIGlu
c3RlYWQuCisgICAgbV9jdXJyZW50VGV4dHVyZSA9IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlLT5j
cmVhdGVTdXJmYWNlVGV4dHVyZShkZXNjcmlwdG9yLCBtX3ByZXNlbnRhdGlvbkNvbnRleHQpOwog
ICAgIHJldHVybiBtX2N1cnJlbnRUZXh0dXJlOwogfQogCkBAIC0yMDMsNyArMjE1LDYgQEAgdm9p
ZCBHUFVDYW52YXNDb250ZXh0Q29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KCkKICAgICAgICAgbV9j
b21wb3NpdGluZ1Jlc3VsdHNOZWVkc1VwZGF0aW5nID0gZmFsc2U7CiAgICAgICAgIG1fY29uZmln
dXJhdGlvbi0+ZnJhbWVDb3VudCA9IChtX2NvbmZpZ3VyYXRpb24tPmZyYW1lQ291bnQgKyAxKSAl
IG1fY29uZmlndXJhdGlvbi0+cmVuZGVyQnVmZmVycy5zaXplKCk7CiAgICAgICAgIG1fY3VycmVu
dFRleHR1cmUgPSBudWxscHRyOwotICAgICAgICBtX3ByZXNlbnRhdGlvbkNvbnRleHQtPnByZXNl
bnQoKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUHJl
c2VudGF0aW9uQ29udGV4dElPU3VyZmFjZS5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUHJlc2Vu
dGF0aW9uQ29udGV4dElPU3VyZmFjZS5oCmluZGV4IGFlZWRlNWIwMTk0Yi4uN2IwOGQ0MjllZjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9QcmVzZW50YXRpb25Db250ZXh0SU9T
dXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUHJlc2VudGF0aW9uQ29udGV4dElP
U3VyZmFjZS5oCkBAIC00Nyw2ICs0NywxMCBAQCBwdWJsaWM6CiAgICAgVGV4dHVyZSogZ2V0Q3Vy
cmVudFRleHR1cmUoKSBvdmVycmlkZTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiBhIFRl
eHR1cmUmLgogICAgIFRleHR1cmVWaWV3KiBnZXRDdXJyZW50VGV4dHVyZVZpZXcoKSBvdmVycmlk
ZTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiBhIFRleHR1cmVWaWV3Ji4KIAorICAgIC8v
IEZJWE1FOiBEZWxldGUgdGhlc2UuCisgICAgSU9TdXJmYWNlICpkaXNwbGF5QnVmZmVyKCkgY29u
c3Q7CisgICAgSU9TdXJmYWNlICpkcmF3aW5nQnVmZmVyKCkgY29uc3Q7CisKICAgICBib29sIGlz
UHJlc2VudGF0aW9uQ29udGV4dElPU3VyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1ByZXNl
bnRhdGlvbkNvbnRleHRJT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9QcmVzZW50
YXRpb25Db250ZXh0SU9TdXJmYWNlLm1tCmluZGV4IDFjNDA4NDE4NTg1Yi4uNjdjMmIxY2YxYjk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9QcmVzZW50YXRpb25Db250ZXh0SU9T
dXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1ByZXNlbnRhdGlvbkNvbnRleHRJ
T1N1cmZhY2UubW0KQEAgLTU2LDYgKzU2LDE5IEBAIFByZXNlbnRhdGlvbkNvbnRleHRJT1N1cmZh
Y2U6OlByZXNlbnRhdGlvbkNvbnRleHRJT1N1cmZhY2UoY29uc3QgV0dQVVN1cmZhY2VEZXNjCiAK
IFByZXNlbnRhdGlvbkNvbnRleHRJT1N1cmZhY2U6On5QcmVzZW50YXRpb25Db250ZXh0SU9TdXJm
YWNlKCkgPSBkZWZhdWx0OwogCitJT1N1cmZhY2UgKlByZXNlbnRhdGlvbkNvbnRleHRJT1N1cmZh
Y2U6OmRpc3BsYXlCdWZmZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2lvU3VyZmFjZXMuY291
bnQgPT0gbV9yZW5kZXJCdWZmZXJzLnNpemUoKSk7CisgICAgc2l6ZV90IGluZGV4ID0gKG1fY3Vy
cmVudEluZGV4ICsgMSkgJSBtX3JlbmRlckJ1ZmZlcnMuc2l6ZSgpOworICAgIHJldHVybiBtX2lv
U3VyZmFjZXNbaW5kZXhdOworfQorCitJT1N1cmZhY2UgKlByZXNlbnRhdGlvbkNvbnRleHRJT1N1
cmZhY2U6OmRyYXdpbmdCdWZmZXIoKSBjb25zdAoreworICAgIEFTU0VSVChtX2lvU3VyZmFjZXMu
Y291bnQgPT0gbV9yZW5kZXJCdWZmZXJzLnNpemUoKSk7CisgICAgcmV0dXJuIG1faW9TdXJmYWNl
c1ttX2N1cnJlbnRJbmRleF07Cit9CisKIHZvaWQgUHJlc2VudGF0aW9uQ29udGV4dElPU3VyZmFj
ZTo6cmVuZGVyQnVmZmVyc1dlcmVSZWNyZWF0ZWQoTlNBcnJheTxJT1N1cmZhY2UgKj4gKmlvU3Vy
ZmFjZXMpCiB7CiAgICAgbV9pb1N1cmZhY2VzID0gaW9TdXJmYWNlczsKQEAgLTE0OSwzICsxNjIs
MTcgQEAgVGV4dHVyZVZpZXcqIFByZXNlbnRhdGlvbkNvbnRleHRJT1N1cmZhY2U6OmdldEN1cnJl
bnRUZXh0dXJlVmlldygpCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKIAogI3ByYWdtYSBtYXJrIFdH
UFUgU3R1YnMKKworSU9TdXJmYWNlUmVmIHdncHVTdXJmYWNlQ29jb2FDdXN0b21TdXJmYWNlR2V0
RGlzcGxheUJ1ZmZlcihXR1BVU3VyZmFjZSBzdXJmYWNlKQoreworICAgIGlmIChhdXRvKiBwcmVz
ZW50YXRpb25Db250ZXh0SU9TdXJmYWNlID0gZG93bmNhc3Q8V2ViR1BVOjpQcmVzZW50YXRpb25D
b250ZXh0SU9TdXJmYWNlPigmV2ViR1BVOjpmcm9tQVBJKHN1cmZhY2UpKSkKKyAgICAgICAgcmV0
dXJuIGJyaWRnZV9jYXN0KHByZXNlbnRhdGlvbkNvbnRleHRJT1N1cmZhY2UtPmRpc3BsYXlCdWZm
ZXIoKSk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0lPU3VyZmFjZVJlZiB3Z3B1U3VyZmFj
ZUNvY29hQ3VzdG9tU3VyZmFjZUdldERyYXdpbmdCdWZmZXIoV0dQVVN1cmZhY2Ugc3VyZmFjZSkK
K3sKKyAgICBpZiAoYXV0byogcHJlc2VudGF0aW9uQ29udGV4dElPU3VyZmFjZSA9IGRvd25jYXN0
PFdlYkdQVTo6UHJlc2VudGF0aW9uQ29udGV4dElPU3VyZmFjZT4oJldlYkdQVTo6ZnJvbUFQSShz
dXJmYWNlKSkpCisgICAgICAgIHJldHVybiBicmlkZ2VfY2FzdChwcmVzZW50YXRpb25Db250ZXh0
SU9TdXJmYWNlLT5kcmF3aW5nQnVmZmVyKCkpOworICAgIHJldHVybiBudWxscHRyOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvVGV4dHVyZS5tbSBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL1RleHR1cmUubW0KaW5kZXggMGZlZmFkNGJhZTZjLi5kYWQ3ZTgyZWRlYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1RleHR1cmUubW0KKysrIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvVGV4dHVyZS5tbQpAQCAtMTMyNyw2ICsxMzI3LDUyIEBAIGJvb2wgRGV2aWNlOjp2
YWxpZGF0ZUNyZWF0ZVRleHR1cmUoY29uc3QgV0dQVVRleHR1cmVEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBjb25zCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRGV2aWNlOjp2YWxpZGF0ZUNy
ZWF0ZUlPU3VyZmFjZUJhY2tlZFRleHR1cmUoY29uc3QgV0dQVVRleHR1cmVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBjb25zdCBWZWN0b3I8V0dQVVRleHR1cmVGb3JtYXQ+JiB2aWV3Rm9ybWF0cywg
SU9TdXJmYWNlUmVmIGJhY2tpbmcpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghYmFja2luZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCEoZGVzY3JpcHRvci51c2FnZSAmIFdHUFVUZXh0dXJlVXNhZ2VfUmVuZGVyQXR0
YWNobWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIE1ldGFsIG9ubHkgc3Vw
cG9ydHMgYmluZGluZyBpbnRvIEJHUkE4IGFuZCBSR0JBMTZGbG9hdCBJT1RleHR1cmVzLgorICAg
IC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgUkdCQTE2IGlmIG5lY2Vzc2FyeS4KKyAgICBpZiAo
ZGVzY3JpcHRvci5mb3JtYXQgIT0gV0dQVVRleHR1cmVGb3JtYXRfQkdSQThVbm9ybSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChJT1N1cmZhY2VHZXRQaXhlbEZvcm1hdChiYWNraW5n
KSAhPSAnQkdSQScpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBCR1JBOCBpcyBub24t
cGxhbmFyLCBjaGVjayB0aGF0IHRoZSBJT1N1cmZhY2UgaXMgbm9uLXBsYW5hci4KKyAgICBpZiAo
SU9TdXJmYWNlR2V0UGxhbmVDb3VudChiYWNraW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgdGV4dHVyZSBpcyBhIDJEIHRleHR1cmUgd2l0aCB2YWxp
ZCB3aWR0aC9oZWlnaHQsIGFuZCBoYXMgdGhlIHNhbWUgZGltZW5zaW9ucyBhcyB0aGUgSU9TdXJm
YWNlLgorICAgIGlmIChkZXNjcmlwdG9yLmRpbWVuc2lvbiAhPSBXR1BVVGV4dHVyZURpbWVuc2lv
bl8yRCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVzY3JpcHRvci5zaXplLndp
ZHRoIHx8IGRlc2NyaXB0b3Iuc2l6ZS53aWR0aCAhPSBJT1N1cmZhY2VHZXRXaWR0aChiYWNraW5n
KSB8fCBkZXNjcmlwdG9yLnNpemUud2lkdGggPiBsaW1pdHMoKS5tYXhUZXh0dXJlRGltZW5zaW9u
MkQgfHwgZGVzY3JpcHRvci5zaXplLndpZHRoICUgVGV4dHVyZTo6dGV4ZWxCbG9ja1dpZHRoKGRl
c2NyaXB0b3IuZm9ybWF0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVzY3Jp
cHRvci5zaXplLmhlaWdodCB8fCBkZXNjcmlwdG9yLnNpemUuaGVpZ2h0ICE9IElPU3VyZmFjZUdl
dEhlaWdodChiYWNraW5nKSB8fCBkZXNjcmlwdG9yLnNpemUuaGVpZ2h0ID4gbGltaXRzKCkubWF4
VGV4dHVyZURpbWVuc2lvbjJEIHx8IGRlc2NyaXB0b3Iuc2l6ZS5oZWlnaHQgJSBUZXh0dXJlOjp0
ZXhlbEJsb2NrSGVpZ2h0KGRlc2NyaXB0b3IuZm9ybWF0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChkZXNjcmlwdG9yLnNpemUuZGVwdGhPckFycmF5TGF5ZXJzICE9IDEpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChkZXNjcmlwdG9yLm1pcExldmVsQ291bnQgIT0g
MSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSU9TdXJmYWNlLWJhY2tlZCB0ZXh0
dXJlcyBkbyBub3Qgc3VwcG9ydCBtdWx0aXNhbXBsaW5nLgorICAgIGlmIChkZXNjcmlwdG9yLnNh
bXBsZUNvdW50ICE9IDEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoYXV0byB2
aWV3Rm9ybWF0IDogdmlld0Zvcm1hdHMpIHsKKyAgICAgICAgaWYgKCF0ZXh0dXJlVmlld0Zvcm1h
dENvbXBhdGlibGUoZGVzY3JpcHRvci5mb3JtYXQsIHZpZXdGb3JtYXQpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBNVExUZXh0dXJl
VXNhZ2UgVGV4dHVyZTo6dXNhZ2UoV0dQVVRleHR1cmVVc2FnZUZsYWdzIHVzYWdlKQogewogICAg
IE1UTFRleHR1cmVVc2FnZSByZXN1bHQgPSBNVExUZXh0dXJlVXNhZ2VVbmtub3duOwpAQCAtMTkz
NSw4ICsxOTgxLDE1IEBAIHN0ZDo6b3B0aW9uYWw8TVRMUGl4ZWxGb3JtYXQ+IFRleHR1cmU6OnN0
ZW5jaWxPbmx5QXNwZWN0TWV0YWxGb3JtYXQoV0dQVVRleHR1cmVGCiAgICAgfQogfQogCi1zdGF0
aWMgTVRMU3RvcmFnZU1vZGUgc3RvcmFnZU1vZGUoYm9vbCBkZXZpY2VIYXNVbmlmaWVkTWVtb3J5
LCBib29sIHN1cHBvcnRzTm9uUHJpdmF0ZURlcHRoU3RlbmNpbFRleHR1cmVzKQorc3RhdGljIE1U
TFN0b3JhZ2VNb2RlIHN0b3JhZ2VNb2RlKGJvb2wgZGV2aWNlSGFzVW5pZmllZE1lbW9yeSwgYm9v
bCBzdXBwb3J0c05vblByaXZhdGVEZXB0aFN0ZW5jaWxUZXh0dXJlcywgYm9vbCBpc0JhY2tlZEJ5
SU9TdXJmYWNlKQogeworICAgIC8vIE1ldGFsIGRyaXZlciByZXF1aXJlcyBJT1N1cmZhY2UtYmFj
a2VkIHRleHR1cmUgdG8gYmUgTVRMU3RvcmFnZU1vZGVNYW5hZ2VkLgorICAgIGlmIChpc0JhY2tl
ZEJ5SU9TdXJmYWNlKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CisgICAgICAgIHJldHVybiBNVExTdG9yYWdlTW9kZU1hbmFnZWQ7CisjZWxzZQorICAgICAgICBy
ZXR1cm4gTVRMU3RvcmFnZU1vZGVTaGFyZWQ7CisjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBvbmx5
IHBlcmZvcm0gdGhpcyBjaGVjayBpZiB0aGUgdGV4dHVyZSBpcyBhIGRlcHRoL3N0ZW5jaWwgdGV4
dHVyZS4KICAgICBpZiAoIXN1cHBvcnRzTm9uUHJpdmF0ZURlcHRoU3RlbmNpbFRleHR1cmVzKQpA
QCAtMTk1NCw4ICsyMDA3LDI3IEBAIHN0YXRpYyBNVExTdG9yYWdlTW9kZSBzdG9yYWdlTW9kZShi
b29sIGRldmljZUhhc1VuaWZpZWRNZW1vcnksIGJvb2wgc3VwcG9ydHNOb25QCiAKIFJlZjxUZXh0
dXJlPiBEZXZpY2U6OmNyZWF0ZVRleHR1cmUoY29uc3QgV0dQVVRleHR1cmVEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogewotICAgIGlmIChkZXNjcmlwdG9yLm5leHRJbkNoYWluKQotICAgICAgICBy
ZXR1cm4gVGV4dHVyZTo6Y3JlYXRlSW52YWxpZCgqdGhpcyk7CisgICAgSU9TdXJmYWNlUmVmIGlv
U3VyZmFjZUJhY2tpbmcgPSBudWxscHRyOworICAgIFZlY3RvcjxXR1BVVGV4dHVyZUZvcm1hdD4g
dmlld0Zvcm1hdHM7CisgICAgY29uc3QgYXV0byogY3VycmVudCA9IGRlc2NyaXB0b3IubmV4dElu
Q2hhaW47CisgICAgd2hpbGUgKGN1cnJlbnQpIHsKKyAgICAgICAgYm9vbCB2aWV3Rm9ybWF0c1Nw
ZWNpZmllZCA9IGZhbHNlOworICAgICAgICBpZiAoY3VycmVudC0+c1R5cGUgPT0gc3RhdGljX2Nh
c3Q8V0dQVVNUeXBlPihXR1BVU1R5cGVFeHRlbmRlZF9UZXh0dXJlRGVzY3JpcHRvclZpZXdGb3Jt
YXRzKSAmJiAhdmlld0Zvcm1hdHNTcGVjaWZpZWQpIHsKKyAgICAgICAgICAgIGlmICh2aWV3Rm9y
bWF0c1NwZWNpZmllZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gVGV4dHVyZTo6Y3JlYXRlSW52
YWxpZCgqdGhpcyk7CisKKyAgICAgICAgICAgIHZpZXdGb3JtYXRzU3BlY2lmaWVkID0gdHJ1ZTsK
KworICAgICAgICAgICAgY29uc3QgYXV0byYgZGVzY3JpcHRvclZpZXdGb3JtYXRzID0gcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBXR1BVVGV4dHVyZURlc2NyaXB0b3JWaWV3Rm9ybWF0cyY+KCpjdXJy
ZW50KTsKKyAgICAgICAgICAgIHZpZXdGb3JtYXRzID0gVmVjdG9yIHsgZGVzY3JpcHRvclZpZXdG
b3JtYXRzLnZpZXdGb3JtYXRzLCBkZXNjcmlwdG9yVmlld0Zvcm1hdHMudmlld0Zvcm1hdHNDb3Vu
dCB9OworICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnQtPnNUeXBlID09IHN0YXRpY19jYXN0PFdH
UFVTVHlwZT4oV0dQVVNUeXBlRXh0ZW5kZWRfVGV4dHVyZURlc2NyaXB0b3JDb2NvYVN1cmZhY2VC
YWNraW5nKSkgeworICAgICAgICAgICAgY29uc3QgYXV0byYgZGVzY3JpcHRvcklPU3VyZmFjZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgV0dQVVRleHR1cmVEZXNjcmlwdG9yQ29jb2FDdXN0b21T
dXJmYWNlJj4oKmN1cnJlbnQpOworICAgICAgICAgICAgaW9TdXJmYWNlQmFja2luZyA9IGRlc2Ny
aXB0b3JJT1N1cmZhY2Uuc3VyZmFjZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1
cm4gVGV4dHVyZTo6Y3JlYXRlSW52YWxpZCgqdGhpcyk7CisKKyAgICAgICAgY3VycmVudCA9IGN1
cnJlbnQtPm5leHQ7CisgICAgfQogCiAgICAgLy8gaHR0cHM6Ly9ncHV3ZWIuZ2l0aHViLmlvL2dw
dXdlYi8jZG9tLWdwdWRldmljZS1jcmVhdGV0ZXh0dXJlCiAKQEAgLTE5NjYsOSArMjAzOCw4IEBA
IFJlZjxUZXh0dXJlPiBEZXZpY2U6OmNyZWF0ZVRleHR1cmUoY29uc3QgV0dQVVRleHR1cmVEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQogICAgICAgICB9CiAgICAgfQogCi0gICAgVmVjdG9yIHZpZXdG
b3JtYXRzID0geyBkZXNjcmlwdG9yLnZpZXdGb3JtYXRzLCBkZXNjcmlwdG9yLnZpZXdGb3JtYXRD
b3VudCB9OwotCi0gICAgaWYgKCF2YWxpZGF0ZUNyZWF0ZVRleHR1cmUoZGVzY3JpcHRvciwgdmll
d0Zvcm1hdHMpKSB7CisgICAgYm9vbCB2YWxpZGF0aW9uUmVzdWx0ID0gaW9TdXJmYWNlQmFja2lu
ZyA/IHZhbGlkYXRlQ3JlYXRlSU9TdXJmYWNlQmFja2VkVGV4dHVyZShkZXNjcmlwdG9yLCB2aWV3
Rm9ybWF0cywgaW9TdXJmYWNlQmFja2luZykgOiB2YWxpZGF0ZUNyZWF0ZVRleHR1cmUoZGVzY3Jp
cHRvciwgdmlld0Zvcm1hdHMpOworICAgIGlmICghdmFsaWRhdGlvblJlc3VsdCkgewogICAgICAg
ICBnZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAg
ICAgICByZXR1cm4gVGV4dHVyZTo6Y3JlYXRlSW52YWxpZCgqdGhpcyk7CiAgICAgfQpAQCAtMjAy
MywxMiArMjA5NCwxNiBAQCBSZWY8VGV4dHVyZT4gRGV2aWNlOjpjcmVhdGVUZXh0dXJlKGNvbnN0
IFdHUFVUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIAogICAgIHRleHR1cmVEZXNjcmlw
dG9yLnNhbXBsZUNvdW50ID0gZGVzY3JpcHRvci5zYW1wbGVDb3VudDsKIAotICAgIHRleHR1cmVE
ZXNjcmlwdG9yLnN0b3JhZ2VNb2RlID0gc3RvcmFnZU1vZGUoaGFzVW5pZmllZE1lbW9yeSgpLCBi
YXNlQ2FwYWJpbGl0aWVzKCkuc3VwcG9ydHNOb25Qcml2YXRlRGVwdGhTdGVuY2lsVGV4dHVyZXMp
OworICAgIHRleHR1cmVEZXNjcmlwdG9yLnN0b3JhZ2VNb2RlID0gc3RvcmFnZU1vZGUoaGFzVW5p
ZmllZE1lbW9yeSgpLCBiYXNlQ2FwYWJpbGl0aWVzKCkuc3VwcG9ydHNOb25Qcml2YXRlRGVwdGhT
dGVuY2lsVGV4dHVyZXMsIGlvU3VyZmFjZUJhY2tpbmcpOwogCiAgICAgLy8gRklYTUUoUEVSRk9S
TUFOQ0UpOiBDb25zaWRlciB3cml0ZS1jb21iaW5pbmcgQ1BVIGNhY2hlIG1vZGUuCiAgICAgLy8g
RklYTUUoUEVSRk9STUFOQ0UpOiBDb25zaWRlciBpbXBsZW1lbnRpbmcgaGF6YXJkIHRyYWNraW5n
IG91cnNlbGYuCiAKLSAgICBpZDxNVExUZXh0dXJlPiB0ZXh0dXJlID0gW21fZGV2aWNlIG5ld1Rl
eHR1cmVXaXRoRGVzY3JpcHRvcjp0ZXh0dXJlRGVzY3JpcHRvcl07CisgICAgaWQ8TVRMVGV4dHVy
ZT4gdGV4dHVyZSA9IG5pbDsKKyAgICBpZiAoaW9TdXJmYWNlQmFja2luZykKKyAgICAgICAgdGV4
dHVyZSA9IFttX2RldmljZSBuZXdUZXh0dXJlV2l0aERlc2NyaXB0b3I6dGV4dHVyZURlc2NyaXB0
b3IgaW9zdXJmYWNlOmlvU3VyZmFjZUJhY2tpbmcgcGxhbmU6MF07CisgICAgZWxzZQorICAgICAg
ICB0ZXh0dXJlID0gW21fZGV2aWNlIG5ld1RleHR1cmVXaXRoRGVzY3JpcHRvcjp0ZXh0dXJlRGVz
Y3JpcHRvcl07CiAKICAgICBpZiAoIXRleHR1cmUpCiAgICAgICAgIHJldHVybiBUZXh0dXJlOjpj
cmVhdGVJbnZhbGlkKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1dl
YkdQVUV4dC5oIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvV2ViR1BVRXh0LmgKaW5kZXggM2U2ZDY1
YThjNGFmLi5lOTcxYTNmNjRjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1dl
YkdQVUV4dC5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1dlYkdQVUV4dC5oCkBAIC00Niw4
ICs0NiwxMCBAQCB0eXBlZGVmIHZvaWQgKF5XR1BVV29ya0l0ZW0pKHZvaWQpOwogdHlwZWRlZiB2
b2lkICheV0dQVVNjaGVkdWxlV29ya0Jsb2NrKShXR1BVV29ya0l0ZW0gd29ya0l0ZW0pOwogCiB0
eXBlZGVmIGVudW0gV0dQVVNUeXBlRXh0ZW5kZWQgeworICAgIFdHUFVTVHlwZUV4dGVuZGVkX1Rl
eHR1cmVEZXNjcmlwdG9yVmlld0Zvcm1hdHMgPSAweDFENUJDNTcsIC8vIFJhbmRvbQogICAgIFdH
UFVTVHlwZUV4dGVuZGVkX0luc3RhbmNlQ29jb2FEZXNjcmlwdG9yID0gMHgxNTFCQkMwMCwgLy8g
UmFuZG9tCiAgICAgV0dQVVNUeXBlRXh0ZW5kZWRfU3VyZmFjZURlc2NyaXB0b3JDb2NvYVN1cmZh
Y2VCYWNraW5nID0gMHgwMTdFOTcxMCwgLy8gUmFuZG9tCisgICAgV0dQVVNUeXBlRXh0ZW5kZWRf
VGV4dHVyZURlc2NyaXB0b3JDb2NvYVN1cmZhY2VCYWNraW5nID0gMHhDQ0U0RUQ2MSwgLy8gUmFu
ZG9tCiAgICAgV0dQVVNUeXBlRXh0ZW5kZWRfRm9yY2UzMiA9IDB4N0ZGRkZGRkYKIH0gV0dQVVNU
eXBlRXh0ZW5kZWQ7CiAKQEAgLTYzLDYgKzY1LDEyIEBAIHR5cGVkZWYgc3RydWN0IFdHUFVJbnN0
YW5jZUNvY29hRGVzY3JpcHRvciB7CiAgICAgX191bnNhZmVfdW5yZXRhaW5lZCBXR1BVU2NoZWR1
bGVXb3JrQmxvY2sgc2NoZWR1bGVXb3JrQmxvY2s7CiB9IFdHUFVJbnN0YW5jZUNvY29hRGVzY3Jp
cHRvcjsKIAordHlwZWRlZiBzdHJ1Y3QgV0dQVVRleHR1cmVEZXNjcmlwdG9yVmlld0Zvcm1hdHMg
eworICAgIFdHUFVDaGFpbmVkU3RydWN0IGNoYWluOworICAgIHVpbnQzMl90IHZpZXdGb3JtYXRz
Q291bnQ7CisgICAgV0dQVVRleHR1cmVGb3JtYXQgY29uc3QgKiB2aWV3Rm9ybWF0czsKK30gV0dQ
VVRleHR1cmVEZXNjcmlwdG9yVmlld0Zvcm1hdHM7CisKIHR5cGVkZWYgdm9pZCAoXldHUFVSZW5k
ZXJCdWZmZXJzV2VyZVJlY3JlYXRlZEJsb2NrQ2FsbGJhY2spKENGQXJyYXlSZWYgaW9TdXJmYWNl
cyk7CiB0eXBlZGVmIHZvaWQgKF5XR1BVT25TdWJtaXR0ZWRXb3JrU2NoZWR1bGVkQ2FsbGJhY2sp
KFdHUFVXb3JrSXRlbSk7CiB0eXBlZGVmIHZvaWQgKF5XR1BVQ29tcG9zaXRvckludGVncmF0aW9u
UmVnaXN0ZXJCbG9ja0NhbGxiYWNrKShXR1BVUmVuZGVyQnVmZmVyc1dlcmVSZWNyZWF0ZWRCbG9j
a0NhbGxiYWNrIHJlbmRlckJ1ZmZlcnNXZXJlUmVjcmVhdGVkLCBXR1BVT25TdWJtaXR0ZWRXb3Jr
U2NoZWR1bGVkQ2FsbGJhY2sgb25TdWJtaXR0ZWRXb3JrU2NoZWR1bGVkQ2FsbGJhY2spOwpAQCAt
NzEsNiArNzksMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0dQVVN1cmZhY2VEZXNjcmlwdG9yQ29jb2FD
dXN0b21TdXJmYWNlIHsKICAgICBXR1BVQ29tcG9zaXRvckludGVncmF0aW9uUmVnaXN0ZXJCbG9j
a0NhbGxiYWNrIGNvbXBvc2l0b3JJbnRlZ3JhdGlvblJlZ2lzdGVyOwogfSBXR1BVU3VyZmFjZURl
c2NyaXB0b3JDb2NvYUN1c3RvbVN1cmZhY2U7CiAKK3R5cGVkZWYgc3RydWN0IFdHUFVUZXh0dXJl
RGVzY3JpcHRvckNvY29hQ3VzdG9tU3VyZmFjZSB7CisgICAgV0dQVUNoYWluZWRTdHJ1Y3QgY2hh
aW47CisgICAgSU9TdXJmYWNlUmVmIHN1cmZhY2U7Cit9IFdHUFVUZXh0dXJlRGVzY3JpcHRvckNv
Y29hQ3VzdG9tU3VyZmFjZTsKKwogI2lmICFkZWZpbmVkKFdHUFVfU0tJUF9QUk9DUykKIAogdHlw
ZWRlZiB2b2lkICgqV0dQVVByb2NBZGFwdGVyUmVsZWFzZSkoV0dQVUFkYXB0ZXIgYWRhcHRlcik7
CkBAIC0xODUsNiArMTk4LDkgQEAgV0dQVV9FWFBPUlQgdm9pZCB3Z3B1SW5zdGFuY2VSZXF1ZXN0
QWRhcHRlcldpdGhCbG9jayhXR1BVSW5zdGFuY2UgaW5zdGFuY2UsIFdHUFUKIFdHUFVfRVhQT1JU
IHZvaWQgd2dwdVF1ZXVlT25TdWJtaXR0ZWRXb3JrRG9uZVdpdGhCbG9jayhXR1BVUXVldWUgcXVl
dWUsIFdHUFVRdWV1ZVdvcmtEb25lQmxvY2tDYWxsYmFjayBjYWxsYmFjayk7CiBXR1BVX0VYUE9S
VCB2b2lkIHdncHVTaGFkZXJNb2R1bGVHZXRDb21waWxhdGlvbkluZm9XaXRoQmxvY2soV0dQVVNo
YWRlck1vZHVsZSBzaGFkZXJNb2R1bGUsIFdHUFVDb21waWxhdGlvbkluZm9CbG9ja0NhbGxiYWNr
IGNhbGxiYWNrKTsKIAorV0dQVV9FWFBPUlQgSU9TdXJmYWNlUmVmIHdncHVTdXJmYWNlQ29jb2FD
dXN0b21TdXJmYWNlR2V0RGlzcGxheUJ1ZmZlcihXR1BVU3VyZmFjZSk7CitXR1BVX0VYUE9SVCBJ
T1N1cmZhY2VSZWYgd2dwdVN1cmZhY2VDb2NvYUN1c3RvbVN1cmZhY2VHZXREcmF3aW5nQnVmZmVy
KFdHUFVTdXJmYWNlKTsKKwogLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJncHUtbmF0
aXZlL3dlYmdwdS1oZWFkZXJzL2lzc3Vlcy84OSBpcyBhYm91dCBtb3ZpbmcgdGhpcyBmcm9tIFdl
YkdQVUV4dC5oIHRvIFdlYkdQVS5oCiBXR1BVX0VYUE9SVCBXR1BVVGV4dHVyZSB3Z3B1U3dhcENo
YWluR2V0Q3VycmVudFRleHR1cmUoV0dQVVN3YXBDaGFpbiBzd2FwQ2hhaW4pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmlj
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURl
dmljZS5jcHAKaW5kZXggZTVkMzRhYjZjYmE1Li5kOTVhNjc4ZGEwYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmlj
ZS5jcHAKQEAgLTEzMCw2ICsxMzAsMjAgQEAgdm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVRleHR1
cmUoY29uc3QgV2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2UKICAgICBt
X29iamVjdEhlYXAuYWRkT2JqZWN0KGlkZW50aWZpZXIsIHJlbW90ZVRleHR1cmUpOwogfQogCit2
b2lkIFJlbW90ZURldmljZTo6Y3JlYXRlU3VyZmFjZVRleHR1cmUoV2ViR1BVSWRlbnRpZmllciBw
cmVzZW50YXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgV2ViR1BVOjpUZXh0dXJlRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIGF1
dG8gY29udmVydGVkRGVzY3JpcHRvciA9IG1fb2JqZWN0SGVhcC5jb252ZXJ0RnJvbUJhY2tpbmco
ZGVzY3JpcHRvcik7CisgICAgQVNTRVJUKGNvbnZlcnRlZERlc2NyaXB0b3IpOworICAgIGlmICgh
Y29udmVydGVkRGVzY3JpcHRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwcmVzZW50
YXRpb25Db250ZXh0ID0gbV9vYmplY3RIZWFwLmNvbnZlcnRQcmVzZW50YXRpb25Db250ZXh0RnJv
bUJhY2tpbmcocHJlc2VudGF0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIEFTU0VSVChwcmVz
ZW50YXRpb25Db250ZXh0KTsKKyAgICBhdXRvIHRleHR1cmUgPSBtX2JhY2tpbmctPmNyZWF0ZVN1
cmZhY2VUZXh0dXJlKCpjb252ZXJ0ZWREZXNjcmlwdG9yLCAqcHJlc2VudGF0aW9uQ29udGV4dCk7
CisgICAgYXV0byByZW1vdGVUZXh0dXJlID0gUmVtb3RlVGV4dHVyZTo6Y3JlYXRlKHRleHR1cmUs
IG1fb2JqZWN0SGVhcCwgbV9zdHJlYW1Db25uZWN0aW9uLmNvcHlSZWYoKSwgaWRlbnRpZmllcik7
CisgICAgbV9vYmplY3RIZWFwLmFkZE9iamVjdChpZGVudGlmaWVyLCByZW1vdGVUZXh0dXJlKTsK
K30KKwogdm9pZCBSZW1vdGVEZXZpY2U6OmNyZWF0ZVNhbXBsZXIoY29uc3QgV2ViR1BVOjpTYW1w
bGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgV2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIGF1dG8gY29udmVydGVkRGVzY3JpcHRvciA9IG1fb2JqZWN0SGVhcC5jb252ZXJ0RnJv
bUJhY2tpbmcoZGVzY3JpcHRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UuaAppbmRleCAwMjM2ZjUyOTE3YmQuLmE4
ZmE3YzU5MTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1dlYkdQVS9SZW1vdGVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvV2ViR1BVL1JlbW90ZURldmljZS5oCkBAIC05NSw2ICs5NSw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGNyZWF0ZUJ1ZmZlcihjb25zdCBXZWJHUFU6OkJ1ZmZlckRlc2NyaXB0b3ImLCBX
ZWJHUFVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyZWF0ZVRleHR1cmUoY29uc3QgV2ViR1BVOjpU
ZXh0dXJlRGVzY3JpcHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlU3Vy
ZmFjZVRleHR1cmUoV2ViR1BVSWRlbnRpZmllciwgY29uc3QgV2ViR1BVOjpUZXh0dXJlRGVzY3Jp
cHRvciYsIFdlYkdQVUlkZW50aWZpZXIpOwogICAgIHZvaWQgY3JlYXRlU2FtcGxlcihjb25zdCBX
ZWJHUFU6OlNhbXBsZXJEZXNjcmlwdG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CiAgICAgdm9pZCBp
bXBvcnRFeHRlcm5hbFRleHR1cmUoY29uc3QgV2ViR1BVOjpFeHRlcm5hbFRleHR1cmVEZXNjcmlw
dG9yJiwgV2ViR1BVSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2UubWVzc2FnZXMu
aW4KaW5kZXggMDBiOWRhNjI3ZjAzLi40NjNjYjRhMWRiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2
aWNlLm1lc3NhZ2VzLmluCkBAIC0yNyw2ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZURldmlj
ZSBOb3RSZWZDb3VudGVkIFN0cmVhbSB7CiAgICAgdm9pZCBEZXN0cm95KCkKICAgICB2b2lkIENy
ZWF0ZUJ1ZmZlcihXZWJLaXQ6OldlYkdQVTo6QnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBX
ZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICB2b2lkIENyZWF0ZVRleHR1
cmUoV2ViS2l0OjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yIGRlc2NyaXB0b3IsIFdlYktpdDo6
V2ViR1BVSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIHZvaWQgQ3JlYXRlU3VyZmFjZVRleHR1
cmUoV2ViS2l0OjpXZWJHUFVJZGVudGlmaWVyIHN1cmZhY2VJZGVudGlmaWVyLCBXZWJLaXQ6Oldl
YkdQVTo6VGV4dHVyZURlc2NyaXB0b3IgZGVzY3JpcHRvciwgV2ViS2l0OjpXZWJHUFVJZGVudGlm
aWVyIGlkZW50aWZpZXIpCiAgICAgdm9pZCBDcmVhdGVTYW1wbGVyKFdlYktpdDo6V2ViR1BVOjpT
YW1wbGVyRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRl
bnRpZmllcikKICAgICB2b2lkIEltcG9ydEV4dGVybmFsVGV4dHVyZShXZWJLaXQ6OldlYkdQVTo6
RXh0ZXJuYWxUZXh0dXJlRGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6OldlYkdQVUlkZW50
aWZpZXIgaWRlbnRpZmllcikKICAgICB2b2lkIENyZWF0ZUJpbmRHcm91cExheW91dChXZWJLaXQ6
OldlYkdQVTo6QmluZEdyb3VwTGF5b3V0RGVzY3JpcHRvciBkZXNjcmlwdG9yLCBXZWJLaXQ6Oldl
YkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVByZXNlbnRhdGlv
bkNvbnRleHQuY3BwCmluZGV4IDU3YzQzNTU0MzRkYy4uMDJjNDVlN2YxMmI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVByZXNlbnRh
dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dC5jcHAKQEAgLTg1LDYgKzg1LDE4IEBAIHZv
aWQgUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dDo6Z2V0Q3VycmVudFRleHR1cmUoV2ViR1BVSWRl
bnRpZmllciBpZGVudGlmaWVyKQogICAgIG1fb2JqZWN0SGVhcC5hZGRPYmplY3QoaWRlbnRpZmll
ciwgcmVtb3RlVGV4dHVyZSk7CiB9CiAKK3ZvaWQgUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dDo6
cHJlc2VudCgpCit7CisgICAgbV9iYWNraW5nLT5wcmVzZW50KCk7Cit9CisKKyNpZiBQTEFURk9S
TShDT0NPQSkKK3ZvaWQgUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dDo6cHJlcGFyZUZvckRpc3Bs
YXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgbV9iYWNraW5nLT5wcmVwYXJlRm9yRGlzcGxheShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVByZXNlbnRhdGlvbkNvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUHJlc2Vu
dGF0aW9uQ29udGV4dC5oCmluZGV4IDZlMzg3YmE0ZGFiOC4uZDMwNGZiMjRkNzRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVByZXNl
bnRhdGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
V2ViR1BVL1JlbW90ZVByZXNlbnRhdGlvbkNvbnRleHQuaApAQCAtNzcsNiArNzcsMTIgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgZ2V0Q3VycmVudFRleHR1cmUoV2ViR1BVSWRlbnRpZmllcik7CiAK
KyAgICB2b2lkIHByZXNlbnQoKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcHJl
cGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQm
Jik+JiYpOworI2VuZGlmCisKICAgICBSZWY8UEFMOjpXZWJHUFU6OlByZXNlbnRhdGlvbkNvbnRl
eHQ+IG1fYmFja2luZzsKICAgICBXZWJHUFU6Ok9iamVjdEhlYXAmIG1fb2JqZWN0SGVhcDsKICAg
ICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90
ZVByZXNlbnRhdGlvbkNvbnRleHQubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVByZXNlbnRhdGlvbkNvbnRleHQubWVzc2FnZXMuaW4K
aW5kZXggY2IzMDc1MzI4YmU4Li5iMDYyMDk3YzgyNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dC5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2ViR1BV
L1JlbW90ZVByZXNlbnRhdGlvbkNvbnRleHQubWVzc2FnZXMuaW4KQEAgLTI3LDYgKzI3LDEwIEBA
IG1lc3NhZ2VzIC0+IFJlbW90ZVByZXNlbnRhdGlvbkNvbnRleHQgTm90UmVmQ291bnRlZCBTdHJl
YW0gewogICAgIHZvaWQgQ29uZmlndXJlKFdlYktpdDo6V2ViR1BVOjpDYW52YXNDb25maWd1cmF0
aW9uIGNvbmZpZ3VyYXRpb24pCiAgICAgdm9pZCBVbmNvbmZpZ3VyZSgpCiAgICAgdm9pZCBHZXRD
dXJyZW50VGV4dHVyZShXZWJLaXQ6OldlYkdQVUlkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICB2
b2lkIFByZXNlbnQoKQorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgUHJlcGFyZUZvckRp
c3BsYXkoKSAtPiAoTWFjaFNlbmRSaWdodCBkaXNwbGF5QnVmZmVyKSBTeW5jaHJvbm91cyBOb3RT
dHJlYW1FbmNvZGFibGVSZXBseQorI2VuZGlmCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVt
b3RlRGV2aWNlUHJveHkuY3BwCmluZGV4IGU1ODdiNjYzZTE1Ni4uNzhiZGIxNzBmZmY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1v
dGVEZXZpY2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuY3BwCkBAIC0xMDIsNiArMTAyLDIxIEBAIFJl
ZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4gUmVtb3RlRGV2aWNlUHJveHk6OmNyZWF0ZVRleHR1cmUo
Y29uc3QgUEFMOjpXZWJHUFU6OlRlCiAgICAgcmV0dXJuIFJlbW90ZVRleHR1cmVQcm94eTo6Y3Jl
YXRlKHJvb3QoKSwgbV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dCwgaWRlbnRpZmllcik7CiB9CiAK
K1JlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4gUmVtb3RlRGV2aWNlUHJveHk6OmNyZWF0ZVN1cmZh
Y2VUZXh0dXJlKGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJlRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgY29uc3QgUEFMOjpXZWJHUFU6OlByZXNlbnRhdGlvbkNvbnRleHQmIHByZXNlbnRhdGlvbkNv
bnRleHQpCit7CisgICAgYXV0byBjb252ZXJ0ZWREZXNjcmlwdG9yID0gbV9jb252ZXJ0VG9CYWNr
aW5nQ29udGV4dC0+Y29udmVydFRvQmFja2luZyhkZXNjcmlwdG9yKTsKKyAgICBpZiAoIWNvbnZl
cnRlZERlc2NyaXB0b3IpIHsKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBlcnJvciBoYW5k
bGluZy4KKyAgICAgICAgcmV0dXJuIFJlbW90ZVRleHR1cmVQcm94eTo6Y3JlYXRlKHJvb3QoKSwg
bV9jb252ZXJ0VG9CYWNraW5nQ29udGV4dCwgV2ViR1BVSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSk7
CisgICAgfQorCisgICAgYXV0byBpZGVudGlmaWVyID0gV2ViR1BVSWRlbnRpZmllcjo6Z2VuZXJh
dGUoKTsKKyAgICBhdXRvIHNlbmRSZXN1bHQgPSBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVEZXZpY2U6
OkNyZWF0ZVN1cmZhY2VUZXh0dXJlKG1fY29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRU
b0JhY2tpbmcocHJlc2VudGF0aW9uQ29udGV4dCksICpjb252ZXJ0ZWREZXNjcmlwdG9yLCBpZGVu
dGlmaWVyKSk7CisgICAgVU5VU0VEX1ZBUklBQkxFKHNlbmRSZXN1bHQpOworCisgICAgcmV0dXJu
IFJlbW90ZVRleHR1cmVQcm94eTo6Y3JlYXRlKHJvb3QoKSwgbV9jb252ZXJ0VG9CYWNraW5nQ29u
dGV4dCwgaWRlbnRpZmllcik7Cit9CisKIFJlZjxQQUw6OldlYkdQVTo6U2FtcGxlcj4gUmVtb3Rl
RGV2aWNlUHJveHk6OmNyZWF0ZVNhbXBsZXIoY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBsZXJEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIGF1dG8gY29udmVydGVkRGVzY3JpcHRvciA9IG1f
Y29udmVydFRvQmFja2luZ0NvbnRleHQtPmNvbnZlcnRUb0JhY2tpbmcoZGVzY3JpcHRvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVEZXZpY2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9XZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuaAppbmRleCA4ZTM1ZGYwYWY1NTkuLmJhY2RiYjlj
NDRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlRGV2aWNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVEZXZpY2VQcm94eS5oCkBAIC04MSw2ICs4MSw3IEBA
IHByaXZhdGU6CiAKICAgICBSZWY8UEFMOjpXZWJHUFU6OkJ1ZmZlcj4gY3JlYXRlQnVmZmVyKGNv
bnN0IFBBTDo6V2ViR1BVOjpCdWZmZXJEZXNjcmlwdG9yJikgZmluYWw7CiAgICAgUmVmPFBBTDo6
V2ViR1BVOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKGNvbnN0IFBBTDo6V2ViR1BVOjpUZXh0dXJl
RGVzY3JpcHRvciYpIGZpbmFsOworICAgIFJlZjxQQUw6OldlYkdQVTo6VGV4dHVyZT4gY3JlYXRl
U3VyZmFjZVRleHR1cmUoY29uc3QgUEFMOjpXZWJHUFU6OlRleHR1cmVEZXNjcmlwdG9yJiwgY29u
c3QgUEFMOjpXZWJHUFU6OlByZXNlbnRhdGlvbkNvbnRleHQmKSBmaW5hbDsKICAgICBSZWY8UEFM
OjpXZWJHUFU6OlNhbXBsZXI+IGNyZWF0ZVNhbXBsZXIoY29uc3QgUEFMOjpXZWJHUFU6OlNhbXBs
ZXJEZXNjcmlwdG9yJikgZmluYWw7CiAgICAgUmVmPFBBTDo6V2ViR1BVOjpFeHRlcm5hbFRleHR1
cmU+IGltcG9ydEV4dGVybmFsVGV4dHVyZShjb25zdCBQQUw6OldlYkdQVTo6RXh0ZXJuYWxUZXh0
dXJlRGVzY3JpcHRvciYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQcmVzZW50YXRpb25Db250ZXh0UHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UHJlc2VudGF0aW9uQ29udGV4dFByb3h5LmNwcAppbmRleCAwZjhiNTFjNzc1MzYuLjE5MmZhMTEw
Yjk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQcmVzZW50YXRpb25Db250
ZXh0UHJveHkuY3BwCkBAIC03NSw2ICs3NSwzMyBAQCBSZWZQdHI8UEFMOjpXZWJHUFU6OlRleHR1
cmU+IFJlbW90ZVByZXNlbnRhdGlvbkNvbnRleHRQcm94eTo6Z2V0Q3VycmVudFRleHR1cmUoKQog
ICAgIHJldHVybiBtX2N1cnJlbnRUZXh0dXJlOwogfQogCit2b2lkIFJlbW90ZVByZXNlbnRhdGlv
bkNvbnRleHRQcm94eTo6cHJlc2VudCgpCit7CisgICAgYXV0byBzZW5kUmVzdWx0ID0gc2VuZChN
ZXNzYWdlczo6UmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dDo6UHJlc2VudCgpKTsKKyAgICBVTlVT
RURfVkFSSUFCTEUoc2VuZFJlc3VsdCk7CisgICAgbV9jdXJyZW50VGV4dHVyZSA9IG51bGxwdHI7
Cit9CisKKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4
dFByb3h5OjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFj
aFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBNYWNoU2VuZFJpZ2h0
IGVtcHR5UmVzdWx0OworICAgIGF1dG8gc2VuZFJlc3VsdCA9IHNlbmRTeW5jKE1lc3NhZ2VzOjpS
ZW1vdGVQcmVzZW50YXRpb25Db250ZXh0OjpQcmVwYXJlRm9yRGlzcGxheSgpKTsKKyAgICBpZiAo
IXNlbmRSZXN1bHQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlbXB0eVJl
c3VsdCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBbc2VuZFJpZ2h0XSA9
IHNlbmRSZXN1bHQudGFrZVJlcGx5KCk7CisgICAgaWYgKCFzZW5kUmlnaHQpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlbXB0eVJlc3VsdCkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQ6OldlYkdQVQogCiAjZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dFByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVQcmVzZW50YXRp
b25Db250ZXh0UHJveHkuaAppbmRleCBkZjE3OWZkOTM0NTQuLjcwODI0NTgzNjBjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3Rl
UHJlc2VudGF0aW9uQ29udGV4dFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUHJlc2VudGF0aW9uQ29udGV4dFByb3h5LmgKQEAg
LTc5LDYgKzc5LDEyIEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8UEFMOjpXZWJHUFU6OlRleHR1
cmU+IGdldEN1cnJlbnRUZXh0dXJlKCkgZmluYWw7CiAKKyAgICB2b2lkIHByZXNlbnQoKSBmaW5h
bDsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFsOworI2Vu
ZGlmCisKICAgICBXZWJHUFVJZGVudGlmaWVyIG1fYmFja2luZzsKICAgICBSZWY8Q29udmVydFRv
QmFja2luZ0NvbnRleHQ+IG1fY29udmVydFRvQmFja2luZ0NvbnRleHQ7CiAgICAgUmVmPFJlbW90
ZUdQVVByb3h5PiBtX3BhcmVudDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>