public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/687
@ 2001-04-01  0:00 lerdsuwa
  0 siblings, 0 replies; only message in thread
From: lerdsuwa @ 2001-04-01  0:00 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c++/687; it has been noted by GNATS.

From: lerdsuwa@gcc.gnu.org
To: bagnara@cs.unipr.it, gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/687
Date: 4 Feb 2001 13:53:21 -0000

 Synopsis: c++: Internal error: Segmentation fault (program cc1plus)
 
 State-Changed-From-To: open->closed
 State-Changed-By: lerdsuwa
 State-Changed-When: Sun Feb  4 05:53:21 2001
 State-Changed-Why:
     Fixed in the CVS (tested with snapshot 20010123).
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=687&database=gcc
>From jfb37@mrao.cam.ac.uk Sun Apr 01 00:00:00 2001
From: jfb37@mrao.cam.ac.uk
To: gcc-gnats@gcc.gnu.org
Subject: c++/1766: g++ gives ICE on parse error
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010125102413.27787.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg00707.html
Content-length: 35466

>Number:         1766
>Category:       c++
>Synopsis:       g++ gives ICE on parse error
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          ice-on-illegal-code
>Submitter-Id:   net
>Arrival-Date:   Thu Jan 25 02:26:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jacques Basson
>Release:        gcc version 2.96 20000731 (Red Hat Linux 7.0)
>Organization:
>Environment:
Linux 2.2.16-3
i686
>Description:
10:04, src > g++ -c temp.cpp -o temp.o --save-temps
temp.cpp: In function `int out_result (float)':
temp.cpp:6: parse error before `else'
temp.cpp:8: Internal error #122.
temp.cpp:8: Internal compiler error in finish_function, at 
../gcc/cp/decl.c:14422
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
>How-To-Repeat:
#include <iostream>

