<?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>152508</bug_id>
          
          <creation_ts>2015-12-22 12:34:44 -0800</creation_ts>
          <short_desc>REGRESSION(r194362): crashes release bot (Requested by mcatanzaro on #webkit).</short_desc>
          <delta_ts>2015-12-22 12:38:01 -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>150550</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1150937</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 12:34:44 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/194362 broke the build:
crashes release bot (Requested by mcatanzaro 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>1150939</commentid>
    <comment_count>1</comment_count>
      <attachid>267796</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 12:35:12 -0800</bug_when>
    <thetext>Created attachment 267796
ROLLOUT of r194362

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>1150940</commentid>
    <comment_count>2</comment_count>
      <attachid>267796</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 12:37:58 -0800</bug_when>
    <thetext>Comment on attachment 267796
ROLLOUT of r194362

Clearing flags on attachment: 267796

Committed r194370: &lt;http://trac.webkit.org/changeset/194370&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150941</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-22 12:38:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267796</attachid>
            <date>2015-12-22 12:35:12 -0800</date>
            <delta_ts>2015-12-22 12:37:58 -0800</delta_ts>
            <desc>ROLLOUT of r194362</desc>
            <filename>bug-152508-20151222123435.patch</filename>
            <type>text/plain</type>
            <size>35940</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBiNTNkZDk4OWUwNTM3
NmRkYTc4ZWExMzgyZTMwZjM4OTk5YjEyNi4uYjk1YzRmYTEzNDlkZjFkMTIxYzAyMDg4OGFiY2Nh
YzQwNWUzYjI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEyLTIyICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTk0MzYyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUyNTA4CisKKyAgICAgICAgY3Jhc2hlcyByZWxlYXNlIGJvdCAoUmVx
dWVzdGVkIGJ5IG1jYXRhbnphcm8gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hh
bmdlc2V0OgorCisgICAgICAgICJbR1RLXSBFdmVyeXRoaW5nIGJyb2tlbiBpbiBHVEsrIDMuMTki
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA1NTAK
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTk0MzYyCisKIDIwMTUt
MTItMjIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIE92ZXJyaWRlc0hhc0luc3RhbmNlIGZyb20gVHlwZUluZm9GbGFncwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuY3BwCmluZGV4IDdiNGQ2OTI1MGE1MDFhYzRk
ZTJkM2U1MTEzN2E3ODgwMDA5NDUzNTcuLjNjMjhlYjczYWVjNjBiYjNkMjUyNmMxZmIxZmE1Mzc5
Y2I1ZjM0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRy
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR1JlZlB0ckd0ay5jcHAK
QEAgLTcyLDIyICs3Miw2IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEdka0N1cnNvciog
cHRyKQogICAgIGlmIChwdHIpCiAgICAgICAgIGdka19jdXJzb3JfdW5yZWYocHRyKTsKIH0KLQot
I2Vsc2UKLQotdGVtcGxhdGUgPD4gR3RrV2lkZ2V0UGF0aCogcmVmR1B0cihHdGtXaWRnZXRQYXRo
KiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX3JlZihwdHIp
OwotICAgIHJldHVybiBwdHI7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZGVyZWZHUHRyKEd0a1dp
ZGdldFBhdGgqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhf
dW5yZWYocHRyKTsKLX0KLQogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R1JlZlB0ckd0ay5oCmluZGV4IGM3MzdlM2Q5MWZjNjdiNjExYjAzOGNkNThjMjMxNGUwMzc3MGE3
YTQuLjhmMDQyNmRiNTFlZDY4ODdlMjRlYTM5YzEzMmI0Nzc4ZmZiODYyYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HUmVmUHRyR3RrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0dSZWZQdHJHdGsuaApAQCAtMjMsNyArMjMsNiBAQAogCiAjaW5j
bHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCi10eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0UGF0
aCBHdGtXaWRnZXRQYXRoOwogdHlwZWRlZiBzdHJ1Y3QgX1NlY3JldFZhbHVlIFNlY3JldFZhbHVl
OwogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTM5LDkgKzM4LDYgQEAgdGVtcGxhdGUgPD4gdm9pZCBk
ZXJlZkdQdHIoU2VjcmV0VmFsdWUqIHB0cik7CiAjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKIHRl
bXBsYXRlIDw+IEdka0N1cnNvciogcmVmR1B0cihHZGtDdXJzb3IqIHB0cik7CiB0ZW1wbGF0ZSA8
PiB2b2lkIGRlcmVmR1B0cihHZGtDdXJzb3IqIHB0cik7Ci0jZWxzZQotdGVtcGxhdGUgPD4gR3Rr
V2lkZ2V0UGF0aCogcmVmR1B0cihHdGtXaWRnZXRQYXRoKiBwdHIpOwotdGVtcGxhdGUgPD4gdm9p
ZCBkZXJlZkdQdHIoR3RrV2lkZ2V0UGF0aCogcHRyKTsKICNlbmRpZgogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAppbmRleCAxNjk4
M2UxMjMxOTc1YWE4ZGI5Y2UyMjI0NDZkZjE2YjgwODM4NDUyLi5lZmFhYjMwMTFjZDFhMzIyYjE3
Y2RkMDE3MWY0NGViNGNjMzE1ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKQEAgLTE2MywxMiArMTYzLDYgQEAgSW50UmVjdCBT
Y3JvbGxiYXJUaGVtZUd0azo6dHJhY2tSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBib29sKQog
fQogCiAjaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCi0KLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04o
MywgMTksIDIpCi0vLyBDdXJyZW50bHkgd2UgdXNlIGEgc3RhdGljIEd0a1N0eWxlQ29udGV4dCBm
b3IgR1RLKyA8IDMuMTksIGFuZCBhIGJ1bmNoIG9mIHVuaXF1ZQotLy8gR3RrU3R5bGVDb250ZXh0
cyBmb3IgR1RLKyA+PSAzLjE5LiBUaGlzIGlzIGNyYXp5IGFuZCBkZWZpbml0ZWx5IHNob3VsZCBu
b3QgYmUgbmVjZXNzYXJ5LCBidXQgSQotLy8gY291bGRuJ3QgZmluZCBhbnkgb3RoZXIgd2F5IHRv
IG5vdCBicmVhayBvbmUgdmVyc2lvbiBvciB0aGUgb3RoZXIuIElkZWFsbHkgb25lIG9mIHRoZSB0
d28KLS8vIHBlb3BsZSBvbiB0aGUgcGxhbmV0IHdobyByZWFsbHkgdW5kZXJzdGFuZCBHVEsrIHN0
eWxlcyB3b3VsZCBmaXggdGhpcy4KIGNsYXNzIFNjcm9sbGJhclN0eWxlQ29udGV4dCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoU2Nyb2xsYmFyU3R5bGVDb250ZXh0KTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xOTcsNyArMTkxLDYgQEAgc3RhdGljIEd0a1N0eWxl
Q29udGV4dCogZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U2Nyb2xsYmFyU3R5bGVDb250ZXh0PiBzdHlsZUNvbnRleHQ7CiAgICAgcmV0dXJuIHN0
eWxlQ29udGV4dC5nZXQoKS5jb250ZXh0KCk7CiB9Ci0jZW5kaWYKIAogU2Nyb2xsYmFyVGhlbWVH
dGs6OlNjcm9sbGJhclRoZW1lR3RrKCkKIHsKQEAgLTIwNiwyOCArMTk5LDE0IEBAIFNjcm9sbGJh
clRoZW1lR3RrOjpTY3JvbGxiYXJUaGVtZUd0aygpCiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVHdGs6
OnRoZW1lQ2hhbmdlZCgpCiB7Ci0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQogICAg
IGd0a19zdHlsZV9jb250ZXh0X2ludmFsaWRhdGUoZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCkp
OwotI2VuZGlmCiAgICAgdXBkYXRlVGhlbWVQcm9wZXJ0aWVzKCk7CiB9CiAKIHZvaWQgU2Nyb2xs
YmFyVGhlbWVHdGs6OnVwZGF0ZVRoZW1lUHJvcGVydGllcygpCiB7Ci0jaWYgR1RLX0NIRUNLX1ZF
UlNJT04oMywgMTksIDIpCi0gICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4
dCA9IGFkb3B0R1JlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7Ci0gICAgR1JlZlB0cjxHdGtX
aWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAg
ICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xM
QkFSKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQo
KSwgMCwgInNjcm9sbGJhciIpOwotCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoc3R5
bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKLSNlbHNlCi0gICAgR1JlZlB0cjxHdGtTdHls
ZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGd0a1Njcm9sbGJhclN0eWxlQ29udGV4dCgpOwotI2Vu
ZGlmCi0KICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoCi0gICAgICAgIHN0eWxlQ29u
dGV4dC5nZXQoKSwKKyAgICAgICAgZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCksCiAgICAgICAg
ICJtaW4tc2xpZGVyLWxlbmd0aCIsICZtX21pblRodW1iTGVuZ3RoLAogICAgICAgICAic2xpZGVy
LXdpZHRoIiwgJm1fdGh1bWJGYXRuZXNzLAogICAgICAgICAidHJvdWdoLWJvcmRlciIsICZtX3Ry
b3VnaEJvcmRlcldpZHRoLApAQCAtMjkzLDE5ICsyNzIsMTEgQEAgSW50UmVjdCBTY3JvbGxiYXJU
aGVtZUd0azo6dGh1bWJSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiB1
bmNvbnMKICAgICByZXR1cm4gSW50UmVjdCh0cmFja1JlY3QueCgpICsgKHRyYWNrUmVjdC53aWR0
aCgpIC0gbV90aHVtYkZhdG5lc3MpIC8gMiwgdHJhY2tSZWN0LnkoKSArIHRodW1iUG9zLCBtX3Ro
dW1iRmF0bmVzcywgdGh1bWJMZW5ndGgoc2Nyb2xsYmFyKSk7CiB9CiAKLQotc3RhdGljIGNvbnN0
IGNoYXIqIG9yaWVudGF0aW9uU3R5bGVDbGFzcyhTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRh
dGlvbikKLXsKLSAgICByZXR1cm4gb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIgPyAi
dmVydGljYWwiIDogImhvcml6b250YWwiOwotfQotCi0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMs
IDE5LCAyKQogc3RhdGljIHZvaWQgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKEd0
a1N0eWxlQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24p
CiB7CiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlMRV9D
TEFTU19TQ1JPTExCQVIpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhjb250ZXh0
LCBvcmllbnRhdGlvblN0eWxlQ2xhc3Mob3JpZW50YXRpb24pKTsKKyAgICBndGtfc3R5bGVfY29u
dGV4dF9hZGRfY2xhc3MoY29udGV4dCwgb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIg
PyAgR1RLX1NUWUxFX0NMQVNTX1ZFUlRJQ0FMIDogR1RLX1NUWUxFX0NMQVNTX0hPUklaT05UQUwp
OwogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGFkanVzdFJlY3RBY2NvcmRpbmdUb01hcmdpbihH
dGtTdHlsZUNvbnRleHQqIGNvbnRleHQsIEd0a1N0YXRlRmxhZ3Mgc3RhdGUsIEludFJlY3QmIHJl
Y3QpCiB7CkBAIC0zMjUsMTI5ICsyOTYsNjIgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6cGFp
bnRUcmFja0JhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXIKICAg
ICBpZiAobV90cm91Z2hVbmRlclN0ZXBwZXJzKQogICAgICAgICBmdWxsU2Nyb2xsYmFyUmVjdCA9
IEludFJlY3Qoc2Nyb2xsYmFyLngoKSwgc2Nyb2xsYmFyLnkoKSwgc2Nyb2xsYmFyLndpZHRoKCks
IHNjcm9sbGJhci5oZWlnaHQoKSk7CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikK
LSAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gc3R5bGVDb250ZXh0ID0gYWRvcHRHUmVmKGd0
a19zdHlsZV9jb250ZXh0X25ldygpKTsKLSAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGgg
PSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKLQotICAgIGd0a193aWRnZXRfcGF0
aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOwotICAgIGd0a193
aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2Nyb2xsYmFy
Iik7Ci0gICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsIG9y
aWVudGF0aW9uU3R5bGVDbGFzcyhzY3JvbGxiYXIub3JpZW50YXRpb24oKSkpOwotCi0gICAgZ3Rr
X3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NDUk9MTEJBUik7
Ci0gICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDEs
ICJ0cm91Z2giKTsKLQotICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKHN0eWxlQ29udGV4
dC5nZXQoKSwgcGF0aC5nZXQoKSk7Ci0jZWxzZQotICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0
PiBzdHlsZUNvbnRleHQgPSBndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKLSAgICBndGtfc3R5
bGVfY29udGV4dF9zYXZlKHN0eWxlQ29udGV4dC5nZXQoKSk7CisgICAgR3RrU3R5bGVDb250ZXh0
KiBzdHlsZUNvbnRleHQgPSBndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKKyAgICBndGtfc3R5
bGVfY29udGV4dF9zYXZlKHN0eWxlQ29udGV4dCk7CiAKLSAgICBhcHBseVNjcm9sbGJhclN0eWxl
Q29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LmdldCgpLCBzY3JvbGxiYXIub3JpZW50YXRpb24o
KSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0eWxlQ29udGV4dC5nZXQoKSwg
R1RLX1NUWUxFX0NMQVNTX1RST1VHSCk7Ci0jZW5kaWYKKyAgICBhcHBseVNjcm9sbGJhclN0eWxl
Q29udGV4dENsYXNzZXMoc3R5bGVDb250ZXh0LCBzY3JvbGxiYXIub3JpZW50YXRpb24oKSk7Cisg
ICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0eWxlQ29udGV4dCwgR1RLX1NUWUxFX0NM
QVNTX1RST1VHSCk7CiAKLSAgICBhZGp1c3RSZWN0QWNjb3JkaW5nVG9NYXJnaW4oc3R5bGVDb250
ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPigwKSwgZnVsbFNjcm9sbGJhclJl
Y3QpOwotICAgIGd0a19yZW5kZXJfYmFja2dyb3VuZChzdHlsZUNvbnRleHQuZ2V0KCksIGNvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGZ1bGxTY3JvbGxiYXJSZWN0LngoKSwgZnVsbFNj
cm9sbGJhclJlY3QueSgpLCBmdWxsU2Nyb2xsYmFyUmVjdC53aWR0aCgpLCBmdWxsU2Nyb2xsYmFy
UmVjdC5oZWlnaHQoKSk7Ci0gICAgZ3RrX3JlbmRlcl9mcmFtZShzdHlsZUNvbnRleHQuZ2V0KCks
IGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGZ1bGxTY3JvbGxiYXJSZWN0LngoKSwg
ZnVsbFNjcm9sbGJhclJlY3QueSgpLCBmdWxsU2Nyb2xsYmFyUmVjdC53aWR0aCgpLCBmdWxsU2Ny
b2xsYmFyUmVjdC5oZWlnaHQoKSk7CisgICAgYWRqdXN0UmVjdEFjY29yZGluZ1RvTWFyZ2luKHN0
eWxlQ29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oMCksIGZ1bGxTY3JvbGxiYXJS
ZWN0KTsKKyAgICBndGtfcmVuZGVyX2JhY2tncm91bmQoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpLT5jcigpLCBmdWxsU2Nyb2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxi
YXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJlY3Qud2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3Qu
aGVpZ2h0KCkpOworICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBs
YXRmb3JtQ29udGV4dCgpLT5jcigpLCBmdWxsU2Nyb2xsYmFyUmVjdC54KCksIGZ1bGxTY3JvbGxi
YXJSZWN0LnkoKSwgZnVsbFNjcm9sbGJhclJlY3Qud2lkdGgoKSwgZnVsbFNjcm9sbGJhclJlY3Qu
aGVpZ2h0KCkpOwogCi0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQotICAgIGd0a19z
dHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250ZXh0LmdldCgpKTsKLSNlbmRpZgorICAgIGd0
a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250ZXh0KTsKIH0KIAogdm9pZCBTY3JvbGxi
YXJUaGVtZUd0azo6cGFpbnRTY3JvbGxiYXJCYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiB7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywg
MTksIDIpCi0gICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGFkb3B0
R1JlZihndGtfc3R5bGVfY29udGV4dF9uZXcoKSk7Ci0gICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRo
PiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAgICBndGtfd2lk
Z2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKLSAg
ICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInNj
cm9sbGJhciIpOwotICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgp
LCAwLCBvcmllbnRhdGlvblN0eWxlQ2xhc3Moc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkpKTsKLQot
ICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKHN0eWxlQ29udGV4dC5nZXQoKSwgcGF0aC5n
ZXQoKSk7Ci0jZWxzZQotICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBzdHlsZUNvbnRleHQg
PSBndGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKLSAgICBndGtfc3R5bGVfY29udGV4dF9zYXZl
KHN0eWxlQ29udGV4dC5nZXQoKSk7Ci0KLSAgICBhcHBseVNjcm9sbGJhclN0eWxlQ29udGV4dENs
YXNzZXMoc3R5bGVDb250ZXh0LmdldCgpLCBzY3JvbGxiYXIub3JpZW50YXRpb24oKSk7Ci0gICAg
Z3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKHN0eWxlQ29udGV4dC5nZXQoKSwgInNjcm9sbGVk
LXdpbmRvdyIpOwotI2VuZGlmCisgICAgR3RrU3R5bGVDb250ZXh0KiBzdHlsZUNvbnRleHQgPSBn
dGtTY3JvbGxiYXJTdHlsZUNvbnRleHQoKTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9zYXZlKHN0
eWxlQ29udGV4dCk7CiAKLSAgICBndGtfcmVuZGVyX2ZyYW1lKHN0eWxlQ29udGV4dC5nZXQoKSwg
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgc2Nyb2xsYmFyLngoKSwgc2Nyb2xsYmFy
LnkoKSwgc2Nyb2xsYmFyLndpZHRoKCksIHNjcm9sbGJhci5oZWlnaHQoKSk7CisgICAgYXBwbHlT
Y3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dCwgc2Nyb2xsYmFyLm9yaWVu
dGF0aW9uKCkpOworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQs
ICJzY3JvbGxlZC13aW5kb3ciKTsKKyAgICBndGtfcmVuZGVyX2ZyYW1lKHN0eWxlQ29udGV4dCwg
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgc2Nyb2xsYmFyLngoKSwgc2Nyb2xsYmFy
LnkoKSwgc2Nyb2xsYmFyLndpZHRoKCksIHNjcm9sbGJhci5oZWlnaHQoKSk7CiAKLSNpZiAhR1RL
X0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfcmVzdG9yZShz
dHlsZUNvbnRleHQuZ2V0KCkpOwotI2VuZGlmCisgICAgZ3RrX3N0eWxlX2NvbnRleHRfcmVzdG9y
ZShzdHlsZUNvbnRleHQpOwogfQogCiB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludFRodW1i
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiB7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCi0gICAgR1Jl
ZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGFkb3B0R1JlZihndGtfc3R5bGVf
Y29udGV4dF9uZXcoKSk7Ci0gICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRH
UmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKLSAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInNjcm9sbGJhciIpOwotICAg
IGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCBvcmllbnRhdGlv
blN0eWxlQ2xhc3Moc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkpKTsKLQotICAgIGd0a193aWRnZXRf
cGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TQ1JPTExCQVIpOwotICAgIGd0
a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAidHJvdWdo
Iik7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZ
UEVfU0NST0xMQkFSKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMiwgInNsaWRlciIpOwotCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3Bh
dGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKLSNlbHNlCi0gICAgR1JlZlB0cjxH
dGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGd0a1Njcm9sbGJhclN0eWxlQ29udGV4dCgp
OwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVDb250ZXh0LmdldCgpKTsKLSNlbmRp
ZgorICAgIEd0a1N0eWxlQ29udGV4dCogc3R5bGVDb250ZXh0ID0gZ3RrU2Nyb2xsYmFyU3R5bGVD
b250ZXh0KCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2F2ZShzdHlsZUNvbnRleHQpOwogCiAg
ICAgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBzY3JvbGxiYXIub3JpZW50YXRp
b24oKTsKLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCi0gICAgYXBwbHlTY3JvbGxi
YXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dC5nZXQoKSwgb3JpZW50YXRpb24pOwot
ICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQuZ2V0KCksIEdUS19T
VFlMRV9DTEFTU19TTElERVIpOwotI2VuZGlmCisgICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRl
eHRDbGFzc2VzKHN0eWxlQ29udGV4dCwgb3JpZW50YXRpb24pOworICAgIGd0a19zdHlsZV9jb250
ZXh0X2FkZF9jbGFzcyhzdHlsZUNvbnRleHQsIEdUS19TVFlMRV9DTEFTU19TTElERVIpOwogCiAg
ICAgZ3VpbnQgZmxhZ3MgPSAwOwogICAgIGlmIChzY3JvbGxiYXIucHJlc3NlZFBhcnQoKSA9PSBU
aHVtYlBhcnQpCiAgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX0FDVElWRTsKICAgICBp
ZiAoc2Nyb2xsYmFyLmhvdmVyZWRQYXJ0KCkgPT0gVGh1bWJQYXJ0KQogICAgICAgICBmbGFncyB8
PSBHVEtfU1RBVEVfRkxBR19QUkVMSUdIVDsKLSAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3Rh
dGUoc3R5bGVDb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncykp
OworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShzdHlsZUNvbnRleHQsIHN0YXRpY19j
YXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSk7CiAKICAgICBJbnRSZWN0IHRodW1iUmVjdChyZWN0
KTsKLSAgICBhZGp1c3RSZWN0QWNjb3JkaW5nVG9NYXJnaW4oc3R5bGVDb250ZXh0LmdldCgpLCBz
dGF0aWNfY2FzdDxHdGtTdGF0ZUZsYWdzPihmbGFncyksIHRodW1iUmVjdCk7Ci0gICAgZ3RrX3Jl
bmRlcl9zbGlkZXIoc3R5bGVDb250ZXh0LmdldCgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgp
LT5jcigpLCB0aHVtYlJlY3QueCgpLCB0aHVtYlJlY3QueSgpLCB0aHVtYlJlY3Qud2lkdGgoKSwg
dGh1bWJSZWN0LmhlaWdodCgpLAorICAgIGFkanVzdFJlY3RBY2NvcmRpbmdUb01hcmdpbihzdHls
ZUNvbnRleHQsIHN0YXRpY19jYXN0PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSwgdGh1bWJSZWN0KTsK
KyAgICBndGtfcmVuZGVyX3NsaWRlcihzdHlsZUNvbnRleHQsIGNvbnRleHQucGxhdGZvcm1Db250
ZXh0KCktPmNyKCksIHRodW1iUmVjdC54KCksIHRodW1iUmVjdC55KCksIHRodW1iUmVjdC53aWR0
aCgpLCB0aHVtYlJlY3QuaGVpZ2h0KCksCiAgICAgICAgIG9yaWVudGF0aW9uID09IFZlcnRpY2Fs
U2Nyb2xsYmFyID8gR1RLX09SSUVOVEFUSU9OX1ZFUlRJQ0FMIDogR1RLX09SSUVOVEFUSU9OX0hP
UklaT05UQUwpOwogCi0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQotICAgIGd0a19z
dHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250ZXh0LmdldCgpKTsKLSNlbmRpZgorICAgIGd0
a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoc3R5bGVDb250ZXh0KTsKIH0KIAogdm9pZCBTY3JvbGxi
YXJUaGVtZUd0azo6cGFpbnRCdXR0b24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxi
YXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCwgU2Nyb2xsYmFyUGFydCBwYXJ0KQog
ewotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQotICAgIEdSZWZQdHI8R3RrU3R5bGVD
b250ZXh0PiBzdHlsZUNvbnRleHQgPSBhZG9wdEdSZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkp
OwotICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0
X3BhdGhfbmV3KCkpOwotCi0gICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0
KCksIEdUS19UWVBFX1NDUk9MTEJBUik7Ci0gICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29i
amVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJzY3JvbGxiYXIiKTsKLSAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgb3JpZW50YXRpb25TdHlsZUNsYXNzKHNj
cm9sbGJhci5vcmllbnRhdGlvbigpKSk7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5
cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NST0xMQkFSKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhf
aXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgImJ1dHRvbiIpOwotCi0gICAgZ3Rr
X3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoc3R5bGVDb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsK
LSNlbHNlCi0gICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dCA9IGd0a1Nj
cm9sbGJhclN0eWxlQ29udGV4dCgpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoc3R5bGVD
b250ZXh0LmdldCgpKTsKLSNlbmRpZgorICAgIEd0a1N0eWxlQ29udGV4dCogc3R5bGVDb250ZXh0
ID0gZ3RrU2Nyb2xsYmFyU3R5bGVDb250ZXh0KCk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2F2
ZShzdHlsZUNvbnRleHQpOwogCiAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24g
PSBzY3JvbGxiYXIub3JpZW50YXRpb24oKTsKLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTks
IDIpCi0gICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRleHRDbGFzc2VzKHN0eWxlQ29udGV4dC5n
ZXQoKSwgb3JpZW50YXRpb24pOwotI2VuZGlmCisgICAgYXBwbHlTY3JvbGxiYXJTdHlsZUNvbnRl
eHRDbGFzc2VzKHN0eWxlQ29udGV4dCwgb3JpZW50YXRpb24pOwogCiAgICAgZ3VpbnQgZmxhZ3Mg
PSAwOwogICAgIGlmICgoQmFja0J1dHRvblN0YXJ0UGFydCA9PSBwYXJ0ICYmIHNjcm9sbGJhci5j
dXJyZW50UG9zKCkpCkBAIC00NjAsMTcgKzM2NCwxNCBAQCB2b2lkIFNjcm9sbGJhclRoZW1lR3Rr
OjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFNjcm9sbGJhciYgc2Nyb2xs
YgogICAgICAgICAgICAgZmxhZ3MgfD0gR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQ7CiAgICAgfSBl
bHNlCiAgICAgICAgIGZsYWdzIHw9IEdUS19TVEFURV9GTEFHX0lOU0VOU0lUSVZFOwotICAgIGd0
a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShzdHlsZUNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0
PEd0a1N0YXRlRmxhZ3M+KGZsYWdzKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3N0YXRl
KHN0eWxlQ29udGV4dCwgc3RhdGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oZmxhZ3MpKTsKIAotI2lm
ICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRf
Y2xhc3Moc3R5bGVDb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfQlVUVE9OKTsKLSNlbmRp
ZgotCi0gICAgZ3RrX3JlbmRlcl9iYWNrZ3JvdW5kKHN0eWxlQ29udGV4dC5nZXQoKSwgY29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRo
KCksIHJlY3QuaGVpZ2h0KCkpOwotICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0Lmdl
dCgpLCBjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCks
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRk
X2NsYXNzKHN0eWxlQ29udGV4dCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7CisgICAgZ3RrX3Jl
bmRlcl9iYWNrZ3JvdW5kKHN0eWxlQ29udGV4dCwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKS0+
Y3IoKSwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwor
ICAgIGd0a19yZW5kZXJfZnJhbWUoc3R5bGVDb250ZXh0LCBjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSk7CiAKICAgICBnZmxvYXQgYXJyb3dTY2FsaW5nOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2dl
dF9zdHlsZShzdHlsZUNvbnRleHQuZ2V0KCksICJhcnJvdy1zY2FsaW5nIiwgJmFycm93U2NhbGlu
ZywgbnVsbHB0cik7CisgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKHN0eWxlQ29udGV4
dCwgImFycm93LXNjYWxpbmciLCAmYXJyb3dTY2FsaW5nLCBudWxscHRyKTsKIAogICAgIGRvdWJs
ZSBhcnJvd1NpemUgPSBzdGQ6Om1pbihyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpICogYXJy
b3dTY2FsaW5nOwogICAgIEZsb2F0UG9pbnQgYXJyb3dQb2ludCgKQEAgLTQ3OSw3ICszODAsNyBA
QCB2b2lkIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIFNjcm9sbGJhciYgc2Nyb2xsYgogCiAgICAgaWYgKGZsYWdzICYgR1RLX1NUQVRFX0ZM
QUdfQUNUSVZFKSB7CiAgICAgICAgIGdpbnQgYXJyb3dEaXNwbGFjZW1lbnRYLCBhcnJvd0Rpc3Bs
YWNlbWVudFk7Ci0gICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShzdHlsZUNvbnRl
eHQuZ2V0KCksICJhcnJvdy1kaXNwbGFjZW1lbnQteCIsICZhcnJvd0Rpc3BsYWNlbWVudFgsICJh
cnJvdy1kaXNwbGFjZW1lbnQteSIsICZhcnJvd0Rpc3BsYWNlbWVudFksIG51bGxwdHIpOworICAg
ICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoc3R5bGVDb250ZXh0LCAiYXJyb3ctZGlz
cGxhY2VtZW50LXgiLCAmYXJyb3dEaXNwbGFjZW1lbnRYLCAiYXJyb3ctZGlzcGxhY2VtZW50LXki
LCAmYXJyb3dEaXNwbGFjZW1lbnRZLCBudWxscHRyKTsKICAgICAgICAgYXJyb3dQb2ludC5tb3Zl
KGFycm93RGlzcGxhY2VtZW50WCwgYXJyb3dEaXNwbGFjZW1lbnRZKTsKICAgICB9CiAKQEAgLTQ4
OSwxMSArMzkwLDkgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnRCdXR0b24oR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBTY3JvbGxiYXImIHNjcm9sbGIKICAgICBlbHNlCiAgICAgICAg
IGFuZ2xlID0gKHBhcnQgPT0gRm9yd2FyZEJ1dHRvbkVuZFBhcnQgfHwgcGFydCA9PSBGb3J3YXJk
QnV0dG9uU3RhcnRQYXJ0KSA/IEdfUEkgLyAyIDogMyAqIChHX1BJIC8gMik7CiAKLSAgICBndGtf
cmVuZGVyX2Fycm93KHN0eWxlQ29udGV4dC5nZXQoKSwgY29udGV4dC5wbGF0Zm9ybUNvbnRleHQo
KS0+Y3IoKSwgYW5nbGUsIGFycm93UG9pbnQueCgpLCBhcnJvd1BvaW50LnkoKSwgYXJyb3dTaXpl
KTsKKyAgICBndGtfcmVuZGVyX2Fycm93KHN0eWxlQ29udGV4dCwgY29udGV4dC5wbGF0Zm9ybUNv
bnRleHQoKS0+Y3IoKSwgYW5nbGUsIGFycm93UG9pbnQueCgpLCBhcnJvd1BvaW50LnkoKSwgYXJy
b3dTaXplKTsKIAotI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKLSAgICBndGtfc3R5
bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4dC5nZXQoKSk7Ci0jZW5kaWYKKyAgICBndGtf
c3R5bGVfY29udGV4dF9yZXN0b3JlKHN0eWxlQ29udGV4dCk7CiB9CiAKIGJvb2wgU2Nyb2xsYmFy
VGhlbWVHdGs6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdy
YXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDYyMGY3YzEyZmRjYzdkZWEzOGU1
OTQwNDg4YzkxYzYxNTY2YWI5ZGMuLjgyOGYyNzdjYjkyMmMwYzUzZDg5NGE5NTllYTQ4YzBmYWE2
NmExZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcApA
QCAtMTUyLDYyICsxNTIsMzQgQEAgc3RhdGljIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjcmVh
dGVTdHlsZUNvbnRleHQoR1R5cGUgd2lkZ2V0VHlwZSkKICAgICAgICAgaW5pdGlhbGl6ZWQgPSB0
cnVlOwogICAgIH0KIAotICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1Jl
ZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkpOwotICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlw
ZShwYXRoLmdldCgpLCB3aWRnZXRUeXBlKTsKKyAgICBHdGtXaWRnZXRQYXRoKiBwYXRoID0gZ3Rr
X3dpZGdldF9wYXRoX25ldygpOworICAgIGd0a193aWRnZXRfcGF0aF9hcHBlbmRfdHlwZShwYXRo
LCB3aWRnZXRUeXBlKTsKIAotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQotICAgIC8v
IFBpY2sgYSBnb29kIGRlZmF1bHQgb2JqZWN0IHBhdGggZm9yIHRoZSBzdHlsZSBjb250ZXh0IGJh
c2VkIG9uIHRoZSB3aWRnZXQgdHlwZS4gVGhpcyB3aWxsCi0gICAgLy8gdXN1YWxseSBuZWVkIHRv
IGJlIG92ZXJyaWRkZW4gbWFudWFsbHksIGJ1dCBpdCBkb2Vzbid0IGh1cnQgdG8gaGF2ZSBhIGdv
b2QgZGVmYXVsdC4KICAgICBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9FTlRSWSkKLSAgICAg
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJl
bnRyeSIpOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwg
R1RLX1NUWUxFX0NMQVNTX0VOVFJZKTsKICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19U
WVBFX0FSUk9XKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMCwgImJ1dHRvbiIpOyAvLyBOb3RlOiBub3QgYSB0eXBvLgorICAgICAgICBn
dGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgImFycm93Iik7CiAgICAgZWxz
ZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9CVVRUT04pIHsKLSAgICAgICAgZ3RrX3dpZGdl
dF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJidXR0b24iKTsKLSAg
ICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsICJ0ZXh0
LWJ1dHRvbiIpOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwg
MCwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVy
X2FkZF9jbGFzcyhwYXRoLCAwLCAidGV4dC1idXR0b24iKTsKICAgICB9IGVsc2UgaWYgKHdpZGdl
dFR5cGUgPT0gR1RLX1RZUEVfU0NBTEUpCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3Nl
dF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2NhbGUiKTsKKyAgICAgICAgZ3RrX3dpZGdl
dF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgsIDAsIEdUS19TVFlMRV9DTEFTU19TQ0FMRSk7CiAg
ICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9TRVBBUkFUT1IpCi0gICAgICAgIGd0
a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2VwYXJh
dG9yIik7CisgICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBH
VEtfU1RZTEVfQ0xBU1NfU0VQQVJBVE9SKTsKICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdU
S19UWVBFX1BST0dSRVNTX0JBUikKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29i
amVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJwcm9ncmVzc2JhciIpOworICAgICAgICBndGtfd2lk
Z2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX1BST0dSRVNT
QkFSKTsKICAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1NQSU5fQlVUVE9OKQot
ICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwg
MCwgInNwaW5idXR0b24iKTsKLSAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1RS
RUVfVklFVykgewotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMCwgInRyZWV2aWV3Iik7Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVy
X2FkZF9jbGFzcyhwYXRoLmdldCgpLCAwLCAidmlldyIpOwotICAgIH0gZWxzZSBpZiAod2lkZ2V0
VHlwZSA9PSBHVEtfVFlQRV9DSEVDS19CVVRUT04pCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9p
dGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiY2hlY2tidXR0b24iKTsKLSAgICBl
bHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1JBRElPX0JVVFRPTikKLSAgICAgICAgZ3Rr
X3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJyYWRpb2J1
dHRvbiIpOwotICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ09NQk9fQk9YKQot
ICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwg
MCwgImNvbWJvYm94Iik7Ci0jZWxzZQotICAgIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0VO
VFJZKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwg
MCwgR1RLX1NUWUxFX0NMQVNTX0VOVFJZKTsKLSAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdU
S19UWVBFX0FSUk9XKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0
aC5nZXQoKSwgMCwgImFycm93Iik7Ci0gICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQ
RV9CVVRUT04pIHsKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgu
Z2V0KCksIDAsIEdUS19TVFlMRV9DTEFTU19CVVRUT04pOwotICAgICAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgInRleHQtYnV0dG9uIik7Ci0gICAgfSBl
bHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1NDQUxFKQotICAgICAgICBndGtfd2lkZ2V0
X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX1NDQUxF
KTsKLSAgICBlbHNlIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX1NFUEFSQVRPUikKLSAgICAg
ICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGguZ2V0KCksIDAsIEdUS19TVFlM
RV9DTEFTU19TRVBBUkFUT1IpOwotICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVf
UFJPR1JFU1NfQkFSKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0
aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX1BST0dSRVNTQkFSKTsKLSAgICBlbHNlIGlmICh3
aWRnZXRUeXBlID09IEdUS19UWVBFX1NQSU5fQlVUVE9OKQotICAgICAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX1NQSU5CVVRU
T04pOworICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RL
X1NUWUxFX0NMQVNTX1NQSU5CVVRUT04pOwogICAgIGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RL
X1RZUEVfVFJFRV9WSUVXKQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3Mo
cGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NMQVNTX1ZJRVcpOworICAgICAgICBndGtfd2lkZ2V0
X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aCwgMCwgR1RLX1NUWUxFX0NMQVNTX1ZJRVcpOwogICAg
IGVsc2UgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKQotICAgICAgICBn
dGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5nZXQoKSwgMCwgR1RLX1NUWUxFX0NM
QVNTX0NIRUNLKTsKKyAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRkX2NsYXNzKHBhdGgs
IDAsIEdUS19TVFlMRV9DTEFTU19DSEVDSyk7CiAgICAgZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBH
VEtfVFlQRV9SQURJT19CVVRUT04pCi0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9j
bGFzcyhwYXRoLmdldCgpLCAwLCBHVEtfU1RZTEVfQ0xBU1NfUkFESU8pOwotI2VuZGlmCisgICAg
ICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLCAwLCBHVEtfU1RZTEVfQ0xB
U1NfUkFESU8pOwogCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBhZG9w
dEdSZWYoZ3RrX3N0eWxlX2NvbnRleHRfbmV3KCkpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X3Nl
dF9wYXRoKGNvbnRleHQuZ2V0KCksIHBhdGguZ2V0KCkpOworICAgIGd0a19zdHlsZV9jb250ZXh0
X3NldF9wYXRoKGNvbnRleHQuZ2V0KCksIHBhdGgpOworICAgIGd0a193aWRnZXRfcGF0aF9mcmVl
KHBhdGgpOwogCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CkBAIC00ODAsNyArNDUyLDkgQEAgc3Rh
dGljIHZvaWQgc2V0VG9nZ2xlU2l6ZShHVHlwZSB3aWRnZXRUeXBlLCBSZW5kZXJTdHlsZSYgc3R5
bGUpCiAgICAgaWYgKCFzdHlsZS53aWR0aCgpLmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXN0eWxl
LmhlaWdodCgpLmlzQXV0bygpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBPdGhlciBwb3J0
cyBoYXJkLWNvZGUgdGhpcyB0byAxMy4gR1RLKyB1c2VycyB0ZW5kIHRvIGRlbWFuZCB0aGUgbmF0
aXZlIGxvb2suCisgICAgLy8gT3RoZXIgcG9ydHMgaGFyZC1jb2RlIHRoaXMgdG8gMTMgd2hpY2gg
aXMgYWxzbyB0aGUgZGVmYXVsdCB2YWx1ZSBkZWZpbmVkIGJ5IEdUSysuCisgICAgLy8gR1RLKyB1
c2VycyB0ZW5kIHRvIGRlbWFuZCB0aGUgbmF0aXZlIGxvb2suCisgICAgLy8gSXQgY291bGQgYmUg
bWFkZSBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHZhbHVlcyBvdGhlciB0aGFuIDEzIGFjdHVhbGx5
IGJyZWFrIHNpdGUgY29tcGF0aWJpbGl0eS4KICAgICBnaW50IGluZGljYXRvclNpemU7CiAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0eWxlKGNvbnRleHQuZ2V0KCksICJpbmRpY2F0b3Itc2l6
ZSIsICZpbmRpY2F0b3JTaXplLCBudWxscHRyKTsKIApAQCAtNDk0LDM3ICs0NjgsNiBAQCBzdGF0
aWMgdm9pZCBzZXRUb2dnbGVTaXplKEdUeXBlIHdpZGdldFR5cGUsIFJlbmRlclN0eWxlJiBzdHls
ZSkKIHN0YXRpYyB2b2lkIHBhaW50VG9nZ2xlKGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVtZSwg
R1R5cGUgd2lkZ2V0VHlwZSwgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0
IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBmdWxsUmVjdCkKIHsKICAgICBH
UmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dCh3aWRn
ZXRUeXBlKTsKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKLSAgICBHUmVmUHRyPEd0
a1dpZGdldFBhdGg+IHBhdGggPSBhZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKLQot
ICAgIGlmICh3aWRnZXRUeXBlID09IEdUS19UWVBFX0NIRUNLX0JVVFRPTikgewotICAgICAgICBp
ZiAodGhlbWUtPmlzQ2hlY2tlZChyZW5kZXJPYmplY3QpIHx8IHRoZW1lLT5pc0luZGV0ZXJtaW5h
dGUocmVuZGVyT2JqZWN0KSkgewotICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90
eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX0NIRUNLX0JVVFRPTik7Ci0gICAgICAgICAgICBndGtf
d2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgImNoZWNrYnV0
dG9uIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfYXBw
ZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKTsKLSAgICAgICAgICAg
IGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAiYnV0
dG9uIik7Ci0gICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9hZGRfY2xhc3MocGF0aC5n
ZXQoKSwgMCwgImNoZWNrIik7Ci0gICAgICAgIH0KLQotICAgICAgICBndGtfd2lkZ2V0X3BhdGhf
YXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfQ0hFQ0tfQlVUVE9OKTsKLSAgICAgICAg
Z3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDEsICJjaGVj
ayIpOwotICAgIH0gZWxzZSBpZiAod2lkZ2V0VHlwZSA9PSBHVEtfVFlQRV9SQURJT19CVVRUT04p
IHsKLSAgICAgICAgaWYgKHRoZW1lLT5pc0NoZWNrZWQocmVuZGVyT2JqZWN0KSB8fCB0aGVtZS0+
aXNJbmRldGVybWluYXRlKHJlbmRlck9iamVjdCkpIHsKLSAgICAgICAgICAgIGd0a193aWRnZXRf
cGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9SQURJT19CVVRUT04pOwotICAg
ICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCks
IDAsICJyYWRpb2J1dHRvbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ3RrX3dp
ZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1JBRElPX0JVVFRPTik7
Ci0gICAgICAgICAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMCwgImJ1dHRvbiIpOwotICAgICAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfYWRk
X2NsYXNzKHBhdGguZ2V0KCksIDAsICJyYWRpbyIpOwotICAgICAgICB9Ci0KLSAgICAgICAgZ3Rr
X3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1JBRElPX0JVVFRP
Tik7Ci0gICAgICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdl
dCgpLCAxLCAicmFkaW8iKTsKLSAgICB9Ci0KLSAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0
aChjb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsKLSNlbmRpZgogCiAgICAgLy8gU29tZSB0aGVt
ZXMgZG8gbm90IHJlbmRlciBsYXJnZSB0b2dnbGUgYnV0dG9ucyBwcm9wZXJseSwgc28gd2Ugc2lt
cGx5CiAgICAgLy8gc2hyaW5rIHRoZSByZWN0YW5nbGUgYmFjayBkb3duIHRvIHRoZSBkZWZhdWx0
IHNpemUgYW5kIHRoZW4gY2VudGVyIGl0CkBAIC01NDQsMTIgKzQ4Nyw3IEBAIHN0YXRpYyB2b2lk
IHBhaW50VG9nZ2xlKGNvbnN0IFJlbmRlclRoZW1lR3RrKiB0aGVtZSwgR1R5cGUgd2lkZ2V0VHlw
ZSwgY29uc3QgUmVuCiAgICAgfQogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlv
bihjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtUZXh0RGlyZWN0aW9uPihndGtUZXh0RGly
ZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSkpOwotCi0jaWYgR1RLX0NI
RUNLX1ZFUlNJT04oMywgMTksIDIpCi0gICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNv
bnRleHQuZ2V0KCksICJ0b2dnbGUiKTsKLSNlbHNlCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRk
X2NsYXNzKGNvbnRleHQuZ2V0KCksIHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfQ0hFQ0tfQlVUVE9O
ID8gR1RLX1NUWUxFX0NMQVNTX0NIRUNLIDogR1RLX1NUWUxFX0NMQVNTX1JBRElPKTsKLSNlbmRp
ZgogCiAgICAgZ3VpbnQgZmxhZ3MgPSAwOwogICAgIGlmICghdGhlbWUtPmlzRW5hYmxlZChyZW5k
ZXJPYmplY3QpKQpAQCAtNjc2LDkgKzYxNCw3IEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50
QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluCiAg
ICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQo
R1RLX1RZUEVfQlVUVE9OKTsKIAogICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24o
Y29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZ3RrVGV4dERpcmVj
dGlvbihyZW5kZXJPYmplY3Quc3R5bGUoKS5kaXJlY3Rpb24oKSkpKTsKLSNpZiAhR1RLX0NIRUNL
X1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRl
eHQuZ2V0KCksIEdUS19TVFlMRV9DTEFTU19CVVRUT04pOwotI2VuZGlmCiAKICAgICByZW5kZXJC
dXR0b24odGhpcywgY29udGV4dC5nZXQoKSwgcmVuZGVyT2JqZWN0LCBwYWludEluZm8sIHJlY3Qp
OwogCkBAIC03MDcsMjAgKzY0Myw4IEBAIHN0YXRpYyB2b2lkIGdldENvbWJvQm94TWV0cmljcyhS
ZW5kZXJTdHlsZSYgc3R5bGUsIEd0a0JvcmRlciYgYm9yZGVyLCBpbnQmIGZvY3VzCiAgICAgICAg
IHJldHVybjsKIAogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRl
U3R5bGVDb250ZXh0KEdUS19UWVBFX0NPTUJPX0JPWCk7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MywgMTksIDIpCi0gICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0
a193aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUo
cGF0aC5nZXQoKSwgR1RLX1RZUEVfQ09NQk9fQk9YKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRl
cl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgImNvbWJvYm94Iik7CiAKLSAgICBndGtf
d2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfQ09NQk9fQk9YKTsK
LSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwg
ImJ1dHRvbiIpOwotICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdldCgp
LCAxLCAiY29tYm8iKTsKLQotICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9wYXRoKGNvbnRleHQu
Z2V0KCksIHBhdGguZ2V0KCkpOwotI2Vsc2UKICAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xh
c3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX0JVVFRPTik7Ci0jZW5kaWYKICAgICBn
dGtfc3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0
PEd0a1RleHREaXJlY3Rpb24+KGd0a1RleHREaXJlY3Rpb24oc3R5bGUuZGlyZWN0aW9uKCkpKSk7
CiAKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUoY29udGV4dC5nZXQoKSwgc3RhdGlj
X2Nhc3Q8R3RrU3RhdGVGbGFncz4oMCkpOwpAQCAtNzM1LDkgKzY1OSw3IEBAIHN0YXRpYyB2b2lk
IGdldENvbWJvQm94TWV0cmljcyhSZW5kZXJTdHlsZSYgc3R5bGUsIEd0a0JvcmRlciYgYm9yZGVy
LCBpbnQmIGZvY3VzCiAKICAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IHN0YXRpY19j
YXN0PEd0a1RleHREaXJlY3Rpb24+KGd0a1RleHREaXJlY3Rpb24oc3R5bGUuZGlyZWN0aW9uKCkp
KTsKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQuZ2V0KCksIGRp
cmVjdGlvbik7Ci0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQogICAgIGd0a19zdHls
ZV9jb250ZXh0X2FkZF9jbGFzcyhjb250ZXh0LmdldCgpLCAic2VwYXJhdG9yIik7Ci0jZW5kaWYK
IAogICAgIGdib29sZWFuIHdpZGVTZXBhcmF0b3JzOwogICAgIGdpbnQgc2VwYXJhdG9yV2lkdGg7
CkBAIC03OTksOSArNzIxLDcgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdChj
b25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnQKICAgICAvLyBQYWlu
dCB0aGUgYnV0dG9uLgogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBidXR0b25TdHlsZUNv
bnRleHQgPSBjcmVhdGVTdHlsZUNvbnRleHQoR1RLX1RZUEVfQlVUVE9OKTsKICAgICBndGtfc3R5
bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGJ1dHRvblN0eWxlQ29udGV4dC5nZXQoKSwgZGlyZWN0
aW9uKTsKLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfYWRkX2NsYXNzKGJ1dHRvblN0eWxlQ29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNT
X0JVVFRPTik7Ci0jZW5kaWYKICAgICByZW5kZXJCdXR0b24odGhpcywgYnV0dG9uU3R5bGVDb250
ZXh0LmdldCgpLCByZW5kZXJPYmplY3QsIHBhaW50SW5mbywgcmVjdCk7CiAKICAgICAvLyBHZXQg
dGhlIGlubmVyIHJlY3RhbmdsZS4KQEAgLTgzOCwxMCArNzU4LDggQEAgYm9vbCBSZW5kZXJUaGVt
ZUd0azo6cGFpbnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29u
c3QgUGFpbnQKICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gYXJyb3dTdHlsZUNvbnRleHQg
PSBjcmVhdGVTdHlsZUNvbnRleHQoR1RLX1RZUEVfQVJST1cpOwogCiAgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfc2V0X2RpcmVjdGlvbihhcnJvd1N0eWxlQ29udGV4dC5nZXQoKSwgZGlyZWN0aW9uKTsK
LSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRf
YWRkX2NsYXNzKGFycm93U3R5bGVDb250ZXh0LmdldCgpLCAiYXJyb3ciKTsKICAgICBndGtfc3R5
bGVfY29udGV4dF9hZGRfY2xhc3MoYXJyb3dTdHlsZUNvbnRleHQuZ2V0KCksIEdUS19TVFlMRV9D
TEFTU19CVVRUT04pOwotI2VuZGlmCiAKICAgICBnZmxvYXQgYXJyb3dTY2FsaW5nOwogICAgIGd0
a19zdHlsZV9jb250ZXh0X2dldF9zdHlsZShhcnJvd1N0eWxlQ29udGV4dC5nZXQoKSwgImFycm93
LXNjYWxpbmciLCAmYXJyb3dTY2FsaW5nLCBudWxscHRyKTsKQEAgLTg2MSwxOCArNzc5LDkgQEAg
Ym9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmIHJl
bmRlck9iamVjdCwgY29uc3QgUGFpbnQKIAogICAgIC8vIFBhaW50IHRoZSBzZXBhcmF0b3IgaWYg
bmVlZGVkLgogICAgIEdSZWZQdHI8R3RrU3R5bGVDb250ZXh0PiBzZXBhcmF0b3JTdHlsZUNvbnRl
eHQgPSBjcmVhdGVTdHlsZUNvbnRleHQoR1RLX1RZUEVfQ09NQk9fQk9YKTsKLSNpZiBHVEtfQ0hF
Q0tfVkVSU0lPTigzLCAxOSwgMikKLSAgICBHUmVmUHRyPEd0a1dpZGdldFBhdGg+IHBhdGggPSBh
ZG9wdEdSZWYoZ3RrX3dpZGdldF9wYXRoX25ldygpKTsKLQotICAgIGd0a193aWRnZXRfcGF0aF9h
cHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9TRVBBUkFUT1IpOwotICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic2VwYXJhdG9yIik7
Ci0KLSAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChzZXBhcmF0b3JTdHlsZUNvbnRleHQu
Z2V0KCksIHBhdGguZ2V0KCkpOwotI2Vsc2UKLSAgICBndGtfc3R5bGVfY29udGV4dF9hZGRfY2xh
c3Moc2VwYXJhdG9yU3R5bGVDb250ZXh0LmdldCgpLCAic2VwYXJhdG9yIik7Ci0jZW5kaWYKIAog
ICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oc2VwYXJhdG9yU3R5bGVDb250ZXh0
LmdldCgpLCBkaXJlY3Rpb24pOworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhzZXBh
cmF0b3JTdHlsZUNvbnRleHQuZ2V0KCksICJzZXBhcmF0b3IiKTsKIAogICAgIGdib29sZWFuIHdp
ZGVTZXBhcmF0b3JzOwogICAgIGdpbnQgc2VwYXJhdG9yV2lkdGg7CkBAIC05MjIsOSArODMxLDcg
QEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0
JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhaW4KICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4g
Y29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChHVEtfVFlQRV9FTlRSWSk7CiAKICAgICBndGtf
c3R5bGVfY29udGV4dF9zZXRfZGlyZWN0aW9uKGNvbnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0
a1RleHREaXJlY3Rpb24+KGd0a1RleHREaXJlY3Rpb24ocmVuZGVyT2JqZWN0LnN0eWxlKCkuZGly
ZWN0aW9uKCkpKSk7Ci0jaWYgIUdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAyKQogICAgIGd0a19z
dHlsZV9jb250ZXh0X2FkZF9jbGFzcyhjb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfRU5U
UlkpOwotI2VuZGlmCiAKICAgICBndWludCBmbGFncyA9IDA7CiAgICAgaWYgKCFpc0VuYWJsZWQo
cmVuZGVyT2JqZWN0KSB8fCBpc1JlYWRPbmx5Q29udHJvbChyZW5kZXJPYmplY3QpKQpAQCAtMTEz
NCw5ICsxMDQxLDcgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0U2xpZGVyVGh1bWJTdHls
ZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBSZW5kZXIKIAogc3RhdGljIHZvaWQgYXBw
bHlTbGlkZXJTdHlsZUNvbnRleHRDbGFzc2VzKEd0a1N0eWxlQ29udGV4dCogY29udGV4dCwgQ29u
dHJvbFBhcnQgcGFydCkKIHsKLSNpZiAhR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCiAgICAg
Z3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlMRV9DTEFTU19TQ0FM
RSk7Ci0jZW5kaWYKICAgICBpZiAocGFydCA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCB8fCBwYXJ0
ID09IFNsaWRlclRodW1iSG9yaXpvbnRhbFBhcnQpCiAgICAgICAgIGd0a19zdHlsZV9jb250ZXh0
X2FkZF9jbGFzcyhjb250ZXh0LCBHVEtfU1RZTEVfQ0xBU1NfSE9SSVpPTlRBTCk7CiAgICAgZWxz
ZSBpZiAocGFydCA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgcGFydCA9PSBTbGlkZXJUaHVtYlZl
cnRpY2FsUGFydCkKQEAgLTExNDksMjMgKzEwNTQsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZUd0azo6
cGFpbnRTbGlkZXJUcmFjayhjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3Qg
UGEKICAgICBBU1NFUlRfVU5VU0VEKHBhcnQsIHBhcnQgPT0gU2xpZGVySG9yaXpvbnRhbFBhcnQg
fHwgcGFydCA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQgfHwgcGFydCA9PSBNZWRpYVZvbHVtZVNsaWRl
clBhcnQpOwogCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVT
dHlsZUNvbnRleHQoR1RLX1RZUEVfU0NBTEUpOwotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5
LCAyKQotICAgIEdSZWZQdHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lk
Z2V0X3BhdGhfbmV3KCkpOwotCi0gICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGgu
Z2V0KCksIEdUS19UWVBFX1NDQUxFKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2Jq
ZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInNjYWxlIik7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhf
YXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NBTEUpOwotICAgIGd0a193aWRnZXRf
cGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAidHJvdWdoIik7Ci0KLSAg
ICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoLmdldCgpKTsK
LSNlbmRpZgogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0Lmdl
dCgpLCBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpKSk7
CiAgICAgYXBwbHlTbGlkZXJTdHlsZUNvbnRleHRDbGFzc2VzKGNvbnRleHQuZ2V0KCksIHBhcnQp
OwotI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKICAgICBndGtfc3R5bGVfY29udGV4
dF9hZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNTX1RST1VHSCk7Ci0jZW5k
aWYKIAogICAgIGlmICghaXNFbmFibGVkKHJlbmRlck9iamVjdCkpCiAgICAgICAgIGd0a19zdHls
ZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBHVEtfU1RBVEVfRkxBR19JTlNFTlNJ
VElWRSk7CkBAIC0xMTkwLDI0ICsxMDgyLDEwIEBAIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50
U2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNvbnN0IFBhCiAg
ICAgQVNTRVJUKHBhcnQgPT0gU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCB8fCBwYXJ0ID09IFNs
aWRlclRodW1iVmVydGljYWxQYXJ0IHx8IHBhcnQgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBh
cnQpOwogCiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHls
ZUNvbnRleHQoR1RLX1RZUEVfU0NBTEUpOwotI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDE5LCAy
KQotICAgIC8vIEZJWE1FOiBUaGUgZW50aXJlIHNsaWRlciBpcyB0b28gd2lkZSwgc3RyZXRjaGlu
ZyB0aGUgdGh1bWIgaW50byBhbiBvdmFsIHJhdGhlciB0aGFuIGEgY2lyY2xlLgotICAgIEdSZWZQ
dHI8R3RrV2lkZ2V0UGF0aD4gcGF0aCA9IGFkb3B0R1JlZihndGtfd2lkZ2V0X3BhdGhfbmV3KCkp
OwotCi0gICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBF
X1NDQUxFKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMCwgInNjYWxlIik7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0
aC5nZXQoKSwgR1RLX1RZUEVfU0NBTEUpOwotICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX3NldF9v
YmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAidHJvdWdoIik7Ci0KLSAgICBndGtfd2lkZ2V0X3Bh
dGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfU0NBTEUpOwotICAgIGd0a193aWRn
ZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAyLCAic2xpZGVyIik7Ci0K
LSAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LmdldCgpLCBwYXRoLmdldCgp
KTsKLSNlbmRpZgogCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0
LmdldCgpLCBndGtUZXh0RGlyZWN0aW9uKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigp
KSk7CiAgICAgYXBwbHlTbGlkZXJTdHlsZUNvbnRleHRDbGFzc2VzKGNvbnRleHQuZ2V0KCksIHBh
cnQpOworICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9jbGFzcyhjb250ZXh0LmdldCgpLCBHVEtf
U1RZTEVfQ0xBU1NfU0xJREVSKTsKIAogICAgIGd1aW50IGZsYWdzID0gMDsKICAgICBpZiAoIWlz
RW5hYmxlZChyZW5kZXJPYmplY3QpKQpAQCAtMTI0OSw0MiArMTEyNywxNiBAQCBib29sIFJlbmRl
clRoZW1lR3RrOjpwYWludFByb2dyZXNzQmFyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2Jq
ZWN0LCBjb25zdCBQYQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIEdSZWZQdHI8R3RrU3R5
bGVDb250ZXh0PiBjb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KEdUS19UWVBFX1BST0dSRVNT
X0JBUik7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMTksIDIpCi0gICAgR1JlZlB0cjxHdGtX
aWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAg
ICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JF
U1NfQkFSKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5n
ZXQoKSwgMCwgInByb2dyZXNzYmFyIik7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5
cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKLSAgICBndGtfd2lkZ2V0X3Bh
dGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOwotCi0gICAg
Z3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7Ci0j
ZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X3NhdmUoY29udGV4dC5nZXQoKSk7CisKICAgICBn
dGtfc3R5bGVfY29udGV4dF9hZGRfY2xhc3MoY29udGV4dC5nZXQoKSwgR1RLX1NUWUxFX0NMQVNT
X1RST1VHSCk7Ci0jZW5kaWYKIAogICAgIGd0a19yZW5kZXJfYmFja2dyb3VuZChjb250ZXh0Lmdl
dCgpLCBwYWludEluZm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0Lngo
KSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgZ3RrX3JlbmRl
cl9mcmFtZShjb250ZXh0LmdldCgpLCBwYWludEluZm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4
dCgpLT5jcigpLCByZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSk7CiAKLSNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCAxOSwgMikKLSAgICBwYXRoID0gYWRvcHRH
UmVmKGd0a193aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5k
X3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVfUFJPR1JFU1NfQkFSKTsKLSAgICBndGtfd2lkZ2V0
X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwgMCwgInByb2dyZXNzYmFyIik7
Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0aC5nZXQoKSwgR1RLX1RZUEVf
UFJPR1JFU1NfQkFSKTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUo
cGF0aC5nZXQoKSwgMSwgInRyb3VnaCIpOwotCi0gICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90
eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1BST0dSRVNTX0JBUik7Ci0gICAgZ3RrX3dpZGdldF9w
YXRoX2l0ZXJfc2V0X29iamVjdF9uYW1lKHBhdGguZ2V0KCksIDIsICJwcm9ncmVzcyIpOwotCi0g
ICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQoKSwgcGF0aC5nZXQoKSk7
Ci0jZWxzZQogICAgIGd0a19zdHlsZV9jb250ZXh0X3Jlc3RvcmUoY29udGV4dC5nZXQoKSk7Ci0g
ICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQuZ2V0KCksIEdUS19TVFlMRV9D
TEFTU19QUk9HUkVTU0JBUik7Ci0jZW5kaWYKIAorICAgIGd0a19zdHlsZV9jb250ZXh0X2FkZF9j
bGFzcyhjb250ZXh0LmdldCgpLCBHVEtfU1RZTEVfQ0xBU1NfUFJPR1JFU1NCQVIpOwogICAgIGd0
a19zdHlsZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtT
dGF0ZUZsYWdzPigwKSk7CiAKICAgICBHdGtCb3JkZXIgcGFkZGluZzsKQEAgLTEzMzYsMjEgKzEx
ODgsNyBAQCBzdGF0aWMgdm9pZCBwYWludFNwaW5BcnJvd0J1dHRvbihSZW5kZXJUaGVtZSogdGhl
bWUsIEd0a1N0eWxlQ29udGV4dCogY29udGV4dCwgYwogICAgIEFTU0VSVChhcnJvd1R5cGUgPT0g
R1RLX0FSUk9XX1VQIHx8IGFycm93VHlwZSA9PSBHVEtfQVJST1dfRE9XTik7CiAKICAgICBndGtf
c3R5bGVfY29udGV4dF9zYXZlKGNvbnRleHQpOwotCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywg
MTksIDIpCi0gICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193
aWRnZXRfcGF0aF9uZXcoKSk7Ci0KLSAgICBndGtfd2lkZ2V0X3BhdGhfYXBwZW5kX3R5cGUocGF0
aC5nZXQoKSwgR1RLX1RZUEVfU1BJTl9CVVRUT04pOwotICAgIGd0a193aWRnZXRfcGF0aF9pdGVy
X3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAwLCAic3BpbmJ1dHRvbiIpOwotCi0gICAgZ3Rr
X3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0KCksIEdUS19UWVBFX1NQSU5fQlVUVE9O
KTsKLSAgICBndGtfd2lkZ2V0X3BhdGhfaXRlcl9zZXRfb2JqZWN0X25hbWUocGF0aC5nZXQoKSwg
MSwgImJ1dHRvbiIpOwotICAgIGd0a193aWRnZXRfcGF0aF9pdGVyX2FkZF9jbGFzcyhwYXRoLmdl
dCgpLCAxLCBhcnJvd1R5cGUgPT0gR1RLX0FSUk9XX1VQID8gInVwIiA6ICJkb3duIik7Ci0KLSAg
ICBndGtfc3R5bGVfY29udGV4dF9zZXRfcGF0aChjb250ZXh0LCBwYXRoLmdldCgpKTsKLSNlbHNl
CiAgICAgZ3RrX3N0eWxlX2NvbnRleHRfYWRkX2NsYXNzKGNvbnRleHQsIEdUS19TVFlMRV9DTEFT
U19CVVRUT04pOwotI2VuZGlmCiAKICAgICBHdGtUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGd0
a19zdHlsZV9jb250ZXh0X2dldF9kaXJlY3Rpb24oY29udGV4dCk7CiAgICAgZ3VpbnQgc3RhdGUg
PSBzdGF0aWNfY2FzdDxndWludD4oZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNvbnRleHQp
KTsKQEAgLTE0NTEsMjggKzEyODksMTYgQEAgZW51bSBTdHlsZUNvbG9yVHlwZSB7IFN0eWxlQ29s
b3JCYWNrZ3JvdW5kLCBTdHlsZUNvbG9yRm9yZWdyb3VuZCB9OwogCiBzdGF0aWMgQ29sb3Igc3R5
bGVDb2xvcihHVHlwZSB3aWRnZXRUeXBlLCBHdGtTdGF0ZUZsYWdzIHN0YXRlLCBTdHlsZUNvbG9y
VHlwZSBjb2xvclR5cGUpCiB7Ci0gICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQg
PSBjcmVhdGVTdHlsZUNvbnRleHQod2lkZ2V0VHlwZSk7Ci0jaWYgR1RLX0NIRUNLX1ZFUlNJT04o
MywgMTksIDIpCi0gICAgaWYgKHdpZGdldFR5cGUgPT0gR1RLX1RZUEVfRU5UUlkpIHsKLSAgICAg
ICAgR1JlZlB0cjxHdGtXaWRnZXRQYXRoPiBwYXRoID0gYWRvcHRHUmVmKGd0a193aWRnZXRfcGF0
aF9uZXcoKSk7Ci0KLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2FwcGVuZF90eXBlKHBhdGguZ2V0
KCksIEdUS19UWVBFX0VOVFJZKTsKLSAgICAgICAgZ3RrX3dpZGdldF9wYXRoX2l0ZXJfc2V0X29i
amVjdF9uYW1lKHBhdGguZ2V0KCksIDAsICJlbnRyeSIpOwotCi0gICAgICAgIGd0a193aWRnZXRf
cGF0aF9hcHBlbmRfdHlwZShwYXRoLmdldCgpLCBHVEtfVFlQRV9FTlRSWSk7Ci0gICAgICAgIGd0
a193aWRnZXRfcGF0aF9pdGVyX3NldF9vYmplY3RfbmFtZShwYXRoLmdldCgpLCAxLCAic2VsZWN0
aW9uIik7Ci0KLSAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfc2V0X3BhdGgoY29udGV4dC5nZXQo
KSwgcGF0aC5nZXQoKSk7Ci0gICAgfQotI2VuZGlmCiAKKyAgICBHUmVmUHRyPEd0a1N0eWxlQ29u
dGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dCh3aWRnZXRUeXBlKTsKKyAgICAvLyBS
ZWNlbnQgR1RLKyB2ZXJzaW9ucyAoPiAzLjE0KSByZXF1aXJlIHRvIGV4cGxpY2l0bHkgc2V0IHRo
ZSBzdGF0ZSBiZWZvcmUgZ2V0dGluZyB0aGUgY29sb3IuCiAgICAgZ3RrX3N0eWxlX2NvbnRleHRf
c2V0X3N0YXRlKGNvbnRleHQuZ2V0KCksIHN0YXRlKTsKIAogICAgIEdka1JHQkEgZ2RrUkdCQUNv
bG9yOwogICAgIGlmIChjb2xvclR5cGUgPT0gU3R5bGVDb2xvckJhY2tncm91bmQpCi0gICAgICAg
IGd0a19zdHlsZV9jb250ZXh0X2dldF9iYWNrZ3JvdW5kX2NvbG9yKGNvbnRleHQuZ2V0KCksIHN0
YXRlLCAmZ2RrUkdCQUNvbG9yKTsKKyAgICAgICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JhY2tn
cm91bmRfY29sb3IoY29udGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNv
bnRleHQuZ2V0KCkpLCAmZ2RrUkdCQUNvbG9yKTsKICAgICBlbHNlCi0gICAgICAgIGd0a19zdHls
ZV9jb250ZXh0X2dldF9jb2xvcihjb250ZXh0LmdldCgpLCBzdGF0ZSwgJmdka1JHQkFDb2xvcik7
CisgICAgICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9jb2xvcihjb250ZXh0LmdldCgpLCBndGtf
c3R5bGVfY29udGV4dF9nZXRfc3RhdGUoY29udGV4dC5nZXQoKSksICZnZGtSR0JBQ29sb3IpOwog
ICAgIHJldHVybiBnZGtSR0JBQ29sb3I7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>