Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 Date: Tue, 4 Jun 2002 10:25:57 +0400 From: egor duda Reply-To: egor duda Organization: deo X-Priority: 3 (Normal) Message-ID: <51438910093.20020604102557@logos-m.ru> To: Christopher Faylor CC: linguist-cygwin AT rich-paul DOT net Subject: Re: Building cygwin1.dll and mknetrel In-Reply-To: <20020604050101.GA12031@redhat.com> References: <20020528120346 DOT B21064 AT monster DOT rich-paul DOT net> <4 DOT 3 DOT 1 DOT 2 DOT 20020528122339 DOT 0260f7f0 AT pop DOT ma DOT ultranet DOT com> <20020528190238 DOT A22088 AT monster DOT rich-paul DOT net> <20020528232930 DOT GA18281 AT redhat DOT com> <20020529091728 DOT D22088 AT monster DOT rich-paul DOT net> <20020529143618 DOT GA2808 AT redhat DOT com> <20020602004747 DOT A10315 AT monster DOT rich-paul DOT net> <20020602062824 DOT GA1808 AT redhat DOT com> <20020602072107 DOT B10865 AT monster DOT rich-paul DOT net> <20020603053325 DOT A13720 AT monster DOT rich-paul DOT net> <20020604050101 DOT GA12031 AT redhat DOT com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------721C43615FEFFA" ------------721C43615FEFFA Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! Tuesday, 04 June, 2002 Christopher Faylor cgf AT redhat DOT com wrote: >> * On my production system, I had to change the '#!/bin/sh' to >> '#!/bin/bash' on one of the mknetrel shell scripts >> to get the shell to accept the usage of getopts ... but on the >> fresh install, I did not. (This is the bash getopts builtin, >> not the standalone and singular 'getopt' discussed above) CF> Yes, I have never run this under cygwin, actually. It was intended as a CF> cross-compilation environment. I'm surprised that it works on cygwin CF> with so few changes. I'm running it on cygwin. All i need is to build getopt.exe and readlink.exe from two attached source files. readlink.c is taken from OpenBSD cvs, and getopt.c is slightly patched version of getopt.c from linux-utils. They both can be built out-of-the-box. Egor. mailto:deo AT logos-m DOT ru ICQ 5165414 FidoNet 2:5020/496.19 ------------721C43615FEFFA Content-Type: application/octet-stream; name="readlink.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="readlink.c" LyoKICogJE9wZW5CU0Q6IHJlYWRsaW5rLmMsdiAxLjE4IDE5OTgvMDgvMjQgMTQ6NDU6MzMga3N0 YWlsZXkgRXhwICQKICoKICogQ29weXJpZ2h0IChjKSAxOTk3CiAqCUtlbm5ldGggU3RhaWxleSAo aGVyZWluYWZ0ZXIgcmVmZXJyZWQgdG8gYXMgdGhlIGF1dGhvcikKICoKICogUmVkaXN0cmlidXRp b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAq IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlz dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp Z2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0 ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICogMy4gVGhlIG5hbWUgb2Yg dGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz CiAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig d3JpdHRlbiBwZXJtaXNzaW9uLgogKgogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI RSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgogKiBJTVBMSUVEIFdBUlJBTlRJ RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT CiAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQVJFIERJU0NMQUlNRUQuCiAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElB QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCiAqIE5PVCBM SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM T1NTIE9GIFVTRSwKICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICogKElOQ0xVRElORyBO RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF IE9GCiAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg T0YgU1VDSCBEQU1BR0UuCiAqLwoKI2luY2x1ZGUgPGxpbWl0cy5oPgojaW5jbHVkZSA8ZXJybm8u aD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmlu Zy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CgppbnQKbWFpbihhcmdjLCBhcmd2KQoJaW50IGFyZ2M7 CgljaGFyICoqYXJndjsKewoJY2hhciBidWZbUEFUSF9NQVhdOwoJaW50IG4sIGNoLCBuZmxhZyA9 IDAsIGZmbGFnID0gMDsKCWV4dGVybiBpbnQgb3B0aW5kOwoKCXdoaWxlICgoY2ggPSBnZXRvcHQo YXJnYywgYXJndiwgImZuIikpICE9IC0xKQoJCXN3aXRjaCAoY2gpIHsKCQljYXNlICdmJzoKCQkJ ZmZsYWcgPSAxOwoJCQlicmVhazsKCQljYXNlICduJzoKCQkJbmZsYWcgPSAxOwoJCQlicmVhazsK CQlkZWZhdWx0OgoJCQkodm9pZClmcHJpbnRmKHN0ZGVyciwKCQkJICAgICJ1c2FnZTogcmVhZGxp bmsgWy1uXSBbLWZdIHN5bWxpbmtcbiIpOwoJCQlleGl0KDEpOwoJCX0KCWFyZ2MgLT0gb3B0aW5k OwoJYXJndiArPSBvcHRpbmQ7CgoJaWYgKGFyZ2MgIT0gMSkgewoJCWZwcmludGYoc3RkZXJyLCAi dXNhZ2U6IHJlYWRsaW5rIFstbl0gWy1mXSBzeW1saW5rXG4iKTsKCQlleGl0KDEpOwoJfQoKCW4g PSBzdHJsZW4oYXJndlswXSk7CglpZiAobiA+IFBBVEhfTUFYIC0gMSkgewoJCWZwcmludGYoc3Rk ZXJyLAoJCQkicmVhZGxpbms6IGZpbGVuYW1lIGxvbmdlciB0aGFuIFBBVEhfTUFYLTEgKCVkKVxu IiwKCQkJUEFUSF9NQVggLSAxKTsKCQlleGl0KDEpOwoJfQoKCWlmIChmZmxhZykKCQlyZWFscGF0 aChhcmd2WzBdLCBidWYpOwoJZWxzZSB7CgkJaWYgKChuID0gcmVhZGxpbmsoYXJndlswXSwgYnVm LCBzaXplb2YgYnVmLTEpKSA8IDApCgkJCWV4aXQoMSk7CgkJYnVmW25dID0gJ1wwJzsKCX0KCglw cmludGYoIiVzIiwgYnVmKTsKCWlmICghbmZsYWcpCgkJcHV0Y2hhcignXG4nKTsKCWV4aXQoMCk7 Cn0K ------------721C43615FEFFA Content-Type: application/octet-stream; name="getopt.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="getopt.c" LyoKICAgIGdldG9wdC5jIC0gRW5oYW5jZWQgaW1wbGVtZW50YXRpb24gb2YgQlNEIGdldG9wdCgx KQogICAgQ29weXJpZ2h0IChjKSAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwICBGcm9kbyBMb29pamFh cmQgPGZyb2RvbEBkZHMubmw+CgogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgICB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNl bnNlLCBvcgogICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgICBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgoKICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICAgRm91bmRhdGlvbiwgSW5jLiwg Njc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiovCgovKiAKICogVmVyc2lv biAxLjAtYjQ6IFR1ZSBTZXAgMjMgMTk5Ny4gRmlyc3QgcHVibGljIHJlbGVhc2UuCiAqIFZlcnNp b24gMS4wOiBXZWQgTm92IDE5IDE5OTcuIAogKiAgIEJ1bXBlZCB1cCB0aGUgdmVyc2lvbiBudW1i ZXIgdG8gMS4wCiAqICAgRml4ZWQgbWlub3IgdHlwbyAoQ1NIIGluc3RlYWQgb2YgVENTSCkKICog VmVyc2lvbiAxLjAuMTogVHVlIEp1biAzIDE5OTgKICogICBGaXhlZCBzaXplb2YgaW5zdGVhZCBv ZiBzdHJsZW4gYnVnCiAqICAgQnVtcGVkIHVwIHRoZSB2ZXJzaW9uIG51bWJlciB0byAxLjAuMQog KiBWZXJzaW9uIDEuMC4yOiBUaHUgSnVuIDExIDE5OTggKG5vdCBwcmVzZW50KQogKiAgIEZpeGVk IGdjYy0yLjguMSB3YXJuaW5ncwogKiAgIEZpeGVkIC0tdmVyc2lvbi8tViBvcHRpb24gKG5vdCBw cmVzZW50KQogKiBWZXJzaW9uIDEuMC41OiBUdWUgSnVuIDIyIDE5OTkKICogICBNYWtlIC11IG9w dGlvbiB3b3JrIChub3QgcHJlc2VudCkKICogVmVyc2lvbiAxLjAuNjogVHVlIEp1biAyNyAyMDAw CiAqICAgTm8gaW1wb3J0YW50IGNoYW5nZXMKICovCgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1 ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KI2lu Y2x1ZGUgPGN0eXBlLmg+CgojaWYgTElCQ0dFVE9QVAojaW5jbHVkZSA8Z2V0b3B0Lmg+CiNlbHNl CiNpbmNsdWRlICJnZXRvcHQuaCIKI2VuZGlmCgojZGVmaW5lIF8oeCkgeAoKLyogTk9OX09QVCBp cyB0aGUgY29kZSB0aGF0IGlzIHJldHVybmVkIHdoZW4gYSBub24tb3B0aW9uIGlzIGZvdW5kIGlu ICcrJyAKICAgbW9kZSAqLwojZGVmaW5lIE5PTl9PUFQgMQovKiBMT05HX09QVCBpcyB0aGUgY29k ZSB0aGF0IGlzIHJldHVybmVkIHdoZW4gYSBsb25nIG9wdGlvbiBpcyBmb3VuZC4gKi8KI2RlZmlu ZSBMT05HX09QVCAyCgovKiBUaGUgc2hlbGxzIHJlY29nbml6ZWQuICovCnR5cGVkZWYgZW51bSB7 QkFTSCxUQ1NIfSBzaGVsbF90OwoKCi8qIFNvbWUgZ2xvYmFsIHZhcmlhYmxlcyB0aGF0IHRlbGxz IHVzIGhvdyB0byBwYXJzZS4gKi8Kc2hlbGxfdCBzaGVsbD1CQVNIOyAvKiBUaGUgc2hlbGwgd2Ug Z2VuZXJhdGUgb3V0cHV0IGZvci4gKi8KaW50IHF1aWV0X2Vycm9ycz0wOyAvKiAwIGlzIG5vdCBx dWlldC4gKi8KaW50IHF1aWV0X291dHB1dD0wOyAvKiAwIGlzIG5vdCBxdWlldC4gKi8KaW50IHF1 b3RlPTE7IC8qIDEgaXMgZG8gcXVvdGUuICovCiNpZmRlZiBIQVZFX0dFVE9QVF9MT05HX09OTFkK aW50IGFsdGVybmF0aXZlPTA7IC8qIDAgaXMgZ2V0b3B0X2xvbmcsIDEgaXMgZ2V0b3B0X2xvbmdf b25seSAqLwojZW5kaWYKCi8qIEZ1bmN0aW9uIHByb3RvdHlwZXMgKi8Kdm9pZCAqb3VyX21hbGxv YyhzaXplX3Qgc2l6ZSk7CnZvaWQgKm91cl9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUp Owpjb25zdCBjaGFyICpub3JtYWxpemUoY29uc3QgY2hhciAqYXJnKTsKaW50IGdlbmVyYXRlX291 dHB1dChjaGFyICogYXJndltdLGludCBhcmdjLGNvbnN0IGNoYXIgKm9wdHN0ciwKICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpsb25nb3B0cyk7CmludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pOwp2b2lkIHBhcnNlX2Vycm9yKGNvbnN0IGNoYXIgKm1lc3NhZ2Up Owp2b2lkIGFkZF9sb25nX29wdGlvbnMoY2hhciAqb3B0aW9ucyk7CnZvaWQgYWRkX2xvbmdvcHQo Y29uc3QgY2hhciAqbmFtZSxpbnQgaGFzX2FyZyk7CnZvaWQgcHJpbnRfaGVscCh2b2lkKTsKdm9p ZCBzZXRfc2hlbGwoY29uc3QgY2hhciAqbmV3X3NoZWxsKTsKdm9pZCBzZXRfaW5pdGlhbF9zaGVs bCh2b2lkKTsKCnZvaWQgKm91cl9tYWxsb2Moc2l6ZV90IHNpemUpCnsKCXZvaWQgKnJldD1tYWxs b2Moc2l6ZSk7CglpZiAoISByZXQpIHsKCQlmcHJpbnRmKHN0ZGVycixfKCIlczogT3V0IG9mIG1l bW9yeSFcbiIpLCJnZXRvcHQiKTsKCQlleGl0KDMpOwoJfQoJcmV0dXJuKHJldCk7Cn0KCnZvaWQg Km91cl9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpCnsKCXZvaWQgKnJldD1yZWFsbG9j KHB0cixzaXplKTsKCWlmICghIHJldCAmJiBzaXplKSB7CgkJZnByaW50ZihzdGRlcnIsXygiJXM6 IE91dCBvZiBtZW1vcnkhXG4iKSwiZ2V0b3B0Iik7CgkJZXhpdCgzKTsKCX0KCXJldHVybihyZXQp Owp9CgovKgogKiBUaGlzIGZ1bmN0aW9uICdub3JtYWxpemVzJyBhIHNpbmdsZSBhcmd1bWVudDog aXQgcHV0cyBzaW5nbGUgcXVvdGVzIGFyb3VuZAogKiBpdCBhbmQgZXNjYXBlcyBvdGhlciBzcGVj aWFsIGNoYXJhY3RlcnMuIElmIHF1b3RlIGlzIGZhbHNlLCBpdCBqdXN0CiAqIHJldHVybnMgaXRz IGFyZ3VtZW50LgogKiBCYXNoIG9ubHkgbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQgZm9yIHNpbmds ZSBxdW90ZXM7IHRjc2ggYWxzbyByZWNvZ25pemVzCiAqIGV4Y2xhbWF0aW9uIG1hcmtzIHdpdGhp biBzaW5nbGUgcXVvdGVzLCBhbmQgbnVrZXMgd2hpdGVzcGFjZS4KICogVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIGEgcG9pbnRlciB0byBhIGJ1ZmZlciB0aGF0IGlzIG92ZXJ3cml0dGVuIGJ5IAogKiBl YWNoIGNhbGwuCiAqLwpjb25zdCBjaGFyICpub3JtYWxpemUoY29uc3QgY2hhciAqYXJnKQp7Cglz dGF0aWMgY2hhciAqQlVGRkVSPU5VTEw7Cgljb25zdCBjaGFyICphcmdwdHI9YXJnOwoJY2hhciAq YnVmcHRyOwoKCWlmIChCVUZGRVIgIT0gTlVMTCkKCQlmcmVlKEJVRkZFUik7CgoJaWYgKCFxdW90 ZSkgeyAvKiBKdXN0IGNvcHkgYXJnICovCgkJQlVGRkVSPW91cl9tYWxsb2Moc3RybGVuKGFyZykr MSk7CgkJCQoJCXN0cmNweShCVUZGRVIsYXJnKTsKCQlyZXR1cm4gQlVGRkVSOwoJfQoKCS8qIEVh Y2ggY2hhcmFjdGVyIGluIGFyZyBtYXkgdGFrZSB1cHRvIGZvdXIgY2hhcmFjdGVycyBpbiB0aGUg cmVzdWx0OgoJICAgRm9yIGEgcXVvdGUgd2UgbmVlZCBhIGNsb3NpbmcgcXVvdGUsIGEgYmFja3Ns YXNoLCBhIHF1b3RlIGFuZCBhbgoJICAgb3BlbmluZyBxdW90ZSEgV2UgbmVlZCBhbHNvIHRoZSBn bG9iYWwgb3BlbmluZyBhbmQgY2xvc2luZyBxdW90ZSwKCSAgIGFuZCBvbmUgZXh0cmEgY2hhcmFj dGVyIGZvciAnXDAnLiAqLwoJQlVGRkVSPW91cl9tYWxsb2Moc3RybGVuKGFyZykqNCszKTsKCgli dWZwdHI9QlVGRkVSOwoJKmJ1ZnB0cisrPSdcJyc7CgoJd2hpbGUgKCphcmdwdHIpIHsKCQlpZiAo KmFyZ3B0ciA9PSAnXCcnKSB7CgkJCS8qIFF1b3RlOiByZXBsYWNlIGl0IHdpdGg6ICdcJycgKi8K CQkJKmJ1ZnB0cisrPSdcJyc7CgkJCSpidWZwdHIrKz0nXFwnOwoJCQkqYnVmcHRyKys9J1wnJzsK CQkJKmJ1ZnB0cisrPSdcJyc7CgkJfSBlbHNlIGlmIChzaGVsbD09VENTSCAmJiAqYXJncHRyPT0n IScpIHsKCQkJLyogRXhjbGFtYXRpb24gbWFyazogcmVwbGFjZSBpdCB3aXRoOiBcISAqLwoJCQkq YnVmcHRyKys9J1wnJzsKCQkJKmJ1ZnB0cisrPSdcXCc7CgkJCSpidWZwdHIrKz0nISc7CgkJCSpi dWZwdHIrKz0nXCcnOwoJCX0gZWxzZSBpZiAoc2hlbGw9PVRDU0ggJiYgKmFyZ3B0cj09J1xuJykg ewoJCQkvKiBOZXdsaW5lOiByZXBsYWNlIGl0IHdpdGg6IFxuICovCgkJCSpidWZwdHIrKz0nXFwn OwoJCQkqYnVmcHRyKys9J24nOwoJCX0gZWxzZSBpZiAoc2hlbGw9PVRDU0ggJiYgaXNzcGFjZSgq YXJncHRyKSkgewoJCQkvKiBOb24tbmV3bGluZSB3aGl0ZXNwYWNlOiByZXBsYWNlIGl0IHdpdGgg XDx3cz4gKi8KCQkJKmJ1ZnB0cisrPSdcJyc7CgkJCSpidWZwdHIrKz0nXFwnOwoJCQkqYnVmcHRy Kys9KmFyZ3B0cjsKCQkJKmJ1ZnB0cisrPSdcJyc7CgkJfSBlbHNlCgkJCS8qIEp1c3QgY29weSAq LwoJCQkqYnVmcHRyKys9KmFyZ3B0cjsKCQlhcmdwdHIrKzsKCX0KCSpidWZwdHIrKz0nXCcnOwoJ KmJ1ZnB0cisrPSdcMCc7CglyZXR1cm4gQlVGRkVSOwp9CgovKiAKICogR2VuZXJhdGUgdGhlIG91 dHB1dC4gYXJndlswXSBpcyB0aGUgcHJvZ3JhbSBuYW1lICh1c2VkIGZvciByZXBvcnRpbmcgZXJy b3JzKS4KICogYXJndlsxLi5dIGNvbnRhaW5zIHRoZSBvcHRpb25zIHRvIGJlIHBhcnNlZC4gYXJn YyBtdXN0IGJlIHRoZSBudW1iZXIgb2YKICogZWxlbWVudHMgaW4gYXJndiAoaWUuIDEgaWYgdGhl cmUgYXJlIG5vIG9wdGlvbnMsIG9ubHkgdGhlIHByb2dyYW0gbmFtZSksCiAqIG9wdHN0ciBtdXN0 IGNvbnRhaW4gdGhlIHNob3J0IG9wdGlvbnMsIGFuZCBsb25nb3B0cyB0aGUgbG9uZyBvcHRpb25z LgogKiBPdGhlciBzZXR0aW5ncyBhcmUgZm91bmQgaW4gZ2xvYmFsIHZhcmlhYmxlcy4KICovCmlu dCBnZW5lcmF0ZV9vdXRwdXQoY2hhciAqIGFyZ3ZbXSxpbnQgYXJnYyxjb25zdCBjaGFyICpvcHRz dHIsCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG9wdGlvbiAqbG9uZ29wdHMpCnsK CWludCBleGl0X2NvZGUgPSAwOyAvKiBXZSBhc3N1bWUgZXZlcnl0aGluZyB3aWxsIGJlIE9LICov CglpbnQgb3B0OwoJaW50IGxvbmdpbmRleDsKCWNvbnN0IGNoYXIgKmNoYXJwdHI7CgoJaWYgKHF1 aWV0X2Vycm9ycykgLyogTm8gZXJyb3IgcmVwb3J0aW5nIGZyb20gZ2V0b3B0KDMpICovCgkJb3B0 ZXJyPTA7CglvcHRpbmQ9MDsgLyogUmVzZXQgZ2V0b3B0KDMpICovCgojaWZkZWYgSEFWRV9HRVRP UFRfTE9OR19PTkxZCgl3aGlsZSAoKG9wdCA9IChhbHRlcm5hdGl2ZT8KCSAgICAgICAgICAgICAg Z2V0b3B0X2xvbmdfb25seShhcmdjLGFyZ3Ysb3B0c3RyLGxvbmdvcHRzLCZsb25naW5kZXgpOgoj ZWxzZQoJd2hpbGUgKChvcHQgPSAoCiNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgZ2V0b3B0 X2xvbmcoYXJnYyxhcmd2LG9wdHN0cixsb25nb3B0cywmbG9uZ2luZGV4KSkpIAogICAgICAgICAg ICAgICAhPSBFT0YpIAoJCWlmIChvcHQgPT0gJz8nIHx8IG9wdCA9PSAnOicgKQoJCQlleGl0X2Nv ZGUgPSAxOwoJCWVsc2UgaWYgKCFxdWlldF9vdXRwdXQpIAoJCXsKCQkJaWYgKG9wdCA9PSBMT05H X09QVCkgewoJCQkJcHJpbnRmKCIgLS0lcyIsbG9uZ29wdHNbbG9uZ2luZGV4XS5uYW1lKTsKCQkJ CWlmIChsb25nb3B0c1tsb25naW5kZXhdLmhhc19hcmcpIAoJCQkJCXByaW50ZigiICVzIiwKCQkJ CQkgICAgICAgbm9ybWFsaXplKG9wdGFyZz9vcHRhcmc6IiIpKTsKCQkJfSBlbHNlIGlmIChvcHQg PT0gTk9OX09QVCkgCgkJCQlwcmludGYoIiAlcyIsbm9ybWFsaXplKG9wdGFyZykpOyAKCQkJZWxz ZSB7CgkJCQlwcmludGYoIiAtJWMiLG9wdCk7CgkJCQljaGFycHRyID0gc3RyY2hyKG9wdHN0cixv cHQpOwoJCQkJaWYgKGNoYXJwdHIgIT0gTlVMTCAmJiAqKytjaGFycHRyID09ICc6JykKCQkJCQlw cmludGYoIiAlcyIsCgkJCQkJICAgICAgIG5vcm1hbGl6ZShvcHRhcmc/b3B0YXJnOiIiKSk7CgkJ CX0KCQl9CgkKCWlmICghIHF1aWV0X291dHB1dCkgewoJCXByaW50ZigiIC0tIik7CgkJd2hpbGUg KG9wdGluZCA8IGFyZ2MpIAoJCQlwcmludGYoIiAlcyIsbm9ybWFsaXplKGFyZ3Zbb3B0aW5kKytd KSk7CgkJcHJpbnRmKCJcbiIpOwoJfQoJcmV0dXJuIGV4aXRfY29kZTsKfQoKLyoKICogUmVwb3J0 IGFuIGVycm9yIHdoZW4gcGFyc2luZyBnZXRvcHQncyBvd24gYXJndW1lbnRzLgogKiBJZiBtZXNz YWdlIGlzIE5VTEwsIHdlIGFscmVhZHkgc2VudCBhIG1lc3NhZ2UsIHdlIGp1c3QgZXhpdCB3aXRo IGEgaGVscGZ1bAogKiBoaW50LgogKi8Kdm9pZCBwYXJzZV9lcnJvcihjb25zdCBjaGFyICptZXNz YWdlKQp7CglpZiAobWVzc2FnZSkKCQlmcHJpbnRmKHN0ZGVyciwiZ2V0b3B0OiAlc1xuIixtZXNz YWdlKTsKCWZwdXRzKF8oIlRyeSBgZ2V0b3B0IC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24u XG4iKSxzdGRlcnIpOwoJZXhpdCgyKTsKfQoKc3RhdGljIHN0cnVjdCBvcHRpb24gKmxvbmdfb3B0 aW9ucz1OVUxMOwpzdGF0aWMgaW50IGxvbmdfb3B0aW9uc19sZW5ndGg9MDsgLyogTGVuZ3RoIG9m IGFycmF5ICovCnN0YXRpYyBpbnQgbG9uZ19vcHRpb25zX25yPTA7IC8qIE5yIG9mIHVzZWQgZWxl bWVudHMgaW4gYXJyYXkgKi8KI2RlZmluZSBMT05HX09QVElPTlNfSU5DUiAxMAojZGVmaW5lIGlu aXRfbG9uZ29wdCgpIGFkZF9sb25nb3B0KE5VTEwsMCkKCi8qIFJlZ2lzdGVyIGEgbG9uZyBvcHRp b24uIFRoZSBjb250ZW50cyBvZiBuYW1lIGlzIGNvcGllZC4gKi8Kdm9pZCBhZGRfbG9uZ29wdChj b25zdCBjaGFyICpuYW1lLGludCBoYXNfYXJnKQp7CgljaGFyICp0bXA7CglpZiAoIW5hbWUpIHsg LyogaW5pdCAqLwoJCWZyZWUobG9uZ19vcHRpb25zKTsKCQlsb25nX29wdGlvbnM9TlVMTDsKCQls b25nX29wdGlvbnNfbGVuZ3RoPTA7CgkJbG9uZ19vcHRpb25zX25yPTA7Cgl9CgoJaWYgKGxvbmdf b3B0aW9uc19uciA9PSBsb25nX29wdGlvbnNfbGVuZ3RoKSB7CgkJbG9uZ19vcHRpb25zX2xlbmd0 aCArPSBMT05HX09QVElPTlNfSU5DUjsKCQlsb25nX29wdGlvbnM9b3VyX3JlYWxsb2MobG9uZ19v cHRpb25zLAoJCSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IG9wdGlvbikg KiAKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nX29wdGlvbnNfbGVuZ3RoKTsKCX0K Cglsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yXS5uYW1lPU5VTEw7Cglsb25nX29wdGlvbnNb bG9uZ19vcHRpb25zX25yXS5oYXNfYXJnPTA7Cglsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25y XS5mbGFnPU5VTEw7Cglsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yXS52YWw9MDsKCglpZiAo bG9uZ19vcHRpb25zX25yKSB7IC8qIE5vdCBmb3IgaW5pdCEgKi8KCQlsb25nX29wdGlvbnNbbG9u Z19vcHRpb25zX25yLTFdLmhhc19hcmc9aGFzX2FyZzsKCQlsb25nX29wdGlvbnNbbG9uZ19vcHRp b25zX25yLTFdLmZsYWc9TlVMTDsKCQlsb25nX29wdGlvbnNbbG9uZ19vcHRpb25zX25yLTFdLnZh bD1MT05HX09QVDsKCQl0bXAgPSBvdXJfbWFsbG9jKHN0cmxlbihuYW1lKSsxKTsKCQlzdHJjcHko dG1wLG5hbWUpOwoJCWxvbmdfb3B0aW9uc1tsb25nX29wdGlvbnNfbnItMV0ubmFtZT10bXA7Cgl9 Cglsb25nX29wdGlvbnNfbnIrKzsKfQoJCgovKiAKICogUmVnaXN0ZXIgc2V2ZXJhbCBsb25nIG9w dGlvbnMuIG9wdGlvbnMgaXMgYSBzdHJpbmcgb2YgbG9uZyBvcHRpb25zLCAKICogc2VwYXJhdGVk IGJ5IGNvbW1hcyBvciB3aGl0ZXNwYWNlLiAKICogVGhpcyBudWtlcyBvcHRpb25zISAKICovCnZv aWQgYWRkX2xvbmdfb3B0aW9ucyhjaGFyICpvcHRpb25zKQp7CglpbnQgYXJnX29wdDsKCWNoYXIg KnRva3B0cj1zdHJ0b2sob3B0aW9ucywiLCBcdFxuIik7Cgl3aGlsZSAodG9rcHRyKSB7CgkJYXJn X29wdD1ub19hcmd1bWVudDsKCQlpZiAoc3RybGVuKHRva3B0cikgPiAwKSB7CgkJCWlmICh0b2tw dHJbc3RybGVuKHRva3B0ciktMV0gPT0gJzonKSB7CgkJCQlpZiAodG9rcHRyW3N0cmxlbih0b2tw dHIpLTJdID09ICc6JykgewoJCQkJCXRva3B0cltzdHJsZW4odG9rcHRyKS0yXT0nXDAnOwoJCQkJ CWFyZ19vcHQ9b3B0aW9uYWxfYXJndW1lbnQ7CgkJCQl9IGVsc2UgewoJCQkJCXRva3B0cltzdHJs ZW4odG9rcHRyKS0xXT0nXDAnOwoJCQkJCWFyZ19vcHQ9cmVxdWlyZWRfYXJndW1lbnQ7CgkJCQl9 CgkJCQlpZiAoc3RybGVuKHRva3B0cikgPT0gMCkKCQkJCQlwYXJzZV9lcnJvcihfKCJlbXB0eSBs b25nIG9wdGlvbiBhZnRlciAiCgkJCQkJICAgICAgICAgICAgICAiLWwgb3IgLS1sb25nIGFyZ3Vt ZW50IikpOwoJCQl9CgkJCWFkZF9sb25nb3B0KHRva3B0cixhcmdfb3B0KTsKCQl9CgkJdG9rcHRy PXN0cnRvayhOVUxMLCIsIFx0XG4iKTsKCX0KfQoKdm9pZCBzZXRfc2hlbGwoY29uc3QgY2hhciAq bmV3X3NoZWxsKQp7CglpZiAoIXN0cmNtcChuZXdfc2hlbGwsImJhc2giKSkKCQlzaGVsbD1CQVNI OwoJZWxzZSBpZiAoIXN0cmNtcChuZXdfc2hlbGwsInRjc2giKSkKCQlzaGVsbD1UQ1NIOwoJZWxz ZSBpZiAoIXN0cmNtcChuZXdfc2hlbGwsInNoIikpCgkJc2hlbGw9QkFTSDsKCWVsc2UgaWYgKCFz dHJjbXAobmV3X3NoZWxsLCJjc2giKSkKCQlzaGVsbD1UQ1NIOwoJZWxzZQoJCXBhcnNlX2Vycm9y KF8oInVua25vd24gc2hlbGwgYWZ0ZXIgLXMgb3IgLS1zaGVsbCBhcmd1bWVudCIpKTsKfQoKdm9p ZCBwcmludF9oZWxwKHZvaWQpCnsKCWZwdXRzKF8oIlVzYWdlOiBnZXRvcHQgb3B0c3RyaW5nIHBh cmFtZXRlcnNcbiIpLHN0ZGVycik7CglmcHV0cyhfKCIgICAgICAgZ2V0b3B0IFtvcHRpb25zXSBb LS1dIG9wdHN0cmluZyBwYXJhbWV0ZXJzXG4iKSxzdGRlcnIpOwoJZnB1dHMoXygiICAgICAgIGdl dG9wdCBbb3B0aW9uc10gLW98LS1vcHRpb25zIG9wdHN0cmluZyBbb3B0aW9uc10gWy0tXVxuIiks c3RkZXJyKTsKCWZwdXRzKF8oIiAgICAgICAgICAgICAgcGFyYW1ldGVyc1xuIiksc3RkZXJyKTsK I2lmZGVmIEhBVkVfR0VUT1BUX0xPTkdfT05MWQoJZnB1dHMoXygiICAtYSwgLS1hbHRlcm5hdGl2 ZSAgICAgICAgICAgIEFsbG93IGxvbmcgb3B0aW9ucyBzdGFydGluZyB3aXRoIHNpbmdsZSAtXG4i KSxzdGRlcnIpOwojZW5kaWYKCWZwdXRzKF8oIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAg ICBUaGlzIHNtYWxsIHVzYWdlIGd1aWRlXG4iKSxzdGRlcnIpOwoJZnB1dHMoXygiICAtbCwgLS1s b25nb3B0aW9ucz1sb25nb3B0cyAgIExvbmcgb3B0aW9ucyB0byBiZSByZWNvZ25pemVkXG4iKSxz dGRlcnIpOwoJZnB1dHMoXygiICAtbiwgLS1uYW1lPXByb2duYW1lICAgICAgICAgIFRoZSBuYW1l IHVuZGVyIHdoaWNoIGVycm9ycyBhcmUgcmVwb3J0ZWRcbiIpLHN0ZGVycik7CglmcHV0cyhfKCIg IC1vLCAtLW9wdGlvbnM9b3B0c3RyaW5nICAgICAgU2hvcnQgb3B0aW9ucyB0byBiZSByZWNvZ25p emVkXG4iKSxzdGRlcnIpOwoJZnB1dHMoXygiICAtcSwgLS1xdWlldCAgICAgICAgICAgICAgICAg IERpc2FibGUgZXJyb3IgcmVwb3J0aW5nIGJ5IGdldG9wdCgzKVxuIiksc3RkZXJyKTsKCWZwdXRz KF8oIiAgLVEsIC0tcXVpZXQtb3V0cHV0ICAgICAgICAgICBObyBub3JtYWwgb3V0cHV0XG4iKSxz dGRlcnIpOwoJZnB1dHMoXygiICAtcywgLS1zaGVsbD1zaGVsbCAgICAgICAgICAgIFNldCBzaGVs bCBxdW90aW5nIGNvbnZlbnRpb25zXG4iKSxzdGRlcnIpOwkKCWZwdXRzKF8oIiAgLVQsIC0tdGVz dCAgICAgICAgICAgICAgICAgICBUZXN0IGZvciBnZXRvcHQoMSkgdmVyc2lvblxuIiksc3RkZXJy KTsKCWZwdXRzKF8oIiAgLXUsIC0tdW5xb3RlICAgICAgICAgICAgICAgICBEbyBub3QgcXVvdGUg dGhlIG91dHB1dFxuIiksc3RkZXJyKTsKCWZwdXRzKF8oIiAgLVYsIC0tdmVyc2lvbiAgICAgICAg ICAgICAgICBPdXRwdXQgdmVyc2lvbiBpbmZvcm1hdGlvblxuIiksc3RkZXJyKTsKCWV4aXQoMik7 Cn0KCQovKiBFeGl0IGNvZGVzOgogKiAgIDApIE5vIGVycm9ycywgc3VjY2VzZnVsIG9wZXJhdGlv bi4KICogICAxKSBnZXRvcHQoMykgcmV0dXJuZWQgYW4gZXJyb3IuCiAqICAgMikgQSBwcm9ibGVt IHdpdGggcGFyYW1ldGVyIHBhcnNpbmcgZm9yIGdldG9wdCgxKS4KICogICAzKSBJbnRlcm5hbCBl cnJvciwgb3V0IG9mIG1lbW9yeQogKiAgIDQpIFJldHVybmVkIGZvciAtVAogKi8KCnN0YXRpYyBz dHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzW109eyB7Im9wdGlvbnMiLHJlcXVpcmVkX2FyZ3VtZW50LE5V TEwsJ28nfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibG9uZ29wdGlvbnMi LHJlcXVpcmVkX2FyZ3VtZW50LE5VTEwsJ2wnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsicXVpZXQiLG5vX2FyZ3VtZW50LE5VTEwsJ3EnfSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsicXVpZXQtb3V0cHV0Iixub19hcmd1bWVudCxOVUxMLCdRJ30sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InNoZWxsIixyZXF1aXJlZF9hcmd1bWVu dCxOVUxMLCdzJ30sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InRlc3QiLG5v X2FyZ3VtZW50LE5VTEwsJ1QnfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsi dW5xdW90ZWQiLG5vX2FyZ3VtZW50LE5VTEwsJ3UnfSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsiaGVscCIsbm9fYXJndW1lbnQsTlVMTCwnaCd9LAojaWZkZWYgSEFWRV9HRVRP UFRfTE9OR19PTkxZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImFsdGVybmF0 aXZlIixub19hcmd1bWVudCxOVUxMLCdhJ30sCiNlbmRpZgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeyJuYW1lIixyZXF1aXJlZF9hcmd1bWVudCxOVUxMLCduJ30sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7InZlcnNpb24iLG5vX2FyZ3VtZW50LE5VTEwsJ1Yn fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtOVUxMLDAsTlVMTCwwfQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CgovKiBTdG9wIHNjYW5uaW5nIGFzIHNvb24g YXMgYSBub24tb3B0aW9uIGFyZ3VtZW50IGlzIGZvdW5kISAqLwpzdGF0aWMgY29uc3QgY2hhciAq c2hvcnRvcHRzPSIrYW86bDpuOnFRczpUdWhWIjsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICph cmd2W10pCnsKCWNoYXIgKm9wdHN0cj1OVUxMOwoJY2hhciAqbmFtZT1OVUxMOwoJaW50IG9wdDsK CWludCBjb21wYXRpYmxlPTA7CgoJaW5pdF9sb25nb3B0KCk7CgoJaWYgKGdldGVudigiR0VUT1BU X0NPTVBBVElCTEUiKSkgCgkJY29tcGF0aWJsZT0xOwoKCWlmIChhcmdjID09IDEpIAoJewoJCWlm IChjb21wYXRpYmxlKSB7CgkJCS8qIEZvciBzb21lIHJlYXNvbiwgdGhlIG9yaWdpbmFsIGdldG9w dCBnYXZlIG5vIGVycm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlcmUgd2Vy ZSBubyBhcmd1bWVudHMuICovCgkJCXByaW50ZigiIC0tXG4iKTsKCQkJZXhpdCgwKTsKCQl9CgkJ ZWxzZQoJCQlwYXJzZV9lcnJvcihfKCJtaXNzaW5nIG9wdHN0cmluZyBhcmd1bWVudCIpKTsKCX0K CQoJaWYgKGFyZ3ZbMV1bMF0gIT0gJy0nIHx8IGNvbXBhdGlibGUpIHsKCQlxdW90ZT0wOwoJCW9w dHN0cj1vdXJfbWFsbG9jKHN0cmxlbihhcmd2WzFdKSsxKTsKCQlzdHJjcHkob3B0c3RyLGFyZ3Zb MV0rc3Ryc3BuKGFyZ3ZbMV0sIi0rIikpOwoJCWFyZ3ZbMV09YXJndlswXTsKCQlleGl0KGdlbmVy YXRlX291dHB1dChhcmd2KzEsYXJnYy0xLG9wdHN0cixsb25nX29wdGlvbnMpKTsKCX0KCQoJd2hp bGUgKChvcHQ9Z2V0b3B0X2xvbmcoYXJnYyxhcmd2LHNob3J0b3B0cyxsb25nb3B0cyxOVUxMKSkg IT0gRU9GKSAKCQlzd2l0Y2ggKG9wdCkgewojaWZkZWYgSEFWRV9HRVRPUFRfTE9OR19PTkxZCgkJ Y2FzZSAnYSc6CgkJCWFsdGVybmF0aXZlPTE7CgkJCWJyZWFrOwojZW5kaWYKCQljYXNlICdoJzoK CQkJcHJpbnRfaGVscCgpOwoJCQlleGl0KDApOwoJCWNhc2UgJ28nOgoJCQlpZiAob3B0c3RyKQoJ CQkJZnJlZShvcHRzdHIpOwoJCQlvcHRzdHI9b3VyX21hbGxvYyhzdHJsZW4ob3B0YXJnKSsxKTsK CQkJc3RyY3B5KG9wdHN0cixvcHRhcmcpOwoJCQlicmVhazsKCQljYXNlICdsJzoKCQkJYWRkX2xv bmdfb3B0aW9ucyhvcHRhcmcpOwoJCQlicmVhazsKCQljYXNlICduJzoKCQkJaWYgKG5hbWUpCgkJ CQlmcmVlKG5hbWUpOwoJCQluYW1lPW91cl9tYWxsb2Moc3RybGVuKG9wdGFyZykrMSk7CgkJCXN0 cmNweShuYW1lLG9wdGFyZyk7CgkJCWJyZWFrOwoJCWNhc2UgJ3EnOgoJCQlxdWlldF9lcnJvcnM9 MTsKCQkJYnJlYWs7CgkJY2FzZSAnUSc6CgkJCXF1aWV0X291dHB1dD0xOwoJCQlicmVhazsKCQlj YXNlICdzJzoKCQkJc2V0X3NoZWxsKG9wdGFyZyk7CgkJCWJyZWFrOwoJCWNhc2UgJ1QnOgoJCQll eGl0KDQpOwoJCWNhc2UgJ3UnOgoJCQlxdW90ZT0wOwoJCQlicmVhazsKCQljYXNlICdWJzoKCQkJ cHJpbnRmKF8oImdldG9wdCAoZW5oYW5jZWQpIDEuMS4yXG4iKSk7CgkJCWV4aXQoMCk7CgkJY2Fz ZSAnPyc6CgkJY2FzZSAnOic6CgkJCXBhcnNlX2Vycm9yKE5VTEwpOwoJCWRlZmF1bHQ6CgkJCXBh cnNlX2Vycm9yKF8oImludGVybmFsIGVycm9yLCBjb250YWN0IHRoZSBhdXRob3IuIikpOwoJCX0K CQoJaWYgKCFvcHRzdHIpIAoJewoJCWlmIChvcHRpbmQgPj0gYXJnYykKCQkJcGFyc2VfZXJyb3Io XygibWlzc2luZyBvcHRzdHJpbmcgYXJndW1lbnQiKSk7CgkJZWxzZSB7CgkJCW9wdHN0cj1vdXJf bWFsbG9jKHN0cmxlbihhcmd2W29wdGluZF0pKzEpOwoJCQlzdHJjcHkob3B0c3RyLGFyZ3Zbb3B0 aW5kXSk7CgkJCW9wdGluZCsrOwoJCX0KCX0KCWlmIChuYW1lKQoJCWFyZ3Zbb3B0aW5kLTFdPW5h bWU7CgllbHNlCgkJYXJndltvcHRpbmQtMV09YXJndlswXTsKCWV4aXQoZ2VuZXJhdGVfb3V0cHV0 KGFyZ3Yrb3B0aW5kLTEsYXJnYy1vcHRpbmQrMSxvcHRzdHIsbG9uZ19vcHRpb25zKSk7Cn0K ------------721C43615FEFFA Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------------721C43615FEFFA--