From mboxrd@z Thu Jan 1 00:00:00 1970 From: jsm@cygnus.com To: nobody@sourceware.cygnus.com Cc: gnats-prs@sourceware.cygnus.com Subject: Re: gnats/30 Date: Wed, 01 Dec 1999 01:34:00 -0000 Message-id: <19991201093400.26968.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00058.html List-Id: The following reply was made to PR gnats/30; it has been noted by GNATS. From: jsm@cygnus.com To: crash@cygnus.com, gnats-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com Cc: Subject: Re: gnats/30 Date: 1 Dec 1999 09:30:36 -0000 Synopsis: Test PR. State-Changed-From-To: open->closed State-Changed-By: jsm State-Changed-When: Wed Dec 1 01:30:36 1999 State-Changed-Why: test done http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=30&database=gnats >>From jsm@cygnus.com Wed Dec 01 01:34:00 1999 From: jsm@cygnus.com To: nobody@sourceware.cygnus.com Cc: gnats-prs@sourceware.cygnus.com Subject: Re: gnats/32 Date: Wed, 01 Dec 1999 01:34:00 -0000 Message-id: <19991201093400.26982.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00059.html Content-length: 489 The following reply was made to PR gnats/32; it has been noted by GNATS. From: jsm@cygnus.com To: gnats-gnats@sourceware.cygnus.com, jsm@cygnus.com, nobody@sourceware.cygnus.com Cc: Subject: Re: gnats/32 Date: 1 Dec 1999 09:31:05 -0000 Synopsis: Test PR #3 State-Changed-From-To: open->closed State-Changed-By: jsm State-Changed-When: Wed Dec 1 01:31:05 1999 State-Changed-Why: test done http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=32&database=gnats >>From jsm@cygnus.com Wed Dec 01 01:34:00 1999 From: jsm@cygnus.com To: nobody@sourceware.cygnus.com Cc: gnats-prs@sourceware.cygnus.com Subject: Re: gnats/31 Date: Wed, 01 Dec 1999 01:34:00 -0000 Message-id: <19991201093400.26973.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00060.html Content-length: 489 The following reply was made to PR gnats/31; it has been noted by GNATS. From: jsm@cygnus.com To: gnats-gnats@sourceware.cygnus.com, jsm@cygnus.com, nobody@sourceware.cygnus.com Cc: Subject: Re: gnats/31 Date: 1 Dec 1999 09:30:52 -0000 Synopsis: Test PR #2 State-Changed-From-To: open->closed State-Changed-By: jsm State-Changed-When: Wed Dec 1 01:30:52 1999 State-Changed-Why: test done http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=31&database=gnats >>From luik@s.orthogon.de Thu Dec 02 05:14:00 1999 From: luik@s.orthogon.de To: gnats-gnats@sourceware.cygnus.com Cc: hofmann@s.orthogon.de Subject: gnats/33: lines starting with greater (>) confuse GNATS Date: Thu, 02 Dec 1999 05:14:00 -0000 Message-id: <19991202130733.25974.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00061.html Content-length: 1341 >Number: 33 >Category: gnats >Synopsis: lines starting with greater (>) confuse GNATS >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Dec 02 05:14:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: Andreas Luik >Release: gnats-3.113 >Organization: >Environment: all >Description: If a line of a PR description (or any other multi-line text field) starts with a greater sign (>), GNATS seems to interpret this a field tag, but since it does not understand the tag, it moves the line (and all following lines up to the next tag) to the >Unformatted section. This happens both with send-pr.el and gnatsweb. Possible solutions: (a) protect > with a backslash (b) ignore unknown tags, i.e. keep them at the current position in the PR. Solution (b) would be prefered, because it would allow projects to introduce their own "pseudo"-tags, like >How-To-Repeat: Use send-pr and submit a PR with a description line starting with >. Example: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ">Deadline:" or something like that. >This is from the example entered in the How-To-Repeat section. See that the above line and this one are moved to the Unformatted section. >>From bhoule@airfiberinc.com Tue Dec 07 19:44:00 1999 From: bhoule@airfiberinc.com To: gnats-gnats@sourceware.cygnus.com Subject: gnats/34: $GNATS_ROOT not updated via Configure Date: Tue, 07 Dec 1999 19:44:00 -0000 Message-id: <19991208033652.20674.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00062.html Content-length: 780 >Number: 34 >Category: gnats >Synopsis: $GNATS_ROOT not updated via Configure >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Dec 07 19:44:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: bhoule@airfiberinc.com >Release: 3.113 >Organization: >Environment: Solaris 2.6 >Description: Ran ./configure --prefix, but gnats-adm location within gnats/Makefile did not get properly updated to reflect the new GNATS_ROOT. Assuming the docs are correct, GNATS_ROOT should have changed per my prefix rather than sticking at /usr/local/share/gnats. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >>From nobody@localhost.com Wed Dec 08 08:04:00 1999 From: nobody@localhost.com To: gnats-gnats@sourceware.cygnus.com Subject: gnats/35: Coffee Can Empty Date: Wed, 08 Dec 1999 08:04:00 -0000 Message-id: <19991208155856.2634.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00063.html Content-length: 538 >Number: 35 >Category: gnats >Synopsis: Coffee Can Empty >Confidential: no >Severity: serious >Priority: high >Responsible: unassigned >State: open >Class: support >Submitter-Id: net >Arrival-Date: Wed Dec 08 08:04:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: nobody@localhost.com >Release: unknown-1.0 >Organization: >Environment: >Description: It seems the coffy can is empty again >How-To-Repeat: duh >Fix: duh >Release-Note: >Audit-Trail: >Unformatted: >>From mdunn@marconi-is.com Thu Dec 09 12:04:00 1999 From: mdunn@marconi-is.com To: gnats-gnats@sourceware.cygnus.com Cc: mdunn@marconi-is.com Subject: gnats/36: Need to add category for gnatsweb Date: Thu, 09 Dec 1999 12:04:00 -0000 Message-id: <19991209195917.21587.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00064.html Content-length: 719 >Number: 36 >Category: gnats >Synopsis: Need to add category for gnatsweb >Confidential: no >Severity: critical >Priority: high >Responsible: unassigned >State: open >Class: support >Submitter-Id: net >Arrival-Date: Thu Dec 09 12:04:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: Mark >Release: 3.113 >Organization: >Environment: Solaris 2.6 >Description: There needs to be a category added to your database for gnatsweb. I believe gnatsweb won't work if you don't have an alias defined for your db. If you're operating with only one db, you don't need to define an alias. >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >>From bhoule@airfiberinc.com Thu Dec 09 22:14:00 1999 From: "Bill Houle" To: nobody@sourceware.cygnus.com Cc: gnats-prs@sourceware.cygnus.com Subject: Re: gnats/34 Date: Thu, 09 Dec 1999 22:14:00 -0000 Message-id: <19991210061401.7891.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00065.html Content-length: 821 The following reply was made to PR gnats/34; it has been noted by GNATS. From: "Bill Houle" To: bhoule@airfiberinc.com, gnats-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com Cc: Subject: Re: gnats/34 Date: Thu, 09 Dec 1999 22:08:52 -0800 Upon further consideration, this may not be a bug in the sense that I had thought. There was a 1998 installation of GNATS already on the system (which I did not realize). It looks like 'configure' looks within old script files to get values for certain variables, so it was overriding whatever I had specified on the configure command line. This is not sane behavior -- the command line should overrule all -- but it is not exactly a "bug". --bill http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=34&database=gnats >>From bhoule@airfiberinc.com Thu Dec 09 22:24:00 1999 From: bhoule@airfiberinc.com To: gnats-gnats@sourceware.cygnus.com Subject: gnats/37: send-pr values for CLASSES is static Date: Thu, 09 Dec 1999 22:24:00 -0000 Message-id: <19991210061415.8023.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00066.html Content-length: 916 >Number: 37 >Category: gnats >Synopsis: send-pr values for CLASSES is static >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: change-request >Submitter-Id: net >Arrival-Date: Thu Dec 09 22:24:01 PST 1999 >Closed-Date: >Last-Modified: >Originator: bhoule@airfiberinc.com >Release: 3.113 >Organization: >Environment: Solaris 2.6 >Description: While the CATEGORIES support in send-pr is dynamic, the CLASSES is static. Thus, if you change the classes file, send-pr still looks for the default classes and won't let you enter your 'local' definitions. >How-To-Repeat: Change your classes file and run send-pr. Still uses defaults of: sw-bug, doc-bug, etc. >Fix: Make it read $GNATS_ROOT/gnats-adm/classes. If I come up with something, I'll let you know. >Release-Note: >Audit-Trail: >Unformatted: >>From bhoule@airfiberinc.com Thu Dec 09 23:24:00 1999 From: "Bill Houle" To: nobody@sourceware.cygnus.com Cc: gnats-prs@sourceware.cygnus.com Subject: Re: gnats/37 Date: Thu, 09 Dec 1999 23:24:00 -0000 Message-id: <19991210072400.27314.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00067.html Content-length: 2533 The following reply was made to PR gnats/37; it has been noted by GNATS. From: "Bill Houle" To: bhoule@airfiberinc.com, gnats-gnats@sourceware.cygnus.com, nobody@sourceware.cygnus.com Cc: Subject: Re: gnats/37 Date: Thu, 09 Dec 1999 23:16:54 -0800 Here's a fix: *** send-pr.sh Thu Dec 9 15:08:43 1999 --- send-pr.sh.orig Thu Dec 9 14:33:24 1999 *************** *** 244,261 **** ;; esac - CLASSES=`grep -v '^#' $GNATS_ROOT/gnats-adm/classes | grep -v '^$' | sed -n 's/:.*//gp` - if [ -z "$CLASSES" ]; then - echo "$COMMAND: there are no classes defined for $GNATS_SITE!" - exit 1 - fi - - # Format the class list - #CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>' - CLASS_C=`echo $CLASSES | awk -F: '{ printf " %s |", $1 }'` - CLASS_C=`echo $CLASS_C | sed -n 's/|$//p'` - CLASS_C="<[ $CLASS_C ] (one line)>" - ORIGINATOR_C='' ORGANIZATION_C='' CONFIDENTIAL_C='<[ yes | no ] (one line)>' --- 244,249 ---- *************** *** 265,270 **** --- 253,259 ---- fi PRIORITY_C='<[ low | medium | high ] (one line)>' CATEGORY_C='' + CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>' RELEASE_C='' ENVIRONMENT_C='' DESCRIPTION_C='' *************** *** 464,483 **** # PATTERN=">Class:" CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` ! FOUND= ! for C in $CLASSES ! do ! if [ "$C" = "$CLASS" ]; then FOUND=true ; break ; fi ! done ! if [ -n "$FOUND" ]; then ! CNT=`expr $CNT + 1` ! else ! if [ -z "$CLASS" ]; then ! echo "$COMMAND: you must include a Class: field in your report." ! else ! echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." ! fi ! fi # # 6) Check that synopsis is not empty # --- 453,462 ---- # PATTERN=">Class:" CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` ! case "$CLASS" in ! ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;; ! *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." ! esac # # 6) Check that synopsis is not empty # http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=37&database=gnats >>From ehealy@planetout.com Thu Dec 16 11:04:00 1999 From: ehealy@planetout.com To: gnats-gnats@sourceware.cygnus.com Subject: gnats/39: test Date: Thu, 16 Dec 1999 11:04:00 -0000 Message-id: <19991216190047.30481.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00068.html Content-length: 488 >Number: 39 >Category: gnats >Synopsis: test >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Dec 16 11:04:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: ehealy@planetout.com >Release: unknown-1.0 >Organization: >Environment: >Description: test >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: >>From firefly@reksoft.ru Tue Dec 21 05:44:00 1999 From: firefly@reksoft.ru To: gnats-gnats@sourceware.cygnus.com Cc: drone@reksoft.ru Subject: gnats/40: Two important timezones (MSK and W-SU, which are set by Solaris) are missing in getdate.y Date: Tue, 21 Dec 1999 05:44:00 -0000 Message-id: <19991221133654.28987.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00069.html Content-length: 34036 >Number: 40 >Category: gnats >Synopsis: Two important timezones (MSK and W-SU, which are set by Solaris) are missing in getdate.y >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Dec 21 05:44:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: Fedor Drizhinin >Release: gnats-3.113 >Organization: >Environment: SunOS firefly 5.7 Generic_106541-04 sun4u sparc SUNW,Ultra-5_10 >Description: When user tries to edit the report either using gnatsweb or with tkgnats, it gets the error "Couldn't parse the ARRIVAL_DATE: ". Error occurs only when timezone is set to W-SU or MSK (timezones for western part of Russia - Moscow/St.Petersburg timezone, GMT+3). >How-To-Repeat: Stable error >Fix: Fix is attached to this PR: into the definition of static TABLE const TimezoneTable[] in getdate.y following lines should be added: { "msk", tZONE, -HOUR (3) }, { "w-su", tZONE, -HOUR (3) }, /* Russia, Zone 2 */ >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="getdate.y" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="getdate.y" JXsKLyoKKiogIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBTdGV2ZW4gTS4gQmVsbG92aW4gPHNtYkBy ZXNlYXJjaC5hdHQuY29tPiB3aGlsZQoqKiAgYXQgdGhlIFVuaXZlcnNpdHkgb2YgTm9ydGggQ2Fy b2xpbmEgYXQgQ2hhcGVsIEhpbGwuICBMYXRlciB0d2Vha2VkIGJ5CioqICBhIGNvdXBsZSBvZiBw ZW9wbGUgb24gVXNlbmV0LiAgQ29tcGxldGVseSBvdmVyaGF1bGVkIGJ5IFJpY2ggJGFsegoqKiAg PHJzYWx6QGJibi5jb20+IGFuZCBKaW0gQmVyZXRzIDxqYmVyZXRzQGJibi5jb20+IGluIEF1Z3Vz dCwgMTk5MDsKKiogIHNlbmQgYW55IGVtYWlsIHRvIFJpY2guCioqCioqICBUaGlzIGdyYW1tYXIg aGFzIDEwIHNoaWZ0L3JlZHVjZSBjb25mbGljdHMuCioqCioqICBUaGlzIGNvZGUgaXMgaW4gdGhl IHB1YmxpYyBkb21haW4gYW5kIGhhcyBubyBjb3B5cmlnaHQuCiovCi8qIFNVUFBSRVNTIDI4NyBv biB5YWNjcGFyX3NjY3NpZCAqLy8qIFVudXNlZCBzdGF0aWMgdmFyaWFibGUgKi8KLyogU1VQUFJF U1MgMjg4IG9uIHl5ZXJybGFiICovLyogTGFiZWwgdW51c2VkICovCgojaW5jbHVkZSA8YW5zaWRl Y2wuaD4KCiNpZmRlZiBIQVZFX0NPTkZJR19ICiNpbmNsdWRlIDxjb25maWcuaD4KI2VuZGlmCgov KiBTaW5jZSB0aGUgY29kZSBvZiBnZXRkYXRlLnkgaXMgbm90IGluY2x1ZGVkIGluIHRoZSBFbWFj cyBleGVjdXRhYmxlCiAgIGl0c2VsZiwgdGhlcmUgaXMgbm8gbmVlZCB0byAjZGVmaW5lIHN0YXRp YyBpbiB0aGlzIGZpbGUuICBFdmVuIGlmCiAgIHRoZSBjb2RlIHdlcmUgaW5jbHVkZWQgaW4gdGhl IEVtYWNzIGV4ZWN1dGFibGUsIGl0IHByb2JhYmx5CiAgIHdvdWxkbid0IGRvIGFueSBoYXJtIHRv ICN1bmRlZiBpdCBoZXJlOyB0aGlzIHdpbGwgb25seSBjYXVzZQogICBwcm9ibGVtcyBpZiB3ZSB0 cnkgdG8gd3JpdGUgdG8gYSBzdGF0aWMgdmFyaWFibGUsIHdoaWNoIEkgZG9uJ3QKICAgdGhpbmsg dGhpcyBjb2RlIG5lZWRzIHRvIGRvLiAgKi8KI2lmZGVmIGVtYWNzCiN1bmRlZiBzdGF0aWMKI2Vu ZGlmCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgojaWYJZGVmaW5lZCAo dm1zKQojaW5jbHVkZSA8dHlwZXMuaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2Vsc2UKI2luY2x1ZGUg PHN5cy90eXBlcy5oPgojaWZkZWYgVElNRV9XSVRIX1NZU19USU1FCiNpbmNsdWRlIDxzeXMvdGlt ZS5oPgojaW5jbHVkZSA8dGltZS5oPgojZWxzZQojaWZkZWYgSEFWRV9TWVNfVElNRV9ICiNpbmNs dWRlIDxzeXMvdGltZS5oPgojZWxzZQojaW5jbHVkZSA8dGltZS5oPgojZW5kaWYKI2VuZGlmCgoj aWZkZWYgdGltZXpvbmUKI3VuZGVmIHRpbWV6b25lIC8qIG5lZWRlZCBmb3Igc2dpICovCiNlbmRp ZgoKI2lmIGRlZmluZWQgKEhBVkVfU1lTX1RJTUVCX0gpCiNpbmNsdWRlIDxzeXMvdGltZWIuaD4K I2Vsc2UKCi8qIGdldF9kYXRlIHVzZXMgdGhlIG9ic29sZXRlIGBzdHJ1Y3QgdGltZWInIGluIGl0 cyBpbnRlcmZhY2UhICBGSVhNRS4KICAgU2luY2Ugc29tZSBzeXN0ZW1zIGRvbid0IGhhdmUgaXQs IHdlIGRlZmluZSBpdCBoZXJlOwogICBjYWxsZXJzIG11c3QgZG8gbGlrZXdpc2UuICAqLwpzdHJ1 Y3QgdGltZWIKICB7CiAgICB0aW1lX3QJCXRpbWU7CQkvKiBTZWNvbmRzIHNpbmNlIHRoZSBlcG9j aAkqLwogICAgdW5zaWduZWQgc2hvcnQJbWlsbGl0bTsJLyogRmllbGQgbm90IHVzZWQJCSovCiAg ICBzaG9ydAkJdGltZXpvbmU7CS8qIE1pbnV0ZXMgd2VzdCBvZiBHTVQJCSovCiAgICBzaG9ydAkJ ZHN0ZmxhZzsJLyogRmllbGQgbm90IHVzZWQJCSovCn07CiNlbmRpZiAvKiBkZWZpbmVkIChIQVZF X1NZU19USU1FQl9IKSAqLwoKI2VuZGlmCS8qIGRlZmluZWQgKHZtcykgKi8KCiNpZiBkZWZpbmVk IChTVERDX0hFQURFUlMpIHx8IGRlZmluZWQgKFVTRykKI2luY2x1ZGUgPHN0cmluZy5oPgojZW5k aWYKCi8qIFNvbWUgb2xkIHZlcnNpb25zIG9mIGJpc29uIGdlbmVyYXRlIHBhcnNlcnMgdGhhdCB1 c2UgYmNvcHkuCiAgIFRoYXQgbG9zZXMgb24gc3lzdGVtcyB0aGF0IGRvbid0IHByb3ZpZGUgdGhl IGZ1bmN0aW9uLCBzbyB3ZSBoYXZlCiAgIHRvIHJlZGVmaW5lIGl0IGhlcmUuICAqLwojaWYgIWRl ZmluZWQgKEhBVkVfQkNPUFkpICYmIGRlZmluZWQgKEhBVkVfTUVNQ1BZKSAmJiAhZGVmaW5lZCAo YmNvcHkpCiNkZWZpbmUgYmNvcHkoZnJvbSwgdG8sIGxlbikgbWVtY3B5ICgodG8pLCAoZnJvbSks IChsZW4pKQojZW5kaWYKCmV4dGVybiBzdHJ1Y3QgdG0JKmdtdGltZSAoKTsKZXh0ZXJuIHN0cnVj dCB0bQkqbG9jYWx0aW1lICgpOwoKI2RlZmluZSB5eXBhcnNlIGdldGRhdGVfeXlwYXJzZQojZGVm aW5lIHl5bGV4IGdldGRhdGVfeXlsZXgKI2RlZmluZSB5eWVycm9yIGdldGRhdGVfeXllcnJvcgoK c3RhdGljIGludCB5eWxleCAoKTsKc3RhdGljIGludCB5eWVycm9yICgpOwoKI2RlZmluZSBFUE9D SAkJMTk3MAojZGVmaW5lIEhPVVIoeCkJCSgodGltZV90KSh4KSAqIDYwKQojZGVmaW5lIFNFQ1NQ RVJEQVkJKDI0TCAqIDYwTCAqIDYwTCkKCiNkZWZpbmUgTUFYX0JVRkZfTEVOICAgIDEyOCAgIC8q IHNpemUgb2YgYnVmZmVyIHRvIHJlYWQgdGhlIGRhdGUgaW50byAqLwoKLyoKKiogIEFuIGVudHJ5 IGluIHRoZSBsZXhpY2FsIGxvb2t1cCB0YWJsZS4KKi8KdHlwZWRlZiBzdHJ1Y3QgX1RBQkxFIHsK ICAgIGNvbnN0IGNoYXIJKm5hbWU7CiAgICBpbnQJCXR5cGU7CiAgICB0aW1lX3QJdmFsdWU7Cn0g VEFCTEU7CgoKLyoKKiogIERheWxpZ2h0LXNhdmluZ3MgbW9kZTogIG9uLCBvZmYsIG9yIG5vdCB5 ZXQga25vd24uCiovCnR5cGVkZWYgZW51bSBfRFNUTU9ERSB7CiAgICBEU1RvbiwgRFNUb2ZmLCBE U1RtYXliZQp9IERTVE1PREU7CgovKgoqKiAgTWVyaWRpYW46ICBhbSwgcG0sIG9yIDI0LWhvdXIg c3R5bGUuCiovCnR5cGVkZWYgZW51bSBfTUVSSURJQU4gewogICAgTUVSYW0sIE1FUnBtLCBNRVIy NAp9IE1FUklESUFOOwoKCi8qCioqICBHbG9iYWwgdmFyaWFibGVzLiAgV2UgY291bGQgZ2V0IHJp ZCBvZiBtb3N0IG9mIHRoZXNlIGJ5IHVzaW5nIGEgZ29vZAoqKiAgdW5pb24gYXMgdGhlIHlhY2Mg c3RhY2suICAoVGhpcyByb3V0aW5lIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYmVmb3JlCioqICB5 YWNjIGhhZCB0aGUgJXVuaW9uIGNvbnN0cnVjdC4pICBNYXliZSBzb21lZGF5OyByaWdodCBub3cg d2Ugb25seSB1c2UKKiogIHRoZSAldW5pb24gdmVyeSByYXJlbHkuCiovCnN0YXRpYyBjaGFyCSp5 eUlucHV0OwpzdGF0aWMgRFNUTU9ERQl5eURTVG1vZGU7CnN0YXRpYyB0aW1lX3QJeXlEYXlPcmRp bmFsOwpzdGF0aWMgdGltZV90CXl5RGF5TnVtYmVyOwpzdGF0aWMgaW50CXl5SGF2ZURhdGU7CnN0 YXRpYyBpbnQJeXlIYXZlRGF5OwpzdGF0aWMgaW50CXl5SGF2ZVJlbDsKc3RhdGljIGludAl5eUhh dmVUaW1lOwpzdGF0aWMgaW50CXl5SGF2ZVpvbmU7CnN0YXRpYyB0aW1lX3QJeXlUaW1lem9uZTsK c3RhdGljIHRpbWVfdAl5eURheTsKc3RhdGljIHRpbWVfdAl5eUhvdXI7CnN0YXRpYyB0aW1lX3QJ eXlNaW51dGVzOwpzdGF0aWMgdGltZV90CXl5TW9udGg7CnN0YXRpYyB0aW1lX3QJeXlTZWNvbmRz OwpzdGF0aWMgdGltZV90CXl5WWVhcjsKc3RhdGljIE1FUklESUFOCXl5TWVyaWRpYW47CnN0YXRp YyB0aW1lX3QJeXlSZWxNb250aDsKc3RhdGljIHRpbWVfdAl5eVJlbFNlY29uZHM7CgolfQoKJXVu aW9uIHsKICAgIHRpbWVfdAkJTnVtYmVyOwogICAgZW51bSBfTUVSSURJQU4JTWVyaWRpYW47Cn0K CiV0b2tlbgl0QUdPIHREQVkgdERBWVpPTkUgdElEIHRNRVJJRElBTiB0TUlOVVRFX1VOSVQgdE1P TlRIIHRNT05USF9VTklUCiV0b2tlbgl0U0VDX1VOSVQgdFNOVU1CRVIgdFVOVU1CRVIgdFpPTkUg dERTVAoKJXR5cGUJPE51bWJlcj4JdERBWSB0REFZWk9ORSB0TUlOVVRFX1VOSVQgdE1PTlRIIHRN T05USF9VTklUCiV0eXBlCTxOdW1iZXI+CXRTRUNfVU5JVCB0U05VTUJFUiB0VU5VTUJFUiB0Wk9O RQoldHlwZQk8TWVyaWRpYW4+CXRNRVJJRElBTiBvX21lcmlkCgolJQoKc3BlYwk6IC8qIE5VTEwg Ki8KCXwgc3BlYyBpdGVtCgk7CgppdGVtCTogdGltZSB7CgkgICAgeXlIYXZlVGltZSsrOwoJfQoJ fCB6b25lIHsKCSAgICB5eUhhdmVab25lKys7Cgl9Cgl8IGRhdGUgewoJICAgIHl5SGF2ZURhdGUr KzsKCX0KCXwgZGF5IHsKCSAgICB5eUhhdmVEYXkrKzsKCX0KCXwgcmVsIHsKCSAgICB5eUhhdmVS ZWwrKzsKCX0KCXwgbnVtYmVyCgk7Cgp0aW1lCTogdFVOVU1CRVIgdE1FUklESUFOIHsKCSAgICB5 eUhvdXIgPSAkMTsKCSAgICB5eU1pbnV0ZXMgPSAwOwoJICAgIHl5U2Vjb25kcyA9IDA7CgkgICAg eXlNZXJpZGlhbiA9ICQyOwoJfQoJfCB0VU5VTUJFUiAnOicgdFVOVU1CRVIgb19tZXJpZCB7Cgkg ICAgeXlIb3VyID0gJDE7CgkgICAgeXlNaW51dGVzID0gJDM7CgkgICAgeXlTZWNvbmRzID0gMDsK CSAgICB5eU1lcmlkaWFuID0gJDQ7Cgl9Cgl8IHRVTlVNQkVSICc6JyB0VU5VTUJFUiB0U05VTUJF UiB7CgkgICAgeXlIb3VyID0gJDE7CgkgICAgeXlNaW51dGVzID0gJDM7CgkgICAgeXlNZXJpZGlh biA9IE1FUjI0OwoJICAgIHl5RFNUbW9kZSA9IERTVG9mZjsKCSAgICB5eVRpbWV6b25lID0gLSAo JDQgJSAxMDAgKyAoJDQgLyAxMDApICogNjApOwoJfQoJfCB0VU5VTUJFUiAnOicgdFVOVU1CRVIg JzonIHRVTlVNQkVSIG9fbWVyaWQgewoJICAgIHl5SG91ciA9ICQxOwoJICAgIHl5TWludXRlcyA9 ICQzOwoJICAgIHl5U2Vjb25kcyA9ICQ1OwoJICAgIHl5TWVyaWRpYW4gPSAkNjsKCX0KCXwgdFVO VU1CRVIgJzonIHRVTlVNQkVSICc6JyB0VU5VTUJFUiB0U05VTUJFUiB7CgkgICAgeXlIb3VyID0g JDE7CgkgICAgeXlNaW51dGVzID0gJDM7CgkgICAgeXlTZWNvbmRzID0gJDU7CgkgICAgeXlNZXJp ZGlhbiA9IE1FUjI0OwoJICAgIHl5RFNUbW9kZSA9IERTVG9mZjsKCSAgICB5eVRpbWV6b25lID0g LSAoJDYgJSAxMDAgKyAoJDYgLyAxMDApICogNjApOwoJfQoJOwoKem9uZQk6IHRaT05FIHsKCSAg ICB5eVRpbWV6b25lID0gJDE7CgkgICAgeXlEU1Rtb2RlID0gRFNUb2ZmOwoJfQoJfCB0REFZWk9O RSB7CgkgICAgeXlUaW1lem9uZSA9ICQxOwoJICAgIHl5RFNUbW9kZSA9IERTVG9uOwoJfQoJfAoJ ICB0Wk9ORSB0RFNUIHsKCSAgICB5eVRpbWV6b25lID0gJDE7CgkgICAgeXlEU1Rtb2RlID0gRFNU b247Cgl9Cgk7CgpkYXkJOiB0REFZIHsKCSAgICB5eURheU9yZGluYWwgPSAxOwoJICAgIHl5RGF5 TnVtYmVyID0gJDE7Cgl9Cgl8IHREQVkgJywnIHsKCSAgICB5eURheU9yZGluYWwgPSAxOwoJICAg IHl5RGF5TnVtYmVyID0gJDE7Cgl9Cgl8IHRVTlVNQkVSIHREQVkgewoJICAgIHl5RGF5T3JkaW5h bCA9ICQxOwoJICAgIHl5RGF5TnVtYmVyID0gJDI7Cgl9Cgk7CgpkYXRlCTogdFVOVU1CRVIgJy8n IHRVTlVNQkVSIHsKCSAgICB5eU1vbnRoID0gJDE7CgkgICAgeXlEYXkgPSAkMzsKCX0KCXwgdFVO VU1CRVIgJy8nIHRVTlVNQkVSICcvJyB0VU5VTUJFUiB7CgkgICAgeXlNb250aCA9ICQxOwoJICAg IHl5RGF5ID0gJDM7CgkgICAgeXlZZWFyID0gJDU7Cgl9Cgl8IHRVTlVNQkVSIHRTTlVNQkVSIHRT TlVNQkVSIHsKCSAgICAvKiBJU08gODYwMSBmb3JtYXQuICB5eXl5LW1tLWRkLiAgKi8KCSAgICB5 eVllYXIgPSAkMTsKCSAgICB5eU1vbnRoID0gLSQyOwoJICAgIHl5RGF5ID0gLSQzOwoJfQoJfCB0 VU5VTUJFUiB0TU9OVEggdFNOVU1CRVIgewoJICAgIC8qIGUuZy4gMTctSlVOLTE5OTIuICAqLwoJ ICAgIHl5RGF5ID0gJDE7CgkgICAgeXlNb250aCA9ICQyOwoJICAgIHl5WWVhciA9IC0kMzsKCX0K CXwgdE1PTlRIIHRVTlVNQkVSIHsKCSAgICB5eU1vbnRoID0gJDE7CgkgICAgeXlEYXkgPSAkMjsK CX0KCXwgdE1PTlRIIHRVTlVNQkVSICcsJyB0VU5VTUJFUiB7CgkgICAgeXlNb250aCA9ICQxOwoJ ICAgIHl5RGF5ID0gJDI7CgkgICAgeXlZZWFyID0gJDQ7Cgl9Cgl8IHRVTlVNQkVSIHRNT05USCB7 CgkgICAgeXlNb250aCA9ICQyOwoJICAgIHl5RGF5ID0gJDE7Cgl9Cgl8IHRVTlVNQkVSIHRNT05U SCB0VU5VTUJFUiB7CgkgICAgeXlNb250aCA9ICQyOwoJICAgIHl5RGF5ID0gJDE7CgkgICAgeXlZ ZWFyID0gJDM7Cgl9Cgk7CgpyZWwJOiByZWx1bml0IHRBR08gewoJICAgIHl5UmVsU2Vjb25kcyA9 IC15eVJlbFNlY29uZHM7CgkgICAgeXlSZWxNb250aCA9IC15eVJlbE1vbnRoOwoJfQoJfCByZWx1 bml0Cgk7CgpyZWx1bml0CTogdFVOVU1CRVIgdE1JTlVURV9VTklUIHsKCSAgICB5eVJlbFNlY29u ZHMgKz0gJDEgKiAkMiAqIDYwTDsKCX0KCXwgdFNOVU1CRVIgdE1JTlVURV9VTklUIHsKCSAgICB5 eVJlbFNlY29uZHMgKz0gJDEgKiAkMiAqIDYwTDsKCX0KCXwgdE1JTlVURV9VTklUIHsKCSAgICB5 eVJlbFNlY29uZHMgKz0gJDEgKiA2MEw7Cgl9Cgl8IHRTTlVNQkVSIHRTRUNfVU5JVCB7CgkgICAg eXlSZWxTZWNvbmRzICs9ICQxOwoJfQoJfCB0VU5VTUJFUiB0U0VDX1VOSVQgewoJICAgIHl5UmVs U2Vjb25kcyArPSAkMTsKCX0KCXwgdFNFQ19VTklUIHsKCSAgICB5eVJlbFNlY29uZHMrKzsKCX0K CXwgdFNOVU1CRVIgdE1PTlRIX1VOSVQgewoJICAgIHl5UmVsTW9udGggKz0gJDEgKiAkMjsKCX0K CXwgdFVOVU1CRVIgdE1PTlRIX1VOSVQgewoJICAgIHl5UmVsTW9udGggKz0gJDEgKiAkMjsKCX0K CXwgdE1PTlRIX1VOSVQgewoJICAgIHl5UmVsTW9udGggKz0gJDE7Cgl9Cgk7CgpudW1iZXIJOiB0 VU5VTUJFUiB7CgkgICAgaWYgKHl5SGF2ZVRpbWUgJiYgeXlIYXZlRGF0ZSAmJiAheXlIYXZlUmVs KQoJCXl5WWVhciA9ICQxOwoJICAgIGVsc2UgewoJCWlmICgkMT4xMDAwMCkgewoJCSAgICB5eUhh dmVEYXRlKys7CgkJICAgIHl5RGF5PSAoJDEpJTEwMDsKCQkgICAgeXlNb250aD0gKCQxLzEwMCkl MTAwOwoJCSAgICB5eVllYXIgPSAkMS8xMDAwMDsKCQl9CgkJZWxzZSB7CgkJICAgIHl5SGF2ZVRp bWUrKzsKCQkgICAgaWYgKCQxIDwgMTAwKSB7CgkJCXl5SG91ciA9ICQxOwoJCQl5eU1pbnV0ZXMg PSAwOwoJCSAgICB9CgkJICAgIGVsc2UgewoJCSAgICAJeXlIb3VyID0gJDEgLyAxMDA7CgkJICAg IAl5eU1pbnV0ZXMgPSAkMSAlIDEwMDsKCQkgICAgfQoJCSAgICB5eVNlY29uZHMgPSAwOwoJCSAg ICB5eU1lcmlkaWFuID0gTUVSMjQ7CgkgICAgICAgIH0KCSAgICB9Cgl9Cgk7CgpvX21lcmlkCTog LyogTlVMTCAqLyB7CgkgICAgJCQgPSBNRVIyNDsKCX0KCXwgdE1FUklESUFOIHsKCSAgICAkJCA9 ICQxOwoJfQoJOwoKJSUKCi8qIE1vbnRoIGFuZCBkYXkgdGFibGUuICovCnN0YXRpYyBUQUJMRSBj b25zdCBNb250aERheVRhYmxlW10gPSB7CiAgICB7ICJqYW51YXJ5IiwJdE1PTlRILCAgMSB9LAog ICAgeyAiZmVicnVhcnkiLAl0TU9OVEgsICAyIH0sCiAgICB7ICJtYXJjaCIsCQl0TU9OVEgsICAz IH0sCiAgICB7ICJhcHJpbCIsCQl0TU9OVEgsICA0IH0sCiAgICB7ICJtYXkiLAkJdE1PTlRILCAg NSB9LAogICAgeyAianVuZSIsCQl0TU9OVEgsICA2IH0sCiAgICB7ICJqdWx5IiwJCXRNT05USCwg IDcgfSwKICAgIHsgImF1Z3VzdCIsCQl0TU9OVEgsICA4IH0sCiAgICB7ICJzZXB0ZW1iZXIiLAl0 TU9OVEgsICA5IH0sCiAgICB7ICJzZXB0IiwJCXRNT05USCwgIDkgfSwKICAgIHsgIm9jdG9iZXIi LAl0TU9OVEgsIDEwIH0sCiAgICB7ICJub3ZlbWJlciIsCXRNT05USCwgMTEgfSwKICAgIHsgImRl Y2VtYmVyIiwJdE1PTlRILCAxMiB9LAogICAgeyAic3VuZGF5IiwJCXREQVksIDAgfSwKICAgIHsg Im1vbmRheSIsCQl0REFZLCAxIH0sCiAgICB7ICJ0dWVzZGF5IiwJdERBWSwgMiB9LAogICAgeyAi dHVlcyIsCQl0REFZLCAyIH0sCiAgICB7ICJ3ZWRuZXNkYXkiLAl0REFZLCAzIH0sCiAgICB7ICJ3 ZWRuZXMiLAkJdERBWSwgMyB9LAogICAgeyAidGh1cnNkYXkiLAl0REFZLCA0IH0sCiAgICB7ICJ0 aHVyIiwJCXREQVksIDQgfSwKICAgIHsgInRodXJzIiwJCXREQVksIDQgfSwKICAgIHsgImZyaWRh eSIsCQl0REFZLCA1IH0sCiAgICB7ICJzYXR1cmRheSIsCXREQVksIDYgfSwKICAgIHsgTlVMTCB9 Cn07CgovKiBUaW1lIHVuaXRzIHRhYmxlLiAqLwpzdGF0aWMgVEFCTEUgY29uc3QgVW5pdHNUYWJs ZVtdID0gewogICAgeyAieWVhciIsCQl0TU9OVEhfVU5JVCwJMTIgfSwKICAgIHsgIm1vbnRoIiwJ CXRNT05USF9VTklULAkxIH0sCiAgICB7ICJmb3J0bmlnaHQiLAl0TUlOVVRFX1VOSVQsCTE0ICog MjQgKiA2MCB9LAogICAgeyAid2VlayIsCQl0TUlOVVRFX1VOSVQsCTcgKiAyNCAqIDYwIH0sCiAg ICB7ICJkYXkiLAkJdE1JTlVURV9VTklULAkxICogMjQgKiA2MCB9LAogICAgeyAiaG91ciIsCQl0 TUlOVVRFX1VOSVQsCTYwIH0sCiAgICB7ICJtaW51dGUiLAkJdE1JTlVURV9VTklULAkxIH0sCiAg ICB7ICJtaW4iLAkJdE1JTlVURV9VTklULAkxIH0sCiAgICB7ICJzZWNvbmQiLAkJdFNFQ19VTklU LAkxIH0sCiAgICB7ICJzZWMiLAkJdFNFQ19VTklULAkxIH0sCiAgICB7IE5VTEwgfQp9OwoKLyog QXNzb3J0ZWQgcmVsYXRpdmUtdGltZSB3b3Jkcy4gKi8Kc3RhdGljIFRBQkxFIGNvbnN0IE90aGVy VGFibGVbXSA9IHsKICAgIHsgInRvbW9ycm93IiwJdE1JTlVURV9VTklULAkxICogMjQgKiA2MCB9 LAogICAgeyAieWVzdGVyZGF5IiwJdE1JTlVURV9VTklULAktMSAqIDI0ICogNjAgfSwKICAgIHsg InRvZGF5IiwJCXRNSU5VVEVfVU5JVCwJMCB9LAogICAgeyAibm93IiwJCXRNSU5VVEVfVU5JVCwJ MCB9LAogICAgeyAibGFzdCIsCQl0VU5VTUJFUiwJLTEgfSwKICAgIHsgInRoaXMiLAkJdE1JTlVU RV9VTklULAkwIH0sCiAgICB7ICJuZXh0IiwJCXRVTlVNQkVSLAkyIH0sCiAgICB7ICJmaXJzdCIs CQl0VU5VTUJFUiwJMSB9LAovKiAgeyAic2Vjb25kIiwJCXRVTlVNQkVSLAkyIH0sICovCiAgICB7 ICJ0aGlyZCIsCQl0VU5VTUJFUiwJMyB9LAogICAgeyAiZm91cnRoIiwJCXRVTlVNQkVSLAk0IH0s CiAgICB7ICJmaWZ0aCIsCQl0VU5VTUJFUiwJNSB9LAogICAgeyAic2l4dGgiLAkJdFVOVU1CRVIs CTYgfSwKICAgIHsgInNldmVudGgiLAl0VU5VTUJFUiwJNyB9LAogICAgeyAiZWlnaHRoIiwJCXRV TlVNQkVSLAk4IH0sCiAgICB7ICJuaW50aCIsCQl0VU5VTUJFUiwJOSB9LAogICAgeyAidGVudGgi LAkJdFVOVU1CRVIsCTEwIH0sCiAgICB7ICJlbGV2ZW50aCIsCXRVTlVNQkVSLAkxMSB9LAogICAg eyAidHdlbGZ0aCIsCXRVTlVNQkVSLAkxMiB9LAogICAgeyAiYWdvIiwJCXRBR08sCTEgfSwKICAg IHsgTlVMTCB9Cn07CgovKiBUaGUgdGltZXpvbmUgdGFibGUuICovCi8qIFNvbWUgb2YgdGhlc2Ug YXJlIGNvbW1lbnRlZCBvdXQgYmVjYXVzZSBhIHRpbWVfdCBjYW4ndCBzdG9yZSBhIGZsb2F0LiAq LwpzdGF0aWMgVEFCTEUgY29uc3QgVGltZXpvbmVUYWJsZVtdID0gewogICAgeyAiZ210IiwJdFpP TkUsICAgICBIT1VSICggMCkgfSwJLyogR3JlZW53aWNoIE1lYW4gKi8KICAgIHsgInV0IiwJdFpP TkUsICAgICBIT1VSICggMCkgfSwJLyogVW5pdmVyc2FsIChDb29yZGluYXRlZCkgKi8KICAgIHsg InV0YyIsCXRaT05FLCAgICAgSE9VUiAoIDApIH0sCiAgICB7ICJ3ZXQiLAl0Wk9ORSwgICAgIEhP VVIgKCAwKSB9LAkvKiBXZXN0ZXJuIEV1cm9wZWFuICovCiAgICB7ICJic3QiLAl0REFZWk9ORSwg IEhPVVIgKCAwKSB9LAkvKiBCcml0aXNoIFN1bW1lciAqLwogICAgeyAid2F0IiwJdFpPTkUsICAg ICBIT1VSICggMSkgfSwJLyogV2VzdCBBZnJpY2EgKi8KICAgIHsgImF0IiwJdFpPTkUsICAgICBI T1VSICggMikgfSwJLyogQXpvcmVzICovCiNpZgkwCiAgICAvKiBGb3IgY29tcGxldGVuZXNzLiAg QlNUIGlzIGFsc28gQnJpdGlzaCBTdW1tZXIsIGFuZCBHU1QgaXMKICAgICAqIGFsc28gR3VhbSBT dGFuZGFyZC4gKi8KICAgIHsgImJzdCIsCXRaT05FLCAgICAgSE9VUiAoIDMpIH0sCS8qIEJyYXpp bCBTdGFuZGFyZCAqLwogICAgeyAiZ3N0IiwJdFpPTkUsICAgICBIT1VSICggMykgfSwJLyogR3Jl ZW5sYW5kIFN0YW5kYXJkICovCiNlbmRpZgojaWYgMAogICAgeyAibmZ0IiwJdFpPTkUsICAgICBI T1VSICgzLjUpIH0sCS8qIE5ld2ZvdW5kbGFuZCAqLwogICAgeyAibnN0IiwJdFpPTkUsICAgICBI T1VSICgzLjUpIH0sCS8qIE5ld2ZvdW5kbGFuZCBTdGFuZGFyZCAqLwogICAgeyAibmR0IiwJdERB WVpPTkUsICBIT1VSICgzLjUpIH0sCS8qIE5ld2ZvdW5kbGFuZCBEYXlsaWdodCAqLwojZW5kaWYK ICAgIHsgImFzdCIsCXRaT05FLCAgICAgSE9VUiAoIDQpIH0sCS8qIEF0bGFudGljIFN0YW5kYXJk ICovCiAgICB7ICJhZHQiLAl0REFZWk9ORSwgIEhPVVIgKCA0KSB9LAkvKiBBdGxhbnRpYyBEYXls aWdodCAqLwogICAgeyAiZWVzdCIsICAgdFpPTkUsICAgICAtSE9VUiAoMikgfSwgLyogRWFzdGVy biBFdXJvcGVhbiBTdGFuZGFyZCBUaW1lICovCiAgICB7ICJlc3QiLAl0Wk9ORSwgICAgIEhPVVIg KCA1KSB9LAkvKiBFYXN0ZXJuIFN0YW5kYXJkICovCiAgICB7ICJlZHQiLAl0REFZWk9ORSwgIEhP VVIgKCA1KSB9LAkvKiBFYXN0ZXJuIERheWxpZ2h0ICovCiAgICB7ICJjc3QiLAl0Wk9ORSwgICAg IEhPVVIgKCA2KSB9LAkvKiBDZW50cmFsIFN0YW5kYXJkICovCiAgICB7ICJjZHQiLAl0REFZWk9O RSwgIEhPVVIgKCA2KSB9LAkvKiBDZW50cmFsIERheWxpZ2h0ICovCiAgICB7ICJtc3QiLAl0Wk9O RSwgICAgIEhPVVIgKCA3KSB9LAkvKiBNb3VudGFpbiBTdGFuZGFyZCAqLwogICAgeyAibWR0IiwJ dERBWVpPTkUsICBIT1VSICggNykgfSwJLyogTW91bnRhaW4gRGF5bGlnaHQgKi8KICAgIHsgInBz dCIsCXRaT05FLCAgICAgSE9VUiAoIDgpIH0sCS8qIFBhY2lmaWMgU3RhbmRhcmQgKi8KICAgIHsg InBkdCIsCXREQVlaT05FLCAgSE9VUiAoIDgpIH0sCS8qIFBhY2lmaWMgRGF5bGlnaHQgKi8KICAg IHsgInlzdCIsCXRaT05FLCAgICAgSE9VUiAoIDkpIH0sCS8qIFl1a29uIFN0YW5kYXJkICovCiAg ICB7ICJ5ZHQiLAl0REFZWk9ORSwgIEhPVVIgKCA5KSB9LAkvKiBZdWtvbiBEYXlsaWdodCAqLwog ICAgeyAiaHN0IiwJdFpPTkUsICAgICBIT1VSICgxMCkgfSwJLyogSGF3YWlpIFN0YW5kYXJkICov CiAgICB7ICJoZHQiLAl0REFZWk9ORSwgIEhPVVIgKDEwKSB9LAkvKiBIYXdhaWkgRGF5bGlnaHQg Ki8KICAgIHsgImNhdCIsCXRaT05FLCAgICAgSE9VUiAoMTApIH0sCS8qIENlbnRyYWwgQWxhc2th ICovCiAgICB7ICJhaHN0IiwJdFpPTkUsICAgICBIT1VSICgxMCkgfSwJLyogQWxhc2thLUhhd2Fp aSBTdGFuZGFyZCAqLwogICAgeyAibnQiLAl0Wk9ORSwgICAgIEhPVVIgKDExKSB9LAkvKiBOb21l ICovCiAgICB7ICJpZGx3IiwJdFpPTkUsICAgICBIT1VSICgxMikgfSwJLyogSW50ZXJuYXRpb25h bCBEYXRlIExpbmUgV2VzdCAqLwogICAgeyAiY2V0IiwJdFpPTkUsICAgICAtSE9VUiAoMSkgfSwJ LyogQ2VudHJhbCBFdXJvcGVhbiAqLwogICAgeyAiY2VzIiwgICAgdERBWVpPTkUsICAtSE9VUiAo MSkgfSwgLyogQ2VudHJhbCBFdXJvcGVhbiBTdW1tZXIgKi8KICAgIHsgImNlc3QiLCAgIHREQVla T05FLCAgLUhPVVIgKDEpIH0sIC8qIENlbnRyYWwgRXVyb3BlYW4gU3VtbWVyICovCiAgICB7ICJt ZXQiLAl0Wk9ORSwgICAgIC1IT1VSICgxKSB9LAkvKiBNaWRkbGUgRXVyb3BlYW4gKi8KICAgIHsg Im1ld3QiLAl0Wk9ORSwgICAgIC1IT1VSICgxKSB9LAkvKiBNaWRkbGUgRXVyb3BlYW4gV2ludGVy ICovCiAgICB7ICJtZXN0IiwJdERBWVpPTkUsICAtSE9VUiAoMSkgfSwJLyogTWlkZGxlIEV1cm9w ZWFuIFN1bW1lciAqLwogICAgeyAibWVzeiIsCXREQVlaT05FLCAgLUhPVVIgKDEpIH0sCS8qIE1p ZGRsZSBFdXJvcGVhbiBTdW1tZXIgKi8KICAgIHsgInN3dCIsCXRaT05FLCAgICAgLUhPVVIgKDEp IH0sCS8qIFN3ZWRpc2ggV2ludGVyICovCiAgICB7ICJzc3QiLAl0REFZWk9ORSwgIC1IT1VSICgx KSB9LAkvKiBTd2VkaXNoIFN1bW1lciAqLwogICAgeyAiZnd0IiwJdFpPTkUsICAgICAtSE9VUiAo MSkgfSwJLyogRnJlbmNoIFdpbnRlciAqLwogICAgeyAiZnN0IiwJdERBWVpPTkUsICAtSE9VUiAo MSkgfSwJLyogRnJlbmNoIFN1bW1lciAqLwogICAgeyAiZWV0IiwJdFpPTkUsICAgICAtSE9VUiAo MikgfSwJLyogRWFzdGVybiBFdXJvcGUsIFVTU1IgWm9uZSAxICovCiAgICB7ICJidCIsCXRaT05F LCAgICAgLUhPVVIgKDMpIH0sCS8qIEJhZ2hkYWQsIFVTU1IgWm9uZSAyICovCiAgICB7ICJtc2si LCAgICB0Wk9ORSwgICAgIC1IT1VSICgzKSB9LCAgCiAgICB7ICJ3LXN1IiwgICB0Wk9ORSwgICAg IC1IT1VSICgzKSB9LCAvKiBCVUdGSVggISEhICovCiNpZiAwCiAgICB7ICJpdCIsCXRaT05FLCAg ICAgLUhPVVIgKDMuNSkgfSwvKiBJcmFuICovCiNlbmRpZgogICAgeyAienA0IiwJdFpPTkUsICAg ICAtSE9VUiAoNCkgfSwJLyogVVNTUiBab25lIDMgKi8KICAgIHsgInpwNSIsCXRaT05FLCAgICAg LUhPVVIgKDUpIH0sCS8qIFVTU1IgWm9uZSA0ICovCiNpZiAwCiAgICB7ICJpc3QiLAl0Wk9ORSwg ICAgIC1IT1VSICg1LjUpIH0sLyogSW5kaWFuIFN0YW5kYXJkICovCiNlbmRpZgogICAgeyAienA2 IiwJdFpPTkUsICAgICAtSE9VUiAoNikgfSwJLyogVVNTUiBab25lIDUgKi8KI2lmCTAKICAgIC8q IEZvciBjb21wbGV0ZW5lc3MuICBOU1QgaXMgYWxzbyBOZXdmb3VuZGxhbmQgU3RhbmRhcmQsIGFu ZCBTU1QgaXMKICAgICAqIGFsc28gU3dlZGlzaCBTdW1tZXIuICovCiAgICB7ICJuc3QiLAl0Wk9O RSwgICAgIC1IT1VSICg2LjUpIH0sLyogTm9ydGggU3VtYXRyYSAqLwogICAgeyAic3N0IiwJdFpP TkUsICAgICAtSE9VUiAoNykgfSwJLyogU291dGggU3VtYXRyYSwgVVNTUiBab25lIDYgKi8KI2Vu ZGlmCS8qIDAgKi8KICAgIHsgIndhc3QiLAl0Wk9ORSwgICAgIC1IT1VSICg3KSB9LAkvKiBXZXN0 IEF1c3RyYWxpYW4gU3RhbmRhcmQgKi8KICAgIHsgIndhZHQiLAl0REFZWk9ORSwgIC1IT1VSICg3 KSB9LAkvKiBXZXN0IEF1c3RyYWxpYW4gRGF5bGlnaHQgKi8KI2lmIDAKICAgIHsgImp0IiwJdFpP TkUsICAgICAtSE9VUiAoNy41KSB9LC8qIEphdmEgKDNwbSBpbiBDcm9udXNsYW5kISkgKi8KI2Vu ZGlmCiAgICB7ICJjY3QiLAl0Wk9ORSwgICAgIC1IT1VSICg4KSB9LAkvKiBDaGluYSBDb2FzdCwg VVNTUiBab25lIDcgKi8KICAgIHsgImpzdCIsCXRaT05FLCAgICAgLUhPVVIgKDkpIH0sCS8qIEph cGFuIFN0YW5kYXJkLCBVU1NSIFpvbmUgOCAqLwojaWYgMAogICAgeyAiY2FzdCIsCXRaT05FLCAg ICAgLUhPVVIgKDkuNSkgfSwvKiBDZW50cmFsIEF1c3RyYWxpYW4gU3RhbmRhcmQgKi8KICAgIHsg ImNhZHQiLAl0REFZWk9ORSwgIC1IT1VSICg5LjUpIH0sLyogQ2VudHJhbCBBdXN0cmFsaWFuIERh eWxpZ2h0ICovCiNlbmRpZgogICAgeyAiZWFzdCIsCXRaT05FLCAgICAgLUhPVVIgKDEwKSB9LAkv KiBFYXN0ZXJuIEF1c3RyYWxpYW4gU3RhbmRhcmQgKi8KICAgIHsgImVhZHQiLAl0REFZWk9ORSwg IC1IT1VSICgxMCkgfSwJLyogRWFzdGVybiBBdXN0cmFsaWFuIERheWxpZ2h0ICovCiAgICB7ICJn c3QiLAl0Wk9ORSwgICAgIC1IT1VSICgxMCkgfSwJLyogR3VhbSBTdGFuZGFyZCwgVVNTUiBab25l IDkgKi8KICAgIHsgIm56dCIsCXRaT05FLCAgICAgLUhPVVIgKDEyKSB9LAkvKiBOZXcgWmVhbGFu ZCAqLwogICAgeyAibnpzdCIsCXRaT05FLCAgICAgLUhPVVIgKDEyKSB9LAkvKiBOZXcgWmVhbGFu ZCBTdGFuZGFyZCAqLwogICAgeyAibnpkdCIsCXREQVlaT05FLCAgLUhPVVIgKDEyKSB9LAkvKiBO ZXcgWmVhbGFuZCBEYXlsaWdodCAqLwogICAgeyAiaWRsZSIsCXRaT05FLCAgICAgLUhPVVIgKDEy KSB9LAkvKiBJbnRlcm5hdGlvbmFsIERhdGUgTGluZSBFYXN0ICovCiAgICB7ICBOVUxMICB9Cn07 CgovKiBNaWxpdGFyeSB0aW1lem9uZSB0YWJsZS4gKi8Kc3RhdGljIFRBQkxFIGNvbnN0IE1pbGl0 YXJ5VGFibGVbXSA9IHsKICAgIHsgImEiLAl0Wk9ORSwJSE9VUiAoICAxKSB9LAogICAgeyAiYiIs CXRaT05FLAlIT1VSICggIDIpIH0sCiAgICB7ICJjIiwJdFpPTkUsCUhPVVIgKCAgMykgfSwKICAg IHsgImQiLAl0Wk9ORSwJSE9VUiAoICA0KSB9LAogICAgeyAiZSIsCXRaT05FLAlIT1VSICggIDUp IH0sCiAgICB7ICJmIiwJdFpPTkUsCUhPVVIgKCAgNikgfSwKICAgIHsgImciLAl0Wk9ORSwJSE9V UiAoICA3KSB9LAogICAgeyAiaCIsCXRaT05FLAlIT1VSICggIDgpIH0sCiAgICB7ICJpIiwJdFpP TkUsCUhPVVIgKCAgOSkgfSwKICAgIHsgImsiLAl0Wk9ORSwJSE9VUiAoIDEwKSB9LAogICAgeyAi bCIsCXRaT05FLAlIT1VSICggMTEpIH0sCiAgICB7ICJtIiwJdFpPTkUsCUhPVVIgKCAxMikgfSwK ICAgIHsgIm4iLAl0Wk9ORSwJSE9VUiAoLSAxKSB9LAogICAgeyAibyIsCXRaT05FLAlIT1VSICgt IDIpIH0sCiAgICB7ICJwIiwJdFpPTkUsCUhPVVIgKC0gMykgfSwKICAgIHsgInEiLAl0Wk9ORSwJ SE9VUiAoLSA0KSB9LAogICAgeyAiciIsCXRaT05FLAlIT1VSICgtIDUpIH0sCiAgICB7ICJzIiwJ dFpPTkUsCUhPVVIgKC0gNikgfSwKICAgIHsgInQiLAl0Wk9ORSwJSE9VUiAoLSA3KSB9LAogICAg eyAidSIsCXRaT05FLAlIT1VSICgtIDgpIH0sCiAgICB7ICJ2IiwJdFpPTkUsCUhPVVIgKC0gOSkg fSwKICAgIHsgInciLAl0Wk9ORSwJSE9VUiAoLTEwKSB9LAogICAgeyAieCIsCXRaT05FLAlIT1VS ICgtMTEpIH0sCiAgICB7ICJ5IiwJdFpPTkUsCUhPVVIgKC0xMikgfSwKICAgIHsgInoiLAl0Wk9O RSwJSE9VUiAoICAwKSB9LAogICAgeyBOVUxMIH0KfTsKCgwKCgovKiBBUkdTVVNFRCAqLwpzdGF0 aWMgaW50Cnl5ZXJyb3IgKHMpCiAgICBjaGFyCSpzOwp7CiAgcmV0dXJuIDA7Cn0KCgpzdGF0aWMg dGltZV90ClRvU2Vjb25kcyAoSG91cnMsIE1pbnV0ZXMsIFNlY29uZHMsIE1lcmlkaWFuKQogICAg dGltZV90CUhvdXJzOwogICAgdGltZV90CU1pbnV0ZXM7CiAgICB0aW1lX3QJU2Vjb25kczsKICAg IE1FUklESUFOCU1lcmlkaWFuOwp7CiAgaWYgKE1pbnV0ZXMgPCAwIHx8IE1pbnV0ZXMgPiA1OSB8 fCBTZWNvbmRzIDwgMCB8fCBTZWNvbmRzID4gNTkpCiAgICByZXR1cm4gLTE7CiAgc3dpdGNoIChN ZXJpZGlhbikgewogIGNhc2UgTUVSMjQ6CiAgICBpZiAoSG91cnMgPCAwIHx8IEhvdXJzID4gMjMp CiAgICAgIHJldHVybiAtMTsKICAgIHJldHVybiAoSG91cnMgKiA2MEwgKyBNaW51dGVzKSAqIDYw TCArIFNlY29uZHM7CiAgY2FzZSBNRVJhbToKICAgIGlmIChIb3VycyA8IDEgfHwgSG91cnMgPiAx MikKICAgICAgcmV0dXJuIC0xOwogICAgaWYgKEhvdXJzID09IDEyKQogICAgICBIb3VycyA9IDA7 CiAgICByZXR1cm4gKEhvdXJzICogNjBMICsgTWludXRlcykgKiA2MEwgKyBTZWNvbmRzOwogIGNh c2UgTUVScG06CiAgICBpZiAoSG91cnMgPCAxIHx8IEhvdXJzID4gMTIpCiAgICAgIHJldHVybiAt MTsKICAgIGlmIChIb3VycyA9PSAxMikKICAgICAgSG91cnMgPSAwOwogICAgcmV0dXJuICgoSG91 cnMgKyAxMikgKiA2MEwgKyBNaW51dGVzKSAqIDYwTCArIFNlY29uZHM7CiAgZGVmYXVsdDoKICAg IGFib3J0ICgpOwogIH0KICAvKiBOT1RSRUFDSEVEICovCn0KCgpzdGF0aWMgdGltZV90CkNvbnZl cnQgKE1vbnRoLCBEYXksIFllYXIsIEhvdXJzLCBNaW51dGVzLCBTZWNvbmRzLCBNZXJpZGlhbiwg RFNUbW9kZSkKICAgIHRpbWVfdAlNb250aDsKICAgIHRpbWVfdAlEYXk7CiAgICB0aW1lX3QJWWVh cjsKICAgIHRpbWVfdAlIb3VyczsKICAgIHRpbWVfdAlNaW51dGVzOwogICAgdGltZV90CVNlY29u ZHM7CiAgICBNRVJJRElBTglNZXJpZGlhbjsKICAgIERTVE1PREUJRFNUbW9kZTsKewogIHN0YXRp YyBpbnQgRGF5c0luTW9udGhbMTJdID0gewogICAgMzEsIDAsIDMxLCAzMCwgMzEsIDMwLCAzMSwg MzEsIDMwLCAzMSwgMzAsIDMxCiAgfTsKICB0aW1lX3QJdG9kOwogIHRpbWVfdAlKdWxpYW47CiAg aW50CQlpOwoKICBpZiAoWWVhciA8IDApCiAgICBZZWFyID0gLVllYXI7CiAgaWYgKFllYXIgPCAx MDApIHsKICAgIGlmIChZZWFyID4gMzgpCiAgICAgIFllYXIgKz0gMTkwMDsKICAgIGVsc2UKICAg ICAgWWVhciArPSAyMDAwOwogIH0KICBEYXlzSW5Nb250aFsxXSA9IFllYXIgJSA0ID09IDAgJiYg KFllYXIgJSAxMDAgIT0gMCB8fCBZZWFyICUgNDAwID09IDApCiAgICA/IDI5IDogMjg7CiAgaWYg KFllYXIgPCBFUE9DSCB8fCBZZWFyID4gMjAzNwogICAgICB8fCBNb250aCA8IDEgfHwgTW9udGgg PiAxMgogICAgICAvKiBMaW50IGZsdWZmOiAgImNvbnZlcnNpb24gZnJvbSBsb25nIG1heSBsb3Nl IGFjY3VyYWN5IiAqLwogICAgICB8fCBEYXkgPCAxIHx8IERheSA+IERheXNJbk1vbnRoWyhpbnQp LS1Nb250aF0pCiAgICByZXR1cm4gLTE7CgogIGZvciAoSnVsaWFuID0gRGF5IC0gMSwgaSA9IDA7 IGkgPCBNb250aDsgaSsrKQogICAgSnVsaWFuICs9IERheXNJbk1vbnRoW2ldOwogIGZvciAoaSA9 IEVQT0NIOyBpIDwgWWVhcjsgaSsrKQogICAgSnVsaWFuICs9IDM2NSArIChpICUgNCA9PSAwICYm IChpICUgMTAwICE9IDAgfHwgaSAlIDQwMCA9PSAwKSk7CiAgSnVsaWFuICo9IFNFQ1NQRVJEQVk7 CiAgSnVsaWFuICs9IHl5VGltZXpvbmUgKiA2MEw7CiAgaWYgKCh0b2QgPSBUb1NlY29uZHMgKEhv dXJzLCBNaW51dGVzLCBTZWNvbmRzLCBNZXJpZGlhbikpIDwgMCkKICAgIHJldHVybiAtMTsKICBK dWxpYW4gKz0gdG9kOwogIGlmIChEU1Rtb2RlID09IERTVG9uCiAgICAgIHx8IChEU1Rtb2RlID09 IERTVG1heWJlICYmIGxvY2FsdGltZSAoJkp1bGlhbiktPnRtX2lzZHN0KSkKICAgIEp1bGlhbiAt PSA2MCAqIDYwOwogIHJldHVybiBKdWxpYW47Cn0KCgpzdGF0aWMgdGltZV90CkRTVGNvcnJlY3Qg KFN0YXJ0LCBGdXR1cmUpCiAgICB0aW1lX3QJU3RhcnQ7CiAgICB0aW1lX3QJRnV0dXJlOwp7CiAg dGltZV90CVN0YXJ0RGF5OwogIHRpbWVfdAlGdXR1cmVEYXk7CgogIFN0YXJ0RGF5ID0gKGxvY2Fs dGltZSAoJlN0YXJ0KS0+dG1faG91ciArIDEpICUgMjQ7CiAgRnV0dXJlRGF5ID0gKGxvY2FsdGlt ZSAoJkZ1dHVyZSktPnRtX2hvdXIgKyAxKSAlIDI0OwogIHJldHVybiAoRnV0dXJlIC0gU3RhcnQp ICsgKFN0YXJ0RGF5IC0gRnV0dXJlRGF5KSAqIDYwTCAqIDYwTDsKfQoKCnN0YXRpYyB0aW1lX3QK UmVsYXRpdmVEYXRlIChTdGFydCwgRGF5T3JkaW5hbCwgRGF5TnVtYmVyKQogICAgdGltZV90CVN0 YXJ0OwogICAgdGltZV90CURheU9yZGluYWw7CiAgICB0aW1lX3QJRGF5TnVtYmVyOwp7CiAgc3Ry dWN0IHRtCSp0bTsKICB0aW1lX3QJbm93OwoKICBub3cgPSBTdGFydDsKICB0bSA9IGxvY2FsdGlt ZSAoJm5vdyk7CiAgbm93ICs9IFNFQ1NQRVJEQVkgKiAoKERheU51bWJlciAtIHRtLT50bV93ZGF5 ICsgNykgJSA3KTsKICBub3cgKz0gNyAqIFNFQ1NQRVJEQVkgKiAoRGF5T3JkaW5hbCA8PSAwID8g RGF5T3JkaW5hbCA6IERheU9yZGluYWwgLSAxKTsKICByZXR1cm4gRFNUY29ycmVjdCAoU3RhcnQs IG5vdyk7Cn0KCgpzdGF0aWMgdGltZV90ClJlbGF0aXZlTW9udGggKFN0YXJ0LCBSZWxNb250aCkK ICAgIHRpbWVfdAlTdGFydDsKICAgIHRpbWVfdAlSZWxNb250aDsKewogIHN0cnVjdCB0bQkqdG07 CiAgdGltZV90CU1vbnRoOwogIHRpbWVfdAlZZWFyOwoKICBpZiAoUmVsTW9udGggPT0gMCkKICAg IHJldHVybiAwOwogIHRtID0gbG9jYWx0aW1lICgmU3RhcnQpOwogIE1vbnRoID0gMTIgKiB0bS0+ dG1feWVhciArIHRtLT50bV9tb24gKyBSZWxNb250aDsKICBZZWFyID0gTW9udGggLyAxMjsKICBN b250aCA9IE1vbnRoICUgMTIgKyAxOwogIHJldHVybiBEU1Rjb3JyZWN0IChTdGFydCwKCQkgICAg IENvbnZlcnQgKE1vbnRoLCAodGltZV90KXRtLT50bV9tZGF5LCBZZWFyLAoJCQkgICAgICAodGlt ZV90KXRtLT50bV9ob3VyLCAodGltZV90KXRtLT50bV9taW4sICh0aW1lX3QpdG0tPnRtX3NlYywK CQkJICAgICAgTUVSMjQsIERTVG1heWJlKSk7Cn0KCgpzdGF0aWMgaW50Ckxvb2t1cFdvcmQgKGJ1 ZmYpCiAgICBjaGFyCQkqYnVmZjsKewogIHJlZ2lzdGVyIGNoYXIJKnA7CiAgcmVnaXN0ZXIgY2hh cgkqcTsKICByZWdpc3RlciBjb25zdCBUQUJMRQkqdHA7CiAgaW50CQkJaTsKICBpbnQJCQlhYmJy ZXY7CgogIC8qIE1ha2UgaXQgbG93ZXJjYXNlLiAqLwogIGZvciAocCA9IGJ1ZmY7ICpwOyBwKysp CiAgICBpZiAoaXN1cHBlciAoKnApKQogICAgICAqcCA9IHRvbG93ZXIgKCpwKTsKCiAgaWYgKHN0 cmNtcCAoYnVmZiwgImFtIikgPT0gMCB8fCBzdHJjbXAgKGJ1ZmYsICJhLm0uIikgPT0gMCkgewog ICAgeXlsdmFsLk1lcmlkaWFuID0gTUVSYW07CiAgICByZXR1cm4gdE1FUklESUFOOwogIH0KICBp ZiAoc3RyY21wIChidWZmLCAicG0iKSA9PSAwIHx8IHN0cmNtcCAoYnVmZiwgInAubS4iKSA9PSAw KSB7CiAgICB5eWx2YWwuTWVyaWRpYW4gPSBNRVJwbTsKICAgIHJldHVybiB0TUVSSURJQU47CiAg fQoKICAvKiBTZWUgaWYgd2UgaGF2ZSBhbiBhYmJyZXZpYXRpb24gZm9yIGEgbW9udGguICovCiAg aWYgKHN0cmxlbiAoYnVmZikgPT0gMykKICAgIGFiYnJldiA9IDE7CiAgZWxzZSBpZiAoc3RybGVu IChidWZmKSA9PSA0ICYmIGJ1ZmZbM10gPT0gJy4nKSB7CiAgICBhYmJyZXYgPSAxOwogICAgYnVm ZlszXSA9ICdcMCc7CiAgfQogIGVsc2UKICAgIGFiYnJldiA9IDA7CgogIGZvciAodHAgPSBNb250 aERheVRhYmxlOyB0cC0+bmFtZTsgdHArKykgewogICAgaWYgKGFiYnJldikgewogICAgICBpZiAo c3RybmNtcCAoYnVmZiwgdHAtPm5hbWUsIDMpID09IDApIHsKCXl5bHZhbC5OdW1iZXIgPSB0cC0+ dmFsdWU7CglyZXR1cm4gdHAtPnR5cGU7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgaWYgKHN0cmNt cCAoYnVmZiwgdHAtPm5hbWUpID09IDApIHsKICAgICAgeXlsdmFsLk51bWJlciA9IHRwLT52YWx1 ZTsKICAgICAgcmV0dXJuIHRwLT50eXBlOwogICAgfQogIH0KCiAgZm9yICh0cCA9IFRpbWV6b25l VGFibGU7IHRwLT5uYW1lOyB0cCsrKQogICAgaWYgKHN0cmNtcCAoYnVmZiwgdHAtPm5hbWUpID09 IDApIHsKICAgICAgeXlsdmFsLk51bWJlciA9IHRwLT52YWx1ZTsKICAgICAgcmV0dXJuIHRwLT50 eXBlOwogICAgfQoKICBpZiAoc3RyY21wIChidWZmLCAiZHN0IikgPT0gMCkgCiAgICByZXR1cm4g dERTVDsKCiAgZm9yICh0cCA9IFVuaXRzVGFibGU7IHRwLT5uYW1lOyB0cCsrKQogICAgaWYgKHN0 cmNtcCAoYnVmZiwgdHAtPm5hbWUpID09IDApIHsKICAgICAgeXlsdmFsLk51bWJlciA9IHRwLT52 YWx1ZTsKICAgICAgcmV0dXJuIHRwLT50eXBlOwogICAgfQoKICAvKiBTdHJpcCBvZmYgYW55IHBs dXJhbCBhbmQgdHJ5IHRoZSB1bml0cyB0YWJsZSBhZ2Fpbi4gKi8KICBpID0gc3RybGVuIChidWZm KSAtIDE7CiAgaWYgKGJ1ZmZbaV0gPT0gJ3MnKSB7CiAgICBidWZmW2ldID0gJ1wwJzsKICAgIGZv ciAodHAgPSBVbml0c1RhYmxlOyB0cC0+bmFtZTsgdHArKykKICAgICAgaWYgKHN0cmNtcCAoYnVm ZiwgdHAtPm5hbWUpID09IDApIHsKCXl5bHZhbC5OdW1iZXIgPSB0cC0+dmFsdWU7CglyZXR1cm4g dHAtPnR5cGU7CiAgICAgIH0KICAgIGJ1ZmZbaV0gPSAncyc7CQkvKiBQdXQgYmFjayBmb3IgInRo aXMiIGluIE90aGVyVGFibGUuICovCiAgfQoKICBmb3IgKHRwID0gT3RoZXJUYWJsZTsgdHAtPm5h bWU7IHRwKyspCiAgICBpZiAoc3RyY21wIChidWZmLCB0cC0+bmFtZSkgPT0gMCkgewogICAgICB5 eWx2YWwuTnVtYmVyID0gdHAtPnZhbHVlOwogICAgICByZXR1cm4gdHAtPnR5cGU7CiAgICB9Cgog IC8qIE1pbGl0YXJ5IHRpbWV6b25lcy4gKi8KICBpZiAoYnVmZlsxXSA9PSAnXDAnICYmIGlzYWxw aGEgKCpidWZmKSkgewogICAgZm9yICh0cCA9IE1pbGl0YXJ5VGFibGU7IHRwLT5uYW1lOyB0cCsr KQogICAgICBpZiAoc3RyY21wIChidWZmLCB0cC0+bmFtZSkgPT0gMCkgewoJeXlsdmFsLk51bWJl ciA9IHRwLT52YWx1ZTsKCXJldHVybiB0cC0+dHlwZTsKICAgICAgfQogIH0KCiAgLyogRHJvcCBv dXQgYW55IHBlcmlvZHMgYW5kIHRyeSB0aGUgdGltZXpvbmUgdGFibGUgYWdhaW4uICovCiAgZm9y IChpID0gMCwgcCA9IHEgPSBidWZmOyAqcTsgcSsrKQogICAgaWYgKCpxICE9ICcuJykKICAgICAg KnArKyA9ICpxOwogICAgZWxzZQogICAgICBpKys7CiAgKnAgPSAnXDAnOwogIGlmIChpKQogICAg Zm9yICh0cCA9IFRpbWV6b25lVGFibGU7IHRwLT5uYW1lOyB0cCsrKQogICAgICBpZiAoc3RyY21w IChidWZmLCB0cC0+bmFtZSkgPT0gMCkgewoJeXlsdmFsLk51bWJlciA9IHRwLT52YWx1ZTsKCXJl dHVybiB0cC0+dHlwZTsKICAgICAgfQoKICByZXR1cm4gdElEOwp9CgoKc3RhdGljIGludAp5eWxl eCAoKQp7CiAgcmVnaXN0ZXIgY2hhcgljOwogIHJlZ2lzdGVyIGNoYXIJKnA7CiAgY2hhcgkJYnVm ZlsyMF07CiAgaW50CQkJQ291bnQ7CiAgaW50CQkJc2lnbjsKCiAgZm9yICggOyA7ICkgewogICAg d2hpbGUgKGlzc3BhY2UgKCp5eUlucHV0KSkKICAgICAgeXlJbnB1dCsrOwoKICAgIGlmIChpc2Rp Z2l0IChjID0gKnl5SW5wdXQpIHx8IGMgPT0gJy0nIHx8IGMgPT0gJysnKSB7CiAgICAgIGlmIChj ID09ICctJyB8fCBjID09ICcrJykgewoJc2lnbiA9IGMgPT0gJy0nID8gLTEgOiAxOwoJaWYgKCFp c2RpZ2l0ICgqKyt5eUlucHV0KSkKCSAgLyogc2tpcCB0aGUgJy0nIHNpZ24gKi8KCSAgY29udGlu dWU7CiAgICAgIH0KICAgICAgZWxzZQoJc2lnbiA9IDA7CiAgICAgIGZvciAoeXlsdmFsLk51bWJl ciA9IDA7IGlzZGlnaXQgKGMgPSAqeXlJbnB1dCsrKTsgKQoJeXlsdmFsLk51bWJlciA9IDEwICog eXlsdmFsLk51bWJlciArIGMgLSAnMCc7CiAgICAgIHl5SW5wdXQtLTsKICAgICAgaWYgKHNpZ24g PCAwKQoJeXlsdmFsLk51bWJlciA9IC15eWx2YWwuTnVtYmVyOwogICAgICByZXR1cm4gc2lnbiA/ IHRTTlVNQkVSIDogdFVOVU1CRVI7CiAgICB9CiAgICBpZiAoaXNhbHBoYSAoYykpIHsKICAgICAg Zm9yIChwID0gYnVmZjsgaXNhbHBoYSAoYyA9ICp5eUlucHV0KyspIHx8IGMgPT0gJy4nOyApCglp ZiAocCA8ICZidWZmW3NpemVvZiBidWZmIC0gMV0pCgkgICpwKysgPSBjOwogICAgICAqcCA9ICdc MCc7CiAgICAgIHl5SW5wdXQtLTsKICAgICAgcmV0dXJuIExvb2t1cFdvcmQgKGJ1ZmYpOwogICAg fQogICAgaWYgKGMgIT0gJygnKQogICAgICByZXR1cm4gKnl5SW5wdXQrKzsKICAgIENvdW50ID0g MDsKICAgIGRvIHsKICAgICAgYyA9ICp5eUlucHV0Kys7CiAgICAgIGlmIChjID09ICdcMCcpCgly ZXR1cm4gYzsKICAgICAgaWYgKGMgPT0gJygnKQoJQ291bnQrKzsKICAgICAgZWxzZSBpZiAoYyA9 PSAnKScpCglDb3VudC0tOwogICAgfSB3aGlsZSAoQ291bnQgPiAwKTsKICB9Cn0KCiNkZWZpbmUg VE1fWUVBUl9PUklHSU4gMTkwMAoKLyogWWllbGQgQSAtIEIsIG1lYXN1cmVkIGluIHNlY29uZHMu ICAqLwpzdGF0aWMgbG9uZwpkaWZmdG0gKGEsIGIpCiAgICAgc3RydWN0IHRtICphLCAqYjsKewog IGludCBheSA9IGEtPnRtX3llYXIgKyAoVE1fWUVBUl9PUklHSU4gLSAxKTsKICBpbnQgYnkgPSBi LT50bV95ZWFyICsgKFRNX1lFQVJfT1JJR0lOIC0gMSk7CiAgbG9uZyBkYXlzID0gKAoJICAgICAg IC8qIGRpZmZlcmVuY2UgaW4gZGF5IG9mIHllYXIgKi8KCSAgICAgICBhLT50bV95ZGF5IC0gYi0+ dG1feWRheQoJICAgICAgIC8qICsgaW50ZXJ2ZW5pbmcgbGVhcCBkYXlzICovCgkgICAgICAgKyAg KChheSA+PiAyKSAtIChieSA+PiAyKSkKCSAgICAgICAtICAoYXkvMTAwIC0gYnkvMTAwKQoJICAg ICAgICsgICgoYXkvMTAwID4+IDIpIC0gKGJ5LzEwMCA+PiAyKSkKCSAgICAgICAvKiArIGRpZmZl cmVuY2UgaW4geWVhcnMgKiAzNjUgKi8KCSAgICAgICArICAobG9uZykoYXktYnkpICogMzY1Cgkg ICAgICAgKTsKICByZXR1cm4gKDYwKig2MCooMjQqZGF5cyArIChhLT50bV9ob3VyIC0gYi0+dG1f aG91cikpCgkgICAgICArIChhLT50bV9taW4gLSBiLT50bV9taW4pKQoJICArIChhLT50bV9zZWMg LSBiLT50bV9zZWMpKTsKfQoKdGltZV90CmdldF9kYXRlIChwLCBub3cpCiAgICBjaGFyCQkqcDsK ICAgIHN0cnVjdCB0aW1lYgkqbm93Owp7CiAgc3RydWN0IHRtCQkqdG0sIGdtdDsKICBzdHJ1Y3Qg dGltZWIJZnR6OwogIHRpbWVfdAkJU3RhcnQ7CiAgdGltZV90CQl0b2Q7CgogIHl5SW5wdXQgPSBw OwogIGlmIChub3cgPT0gTlVMTCkgewogICAgbm93ID0gJmZ0ejsKICAgICh2b2lkKXRpbWUgKCZm dHoudGltZSk7CgogICAgaWYgKCEgKHRtID0gZ210aW1lICgmZnR6LnRpbWUpKSkKICAgICAgcmV0 dXJuIC0xOwogICAgZ210ID0gKnRtOwkJCS8qIE1ha2UgYSBjb3B5LCBpbiBjYXNlIGxvY2FsdGlt ZSBtb2RpZmllcyAqdG0uICAqLwoKICAgIGlmICghICh0bSA9IGxvY2FsdGltZSAoJmZ0ei50aW1l KSkpCiAgICAgIHJldHVybiAtMTsKCQogICAgZnR6LnRpbWV6b25lID0gZGlmZnRtICgmZ210LCB0 bSkgLyA2MDsKICAgIGlmICh0bS0+dG1faXNkc3QpCiAgICAgIGZ0ei50aW1lem9uZSArPSA2MDsK ICB9CgogIHRtID0gbG9jYWx0aW1lICgmbm93LT50aW1lKTsKICB5eVllYXIgPSB0bS0+dG1feWVh cjsKICB5eU1vbnRoID0gdG0tPnRtX21vbiArIDE7CiAgeXlEYXkgPSB0bS0+dG1fbWRheTsKICB5 eVRpbWV6b25lID0gbm93LT50aW1lem9uZTsKICB5eURTVG1vZGUgPSBEU1RtYXliZTsKICB5eUhv dXIgPSAwOwogIHl5TWludXRlcyA9IDA7CiAgeXlTZWNvbmRzID0gMDsKICB5eU1lcmlkaWFuID0g TUVSMjQ7CiAgeXlSZWxTZWNvbmRzID0gMDsKICB5eVJlbE1vbnRoID0gMDsKICB5eUhhdmVEYXRl ID0gMDsKICB5eUhhdmVEYXkgPSAwOwogIHl5SGF2ZVJlbCA9IDA7CiAgeXlIYXZlVGltZSA9IDA7 CiAgeXlIYXZlWm9uZSA9IDA7CgogIGlmICh5eXBhcnNlICgpCiAgICAgIHx8IHl5SGF2ZVRpbWUg PiAxIHx8IHl5SGF2ZVpvbmUgPiAxIHx8IHl5SGF2ZURhdGUgPiAxIHx8IHl5SGF2ZURheSA+IDEp CiAgICByZXR1cm4gLTE7CgogIGlmICh5eUhhdmVEYXRlIHx8IHl5SGF2ZVRpbWUgfHwgeXlIYXZl RGF5KSB7CiAgICBTdGFydCA9IENvbnZlcnQgKHl5TW9udGgsIHl5RGF5LCB5eVllYXIsIHl5SG91 ciwgeXlNaW51dGVzLCB5eVNlY29uZHMsCgkJICAgICB5eU1lcmlkaWFuLCB5eURTVG1vZGUpOwog ICAgaWYgKFN0YXJ0IDwgMCkKICAgICAgcmV0dXJuIC0xOwogIH0KICBlbHNlIHsKICAgIFN0YXJ0 ID0gbm93LT50aW1lOwogICAgaWYgKCF5eUhhdmVSZWwpCiAgICAgIFN0YXJ0IC09ICgodG0tPnRt X2hvdXIgKiA2MEwgKyB0bS0+dG1fbWluKSAqIDYwTCkgKyB0bS0+dG1fc2VjOwogIH0KCiAgU3Rh cnQgKz0geXlSZWxTZWNvbmRzOwogIFN0YXJ0ICs9IFJlbGF0aXZlTW9udGggKFN0YXJ0LCB5eVJl bE1vbnRoKTsKCiAgaWYgKHl5SGF2ZURheSAmJiAheXlIYXZlRGF0ZSkgewogICAgdG9kID0gUmVs YXRpdmVEYXRlIChTdGFydCwgeXlEYXlPcmRpbmFsLCB5eURheU51bWJlcik7CiAgICBTdGFydCAr PSB0b2Q7CiAgfQoKICAvKiBIYXZlIHRvIGRvICpzb21ldGhpbmcqIHdpdGggYSBsZWdpdGltYXRl IC0xIHNvIGl0J3MgZGlzdGluZ3Vpc2hhYmxlCiAgICogZnJvbSB0aGUgZXJyb3IgcmV0dXJuIHZh bHVlLiAgKEFsdGVybmF0ZWx5IGNvdWxkIHNldCBlcnJubyBvbiBlcnJvci4pICovCiAgcmV0dXJu IFN0YXJ0ID09IC0xID8gMCA6IFN0YXJ0Owp9CgoKI2lmCWRlZmluZWQgKFRFU1QpCgovKiBBUkdT VVNFRCAqLwppbnQKbWFpbiAoYWMsIGF2KQogICAgaW50CQlhYzsKICAgIGNoYXIJKmF2W107CnsK ICBjaGFyIGJ1ZmZbTUFYX0JVRkZfTEVOICsgMV07CiAgdGltZV90IGQ7CgogICh2b2lkKXByaW50 ZiAoIkVudGVyIGRhdGUsIG9yIGJsYW5rIGxpbmUgdG8gZXhpdC5cblx0PiAiKTsKICAodm9pZClm Zmx1c2ggKHN0ZG91dCk7CgogIGJ1ZmZbTUFYX0JVRkZfTEVOXSA9IDA7CiAgd2hpbGUgKGZnZXRz IChidWZmLCBNQVhfQlVGRl9MRU4sIHN0ZGluKSAmJiBidWZmWzBdKSB7CiAgICBkID0gZ2V0X2Rh dGUgKGJ1ZmYsIChzdHJ1Y3QgdGltZWIgKilOVUxMKTsKICAgIGlmIChkID09IC0xKQogICAgICAo dm9pZClwcmludGYgKCJCYWQgZm9ybWF0IC0gY291bGRuJ3QgY29udmVydC5cbiIpOwogICAgZWxz ZQogICAgICAodm9pZClwcmludGYgKCIlcyIsIGN0aW1lICgmZCkpOwogICAgKHZvaWQpcHJpbnRm ICgiXHQ+ICIpOwogICAgKHZvaWQpZmZsdXNoIChzdGRvdXQpOwogIH0KICBleGl0ICgwKTsKICAv KiBOT1RSRUFDSEVEICovCn0KI2VuZGlmCS8qIGRlZmluZWQgKFRFU1QpICovCg== >>From abingham@lips.utexas.edu Thu Dec 30 08:14:00 1999 From: abingham@lips.utexas.edu To: gnats-gnats@sourceware.cygnus.com Subject: gnats/41: White space in category name handled poorly by mkcat Date: Thu, 30 Dec 1999 08:14:00 -0000 Message-id: <19991230160728.17504.qmail@sourceware.cygnus.com> X-SW-Source: 1999-q4/msg00070.html Content-length: 1362 >Number: 41 >Category: gnats >Synopsis: White space in category name handled poorly by mkcat >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Thu Dec 30 08:14:00 PST 1999 >Closed-Date: >Last-Modified: >Originator: Austin Bingham >Release: gnats-3.113 >Organization: >Environment: RedHat 6.0 >Description: If I create a category with a name containing white space, the mkcat tool treats each word in the category name as a different category and creates PR directories for each. For instance, if I create a category called "Foo Bar", mkcat will create a repository dir called Foo and one called Bar. rmcat on "Foo Bar" behaves analogously (sp?) and removes dirs called Foo and Bar. I've looked at mkcat, but don't have the resources to fix the problem right now. It looks like the sed statement on line 53 is to blame, but I could be wrong. Perhaps this is not a bug after all, but it seems like the behavior should either be to create a directory with white space in the name or to give an error and say that a category with white space is not allowed. >How-To-Repeat: Create a category with white space in the name (i.e. Foo Bar) and run mkcat. >Fix: >Release-Note: >Audit-Trail: >Unformatted: