<?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>110882</bug_id>
          
          <creation_ts>2013-02-26 07:42:28 -0800</creation_ts>
          <short_desc>REGRESSION(r144054): build breaker deluxe (Requested by kling on #webkit).</short_desc>
          <delta_ts>2013-02-26 07:58:04 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>110854</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841987</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 07:42:28 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/144054 broke the build:
build breaker deluxe (Requested by kling on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841989</commentid>
    <comment_count>1</comment_count>
      <attachid>190282</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 07:42:56 -0800</bug_when>
    <thetext>Created attachment 190282
ROLLOUT of r144054

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 rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout 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>841998</commentid>
    <comment_count>2</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-02-26 07:57:27 -0800</bug_when>
    <thetext>Rolled out https://trac.webkit.org/r144056</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190282</attachid>
            <date>2013-02-26 07:42:56 -0800</date>
            <delta_ts>2013-02-26 07:58:04 -0800</delta_ts>
            <desc>ROLLOUT of r144054</desc>
            <filename>bug-110882-20130226153911.patch</filename>
            <type>text/plain</type>
            <size>39125</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ODU2Zjg1YTY5ODJlOWYyYTA5ODFhMDAxZWJjODNkZGZiMThkODExLi5mZjMzNGIyM2M5M2QwZGVi
ZWM2NmRmYjdiYjI4OTc2NWQ0NmUzY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAxMy0wMi0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NDA1NC4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTQ0MDU0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4ODIKKworICAgICAgICBi
dWlsZCBicmVha2VyIGRlbHV4ZSAoUmVxdWVzdGVkIGJ5IGtsaW5nIG9uICN3ZWJraXQpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChK
U0M6OkpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsRGF0YS5oOgorICAgICAgICAoSlNHbG9iYWxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL1By
b3BlcnR5TWFwSGFzaFRhYmxlLmg6CisgICAgICAgIChQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAg
KEpTQzo6UHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZSk6CisgICAgICAgIChKU0MpOgorICAg
ICAgICAoSlNDOjpQcm9wZXJ0eVRhYmxlOjp+UHJvcGVydHlUYWJsZSk6CisgICAgICAgIChKU0M6
OlByb3BlcnR5VGFibGU6OmNvcHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlUYWJsZS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAo
SlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXApOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmFkZFByb3BlcnR5VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6
ZGVzcGVjaWZ5RnVuY3Rpb25UcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjph
dHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjp0b0Rp
Y3Rpb25hcnlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpwcmV2ZW50RXh0
ZW5zaW9uc1RyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om5vblByb3BlcnR5
VHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y29weVByb3BlcnR5VGFibGUp
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNvcHlQcm9wZXJ0eVRhYmxlRm9yUGlubmluZyk6
CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHV0U3BlY2lmaWNWYWx1ZSk6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlUHJvcGVydHlNYXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6CisgICAg
ICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnB1dFdpbGxHcm93T3V0T2ZMaW5l
U3RvcmFnZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y2hlY2tPZmZzZXRDb25zaXN0ZW5j
eSk6CisgICAgICAgIChTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oOgorCiAyMDEzLTAyLTI2ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnVzZWQgU3RydWN0dXJlIHByb3BlcnR5IHRhYmxlcyB3YXN0ZSAxNE1CIG9u
IE1lbWJ1c3Rlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzYmIzOTEy
YTI4YWRjYzA2Yzg0NTYwZmRiODhhOWFhZDZmOWEzNTE0Li4zYmQ2ODIzMDc3YzllMjIxYmI1Nzc0
ZjcxYTIzNTU4NmIxZjgwMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yODAsNyArMjgwLDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1l
L1Byb3BlcnR5RGVzY3JpcHRvci5jcHAKICAgICBydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmNw
cAogICAgIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcAotICAgIHJ1bnRpbWUvUHJvcGVydHlUYWJs
ZS5jcHAKICAgICBydW50aW1lL1Byb3RvdHlwZU1hcC5jcHAKICAgICBydW50aW1lL1JlZ0V4cC5j
cHAKICAgICBydW50aW1lL1JlZ0V4cENhY2hlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA1MWQ1YTQxZTg1NDJhZDE2ZGY3ZWE0NzQwOTQyMDA1YjRi
NzRlYTQxLi5lOGExZjJiOTQzMWIzYzcyZDIwNGRlYzg3NzM2ZDUyMDUzZmNlYjMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNzIyLDcgKzcyMiw2IEBA
IGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb3BlcnR5T2Zmc2V0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5U2xvdC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNw
cCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlTWFwLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvdG90eXBlTWFwLmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U3RvcmFnZS5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggYzkwMWNiYzdiNzdjNTBlNWZjYjgyOTRm
OWQxOTliMzFkZTdiZDcyMi4uODVmNjQ0NmNjM2Y4MDgxZjJlZDg2NzNkYjhkOGFlNGNjY2Y4MWNl
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTc1OSw3
ICs3NTksNiBAQAogICAgICAgICAgICAgJ3J1bnRpbWUvUHJvcGVydHlPZmZzZXQuaCcsCiAgICAg
ICAgICAgICAncnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwJywKICAgICAgICAgICAgICdydW50aW1l
L1Byb3BlcnR5U2xvdC5oJywKLSAgICAgICAgICAgICdydW50aW1lL1Byb3BlcnR5VGFibGUuY3Bw
JywKICAgICAgICAgICAgICdydW50aW1lL1Byb3BlcnR5U3RvcmFnZS5oJywKICAgICAgICAgICAg
ICdydW50aW1lL1Byb3RlY3QuaCcsCiAgICAgICAgICAgICAncnVudGltZS9Qcm90b3R5cGVNYXAu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2oKaW5kZXggNTYwZmIyODhjMWFkZThkZjY4NjRiYjRjZTI3NTc3MjQ1MDQxNDEz
OC4uNzUxN2E0YWU5MzJkOTQ3MWQ3ZjRhMmJmYTM5OTczZjBiNzA5MWJhZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKQEAg
LTExNzQsMTAgKzExNzQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXFByb3BlcnR5VGFibGUuY3BwIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXFByb3RvdHlw
ZU1hcC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKaW5kZXggZjA1NTA1ZTBjYjFlYzc4OTdmZDFmNDMxMTE2MWU3MTA4ZmUwMWUzNi4u
MzI1ZTcyNTA5OWM1N2EzMDY4ZmY0OTc0NTI4MzQ3NjQ3OGYwOGM1OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUu
dmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC0zMDUsNyArMzA1LDYgQEAKICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcUHJvcGVydHlEZXNjcmlwdG9yLmNwcCIgLz4NCiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFByb3BlcnR5TmFtZUFycmF5LmNwcCIgLz4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFByb3BlcnR5U2xvdC5jcHAiIC8+
DQotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxQcm9wZXJ0eVRhYmxlLmNwcCIg
Lz4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXFByb3RvdHlwZU1hcC5jcHAi
IC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxSZWdFeHAuY3BwIiAvPg0K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcUmVnRXhwQ2FjaGUuY3BwIiAvPg0K
QEAgLTc0MSw0ICs3NDAsNCBAQAogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClc
TWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPg0KICAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNp
b25UYXJnZXRzIj4NCiAgIDwvSW1wb3J0R3JvdXA+DQotPC9Qcm9qZWN0Pg0KKzwvUHJvamVjdD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGQ3ODk1NGU0ZTg2MjE2YjFiNTk4OTYyMWQzNWI2NTAxNTU3MTliZjEuLmJmZTAwYjRkZjk3
MjY0YjAwYzE3ODZhNTc4NDQwOTliYjA3YzMyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC03MDUsNyArNzA1LDYgQEAKIAkJQTdGQjYwQTQxMDNGN0RDMjAwMTdBMjg2IC8qIFBy
b3BlcnR5RGVzY3JpcHRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0ZCNjBBMzEwM0Y3REMyMDAxN0EyODYgLyogUHJvcGVydHlEZXNjcmlwdG9y
LmNwcCAqLzsgfTsKIAkJQTdGQjYxMDAxMDQwQzM4QjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3Jp
cHRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdG
QjYwNEIxMDNGNUVBQjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3JpcHRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4QTQ3NDhFMTUxQTgzMDYw
MDQxMjNGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QTQ3NDhEMTUxQTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSAqLzsgfTsK
LQkJQUQxQ0YwNkExNkRDQUQ1QjAwQjk3MTIzIC8qIFByb3BlcnR5VGFibGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQxQ0YwNjgxNkRDQUIyRDAw
Qjk3MTIzIC8qIFByb3BlcnR5VGFibGUuY3BwICovOyB9OwogCQlCQzAyRTkwRDBFMTgzOURCMDAw
RjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwMkU5MDUwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3Ry
dWN0b3IuaCAqLzsgfTsKIAkJQkMwMkU5MEYwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yUHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAy
RTkwNzBFMTgzOURCMDAwRjkyOTcgLyogRXJyb3JQcm90b3R5cGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzAyRTkxMTBFMTgzOURCMDAwRjky
OTcgLyogTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMkU5MDkwRTE4MzlEQjAwMEY5Mjk3IC8qIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuaCAqLzsgfTsKQEAgLTE2MjMsNyArMTYyMiw2IEBACiAJCUE4QTQ3NDhE
MTUxQTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJXVEYuYTsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQThFODk0MzEwQ0QwNjAyNDAwMzY3MTc5
IC8qIEpTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBOEU4OTQzMzBDRDA2MDNGMDAzNjcxNzkgLyogSlNHbG9iYWxPYmplY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNHbG9iYWxPYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQUQxQ0YwNjgxNkRDQUIyRDAwQjk3MTIzIC8qIFByb3Bl
cnR5VGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVy
dHlUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDIxQkYyMTM2OTAw
QzMwMEZDNTQ2NyAvKiBUb29sRXhlY3V0YWJsZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNj
b25maWc7IHBhdGggPSBUb29sRXhlY3V0YWJsZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMwMkU5MDQwRTE4MzlEQjAwMEY5Mjk3IC8qIEVycm9yQ29uc3RydWN0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3JDb25zdHJ1Y3Rv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDJFOTA1MEUxODM5REIwMDBG
OTI5NyAvKiBFcnJvckNvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEVycm9yQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
MTQsNyArMjUxMiw2IEBACiAJCQkJNjU2MjFFNkIwODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5
U2xvdC5jcHAgKi8sCiAJCQkJNjU2MjFFNkMwODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5U2xv
dC5oICovLAogCQkJCTBGQjdGMzkwMTVFRDhFMzgwMEYxNjdCMiAvKiBQcm9wZXJ0eVN0b3JhZ2Uu
aCAqLywKLQkJCQlBRDFDRjA2ODE2RENBQjJEMDBCOTcxMjMgLyogUHJvcGVydHlUYWJsZS5jcHAg
Ki8sCiAJCQkJNjVDMDJGQkIwNjM3NDYyQTAwM0U3RUU2IC8qIFByb3RlY3QuaCAqLywKIAkJCQkx
NEQ4NDRBMjE2QUEyQzcwMDBBNjVBRjAgLyogUHJvdG90eXBlTWFwLmNwcCAqLywKIAkJCQkxNEQ4
NDRBMzE2QUEyQzcwMDBBNjVBRjAgLyogUHJvdG90eXBlTWFwLmggKi8sCkBAIC00MDM0LDcgKzQw
MzEsNiBAQAogCQkJCTBGQkUwRjc0MTZDMURCMDkwMDgyQzVFOCAvKiBERkdQcmVkaWN0aW9uSW5q
ZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzYxNkMxREIwRjAwODJD
NUU4IC8qIERGR1VuaWZpY2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNB
RkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUFEMUNGMDZBMTZEQ0FENUIwMEI5NzEyMyAvKiBQcm9wZXJ0eVRhYmxlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQppbmRleCA2NjA4YTA3ZWVhMjI4ZmMxMWRi
ZTI0OGYxODVkMmViMGYyZjgzYzk1Li41ODE0MGY2ZDUwMjkxNTNkODFjZjQ0NGE5ZDE3ODZmNDI1
ZTNhMGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvVGFyZ2V0LnByaQpAQCAtMjk4LDcgKzI5OCw2IEBAIFNP
VVJDRVMgKz0gXAogICAgIHJ1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcCBcCiAgICAgcnVu
dGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5jcHAgXAogICAgIHJ1bnRpbWUvUHJvcGVydHlTbG90LmNw
cCBcCi0gICAgcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNwcCBcCiAgICAgcnVudGltZS9Qcm90b3R5
cGVNYXAuY3BwIFwKICAgICBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBcCiAgICAgcnVu
dGltZS9SZWdFeHBDYWNoZWRSZXN1bHQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbERhdGEuY3BwCmluZGV4IDUwOGE4NzZhODljNjA5ZTZmZmM5MTBmNzU4
Mjk3MGIwYmVhYjAzZDIuLmMwNmNmNWM4MWIwYmZjNGIxY2Q1MDEyNGQ3ZWY4NmMyNGVhZTY0NjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcApA
QCAtMjMyLDcgKzIzMiw2IEBAIEpTR2xvYmFsRGF0YTo6SlNHbG9iYWxEYXRhKEdsb2JhbERhdGFU
eXBlIGdsb2JhbERhdGFUeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICB1bmxpbmtlZFByb2dy
YW1Db2RlQmxvY2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2s6
OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICB1bmxpbmtlZEV2YWxD
b2RlQmxvY2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2s6OmNyZWF0
ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICB1bmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrU3RydWN0dXJlLnNldCgqdGhpcywgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3Jl
YXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwotICAgIHByb3BlcnR5VGFibGVTdHJ1
Y3R1cmUuc2V0KCp0aGlzLCBQcm9wZXJ0eVRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAs
IGpzTnVsbCgpKSk7CiAgICAgc21hbGxTdHJpbmdzLmluaXRpYWxpemVDb21tb25TdHJpbmdzKCp0
aGlzKTsKIAogICAgIHd0ZlRocmVhZERhdGEoKS5zZXRDdXJyZW50SWRlbnRpZmllclRhYmxlKGV4
aXN0aW5nRW50cnlJZGVudGlmaWVyVGFibGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbERhdGEuaAppbmRleCAxODk1YTA2ZTExZWRlZTZmODhlMDRmOWZkZmJhNDdl
Mjc5ZjYwMzIzLi5kYzk4ODFmMTFjNTkyMWYwZmU4NGRhYTFjNzQ3YjA5MDI4YmVhM2U4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuaApAQCAtMjU2LDcg
KzI1Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTdHJvbmc8U3RydWN0dXJlPiB1bmxp
bmtlZFByb2dyYW1Db2RlQmxvY2tTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+
IHVubGlua2VkRXZhbENvZGVCbG9ja1N0cnVjdHVyZTsKICAgICAgICAgU3Ryb25nPFN0cnVjdHVy
ZT4gdW5saW5rZWRGdW5jdGlvbkNvZGVCbG9ja1N0cnVjdHVyZTsKLSAgICAgICAgU3Ryb25nPFN0
cnVjdHVyZT4gcHJvcGVydHlUYWJsZVN0cnVjdHVyZTsKIAogICAgICAgICBJZGVudGlmaWVyVGFi
bGUqIGlkZW50aWZpZXJUYWJsZTsKICAgICAgICAgQ29tbW9uSWRlbnRpZmllcnMqIHByb3BlcnR5
TmFtZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU1hcEhhc2hUYWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlN
YXBIYXNoVGFibGUuaAppbmRleCA1NGUyOTczYjE0YzlkMDY3ZWFlMTVjYmYzNzViNjlkODAzYmE3
NzVkLi4yNDIyYzViOTlmM2U2NzMxNWRmYWEyODQ3N2RhODE1NGRkZTg5YmVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU1hcEhhc2hUYWJsZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TWFwSGFzaFRhYmxlLmgK
QEAgLTIyLDcgKzIyLDYgQEAKICNkZWZpbmUgUHJvcGVydHlNYXBIYXNoVGFibGVfaAogCiAjaW5j
bHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRl
ICJXcml0ZUJhcnJpZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFRhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KQEAgLTg2LDcgKzg1LDggQEAgc3RydWN0IFByb3BlcnR5TWFwRW50
cnkgewogICAgIH0KIH07CiAKLWNsYXNzIFByb3BlcnR5VGFibGUgOiBwdWJsaWMgSlNDZWxsIHsK
K2NsYXNzIFByb3BlcnR5VGFibGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogCiAg
ICAgLy8gVGhpcyBpcyB0aGUgaW1wbGVtZW50YXRpb24gZm9yICdpdGVyYXRvcicgYW5kICdjb25z
dF9pdGVyYXRvcicsCiAgICAgLy8gdXNlZCBmb3IgaXRlcmF0aW5nIG92ZXIgdGhlIHRhYmxlIGlu
IGluc2VydGlvbiBvcmRlci4KQEAgLTEyOSwxOSArMTI5LDYgQEAgY2xhc3MgUHJvcGVydHlUYWJs
ZSA6IHB1YmxpYyBKU0NlbGwgewogICAgIH07CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNJ
bW1vcnRhbFN0cnVjdHVyZSA9IHRydWU7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwq
KTsKLQotICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87Ci0K
LSAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNp
dENoaWxkcmVuKSwgJnNfaW5mbyk7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwotCiAgICAgdHlwZWRlZiBTdHJpbmdJbXBsKiBL
ZXlUeXBlOwogICAgIHR5cGVkZWYgUHJvcGVydHlNYXBFbnRyeSBWYWx1ZVR5cGU7CiAKQEAgLTE1
NSw5ICsxNDIsOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8VmFsdWVUeXBlKiwg
dW5zaWduZWQ+IGZpbmRfaXRlcmF0b3I7CiAKICAgICAvLyBDb25zdHJ1Y3RvciBpcyBwYXNzZWQg
YW4gaW5pdGlhbCBjYXBhY2l0eSwgYSBQcm9wZXJ0eVRhYmxlIHRvIGNvcHksIG9yIGJvdGguCi0g
ICAgc3RhdGljIFByb3BlcnR5VGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmLCB1bnNpZ25lZCBp
bml0aWFsQ2FwYWNpdHkpOwotICAgIHN0YXRpYyBQcm9wZXJ0eVRhYmxlKiBjbG9uZShKU0dsb2Jh
bERhdGEmLCBKU0NlbGwqIG93bmVyLCBjb25zdCBQcm9wZXJ0eVRhYmxlJik7Ci0gICAgc3RhdGlj
IFByb3BlcnR5VGFibGUqIGNsb25lKEpTR2xvYmFsRGF0YSYsIEpTQ2VsbCogb3duZXIsIHVuc2ln
bmVkIGluaXRpYWxDYXBhY2l0eSwgY29uc3QgUHJvcGVydHlUYWJsZSYpOworICAgIGV4cGxpY2l0
IFByb3BlcnR5VGFibGUodW5zaWduZWQgaW5pdGlhbENhcGFjaXR5KTsKKyAgICBQcm9wZXJ0eVRh
YmxlKEpTR2xvYmFsRGF0YSYsIEpTQ2VsbCosIGNvbnN0IFByb3BlcnR5VGFibGUmKTsKKyAgICBQ
cm9wZXJ0eVRhYmxlKEpTR2xvYmFsRGF0YSYsIEpTQ2VsbCosIHVuc2lnbmVkIGluaXRpYWxDYXBh
Y2l0eSwgY29uc3QgUHJvcGVydHlUYWJsZSYpOwogICAgIH5Qcm9wZXJ0eVRhYmxlKCk7CiAKICAg
ICAvLyBPcmRlcmVkIGl0ZXJhdGlvbiBtZXRob2RzLgpAQCAtMTk0LDcgKzE4MSw3IEBAIHB1Ymxp
YzoKICAgICBQcm9wZXJ0eU9mZnNldCBuZXh0T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IGlubGluZUNh
cGFjaXR5KTsKIAogICAgIC8vIENvcHkgdGhpcyBQcm9wZXJ0eVRhYmxlLCBlbnN1cmluZyB0aGUg
Y29weSBoYXMgYXQgbGVhc3QgdGhlIGNhcGFjaXR5IHByb3ZpZGVkLgotICAgIFByb3BlcnR5VGFi
bGUqIGNvcHkoSlNHbG9iYWxEYXRhJiwgSlNDZWxsKiBvd25lciwgdW5zaWduZWQgbmV3Q2FwYWNp
dHkpOworICAgIFBhc3NPd25QdHI8UHJvcGVydHlUYWJsZT4gY29weShKU0dsb2JhbERhdGEmLCBK
U0NlbGwqIG93bmVyLCB1bnNpZ25lZCBuZXdDYXBhY2l0eSk7CiAKICNpZm5kZWYgTkRFQlVHCiAg
ICAgc2l6ZV90IHNpemVJbk1lbW9yeSgpOwpAQCAtMjAyLDEwICsxODksNiBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICBQcm9wZXJ0eVRhYmxlKEpTR2xvYmFsRGF0YSYsIHVuc2ln
bmVkIGluaXRpYWxDYXBhY2l0eSk7Ci0gICAgUHJvcGVydHlUYWJsZShKU0dsb2JhbERhdGEmLCBK
U0NlbGwqLCBjb25zdCBQcm9wZXJ0eVRhYmxlJik7Ci0gICAgUHJvcGVydHlUYWJsZShKU0dsb2Jh
bERhdGEmLCBKU0NlbGwqLCB1bnNpZ25lZCBpbml0aWFsQ2FwYWNpdHksIGNvbnN0IFByb3BlcnR5
VGFibGUmKTsKLQogICAgIFByb3BlcnR5VGFibGUoY29uc3QgUHJvcGVydHlUYWJsZSYpOwogICAg
IC8vIFVzZWQgdG8gaW5zZXJ0IGEgdmFsdWUga25vd24gbm90IHRvIGJlIGluIHRoZSB0YWJsZSwg
YW5kIHdoZXJlIHdlIGtub3cgY2FwYWNpdHkgdG8gYmUgYXZhaWxhYmxlLgogICAgIHZvaWQgcmVp
bnNlcnQoY29uc3QgVmFsdWVUeXBlJiBlbnRyeSk7CkBAIC0yNTYsNiArMjM5LDcyIEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEVtcHR5RW50cnlJbmRleCA9IDA7CiB9Owog
CitpbmxpbmUgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZSh1bnNpZ25lZCBpbml0aWFsQ2Fw
YWNpdHkpCisgICAgOiBtX2luZGV4U2l6ZShzaXplRm9yQ2FwYWNpdHkoaW5pdGlhbENhcGFjaXR5
KSkKKyAgICAsIG1faW5kZXhNYXNrKG1faW5kZXhTaXplIC0gMSkKKyAgICAsIG1faW5kZXgoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQqPihmYXN0WmVyb2VkTWFsbG9jKGRhdGFTaXplKCkpKSkKKyAgICAs
IG1fa2V5Q291bnQoMCkKKyAgICAsIG1fZGVsZXRlZENvdW50KDApCit7CisgICAgQVNTRVJUKGlz
UG93ZXJPZjIobV9pbmRleFNpemUpKTsKK30KKworaW5saW5lIFByb3BlcnR5VGFibGU6OlByb3Bl
cnR5VGFibGUoSlNHbG9iYWxEYXRhJiwgSlNDZWxsKiBvd25lciwgY29uc3QgUHJvcGVydHlUYWJs
ZSYgb3RoZXIpCisgICAgOiBtX2luZGV4U2l6ZShvdGhlci5tX2luZGV4U2l6ZSkKKyAgICAsIG1f
aW5kZXhNYXNrKG90aGVyLm1faW5kZXhNYXNrKQorICAgICwgbV9pbmRleChzdGF0aWNfY2FzdDx1
bnNpZ25lZCo+KGZhc3RNYWxsb2MoZGF0YVNpemUoKSkpKQorICAgICwgbV9rZXlDb3VudChvdGhl
ci5tX2tleUNvdW50KQorICAgICwgbV9kZWxldGVkQ291bnQob3RoZXIubV9kZWxldGVkQ291bnQp
Cit7CisgICAgQVNTRVJUKGlzUG93ZXJPZjIobV9pbmRleFNpemUpKTsKKworICAgIG1lbWNweSht
X2luZGV4LCBvdGhlci5tX2luZGV4LCBkYXRhU2l6ZSgpKTsKKworICAgIGl0ZXJhdG9yIGVuZCA9
IHRoaXMtPmVuZCgpOworICAgIGZvciAoaXRlcmF0b3IgaXRlciA9IGJlZ2luKCk7IGl0ZXIgIT0g
ZW5kOyArK2l0ZXIpIHsKKyAgICAgICAgaXRlci0+a2V5LT5yZWYoKTsKKyAgICAgICAgSGVhcDo6
d3JpdGVCYXJyaWVyKG93bmVyLCBpdGVyLT5zcGVjaWZpY1ZhbHVlLmdldCgpKTsKKyAgICB9CisK
KyAgICAvLyBDb3B5IHRoZSBtX2RlbGV0ZWRPZmZzZXRzIHZlY3Rvci4KKyAgICBWZWN0b3I8UHJv
cGVydHlPZmZzZXQ+KiBvdGhlckRlbGV0ZWRPZmZzZXRzID0gb3RoZXIubV9kZWxldGVkT2Zmc2V0
cy5nZXQoKTsKKyAgICBpZiAob3RoZXJEZWxldGVkT2Zmc2V0cykKKyAgICAgICAgbV9kZWxldGVk
T2Zmc2V0cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8UHJvcGVydHlPZmZzZXQ+KCpvdGhlckRlbGV0
ZWRPZmZzZXRzKSk7Cit9CisKK2lubGluZSBQcm9wZXJ0eVRhYmxlOjpQcm9wZXJ0eVRhYmxlKEpT
R2xvYmFsRGF0YSYsIEpTQ2VsbCogb3duZXIsIHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eSwgY29u
c3QgUHJvcGVydHlUYWJsZSYgb3RoZXIpCisgICAgOiBtX2luZGV4U2l6ZShzaXplRm9yQ2FwYWNp
dHkoaW5pdGlhbENhcGFjaXR5KSkKKyAgICAsIG1faW5kZXhNYXNrKG1faW5kZXhTaXplIC0gMSkK
KyAgICAsIG1faW5kZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQqPihmYXN0WmVyb2VkTWFsbG9jKGRh
dGFTaXplKCkpKSkKKyAgICAsIG1fa2V5Q291bnQoMCkKKyAgICAsIG1fZGVsZXRlZENvdW50KDAp
Cit7CisgICAgQVNTRVJUKGlzUG93ZXJPZjIobV9pbmRleFNpemUpKTsKKyAgICBBU1NFUlQoaW5p
dGlhbENhcGFjaXR5ID49IG90aGVyLm1fa2V5Q291bnQpOworCisgICAgY29uc3RfaXRlcmF0b3Ig
ZW5kID0gb3RoZXIuZW5kKCk7CisgICAgZm9yIChjb25zdF9pdGVyYXRvciBpdGVyID0gb3RoZXIu
YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgeworICAgICAgICBBU1NFUlQoY2FuSW5zZXJ0
KCkpOworICAgICAgICByZWluc2VydCgqaXRlcik7CisgICAgICAgIGl0ZXItPmtleS0+cmVmKCk7
CisgICAgICAgIEhlYXA6OndyaXRlQmFycmllcihvd25lciwgaXRlci0+c3BlY2lmaWNWYWx1ZS5n
ZXQoKSk7CisgICAgfQorCisgICAgLy8gQ29weSB0aGUgbV9kZWxldGVkT2Zmc2V0cyB2ZWN0b3Iu
CisgICAgVmVjdG9yPFByb3BlcnR5T2Zmc2V0Piogb3RoZXJEZWxldGVkT2Zmc2V0cyA9IG90aGVy
Lm1fZGVsZXRlZE9mZnNldHMuZ2V0KCk7CisgICAgaWYgKG90aGVyRGVsZXRlZE9mZnNldHMpCisg
ICAgICAgIG1fZGVsZXRlZE9mZnNldHMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFByb3BlcnR5T2Zm
c2V0Pigqb3RoZXJEZWxldGVkT2Zmc2V0cykpOworfQorCitpbmxpbmUgUHJvcGVydHlUYWJsZTo6
flByb3BlcnR5VGFibGUoKQoreworICAgIGl0ZXJhdG9yIGVuZCA9IHRoaXMtPmVuZCgpOworICAg
IGZvciAoaXRlcmF0b3IgaXRlciA9IGJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAg
ICAgIGl0ZXItPmtleS0+ZGVyZWYoKTsKKworICAgIGZhc3RGcmVlKG1faW5kZXgpOworfQorCiBp
bmxpbmUgUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgUHJvcGVydHlUYWJsZTo6YmVnaW4oKQogewog
ICAgIHJldHVybiBpdGVyYXRvcihza2lwRGVsZXRlZEVudHJpZXModGFibGUoKSkpOwpAQCAtNDUz
LDE1ICs1MDIsMTUgQEAgaW5saW5lIFByb3BlcnR5T2Zmc2V0IFByb3BlcnR5VGFibGU6Om5leHRP
ZmZzZXQoUHJvcGVydHlPZmZzZXQgaW5saW5lQ2FwYWNpdHkpCiAgICAgcmV0dXJuIG9mZnNldEZv
clByb3BlcnR5TnVtYmVyKHNpemUoKSwgaW5saW5lQ2FwYWNpdHkpOwogfQogCi1pbmxpbmUgUHJv
cGVydHlUYWJsZSogUHJvcGVydHlUYWJsZTo6Y29weShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQ2VsbCogb3duZXIsIHVuc2lnbmVkIG5ld0NhcGFjaXR5KQoraW5saW5lIFBhc3NPd25QdHI8
UHJvcGVydHlUYWJsZT4gUHJvcGVydHlUYWJsZTo6Y29weShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQ2VsbCogb3duZXIsIHVuc2lnbmVkIG5ld0NhcGFjaXR5KQogewogICAgIEFTU0VSVChu
ZXdDYXBhY2l0eSA+PSBtX2tleUNvdW50KTsKIAogICAgIC8vIEZhc3QgY2FzZTsgaWYgdGhlIG5l
dyB0YWJsZSB3aWxsIGJlIHRoZSBzYW1lIG1faW5kZXhTaXplIGFzIHRoaXMgb25lLCB3ZSBjYW4g
bWVtY3B5IGl0LAogICAgIC8vIHNhdmUgcmVoYXNoaW5nIGFsbCBrZXlzLgogICAgIGlmIChzaXpl
Rm9yQ2FwYWNpdHkobmV3Q2FwYWNpdHkpID09IG1faW5kZXhTaXplKQotICAgICAgICByZXR1cm4g
UHJvcGVydHlUYWJsZTo6Y2xvbmUoZ2xvYmFsRGF0YSwgb3duZXIsICp0aGlzKTsKLSAgICByZXR1
cm4gUHJvcGVydHlUYWJsZTo6Y2xvbmUoZ2xvYmFsRGF0YSwgb3duZXIsIG5ld0NhcGFjaXR5LCAq
dGhpcyk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUHJvcGVydHlUYWJsZShnbG9iYWxE
YXRhLCBvd25lciwgKnRoaXMpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFByb3BlcnR5VGFi
bGUoZ2xvYmFsRGF0YSwgb3duZXIsIG5ld0NhcGFjaXR5LCAqdGhpcykpOwogfQogCiAjaWZuZGVm
IE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlUYWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxl
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI0YzQ4OThlYTJlZWZiYTA1MzFm
ZjFhZGNjMDMzYmZiYmU1ZjNkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVRhYmxlLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlByb3BlcnR5TWFwSGFzaFRhYmxlLmgiCi0KLSNpbmNsdWRlICJK
U0NlbGxJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0luZm8gUHJv
cGVydHlUYWJsZTo6c19pbmZvID0geyAiUHJvcGVydHlUYWJsZSIsIDAsIDAsIDAsIENSRUFURV9N
RVRIT0RfVEFCTEUoUHJvcGVydHlUYWJsZSkgfTsKLQotUHJvcGVydHlUYWJsZSogUHJvcGVydHlU
YWJsZTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgdW5zaWduZWQgaW5pdGlhbENh
cGFjaXR5KQotewotICAgIFByb3BlcnR5VGFibGUqIHRhYmxlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8UHJvcGVydHlUYWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgUHJvcGVydHlUYWJsZShn
bG9iYWxEYXRhLCBpbml0aWFsQ2FwYWNpdHkpOwotICAgIHRhYmxlLT5maW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTsKLSAgICByZXR1cm4gdGFibGU7Ci19Ci0KLVByb3BlcnR5VGFibGUqIFByb3Bl
cnR5VGFibGU6OmNsb25lKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDZWxsKiBvd25lciwg
Y29uc3QgUHJvcGVydHlUYWJsZSYgb3RoZXIpCi17Ci0gICAgUHJvcGVydHlUYWJsZSogdGFibGUg
PSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxQcm9wZXJ0eVRhYmxlPihnbG9iYWxEYXRhLmhl
YXApKSBQcm9wZXJ0eVRhYmxlKGdsb2JhbERhdGEsIG93bmVyLCBvdGhlcik7Ci0gICAgdGFibGUt
PmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwotICAgIHJldHVybiB0YWJsZTsKLX0KLQotUHJv
cGVydHlUYWJsZSogUHJvcGVydHlUYWJsZTo6Y2xvbmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0NlbGwqIG93bmVyLCB1bnNpZ25lZCBpbml0aWFsQ2FwYWNpdHksIGNvbnN0IFByb3BlcnR5
VGFibGUmIG90aGVyKQotewotICAgIFByb3BlcnR5VGFibGUqIHRhYmxlID0gbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8UHJvcGVydHlUYWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgUHJvcGVydHlU
YWJsZShnbG9iYWxEYXRhLCBvd25lciwgaW5pdGlhbENhcGFjaXR5LCBvdGhlcik7Ci0gICAgdGFi
bGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwotICAgIHJldHVybiB0YWJsZTsKLX0KLQot
UHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIHVu
c2lnbmVkIGluaXRpYWxDYXBhY2l0eSkKLSAgICA6IEpTQ2VsbChnbG9iYWxEYXRhLCBnbG9iYWxE
YXRhLnByb3BlcnR5VGFibGVTdHJ1Y3R1cmUuZ2V0KCkpCi0gICAgLCBtX2luZGV4U2l6ZShzaXpl
Rm9yQ2FwYWNpdHkoaW5pdGlhbENhcGFjaXR5KSkKLSAgICAsIG1faW5kZXhNYXNrKG1faW5kZXhT
aXplIC0gMSkKLSAgICAsIG1faW5kZXgoc3RhdGljX2Nhc3Q8dW5zaWduZWQqPihmYXN0WmVyb2Vk
TWFsbG9jKGRhdGFTaXplKCkpKSkKLSAgICAsIG1fa2V5Q291bnQoMCkKLSAgICAsIG1fZGVsZXRl
ZENvdW50KDApCi17Ci0gICAgQVNTRVJUKGlzUG93ZXJPZjIobV9pbmRleFNpemUpKTsKLX0KLQot
UHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
Q2VsbCogb3duZXIsIGNvbnN0IFByb3BlcnR5VGFibGUmIG90aGVyKQotICAgIDogSlNDZWxsKGds
b2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlUYWJsZVN0cnVjdHVyZS5nZXQoKSkKLSAgICAs
IG1faW5kZXhTaXplKG90aGVyLm1faW5kZXhTaXplKQotICAgICwgbV9pbmRleE1hc2sob3RoZXIu
bV9pbmRleE1hc2spCi0gICAgLCBtX2luZGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkKj4oZmFzdE1h
bGxvYyhkYXRhU2l6ZSgpKSkpCi0gICAgLCBtX2tleUNvdW50KG90aGVyLm1fa2V5Q291bnQpCi0g
ICAgLCBtX2RlbGV0ZWRDb3VudChvdGhlci5tX2RlbGV0ZWRDb3VudCkKLXsKLSAgICBBU1NFUlQo
aXNQb3dlck9mMihtX2luZGV4U2l6ZSkpOwotCi0gICAgbWVtY3B5KG1faW5kZXgsIG90aGVyLm1f
aW5kZXgsIGRhdGFTaXplKCkpOwotCi0gICAgaXRlcmF0b3IgZW5kID0gdGhpcy0+ZW5kKCk7Ci0g
ICAgZm9yIChpdGVyYXRvciBpdGVyID0gYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgewot
ICAgICAgICBpdGVyLT5rZXktPnJlZigpOwotICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3du
ZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0KCkpOwotICAgIH0KLQotICAgIC8vIENvcHkgdGhl
IG1fZGVsZXRlZE9mZnNldHMgdmVjdG9yLgotICAgIFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4qIG90
aGVyRGVsZXRlZE9mZnNldHMgPSBvdGhlci5tX2RlbGV0ZWRPZmZzZXRzLmdldCgpOwotICAgIGlm
IChvdGhlckRlbGV0ZWRPZmZzZXRzKQotICAgICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gYWRvcHRQ
dHIobmV3IFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4oKm90aGVyRGVsZXRlZE9mZnNldHMpKTsKLX0K
LQotUHJvcGVydHlUYWJsZTo6UHJvcGVydHlUYWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQ2VsbCogb3duZXIsIHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eSwgY29uc3QgUHJvcGVydHlU
YWJsZSYgb3RoZXIpCi0gICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5wcm9wZXJ0
eVRhYmxlU3RydWN0dXJlLmdldCgpKQotICAgICwgbV9pbmRleFNpemUoc2l6ZUZvckNhcGFjaXR5
KGluaXRpYWxDYXBhY2l0eSkpCi0gICAgLCBtX2luZGV4TWFzayhtX2luZGV4U2l6ZSAtIDEpCi0g
ICAgLCBtX2luZGV4KHN0YXRpY19jYXN0PHVuc2lnbmVkKj4oZmFzdFplcm9lZE1hbGxvYyhkYXRh
U2l6ZSgpKSkpCi0gICAgLCBtX2tleUNvdW50KDApCi0gICAgLCBtX2RlbGV0ZWRDb3VudCgwKQot
ewotICAgIEFTU0VSVChpc1Bvd2VyT2YyKG1faW5kZXhTaXplKSk7Ci0gICAgQVNTRVJUKGluaXRp
YWxDYXBhY2l0eSA+PSBvdGhlci5tX2tleUNvdW50KTsKLQotICAgIGNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IG90aGVyLmVuZCgpOwotICAgIGZvciAoY29uc3RfaXRlcmF0b3IgaXRlciA9IG90aGVyLmJl
Z2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKLSAgICAgICAgQVNTRVJUKGNhbkluc2VydCgp
KTsKLSAgICAgICAgcmVpbnNlcnQoKml0ZXIpOwotICAgICAgICBpdGVyLT5rZXktPnJlZigpOwot
ICAgICAgICBIZWFwOjp3cml0ZUJhcnJpZXIob3duZXIsIGl0ZXItPnNwZWNpZmljVmFsdWUuZ2V0
KCkpOwotICAgIH0KLQotICAgIC8vIENvcHkgdGhlIG1fZGVsZXRlZE9mZnNldHMgdmVjdG9yLgot
ICAgIFZlY3RvcjxQcm9wZXJ0eU9mZnNldD4qIG90aGVyRGVsZXRlZE9mZnNldHMgPSBvdGhlci5t
X2RlbGV0ZWRPZmZzZXRzLmdldCgpOwotICAgIGlmIChvdGhlckRlbGV0ZWRPZmZzZXRzKQotICAg
ICAgICBtX2RlbGV0ZWRPZmZzZXRzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxQcm9wZXJ0eU9mZnNl
dD4oKm90aGVyRGVsZXRlZE9mZnNldHMpKTsKLX0KLQotdm9pZCBQcm9wZXJ0eVRhYmxlOjpkZXN0
cm95KEpTQ2VsbCogY2VsbCkKLXsKLSAgICBzdGF0aWNfY2FzdDxQcm9wZXJ0eVRhYmxlKj4oY2Vs
bCktPlByb3BlcnR5VGFibGU6On5Qcm9wZXJ0eVRhYmxlKCk7Ci19Ci0KLVByb3BlcnR5VGFibGU6
On5Qcm9wZXJ0eVRhYmxlKCkKLXsKLSAgICBpdGVyYXRvciBlbmQgPSB0aGlzLT5lbmQoKTsKLSAg
ICBmb3IgKGl0ZXJhdG9yIGl0ZXIgPSBiZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAg
ICAgICBpdGVyLT5rZXktPmRlcmVmKCk7Ci0KLSAgICBmYXN0RnJlZShtX2luZGV4KTsKLX0KLQot
dm9pZCBQcm9wZXJ0eVRhYmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgUHJvcGVydHlUYWJsZSogdGhpc09iamVjdCA9IGpzQ2FzdDxQ
cm9wZXJ0eVRhYmxlKj4oY2VsbCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlz
T2JqZWN0LCAmc19pbmZvKTsKLSAgICBBU1NFUlQodGhpc09iamVjdC0+c3RydWN0dXJlKCktPnR5
cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKLQotICAgIEpTQ2VsbDo6dmlzaXRD
aGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLQotICAgIFByb3BlcnR5VGFibGU6Oml0ZXJh
dG9yIGVuZCA9IHRoaXNPYmplY3QtPmVuZCgpOwotICAgIGZvciAoUHJvcGVydHlUYWJsZTo6aXRl
cmF0b3IgcHRyID0gdGhpc09iamVjdC0+YmVnaW4oKTsgcHRyICE9IGVuZDsgKytwdHIpCi0gICAg
ICAgIHZpc2l0b3IuYXBwZW5kKCZwdHItPnNwZWNpZmljVmFsdWUpOwotfQotCi19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCBmYzY5YTAxZmMyMDg4
NTAyNjVhMGY1ZTg5NDhiZGVkMDM1YTgzMTQ4Li5iNzljMTA2ZWZjMGJjYTk2OGYzMjBkMWM3NjQ5
MDEwZWVmZWE5MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9w
ZXJ0eU1hcChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgICAgICBBU1NFUlQoc3Ry
dWN0dXJlLT5tX3Byb3BlcnR5VGFibGUpOwogICAgICAgICAgICAgQVNTRVJUKCFzdHJ1Y3R1cmUt
PnByZXZpb3VzSUQoKSk7CiAKLSAgICAgICAgICAgIG1fcHJvcGVydHlUYWJsZS5zZXQoZ2xvYmFs
RGF0YSwgdGhpcywgc3RydWN0dXJlLT5tX3Byb3BlcnR5VGFibGUtPmNvcHkoZ2xvYmFsRGF0YSwg
MCwgbnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkp
KSk7CisgICAgICAgICAgICBtX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlU
YWJsZS0+Y29weShnbG9iYWxEYXRhLCAwLCBudW1iZXJPZlNsb3RzRm9yTGFzdE9mZnNldChtX29m
ZnNldCwgbV9pbmxpbmVDYXBhY2l0eSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IApAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgU3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3BlcnR5
TWFwKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB9CiAKICAgICBpZiAoIW1fcHJvcGVy
dHlUYWJsZSkKLSAgICAgICAgY3JlYXRlUHJvcGVydHlNYXAoZ2xvYmFsRGF0YSwgbnVtYmVyT2ZT
bG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsKKyAgICAgICAg
Y3JlYXRlUHJvcGVydHlNYXAobnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQsIG1f
aW5saW5lQ2FwYWNpdHkpKTsKIAogICAgIGZvciAocHRyZGlmZl90IGkgPSBzdHJ1Y3R1cmVzLnNp
emUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIHN0cnVjdHVyZSA9IHN0cnVjdHVyZXNb
aV07CkBAIC0zNzYsMTYgKzM3NiwxNCBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YWRkUHJvcGVy
dHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKgogICAgIGlm
IChzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZSkgewogICAgICAgICBzdHJ1Y3R1cmUtPmNoZWNr
T2Zmc2V0Q29uc2lzdGVuY3koKTsKICAgICAgICAgaWYgKHN0cnVjdHVyZS0+bV9pc1Bpbm5lZFBy
b3BlcnR5VGFibGUpCi0gICAgICAgICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUuc2V0
KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5jb3B5
KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5zaXpl
KCkgKyAxKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgdHJhbnNpdGlvbi0+bV9wcm9w
ZXJ0eVRhYmxlLnNldChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPm1fcHJvcGVy
dHlUYWJsZS5nZXQoKSk7Ci0gICAgICAgICAgICBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZS5j
bGVhcigpOwotICAgICAgICB9CisgICAgICAgICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFi
bGUgPSBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZS0+Y29weShnbG9iYWxEYXRhLCB0cmFuc2l0
aW9uLCBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpICsgMSk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+
bV9wcm9wZXJ0eVRhYmxlLnJlbGVhc2UoKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc3Ry
dWN0dXJlLT5wcmV2aW91c0lEKCkpCiAgICAgICAgICAgICB0cmFuc2l0aW9uLT5tYXRlcmlhbGl6
ZVByb3BlcnR5TWFwKGdsb2JhbERhdGEpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0cmFu
c2l0aW9uLT5jcmVhdGVQcm9wZXJ0eU1hcChnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHRyYW5z
aXRpb24tPmNyZWF0ZVByb3BlcnR5TWFwKCk7CiAgICAgfQogICAgIHRyYW5zaXRpb24tPm1fb2Zm
c2V0ID0gc3RydWN0dXJlLT5tX29mZnNldDsKIApAQCAtNDE3LDcgKzQxNSw3IEBAIFN0cnVjdHVy
ZSogU3RydWN0dXJlOjpjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0CiAgICAgdHJhbnNpdGlvbi0+bV9wcm90b3R5cGUuc2V0KGdsb2JhbERh
dGEsIHRyYW5zaXRpb24sIHByb3RvdHlwZSk7CiAKICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXpl
UHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKLSAgICB0cmFuc2l0aW9uLT5tX3By
b3BlcnR5VGFibGUuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+Y29weVBy
b3BlcnR5VGFibGVGb3JQaW5uaW5nKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pKTsKKyAgICB0cmFu
c2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlRm9y
UGlubmluZyhnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICB0cmFuc2l0aW9uLT5tX29mZnNl
dCA9IHN0cnVjdHVyZS0+bV9vZmZzZXQ7CiAgICAgdHJhbnNpdGlvbi0+cGluKCk7CiAKQEAgLTQz
Myw3ICs0MzEsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6ZGVzcGVjaWZ5RnVuY3Rpb25UcmFu
c2l0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydQogICAgICsrdHJhbnNpdGlvbi0+
bV9zcGVjaWZpY0Z1bmN0aW9uVGhyYXNoQ291bnQ7CiAKICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFs
aXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKLSAgICB0cmFuc2l0aW9uLT5t
X3Byb3BlcnR5VGFibGUuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+Y29w
eVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pKTsKKyAgICB0
cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxl
Rm9yUGlubmluZyhnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICB0cmFuc2l0aW9uLT5tX29m
ZnNldCA9IHN0cnVjdHVyZS0+bV9vZmZzZXQ7CiAgICAgdHJhbnNpdGlvbi0+cGluKCk7CiAKQEAg
LTQ1NCw3ICs0NTIsNyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJh
bnNpdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdAogICAgICAgICBTdHJ1Y3R1
cmUqIHRyYW5zaXRpb24gPSBjcmVhdGUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKIAogICAgICAg
ICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRh
KTsKLSAgICAgICAgdHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlLnNldChnbG9iYWxEYXRhLCB0
cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlRm9yUGlubmluZyhnbG9iYWxE
YXRhLCB0cmFuc2l0aW9uKSk7CisgICAgICAgIHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZSA9
IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKGdsb2JhbERhdGEsIHRyYW5z
aXRpb24pOwogICAgICAgICB0cmFuc2l0aW9uLT5tX29mZnNldCA9IHN0cnVjdHVyZS0+bV9vZmZz
ZXQ7CiAgICAgICAgIHRyYW5zaXRpb24tPnBpbigpOwogICAgICAgICAKQEAgLTQ3Nyw3ICs0NzUs
NyBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6dG9EaWN0aW9uYXJ5VHJhbnNpdGlvbihKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZQogICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9
IGNyZWF0ZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpOwogCiAgICAgc3RydWN0dXJlLT5tYXRlcmlh
bGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnkoZ2xvYmFsRGF0YSk7Ci0gICAgdHJhbnNpdGlvbi0+
bV9wcm9wZXJ0eVRhYmxlLnNldChnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPmNv
cHlQcm9wZXJ0eVRhYmxlRm9yUGlubmluZyhnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKSk7CisgICAg
dHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlID0gc3RydWN0dXJlLT5jb3B5UHJvcGVydHlUYWJs
ZUZvclBpbm5pbmcoZ2xvYmFsRGF0YSwgdHJhbnNpdGlvbik7CiAgICAgdHJhbnNpdGlvbi0+bV9v
ZmZzZXQgPSBzdHJ1Y3R1cmUtPm1fb2Zmc2V0OwogICAgIHRyYW5zaXRpb24tPm1fZGljdGlvbmFy
eUtpbmQgPSBraW5kOwogICAgIHRyYW5zaXRpb24tPnBpbigpOwpAQCAtNTM3LDcgKzUzNSw3IEBA
IFN0cnVjdHVyZSogU3RydWN0dXJlOjpwcmV2ZW50RXh0ZW5zaW9uc1RyYW5zaXRpb24oSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1CiAgICAgLy8gRG9uJ3Qgc2V0IG1fb2Zmc2V0LCBhcyBv
bmUgY2FuIG5vdCB0cmFuc2l0aW9uIHRvIHRoaXMuCiAKICAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFs
aXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShnbG9iYWxEYXRhKTsKLSAgICB0cmFuc2l0aW9uLT5t
X3Byb3BlcnR5VGFibGUuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+Y29w
eVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKGdsb2JhbERhdGEsIHRyYW5zaXRpb24pKTsKKyAgICB0
cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxl
Rm9yUGlubmluZyhnbG9iYWxEYXRhLCB0cmFuc2l0aW9uKTsKICAgICB0cmFuc2l0aW9uLT5tX29m
ZnNldCA9IHN0cnVjdHVyZS0+bV9vZmZzZXQ7CiAgICAgdHJhbnNpdGlvbi0+bV9wcmV2ZW50RXh0
ZW5zaW9ucyA9IHRydWU7CiAgICAgdHJhbnNpdGlvbi0+cGluKCk7CkBAIC01NzcsMTYgKzU3NSwx
NCBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6bm9uUHJvcGVydHlUcmFuc2l0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKgogICAgIGlmIChzdHJ1Y3R1cmUtPm1fcHJvcGVy
dHlUYWJsZSkgewogICAgICAgICBzdHJ1Y3R1cmUtPmNoZWNrT2Zmc2V0Q29uc2lzdGVuY3koKTsK
ICAgICAgICAgaWYgKHN0cnVjdHVyZS0+bV9pc1Bpbm5lZFByb3BlcnR5VGFibGUpCi0gICAgICAg
ICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUuc2V0KGdsb2JhbERhdGEsIHRyYW5zaXRp
b24sIHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5jb3B5KGdsb2JhbERhdGEsIHRyYW5zaXRp
b24sIHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLT5zaXplKCkgKyAxKSk7Ci0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgdHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlLnNldChnbG9iYWxE
YXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZS5nZXQoKSk7Ci0gICAg
ICAgICAgICBzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZS5jbGVhcigpOwotICAgICAgICB9Cisg
ICAgICAgICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1Y3R1cmUtPm1fcHJv
cGVydHlUYWJsZS0+Y29weShnbG9iYWxEYXRhLCB0cmFuc2l0aW9uLCBzdHJ1Y3R1cmUtPm1fcHJv
cGVydHlUYWJsZS0+c2l6ZSgpICsgMSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRyYW5z
aXRpb24tPm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0eVRhYmxlLnJlbGVh
c2UoKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc3RydWN0dXJlLT5wcmV2aW91c0lEKCkp
CiAgICAgICAgICAgICB0cmFuc2l0aW9uLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwKGdsb2JhbERh
dGEpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0cmFuc2l0aW9uLT5jcmVhdGVQcm9wZXJ0
eU1hcChnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHRyYW5zaXRpb24tPmNyZWF0ZVByb3BlcnR5
TWFwKCk7CiAgICAgfQogICAgIAogICAgIHN0cnVjdHVyZS0+bV90cmFuc2l0aW9uVGFibGUuYWRk
KGdsb2JhbERhdGEsIHRyYW5zaXRpb24pOwpAQCAtNzQxLDE4ICs3MzcsMTQgQEAgaW5saW5lIHZv
aWQgU3RydWN0dXJlOjpjaGVja0NvbnNpc3RlbmN5KCkKIAogI2VuZGlmCiAKLVByb3BlcnR5VGFi
bGUqIFN0cnVjdHVyZTo6Y29weVByb3BlcnR5VGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIG93bmVyKQorUGFzc093blB0cjxQcm9wZXJ0eVRhYmxlPiBTdHJ1Y3R1cmU6
OmNvcHlQcm9wZXJ0eVRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBv
d25lcikKIHsKLSAgICBpZiAoIW1fcHJvcGVydHlUYWJsZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgcmV0dXJuIFByb3BlcnR5VGFibGU6OmNsb25lKGdsb2JhbERhdGEsIG93bmVyLCAqbV9wcm9w
ZXJ0eVRhYmxlLmdldCgpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobV9wcm9wZXJ0eVRhYmxlID8g
bmV3IFByb3BlcnR5VGFibGUoZ2xvYmFsRGF0YSwgb3duZXIsICptX3Byb3BlcnR5VGFibGUpIDog
MCk7CiB9CiAKLVByb3BlcnR5VGFibGUqIFN0cnVjdHVyZTo6Y29weVByb3BlcnR5VGFibGVGb3JQ
aW5uaW5nKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBvd25lcikKK1Bhc3NP
d25QdHI8UHJvcGVydHlUYWJsZT4gU3RydWN0dXJlOjpjb3B5UHJvcGVydHlUYWJsZUZvclBpbm5p
bmcoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIG93bmVyKQogewotICAgIGlm
IChtX3Byb3BlcnR5VGFibGUpCi0gICAgICAgIHJldHVybiBQcm9wZXJ0eVRhYmxlOjpjbG9uZShn
bG9iYWxEYXRhLCBvd25lciwgKm1fcHJvcGVydHlUYWJsZS5nZXQoKSk7Ci0gICAgcmV0dXJuIFBy
b3BlcnR5VGFibGU6OmNyZWF0ZShnbG9iYWxEYXRhLCBudW1iZXJPZlNsb3RzRm9yTGFzdE9mZnNl
dChtX29mZnNldCwgbV9pbmxpbmVDYXBhY2l0eSkpOworICAgIHJldHVybiBhZG9wdFB0cihtX3By
b3BlcnR5VGFibGUgPyBuZXcgUHJvcGVydHlUYWJsZShnbG9iYWxEYXRhLCBvd25lciwgKm1fcHJv
cGVydHlUYWJsZSkgOiBuZXcgUHJvcGVydHlUYWJsZShudW1iZXJPZlNsb3RzRm9yTGFzdE9mZnNl
dChtX29mZnNldCwgbV9pbmxpbmVDYXBhY2l0eSkpKTsKIH0KIAogUHJvcGVydHlPZmZzZXQgU3Ry
dWN0dXJlOjpnZXQoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCB1bnNpZ25lZCYgYXR0cmlidXRlcywgSlNDZWxsKiYgc3BlY2lmaWNWYWx1ZSkKQEAg
LTgwOSw3ICs4MDEsNyBAQCBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFs
dWUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5hbQogICAgIFN0cmluZ0ltcGwq
IHJlcCA9IHByb3BlcnR5TmFtZS51aWQoKTsKIAogICAgIGlmICghbV9wcm9wZXJ0eVRhYmxlKQot
ICAgICAgICBjcmVhdGVQcm9wZXJ0eU1hcChnbG9iYWxEYXRhKTsKKyAgICAgICAgY3JlYXRlUHJv
cGVydHlNYXAoKTsKIAogICAgIFByb3BlcnR5T2Zmc2V0IG5ld09mZnNldCA9IG1fcHJvcGVydHlU
YWJsZS0+bmV4dE9mZnNldChtX2lubGluZUNhcGFjaXR5KTsKIApAQCAtODQxLDEyICs4MzMsMTIg
QEAgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpyZW1vdmUoUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSkKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi12b2lkIFN0cnVjdHVyZTo6Y3JlYXRlUHJv
cGVydHlNYXAoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCB1bnNpZ25lZCBjYXBhY2l0eSkKK3Zv
aWQgU3RydWN0dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcCh1bnNpZ25lZCBjYXBhY2l0eSkKIHsKICAg
ICBBU1NFUlQoIW1fcHJvcGVydHlUYWJsZSk7CiAKICAgICBjaGVja0NvbnNpc3RlbmN5KCk7Ci0g
ICAgbV9wcm9wZXJ0eVRhYmxlLnNldChnbG9iYWxEYXRhLCB0aGlzLCBQcm9wZXJ0eVRhYmxlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgY2FwYWNpdHkpKTsKKyAgICBtX3Byb3BlcnR5VGFibGUgPSBhZG9w
dFB0cihuZXcgUHJvcGVydHlUYWJsZShjYXBhY2l0eSkpOwogfQogCiB2b2lkIFN0cnVjdHVyZTo6
Z2V0UHJvcGVydHlOYW1lc0Zyb21TdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCkBA
IC04OTAsMTIgKzg4MiwxMSBAQCB2b2lkIFN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIH0KICAgICB2aXNpdG9yLmFwcGVuZCgm
dGhpc09iamVjdC0+bV9wcmV2aW91c09yUmFyZURhdGEpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0
aGlzT2JqZWN0LT5tX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKTsKLQotICAgIGlmICh0aGlzT2Jq
ZWN0LT5tX2lzUGlubmVkUHJvcGVydHlUYWJsZSkgewotICAgICAgICBBU1NFUlQodGhpc09iamVj
dC0+bV9wcm9wZXJ0eVRhYmxlKTsKLSAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fcHJvcGVydHlUYWJsZSk7Ci0gICAgfSBlbHNlIGlmICh0aGlzT2JqZWN0LT5tX3Byb3BlcnR5
VGFibGUpCi0gICAgICAgIHRoaXNPYmplY3QtPm1fcHJvcGVydHlUYWJsZS5jbGVhcigpOworICAg
IGlmICh0aGlzT2JqZWN0LT5tX3Byb3BlcnR5VGFibGUpIHsKKyAgICAgICAgUHJvcGVydHlUYWJs
ZTo6aXRlcmF0b3IgZW5kID0gdGhpc09iamVjdC0+bV9wcm9wZXJ0eVRhYmxlLT5lbmQoKTsKKyAg
ICAgICAgZm9yIChQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBwdHIgPSB0aGlzT2JqZWN0LT5tX3By
b3BlcnR5VGFibGUtPmJlZ2luKCk7IHB0ciAhPSBlbmQ7ICsrcHRyKQorICAgICAgICAgICAgdmlz
aXRvci5hcHBlbmQoJnB0ci0+c3BlY2lmaWNWYWx1ZSk7CisgICAgfQogfQogCiBib29sIFN0cnVj
dHVyZTo6cHJvdG90eXBlQ2hhaW5NYXlJbnRlcmNlcHRTdG9yZVRvKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggNmIxZDA4ZWYxOTU4NGRiODRmOGJkNzgxYTViMDFl
MGQxZGMxYWI1Zi4uMjM1OWM2Y2FjOGQyMGUzOGViOTZkZjE0NDMyZjdmMjQzNWFlYmMwNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTMxLDE1ICszMSwx
NiBAQAogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNs
dWRlICJKU1R5cGUuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU1hcEhhc2hUYWJsZS5oIgogI2luY2x1
ZGUgIlByb3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZUFycmF5LmgiCi0jaW5j
bHVkZSAiUHJvcGVydHlPZmZzZXQuaCIKICNpbmNsdWRlICJQcm90ZWN0LmgiCiAjaW5jbHVkZSAi
U3RydWN0dXJlUmFyZURhdGEuaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUu
aCIKICNpbmNsdWRlICJKU1R5cGVJbmZvLmgiCiAjaW5jbHVkZSAiV2F0Y2hwb2ludC5oIgogI2lu
Y2x1ZGUgIldlYWsuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdJbXBsLmg+CkBAIC01MCw3ICs1MSw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
Y2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogY2xhc3MgUHJvcGVydHlOYW1lQXJyYXk7CiBj
bGFzcyBQcm9wZXJ0eU5hbWVBcnJheURhdGE7Ci1jbGFzcyBQcm9wZXJ0eVRhYmxlOwogY2xhc3Mg
U3RydWN0dXJlQ2hhaW47CiBjbGFzcyBTbG90VmlzaXRvcjsKIGNsYXNzIEpTU3RyaW5nOwpAQCAt
MTA4LDcgKzEwOCwyNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zyb3plbihKU0dsb2JhbERhdGEm
KTsKICAgICBib29sIGlzRXh0ZW5zaWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtX3ByZXZlbnRFeHRl
bnNpb25zOyB9CiAgICAgYm9vbCBkaWRUcmFuc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kaWRU
cmFuc2l0aW9uOyB9Ci0gICAgYm9vbCBwdXRXaWxsR3Jvd091dE9mTGluZVN0b3JhZ2UoKTsKKyAg
ICBib29sIHB1dFdpbGxHcm93T3V0T2ZMaW5lU3RvcmFnZSgpCisgICAgeworICAgICAgICBjaGVj
a09mZnNldENvbnNpc3RlbmN5KCk7CisgICAgICAgICAgICAKKyAgICAgICAgQVNTRVJUKG91dE9m
TGluZUNhcGFjaXR5KCkgPj0gb3V0T2ZMaW5lU2l6ZSgpKTsKKyAgICAgICAgICAgIAorICAgICAg
ICBpZiAoIW1fcHJvcGVydHlUYWJsZSkgeworICAgICAgICAgICAgdW5zaWduZWQgY3VycmVudFNp
emUgPSBudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTGFzdE9mZnNldChtX29mZnNldCk7CisgICAg
ICAgICAgICBBU1NFUlQob3V0T2ZMaW5lQ2FwYWNpdHkoKSA+PSBjdXJyZW50U2l6ZSk7CisgICAg
ICAgICAgICByZXR1cm4gY3VycmVudFNpemUgPT0gb3V0T2ZMaW5lQ2FwYWNpdHkoKTsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIEFTU0VSVCh0b3RhbFN0b3JhZ2VDYXBhY2l0eSgp
ID49IG1fcHJvcGVydHlUYWJsZS0+cHJvcGVydHlTdG9yYWdlU2l6ZSgpKTsKKyAgICAgICAgaWYg
KG1fcHJvcGVydHlUYWJsZS0+aGFzRGVsZXRlZE9mZnNldCgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgCisgICAgICAgIEFTU0VSVCh0b3RhbFN0b3JhZ2VDYXBhY2l0
eSgpID49IG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvcGVy
dHlUYWJsZS0+c2l6ZSgpID09IHRvdGFsU3RvcmFnZUNhcGFjaXR5KCk7CisgICAgfQogICAgIEpT
X0VYUE9SVF9QUklWQVRFIHNpemVfdCBzdWdnZXN0ZWROZXdPdXRPZkxpbmVTdG9yYWdlQ2FwYWNp
dHkoKTsgCiAKICAgICBTdHJ1Y3R1cmUqIGZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYsIEpTT2JqZWN0Kik7CkBAIC0zNjQsMTQgKzM4MiwxNCBAQCBwcml2YXRlOgogICAg
IFByb3BlcnR5T2Zmc2V0IHB1dFNwZWNpZmljVmFsdWUoSlNHbG9iYWxEYXRhJiwgUHJvcGVydHlO
YW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU0NlbGwqIHNwZWNpZmljVmFsdWUpOwogICAgIFBy
b3BlcnR5T2Zmc2V0IHJlbW92ZShQcm9wZXJ0eU5hbWUpOwogCi0gICAgdm9pZCBjcmVhdGVQcm9w
ZXJ0eU1hcChKU0dsb2JhbERhdGEmLCB1bnNpZ25lZCBrZXlDb3VudCA9IDApOworICAgIHZvaWQg
Y3JlYXRlUHJvcGVydHlNYXAodW5zaWduZWQga2V5Q291bnQgPSAwKTsKICAgICB2b2lkIGNoZWNr
Q29uc2lzdGVuY3koKTsKIAogICAgIGJvb2wgZGVzcGVjaWZ5RnVuY3Rpb24oSlNHbG9iYWxEYXRh
JiwgUHJvcGVydHlOYW1lKTsKICAgICB2b2lkIGRlc3BlY2lmeUFsbEZ1bmN0aW9ucyhKU0dsb2Jh
bERhdGEmKTsKIAotICAgIFByb3BlcnR5VGFibGUqIGNvcHlQcm9wZXJ0eVRhYmxlKEpTR2xvYmFs
RGF0YSYsIFN0cnVjdHVyZSogb3duZXIpOwotICAgIFByb3BlcnR5VGFibGUqIGNvcHlQcm9wZXJ0
eVRhYmxlRm9yUGlubmluZyhKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqIG93bmVyKTsKKyAgICBQ
YXNzT3duUHRyPFByb3BlcnR5VGFibGU+IGNvcHlQcm9wZXJ0eVRhYmxlKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSogb3duZXIpOworICAgIFBhc3NPd25QdHI8UHJvcGVydHlUYWJsZT4gY29weVBy
b3BlcnR5VGFibGVGb3JQaW5uaW5nKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSogb3duZXIpOwog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChKU0dsb2Jh
bERhdGEmKTsKICAgICB2b2lkIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgewpAQCAtNDI3LDcgKzQ0NSwxOSBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U3RydWN0dXJlUmFyZURhdGEqPihtX3ByZXZp
b3VzT3JSYXJlRGF0YS5nZXQoKSk7CiAgICAgfQogICAgICAgICAKLSAgICBBTFdBWVNfSU5MSU5F
IGJvb2wgY2hlY2tPZmZzZXRDb25zaXN0ZW5jeSgpIGNvbnN0OworICAgIEFMV0FZU19JTkxJTkUg
Ym9vbCBjaGVja09mZnNldENvbnNpc3RlbmN5KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICgh
bV9wcm9wZXJ0eVRhYmxlKSB7CisgICAgICAgICAgICBBU1NFUlQoIW1faXNQaW5uZWRQcm9wZXJ0
eVRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9v
ZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpID09IG1fcHJvcGVydHlUYWJsZS0+cHJvcGVydHlTdG9y
YWdlU2l6ZSgpKTsKKyAgICAgICAgdW5zaWduZWQgdG90YWxTaXplID0gbV9wcm9wZXJ0eVRhYmxl
LT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCh0b3RhbFNp
emUgPCBpbmxpbmVDYXBhY2l0eSgpID8gMCA6IHRvdGFsU2l6ZSAtIGlubGluZUNhcGFjaXR5KCkp
ID09IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JMYXN0T2Zmc2V0KG1fb2Zmc2V0KSk7CisgICAg
ICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCiAgICAgdm9pZCBhbGxvY2F0
ZVJhcmVEYXRhKEpTR2xvYmFsRGF0YSYpOwogICAgIHZvaWQgY2xvbmVSYXJlRGF0YUZyb20oSlNH
bG9iYWxEYXRhJiwgY29uc3QgU3RydWN0dXJlKik7CkBAIC00NTIsNyArNDgyLDcgQEAgcHJpdmF0
ZToKIAogICAgIFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZSBtX3RyYW5zaXRpb25UYWJsZTsKIAot
ICAgIFdyaXRlQmFycmllcjxQcm9wZXJ0eVRhYmxlPiBtX3Byb3BlcnR5VGFibGU7CisgICAgT3du
UHRyPFByb3BlcnR5VGFibGU+IG1fcHJvcGVydHlUYWJsZTsKIAogICAgIG11dGFibGUgSW5saW5l
V2F0Y2hwb2ludFNldCBtX3RyYW5zaXRpb25XYXRjaHBvaW50U2V0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmgKaW5kZXggYWFjODA2NDA2
ZDM0MWNiNjgxZTNhMGM0ZDQ3YzNmMzdjZWRiNzdjNC4uNWJmZDJkNTZhZDc1NDNlMzRjNzhjMmQ0
OTk1NDU4ZTg3MzFlYWM3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlubGluZXMuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBTdHJ1Y3R1cmVJ
bmxpbmVzX2gKICNkZWZpbmUgU3RydWN0dXJlSW5saW5lc19oCiAKLSNpbmNsdWRlICJQcm9wZXJ0
eU1hcEhhc2hUYWJsZS5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlND
IHsKQEAgLTE4MCw0MCArMTc5LDYgQEAgaW5saW5lIGJvb2wgU3RydWN0dXJlOjppc1ZhbGlkKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlQ2hhaW4qIGNhY2hlZFByb3RvdHlwZUMKICAgICByZXR1
cm4gaXNWYWxpZChleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGNhY2hlZFByb3RvdHlwZUNo
YWluKTsKIH0KIAotaW5saW5lIGJvb2wgU3RydWN0dXJlOjpwdXRXaWxsR3Jvd091dE9mTGluZVN0
b3JhZ2UoKQotewotICAgIGNoZWNrT2Zmc2V0Q29uc2lzdGVuY3koKTsKLQotICAgIEFTU0VSVChv
dXRPZkxpbmVDYXBhY2l0eSgpID49IG91dE9mTGluZVNpemUoKSk7Ci0KLSAgICBpZiAoIW1fcHJv
cGVydHlUYWJsZSkgewotICAgICAgICB1bnNpZ25lZCBjdXJyZW50U2l6ZSA9IG51bWJlck9mT3V0
T2ZMaW5lU2xvdHNGb3JMYXN0T2Zmc2V0KG1fb2Zmc2V0KTsKLSAgICAgICAgQVNTRVJUKG91dE9m
TGluZUNhcGFjaXR5KCkgPj0gY3VycmVudFNpemUpOwotICAgICAgICByZXR1cm4gY3VycmVudFNp
emUgPT0gb3V0T2ZMaW5lQ2FwYWNpdHkoKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQodG90YWxTdG9y
YWdlQ2FwYWNpdHkoKSA+PSBtX3Byb3BlcnR5VGFibGUtPnByb3BlcnR5U3RvcmFnZVNpemUoKSk7
Ci0gICAgaWYgKG1fcHJvcGVydHlUYWJsZS0+aGFzRGVsZXRlZE9mZnNldCgpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBBU1NFUlQodG90YWxTdG9yYWdlQ2FwYWNpdHkoKSA+PSBtX3By
b3BlcnR5VGFibGUtPnNpemUoKSk7Ci0gICAgcmV0dXJuIG1fcHJvcGVydHlUYWJsZS0+c2l6ZSgp
ID09IHRvdGFsU3RvcmFnZUNhcGFjaXR5KCk7Ci19Ci0KLWlubGluZSBib29sIFN0cnVjdHVyZTo6
Y2hlY2tPZmZzZXRDb25zaXN0ZW5jeSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Byb3BlcnR5VGFi
bGUpIHsKLSAgICAgICAgQVNTRVJUKCFtX2lzUGlubmVkUHJvcGVydHlUYWJsZSk7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIFJFTEVBU0VfQVNTRVJUKG51bWJlck9mU2xvdHNG
b3JMYXN0T2Zmc2V0KG1fb2Zmc2V0LCBtX2lubGluZUNhcGFjaXR5KSA9PSBtX3Byb3BlcnR5VGFi
bGUtPnByb3BlcnR5U3RvcmFnZVNpemUoKSk7Ci0gICAgdW5zaWduZWQgdG90YWxTaXplID0gbV9w
cm9wZXJ0eVRhYmxlLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCk7Ci0gICAgUkVMRUFTRV9BU1NFUlQo
KHRvdGFsU2l6ZSA8IGlubGluZUNhcGFjaXR5KCkgPyAwIDogdG90YWxTaXplIC0gaW5saW5lQ2Fw
YWNpdHkoKSkgPT0gbnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQp
KTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlm
IC8vIFN0cnVjdHVyZUlubGluZXNfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>