X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=0.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS,TBC X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Eric Lilja Subject: C++ program produces no output (g++ 4.3.2, cygwin 1.7) Date: Thu, 23 Apr 2009 22:42:47 +0200 Lines: 768 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050707000507090105070408" User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com --------------050707000507090105070408 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, attached is the source for a C++ program (with a Makefile) that produces no output when run (I tried redirecting stdout, that didn't work either). I'm running Cygwin 1.7 on a Vista32 machine, Cygwin was just updated. The code was written september 2007 and then it ran and displayed its output just fine. It's a simple AVL Tree with a small test program. I'm using g++ 4.3.2. Something seems to be up with cygcheck too, because I have attached the wierd looking output it gave me (and it took a while for it to complete as well). Maybe someone could try the program I attached and see if they get the same problems as me? I don't know how to use gdb, but I did try running my code under gdb, here's what I got: $ gdb testavl.exe GNU gdb 6.8.0.20080328-cvs (cygwin-special) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-cygwin"... (gdb) run Starting program: /cygdrive/c/coding/kurser/tddi01/avl_tree/testavl.exe [New thread 3568.0xe70] Program exited with code 030000000005. You can't do that without a process to debug. (gdb) main() is in the file avl_tree-test.cc (notice the large block of code that has been if 0:ed out in that file). Also notice the cout first in main() which should be displayed even if the program crashes as soon as it tries to instantiate AVL_Tree. Since this used to work and I haven't touched code I thought I might ask for advice here, since I'm using an upgraded compiler and the cygwin 1.7 test release. I tried the program under mintty and takecommand, same result. - EL --------------050707000507090105070408 Content-Type: text/plain; name="cygcheck.out" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="cygcheck.out" Cygwin Configuration Diagnostics Current System Time: Thu Apr 23 22:22:17 2009 Windows Vista Business Ver 6.0 Build 6001 Service Pack 1 Path: C:\cygwin\usr\local\bin C:\cygwin\bin C:\cygwin\bin C:\cygwin\usr\X11R6\bin C:\Program Files\PHP\ C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\emacs-23\bin C:\cygwin\bin C:\Program Files\Intel\WiFi\bin\ Output from C:\cygwin\bin\id.exe (nontsec) UID: 1000(mindcooler) GID: 513(None) 0(root) 544(Administratörer) 545(Användare) 513(None) Output from C:\cygwin\bin\id.exe (ntsec) UID: 1000(mindcooler) GID: 513(None) 0(root) 544(Administratörer) 545(Användare) 513(None) SysDir: C:\Windows\system32 WinDir: C:\Windows USER = 'mindcooler' PWD = '/cygdrive/c/coding/kurser/tddi01/avl_tree' HOME = '/home/mindcooler' HOMEPATH = '\Users\mindcooler' MANPATH = '/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man' APPDATA = 'C:\Users\mindcooler\AppData\Roaming' HOSTNAME = 'mindcool-laptop' DXSDK_DIR = 'C:\Program Files\Microsoft DirectX SDK (March 2009)\' TERM = 'xterm' PROCESSOR_IDENTIFIER = 'x86 Family 6 Model 15 Stepping 11, GenuineIntel' WINDIR = 'C:\Windows' PUBLIC = 'C:\Users\Public' OLDPWD = '/cygdrive/c' USERDOMAIN = 'mindcool-laptop' PHPRC = 'C:\Program Files\PHP\' OS = 'Windows_NT' ALLUSERSPROFILE = 'C:\ProgramData' !:: = '::\' VS90COMNTOOLS = 'C:\vs9\Common7\Tools\' TEMP = '/cygdrive/c/Users/MINDCO~1/AppData/Local/Temp' COMMONPROGRAMFILES = 'C:\Program Files\Common Files' USERNAME = 'mindcooler' PROCESSOR_LEVEL = '6' FP_NO_HOST_CHECK = 'NO' SYSTEMDRIVE = 'C:' USERPROFILE = 'C:\Users\mindcooler' PS1 = '\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ ' LOGONSERVER = '\\MINDCOOL-LAPTOP' PROCESSOR_ARCHITECTURE = 'x86' LOCALAPPDATA = 'C:\Users\mindcooler\AppData\Local' ProgramData = 'C:\ProgramData' SHLVL = '1' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' HOMEDRIVE = 'C:' COMSPEC = 'C:\Windows\system32\cmd.exe' TMP = '/cygdrive/c/Users/MINDCO~1/AppData/Local/Temp' SYSTEMROOT = 'C:\Windows' PRINTER = 'Microsoft XPS Document Writer' CVS_RSH = '/bin/ssh' PROCESSOR_REVISION = '0f0b' CLASSPATH = '.' INFOPATH = '/usr/local/info:/usr/share/info:/usr/info:' PROGRAMFILES = 'C:\Program Files' NUMBER_OF_PROCESSORS = '2' SESSIONNAME = 'Console' COMPUTERNAME = 'MINDCOOL-LAPTOP' _ = '/usr/bin/cygcheck.exe' HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 HKEY_CURRENT_USER\Software\Cygwin HKEY_CURRENT_USER\Software\Cygwin\Program Options HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.com%2fcygwin HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.com%2fcygwin\OpenWithList HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 (default) = '/cygdrive' cygdrive flags = 0x00000022 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ (default) = 'C:\cygwin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin (default) = 'C:\cygwin/bin' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib (default) = 'C:\cygwin/lib' flags = 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\Program Options obcaseinsensitive set to 1 c: hd NTFS 159999Mb 45% CP CS UN PA FC d: hd FAT32 9988Mb 33% CP UN FAT32PART e: cd N/A N/A f: cd N/A N/A z: net NTFS 549999Mb 70% CP CS UN PA FC C:/cygwin / system binmode C:\cygwin\bin /usr/bin system binmode C:\cygwin\lib /usr/lib system binmode . /cygdrive user binmode,cygdrive Found: C:\cygwin\bin\awk.exe Found: C:\cygwin\bin\awk.exe Found: C:\cygwin\bin\awk.exe -> C:\cygwin\bin\gawk.exe Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\bash.exe Found: C:\cygwin\bin\cat.exe Found: C:\cygwin\bin\cat.exe Found: C:\cygwin\bin\cat.exe Found: C:\cygwin\bin\cp.exe Found: C:\cygwin\bin\cp.exe Found: C:\cygwin\bin\cp.exe Found: C:\cygwin\bin\cpp.exe Found: C:\cygwin\bin\cpp.exe Found: C:\cygwin\bin\cpp.exe -> C:\cygwin\etc\alternatives\cpp -> C:\cygwin\bin\cpp-4.exe --------------050707000507090105070408 Content-Type: application/octet-stream; name="cpp-program.tar" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cpp-program.tar" QVZMX1RyZWUuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDAwMDAAMDAwMDc2NQAwMDAxMDAxADAwMDAwMDAzMDYw ADEwNjcyMzI3MjE1ADAxMTM3MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAEfkc3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATm9uZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAvKgogKiBBVkxfVHJlZS5oICAgIChjKSBUb21t eSBPbHNzb24sIElEQSwgMjAwNy0wNS0wMgogKgogKiBvcGVyYXRvcjw8IGb2 cnV0c+R0dHMgdmFyYSBkZWZpbmllcmFkIGb2ciBDb21wYXJhYmxlLgogKi8K I2lmbmRlZiBBVkxUUkVFX0lOQwojZGVmaW5lIEFWTFRSRUVfSU5DCiNpbmNs dWRlIDxpb3Nmd2Q+CiNpbmNsdWRlIDxzdGRleGNlcHQ+CgpjbGFzcyBhdmxf dHJlZV9lcnJvciA6IHB1YmxpYyBzdGQ6OmxvZ2ljX2Vycm9yIAp7CnB1Ymxp YzoKICAgZXhwbGljaXQgYXZsX3RyZWVfZXJyb3IoY29uc3Qgc3RkOjpzdHJp bmcmIHdoYXRfYXJnKQogICAgICA6IHN0ZDo6bG9naWNfZXJyb3Iod2hhdF9h cmcpIHt9Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPiBjbGFz cyBBVkxfVHJlZV9Ob2RlOwoKdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJs ZT4KY2xhc3MgQVZMX1RyZWUgCnsKcHVibGljOgogICBBVkxfVHJlZSgpOwog ICBBVkxfVHJlZShjb25zdCBBVkxfVHJlZSYpOwogICB+QVZMX1RyZWUoKTsK ICAgQVZMX1RyZWUmIG9wZXJhdG9yPShBVkxfVHJlZSByaHMpOwoKICAgdm9p ZCAgICAgICAgaW5zZXJ0KGNvbnN0IENvbXBhcmFibGUmIGVsZW1lbnQpOwog ICB2b2lkICAgICAgICByZW1vdmUoY29uc3QgQ29tcGFyYWJsZSYgZWxlbWVu dCk7ICAgCiAgIGJvb2wgICAgICAgIG1lbWJlcihjb25zdCBDb21wYXJhYmxl JikgY29uc3Q7CiAgIENvbXBhcmFibGUmIHJldHJpZXZlKCk7CgogICBDb21w YXJhYmxlJiBmaW5kKGNvbnN0IENvbXBhcmFibGUmIGVsZW1lbnQpIGNvbnN0 OwogICBDb21wYXJhYmxlJiBmaW5kX21pbigpIGNvbnN0OwogICBDb21wYXJh YmxlJiBmaW5kX21heCgpIGNvbnN0OwoKICAgdm9pZCBjbGVhcigpOwogICBi b29sIGVtcHR5KCkgY29uc3Q7CgogICB2b2lkIHByaW50KHN0ZDo6b3N0cmVh bSYpIGNvbnN0OwogICB2b2lkIHByaW50X3RyZWUoc3RkOjpvc3RyZWFtJikg Y29uc3Q7CgogICB2b2lkIHN3YXAoQVZMX1RyZWUmIG90aGVyKTsKCnByaXZh dGU6CiAgIHR5cGVkZWYgQVZMX1RyZWVfTm9kZTxDb21wYXJhYmxlPiAgTm9k ZTsKICAgdHlwZWRlZiBBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+KiBOb2Rl X1BvaW50ZXI7CgogICBOb2RlX1BvaW50ZXIgICAgICAgICByb290XzsKICAg bXV0YWJsZSBOb2RlX1BvaW50ZXIgY3VycmVudF87Cn07Cgp0ZW1wbGF0ZTx0 eXBlbmFtZSBDb21wYXJhYmxlPgp2b2lkIHN3YXAoQVZMX1RyZWU8Q29tcGFy YWJsZT4mLCBBVkxfVHJlZTxDb21wYXJhYmxlPiYpOwoKdGVtcGxhdGU8dHlw ZW5hbWUgQ29tcGFyYWJsZT4Kc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0 ZDo6b3N0cmVhbSYsIGNvbnN0IEFWTF9UcmVlPENvbXBhcmFibGU+Jik7Cgov KiBDaGFuZ2VkIGZpbGUgdHlwZSB0byAuY2MgdG8gbWFrZSBlbWFjcyBsYXVu Y2ggYysrIG1vZGUgZm9yIHRoZSBmaWxlLgogKiBBbHNvLCBpZiB5b3UncmUg dGVzdGluZyB0aGlzIGlzIFZDLCBwdXQgZXZlcnl0aGluZyBpbiB0aGUgaGVh ZGVyIGZpbGUKICogKHRoYXQgaXMsIGluIHRoaXMgZmlsZSkuICovCiNpbmNs dWRlICJBVkxfVHJlZS5jYyIKCiNlbmRpZgoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFWTF9U cmVlLmNjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAwMDAwMDAwADAwMDA3NjUAMDAwMTAwMQAwMDAwMDAzMjcxNgAxMDY3 MjMyNzUzMwAwMTE1NDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABH5HN0AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5vbmUAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAALyoKICogQVZMX1RyZWUuaWNjICAgIChjKSBUb21teSBP bHNzb24sIElEQSwgMjAwNy0wNS0wMgogKi8KI2luY2x1ZGUgPGlvc3RyZWFt PgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RkZXhjZXB0Pgoj aW5jbHVkZSAiQVZMX1RyZWUuaCIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8q CiAqIEFWTF9UcmVlX05vZGUuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21w YXJhYmxlPgpjbGFzcyBBVkxfVHJlZV9Ob2RlIAp7CiAgIGZyaWVuZCBjbGFz cyBBVkxfVHJlZTxDb21wYXJhYmxlPjsKCiAgIEFWTF9UcmVlX05vZGUoY29u c3QgQ29tcGFyYWJsZSYgZWxlbWVudCkKICAgICAgOiBlbGVtZW50XyhlbGVt ZW50KSwgbGVmdF8oMCksIHJpZ2h0XygwKSwgaGVpZ2h0XygwKSB7fQoKICAg QVZMX1RyZWVfTm9kZShjb25zdCBDb21wYXJhYmxlJiBlbGVtZW50LCBBVkxf VHJlZV9Ob2RlKiBsZWZ0LCBBVkxfVHJlZV9Ob2RlKiByaWdodCkKICAgICAg OiBlbGVtZW50XyhlbGVtZW50KSwgbGVmdF8obGVmdCksIHJpZ2h0XyhyaWdo dCksIGhlaWdodF8oMCkge30KCiAgIENvbXBhcmFibGUgICAgIGVsZW1lbnRf OwogICBBVkxfVHJlZV9Ob2RlKiBsZWZ0XzsKICAgQVZMX1RyZWVfTm9kZSog cmlnaHRfOwogICBpbnQgICAgICAgICAgICBoZWlnaHRfOwoKICAgdHlwZWRl ZiBBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+ICBOb2RlOwogICB0eXBlZGVm IEFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT4qIE5vZGVfUG9pbnRlcjsKCiAg IC8vIEb2bGphbmRlIGZ1bmt0aW9uZXIgYW5yb3BhcyBhdiBtb3RzdmFyYW5k ZSBmdW5rdGlvbmVyIGkgQVZMX1RyZWUuCiAgIHN0YXRpYyB2b2lkIGluc2Vy dChjb25zdCBDb21wYXJhYmxlJiwgTm9kZV9Qb2ludGVyJik7CiAgIHN0YXRp YyB2b2lkIHJlbW92ZShjb25zdCBDb21wYXJhYmxlJiwgTm9kZV9Qb2ludGVy Jik7CiAgIHN0YXRpYyB2b2lkIGNsZWFyKE5vZGVfUG9pbnRlciYpOwoKICAg c3RhdGljIE5vZGVfUG9pbnRlciBmaW5kKGNvbnN0IENvbXBhcmFibGUmLCBj b25zdCBOb2RlX1BvaW50ZXIpOwogICBzdGF0aWMgTm9kZV9Qb2ludGVyIGZp bmRfbWluKGNvbnN0IE5vZGVfUG9pbnRlcik7CiAgIHN0YXRpYyBOb2RlX1Bv aW50ZXIgZmluZF9tYXgoY29uc3QgTm9kZV9Qb2ludGVyKTsKCiAgIHN0YXRp YyB2b2lkIHByaW50KHN0ZDo6b3N0cmVhbSYsIGNvbnN0IE5vZGVfUG9pbnRl cik7CiAgIHN0YXRpYyB2b2lkIHByaW50X3RyZWUoc3RkOjpvc3RyZWFtJiwg Y29uc3QgTm9kZV9Qb2ludGVyLCBpbnQgZGVwdGggPSAwKTsKCiAgIC8vIEb2 bGphbmRlIGZ1bmt0aW9uIGltcGxlbWVudGVyYXIgZGp1cCBrb3BpZXJpbmcg b2NoIHRpbGxkZWxuaW5nLgogICBzdGF0aWMgTm9kZV9Qb2ludGVyIGNsb25l KGNvbnN0IE5vZGVfUG9pbnRlcik7CgogICAvLyBG9mxqYW5kZSBoauRscGZ1 bmt0aW9uZXIg5HIgaW50ZXJuYSBm9nIgQVZMX1RyZWVfTm9kZS4KICAgc3Rh dGljIHZvaWQgc2luZ2xlX3JvdGF0ZV93aXRoX2xlZnRfY2hpbGQoTm9kZV9Q b2ludGVyJik7CiAgIHN0YXRpYyB2b2lkIHNpbmdsZV9yb3RhdGVfd2l0aF9y aWdodF9jaGlsZChOb2RlX1BvaW50ZXImKTsKICAgc3RhdGljIHZvaWQgZG91 YmxlX3JvdGF0ZV93aXRoX2xlZnRfY2hpbGQoTm9kZV9Qb2ludGVyJik7CiAg IHN0YXRpYyB2b2lkIGRvdWJsZV9yb3RhdGVfd2l0aF9yaWdodF9jaGlsZChO b2RlX1BvaW50ZXImKTsKCiAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZV9oZWln aHQoY29uc3QgTm9kZV9Qb2ludGVyKTsKICAgc3RhdGljIGludCAgbm9kZV9o ZWlnaHQoY29uc3QgTm9kZV9Qb2ludGVyKTsKCiAgIHN0YXRpYyBpbnQgbWF4 KGludCB4LCBpbnQgeSkgeyByZXR1cm4gKHggPiB5ID8geCA6IHkpOyB9Cgog ICBzdGF0aWMgdm9pZCBpbmRlbnQoc3RkOjpvc3RyZWFtJiBvcywgaW50IGxl dmVsKTsKfTsKCi8qCiAqIEFWTC1yb3RhdGlvbmVyIG9jaCB0aWxsaPZyYW5k ZSBoauRscGZ1bmt0aW9uZXIuCiAqLwoKLyoqCiAqIFJldHVybmVyYSBlbiBu b2Qvc3VidHLkZHMgaPZqZC4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBh cmFibGU+CmludApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKbm9kZV9o ZWlnaHQoY29uc3QgTm9kZV9Qb2ludGVyIHApCnsKICAgcmV0dXJuIChwICE9 IDAgPyBwLT5oZWlnaHRfIDogLTEpOwp9CgovKioKICogSnVzdGVyYSBo9mpk ZW4gZvZyIG5vZGVuIHAuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJh YmxlPgp2b2lkCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46OgpjYWxjdWxh dGVfaGVpZ2h0KGNvbnN0IE5vZGVfUG9pbnRlciBwKQp7CiAgIHAtPmhlaWdo dF8gPSAxICsgbWF4KG5vZGVfaGVpZ2h0KHAtPmxlZnRfKSwgbm9kZV9oZWln aHQocC0+cmlnaHRfKSk7Cn0KCi8qKgogKiBlbmtlbHJvdGF0aW9uIHbkbnN0 ZXIgbWVkIHbkbnN0ZXIgYmFybiBtZWQgbm9kZW4gazIgc29tIHBpdm90Lgog Ki8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApBVkxfVHJl ZV9Ob2RlPENvbXBhcmFibGU+OjoKc2luZ2xlX3JvdGF0ZV93aXRoX2xlZnRf Y2hpbGQoTm9kZV9Qb2ludGVyJiBrMikKewogICBOb2RlX1BvaW50ZXIgazEg PSBrMi0+bGVmdF87CgogICBrMi0+bGVmdF8gPSBrMS0+cmlnaHRfOwogICBr MS0+cmlnaHRfID0gazI7CgogICBrMi0+aGVpZ2h0XyA9IG1heChub2RlX2hl aWdodChrMi0+bGVmdF8pLCBub2RlX2hlaWdodChrMi0+cmlnaHRfKSkgKyAx OwogICBrMS0+aGVpZ2h0XyA9IG1heChub2RlX2hlaWdodChrMS0+bGVmdF8p LCBrMi0+aGVpZ2h0XykgKyAxOwoKICAgazIgPSBrMTsKfQoKLyoqCiAqIEVu a2Vscm90YXRpb24gbWVkIGj2Z2VyIGJhcm4gbWVkIG5vZGVuIGsxIHNvbSBw aXZvdC4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CnZvaWQK QVZMX1RyZWVfTm9kZTxDb21wYXJhYmxlPjo6CnNpbmdsZV9yb3RhdGVfd2l0 aF9yaWdodF9jaGlsZChOb2RlX1BvaW50ZXImIGsxKQp7CiAgIE5vZGVfUG9p bnRlciBrMiA9IGsxLT5yaWdodF87CgogICBrMS0+cmlnaHRfID0gazItPmxl ZnRfOwogICBrMi0+bGVmdF8gPSBrMTsKCiAgIGsxLT5oZWlnaHRfID0gbWF4 KG5vZGVfaGVpZ2h0KGsxLT5yaWdodF8pLCBub2RlX2hlaWdodChrMS0+bGVm dF8pKSArIDE7CiAgIGsyLT5oZWlnaHRfID0gbWF4KG5vZGVfaGVpZ2h0KGsy LT5yaWdodF8pLCBrMS0+aGVpZ2h0XykgKyAxOwoKICAgazEgPSBrMjsKfQoK LyoqCiAqIGR1YmJlbHJvdGF0aW9uIHbkbnN0ZXItaPZnZXIgbWVkIGRlbiBu b2RlbiBrMyBzb20gcGl2b3QuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21w YXJhYmxlPgp2b2lkCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46Ogpkb3Vi bGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZChOb2RlX1BvaW50ZXImIGszKQp7 CiAgIHNpbmdsZV9yb3RhdGVfd2l0aF9yaWdodF9jaGlsZChrMy0+bGVmdF8p OwogICBzaW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZChrMyk7Cn0KCi8q KgogKiBEdWJiZWxyb3RhdGlvbiBo9mdlci125G5zdGVyIG1lZCBub2RlbiBr MyBzb20gcGl2b3QuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxl Pgp2b2lkCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46Ogpkb3VibGVfcm90 YXRlX3dpdGhfcmlnaHRfY2hpbGQoTm9kZV9Qb2ludGVyJiBrMykKewogICBz aW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZChrMy0+cmlnaHRfKTsKICAg c2luZ2xlX3JvdGF0ZV93aXRoX3JpZ2h0X2NoaWxkKGszKTsKfQoKLyoKICog 1nZyaWdhIG1lZGxlbXNmdW5rdGlvbmVyIGb2ciBBVkxfVHJlZV9Ob2RlCiAq LwoKLyoqCiAqIFPkdHQgaW4geCBpIHRy5GRldCBzb20gZXR0IG55dHQgbPZ2 LiBLb250cm9sbGVyYSBzZWRhbiB0cuRkZXRzIGJhbGFucyBvY2ggCiAqIGp1 c3RlcmEgdmlkIGJlaG92LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFy YWJsZT4Kdm9pZApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKaW5zZXJ0 KGNvbnN0IENvbXBhcmFibGUmIHgsIE5vZGVfUG9pbnRlciYgdCkKewogICBp ZiAodCA9PSAwKSAKICAgewogICAgICB0ID0gbmV3IE5vZGUoeCk7CiAgICAg IHJldHVybjsKICAgfQoKICAgaWYgKHggPCB0LT5lbGVtZW50XykgCiAgIHsK ICAgICAgaW5zZXJ0KHgsIHQtPmxlZnRfKTsKCiAgICAgIGlmIChub2RlX2hl aWdodCh0LT5sZWZ0XykgLSBub2RlX2hlaWdodCh0LT5yaWdodF8pID09IDIp CiAgICAgICAgIGlmICh4IDwgdC0+bGVmdF8tPmVsZW1lbnRfKQogICAgICAg ICAgICBzaW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZCh0KTsKICAgICAg ICAgZWxzZQogICAgICAgICAgICBkb3VibGVfcm90YXRlX3dpdGhfbGVmdF9j aGlsZCh0KTsKICAgICAgZWxzZQogICAgICAgICBjYWxjdWxhdGVfaGVpZ2h0 KHQpOyAKICAgfQogICBlbHNlIGlmICh0LT5lbGVtZW50XyA8IHgpIAogICB7 CiAgICAgIGluc2VydCh4LCB0LT5yaWdodF8pOwoKICAgICAgaWYgKG5vZGVf aGVpZ2h0KHQtPnJpZ2h0XykgLSBub2RlX2hlaWdodCh0LT5sZWZ0XykgPT0g MikKICAgICAgICAgaWYgKHQtPnJpZ2h0Xy0+ZWxlbWVudF8gPCB4KQogICAg ICAgICAgICBzaW5nbGVfcm90YXRlX3dpdGhfcmlnaHRfY2hpbGQodCk7CiAg ICAgICAgIGVsc2UKICAgICAgICAgICAgZG91YmxlX3JvdGF0ZV93aXRoX3Jp Z2h0X2NoaWxkKHQpOwogICAgICBlbHNlCiAgICAgICAgIGNhbGN1bGF0ZV9o ZWlnaHQodCk7CiAgIH0KICAgZWxzZSAKICAgewogICAgICB0aHJvdyBhdmxf dHJlZV9lcnJvcigiaW5z5HR0bmluZzogZmlubnMgcmVkYW4iKTsKICAgfQp9 Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPgp2b2lkCkFWTF9UcmVl X05vZGU8Q29tcGFyYWJsZT46OgpyZW1vdmUoY29uc3QgQ29tcGFyYWJsZSYg eCwgTm9kZV9Qb2ludGVyJiB0KQp7CiAgIGlmICh0ID09IDApIAogICB7CiAg ICAgIHJldHVybjsgIC8vIEjkciBrYW4gZXR0IHVuZGFudGFnIGdlbmVyZXJh cyBpIHN05GxsZXQgLi4uCiAgIH0KCiAgIGlmICh4IDwgdC0+ZWxlbWVudF8p IAogICB7CiAgICAgIHJlbW92ZSh4LCB0LT5sZWZ0Xyk7CgogICAgICAvKiBJ cyB0aGUgcmlnaHQgdHJlZSB0b28gYmlnPyAqLwogICAgICBpZiAobm9kZV9o ZWlnaHQodC0+cmlnaHRfKSAtIG5vZGVfaGVpZ2h0KHQtPmxlZnRfKSA9PSAy KQogICAgICB7CiAgICAgICAgIGlmIChub2RlX2hlaWdodCh0LT5yaWdodF8t PmxlZnRfKSAtIG5vZGVfaGVpZ2h0KHQtPnJpZ2h0Xy0+cmlnaHRfKSA+IDAp CiAgICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCAiUGVyZm9ybWluZyBk b3VibGVfcm90YXRlX3dpdGhfcmlnaHRfY2hpbGQuIiA8PCBlbmRsOwogICAg ICAgICAgICBkb3VibGVfcm90YXRlX3dpdGhfcmlnaHRfY2hpbGQodCk7CiAg ICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAg IGNvdXQgPDwgIlBlcmZvcm1pbmcgc2luZ2xlX3JvdGF0ZV93aXRoX3JpZ2h0 X2NoaWxkLiIgPDwgZW5kbDsKICAgICAgICAgICAgc2luZ2xlX3JvdGF0ZV93 aXRoX3JpZ2h0X2NoaWxkKHQpOwogICAgICAgICB9CiAgICAgIH0KICAgfSAK ICAgZWxzZSBpZiAodC0+ZWxlbWVudF8gPCB4KSAKICAgewogICAgICByZW1v dmUoeCwgdC0+cmlnaHRfKTsKCiAgICAgIC8qIElzIHRoZSBsZWZ0IHRyZWUg dG9vIGJpZz8gKi8KICAgICAgaWYgKG5vZGVfaGVpZ2h0KHQtPmxlZnRfKSAt IG5vZGVfaGVpZ2h0KHQtPnJpZ2h0XykgPT0gMikKICAgICAgewogICAgICAg ICBpZiAobm9kZV9oZWlnaHQodC0+bGVmdF8tPmxlZnRfKSAtIG5vZGVfaGVp Z2h0KHQtPmxlZnRfLT5yaWdodF8pIDwgMCkKICAgICAgICAgewogICAgICAg ICAgICBjb3V0IDw8ICJQZWZvcm1pbmcgZG91YmxlX3JvdGF0ZV93aXRoX2xl ZnRfY2hpbGQiIDw8IGVuZGw7CiAgICAgICAgICAgIGRvdWJsZV9yb3RhdGVf d2l0aF9sZWZ0X2NoaWxkKHQpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UK ICAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8ICJQZXJmb3JtaW5nIHNp bmdsZV9yb3RhdGVfd2l0aF9sZWZ0X2NoaWxkIiA8PCBlbmRsOwogICAgICAg ICAgICBzaW5nbGVfcm90YXRlX3dpdGhfbGVmdF9jaGlsZCh0KTsKICAgICAg ICAgfQogICAgICB9CiAgIH0gCiAgIGVsc2UgCiAgIHsKICAgICAgLy8gU/Zr dCB25HJkZSBmaW5ucyBpIG5vZGVuIHQKICAgICAgTm9kZV9Qb2ludGVyIHRt cDsKCiAgICAgIGlmICh0LT5sZWZ0XyAhPSAwICYmIHQtPnJpZ2h0XyAhPSAw KSB7CiAgICAgICAgIC8vIE5vZGVuIGhhciB0duUgYmFybiBvY2ggZXJz5HR0 cyBtZWQgaW5vcmRlciBlZnRlcmb2bGphcmUKICAgICAgICAgdG1wID0gZmlu ZF9taW4odC0+cmlnaHRfKTsKICAgICAgICAgdC0+ZWxlbWVudF8gPSB0bXAt PmVsZW1lbnRfOwogICAgICAgICByZW1vdmUodC0+ZWxlbWVudF8sIHQtPnJp Z2h0Xyk7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgIC8vIE5vZGVu IGhhciBpbmdldCBlbGxlciBldHQgYmFybgogICAgICAgICB0bXAgPSB0OwoK ICAgICAgICAgaWYgKHQtPmxlZnRfID09IDApCiAgICAgICAgICAgIHQgPSB0 LT5yaWdodF87CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgdCA9IHQtPmxl ZnRfOwoKICAgICAgICAgZGVsZXRlIHRtcDsKCiAgICAgICAgIHJldHVybjsg LyogU28gd2UgZG9uJ3QgdHJ5IHRvIGNhbGwgY2FsY3VsYXRlX2hlaWdodCgp IGZvciB0aGlzIG5vZGUgd2UganVzdCBkZWxldGVkLiAqLwogICAgICB9CiAg IH0KCiAgIC8qIFByb2JhYmx5IGRvbid0IGhhdmUgdG8gY2FsbCB0aGlzIG9m dGVuIGJ1dCBpdCBtYWtlcyBmb3IgZWFzaWVyIGNvZGUuICovCiAgIGNhbGN1 bGF0ZV9oZWlnaHQodCk7Cn0KCi8qKgogKiBTa3JpdiB1dCBlbGVtZW50ZW4g aSBzdGlnYW5kZSBvcmRuaW5nLgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29t cGFyYWJsZT4Kdm9pZApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKcHJp bnQob3N0cmVhbSYgb3MsIGNvbnN0IE5vZGVfUG9pbnRlciB0KQp7CiAgIGlm ICh0ICE9IDApIAogICB7CiAgICAgIHByaW50KG9zLCB0LT5sZWZ0Xyk7CiAg ICAgIG9zIDw8IHQtPmVsZW1lbnRfIDw8ICIgIjsKICAgICAgcHJpbnQob3Ms IHQtPnJpZ2h0Xyk7CiAgIH0KfQoKLyoqCiAqIHByaW50X3RyZWUoKSBn9nIg ZW4gdHLkZHV0c2tyaWZ0LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFy YWJsZT4Kdm9pZApBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+OjoKcHJpbnRf dHJlZShvc3RyZWFtJiBvcywgY29uc3QgTm9kZV9Qb2ludGVyIHQsIGludCBk ZXB0aCkKewogICBpZiAodCAhPSAwKSAKICAgewogICAgICBwcmludF90cmVl KG9zLCB0LT5yaWdodF8sIGRlcHRoICsgMSk7IAoKICAgICAgaWYgKHQtPnJp Z2h0XyAhPSAwKSAKICAgICAgewogICAgICAgICBpbmRlbnQob3MsIGRlcHRo KTsKICAgICAgICAgb3MgPDwgIiAvIiA8PCBlbmRsOwogICAgICB9CgogICAg ICBpbmRlbnQob3MsIGRlcHRoKTsKICAgICAgb3MgPDwgdC0+ZWxlbWVudF8g PDwgZW5kbDsKCiAgICAgIGlmICh0LT5sZWZ0XyAhPSAwKSAKICAgICAgewog ICAgICAgICBpbmRlbnQob3MsIGRlcHRoKTsKICAgICAgICAgb3MgPDwgIiBc XCIgPDwgZW5kbDsKICAgICAgfQoKICAgICAgcHJpbnRfdHJlZShvcywgdC0+ bGVmdF8sIGRlcHRoICsgMSk7IAogICB9Cn0KCi8qKgogKiBH9nIgZW4ga29w aWEgYXYgdHLkZGV0IHQuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJh YmxlPgpBVkxfVHJlZV9Ob2RlPENvbXBhcmFibGU+KgpBVkxfVHJlZV9Ob2Rl PENvbXBhcmFibGU+OjoKY2xvbmUoY29uc3QgTm9kZV9Qb2ludGVyIHQpCnsK ICAgaWYgKHQgIT0gMCkKICAgICAgcmV0dXJuIG5ldyBOb2RlKHQtPmVsZW1l bnRfLCBjbG9uZSh0LT5sZWZ0XyksIGNsb25lKHQtPnJpZ2h0XykpOwogICBl bHNlCiAgICAgIHJldHVybiAwOwp9CgovKioKICogU/ZrIGVmdGVyIHggaSB0 cuRkZXQuIE9tIHbkcmRldCBoaXR0YXMgcmV0dXJuZXJhcyBwZWthcmVuIHRp bGwgZGVuIG5vZGVuLAogKiBhbm5hcnMgZW4gdG9tcGVrYXJlLgogKi8KdGVt cGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4KQVZMX1RyZWVfTm9kZTxDb21w YXJhYmxlPioKQVZMX1RyZWVfTm9kZTxDb21wYXJhYmxlPjo6CmZpbmQoY29u c3QgQ29tcGFyYWJsZSYgeCwgY29uc3QgTm9kZV9Qb2ludGVyIHQpCnsKICAg aWYgKHQgPT0gMCkKICAgICAgcmV0dXJuIDA7CiAgIGVsc2UgaWYgKHggPCB0 LT5lbGVtZW50XykKICAgICAgcmV0dXJuIGZpbmQoeCwgdC0+bGVmdF8pOwog ICBlbHNlIGlmICh0LT5lbGVtZW50XyA8IHgpCiAgICAgIHJldHVybiBmaW5k KHgsIHQtPnJpZ2h0Xyk7CiAgIGVsc2UKICAgICAgcmV0dXJuIHQ7Cn0KCi8q KgogKiBT9msgZGV0IG1pc3RhIHbkcmRldCBpIHRy5GRldCwgZHZzIGRlbiB2 5G5zdHJhc3RlIG5vZGVuIGkgdHLkZGV0LCBk5HIgZGV0IAogKiBtaW5zdGEg duRyZGV0IGZpbm5zIG9jaCByZXR1cm5lcmFyIHBla2FyZW4gdGlsbCBkZW4g bm9kZW4uIE9tIHRy5GRldCDkciAKICogdG9tdCByZXR1cm5lcmFzIGVuIHRv bXBla2FyZS4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CkFW TF9UcmVlX05vZGU8Q29tcGFyYWJsZT4qCkFWTF9UcmVlX05vZGU8Q29tcGFy YWJsZT46OgpmaW5kX21pbihjb25zdCBOb2RlX1BvaW50ZXIgdCkKewogICBp ZiAodCA9PSAwKQogICAgICByZXR1cm4gMDsKICAgZWxzZSBpZiAodC0+bGVm dF8gPT0gMCkKICAgICAgcmV0dXJuIHQ7CiAgIGVsc2UKICAgICAgcmV0dXJu IGZpbmRfbWluKHQtPmxlZnRfKTsKfQoKLyoqCiAqIFP2ayBkZXQgbWlzdGEg duRyZGV0IGkgdHLkZGV0LCBkdnMgZGVuIGj2Z3Jhc3RlIG5vZGVuIGkgdHLk ZGV0LCBk5HIgZGV0IAogKiBzdPZyc3RhIHbkcmRldCBmaW5ucyBvY2ggcmV0 dXJuZXJhciBwZWthcmVuIHRpbGwgZGVuIG5vZGVuLiBPbSB0cuRkZXQg5HIK ICogdG9tdCByZXR1cm5lcmFzIGVuIHRvbXBla2FyZS4KICovCnRlbXBsYXRl PHR5cGVuYW1lIENvbXBhcmFibGU+CkFWTF9UcmVlX05vZGU8Q29tcGFyYWJs ZT4qCkFWTF9UcmVlX05vZGU8Q29tcGFyYWJsZT46OgpmaW5kX21heChjb25z dCBOb2RlX1BvaW50ZXIgdCkKewogICBOb2RlX1BvaW50ZXIgcCA9IHQ7CiAg IGlmIChwICE9IDApIAogICB7CiAgICAgIHdoaWxlIChwLT5yaWdodF8gIT0g MCkKICAgICAgICAgcCA9IHAtPnJpZ2h0XzsKICAgfQogICByZXR1cm4gcDsK fQoKLyoqCiAqIFRhIGJvcnQgYWxsYSBub2RlciBpIHRy5GRldCB0LgogKi8K dGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApBVkxfVHJlZV9O b2RlPENvbXBhcmFibGU+OjoKY2xlYXIoTm9kZV9Qb2ludGVyJiB0KQp7CiAg IGlmICh0ICE9IDApIAogICB7CiAgICAgIGNsZWFyKHQtPmxlZnRfKTsKICAg ICAgY2xlYXIodC0+cmlnaHRfKTsKICAgICAgZGVsZXRlIHQ7CiAgICAgIHQg PSAwOwogICB9Cn0KCi8qKgogKiBpbmRlbnQoKSBn9nIgaW5kcmFnIG1vdHN2 YXJhbmRlIGRldCBha3R1ZWxsYSB0cuRkZGp1cGV0LgogKi8KdGVtcGxhdGU8 dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZCAKQVZMX1RyZWVfTm9kZTxDb21w YXJhYmxlPjo6CmluZGVudChvc3RyZWFtJiBvcywgaW50IGxldmVsKQp7CiAg IGZvciAoaW50IGkgPSAwOyBpIDwgbGV2ZWw7ICsraSkKICAgICAgb3MgPDwg IiAgIjsKfQoKLyoKICogS29uc3RydWt0b3JlciwgZGVzdHJ1a3RvciBvY2gg dGlsbGRlbG5pbmcgZvZyIEFWTF9UcmVlIAogKi8KCi8qKgogKiBTdGFuZGFy ZGtvbnN0cnVrdG9yIGb2ciBBVkwtdHLkZGV0LiBT5HR0ZXIgcm90cGVrYXJl IG9jaCBwZWthcmVuIHRpbGwKICogYWt0dWVsbCAoc2VuYXN0IGJlc/ZrdGEp IG5vZCB0aWxsIHRvbXBla2FyZS4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENv bXBhcmFibGU+CkFWTF9UcmVlPENvbXBhcmFibGU+OjoKQVZMX1RyZWUoKSA6 IHJvb3RfKDApLCBjdXJyZW50XygwKQp7Cn0KCi8qKgogKiBLb3BpZXJpbmdz a29uc3RydWt0b3IgZvZyIEFWTC10cuRkZXQuIEf2ciBlbiBkanVwIGtvcGll cmluZyBhdiBkZXQgdHLkZAogKiBzb20gZ2VzIHNvbSBpbml0aWFsduRyZGUu CiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPgpBVkxfVHJlZTxD b21wYXJhYmxlPjo6CkFWTF9UcmVlKGNvbnN0IEFWTF9UcmVlJiB2YWx1ZSkg OiByb290XyhOb2RlOjpjbG9uZSh2YWx1ZS5yb290XykpLCBjdXJyZW50Xygw KQp7Cn0KCi8qKgogKiBEZXN0cnVrdG9yIGb2ciBBVkwtdHLkZGV0LiDFdGVy bORtbmFyIGFsbGEgbm9kZXIgaSB0cuRkZXQuCiAqLwp0ZW1wbGF0ZTx0eXBl bmFtZSBDb21wYXJhYmxlPgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6Cn5BVkxf VHJlZSgpCnsKICAgTm9kZTo6Y2xlYXIocm9vdF8pOwp9CgovKioKICogVGls bGRlbG5pbmdzb3BlcmF0b3IuIEf2ciBlbiBkanVwIGtvcGllcmluZyBhdiBk ZXQgdHLkZCBzb20gZ2VzIHNvbSAKICogaPZnZXJhcmd1bWVudC4KICovCnRl bXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CkFWTF9UcmVlPENvbXBhcmFi bGU+JgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6Cm9wZXJhdG9yPShBVkxfVHJl ZTxDb21wYXJhYmxlPiByaHMpCnsKICAgc3dhcChyaHMpOwogICByZXR1cm4g KnRoaXM7Cn0KCi8qCiAqIFB1Ymxpa2EgbWVkbGVtc2Z1bmt0aW9uZXIgZvZy IEFWTF9UcmVlCiAqLwoKLyoqCiAqIFPkdHQgaW4geCBpIHRy5GRldC4KICov CnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CnZvaWQKQVZMX1RyZWU8 Q29tcGFyYWJsZT46OgppbnNlcnQoY29uc3QgQ29tcGFyYWJsZSYgeCkKewog ICBOb2RlOjppbnNlcnQoeCwgcm9vdF8pOwp9CgovKioKICogVGEgYm9ydCB4 IHVyIHRy5GRldC4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+ CnZvaWQKQVZMX1RyZWU8Q29tcGFyYWJsZT46OgpyZW1vdmUoY29uc3QgQ29t cGFyYWJsZSYgeCkKewogICAvL3Rocm93IGF2bF90cmVlX2Vycm9yKCJyZW1v dmU6IHNrYSBpbXBsZW1lbnRlcmFzISIpOwogICBOb2RlOjpyZW1vdmUoeCwg cm9vdF8pOwp9CgovKioKICogUmV0dXJuZXJhIHNhbnQgb20geCBmaW5ucyBp IHRy5GRldCwgYW5uYXJzIGZhbHNrdC4KICovCnRlbXBsYXRlPHR5cGVuYW1l IENvbXBhcmFibGU+CmJvb2wKQVZMX1RyZWU8Q29tcGFyYWJsZT46OgptZW1i ZXIoY29uc3QgQ29tcGFyYWJsZSYgeCkgY29uc3QKewogICBjdXJyZW50XyA9 IE5vZGU6OmZpbmQoeCwgcm9vdF8pOwogICByZXR1cm4gY3VycmVudF8gIT0g MDsKfQoKLyoqCiAqIFJldHVybmVyYSBzYW50IG9tIHggZmlubnMgaSB0cuRk ZXQsIGFubmFycyBmYWxza3QuCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21w YXJhYmxlPgpDb21wYXJhYmxlJgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6CnJl dHJpZXZlKCkKewogICBpZiAoY3VycmVudF8gPT0gMCkKICAgICAgdGhyb3cg YXZsX3RyZWVfZXJyb3IoIuV0a29tc3Q6IGluZ2V0IGFrdHVlbGx0IGVsZW1l bnQiKTsKICAgcmV0dXJuIGN1cnJlbnRfLT5lbGVtZW50OzsKfQoKLyoqCiAq IFP2ayB1cHAgduRyZGV0IHggaSB0cuRkZXQuIFJldHVybmVyYSByZWZlcmVu cyB0aWxsIHguCiAqLwp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhYmxlPgpD b21wYXJhYmxlJgpBVkxfVHJlZTxDb21wYXJhYmxlPjo6CmZpbmQoY29uc3Qg Q29tcGFyYWJsZSYgeCkgY29uc3QKewogICBjdXJyZW50XyA9IE5vZGU6OmZp bmQoeCwgcm9vdF8pOwoKICAgaWYgKGN1cnJlbnRfID09IDApCiAgICAgIHRo cm93IGF2bF90cmVlX2Vycm9yKCJz9mt0IHbkcmRlIGZpbm5zIGVqIGkgdHLk ZGV0Iik7CgogICByZXR1cm4gY3VycmVudF8tPmVsZW1lbnRfOwp9CgovKioK ICogU/ZrIHVwcCBkZXQgbWluc3RhIHbkcmRldCBpIHRy5GRldC4gUmV0dXJu ZXJhIHJlZmVyZW5zIHRpbGwgduRyZGV0LgogKi8KdGVtcGxhdGU8dHlwZW5h bWUgQ29tcGFyYWJsZT4KQ29tcGFyYWJsZSYKQVZMX1RyZWU8Q29tcGFyYWJs ZT46OgpmaW5kX21pbigpIGNvbnN0CnsKICAgaWYgKHJvb3RfID09IDApCiAg ICAgIHRocm93IGF2bF90cmVlX2Vycm9yKCJm9nJz9msgYXR0IGZpbm5hIG1p bnN0IGkgdG9tdCB0cuRkIik7CgogICBjdXJyZW50XyA9IE5vZGU6OmZpbmRf bWluKHJvb3RfKTsKICAgcmV0dXJuIGN1cnJlbnRfLT5lbGVtZW50XzsKfQoK LyoqCiAqIFP2ayB1cHAgZGV0IHN09nJzdGEgduRyZGV0IGkgdHLkZGV0LiBS ZXR1cm5lcmEgcmVmZXJlbnMgdGlsbCB25HJkZXQuCiAqLwp0ZW1wbGF0ZTx0 eXBlbmFtZSBDb21wYXJhYmxlPgpDb21wYXJhYmxlJgpBVkxfVHJlZTxDb21w YXJhYmxlPjo6CmZpbmRfbWF4KCkgY29uc3QKewogICBpZiAocm9vdF8gPT0g MCkKICAgICAgdGhyb3cgYXZsX3RyZWVfZXJyb3IoImb2cnP2ayBhdHQgZmlu bmEgc3T2cnN0IGkgdG9tdCB0cuRkIik7CgogICBjdXJyZW50XyA9IE5vZGU6 OmZpbmRfbWF4KHJvb3RfKTsKICAgcmV0dXJuIGN1cnJlbnRfLT5lbGVtZW50 XzsKfQoKLyoqCiAqIFJldHVybmVyYXIgc2FudCBvbSB0cuRkZXQg5HIgdG9t dCwgZmFsc2t0IGFubmFycy4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBh cmFibGU+CmJvb2wKQVZMX1RyZWU8Q29tcGFyYWJsZT46OgplbXB0eSgpIGNv bnN0CnsKICAgcmV0dXJuIHJvb3RfID09IDA7Cn0KCi8qKgogKiBU9m0gdHLk ZGV0LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApB VkxfVHJlZTxDb21wYXJhYmxlPjo6CmNsZWFyKCkKewogICBOb2RlOjpjbGVh cihyb290Xyk7Cn0KCi8qKgogKiBTa3JpdiB1dCBhbGxhIGVsZW1lbnQgaSB0 cuRkZXQgaSBzdGlnYW5kZSBvcmRuaW5nLmFucm9wYXIgQVZMX1RyZWVfTm9k ZTo6cHJpbnRfdHJlZSgpCiAqIGb2ciBhdHQgZ/ZyYSBzauRsdmEgdXRza3Jp ZnRlbi4KICovCnRlbXBsYXRlPHR5cGVuYW1lIENvbXBhcmFibGU+CnZvaWQK QVZMX1RyZWU8Q29tcGFyYWJsZT46OgpwcmludChvc3RyZWFtJiBvcykgY29u c3QKewogICBOb2RlOjpwcmludChvcywgcm9vdF8pOwp9CgovKioKICogcHJp bnRfdHJlZSgpIGFucm9wYXIgQVZMX1RyZWVfTm9kZTo6cHJpbnRfdHJlZSgp IGb2ciBhdHQgZ/ZyYSBlbiAKICogdHLkZHV0c2tyaWZ0LgogKi8KdGVtcGxh dGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZApBVkxfVHJlZTxDb21wYXJh YmxlPjo6CnByaW50X3RyZWUob3N0cmVhbSYgb3MpIGNvbnN0CnsKICAgTm9k ZTo6cHJpbnRfdHJlZShvcywgcm9vdF8sIDApOwp9CgovKioKICogQnl0IGlu bmVo5WxsIHDlIHRoaXMgb2NoIG90aGVyLiAoQm9yZGUgY3VycmVudF8gc+R0 dGFzIHRpbGwgMCBoZWxscmU/KQogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29t cGFyYWJsZT4Kdm9pZApBVkxfVHJlZTxDb21wYXJhYmxlPjo6CnN3YXAoQVZM X1RyZWU8Q29tcGFyYWJsZT4mIG90aGVyKQp7CiAgIHN0ZDo6c3dhcChyb290 Xywgb3RoZXIucm9vdF8pOwogICBzdGQ6OnN3YXAoY3VycmVudF8sIG90aGVy LmN1cnJlbnRfKTsKfQoKLyoqCiAqIEJ5dCBpbm5laOVsbCBw5SB4IG9jaCB5 LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kdm9pZCBzd2Fw KEFWTF9UcmVlPENvbXBhcmFibGU+JiB4LCBBVkxfVHJlZTxDb21wYXJhYmxl PiYgeSkKewogICB4LnN3YXAoeSk7Cn0KCi8qKgogKiBH9nIgZW4gdHLkZHV0 c2tyaWZ0LgogKi8KdGVtcGxhdGU8dHlwZW5hbWUgQ29tcGFyYWJsZT4Kb3N0 cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtJiBvcywgY29uc3QgQVZMX1RyZWU8 Q29tcGFyYWJsZT4mIHRyZWUpCnsKICAgdHJlZS5wcmludF90cmVlKG9zKTsK ICAgcmV0dXJuIG9zOwp9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAYXZsX3RyZWUtdGVzdC5jYwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDc2 NQAwMDAxMDAxADAwMDAwMDEyNzYwADExMTc0MTUwMDczADAxMjcwNgAgMAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c3RhciAgAEfkc3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAATm9uZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKgogKiBQ cm9ncmFtIGNvbXBhcmVkIHRvIGFwcGxldCBmb3VuZCBhdCBodHRwOi8vd2Vi cGFnZXMudWxsLmVzL3VzZXJzL2pyaWVyYS9Eb2NlbmNpYS9BVkwvQVZMJTIw dHJlZSUyMGFwcGxldC5odG0KICovCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2lu Y2x1ZGUgIkFWTF9UcmVlLmgiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQg bWFpbigpCnsKICAgY291dCA8PCAiRW50ZXJpbmcgbWFpbigpIiA8PCBlbmRs OwogICB7CiAgICAgIC8qIExMIC0gc2luZ2xlX3JvdGF0aW9uX3dpdGhfbGVm dF9jaGlsZCB0ZXN0ICovCiAgICAgIEFWTF9UcmVlPGludD4gYXZsX3RyZWU7 CgogICAgICBjb3V0IDw8ICJQZXJmb3JtaW5nIExMLXRlc3QuIiA8PCBlbmRs OwogICAgICBjb3V0IDw8ICJTaG91bGQgcGVyZm9ybSBzaW5nbGVfcm90YXRl X3dpdGhfbGVmdF9jaGlsZC4iIDw8IGVuZGw7CiAgICAgIC8qIEFwcGxldDog NTAgcm90YXRlZCByaWdodCAqLwoKICAgICAgY291dCA8PCAiSW5zZXJ0aW5n IDUwLCAyMiwgNzUsIDgwLCA0MywgMTUsIDkuIiA8PCBlbmRsOwogICAgICBh dmxfdHJlZS5pbnNlcnQoNTApOwogICAgICBhdmxfdHJlZS5pbnNlcnQoMjIp OwogICAgICBhdmxfdHJlZS5pbnNlcnQoNzUpOwogICAgICBhdmxfdHJlZS5p bnNlcnQoODApOwogICAgICBhdmxfdHJlZS5pbnNlcnQoNDMpOwogICAgICBh dmxfdHJlZS5pbnNlcnQoMTUpOwogICAgICBhdmxfdHJlZS5pbnNlcnQoOSk7 CgogICAgICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291 dCA8PCBlbmRsIDw8IGVuZGw7CgogICAgICBjb3V0IDw8ICJSZW1vdmluZyA4 MC4iIDw8IGVuZGw7CiAgICAgIGF2bF90cmVlLnJlbW92ZSg4MCk7CgogICAg ICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291dCA8PCBl bmRsIDw8IGVuZGw7CgogICAgICBjaW4uZ2V0KCk7CiAgIH0KICAgewogICAg ICAvKiBMUiAtIGRvdWJsZV9yb3RhdGlvbl93aXRoX2xlZnRfY2hpbGQgdGVz dCAqLwogICAgICBBVkxfVHJlZTxpbnQ+IGF2bF90cmVlOwoKICAgICAgY291 dCA8PCAiUGVyZm9ybWluZyBMUi1yZXN0LiIgPDwgZW5kbDsKICAgICAgY291 dCA8PCAiU2hvdWxkIHBlcmZvcm0gZG91YmxlX3JvdGF0ZV93aXRoX2xlZnRf Y2hpbGQuIiA8PCBlbmRsOwogICAgICAvKiBBcHBsZXQ6IDIyIHJvdGF0ZWQg bGVmdCwgNTAgcm90YXRlZCByaWdodCAqLwoKICAgICAgY291dCA8PCAiSW5z ZXJ0aW5nIDUwLCAyMiwgNzUsIDgwLCA0MywgMTUsIDI4LiIgPDwgZW5kbDsK ICAgICAgYXZsX3RyZWUuaW5zZXJ0KDUwKTsKICAgICAgYXZsX3RyZWUuaW5z ZXJ0KDIyKTsKICAgICAgYXZsX3RyZWUuaW5zZXJ0KDc1KTsKICAgICAgYXZs X3RyZWUuaW5zZXJ0KDgwKTsKICAgICAgYXZsX3RyZWUuaW5zZXJ0KDQzKTsK ICAgICAgYXZsX3RyZWUuaW5zZXJ0KDE1KTsKICAgICAgYXZsX3RyZWUuaW5z ZXJ0KDI4KTsKCiAgICAgIGF2bF90cmVlLnByaW50X3RyZWUoY291dCk7Cgog ICAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbDsKCiAgICAgIGNvdXQgPDwgIlJl bW92aW5nIDgwLiIgPDwgZW5kbDsKICAgICAgYXZsX3RyZWUucmVtb3ZlKDgw KTsKCiAgICAgIGF2bF90cmVlLnByaW50X3RyZWUoY291dCk7CgogICAgICBj b3V0IDw8IGVuZGwgPDwgZW5kbDsKCiAgICAgIGNpbi5nZXQoKTsKICAgfQog ICB7CiAgICAgIC8qIFJSIC0gc2luZ2xlX3JvdGF0aW9uX3dpdGhfcmlnaHRf Y2hpbGQgdGVzdCAqLwogICAgICBBVkxfVHJlZTxpbnQ+IGF2bF90cmVlOwoK ICAgICAgY291dCA8PCAiUGVyZm9ybWluZyBSUi10ZXN0LiIgPDwgZW5kbDsK ICAgICAgY291dCA8PCAiU2hvdWxkIHBlcmZvcm0gc2luZ2xlX3JvdGF0ZV93 aXRoX3JpZ2h0X2NoaWxkLiIgPDwgZW5kbDsKICAgICAgLyogQXBwbGV0OiA1 MCByb3RhdGVkIGxlZnQgKi8KCiAgICAgIGNvdXQgPDwgIkluc2VydGluZyA1 MCwgMzUsIDc1LCAyNSwgNjUsIDg1LCA5NS4iIDw8IGVuZGw7CiAgICAgIGF2 bF90cmVlLmluc2VydCg1MCk7CiAgICAgIGF2bF90cmVlLmluc2VydCgzNSk7 CiAgICAgIGF2bF90cmVlLmluc2VydCg3NSk7CiAgICAgIGF2bF90cmVlLmlu c2VydCgyNSk7CiAgICAgIGF2bF90cmVlLmluc2VydCg2NSk7CiAgICAgIGF2 bF90cmVlLmluc2VydCg4NSk7CiAgICAgIGF2bF90cmVlLmluc2VydCg5NSk7 CgogICAgICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291 dCA8PCBlbmRsIDw8IGVuZGw7CgogICAgICBjb3V0IDw8ICJSZW1vdmluZyAy NS4iIDw8IGVuZGw7CiAgICAgIGF2bF90cmVlLnJlbW92ZSgyNSk7CgogICAg ICBhdmxfdHJlZS5wcmludF90cmVlKGNvdXQpOwoKICAgICAgY291dCA8PCBl bmRsIDw8IGVuZGw7CgogICAgICBjaW4uZ2V0KCk7CiAgIH0KICAgewogICAg ICAvKiBSTCAtIGRvdWJsZV9yb3RhdGlvbl93aXRoX3JpZ2h0X2NoaWxkIHRl c3QgKi8KICAgICAgQVZMX1RyZWU8aW50PiBhdmxfdHJlZTsKCiAgICAgIGNv dXQgPDwgIlBlcmZvcm1pbmcgUkwtdGVzdC4iIDw8IGVuZGw7CiAgICAgIGNv dXQgPDwgIlNob3VsZCBwZXJmb3JtIGRvdWJsZV9yb3RhdGVfd2l0aF9yaWdo dF9jaGlsZC4iIDw8IGVuZGw7CiAgICAgIC8qIEFwcGxldDogNzUgcm90YXRl ZCByaWdodCwgNTAgcm90YXRlZCBsZWZ0ICovCgogICAgICBjb3V0IDw8ICJJ bnNlcnRpbmcgNTAsIDI1LCA3NSwgMTUsIDY1LCA4MCwgNzAuIiA8PCBlbmRs OwogICAgICBhdmxfdHJlZS5pbnNlcnQoNTApOwogICAgICBhdmxfdHJlZS5p bnNlcnQoMjUpOwogICAgICBhdmxfdHJlZS5pbnNlcnQoNzUpOwogICAgICBh dmxfdHJlZS5pbnNlcnQoMTUpOwogICAgICBhdmxfdHJlZS5pbnNlcnQoNjUp OwogICAgICBhdmxfdHJlZS5pbnNlcnQoODApOwogICAgICBhdmxfdHJlZS5p bnNlcnQoNzApOwoKICAgICAgYXZsX3RyZWUucHJpbnRfdHJlZShjb3V0KTsK CiAgICAgIGNvdXQgPDwgZW5kbCA8PCBlbmRsOwoKICAgICAgY291dCA8PCAi UmVtb3ZpbmcgMTUuIiA8PCBlbmRsOwogICAgICBhdmxfdHJlZS5yZW1vdmUo MTUpOwoKICAgICAgYXZsX3RyZWUucHJpbnRfdHJlZShjb3V0KTsKCiAgICAg IGNpbi5nZXQoKTsKICAgfQoKI2lmIDAKICBmb3IgKGludCBpID0gMTsgaSA8 PSAxMTsgaSsrKQogICAgYXZsX3RyZWUuaW5zZXJ0KGkpOwoKICB0cnkgCiAg ewogICAgIGNvdXQgPDwgIkFWTC10cuRkIGVmdGVyIGluc+R0dG5pbmcgYXYg MSwgMiwuLi4sIDExOlxuXG4iOwogICAgIGF2bF90cmVlLnByaW50X3RyZWUo Y291dCk7CiAgICAgY291dCA8PCBlbmRsOwogIH0KICBjYXRjaCAoY29uc3Qg ZXhjZXB0aW9uJiBlKSAKICB7CiAgICAgY291dCA8PCAnXG4nIDw8IGUud2hh dCgpIDw8IGVuZGw7CiAgICAgY291dCA8PCAiQVZMLXRy5GQgaW5uZWjlbGxl ciBlZnRlciBpbnPkdHRuaW5nIGF2IDEsIDIsLi4uLCAxMTpcblxuIjsKICAg ICBhdmxfdHJlZS5wcmludChjb3V0KTsKICAgICBjb3V0IDw8IGVuZGw7CiAg fQoKICB1bnNpZ25lZCBpbnQgIGNob2lzZTsKICB1bnNpZ25lZCBpbnQgIHZh bHVlOwoKICB3aGlsZSAodHJ1ZSkgCiAgewogICAgY291dCA8PCBlbmRsOwog ICAgY291dCA8PCAiMSAtIFPkdHQgaW4uXG4iOwogICAgY291dCA8PCAiMiAt IFRhIGJvcnQuXG4iOwogICAgY291dCA8PCAiMyAtIFP2ayB25HJkZS5cbiI7 CiAgICBjb3V0IDw8ICI0IC0gU/ZrIG1pbnN0YS5cbiI7CiAgICBjb3V0IDw8 ICI1IC0gU/ZrIHN09nJzdGEuXG4iOwogICAgY291dCA8PCAiNiAtIFT2bSB0 cuRkZXQuXG4iOwogICAgY291dCA8PCAiNyAtIFNrcml2IHV0IG9yZG5hdC5c biI7CiAgICBjb3V0IDw8ICI4IC0gU2tyaXYgdXQgdHLkZC5cbiI7CiAgICBj b3V0IDw8ICIwIC0gQXZzbHV0YS5cbiIgPDwgZW5kbDsKICAgIGNvdXQgPDwg IlZhbDogIjsKICAgIGNpbiA+PiBjaG9pc2U7CiAgICBjb3V0IDw8IGVuZGw7 CgogICAgdHJ5IAogICAgewogICAgICAgc3dpdGNoIChjaG9pc2UpIAogICAg ICAgewoJICBjYXNlIDA6CgkgICAgIGNvdXQgPDwgIlNsdXQuIiA8PCBlbmRs OwoJICAgICByZXR1cm4gMDsKCSAgY2FzZSAxOgoJICAgICBjb3V0IDw8ICJW 5HJkZSBhdHQgc+R0dGEgaW46ICI7CgkgICAgIGNpbiA+PiB2YWx1ZTsKCSAg ICAgYXZsX3RyZWUuaW5zZXJ0KHZhbHVlKTsKCSAgICAgYnJlYWs7CgkgIGNh c2UgMjoKCSAgICAgY291dCA8PCAiVuRyZGUgYXR0IHRhIGJvcnQ6ICI7Cgkg ICAgIGNpbiA+PiB2YWx1ZTsKCSAgICAgYXZsX3RyZWUucmVtb3ZlKHZhbHVl KTsKCSAgICAgYnJlYWs7CgkgIGNhc2UgMzoKICAgICAgICAgICAgIGNvdXQg PDwgIlbkcmRlIGF0dCBz9mthIGVmdGVyOiAiOwoJICAgICBjaW4gPj4gdmFs dWU7CgkgICAgIGlmIChhdmxfdHJlZS5tZW1iZXIodmFsdWUpKQoJCWNvdXQg PDwgIlbkcmRldCAiIDw8IHZhbHVlIDw8ICIgZmlubnMgaSB0cuRkZXQuIiA8 PCBlbmRsOwoJICAgICBlbHNlCgkJY291dCA8PCAiVuRyZGV0ICIgPDwgdmFs dWUgPDwgIiBmaW5ucyBlaiBpIHRy5GRldC4iIDw8IGVuZGw7CgkgICAgIGJy ZWFrOwoJICBjYXNlIDQ6CgkgICAgIGlmIChhdmxfdHJlZS5lbXB0eSgpKQoJ CWNvdXQgPDwgIlRy5GRldCDkciB0b210ISIgPDwgZW5kbDsKCSAgICAgZWxz ZQoJCWNvdXQgPDwgIk1pbnN0YSB25HJkZXQgaSB0cuRkZXQg5HIgIiA8PCBh dmxfdHJlZS5maW5kX21pbigpIDw8IGVuZGw7CgkgICAgIGJyZWFrOwoJICBj YXNlIDU6CgkgICAgIGlmIChhdmxfdHJlZS5lbXB0eSgpKQoJCWNvdXQgPDwg IlRy5GRldCDkciB0b210ISIgPDwgZW5kbDsKCSAgICAgZWxzZQoJCWNvdXQg PDwgIlN09nJzdGEgduRyZGV0IGkgdHLkZGV0IORyICIgPDwgYXZsX3RyZWUu ZmluZF9tYXgoKSA8PCBlbmRsOwoJICAgICBicmVhazsKCSAgY2FzZSA2OgoJ ICAgICAvKiBEZXR0YSBib3JkZSBm9nJzdOVzIGJla3LkZnRhcyEgKi8KCSAg ICAgYXZsX3RyZWUuY2xlYXIoKTsKCSAgICAgY291dCA8PCAiVHLkZGV0IORy IHT2bXQhIiA8PCBlbmRsOwoJICAgICBicmVhazsKCSAgY2FzZSA3OgoJICAg ICBpZiAoYXZsX3RyZWUuZW1wdHkoKSkgCgkgICAgIHsKCQljb3V0IDw8ICJU cuRkZXQg5HIgdG9tdCEiIDw8IGVuZGw7CgkgICAgIH0KCSAgICAgZWxzZSAK CSAgICAgewoJCWF2bF90cmVlLnByaW50KGNvdXQpOwoJCWNvdXQgPDwgZW5k bDsKCSAgICAgfQoJICAgICBicmVhazsKCSAgY2FzZSA4OgoJICAgICBpZiAo YXZsX3RyZWUuZW1wdHkoKSkgCgkgICAgIHsKCQljb3V0IDw8ICJUcuRkZXQg 5HIgdG9tdCEiIDw8IGVuZGw7CgkgICAgIH0KCSAgICAgZWxzZSAKCSAgICAg ewoJCWF2bF90cmVlLnByaW50X3RyZWUoY291dCk7CgkJY291dCA8PCBlbmRs OwoJICAgICB9CgkgICAgIGJyZWFrOwoJICBkZWZhdWx0OgoJICAgICBjb3V0 IDw8ICJGZWxha3RpZ3QgdmFsISIgPDwgJ1xiJyA8PCBlbmRsOwoJICAgICBi cmVhazsKICAgICAgIH0KICAgIH0KICAgIGNhdGNoIChjb25zdCBleGNlcHRp b24mIGUpIAogICAgewogICAgICAgY291dCA8PCBlLndoYXQoKSA8PCBlbmRs OyAKICAgIH0KICAgIGNhdGNoICguLi4pIAogICAgewogICAgICAgY291dCA8 PCAiRXR0IG9r5G50IGZlbCBoYXIgaW50cuRmZmF0LiIgPDwgZW5kbDsgCiAg ICB9CiAgfQojZW5kaWYKICByZXR1cm4gMDsKfQoAAAAAAAAAAAAAAAAAAAAA TWFrZWZpbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDAwMDAAMDAwMDc2NQAwMDAxMDAxADAwMDAwMDAwNDUz ADEwNjcyMzI1NzE3ADAxMTI3MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAEfkc3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATm9uZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAABDWFggPSBnKysKQ1hYRkxBR1MgPSAtV2FsbCAt V2V4dHJhIC1zdGQ9YysrOTggLXBlZGFudGljIC1nIC1jCkxERkxBR1MgPSAt byAkKEVYRUMpCkVYRUMgPSB0ZXN0YXZsLmV4ZQpPQkpFQ1RTID0gYXZsX3Ry ZWUtdGVzdC5vCgphbGw6ICQoT0JKRUNUUykKCSQoQ1hYKSAkXiAkKExERkxB R1MpCgphdmxfdHJlZS10ZXN0Lm86IGF2bF90cmVlLXRlc3QuY2MgQVZMX1Ry ZWUuaCBBVkxfVHJlZS5jYwoJJChDWFgpICQoQ1hYRkxBR1MpICQ8CgpjbGVh bjoKCXJtIC1mICQoT0JKRUNUUykgJChFWEVDKSAkKEVYRUMpLnN0YWNrZHVt cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA --------------050707000507090105070408 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --------------050707000507090105070408--