<?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>60944</bug_id>
          
          <creation_ts>2011-05-16 23:06:09 -0700</creation_ts>
          <short_desc>REGRESSION(r86653): &quot;Caused regressions on Windows, OSX and EFL&quot; (Requested by yutak on #webkit).</short_desc>
          <delta_ts>2011-05-16 23:13:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>60933</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>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>404943</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-16 23:06:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/86653 broke the build:
&quot;Caused regressions on Windows, OSX and EFL&quot; (Requested by yutak 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>404945</commentid>
    <comment_count>1</comment_count>
      <attachid>93739</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-16 23:06:28 -0700</bug_when>
    <thetext>Created attachment 93739
ROLLOUT of r86653

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404947</commentid>
    <comment_count>2</comment_count>
      <attachid>93739</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 23:13:05 -0700</bug_when>
    <thetext>Comment on attachment 93739
ROLLOUT of r86653

Clearing flags on attachment: 93739

Committed r86657: &lt;http://trac.webkit.org/changeset/86657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404948</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 23:13:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93739</attachid>
            <date>2011-05-16 23:06:28 -0700</date>
            <delta_ts>2011-05-16 23:13:05 -0700</delta_ts>
            <desc>ROLLOUT of r86653</desc>
            <filename>bug-60944-20110517060558.patch</filename>
            <type>text/plain</type>
            <size>98026</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY2NTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQz
Mjg2MGQ3OGI2YTZlMWJkNGUyMmU3OTQzYWJlNWYwNDEzYzU4MTUuLmE2ZmY0OWY0ZWVhOWZhMGE3
NjZmOWYzOGNkZGE5MWE5ZTUwNDAwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDczIEBACisyMDExLTA1LTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODY2NTMuCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzg2NjUzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDk0NAorCisgICAgICAgICJDYXVz
ZWQgcmVncmVzc2lvbnMgb24gV2luZG93cywgT1NYIGFuZCBFRkwiIChSZXF1ZXN0ZWQgYnkKKyAg
ICAgICAgeXV0YWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAg
ICAgICogY3JlYXRlX2hhc2hfdGFibGU6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKEpTQzo6VHlwZUNvdW50ZXI6Om9wZXJhdG9yKCkpOgorICAgICAgICAqIGludGVycHJldGVy
L0NhbGxGcmFtZS5oOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6OmFycmF5VGFibGUpOgorICAg
ICAgICAoSlNDOjpFeGVjU3RhdGU6Om51bWJlclRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUNvbnN0cnVjdG9yOjpBcnJh
eUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJvdG90eXBlKToKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1
bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpFcnJvclByb3RvdHlwZTo6
RXJyb3JQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFs
RGF0YTo6SlNHbG9iYWxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRhOjp+SlNHbG9i
YWxEYXRhKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsRGF0YS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
cmVzZXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRpY0dsb2JhbHMpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNKU0NQcmlu
dCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oOgorICAgICAg
ICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6Ok51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKToKKyAgICAgICAg
KiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpPYmplY3RQcm90b3R5
cGUpOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6OnB1dCk6CisgICAgICAgIChKU0M6
Ok9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6UmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUpOgorICAg
ICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpTdHJp
bmdDb25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgor
CiAyMDExLTA1LTE2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IGQ3MzgyODk0MzViNjlhOTNmMjhhMDFkZWQ1M2U3MTgzNzVl
YWI5ZDcuLjlhOGMyY2NhZTNiNTEzYmIwNDVjOWYyMzFiYjQ4ZDZjYjcwZDViNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zNSwyOCArMzUsMTkgQEAg
VlBBVEggPSBcCiAKIC5QSE9OWSA6IGFsbAogYWxsIDogXAotICAgIEFycmF5Q29uc3RydWN0b3Iu
bHV0LmggXAogICAgIEFycmF5UHJvdG90eXBlLmx1dC5oIFwKLSAgICBCb29sZWFuUHJvdG90eXBl
Lmx1dC5oIFwKLSAgICBEYXRlQ29uc3RydWN0b3IubHV0LmggXAogICAgIERhdGVQcm90b3R5cGUu
bHV0LmggXAotICAgIEVycm9yUHJvdG90eXBlLmx1dC5oIFwKICAgICBIZWFkZXJEZXRlY3Rpb24u
aCBcCiAgICAgSlNPTk9iamVjdC5sdXQuaCBcCiAgICAgSmF2YVNjcmlwdENvcmUuSlNWQUxVRTMy
XzY0LmV4cCBcCiAgICAgSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0LmV4cCBcCi0gICAgSlNHbG9i
YWxPYmplY3QubHV0LmggXAogICAgIExleGVyLmx1dC5oIFwKICAgICBNYXRoT2JqZWN0Lmx1dC5o
IFwKICAgICBOdW1iZXJDb25zdHJ1Y3Rvci5sdXQuaCBcCi0gICAgTnVtYmVyUHJvdG90eXBlLmx1
dC5oIFwKICAgICBPYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBcCi0gICAgT2JqZWN0UHJvdG90eXBl
Lmx1dC5oIFwKICAgICBSZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaCBcCi0gICAgUmVnRXhwUHJvdG90
eXBlLmx1dC5oIFwKICAgICBSZWdFeHBKaXRUYWJsZXMuaCBcCiAgICAgUmVnRXhwT2JqZWN0Lmx1
dC5oIFwKLSAgICBTdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCBcCiAgICAgU3RyaW5nUHJvdG90eXBl
Lmx1dC5oIFwKICAgICBkb2NzL2J5dGVjb2RlLmh0bWwgXAogIwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9EZXJpdmVkU291cmNlcy5wcm8KaW5kZXggMDRhN2E1NDcwMDkzYTAwZjllZWM1N2EzMWNhZDFm
NTk3NjEwYTk2NC4uMDYxYWU1NjI0M2JiZGFkNzJjNmUyYzQwMmQ4ZmRmMjRiMTE5OTA1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLnBybworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMucHJvCkBAIC0xNCwyNCArMTQsMTUg
QEAgQ09ORklHKHN0YW5kYWxvbmVfcGFja2FnZSkgewogfQogCiBMVVRfRklMRVMgKz0gXAotICAg
IHJ1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAogICAgIHJ1bnRpbWUvQXJyYXlQcm90b3R5
cGUuY3BwIFwKLSAgICBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIFwKLSAgICBydW50aW1l
L0RhdGVDb25zdHJ1Y3Rvci5jcHAgXAogICAgIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgXAot
ICAgIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwIFwKLSAgICBydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcCBcCiAgICAgcnVudGltZS9KU09OT2JqZWN0LmNwcCBcCiAgICAgcnVudGltZS9NYXRo
T2JqZWN0LmNwcCBcCiAgICAgcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgXAotICAgIHJ1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBcCiAgICAgcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAgXAotICAgIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBcCiAgICAgcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAgXAogICAgIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBcCi0g
ICAgcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIFwKLSAgICBydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmNwcCBcCi0gICAgcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIFwKKyAgICBydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKIAogS0VZV09SRExVVF9GSUxFUyArPSBcCiAgICAgcGFy
c2VyL0tleXdvcmRzLnRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
NzQwODUwNGE1YjkyZjBlYjQ5ODU1MWVhZTgwMmU0NDhlNWQzZWU4My4uYTFkMDFjMmNlOWZlODJm
M2RkYTJlMGRhYWQ5NTkwNGU4OGQwNmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMTQ1LDI2ICsxNDUsMTQgQEAgRVhUUkFfRElTVCArPSBcCiAjIENsZWFuIHJ1bGVz
IGZvciBKYXZhU2NyaXB0Q29yZQogIyBGSVhNRTogU2hvdWxkIHRoaXMgbGlzdCBiZSBnZW5lcmF0
ZWQgZnJvbSBqYXZhc2NyaXB0Y29yZV9idWlsdF9ub3NvdXJjZXM/CiBDTEVBTkZJTEVTICs9IFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvTGV4ZXIubHV0LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9SZWdFeHBKaXRUYWJsZXMuaCBcCi0gICAgICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IubHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5sdXQuaCBcCi0gICAgICAgIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUubHV0LmggXAotICAgICAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IubHV0LmggXAotICAgICAg
ICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmx1dC5oIFwKLSAg
ICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUubHV0Lmgg
XAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5s
dXQuaCBcCi0gICAgICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
bHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
Lmx1dC5oIFwKLSAgICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29u
c3RydWN0b3IubHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJQcm90b3R5cGUubHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBcCi0gICAgICAgIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5sdXQuaCBcCi0gICAgICAgIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmx1dC5oIFwKLSAgICAgICAgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0Lmx1dC5oIFwKLSAgICAgICAg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmx1dC5oIFwKLSAg
ICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IubHV0
LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5
cGUubHV0LmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
Lmx1dC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmx1
dC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0Lmx1dC5oIFwK
KwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0Lmx1dC5oIFwKKwlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5sdXQuaCBcCisJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IubHV0LmggXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5sdXQuaCBcCisJU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmx1dC5oIFwKIAlQcm9ncmFt
cy9qc2MgXAogCVByb2dyYW1zL2pzYy1AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQCBcCiAJ
UHJvZ3JhbXMvbWluaWRvbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBlMzNjMmE0NmViYjA0NWRlMzgzZWZhMTc2MWUwMDFjYzI1ZTE2ZDJlLi5hMjBhNTBm
N2VlYjVkMjU3OGVkNDNiMjQ2OTAyNTIxOWE5YzY2ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMsMjQgKzEzLDE1IEBAIGphdmFzY3JpcHRjb3Jl
X2hfYXBpICs9IFwKIGphdmFzY3JpcHRjb3JlX2J1aWx0X25vc291cmNlcyArPSBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL0xleGVyLmx1dC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvUmVn
RXhwSml0VGFibGVzLmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmx1dC5oIFwKLSAgICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUubHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmx1dC5oIFwKLSAgICAgICAgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmx1dC5oIFwKLSAgICAgICAgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5sdXQuaCBcCi0gICAgICAgIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmx1dC5oIFwKLSAgICAg
ICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QubHV0LmggXAot
ICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0Lmx1dC5oIFwK
LSAgICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5sdXQuaCBc
Ci0gICAgICAgIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
Lmx1dC5oIFwKLSAgICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmx1dC5oIFwKLSAgICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IubHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUubHV0LmggXAotICAgICAgICBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaCBcCi0gICAgICAgIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5sdXQuaCBcCi0gICAgICAgIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5sdXQuaCBcCi0gICAgICAgIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmx1dC5oIFwKLSAg
ICAgICAgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmx1dC5o
CisJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUubHV0LmggXAor
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUubHV0LmggXAorCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QubHV0LmggXAorCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QubHV0LmggXAorCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmx1dC5oIFwKKwlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5sdXQuaCBcCisJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IubHV0LmggXAorCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5sdXQuaCBcCisJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmx1dC5oCiAKIGphdmFzY3JpcHRjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FzdC5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDQ4Y2NiYmYxYTc4ZjA1ZDk0
MDlmZWI0ZjM5NjQ5ZWExYWNjYjQ1N2YuLjEyYjMxNThkZDViOTRlZWMzN2ExODE1ODViOTFkMmNh
ZmY2YTU4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAt
MTU5LDEzICsxNTksOSBAQCBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxMWRpc2FibGVFdmFsRXYK
IF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEyZGVmaW5lR2V0dGVyRVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVBOU184SlNPYmplY3RFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0
MTJkZWZpbmVTZXR0ZXJFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUE5TXzhKU09i
amVjdEVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxM3Zpc2l0Q2hpbGRyZW5FUk5TXzlNYXJr
U3RhY2tFCi1fX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxNmFkZFN0YXRpY0dsb2JhbHNFUE5TMF8x
OEdsb2JhbFByb3BlcnR5SW5mb0VpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxN3B1dFdpdGhB
dHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWoK
LV9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDMTRKU0ds
b2JhbE9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDMTRKU0dsb2Jh
bE9iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVF
Uk5TXzE1UHV0UHJvcGVydHlTbG90RSAgCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQ
TlNfOEpTT2JqZWN0RQotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlND
MTRKU0dsb2JhbE9iamVjdEQyRXYKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdG53RW1QTlNfMTJK
U0dsb2JhbERhdGFFCiBfX1pOM0pTQzE0TWFjaGluZVRocmVhZHMxNmFkZEN1cnJlbnRUaHJlYWRF
dgpAQCAtMjIxLDggKzIxNyw4IEBAIF9fWk4zSlNDMjRKU09iamVjdFdpdGhHbG9iYWxPYmplY3RD
MkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TCiBfX1pOM0pTQzI0
Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MyNWV2YWx1
YXRlSW5HbG9iYWxDYWxsRnJhbWVFUktOU183VVN0cmluZ0VSTlNfN0pTVmFsdWVFUE5TXzE0SlNH
bG9iYWxPYmplY3RFCiBfX1pOM0pTQzM1Y3JlYXRlSW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRp
b25FUE5TXzEySlNHbG9iYWxEYXRhRQotX19aTjNKU0MzTmFORQogX19aTjNKU0M0MWNvbnN0cnVj
dEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrRVBOU185RXhlY1N0YXRlRVBOU18xNEpT
R2xvYmFsT2JqZWN0RVJLTlNfN0FyZ0xpc3RFUktOU18xMElkZW50aWZpZXJFUktOU183VVN0cmlu
Z0VpCitfX1pOM0pTQzNOYU5FCiBfX1pOM0pTQzRIZWFwMTZhY3Rpdml0eUNhbGxiYWNrRXYKIF9f
Wk4zSlNDNEhlYXAxNmFsbG9jYXRlU2xvd0Nhc2VFbQogX19aTjNKU0M0SGVhcDE2b2JqZWN0VHlw
ZUNvdW50c0V2CkBAIC0zNzksMTAgKzM3NSwxMCBAQCBfX1pOM1dURjEwZmFzdFN0ckR1cEVQS2MK
IF9fWk4zV1RGMTFPU0FsbG9jYXRvcjE2cmVzZXJ2ZUFuZENvbW1pdEVtTlMwXzVVc2FnZUViYgog
X19aTjNXVEYxMU9TQWxsb2NhdG9yMThyZWxlYXNlRGVjb21taXR0ZWRFUHZtCiBfX1pOM1dURjEx
Y29tbWVudEF0b21FCitfX1pOM1dURjExZW1wdHlTdHJpbmdFdgogX19aTjNXVEYxMWN1cnJlbnRU
aW1lRXYKIF9fWk4zV1RGMTFkdG9hUm91bmREUEVQY2RpUmJSaVJqCiBfX1pOM1dURjExZHRvYVJv
dW5kU0ZFUGNkaVJiUmlSagotX19aTjNXVEYxMWVtcHR5U3RyaW5nRXYKIF9fWk4zV1RGMTFmYXN0
UmVhbGxvY0VQdm0KIF9fWk4zV1RGMTJBdG9taWNTdHJpbmcxMWFkZFNsb3dDYXNlRVBOU18xMFN0
cmluZ0ltcGxFCiBfX1pOM1dURjEyQXRvbWljU3RyaW5nMTZmcm9tVVRGOEludGVybmFsRVBLY1My
XwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCBjMTAxMDMx
YmRkYTJhYzcwN2MyODc0MTIzYjI0ZmM4ZTJiMWMwMzJjLi4xZjBhMTg0ZWUwMDY0OGNkODQ3ZDYw
M2U3MGQ4OGNiMzA5ZmM5ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQpAQCAtNjkyLDI3ICs2OTIsMTkgQEAKICAgICAgICAgICAgICd5YXJyL1lhcnJTeW50
YXhDaGVja2VyLmgnLAogICAgICAgICBdLAogICAgICAgICAnamF2YXNjcmlwdGNvcmVfZGVyaXZl
ZF9zb3VyY2VfZmlsZXMnOiBbCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvSmF2YVNjcmlwdENvcmUvTGV4ZXIubHV0LmgnLAotICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1JlZ0V4cEppdFRhYmxlcy5oJywK
LSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29y
ZS9UcmFjaW5nRHRyYWNlLmgnLAotICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRT
b3VyY2VzL0phdmFTY3JpcHRDb3JlL0FycmF5Q29uc3RydWN0b3IubHV0LmgnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0FycmF5UHJv
dG90eXBlLmx1dC5oJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9KYXZhU2NyaXB0Q29yZS9Cb29sZWFuUHJvdG90eXBlLmx1dC5oJywKLSAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9EYXRlQ29uc3RydWN0
b3IubHV0LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0ph
dmFTY3JpcHRDb3JlL0RhdGVQcm90b3R5cGUubHV0LmgnLAotICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0Vycm9yUHJvdG90eXBlLmx1dC5o
JywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9KU0dsb2JhbE9iamVjdC5sdXQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvSGVhZGVyRGV0ZWN0aW9uLmgnLAogICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL0pTT05P
YmplY3QubHV0LmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2Vz
L0phdmFTY3JpcHRDb3JlL0xleGVyLmx1dC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9NYXRoT2JqZWN0Lmx1dC5oJywKICAgICAg
ICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5sdXQuaCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZl
ZFNvdXJjZXMvSmF2YVNjcmlwdENvcmUvTnVtYmVyUHJvdG90eXBlLmx1dC5oJywKLSAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9PYmplY3RD
b25zdHJ1Y3Rvci5sdXQuaCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvSmF2YVNjcmlwdENvcmUvT2JqZWN0UHJvdG90eXBlLmx1dC5oJywKICAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9SZWdFeHBDb25z
dHJ1Y3Rvci5sdXQuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJj
ZXMvSmF2YVNjcmlwdENvcmUvUmVnRXhwSml0VGFibGVzLmgnLAogICAgICAgICAgICAgJzwoUFJP
RFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL1JlZ0V4cE9iamVjdC5sdXQu
aCcsCi0gICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlw
dENvcmUvUmVnRXhwUHJvdG90eXBlLmx1dC5oJywKLSAgICAgICAgICAgICc8KFBST0RVQ1RfRElS
KS9EZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9TdHJpbmdDb25zdHJ1Y3Rvci5sdXQuaCcs
CiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvSmF2YVNjcmlwdENv
cmUvU3RyaW5nUHJvdG90eXBlLmx1dC5oJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9E
ZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9UcmFjaW5nRHRyYWNlLmgnLAorICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL09iamVjdENv
bnN0cnVjdG9yLmx1dC5oJywKICAgICAgICAgXSwKICAgICAgICAgJ21pbmlkb21fZmlsZXMnOiBb
CiAgICAgICAgICAgICAnQVBJL3Rlc3RzL0pTTm9kZS5jJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggNDQ0MDgzMGJlNzc5MjU0
NTc3MjBkMjlmNTQ3YWNmZDQxMTUwMDk4Mi4uMjJjZTZhNjI1NjhmMTM0NWIzZjNhOTA5NWUzNjVl
ZTI3YjRlMmVlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5kZWYKQEAgLTU2LDcgKzU2LDYgQEAgRVhQT1JUUwogICAgID9hZGRQcm9wZXJ0
eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3RydWN0dXJlQFN0cnVjdHVyZUBKU0NAQFNBUEFWMTJAUEFW
MTJAQUJWSWRlbnRpZmllckAyQElQQVZKU0NlbGxAMkBBQUlAWgogICAgID9hZGRQcm9wZXJ0eVdp
dGhvdXRUcmFuc2l0aW9uQFN0cnVjdHVyZUBKU0NAQFFBRUlBQVZKU0dsb2JhbERhdGFAMkBBQlZJ
ZGVudGlmaWVyQDJASVBBVkpTQ2VsbEAyQEBaCiAgICAgP2FkZFNsb3dDYXNlQElkZW50aWZpZXJA
SlNDQEBDQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEBXVEZAQFBBVkV4ZWNTdGF0
ZUAyQFBBVlN0cmluZ0ltcGxANEBAWgotICAgID9hZGRTdGF0aWNHbG9iYWxzQEpTR2xvYmFsT2Jq
ZWN0QEpTQ0BASUFFWFBBVUdsb2JhbFByb3BlcnR5SW5mb0AxMkBIQFoKICAgICA/YWxsb2NhdGVA
SGVhcEBKU0NAQFFBRVBBWElAWgogICAgID9hbGxvY2F0ZUZyb21TaXplQ2xhc3NATWFya2VkU3Bh
Y2VASlNDQEBBQUVQQVhBQVVTaXplQ2xhc3NAMTJAQFoKICAgICA/YWxsb2NhdGVQcm9wZXJ0eVN0
b3JhZ2VASlNPYmplY3RASlNDQEBRQUVYSUlAWgpAQCAtMTgzLDcgKzE4Miw2IEBAIEVYUE9SVFMK
ICAgICA/Z2V0Q29uc3RydWN0RGF0YUBKU0NlbGxASlNDQEBVQUU/QVc0Q29uc3RydWN0VHlwZUAy
QEFBVENvbnN0cnVjdERhdGFAMkBAWgogICAgID9nZXRKU051bWJlckBKU0NlbGxASlNDQEBVQUU/
QVZKU1ZhbHVlQDJAWFoKICAgICA/Z2V0T2JqZWN0QEpTQ2VsbEBKU0NAQFFBRVBBVkpTT2JqZWN0
QDJAWFoKLSAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTR2xvYmFsT2JqZWN0QEpTQ0BA
VUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9y
QDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTT2JqZWN0QEpTQ0BAVUFFX05Q
QVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoK
ICAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTU3RyaW5nQEpTQ0BARUFFX05QQVZFeGVj
U3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKICAgICA/
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQFN0cmluZ09iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCkBAIC0xOTMs
NyArMTkxLDYgQEAgRVhQT1JUUwogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNBcnJheUBKU0NA
QFVBRV9OUEFWRXhlY1N0YXRlQDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCiAgICAgP2dldE93blBy
b3BlcnR5U2xvdEBKU0NlbGxASlNDQEBFQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJA
MkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RASlNDZWxsQEpT
Q0BARUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKLSAgICA/Z2V0T3du
UHJvcGVydHlTbG90QEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJ
ZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlTbG90
QEpTT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoK
ICAgICA/Z2V0T3duUHJvcGVydHlTbG90QEpTU3RyaW5nQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVA
MkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVy
dHlTbG90QEpTU3RyaW5nQEpTQ0BARUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90
QDJAQFoKQEAgLTI0Myw2ICsyNDAsMTAgQEAgRVhQT1JUUwogICAgID9sb2NrQ291bnRASlNMb2Nr
QEpTQ0BAU0FIWFoKICAgICA/bG9va3VwR2V0dGVyQEpTT2JqZWN0QEpTQ0BAVUFFP0FWSlNWYWx1
ZUAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBAWgogICAgID9sb29rdXBTZXR0ZXJA
SlNPYmplY3RASlNDQEBVQUU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmll
ckAyQEBaCisgICAgP3Zpc2l0Q2hpbGRyZW5ASlNHbG9iYWxPYmplY3RASlNDQEBVQUVYQUFWTWFy
a1N0YWNrQDJAQFoKKyAgICA/dmlzaXRDaGlsZHJlbkBKU09iamVjdEBKU0NAQFVBRVhBQVZNYXJr
U3RhY2tAMkBAWgorICAgID92aXNpdENoaWxkcmVuQEpTV3JhcHBlck9iamVjdEBKU0NAQEVBRVhB
QVZNYXJrU3RhY2tAMkBAWgorICAgID92aXNpdENoaWxkcmVuQFNjb3BlQ2hhaW5Ob2RlQEpTQ0BA
VUFFWEFBVk1hcmtTdGFja0AyQEBaCiAgICAgP21hdGVyaWFsaXplUHJvcGVydHlNYXBAU3RydWN0
dXJlQEpTQ0BAQUFFWEFBVkpTR2xvYmFsRGF0YUAyQEBaCiAgICAgP21vbnRoRnJvbURheUluWWVh
ckBXVEZAQFlBSEhfTkBaCiAgICAgP21zVG9ZZWFyQFdURkBAWUFITkBaCkBAIC0yOTYsNyArMjk3
LDYgQEAgRVhQT1JUUwogICAgID9yZXN0b3JlQWxsQFByb2ZpbGVASlNDQEBRQUVYWFoKICAgICA/
cmV0cmlldmVDYWxsZXJASW50ZXJwcmV0ZXJASlNDQEBRQkU/QVZKU1ZhbHVlQDJAUEFWRXhlY1N0
YXRlQDJAUEFWSlNGdW5jdGlvbkAyQEBaCiAgICAgP3JldHJpZXZlTGFzdENhbGxlckBJbnRlcnBy
ZXRlckBKU0NAQFFCRVhQQVZFeGVjU3RhdGVAMkBBQUgxQUFWVVN0cmluZ0AyQEFBVkpTVmFsdWVA
MkBAWgotICAgID9zX2luZm9ASlNHbG9iYWxPYmplY3RASlNDQEAyVUNsYXNzSW5mb0AyQEIKICAg
ICA/c2V0QWNjZXNzb3JEZXNjcmlwdG9yQFByb3BlcnR5RGVzY3JpcHRvckBKU0NAQFFBRVhWSlNW
YWx1ZUAyQDBJQFoKICAgICA/c2V0Q29uZmlndXJhYmxlQFByb3BlcnR5RGVzY3JpcHRvckBKU0NA
QFFBRVhfTkBaCiAgICAgP3NldERlc2NyaXB0b3JAUHJvcGVydHlEZXNjcmlwdG9yQEpTQ0BAUUFF
WFZKU1ZhbHVlQDJASUBaCkBAIC0zNjksMTAgKzM2OSw2IEBAIEVYUE9SVFMKICAgICA/dW5wcm90
ZWN0QEhlYXBASlNDQEBRQUVfTlZKU1ZhbHVlQDJAQFoKICAgICA/dW53cmFwcGVkT2JqZWN0QEpT
T2JqZWN0QEpTQ0BAVUFFUEFWMTJAWFoKICAgICA/dXRmOEBVU3RyaW5nQEpTQ0BAUUJFP0FWQ1N0
cmluZ0BXVEZAQF9OQFoKLSAgICA/dmlzaXRDaGlsZHJlbkBKU0dsb2JhbE9iamVjdEBKU0NAQFVB
RVhBQVZNYXJrU3RhY2tAMkBAWgotICAgID92aXNpdENoaWxkcmVuQEpTT2JqZWN0QEpTQ0BAVUFF
WEFBVk1hcmtTdGFja0AyQEBaCi0gICAgP3Zpc2l0Q2hpbGRyZW5ASlNXcmFwcGVyT2JqZWN0QEpT
Q0BARUFFWEFBVk1hcmtTdGFja0AyQEBaCi0gICAgP3Zpc2l0Q2hpbGRyZW5AU2NvcGVDaGFpbk5v
ZGVASlNDQEBVQUVYQUFWTWFya1N0YWNrQDJAQFoKICAgICA/dnRhYmxlQW5jaG9yQEludGVybmFs
RnVuY3Rpb25ASlNDQEBFQUVYWFoKICAgICA/d2FpdEBUaHJlYWRDb25kaXRpb25AV1RGQEBRQUVY
QUFWTXV0ZXhAMkBAWgogICAgID93YWl0Rm9yVGhyZWFkQ29tcGxldGlvbkBXVEZAQFlBSElQQVBB
WEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKaW5kZXggNTliNTc0YWFm
NTYxZmU4ZTBmMDAwMGZlMDI3ZmNkMDQ1M2NjNDE0Yi4uNjA3OGY5NzRmN2IwZThhYjlhNWU2NWQw
MTgzNTY5Y2Q1NTRjOGFiMSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2NyZWF0
ZV9oYXNoX3RhYmxlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfaGFzaF90YWJs
ZQpAQCAtMjg0LDkgKzI4NCw2IEBAIHN1YiBvdXRwdXQoKSB7CiAgICAgICAgIGlmICgka2V5IGVx
ICJwb3ciKSB7CiAgICAgICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAicG93VGh1bmtHZW5lcmF0
b3IiOwogICAgICAgICB9Ci0gICAgICAgIGlmICgka2V5IGVxICJmcm9tQ2hhckNvZGUiKSB7Ci0g
ICAgICAgICAgICAkdGh1bmtHZW5lcmF0b3IgPSAiZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3Ii
OwotICAgICAgICB9CiAgICAgICAgIHByaW50ICIgICB7IFwiJGtleVwiLCAkYXR0cnNbJGldLCAo
aW50cHRyX3QpIiAuICRjYXN0U3RyIC4gIigkZmlyc3RWYWx1ZSksIChpbnRwdHJfdCkkc2Vjb25k
VmFsdWUgVEhVTktfR0VORVJBVE9SKCR0aHVua0dlbmVyYXRvcikgfSxcbiI7CiAgICAgICAgICRp
Kys7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCBjNjkwZTI2NWFj
MDE4ZWQ2OGE4ZDMwMGExYTgwMzZmNGNmZTZjYTg1Li5mOThhODAyZTI1YzMyNjRmOTdhNDdjZGQ1
NWEzZjE2ZmRhMmI2NWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNyBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0zMTMsNyArMzEz
LDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiB0eXBlTmFtZShKU0NlbGwq
KTsKICAgICBPd25QdHI8VHlwZUNvdW50U2V0PiBtX3R5cGVDb3VudFNldDsKLSAgICBIYXNoU2V0
PEpTQ2VsbCo+IG1fY2VsbHM7CiB9OwogCiBpbmxpbmUgVHlwZUNvdW50ZXI6OlR5cGVDb3VudGVy
KCkKQEAgLTM0MCw4ICszMzksNiBAQCBpbmxpbmUgY29uc3QgY2hhciogVHlwZUNvdW50ZXI6OnR5
cGVOYW1lKEpTQ2VsbCogY2VsbCkKIAogaW5saW5lIHZvaWQgVHlwZUNvdW50ZXI6Om9wZXJhdG9y
KCkoSlNDZWxsKiBjZWxsKQogewotICAgIGlmICghbV9jZWxscy5hZGQoY2VsbCkuc2Vjb25kKQot
ICAgICAgICByZXR1cm47CiAgICAgbV90eXBlQ291bnRTZXQtPmFkZCh0eXBlTmFtZShjZWxsKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxs
RnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaApp
bmRleCA1N2IyNGVmOGUzOTgzYzM5ZTJkMWE3Mjk4NjdiYWUzZTFlY2M1MTUwLi4yODgzMmUwZDkx
MDQyNWJiY2RlMzQxNmU5Yjg2MmQ4NWI3MmRiMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqICBDb3B5
cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICogIENv
cHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHlyaWdo
dCAoQykgMjAwMywgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03NSwyNCArNzUsMTUgQEAg
bmFtZXNwYWNlIEpTQyAgewogI2lmbmRlZiBOREVCVUcKICAgICAgICAgdm9pZCBkdW1wQ2FsbGVy
KCk7CiAjZW5kaWYKLSAgICAgICAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlDb25zdHJ1
Y3RvclRhYmxlKENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKS5hcnJheUNvbnN0cnVjdG9yVGFibGU7IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IEhh
c2hUYWJsZSogYXJyYXlQcm90b3R5cGVUYWJsZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1
cm4gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuYXJyYXlQcm90b3R5cGVUYWJsZTsgfQotICAgICAg
ICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBib29sZWFuUHJvdG90eXBlVGFibGUoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpIHsgcmV0dXJuIGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmJvb2xlYW5Qcm90
b3R5cGVUYWJsZTsgfQorICAgICAgICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBhcnJheVRhYmxl
KENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5h
cnJheVRhYmxlOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBIYXNoVGFibGUqIGRhdGVUYWJsZShD
YWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1cm4gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkuZGF0
ZVRhYmxlOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBIYXNoVGFibGUqIGRhdGVDb25zdHJ1Y3Rv
clRhYmxlKENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2JhbERh
dGEoKS5kYXRlQ29uc3RydWN0b3JUYWJsZTsgfQotICAgICAgICBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlKiBlcnJvclByb3RvdHlwZVRhYmxlKENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBj
YWxsRnJhbWUtPmdsb2JhbERhdGEoKS5lcnJvclByb3RvdHlwZVRhYmxlOyB9Ci0gICAgICAgIHN0
YXRpYyBjb25zdCBIYXNoVGFibGUqIGdsb2JhbE9iamVjdFRhYmxlKENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5nbG9iYWxPYmplY3RUYWJsZTsg
fQogICAgICAgICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBqc29uVGFibGUoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIHsgcmV0dXJuIGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmpzb25UYWJsZTsgfQog
ICAgICAgICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBtYXRoVGFibGUoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpIHsgcmV0dXJuIGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLm1hdGhUYWJsZTsgfQotICAg
ICAgICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBudW1iZXJDb25zdHJ1Y3RvclRhYmxlKENhbGxG
cmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5udW1iZXJD
b25zdHJ1Y3RvclRhYmxlOyB9Ci0gICAgICAgIHN0YXRpYyBjb25zdCBIYXNoVGFibGUqIG51bWJl
clByb3RvdHlwZVRhYmxlKENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUt
Pmdsb2JhbERhdGEoKS5udW1iZXJQcm90b3R5cGVUYWJsZTsgfQorICAgICAgICBzdGF0aWMgY29u
c3QgSGFzaFRhYmxlKiBudW1iZXJUYWJsZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1cm4g
Y2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkubnVtYmVyVGFibGU7IH0KICAgICAgICAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZSogb2JqZWN0Q29uc3RydWN0b3JUYWJsZShDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkgeyByZXR1cm4gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkub2JqZWN0Q29uc3RydWN0b3JUYWJs
ZTsgfQotICAgICAgICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBvYmplY3RQcm90b3R5cGVUYWJs
ZShDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1cm4gY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCku
b2JqZWN0UHJvdG90eXBlVGFibGU7IH0KICAgICAgICAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZSog
cmVnRXhwVGFibGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsgcmV0dXJuIGNhbGxGcmFtZS0+Z2xv
YmFsRGF0YSgpLnJlZ0V4cFRhYmxlOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBIYXNoVGFibGUq
IHJlZ0V4cENvbnN0cnVjdG9yVGFibGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsgcmV0dXJuIGNh
bGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnJlZ0V4cENvbnN0cnVjdG9yVGFibGU7IH0KLSAgICAgICAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZSogcmVnRXhwUHJvdG90eXBlVGFibGUoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIHsgcmV0dXJuIGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLnJlZ0V4cFByb3RvdHlw
ZVRhYmxlOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBIYXNoVGFibGUqIHN0cmluZ1RhYmxlKENh
bGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5zdHJp
bmdUYWJsZTsgfQotICAgICAgICBzdGF0aWMgY29uc3QgSGFzaFRhYmxlKiBzdHJpbmdDb25zdHJ1
Y3RvclRhYmxlKENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKS5zdHJpbmdDb25zdHJ1Y3RvclRhYmxlOyB9CiAKICAgICAgICAgc3RhdGljIENhbGxG
cmFtZSogY3JlYXRlKFJlZ2lzdGVyKiBjYWxsRnJhbWVCYXNlKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxDYWxsRnJhbWUqPihjYWxsRnJhbWVCYXNlKTsgfQogICAgICAgICBSZWdpc3RlciogcmVnaXN0
ZXJzKCkgeyByZXR1cm4gdGhpczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCBhNGRmNDExOTNkMjVlMjVmODhhNDdlYzYw
MmY3Y2M2ZTI2MDVhNWRlLi4wNTBlOTg5NjY0NTQzZjIyZTliNzI2N2NiZjExNzI5YWFmNzhkM2Mx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHly
aWdodCAoQykgMjAwMywgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDAzIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAg
Q29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICAq
CkBAIC0zMyw0MyArMzMsMjMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5Q29uc3RydWN0b3JJc0FycmF5KEV4ZWNTdGF0ZSop
OwotCi19Ci0KLSNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9yLmx1dC5oIgotCi1uYW1lc3BhY2Ug
SlNDIHsKLQotY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgRXhlY1N0YXRlOjphcnJheUNv
bnN0cnVjdG9yVGFibGUgfTsKLQotLyogU291cmNlIGZvciBBcnJheUNvbnN0cnVjdG9yLmx1dC5o
Ci1AYmVnaW4gYXJyYXlDb25zdHJ1Y3RvclRhYmxlCi0gIGlzQXJyYXkgICBhcnJheUNvbnN0cnVj
dG9ySXNBcnJheSAgICAgRG9udEVudW18RnVuY3Rpb24gMQotQGVuZAotKi8KLQogQVNTRVJUX0NM
QVNTX0ZJVFNfSU5fQ0VMTChBcnJheUNvbnN0cnVjdG9yKTsKKyAgICAKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5Q29uc3RydWN0b3JJc0FycmF5KEV4ZWNTdGF0ZSop
OwogCi1BcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5
UHJvdG90eXBlKiBhcnJheVByb3RvdHlwZSkKK0FycmF5Q29uc3RydWN0b3I6OkFycmF5Q29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJvdG90eXBlLCBTdHJ1Y3R1
cmUqIGZ1bmN0aW9uU3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgSWRlbnRpZmllcihleGVjLCBhcnJh
eVByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkpCiB7CisgICAgLy8gRUNNQSAxNS40
LjMuMSBBcnJheS5wcm90b3R5cGUKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIGFycmF5UHJv
dG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUgfCBSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUp
OwotfQogCi1ib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZz
bG90KQotewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlv
bj4oZXhlYywgRXhlY1N0YXRlOjphcnJheUNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Ci19CisgICAgLy8gbm8uIG9mIGFyZ3VtZW50cyBmb3IgY29uc3Ry
dWN0b3IKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERv
bnRFbnVtIHwgRG9udERlbGV0ZSk7CiAKLWJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCi17Ci0gICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3Rh
dGU6OmFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKKyAgICAvLyBFUzUKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGZ1bmN0
aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNBcnJheSwgYXJyYXlDb25z
dHJ1Y3RvcklzQXJyYXkpLCBEb250RW51bSk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIHN0YXRp
YyBpbmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCA9IGFzSW50ZXJuYWxGdW5jdGlvbihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVj
dCgpOwpAQCAtOTIsNiArNzIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGV4ZWMsIGFyZ3Mp
KTsKIH0KIAorLy8gRUNNQSAxNS40LjIKIENvbnN0cnVjdFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQogewogICAgIGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0
b3I7CkBAIC0xMDQsNiArODUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZXhlYywgYXJncykpOwogfQog
CisvLyBFQ01BIDE1LjYuMQogQ2FsbFR5cGUgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEo
Q2FsbERhdGEmIGNhbGxEYXRhKQogewogICAgIC8vIGVxdWl2YWxlbnQgdG8gJ25ldyBBcnJheSgu
Li4uKScKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0
b3IuaAppbmRleCBkYzBkZjI0NTVlMDVhOGQzZjUzMjMxOGFmNmEwMDVlMTJlOGRiODE4Li45N2Iy
NmM1OGI3YTAyOGQ1NmZmMTc3N2EyOGNjZDgzZDBlZDQ0MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCkBAIC0xLDYgKzEsNiBAQAog
LyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUu
b3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDIxICsyOSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgQXJyYXlDb25zdHJ1Y3RvciA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEFycmF5Q29uc3RydWN0
b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBBcnJheVByb3RvdHlw
ZSopOwotCi0gICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwotCi0gICAgICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTVmFsdWUgcHJvdG90eXBlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Ci0gICAgICAg
IH0KLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJuYWxGdW5jdGlv
bjo6U3RydWN0dXJlRmxhZ3M7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAg
ICAgIEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqLCBBcnJheVByb3RvdHlwZSosIFN0cnVjdHVyZSopOwogCiAgICAgICAgIHZpcnR1YWwgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKICAgICAgICAgdmly
dHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDhiMjM5M2NlODkwYmRh
MzU2ZTZmMDYzZTU1OTNmMDA2ZGZmODg2N2EuLjI5Y2FlY2VhMmI0NTVjYjEyYTEwM2FkOTEwY2Vm
NWRlNTJjNWYyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAKQEAgLTg1LDEwICs4NSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNO
dW1lcmljQ29tcGFyZUZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgQ2FsbFR5cGUgY2FsbFR5cGUs
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBcnJheVByb3RvdHlwZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNvbnN0IENsYXNzSW5mbyBBcnJheVByb3RvdHlw
ZTo6c19pbmZvID0geyJBcnJheSIsICZKU0FycmF5OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6YXJy
YXlQcm90b3R5cGVUYWJsZX07Citjb25zdCBDbGFzc0luZm8gQXJyYXlQcm90b3R5cGU6OnNfaW5m
byA9IHsiQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCBFeGVjU3RhdGU6OmFycmF5VGFibGV9
OwogCiAvKiBTb3VyY2UgZm9yIEFycmF5UHJvdG90eXBlLmx1dC5oCi1AYmVnaW4gYXJyYXlQcm90
b3R5cGVUYWJsZSAxNgorQGJlZ2luIGFycmF5VGFibGUgMTYKICAgdG9TdHJpbmcgICAgICAgYXJy
YXlQcm90b0Z1bmNUb1N0cmluZyAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCiAgIHRvTG9jYWxl
U3RyaW5nIGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcgRG9udEVudW18RnVuY3Rpb24gMAog
ICBjb25jYXQgICAgICAgICBhcnJheVByb3RvRnVuY0NvbmNhdCAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uIDEKQEAgLTEyMywxMiArMTIzLDEyIEBAIEFycmF5UHJvdG90eXBlOjpBcnJheVByb3Rv
dHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyCiAK
IGJvb2wgQXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNBcnJheT4oZXhlYywgRXhlY1N0YXRl
OjphcnJheVByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNBcnJheT4oZXhlYywgRXhlY1N0YXRl
OjphcnJheVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29s
IEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTQXJy
YXk+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNj
cmlwdG9yPEpTQXJyYXk+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlUYWJsZShleGVjKSwgdGhpcywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIEFycmF5IEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCBi
YmMxNzBjYTc2YWY0YmE5NGQ5Yzc1ZTJjYzM5NTA2MDZhYTI4ZGI4Li42ZGFkZjUxMWEwY2E0ODk4
MmVjMzdiODRmOTMxMjA5NTE2ZmI1MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdo
dCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29s
ZWFuUHJvdG90eXBlLmNwcAppbmRleCBkZDAxOTRmM2Y1ZDA5MmIwOGVhYzI2NmVhOTY5OTVkNWI2
MzEwZjFiLi4yMDk5MGUxNjY5NmMwZWYzZTY5ZmM5YzgzYTJmNTNmODU3OGYwMWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApA
QCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9y
dGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDgsIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CkBAIC0yOSw0NiArMjksMjcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0FTU0VSVF9DTEFTU19G
SVRTX0lOX0NFTEwoQm9vbGVhblByb3RvdHlwZSk7CisKKy8vIEZ1bmN0aW9ucwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nKEV4ZWNT
dGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3Rv
RnVuY1ZhbHVlT2YoRXhlY1N0YXRlKik7CiAKLX0KLQotI2luY2x1ZGUgIkJvb2xlYW5Qcm90b3R5
cGUubHV0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0luZm8gQm9vbGVhblBy
b3RvdHlwZTo6c19pbmZvID0geyAiQm9vbGVhbiIsICZCb29sZWFuT2JqZWN0OjpzX2luZm8sIDAs
IEV4ZWNTdGF0ZTo6Ym9vbGVhblByb3RvdHlwZVRhYmxlIH07CisvLyBFQ01BIDE1LjYuNAogCi0v
KiBTb3VyY2UgZm9yIEJvb2xlYW5Qcm90b3R5cGUubHV0LmgKLUBiZWdpbiBib29sZWFuUHJvdG90
eXBlVGFibGUKLSAgdG9TdHJpbmcgIGJvb2xlYW5Qcm90b0Z1bmNUb1N0cmluZyAgICBEb250RW51
bXxGdW5jdGlvbiAwCi0gIHZhbHVlT2YgICBib29sZWFuUHJvdG9GdW5jVmFsdWVPZiAgICAgRG9u
dEVudW18RnVuY3Rpb24gMAotQGVuZAotKi8KLQotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChC
b29sZWFuUHJvdG90eXBlKTsKLQotQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQorQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlKQogICAgIDogQm9vbGVhbk9iamVjdChleGVj
LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwganNCb29sZWFuKGZhbHNlKSk7CiAKLSAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwotICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0
YSgpLCAwLCBnbG9iYWxPYmplY3QpOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5z
aXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVu
Y3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZywgYm9vbGVh
blByb3RvRnVuY1RvU3RyaW5nKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS52YWx1ZU9m
LCBib29sZWFuUHJvdG9GdW5jVmFsdWVPZiksIERvbnRFbnVtKTsKIH0KIAotYm9vbCBCb29sZWFu
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKLXsKLSAgICByZXR1cm4g
Z2V0U3RhdGljRnVuY3Rpb25TbG90PEJvb2xlYW5PYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6Ym9v
bGVhblByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQog
Ci1ib29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQotewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0
b3I8Qm9vbGVhbk9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpib29sZWFuUHJvdG90eXBlVGFibGUo
ZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Ci19CisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisvLyBFQ01BIDE1LjYuNC4yICsgMTUuNi40LjMKIAogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRl
KiBleGVjKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblBy
b3RvdHlwZS5oCmluZGV4IDIzNDFjMTE0N2E0Mzg0ZDZhZThhYjVkMmIzYTBmZTU2NjM5Y2UwMDku
LjVjY2JkMmI0YjZkZWRkMjJhNjQ3YmUxMTM5M2QzYWZjYWJmOGJjZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKQEAgLTEsNiArMSw2
IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAocG9ydGVu
QGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjcsMjIgKzI3LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBCb29sZWFuUHJvdG90eXBlIDogcHVibGljIEJvb2xl
YW5PYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotCi0gICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwotCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCwgJnNfaW5mbyk7Ci0gICAgICAgIH0KLQotICAgIHByb3RlY3RlZDoKLSAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgQm9vbGVhbk9iamVjdDo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBCb29sZWFuT2JqZWN0OjpB
bm9ueW1vdXNTbG90Q291bnQgKyAxOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwor
ICAgICAgICBCb29sZWFuUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgU3RydWN0dXJlKiBmdW5jdGlvblN0cnVjdHVyZSk7CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmNwcAppbmRleCA4ZmI1YWVmNDRhYmM4M2QxYzAyMWM3NjBhODU0ZGZiM2UxYjU3
YmM2Li45YmJiNjg4MTRlMDEyNjE4OWMxNTMwYmZjNjM2MmI0MDFkMjljZWMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTEs
NiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRlbiAo
cG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNTEsNDMgKzUxLDIyIEBAIHVzaW5n
IG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBKU0MgewogCitBU1NFUlRfQ0xBU1NfRklUU19J
Tl9DRUxMKERhdGVDb25zdHJ1Y3Rvcik7CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQYXJzZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVOb3coRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlVVRDKEV4ZWNTdGF0ZSopOwogCi19Ci0KLSNpbmNsdWRlICJEYXRlQ29u
c3RydWN0b3IubHV0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0luZm8gRGF0
ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpz
X2luZm8sIDAsIEV4ZWNTdGF0ZTo6ZGF0ZUNvbnN0cnVjdG9yVGFibGUgfTsKLQotLyogU291cmNl
IGZvciBEYXRlQ29uc3RydWN0b3IubHV0LmgKLUBiZWdpbiBkYXRlQ29uc3RydWN0b3JUYWJsZQot
ICBwYXJzZSAgICAgZGF0ZVBhcnNlICAgRG9udEVudW18RnVuY3Rpb24gMQotICBVVEMgICAgICAg
ZGF0ZVVUQyAgICAgRG9udEVudW18RnVuY3Rpb24gNwotICBub3cgICAgICAgZGF0ZU5vdyAgICAg
RG9udEVudW18RnVuY3Rpb24gMAotQGVuZAotKi8KLQotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VM
TChEYXRlQ29uc3RydWN0b3IpOwotCi1EYXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eXBlKQorRGF0ZUNvbnN0cnVjdG9y
OjpEYXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RydWN0dXJlKiBmdW5jdGlvblN0cnVjdHVy
ZSwgRGF0ZVByb3RvdHlwZSogZGF0ZVByb3RvdHlwZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24o
JmV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIElkZW50aWZpZXIo
ZXhlYywgZGF0ZVByb3RvdHlwZS0+Y2xhc3NJbmZvKCktPmNsYXNzTmFtZSkpCiB7CiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkucHJvdG90eXBlLCBkYXRlUHJvdG90eXBlLCBEb250RW51bSB8IERvbnREZWxldGUg
fCBSZWFkT25seSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcig3KSwgUmVhZE9u
bHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwotfQogCi1ib29sIERhdGVDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCi17Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OmRhdGVDb25zdHJ1
Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQorICAgIHB1dERp
cmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9u
KGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5wYXJzZSwgZGF0ZVBhcnNlKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDcsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5V
VEMsIGRhdGVVVEMpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJh
bnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBm
dW5jdGlvblN0cnVjdHVyZSwgMCwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5vdywgZGF0ZU5vdyks
IERvbnRFbnVtKTsKIAotYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQotewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5j
dGlvbkRlc2NyaXB0b3I8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpkYXRlQ29u
c3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAg
ICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDcpLCBSZWFkT25seSB8IERvbnRFbnVtIHwg
RG9udERlbGV0ZSk7CiB9CiAKIC8vIEVDTUEgMTUuOS4zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCmluZGV4IDYzZTc4Y2Y5YTFkMDI5NzRjYjVj
NTcyNzUwMDhlZGIzZjkyMjNlY2YuLjIzYTAzMTFhYzhlOTFkZTVkNTJjM2FmZjI0MTMyZTExN2Qx
OWE2MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1
Y3Rvci5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBI
YXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAg
LTI5LDI0ICsyOSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIERhdGVDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIERh
dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIERh
dGVQcm90b3R5cGUqKTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
LQotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OwotICAgICAgICB9Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVy
bmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzOworICAgICAgICBEYXRlQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9u
U3RydWN0dXJlLCBEYXRlUHJvdG90eXBlKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0
dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAg
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKLQotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgfTsKIAogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IDJhNTEzZDU5YzdhZTlmZjEy
Njk1MDk4ZDA4Zjc3ZmM0OTE2NjU2ZTEuLmE1N2U5NDdmZGFkM2JiMjkwYzQ4N2JkOTAxNzVjNjQ1
ODI3ODkwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5jcHAKQEAgLTM0LDQzICszNCwxNiBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEVycm9yUHJvdG90eXBlKTsKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZXJyb3JQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqKTsKIAotfQotCi0jaW5jbHVkZSAiRXJy
b3JQcm90b3R5cGUubHV0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0luZm8g
RXJyb3JQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkVycm9yIiwgJkVycm9ySW5zdGFuY2U6OnNfaW5m
bywgMCwgRXhlY1N0YXRlOjplcnJvclByb3RvdHlwZVRhYmxlIH07Ci0KLS8qIFNvdXJjZSBmb3Ig
RXJyb3JQcm90b3R5cGUubHV0LmgKLUBiZWdpbiBlcnJvclByb3RvdHlwZVRhYmxlCi0gIHRvU3Ry
aW5nICAgICAgICAgIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAwCi1AZW5kCi0qLwotCi1BU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yUHJvdG90
eXBlKTsKLQotRXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisvLyBF
Q01BIDE1LjkuNAorRXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0
cnVjdHVyZSogZnVuY3Rpb25TdHJ1Y3R1cmUpCiAgICAgOiBFcnJvckluc3RhbmNlKCZleGVjLT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlv
bihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRy
aXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKLQotICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7Ci0gICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7Ci19CisgICAgLy8gVGhlIGNvbnN0cnVjdG9yIHdp
bGwgYmUgYWRkZWQgbGF0ZXIgaW4gRXJyb3JDb25zdHJ1Y3RvcidzIGNvbnN0cnVjdG9yCiAKLWJv
b2wgRXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQotewotICAg
IHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8RXJyb3JJbnN0YW5jZT4oZXhlYywgRXhlY1N0
YXRlOjplcnJvclByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwotfQotCi1ib29sIEVycm9yUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikKLXsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNj
cmlwdG9yPEVycm9ySW5zdGFuY2U+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJs
ZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKKyAg
ICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNG
dW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGZ1bmN0aW9uU3RydWN0dXJlLCAwLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcsIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcpLCBEb250RW51
bSk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZXJyb3JQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNPYmplY3Qq
IHRoaXNPYmogPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGV4ZWMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5kZXggYTVj
ODg2MzRmYjdjZmExZGNjMTg1Mzg2NDE3Nzk2NTRhZWZkNTc3Yi4uOTQzN2QzYTYyOTEwMjU1MDFk
NmJhNTE5YjMxODQ0YjNkMzBjOTBhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oCkBAIC0yOSwyMiArMjksNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIGNsYXNzIEVycm9yUHJvdG90eXBlIDogcHVibGljIEVycm9ySW5zdGFuY2UgewogICAg
IHB1YmxpYzoKLSAgICAgICAgRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqKTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5m
bzsKLQotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwotICAgICAgICB9Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVy
cm9ySW5zdGFuY2U6OlN0cnVjdHVyZUZsYWdzOwotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgQW5vbnltb3VzU2xvdENvdW50ID0gRXJyb3JJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50
ICsgMTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgRXJyb3JQcm90
b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUq
IGZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEuY3BwCmluZGV4IDZmMjcw
YjdiZGQ0MjQ5MjNkMThhNTAyODQwZjhiOTljZjQ1Nzk1NjMuLmE5NTVmZTdmM2Y3OTQ5ZjMzMjQ1
N2ZlMjFmMWUzM2ZkNTAzYmEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxEYXRhLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtOTIsMjQgKzkyLDE1IEBAIGlubGluZSB2b2lkIFJlY29tcGls
ZXI6Om9wZXJhdG9yKCkoSlNDZWxsKiBjZWxsKQogCiBuYW1lc3BhY2UgSlNDIHsKIAotZXh0ZXJu
IEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIGFycmF5Q29uc3RydWN0b3JUYWJsZTsKLWV4
dGVybiBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBhcnJheVByb3RvdHlwZVRhYmxlOwot
ZXh0ZXJuIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIGJvb2xlYW5Qcm90b3R5cGVUYWJs
ZTsKK2V4dGVybiBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBhcnJheVRhYmxlOwogZXh0
ZXJuIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIGpzb25UYWJsZTsKIGV4dGVybiBKU0Nf
Q09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBkYXRlVGFibGU7Ci1leHRlcm4gSlNDX0NPTlNUX0hB
U0hUQUJMRSBIYXNoVGFibGUgZGF0ZUNvbnN0cnVjdG9yVGFibGU7Ci1leHRlcm4gSlNDX0NPTlNU
X0hBU0hUQUJMRSBIYXNoVGFibGUgZXJyb3JQcm90b3R5cGVUYWJsZTsKLWV4dGVybiBKU0NfQ09O
U1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBnbG9iYWxPYmplY3RUYWJsZTsKIGV4dGVybiBKU0NfQ09O
U1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBtYXRoVGFibGU7Ci1leHRlcm4gSlNDX0NPTlNUX0hBU0hU
QUJMRSBIYXNoVGFibGUgbnVtYmVyQ29uc3RydWN0b3JUYWJsZTsKLWV4dGVybiBKU0NfQ09OU1Rf
SEFTSFRBQkxFIEhhc2hUYWJsZSBudW1iZXJQcm90b3R5cGVUYWJsZTsKK2V4dGVybiBKU0NfQ09O
U1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBudW1iZXJUYWJsZTsKIGV4dGVybiBKU0NfQ09OU1RfSEFT
SFRBQkxFIEhhc2hUYWJsZSBvYmplY3RDb25zdHJ1Y3RvclRhYmxlOwotZXh0ZXJuIEpTQ19DT05T
VF9IQVNIVEFCTEUgSGFzaFRhYmxlIG9iamVjdFByb3RvdHlwZVRhYmxlOwogZXh0ZXJuIEpTQ19D
T05TVF9IQVNIVEFCTEUgSGFzaFRhYmxlIHJlZ0V4cFRhYmxlOwogZXh0ZXJuIEpTQ19DT05TVF9I
QVNIVEFCTEUgSGFzaFRhYmxlIHJlZ0V4cENvbnN0cnVjdG9yVGFibGU7Ci1leHRlcm4gSlNDX0NP
TlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgcmVnRXhwUHJvdG90eXBlVGFibGU7CiBleHRlcm4gSlND
X0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgc3RyaW5nVGFibGU7Ci1leHRlcm4gSlNDX0NPTlNU
X0hBU0hUQUJMRSBIYXNoVGFibGUgc3RyaW5nQ29uc3RydWN0b3JUYWJsZTsKIAogdm9pZCogSlNH
bG9iYWxEYXRhOjpqc0FycmF5VlB0cjsKIHZvaWQqIEpTR2xvYmFsRGF0YTo6anNCeXRlQXJyYXlW
UHRyOwpAQCAtMTU1LDI0ICsxNDYsMTUgQEAgdm9pZCBKU0dsb2JhbERhdGE6OnN0b3JlVlB0cnMo
KQogSlNHbG9iYWxEYXRhOjpKU0dsb2JhbERhdGEoR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5
cGUsIFRocmVhZFN0YWNrVHlwZSB0aHJlYWRTdGFja1R5cGUpCiAgICAgOiBnbG9iYWxEYXRhVHlw
ZShnbG9iYWxEYXRhVHlwZSkKICAgICAsIGNsaWVudERhdGEoMCkKLSAgICAsIGFycmF5Q29uc3Ry
dWN0b3JUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjphcnJheUNvbnN0cnVjdG9yVGFibGUp
KQotICAgICwgYXJyYXlQcm90b3R5cGVUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjphcnJh
eVByb3RvdHlwZVRhYmxlKSkKLSAgICAsIGJvb2xlYW5Qcm90b3R5cGVUYWJsZShmYXN0TmV3PEhh
c2hUYWJsZT4oSlNDOjpib29sZWFuUHJvdG90eXBlVGFibGUpKQorICAgICwgYXJyYXlUYWJsZShm
YXN0TmV3PEhhc2hUYWJsZT4oSlNDOjphcnJheVRhYmxlKSkKICAgICAsIGRhdGVUYWJsZShmYXN0
TmV3PEhhc2hUYWJsZT4oSlNDOjpkYXRlVGFibGUpKQotICAgICwgZGF0ZUNvbnN0cnVjdG9yVGFi
bGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6ZGF0ZUNvbnN0cnVjdG9yVGFibGUpKQotICAgICwg
ZXJyb3JQcm90b3R5cGVUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjplcnJvclByb3RvdHlw
ZVRhYmxlKSkKLSAgICAsIGdsb2JhbE9iamVjdFRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6
Omdsb2JhbE9iamVjdFRhYmxlKSkKICAgICAsIGpzb25UYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4o
SlNDOjpqc29uVGFibGUpKQogICAgICwgbWF0aFRhYmxlKGZhc3ROZXc8SGFzaFRhYmxlPihKU0M6
Om1hdGhUYWJsZSkpCi0gICAgLCBudW1iZXJDb25zdHJ1Y3RvclRhYmxlKGZhc3ROZXc8SGFzaFRh
YmxlPihKU0M6Om51bWJlckNvbnN0cnVjdG9yVGFibGUpKQotICAgICwgbnVtYmVyUHJvdG90eXBl
VGFibGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6bnVtYmVyUHJvdG90eXBlVGFibGUpKQorICAg
ICwgbnVtYmVyVGFibGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6bnVtYmVyVGFibGUpKQogICAg
ICwgb2JqZWN0Q29uc3RydWN0b3JUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpvYmplY3RD
b25zdHJ1Y3RvclRhYmxlKSkKLSAgICAsIG9iamVjdFByb3RvdHlwZVRhYmxlKGZhc3ROZXc8SGFz
aFRhYmxlPihKU0M6Om9iamVjdFByb3RvdHlwZVRhYmxlKSkKICAgICAsIHJlZ0V4cFRhYmxlKGZh
c3ROZXc8SGFzaFRhYmxlPihKU0M6OnJlZ0V4cFRhYmxlKSkKICAgICAsIHJlZ0V4cENvbnN0cnVj
dG9yVGFibGUoZmFzdE5ldzxIYXNoVGFibGU+KEpTQzo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZSkp
Ci0gICAgLCByZWdFeHBQcm90b3R5cGVUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4oSlNDOjpyZWdF
eHBQcm90b3R5cGVUYWJsZSkpCiAgICAgLCBzdHJpbmdUYWJsZShmYXN0TmV3PEhhc2hUYWJsZT4o
SlNDOjpzdHJpbmdUYWJsZSkpCi0gICAgLCBzdHJpbmdDb25zdHJ1Y3RvclRhYmxlKGZhc3ROZXc8
SGFzaFRhYmxlPihKU0M6OnN0cmluZ0NvbnN0cnVjdG9yVGFibGUpKQogICAgICwgaWRlbnRpZmll
clRhYmxlKGdsb2JhbERhdGFUeXBlID09IERlZmF1bHQgPyB3dGZUaHJlYWREYXRhKCkuY3VycmVu
dElkZW50aWZpZXJUYWJsZSgpIDogY3JlYXRlSWRlbnRpZmllclRhYmxlKCkpCiAgICAgLCBwcm9w
ZXJ0eU5hbWVzKG5ldyBDb21tb25JZGVudGlmaWVycyh0aGlzKSkKICAgICAsIGVtcHR5TGlzdChu
ZXcgTWFya2VkQXJndW1lbnRCdWZmZXIpCkBAIC0yOTMsNDMgKzI3NSwyNSBAQCBKU0dsb2JhbERh
dGE6On5KU0dsb2JhbERhdGEoKQogICAgIGludGVycHJldGVyID0gMDsKICNlbmRpZgogCi0gICAg
YXJyYXlQcm90b3R5cGVUYWJsZS0+ZGVsZXRlVGFibGUoKTsKLSAgICBhcnJheUNvbnN0cnVjdG9y
VGFibGUtPmRlbGV0ZVRhYmxlKCk7Ci0gICAgYm9vbGVhblByb3RvdHlwZVRhYmxlLT5kZWxldGVU
YWJsZSgpOworICAgIGFycmF5VGFibGUtPmRlbGV0ZVRhYmxlKCk7CiAgICAgZGF0ZVRhYmxlLT5k
ZWxldGVUYWJsZSgpOwotICAgIGRhdGVDb25zdHJ1Y3RvclRhYmxlLT5kZWxldGVUYWJsZSgpOwot
ICAgIGVycm9yUHJvdG90eXBlVGFibGUtPmRlbGV0ZVRhYmxlKCk7Ci0gICAgZ2xvYmFsT2JqZWN0
VGFibGUtPmRlbGV0ZVRhYmxlKCk7CiAgICAganNvblRhYmxlLT5kZWxldGVUYWJsZSgpOwogICAg
IG1hdGhUYWJsZS0+ZGVsZXRlVGFibGUoKTsKLSAgICBudW1iZXJDb25zdHJ1Y3RvclRhYmxlLT5k
ZWxldGVUYWJsZSgpOwotICAgIG51bWJlclByb3RvdHlwZVRhYmxlLT5kZWxldGVUYWJsZSgpOwor
ICAgIG51bWJlclRhYmxlLT5kZWxldGVUYWJsZSgpOwogICAgIG9iamVjdENvbnN0cnVjdG9yVGFi
bGUtPmRlbGV0ZVRhYmxlKCk7Ci0gICAgb2JqZWN0UHJvdG90eXBlVGFibGUtPmRlbGV0ZVRhYmxl
KCk7CiAgICAgcmVnRXhwVGFibGUtPmRlbGV0ZVRhYmxlKCk7CiAgICAgcmVnRXhwQ29uc3RydWN0
b3JUYWJsZS0+ZGVsZXRlVGFibGUoKTsKLSAgICByZWdFeHBQcm90b3R5cGVUYWJsZS0+ZGVsZXRl
VGFibGUoKTsKICAgICBzdHJpbmdUYWJsZS0+ZGVsZXRlVGFibGUoKTsKLSAgICBzdHJpbmdDb25z
dHJ1Y3RvclRhYmxlLT5kZWxldGVUYWJsZSgpOwogCi0gICAgZmFzdERlbGV0ZShjb25zdF9jYXN0
PEhhc2hUYWJsZSo+KGFycmF5Q29uc3RydWN0b3JUYWJsZSkpOwotICAgIGZhc3REZWxldGUoY29u
c3RfY2FzdDxIYXNoVGFibGUqPihhcnJheVByb3RvdHlwZVRhYmxlKSk7Ci0gICAgZmFzdERlbGV0
ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KGJvb2xlYW5Qcm90b3R5cGVUYWJsZSkpOworICAgIGZh
c3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihhcnJheVRhYmxlKSk7CiAgICAgZmFzdERl
bGV0ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KGRhdGVUYWJsZSkpOwotICAgIGZhc3REZWxldGUo
Y29uc3RfY2FzdDxIYXNoVGFibGUqPihkYXRlQ29uc3RydWN0b3JUYWJsZSkpOwotICAgIGZhc3RE
ZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihlcnJvclByb3RvdHlwZVRhYmxlKSk7Ci0gICAg
ZmFzdERlbGV0ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KGdsb2JhbE9iamVjdFRhYmxlKSk7CiAg
ICAgZmFzdERlbGV0ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KGpzb25UYWJsZSkpOwogICAgIGZh
c3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihtYXRoVGFibGUpKTsKLSAgICBmYXN0RGVs
ZXRlKGNvbnN0X2Nhc3Q8SGFzaFRhYmxlKj4obnVtYmVyQ29uc3RydWN0b3JUYWJsZSkpOwotICAg
IGZhc3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihudW1iZXJQcm90b3R5cGVUYWJsZSkp
OworICAgIGZhc3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihudW1iZXJUYWJsZSkpOwog
ICAgIGZhc3REZWxldGUoY29uc3RfY2FzdDxIYXNoVGFibGUqPihvYmplY3RDb25zdHJ1Y3RvclRh
YmxlKSk7Ci0gICAgZmFzdERlbGV0ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KG9iamVjdFByb3Rv
dHlwZVRhYmxlKSk7CiAgICAgZmFzdERlbGV0ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KHJlZ0V4
cFRhYmxlKSk7CiAgICAgZmFzdERlbGV0ZShjb25zdF9jYXN0PEhhc2hUYWJsZSo+KHJlZ0V4cENv
bnN0cnVjdG9yVGFibGUpKTsKLSAgICBmYXN0RGVsZXRlKGNvbnN0X2Nhc3Q8SGFzaFRhYmxlKj4o
cmVnRXhwUHJvdG90eXBlVGFibGUpKTsKICAgICBmYXN0RGVsZXRlKGNvbnN0X2Nhc3Q8SGFzaFRh
YmxlKj4oc3RyaW5nVGFibGUpKTsKLSAgICBmYXN0RGVsZXRlKGNvbnN0X2Nhc3Q8SGFzaFRhYmxl
Kj4oc3RyaW5nQ29uc3RydWN0b3JUYWJsZSkpOwogCiAgICAgZGVsZXRlIHBhcnNlcjsKICAgICBk
ZWxldGUgbGV4ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbERhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0
YS5oCmluZGV4IDg5M2RjMDQ5YTFkZGM3Yzg4OTVhNDIyOWYxNWQ0N2M0ZDIyYzc0ZjkuLjY1MjJh
MDFjZGJjZjJhMjE0NWIxZTkxNjUzNmNjMWZmZjBkYjlmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsRGF0YS5oCkBAIC0xMzYsMjQgKzEzNiwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgR2xvYmFsRGF0YVR5cGUgZ2xvYmFsRGF0YVR5cGU7CiAgICAg
ICAgIENsaWVudERhdGEqIGNsaWVudERhdGE7CiAKLSAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBh
cnJheUNvbnN0cnVjdG9yVGFibGU7Ci0gICAgICAgIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlQcm90
b3R5cGVUYWJsZTsKLSAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBib29sZWFuUHJvdG90eXBlVGFi
bGU7CisgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogYXJyYXlUYWJsZTsKICAgICAgICAgY29uc3Qg
SGFzaFRhYmxlKiBkYXRlVGFibGU7Ci0gICAgICAgIGNvbnN0IEhhc2hUYWJsZSogZGF0ZUNvbnN0
cnVjdG9yVGFibGU7Ci0gICAgICAgIGNvbnN0IEhhc2hUYWJsZSogZXJyb3JQcm90b3R5cGVUYWJs
ZTsKLSAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBnbG9iYWxPYmplY3RUYWJsZTsKICAgICAgICAg
Y29uc3QgSGFzaFRhYmxlKiBqc29uVGFibGU7CiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSogbWF0
aFRhYmxlOwotICAgICAgICBjb25zdCBIYXNoVGFibGUqIG51bWJlckNvbnN0cnVjdG9yVGFibGU7
Ci0gICAgICAgIGNvbnN0IEhhc2hUYWJsZSogbnVtYmVyUHJvdG90eXBlVGFibGU7CisgICAgICAg
IGNvbnN0IEhhc2hUYWJsZSogbnVtYmVyVGFibGU7CiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZSog
b2JqZWN0Q29uc3RydWN0b3JUYWJsZTsKLSAgICAgICAgY29uc3QgSGFzaFRhYmxlKiBvYmplY3RQ
cm90b3R5cGVUYWJsZTsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiByZWdFeHBUYWJsZTsKICAg
ICAgICAgY29uc3QgSGFzaFRhYmxlKiByZWdFeHBDb25zdHJ1Y3RvclRhYmxlOwotICAgICAgICBj
b25zdCBIYXNoVGFibGUqIHJlZ0V4cFByb3RvdHlwZVRhYmxlOwogICAgICAgICBjb25zdCBIYXNo
VGFibGUqIHN0cmluZ1RhYmxlOwotICAgICAgICBjb25zdCBIYXNoVGFibGUqIHN0cmluZ0NvbnN0
cnVjdG9yVGFibGU7CiAgICAgICAgIAogICAgICAgICBTdHJvbmc8U3RydWN0dXJlPiBzdHJ1Y3R1
cmVTdHJ1Y3R1cmU7CiAgICAgICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGFjdGl2YXRpb25TdHJ1Y3R1
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKaW5kZXggNWE1NTE0ZTlkYTRhZmFjNDEyNWYzZWY1OTJiMGY2ZjU5MGVjZDYyMy4uODIzNGYw
NmQ0ZjNhZTkwYjJhOGYyNWE4MzAxMDA2OWY2YjAxYTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNTEsNyArNTEsNiBAQAog
I2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKICNpbmNsdWRlICJJ
bnRlcnByZXRlci5oIgotI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk1hdGhPYmplY3Qu
aCIKICNpbmNsdWRlICJOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiTmF0aXZl
RXJyb3JQcm90b3R5cGUuaCIKQEAgLTY5LDI3ICs2OCw4IEBACiAjaW5jbHVkZSAiU3RyaW5nUHJv
dG90eXBlLmgiCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKIAotI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0Lmx1dC5oIgotCiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgQ2xhc3NJbmZvIEpTR2xvYmFs
T2JqZWN0OjpzX2luZm8gPSB7ICJHbG9iYWxPYmplY3QiLCAmTnVtYmVyT2JqZWN0OjpzX2luZm8s
IDAsIEV4ZWNTdGF0ZTo6Z2xvYmFsT2JqZWN0VGFibGUgfTsKLQotLyogU291cmNlIGZvciBKU0ds
b2JhbE9iamVjdC5sdXQuaAotQGJlZ2luIGdsb2JhbE9iamVjdFRhYmxlCi0gIHBhcnNlSW50ICAg
ICAgICAgICAgICBnbG9iYWxGdW5jUGFyc2VJbnQgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDIKLSAgcGFyc2VGbG9hdCAgICAgICAgICAgIGdsb2JhbEZ1bmNQYXJzZUZsb2F0ICAgICAg
ICAgICAgRG9udEVudW18RnVuY3Rpb24gMQotICBpc05hTiAgICAgICAgICAgICAgICAgZ2xvYmFs
RnVuY0lzTmFOICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGlzRmluaXRl
ICAgICAgICAgICAgICBnbG9iYWxGdW5jSXNGaW5pdGUgICAgICAgICAgICAgIERvbnRFbnVtfEZ1
bmN0aW9uIDEKLSAgZXNjYXBlICAgICAgICAgICAgICAgIGdsb2JhbEZ1bmNFc2NhcGUgICAgICAg
ICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMQotICB1bmVzY2FwZSAgICAgICAgICAgICAgZ2xv
YmFsRnVuY1VuZXNjYXBlICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGRlY29k
ZVVSSSAgICAgICAgICAgICBnbG9iYWxGdW5jRGVjb2RlVVJJICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDEKLSAgZGVjb2RlVVJJQ29tcG9uZW50ICAgIGdsb2JhbEZ1bmNEZWNvZGVVUklD
b21wb25lbnQgICAgRG9udEVudW18RnVuY3Rpb24gMQotICBlbmNvZGVVUkkgICAgICAgICAgICAg
Z2xvYmFsRnVuY0VuY29kZVVSSSAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGVu
Y29kZVVSSUNvbXBvbmVudCAgICBnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50ICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDEKLUBlbmQKLSovCi0KIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNH
bG9iYWxPYmplY3QpOwogCiAvLyBEZWZhdWx0IG51bWJlciBvZiB0aWNrcyBiZWZvcmUgYSB0aW1l
b3V0IGNoZWNrIHNob3VsZCBiZSBkb25lLgpAQCAtMTg3LDYgKzE2Nyw4IEBAIHZvaWQgSlNHbG9i
YWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90eXBlKQogewogICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IEpTR2xvYmFsT2JqZWN0OjpnbG9iYWxFeGVjKCk7CiAKKyAgICAvLyBQcm90b3R5cGVzCisK
ICAgICBtX2Z1bmN0aW9uUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5l
dyAoZXhlYykgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgdGhpcywgRnVuY3Rpb25Qcm90b3R5cGU6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVsbCgpKSkpOyAvLyBUaGUg
cmVhbCBwcm90b3R5cGUgd2lsbCBiZSBzZXQgb25jZSBPYmplY3RQcm90b3R5cGUgaXMgY3JlYXRl
ZC4KICAgICBtX2Z1bmN0aW9uU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IEpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rp
b25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUuc2V0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlU3RydWN0
dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwpAQCAt
MTk1LDcgKzE3Nyw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90
eXBlKQogICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPmFkZEZ1bmN0aW9uUHJvcGVydGllcyhleGVj
LCB0aGlzLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAmY2FsbEZ1bmN0aW9uLCAmYXBwbHlG
dW5jdGlvbik7CiAgICAgbV9jYWxsRnVuY3Rpb24uc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgY2FsbEZ1bmN0aW9uKTsKICAgICBtX2FwcGx5RnVuY3Rpb24uc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgYXBwbHlGdW5jdGlvbik7Ci0gICAgbV9vYmplY3RQcm90b3R5cGUuc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBPYmplY3RQcm90b3R5cGUoZXhlYywg
dGhpcywgT2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBqc051bGwoKSkpKTsKKyAgICBtX29iamVjdFByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE9iamVjdFByb3RvdHlwZShleGVjLCB0aGlzLCBPYmplY3RQ
cm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVsbCgpKSwg
bV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1fZnVuY3Rpb25Qcm90b3R5cGUtPnN0
cnVjdHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKTsKIAogICAgIG1fZW1wdHlPYmplY3RTdHJ1Y3R1
cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUtPmluaGVy
aXRvcklEKGV4ZWMtPmdsb2JhbERhdGEoKSkpOwpAQCAtMjEzLDMyICsxOTUsMzIgQEAgdm9pZCBK
U0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgbV9zdHJpbmdQcm90
b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBTdHJpbmdQcm90
b3R5cGUoZXhlYywgdGhpcywgU3RyaW5nUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX3N0cmluZ09i
amVjdFN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBTdHJpbmdPYmplY3Q6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fc3RyaW5nUHJvdG90eXBlLmdl
dCgpKSk7CiAKLSAgICBtX2Jvb2xlYW5Qcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
dGhpcywgbmV3IChleGVjKSBCb29sZWFuUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEJvb2xlYW5Qcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0UHJvdG90
eXBlLmdldCgpKSkpOworICAgIG1fYm9vbGVhblByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIEJvb2xlYW5Qcm90b3R5cGUoZXhlYywgdGhpcywgQm9vbGVh
blByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQ
cm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7CiAgICAgbV9ib29s
ZWFuT2JqZWN0U3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIEJvb2xlYW5P
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fYm9vbGVhblByb3Rv
dHlwZS5nZXQoKSkpOwogCi0gICAgbV9udW1iZXJQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgbmV3IChleGVjKSBOdW1iZXJQcm90b3R5cGUoZXhlYywgdGhpcywgTnVtYmVy
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFBy
b3RvdHlwZS5nZXQoKSkpKTsKKyAgICBtX251bWJlclByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIE51bWJlclByb3RvdHlwZShleGVjLCB0aGlzLCBOdW1i
ZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fb2JqZWN0
UHJvdG90eXBlLmdldCgpKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSkpOwogICAgIG1fbnVt
YmVyT2JqZWN0U3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIE51bWJlck9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9udW1iZXJQcm90b3R5
cGUuZ2V0KCkpKTsKIAogICAgIG1fZGF0ZVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBuZXcgKGV4ZWMpIERhdGVQcm90b3R5cGUoZXhlYywgdGhpcywgRGF0ZVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpKSk7CiAgICAgbV9kYXRlU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIERhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9k
YXRlUHJvdG90eXBlLmdldCgpKSk7CiAKLSAgICBtX3JlZ0V4cFByb3RvdHlwZS5zZXQoZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIFJlZ0V4cFByb3RvdHlwZShleGVjLCB0aGlz
LCBSZWdFeHBQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOworICAgIG1fcmVnRXhwUHJvdG90eXBlLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwUHJvdG90eXBlKGV4ZWMsIHRo
aXMsIFJlZ0V4cFByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
bV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpKSk7CiAg
ICAgbV9yZWdFeHBTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgUmVnRXhw
T2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX3JlZ0V4cFByb3Rv
dHlwZS5nZXQoKSkpOwogCiAgICAgbV9tZXRob2RDYWxsRHVtbXkuc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYykpOwogCi0gICAgRXJyb3JQcm90
b3R5cGUqIGVycm9yUHJvdG90eXBlID0gbmV3IChleGVjKSBFcnJvclByb3RvdHlwZShleGVjLCB0
aGlzLCBFcnJvclByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
bV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKKyAgICBFcnJvclByb3RvdHlwZSogZXJyb3JQcm90
b3R5cGUgPSBuZXcgKGV4ZWMpIEVycm9yUHJvdG90eXBlKGV4ZWMsIHRoaXMsIEVycm9yUHJvdG90
eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCkpOwogICAgIG1fZXJyb3JTdHJ1Y3R1
cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgRXJyb3JJbnN0YW5jZTo6Y3JlYXRlU3Ry
dWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXJyb3JQcm90b3R5cGUpKTsKIAogICAgIC8vIENv
bnN0cnVjdG9ycwogCiAgICAgSlNDZWxsKiBvYmplY3RDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykg
T2JqZWN0Q29uc3RydWN0b3IoZXhlYywgdGhpcywgT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0
cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSk7CiAgICAgSlNDZWxsKiBmdW5jdGlvbkNvbnN0cnVjdG9y
ID0gbmV3IChleGVjKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMsIEZ1bmN0aW9uQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Q
cm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKTsKLSAgICBKU0NlbGwq
IGFycmF5Q29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgdGhp
cywgQXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwg
bV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCkpOwotICAg
IEpTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIFN0cmluZ0NvbnN0cnVjdG9y
KGV4ZWMsIHRoaXMsIFN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9zdHJpbmdQcm90b3R5cGUu
Z2V0KCkpOworICAgIEpTQ2VsbCogYXJyYXlDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgQXJyYXlD
b25zdHJ1Y3RvcihleGVjLCB0aGlzLCBBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9hcnJheVBy
b3RvdHlwZS5nZXQoKSwgbV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSk7CisgICAgSlNDZWxsKiBz
dHJpbmdDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgU3RyaW5nQ29uc3RydWN0b3IoZXhlYywgdGhp
cywgU3RyaW5nQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCBt
X3N0cmluZ1Byb3RvdHlwZS5nZXQoKSk7CiAgICAgSlNDZWxsKiBib29sZWFuQ29uc3RydWN0b3Ig
PSBuZXcgKGV4ZWMpIEJvb2xlYW5Db25zdHJ1Y3RvcihleGVjLCB0aGlzLCBCb29sZWFuQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90
b3R5cGUuZ2V0KCkpLCBtX2Jvb2xlYW5Qcm90b3R5cGUuZ2V0KCkpOwogICAgIEpTQ2VsbCogbnVt
YmVyQ29uc3RydWN0b3IgPSBuZXcgKGV4ZWMpIE51bWJlckNvbnN0cnVjdG9yKGV4ZWMsIHRoaXMs
IE51bWJlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBt
X2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9udW1iZXJQcm90b3R5cGUuZ2V0KCkpOwotICAg
IEpTQ2VsbCogZGF0ZUNvbnN0cnVjdG9yID0gbmV3IChleGVjKSBEYXRlQ29uc3RydWN0b3IoZXhl
YywgdGhpcywgRGF0ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgbV9kYXRlUHJvdG90eXBlLmdldCgpKTsK
KyAgICBKU0NlbGwqIGRhdGVDb25zdHJ1Y3RvciA9IG5ldyAoZXhlYykgRGF0ZUNvbnN0cnVjdG9y
KGV4ZWMsIHRoaXMsIERhdGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIG1fZnVuY3Rpb25TdHJ1Y3R1cmUu
Z2V0KCksIG1fZGF0ZVByb3RvdHlwZS5nZXQoKSk7CiAKICAgICBtX3JlZ0V4cENvbnN0cnVjdG9y
LnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG5ldyAoZXhlYykgUmVnRXhwQ29uc3RydWN0
b3IoZXhlYywgdGhpcywgUmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5n
bG9iYWxEYXRhKCksIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpLCBtX3JlZ0V4cFByb3RvdHlw
ZS5nZXQoKSkpOwogCkBAIC0yNjMsNiArMjQ1LDEwIEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJl
c2V0KEpTVmFsdWUgcHJvdG90eXBlKQogICAgIG1fcmVnRXhwUHJvdG90eXBlLT5wdXREaXJlY3RG
dW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmNvbnN0cnVjdG9yLCBtX3JlZ0V4cENvbnN0cnVjdG9yLmdldCgpLCBEb250RW51
bSk7CiAgICAgZXJyb3JQcm90b3R5cGUtPnB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3Is
IG1fZXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0pOwogCisgICAgLy8gU2V0IGdsb2Jh
bCBjb25zdHJ1Y3RvcnMKKworICAgIC8vIEZJWE1FOiBUaGVzZSBwcm9wZXJ0aWVzIGNvdWxkIGJl
IGhhbmRsZWQgYnkgYSBzdGF0aWMgaGFzaCB0YWJsZS4KKwogICAgIHB1dERpcmVjdEZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsICJP
YmplY3QiKSwgb2JqZWN0Q29uc3RydWN0b3IsIERvbnRFbnVtKTsKICAgICBwdXREaXJlY3RGdW5j
dGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVj
LCAiRnVuY3Rpb24iKSwgZnVuY3Rpb25Db25zdHJ1Y3RvciwgRG9udEVudW0pOwogICAgIHB1dERp
cmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlm
aWVyKGV4ZWMsICJBcnJheSIpLCBhcnJheUNvbnN0cnVjdG9yLCBEb250RW51bSk7CkBAIC0yNzks
OSArMjY1LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksIElkZW50aWZpZXIoZXhlYywgIlR5cGVFcnJvciIpLCBtX3R5cGVFcnJvckNvbnN0cnVjdG9y
LmdldCgpLCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlv
bihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIlVSSUVycm9yIiksIG1fVVJJ
RXJyb3JDb25zdHJ1Y3Rvci5nZXQoKSwgRG9udEVudW0pOwogCi0gICAgbV9ldmFsRnVuY3Rpb24u
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMs
IHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5ldmFsLCBnbG9iYWxGdW5jRXZhbCkpOwotICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24oZXhlYywgbV9ldmFsRnVuY3Rpb24uZ2V0KCksIERvbnRFbnVtKTsKLQorICAgIC8v
IFNldCBnbG9iYWwgdmFsdWVzLgogICAgIEdsb2JhbFByb3BlcnR5SW5mbyBzdGF0aWNHbG9iYWxz
W10gPSB7CiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4ZWMsICJNYXRo
IiksIG5ldyAoZXhlYykgTWF0aE9iamVjdChleGVjLCB0aGlzLCBNYXRoT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpLCBE
b250RW51bSB8IERvbnREZWxldGUpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRp
ZmllcihleGVjLCAiTmFOIiksIGpzTmFOKCksIERvbnRFbnVtIHwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KSwKQEAgLTI4OSw4ICsyNzMsMjcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyhJZGVudGlmaWVyKGV4
ZWMsICJ1bmRlZmluZWQiKSwganNVbmRlZmluZWQoKSwgRG9udEVudW0gfCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpLAogICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8oSWRlbnRpZmllcihleGVjLCAi
SlNPTiIpLCBuZXcgKGV4ZWMpIEpTT05PYmplY3QodGhpcywgSlNPTk9iamVjdDo6Y3JlYXRlU3Ry
dWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKSwgRG9u
dEVudW0gfCBEb250RGVsZXRlKQogICAgIH07CisKICAgICBhZGRTdGF0aWNHbG9iYWxzKHN0YXRp
Y0dsb2JhbHMsIFdURl9BUlJBWV9MRU5HVEgoc3RhdGljR2xvYmFscykpOwogCisgICAgLy8gU2V0
IGdsb2JhbCBmdW5jdGlvbnMuCisKKyAgICBtX2V2YWxGdW5jdGlvbi5zZXQoZXhlYy0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywgdGhpcywgbV9mdW5jdGlv
blN0cnVjdHVyZS5nZXQoKSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmV2YWwsIGdsb2JhbEZ1
bmNFdmFsKSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBt
X2V2YWxGdW5jdGlvbi5nZXQoKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIHRoaXMsIG1f
ZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDIsIElkZW50aWZpZXIoZXhlYywgInBhcnNlSW50Iiks
IGdsb2JhbEZ1bmNQYXJzZUludCksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCB0aGlzLCBt
X2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJwYXJzZUZsb2F0
IiksIGdsb2JhbEZ1bmNQYXJzZUZsb2F0KSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIHRo
aXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImlzTmFO
IiksIGdsb2JhbEZ1bmNJc05hTiksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCB0aGlzLCBt
X2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJpc0Zpbml0ZSIp
LCBnbG9iYWxGdW5jSXNGaW5pdGUpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25X
aXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywgdGhpcywg
bV9mdW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgMSwgSWRlbnRpZmllcihleGVjLCAiZXNjYXBlIiks
IGdsb2JhbEZ1bmNFc2NhcGUpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRo
b3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywgdGhpcywgbV9m
dW5jdGlvblN0cnVjdHVyZS5nZXQoKSwgMSwgSWRlbnRpZmllcihleGVjLCAidW5lc2NhcGUiKSwg
Z2xvYmFsRnVuY1VuZXNjYXBlKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIHRoaXMsIG1f
ZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImRlY29kZVVSSSIp
LCBnbG9iYWxGdW5jRGVjb2RlVVJJKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9u
V2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIHRoaXMs
IG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50aWZpZXIoZXhlYywgImRlY29kZVVS
SUNvbXBvbmVudCIpLCBnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50KSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBK
U0Z1bmN0aW9uKGV4ZWMsIHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElkZW50
aWZpZXIoZXhlYywgImVuY29kZVVSSSIpLCBnbG9iYWxGdW5jRW5jb2RlVVJJKSwgRG9udEVudW0p
OworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVj
KSBKU0Z1bmN0aW9uKGV4ZWMsIHRoaXMsIG1fZnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0KCksIDEsIElk
ZW50aWZpZXIoZXhlYywgImVuY29kZVVSSUNvbXBvbmVudCIpLCBnbG9iYWxGdW5jRW5jb2RlVVJJ
Q29tcG9uZW50KSwgRG9udEVudW0pOworI2lmbmRlZiBOREVCVUcKKyAgICBwdXREaXJlY3RGdW5j
dGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCB0
aGlzLCBtX2Z1bmN0aW9uU3RydWN0dXJlLmdldCgpLCAxLCBJZGVudGlmaWVyKGV4ZWMsICJqc2Nw
cmludCIpLCBnbG9iYWxGdW5jSlNDUHJpbnQpLCBEb250RW51bSk7CisjZW5kaWYKKwogICAgIHJl
c2V0UHJvdG90eXBlKGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvdG90eXBlKTsKIH0KIApAQCAtNDQx
LDQyICs0NDQsNiBAQCB2b2lkKiBKU0dsb2JhbE9iamVjdDo6b3BlcmF0b3IgbmV3KHNpemVfdCBz
aXplLCBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiAgICAgcmV0dXJuIGdsb2JhbERhdGEtPmhl
YXAuYWxsb2NhdGUoc2l6ZSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRpY0ds
b2JhbHMoR2xvYmFsUHJvcGVydHlJbmZvKiBnbG9iYWxzLCBpbnQgY291bnQpCi17Ci0gICAgc2l6
ZV90IG9sZFNpemUgPSBtX3JlZ2lzdGVyQXJyYXlTaXplOwotICAgIHNpemVfdCBuZXdTaXplID0g
b2xkU2l6ZSArIGNvdW50OwotICAgIE93bkFycmF5UHRyPFdyaXRlQmFycmllcjxVbmtub3duPiA+
IHJlZ2lzdGVyQXJyYXkgPSBhZG9wdEFycmF5UHRyKG5ldyBXcml0ZUJhcnJpZXI8VW5rbm93bj5b
bmV3U2l6ZV0pOwotICAgIGlmIChtX3JlZ2lzdGVyQXJyYXkpIHsKLSAgICAgICAgLy8gbWVtY3B5
IGlzIHNhZmUgaGVyZSBhcyB3ZSdyZSBjb3B5aW5nIGJhcnJpZXJzIHdlIGFscmVhZHkgb3duIGZy
b20gdGhlIGV4aXN0aW5nIGFycmF5Ci0gICAgICAgIG1lbWNweShyZWdpc3RlckFycmF5LmdldCgp
ICsgY291bnQsIG1fcmVnaXN0ZXJBcnJheS5nZXQoKSwgb2xkU2l6ZSAqIHNpemVvZihSZWdpc3Rl
cikpOwotICAgIH0KLQotICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogcmVnaXN0ZXJzID0gcmVn
aXN0ZXJBcnJheS5nZXQoKSArIG5ld1NpemU7Ci0gICAgc2V0UmVnaXN0ZXJzKHJlZ2lzdGVycywg
cmVnaXN0ZXJBcnJheS5yZWxlYXNlKCksIG5ld1NpemUpOwotCi0gICAgZm9yIChpbnQgaSA9IDAs
IGluZGV4ID0gLXN0YXRpY19jYXN0PGludD4ob2xkU2l6ZSkgLSAxOyBpIDwgY291bnQ7ICsraSwg
LS1pbmRleCkgewotICAgICAgICBHbG9iYWxQcm9wZXJ0eUluZm8mIGdsb2JhbCA9IGdsb2JhbHNb
aV07Ci0gICAgICAgIEFTU0VSVChnbG9iYWwuYXR0cmlidXRlcyAmIERvbnREZWxldGUpOwotICAg
ICAgICBTeW1ib2xUYWJsZUVudHJ5IG5ld0VudHJ5KGluZGV4LCBnbG9iYWwuYXR0cmlidXRlcyk7
Ci0gICAgICAgIHN5bWJvbFRhYmxlKCkuYWRkKGdsb2JhbC5pZGVudGlmaWVyLmltcGwoKSwgbmV3
RW50cnkpOwotICAgICAgICByZWdpc3RlckF0KGluZGV4KS5zZXQoZ2xvYmFsRGF0YSgpLCB0aGlz
LCBnbG9iYWwudmFsdWUpOwotICAgIH0KLX0KLQotYm9vbCBKU0dsb2JhbE9iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgaWYgKGdldFN0YXRpY0Z1bmN0aW9uU2xv
dDxKU1ZhcmlhYmxlT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Omdsb2JhbE9iamVjdFRhYmxlKGV4
ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBK
U0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCi17Ci0gICAgaWYgKGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxKU1ZhcmlhYmxl
T2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Omdsb2JhbE9iamVjdFRhYmxlKGV4ZWMpLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1
cm4gc3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKLX0KLQogdm9pZCBK
U0dsb2JhbE9iamVjdDo6V2Vha01hcHNGaW5hbGl6ZXI6OmZpbmFsaXplKEhhbmRsZTxVbmtub3du
PiBoYW5kbGUsIHZvaWQqKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBh
c0dsb2JhbE9iamVjdChoYW5kbGUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNjRhYzY0NjliNzljMjdmMDdiMjk3YjRkOTU1
NGI4MThjMDM5OWQwNy4uYjEzNTQ1OTNkNDU3MWRjY2ViYjI5Y2Q4NWExNDU4MGZjOWRmZmJjMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBA
IC0xNDgsOCArMTQ4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpbml0KHRoaXMp
OwogICAgICAgICB9CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87Ci0K
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAgICAg
ICAgICAgICA6IEpTVmFyaWFibGVPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCAmbV9zeW1i
b2xUYWJsZSwgMCkKQEAgLTMxOSw2ICszMTcsNDIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IG1fcmVnaXN0ZXJBcnJheVNpemUgPSBjb3VudDsKICAgICB9CiAKKyAgICBpbmxpbmUgdm9pZCBK
U0dsb2JhbE9iamVjdDo6YWRkU3RhdGljR2xvYmFscyhHbG9iYWxQcm9wZXJ0eUluZm8qIGdsb2Jh
bHMsIGludCBjb3VudCkKKyAgICB7CisgICAgICAgIHNpemVfdCBvbGRTaXplID0gbV9yZWdpc3Rl
ckFycmF5U2l6ZTsKKyAgICAgICAgc2l6ZV90IG5ld1NpemUgPSBvbGRTaXplICsgY291bnQ7Cisg
ICAgICAgIE93bkFycmF5UHRyPFdyaXRlQmFycmllcjxVbmtub3duPiA+IHJlZ2lzdGVyQXJyYXkg
PSBhZG9wdEFycmF5UHRyKG5ldyBXcml0ZUJhcnJpZXI8VW5rbm93bj5bbmV3U2l6ZV0pOworICAg
ICAgICBpZiAobV9yZWdpc3RlckFycmF5KSB7CisgICAgICAgICAgICAvLyBtZW1jcHkgaXMgc2Fm
ZSBoZXJlIGFzIHdlJ3JlIGNvcHlpbmcgYmFycmllcnMgd2UgYWxyZWFkeSBvd24gZnJvbSB0aGUg
ZXhpc3RpbmcgYXJyYXkKKyAgICAgICAgICAgIG1lbWNweShyZWdpc3RlckFycmF5LmdldCgpICsg
Y291bnQsIG1fcmVnaXN0ZXJBcnJheS5nZXQoKSwgb2xkU2l6ZSAqIHNpemVvZihSZWdpc3Rlcikp
OworICAgICAgICB9CisKKyAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiByZWdpc3RlcnMg
PSByZWdpc3RlckFycmF5LmdldCgpICsgbmV3U2l6ZTsKKyAgICAgICAgc2V0UmVnaXN0ZXJzKHJl
Z2lzdGVycywgcmVnaXN0ZXJBcnJheS5yZWxlYXNlKCksIG5ld1NpemUpOworCisgICAgICAgIGZv
ciAoaW50IGkgPSAwLCBpbmRleCA9IC1zdGF0aWNfY2FzdDxpbnQ+KG9sZFNpemUpIC0gMTsgaSA8
IGNvdW50OyArK2ksIC0taW5kZXgpIHsKKyAgICAgICAgICAgIEdsb2JhbFByb3BlcnR5SW5mbyYg
Z2xvYmFsID0gZ2xvYmFsc1tpXTsKKyAgICAgICAgICAgIEFTU0VSVChnbG9iYWwuYXR0cmlidXRl
cyAmIERvbnREZWxldGUpOworICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSBuZXdFbnRyeShp
bmRleCwgZ2xvYmFsLmF0dHJpYnV0ZXMpOworICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQo
Z2xvYmFsLmlkZW50aWZpZXIuaW1wbCgpLCBuZXdFbnRyeSk7CisgICAgICAgICAgICByZWdpc3Rl
ckF0KGluZGV4KS5zZXQoZ2xvYmFsRGF0YSgpLCB0aGlzLCBnbG9iYWwudmFsdWUpOworICAgICAg
ICB9CisgICAgfQorCisgICAgaW5saW5lIGJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQorICAgIHsKKyAgICAgICAgaWYgKEpTVmFyaWFibGVPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBzeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIH0KKworICAgIGlubGluZSBib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKKyAgICB7CisgICAg
ICAgIGlmIChzeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBKU1ZhcmlhYmxlT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAg
ICB9CisKICAgICBpbmxpbmUgYm9vbCBKU0dsb2JhbE9iamVjdDo6aGFzT3duUHJvcGVydHlGb3JX
cml0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKICAg
ICB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IDU2
ZWJlMGUzN2Q2ODMzMTk0N2NkYjg0ZWU0MjQ4YjljYTdkMmRjZGUuLmYwZGE3NzM3Y2NjNjFiNjZh
NzI5N2Y2ZmM4MzgyZDVjZjBiM2Q2OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTU4Nyw0ICs1
ODcsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUo
RXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcoZXhl
YywgYnVpbGRlci50b1VTdHJpbmcoKSkpOwogfQogCisjaWZuZGVmIE5ERUJVRworRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSlNDUHJpbnQoRXhlY1N0YXRlKiBleGVjKQor
eworICAgIENTdHJpbmcgc3RyaW5nID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyku
dXRmOCgpOworICAgIHB1dHMoc3RyaW5nLmRhdGEoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oCmluZGV4IDM2ZTlhYzRjZjkwZDEwM2U1NGMxMGRkNmZmMzMzZTY5Y2EzYTM0M2Uu
LjZkYzczNDM4MTNjNTVjYzI4YzkzNjgwZmZjOTJkY2U1NjE0MjkzOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
aApAQCAtNDcsNiArNDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQoRXhlY1N0YXRlKik7CiAg
ICAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0
ZSopOwogICAgIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1VuZXNjYXBl
KEV4ZWNTdGF0ZSopOworI2lmbmRlZiBOREVCVUcKKyAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNKU0NQcmludChFeGVjU3RhdGUqKTsKKyNlbmRpZgogCiAgICAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBtYW50aXNzYU92ZXJmbG93TG93ZXJCb3VuZCA9IDkwMDcxOTkyNTQ3
NDA5OTIuMDsKICAgICBkb3VibGUgcGFyc2VJbnRPdmVyZmxvdyhjb25zdCBjaGFyKiwgaW50IGxl
bmd0aCwgaW50IHJhZGl4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5jcHAKaW5kZXggOWM4NWE2OTdjZGE0MDM4YWIxMjA1ODEwMTA3MWE4NTZjOGZjY2M0My4u
NTJiZDc2YWQ0YjhiMDM1NmI2ZDNjYjhlNjU4OTJhZWE2MDIyNTIzYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTU5LDYgKzU5LDggQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RhbihFeGVjU3Rh
dGUqKTsKIAogbmFtZXNwYWNlIEpTQyB7CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBNYXRoT2JqZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIGNvbnN0
IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2luZm8gPSB7ICJNYXRoIiwgJkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om1hdGhUYWJsZSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIE1hdGhPYmplY3QubHV0LmgKQEAgLTk5LDYgKzEwMSw4IEBAIE1hdGhPYmplY3Q6Ok1h
dGhPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0
YSgpLCBJZGVudGlmaWVyKGV4ZWMsICJTUVJUMiIpLCBqc051bWJlcihzcXJ0KDIuMCkpLCBEb250
RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CiB9CiAKKy8vIEVDTUEgMTUuOAorCiBib29s
IE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVy
biBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bWF0aFRh
YmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDZlNDY5Njk5
YTgzMjA2OTNlMzA5NTk0MGMwYjc3MjM1MjVlY2VjOGYuLjQxOTNmNzk4MThmOTMxMTBiNmE0MThj
MDI2YjJmNWNhYmZkYmNhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogIENvcHly
aWdodCAoQykgMTk5OS0yMDAwLDIwMDMgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC00MiwxMCArNDIsMTAgQEAgc3Rh
dGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0b3JNaW5WYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVl
LCBjb25zdCBJZGVudGlmaWVyJikKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5m
byBOdW1iZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5j
dGlvbjo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlckNvbnN0cnVjdG9yVGFibGUgfTsKK2Nv
bnN0IENsYXNzSW5mbyBOdW1iZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
SW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om51bWJlclRhYmxlIH07CiAK
IC8qIFNvdXJjZSBmb3IgTnVtYmVyQ29uc3RydWN0b3IubHV0LmgKLUBiZWdpbiBudW1iZXJDb25z
dHJ1Y3RvclRhYmxlCitAYmVnaW4gbnVtYmVyVGFibGUKICAgIE5hTiAgICAgICAgICAgICAgICAg
ICBudW1iZXJDb25zdHJ1Y3Rvck5hTlZhbHVlICAgICAgIERvbnRFbnVtfERvbnREZWxldGV8UmVh
ZE9ubHkKICAgIE5FR0FUSVZFX0lORklOSVRZICAgICBudW1iZXJDb25zdHJ1Y3Rvck5lZ0luZmlu
aXR5ICAgIERvbnRFbnVtfERvbnREZWxldGV8UmVhZE9ubHkKICAgIFBPU0lUSVZFX0lORklOSVRZ
ICAgICBudW1iZXJDb25zdHJ1Y3RvclBvc0luZmluaXR5ICAgIERvbnRFbnVtfERvbnREZWxldGV8
UmVhZE9ubHkKQEAgLTY4LDEyICs2OCwxMiBAQCBOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVyQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogCiBi
b29sIE51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PE51bWJlckNvbnN0cnVjdG9yLCBJbnRlcm5h
bEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6Om51bWJlckNvbnN0cnVjdG9yVGFibGUoZXhlYyks
IHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xv
dDxOdW1iZXJDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpu
dW1iZXJUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBO
dW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxOdW1iZXJD
b25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJDb25z
dHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8TnVtYmVyQ29uc3RydWN0b3IsIEludGVy
bmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6bnVtYmVyVGFibGUoZXhlYyksIHRoaXMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHN0YXRpYyBKU1ZhbHVlIG51bWJlckNvbnN0
cnVjdG9yTmFOVmFsdWUoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApp
bmRleCBjYmYyOWRhMWEzNzExOTgwYThlYTljZDA2MDdmOThiMGJlNmMxM2ZiLi4yNDUzMmRkNTEy
OTI1YmQyMmJmMDhjMDFkZWMxYmExODk4N2EzZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgog
ICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwLDIwMDMgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zNCw2ICszNCw4
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE51bWJl
clByb3RvdHlwZSk7CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoRXhlY1N0YXRlKik7CiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9m
KEV4ZWNTdGF0ZSopOwpAQCAtNDEsNDggKzQzLDI3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4ZWQoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFs
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVy
UHJvdG9GdW5jVG9QcmVjaXNpb24oRXhlY1N0YXRlKik7CiAKLX0KLQotI2luY2x1ZGUgIk51bWJl
clByb3RvdHlwZS5sdXQuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNvbnN0IENsYXNzSW5mbyBO
dW1iZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk51bWJlciIsICZOdW1iZXJPYmplY3Q6OnNfaW5m
bywgMCwgRXhlY1N0YXRlOjpudW1iZXJQcm90b3R5cGVUYWJsZSB9OwotCi0vKiBTb3VyY2UgZm9y
IE51bWJlclByb3RvdHlwZS5sdXQuaAotQGJlZ2luIG51bWJlclByb3RvdHlwZVRhYmxlCi0gIHRv
U3RyaW5nICAgICAgICAgIG51bWJlclByb3RvRnVuY1RvU3RyaW5nICAgICAgICAgRG9udEVudW18
RnVuY3Rpb24gMQotICB0b0xvY2FsZVN0cmluZyAgICBudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0
cmluZyAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKLSAgdmFsdWVPZiAgICAgICAgICAgbnVtYmVyUHJv
dG9GdW5jVmFsdWVPZiAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCi0gIHRvRml4ZWQgICAg
ICAgICAgIG51bWJlclByb3RvRnVuY1RvRml4ZWQgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24g
MQotICB0b0V4cG9uZW50aWFsICAgICBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsICAgIERv
bnRFbnVtfEZ1bmN0aW9uIDEKLSAgdG9QcmVjaXNpb24gICAgICAgbnVtYmVyUHJvdG9GdW5jVG9Q
cmVjaXNpb24gICAgICBEb250RW51bXxGdW5jdGlvbiAxCi1AZW5kCi0qLworLy8gRUNNQSAxNS43
LjQKIAotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChOdW1iZXJQcm90b3R5cGUpOwotCi1OdW1i
ZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorTnVtYmVyUHJvdG90eXBl
OjpOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RydWN0dXJlKiBmdW5jdGlvblN0cnVjdHVy
ZSkKICAgICA6IE51bWJlck9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsK
ICAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIoMCkpOwog
Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBwdXRBbm9ueW1vdXNWYWx1ZShn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKLX0KLQotYm9vbCBO
dW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQotewotICAgIHJl
dHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8TnVtYmVyT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6
Om51bWJlclByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwot
fQorICAgIC8vIFRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGFkZGVkIGxhdGVyLCBhZnRlciBOdW1i
ZXJDb25zdHJ1Y3RvciBoYXMgYmVlbiBjb25zdHJ1Y3RlZAogCi1ib29sIE51bWJlclByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCi17Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxOdW1iZXJPYmplY3Q+KGV4ZWMs
IEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihl
eGVjLCBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBmdW5jdGlvblN0
cnVjdHVyZSwgMSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnRvU3RyaW5nLCBudW1iZXJQcm90b0Z1
bmNUb1N0cmluZyksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFu
c2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGZ1
bmN0aW9uU3RydWN0dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9Mb2NhbGVTdHJpbmcs
IG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKSwgRG9udEVudW0pOworICAgIHB1dERpcmVj
dEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4
ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS52YWx1ZU9mLCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKSwgRG9udEVudW0pOworICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS50b0ZpeGVkLCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS50b0V4cG9uZW50aWFsLCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50
aWFsKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24o
ZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25T
dHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1ByZWNpc2lvbiwgbnVtYmVyUHJv
dG9GdW5jVG9QcmVjaXNpb24pLCBEb250RW51bSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKKy8v
IEVDTUEgMTUuNy40LjIgLSAxNS43LjQuNworCiBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHRv
VGhpc051bWJlcihKU1ZhbHVlIHRoaXNWYWx1ZSwgZG91YmxlICZ4KQogewogICAgIEpTVmFsdWUg
diA9IHRoaXNWYWx1ZS5nZXRKU051bWJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAppbmRleCAxZjEzMjNiNjg3ZWU3YWJlNDc2MThmMTA3
NTM5ZjI3MWQ1YjFjZDNlLi40NWJkZmU3YmIyZmNkODA2MGViM2M2Y2U1YmMyMzNmZThkYmU1N2Zi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
aApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkg
UG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNywy
MiArMjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIE51bWJlclByb3RvdHlwZSA6
IHB1YmxpYyBOdW1iZXJPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgTnVtYmVyUHJvdG90
eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0KLSAgICAgICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87Ci0KLSAgICAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90
b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKLSAgICAgICAgfQotCi0gICAgcHJvdGVj
dGVkOgotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBOdW1iZXJPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwot
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gTnVtYmVy
T2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOworICAgICAgICBOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDJjMWY5NjM4OGEwZmJjYjhkYTA5ZjUyNDY3NGQy
ZDRkY2QzNmMwZmEuLjc0NjkxNzJjODk2ZTcxMTc1MDMxOGYwNzI4N2VkMTE5MDMxMjg0OWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNw
cApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkg
UG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yOCw2
ICsyOCw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KE9iamVjdFByb3RvdHlwZSk7CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdFByb3RvRnVuY1ZhbHVlT2YoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNIYXNPd25Qcm9wZXJ0eShFeGVjU3RhdGUq
KTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lz
UHJvdG90eXBlT2YoRXhlY1N0YXRlKik7CkBAIC0zOCw0MiArNDAsMjcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jTG9va3VwU2V0dGVyKEV4ZWNT
dGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9G
dW5jUHJvcGVydHlJc0VudW1lcmFibGUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhFeGVjU3RhdGUq
KTsKIAotfQotCi0jaW5jbHVkZSAiT2JqZWN0UHJvdG90eXBlLmx1dC5oIgotCi1uYW1lc3BhY2Ug
SlNDIHsKLQotY29uc3QgQ2xhc3NJbmZvIE9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiT2Jq
ZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjpvYmplY3RQcm90
b3R5cGVUYWJsZSB9OwotCi0vKiBTb3VyY2UgZm9yIE9iamVjdFByb3RvdHlwZS5sdXQuaAotQGJl
Z2luIG9iamVjdFByb3RvdHlwZVRhYmxlCi0gIHRvU3RyaW5nICAgICAgICAgICAgICBvYmplY3RQ
cm90b0Z1bmNUb1N0cmluZyAgICAgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMAotICB0
b0xvY2FsZVN0cmluZyAgICAgICAgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcgICAgICAg
ICAgIERvbnRFbnVtfEZ1bmN0aW9uIDAKLSAgdmFsdWVPZiAgICAgICAgICAgICAgIG9iamVjdFBy
b3RvRnVuY1ZhbHVlT2YgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAwCi0gIGhh
c093blByb3BlcnR5ICAgICAgICBvYmplY3RQcm90b0Z1bmNIYXNPd25Qcm9wZXJ0eSAgICAgICAg
ICAgRG9udEVudW18RnVuY3Rpb24gMQotICBwcm9wZXJ0eUlzRW51bWVyYWJsZSAgb2JqZWN0UHJv
dG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKLSAgaXNQ
cm90b3R5cGVPZiAgICAgICAgIG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YgICAgICAgICAg
ICBEb250RW51bXxGdW5jdGlvbiAxCi0gIF9fZGVmaW5lR2V0dGVyX18gICAgICBvYmplY3RQcm90
b0Z1bmNEZWZpbmVHZXR0ZXIgICAgICAgICAgICAgRG9udEVudW18RnVuY3Rpb24gMgotICBfX2Rl
ZmluZVNldHRlcl9fICAgICAgb2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyICAgICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uIDIKLSAgX19sb29rdXBHZXR0ZXJfXyAgICAgIG9iamVjdFByb3Rv
RnVuY0xvb2t1cEdldHRlciAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIF9fbG9v
a3VwU2V0dGVyX18gICAgICBvYmplY3RQcm90b0Z1bmNMb29rdXBTZXR0ZXIgICAgICAgICAgICAg
RG9udEVudW18RnVuY3Rpb24gMQotQGVuZAotKi8KLQotQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VM
TChPYmplY3RQcm90b3R5cGUpOwotCi1PYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZShF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3R1Y3R1cmUpCitPYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3R1Y3R1cmUsIFN0
cnVjdHVyZSogZnVuY3Rpb25TdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgc3R1Y3R1cmUpCiAgICAgLCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50
MzJOYW1lcyh0cnVlKQogewotICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0
QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVj
dCk7CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4
ZWMpIEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBmdW5jdGlvblN0cnVjdHVyZSwgMCwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnRvU3RyaW5nLCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyks
IERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMs
IG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGZ1bmN0aW9uU3RydWN0
dXJlLCAwLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9Mb2NhbGVTdHJpbmcsIG9iamVjdFByb3Rv
RnVuY1RvTG9jYWxlU3RyaW5nKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0
aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS52YWx1ZU9m
LCBvYmplY3RQcm90b0Z1bmNWYWx1ZU9mKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0
aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5o
YXNPd25Qcm9wZXJ0eSwgb2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHkpLCBEb250RW51bSk7
CisgICAgcHV0RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMp
IEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBmdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhl
Yy0+cHJvcGVydHlOYW1lcygpLnByb3BlcnR5SXNFbnVtZXJhYmxlLCBvYmplY3RQcm90b0Z1bmNQ
cm9wZXJ0eUlzRW51bWVyYWJsZSksIERvbnRFbnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldp
dGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxP
YmplY3QsIGZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuaXNQcm90
b3R5cGVPZiwgb2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZiksIERvbnRFbnVtKTsKKworICAg
IC8vIE1vemlsbGEgZXh0ZW5zaW9ucworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5z
aXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVu
Y3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5fX2RlZmluZUdldHRlcl9f
LCBvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIpLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0
RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIEpTRnVuY3Rpb24oZXhl
YywgZ2xvYmFsT2JqZWN0LCBmdW5jdGlvblN0cnVjdHVyZSwgMiwgZXhlYy0+cHJvcGVydHlOYW1l
cygpLl9fZGVmaW5lU2V0dGVyX18sIG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlciksIERvbnRF
bnVtKTsKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAo
ZXhlYykgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGZ1bmN0aW9uU3RydWN0dXJlLCAx
LCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuX19sb29rdXBHZXR0ZXJfXywgb2JqZWN0UHJvdG9GdW5j
TG9va3VwR2V0dGVyKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRy
YW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwg
ZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5fX2xvb2t1cFNldHRl
cl9fLCBvYmplY3RQcm90b0Z1bmNMb29rdXBTZXR0ZXIpLCBEb250RW51bSk7CiB9CiAKIHZvaWQg
T2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAg
ICBKU05vbkZpbmFsT2JqZWN0OjpwdXQoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7
CisgICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIAog
ICAgIGlmIChtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lcykgewogICAgICAgICBib29s
IGlzVUludDMyOwpAQCAtODYsMjEgKzczLDEzIEBAIGJvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsCiB7
CiAgICAgaWYgKG1faGFzTm9Qcm9wZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKQogICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmV0dXJuIEpTTm9uRmluYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1ib29sIE9iamVjdFByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCi17Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uU2xvdDxKU05vbkZpbmFsT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9iamVjdFByb3Rv
dHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1ib29sIE9i
amVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCi17Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxKU05vbkZp
bmFsT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9iamVjdFByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0
aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAorLy8gRUNNQSAxNS4yLjQuMiwgMTUuMi40LjQsIDE1LjIuNC41LCAxNS4y
LjQuNworCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1ZhbHVl
T2YoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+aG9z
dFRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaAppbmRleCBlYzMwYjljMWZlYjgwOTE2ZTA4ZWU3MDc2ODJmMDlkZDNkMDNhYWY0
Li45ZmI3ZmFlNWM2ZTU3NjFjYWZhNDM0ODU5OTAzMWUwYjBiYmJjMTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5A
a2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNywyNCArMjcsMTEgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBPYmplY3RQcm90b3R5cGUgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICBPYmplY3RQcm90b3R5cGUoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLQotICAgICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKLQotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEs
IHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQsICZzX2luZm8pOwotICAgICAgICB9Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTTm9uRmluYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gSlNOb25GaW5hbE9i
amVjdDo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKKyAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4
ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgU3RydWN0dXJlKiBmdW5jdGlv
blN0cnVjdHVyZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAg
ICAgICAgYm9vbCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lczsKICAgICB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5k
ZXggMjBiYjZlMDY2YTAwNGQ1OTllZWJiYzUxYzkyZDhkNjQyMzM2MzQwZi4uNWJiOGFkOGJiOTM4
MmQ4YzlkYjQ0ODE2ODgyZmQyODZlNDRmMjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC0zOCw0MyArMzgsMjIgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKK0FTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoUmVnRXhwUHJvdG90
eXBlKTsKKwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jVGVzdChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZ0V4cFByb3RvRnVuY0V4ZWMoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSopOwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVG9TdHJpbmcoRXhl
Y1N0YXRlKik7CiAKLX0KLQotI2luY2x1ZGUgIlJlZ0V4cFByb3RvdHlwZS5sdXQuaCIKLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLWNvbnN0IENsYXNzSW5mbyBSZWdFeHBQcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlJlZ0V4cCIsICZSZWdFeHBPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjpyZWdFeHBQ
cm90b3R5cGVUYWJsZSB9OwotCi0vKiBTb3VyY2UgZm9yIFJlZ0V4cFByb3RvdHlwZS5sdXQuaAot
QGJlZ2luIHJlZ0V4cFByb3RvdHlwZVRhYmxlCi0gIGNvbXBpbGUgICByZWdFeHBQcm90b0Z1bmND
b21waWxlICAgICAgRG9udEVudW18RnVuY3Rpb24gMgotICBleGVjICAgICAgcmVnRXhwUHJvdG9G
dW5jRXhlYyAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKLSAgdGVzdCAgICAgIHJlZ0V4cFBy
b3RvRnVuY1Rlc3QgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIHRvU3RyaW5nICByZWdF
eHBQcm90b0Z1bmNUb1N0cmluZyAgICAgRG9udEVudW18RnVuY3Rpb24gMAotQGVuZAotKi8KKy8v
IEVDTUEgMTUuMTAuNQogCi1BU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKFJlZ0V4cFByb3RvdHlw
ZSk7Ci0KLVJlZ0V4cFByb3RvdHlwZTo6UmVnRXhwUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitSZWdF
eHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJ1Y3R1cmUqIGZ1bmN0
aW9uU3RydWN0dXJlKQogICAgIDogUmVnRXhwT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCBSZWdFeHA6OmNyZWF0ZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCAiIiwgTm9GbGFncykpCiB7Ci19
Ci0KLWJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkK
LXsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PFJlZ0V4cE9iamVjdD4oZXhlYywg
RXhlY1N0YXRlOjpyZWdFeHBQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1l
LCBzbG90KTsKLX0KLQotYm9vbCBSZWdFeHBQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQotewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5j
dGlvbkRlc2NyaXB0b3I8UmVnRXhwT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4cFByb3Rv
dHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHB1
dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBKU0Z1bmN0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5jb21waWxlLCByZWdFeHBQcm90b0Z1bmNDb21waWxlKSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5leGVjLCByZWdFeHBQcm90b0Z1bmNFeGVjKSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDEsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS50ZXN0LCByZWdFeHBQcm90b0Z1bmNUZXN0KSwgRG9udEVudW0pOwor
ICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywgbmV3IChleGVjKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZnVuY3Rpb25TdHJ1Y3R1cmUsIDAsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS50b1N0cmluZywgcmVnRXhwUHJvdG9GdW5jVG9TdHJpbmcpLCBEb250
RW51bSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IDllNzFhYjFkN2M4ODUyNTFiZjgzNjhlN2Yz
ZjYyNDlhZTc5YjQ1YzIuLjJjYzU0MDU4NjUwYWMyM2ZjMjliY2FiMDJhZGI0YmIxOTkxZDQ4NWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5o
CkBAIC0yOCwyMCArMjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFJlZ0V4cFBy
b3RvdHlwZSA6IHB1YmxpYyBSZWdFeHBPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgUmVn
RXhwUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0g
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwotCi0gICAgICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFs
dWUgcHJvdG90eXBlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7Ci0gICAgICAgIH0KLQotICAg
IHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgUmVnRXhwT2JqZWN0OjpTdHJ1Y3R1cmVG
bGFnczsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgUmVnRXhwUHJv
dG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgU3RydWN0dXJl
KiBmdW5jdGlvblN0cnVjdHVyZSk7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggZWE2ZTEyODUzZTc3NjgyMGNkZWY5ZGY2ZmJkYjYwNGE1MGVmZjU2NC4uNTYwMjAyYTU1
OWU2ZDliYjViY2I1OGIxYTliMTRjMTUwODFiYzk4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMjksNDMgKzI5LDYg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ0Zyb21DaGFyQ29kZShFeGVjU3RhdGUqKTsKLQotfQotCi0jaW5jbHVkZSAiU3Ry
aW5nQ29uc3RydWN0b3IubHV0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBDbGFzc0lu
Zm8gU3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVu
Y3Rpb246OnNfaW5mbywgMCwgRXhlY1N0YXRlOjpzdHJpbmdDb25zdHJ1Y3RvclRhYmxlIH07Ci0K
LS8qIFNvdXJjZSBmb3IgU3RyaW5nQ29uc3RydWN0b3IubHV0LmgKLUBiZWdpbiBzdHJpbmdDb25z
dHJ1Y3RvclRhYmxlCi0gIGZyb21DaGFyQ29kZSAgICAgICAgICBzdHJpbmdGcm9tQ2hhckNvZGUg
ICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi1AZW5kCi0qLwotCi1BU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKFN0cmluZ0NvbnN0cnVjdG9yKTsKLQotU3RyaW5nQ29uc3RydWN0b3I6OlN0cmlu
Z0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cmluZ1Byb3RvdHlwZSogc3RyaW5nUHJvdG90eXBl
KQotICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgSWRlbnRpZmllcihleGVjLCBzdHJpbmdQcm90b3R5cGUtPmNsYXNzSW5m
bygpLT5jbGFzc05hbWUpKQotewotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgc3RyaW5nUHJv
dG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7Ci0gICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUp
OwotfQotCi1ib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAm
c2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEludGVybmFsRnVuY3Rp
b24+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nQ29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywg
cHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCi17Ci0gICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVj
U3RhdGU6OnN0cmluZ0NvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvcik7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5j
dGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQogc3RhdGljIE5FVkVSX0lO
TElORSBKU1ZhbHVlIHN0cmluZ0Zyb21DaGFyQ29kZVNsb3dDYXNlKEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBleGVjLT5hcmd1bWVudENvdW50KCk7CkBAIC04Myw2
ICs0NiwyNSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9t
Q2hhckNvZGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc3Ry
aW5nRnJvbUNoYXJDb2RlU2xvd0Nhc2UoZXhlYykpOwogfQogCitBU1NFUlRfQ0xBU1NfRklUU19J
Tl9DRUxMKFN0cmluZ0NvbnN0cnVjdG9yKTsKKworU3RyaW5nQ29uc3RydWN0b3I6OlN0cmluZ0Nv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogZnVuY3Rpb25TdHJ1Y3R1cmUsIFN0cmlu
Z1Byb3RvdHlwZSogc3RyaW5nUHJvdG90eXBlKQorICAgIDogSW50ZXJuYWxGdW5jdGlvbigmZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgSWRlbnRpZmllcihleGVj
LCBzdHJpbmdQcm90b3R5cGUtPmNsYXNzSW5mbygpLT5jbGFzc05hbWUpKQoreworICAgIC8vIEVD
TUEgMTUuNS4zLjEgU3RyaW5nLnByb3RvdHlwZQorICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwg
c3RyaW5nUHJvdG90eXBlLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CisKKyAg
ICAvLyBFQ01BIDE1LjUuMy4yIGZyb21DaGFyQ29kZSgpCisjaWYgRU5BQkxFKEpJVCkgJiYgRU5B
QkxFKEpJVF9PUFRJTUlaRV9OQVRJVkVfQ0FMTCkKKyAgICBwdXREaXJlY3RGdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmpl
Y3QsIGZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZnJvbUNoYXJD
b2RlLCBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKHN0cmluZ0Zyb21DaGFyQ29k
ZSwgZnJvbUNoYXJDb2RlVGh1bmtHZW5lcmF0b3IpKSwgRG9udEVudW0pOworI2Vsc2UKKyAgICBw
dXREaXJlY3RGdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKGV4ZWMsIG5ldyAoZXhlYykgSlNGdW5j
dGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGZ1bmN0aW9uU3RydWN0dXJlLCAxLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkuZnJvbUNoYXJDb2RlLCBzdHJpbmdGcm9tQ2hhckNvZGUpLCBEb250RW51bSk7
CisjZW5kaWYKKyAgICAvLyBuby4gb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1Y3RvcgorICAgIHB1
dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250
RGVsZXRlKTsKK30KKworLy8gRUNNQSAxNS41LjIKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMp
CiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGFzSW50ZXJuYWxGdW5jdGlv
bihleGVjLT5jYWxsZWUoKSktPmdsb2JhbE9iamVjdCgpOwpAQCAtOTcsNiArNzksNyBAQCBDb25z
dHJ1Y3RUeXBlIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERh
dGEmIGNvbnN0cnVjdERhdGEpCiAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCisv
LyBFQ01BIDE1LjUuMQogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0
cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoIWV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5oCmluZGV4IGIyZTNiZTYwOTQ5ZDdjM2Q5YWQyYTY2MmFjNTM1MzA5ODhmMmFm
MmYuLjExN2NjZThjYTk4MGMzZTczNzM4ZTY1ZDk3YWM4ZTg1MGFiMTFkYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaApAQCAtMjks
MjQgKzI5LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5nQ29uc3RydWN0
b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgcHVibGljOgotICAgICAgICBTdHJp
bmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0
cmluZ1Byb3RvdHlwZSopOworICAgICAgICBTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0cnVjdHVyZSogZnVuY3Rpb25TdHJ1Y3R1cmUs
IFN0cmluZ1Byb3RvdHlwZSopOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwotCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7Ci0gICAgICAgIH0KLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7Ci0KLSAgICBwcml2YXRlOgogICAgICAg
ICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7
CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKLQotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>