<?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>153723</bug_id>
          
          <creation_ts>2016-01-30 16:40:32 -0800</creation_ts>
          <short_desc>REGRESSION(r195911): Caused frequent assertion failures on bots (Requested by ap on #webkit).</short_desc>
          <delta_ts>2016-01-30 16:53:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>153639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1160576</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-30 16:40:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/195911 broke the build:
Caused frequent assertion failures on bots (Requested by ap on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160578</commentid>
    <comment_count>1</comment_count>
      <attachid>270329</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-30 16:41:02 -0800</bug_when>
    <thetext>Created attachment 270329
ROLLOUT of r195911

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160585</commentid>
    <comment_count>2</comment_count>
      <attachid>270329</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-30 16:53:27 -0800</bug_when>
    <thetext>Comment on attachment 270329
ROLLOUT of r195911

Clearing flags on attachment: 270329

Committed r195917: &lt;http://trac.webkit.org/changeset/195917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160586</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-30 16:53:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270329</attachid>
            <date>2016-01-30 16:41:02 -0800</date>
            <delta_ts>2016-01-30 16:53:27 -0800</delta_ts>
            <desc>ROLLOUT of r195911</desc>
            <filename>bug-153723-20160130164037.patch</filename>
            <type>text/plain</type>
            <size>50886</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1OTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVjMWJiNDk1OTZlYjU1N2U4OWFiN2Y5
NDg2ZDIxMzgwYjJiZDE3ODkuLmEwMTI2OGQ3NDIxZDdhNGM5MmE0YjVmZTZjNDc0ZmVkMzQ3MjY0
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMDEtMzAgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
OTU5MTEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTM3MjMKKworICAgICAgICBDYXVzZWQgZnJlcXVlbnQgYXNzZXJ0aW9uIGZhaWx1cmVzIG9uIGJv
dHMgKFJlcXVlc3RlZCBieSBhcCBvbgorICAgICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZl
cnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlJlcGxhY2UgQ2FzZUZvbGRpbmdIYXNoIHdpdGgg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjM5CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzE5NTkxMQorCiAyMDE2LTAxLTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXBsYWNlIENhc2VGb2xkaW5nSGFzaCB3aXRoIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUzZjEwZDg2YjM5YTEyMGUxMDJmMzliNzY1MjFi
NWJlYjJjYTA1ODYuLjk4OTMwMDg1NTA4N2IzN2YxMDAzMmQ5Zjk5YTQ0ZDljZjU0NjlhYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wMS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjE5NTkxMS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MzcyMworCisgICAgICAgIENhdXNlZCBmcmVxdWVudCBhc3NlcnRpb24gZmFpbHVyZXMgb24g
Ym90cyAoUmVxdWVzdGVkIGJ5IGFwIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgIFJl
dmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUmVwbGFjZSBDYXNlRm9sZGluZ0hhc2ggd2l0
aCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2giCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2MzkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTk1OTExCisKIDIwMTYtMDEtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybiBJREI6IFNvbWUgdGVzdHMgY3Jhc2ggd2l0aCBz
cGVjaWZpYyBvZGQgZGF0YWJhc2UgbmFtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMzFlZjFkMTlk
Y2E2YWFkY2U5ZGMwZDhiYjIzMTRmODc3ZmMzNmY2MS4uYmVhYmYzOTEwNjBiNGQ0MDI1ODI1OWMw
NmI0MjU3Mzk1NGUyN2NmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2
LTAxLTMwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk1OTExLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNzIzCisKKyAgICAgICAgQ2F1c2VkIGZyZXF1
ZW50IGFzc2VydGlvbiBmYWlsdXJlcyBvbiBib3RzIChSZXF1ZXN0ZWQgYnkgYXAgb24KKyAgICAg
ICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJS
ZXBsYWNlIENhc2VGb2xkaW5nSGFzaCB3aXRoIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaCIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzYzOQorICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTU5MTEKKwogMjAxNi0wMS0z
MCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBDYXNl
Rm9sZGluZ0hhc2ggd2l0aCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBi
ZDY1NzMzZTJiMWUwNDgzN2YxZDhhNGIzOWQ0ZTExNGE1M2NmMjM4Li40MmQyYTQ5MGE3YzdiOGJl
ZDcxODNmYTI2MDM2YzRjODkzNDZmMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTYtMDEtMzAgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxOTU5MTEuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM3MjMKKworICAgICAgICBDYXVzZWQgZnJl
cXVlbnQgYXNzZXJ0aW9uIGZhaWx1cmVzIG9uIGJvdHMgKFJlcXVlc3RlZCBieSBhcCBvbgorICAg
ICAgICAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAg
IlJlcGxhY2UgQ2FzZUZvbGRpbmdIYXNoIHdpdGggQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjM5Cisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE5NTkxMQorCiAyMDE2LTAx
LTMwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBH
ZXQgcmlkIG9mIFdLXyBtYWNyb3MgZm9yIG51bGxhYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSGFz
aC5oCmluZGV4IDI2YWQyOTE3Y2VkOWJmMzliYWQ3MjQ2Y2E0YmMwMjViMTI3MGRlYjUuLjM0NmMx
MDRkNDMxYjc3ZWFhMjY0NDdlZTBlMmNlOWM5N2RkZTI2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvU3RyaW5nSGFzaC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
SGFzaC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA4LCAy
MDEyLTIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIw
MDkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLmlzTnVsbCgpOwogICAgIH0KIAot
ICAgIC8vIFRoZSBoYXNoKCkgZnVuY3Rpb25zIG9uIFN0cmluZ0hhc2ggYW5kIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaCBkbyBub3Qgc3VwcG9ydAorICAgIC8vIFRoZSBoYXNoKCkgZnVuY3Rpb25z
IG9uIFN0cmluZ0hhc2ggYW5kIENhc2VGb2xkaW5nSGFzaCBkbyBub3Qgc3VwcG9ydAogICAgIC8v
IG51bGwgc3RyaW5ncy4gZ2V0KCksIGNvbnRhaW5zKCksIGFuZCBhZGQoKSBvbiBIYXNoTWFwPFN0
cmluZywuLi4sIFN0cmluZ0hhc2g+CiAgICAgLy8gY2F1c2UgYSBudWxsLXBvaW50ZXIgZGVyZWZl
cmVuY2Ugd2hlbiBwYXNzZWQgbnVsbCBzdHJpbmdzLgogCkBAIC03MSwxMSArNzEsMTQgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gZmFsc2U7CiAgICAgfTsKIAotICAgIGNsYXNzIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaCB7CisgICAgY2xhc3MgQ2FzZUZvbGRpbmdIYXNoIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgVUNoYXIgZm9sZENhc2Uo
VCBjaGFyYWN0ZXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB0b0FTQ0lJTG93ZXIo
Y2hhcmFjdGVyKTsKKyAgICAgICAgICAgIGlmIChzdGQ6OmlzX3NhbWU8VCwgTENoYXI+Ojp2YWx1
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nSW1wbDo6bGF0aW4xQ2FzZUZvbGRUYWJs
ZVtjaGFyYWN0ZXJdOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gdV9mb2xkQ2Fz
ZShjaGFyYWN0ZXIsIFVfRk9MRF9DQVNFX0RFRkFVTFQpOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgVUNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkK
QEAgLTEwMiwyMyArMTA1LDE3IEBAIG5hbWVzcGFjZSBXVEYgewogCiAgICAgICAgIHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgaGFzaChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBoYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPihkYXRhKSwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJldHVybiBDYXNlRm9sZGluZ0hh
c2g6Omhhc2gocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGRhdGEpLCBsZW5ndGgpOwog
ICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgaW5saW5lIGJvb2wgZXF1YWwoY29u
c3QgU3RyaW5nSW1wbCYgYSwgY29uc3QgU3RyaW5nSW1wbCYgYikKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYSwgYik7Ci0gICAgICAgIH0KICAg
ICAgICAgc3RhdGljIGlubGluZSBib29sIGVxdWFsKGNvbnN0IFN0cmluZ0ltcGwqIGEsIGNvbnN0
IFN0cmluZ0ltcGwqIGIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChhKTsKLSAgICAg
ICAgICAgIEFTU0VSVChiKTsKLSAgICAgICAgICAgIHJldHVybiBlcXVhbCgqYSwgKmIpOworICAg
ICAgICAgICAgcmV0dXJuIGVxdWFsQ29tcGF0aWJpbHR5Q2FzZWxlc3NOb25OdWxsKGEsIGIpOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgUmVmUHRyPFN0
cmluZ0ltcGw+JiBrZXkpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaGFzaChrZXku
Z2V0KCkpOworICAgICAgICAgICAgcmV0dXJuIGhhc2goKmtleSk7CiAgICAgICAgIH0KIAogICAg
ICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWZQdHI8U3RyaW5nSW1wbD4mIGEsIGNvbnN0
IFJlZlB0cjxTdHJpbmdJbXBsPiYgYikKQEAgLTE3MCw4ICsxNjcsOCBAQCBuYW1lc3BhY2UgV1RG
IHsKIAogfQogCi11c2luZyBXVEY6OkFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaDsKIHVzaW5nIFdU
Rjo6QWxyZWFkeUhhc2hlZDsKK3VzaW5nIFdURjo6Q2FzZUZvbGRpbmdIYXNoOwogdXNpbmcgV1RG
OjpTdHJpbmdIYXNoOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCmluZGV4
IGNiM2QwMjRiYmE5MDlmMmFiZTgyNWEzZjlhMDQxMjNkYTUzNTNhMGIuLmE2NzZkMmIzMTY4OTQz
YzA5MDMwMmQ3ODgwNGNkMzkyZmQ4NmFlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNw
cApAQCAtOTUwLDUwICs5NTAsMzAgQEAgZmxvYXQgU3RyaW5nSW1wbDo6dG9GbG9hdChib29sKiBv
aykKICAgICByZXR1cm4gY2hhcmFjdGVyc1RvRmxvYXQoY2hhcmFjdGVyczE2KCksIG1fbGVuZ3Ro
LCBvayk7CiB9CiAKLS8vIFRhYmxlIGlzIGJhc2VkIG9uIGZ0cDovL2Z0cC51bmljb2RlLm9yZy9Q
dWJsaWMvVU5JREFUQS9DYXNlRm9sZGluZy50eHQKLXN0YXRpYyBjb25zdCBVQ2hhciBsYXRpbjFD
YXNlRm9sZFRhYmxlWzI1Nl0gPSB7Ci0gICAgMHgwMDAwLCAweDAwMDEsIDB4MDAwMiwgMHgwMDAz
LCAweDAwMDQsIDB4MDAwNSwgMHgwMDA2LCAweDAwMDcsIDB4MDAwOCwgMHgwMDA5LCAweDAwMGEs
IDB4MDAwYiwgMHgwMDBjLCAweDAwMGQsIDB4MDAwZSwgMHgwMDBmLAotICAgIDB4MDAxMCwgMHgw
MDExLCAweDAwMTIsIDB4MDAxMywgMHgwMDE0LCAweDAwMTUsIDB4MDAxNiwgMHgwMDE3LCAweDAw
MTgsIDB4MDAxOSwgMHgwMDFhLCAweDAwMWIsIDB4MDAxYywgMHgwMDFkLCAweDAwMWUsIDB4MDAx
ZiwKLSAgICAweDAwMjAsIDB4MDAyMSwgMHgwMDIyLCAweDAwMjMsIDB4MDAyNCwgMHgwMDI1LCAw
eDAwMjYsIDB4MDAyNywgMHgwMDI4LCAweDAwMjksIDB4MDAyYSwgMHgwMDJiLCAweDAwMmMsIDB4
MDAyZCwgMHgwMDJlLCAweDAwMmYsCi0gICAgMHgwMDMwLCAweDAwMzEsIDB4MDAzMiwgMHgwMDMz
LCAweDAwMzQsIDB4MDAzNSwgMHgwMDM2LCAweDAwMzcsIDB4MDAzOCwgMHgwMDM5LCAweDAwM2Es
IDB4MDAzYiwgMHgwMDNjLCAweDAwM2QsIDB4MDAzZSwgMHgwMDNmLAotICAgIDB4MDA0MCwgMHgw
MDYxLCAweDAwNjIsIDB4MDA2MywgMHgwMDY0LCAweDAwNjUsIDB4MDA2NiwgMHgwMDY3LCAweDAw
NjgsIDB4MDA2OSwgMHgwMDZhLCAweDAwNmIsIDB4MDA2YywgMHgwMDZkLCAweDAwNmUsIDB4MDA2
ZiwKLSAgICAweDAwNzAsIDB4MDA3MSwgMHgwMDcyLCAweDAwNzMsIDB4MDA3NCwgMHgwMDc1LCAw
eDAwNzYsIDB4MDA3NywgMHgwMDc4LCAweDAwNzksIDB4MDA3YSwgMHgwMDViLCAweDAwNWMsIDB4
MDA1ZCwgMHgwMDVlLCAweDAwNWYsCi0gICAgMHgwMDYwLCAweDAwNjEsIDB4MDA2MiwgMHgwMDYz
LCAweDAwNjQsIDB4MDA2NSwgMHgwMDY2LCAweDAwNjcsIDB4MDA2OCwgMHgwMDY5LCAweDAwNmEs
IDB4MDA2YiwgMHgwMDZjLCAweDAwNmQsIDB4MDA2ZSwgMHgwMDZmLAotICAgIDB4MDA3MCwgMHgw
MDcxLCAweDAwNzIsIDB4MDA3MywgMHgwMDc0LCAweDAwNzUsIDB4MDA3NiwgMHgwMDc3LCAweDAw
NzgsIDB4MDA3OSwgMHgwMDdhLCAweDAwN2IsIDB4MDA3YywgMHgwMDdkLCAweDAwN2UsIDB4MDA3
ZiwKLSAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwgMHgwMDg1LCAw
eDAwODYsIDB4MDA4NywgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAweDAwOGMsIDB4
MDA4ZCwgMHgwMDhlLCAweDAwOGYsCi0gICAgMHgwMDkwLCAweDAwOTEsIDB4MDA5MiwgMHgwMDkz
LCAweDAwOTQsIDB4MDA5NSwgMHgwMDk2LCAweDAwOTcsIDB4MDA5OCwgMHgwMDk5LCAweDAwOWEs
IDB4MDA5YiwgMHgwMDljLCAweDAwOWQsIDB4MDA5ZSwgMHgwMDlmLAotICAgIDB4MDBhMCwgMHgw
MGExLCAweDAwYTIsIDB4MDBhMywgMHgwMGE0LCAweDAwYTUsIDB4MDBhNiwgMHgwMGE3LCAweDAw
YTgsIDB4MDBhOSwgMHgwMGFhLCAweDAwYWIsIDB4MDBhYywgMHgwMGFkLCAweDAwYWUsIDB4MDBh
ZiwKLSAgICAweDAwYjAsIDB4MDBiMSwgMHgwMGIyLCAweDAwYjMsIDB4MDBiNCwgMHgwM2JjLCAw
eDAwYjYsIDB4MDBiNywgMHgwMGI4LCAweDAwYjksIDB4MDBiYSwgMHgwMGJiLCAweDAwYmMsIDB4
MDBiZCwgMHgwMGJlLCAweDAwYmYsCi0gICAgMHgwMGUwLCAweDAwZTEsIDB4MDBlMiwgMHgwMGUz
LCAweDAwZTQsIDB4MDBlNSwgMHgwMGU2LCAweDAwZTcsIDB4MDBlOCwgMHgwMGU5LCAweDAwZWEs
IDB4MDBlYiwgMHgwMGVjLCAweDAwZWQsIDB4MDBlZSwgMHgwMGVmLAotICAgIDB4MDBmMCwgMHgw
MGYxLCAweDAwZjIsIDB4MDBmMywgMHgwMGY0LCAweDAwZjUsIDB4MDBmNiwgMHgwMGQ3LCAweDAw
ZjgsIDB4MDBmOSwgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMGZkLCAweDAwZmUsIDB4MDBk
ZiwKLSAgICAweDAwZTAsIDB4MDBlMSwgMHgwMGUyLCAweDAwZTMsIDB4MDBlNCwgMHgwMGU1LCAw
eDAwZTYsIDB4MDBlNywgMHgwMGU4LCAweDAwZTksIDB4MDBlYSwgMHgwMGViLCAweDAwZWMsIDB4
MDBlZCwgMHgwMGVlLCAweDAwZWYsCi0gICAgMHgwMGYwLCAweDAwZjEsIDB4MDBmMiwgMHgwMGYz
LCAweDAwZjQsIDB4MDBmNSwgMHgwMGY2LCAweDAwZjcsIDB4MDBmOCwgMHgwMGY5LCAweDAwZmEs
IDB4MDBmYiwgMHgwMGZjLCAweDAwZmQsIDB4MDBmZSwgMHgwMGZmLAotfTsKLQotc3RhdGljIGlu
bGluZSBib29sIGVxdWFsQ29tcGF0aWJpbGl0eUNhc2VsZXNzKGNvbnN0IExDaGFyKiBhLCBjb25z
dCBMQ2hhciogYiwgdW5zaWduZWQgbGVuZ3RoKQorc3RhdGljIGlubGluZSBib29sIGVxdWFsQ29t
cGF0aWJpbHR5Q2FzZWxlc3MoY29uc3QgTENoYXIqIGEsIGNvbnN0IExDaGFyKiBiLCB1bnNpZ25l
ZCBsZW5ndGgpCiB7CiAgICAgd2hpbGUgKGxlbmd0aC0tKSB7Ci0gICAgICAgIGlmIChsYXRpbjFD
YXNlRm9sZFRhYmxlWyphKytdICE9IGxhdGluMUNhc2VGb2xkVGFibGVbKmIrK10pCisgICAgICAg
IGlmIChTdHJpbmdJbXBsOjpsYXRpbjFDYXNlRm9sZFRhYmxlWyphKytdICE9IFN0cmluZ0ltcGw6
OmxhdGluMUNhc2VGb2xkVGFibGVbKmIrK10pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgZXF1YWxDb21w
YXRpYmlsaXR5Q2FzZWxlc3MoY29uc3QgVUNoYXIqIGEsIGNvbnN0IExDaGFyKiBiLCB1bnNpZ25l
ZCBsZW5ndGgpCitzdGF0aWMgaW5saW5lIGJvb2wgZXF1YWxDb21wYXRpYmlsdHlDYXNlbGVzcyhj
b25zdCBVQ2hhciogYSwgY29uc3QgTENoYXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICB3
aGlsZSAobGVuZ3RoLS0pIHsKLSAgICAgICAgaWYgKHVfZm9sZENhc2UoKmErKywgVV9GT0xEX0NB
U0VfREVGQVVMVCkgIT0gbGF0aW4xQ2FzZUZvbGRUYWJsZVsqYisrXSkKKyAgICAgICAgaWYgKHVf
Zm9sZENhc2UoKmErKywgVV9GT0xEX0NBU0VfREVGQVVMVCkgIT0gU3RyaW5nSW1wbDo6bGF0aW4x
Q2FzZUZvbGRUYWJsZVsqYisrXSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBlcXVhbENvbXBhdGliaWxp
dHlDYXNlbGVzcyhjb25zdCBMQ2hhciogYSwgY29uc3QgVUNoYXIqIGIsIHVuc2lnbmVkIGxlbmd0
aCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBlcXVhbENvbXBhdGliaWx0eUNhc2VsZXNzKGNvbnN0IExD
aGFyKiBhLCBjb25zdCBVQ2hhciogYiwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIHJldHVybiBl
cXVhbENvbXBhdGliaWxpdHlDYXNlbGVzcyhiLCBhLCBsZW5ndGgpOworICAgIHJldHVybiBlcXVh
bENvbXBhdGliaWx0eUNhc2VsZXNzKGIsIGEsIGxlbmd0aCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBlcXVhbENvbXBhdGliaWxpdHlDYXNlbGVzcyhjb25zdCBVQ2hhciogYSwgY29uc3QgVUNo
YXIqIGIsIHVuc2lnbmVkIGxlbmd0aCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBlcXVhbENvbXBhdGli
aWx0eUNhc2VsZXNzKGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYiwgdW5zaWduZWQgbGVu
Z3RoKQogewogICAgIHJldHVybiAhdV9tZW1jYXNlY21wKGEsIGIsIGxlbmd0aCwgVV9GT0xEX0NB
U0VfREVGQVVMVCk7CiB9CkBAIC0xMTAyLDcgKzEwODIsNyBAQCBzaXplX3QgU3RyaW5nSW1wbDo6
ZmluZElnbm9yaW5nQ2FzZShjb25zdCBMQ2hhciogbWF0Y2hTdHJpbmcsIHVuc2lnbmVkIGluZGV4
KQogICAgICAgICBjb25zdCBMQ2hhciogc2VhcmNoQ2hhcmFjdGVycyA9IGNoYXJhY3RlcnM4KCkg
KyBpbmRleDsKIAogICAgICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICAgICAgd2hpbGUgKCFlcXVh
bENvbXBhdGliaWxpdHlDYXNlbGVzcyhzZWFyY2hDaGFyYWN0ZXJzICsgaSwgbWF0Y2hTdHJpbmcs
IG1hdGNoTGVuZ3RoKSkgeworICAgICAgICB3aGlsZSAoIWVxdWFsQ29tcGF0aWJpbHR5Q2FzZWxl
c3Moc2VhcmNoQ2hhcmFjdGVycyArIGksIG1hdGNoU3RyaW5nLCBtYXRjaExlbmd0aCkpIHsKICAg
ICAgICAgICAgIGlmIChpID09IGRlbHRhKQogICAgICAgICAgICAgICAgIHJldHVybiBub3RGb3Vu
ZDsKICAgICAgICAgICAgICsraTsKQEAgLTExMTMsNyArMTA5Myw3IEBAIHNpemVfdCBTdHJpbmdJ
bXBsOjpmaW5kSWdub3JpbmdDYXNlKGNvbnN0IExDaGFyKiBtYXRjaFN0cmluZywgdW5zaWduZWQg
aW5kZXgpCiAgICAgY29uc3QgVUNoYXIqIHNlYXJjaENoYXJhY3RlcnMgPSBjaGFyYWN0ZXJzMTYo
KSArIGluZGV4OwogCiAgICAgdW5zaWduZWQgaSA9IDA7Ci0gICAgd2hpbGUgKCFlcXVhbENvbXBh
dGliaWxpdHlDYXNlbGVzcyhzZWFyY2hDaGFyYWN0ZXJzICsgaSwgbWF0Y2hTdHJpbmcsIG1hdGNo
TGVuZ3RoKSkgeworICAgIHdoaWxlICghZXF1YWxDb21wYXRpYmlsdHlDYXNlbGVzcyhzZWFyY2hD
aGFyYWN0ZXJzICsgaSwgbWF0Y2hTdHJpbmcsIG1hdGNoTGVuZ3RoKSkgewogICAgICAgICBpZiAo
aSA9PSBkZWx0YSkKICAgICAgICAgICAgIHJldHVybiBub3RGb3VuZDsKICAgICAgICAgKytpOwpA
QCAtMTE3Nyw3ICsxMTU3LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgc2l6ZV90IGZpbmRJZ25v
cmluZ0Nhc2VJbm5lcihjb25zdCBTZWFyY2hDaGFyYWN0ZXJUeXBlKiBzZWEKIAogICAgIHVuc2ln
bmVkIGkgPSAwOwogICAgIC8vIGtlZXAgbG9vcGluZyB1bnRpbCB3ZSBtYXRjaAotICAgIHdoaWxl
ICghZXF1YWxDb21wYXRpYmlsaXR5Q2FzZWxlc3Moc2VhcmNoQ2hhcmFjdGVycyArIGksIG1hdGNo
Q2hhcmFjdGVycywgbWF0Y2hMZW5ndGgpKSB7CisgICAgd2hpbGUgKCFlcXVhbENvbXBhdGliaWx0
eUNhc2VsZXNzKHNlYXJjaENoYXJhY3RlcnMgKyBpLCBtYXRjaENoYXJhY3RlcnMsIG1hdGNoTGVu
Z3RoKSkgewogICAgICAgICBpZiAoaSA9PSBkZWx0YSkKICAgICAgICAgICAgIHJldHVybiBub3RG
b3VuZDsKICAgICAgICAgKytpOwpAQCAtMTMxOCw3ICsxMjk4LDcgQEAgQUxXQVlTX0lOTElORSBz
dGF0aWMgc2l6ZV90IHJldmVyc2VGaW5kSWdub3JpbmdDYXNlSW5uZXIoY29uc3QgU2VhcmNoQ2hh
cmFjdGVyVHkKICAgICB1bnNpZ25lZCBkZWx0YSA9IHN0ZDo6bWluKGluZGV4LCBsZW5ndGggLSBt
YXRjaExlbmd0aCk7CiAKICAgICAvLyBrZWVwIGxvb3BpbmcgdW50aWwgd2UgbWF0Y2gKLSAgICB3
aGlsZSAoIWVxdWFsQ29tcGF0aWJpbGl0eUNhc2VsZXNzKHNlYXJjaENoYXJhY3RlcnMgKyBkZWx0
YSwgbWF0Y2hDaGFyYWN0ZXJzLCBtYXRjaExlbmd0aCkpIHsKKyAgICB3aGlsZSAoIWVxdWFsQ29t
cGF0aWJpbHR5Q2FzZWxlc3Moc2VhcmNoQ2hhcmFjdGVycyArIGRlbHRhLCBtYXRjaENoYXJhY3Rl
cnMsIG1hdGNoTGVuZ3RoKSkgewogICAgICAgICBpZiAoIWRlbHRhKQogICAgICAgICAgICAgcmV0
dXJuIG5vdEZvdW5kOwogICAgICAgICAtLWRlbHRhOwpAQCAtMTM2NCw4ICsxMzQ0LDggQEAgQUxX
QVlTX0lOTElORSBzdGF0aWMgYm9vbCBlcXVhbElubmVyKGNvbnN0IFN0cmluZ0ltcGwqIHN0cmlu
Z0ltcGwsIHVuc2lnbmVkIHN0YXIKICAgICAgICAgcmV0dXJuIGVxdWFsKHN0cmluZ0ltcGwtPmNo
YXJhY3RlcnMxNigpICsgc3RhcnRPZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PihtYXRjaFN0cmluZyksIG1hdGNoTGVuZ3RoKTsKICAgICB9CiAgICAgaWYgKHN0cmluZ0ltcGwt
PmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gZXF1YWxDb21wYXRpYmlsaXR5Q2FzZWxlc3Moc3Ry
aW5nSW1wbC0+Y2hhcmFjdGVyczgoKSArIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4obWF0Y2hTdHJpbmcpLCBtYXRjaExlbmd0aCk7Ci0gICAgcmV0dXJuIGVxdWFs
Q29tcGF0aWJpbGl0eUNhc2VsZXNzKHN0cmluZ0ltcGwtPmNoYXJhY3RlcnMxNigpICsgc3RhcnRP
ZmZzZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihtYXRjaFN0cmluZyksIG1hdGNo
TGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIGVxdWFsQ29tcGF0aWJpbHR5Q2FzZWxlc3Moc3RyaW5n
SW1wbC0+Y2hhcmFjdGVyczgoKSArIHN0YXJ0T2Zmc2V0LCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4obWF0Y2hTdHJpbmcpLCBtYXRjaExlbmd0aCk7CisgICAgcmV0dXJuIGVxdWFsQ29t
cGF0aWJpbHR5Q2FzZWxlc3Moc3RyaW5nSW1wbC0+Y2hhcmFjdGVyczE2KCkgKyBzdGFydE9mZnNl
dCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KG1hdGNoU3RyaW5nKSwgbWF0Y2hMZW5n
dGgpOwogfQogCiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGVxdWFsSW5uZXIoY29uc3QgU3Ry
aW5nSW1wbCYgc3RyaW5nSW1wbCwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIGNvbnN0IFN0cmluZ0lt
cGwmIG1hdGNoU3RyaW5nKQpAQCAtMTkzOCw2ICsxOTE4LDMwIEBAIGJvb2wgZXF1YWwoY29uc3Qg
U3RyaW5nSW1wbCYgYSwgY29uc3QgU3RyaW5nSW1wbCYgYikKICAgICByZXR1cm4gZXF1YWxDb21t
b24oYSwgYik7CiB9CiAKK2Jvb2wgZXF1YWxDb21wYXRpYmlsdHlDYXNlbGVzc05vbk51bGwoY29u
c3QgU3RyaW5nSW1wbCogYSwgY29uc3QgU3RyaW5nSW1wbCogYikKK3sKKyAgICBBU1NFUlQoYSk7
CisgICAgQVNTRVJUKGIpOworICAgIGlmIChhID09IGIpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgdW5zaWduZWQgbGVuZ3RoID0gYS0+bGVuZ3RoKCk7CisgICAgaWYgKGxlbmd0aCAhPSBi
LT5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGEtPmlzOEJpdCgp
KSB7CisgICAgICAgIGlmIChiLT5pczhCaXQoKSkKKyAgICAgICAgICAgIHJldHVybiBlcXVhbENv
bXBhdGliaWx0eUNhc2VsZXNzKGEtPmNoYXJhY3RlcnM4KCksIGItPmNoYXJhY3RlcnM4KCksIGxl
bmd0aCk7CisKKyAgICAgICAgcmV0dXJuIGVxdWFsQ29tcGF0aWJpbHR5Q2FzZWxlc3MoYi0+Y2hh
cmFjdGVyczE2KCksIGEtPmNoYXJhY3RlcnM4KCksIGxlbmd0aCk7CisgICAgfQorCisgICAgaWYg
KGItPmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gZXF1YWxDb21wYXRpYmlsdHlDYXNlbGVzcyhh
LT5jaGFyYWN0ZXJzMTYoKSwgYi0+Y2hhcmFjdGVyczgoKSwgbGVuZ3RoKTsKKworICAgIHJldHVy
biBlcXVhbENvbXBhdGliaWx0eUNhc2VsZXNzKGEtPmNoYXJhY3RlcnMxNigpLCBiLT5jaGFyYWN0
ZXJzMTYoKSwgbGVuZ3RoKTsKK30KKwogYm9vbCBlcXVhbElnbm9yaW5nTnVsbGl0eShTdHJpbmdJ
bXBsKiBhLCBTdHJpbmdJbXBsKiBiKQogewogICAgIGlmICghYSAmJiBiICYmICFiLT5sZW5ndGgo
KSkKQEAgLTIxMzcsNiArMjE0MSwyNiBAQCBDU3RyaW5nIFN0cmluZ0ltcGw6OnV0ZjgoQ29udmVy
c2lvbk1vZGUgbW9kZSkgY29uc3QKICAgICByZXR1cm4gdXRmOEZvclJhbmdlKDAsIGxlbmd0aCgp
LCBtb2RlKTsKIH0KIAorLy8gVGFibGUgaXMgYmFzZWQgb24gZnRwOi8vZnRwLnVuaWNvZGUub3Jn
L1B1YmxpYy9VTklEQVRBL0Nhc2VGb2xkaW5nLnR4dAorY29uc3QgVUNoYXIgU3RyaW5nSW1wbDo6
bGF0aW4xQ2FzZUZvbGRUYWJsZVsyNTZdID0geworICAgIDB4MDAwMCwgMHgwMDAxLCAweDAwMDIs
IDB4MDAwMywgMHgwMDA0LCAweDAwMDUsIDB4MDAwNiwgMHgwMDA3LCAweDAwMDgsIDB4MDAwOSwg
MHgwMDBhLCAweDAwMGIsIDB4MDAwYywgMHgwMDBkLCAweDAwMGUsIDB4MDAwZiwKKyAgICAweDAw
MTAsIDB4MDAxMSwgMHgwMDEyLCAweDAwMTMsIDB4MDAxNCwgMHgwMDE1LCAweDAwMTYsIDB4MDAx
NywgMHgwMDE4LCAweDAwMTksIDB4MDAxYSwgMHgwMDFiLCAweDAwMWMsIDB4MDAxZCwgMHgwMDFl
LCAweDAwMWYsIAorICAgIDB4MDAyMCwgMHgwMDIxLCAweDAwMjIsIDB4MDAyMywgMHgwMDI0LCAw
eDAwMjUsIDB4MDAyNiwgMHgwMDI3LCAweDAwMjgsIDB4MDAyOSwgMHgwMDJhLCAweDAwMmIsIDB4
MDAyYywgMHgwMDJkLCAweDAwMmUsIDB4MDAyZiwgCisgICAgMHgwMDMwLCAweDAwMzEsIDB4MDAz
MiwgMHgwMDMzLCAweDAwMzQsIDB4MDAzNSwgMHgwMDM2LCAweDAwMzcsIDB4MDAzOCwgMHgwMDM5
LCAweDAwM2EsIDB4MDAzYiwgMHgwMDNjLCAweDAwM2QsIDB4MDAzZSwgMHgwMDNmLAorICAgIDB4
MDA0MCwgMHgwMDYxLCAweDAwNjIsIDB4MDA2MywgMHgwMDY0LCAweDAwNjUsIDB4MDA2NiwgMHgw
MDY3LCAweDAwNjgsIDB4MDA2OSwgMHgwMDZhLCAweDAwNmIsIDB4MDA2YywgMHgwMDZkLCAweDAw
NmUsIDB4MDA2ZiwKKyAgICAweDAwNzAsIDB4MDA3MSwgMHgwMDcyLCAweDAwNzMsIDB4MDA3NCwg
MHgwMDc1LCAweDAwNzYsIDB4MDA3NywgMHgwMDc4LCAweDAwNzksIDB4MDA3YSwgMHgwMDViLCAw
eDAwNWMsIDB4MDA1ZCwgMHgwMDVlLCAweDAwNWYsCisgICAgMHgwMDYwLCAweDAwNjEsIDB4MDA2
MiwgMHgwMDYzLCAweDAwNjQsIDB4MDA2NSwgMHgwMDY2LCAweDAwNjcsIDB4MDA2OCwgMHgwMDY5
LCAweDAwNmEsIDB4MDA2YiwgMHgwMDZjLCAweDAwNmQsIDB4MDA2ZSwgMHgwMDZmLAorICAgIDB4
MDA3MCwgMHgwMDcxLCAweDAwNzIsIDB4MDA3MywgMHgwMDc0LCAweDAwNzUsIDB4MDA3NiwgMHgw
MDc3LCAweDAwNzgsIDB4MDA3OSwgMHgwMDdhLCAweDAwN2IsIDB4MDA3YywgMHgwMDdkLCAweDAw
N2UsIDB4MDA3ZiwKKyAgICAweDAwODAsIDB4MDA4MSwgMHgwMDgyLCAweDAwODMsIDB4MDA4NCwg
MHgwMDg1LCAweDAwODYsIDB4MDA4NywgMHgwMDg4LCAweDAwODksIDB4MDA4YSwgMHgwMDhiLCAw
eDAwOGMsIDB4MDA4ZCwgMHgwMDhlLCAweDAwOGYsCisgICAgMHgwMDkwLCAweDAwOTEsIDB4MDA5
MiwgMHgwMDkzLCAweDAwOTQsIDB4MDA5NSwgMHgwMDk2LCAweDAwOTcsIDB4MDA5OCwgMHgwMDk5
LCAweDAwOWEsIDB4MDA5YiwgMHgwMDljLCAweDAwOWQsIDB4MDA5ZSwgMHgwMDlmLAorICAgIDB4
MDBhMCwgMHgwMGExLCAweDAwYTIsIDB4MDBhMywgMHgwMGE0LCAweDAwYTUsIDB4MDBhNiwgMHgw
MGE3LCAweDAwYTgsIDB4MDBhOSwgMHgwMGFhLCAweDAwYWIsIDB4MDBhYywgMHgwMGFkLCAweDAw
YWUsIDB4MDBhZiwKKyAgICAweDAwYjAsIDB4MDBiMSwgMHgwMGIyLCAweDAwYjMsIDB4MDBiNCwg
MHgwM2JjLCAweDAwYjYsIDB4MDBiNywgMHgwMGI4LCAweDAwYjksIDB4MDBiYSwgMHgwMGJiLCAw
eDAwYmMsIDB4MDBiZCwgMHgwMGJlLCAweDAwYmYsCisgICAgMHgwMGUwLCAweDAwZTEsIDB4MDBl
MiwgMHgwMGUzLCAweDAwZTQsIDB4MDBlNSwgMHgwMGU2LCAweDAwZTcsIDB4MDBlOCwgMHgwMGU5
LCAweDAwZWEsIDB4MDBlYiwgMHgwMGVjLCAweDAwZWQsIDB4MDBlZSwgMHgwMGVmLAorICAgIDB4
MDBmMCwgMHgwMGYxLCAweDAwZjIsIDB4MDBmMywgMHgwMGY0LCAweDAwZjUsIDB4MDBmNiwgMHgw
MGQ3LCAweDAwZjgsIDB4MDBmOSwgMHgwMGZhLCAweDAwZmIsIDB4MDBmYywgMHgwMGZkLCAweDAw
ZmUsIDB4MDBkZiwKKyAgICAweDAwZTAsIDB4MDBlMSwgMHgwMGUyLCAweDAwZTMsIDB4MDBlNCwg
MHgwMGU1LCAweDAwZTYsIDB4MDBlNywgMHgwMGU4LCAweDAwZTksIDB4MDBlYSwgMHgwMGViLCAw
eDAwZWMsIDB4MDBlZCwgMHgwMGVlLCAweDAwZWYsCisgICAgMHgwMGYwLCAweDAwZjEsIDB4MDBm
MiwgMHgwMGYzLCAweDAwZjQsIDB4MDBmNSwgMHgwMGY2LCAweDAwZjcsIDB4MDBmOCwgMHgwMGY5
LCAweDAwZmEsIDB4MDBmYiwgMHgwMGZjLCAweDAwZmQsIDB4MDBmZSwgMHgwMGZmLCAKK307CisK
IGJvb2wgZXF1YWxJZ25vcmluZ051bGxpdHkoY29uc3QgVUNoYXIqIGEsIHNpemVfdCBhTGVuZ3Ro
LCBTdHJpbmdJbXBsKiBiKQogewogICAgIGlmICghYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgK
aW5kZXggZTY4NzBiYWY5NWUyNjk0MGY5M2NlNWNkMWFlNzdmZTdhNjkzODQ0Yi4uZDQ0ZTVjZmE1
NzA5YWRkNmRjMWVmY2Q5ZTdkZDVkYWZjOWQyNWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9TdHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKQEAgLTc2Miw2ICs3NjIsOCBAQCBwdWJsaWM6CiAgICAgQUxXQVlTX0lOTElORSBzdGF0aWMg
U3RyaW5nU3RhdHMmIHN0cmluZ1N0YXRzKCkgeyByZXR1cm4gbV9zdHJpbmdTdGF0czsgfQogI2Vu
ZGlmCiAKKyAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc3RhdGljIGNvbnN0IFVDaGFyIGxhdGlu
MUNhc2VGb2xkVGFibGVbMjU2XTsKKwogICAgIFJlZjxTdHJpbmdJbXBsPiBleHRyYWN0Rm9sZGVk
U3RyaW5nSW5TeW1ib2woKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlzU3ltYm9sKCkpOwpAQCAt
OTQ0LDYgKzk0Niw5IEBAIGlubGluZSBib29sIGVxdWFsKGNvbnN0IExDaGFyKiBhLCBTdHJpbmdJ
bXBsKiBiKSB7IHJldHVybiBlcXVhbChiLCBhKTsgfQogaW5saW5lIGJvb2wgZXF1YWwoY29uc3Qg
Y2hhciogYSwgU3RyaW5nSW1wbCogYikgeyByZXR1cm4gZXF1YWwoYiwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KGEpKTsgfQogV1RGX0VYUE9SVF9TVFJJTkdfQVBJIGJvb2wgZXF1YWwo
Y29uc3QgU3RyaW5nSW1wbCYgYSwgY29uc3QgU3RyaW5nSW1wbCYgYik7CiAKKy8vIEZJWE1FOiBE
ZXByZWNhdGVkLiBVc2VkIG9ubHkgYnkgQ2FzZUZvbGRpbmdIYXNoLCB3aGljaCBpdHNlbGYgaXMg
c29vbiB0byBiZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkLCByZXBsYWNlZCBieSBBU0NJSUNhc2VG
b2xkaW5nSGFzaC4KK1dURl9FWFBPUlRfU1RSSU5HX0FQSSBib29sIGVxdWFsQ29tcGF0aWJpbHR5
Q2FzZWxlc3NOb25OdWxsKGNvbnN0IFN0cmluZ0ltcGwqLCBjb25zdCBTdHJpbmdJbXBsKik7CisK
IFdURl9FWFBPUlRfU1RSSU5HX0FQSSBib29sIGVxdWFsSWdub3JpbmdOdWxsaXR5KFN0cmluZ0lt
cGwqLCBTdHJpbmdJbXBsKik7CiBXVEZfRVhQT1JUX1NUUklOR19BUEkgYm9vbCBlcXVhbElnbm9y
aW5nTnVsbGl0eShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgsIFN0cmluZ0ltcGwqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1
dGhvcml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmgKaW5kZXggNTUyNzhhNzg4MjViMDAzZDMzZjBhYzlmOTRmMmFiZTJiZDliMTUw
Yi4uNWE3NzQ2MTA3YzQ2ZDQ4ZmYxMmU1Y2ViYzQ1MTYzNTg3ODVhMDA4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXpl
ci5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IFN0cmluZyBtX2Rh
dGFiYXNlSW5mb1RhYmxlTmFtZTsKIAotICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+IG1fd2hpdGVsaXN0ZWRGdW5jdGlvbnM7CisgICAgSGFzaFNldDxTdHJpbmcs
IENhc2VGb2xkaW5nSGFzaD4gbV93aGl0ZWxpc3RlZEZ1bmN0aW9uczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGIwNzk4OGVlZTMwYTRmMjgyMGZkMjFhNDAxNTIz
NDJiZTQyYTMwMDcuLjc2OGQwZDI3MWQwNDBjOGRmMjJmMjYxMGIzNDE0ZGQ3ODdjYWU1ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcApAQCAtMTk4OCw3ICsxOTg4LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNz
aWJpbGl0eU9iamVjdDo6Zmlyc3RBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3QKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgQWNjZXNzaWJpbGl0eVJv
bGUsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gQVJJQVJvbGVNYXA7Cit0eXBlZGVmIEhhc2hN
YXA8U3RyaW5nLCBBY2Nlc3NpYmlsaXR5Um9sZSwgQ2FzZUZvbGRpbmdIYXNoPiBBUklBUm9sZU1h
cDsKIHR5cGVkZWYgSGFzaE1hcDxBY2Nlc3NpYmlsaXR5Um9sZSwgU3RyaW5nLCBEZWZhdWx0SGFz
aDxpbnQ+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPGludD4+IEFS
SUFSZXZlcnNlUm9sZU1hcDsKIAogc3RhdGljIEFSSUFSb2xlTWFwKiBnQXJpYVJvbGVNYXAgPSBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaAppbmRleCBlZDk3MmM2Zjc3ZWZiMTlhYWUzYzgwOGYyZmRjZTNhNmYyNjJlOGJlLi5iZDY0
YjE0MTc5OGYxOWQzYWY5N2ExN2FiYTc0Njk1ZDk5MDY4ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaApAQCAtNjUsNyArNjUsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCByZWdpc3RlckFsZ29yaXRobShjb25zdCBTdHJpbmcmIG5hbWUs
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIENyeXB0b0FsZ29yaXRobUNvbnN0cnVjdG9yKTsK
IAotICAgIEhhc2hNYXA8U3RyaW5nLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+IG1fbmFtZVRvSWRlbnRpZmllck1hcDsKKyAgICBIYXNoTWFwPFN0
cmluZywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgQ2FzZUZvbGRpbmdIYXNoPiBtX25hbWVU
b0lkZW50aWZpZXJNYXA7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPiBtX2lkZW50aWZp
ZXJUb05hbWVNYXA7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCwgQ3J5cHRvQWxnb3JpdGhtQ29uc3Ry
dWN0b3I+IG1faWRlbnRpZmllclRvQ29uc3RydWN0b3JNYXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCA5M2IwNGQxZmJjYWYxN2NmNzA2YjUzYTZhNDk5Y2Q5
N2ZhNmQyYWYyLi4yNGI1ZWIyMjc5YmFlZTYzYTYyNDIzMGQ5NDZiOGU3MzI1NjI4ODdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIHN0
YXRpYyBTdHJpbmcgZmFtaWx5TmFtZUZyb21QcmltaXRpdmUoY29uc3QgQ1NTUHJpbWl0aXZlVmFs
dWUmIHZhbHVlKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgcmVnaXN0ZXJMb2NhbEZvbnRGYWNl
c0ZvckZhbWlseShjb25zdCBTdHJpbmcmIGZhbWlseU5hbWUsIEhhc2hNYXA8U3RyaW5nLCBWZWN0
b3I8UmVmPENTU0ZvbnRGYWNlPj4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGxvY2FsbHlJ
bnN0YWxsZWRGb250RmFjZXMpCitzdGF0aWMgdm9pZCByZWdpc3RlckxvY2FsRm9udEZhY2VzRm9y
RmFtaWx5KGNvbnN0IFN0cmluZyYgZmFtaWx5TmFtZSwgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxS
ZWY8Q1NTRm9udEZhY2U+PiwgQ2FzZUZvbGRpbmdIYXNoPiYgbG9jYWxseUluc3RhbGxlZEZvbnRG
YWNlcykKIHsKICAgICBBU1NFUlQoIWxvY2FsbHlJbnN0YWxsZWRGb250RmFjZXMuY29udGFpbnMo
ZmFtaWx5TmFtZSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmgKaW5kZXggZWY4
OWFjZDYwOGIxNDJiNzllYzQwZGU5ZTc2ODllYTdkYWFhMjE1Mi4uMjZkZWFkMTVhODVhZmI0MDQx
NGJhMzEzN2MwMzM4NDhlYjJiZmM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3Iu
aApAQCAtODYsOSArODYsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgYmVnaW5Mb2FkVGltZXJGaXJl
ZCgpOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZl
Y3RvcjxSZWY8Q1NTRm9udEZhY2U+PiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtX2ZvbnRG
YWNlczsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFJlZjxDU1NGb250RmFjZT4+LCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1fbG9jYWxseUluc3RhbGxlZEZvbnRGYWNlczsKLSAgICBI
YXNoTWFwPFN0cmluZywgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPENTU1NlZ21lbnRlZEZvbnRG
YWNlPj4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gbV9mb250czsKKyAgICBIYXNoTWFwPFN0
cmluZywgVmVjdG9yPFJlZjxDU1NGb250RmFjZT4+LCBDYXNlRm9sZGluZ0hhc2g+IG1fZm9udEZh
Y2VzOworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8UmVmPENTU0ZvbnRGYWNlPj4sIENhc2VG
b2xkaW5nSGFzaD4gbV9sb2NhbGx5SW5zdGFsbGVkRm9udEZhY2VzOworICAgIEhhc2hNYXA8U3Ry
aW5nLCBIYXNoTWFwPHVuc2lnbmVkLCBSZWZQdHI8Q1NTU2VnbWVudGVkRm9udEZhY2U+PiwgQ2Fz
ZUZvbGRpbmdIYXNoPiBtX2ZvbnRzOwogICAgIEhhc2hTZXQ8Rm9udFNlbGVjdG9yQ2xpZW50Kj4g
bV9jbGllbnRzOwogCiAgICAgVmVjdG9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+
PiBtX2ZvbnRzVG9CZWdpbkxvYWRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcAppbmRleCBhZTBlNzBiNmZmZDhlM2RhMjIyMzBlOWIzZmE5NWVlNGNlOTE4YWJmLi4w
ZGEzNjE5YTIxODk3ZjFiN2EwZjI4ZDcwMzU4Nzg2N2VmZGIzYzgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi10eXBlZGVmIEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IEZlYXR1cmVTZXQ7Cit0eXBlZGVmIEhh
c2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IEZlYXR1cmVTZXQ7CiAKIHN0YXRpYyB2b2lk
IGFkZFN0cmluZyhGZWF0dXJlU2V0JiBzZXQsIGNvbnN0IGNoYXIqIHN0cmluZykKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggOThmZjkyZWJlN2Y0YTA5MjYwMmM2NTBhNGRkOGIxYmZhMjE0MTFk
Ni4uODk0M2RiNzVlYWM4MTlhNDE0N2ViMTE1MTg3YjNmMzZhNWNmNDAxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTE2MTMsNyArMTYxMyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxIVE1M
TWVkaWFFbGVtZW50Kj4gbV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2tFbGVtZW50
czsKICNlbmRpZgogCi0gICAgSGFzaE1hcDxTdHJpbmdJbXBsKiwgRWxlbWVudCosIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4gbV9lbGVtZW50c0J5QWNjZXNzS2V5OworICAgIEhhc2hNYXA8U3Ry
aW5nSW1wbCosIEVsZW1lbnQqLCBDYXNlRm9sZGluZ0hhc2g+IG1fZWxlbWVudHNCeUFjY2Vzc0tl
eTsKICAgICBib29sIG1fYWNjZXNzS2V5TWFwVmFsaWQ7CiAKICAgICBEb2N1bWVudE9yZGVyZWRN
YXAgbV9pbWFnZXNCeVVzZW1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRl
eCAzYjFlNTQ3MTBiYzAxZjQxYzhlYmRhMzY2ODE3OWI4MDc4ZjBkNmRhLi5kOWM1NmZlODQyN2M4
ZTk3NTA0ZWIxYzNhODFiN2I3ZDM5MjM2Yjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgc3RhdGljIGJvb2wgaXNMZWdhY3lTdXBwb3J0ZWRK
YXZhU2NyaXB0TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKICAgICAvLyBXZSB3YW50
IHRvIGFjY2VwdCBhbGwgdGhlIHZhbHVlcyB0aGF0IGVpdGhlciBvZiB0aGVzZSBicm93c2VycyBh
Y2NlcHQsIGJ1dCBub3Qgb3RoZXIgdmFsdWVzLgogCiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rp
b24gaXMgbm90IEhUTUw1IGNvbXBsaWFudC4gVGhlc2UgYmVsb25nIGluIHRoZSBNSU1FIHJlZ2lz
dHJ5IGFzICJ0ZXh0L2phdmFzY3JpcHQ8dmVyc2lvbj4iIGVudHJpZXMuCi0gICAgdHlwZWRlZiBI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBMYW5ndWFnZVNldDsKKyAg
ICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IExhbmd1YWdlU2V0Owog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxMYW5ndWFnZVNldD4gbGFuZ3VhZ2VzOwogICAgIGlm
IChsYW5ndWFnZXMuZ2V0KCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGxhbmd1YWdlcy5nZXQoKS5h
ZGQoImphdmFzY3JpcHQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
CmluZGV4IDc5ZTUyYjViY2Q4M2UwYzIzOWQzMmI2ZWM4Njg5NzA2ZDA5NDJjNmIuLjYyY2Y3ZWNl
NWQwNGE2NjdhNjYwODc2MGQ2ZWFkYmQzMzQ3NWVmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBh
bGxvd0V4ZWN1dGlvbldoZW5EaXNhYmxlZDsKIH07CiAKLXR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IGNvbnN0IEVkaXRvckludGVybmFsQ29tbWFuZCosIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4g
Q29tbWFuZE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGNvbnN0IEVkaXRvckludGVybmFs
Q29tbWFuZCosIENhc2VGb2xkaW5nSGFzaD4gQ29tbWFuZE1hcDsKIAogc3RhdGljIGNvbnN0IGJv
b2wgbm90VGV4dEluc2VydGlvbiA9IGZhbHNlOwogc3RhdGljIGNvbnN0IGJvb2wgaXNUZXh0SW5z
ZXJ0aW9uID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
aW5kZXggOGIyODMxMDRkZTU3NTk5ZWI3MzRjZGY5NDI0NWYzMGRjYjUyMTkzMS4uYzZiNjIwZmE2
MDEzNzQ3NjQ4NDg3ODdjZjNhYjNiNDU4YzhjM2MzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91
bGROb3RQZXJmb3JtVVJMQWRqdXN0bWVudCgpCiAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91
bGQgbm90IGRlYWwgd2l0aCB1cmwgb3Igc2VydmljZVR5cGUhCiB2b2lkIEhUTUxPYmplY3RFbGVt
ZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBWZWN0
b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIFN0cmluZyYgdXJsLCBTdHJpbmcmIHNlcnZpY2VUeXBl
KQogewotICAgIEhhc2hTZXQ8U3RyaW5nSW1wbCosIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4g
dW5pcXVlUGFyYW1OYW1lczsKKyAgICBIYXNoU2V0PFN0cmluZ0ltcGwqLCBDYXNlRm9sZGluZ0hh
c2g+IHVuaXF1ZVBhcmFtTmFtZXM7CiAgICAgU3RyaW5nIHVybFBhcmFtZXRlcjsKICAgICAKICAg
ICAvLyBTY2FuIHRoZSBQQVJBTSBjaGlsZHJlbiBhbmQgc3RvcmUgdGhlaXIgbmFtZS92YWx1ZSBw
YWlycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBmNzdmMTM0Y2U4ODVhZDJhM2Y1
ZWVkNWZhYTMyMWViN2IxZmFhMTE4Li43ZGE0ZjRhZmY1NGM0YWQ2YzAzZTlhNDQ4YjJmMjc4MTE3
MjE0ZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiB0eXBlZGVmIGJvb2wgKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OipJbnB1dFR5cGVDb25kaXRpb25hbEZ1bmN0aW9uKSgpIGNvbnN0OwogdHlwZWRlZiBj
b25zdCBBdG9taWNTdHJpbmcmICgqSW5wdXRUeXBlTmFtZUZ1bmN0aW9uKSgpOwogdHlwZWRlZiBz
dGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiAoKklucHV0VHlwZUZhY3RvcnlGdW5jdGlvbikoSFRN
TElucHV0RWxlbWVudCYpOwotdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgSW5wdXRUeXBl
RmFjdG9yeUZ1bmN0aW9uLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IElucHV0VHlwZUZhY3Rv
cnlNYXA7Cit0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5RnVu
Y3Rpb24sIENhc2VGb2xkaW5nSGFzaD4gSW5wdXRUeXBlRmFjdG9yeU1hcDsKIAogdGVtcGxhdGU8
Y2xhc3MgVD4KIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5wdXRUeXBlPiBjcmVhdGVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaAppbmRleCA3NDM4YzAzODVjMWI5ZjlkOTI5YWRi
Y2ZjMTc2YWEyOTY1ZWQzNjkzLi45MGY5YmU2YmY1MzVmZDMxY2Q1NTVkZmMxYzRhMTI0NTk0M2Iw
N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3ND
b250cm9sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29u
dHJvbC5oCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRl
ZiBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBIVFRQSGVhZGVyU2V0
OwordHlwZWRlZiBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBIVFRQSGVhZGVyU2V0
OwogCiBjbGFzcyBIVFRQSGVhZGVyTWFwOwogZW51bSBjbGFzcyBIVFRQSGVhZGVyTmFtZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5oCmluZGV4IGFmZTRmNzZmNjQ1M2EwYmZjMTgxNzJhM2VjY2EyMmU3OGQ4YTU4ZjMu
LmY0Nzg1ZmZmMjg4OGFiZThiMTE1YTdmZDg4MWMxNWQ5ZDk5NTUyMmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUu
aApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2s6OnRpbWVfcG9pbnQgbV9hYnNvbHV0ZUV4cGlyeVRpbWU7CiAgICAgU3RvcmVkQ3JlZGVudGlh
bHMgbV9jcmVkZW50aWFsczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9tZXRob2RzOwotICAgIEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1faGVhZGVyczsKKyAgICBI
YXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBtX2hlYWRlcnM7CiB9OwogCiBjbGFzcyBD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcmNoaXZlL0FyY2hpdmVGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcmNoaXZlL0FyY2hpdmVGYWN0b3J5LmNwcAppbmRleCAwMTI0MDFjZmUyMmQyYWQ2ZTRk
NjE3ZTVlODMxMjc3MDFlZTgxMzY3Li4wNzA5MWUzZThmOTNjZWEzNDkzN2QwZDNmNmI3MzMzZDE4
NGU4YzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9BcmNoaXZl
RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvQXJjaGl2ZUZh
Y3RvcnkuY3BwCkBAIC00Nyw3ICs0Nyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVk
ZWYgUGFzc1JlZlB0cjxBcmNoaXZlPiBSYXdEYXRhQ3JlYXRpb25GdW5jdGlvbihjb25zdCBVUkwm
LCBTaGFyZWRCdWZmZXIqKTsKLXR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJhd0RhdGFDcmVhdGlv
bkZ1bmN0aW9uKiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBBcmNoaXZlTUlNRVR5cGVzTWFw
OwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmF3RGF0YUNyZWF0aW9uRnVuY3Rpb24qLCBDYXNl
Rm9sZGluZ0hhc2g+IEFyY2hpdmVNSU1FVHlwZXNNYXA7CiAKIC8vIFRoZSBjcmVhdGUgZnVuY3Rp
b25zIGluIHRoZSBhcmNoaXZlIGNsYXNzZXMgcmV0dXJuIFBhc3NSZWZQdHIgdG8gY29uY3JldGUg
c3ViY2xhc3NlcwogLy8gb2YgQXJjaGl2ZS4gVGhpcyBhZGFwdG9yIG1ha2VzIHRoZSBmdW5jdGlv
bnMgaGF2ZSBhIHVuaWZvcm0gcmV0dXJuIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwCmluZGV4IGRjZGU2OTNhMzA1N2QyZTRkZWI0ODQ5Y2E0MWM0
N2FhYzE5NDJjMzEuLjYyMGYxYzNjODA2ZDljNjNlMDI2NjhjMDllNmZiOTFjNzBlZDQzZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCkBAIC0xNTAs
NyArMTUwLDcgQEAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nPiogcGRmTUlNRVR5cGVzOwogc3RhdGlj
IEhhc2hTZXQ8U3RyaW5nPiogcGRmQW5kUG9zdFNjcmlwdE1JTUVUeXBlczsKIHN0YXRpYyBIYXNo
U2V0PFN0cmluZz4qIHVuc3VwcG9ydGVkVGV4dE1JTUVUeXBlczsKIAotdHlwZWRlZiBIYXNoTWFw
PFN0cmluZywgVmVjdG9yPFN0cmluZz4qLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IE1lZGlh
TUlNRVR5cGVNYXA7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiosIENh
c2VGb2xkaW5nSGFzaD4gTWVkaWFNSU1FVHlwZU1hcDsKICAgICAKIHN0YXRpYyB2b2lkIGluaXRp
YWxpemVTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NoZW1lUmVnaXN0cnkuaAppbmRleCA3OWIxNTkzMDU2Mzg5YzIxMGJhYzg0ZjBkNmRjODY5NjFk
MTRhYzdhLi43MWVlOTk5MDQxYWVkMTE4ODYwMGE2YzE1NDI2MDMxZTJjYzU5MTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgKQEAgLTMyLDcgKzMyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi10eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+IFVSTFNjaGVtZXNNYXA7Cit0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBD
YXNlRm9sZGluZ0hhc2g+IFVSTFNjaGVtZXNNYXA7CiAKIGNsYXNzIFNjaGVtZVJlZ2lzdHJ5IHsK
IHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCmluZGV4IDcyNjEwMDM5ODRmM2VjZTljMWJm
YWRkNzc3OGIwYWU2ZDMxMmUzYWUuLmYyZjM1NjliNGFmOTI5NWJmNDg3Mjg5M2U1ZDY3ZmY5ODAw
YWUxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcApAQCAtMTk5MCw3ICsxOTkwLDcgQEAgYm9v
bCBVUkw6OmlzQmxhbmtVUkwoKSBjb25zdAogICAgIHJldHVybiBwcm90b2NvbElzKCJhYm91dCIp
OwogfQogCi10eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCB1bnNpZ25lZCBzaG9ydCwgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiBEZWZhdWx0UG9ydHNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8U3RyaW5n
LCB1bnNpZ25lZCBzaG9ydCwgQ2FzZUZvbGRpbmdIYXNoPiBEZWZhdWx0UG9ydHNNYXA7CiBzdGF0
aWMgY29uc3QgRGVmYXVsdFBvcnRzTWFwJiBkZWZhdWx0UG9ydHNNYXAoKQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxjb25zdCBEZWZhdWx0UG9ydHNNYXA+IGRlZmF1bHRQb3J0c01hcChE
ZWZhdWx0UG9ydHNNYXAoewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5jcHAKaW5kZXggMjViMWE2YmZmMzhiMTZiNDY0NjY5ZDk3NDFkNGE0NGYxODdjNTdl
ZC4uNGFmMDkxNjRiYjUwOTE0ZjRkMzc1YTIxOTJjOGVkOWY1ZjNhZDkxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCkBAIC05Nyw0NiArOTcs
NTAgQEAgRm9udENhY2hlOjpGb250Q2FjaGUoKQogfQogCiBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0
YUNhY2hlS2V5IHsKLSAgICBBdG9taWNTdHJpbmcgZmFtaWx5OwotICAgIEZvbnREZXNjcmlwdGlv
bktleSBkZXNjcmlwdGlvbjsKLQotICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSgpID0gZGVm
YXVsdDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBGb250UGxh
dGZvcm1EYXRhQ2FjaGVLZXkoKSB7IH0KICAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkoY29u
c3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRp
b24pCi0gICAgICAgIDogZmFtaWx5KGZhbWlseSksIGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQot
ICAgIHsKLSAgICB9CisgICAgICAgIDogbV9mb250RGVzY3JpcHRpb25LZXkoZGVzY3JpcHRpb24p
CisgICAgICAgICwgbV9mYW1pbHkoZmFtaWx5KQorICAgIHsgfQogCi0gICAgZXhwbGljaXQgRm9u
dFBsYXRmb3JtRGF0YUNhY2hlS2V5KEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAg
IDogZGVzY3JpcHRpb24oSGFzaFRhYmxlRGVsZXRlZFZhbHVlKQotICAgIHsKLSAgICB9Ci0gICAg
Ym9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0CisgICAgZXhwbGljaXQgRm9udFBs
YXRmb3JtRGF0YUNhY2hlS2V5KEhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUgdCkKKyAgICAgICAg
OiBtX2ZvbnREZXNjcmlwdGlvbktleSh0KQorICAgIHsgfQorCisgICAgYm9vbCBpc0hhc2hUYWJs
ZURlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9uS2V5LmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250
UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIG90aGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJu
IGRlc2NyaXB0aW9uLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgICAgIGlmIChtX2Zv
bnREZXNjcmlwdGlvbktleSAhPSBvdGhlci5tX2ZvbnREZXNjcmlwdGlvbktleSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG1fZmFtaWx5LmltcGwoKSA9PSBvdGhlci5t
X2ZhbWlseS5pbXBsKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG1f
ZmFtaWx5LmlzTnVsbCgpIHx8IG90aGVyLm1fZmFtaWx5LmlzTnVsbCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gQ2FzZUZvbGRpbmdIYXNoOjplcXVhbChtX2Zh
bWlseSwgb3RoZXIubV9mYW1pbHkpOwogICAgIH0KKworICAgIEZvbnREZXNjcmlwdGlvbktleSBt
X2ZvbnREZXNjcmlwdGlvbktleTsKKyAgICBBdG9taWNTdHJpbmcgbV9mYW1pbHk7CiB9OwogCiBz
dHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5SGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBrZXkpCisgICAgc3RhdGljIHVu
c2lnbmVkIGhhc2goY29uc3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBmb250S2V5KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHBhaXJJbnRIYXNoKEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaDo6
aGFzaChrZXkuZmFtaWx5KSwga2V5LmRlc2NyaXB0aW9uLmNvbXB1dGVIYXNoKCkpOworICAgICAg
ICByZXR1cm4gcGFpckludEhhc2goQ2FzZUZvbGRpbmdIYXNoOjpoYXNoKGZvbnRLZXkubV9mYW1p
bHkpLCBmb250S2V5Lm1fZm9udERlc2NyaXB0aW9uS2V5LmNvbXB1dGVIYXNoKCkpOwogICAgIH0K
KyAgICAgICAgIAogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGFD
YWNoZUtleSYgYSwgY29uc3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBiKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGEuZGVzY3JpcHRpb24gPT0gYi5kZXNjcmlwdGlvbiAmJiBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGEuZmFtaWx5LCBiLmZhbWlseSk7CisgICAgICAgIHJldHVybiBhID09IGI7
CiAgICAgfQotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gdHJ1ZTsKLX07CiAKLXN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXlUcmFpdHMg
OiBTaW1wbGVDbGFzc0hhc2hUcmFpdHM8Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5PiB7Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgaGFzSXNFbXB0eVZhbHVlRnVuY3Rpb24gPSB0cnVlOwotICAgIHN0
YXRpYyBib29sIGlzRW1wdHlWYWx1ZShjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIGtl
eSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBrZXkuZmFtaWx5LmlzTnVsbCgpOwotICAgIH0KKyAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
CiB9OwogCi10eXBlZGVmIEhhc2hNYXA8Rm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5LCBzdGQ6OnVu
aXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4sIEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleUhhc2gs
IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleVRyYWl0cz4gRm9udFBsYXRmb3JtRGF0YUNhY2hlOwor
dHlwZWRlZiBIYXNoTWFwPEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSwgc3RkOjp1bmlxdWVfcHRy
PEZvbnRQbGF0Zm9ybURhdGE+LCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXlIYXNoLCBXVEY6OlNp
bXBsZUNsYXNzSGFzaFRyYWl0czxGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXk+PiBGb250UGxhdGZv
cm1EYXRhQ2FjaGU7CiAKIHN0YXRpYyBGb250UGxhdGZvcm1EYXRhQ2FjaGUmIGZvbnRQbGF0Zm9y
bURhdGFDYWNoZSgpCiB7CkBAIC0yMDMsOSArMjA3LDkgQEAgc3RhdGljIEF0b21pY1N0cmluZyBh
bHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkKICAgICBy
ZXR1cm4gbnVsbEF0b207CiB9CiAKLS8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5hbWUgc2hvdWxk
IG5vdCBoYXZlIHRoZSB3b3JkICJnZXQiIGluIGl0IGZvciBXZWJLaXQgY29kaW5nIHN0eWxlLgot
Ly8gRklYTUU6IFRoZSBib29sZWFuIGhlcmUgaXMgcG9vciBjb2Rpbmcgc3R5bGUuIEVhc3kgdG8g
ZmFjdG9yIHRoaXMgaW50byB0d28gZnVuY3Rpb25zIHNvIHdlIGRvbid0IG5lZWQgaXQuCi1Gb250
UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgcGFz
c2VkRmFtaWx5TmFtZSwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpCitGb250UGxhdGZvcm1E
YXRhKiBGb250Q2FjaGU6OmdldENhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBwYXNzZWRGYW1pbHlO
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lKQogewogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBGb250TG9ja2VyIGZvbnRMb2NrZXI7CkBAIC0yMTQsOSArMjE4LDkgQEAgRm9udFBsYXRmb3Jt
RGF0YSogRm9udENhY2hlOjpnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm8KICNpZiBPUyhXSU5ET1dTKSAmJiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwp
CiAgICAgLy8gTGVhZGluZyAiQCIgaW4gdGhlIGZvbnQgbmFtZSBlbmFibGVzIFdpbmRvd3MgdmVy
dGljYWwgZmxvdyBmbGFnIGZvciB0aGUgZm9udC4KICAgICAvLyBCZWNhdXNlIHdlIGRvIHZlcnRp
Y2FsIGZsb3cgYnkgb3Vyc2VsdmVzLCB3ZSBkb24ndCB3YW50IHRvIHVzZSB0aGUgV2luZG93cyBm
ZWF0dXJlLgotICAgIC8vIElFIGRpc3JlZ2FyZHMgIkAiIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yaWVu
dGF0aW9uLCBzbyB3ZSBmb2xsb3cgdGhlIGJlaGF2aW9yLgotICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5TmFtZSA9IHBhc3NlZEZhbWlseU5hbWVbMF0gIT0gJ0AnCi0gICAgICAgID8gcGFz
c2VkRmFtaWx5TmFtZSA6IEF0b21pY1N0cmluZyhwYXNzZWRGYW1pbHlOYW1lLmltcGwoKS0+c3Vi
c3RyaW5nKDEpKTsKKyAgICAvLyBJRSBkaXNyZWdhcmRzICJAIiByZWdhcmRsZXNzIG9mIHRoZSBv
cmllbnRhdG9pbiwgc28gd2UgZm9sbG93IHRoZSBiZWhhdmlvci4KKyAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGZhbWlseU5hbWUgPSAocGFzc2VkRmFtaWx5TmFtZS5pc0VtcHR5KCkgfHwgcGFzc2Vk
RmFtaWx5TmFtZVswXSAhPSAnQCcpID8KKyAgICAgICAgcGFzc2VkRmFtaWx5TmFtZSA6IEF0b21p
Y1N0cmluZyhwYXNzZWRGYW1pbHlOYW1lLmltcGwoKS0+c3Vic3RyaW5nKDEpKTsKICNlbHNlCiAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lID0gcGFzc2VkRmFtaWx5TmFtZTsKICNl
bmRpZgpAQCAtMjMzLDEzICsyMzcsMTQgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpn
ZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm8KICAgICBG
b250UGxhdGZvcm1EYXRhQ2FjaGU6Oml0ZXJhdG9yIGl0ID0gYWRkUmVzdWx0Lml0ZXJhdG9yOwog
ICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAgICBpdC0+dmFsdWUgPSBjcmVh
dGVGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5TmFtZSk7CisKICAgICAg
ICAgaWYgKCFpdC0+dmFsdWUgJiYgIWNoZWNraW5nQWx0ZXJuYXRlTmFtZSkgewotICAgICAgICAg
ICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8gZmluZCBhIGZvbnQuIFdlIGhhdmUgYSBzbWFsbCBzZXQg
b2YgZm9udHMgdGhhdCB3ZSBhbGlhcyB0byBvdGhlciBuYW1lcywKLSAgICAgICAgICAgIC8vIGUu
Zy4sIEFyaWFsL0hlbHZldGljYSwgQ291cmllci9Db3VyaWVyIE5ldywgZXRjLiBUcnkgbG9va2lu
ZyB1cCB0aGUgZm9udCB1bmRlciB0aGUgYWxpYXNlZCBuYW1lLgotICAgICAgICAgICAgYXV0byBh
bHRlcm5hdGVOYW1lID0gYWx0ZXJuYXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKTsKKyAgICAgICAg
ICAgIC8vIFdlIHdlcmUgdW5hYmxlIHRvIGZpbmQgYSBmb250LiAgV2UgaGF2ZSBhIHNtYWxsIHNl
dCBvZiBmb250cyB0aGF0IHdlIGFsaWFzIHRvIG90aGVyIG5hbWVzLAorICAgICAgICAgICAgLy8g
ZS5nLiwgQXJpYWwvSGVsdmV0aWNhLCBDb3VyaWVyL0NvdXJpZXIgTmV3LCBldGMuICBUcnkgbG9v
a2luZyB1cCB0aGUgZm9udCB1bmRlciB0aGUgYWxpYXNlZCBuYW1lLgorICAgICAgICAgICAgY29u
c3QgQXRvbWljU3RyaW5nIGFsdGVybmF0ZU5hbWUgPSBhbHRlcm5hdGVGYW1pbHlOYW1lKGZhbWls
eU5hbWUpOwogICAgICAgICAgICAgaWYgKCFhbHRlcm5hdGVOYW1lLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSogZm9udFBsYXRmb3JtRGF0YUZvckFsdGVybmF0
ZU5hbWUgPSBnZXRDYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgYWx0ZXJu
YXRlTmFtZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgLy8gTG9vayB1cCB0aGUga2V5IGluIHRo
ZSBoYXNoIHRhYmxlIGFnYWluIGFzIHRoZSBwcmV2aW91cyBpdGVyYXRvciBtYXkgaGF2ZQorICAg
ICAgICAgICAgICAgIC8vIExvb2t1cCB0aGUga2V5IGluIHRoZSBoYXNoIHRhYmxlIGFnYWluIGFz
IHRoZSBwcmV2aW91cyBpdGVyYXRvciBtYXkgaGF2ZQogICAgICAgICAgICAgICAgIC8vIGJlZW4g
aW52YWxpZGF0ZWQgYnkgdGhlIHJlY3Vyc2l2ZSBjYWxsIHRvIGdldENhY2hlZEZvbnRQbGF0Zm9y
bURhdGEoKS4KICAgICAgICAgICAgICAgICBpdCA9IGZvbnRQbGF0Zm9ybURhdGFDYWNoZSgpLmZp
bmQoa2V5KTsKICAgICAgICAgICAgICAgICBBU1NFUlQoaXQgIT0gZm9udFBsYXRmb3JtRGF0YUNh
Y2hlKCkuZW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dENhc2NhZGUuY3BwCmluZGV4IDFmNTFkZTBhMTU3MTkwMDQzMGY3Y2QzMmFjYzJmZWYzMDc1Mjkw
ZmYuLjE2ZGZkNjc0MjQ0ZWM0NzEwNzg2MGEzZTRiMGMwNmEzOGU1YTljNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTE5MCwy
MCArMTkwLDIyIEBAIHB1YmxpYzoKICAgICBSZWY8Rm9udENhc2NhZGVGb250cz4gZm9udHM7CiB9
OwogCi0vLyBGSVhNRTogU2hvdWxkIG1ha2UgaGFzaCB0cmFpdHMgZm9yIEZvbnRDYXNjYWRlQ2Fj
aGVLZXkgaW5zdGVhZCBvZiB1c2luZyBhIGhhc2ggYXMgdGhlIGtleSAoc28gd2UgaGFzaCBhIGhh
c2gpLgogdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udENhc2Nh
ZGVDYWNoZUVudHJ5PiwgQWxyZWFkeUhhc2hlZD4gRm9udENhc2NhZGVDYWNoZTsKIAotc3RhdGlj
IGJvb2wga2V5c01hdGNoKGNvbnN0IEZvbnRDYXNjYWRlQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRD
YXNjYWRlQ2FjaGVLZXkmIGIpCitzdGF0aWMgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRDYXNj
YWRlQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRDYXNjYWRlQ2FjaGVLZXkmIGIpCiB7CiAgICAgaWYg
KGEuZm9udERlc2NyaXB0aW9uS2V5ICE9IGIuZm9udERlc2NyaXB0aW9uS2V5KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKGEuZm9udFNlbGVjdG9ySWQgIT0gYi5mb250U2VsZWN0b3JJ
ZCB8fCBhLmZvbnRTZWxlY3RvclZlcnNpb24gIT0gYi5mb250U2VsZWN0b3JWZXJzaW9uKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgdW5zaWduZWQgc2l6ZSA9IGEuZmFtaWxpZXMuc2l6ZSgp
OwotICAgIGlmIChzaXplICE9IGIuZmFtaWxpZXMuc2l6ZSgpKQorICAgIGlmIChhLmZhbWlsaWVz
LnNpemUoKSAhPSBiLmZhbWlsaWVzLnNpemUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgaWYgKCFlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKGEuZmFtaWxpZXNbaV0sIGIuZmFtaWxpZXNbaV0pKQorICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBhLmZhbWlsaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IGF1dG8qIGFJbXBsID0gYS5mYW1pbGllc1tpXS5pbXBsKCk7CisgICAgICAgIGF1dG8qIGJJbXBs
ID0gYi5mYW1pbGllc1tpXS5pbXBsKCk7CisgICAgICAgIGlmIChhSW1wbCA9PSBiSW1wbCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWFJbXBsIHx8ICFiSW1wbCB8fCAhQ2Fz
ZUZvbGRpbmdIYXNoOjplcXVhbChhSW1wbCwgYkltcGwpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIzMCwyNyArMjMyLDI2IEBAIHN0YXRp
YyBGb250Q2FzY2FkZUNhY2hlS2V5IG1ha2VGb250Q2FzY2FkZUNhY2hlS2V5KGNvbnN0IEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24mCiB7CiAgICAgRm9udENhc2NhZGVDYWNoZUtleSBrZXk7CiAgICAg
a2V5LmZvbnREZXNjcmlwdGlvbktleSA9IEZvbnREZXNjcmlwdGlvbktleShkZXNjcmlwdGlvbik7
Ci0gICAgdW5zaWduZWQgZmFtaWx5Q291bnQgPSBkZXNjcmlwdGlvbi5mYW1pbHlDb3VudCgpOwot
ICAgIGtleS5mYW1pbGllcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGZhbWlseUNvdW50KTsKLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmFtaWx5Q291bnQ7ICsraSkKLSAgICAgICAga2V5
LmZhbWlsaWVzLnVuY2hlY2tlZEFwcGVuZChkZXNjcmlwdGlvbi5mYW1pbHlBdChpKSk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlc2NyaXB0aW9uLmZhbWlseUNvdW50KCk7ICsraSkK
KyAgICAgICAga2V5LmZhbWlsaWVzLmFwcGVuZChkZXNjcmlwdGlvbi5mYW1pbHlBdChpKSk7CiAg
ICAga2V5LmZvbnRTZWxlY3RvcklkID0gZm9udFNlbGVjdG9yID8gZm9udFNlbGVjdG9yLT51bmlx
dWVJZCgpIDogMDsKICAgICBrZXkuZm9udFNlbGVjdG9yVmVyc2lvbiA9IGZvbnRTZWxlY3RvciA/
IGZvbnRTZWxlY3Rvci0+dmVyc2lvbigpIDogMDsKICAgICByZXR1cm4ga2V5OwogfQogCisvLyBG
SVhNRTogV2h5IGNhbid0IHdlIGp1c3QgdGVhY2ggSGFzaE1hcCBhYm91dCBGb250Q2FzY2FkZUNh
Y2hlS2V5IGluc3RlYWQgb2YgaGFzaGluZyBhIGhhc2g/CiBzdGF0aWMgdW5zaWduZWQgY29tcHV0
ZUZvbnRDYXNjYWRlQ2FjaGVIYXNoKGNvbnN0IEZvbnRDYXNjYWRlQ2FjaGVLZXkmIGtleSkKIHsK
LSAgICAvLyBGSVhNRTogU2hvdWxkIGhhc2ggdGhlIGtleSBhbmQgdGhlIGZhbWlseSBuYW1lIGNo
YXJhY3RlcnMgcmF0aGVyIHRoYW4gbWFraW5nIGEgaGFzaCBvdXQgb2Ygb3RoZXIgaGFzaGVzLgot
ICAgIEludGVnZXJIYXNoZXIgaGFzaGVyOwotICAgIGhhc2hlci5hZGQoa2V5LmZvbnREZXNjcmlw
dGlvbktleS5jb21wdXRlSGFzaCgpKTsKLSAgICBoYXNoZXIuYWRkKGtleS5mb250U2VsZWN0b3JJ
ZCk7Ci0gICAgaGFzaGVyLmFkZChrZXkuZm9udFNlbGVjdG9yVmVyc2lvbik7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGtleS5mYW1pbGllcy5zaXplKCk7ICsraSkgewotICAgICAgICBT
dHJpbmdJbXBsKiBmYW1pbHkgPSBrZXkuZmFtaWxpZXNbaV0uaW1wbCgpOwotICAgICAgICBoYXNo
ZXIuYWRkKGZhbWlseSA/IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaDo6aGFzaChmYW1pbHkpIDog
MCk7Ci0gICAgfQotICAgIHJldHVybiBoYXNoZXIuaGFzaCgpOworICAgIFZlY3Rvcjx1bnNpZ25l
ZCwgNz4gaGFzaENvZGVzOworICAgIGhhc2hDb2Rlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KDQg
KyBrZXkuZmFtaWxpZXMuc2l6ZSgpKTsKKworICAgIGhhc2hDb2Rlcy51bmNoZWNrZWRBcHBlbmQo
a2V5LmZvbnREZXNjcmlwdGlvbktleS5jb21wdXRlSGFzaCgpKTsKKyAgICBoYXNoQ29kZXMudW5j
aGVja2VkQXBwZW5kKGtleS5mb250U2VsZWN0b3JJZCk7CisgICAgaGFzaENvZGVzLnVuY2hlY2tl
ZEFwcGVuZChrZXkuZm9udFNlbGVjdG9yVmVyc2lvbik7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGtleS5mYW1pbGllcy5zaXplKCk7ICsraSkKKyAgICAgICAgaGFzaENvZGVzLnVuY2hl
Y2tlZEFwcGVuZChrZXkuZmFtaWxpZXNbaV0uaW1wbCgpID8gQ2FzZUZvbGRpbmdIYXNoOjpoYXNo
KGtleS5mYW1pbGllc1tpXSkgOiAwKTsKKworICAgIHJldHVybiBTdHJpbmdIYXNoZXI6Omhhc2hN
ZW1vcnkoaGFzaENvZGVzLmRhdGEoKSwgaGFzaENvZGVzLnNpemUoKSAqIHNpemVvZih1bnNpZ25l
ZCkpOwogfQogCiB2b2lkIHBydW5lVW5yZWZlcmVuY2VkRW50cmllc0Zyb21Gb250Q2FzY2FkZUNh
Y2hlKCkKQEAgLTI3MSw4ICsyNzIsOCBAQCBzdGF0aWMgUmVmPEZvbnRDYXNjYWRlRm9udHM+IHJl
dHJpZXZlT3JBZGRDYWNoZWRGb250cyhjb25zdCBGb250Q2FzY2FkZURlc2NyaXB0aQogICAgIGF1
dG8ga2V5ID0gbWFrZUZvbnRDYXNjYWRlQ2FjaGVLZXkoZm9udERlc2NyaXB0aW9uLCBmb250U2Vs
ZWN0b3IuZ2V0KCkpOwogCiAgICAgdW5zaWduZWQgaGFzaCA9IGNvbXB1dGVGb250Q2FzY2FkZUNh
Y2hlSGFzaChrZXkpOwotICAgIGF1dG8gYWRkUmVzdWx0ID0gZm9udENhc2NhZGVDYWNoZSgpLmFk
ZChoYXNoLCBudWxscHRyKTsKLSAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5ICYmIGtleXNN
YXRjaChhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5rZXksIGtleSkpCisgICAgYXV0byBhZGRS
ZXN1bHQgPSBmb250Q2FzY2FkZUNhY2hlKCkuYWRkKGhhc2gsIHN0ZDo6dW5pcXVlX3B0cjxGb250
Q2FzY2FkZUNhY2hlRW50cnk+KCkpOworICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkgJiYg
YWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+a2V5ID09IGtleSkKICAgICAgICAgcmV0dXJuIGFk
ZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmZvbnRzLmdldCgpOwogCiAgICAgYXV0byYgbmV3RW50
cnkgPSBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmlu
ZGV4IGQ5NjU1MzE5ZjJhYTJmMjY3OWU0YTY3NzYxNTQ4ODIyOTY3YzEzYWIuLjZkMzI1YzBhMzhi
ZTI5YjQ4ODEyNTk3OWU4Y2I1OTE3ZTU4MmMwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
QEAgLTY0NSw3ICs2NDUsNyBAQCBTeW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVz
aXMoQ1RGb250UmVmIGZvbnQsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZgogICAgIHJldHVybiBT
eW50aGVzaXNQYWlyKG5lZWRzU3ludGhldGljQm9sZCwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKTsK
IH0KIAotdHlwZWRlZiBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBX
aGl0ZWxpc3Q7Cit0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IFdoaXRl
bGlzdDsKIHN0YXRpYyBXaGl0ZWxpc3QmIGZvbnRXaGl0ZWxpc3QoKQogewogICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxXaGl0ZWxpc3Q+IHdoaXRlbGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKaW5kZXggZTRkZTA1OGUzZjQzMWRiNGIz
MDdmODYwZTkwMTBmZTc4NDUxYjllZC4uMmNkZDNjNmUxNWI2ODQzMjlmZTM5NGYzNjBlNTdmNWUz
ODg0ZWJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
SGVhZGVyTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQSGVh
ZGVyTWFwLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IENyb3NzVGhyZWFkSFRUUEhlYWRlck1h
cERhdGEgewogY2xhc3MgSFRUUEhlYWRlck1hcCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNo
TWFwPEhUVFBIZWFkZXJOYW1lLCBTdHJpbmcsIFdURjo6SW50SGFzaDxIVFRQSGVhZGVyTmFtZT4s
IFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8SFRUUEhlYWRlck5hbWU+PiBDb21tb25IZWFkZXJz
SGFzaE1hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4gVW5jb21tb25IZWFkZXJzSGFzaE1hcDsKKyAgICB0eXBlZGVmIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gVW5jb21tb25IZWFkZXJzSGFzaE1h
cDsKIAogICAgIGNsYXNzIEhUVFBIZWFkZXJNYXBDb25zdEl0ZXJhdG9yIHsKICAgICBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRl
eCBkODBkMDdmMmEwNzVjYWNkYWNkMjhkMWMxN2VlYWNjOTlkMTYyOTQ4Li4wNzI4NDIyMTY0OTU1
ZmYzZTJmZmYzZjZlZTE5Y2UzZmYwNGM3NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTM2NiwxOSArMzY2LDIxIEBAIGJvb2wgUmVu
ZGVyU3R5bGU6OmluaGVyaXRlZE5vdEVxdWFsKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlcikgY29u
c3QKIH0KIAogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQotCi1zdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGNvbXB1dGVGb250SGFzaChjb25zdCBGb250Q2FzY2FkZSYgZm9udCkKK2lubGlu
ZSB1bnNpZ25lZCBjb21wdXRlRm9udEhhc2goY29uc3QgRm9udENhc2NhZGUmIGZvbnQpCiB7Ci0g
ICAgSW50ZWdlckhhc2hlciBoYXNoZXI7Ci0gICAgaGFzaGVyLmFkZChBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g6Omhhc2goZm9udC5mb250RGVzY3JpcHRpb24oKS5maXJzdEZhbWlseSgpKSk7Ci0g
ICAgaGFzaGVyLmFkZChmb250LmZvbnREZXNjcmlwdGlvbigpLnNwZWNpZmllZFNpemUoKSk7Ci0g
ICAgcmV0dXJuIGhhc2hlci5oYXNoKCk7CisgICAgdW5zaWduZWQgaGFzaENvZGVzWzJdID0gewor
ICAgICAgICBDYXNlRm9sZGluZ0hhc2g6Omhhc2goZm9udC5mb250RGVzY3JpcHRpb24oKS5maXJz
dEZhbWlseSgpLmltcGwoKSksCisgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPihmb250LmZv
bnREZXNjcmlwdGlvbigpLnNwZWNpZmllZFNpemUoKSkKKyAgICB9OworICAgIHJldHVybiBTdHJp
bmdIYXNoZXI6OmNvbXB1dGVIYXNoKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIqPihoYXNoQ29kZXMp
LCAyICogc2l6ZW9mKHVuc2lnbmVkKSAvIHNpemVvZihVQ2hhcikpOwogfQogCi11bnNpZ25lZCBS
ZW5kZXJTdHlsZTo6aGFzaEZvclRleHRBdXRvc2l6aW5nKCkgY29uc3QKK3VpbnQzMl90IFJlbmRl
clN0eWxlOjpoYXNoRm9yVGV4dEF1dG9zaXppbmcoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBO
b3QgYSB2ZXJ5IHNtYXJ0IGhhc2guIENvdWxkIGJlIGltcHJvdmVkIHVwb24uIFNlZSA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTEzMT4uCi0gICAgdW5zaWduZWQg
aGFzaCA9IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2FwcGVhcmFuY2U7CisgICAgdWludDMyX3Qg
aGFzaCA9IDA7CisgICAgCisgICAgaGFzaCBePSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9hcHBl
YXJhbmNlOwogICAgIGhhc2ggXj0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkJlZm9yZUNv
bGxhcHNlOwogICAgIGhhc2ggXj0gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hcmdpbkFmdGVyQ29s
bGFwc2U7CiAgICAgaGFzaCBePSByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bGluZUNsYW1wLnZhbHVl
KCk7CkBAIC00MTksNyArNDIxLDYgQEAgYm9vbCBSZW5kZXJTdHlsZTo6ZXF1YWxGb3JUZXh0QXV0
b3NpemluZyhjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG5vbmlu
aGVyaXRlZF9mbGFncy5mbG9hdGluZygpID09IG90aGVyLT5ub25pbmhlcml0ZWRfZmxhZ3MuZmxv
YXRpbmcoKQogICAgICAgICAmJiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+dGV4dE92ZXJmbG93ID09
IG90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dGV4dE92ZXJmbG93OwogfQotCiAjZW5kaWYg
Ly8gRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCiAKIGJvb2wgUmVuZGVyU3R5bGU6OmluaGVy
aXRlZERhdGFTaGFyZWQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCmluZGV4IGZiOGRjZDM5YjRmM2EwNDY5ODliNTRl
YzNlZTYwNWIyZjQyYmVmNGYuLjI3ZjE1YWNkMzRlMGM4NzdhMWE4ZDJmMTU5NDEyYTQ3NmUzMTMw
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKQEAgLTI5NSw3ICsy
OTUsNyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjptZW1vcnlTdGF0aXN0aWNzKF9DT01f
T3V0cHRyX29wdF8gSVByb3BlcnR5QmFnKiogc3RhdAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBo
ZWFwRnJlZSA9IEpTRE9NV2luZG93Ojpjb21tb25WTSgpLmhlYXAuY2FwYWNpdHkoKSAtIGhlYXBT
aXplOwogICAgIEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgZ2xvYmFsTWVtb3J5U3RhdHMgPSBnbG9i
YWxNZW1vcnlTdGF0aXN0aWNzKCk7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgdW5zaWduZWQgbG9u
ZyBsb25nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IGZpZWxkczsKKyAgICBIYXNoTWFwPFN0
cmluZywgdW5zaWduZWQgbG9uZyBsb25nLCBDYXNlRm9sZGluZ0hhc2g+IGZpZWxkczsKICAgICBm
aWVsZHMuYWRkKCJGYXN0TWFsbG9jUmVzZXJ2ZWRWTUJ5dGVzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQgbG9uZyBsb25nPihmYXN0TWFsbG9jU3RhdGlzdGljcy5yZXNlcnZlZFZNQnl0ZXMpKTsKICAg
ICBmaWVsZHMuYWRkKCJGYXN0TWFsbG9jQ29tbWl0dGVkVk1CeXRlcyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkIGxvbmcgbG9uZz4oZmFzdE1hbGxvY1N0YXRpc3RpY3MuY29tbWl0dGVkVk1CeXRlcykp
OwogICAgIGZpZWxkcy5hZGQoIkZhc3RNYWxsb2NGcmVlTGlzdEJ5dGVzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihmYXN0TWFsbG9jU3RhdGlzdGljcy5mcmVlTGlzdEJ5dGVzKSk7
CkBAIC0zMDQsNyArMzA0LDcgQEAgSFJFU1VMVCBXZWJDb3JlU3RhdGlzdGljczo6bWVtb3J5U3Rh
dGlzdGljcyhfQ09NX091dHB0cl9vcHRfIElQcm9wZXJ0eUJhZyoqIHN0YXQKICAgICBmaWVsZHMu
YWRkKCJKYXZhU2NyaXB0U3RhY2tTaXplIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25n
PihnbG9iYWxNZW1vcnlTdGF0cy5zdGFja0J5dGVzKSk7CiAgICAgZmllbGRzLmFkZCgiSmF2YVNj
cmlwdEpJVFNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KGdsb2JhbE1lbW9y
eVN0YXRzLkpJVEJ5dGVzKSk7CiAKLSAgICAqc3RhdGlzdGljcyA9IENPTVByb3BlcnR5QmFnPHVu
c2lnbmVkIGxvbmcgbG9uZywgU3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+OjphZG9w
dChmaWVsZHMpOworICAgICpzdGF0aXN0aWNzID0gQ09NUHJvcGVydHlCYWc8dW5zaWduZWQgbG9u
ZyBsb25nLCBTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD46OmFkb3B0KGZpZWxkcyk7CiAKICAgICBy
ZXR1cm4gU19PSzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlVSTFJlc3Bv
bnNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlVSTFJlc3BvbnNlLmNwcAppbmRleCBjYzll
NDk3ZjUzZWFjNzhkY2Y0YWRmYjViNGJiNWJmYmU0OTU0Zjg3Li4wNGE4MzBkMmMxYjY0NTVjMmYx
ODE2ZTliOWNjMGI0NTUyZjgyYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJV
UkxSZXNwb25zZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVVJMUmVzcG9uc2UuY3Bw
CkBAIC0zNjIsMTEgKzM2MiwxMSBAQCBIUkVTVUxUIFdlYlVSTFJlc3BvbnNlOjphbGxIZWFkZXJG
aWVsZHMoX0NPTV9PdXRwdHJfb3B0XyBJUHJvcGVydHlCYWcqKiBoZWFkZXJGaQogICAgIGlmICgh
aGVhZGVyRmllbGRzKQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCi0gICAgSGFzaE1hcDxT
dHJpbmcsIFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBmaWVsZHM7CisgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBmaWVsZHM7CiAgICAgZm9yIChj
b25zdCBhdXRvJiBrZXlWYWx1ZVBhaXIgOiBtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKSkK
ICAgICAgICAgZmllbGRzLmFkZChrZXlWYWx1ZVBhaXIua2V5LCBrZXlWYWx1ZVBhaXIudmFsdWUp
OwogCi0gICAgKmhlYWRlckZpZWxkcyA9IENPTVByb3BlcnR5QmFnPFN0cmluZywgU3RyaW5nLCBB
U0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+OjphZG9wdChmaWVsZHMpOworICAgICpoZWFkZXJGaWVs
ZHMgPSBDT01Qcm9wZXJ0eUJhZzxTdHJpbmcsIFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPjo6YWRv
cHQoZmllbGRzKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dLV2ViVmlld0NvbnRlbnRQcm92aWRl
clJlZ2lzdHJ5Lm1tCmluZGV4IDE0ODk3ODEzZWJhMzAxMzdhYmNjMTUyY2NlZTgyZWM3ODlmZWUz
Y2YuLjAwZmYxNWNjZDExYzRmYjkwNjk2ZWM4NGMzODM2ZDA0ZWU4MmRmOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250ZW50UHJvdmlkZXJS
ZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV0tXZWJWaWV3
Q29udGVudFByb3ZpZGVyUmVnaXN0cnkubW0KQEAgLTQyLDcgKzQyLDcgQEAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXJS
ZWdpc3RyeSB7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIENsYXNzIDxXS1dlYlZpZXdDb250ZW50UHJv
dmlkZXI+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IF9jb250ZW50UHJvdmlkZXJGb3JNSU1F
VHlwZTsKKyAgICBIYXNoTWFwPFN0cmluZywgQ2xhc3MgPFdLV2ViVmlld0NvbnRlbnRQcm92aWRl
cj4sIENhc2VGb2xkaW5nSGFzaD4gX2NvbnRlbnRQcm92aWRlckZvck1JTUVUeXBlOwogICAgIEhh
c2hDb3VudGVkU2V0PFdlYlBhZ2VQcm94eSo+IF9wYWdlczsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVy
LmgKaW5kZXggZmU2YmM2ZjU2Nzk5MGZjYjU0MWUxYTJkMmI5ZTlkZjQ2NTkyN2VjYi4uNTAxZDY4
YWRlOTZmODA5NWYxNmU0NzU0MjRkYTZlZDMyMDkxMGFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5o
CkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdp
bnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6RGljdGlvbmFyeSYsIHN0ZDo6ZnVuY3Rp
b248Ym9vbChkb3VibGUgZXhwaXJhdGlvblRpbWVzdGFtcCk+KTsKIAotICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCwgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiBBdXRvU3RhcnRUYWJsZTsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQbHVn
SW5BdXRvU3RhcnRPcmlnaW5NYXAsIENhc2VGb2xkaW5nSGFzaD4gQXV0b1N0YXJ0VGFibGU7CiAg
ICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlNlc3Npb25JRCwgQXV0b1N0YXJ0VGFibGU+IFNl
c3Npb25BdXRvU3RhcnRUYWJsZTsKICAgICBTZXNzaW9uQXV0b1N0YXJ0VGFibGUgbV9hdXRvU3Rh
cnRUYWJsZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMTBmZmE1ZWY1YmFjNDg0ZmQ1MGY5YTdiZTgyYjIzZTdkYTJhOTllMS4uYThlODlmOTc3
MGVmOGU4MTE5YmM2YzBkMmZmMzM3ZTQ5MzNiNzU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzkzLDcgKzEzOTMsNyBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OlRpbWVyIG1fdm9sYXRpbGl0eVRpbWVyOwogI2VuZGlmCiAKLSAgICBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtX21pbWVUeXBlc1dpdGhDdXN0
b21Db250ZW50UHJvdmlkZXJzOworICAgIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+
IG1fbWltZVR5cGVzV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcnM7CiAgICAgV2ViQ29yZTo6Q29s
b3IgbV9iYWNrZ3JvdW5kQ29sb3I7CiAKICAgICBIYXNoU2V0PHVuc2lnbmVkPiBtX2FjdGl2ZVJl
bmRlcmluZ1N1cHByZXNzaW9uVG9rZW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggMjdhMmMyNzY0MjEwOGQ0NDZjZWFmMzg2ZDE1MTYzNGEyYWFhNWM4Ny4u
MzAzYjFmNzAzNDM0NDhjYzhkNWM0MjBlMDNlODY4NzI2NTcwOGI3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03MjEsMTYgKzcyMSwxNiBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgYWRkQ2FzZUZvbGRlZENoYXJhY3RlcnMoU3RyaW5nSGFzaGVyJiBoYXNoZXIs
IGNvbnN0IFN0cmluZyYgcwogICAgIGlmIChzdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKHN0cmluZy5pczhCaXQoKSkgewotICAgICAgICBoYXNoZXIuYWRkQ2hhcmFj
dGVyczxMQ2hhciwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoOjpmb2xkQ2FzZTxMQ2hhcj4+KHN0
cmluZy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOworICAgICAgICBoYXNoZXIuYWRk
Q2hhcmFjdGVyczxMQ2hhciwgQ2FzZUZvbGRpbmdIYXNoOjpmb2xkQ2FzZTxMQ2hhcj4+KHN0cmlu
Zy5jaGFyYWN0ZXJzOCgpLCBzdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIGhhc2hlci5hZGRDaGFyYWN0ZXJzPFVDaGFyLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g6OmZvbGRDYXNlPFVDaGFyPj4oc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3Ro
KCkpOworICAgIGhhc2hlci5hZGRDaGFyYWN0ZXJzPFVDaGFyLCBDYXNlRm9sZGluZ0hhc2g6OmZv
bGRDYXNlPFVDaGFyPj4oc3RyaW5nLmNoYXJhY3RlcnMxNigpLCBzdHJpbmcubGVuZ3RoKCkpOwog
fQogCiBzdGF0aWMgdW5zaWduZWQgaGFzaEZvclBsdWdJbk9yaWdpbihjb25zdCBTdHJpbmcmIHBh
Z2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKQogewogICAgIC8vIFdlIHdhbnQgdG8gYXZvaWQgY29uY2F0ZW5hdGluZyB0aGUgc3RyaW5n
cyBhbmQgdGhlbiB0YWtpbmcgdGhlIGhhc2gsIHNpbmNlIHRoYXQgY291bGQgbGVhZCB0byBhbiBl
eHBlbnNpdmUgY29udmVyc2lvbi4KLSAgICAvLyBXZSBhbHNvIHdhbnQgdG8gYXZvaWQgdXNpbmcg
dGhlIGhhc2goKSBmdW5jdGlvbiBpbiBTdHJpbmdJbXBsIG9yIEFTQ0lJQ2FzZUluc2Vuc2l0aXZl
SGFzaCBiZWNhdXNlIHRoYXQgbWFza3Mgb3V0IGJpdHMgZm9yIHRoZSB1c2Ugb2YgZmxhZ3MuCisg
ICAgLy8gV2UgYWxzbyB3YW50IHRvIGF2b2lkIHVzaW5nIHRoZSBoYXNoKCkgZnVuY3Rpb24gaW4g
U3RyaW5nSW1wbCBvciBDYXNlRm9sZGluZ0hhc2ggYmVjYXVzZSB0aGF0IG1hc2tzIG91dCBiaXRz
IGZvciB0aGUgdXNlIG9mIGZsYWdzLgogICAgIFN0cmluZ0hhc2hlciBoYXNoZXI7CiAgICAgYWRk
Q2FzZUZvbGRlZENoYXJhY3RlcnMoaGFzaGVyLCBwYWdlT3JpZ2luKTsKICAgICBoYXNoZXIuYWRk
Q2hhcmFjdGVyKDApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGQwMzM2OWEyN2VlZmNhZDY5MjkxNzhlYTQ3Mzg3OWVhYmYwNDRkODkuLjM4NThh
ZTFlOTdhMjc1NGYzNjI3N2I5Y2FmMDI1MDM5MjBhYjMxZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wMS0z
MCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5NTkxMS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzcyMworCisgICAgICAgIENhdXNlZCBmcmVxdWVudCBh
c3NlcnRpb24gZmFpbHVyZXMgb24gYm90cyAoUmVxdWVzdGVkIGJ5IGFwIG9uCisgICAgICAgICN3
ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUmVwbGFj
ZSBDYXNlRm9sZGluZ0hhc2ggd2l0aCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2giCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2MzkKKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTk1OTExCisKIDIwMTYtMDEtMzAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgQ2FzZUZvbGRp
bmdIYXNoIHdpdGggQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1lIGIvVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFt
ZQppbmRleCAyNGVhOTcwNTJhMWE3NWY3MWYzNDRlYzM4ZThkOTU1NTZhZDNhNjk0Li5mMGNjYjIx
ZWFjNDRlMjM5YzM4YjRlNDU3OWNhNzU1OTc1OGMzYzVlIDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL2RvLXdlYmNvcmUtcmVuYW1lCisrKyBiL1Rvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5h
bWUKQEAgLTk4LDcgKzk4LDcgQEAgc3ViIHdhbnRlZAogbXkgJGlzRE9NVHlwZVJlbmFtZSA9IDA7
CiBteSAlcmVuYW1lcyA9ICgKICAgICAjIFJlbmFtZXMgZ28gaGVyZSBpbiB0aGUgZm9ybSBvZjoK
LSAgICAiQ2FzZUZvbGRpbmdIYXNoIiA9PiAiQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoIiwKKyAg
ICAiZGVsZXRlQWxsVmFsdWVzIiA9PiAiZGVwcmVjYXRlZERlbGV0ZUFsbFZhbHVlcyIsCiApOwog
CiBteSAlcmVuYW1lc0NvbnRlbXBsYXRlZEZvclRoZUZ1dHVyZSA9ICgK
</data>

          </attachment>
      

    </bug>

</bugzilla>