This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
On Fri, 20 May 2005, Unidata Support wrote: > > ------- Forwarded Message > > >To: <address@hidden> > >From: "Hanson, Kurt" <address@hidden> > >Subject: FW: Unidata decoders - syn2nc bug re Unicode > >Organization: WSI > >Keywords: 200505201415.j4KEFOP3013416 netCDF decoders syn2nc > > This is a multi-part message in MIME format. > > ------_=_NextPart_001_01C55D46.5A42735C > Content-Type: multipart/alternative; > boundary="----_=_NextPart_002_01C55D46.5A42735C" > > > ------_=_NextPart_002_01C55D46.5A42735C > Content-Type: text/plain; > charset="Windows-1252" > Content-Transfer-Encoding: quoted-printable > > I haven't received a response to this. Does that mean its still in a = i consider this very important, been working on a new release but other projects have deverted time. thanks. robb... > queue or that the issue is not considered important? > > Just curious -- > > Kurt Hanson > WSI Corporation > 400 Minuteman Rd. > Andover, MA 01810 > (978).983.6549 > www.wsi.com > > > > -----Original Message----- > > From: Hanson, Kurt =20 > > Sent: Wednesday, April 20, 2005 1:20 PM > > To: 'address@hidden' > > Subject: Unidata decoders - syn2nc bug re Unicode > >=20 > > I imagine this will end up in Rob Kambic's inbox... if so, hello again = > Rob. > >=20 > > We've been occasionally experiencing issues with syn2nc. The problem = > is that once every week or two, the syn2nc log will suddenly begin = > filling with messages about Unicode: > >=20 > > Malformed UTF-8 character (unexpected continuation byte 0x8e, with no = > preceding start byte) in index at /dicast2-papp/DICAST/tmp/syn2nc_308 = > line 618, <STDIN> chunk 1. > > Malformed UTF-8 character (unexpected non-continuation byte 0x2a, = > immediately after start byte 0xf6) in index at = > /dicast2-papp/DICAST/tmp/syn2nc_308 line 618, <STDIN> chunk 1. > >=20 > > The log file grows without bound until finally the disk partition = > fills, hobbling the entire system. > >=20 > > I think I understand the problem and have a fix. The problem appears = > to be due to some garbage characters in several of the synoptic messages = > from today for a single site -- FBSK in Botswana. (I imagine that all of = > the problems we've ever seen are from this site.) > >=20 > > The issue is that since 5.8.0, Perl has some automatic support for = > handling Unicode characters. Once Perl sees a character outside of the = > range [0,127], it assumes that the text data is Unicode rather than = > ASCII. Since the garbage characters from today's FBSK data did not = > conform to Unicode rules, Perl itself (rather than syn2nc) generated the = > messages. > >=20 > > So the magic fix I installed is to put a "no encoding;" line (pragma) = > into the syn2nc script. This ensures that Perl doesn't try to guess what = > sort of character set the text is in -- it just passes the data up to = > the application level in raw form. That's what we need with syn2nc. > >=20 > > Scope: > > * We experience this problem on a Linux RedHat Enterprise 3.0 Athlon = > system running Perl 5.8.0. > > * We do not experience it on a Solaris 8 system running Perl 5.8.0. > >=20 > > Testing: > > When I pipe the attached synoptic file = > synoptic.20050420.1200.asc.FBSK_210 into the pristine syn2nc on the = > Linux system, the log file grows without bound. When I pipe it into my = > patched version, the log file size remains stable, and the file never = > gets any Unicode error messages. > >=20 > > Discussion: > > Thinking beyond the low-level Perl issue, I'm not sure what syn2nc = > should do when it encounters the garbage characters... Nor am I sure = > what it actually does -- I'd dig into the script itself to find that out = > but I'm running short on time. What do you think? > >=20 > > Also, I'd be curious to hear whether you see the garbage characters in = > your FBSK synoptics for today. Its possible but unlikely that the = > garbage is not due to the FBSK sensor itself but due to some = > communications issue that is WSI-specific. > >=20 > > I'm attaching a few things: > > * syn2nc.new -- an updated version of syn2nc from the 3.0.9 version of = > the decoders package. > > * syn2nc.patch -- a diff of my version vs the pristine 3.0.9 > > * synoptic.20050420.1200.asc.FBSK_210 -- message #210 from today's = > synoptic feed, containing garbage characters 0x8e and others in line 6 = > of the file. > >=20 > > Relevant Perl references: > > * Unicode intro: http://perldoc.perl.org/perluniintro.html > > * encoding pragma: http://perldoc.perl.org/encoding.html > >=20 > > Whew. I think that's about everything! Feel free to contact me. > >=20 > > Kurt Hanson > > Senior Software Engineer & Scientific Analyst > > WSI Corporation > > 400 Minuteman Rd. > > Andover, MA 01810 > > my phone: 978.983.6549 > > www.wsi.com > >=20 > > > <<syn2nc.new>> > > <<syn2nc.patch>> > > = > <<synoptic.20050420.1200.asc.FBSK_210>>=20 > >=20 > >=20 > >=20 > > ------_=_NextPart_002_01C55D46.5A42735C > Content-Type: text/html; > charset="Windows-1252" > Content-Transfer-Encoding: quoted-printable > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> > <HTML> > <HEAD> > <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = > charset=3DWindows-1252"> > <META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version = > 6.5.7226.0"> > <TITLE>FW: Unidata decoders - syn2nc bug re Unicode</TITLE> > </HEAD> > <BODY> > <!-- Converted from text/rtf format --> > > <P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Arial">I haven't received a = > response to this. Does that mean its still in a queue or that the issue = > is not considered important?</FONT></P> > > <P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Arial">Just curious = > --</FONT> > </P> > > <P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Arial">Kurt Hanson</FONT> > > <BR><FONT SIZE=3D2 FACE=3D"Arial">WSI Corporation</FONT> > > <BR><FONT SIZE=3D2 FACE=3D"Arial">400 Minuteman Rd.</FONT> > > <BR><FONT SIZE=3D2 FACE=3D"Arial">Andover, MA 01810</FONT> > > <BR><FONT SIZE=3D2 FACE=3D"Arial">(978).983.6549</FONT> > > <BR><FONT SIZE=3D2 FACE=3D"Arial">www.wsi.com</FONT> > </P> > <BR> > > <P><FONT FACE=3D"Arial"><SPAN LANG=3D"en-us"></SPAN></FONT><SPAN = > LANG=3D"en-us"> <FONT SIZE=3D1 FACE=3D"Tahoma">-----Original = > Message-----</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 FACE=3D"Tahoma">From: = > </FONT></B> <FONT SIZE=3D1 FACE=3D"Tahoma">Hanson, Kurt = > </FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 = > FACE=3D"Tahoma">Sent: </FONT></B> <FONT SIZE=3D1 = > FACE=3D"Tahoma">Wednesday, April 20, 2005 1:20 PM</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 = > FACE=3D"Tahoma">To: </FONT></B> <FONT SIZE=3D1 = > FACE=3D"Tahoma">'address@hidden'</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><B><FONT SIZE=3D1 = > FACE=3D"Tahoma">Subject: </FONT>= > </B> <FONT SIZE=3D1 FACE=3D"Tahoma">Unidata decoders - syn2nc bug re = > Unicode</FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">I imagine this = > will end up in Rob Kambic's inbox... if so, hello again = > Rob.</FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">We've been = > occasionally experiencing issues with syn2nc. The problem is that once = > every week or two, the syn2nc log will suddenly begin filling with = > messages about Unicode:</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">Malformed = > UTF-8 character (unexpected continuation byte 0x8e, with no preceding = > start byte) in index at /dicast2-papp/DICAST/tmp/syn2nc_308 line 618, = > <STDIN> chunk 1.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Courier New">Malformed = > UTF-8 character (unexpected non-continuation byte 0x2a, immediately = > after start byte 0xf6) in index at /dicast2-papp/DICAST/tmp/syn2nc_308 = > line 618, <STDIN> chunk 1.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">The log file grows = > without bound until finally the disk partition fills, hobbling the = > entire system.</FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">I think I = > understand the problem and have a fix. The problem appears to be due to = > some garbage characters in several of the synoptic messages from today = > for a single site -- FBSK in Botswana. (I imagine that all of the = > problems we've ever seen are from this site.)</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">The issue is that = > since 5.8.0, Perl has some automatic support for handling Unicode = > characters. Once Perl sees a character outside of the range [0,127], it = > assumes that the text data is Unicode rather than ASCII. Since the = > garbage characters from today's FBSK data did not conform to Unicode = > rules, Perl itself (rather than syn2nc) generated the = > messages.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">So the magic fix I = > installed is to put a "no encoding;" line (pragma) into the = > syn2nc script. This ensures that Perl doesn't try to guess what sort of = > character set the text is in -- it just passes the data up to the = > application level in raw form. That's what we need with = > syn2nc.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 = > FACE=3D"Arial">Scope:</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* We experience = > this problem on a Linux RedHat Enterprise 3.0 Athlon system running Perl = > 5.8.0.</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* We do not = > experience it on a Solaris 8 system running Perl 5.8.0.</FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 = > FACE=3D"Arial">Testing:</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">When I pipe the = > attached synoptic file synoptic.20050420.1200.asc.FBSK_210 into the = > pristine syn2nc on the Linux system, the log file grows without bound. = > When I pipe it into my patched version, the log file size remains = > stable, and the file never gets any Unicode error = > messages.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 = > FACE=3D"Arial">Discussion:</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Thinking beyond = > the low-level Perl issue, I'm not sure what syn2nc should do when it = > encounters the garbage characters... Nor am I sure what it actually does = > -- I'd dig into the script itself to find that out but I'm running short = > on time. What do you think?</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Also, I'd be = > curious to hear whether you see the garbage characters in your FBSK = > synoptics for today. Its possible but unlikely that the garbage is not = > due to the FBSK sensor itself but due to some communications issue that = > is WSI-specific.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">I'm attaching a = > few things:</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* syn2nc.new -- = > an updated version of syn2nc from the 3.0.9 version of the decoders = > package.</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* syn2nc.patch -- = > a diff of my version vs the pristine 3.0.9</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* = > synoptic.20050420.1200.asc.FBSK_210 -- message #210 from today's = > synoptic feed, containing garbage characters 0x8e and others in line 6 = > of the file.</FONT></SPAN></P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Relevant Perl = > references:</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* Unicode intro: = > <A = > HREF=3D"http://perldoc.perl.org/perluniintro.html">http://perldoc.perl.or= > g/perluniintro.html</A></FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">* encoding = > pragma: <A = > HREF=3D"http://perldoc.perl.org/encoding.html">http://perldoc.perl.org/en= > coding.html</A></FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Whew. I think = > that's about everything! Feel free to contact me.</FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Kurt = > Hanson</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Senior Software = > Engineer & Scientific Analyst</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">WSI = > Corporation</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">400 Minuteman = > Rd.</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">Andover, MA = > 01810</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 FACE=3D"Arial">my phone: = > 978.983.6549</FONT></SPAN> > > <BR><SPAN LANG=3D"en-us"><FONT SIZE=3D2 = > FACE=3D"Arial">www.wsi.com</FONT></SPAN> > </P> > > <P><SPAN LANG=3D"en-us"><FONT FACE=3D"Arial" SIZE=3D2 COLOR=3D"#000000"> = > <<syn2nc.new>> </FONT><FONT FACE=3D"Arial" SIZE=3D2 = > COLOR=3D"#000000"> <<syn2nc.patch>> </FONT><FONT = > FACE=3D"Arial" SIZE=3D2 COLOR=3D"#000000"> = > <<synoptic.20050420.1200.asc.FBSK_210>> </FONT></SPAN> > </P> > <BR> > <BR> > > </BODY> > </HTML> > ------_=_NextPart_002_01C55D46.5A42735C-- > > ------_=_NextPart_001_01C55D46.5A42735C > Content-Type: application/octet-stream; > name="syn2nc.new" > Content-Transfer-Encoding: base64 > Content-Description: syn2nc.new > Content-Disposition: attachment; > filename="syn2nc.new" > > IyEvdXNyL2xvY2FsL2Jpbi9wZXJsCiMKIyAgdXNhZ2U6IHN5bjJuYyBjZGxmaWxlIFtkYXRhZGly > XSBbeXl5eW1tXSA8IG5jZmlsZQojCiMKdXNlIE5ldENERiA7CnVzZSBUaW1lOjpMb2NhbCA7Cgoj > IEVuc3VyZSB0aGF0IGNoYXJhY3RlcnMgb24gU1RESU4gYXJlIE5PVCBpbnRlcnByZXRlZCBhcyBV > bmljb2RlLgojIFRoZW9yZXRpY2FsbHksIHRoaXMgaXMgdW5uZWNlc3NhcnksIHNpbmNlIHN5bm9w > dGljIG1lc3NhZ2VzIHNob3VsZCBjb250YWluCiMgbm8gY2hhcmF0ZXJzIG91dHNpZGUgb2YgQVND > SUkgKGFrYSBJU08gODg1OS0xIGFrYSBMYXRpbi0xKSByYW5nZSAwLTEyNy4KIyBIb3dldmVyLCBp > dCBpcyBwb3NzaWJsZSBmb3Igc2l0ZXMgZXhwZXJpZW5jaW5nIHRlY2huaWNhbCBwcm9ibGVtcyB0 > byB0cmFuc21pdAojIGdhcmJhZ2UgY2hhcmFjdGVycyBvdXRzaWRlIHRoaXMgcmFuZ2UuCm5vIGVu > Y29kaW5nOwoKIyBwcm9jZXNzIGNvbW1hbmQgbGluZSBzd2l0Y2hlcwp3aGlsZSAoJF8gPSAkQVJH > VlswXSwgL14tLykgewoJIHNoaWZ0OwogICAgICAgbGFzdCBpZiAvXi0tJC87CgkgICAgIC9eKC12 > KS8gJiYgJHZlcmJvc2UrKzsKfQojIHByb2Nlc3MgaW5wdXQgcGFyYW1ldGVycwppZiggJCNBUkdW > ID09IDAgKSB7CgkkY2RsZmlsZSA9ICRBUkdWWyAwIF0gOwp9IGVsc2lmKCAkI0FSR1YgPT0gMSAp > IHsKCSRjZGxmaWxlID0gJEFSR1ZbIDAgXSA7CglpZiggJEFSR1ZbIDEgXSA9fiAvXlxkLyApIHsK > CQkkeXl5eW1tID0gJEFSR1ZbIDEgXSA7Cgl9IGVsc2UgewoJCSRkYXRhZGlyID0gJEFSR1ZbIDEg > XSA7Cgl9Cn0gZWxzaWYoICQjQVJHViA9PSAyICkgewoJJGNkbGZpbGUgPSAkQVJHVlsgMCBdIDsK > CSRkYXRhZGlyID0gJEFSR1ZbIDEgXSA7CgkkeXl5eW1tID0gJEFSR1ZbIDIgXSA7Cn0gZWxzZSB7 > CglkaWUgIlVzYWdlIHdpdGggaW5wdXQgb24gU1RESU46IHN5bjJuYyBbLXZdIGNkbGZpbGUgW2Rh > dGFkaXJdIFt5eXl5bW1dXG4iOwp9CgojIGNoZWNrIGZvciBjZGwgYW5kIG5ldENERiBuY2dlbgpk > aWUgIk1pc3NpbmcgY2RsZmlsZSBwYXJhbWV0ZXI6ICQhXG4iIHVubGVzcyAgLWUgJGNkbGZpbGUg > OwppZiggLWUgInV0aWwvbmNnZW4iICkgewoJJG5jZ2VuID0gInV0aWwvbmNnZW4iIDsKfSBlbHNp > ZiggLWUgIi91c3IvbG9jYWwvbGRtL3V0aWwvbmNnZW4iICkgewoJJG5jZ2VuID0gIi91c3IvbG9j > YWwvbGRtL3V0aWwvbmNnZW4iIDsKfSBlbHNpZiggLWUgIi91cGMvbmV0Y2RmL2Jpbi9uY2dlbiIg > KSB7CgkkbmNnZW4gPSAiL3VwYy9uZXRjZGYvYmluL25jZ2VuIiA7Cn0gZWxzaWYoIC1lICIuL25j > Z2VuIiApIHsKCSRuY2dlbiA9ICIuL25jZ2VuIiA7Cn0gZWxzZSB7CglvcGVuKCBOQ0dFTiwgIndo > aWNoIG5jZ2VuIHwiICkgOwoJJG5jZ2VuID0gPE5DR0VOPiA7CgljbG9zZSggTkNHRU4gKSA7CgoJ > aWYoICRuY2dlbiA9fiAvbm8gbmNnZW4vICkgewoJCWRpZSAiQ2FuJ3QgZmluZCBOZXRDREYgdXRp > bGl0eSAnbmNnZW4nIGluIFBBVEgsIHV0aWwvbmNnZW4KL3Vzci9sb2NhbC9sZG0vdXRpbC9uY2dl > biwgL3VwYy9uZXRjZGYvYmluL25jZ2VuLCBvciAuL25jZ2VuIDogJCFcbiIgOwoJfSBlbHNlIHsK > CQkkbmNnZW4gPSAibmNnZW4iIDsKCX0KfQojIHRoZSBkYXRhIGRpcmVjdG9yeSAKJGRhdGFkaXIg > PSAiLiIgaWYoICEgJGRhdGFkaXIgKSA7CnN5c3RlbSggIm1rZGlyIC1wICRkYXRhZGlyIiApIGlm > KCAhIC1lICRkYXRhZGlyICkgOwojIHJlZGlyZWN0IFNURE9VVCBhbmQgU1RERVJSCm9wZW4oIFNU > RE9VVCwgIj4kZGF0YWRpci9zeW5Mb2cuJCQubG9nIiApIHx8CgkJZGllICJjb3VsZCBub3Qgb3Bl > biAkZGF0YWRpci9zeW5Mb2cuJCQubG9nOiAkIVxuIiA7Cm9wZW4oIFNUREVSUiwgIj4mU1RET1VU > IiApIHx8CgkJZGllICJjb3VsZCBub3QgZHVwIHN0ZG91dDogJCFcbiIgOwpzZWxlY3QoIFNUREVS > UiApIDsgJHwgPSAxIDsKc2VsZWN0KCBTVERPVVQgKSA7ICR8ID0gMSA7CgojIHllYXIgYW5kIG1v > bnRoCmlmKCAhICR5eXl5bW0gKSB7CgkkdGhleWVhciA9IChnbXRpbWUoKSlbIDUgXSA7CgkkdGhl > eWVhciA9ICggJHRoZXllYXIgPCAxMDAgPyAkdGhleWVhciA6ICR0aGV5ZWFyIC0gMTAwICkgOwoJ > JHRoZWRlY2FkZSA9IHNwcmludGYoICIlMDJkIiwgJHRoZXllYXIgKSA7CgkkdGhleWVhciA9ICIy > MCIgLiBzcHJpbnRmKCAiJTAyZCIsICR0aGV5ZWFyICkgOwoJJHRoZW1vbnRoID0gKGdtdGltZSgp > KVsgNCBdIDsKCSR0aGVtb250aCsrIDsKCSR0aGVtb250aCA9IHNwcmludGYoICIlMDJkIiwgJHRo > ZW1vbnRoICkgOwoJJHl5eXltbSA9ICIkdGhleWVhciR0aGVtb250aCIgOwp9IGVsc2UgewoJZGll > ICJ5eXl5bW0gbXVzdCBiZSA2IGluIGxlbmd0aDogJCFcbiIgaWYoIGxlbmd0aCggJHl5eXltbSAp > ICE9IDYgKSA7CgkkdGhleWVhciA9IHN1YnN0ciggJHl5eXltbSwgMCwgNCApIDsKCSR0aGVtb250 > aCA9IHN1YnN0ciggJHl5eXltbSwgNCApIDsKCSR0aGVkZWNhZGUgPSBzdWJzdHIoICR5eXl5bW0s > IDIsIDIgKSA7Cn0KIyBzZXQgZXJyb3IgaGFuZGxpbmcgdG8gdmVyYm9zZSBvbmx5CiRzdGF0dXMg > PSBOZXRDREY6Om9wdHMoIFZFUkJPU0UgKSA7CgojIHNldCBpbnRlcnJ1cHQgaGFuZGxlcgokU0lH > eyAnSU5UJyB9ICA9ICdhdGV4aXQnIDsKJFNJR3sgJ0tJTEwnIH0gID0gJ2F0ZXhpdCcgOwokU0lH > eyAnVEVSTScgfSAgPSAnYXRleGl0JyA7CiRTSUd7ICdRVUlUJyB9ICA9ICdhdGV4aXQnIDsKCiVD > REwgPSAoCiJyZXBfdHlwZSIsIDAsICJ3bW9JZCIsIDEsICJzdG5OYW1lIiwgMiwgInRpbWVfb2Jz > IiwgMywgInRpbWVfbm9taW5hbCIsIDQsIAoiTGF0IiwgNSwgIkxvbiIsIDYsICJlbGV2IiwgNywg > InN0blR5cGUiLCA4LCAibWVhbldpbmQiLCA5LCAiVklTIiwgMTAsIAoiRElSIiwgMTEsICJTUEQi > LCAxMiwgIlQiLCAxMywgImh1bWlkaXR5IiwgMTQsICJURCIsIDE1LCAiUFJFUyIsIDE2LCAKIlNM > UCIsIDE3LCAiY2hhcl9QdGVuZCIsIDE4LCAiUHRlbmQiLCAxOSwgIlBSRUNJUF9hbXQiLCAyMCwg > IlBSRUNJUF9wZXJpb2QiLCAyMSwgIldYcHJlc2VudCIsIDIyLCAiV1hwYXN0IiwgMjMsICJjbG91 > ZENvdmVyIiwgMjQsICJjbG91ZExvdyIsIDI1LCAKImNsb3VkTWlkZGxlIiwgMjYsICJjbG91ZEhp > Z2giLCAyNywgInNoaXBUcnVlRElSIiwgMjgsICJzaGlwQXZnU1BEIiwgMjksIAoiVHciLCAzMCwg > IlB3YSIsIDMxLCAiSHdhIiwgMzIsICJId2FfdGVudGhzIiwgMzMsICJzd2VsbERJUjEiLCAzNCwg > IlBzMSIsIDM1LCAKIkhzMSIsIDM2LCAic3dlbGxESVIyIiwgMzcsICJQczIiLCAzOCwgIkhzMiIs > IDM5LCAiaWNlVHlwZSIsIDQwLCAiaWNlVGhpY2siLCA0MSwgImljZVJhdGUiLCA0MiwgIlRiIiwg > NDMsICJJQ0UiLCA0NCwgImljZUNvbmNlbiIsIDQ1LCAiaWNlU3RhZ2UiLCA0NiwgCiJpY2VMYW5k > IiwgNDcsICJpY2VFZGdlIiwgNDgsICJpY2VTaXR1YXRpb24iLCA0OSwgIlRtYXgiLCA1MCwgIlRt > aW4iLCA1MSwgCiJncm91bmRTdGF0ZSIsIDUyLCAic25vd0RlcHRoIiwgNTMsICJQUkVDSVBfYW10 > MjQiLCA1NCwgImNsb3VkT2JzdXJlZCIsIDU1LCAKImNsb3VkR2VudXMiLCA1NiwgImNsb3VkSGVp > Z2h0IiwgNTcsICJyZXBvcnQiLCA1OCApIDsgCgojIHNldCBkZWZhdWx0cwokcmVwX3R5cGVfbGVu > ID0gNCA7CiRzdG5OYW1lX2xlbiA9IDYgOwokY2xvdWRfbGV2ZWxzID0gMyA7CiRyX2xlbiA9IDI1 > NiA7CgojIG9wZW4gY2RsIGFuZCBnZXQgZGltZW5zaW9ucyBmb3IgdmFyaWFibGVzCm9wZW4oIENE > TCwgIiRjZGxmaWxlIiApIHx8IGRpZSAiY291bGQgbm90IG9wZW4gJGNkbGZpbGU6ICQhXG4iIDsK > d2hpbGUoIDxDREw+ICkgewoJaWYoIHMjXlxzKnJlcF90eXBlX2xlblxzKj1ccyooXGR7MSw1fSkj > IyApIHsKCQkkcmVwX3R5cGVfbGVuID0gJDEgOwoJfSBlbHNpZiggcyNeXHMqc3RuTmFtZV9sZW5c > cyo9XHMqKFxkezEsNX0pIyMgKSB7CgkJJHN0bk5hbWVfbGVuID0gJDEgOwoJfSBlbHNpZiggcyNe > XHMqY2xvdWRfbGV2ZWxzXHMqPVxzKihcZHsxLDV9KSMjICkgewoJCSRjbG91ZF9sZXZlbHMgPSAk > MSA7Cgl9IGVsc2lmKCBzI15ccypyX2xlblxzKj1ccyooXGR7MSw1fSkjIyApIHsKCQkkcl9sZW4g > PSAkMSA7Cgl9IGVsc2lmKCBzI15ccyp2YXJpYWJsZXMjIyApIHsKCQlsYXN0IDsKCX0KfQokRiA9 > IC05OTk5OSA7CiRBID0gXCRGIDsKJFNSID0gIlwwIiB4ICRyZXBfdHlwZV9sZW4gOwokQVNSID0g > XCRTUiA7CiRTTiA9ICJcMCIgeCAkc3RuTmFtZV9sZW4gOwokQVNOID0gXCRTTiA7CkBDTCA9ICgg > JEYsICRGLCAkRiApIDsKQENMID0gKCAtOTk5OTkgKSB4ICggJGNsb3VkX2xldmVscyApIDsKJEFD > TCA9IFxAQ0wgOwokU1JwdCA9ICJcMCIgeCAkcl9sZW4gOwokQVNScHQgPSBcJFNScHQgOwoKIyBk > ZWZhdWx0IG5ldENERiByZWNvcmQgc3RydWN0dXJlLCBjb250YWlucyBhbGwgdmFycyBmb3IgdGhl > IEJVT1kgcmVwb3J0cwpAZGVmYXVsdHJlYyA9ICggJEFTUiwgJEEsICRBU04sICRBLCAkQSwgJEEs > ICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsICRBLCAKICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsICRB > LCAkQSwgJEEsICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsIAogJEEsICRBLCAk > QSwgJEEsICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsICRBLCAkQSwgJEEsICRB > LCAkQSwgJEEsCiAkQSwgJEEsICRBLCAkQSwgJEEsICRBQ0wsICRBQ0wsICRBQ0wsICRBU1JwdCAp > IDsKCiMgdHdvIGZvbGQgcHVycG9zZSBhcnJheSwgaWYgZW50cnkgPiAwLCB0aGVuIHZhciBpcyBy > ZXF1ZXN0ZWQgYW5kIGl0J3MgdmFsdWUKIyBpcyB0aGUgcG9zaXRpb24gaW4gdGhlIHJlY29yZCwg > ZXhjZXB0IGZpcnN0IGVudHJ5CkBXID0gKCAwICkgeCAoICQjZGVmYXVsdHJlYyArMSApIDsKJFdb > IDAgXSA9IC0xIDsKCiMgY3JlYXRlIHJlY29yZCBzdHJ1Y3R1cmUgYWNjb3JkaW5nIHRvIHZhcmlh > YmxlcwokaSA9IDAgOwp3aGlsZSggPENETD4gKSB7CglpZiggcyNeXHMqKGNoYXJ8aW50fGxvbmd8 > ZG91YmxlfGZsb2F0KSAoXHd7MSwyNX0pIyMgKSB7CgkJKCAkbnVtYmVyICkgPSAkQ0RMeyAkMiB9 > IDsKCQlwdXNoKCBAcmVjLCAkZGVmYXVsdHJlY1sgJG51bWJlciBdICkgOwoJCSRXWyAkbnVtYmVy > IF0gPSAkaSsrIDsKCX0KfQpjbG9zZSBDREwgOwp1bmRlZiggQGRlZmF1bHRyZWMgKSA7CnVuZGVm > KCAlQ0RMICkgOwoKIyBjbG91ZCBiYXNlIGhlaWdodApASEdIVCA9ICggMjUsIDc1LCAxNTAsIDI1 > MCwgNDUwLCA4MDAsIDEyNTAsIDE3NTAsIDIyNTAsIDI1MDAgKSA7CiMgUFJFQ0lQIHBlcmlvZApA > dFIgPSAoIDAsIDYsIDEyICwxOCwgMjQsIDEsIDIsIDMsIDksIDE1ICkgOwojIHdhdmUgaGVpZ2h0 > CkBXSEdIVCA9ICggMCwgMC4wNSwgMC4zLCAwLjg3NSwgMS44NzUsIDMuMjUsIDUsIDcuNSwgMTEu > NSwgMTQgKSA7CgojIHJlYWQgaW4gc3RhdGlvbiBkYXRhCmlmKCAtZSAiZXRjL3N5c3Ruc191cGMu > dGJsIiApIHsKCSRzZmlsZSA9ICJldGMvc3lzdG5zX3VwYy50YmwiIDsKfSBlbHNpZiggLWUgIi4v > c3lzdG5zX3VwYy50YmwiICkgewoJJHNmaWxlID0gIi4vc3lzdG5zX3VwYy50YmwiIDsKfSBlbHNl > IHsKCWRpZSAiQ2FuJ3QgZmluZCBzeXN0bnNfdXBjLnRibCBzdGF0aW9uIGZpbGUuOiAkIVxuIiA7 > Cn0Kb3BlbiggU1RBVElPTiwgIiRzZmlsZSIgKSB8fCBkaWUgImNvdWxkIG5vdCBvcGVuICRzZmls > ZTogJCFcbiIgOwoKd2hpbGUoIDxTVEFUSU9OPiApIHsKCXMjXihcd3szLDZ9KT9ccysoXGR7NCw1 > fSkuezQwfSMjIDsKCSRpZCA9ICQxIDsKCSR3bW9JZCA9ICQyIDsKCSR3bW9JZCA9ICIwIiAuICR3 > bW9JZCBpZiggbGVuZ3RoKCAkd21vSWQgKSA9PSA0ICkgOwoJKCAkTGF0LCAkTG9uLCAkZWxldiAp > ID0gc3BsaXQgOwoJJExhdCA9IHNwcmludGYoICIlNy4yZiIsICRMYXQgLyAxMDAgKSA7CgkkTG9u > ID0gc3ByaW50ZiggIiU3LjJmIiwgJExvbiAvIDEwMCkgOwoKCSMgc2V0IHRoZXNlIHZhcnMgKCAk > d21vSWQsICRMYXQsICRMb24sICRlbGV2ICkgCgkkU1RBVElPTlN7ICIkd21vSWQiIH0gPSAiJExh > dCAkTG9uICRlbGV2ICRpZCIgOwp9CmNsb3NlIFNUQVRJT04gOwoKIyByZWFkIGluIGxpc3Qgb2Yg > YWxyZWFkeSBwcm9jZXNzZWQgcmVwb3J0cyBpZiBpdCBleGlzdHMKIyBvcGVuIHN5bi5sc3QsIGxp > c3Qgb2YgcmVwb3J0cyBwcm9jZXNzZWQgaW4gdGhlIGxhc3QgPyBob3Vycy4KaWYoIC1lICIkZGF0 > YWRpci9zeW4ubHN0IiApIHsKCW9wZW4oIExTVCwgIiRkYXRhZGlyL3N5bi5sc3QiICkgfHwgCgkJ > ZGllICJjb3VsZCBub3Qgb3BlbiAkZGF0YWRpci9zeW4ubHN0OiAkIVxuIiA7Cgl3aGlsZSggPExT > VD4gKSB7CgkJKCAkd21vSWQsICR5eXl5bW1kZGhoLCAkcmVjb3JkICkgPSBzcGxpdCA7CgkJJHJw > dF9oYXNoeyAiJHdtb0lkICR5eXl5bW1kZGhoIiB9ICA9ICRyZWNvcmQgOwoJfQoJY2xvc2UgTFNU > IDsKfQojIE5vdyBiZWdpbiBwYXJzaW5nIGZpbGUgYW5kIGRlY29kaW5nIG9ic2VydmF0aW9ucyBi > cmVha2luZyBvbiBjbnRybCBDCiQvID0gIlxjQyIgOwoKIyBtYWluIGxvb3AgICBzZXQgc2VsZWN0 > IHByb2Nlc3NpbmcgaGVyZSBmcm9tIFNURElOClNUQVJUOgp3aGlsZSggMSApIHsKCW9wZW4oIFNU > RElOLCAnLScgKSA7Cgl2ZWMoJHJpbixmaWxlbm8oU1RESU4pLDEpID0gMTsKCSR0aW1lb3V0ID0g > MTIwMCA7ICMgMjAgbWludXRlcwoJJG5mb3VuZCA9IHNlbGVjdCggJHJvdXQgPSAkcmluLCB1bmRl > ZiwgdW5kZWYsICR0aW1lb3V0ICk7CgkjIHRpbWVkIG91dAoJaWYoICEgJG5mb3VuZCApIHsKCQlw > cmludCAiU2h1dCBkb3duLCB0aW1lIG91dCAyMCBtaW51dGVzXG4iIDsKCQlhdGV4aXQoKSA7Cgl9 > CglhdGV4aXQoICJlb2YiICkgaWYoIGVvZiggU1RESU4gKSApIDsKCgkjIFByb2Nlc3MgZWFjaCBs > aW5lIG9mIHN5biBidWxsZXRpbnMsIGhlYWRlciBmaXJzdAoJJF8gPSA8U1RESU4+IDsKCWFheHgo > ICRfICkgaWYoIC9BQVhYLyApIDsKCWF0ZXhpdCggImVvZiIgKSBpZiggZW9mKCBTVERJTiApICkg > Owp9ICMgZW5kIHdoaWxlKCAxICkKYXRleGl0KCAiZW9mIiApOwpleGl0KCAwICkgOyAjc2hvdWxk > IG5ldmVyIGdldCBoZXJlCgojIEFBWFggcmVwb3J0cwpzdWIgYWF4eCB7CgooICRfICkgPSBAXyA7 > CgpzI1xjQyMjIDsKcyNcY00jI2cgOwpzI1xjQVxuIyMgOwpzI1xjXiMjZyA7CiMgRWF0IGhlYWRl > ciBhbmQgZ2V0IGJ1bGxldGluIHRpbWUKcyNcZFxkXGQgXG4jIyA7CnMjXHd7NH1cZHsxLDJ9IFx3 > ezR9IChcZHsyfSkoXGR7Mn0pKFxkezJ9KS4qXG4jIyA7CiRiZGF5ID0gJDEgOwokYmhvdXIgPSAk > MiA7CiRiaG91ciA9ICIyMyIgaWYoICRiaG91ciBlcSAiMjQiICkgOwokYm1pbiA9ICQzIDsKbmV4 > dCB1bmxlc3MgKCAkYmRheSAmJiBkZWZpbmVkKCAkYmhvdXIgKSAmJiBkZWZpbmVkKCAkYm1pbiAp > ICkgOwpuZXh0IGlmKCAkYm1pbiA+IDU5IHx8ICRiaG91ciA+IDIzIHx8ICRiZGF5ID4gMzEgKSA7 > CiMgY2hlY2sgZm9yIHZhbGlkIGJ1bGxldGluIHRpbWVzIGFnYWluc3QgY3VycmVudCB0aW1lCiRj > ZGF5ID0gKGdtdGltZSgpKVsgMyBdIDsKJGNob3VyID0gKGdtdGltZSgpKVsgMiBdIDsKIyBza2lw > IGJ1bGxldGlucyBvdmVyIDI0IGhvdXJzIG9sZCBvciBpbiB0aGUgZnV0dXJlCmlmKCAkYmRheSA9 > PSAkY2RheSApIHsKCW5leHQgaWYoICRiaG91ciA+ICRjaG91ciApIDsKfSBlbHNlIHsgIyAgJGJk > YXkgIT0gJGNkYXksIHNraXAgb3ZlciBkYXkgb2xkIHJlcG9ydHMKCW5leHQgaWYoICRiZGF5IDwg > JGNkYXkgLTEgKSA7CiAJaWYoICRiZGF5ID4gJGNkYXkgKSB7CgkJbmV4dCBpZiggJGNkYXkgIT0g > MSB8fCAkYmRheSA8IDI4KSA7Cgl9CiAJbmV4dCBpZiggJGJob3VyIDwgJGNob3VyICkgOwp9Cmlm > KCBzIyhBQVhYKVxzKyhcZFxkKShcZFxkKShcZCk/XHMqXG4jIyApIHsKCSRyZXBfdHlwZSA9ICQx > IDsKCSRyZGF5ID0gJDIgOwoJJHJob3VyID0gJDMgOwoJaWYoICQ0ICkgewoJCSRXaW5kaWNhdG9y > ID0gJDQgOwoJfSBlbHNlIHsKCQkkV2luZGljYXRvciA9IDQgOwoJfQp9IGVsc2lmKCBzIyhBQVhY > KVxzKlxuIyMgKSB7CgkkcmVwX3R5cGUgPSAkMSA7CgkkcmRheSA9ICRiZGF5IDsKCSRyaG91ciA9 > ICRiaG91ciA7CgkkV2luZGljYXRvciA9IDQgOyAjIGRlZmF1bHQgaXMga25vdHMKfSBlbHNlIHsK > CW5leHQgOwp9CiMgY2hlY2sgZm9yIHZhbGlkIHRpbWVzCm5leHQgdW5sZXNzICgkcmRheSAmJiBk > ZWZpbmVkKCAkcmhvdXIgKSkgOwpuZXh0IGlmKCAkcmhvdXIgPiAyMyB8fCAkcmRheSA+IDMxICkg > OwojIHNraXAgcmVwb3J0cyBvdmVyIDI0IGhvdXJzIG9sZAokdG1weXl5eW1tID0gJHl5eXltbSA7 > CmlmKCAkcmRheSA9PSAkY2RheSApIHsKCW5leHQgaWYoICRyaG91ciA+ICRjaG91ciApIDsKfSBl > bHNlIHsgIyAgJHJkYXkgIT0gJGNkYXksIHNraXAgb3ZlciBkYXkgb2xkIHJlcG9ydHMKCW5leHQg > aWYoICRyZGF5IDwgKCAkY2RheSAtMSApICkgOwogCWlmKCAkcmRheSA+ICRjZGF5ICkgewoJCW5l > eHQgaWYoICRjZGF5ICE9IDEgfHwgJHJkYXkgPCAyOCkgOwoJCSMgY2RheSA9IDEsIHJlc2V0IG1v > bnRoIGFuZCB5ZWFyCgkJJHRtcG1vbnRoID0gc3ByaW50ZiggIiUwMmQiLCAkdGhlbW9udGggLTEg > KSA7CgkJaWYoICR0bXBtb250aCA9PSAwICkgewoJCQkkdG1wbW9udGggPSAiMTIiIDsKCQkJJHRt > cHllYXIgPSBzcHJpbnRmKCAiJTA0ZCIsICR0aGV5ZWFyIC0xICk7CgkJfSBlbHNlIHsKCQkJJHRt > cHllYXIgPSAkdGhleWVhciA7CgkJfQoJCSR0bXB5eXl5bW0gPSAkdG1weWVhciAuICAkdG1wbW9u > dGggOwoJfQoJbmV4dCBpZiggJHJob3VyIDwgJGNob3VyICkgOwp9CiR5eXl5bW1kZGhoID0gJHRt > cHl5eXltbSAuIHNwcmludGYoICIlMDJkIiwgJHJkYXkgKSAuIHNwcmludGYoICIlMDJkIiwgJHJo > b3VyICk7CiMgU2VwZXJhdGUgYnVsbGV0aW5zIGludG8gcmVwb3J0cyAKaWYoIC89XG4vICkgewoJ > cyM9XHMrXG4jPVxuI2cgOwp9IGVsc2UgewoJcyNcbiMgI2cgOwp9CkByZXBvcnRzID0gc3BsaXQo > IC89XG4vICkgOwoKZm9yICggQHJlcG9ydHMgKSB7ICMgUHJvY2VzcyBlYWNoIHJlcG9ydCBpbiB0 > aGUgYnVsbGV0aW4KCW5leHQgaWYoIC9eXG58TklMfE1JUy8gKSA7CglzI1xuIyAjZyA7CglzI1xz > KyMgI2cgOwoJcyMtXHMqIyNnIDsKCSMgc2F2ZSBvcmlnaW5hbCByZXBvcnQgCgkkcmVwb3J0ID0g > IkFBWFggIiAuICRfIDsKCSRfIC49ICAiICIgOwoKCSMgZGVjb2RlIFNlY3Rpb24gMCAKCXMjXihc > ZHs1fSkgIyMgOwoJJHdtb0lkID0gJDEgOwoJbmV4dCB1bmxlc3MoIGRlZmluZWQoICR3bW9JZCAp > ICkgOwoJIyBleHRyYWN0IExhdCwgTG9uLCBlbGV2LCBzdG5OYW1lCglpZiggZGVmaW5lZCggJFNU > QVRJT05TeyAiJHdtb0lkIiB9ICkgKSB7CgkJKCAkTGF0LCAkTG9uLCAkZWxldiwgJHN0bk5hbWUg > KSA9CgkJCXNwbGl0KCAiICIsICRTVEFUSU9OU3sgIiR3bW9JZCIgfSApIDsKCQlpZiggZGVmaW5l > ZCggJHN0bk5hbWUgKSApIHsKCQkJJHN0bk5hbWUgPSBwYWRzdHIoICRzdG5OYW1lLCAkc3RuTmFt > ZV9sZW4gKSA7IAoJCX0gZWxzZSB7CgkJCXVuZGVmKCAkc3RuTmFtZSApIDsKCQl9Cgl9CgkjIGRl > Y29kZSBTZWN0aW9uIDEgCgluZXh0IHVubGVzcyggcyNeKFxkKShcZCkoXGR8LykoXGRcZHwuLikg > IyMgKSA7CgkkUFJFQ0lQX2FtdCA9IDAgaWYoICQxID09IDMgKSA7ICMgcHJlY2lwaXRhdGlvbiBp > bmRpY2F0b3IKCSRzdG5UeXBlID0gJDIgOwoJJGNsb3VkSGVpZ2h0ID0gJEhHSFRbICQzIF0gaWYo > ICQzIG5lICIvIiApIDsKCSR0bXAgPSAkNCA7CglpZiggJHRtcCA9fiBtI1xkXGQjICkgewoJCWlm > KCAkdG1wIDwgNTEgKSB7CgkJCSRWSVMgPSAkdG1wICogMC4xIDsKCQl9IGVsc2lmKCAkdG1wIDwg > ODEgKSB7CgkJCSRWSVMgPSAkdG1wIC01MCA7CgkJfSBlbHNpZiggJHRtcCA8IDkwICkgewoJCQkk > VklTID0gKCggJHRtcCAtODAgKSAqIDUgKSArIDMwIDsKCQl9IGVsc2lmKCAkdG1wID09IDkwICkg > ewoJCQkkVklTID0gMC4wMjUgOwoJCX0gZWxzaWYoICR0bXAgPT0gOTEgKSB7CgkJCSRWSVMgPSAw > LjA1IDsKCQl9IGVsc2lmKCAkdG1wID09IDkyICkgewoJCQkkVklTID0gMC4zIDsKCQl9IGVsc2lm > KCAkdG1wID09IDkzICkgewoJCQkkVklTID0gMC41IDsKCQl9IGVsc2lmKCAkdG1wID09IDk0ICkg > ewoJCQkkVklTID0gMSA7CgkJfSBlbHNpZiggJHRtcCA9PSA5NSApIHsKCQkJJFZJUyA9IDIgOwoJ > CX0gZWxzaWYoICR0bXAgPT0gOTYgKSB7CgkJCSRWSVMgPSA0IDsKCQl9IGVsc2lmKCAkdG1wID09 > IDk3ICkgewoJCQkkVklTID0gMTAgOwoJCX0gZWxzaWYoICR0bXAgPT0gOTggKSB7CgkJCSRWSVMg > PSAyMCA7CgkJfSBlbHNpZiggJHRtcCA9PSA5OSApIHsKCQkJJFZJUyA9IDUwIDsKCQl9Cgl9Cglu > ZXh0IHVubGVzcyggcyNeKFxkfC8pKFxkXGR8Ly8pKFxkXGR8Ly8pICMjICkgOwoJJGNsb3VkQ292 > ZXIgPSAkMSBpZiggJDEgIG5lICIvIiApIDsKCWlmKCAkMiBuZSAiLy8iICkgewoJCSRESVIgPSAk > MiAqIDEwIDsKCQkkU1BEID0gJDMgOwoJCWlmKCAkU1BEID09IDk5ICkgewoJCQlzIzAwKFxkezN9 > KSAjIyA7CgkJCSRTUEQgPSAkMSA7CgkJfQoJCSRTUEQgKj0gMC41MTQ0IGlmKCAkV2luZGljYXRv > ciA+IDIgKSA7Cgl9IAoJcyMwMC8vLyAjIyA7ICMgZWF0IFNQRCBwbGFjZSBob2xkZXIgaWYgbmVj > ZXNzYXJ5Cgl3aGlsZSggMSApIHsKCQlpZiggcyNeMSgoXGQpKFxkezN9KXwvLy8vKSAjIyApIHsK > CQkJaWYoICQxIG5lICIvLy8vIiApIHsKCQkJCSRUID0gJDMgKiAwLjEwIDsKCQkJCSRUICo9IC0x > LjAgaWYoICQyID09IDEgKSA7CgkJCX0KCQl9IAoJCWlmKCBzI14yOShcZHszfXwvLy8pICMjICkg > ewoJCQkkaHVtaWRpdHkgPSAkMSBpZiggJDEgbmUgIi8vLyIgKSA7CgkJfSAKCQlpZiggcyNeMigo > MHwxfDkpKFxkezIsM30pKC8pP3wvLy8vKSAjIyApIHsKCQkJaWYoICQxIG5lICIvLy8vIiApIHsK > CQkJCWlmKCAkNCBuZSAiLyIgKSB7CgkJCQkJJFREID0gJDMgKiAwLjEwIDsKCQkJCX0gZWxzZSB7 > CgkJCQkJJFREID0gJDMgOwoJCQkJfQoJCQkJJFREICo9IC0xLjAgaWYoICQyID09IDEgKSA7CgkJ > CX0KCQl9CgkJbGFzdCBpZiggbSNeMzMzfF40NDR8XjU1NSMgKSA7IAoJCWlmKCBzI14zKFxkezR9 > fC8vLy8pICMjICkgewoJCQlpZiggJDEgbmUgIi8vLy8iICkgewoJCQkJJFBSRVMgPSAkMSAqIDAu > MTAgOwoJCQkJJFBSRVMgKz0gMTAwMCBpZiggJFBSRVMgPCAxMDAgKSA7CgkJCX0KCQl9CgkJbGFz > dCBpZiggbSNeNDQ0fF41NTUjICkgOyAKCQlpZiggcyNeNChcZHs0fXwvLy8vKSAjIyApIHsKCQkJ > aWYoICQxIG5lICIvLy8vIiApIHsKCQkJCSRTTFAgPSAkMSAqIDAuMTAgOwoJCQkJJFNMUCArPSAx > MDAwIGlmKCAkU0xQIDwgMTAwICkgOwoJCQl9CgkJfQoJCWxhc3QgaWYoIG0jXjU1NSMgKSA7IAoJ > CWlmKCBzI141KFxkfC8pKFxkezN9fC8vLykgIyMgKSB7CgkJCSRjaGFyX1B0ZW5kID0gJDEgaWYo > ICQxIG5lICIvIiApIDsKCQkJJFB0ZW5kID0gJDIgKiAwLjEwIGlmKCAkMiBuZSAiLy8vIiApIDsK > CQl9CgkJaWYoIHMjXjYoKFxkezN9KShcZCl8Ly8vLykgIyMgKSB7CgkJCWlmKCAkMSBuZSAiLy8v > LyIgKSB7CgkJCQlpZiggJDIgPCA5OTAgKSB7CgkJCQkJJFBSRUNJUF9hbXQgPSAkMiA7CgkJCQl9 > IGVsc2UgewoJCQkJCSRQUkVDSVBfYW10ID0gKCAkMiAtOTkwICkgKiAwLjEgOwoJCQkJfQoJCQkJ > JFBSRUNJUF9wZXJpb2QgPSAkdFJbICQzIF0gOwoJCQl9CgkJfQoJCWlmKCBzI143KFxkXGR8Ly8p > KFxkXGR8Ly8pICMjICkgewoJCQkkV1hwcmVzZW50ID0gJDEgaWYoICQxIG5lICIvLyIgKSA7CgkJ > CSRXWHBhc3QgPSAkMiBpZiggJDIgbmUgIi8vIiApIDsKCQl9CgkJaWYoIHMjXjgoXGR8LykoXGR8 > LykoXGR8LykoXGR8LykgIyMgKSB7CgkJCSRjbG91ZENvdmVyID0gJDEgaWYoICQxIG5lICIvIiAp > IDsKCQkJJGNsb3VkTG93ID0gJDIgaWYoICQyIG5lICIvIiApIDsKCQkJJGNsb3VkTWlkZGxlID0g > JDMgaWYoICQzIG5lICIvIiApIDsKCQkJJGNsb3VkSGlnaCA9ICQ0IGlmKCAkNCBuZSAiLyIgKSA7 > CgkJfQoJCWlmKCBzI145KChcZFxkKShcZFxkKXwvLy8vKSAjIyApIHsKCQkJaWYoICQxIG5lICIv > Ly8vIiApIHsKCQkJCSRyaG91ciA9ICQyIDsKCQkJCSRybWluID0gJDMgOwoJCQkJJHRpbWVfb2Jz > ID0gdGhlVGltZSggIm9icyIgKSA7CgkJCQkkdGltZV9ub21pbmFsID0gdGhlVGltZSggIm5vbWlu > YWwiICkgOwoJCQl9CgkJfQoJCWxhc3QgOwoJfSAjIGVuZCBTZWN0aW9uIDEKCgkjIGRlY29kZSBT > ZWN0aW9uIDIgCgl3aGlsZSggISBtI14zMzN8XjQ0NHxeNTU1IyApIHsKCQlpZiggcyNeMjIyKC4p > KC4pICMjICkgewoJCQlpZiggJDEgbmUgIi8iICYmICQxICE9IDkgKSB7CgkJCQkkc2hpcFRydWVE > SVIgPSAkMSAqIDQ1IDsKCQkJCWlmKCAkMiAhPSAwICkgewoJCQkJCSRzaGlwQXZnU1BEID0gKCgg > JDIgLTEgKSAqIDUgKSArMyA7CgkJCQl9IGVsc2UgewoJCQkJCSRzaGlwQXZnU1BEID0gMCA7CgkJ > CQl9CgkJCX0KCQl9IGVsc2UgeyAjIHNlY3Rpb24gMiBoZWFkZXIgbWlzc2luZwoJCQlsYXN0IDsK > CQl9CgkJaWYoIHMjXjAoXGR8LykoXGR7M318Ly8vKSAjIyApIHsKCQkJJFR3ID0gJDIgKiAwLjEw > IGlmKCAkMiBuZSAiLy8vIiApIDsgIyBXYXRlciB0ZW1wCgkJCSRUdyAqPSAtMS4wIGlmKCAkMSBu > ZSAiLyIgJiYgKCAkMSAlIDIgKSA9PSAxICkgOwoJCX0KCQlpZiggcyNeMShcZFxkfC8vKShcZFxk > fC8vKSAjIyApIHsKCQkJIyBQZXJpb2Qgb2Ygd2F2ZXMgaW4gc2VjcyBieSBpbnN0cnVtZW50CgkJ > CSRQd2EgPSAkMSBpZiggJDEgbmUgIi8vIiApIDsgCgkJCSMgSGVpZ2h0IG9mIHdhdmVzIGluIC41 > IG1ldGVycyB1bml0cyBieSBpbnN0cnVtZW50CgkJCSRId2EgPSAkMiAvIDIuMCBpZiggJDIgbmUg > Ii8vIiApIDsgCgkJfQoJCWlmKCBzI14yKFxkXGR8Ly8pKFxkXGR8Ly8pICMjICkgewoJCQkjIFBl > cmlvZCBvZiB3YXZlcyBpbiBzZWNzCgkJCSRQd2EgPSAkMSBpZiggJDIgbmUgIi8vIiApIDsgCgkJ > CSMgSGVpZ2h0IG9mIHdhdmVzIGluIC41IG1ldGVycyB1bml0cwoJCQkkSHdhID0gJDIgLyAyLjAg > aWYoICQyIG5lICIvLyIgKSA7IAoJCX0KCQlsYXN0IGlmKCBtI14zMzN8XjQ0NHxeNTU1IyApIDsK > CQlpZiggcyNeMyhcZFxkKShcZFxkfC8vKSAjIyApIHsKCQkJJHN3ZWxsRElSMSA9ICQxICogMTAg > aWYoICQxICE9IDk5ICkgOwoJCQkkc3dlbGxESVIyID0gJDIgKiAxMCBpZiggJDIgbmUgIi8vIiAm > JiAkMiAhPSA5OSApIDsKCQkJaWYoIHMjXjQoXGRcZHwvLykoXGRcZHwvLykgIyMgKSB7CgkJCQkj > IFBlcmlvZCBvZiBzd2VsbCBpbiBzZWNzCgkJCQkkUHMxID0gJDEgaWYoICQxICBuZSAiLy8iICkg > OyAKCQkJCSMgSGVpZ2h0IG9mIHN3ZWxsIGluIC41IG1ldGVycyB1bml0cwoJCQkJJEhzMSA9ICQy > IC8gMi4wIGlmKCAkMiAgbmUgIi8vIiApIDsgCgkJCX0KCQkJaWYoIGRlZmluZWQoICRzd2VsbERJ > UjIgKSAmJiBzI141KFxkXGQpKFxkXGQpICMjICkgewoJCQkJIyBQZXJpb2Qgb2Ygc3dlbGwgaW4g > c2VjcwoJCQkJJFBzMiA9ICQxIDsgCgkJCQkjIEhlaWdodCBvZiBzd2VsbCBpbiAuNSBtZXRlcnMg > dW5pdHMKCQkJCSRIczIgPSAkMiAvIDIuMCA7IAoJCQl9CgkJfQoJCXMjXjUvLy8vICMjIDsKCQlp > ZiggcyNeNihcZHwvKShcZFxkfC8vKShcZHwvKSAjIyApIHsKCQkJIyBUeXBlLCBUaGlja25lc3Ms > IGFuZCBSYXRlIG9mIElDRQoJCQkkaWNlVHlwZSA9ICQxIGlmKCAkMSBuZSAiLyIgKSA7IAoJCQkk > aWNlVGhpY2sgPSAkMiBpZiggJDIgbmUgIi8vIiApIDsgCgkJCSRpY2VSYXRlID0gJDMgaWYoICQz > IG5lICIvIiApIDsgCgkJfQoJCWlmKCBzI143MChcZHszfXwvLy8pICMjICkgewoJCQkkSHdhX3Rl > bnRocyA9ICQxICogMC4xMCBpZiggJDEgbmUgIi8vLyIgKSA7CgkJfQoJCWlmKCBzI144KFxkfC8p > KFxkezN9fC8vLykgIyMgKSB7CgkJCSRUYiA9ICQyICogMC4xMCBpZiggJDIgbmUgIi8vLyIgKSA7 > CgkJCSRUYiAqPSAtMSBpZiggJDEgbmUgIi8iICYmICQxICE9IDAgJiYgJDEgIT0gNSApIDsKCQl9 > CgkJJElDRSA9IDEgaWYoIHMjSUNFICMjICkgOwoJCWxhc3QgaWYoIG0jXjMzM3xeNDQ0fF41NTUj > ICkgOwoJCWlmKCBzI14oXGR8LykoXGR8LykoXGR8LykoXGR8LykoXGR8LykgIyMgKSB7CgkJCSRp > Y2VDb25jZW4gPSAkMSBpZiggJDEgbmUgIi8iICkgOwoJCQkkaWNlU3RhZ2UgPSAkMiBpZiggJDIg > bmUgIi8iICkgOwoJCQkkaWNlTGFuZCA9ICQzIGlmKCAkMyBuZSAiLyIgKSA7CgkJCSRpY2VFZGdl > ID0gJDQgaWYoICQ0IG5lICIvIiApIDsKCQkJJGljZVNpdHVhdGlvbiA9ICQ1IGlmKCAkNSBuZSAi > LyIgKSA7CgkJfQoJCWxhc3Q7Cgl9ICMgZW5kIFNlY3Rpb24gMgoKCSMgZGVjb2RlIFNlY3Rpb24g > MyAKCXdoaWxlKCAhIG0jXjQ0NHxeNTU1IyApIHsKCQlsYXN0IHVubGVzcyggcyNeMzMzICMjICkg > OwoJCXMjXjAuLi4uICMjIDsKCQlpZiggcyNeMSgoMHwxfDkpKFxkezN9KXwvLy8vKSAjIyApIHsK > CQkJaWYoICQxIG5lICIvLy8vIiApIHsKCQkJCSRUbWF4ID0gJDMgKiAwLjEwIDsKCQkJCSRUbWF4 > ICo9IC0xLjAgaWYoICQyID09IDEgKSA7CgkJCX0KCQl9CgkJaWYoIHMjXjIoKDB8MXw5KShcZHsz > fSl8Ly8vLykgIyMgKSB7CgkJCWlmKCAkMSBuZSAiLy8vLyIgKSB7CgkJCQkkVG1pbiA9ICQzICog > MC4xMCA7CgkJCQkkVG1pbiAqPSAtMS4wIGlmKCAkMiA9PSAxICkgOwoJCQl9CgkJfQoJCXMjXjMo > XGQpKFxkezN9fC8vLykgIyMgOwoJCWxhc3QgaWYoIG0jXjQ0NHxeNTU1IyApIDsKCQlpZiggcyNe > NChcZCkoXGR7M318Ly8vKSAjIyApIHsKCQkJJGdyb3VuZFN0YXRlID0gJDEgOwoJCQkkc25vd0Rl > cHRoID0gJDIgOwoJCX0KCQlsYXN0IGlmKCBtI141NTUjICkgOwoJCSRjb3VudCA9IDAgOwoJCXdo > aWxlKCAhIG0jXjZ8Xjd8Xjh8XjkjICkgewoJCQlzI14uezV9ICMjIDsKCQkJbGFzdCBpZiggJGNv > dW50KysgPiAxMCB8fCAhICRfICkgOwoJCX0KCQlpZiggcyNeNigoXGR7M30pKFxkKXwvLy8vKSAj > IyApIHsKCQkJaWYoICQxIG5lICIvLy8vIiApIHsKCQkJCWlmKCAkMiA8IDk5MCApIHsKCQkJCQkk > UFJFQ0lQX2FtdCA9ICQyIDsKCQkJCX0gZWxzZSB7CgkJCQkJJFBSRUNJUF9hbXQgPSAoICQyIC05 > OTAgKSAqIDAuMSA7CgkJCQl9CgkJCQkkUFJFQ0lQX3BlcmlvZCA9ICR0UlsgJDMgXSA7CgkJCX0K > CQl9CgkJaWYoIHMjXjcoXGR7NH18Ly8vLykgIyMgKSB7CgkJCSRQUkVDSVBfYW10MjQgPSAkMSAq > IDAuMSAgaWYoICQxIG5lICIvLy8vIiAmJgoJCQkJJDEgIT0gOTk5OSApIDsKCQl9CgkJJGNvdW50 > ID0gMCA7CgkJd2hpbGUoICEgbSM4MDAwMCMgJiYgcyNeOChcZCkoXGQpKFxkXGQpICMjICkgewoJ > CQlpZiggJGNvdW50ID09IDAgKSB7CgkJCQlAY2xvdWRPYnN1cmVkID0gKCAkRiApIHggKCAkY2xv > dWRfbGV2ZWxzICkgOwoJCQkJQGNsb3VkR2VudXMgPSAoICRGICkgeCAoICRjbG91ZF9sZXZlbHMg > KSA7CgkJCQlAY2xvdWRIZWlnaHQgPSAoICRGICkgeCAoICRjbG91ZF9sZXZlbHMgKSA7CgkJCX0K > CQkJJGNsb3VkT2JzdXJlZFsgJGNvdW50IF0gPSAkMSA7IAoJCQkkY2xvdWRHZW51c1sgJGNvdW50 > IF0gPSAkMiA7IAoJCQkkY2xvdWRIZWlnaHRbICRjb3VudCBdID0gZ2V0SGVpZ2h0KCAkMyApIDsK > CQkJbGFzdCBpZiggJGNvdW50KysgPT0gMiB8fCAhICRfICkgOwoJCX0KCQkkbWVhbldpbmQgPSAk > MSAgaWYoIHMjXjkxMihcZFxkKSAjIyApIDsKCQkkSHdhX3RlbnRocyA9ICRXSEdIVFsgJDEgXSAg > aWYoIHMjXjkyNChcZCkoXGQpICMjICkgOwoJCWxhc3QgOwoJfSAjIGVuZCBTZWN0aW9uIDMKCgkj > IFNlY3Rpb24gNCBub3QgZGVjb2RlZAoJI3doaWxlKCAhIG0jXjU1NSMgKSB7CgkjCXMjXjQ0NCAj > IyA7CgkjCXMjKC4uLi4uKSAjIyA7CgkjCXByaW50ICJHcm91cCA0NDQgJDEgbm90IGRlY29kZWRc > biIgOwoJIwlsYXN0IDsKCSN9ICMgZW5kIFNlY3Rpb24gNAoKCSMgU2VjdGlvbiA1IG5vdCBkZWNv > ZGVkCgoJIyBvdXRwdXQgcmVjb3JkCglkb091dHB1dCgpIDsKCXVuZGVmKCAkcm1pbiApIDsKfSAj > IGVuZCBmb3JlYWNoIHJlcG9ydAp9ICMgZW5kIGFheHggcmVwb3J0CgojIG91dHB1dCBhIHJlcG9y > dApzdWIgZG9PdXRwdXQgewoKcHJpbnR2YXJzKCkgaWYoICR2ZXJib3NlICkgOwoKIyB3ZSBoYXZl > IGEgbGVnYWwgcmVwb3J0LCBvcGVuIG9yIHN3aXRjaCB0byBhIE5ldGNkZiBmaWxlCiRzdGF0dXMg > PSBkb05ldCggKSA7CgppZiggJHN0YXR1cyApIHsgIyBPSyB0byB3cml0ZSBkYXRhCgkjIHNldCB2 > YXJpYWJsZXMgaW50byBkYXRhcmVmCglzZXR2YXJzKCkgOwoJIyByZXBvcnQgYWxyZWFkeSBlbnRl > cmVkLCByZXdyaXRlIHRoZSByZWNvcmQgd2l0aCBuZXcgZGF0YQoJaWYoIGRlZmluZWQoICRycHRf > aGFzaHsgIiR3bW9JZCAkeXl5eW1tZGRoaCIgfSApICkgewoJCSggJHJlY29yZCwgJG50aW1lICkg > PQoJCQlzcGxpdCggIiAiLCAkcnB0X2hhc2h7ICIkd21vSWQgJHl5eXltbWRkaGgiIH0gKSA7Cgl9 > IGVsc2UgeyAjIG5ldyByZXBvcnQsIG5leHQgcmVjb3JkIG51bWJlcgoJCSRyZWNvcmQgPSAkcmVj > bnVtIDsKCQkkcnB0X2hhc2h7ICIkd21vSWQgJHl5eXltbWRkaGgiIH0gPSAkcmVjb3JkIDsKCQkk > cmVjbnVtKysgOwoJfQoJIyBlbnRlciByZXBvcnQgZGF0YSBpbnRvIE5ldENERiBmaWxlCgkkc3Rh > dHVzID0gTmV0Q0RGOjpyZWNwdXQoICRuY2lkLCAkcmVjb3JkLCBbIEBkYXRhcmVmIF0gKTsKCWlm > KCAkc3RhdHVzICkgewoJCXByaW50ICJOZXRDREY6OnJlY3B1dCBzdGF0dXMgPSAkc3RhdHVzXG4i > IDsKCQljaG9wICRyZXBvcnQgd2hpbGUoIGluZGV4KCAkcmVwb3J0LCAiXDAiICkgIT0gLTEgKSA7 > CgkJcHJpbnQgIiRuY2ZpbGVcbiRyZXBvcnRcbiIgOwoJfQp9CiMgdW5kZWZpbmUgdmFycwp1bmRl > ZmluZXZhcnMoKSA7Cn0gICMgZW5kIGRvT3V0cHV0CgojIHVuZGVmaW5lIGFsbCByZXBvcnQgdmFy > cwpzdWIgdW5kZWZpbmV2YXJzCnsKIyByZXBvcnQgdmFycwp1bmRlZiggJHJlcG9ydCApIDsKdW5k > ZWYoICR3bW9JZCApIDsKdW5kZWYoICRzdG5OYW1lICkgOwp1bmRlZiggJHRpbWVfb2JzICkgOwp1 > bmRlZiggJExhdCApIDsKdW5kZWYoICRMb24gKSA7CnVuZGVmKCAkZWxldiApIDsKdW5kZWYoICRz > dG5UeXBlICkgOwp1bmRlZiggJG1lYW5XaW5kICkgOwp1bmRlZiggJFZJUyApIDsKdW5kZWYoICRE > SVIgKSA7CnVuZGVmKCAkU1BEICkgOwp1bmRlZiggJFQgKSA7CnVuZGVmKCAkaHVtaWRpdHkgKSA7 > CnVuZGVmKCAkVEQgKSA7CnVuZGVmKCAkUFJFUyApIDsKdW5kZWYoICRTTFAgKSA7CnVuZGVmKCAk > Y2hhcl9QdGVuZCApIDsKdW5kZWYoICRQdGVuZCApIDsKdW5kZWYoICRQUkVDSVBfYW10ICkgOwp1 > bmRlZiggJFBSRUNJUF9wZXJpb2QgKSA7CnVuZGVmKCAkV1hwcmVzZW50ICkgOwp1bmRlZiggJFdY > cGFzdCApIDsKdW5kZWYoICRjbG91ZENvdmVyICkgOwp1bmRlZiggJGNsb3VkTG93ICkgOwp1bmRl > ZiggJGNsb3VkTWlkZGxlICkgOwp1bmRlZiggJGNsb3VkSGlnaCApIDsKdW5kZWYoICRzaGlwVHJ1 > ZURJUiApIDsKdW5kZWYoICRzaGlwQXZnU1BEICkgOwp1bmRlZiggJFR3ICkgOwp1bmRlZiggJFB3 > YSApIDsKdW5kZWYoICRId2EgKSA7CnVuZGVmKCAkSHdhX3RlbnRocyApIDsKdW5kZWYoICRzd2Vs > bERJUjEgKSA7CnVuZGVmKCAkUHMxICkgOwp1bmRlZiggJEhzMSApIDsKdW5kZWYoICRzd2VsbERJ > UjIgKSA7CnVuZGVmKCAkUHMyICkgOwp1bmRlZiggJEhzMiApIDsKdW5kZWYoICRpY2VUeXBlICkg > Owp1bmRlZiggJGljZVRoaWNrICkgOwp1bmRlZiggJGljZVJhdGUgKSA7CnVuZGVmKCAkVGIgKSA7 > CnVuZGVmKCAkSUNFICkgOwp1bmRlZiggJGljZUNvbmNlbiApIDsKdW5kZWYoICRpY2VTdGFnZSAp > IDsKdW5kZWYoICRpY2VMYW5kICkgOwp1bmRlZiggJGljZUVkZ2UgKSA7CnVuZGVmKCAkaWNlU2l0 > dWF0aW9uICkgOwp1bmRlZiggJFRtYXggKSA7CnVuZGVmKCAkVG1pbiApIDsKdW5kZWYoICRncm91 > bmRTdGF0ZSApIDsKdW5kZWYoICRzbm93RGVwdGggKSA7CnVuZGVmKCAkUFJFQ0lQX2FtdDI0ICkg > Owp1bmRlZiggQGNsb3VkT2JzdXJlZCApIDsKdW5kZWYoIEBjbG91ZEdlbnVzICkgOwp1bmRlZigg > QGNsb3VkSGVpZ2h0ICkgOwp9ICMgZW5kIG9mIHVuZGVmaW5ldkFSUwoKIyBzZXR2YXJzIGludG8g > cmVjb3JkCnN1YiBzZXR2YXJzIHsKCiRyZXBvcnQgPSBwYWRzdHIoICRyZXBvcnQsICRyX2xlbiAp > IDsKCnVuZGVmKCBAZGF0YXJlZiApIDsKCkBkYXRhcmVmID0gQHJlYyA7CgojIHJlcG9ydCB2YXJz > CiRkYXRhcmVmWyAkV1sgMCBdIF0gPSBcJHJlcF90eXBlIGlmKCAkV1sgMCBdICE9IC0xICkgOwok > ZGF0YXJlZlsgJFdbIDEgXSBdID0gXCR3bW9JZCBpZiggJFdbIDEgXSAmJiBkZWZpbmVkKCAkd21v > SWQgKSApIDsKJGRhdGFyZWZbICRXWyAyIF0gXSA9IFwkc3RuTmFtZSBpZiggJFdbIDIgXSAmJiBk > ZWZpbmVkKCAkc3RuTmFtZSApICkgOwokZGF0YXJlZlsgJFdbIDMgXSBdID0gXCR0aW1lX29icyBp > ZiggJFdbIDMgXSAmJiBkZWZpbmVkKCAkdGltZV9vYnMgKSApIDsKJGRhdGFyZWZbICRXWyA0IF0g > XSA9IFwkdGltZV9ub21pbmFsIGlmKCAkV1sgNCBdICYmIGRlZmluZWQoICR0aW1lX25vbWluYWwg > KSApIDsKJGRhdGFyZWZbICRXWyA1IF0gXSA9IFwkTGF0IGlmKCAkV1sgNSBdICYmIGRlZmluZWQo > ICRMYXQgKSApIDsKJGRhdGFyZWZbICRXWyA2IF0gXSA9IFwkTG9uIGlmKCAkV1sgNiBdICYmIGRl > ZmluZWQoICRMb24gKSApIDsKJGRhdGFyZWZbICRXWyA3IF0gXSA9IFwkZWxldiBpZiggJFdbIDcg > XSAmJiBkZWZpbmVkKCAkZWxldiApICkgOwokZGF0YXJlZlsgJFdbIDggXSBdID0gXCRzdG5UeXBl > IGlmKCAkV1sgOCBdICYmIGRlZmluZWQoICRzdG5UeXBlICkgKSA7CiRkYXRhcmVmWyAkV1sgOSBd > IF0gPSBcJG1lYW5XaW5kIGlmKCAkV1sgOSBdICYmIGRlZmluZWQoICRtZWFuV2luZCApICkgOwok > ZGF0YXJlZlsgJFdbIDEwIF0gXSA9IFwkVklTIGlmKCAkV1sgMTAgXSAmJiBkZWZpbmVkKCAkVklT > ICkpOwokZGF0YXJlZlsgJFdbIDExIF0gXSA9IFwkRElSIGlmKCAkV1sgMTEgXSAmJiBkZWZpbmVk > KCAkRElSICkgKSA7CiRkYXRhcmVmWyAkV1sgMTIgXSBdID0gXCRTUEQgaWYoICRXWyAxMiBdICYm > IGRlZmluZWQoICRTUEQgKSApIDsKJGRhdGFyZWZbICRXWyAxMyBdIF0gPSBcJFQgaWYoICRXWyAx > MyBdICYmIGRlZmluZWQoICRUICkgKSA7CiRkYXRhcmVmWyAkV1sgMTQgXSBdID0gXCRodW1pZGl0 > eSBpZiggJFdbIDE0IF0gJiYgZGVmaW5lZCggJGh1bWlkaXR5ICkgKSA7CiRkYXRhcmVmWyAkV1sg > MTUgXSBdID0gXCRURCBpZiggJFdbIDE1IF0gJiYgZGVmaW5lZCggJFREICkgKSA7CiRkYXRhcmVm > WyAkV1sgMTYgXSBdID0gXCRQUkVTIGlmKCAkV1sgMTYgXSAmJiBkZWZpbmVkKCAkUFJFUyApICkg > OwokZGF0YXJlZlsgJFdbIDE3IF0gXSA9IFwkU0xQIGlmKCAkV1sgMTcgXSAmJiBkZWZpbmVkKCAk > U0xQICkgKSA7CiRkYXRhcmVmWyAkV1sgMTggXSBdID0gXCRjaGFyX1B0ZW5kIGlmKCAkV1sgMTgg > XSAmJiBkZWZpbmVkKCAkY2hhcl9QdGVuZCApICkgOwokZGF0YXJlZlsgJFdbIDE5IF0gXSA9IFwk > UHRlbmQgaWYoICRXWyAxOSBdICYmIGRlZmluZWQoICRQdGVuZCApICkgOwokZGF0YXJlZlsgJFdb > IDIwIF0gXSA9IFwkUFJFQ0lQX2FtdCBpZiggJFdbIDIwIF0gJiYgZGVmaW5lZCggJFBSRUNJUF9h > bXQgKSApIDsKJGRhdGFyZWZbICRXWyAyMSBdIF0gPSBcJFBSRUNJUF9wZXJpb2QgaWYoICRXWyAy > MSBdICYmIAoJZGVmaW5lZCggJFBSRUNJUF9wZXJpb2QgKSApIDsKJGRhdGFyZWZbICRXWyAyMiBd > IF0gPSBcJFdYcHJlc2VudCBpZiggJFdbIDIyIF0gJiYgZGVmaW5lZCggJFdYcHJlc2VudCApICkg > OwokZGF0YXJlZlsgJFdbIDIzIF0gXSA9IFwkV1hwYXN0IGlmKCAkV1sgMjMgXSAmJiBkZWZpbmVk > KCAkV1hwYXN0ICkpOwokZGF0YXJlZlsgJFdbIDI0IF0gXSA9IFwkY2xvdWRDb3ZlciBpZiggJFdb > IDI0IF0gJiYgZGVmaW5lZCggJGNsb3VkQ292ZXIgKSApIDsKJGRhdGFyZWZbICRXWyAyNSBdIF0g > PSBcJGNsb3VkTG93IGlmKCAkV1sgMjUgXSAmJiBkZWZpbmVkKCAkY2xvdWRMb3cgKSApIDsKJGRh > dGFyZWZbICRXWyAyNiBdIF0gPSBcJGNsb3VkTWlkZGxlIGlmKCAkV1sgMjYgXSAmJiBkZWZpbmVk > KCAkY2xvdWRNaWRkbGUgKSApIDsKJGRhdGFyZWZbICRXWyAyNyBdIF0gPSBcJGNsb3VkSGlnaCBp > ZiggJFdbIDI3IF0gJiYgZGVmaW5lZCggJGNsb3VkSGlnaCApICkgOwokZGF0YXJlZlsgJFdbIDI4 > IF0gXSA9IFwkc2hpcFRydWVESVIgaWYoICRXWyAyOCBdICYmIGRlZmluZWQoICRzaGlwVHJ1ZURJ > UiApICkgOwokZGF0YXJlZlsgJFdbIDI5IF0gXSA9IFwkc2hpcEF2Z1NQRCBpZiggJFdbIDI5IF0g > JiYgZGVmaW5lZCggJHNoaXBBdmdTUEQgKSApIDsKJGRhdGFyZWZbICRXWyAzMCBdIF0gPSBcJFR3 > IGlmKCAkV1sgMzAgXSAmJiBkZWZpbmVkKCAkVHcgKSApIDsKJGRhdGFyZWZbICRXWyAzMSBdIF0g > PSBcJFB3YSBpZiggJFdbIDMxIF0gJiYgZGVmaW5lZCggJFB3YSApICkgOwokZGF0YXJlZlsgJFdb > IDMyIF0gXSA9IFwkSHdhIGlmKCAkV1sgMzIgXSAmJiBkZWZpbmVkKCAkSHdhICkgKSA7CiRkYXRh > cmVmWyAkV1sgMzMgXSBdID0gXCRId2FfdGVudGhzIGlmKCAkV1sgMzMgXSAmJiBkZWZpbmVkKCAk > SHdhX3RlbnRocyApICkgOwokZGF0YXJlZlsgJFdbIDM0IF0gXSA9IFwkc3dlbGxESVIxIGlmKCAk > V1sgMzQgXSAmJiBkZWZpbmVkKCAkc3dlbGxESVIxICkgKSA7CiRkYXRhcmVmWyAkV1sgMzUgXSBd > ID0gXCRQczEgaWYoICRXWyAzNSBdICYmIGRlZmluZWQoICRQczEgKSApIDsKJGRhdGFyZWZbICRX > WyAzNiBdIF0gPSBcJEhzMSBpZiggJFdbIDM2IF0gJiYgZGVmaW5lZCggJEhzMSApICkgOwokZGF0 > YXJlZlsgJFdbIDM3IF0gXSA9IFwkc3dlbGxESVIyIGlmKCAkV1sgMzcgXSAmJiBkZWZpbmVkKCAk > c3dlbGxESVIyICkgKSA7CiRkYXRhcmVmWyAkV1sgMzggXSBdID0gXCRQczIgaWYoICRXWyAzOCBd > ICYmIGRlZmluZWQoICRQczIgKSk7CiRkYXRhcmVmWyAkV1sgMzkgXSBdID0gXCRIczIgaWYoICRX > WyAzOSBdICYmIGRlZmluZWQoICRIczIgKSApIDsKJGRhdGFyZWZbICRXWyA0MCBdIF0gPSBcJGlj > ZVR5cGUgaWYoICRXWyA0MCBdICYmIGRlZmluZWQoICRpY2VUeXBlICkgKSA7CiRkYXRhcmVmWyAk > V1sgNDEgXSBdID0gXCRpY2VUaGljayBpZiggJFdbIDQxIF0gJiYgZGVmaW5lZCggJGljZVRoaWNr > ICkgKSA7CiRkYXRhcmVmWyAkV1sgNDIgXSBdID0gXCRpY2VSYXRlIGlmKCAkV1sgNDIgXSAmJiBk > ZWZpbmVkKCAkaWNlUmF0ZSApICkgOwokZGF0YXJlZlsgJFdbIDQzIF0gXSA9IFwkVGIgaWYoICRX > WyA0MyBdICYmIGRlZmluZWQoICRUYiApICkgOwokZGF0YXJlZlsgJFdbIDQ0IF0gXSA9IFwkSUNF > IGlmKCAkV1sgNDQgXSAmJiBkZWZpbmVkKCAkSUNFICkgKSA7CiRkYXRhcmVmWyAkV1sgNDUgXSBd > ID0gXCRpY2VDb25jZW4gaWYoICRXWyA0NSBdICYmIGRlZmluZWQoICRpY2VDb25jZW4gKSApIDsK > JGRhdGFyZWZbICRXWyA0NiBdIF0gPSBcJGljZVN0YWdlIGlmKCAkV1sgNDYgXSAmJiBkZWZpbmVk > KCAkaWNlU3RhZ2UgKSApIDsKJGRhdGFyZWZbICRXWyA0NyBdIF0gPSBcJGljZUxhbmQgaWYoICRX > WyA0NyBdICYmIGRlZmluZWQoICRpY2VMYW5kICkgKSA7CiRkYXRhcmVmWyAkV1sgNDggXSBdID0g > XCRpY2VFZGdlIGlmKCAkV1sgNDggXSAmJiBkZWZpbmVkKCAkaWNlRWRnZSApKTsKJGRhdGFyZWZb > ICRXWyA0OSBdIF0gPSBcJGljZVNpdHVhdGlvbiBpZiggJFdbIDQ5IF0gJiYgZGVmaW5lZCggJGlj > ZVNpdHVhdGlvbiApICk7CiRkYXRhcmVmWyAkV1sgNTAgXSBdID0gXCRUbWF4IGlmKCAkV1sgNTAg > XSAmJiBkZWZpbmVkKCAkVG1heCApICkgOwokZGF0YXJlZlsgJFdbIDUxIF0gXSA9IFwkVG1pbiBp > ZiggJFdbIDUxIF0gJiYgZGVmaW5lZCggJFRtaW4gKSApIDsKJGRhdGFyZWZbICRXWyA1MiBdIF0g > PSBcJGdyb3VuZFN0YXRlIGlmKCAkV1sgNTIgXSAmJiBkZWZpbmVkKCAkZ3JvdW5kU3RhdGUgKSAp > IDsKJGRhdGFyZWZbICRXWyA1MyBdIF0gPSBcJHNub3dEZXB0aCBpZiggJFdbIDUzIF0gJiYgZGVm > aW5lZCggJHNub3dEZXB0aCApICkgOwokZGF0YXJlZlsgJFdbIDU0IF0gXSA9IFwkUFJFQ0lQX2Ft > dDI0IGlmKCAkV1sgNTQgXSAmJiBkZWZpbmVkKCAkUFJFQ0lQX2FtdDI0ICkgKTsKJGRhdGFyZWZb > ICRXWyA1NSBdIF0gPSBcQGNsb3VkT2JzdXJlZCBpZiggJFdbIDU1IF0gJiYgZGVmaW5lZCggQGNs > b3VkT2JzdXJlZCApICk7CiRkYXRhcmVmWyAkV1sgNTYgXSBdID0gXEBjbG91ZEdlbnVzIGlmKCAk > V1sgNTYgXSAmJiBkZWZpbmVkKCBAY2xvdWRHZW51cyApICkgOwokZGF0YXJlZlsgJFdbIDU3IF0g > XSA9IFxAY2xvdWRIZWlnaHQgaWYoICRXWyA1NyBdICYmIGRlZmluZWQoIEBjbG91ZEhlaWdodCAp > ICkgOwokZGF0YXJlZlsgJFdbIDU4IF0gXSA9IFwkcmVwb3J0IGlmKCAkV1sgNTggXSAmJiBkZWZp > bmVkKCAkcmVwb3J0ICkgKSA7Cgp9ICMgZW5kIHNldHZhcnMKCiMgY3JlYXRlIGEgbmV0Y2RmIGZp > bGUgb3IgcmVvcGVuIGEgZXhpc3Rpbmcgb25lCnN1YiBkb05ldCB7CgpteSggJE5jZmlsZSwgJElk > LCAkTnVtLCAkVGltZSwgJGJhc2VUaW1lLCAkb2Zmc2V0LCAkcnB0LCAkc3RuICkgOwoKJG5jZmls > ZSA9ICRkYXRhZGlyIC4gIi8iIC4gJHl5eXltbWRkaGggLiAiX3N5bi5uYyIgOwojIHdyaXRpbmcg > dG8gc2FtZSBOY2ZpbGUKcmV0dXJuIDEgaWYoICRuY2ZpbGUgZXEgJGxhc3ROYyApIDsKCiMgY3Vy > cmVudCB0aW1lCiR0aGV0aW1lID0gdGltZSgpIDsKIyBzYXZlIGN1cnJlbnQgTmNmaWxlIGluZm8K > JE5ldHN7ICRsYXN0TmMgfSA9ICIkbmNpZCAkcmVjbnVtICR0aGV0aW1lIiBpZiggJGxhc3ROYyAp > IDsKCiMgRmlsZSBpcyBvcGVuLCBnZXQgbmNmaWxlIGlkIGFuZCByZWNudW0gYW5kIHJlc2V0IHRo > ZSB0aW1lIAppZiggZGVmaW5lZCggJE5ldHN7ICRuY2ZpbGUgfSApICkgeyAjIGFscmVhZHkgb3Bl > biBmb3Igd3JpdGVzCgkoICRuY2lkLCAkcmVjbnVtLCAkbmNUaW1lICkgPSBzcGxpdCggIiAiLCAk > TmV0c3sgJG5jZmlsZSB9ICkgOwoJJG5jVGltZSA9ICR0aGV0aW1lIDsKCSRsYXN0TmMgPSAgJG5j > ZmlsZSA7CglyZXR1cm4gMSA7Cn0KIyBjbG9zZSBOY2ZpbGVzIHdpdGggbm8gYWN0aXZpdHkgZm9y > IDIwIG1pbnV0ZXMKZm9yZWFjaCAkTmNmaWxlICgga2V5cyAlTmV0cyApIHsKCSggJElkLCAkTnVt > LCAkVGltZSApID0gc3BsaXQoICIgIiwgJE5ldHN7ICROY2ZpbGUgfSApIDsKCWlmKCAkdGhldGlt > ZSAtICRUaW1lID4gMTIwMCApIHsKCQlwcmludCAiQ2xvc2luZyAkTmNmaWxlIHdpdGggbmNpZCAk > SWQsIE5vIHdyaXRlIGZvciA+IDIwIE1pbnV0ZXNcbiIgOwoJCSRzdGF0dXMgPSBOZXRDREY6OmNs > b3NlKCAkSWQgKSA7CgkJZGVsZXRlKCAkTmV0c3sgJE5jZmlsZSB9ICkgOwoJfSBlbHNpZiggJE5j > ZmlsZSBlcSAkbGFzdE5jICkgewoJCXByaW50ICJTeW5jaW5nICRsYXN0TmMgd2l0aCBuY2lkICRu > Y2lkXG4iIDsKCQkkc3RhdHVzID0gTmV0Q0RGOjpzeW5jKCAkSWQgKSA7Cgl9Cn0KIyByZW1vdmUg > cnB0IGVudHJpZXMgb2xkZXIgdGhhbiAyNCBob3VycwokYmFzZVRpbWUgPSAkeXl5eW1tIC4gJGNk > YXkgLiAkY2hvdXIgOwpmb3JlYWNoICRycHQgKCBrZXlzICVycHRfaGFzaCApIHsKCSggJHN0biwg > JFRpbWUgKSA9IHNwbGl0KCAiICIsICRycHQgKSA7Cgkkb2Zmc2V0ID0gJGJhc2VUaW1lIC0gJFRp > bWUgOwoJbmV4dCBpZiggJG9mZnNldCA8IDEwMCApIDsgICMgc2FtZSBkYXkgb2sgJiBwcmV2aW91 > cyBkYXkgb2sgPiAkY2hvdXIKCWRlbGV0ZSggJHJwdF9oYXNoeyAkcnB0IH0gKSA7Cn0KIyBvcGVu > IG9yIGNyZWF0ZSBuY2ZpbGVzCmlmKCAtZSAkbmNmaWxlICkgewoJJG5jaWQgPSBOZXRDREY6Om9w > ZW4oICIkbmNmaWxlIiwgV1JJVEUgKSA7CglyZXR1cm4gMCBpZiggJG5jaWQgPT0gLTEgKSA7Cgkk > cmVjTnVtX2lkID0gTmV0Q0RGOjpkaW1pZCggJG5jaWQsICJyZWNOdW0iICkgOwoJJG5hbWVfaWQg > PSAgInh4eHh4eHh4IiAgOwoJJHJlY251bSA9ICAtMSAgOwoJIyBnZXQgY3VycmVudCB2YWx1ZSBv > ZiByZWNudW0KCU5ldENERjo6ZGltaW5xKCAkbmNpZCwgJHJlY051bV9pZCwgJG5hbWVfaWQsICRy > ZWNudW0gKSA7Cn0gZWxzZSB7CglzeXN0ZW0oICIkbmNnZW4gLW8gJG5jZmlsZSAkY2RsZmlsZSIg > KSA7CgkkbmNpZCA9IE5ldENERjo6b3BlbiggIiRuY2ZpbGUiLCBXUklURSApIDsKCXJldHVybiAw > IGlmKCAkbmNpZCA9PSAtMSApIDsKCSMgTmV0Q0RGIHJlY29yZCBjb3VudGVyCgkkcmVjbnVtID0g > MCA7Cn0KJE5ldHN7ICRuY2ZpbGUgfSA9ICIkbmNpZCAkcmVjbnVtICR0aGV0aW1lIiA7CiRsYXN0 > TmMgPSAkbmNmaWxlIDsKcHJpbnQgIk9wZW5pbmcgJG5jZmlsZSB3aXRoIG5jaWQgJG5jaWRcbiIg > OwoKcmV0dXJuIDEgOwp9ICMgZW5kIGRvTmV0CgoKIyBwcmludCB2YXJzCnN1YiBwcmludHZhcnMK > ewoKIyBvcmlnaW5hbCByZXBvcnQgCnByaW50ICJyZXBvcnQgPSAkcmVwb3J0IFxuIiBpZiggZGVm > aW5lZCggJHJlcG9ydCApICkgOwpwcmludCAiXG4iIDsKCiMgcmVwb3J0IHZhcnMKcHJpbnQgInJl > cF90eXBlID0gJHJlcF90eXBlIFxuIiBpZiggZGVmaW5lZCggJHJlcF90eXBlICkgKSA7CnByaW50 > ICJ3bW9JZCA9ICR3bW9JZCBcbiIgaWYoIGRlZmluZWQoICR3bW9JZCApICkgOwpwcmludCAic3Ru > TmFtZSA9ICRzdG5OYW1lIFxuIiBpZiggZGVmaW5lZCggJHN0bk5hbWUgKSApIDsKcHJpbnQgImRk > ID0gJGRkIFxuIiBpZiggZGVmaW5lZCggJGRkICkgKSA7CnByaW50ICJ0aGVtb250aCA9ICR0aGVt > b250aCBcbiIgaWYoIGRlZmluZWQoICR0aGVtb250aCApICkgOwpwcmludCAidGhleWVhciA9ICR0 > aGV5ZWFyIFxuIiBpZiggZGVmaW5lZCggJHRoZXllYXIgKSApIDsKcHJpbnQgInJob3VyID0gJHJo > b3VyIFxuIiBpZiggZGVmaW5lZCggJHJob3VyICkgKSA7CnByaW50ICJybWluID0gJHJtaW4gXG4i > IGlmKCBkZWZpbmVkKCAkcm1pbiApICkgOwpwcmludCAidGltZV9vYnMgPSAkdGltZV9vYnMgXG4i > IGlmKCBkZWZpbmVkKCAkdGltZV9vYnMgKSApIDsKcHJpbnQgInRpbWVfbm9taW5hbCA9ICR0aW1l > X25vbWluYWwgXG4iIGlmKCBkZWZpbmVkKCAkdGltZV9ub21pbmFsICkgKSA7CnByaW50ICJ5eXl5 > bW1kZGhoID0gJHl5eXltbWRkaGggXG4iIGlmKCBkZWZpbmVkKCAkeXl5eW1tZGRoaCApICkgOwpw > cmludCAiV2luZGljYXRvciA9ICRXaW5kaWNhdG9yIFxuIiBpZiggZGVmaW5lZCggJFdpbmRpY2F0 > b3IgKSApIDsKcHJpbnQgIkxhdCA9ICRMYXQgXG4iIGlmKCBkZWZpbmVkKCAkTGF0ICkgKSA7CnBy > aW50ICJMb24gPSAkTG9uIFxuIiBpZiggZGVmaW5lZCggJExvbiApICkgOwpwcmludCAiZWxldiA9 > ICRlbGV2IFxuIiBpZiggZGVmaW5lZCggJGVsZXYgKSApIDsKcHJpbnQgInN0blR5cGUgPSAkc3Ru > VHlwZSBcbiIgaWYoIGRlZmluZWQoICRzdG5UeXBlICkgKSA7CnByaW50ICJtZWFuV2luZCA9ICRt > ZWFuV2luZCBcbiIgaWYoIGRlZmluZWQoICRtZWFuV2luZCApICkgOwpwcmludCAiVklTID0gJFZJ > UyBcbiIgaWYoIGRlZmluZWQoICRWSVMgKSApIDsKcHJpbnQgIkRJUiA9ICRESVIgXG4iIGlmKCBk > ZWZpbmVkKCAkRElSICkgKSA7CnByaW50ICJTUEQgPSAkU1BEIFxuIiBpZiggZGVmaW5lZCggJFNQ > RCApICkgOwpwcmludCAiVCA9ICRUIFxuIiBpZiggZGVmaW5lZCggJFQgKSApIDsKcHJpbnQgImh1 > bWlkaXR5ID0gJGh1bWlkaXR5IFxuIiBpZiggZGVmaW5lZCggJGh1bWlkaXR5ICkgKSA7CnByaW50 > ICJURCA9ICRURCBcbiIgaWYoIGRlZmluZWQoICRURCApICkgOwpwcmludCAiUFJFUyA9ICRQUkVT > IFxuIiBpZiggZGVmaW5lZCggJFBSRVMgKSApIDsKcHJpbnQgIlNMUCA9ICRTTFAgXG4iIGlmKCBk > ZWZpbmVkKCAkU0xQICkgKSA7CnByaW50ICJjaGFyX1B0ZW5kID0gJGNoYXJfUHRlbmQgXG4iIGlm > KCBkZWZpbmVkKCAkY2hhcl9QdGVuZCApICkgOwpwcmludCAiUHRlbmQgPSAkUHRlbmQgXG4iIGlm > KCBkZWZpbmVkKCAkUHRlbmQgKSApIDsKcHJpbnQgIlBSRUNJUF9hbXQgPSAkUFJFQ0lQX2FtdCBc > biIgaWYoIGRlZmluZWQoICRQUkVDSVBfYW10ICkgKSA7CnByaW50ICJQUkVDSVBfcGVyaW9kID0g > JFBSRUNJUF9wZXJpb2QgXG4iIGlmKCBkZWZpbmVkKCAkUFJFQ0lQX3BlcmlvZCApICkgOwpwcmlu > dCAiV1hwcmVzZW50ID0gJFdYcHJlc2VudCBcbiIgaWYoIGRlZmluZWQoICRXWHByZXNlbnQgKSAp > IDsKcHJpbnQgIldYcGFzdCA9ICRXWHBhc3QgXG4iIGlmKCBkZWZpbmVkKCAkV1hwYXN0ICkgKSA7 > CnByaW50ICJjbG91ZENvdmVyID0gJGNsb3VkQ292ZXIgXG4iIGlmKCBkZWZpbmVkKCAkY2xvdWRD > b3ZlciApICkgOwpwcmludCAiY2xvdWRMb3cgPSAkY2xvdWRMb3cgXG4iIGlmKCBkZWZpbmVkKCAk > Y2xvdWRMb3cgKSApIDsKcHJpbnQgImNsb3VkTWlkZGxlID0gJGNsb3VkTWlkZGxlIFxuIiBpZigg > ZGVmaW5lZCggJGNsb3VkTWlkZGxlICkgKSA7CnByaW50ICJjbG91ZEhpZ2ggPSAkY2xvdWRIaWdo > IFxuIiBpZiggZGVmaW5lZCggJGNsb3VkSGlnaCApICkgOwpwcmludCAic2hpcFRydWVEaXIgPSAk > c2hpcFRydWVEaXIgXG4iIGlmKCBkZWZpbmVkKCAkc2hpcFRydWVEaXIgKSApIDsKcHJpbnQgInNo > aXBBdmdTUEQgPSAkc2hpcEF2Z1NQRCBcbiIgaWYoIGRlZmluZWQoICRzaGlwQXZnU1BEICkgKSA7 > CnByaW50ICJUdyA9ICRUdyBcbiIgaWYoIGRlZmluZWQoICRUdyApICkgOwpwcmludCAiUHdhID0g > JFB3YSBcbiIgaWYoIGRlZmluZWQoICRQd2EgKSApIDsKcHJpbnQgIkh3YSA9ICRId2EgXG4iIGlm > KCBkZWZpbmVkKCAkSHdhICkgKSA7CnByaW50ICJId2FfdGVudGhzID0gJEh3YV90ZW50aHMgXG4i > IGlmKCBkZWZpbmVkKCAkSHdhX3RlbnRocyApICkgOwpwcmludCAic3dlbGxEaXIxID0gJHN3ZWxs > RGlyMSBcbiIgaWYoIGRlZmluZWQoICRzd2VsbERpcjEgKSApIDsKcHJpbnQgIlBzMSA9ICRQczEg > XG4iIGlmKCBkZWZpbmVkKCAkUHMxICkgKSA7CnByaW50ICJIczEgPSAkSHMxIFxuIiBpZiggZGVm > aW5lZCggJEhzMSApICkgOwpwcmludCAic3dlbGxEaXIyID0gJHN3ZWxsRGlyMiBcbiIgaWYoIGRl > ZmluZWQoICRzd2VsbERpcjIgKSApIDsKcHJpbnQgIlBzMiA9ICRQczIgXG4iIGlmKCBkZWZpbmVk > KCAkUHMyICkgKSA7CnByaW50ICJIczIgPSAkSHMyIFxuIiBpZiggZGVmaW5lZCggJEhzMiApICkg > OwpwcmludCAiaWNlVHlwZSA9ICRpY2VUeXBlIFxuIiBpZiggZGVmaW5lZCggJGljZVR5cGUgKSAp > IDsKcHJpbnQgImljZVRoaWNrID0gJGljZVRoaWNrIFxuIiBpZiggZGVmaW5lZCggJGljZVRoaWNr > ICkgKSA7CnByaW50ICJpY2VSYXRlID0gJGljZVJhdGUgXG4iIGlmKCBkZWZpbmVkKCAkaWNlUmF0 > ZSApICkgOwpwcmludCAiVGIgPSAkVGIgXG4iIGlmKCBkZWZpbmVkKCAkVGIgKSApIDsKcHJpbnQg > IklDRSA9ICRJQ0UgXG4iIGlmKCBkZWZpbmVkKCAkSUNFICkgKSA7CnByaW50ICJpY2VDb25jZW4g > PSAkaWNlQ29uY2VuIFxuIiBpZiggZGVmaW5lZCggJGljZUNvbmNlbiApICkgOwpwcmludCAiaWNl > U3RhZ2UgPSAkaWNlU3RhZ2UgXG4iIGlmKCBkZWZpbmVkKCAkaWNlU3RhZ2UgKSApIDsKcHJpbnQg > ImljZUxhbmQgPSAkaWNlTGFuZCBcbiIgaWYoIGRlZmluZWQoICRpY2VMYW5kICkgKSA7CnByaW50 > ICJpY2VFZGdlID0gJGljZUVkZ2UgXG4iIGlmKCBkZWZpbmVkKCAkaWNlRWRnZSApICkgOwpwcmlu > dCAiaWNlU2l0dWF0aW9uID0gJGljZVNpdHVhdGlvbiBcbiIgaWYoIGRlZmluZWQoICRpY2VTaXR1 > YXRpb24gKSApIDsKcHJpbnQgIlRtYXggPSAkVG1heCBcbiIgaWYoIGRlZmluZWQoICRUbWF4ICkg > KSA7CnByaW50ICJUbWluID0gJFRtaW4gXG4iIGlmKCBkZWZpbmVkKCAkVG1pbiApICkgOwpwcmlu > dCAiZ3JvdW5kU3RhdGUgPSAkZ3JvdW5kU3RhdGUgXG4iIGlmKCBkZWZpbmVkKCAkZ3JvdW5kU3Rh > dGUgKSApIDsKcHJpbnQgInNub3dEZXB0aCA9ICRzbm93RGVwdGggXG4iIGlmKCBkZWZpbmVkKCAk > c25vd0RlcHRoICkgKSA7CnByaW50ICJQUkVDSVBfYW10MjQgPSAkUFJFQ0lQX2FtdDI0IFxuIiBp > ZiggZGVmaW5lZCggJFBSRUNJUF9hbXQyNCApICkgOwpwcmludCAiY2xvdWRPYnN1cmVkID0gQGNs > b3VkT2JzdXJlZCBcbiIgaWYoIGRlZmluZWQoIEBjbG91ZE9ic3VyZWQgKSApIDsKcHJpbnQgImNs > b3VkR2VudXMgPSBAY2xvdWRHZW51cyBcbiIgaWYoIGRlZmluZWQoIEBjbG91ZEdlbnVzICkgKSA7 > CnByaW50ICJjbG91ZEhlaWdodCA9IEBjbG91ZEhlaWdodCBcbiIgaWYoIGRlZmluZWQoIEBjbG91 > ZEhlaWdodCApICkgOwpwcmludCAicmVwb3J0ID0gJHJlcG9ydCBcbiIgaWYoIGRlZmluZWQoICRy > ZXBvcnQgKSApIDsKcHJpbnQgIlxuIiA7Cn0gIyBlbmQgcHJpbnR2YXJzCgojIGV4ZWN1dGUgYXQg > ZXhpdApzdWIgYXRleGl0CnsKbG9jYWwoICRzaWcgKSA9IEBfIDsKCmlmKCAkc2lnIGVxICJlb2Yi > ICkgewoJcHJpbnQgImVvZiBvbiBTVERJTiAtLXNodXR0aW5nIGRvd25cbiIgOwp9IGVsc2lmKCBk > ZWZpbmVkKCAkc2lnICkpIHsKCXByaW50ICJDYXVnaHQgU0lHJHNpZyAtLXNodXR0aW5nIGRvd25c > biIgOwp9CiMgb3BlbiBzeW4ubHN0LCBsaXN0IG9mIHJlcG9ydHMgcHJvY2Vzc2VkIGluIHRoZSBs > YXN0ID8gaG91cnMuCm9wZW4oIExTVCwgIj4kZGF0YWRpci9zeW4ubHN0IiApIHx8IAoJZGllICJj > b3VsZCBub3Qgb3BlbiAkZGF0YWRpci9zeW4ubHN0OiAkIVxuIiA7CnNlbGVjdCggTFNUICkgOwoj > IHJlbW92ZSBzdG4gZW50cmllcyBvbGRlciB0aGFuIDI0IGhvdXJzCiR5eXl5bW1kZGhoID0gJHl5 > eXltbSAuICRjZGF5IC4gJGNob3VyIDsKZm9yZWFjaCAkcnB0ICgga2V5cyAlcnB0X2hhc2ggKSB7 > CgkoICRzdG4sICRUaW1lICkgPSBzcGxpdCggIiAiLCAkcnB0ICkgOwoJJG9mZnNldCA9ICR5eXl5 > bW1kZGhoIC0gJFRpbWUgOwoJbmV4dCB1bmxlc3MoICRvZmZzZXQgPCAxMDAgKSA7ICAjIHNhbWUg > ZGF5IG9rICYgcHJldmlvdXMgZGF5IG9rID4gJGNob3VyCglwcmludCAiJHJwdCAkcnB0X2hhc2h7 > ICRycHQgfVxuIiA7Cn0KY2xvc2UgTFNUIDsKZm9yZWFjaCAkZmlsZSAoIGtleXMgJU5ldHMgKSB7 > CgkoICRuY2lkLCAkcmVjbnVtLCAkbmN0aW1lICkgPSBzcGxpdCggIiAiLCAkTmV0c3sgJGZpbGUg > fSApIDsKCXByaW50IFNURE9VVCAiQ2xvc2luZyAkZmlsZSB3aXRoIG5jaWQgJG5jaWRcbiIgOwoJ > JHN0YXR1cyA9IE5ldENERjo6Y2xvc2UoICRuY2lkICkgOwp9CmNsb3NlKCBTVERPVVQgKSA7CmNs > b3NlKCBTVERFUlIgKSA7CmV4aXQoIDAgKSA7Cgp9CgojIHBhZCBzdHIgdG8gY29ycmVjdCBsZW5n > dGgKc3ViIHBhZHN0cgp7CiggJHN0ciwgJGxlbiApID0gQF8gOwoKbG9jYWwoICRzaXplLCAkaSAp > IDsKCiRzaXplID0gbGVuZ3RoKCAkc3RyICkgOwoKZm9yKCAkaSA9ICRzaXplOyAkaSA8ICRsZW47 > ICRpKysgKSB7CiAgICAgICAgJHN0ciAuPSAiXDAiIDsKfQppZiggJHNpemUgPiAkbGVuICkgewoJ > cHJpbnQgU1RET1VUICJTdHJpbmcgbGVuZ3RoIGlzIG92ZXIgJGxlbiBjaGFycyBsb25nOlxuICRz > dHJcbiIgCgkJaWYoICR2ZXJib3NlICkgOwoJJHN0ciA9IHN1YnN0ciggJHN0ciwgMCwgJGxlbiAp > IDsKfQpyZXR1cm4gJHN0ciA7Cn0gIyBlbmQgcGFkc3RyCgpzdWIgdGhlVGltZQp7CgpteSggJHdo > ZW4sICRtaW4sICRob3VyLCAkbWRheSwgJG1vbiwgJHllYXIsICR3ZGF5LCAkeWRheSwgJGlzZHN0 > ICkgOwoKKCAkd2hlbiApID0gQF8gOwoKJGhvdXIgPSAkcmhvdXIgOwokbWRheSA9IHN1YnN0cigg > JHl5eXltbWRkaGgsIDYsIDIgKSA7CiRtb24gPSBzdWJzdHIoICR5eXl5bW1kZGhoLCA0LCAyICkg > OwokeWVhciA9IHN1YnN0ciggJHl5eXltbWRkaGgsIDIsIDIgKSA7CgppZiggJHdoZW4gZXEgIm9i > cyIgKSB7CgkkbWluID0gJHJtaW4gOwp9IGVsc2lmKCAkd2hlbiBlcSAibm9taW5hbCIgKSB7Cglp > ZiggJHJtaW4gPiAxNCAmJiAkcm1pbiA8IDQ1ICkgewoJCSRtaW4gPSAkcm1pbiA7Cgl9IGVsc2lm > KCAkcm1pbiA+IDQ0ICkgewoJCSRtaW4gPSA2MCA7Cgl9IGVsc2UgewoJCSRtaW4gPSAwIDsKCX0g > Cn0KJHRpbWUgPSB0aW1lZ20oMCwgJG1pbiwgJGhvdXIsICRtZGF5LCAkbW9uIC0xLCAkeWVhciwg > MCwgMCwgMCkgOwoKcmV0dXJuICR0aW1lIDsgCgp9ICMgdGhlVGltZQoKc3ViIGdldEhlaWdodCB7 > CgpteSggJEhlaWdodCwgJGNsb3VkSGVpZ2h0ICkgOwoKKCAkSGVpZ2h0ICkgPSBAXyA7CgppZigg > JEhlaWdodCA8IDUxICkgewoJJGNsb3VkSGVpZ2h0ID0gJEhlaWdodCAqIDMwIDsKfSBlbHNpZigg > JEhlaWdodCA8IDgxICkgewoJJGNsb3VkSGVpZ2h0ID0gKCAkSGVpZ2h0IC01MCApICogMzAwIDsK > fSBlbHNpZiggJEhlaWdodCA8IDkwICkgewoJJGNsb3VkSGVpZ2h0ID0gKCggJEhlaWdodCAtODAg > KSAqIDE1MDAgKSArIDkwMDAgOwp9IGVsc2lmKCAkSGVpZ2h0ID09IDkwICkgewoJJGNsb3VkSGVp > Z2h0ID0gMjUgOwp9IGVsc2lmKCAkSGVpZ2h0ID09IDkxICkgewoJJGNsb3VkSGVpZ2h0ID0gNzUg > Owp9IGVsc2lmKCAkSGVpZ2h0ID09IDkyICkgewoJJGNsb3VkSGVpZ2h0ID0gMTUwIDsKfSBlbHNp > ZiggJEhlaWdodCA9PSA5MyApIHsKCSRjbG91ZEhlaWdodCA9IDI1MCA7Cn0gZWxzaWYoICRIZWln > aHQgPT0gOTQgKSB7CgkkY2xvdWRIZWlnaHQgPSA0NTAgOwp9IGVsc2lmKCAkSGVpZ2h0ID09IDk1 > ICkgewoJJGNsb3VkSGVpZ2h0ID0gODAwIDsKfSBlbHNpZiggJEhlaWdodCA9PSA5NiApIHsKCSRj > bG91ZEhlaWdodCA9IDEyNTAgOwp9IGVsc2lmKCAkSGVpZ2h0ID09IDk3ICkgewoJJGNsb3VkSGVp > Z2h0ID0gMTc1MCA7Cn0gZWxzaWYoICRIZWlnaHQgPT0gOTggKSB7CgkkY2xvdWRIZWlnaHQgPSAy > MjUwIDsKfSBlbHNpZiggJEhlaWdodCA9PSA5OSApIHsKCSRjbG91ZEhlaWdodCA9IDI1MDAgOwp9 > CgpyZXR1cm4gJGNsb3VkSGVpZ2h0IDsKCn0gIyBlbmQgZ2V0SGVpZ2h0Cg== > > ------_=_NextPart_001_01C55D46.5A42735C > Content-Type: application/octet-stream; > name="syn2nc.patch" > Content-Transfer-Encoding: base64 > Content-Description: syn2nc.patch > Content-Disposition: attachment; > filename="syn2nc.patch" > > N2E4LDE1Cj4gCj4gIyBFbnN1cmUgdGhhdCBjaGFyYWN0ZXJzIG9uIFNURElOIGFyZSBOT1QgaW50 > ZXJwcmV0ZWQgYXMgVW5pY29kZS4KPiAjIFRoZW9yZXRpY2FsbHksIHRoaXMgaXMgdW5uZWNlc3Nh > cnksIHNpbmNlIHN5bm9wdGljIG1lc3NhZ2VzIHNob3VsZCBjb250YWluCj4gIyBubyBjaGFyYXRl > cnMgb3V0c2lkZSBvZiBBU0NJSSAoYWthIElTTyA4ODU5LTEgYWthIExhdGluLTEpIHJhbmdlIDAt > MTI3Lgo+ICMgSG93ZXZlciwgaXQgaXMgcG9zc2libGUgZm9yIHNpdGVzIGV4cGVyaWVuY2luZyB0 > ZWNobmljYWwgcHJvYmxlbXMgdG8gdHJhbnNtaXQKPiAjIGdhcmJhZ2UgY2hhcmFjdGVycyBvdXRz > aWRlIHRoaXMgcmFuZ2UuCj4gbm8gZW5jb2Rpbmc7Cj4gCg== > > ------_=_NextPart_001_01C55D46.5A42735C > Content-Type: application/octet-stream; > name="synoptic.20050420.1200.asc.FBSK_210" > Content-Transfer-Encoding: base64 > Content-Description: synoptic.20050420.1200.asc.FBSK_210 > Content-Disposition: attachment; > filename="synoptic.20050420.1200.asc.FBSK_210" > > MjA5DQ0KU01CQzAxIEZCU0sgMjAxMjAwDQ0KQUFYWCAyMDEyNAo2ODI0MCA0Mjk2MCAzMDIwMiAx > MDI1NiAyMDE0MSA0ODUyMiA1NzAyMiA4MzA4MD0KNjgzMjAgNDI5NjAgMTIzMDQgMTAyMTcgMjAw > OTggNDg1MTUgNTcwMTQgODEwODA9CjY4MDMyIDQxNjYwIDMyOTA3IDEwMzM2IDIwMDk3IDQ4NTE3 > II4oGzj2KkowMDUwMCAgODMxMDA9CjY4MDI2IDQyNjYwIDIxODAyIDEwMzQwIDIwMDc0IDQ4NTEy > IDU3MDI2IDgyMTAwPQo2ODA0MCA0MTY2OSAyMzQwNCAxMDMzMSAyMDEyMCA0ODUyMCA1NzAyNiA4 > MjEwMD0KNjgzMjggNDI2NjAgMTIxMDggMTAxODIgMjAwNjcgNDg1NDYgNTcwMTEgODExMDA9CjY4 > MjI2IDQyNjYwIDIyMDEzIDEwMjEwIDIwMDc5IDQ4NTM4IDU3MDE5IDgxMTgwPQo2ODE0OCA0MjY2 > MCAyMTYxMSAxMDMxMCAyMDEyMiA0ODUxNyA1NzAxOSA4MTE4MD0KNjgwMzAgNDE2NjAgNDA1MDUg > MTAzMzcgMjAxMTAgNDg1NDcgNTcwMzAgNzA1MDAgODQxMDA9CjY4MDM4IDQxOTYwIDEyNzA2IDEw > MzQwIDIwMTMxIDQ4NTQ2IDU3MDI1IDcwNTAwIDgxMDcwPQo2ODA1NCA0MjY2MCAzMjAwNSAxMDM0 > MSAyMDEyMSA0ODUyMiA1NzAyNCA4MzIwMD0KNjgwNzAgNDI1NjAgMDAwMDAgMTAzMjUgMjAxMjIg > NDg1MzYgNTcwMjg9CjY4MjM0IDQyNjYwIDMyNzA1IDEwMjUyIDIwMTM0IDQ4NDk2IDU3MDEzIDgy > MTgwPQo2ODMyNSA0MjY2MCA2MjcwMyAxMDIzNSAyMDEzOCA0ODU1MCA1NzAxNiA4NDE4MD0KNjgw > MjkgNDI2NjAgNC8vLy8gMTAzMjUgMjAxMjYgNDg1MTkgNTcwMjggODQyMDA9DQ0KDQ0KAwENDQo= > > ------_=_NextPart_001_01C55D46.5A42735C-- > > -- > NOTE: All email exchanges with Unidata User Support are recorded in the > Unidata inquiry tracking system and then made publicly available > through the web. If you do not want to have your interactions made > available in this way, you must let us know in each email you send to us. > > ------- End of Forwarded Message > =============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research address@hidden WWW: http://www.unidata.ucar.edu/ ===============================================================================