int out_result(float test) {
  if (test<0)
    cout << "ERR\n"
  else
    cout << test << '\n';
}
>Fix:
Dunno (Don't leave out semi-colon:-))
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="temp.ii"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="temp.ii"

IyAxICJ0ZW1wLmNwcCIKCiMgNyAiL3Vzci9pbmNsdWRlL2crKy0zL2lvc3RyZWFtIiAxIDMKIyAy
NyAiL3Vzci9pbmNsdWRlL2crKy0zL2lvc3RyZWFtLmgiIDEgMwojcHJhZ21hIGludGVyZmFjZQoj
IDI3ICIvdXNyL2luY2x1ZGUvZysrLTMvaW9zdHJlYW0uaCIgMwoKCgoKCiMgMjggIi91c3IvaW5j
bHVkZS9nKystMy9zdHJlYW1idWYuaCIgMSAzCiNwcmFnbWEgaW50ZXJmYWNlCiMgMjggIi91c3Iv
aW5jbHVkZS9nKystMy9zdHJlYW1idWYuaCIgMwoKCgoKCgoKZXh0ZXJuICJDIiB7CgojIDMxICIv
dXNyL2luY2x1ZGUvbGliaW8uaCIgMSAzCiMgMTAgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIg
MSAzCiMgMjcgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMwojIDI1MSAiL3Vzci9pbmNs
dWRlL2ZlYXR1cmVzLmgiIDEgMwojIDI3OSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMKIyAy
NyAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMiAzCgoKCiMgMTk5ICIvdXNyL2xpYi9nY2Mt
bGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCnR5cGVkZWYg
dW5zaWduZWQgaW50IHNpemVfdDsKIyAzMCAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMiAz
CgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0
IF9fdV9zaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191X2ludDsKdHlwZWRlZiB1bnNpZ25l
ZCBsb25nIF9fdV9sb25nOwoKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9u
ZyBpbnQgX191X3F1YWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyBpbnQgX19x
dWFkX3Q7CiMgNDkgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMKdHlwZWRlZiBzaWduZWQg
Y2hhciBfX2ludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhfdDsKdHlwZWRlZiBz
aWduZWQgc2hvcnQgaW50IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgX191
aW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgX191aW50MzJfdDsKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGlu
dCBfX2ludDY0X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50
IF9fdWludDY0X3Q7Cgp0eXBlZGVmIF9fcXVhZF90ICpfX3FhZGRyX3Q7Cgp0eXBlZGVmIF9fdV9x
dWFkX3QgX19kZXZfdDsKdHlwZWRlZiBfX3VfaW50IF9fdWlkX3Q7CnR5cGVkZWYgX191X2ludCBf
X2dpZF90Owp0eXBlZGVmIF9fdV9sb25nIF9faW5vX3Q7CnR5cGVkZWYgX191X2ludCBfX21vZGVf
dDsKdHlwZWRlZiBfX3VfaW50IF9fbmxpbmtfdDsKdHlwZWRlZiBsb25nIGludCBfX29mZl90Owp0
eXBlZGVmIF9fcXVhZF90IF9fbG9mZl90Owp0eXBlZGVmIGludCBfX3BpZF90Owp0eXBlZGVmIGlu
dCBfX3NzaXplX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19ybGltX3Q7CnR5cGVkZWYgX19xdWFkX3Qg
X19ybGltNjRfdDsKdHlwZWRlZiBfX3VfaW50IF9faWRfdDsKCnR5cGVkZWYgc3RydWN0CiAgewog
ICAgaW50IF9fdmFsWzJdOwogIH0gX19mc2lkX3Q7CgoKdHlwZWRlZiBpbnQgX19kYWRkcl90Owp0
eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsKdHlwZWRlZiBsb25nIGludCBfX3RpbWVfdDsKdHlwZWRl
ZiBsb25nIGludCBfX3N3YmxrX3Q7Cgp0eXBlZGVmIGxvbmcgaW50IF9fY2xvY2tfdDsKCgp0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fZmRfbWFzazsKCgojIDEwMCAiL3Vzci9pbmNsdWRlL2Jp
dHMvdHlwZXMuaCIgMwp0eXBlZGVmIHN0cnVjdAogIHsKCgoKCgoKICAgIF9fZmRfbWFzayBfX2Zk
c19iaXRzWzEwMjQgLyAoOCAqIHNpemVvZiAoX19mZF9tYXNrKSldOwoKCiAgfSBfX2ZkX3NldDsK
Cgp0eXBlZGVmIGludCBfX2tleV90OwoKCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9faXBj
X3BpZF90OwoKCgoKCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsKdHlwZWRlZiBfX3F1YWRf
dCBfX2Jsa2NudDY0X3Q7CgoKdHlwZWRlZiBfX3VfbG9uZyBfX2ZzYmxrY250X3Q7CnR5cGVkZWYg
X191X3F1YWRfdCBfX2ZzYmxrY250NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNmaWxjbnRf
dDsKdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwoKCnR5cGVkZWYgX191X2xvbmcg
X19pbm82NF90OwoKCnR5cGVkZWYgX19sb2ZmX3QgX19vZmY2NF90OwoKCnR5cGVkZWYgbG9uZyBp
bnQgX190X3NjYWxhcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fdF91c2NhbGFyX3Q7
CgoKdHlwZWRlZiBpbnQgX19pbnRwdHJfdDsKCgoKIyAxMCAiL3Vzci9pbmNsdWRlL19HX2NvbmZp
Zy5oIiAyIDMKCgoKCgojIDMxMiAiL3Vzci9saWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8y
Ljk2L2luY2x1ZGUvc3RkZGVmLmgiIDEgMwp0eXBlZGVmIHVuc2lnbmVkIGludCB3aW50X3Q7CiMg
MTUgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCiMgMzUgIi91c3IvaW5jbHVkZS9fR19j
b25maWcuaCIgMwp0eXBlZGVmIGludCBfR19pbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVf
XyAoX19ISV9fKSkpOwp0eXBlZGVmIGludCBfR19pbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21v
ZGVfXyAoX19TSV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MTZfdCBfX2F0dHJp
YnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWlu
dDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7CgojIDMxICIvdXNyL2lu
Y2x1ZGUvbGliaW8uaCIgMiAzCiMgNDkgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCiMgNDMgIi91
c3IvbGliL2djYy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMi45Ni9pbmNsdWRlL3N0ZGFyZy5oIiAx
IDMKdHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA0OSAiL3Vzci9p
bmNsdWRlL2xpYmlvLmgiIDIgMwojIDE1NCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKc3RydWN0
IF9JT19qdW1wX3Q7IHN0cnVjdCBfSU9fRklMRTsKCgoKCgoKCgoKdHlwZWRlZiB2b2lkIF9JT19s
b2NrX3Q7CgoKCgoKc3RydWN0IF9JT19tYXJrZXIgewogIHN0cnVjdCBfSU9fbWFya2VyICpfbmV4
dDsKICBzdHJ1Y3QgX0lPX0ZJTEUgKl9zYnVmOwoKCgogIGludCBfcG9zOwojIDE4NyAiL3Vzci9p
bmNsdWRlL2xpYmlvLmgiIDMKfTsKCnN0cnVjdCBfSU9fRklMRSB7CiAgaW50IF9mbGFnczsKCgoK
CiAgY2hhciogX0lPX3JlYWRfcHRyOwogIGNoYXIqIF9JT19yZWFkX2VuZDsKICBjaGFyKiBfSU9f
cmVhZF9iYXNlOwogIGNoYXIqIF9JT193cml0ZV9iYXNlOwogIGNoYXIqIF9JT193cml0ZV9wdHI7
CiAgY2hhciogX0lPX3dyaXRlX2VuZDsKICBjaGFyKiBfSU9fYnVmX2Jhc2U7CiAgY2hhciogX0lP
X2J1Zl9lbmQ7CgogIGNoYXIgKl9JT19zYXZlX2Jhc2U7CiAgY2hhciAqX0lPX2JhY2t1cF9iYXNl
OwogIGNoYXIgKl9JT19zYXZlX2VuZDsKCiAgc3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOwoK
ICBzdHJ1Y3QgX0lPX0ZJTEUgKl9jaGFpbjsKCiAgaW50IF9maWxlbm87CiAgaW50IF9ibGtzaXpl
OwogIF9fb2ZmX3QgX29sZF9vZmZzZXQ7CgoKCiAgdW5zaWduZWQgc2hvcnQgX2N1cl9jb2x1bW47
CiAgc2lnbmVkIGNoYXIgX3Z0YWJsZV9vZmZzZXQ7CiAgY2hhciBfc2hvcnRidWZbMV07CgoKCiAg
X0lPX2xvY2tfdCAqX2xvY2s7CiMgMjMzICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwogIF9fb2Zm
NjRfdCBfb2Zmc2V0OwoKICBpbnQgX3VudXNlZDJbMTZdOwoKfTsKCgoKCgpzdHJ1Y3QgX0lPX0ZJ
TEVfcGx1czsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3RkaW5fOwpleHRl
cm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRvdXRfOwpleHRlcm4gc3RydWN0IF9J
T19GSUxFX3BsdXMgX0lPXzJfMV9zdGRlcnJfOwojIDI2MiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgi
IDMKdHlwZWRlZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICogX19jb29raWUsIGNoYXIg
Kl9fYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19u
Ynl0ZXMpOwoKCgoKCgoKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9pZCAqIF9f
Y29va2llLCBfX2NvbnN0IGNoYXIgKl9fYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBfX24pOwoKCgoKCgoKdHlwZWRlZiBpbnQgX19pb19zZWVrX2ZuICh2
b2lkICogX19jb29raWUsIF9fb2ZmX3QgX19wb3MsIGludCBfX3cpOwoKCnR5cGVkZWYgaW50IF9f
aW9fY2xvc2VfZm4gKHZvaWQgKiBfX2Nvb2tpZSk7CgoKIyAzMTUgIi91c3IvaW5jbHVkZS9saWJp
by5oIiAzCmV4dGVybiAiQyIgewoKCmV4dGVybiBpbnQgX191bmRlcmZsb3cgKF9JT19GSUxFICop
IHRocm93ICgpOwpleHRlcm4gaW50IF9fdWZsb3cgKF9JT19GSUxFICopIHRocm93ICgpOwpleHRl
cm4gaW50IF9fb3ZlcmZsb3cgKF9JT19GSUxFICosIGludCkgdGhyb3cgKCk7CgojIDMzNyAiL3Vz
ci9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJuIGludCBfSU9fZ2V0YyAoX0lPX0ZJTEUgKl9fZnAp
IHRocm93ICgpOwpleHRlcm4gaW50IF9JT19wdXRjIChpbnQgX19jLCBfSU9fRklMRSAqX19mcCkg
dGhyb3cgKCk7CmV4dGVybiBpbnQgX0lPX2Zlb2YgKF9JT19GSUxFICpfX2ZwKSB0aHJvdyAoKTsK
ZXh0ZXJuIGludCBfSU9fZmVycm9yIChfSU9fRklMRSAqX19mcCkgdGhyb3cgKCk7CgpleHRlcm4g
aW50IF9JT19wZWVrY19sb2NrZWQgKF9JT19GSUxFICpfX2ZwKSB0aHJvdyAoKTsKCgoKCgpleHRl
cm4gdm9pZCBfSU9fZmxvY2tmaWxlIChfSU9fRklMRSAqKSB0aHJvdyAoKTsKZXh0ZXJuIHZvaWQg
X0lPX2Z1bmxvY2tmaWxlIChfSU9fRklMRSAqKSB0aHJvdyAoKTsKZXh0ZXJuIGludCBfSU9fZnRy
eWxvY2tmaWxlIChfSU9fRklMRSAqKSB0aHJvdyAoKTsKCiMgMzYzICIvdXNyL2luY2x1ZGUvbGli
aW8uaCIgMwpleHRlcm4gaW50IF9JT192ZnNjYW5mIChfSU9fRklMRSAqIF9fcmVzdHJpY3QsIGNv
bnN0IGNoYXIgKiBfX3Jlc3RyaWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251
Y192YV9saXN0LCBpbnQgKl9fcmVzdHJpY3QpIHRocm93ICgpOwpleHRlcm4gaW50IF9JT192ZnBy
aW50ZiAoX0lPX0ZJTEUgKl9fcmVzdHJpY3QsIGNvbnN0IGNoYXIgKl9fcmVzdHJpY3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0KSB0aHJvdyAoKTsKZXh0ZXJu
IF9fc3NpemVfdCBfSU9fcGFkbiAoX0lPX0ZJTEUgKiwgaW50LCBfX3NzaXplX3QpIHRocm93ICgp
OwpleHRlcm4gc2l6ZV90IF9JT19zZ2V0biAoX0lPX0ZJTEUgKiwgdm9pZCAqLCBzaXplX3QpIHRo
cm93ICgpOwoKZXh0ZXJuIF9fb2ZmNjRfdCBfSU9fc2Vla29mZiAoX0lPX0ZJTEUgKiwgX19vZmY2
NF90LCBpbnQsIGludCkgdGhyb3cgKCk7CmV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtwb3MgKF9J
T19GSUxFICosIF9fb2ZmNjRfdCwgaW50KSB0aHJvdyAoKTsKCmV4dGVybiB2b2lkIF9JT19mcmVl
X2JhY2t1cF9hcmVhIChfSU9fRklMRSAqKSB0aHJvdyAoKTsKCgp9CiMgMzcgIi91c3IvaW5jbHVk
ZS9nKystMy9zdHJlYW1idWYuaCIgMiAzCn0KCgoKIyAxMTAgIi91c3IvbGliL2djYy1saWIvaTM4
Ni1yZWRoYXQtbGludXgvMi45Ni9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKdHlwZWRlZiBfX2dudWNf
dmFfbGlzdCB2YV9saXN0OwojIDQxICIvdXNyL2luY2x1ZGUvZysrLTMvc3RyZWFtYnVmLmgiIDIg
MwojIDY1ICIvdXNyL2luY2x1ZGUvZysrLTMvc3RyZWFtYnVmLmgiIDMKZXh0ZXJuICJDKysiIHsK
Y2xhc3MgaXN0cmVhbTsKY2xhc3Mgb3N0cmVhbTsgY2xhc3Mgc3RyZWFtYnVmOwoKCgoKCgp0eXBl
ZGVmIF9fb2ZmNjRfdCBzdHJlYW1vZmY7CnR5cGVkZWYgX19vZmY2NF90IHN0cmVhbXBvczsKCgoK
CnR5cGVkZWYgX19zc2l6ZV90IHN0cmVhbXNpemU7Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX19m
bXRmbGFnczsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9faW9zdGF0ZTsKCnN0cnVjdCBfaW9zX2Zp
ZWxkcwp7CiAgICBzdHJlYW1idWYgKl9zdHJidWY7CiAgICBvc3RyZWFtKiBfdGllOwogICAgaW50
IF93aWR0aDsKICAgIF9fZm10ZmxhZ3MgX2ZsYWdzOwogICAgd2NoYXJfdCBfZmlsbDsKICAgIF9f
aW9zdGF0ZSBfc3RhdGU7CiAgICBfX2lvc3RhdGUgX2V4Y2VwdGlvbnM7CiAgICBpbnQgX3ByZWNp
c2lvbjsKCiAgICB2b2lkICpfYXJyYXlzOwp9OwoKIyAxMjYgIi91c3IvaW5jbHVkZS9nKystMy9z
dHJlYW1idWYuaCIgMwpjbGFzcyBpb3MgOiBwdWJsaWMgX2lvc19maWVsZHMgewogIGlvcyYgb3Bl
cmF0b3I9KGlvcyYpOwogIGlvcyAoY29uc3QgaW9zJik7CiAgcHVibGljOgogICAgdHlwZWRlZiBf
X2ZtdGZsYWdzIGZtdGZsYWdzOwogICAgdHlwZWRlZiBpbnQgaW9zdGF0ZTsKICAgIHR5cGVkZWYg
aW50IG9wZW5tb2RlOwogICAgdHlwZWRlZiBfX3NzaXplX3Qgc3RyZWFtc2l6ZTsKICAgIGVudW0g
aW9fc3RhdGUgewogICAgICAgIGdvb2RiaXQgPSAwLAogICAgICAgIGVvZmJpdCA9IDEsCiAgICAg
ICAgZmFpbGJpdCA9IDIsCiAgICAgICAgYmFkYml0ID0gNCB9OwogICAgZW51bSBvcGVuX21vZGUg
ewogICAgICAgIGluID0gMSwKICAgICAgICBvdXQgPSAyLAogICAgICAgIGF0ZSA9IDQsCiAgICAg
ICAgYXBwID0gOCwKICAgICAgICB0cnVuYyA9IDE2LAogICAgICAgIG5vY3JlYXRlID0gMzIsCiAg
ICAgICAgbm9yZXBsYWNlID0gNjQsCiAgICAgICAgYmluID0gMTI4LAogICAgICAgIGJpbmFyeSA9
IDEyOCB9OwogICAgZW51bSBzZWVrX2RpciB7IGJlZywgY3VyLCBlbmR9OwogICAgdHlwZWRlZiBl
bnVtIHNlZWtfZGlyIHNlZWtkaXI7CgogICAgZW51bSB7IHNraXB3cz0wMSwKICAgICAgICAgICBs
ZWZ0PTAyLCByaWdodD0wNCwgaW50ZXJuYWw9MDEwLAogICAgICAgICAgIGRlYz0wMjAsIG9jdD0w
NDAsIGhleD0wMTAwLAogICAgICAgICAgIHNob3diYXNlPTAyMDAsIHNob3dwb2ludD0wNDAwLAog
ICAgICAgICAgIHVwcGVyY2FzZT0wMTAwMCwgc2hvd3Bvcz0wMjAwMCwKICAgICAgICAgICBzY2ll
bnRpZmljPTA0MDAwLCBmaXhlZD0wMTAwMDAsCiAgICAgICAgICAgdW5pdGJ1Zj0wMjAwMDAsIHN0
ZGlvPTA0MDAwMAoKCgogICAgICAgICAgIH07CiAgICBlbnVtIHsKICAgICAgICBiYXNlZmllbGQ9
ZGVjK29jdCtoZXgsCiAgICAgICAgZmxvYXRmaWVsZCA9IHNjaWVudGlmaWMrZml4ZWQsCiAgICAg
ICAgYWRqdXN0ZmllbGQgPSBsZWZ0K3JpZ2h0K2ludGVybmFsCiAgICB9OwoKIyAxNzkgIi91c3Iv
aW5jbHVkZS9nKystMy9zdHJlYW1idWYuaCIgMwogICAgb3N0cmVhbSogdGllKCkgY29uc3QgeyBy
ZXR1cm4gX3RpZTsgfQogICAgb3N0cmVhbSogdGllKG9zdHJlYW0qIHZhbCkgeyBvc3RyZWFtKiBz
YXZlPV90aWU7IF90aWU9dmFsOyByZXR1cm4gc2F2ZTsgfQoKCiAgICB3Y2hhcl90IGZpbGwoKSBj
b25zdCB7IHJldHVybiBfZmlsbDsgfQogICAgd2NoYXJfdCBmaWxsKHdjaGFyX3QgbmV3ZikKICAg
ICAgICB7d2NoYXJfdCBvbGRmID0gX2ZpbGw7IF9maWxsID0gbmV3ZjsgcmV0dXJuIG9sZGY7fQog
ICAgZm10ZmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBfZmxhZ3M7IH0KICAgIGZtdGZsYWdz
IGZsYWdzKGZtdGZsYWdzIG5ld192YWwpIHsKICAgICAgICBmbXRmbGFncyBvbGRfdmFsID0gX2Zs
YWdzOyBfZmxhZ3MgPSBuZXdfdmFsOyByZXR1cm4gb2xkX3ZhbDsgfQogICAgaW50IHByZWNpc2lv
bigpIGNvbnN0IHsgcmV0dXJuIF9wcmVjaXNpb247IH0KICAgIGludCBwcmVjaXNpb24oaW50IG5l
d3ApIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBvbGRwID0gX3ByZWNpc2lvbjsgX3ByZWNpc2lv
biA9ICh1bnNpZ25lZCBzaG9ydCluZXdwOwogICAgICAgIHJldHVybiBvbGRwOyB9CiAgICBmbXRm
bGFncyBzZXRmKGZtdGZsYWdzIHZhbCkgewogICAgICAgIGZtdGZsYWdzIG9sZGJpdHMgPSBfZmxh
Z3M7CiAgICAgICAgX2ZsYWdzIHw9IHZhbDsgcmV0dXJuIG9sZGJpdHM7IH0KICAgIGZtdGZsYWdz
IHNldGYoZm10ZmxhZ3MgdmFsLCBmbXRmbGFncyBtYXNrKSB7CiAgICAgICAgZm10ZmxhZ3Mgb2xk
Yml0cyA9IF9mbGFnczsKICAgICAgICBfZmxhZ3MgPSAoX2ZsYWdzICYgfm1hc2spIHwgKHZhbCAm
IG1hc2spOyByZXR1cm4gb2xkYml0czsgfQogICAgZm10ZmxhZ3MgdW5zZXRmKGZtdGZsYWdzIG1h
c2spIHsKICAgICAgICBmbXRmbGFncyBvbGRiaXRzID0gX2ZsYWdzOwogICAgICAgIF9mbGFncyAm
PSB+bWFzazsgcmV0dXJuIG9sZGJpdHM7IH0KICAgIGludCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJu
IF93aWR0aDsgfQogICAgaW50IHdpZHRoKGludCB2YWwpIHsgaW50IHNhdmUgPSBfd2lkdGg7IF93
aWR0aCA9IHZhbDsgcmV0dXJuIHNhdmU7IH0KCgoKCiAgICB2b2lkIF90aHJvd19mYWlsdXJlKCkg
Y29uc3QgeyB9CgogICAgdm9pZCBjbGVhcihpb3N0YXRlIHN0YXRlID0gMCkgewogICAgICAgIF9z
dGF0ZSA9IF9zdHJidWYgPyBzdGF0ZSA6IHN0YXRlfGJhZGJpdDsKICAgICAgICBpZiAoX3N0YXRl
ICYgX2V4Y2VwdGlvbnMpIF90aHJvd19mYWlsdXJlKCk7IH0KICAgIHZvaWQgc2V0KGlvc3RhdGUg
ZmxhZykgeyBfc3RhdGUgfD0gZmxhZzsKICAgICAgICBpZiAoX3N0YXRlICYgX2V4Y2VwdGlvbnMp
IF90aHJvd19mYWlsdXJlKCk7IH0KICAgIHZvaWQgc2V0c3RhdGUoaW9zdGF0ZSBmbGFnKSB7IF9z
dGF0ZSB8PSBmbGFnOwogICAgICAgIGlmIChfc3RhdGUgJiBfZXhjZXB0aW9ucykgX3Rocm93X2Zh
aWx1cmUoKTsgfQogICAgaW50IGdvb2QoKSBjb25zdCB7IHJldHVybiBfc3RhdGUgPT0gMDsgfQog
ICAgaW50IGVvZigpIGNvbnN0IHsgcmV0dXJuIF9zdGF0ZSAmIGlvczo6ZW9mYml0OyB9CiAgICBp
bnQgZmFpbCgpIGNvbnN0IHsgcmV0dXJuIF9zdGF0ZSAmIChpb3M6OmJhZGJpdHxpb3M6OmZhaWxi
aXQpOyB9CiAgICBpbnQgYmFkKCkgY29uc3QgeyByZXR1cm4gX3N0YXRlICYgaW9zOjpiYWRiaXQ7
IH0KICAgIGlvc3RhdGUgcmRzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIF9zdGF0ZTsgfQogICAgb3Bl
cmF0b3Igdm9pZCooKSBjb25zdCB7IHJldHVybiBmYWlsKCkgPyAodm9pZCopMCA6ICh2b2lkKiko
LTEpOyB9CiAgICBpbnQgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gZmFpbCgpOyB9CiAgICBp
b3N0YXRlIGV4Y2VwdGlvbnMoKSBjb25zdCB7IHJldHVybiBfZXhjZXB0aW9uczsgfQogICAgdm9p
ZCBleGNlcHRpb25zKGlvc3RhdGUgZW5hYmxlKSB7CiAgICAgICAgX2V4Y2VwdGlvbnMgPSBlbmFi
bGU7CiAgICAgICAgaWYgKF9zdGF0ZSAmIF9leGNlcHRpb25zKSBfdGhyb3dfZmFpbHVyZSgpOyB9
CgogICAgc3RyZWFtYnVmKiByZGJ1ZigpIGNvbnN0IHsgcmV0dXJuIF9zdHJidWY7IH0KICAgIHN0
cmVhbWJ1ZiogcmRidWYoc3RyZWFtYnVmICpfcykgewogICAgICBzdHJlYW1idWYgKl9vbGQgPSBf
c3RyYnVmOyBfc3RyYnVmID0gX3M7IGNsZWFyICgpOyByZXR1cm4gX29sZDsgfQoKICAgIHN0YXRp
YyBpbnQgc3luY193aXRoX3N0ZGlvKGludCBvbik7CiAgICBzdGF0aWMgdm9pZCBzeW5jX3dpdGhf
c3RkaW8oKSB7IHN5bmNfd2l0aF9zdGRpbygxKTsgfQogICAgc3RhdGljIGZtdGZsYWdzIGJpdGFs
bG9jKCk7CiAgICBzdGF0aWMgaW50IHhhbGxvYygpOwogICAgdm9pZComIHB3b3JkKGludCk7CiAg
ICB2b2lkKiBwd29yZChpbnQpIGNvbnN0OwogICAgbG9uZyYgaXdvcmQoaW50KTsKICAgIGxvbmcg
aXdvcmQoaW50KSBjb25zdDsKCiMgMjUxICIvdXNyL2luY2x1ZGUvZysrLTMvc3RyZWFtYnVmLmgi
IDMKICAgIGNsYXNzIEluaXQgewogICAgcHVibGljOgogICAgICBJbml0ICgpIHsgfQogICAgfTsK
CiAgcHJvdGVjdGVkOgogICAgaW5saW5lIGlvcyhzdHJlYW1idWYqIHNiID0gMCwgb3N0cmVhbSog
dGllX3RvID0gMCk7CiAgICBpbmxpbmUgdmlydHVhbCB+aW9zKCk7CiAgICBpbmxpbmUgdm9pZCBp
bml0KHN0cmVhbWJ1Ziogc2IsIG9zdHJlYW0qIHRpZSA9IDApOwp9OwoKCgoKdHlwZWRlZiBpb3M6
OnNlZWtfZGlyIF9zZWVrX2RpcjsKIyAyNzYgIi91c3IvaW5jbHVkZS9nKystMy9zdHJlYW1idWYu
aCIgMwpjbGFzcyBzdHJlYW1tYXJrZXIgOiBwcml2YXRlIF9JT19tYXJrZXIgewogICAgZnJpZW5k
IGNsYXNzIHN0cmVhbWJ1ZjsKICAgIHZvaWQgc2V0X29mZnNldChpbnQgb2Zmc2V0KSB7IF9wb3Mg
PSBvZmZzZXQ7IH0KICBwdWJsaWM6CiAgICBzdHJlYW1tYXJrZXIoc3RyZWFtYnVmICpzYik7CiAg
ICB+c3RyZWFtbWFya2VyKCk7CiAgICBpbnQgc2F2aW5nKCkgeyByZXR1cm4gMTsgfQogICAgaW50
IGRlbHRhKHN0cmVhbW1hcmtlciYpOwogICAgaW50IGRlbHRhKCk7Cn07CgpzdHJ1Y3Qgc3RyZWFt
YnVmIDogcHVibGljIF9JT19GSUxFIHsKICAgIGZyaWVuZCBjbGFzcyBpb3M7CiAgICBmcmllbmQg
Y2xhc3MgaXN0cmVhbTsKICAgIGZyaWVuZCBjbGFzcyBvc3RyZWFtOwogICAgZnJpZW5kIGNsYXNz
IHN0cmVhbW1hcmtlcjsKICAgIGNvbnN0IHZvaWQgKiZfdnRhYmxlKCkgeyByZXR1cm4gKihjb25z
dCB2b2lkKiopKChfSU9fRklMRSopdGhpcyArIDEpOyB9CiAgcHJvdGVjdGVkOgogICAgc3RhdGlj
IHN0cmVhbWJ1ZiogX2xpc3RfYWxsOwogICAgX0lPX0ZJTEUqJiB4Y2hhaW4oKSB7IHJldHVybiBf
Y2hhaW47IH0KICAgIHZvaWQgX3VuX2xpbmsoKTsKICAgIHZvaWQgX2xpbmtfaW4oKTsKICAgIGNo
YXIqIGdwdHIoKSBjb25zdAogICAgICB7IHJldHVybiBfZmxhZ3MgJiAweDEwMCA/IF9JT19zYXZl
X2Jhc2UgOiBfSU9fcmVhZF9wdHI7IH0KICAgIGNoYXIqIHBwdHIoKSBjb25zdCB7IHJldHVybiBf
SU9fd3JpdGVfcHRyOyB9CiAgICBjaGFyKiBlZ3B0cigpIGNvbnN0CiAgICAgIHsgcmV0dXJuIF9m
bGFncyAmIDB4MTAwID8gX0lPX3NhdmVfZW5kIDogX0lPX3JlYWRfZW5kOyB9CiAgICBjaGFyKiBl
cHB0cigpIGNvbnN0IHsgcmV0dXJuIF9JT193cml0ZV9lbmQ7IH0KICAgIGNoYXIqIHBiYXNlKCkg
Y29uc3QgeyByZXR1cm4gX0lPX3dyaXRlX2Jhc2U7IH0KICAgIGNoYXIqIGViYWNrKCkgY29uc3QK
ICAgICAgeyByZXR1cm4gX2ZsYWdzICYgMHgxMDAgPyBfSU9fc2F2ZV9iYXNlIDogX0lPX3JlYWRf
YmFzZTt9CiAgICBjaGFyKiBiYXNlKCkgY29uc3QgeyByZXR1cm4gX0lPX2J1Zl9iYXNlOyB9CiAg
ICBjaGFyKiBlYnVmKCkgY29uc3QgeyByZXR1cm4gX0lPX2J1Zl9lbmQ7IH0KICAgIGludCBibGVu
KCkgY29uc3QgeyByZXR1cm4gX0lPX2J1Zl9lbmQgLSBfSU9fYnVmX2Jhc2U7IH0KICAgIHZvaWQg
eHB1dF9jaGFyKGNoYXIgYykgeyAqX0lPX3dyaXRlX3B0cisrID0gYzsgfQogICAgaW50IHhmbGFn
cygpIHsgcmV0dXJuIF9mbGFnczsgfQogICAgaW50IHhmbGFncyhpbnQgZikge2ludCBmbCA9IF9m
bGFnczsgX2ZsYWdzID0gZjsgcmV0dXJuIGZsO30KICAgIHZvaWQgeHNldGZsYWdzKGludCBmKSB7
IF9mbGFncyB8PSBmOyB9CiAgICB2b2lkIHhzZXRmbGFncyhpbnQgZiwgaW50IG1hc2spCiAgICAg
IHsgX2ZsYWdzID0gKF9mbGFncyAmIH5tYXNrKSB8IChmICYgbWFzayk7IH0KICAgIHZvaWQgZ2J1
bXAoaW50IG4pCiAgICAgIHsgX2ZsYWdzICYgMHgxMDAgPyAoX0lPX3NhdmVfYmFzZSs9bik6KF9J
T19yZWFkX3B0cis9bik7fQogICAgdm9pZCBwYnVtcChpbnQgbikgeyBfSU9fd3JpdGVfcHRyICs9
IG47IH0KICAgIHZvaWQgc2V0YihjaGFyKiBiLCBjaGFyKiBlYiwgaW50IGE9MCk7CiAgICB2b2lk
IHNldHAoY2hhciogcCwgY2hhciogZXApCiAgICAgIHsgX0lPX3dyaXRlX2Jhc2U9X0lPX3dyaXRl
X3B0cj1wOyBfSU9fd3JpdGVfZW5kPWVwOyB9CiAgICB2b2lkIHNldGcoY2hhciogZWIsIGNoYXIq
IGcsIGNoYXIgKmVnKSB7CiAgICAgIGlmIChfZmxhZ3MgJiAweDEwMCkgX0lPX2ZyZWVfYmFja3Vw
X2FyZWEodGhpcyk7CiAgICAgIF9JT19yZWFkX2Jhc2UgPSBlYjsgX0lPX3JlYWRfcHRyID0gZzsg
X0lPX3JlYWRfZW5kID0gZWc7IH0KICAgIGNoYXIgKnNob3J0YnVmKCkgeyByZXR1cm4gX3Nob3J0
YnVmOyB9CgogICAgaW50IGluX2JhY2t1cCgpIHsgcmV0dXJuIF9mbGFncyAmIDB4MTAwOyB9Cgog
ICAgY2hhciAqR2Jhc2UoKSB7IHJldHVybiBpbl9iYWNrdXAoKSA/IF9JT19zYXZlX2Jhc2UgOiBf
SU9fcmVhZF9iYXNlOyB9CgogICAgY2hhciAqZUdwdHIoKSB7IHJldHVybiBpbl9iYWNrdXAoKSA/
IF9JT19zYXZlX2VuZCA6IF9JT19yZWFkX2VuZDsgfQoKICAgIGNoYXIgKkJiYXNlKCkgeyByZXR1
cm4gaW5fYmFja3VwKCkgPyBfSU9fcmVhZF9iYXNlIDogX0lPX3NhdmVfYmFzZTsgfQogICAgY2hh
ciAqQnB0cigpIHsgcmV0dXJuIF9JT19iYWNrdXBfYmFzZTsgfQoKICAgIGNoYXIgKmVCcHRyKCkg
eyByZXR1cm4gaW5fYmFja3VwKCkgPyBfSU9fcmVhZF9lbmQgOiBfSU9fc2F2ZV9lbmQ7IH0KICAg
IGNoYXIgKk5iYXNlKCkgeyByZXR1cm4gX0lPX3NhdmVfYmFzZTsgfQogICAgY2hhciAqZU5wdHIo
KSB7IHJldHVybiBfSU9fc2F2ZV9lbmQ7IH0KICAgIGludCBoYXZlX2JhY2t1cCgpIHsgcmV0dXJu
IF9JT19zYXZlX2Jhc2UgIT0gX19udWxsOyB9CiAgICBpbnQgaGF2ZV9tYXJrZXJzKCkgeyByZXR1
cm4gX21hcmtlcnMgIT0gX19udWxsOyB9CiAgICB2b2lkIGZyZWVfYmFja3VwX2FyZWEoKTsKICAg
IHZvaWQgdW5zYXZlX21hcmtlcnMoKTsKICAgIGludCBwdXRfbW9kZSgpIHsgcmV0dXJuIF9mbGFn
cyAmIDB4ODAwOyB9CiAgICBpbnQgc3dpdGNoX3RvX2dldF9tb2RlKCk7CgogICAgc3RyZWFtYnVm
KGludCBmbGFncz0wKTsKICBwdWJsaWM6CiAgICBzdGF0aWMgaW50IGZsdXNoX2FsbCgpOwogICAg
c3RhdGljIHZvaWQgZmx1c2hfYWxsX2xpbmVidWZmZXJlZCgpOwogICAgdmlydHVhbCB+c3RyZWFt
YnVmKCk7CiAgICB2aXJ0dWFsIGludCBvdmVyZmxvdyhpbnQgYyA9ICgtMSkpOwogICAgdmlydHVh
bCBpbnQgdW5kZXJmbG93KCk7CiAgICB2aXJ0dWFsIGludCB1ZmxvdygpOwogICAgdmlydHVhbCBp
bnQgcGJhY2tmYWlsKGludCBjKTsKCiAgICB2aXJ0dWFsIHN0cmVhbXNpemUgeHNwdXRuKGNvbnN0
IGNoYXIqIHMsIHN0cmVhbXNpemUgbik7CiAgICB2aXJ0dWFsIHN0cmVhbXNpemUgeHNnZXRuKGNo
YXIqIHMsIHN0cmVhbXNpemUgbik7CiAgICB2aXJ0dWFsIHN0cmVhbXBvcyBzZWVrb2ZmKHN0cmVh
bW9mZiwgX3NlZWtfZGlyLCBpbnQgbW9kZT1pb3M6OmlufGlvczo6b3V0KTsKICAgIHZpcnR1YWwg
c3RyZWFtcG9zIHNlZWtwb3Moc3RyZWFtcG9zIHBvcywgaW50IG1vZGUgPSBpb3M6OmlufGlvczo6
b3V0KTsKCiAgICBzdHJlYW1wb3MgcHVic2Vla29mZihzdHJlYW1vZmYgbywgX3NlZWtfZGlyIGQs
IGludCBtb2RlPWlvczo6aW58aW9zOjpvdXQpCiAgICAgIHsgcmV0dXJuIF9JT19zZWVrb2ZmICh0
aGlzLCBvLCBkLCBtb2RlKTsgfQogICAgc3RyZWFtcG9zIHB1YnNlZWtwb3Moc3RyZWFtcG9zIHBv
cywgaW50IG1vZGUgPSBpb3M6OmlufGlvczo6b3V0KQogICAgICB7IHJldHVybiBfSU9fc2Vla3Bv
cyAodGhpcywgcG9zLCBtb2RlKTsgfQogICAgc3RyZWFtcG9zIHNzZWVrb2ZmKHN0cmVhbW9mZiwg
X3NlZWtfZGlyLCBpbnQgbW9kZT1pb3M6OmlufGlvczo6b3V0KTsKICAgIHN0cmVhbXBvcyBzc2Vl
a3BvcyhzdHJlYW1wb3MgcG9zLCBpbnQgbW9kZSA9IGlvczo6aW58aW9zOjpvdXQpOwogICAgdmly
dHVhbCBzdHJlYW1idWYqIHNldGJ1ZihjaGFyKiBwLCBpbnQgbGVuKTsKICAgIHZpcnR1YWwgaW50
IHN5bmMoKTsKICAgIHZpcnR1YWwgaW50IGRvYWxsb2NhdGUoKTsKCiAgICBpbnQgc2Vla21hcmso
c3RyZWFtbWFya2VyJiBtYXJrLCBpbnQgZGVsdGEgPSAwKTsKICAgIGludCBzcHV0YmFja2MoY2hh
ciBjKTsKICAgIGludCBzdW5nZXRjKCk7CiAgICBpbnQgdW5idWZmZXJlZCgpIHsgcmV0dXJuIF9m
bGFncyAmIDIgPyAxIDogMDsgfQogICAgaW50IGxpbmVidWZmZXJlZCgpIHsgcmV0dXJuIF9mbGFn
cyAmIDB4MjAwID8gMSA6IDA7IH0KICAgIHZvaWQgdW5idWZmZXJlZChpbnQgaSkKICAgICAgICB7
IGlmIChpKSBfZmxhZ3MgfD0gMjsgZWxzZSBfZmxhZ3MgJj0gfjI7IH0KICAgIHZvaWQgbGluZWJ1
ZmZlcmVkKGludCBpKQogICAgICAgIHsgaWYgKGkpIF9mbGFncyB8PSAweDIwMDsgZWxzZSBfZmxh
Z3MgJj0gfjB4MjAwOyB9CiAgICBpbnQgYWxsb2NhdGUoKSB7CiAgICAgICAgaWYgKGJhc2UoKSB8
fCB1bmJ1ZmZlcmVkKCkpIHJldHVybiAwOwogICAgICAgIGVsc2UgcmV0dXJuIGRvYWxsb2NhdGUo
KTsgfQoKICAgIHZvaWQgYWxsb2NidWYoKSB7IGlmIChiYXNlKCkgPT0gX19udWxsKSBkb2FsbG9j
YnVmKCk7IH0KICAgIHZvaWQgZG9hbGxvY2J1ZigpOwogICAgaW50IGluX2F2YWlsKCkgeyByZXR1
cm4gX0lPX3JlYWRfZW5kIC0gX0lPX3JlYWRfcHRyOyB9CiAgICBpbnQgb3V0X3dhaXRpbmcoKSB7
IHJldHVybiBfSU9fd3JpdGVfcHRyIC0gX0lPX3dyaXRlX2Jhc2U7IH0KICAgIHN0cmVhbXNpemUg
c3B1dG4oY29uc3QgY2hhciogcywgc3RyZWFtc2l6ZSBuKSB7IHJldHVybiB4c3B1dG4ocywgbik7
IH0KICAgIHN0cmVhbXNpemUgcGFkbihjaGFyIHBhZCwgc3RyZWFtc2l6ZSBuKSB7IHJldHVybiBf
SU9fcGFkbih0aGlzLCBwYWQsIG4pOyB9CiAgICBzdHJlYW1zaXplIHNnZXRuKGNoYXIqIHMsIHN0
cmVhbXNpemUgbikgeyByZXR1cm4gX0lPX3NnZXRuKHRoaXMsIHMsIG4pOyB9CiAgICBpbnQgaWdu
b3JlKGludCk7CiAgICBpbnQgZ2V0X2NvbHVtbigpOwogICAgaW50IHNldF9jb2x1bW4oaW50KTsK
ICAgIGxvbmcgc2dldGxpbmUoY2hhciogYnVmLCBzaXplX3QgbiwgY2hhciBkZWxpbSwgaW50IHB1
dGJhY2tfZGVsaW0pOwogICAgaW50IHNwdXRjKGludCBjKSB7IHJldHVybiBfSU9fcHV0YyhjLCB0
aGlzKTsgfQogICAgaW50IHNidW1wYygpIHsgcmV0dXJuIF9JT19nZXRjKHRoaXMpOyB9CiAgICBp
bnQgc2dldGMoKSB7IHJldHVybiAoKHRoaXMpLT5fSU9fcmVhZF9wdHIgPj0gKHRoaXMpLT5fSU9f
cmVhZF9lbmQgJiYgX191bmRlcmZsb3cgKHRoaXMpID09ICgtMSkgPyAoLTEpIDogKih1bnNpZ25l
ZCBjaGFyICopICh0aGlzKS0+X0lPX3JlYWRfcHRyKTsgfQogICAgaW50IHNuZXh0YygpIHsKICAg
ICAgICBpZiAoX0lPX3JlYWRfcHRyID49IF9JT19yZWFkX2VuZCAmJiBfX3VuZGVyZmxvdyh0aGlz
KSA9PSAoLTEpKQogICAgICAgICAgcmV0dXJuICgtMSk7CiAgICAgICAgZWxzZSByZXR1cm4gX0lP
X3JlYWRfcHRyKyssIHNnZXRjKCk7IH0KICAgIHZvaWQgc3Rvc3NjKCkgeyBpZiAoX0lPX3JlYWRf
cHRyIDwgX0lPX3JlYWRfZW5kKSBfSU9fcmVhZF9wdHIrKzsgfQogICAgaW50IHZzY2FuKGNoYXIg
Y29uc3QgKmZtdDAsIF9fZ251Y192YV9saXN0IGFwLCBpb3MqIHN0cmVhbSA9IF9fbnVsbCk7CiAg
ICBpbnQgc2NhbihjaGFyIGNvbnN0ICpmbXQwIC4uLik7CiAgICBpbnQgdmZvcm0oY2hhciBjb25z
dCAqZm10MCwgX19nbnVjX3ZhX2xpc3QgYXApOwogICAgaW50IGZvcm0oY2hhciBjb25zdCAqZm10
MCAuLi4pOwoKCgoKICAgIHZpcnR1YWwgc3RyZWFtc2l6ZSBzeXNfcmVhZChjaGFyKiBidWYsIHN0
cmVhbXNpemUgc2l6ZSk7CiAgICB2aXJ0dWFsIHN0cmVhbXNpemUgc3lzX3dyaXRlKGNvbnN0IGNo
YXIqLCBzdHJlYW1zaXplKTsKICAgIHZpcnR1YWwgc3RyZWFtcG9zIHN5c19zZWVrKHN0cmVhbW9m
ZiwgX3NlZWtfZGlyKTsKICAgIHZpcnR1YWwgaW50IHN5c19jbG9zZSgpOwogICAgdmlydHVhbCBp
bnQgc3lzX3N0YXQodm9pZCopOwoKICAgIHZpcnR1YWwgaW50IHNob3dtYW55YygpOwogICAgdmly
dHVhbCB2b2lkIGltYnVlKHZvaWQgKik7Cgp9OwoKCgoKY2xhc3MgZmlsZWJ1ZiA6IHB1YmxpYyBz
dHJlYW1idWYgewogIHByb3RlY3RlZDoKICAgIHZvaWQgaW5pdCgpOwogIHB1YmxpYzoKICAgIHN0
YXRpYyBjb25zdCBpbnQgb3BlbnByb3Q7CiAgICBmaWxlYnVmKCk7CiAgICBmaWxlYnVmKGludCBm
ZCk7CiAgICBmaWxlYnVmKGludCBmZCwgY2hhciogcCwgaW50IGxlbik7CgoKCiAgICB+ZmlsZWJ1
ZigpOwogICAgZmlsZWJ1ZiogYXR0YWNoKGludCBmZCk7CiAgICBmaWxlYnVmKiBvcGVuKGNvbnN0
IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICptb2RlKTsKICAgIGZpbGVidWYqIG9wZW4oY29u
c3QgY2hhciAqZmlsZW5hbWUsIGlvczo6b3Blbm1vZGUgbW9kZSwgaW50IHByb3QgPSAwNjY0KTsK
ICAgIHZpcnR1YWwgaW50IHVuZGVyZmxvdygpOwogICAgdmlydHVhbCBpbnQgb3ZlcmZsb3coaW50
IGMgPSAoLTEpKTsKICAgIGludCBpc19vcGVuKCkgY29uc3QgeyByZXR1cm4gX2ZpbGVubyA+PSAw
OyB9CiAgICBpbnQgZmQoKSBjb25zdCB7IHJldHVybiBpc19vcGVuKCkgPyBfZmlsZW5vIDogKC0x
KTsgfQogICAgZmlsZWJ1ZiogY2xvc2UoKTsKICAgIHZpcnR1YWwgaW50IGRvYWxsb2NhdGUoKTsK
ICAgIHZpcnR1YWwgc3RyZWFtcG9zIHNlZWtvZmYoc3RyZWFtb2ZmLCBfc2Vla19kaXIsIGludCBt
b2RlPWlvczo6aW58aW9zOjpvdXQpOwogICAgdmlydHVhbCBzdHJlYW1idWYqIHNldGJ1ZihjaGFy
KiBwLCBpbnQgbGVuKTsKICAgIHN0cmVhbXNpemUgeHNwdXRuKGNvbnN0IGNoYXIqIHMsIHN0cmVh
bXNpemUgbik7CiAgICBzdHJlYW1zaXplIHhzZ2V0bihjaGFyKiBzLCBzdHJlYW1zaXplIG4pOwog
ICAgdmlydHVhbCBpbnQgc3luYygpOwogIHByb3RlY3RlZDoKCiAgICBpbnQgaXNfcmVhZGluZygp
IHsgcmV0dXJuIGViYWNrKCkgIT0gZWdwdHIoKTsgfQogICAgY2hhciogY3VyX3B0cigpIHsgcmV0
dXJuIGlzX3JlYWRpbmcoKSA/IGdwdHIoKSA6IHBwdHIoKTsgfQoKICAgIGNoYXIqIGZpbGVfcHRy
KCkgeyByZXR1cm4gZUdwdHIoKTsgfQoKICAgIHZpcnR1YWwgc3RyZWFtc2l6ZSBzeXNfcmVhZChj
aGFyKiBidWYsIHN0cmVhbXNpemUgc2l6ZSk7CiAgICB2aXJ0dWFsIHN0cmVhbXBvcyBzeXNfc2Vl
ayhzdHJlYW1vZmYsIF9zZWVrX2Rpcik7CiAgICB2aXJ0dWFsIHN0cmVhbXNpemUgc3lzX3dyaXRl
KGNvbnN0IGNoYXIqLCBzdHJlYW1zaXplKTsKICAgIHZpcnR1YWwgaW50IHN5c19zdGF0KHZvaWQq
KTsKICAgIHZpcnR1YWwgaW50IHN5c19jbG9zZSgpOwoKCgoKfTsKCmlubGluZSB2b2lkIGlvczo6
aW5pdChzdHJlYW1idWYqIHNiLCBvc3RyZWFtKiB0aWVfdG8pIHsKICAgICAgICAgICAgICAgIF9z
dGF0ZSA9IHNiID8gaW9zOjpnb29kYml0IDogaW9zOjpiYWRiaXQ7IF9leGNlcHRpb25zPTA7CiAg
ICAgICAgICAgICAgICBfc3RyYnVmPXNiOyBfdGllID0gdGllX3RvOyBfd2lkdGg9MDsgX2ZpbGw9
JyAnOwoKICAgICAgICAgICAgICAgIF9mbGFncz1pb3M6OnNraXB3c3xpb3M6OmRlYzsKCgoKICAg
ICAgICAgICAgICAgIF9wcmVjaXNpb249NjsgX2FycmF5cyA9IDA7IH0KCmlubGluZSBpb3M6Omlv
cyhzdHJlYW1idWYqIHNiLCBvc3RyZWFtKiB0aWVfdG8pIHsgaW5pdChzYiwgdGllX3RvKTsgfQoK
aW5saW5lIGlvczo6fmlvcygpIHsKCgoKCgogICAgb3BlcmF0b3IgZGVsZXRlW10gKF9hcnJheXMp
Owp9Cn0KIyAzMiAiL3Vzci9pbmNsdWRlL2crKy0zL2lvc3RyZWFtLmgiIDIgMwoKZXh0ZXJuICJD
KysiIHsKY2xhc3MgaXN0cmVhbTsgY2xhc3Mgb3N0cmVhbTsKdHlwZWRlZiBpb3MmICgqX19tYW5p
cCkoaW9zJik7CnR5cGVkZWYgaXN0cmVhbSYgKCpfX2ltYW5pcCkoaXN0cmVhbSYpOwp0eXBlZGVm
IG9zdHJlYW0mICgqX19vbWFuaXApKG9zdHJlYW0mKTsKCmV4dGVybiBpc3RyZWFtJiB3cyhpc3Ry
ZWFtJiBpbnMpOwpleHRlcm4gb3N0cmVhbSYgZmx1c2gob3N0cmVhbSYgb3V0cyk7CmV4dGVybiBv
c3RyZWFtJiBlbmRsKG9zdHJlYW0mIG91dHMpOwpleHRlcm4gb3N0cmVhbSYgZW5kcyhvc3RyZWFt
JiBvdXRzKTsKCmNsYXNzIG9zdHJlYW0gOiB2aXJ0dWFsIHB1YmxpYyBpb3MKewoKICAgIHZvaWQg
ZG9fb3NmeCgpOwogIHB1YmxpYzoKICAgIG9zdHJlYW0oKSB7IH0KICAgIG9zdHJlYW0oc3RyZWFt
YnVmKiBzYiwgb3N0cmVhbSogdGllZD1fX251bGwpOwogICAgaW50IG9wZngoKSB7CiAgICAgICAg
aWYgKCFnb29kKCkpIHJldHVybiAwOwogICAgICAgIGVsc2UgeyBpZiAoX3RpZSkgX3RpZS0+Zmx1
c2goKTs7IHJldHVybiAxO30gfQogICAgdm9pZCBvc2Z4KCkgezsKICAgICAgICAgICAgICAgICAg
aWYgKGZsYWdzKCkgJiAoaW9zOjp1bml0YnVmfGlvczo6c3RkaW8pKQogICAgICAgICAgICAgICAg
ICAgICAgZG9fb3NmeCgpOyB9CiAgICBvc3RyZWFtJiBmbHVzaCgpOwogICAgb3N0cmVhbSYgcHV0
KGNoYXIgYykgeyBfc3RyYnVmLT5zcHV0YyhjKTsgcmV0dXJuICp0aGlzOyB9CgoKCgoKICAgIG9z
dHJlYW0mIHdyaXRlKGNvbnN0IGNoYXIgKnMsIHN0cmVhbXNpemUgbik7CiAgICBvc3RyZWFtJiB3
cml0ZShjb25zdCB1bnNpZ25lZCBjaGFyICpzLCBzdHJlYW1zaXplIG4pCiAgICAgIHsgcmV0dXJu
IHdyaXRlKChjb25zdCBjaGFyKilzLCBuKTt9CiAgICBvc3RyZWFtJiB3cml0ZShjb25zdCBzaWdu
ZWQgY2hhciAqcywgc3RyZWFtc2l6ZSBuKQogICAgICB7IHJldHVybiB3cml0ZSgoY29uc3QgY2hh
ciopcywgbik7fQogICAgb3N0cmVhbSYgd3JpdGUoY29uc3Qgdm9pZCAqcywgc3RyZWFtc2l6ZSBu
KQogICAgICB7IHJldHVybiB3cml0ZSgoY29uc3QgY2hhciopcywgbik7fQogICAgb3N0cmVhbSYg
c2Vla3Aoc3RyZWFtcG9zKTsKICAgIG9zdHJlYW0mIHNlZWtwKHN0cmVhbW9mZiwgX3NlZWtfZGly
KTsKICAgIHN0cmVhbXBvcyB0ZWxscCgpOwogICAgb3N0cmVhbSYgZm9ybShjb25zdCBjaGFyICpm
b3JtYXQgLi4uKTsKICAgIG9zdHJlYW0mIHZmb3JtKGNvbnN0IGNoYXIgKmZvcm1hdCwgX19nbnVj
X3ZhX2xpc3QgYXJncyk7CgogICAgb3N0cmVhbSYgb3BlcmF0b3I8PChjaGFyIGMpOwogICAgb3N0
cmVhbSYgb3BlcmF0b3I8PCh1bnNpZ25lZCBjaGFyIGMpIHsgcmV0dXJuICgqdGhpcykgPDwgKGNo
YXIpYzsgfQogICAgb3N0cmVhbSYgb3BlcmF0b3I8PChzaWduZWQgY2hhciBjKSB7IHJldHVybiAo
KnRoaXMpIDw8IChjaGFyKWM7IH0KICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwoY29uc3QgY2hhciAq
cyk7CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KGNvbnN0IHVuc2lnbmVkIGNoYXIgKnMpCiAgICAg
ICAgeyByZXR1cm4gKCp0aGlzKSA8PCAoY29uc3QgY2hhciopczsgfQogICAgb3N0cmVhbSYgb3Bl
cmF0b3I8PChjb25zdCBzaWduZWQgY2hhciAqcykKICAgICAgICB7IHJldHVybiAoKnRoaXMpIDw8
IChjb25zdCBjaGFyKilzOyB9CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KGNvbnN0IHZvaWQgKnAp
OwogICAgb3N0cmVhbSYgb3BlcmF0b3I8PChpbnQgbik7CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8
KHVuc2lnbmVkIGludCBuKTsKICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwobG9uZyBuKTsKICAgIG9z
dHJlYW0mIG9wZXJhdG9yPDwodW5zaWduZWQgbG9uZyBuKTsKCiAgICBfX2V4dGVuc2lvbl9fIG9z
dHJlYW0mIG9wZXJhdG9yPDwobG9uZyBsb25nIG4pOwogICAgX19leHRlbnNpb25fXyBvc3RyZWFt
JiBvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcgbG9uZyBuKTsKCiAgICBvc3RyZWFtJiBvcGVyYXRv
cjw8KHNob3J0IG4pIHtyZXR1cm4gb3BlcmF0b3I8PCgoaW50KW4pO30KICAgIG9zdHJlYW0mIG9w
ZXJhdG9yPDwodW5zaWduZWQgc2hvcnQgbikge3JldHVybiBvcGVyYXRvcjw8KCh1bnNpZ25lZCBp
bnQpbik7fQoKICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwoYm9vbCBiKSB7IHJldHVybiBvcGVyYXRv
cjw8KChpbnQpYik7IH0KCiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KGRvdWJsZSBuKTsKICAgIG9z
dHJlYW0mIG9wZXJhdG9yPDwoZmxvYXQgbikgeyByZXR1cm4gb3BlcmF0b3I8PCgoZG91YmxlKW4p
OyB9CgogICAgb3N0cmVhbSYgb3BlcmF0b3I8PChsb25nIGRvdWJsZSBuKTsKCgoKICAgIG9zdHJl
YW0mIG9wZXJhdG9yPDwoX19vbWFuaXAgZnVuYykgeyByZXR1cm4gKCpmdW5jKSgqdGhpcyk7IH0K
ICAgIG9zdHJlYW0mIG9wZXJhdG9yPDwoX19tYW5pcCBmdW5jKSB7KCpmdW5jKSgqdGhpcyk7IHJl
dHVybiAqdGhpczt9CiAgICBvc3RyZWFtJiBvcGVyYXRvcjw8KHN0cmVhbWJ1ZiopOwoKCgp9OwoK
Y2xhc3MgaXN0cmVhbSA6IHZpcnR1YWwgcHVibGljIGlvcwp7Cgpwcm90ZWN0ZWQ6CiAgICBzaXpl
X3QgX2djb3VudDsKCiAgICBpbnQgX3NraXBfd3MoKTsKICBwdWJsaWM6CiAgICBpc3RyZWFtKCk6
IF9nY291bnQgKDApIHsgfQogICAgaXN0cmVhbShzdHJlYW1idWYqIHNiLCBvc3RyZWFtKnRpZWQ9
X19udWxsKTsKICAgIGlzdHJlYW0mIGdldChjaGFyKiBwdHIsIGludCBsZW4sIGNoYXIgZGVsaW0g
PSAnXG4nKTsKICAgIGlzdHJlYW0mIGdldCh1bnNpZ25lZCBjaGFyKiBwdHIsIGludCBsZW4sIGNo
YXIgZGVsaW0gPSAnXG4nKQogICAgICAgIHsgcmV0dXJuIGdldCgoY2hhciopcHRyLCBsZW4sIGRl
bGltKTsgfQogICAgaXN0cmVhbSYgZ2V0KGNoYXImIGMpOwogICAgaXN0cmVhbSYgZ2V0KHVuc2ln
bmVkIGNoYXImIGMpIHsgcmV0dXJuIGdldCgoY2hhciYpYyk7IH0KICAgIGlzdHJlYW0mIGdldGxp
bmUoY2hhciogcHRyLCBpbnQgbGVuLCBjaGFyIGRlbGltID0gJ1xuJyk7CiAgICBpc3RyZWFtJiBn
ZXRsaW5lKHVuc2lnbmVkIGNoYXIqIHB0ciwgaW50IGxlbiwgY2hhciBkZWxpbSA9ICdcbicpCiAg
ICAgICAgeyByZXR1cm4gZ2V0bGluZSgoY2hhciopcHRyLCBsZW4sIGRlbGltKTsgfQogICAgaXN0
cmVhbSYgZ2V0KHNpZ25lZCBjaGFyJiBjKSB7IHJldHVybiBnZXQoKGNoYXImKWMpOyB9CiAgICBp
c3RyZWFtJiBnZXQoc2lnbmVkIGNoYXIqIHB0ciwgaW50IGxlbiwgY2hhciBkZWxpbSA9ICdcbicp
CiAgICAgICAgeyByZXR1cm4gZ2V0KChjaGFyKilwdHIsIGxlbiwgZGVsaW0pOyB9CiAgICBpc3Ry
ZWFtJiBnZXRsaW5lKHNpZ25lZCBjaGFyKiBwdHIsIGludCBsZW4sIGNoYXIgZGVsaW0gPSAnXG4n
KQogICAgICAgIHsgcmV0dXJuIGdldGxpbmUoKGNoYXIqKXB0ciwgbGVuLCBkZWxpbSk7IH0KICAg
IGlzdHJlYW0mIHJlYWQoY2hhciAqcHRyLCBzdHJlYW1zaXplIG4pOwogICAgaXN0cmVhbSYgcmVh
ZCh1bnNpZ25lZCBjaGFyICpwdHIsIHN0cmVhbXNpemUgbikKICAgICAgeyByZXR1cm4gcmVhZCgo
Y2hhciopcHRyLCBuKTsgfQogICAgaXN0cmVhbSYgcmVhZChzaWduZWQgY2hhciAqcHRyLCBzdHJl
YW1zaXplIG4pCiAgICAgIHsgcmV0dXJuIHJlYWQoKGNoYXIqKXB0ciwgbik7IH0KICAgIGlzdHJl
YW0mIHJlYWQodm9pZCAqcHRyLCBzdHJlYW1zaXplIG4pCiAgICAgIHsgcmV0dXJuIHJlYWQoKGNo
YXIqKXB0ciwgbik7IH0KICAgIGlzdHJlYW0mIGdldChzdHJlYW1idWYmIHNiLCBjaGFyIGRlbGlt
ID0gJ1xuJyk7CiAgICBpc3RyZWFtJiBnZXRzKGNoYXIgKipzLCBjaGFyIGRlbGltID0gJ1xuJyk7
CiAgICBpbnQgaXBmeChpbnQgbmVlZCA9IDApIHsKICAgICAgICBpZiAoIWdvb2QoKSkgeyBzZXQo
aW9zOjpmYWlsYml0KTsgcmV0dXJuIDA7IH0KICAgICAgICBlbHNlIHsKOwogICAgICAgICAgaWYg
KF90aWUgJiYgKG5lZWQgPT0gMCB8fCByZGJ1ZigpLT5pbl9hdmFpbCgpIDwgbmVlZCkpIF90aWUt
PmZsdXNoKCk7CiAgICAgICAgICBpZiAoIW5lZWQgJiYgKGZsYWdzKCkgJiBpb3M6OnNraXB3cykp
IHJldHVybiBfc2tpcF93cygpOwogICAgICAgICAgZWxzZSByZXR1cm4gMTsKICAgICAgICB9CiAg
ICB9CiAgICBpbnQgaXBmeDAoKSB7CiAgICAgICAgaWYgKCFnb29kKCkpIHsgc2V0KGlvczo6ZmFp
bGJpdCk7IHJldHVybiAwOyB9CiAgICAgICAgZWxzZSB7CjsKICAgICAgICAgIGlmIChfdGllKSBf
dGllLT5mbHVzaCgpOwogICAgICAgICAgaWYgKGZsYWdzKCkgJiBpb3M6OnNraXB3cykgcmV0dXJu
IF9za2lwX3dzKCk7CiAgICAgICAgICBlbHNlIHJldHVybiAxOwogICAgICAgIH0KICAgIH0KICAg
IGludCBpcGZ4MSgpIHsKICAgICAgICBpZiAoIWdvb2QoKSkgeyBzZXQoaW9zOjpmYWlsYml0KTsg
cmV0dXJuIDA7IH0KICAgICAgICBlbHNlIHsKOwogICAgICAgICAgaWYgKF90aWUgJiYgcmRidWYo
KS0+aW5fYXZhaWwoKSA9PSAwKSBfdGllLT5mbHVzaCgpOwogICAgICAgICAgcmV0dXJuIDE7CiAg
ICAgICAgfQogICAgfQogICAgdm9pZCBpc2Z4KCkgezsgfQogICAgaW50IGdldCgpIHsgaWYgKCFp
cGZ4MSgpKSByZXR1cm4gKC0xKTsKICAgICAgICAgICAgICAgIGVsc2UgeyBpbnQgY2ggPSBfc3Ry
YnVmLT5zYnVtcGMoKTsKICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT0gKC0xKSkgc2V0
KGlvczo6ZW9mYml0KTsKICAgICAgICAgICAgICAgICAgICAgICBpc2Z4KCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGNoOwogICAgICAgICAgICAgICAgICAgICB9IH0KICAgIGludCBw
ZWVrKCk7CiAgICBzaXplX3QgZ2NvdW50KCkgeyByZXR1cm4gX2djb3VudDsgfQogICAgaXN0cmVh
bSYgaWdub3JlKGludCBuPTEsIGludCBkZWxpbSA9ICgtMSkpOwogICAgaW50IHN5bmMgKCk7CiAg
ICBpc3RyZWFtJiBzZWVrZyhzdHJlYW1wb3MpOwogICAgaXN0cmVhbSYgc2Vla2coc3RyZWFtb2Zm
LCBfc2Vla19kaXIpOwogICAgc3RyZWFtcG9zIHRlbGxnKCk7CiAgICBpc3RyZWFtJiBwdXRiYWNr
KGNoYXIgY2gpIHsKICAgICAgICBpZiAoZ29vZCgpICYmIF9zdHJidWYtPnNwdXRiYWNrYyhjaCkg
PT0gKC0xKSkgY2xlYXIoaW9zOjpiYWRiaXQpOwogICAgICAgIHJldHVybiAqdGhpczt9CiAgICBp
c3RyZWFtJiB1bmdldCgpIHsKICAgICAgICBpZiAoZ29vZCgpICYmIF9zdHJidWYtPnN1bmdldGMo
KSA9PSAoLTEpKSBjbGVhcihpb3M6OmJhZGJpdCk7CiAgICAgICAgcmV0dXJuICp0aGlzO30KICAg
IGlzdHJlYW0mIHNjYW4oY29uc3QgY2hhciAqZm9ybWF0IC4uLik7CiAgICBpc3RyZWFtJiB2c2Nh
bihjb25zdCBjaGFyICpmb3JtYXQsIF9fZ251Y192YV9saXN0IGFyZ3MpOwoKCgoKCgogICAgaXN0
cmVhbSYgb3BlcmF0b3I+PihjaGFyKik7CiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KHVuc2lnbmVk
IGNoYXIqIHApIHsgcmV0dXJuIG9wZXJhdG9yPj4oKGNoYXIqKXApOyB9CiAgICBpc3RyZWFtJiBv
cGVyYXRvcj4+KHNpZ25lZCBjaGFyKnApIHsgcmV0dXJuIG9wZXJhdG9yPj4oKGNoYXIqKXApOyB9
CiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KGNoYXImIGMpOwogICAgaXN0cmVhbSYgb3BlcmF0b3I+
Pih1bnNpZ25lZCBjaGFyJiBjKSB7cmV0dXJuIG9wZXJhdG9yPj4oKGNoYXImKWMpO30KICAgIGlz
dHJlYW0mIG9wZXJhdG9yPj4oc2lnbmVkIGNoYXImIGMpIHtyZXR1cm4gb3BlcmF0b3I+PigoY2hh
ciYpYyk7fQogICAgaXN0cmVhbSYgb3BlcmF0b3I+PihpbnQmKTsKICAgIGlzdHJlYW0mIG9wZXJh
dG9yPj4obG9uZyYpOwoKICAgIF9fZXh0ZW5zaW9uX18gaXN0cmVhbSYgb3BlcmF0b3I+Pihsb25n
IGxvbmcmKTsKICAgIF9fZXh0ZW5zaW9uX18gaXN0cmVhbSYgb3BlcmF0b3I+Pih1bnNpZ25lZCBs
b25nIGxvbmcmKTsKCiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KHNob3J0Jik7CiAgICBpc3RyZWFt
JiBvcGVyYXRvcj4+KHVuc2lnbmVkIGludCYpOwogICAgaXN0cmVhbSYgb3BlcmF0b3I+Pih1bnNp
Z25lZCBsb25nJik7CiAgICBpc3RyZWFtJiBvcGVyYXRvcj4+KHVuc2lnbmVkIHNob3J0Jik7Cgog
ICAgaXN0cmVhbSYgb3BlcmF0b3I+Pihib29sJik7CgogICAgaXN0cmVhbSYgb3BlcmF0b3I+Pihm
bG9hdCYpOwogICAgaXN0cmVhbSYgb3BlcmF0b3I+Pihkb3VibGUmKTsKICAgIGlzdHJlYW0mIG9w
ZXJhdG9yPj4obG9uZyBkb3VibGUmKTsKICAgIGlzdHJlYW0mIG9wZXJhdG9yPj4oIF9fbWFuaXAg
ZnVuYykgeygqZnVuYykoKnRoaXMpOyByZXR1cm4gKnRoaXM7fQogICAgaXN0cmVhbSYgb3BlcmF0
b3I+PihfX2ltYW5pcCBmdW5jKSB7IHJldHVybiAoKmZ1bmMpKCp0aGlzKTsgfQogICAgaXN0cmVh
bSYgb3BlcmF0b3I+PihzdHJlYW1idWYqKTsKfTsKCmNsYXNzIGlvc3RyZWFtIDogcHVibGljIGlz
dHJlYW0sIHB1YmxpYyBvc3RyZWFtCnsKICBwdWJsaWM6CiAgICBpb3N0cmVhbSgpIHsgfQogICAg
aW9zdHJlYW0oc3RyZWFtYnVmKiBzYiwgb3N0cmVhbSp0aWVkPV9fbnVsbCk7Cn07CgpjbGFzcyBf
SU9faXN0cmVhbV93aXRoYXNzaWduIDogcHVibGljIGlzdHJlYW0gewpwdWJsaWM6CiAgX0lPX2lz
dHJlYW1fd2l0aGFzc2lnbiYgb3BlcmF0b3I9KGlzdHJlYW0mKTsKICBfSU9faXN0cmVhbV93aXRo
YXNzaWduJiBvcGVyYXRvcj0oX0lPX2lzdHJlYW1fd2l0aGFzc2lnbiYgcmhzKQogICAgeyByZXR1
cm4gb3BlcmF0b3I9IChzdGF0aWNfY2FzdDxpc3RyZWFtJj4gKHJocykpOyB9Cn07CgpjbGFzcyBf
SU9fb3N0cmVhbV93aXRoYXNzaWduIDogcHVibGljIG9zdHJlYW0gewpwdWJsaWM6CiAgX0lPX29z
dHJlYW1fd2l0aGFzc2lnbiYgb3BlcmF0b3I9KG9zdHJlYW0mKTsKICBfSU9fb3N0cmVhbV93aXRo
YXNzaWduJiBvcGVyYXRvcj0oX0lPX29zdHJlYW1fd2l0aGFzc2lnbiYgcmhzKQogICAgeyByZXR1
cm4gb3BlcmF0b3I9IChzdGF0aWNfY2FzdDxvc3RyZWFtJj4gKHJocykpOyB9Cn07CgpleHRlcm4g
X0lPX2lzdHJlYW1fd2l0aGFzc2lnbiBjaW47CgpleHRlcm4gX0lPX29zdHJlYW1fd2l0aGFzc2ln
biBjb3V0LCBjZXJyOwoKZXh0ZXJuIF9JT19vc3RyZWFtX3dpdGhhc3NpZ24gY2xvZwoKCgo7Cgpl
eHRlcm4gaXN0cmVhbSYgbG9jayhpc3RyZWFtJiBpbnMpOwpleHRlcm4gaXN0cmVhbSYgdW5sb2Nr
KGlzdHJlYW0mIGlucyk7CmV4dGVybiBvc3RyZWFtJiBsb2NrKG9zdHJlYW0mIG91dHMpOwpleHRl
cm4gb3N0cmVhbSYgdW5sb2NrKG9zdHJlYW0mIG91dHMpOwoKc3RydWN0IElvc3RyZWFtX2luaXQg
eyB9IDsKCmlubGluZSBpb3MmIGRlYyhpb3MmIGkpCnsgaS5zZXRmKGlvczo6ZGVjLCBpb3M6OmRl
Y3xpb3M6OmhleHxpb3M6Om9jdCk7IHJldHVybiBpOyB9CmlubGluZSBpb3MmIGhleChpb3MmIGkp
CnsgaS5zZXRmKGlvczo6aGV4LCBpb3M6OmRlY3xpb3M6OmhleHxpb3M6Om9jdCk7IHJldHVybiBp
OyB9CmlubGluZSBpb3MmIG9jdChpb3MmIGkpCnsgaS5zZXRmKGlvczo6b2N0LCBpb3M6OmRlY3xp
b3M6OmhleHxpb3M6Om9jdCk7IHJldHVybiBpOyB9Cn0KCiMgNyAiL3Vzci9pbmNsdWRlL2crKy0z
L2lvc3RyZWFtIiAyIDMKIyAyICJ0ZW1wLmNwcCIgMgoKaW50IG91dF9yZXN1bHQoZmxvYXQgdGVz
dCkgewogIGlmICh0ZXN0PDApCiAgICBjb3V0IDw8ICJFUlJcbiIKICBlbHNlCiAgICBjb3V0IDw8
IHRlc3QgPDwgJ1xuJzsKfQo=
>From rth@gcc.gnu.org Sun Apr 01 00:00:00 2001
From: rth@gcc.gnu.org
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: optimization/1096
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010214230604.5887.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg01275.html
Content-length: 505

The following reply was made to PR optimization/1096; it has been noted by GNATS.

From: rth@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org, lennychen@yahoo.com, nobody@gcc.gnu.org
Cc:  
Subject: Re: optimization/1096
Date: 14 Feb 2001 23:03:02 -0000

 Synopsis: bug when using -O2 option
 
 State-Changed-From-To: open->closed
 State-Changed-By: rth
 State-Changed-When: Wed Feb 14 15:03:02 2001
 State-Changed-Why:
     Fixed for gcc 3.0.
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=1096&database=gcc


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-04-01  0:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-01  0:00 c++/687 lerdsuwa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).