[MINC-development] Another pass at micreate_tempfile()

Robert VINCENT minc-development@bic.mni.mcgill.ca
Thu, 13 Mar 2003 13:54:20 -0500


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---2066828793-2035456016-1047581660=:8287168
Content-Type: TEXT/PLAIN; charset=US-ASCII

After a brief hiatus, here is a revised take on the micreate_tempfile()
function for your comments...

The new version of the function returns a malloc'd string, or NULL on
error.  It takes no arguments.

The relevant diffs are enclosed.

	-bert







---2066828793-2035456016-1047581660=:8287168
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="diffs.txt"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SGI.4.44.0303131354200.8287168@shadow.bic.mni.mcgill.ca>
Content-Description: 
Content-Disposition: attachment; filename="diffs.txt"

SW5kZXg6IGNvbmZpZ3VyZS5pbg0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
UkNTIGZpbGU6IC9zb2Z0d2FyZS9zb3VyY2UvbWluYy9jdnNyb290L21pbmMv
Y29uZmlndXJlLmluLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gNi44DQpkaWZm
IC11IC1yNi44IGNvbmZpZ3VyZS5pbg0KLS0tIGNvbmZpZ3VyZS5pbgkxNyBG
ZWIgMjAwMyAyMTowMTo1NyAtMDAwMAk2LjgNCisrKyBjb25maWd1cmUuaW4J
NyBNYXIgMjAwMyAxNzoxNDoyNiAtMDAwMA0KQEAgLTMzLDYgKzMzLDkgQEAN
CiBkbmwgbmVlZCBhYyAyLjU3IGZvciB0aGlzPyBBQ19DT05GSUdfTElCT0JK
X0RJUihsaWJzcmMpDQogQUNfUkVQTEFDRV9GVU5DUyhzdHJkdXApDQogDQor
ZG5sIFZlcmlmeSBleGlzdGVuY2Ugb2YgbWtzdGVtcCwgdGVtcG5hbSwgYW5k
IHRtcG5hbQ0KK0FDX0NIRUNLX0ZVTkNTKG1rc3RlbXAgdGVtcG5hbSB0bXBu
YW0pDQorDQogZG5sIFRoaXMgbGluayBpcyBuZWVkZWQgdG8gYWxsb3cgPHZv
bHVtZV9pby9mb28uaD4gc3R5bGUgaW5jbHVkZXMuDQogQUNfQ09ORklHX0xJ
TktTKHZvbHVtZV9pby9JbmNsdWRlL3ZvbHVtZV9pbzp2b2x1bWVfaW8vSW5j
bHVkZSkNCiANCkluZGV4OiBsaWJzcmMvbWluYy5oDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQpSQ1MgZmlsZTogL3NvZnR3YXJlL3NvdXJjZS9taW5jL2N2
c3Jvb3QvbWluYy9saWJzcmMvbWluYy5oLHYNCnJldHJpZXZpbmcgcmV2aXNp
b24gNi44DQpkaWZmIC11IC1yNi44IG1pbmMuaA0KLS0tIGxpYnNyYy9taW5j
LmgJMTMgTm92IDIwMDEgMTQ6MTU6MTcgLTAwMDAJNi44DQorKysgbGlic3Jj
L21pbmMuaAkxMCBNYXIgMjAwMyAxODo1NjowNyAtMDAwMA0KQEAgLTQ2Miw2
ICs0NjIsNyBAQA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgZXhjbHVkZWRfdmFyc1tdKTsNCiBwdWJsaWMgaW50IG1pY29weV9hbGxf
dmFyX3ZhbHVlcyhpbnQgaW5jZGZpZCwgaW50IG91dGNkZmlkLCBpbnQgbmV4
Y2x1ZGUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IGV4Y2x1ZGVkX3ZhcnNbXSk7DQorcHVibGljIGNoYXIgKm1pY3JlYXRlX3Rl
bXBmaWxlKHZvaWQpOw0KIA0KIC8qIEZyb20gbWluY19jb252ZW5pZW5jZS5j
ICovDQogcHVibGljIGludCBtaWdldF9kYXRhdHlwZShpbnQgY2RmaWQsIGlu
dCBpbWdpZCwgDQoNCkluZGV4OiBsaWJzcmMvbmV0Y2RmX2NvbnZlbmllbmNl
LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc29mdHdh
cmUvc291cmNlL21pbmMvY3Zzcm9vdC9taW5jL2xpYnNyYy9uZXRjZGZfY29u
dmVuaWVuY2UuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDYuNw0KZGlmZiAt
dSAtcjYuNyBuZXRjZGZfY29udmVuaWVuY2UuYw0KLS0tIGxpYnNyYy9uZXRj
ZGZfY29udmVuaWVuY2UuYwkyMCBBdWcgMjAwMSAxMzoxOToxNSAtMDAwMAk2
LjcNCisrKyBsaWJzcmMvbmV0Y2RmX2NvbnZlbmllbmNlLmMJMTMgTWFyIDIw
MDMgMTY6MzE6MjQgLTAwMDANCkBAIC0xMzUsMTAgKzEzNSwxMiBAQA0KIHN0
YXRpYyBjaGFyIHJjc2lkW10gPSAiJEhlYWRlcjogL3NvZnR3YXJlL3NvdXJj
ZS9taW5jL2N2c3Jvb3QvbWluYy9saWJzcmMvbmV0Y2RmX2NvbnZlbmllbmNl
LmMsdiA2LjcgMjAwMS8wOC8yMCAxMzoxOToxNSBuZWVsaW4gRXhwICQgTUlO
QyAoTU5JKSI7DQogI2VuZGlmDQogDQorI2luY2x1ZGUgImNvbmZpZy5oIgkJ
LyogRnJvbSBjb25maWd1cmUgKi8NCiAjaW5jbHVkZSA8bWluY19wcml2YXRl
Lmg+DQogI2lmZGVmIHVuaXgNCiAjaW5jbHVkZSA8dW5pc3RkLmg+DQogI2lu
Y2x1ZGUgPHN5cy93YWl0Lmg+DQorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CQkv
KiBGb3IgU19JUkVBRCwgU19JV1JJVEUgKi8NCiAjZW5kaWYNCiANCiAvKiBQ
cml2YXRlIGZ1bmN0aW9ucyAqLw0KQEAgLTQxOSw3ICs0MjEsNyBAQA0KIA0K
ICAgIC8qIENyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlIG5hbWUgKi8NCiAgICBp
ZiAodGVtcGZpbGUgPT0gTlVMTCkgew0KLSAgICAgIG5ld2ZpbGUgPSB0ZW1w
bmFtKE5VTEwsIE5VTEwpOw0KKyAgICAgbmV3ZmlsZSA9IG1pY3JlYXRlX3Rl
bXBmaWxlKCk7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgIG5ld2ZpbGUg
PSBzdHJkdXAodGVtcGZpbGUpOw0KQEAgLTE1MjIsNCArMTUyNCwxMDYgQEAN
CiANCiAgICBNSV9SRVRVUk4oTUlfTk9FUlJPUik7DQogICAgICAgIA0KK30N
CisNCisMDQorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTU5J
IEhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K
K0BOQU1FICAgICAgIDogbWljcmVhdGVfdGVtcGZpbGUNCitASU5QVVQgICAg
ICA6IHZvaWQNCitAT1VUUFVUICAgICA6IChub25lKQ0KK0BSRVRVUk5TICAg
IDogUG9pbnRlciB0byBmaWxlbmFtZSAod2hpY2ggbXVzdCBiZSBmcmVlZCks
IG9yIE5VTEwgaWYgYW4gZXJyb3INCisgICAgICAgICAgICAgIG9jY3Vycy4N
CitAREVTQ1JJUFRJT046IENyZWF0ZXMgYSB0ZW1wb3JhcnkgZmlsZSAod2hp
Y2ggaXMgaW5pdGlhbGx5IENMT1NFRCkuDQorQE1FVEhPRCAgICAgOiBVbm5l
Y2Vzc2FyaWx5IGNvbnZvbHV0ZWQsIEkgc3VwcG9zZS4uLiBTZWUgY29tbWVu
dHMuDQorQEdMT0JBTFMgICAgOiANCitAQ0FMTFMgICAgICA6IFN0YW5kYXJk
IFBPU0lYL1VOSVggcm91dGluZXMNCitAQ1JFQVRFRCAgICA6IDA3LU1hcmNo
LTIwMDMgYnkgYmVydEBiaWMubW5pLm1jZ2lsbC5jYQ0KK0BNT0RJRklFRCAg
IDogDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KKw0K
Ky8qIEZvcmNlIFBfdG1wZGlyIHRvIGJlIHNvbWV0aGluZyByZWFzb25hYmxl
LiAqLw0KKyNpZiAhZGVmaW5lZChQX3RtcGRpcikNCisjZGVmaW5lIFBfdG1w
ZGlyICIvdmFyL3RtcCINCisjZW5kaWYgLyogUF90bXBkaXIgbm90IGRlZmlu
ZWQgKi8NCisNCitwdWJsaWMgY2hhciAqDQorbWljcmVhdGVfdGVtcGZpbGUo
dm9pZCkNCit7DQorICBpbnQgdG1wX2ZkOw0KKyAgY2hhciAqdG1wZmlsZV9w
dHI7DQorDQorI2lmIGRlZmluZWQgKEhBVkVfTUtTVEVNUCkNCisNCisgIC8q
IEJlc3QtY2FzZSBzY2VuYXJpbyAoc28gZmFyLi4uKQ0KKyAgICogbWtzdGVt
cCgpIGNyZWF0ZXMgYSBmaWxlIGltbWVkaWF0ZWx5LCBtaW5pbWl6aW5nIHRo
ZSByYWNlDQorICAgKiBjb25kaXRpb25zIHRoYXQgZXhpc3Qgd2hlbiB1c2lu
ZyB0aGUgb3RoZXIgZnVuY3Rpb25zLiAgVGhlc2UgcmFjZQ0KKyAgICogY29u
ZGl0aW9ucyBjYW4gbGVhZCB0byBzbWFsbCBzZWN1cml0eSBob2xlcyAoYW5k
IGxhcmdlLCBhbm5veWluZw0KKyAgICogR05VIGxpbmtlciBtZXNzYWdlcyku
DQorICAgKg0KKyAgICogVGhlIG9ubHkgY2F0Y2ggaXMgdGhhdCBta3N0ZW1w
KCkgZG9lcyBub3QgYXV0b21hdGljYWxseSBwdXQgdGhlIA0KKyAgICogZmls
ZSBpbiB0aGUgVE1QRElSIGRpcmVjdG9yeSAob3Igc29tZSBvdGhlciBhcHBy
b3ByaWF0ZSBwbGFjZSkuDQorICAgKiBTbyBJIG1vcmUtb3ItbGVzcyBlbXVs
YXRlIHRoYXQgYmVoYXZpb3IgaGVyZS4NCisgICAqLw0KKyAgY29uc3QgY2hh
ciBwYXRfc3RyW10gPSAiL21pbmMtWFhYWFhYIjsNCisgIGNoYXIgKnRtcGRp
cl9wdHI7DQorDQorICBpZiAoKHRtcGRpcl9wdHIgPSBnZXRlbnYoIlRNUERJ
UiIpKSA9PSBOVUxMKSB7DQorICAgIHRtcGRpcl9wdHIgPSBQX3RtcGRpcjsN
CisgIH0NCisgIHRtcGZpbGVfcHRyID0gbWFsbG9jKHN0cmxlbih0bXBkaXJf
cHRyKSArIHNpemVvZiAocGF0X3N0cikpOw0KKyAgaWYgKHRtcGZpbGVfcHRy
ICE9IE5VTEwpIHsNCisgICAgc3RyY3B5KHRtcGZpbGVfcHRyLCB0bXBkaXJf
cHRyKTsNCisgICAgc3RyY2F0KHRtcGZpbGVfcHRyLCBwYXRfc3RyKTsNCisg
ICAgdG1wX2ZkID0gbWtzdGVtcCh0bXBmaWxlX3B0cik7IC8qIENyZWF0ZXMg
dGhlIGZpbGUgaWYgcG9zc2libGUuICovDQorICB9DQorICBlbHNlIHsNCisg
ICAgdG1wX2ZkID0gLTE7CQkvKiBFcnJvciwgb3V0IG9mIG1lbW9yeSAqLw0K
KyAgfQ0KKw0KKyNlbGlmIGRlZmluZWQgKEhBVkVfVEVNUE5BTSkNCisNCisg
IC8qIFNlY29uZC1iZXN0IGNhc2UuICBXaGlsZSBub3QgY29tcGxldGVseSBh
dm9pZGluZyB0aGUgcmFjZSBjb25kaXRpb24sDQorICAgKiB0aGlzIGFwcHJv
YWNoIHNob3VsZCBhdCBsZWFzdCBoYXZlIHRoZSBuaWNlIHByb3BlcnR5IG9m
IHB1dHRpbmcgdGhlDQorICAgKiB0ZW1wZmlsZSBpbiB0aGUgcmlnaHQgZGly
ZWN0b3J5Lg0KKyAgICovDQorICBpZiAoKHRtcGZpbGVfcHRyID0gdGVtcG5h
bShOVUxMLCAibWluYy0iKSkgIT0gTlVMTCkgew0KKyAgICB0bXBfZmQgPSBv
cGVuKHRtcGZpbGVfcHRyLCBPX0NSRUFUIHwgT19FWENMIHwgT19SRFdSLA0K
KwkJICBTX0lXUklURSB8IFNfSVJFQUQpOyAvKiBDcmVhdGUgdGhlIGZpbGUu
ICovDQorICB9DQorDQorI2VsaWYgZGVmaW5lZCAoSEFWRV9UTVBOQU0pDQor
ICAvKiBXb3JzdCBjYXNlLiAgdG1wbmFtKCkgaXMgYXBwYXJlbnRseSB0aGUg
d29yc3Qgb2YgYWxsIHBvc3NpYmxlIHdvcmxkcw0KKyAgICogaGVyZS4gIEl0
IGRvZXNuJ3QgYWxsb3cgYW55IHdheSB0byBmb3JjZSBhIHBhcnRpY3VsYXIg
ZGlyZWN0b3J5LA0KKyAgICogYW5kIGl0IGRvZXNuJ3QgYXZvaWQgdGhlIHJh
Y2UgY29uZGl0aW9uLiAgQnV0IHZvbHVtZV9pbyB1c2VkIGl0IGZvcg0KKyAg
ICogeWVhcnMsIHNvIEkgc2VlIG5vIHJlYXNvbiB0byBkaXNhbGxvdyB0aGlz
IGNhc2UgZm9yIHN5c3RlbXMgdGhhdCANCisgICAqIG1pZ2h0IG5vdCBkZWZp
bmUgdGhlIGFib3ZlIHR3byBmdW5jdGlvbnMgKHdoZXRoZXIgYW55IHN1Y2gg
c3lzdGVtcw0KKyAgICogZXhpc3QgaXMgdW5jbGVhciB0byBtZSkuDQorICAg
Ki8NCisgIHRtcGZpbGVfcHRyID0gbWFsbG9jKExfdG1wbmFtICsgMSk7DQor
ICBpZiAodG1wZmlsZV9wdHIgIT0gTlVMTCkgew0KKyAgICBpZiAodG1wbmFt
KHRtcGZpbGVfcHRyKSA9PSBOVUxMKSB7DQorICAgICAgZnJlZSh0bXBmaWxl
X3B0cik7DQorICAgICAgdG1wZmlsZV9wdHIgPSBOVUxMOw0KKyAgICB9DQor
ICAgIGVsc2Ugew0KKyAgICAgIHRtcF9mZCA9IG9wZW4odG1wZmlsZV9wdHIs
IE9fQ1JFQVQgfCBPX0VYQ0wgfCBPX1JEV1IsDQorCQkgICAgU19JV1JJVEUg
fCBTX0lSRUFEKTsgLyogQ3JlYXRlIHRoZSBmaWxlLiAqLw0KKyAgICB9DQor
ICB9DQorDQorI2Vsc2UNCisjZXJyb3IgIlN5c3RlbSBkZWZpbmVzIG5laXRo
ZXIgbWtzdGVtcCgpLCB0ZW1wbmFtKCksIG5vciB0bXBuYW0oKSINCisjZW5k
aWYgLyogTmVpdGhlciBIQVZFX01LU1RFTVAsIEhBVkVfVEVNUE5BTSwgb3Ig
SEFWRV9UTVBOQU0gZGVmaW5lZC4gKi8NCisNCisgIC8qIElmIHdlIGdldCBo
ZXJlLCB0bXBfZmQgc2hvdWxkIGhhdmUgYmVlbiBvcGVuZWQgYW5kIHRoZSBm
aWxlDQorICAgKiBjcmVhdGVkLiAgTm93IGdvIGFoZWFkIGFuZCBjbG9zZSB0
aGUgZmlsZS4NCisgICAqLw0KKyAgaWYgKHRtcF9mZCA+PSAwKSB7DQorICAg
IGNsb3NlKHRtcF9mZCk7DQorICB9DQorICBlbHNlIHsNCisgICAgZnJlZSh0
bXBmaWxlX3B0cik7DQorICAgIHRtcGZpbGVfcHRyID0gTlVMTDsNCisgIH0N
CisgIHJldHVybiAodG1wZmlsZV9wdHIpOw0KIH0NCg0KSW5kZXg6IHZvbHVt
ZV9pby9Qcm9nX3V0aWxzL2ZpbGVzLmMNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvc29mdHdhcmUvc291cmNlL21pbmMvY3Zzcm9vdC9t
aW5jL3ZvbHVtZV9pby9Qcm9nX3V0aWxzL2ZpbGVzLmMsdg0KcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjM3DQpkaWZmIC11IC1yMS4zNyBmaWxlcy5jDQotLS0g
dm9sdW1lX2lvL1Byb2dfdXRpbHMvZmlsZXMuYwkxMyBTZXAgMjAwMCAxNDoz
MjoyNiAtMDAwMAkxLjM3DQorKysgdm9sdW1lX2lvL1Byb2dfdXRpbHMvZmls
ZXMuYwkxMSBNYXIgMjAwMyAxODowNDo0MyAtMDAwMA0KQEAgLTgwNSwxMSAr
ODA1LDcgQEANCiANCiBwdWJsaWMgIFNUUklORyAgZ2V0X3RlbXBvcmFyeV9m
aWxlbmFtZSggdm9pZCApDQogew0KLSAgICBjaGFyICAgICB0bXBfbmFtZVtM
X3RtcG5hbSsxXTsNCi0NCi0gICAgKHZvaWQpIHRtcG5hbSggdG1wX25hbWUg
KTsNCi0NCi0gICAgcmV0dXJuKCBjcmVhdGVfc3RyaW5nKCB0bXBfbmFtZSAp
ICk7DQorICAgIHJldHVybiBtaWNyZWF0ZV90ZW1wZmlsZSgpOw0KIH0NCiAN
CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNTkkgSGVhZGVy
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpAQCAtODM1
LDcgKzgzMSw3IEBADQogew0KICAgICBTdGF0dXMgICBzdGF0dXM7DQogICAg
IGludCAgICAgIGk7DQotICAgIGNoYXIgICAgIHRtcF9uYW1lW0xfdG1wbmFt
KzFdOw0KKyAgICBjaGFyICAgICAqdG1wX25hbWU7DQogICAgIGNoYXIgICAg
IGNvbW1hbmRbRVhUUkVNRUxZX0xBUkdFX1NUUklOR19TSVpFXTsNCiAgICAg
U1RSSU5HICAgYWNjZXNzX3N0ciwgZXhwYW5kZWQ7DQogICAgIEJPT0xFQU4g
IGd6aXBwZWQ7DQpAQCAtODk1LDcgKzg5MSw3IEBADQogICAgIHsNCiAgICAg
ICAgIC8qIC0tLSB1bmNvbXByZXNzIHRvIGEgdGVtcG9yYXJ5IGZpbGUgKi8N
CiANCi0gICAgICAgICh2b2lkKSB0bXBuYW0oIHRtcF9uYW1lICk7DQorICAg
ICAgICB0bXBfbmFtZSA9IGdldF90ZW1wb3JhcnlfZmlsZW5hbWUoKTsNCiAN
CiAgICAgICAgICh2b2lkKSBzcHJpbnRmKCBjb21tYW5kLCAiZ3VuemlwIC1j
ICVzID4gJXMiLCBleHBhbmRlZCwgdG1wX25hbWUgKTsNCiAgICAgICAgIGNv
bW1hbmRfc3RhdHVzID0gc3lzdGVtKCBjb21tYW5kICk7DQpAQCAtOTE2LDYg
KzkxMiw4IEBADQogICAgICAgICB9DQogICAgICAgICBlbHNlDQogICAgICAg
ICAgICAgcmVwbGFjZV9zdHJpbmcoICZleHBhbmRlZCwgY3JlYXRlX3N0cmlu
Zyh0bXBfbmFtZSkgKTsNCisNCisgICAgICAgIGZyZWUodG1wX25hbWUpOw0K
ICAgICB9DQogDQogICAgIC8qIC0tLSBmaW5hbGx5LCBvcGVuIHRoZSBmaWxl
ICovDQoNCkluZGV4OiB2b2x1bWVfaW8vVm9sdW1lcy92b2x1bWVfY2FjaGUu
Yw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9zb2Z0d2Fy
ZS9zb3VyY2UvbWluYy9jdnNyb290L21pbmMvdm9sdW1lX2lvL1ZvbHVtZXMv
dm9sdW1lX2NhY2hlLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjI1DQpk
aWZmIC11IC1yMS4yNSB2b2x1bWVfY2FjaGUuYw0KLS0tIHZvbHVtZV9pby9W
b2x1bWVzL3ZvbHVtZV9jYWNoZS5jCTE3IE1heSAxOTk2IDE5OjM2OjIzIC0w
MDAwCTEuMjUNCisrKyB2b2x1bWVfaW8vVm9sdW1lcy92b2x1bWVfY2FjaGUu
YwkxMSBNYXIgMjAwMyAxODowNTo0OCAtMDAwMA0KQEAgLTg2MCw3ICs4NjAs
NiBAQA0KICAgICBpbnQgICAgICAgIG91dF9zaXplc1tNQVhfRElNRU5TSU9O
U10sIHZvbF9zaXplc1tNQVhfRElNRU5TSU9OU107DQogICAgIFJlYWwgICAg
ICAgbWluX3ZhbHVlLCBtYXhfdmFsdWU7DQogICAgIE1pbmNfZmlsZSAgb3V0
X21pbmNfZmlsZTsNCi0gICAgY2hhciAgICAgICB0bXBfbmFtZVtMX3RtcG5h
bSsxXTsNCiAgICAgU1RSSU5HICAgICAqdm9sX2RpbV9uYW1lczsNCiAgICAg
U1RSSU5HICAgICAqb3V0X2RpbV9uYW1lcywgb3V0cHV0X2ZpbGVuYW1lOw0K
IA0KQEAgLTg3MSw5ICs4NzAsNyBAQA0KICAgICBpZiggc3RyaW5nX2xlbmd0
aCggY2FjaGUtPm91dHB1dF9maWxlbmFtZSApID09IDAgKQ0KICAgICB7DQog
ICAgICAgICBjYWNoZS0+d3JpdGluZ190b190ZW1wX2ZpbGUgPSBUUlVFOw0K
LSAgICAgICAgKHZvaWQpIHRtcG5hbSggdG1wX25hbWUgKTsNCi0gICAgICAg
IG91dHB1dF9maWxlbmFtZSA9IGNvbmNhdF9zdHJpbmdzKCB0bXBfbmFtZSwg
Ii4iICk7DQotICAgICAgICBjb25jYXRfdG9fc3RyaW5nKCAmb3V0cHV0X2Zp
bGVuYW1lLCBNTkNfRU5ESU5HICk7DQorICAgICAgICBvdXRwdXRfZmlsZW5h
bWUgPSBnZXRfdGVtcG9yYXJ5X2ZpbGVuYW1lKCk7DQogDQogICAgICAgICBj
YWNoZS0+ZmlsZV9uY19kYXRhX3R5cGUgPSBnZXRfdm9sdW1lX25jX2RhdGFf
dHlwZSggdm9sdW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZjYWNoZS0+ZmlsZV9zaWduZWRfZmxhZyApOw0K
---2066828793-2035456016-1047581660=:8287168--