From stdcxx-dev-return-4288-apmail-incubator-stdcxx-dev-archive=incubator.apache.org@incubator.apache.org Fri Aug 10 21:13:56 2007 Return-Path: Delivered-To: apmail-incubator-stdcxx-dev-archive@www.apache.org Received: (qmail 94052 invoked from network); 10 Aug 2007 21:13:56 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Aug 2007 21:13:56 -0000 Received: (qmail 38076 invoked by uid 500); 10 Aug 2007 21:13:54 -0000 Delivered-To: apmail-incubator-stdcxx-dev-archive@incubator.apache.org Received: (qmail 38054 invoked by uid 500); 10 Aug 2007 21:13:54 -0000 Mailing-List: contact stdcxx-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: stdcxx-dev@incubator.apache.org Delivered-To: mailing list stdcxx-dev@incubator.apache.org Delivered-To: moderator for stdcxx-dev@incubator.apache.org Received: (qmail 29002 invoked by uid 99); 10 Aug 2007 21:02:40 -0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of travis.vitek@gmail.com designates 64.233.162.227 as permitted sender) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=AzGax9VijKkfabErM6WFN736+u0xlEGkBasVX4+Hfeuvpsp+zDC4hvUONEImwlu4UYtkr30bLHlYmHm4kBm5nBZ6pl5RmYzdS8/a9k6+LvK7jTeoWfiNGO11iuISON4/gNVqRFtybNxvQ8K1CY6NnP68nCKGRdKn6NfLmnwduUU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=pQ/nsWV/lBTv3EYOPmu4R0VESQ/H07V7YvB7t0sRwOKV6TnB2TlV/PpDA/0Da3k6a/l2pVz0lZBgmZFAXlo7ZWLhCzcfiMlutoNkSAupeXdKiQnyddlTTr/5LvvNnaEHFj9lmxJMYXpvAOy8cE1LRcXSEV8aPhkXbG5rSz6vQ5k= Message-ID: Date: Fri, 10 Aug 2007 14:02:13 -0700 From: "Travis Vitek" Sender: travis.vitek@gmail.com To: stdcxx-dev@incubator.apache.org Subject: [PATCH] Update test 22.locale.time.put.mt.cpp to validate results [take 2] MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_28056_29307153.1186779733701" X-Google-Sender-Auth: 6b02307442731ba5 X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_28056_29307153.1186779733701 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Attached is a patch to enhance the time_put facet mt test. Threads verify that the values they put compare equal to those put in the primary thread. 2007-08-10 Travis Vitek * 22.locale.time.put.mt.cpp(MyIos, MyStreambuf, MyTimeData) Added structures to simplify testing. (run_test): Build table of in/outputs for verification in test threads. (thread_func): Assert that data written matches expected. (main): Add command line options for specifying number of locales, locale names, and locale usage. ------=_Part_28056_29307153.1186779733701 Content-Type: text/x-patch; name=22.locale.time.put.mt.cpp.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f573te1q Content-Disposition: attachment; filename="22.locale.time.put.mt.cpp.patch" SW5kZXg6IDIyLmxvY2FsZS50aW1lLnB1dC5tdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gMjIubG9jYWxl LnRpbWUucHV0Lm10LmNwcAkocmV2aXNpb24gNTY0MjY4KQorKysgMjIubG9jYWxlLnRpbWUucHV0 Lm10LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTQgKzMyLDE0IEBACiAjaW5jbHVkZSA8aXRl cmF0b3I+ICAgLy8gZm9yIG9zdHJlYW1idWZfaXRlcmF0b3IKICNpbmNsdWRlIDxsb2NhbGU+ICAg ICAvLyBmb3IgbG9jYWxlLCB0aW1lX3B1dAogCi0jaW5jbHVkZSA8Y3N0cmluZz4gICAgLy8gZm9y IHN0cmxlbigpCisjaW5jbHVkZSA8Y3N0cmluZz4gICAgLy8gZm9yIHN0cmxlbiAoKQogI2luY2x1 ZGUgPGN0aW1lPiAgICAgIC8vIGZvciB0bQogCiAjaW5jbHVkZSA8cndfbG9jYWxlLmg+CiAjaW5j bHVkZSA8cndfdGhyZWFkLmg+Ci0jaW5jbHVkZSA8ZHJpdmVyLmg+CisjaW5jbHVkZSA8ZHJpdmVy Lmg+ICAgIC8vIGZvciByd19hc3NlcnQgKCkKKyNpbmNsdWRlIDx2YWxjbXAuaD4gICAgLy8gZm9y IHJ3X3N0cm5jbXAgKCkKIAotCiAjZGVmaW5lIE1BWF9USFJFQURTICAgICAgMzIKICNkZWZpbmUg TUFYX0xPT1BTICAgIDEwMDAwMAogCkBAIC01MCw2ICs1MCwxMyBAQAogLy8gdGhlIG51bWJlciBv ZiB0aW1lcyBlYWNoIHRocmVhZCBzaG91bGQgaXRlcmF0ZQogaW50IHJ3X29wdF9ubG9vcHMgPSBN QVhfTE9PUFM7CiAKKy8vIG51bWJlciBvZiBsb2NhbGVzIHRvIHVzZQoraW50IHJ3X29wdF9ubG9j YWxlcyA9IE1BWF9USFJFQURTOworCisvLyBzaG91bGQgYWxsIHRocmVhZHMgc2hhcmUgdGhlIHNh bWUgc2V0IG9mIGxvY2FsZSBvYmplY3RzIGluc3RlYWQKKy8vIG9mIGNyZWF0aW5nIHRoZWlyIG93 bj8KK2ludCByd19vcHRfc2hhcmVkX2xvY2FsZTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAv LyBhcnJheSBvZiBsb2NhbGUgbmFtZXMgdG8gdXNlIGZvciB0ZXN0aW5nCkBAIC02Miw2MiArNjks OTMgQEAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi1leHRlcm4gIkMiIHsKKy8vCitzdHJ1Y3Qg TXlUaW1lRGF0YQoreworICAgIGVudW0geyBCdWZmZXJTaXplID0gNjQgfTsKIAotYm9vbCB0ZXN0 X2NoYXI7ICAgIC8vIGV4ZXJjaXNlIHRpbWVfcHV0PGNoYXI+Ci1ib29sIHRlc3Rfd2NoYXI7ICAg Ly8gZXhlcmNpc2UgdGltZV9wdXQ8d2NoYXJfdD4KKyAgICAvLyBuYW1lIG9mIHRoZSBsb2NhbGUg dGhlIGRhdGEgY29ycmVzcG9uZHMgdG8KKyAgICBjb25zdCBjaGFyKiBsb2NhbGVfbmFtZV87CiAK KyAgICAvLyBvcHRpb25hbGx5IHNldCB0byB0aGUgbmFtZWQgbG9jYWxlIGZvciB0aHJlYWRzIHRv IHNoYXJlCisgICAgc3RkOjpsb2NhbGUgbG9jYWxlXzsKIAotc3RhdGljIHZvaWQqCi10aHJlYWRf ZnVuYyAodm9pZCopCisgICAgLy8gdGhlIHRpbWUgc3RydWN0IHVzZWQgdG8gZ2VuZXJhdGUgc3Ry aW5ncyBiZWxvdworICAgIHN0ZDo6dG0gdGltZV87CisKKyAgICAvLyB0aGUgZm9ybWF0IHNwZWNp ZmllcgorICAgIGNoYXIgZm9ybWF0XzsKKworICAgIC8vIG5hcnJvdyByZXByZXNlbnRhdGlvbnMg b2YgdGltZV8gZ2l2ZW4gdGhlIAorICAgIC8vIGxvY2FsZV9uYW1lXyBhbmQgdGhlIGZvcm1hdF8K KyAgICBjaGFyIG5jc18gW0J1ZmZlclNpemVdOworICAgIAorI2lmbmRlZiBfUldTVERfTk9fV0NI QVJfVAorCisgICAgLy8gd2lkZSByZXByZXNlbnRhdGlvbnMgb2YgdGltZV8KKyAgICB3Y2hhcl90 IHdjc18gW0J1ZmZlclNpemVdOworCisjZW5kaWYgLy8gX1JXU1REX05PX1dDSEFSX1QKKworfSBt eV90aW1lX2RhdGEgW01BWF9USFJFQURTXTsKKworCit0ZW1wbGF0ZSA8Y2xhc3MgY2hhclQsIGNs YXNzIFRyYWl0cz4KK3N0cnVjdCBNeUlvczogc3RkOjpiYXNpY19pb3M8Y2hhclQsIFRyYWl0cz4K IHsKLSAgICBzdGQ6OnRtIHRtYiA9IHN0ZDo6dG0gKCk7CisgICAgTXlJb3MgKCkgeworICAgICAg ICB0aGlzLT5pbml0ICgwKTsKKyAgICB9Cit9OwogCi0gICAgY29uc3QgY2hhciBjdnRzcGVjc1td ID0gImFBYkJjQ2REZUZnR2hISWptTW5wclJTdFR1VVZ3V3hYeVl6WiUiOwogCi0gICAgLy8gZHVt bXkgc3RyZWFtYnVmLWRlcml2ZWQgb2JqZWN0IHRoZSBkb2Vzbid0IGRvIGFueXRoaW5nCi0gICAg Ly8gYnV0IGFsbG93cyBvc3RyZWFtYnVmX2l0ZXJhdG9yIHRvICJ0aGluayIgaXQgY2FuIHdyaXRl Ci0gICAgLy8gdG8gaXQKLSAgICBzdHJ1Y3QgTmFycm93QnVmOiBzdGQ6OnN0cmVhbWJ1ZiB7Ci0g ICAgICAgIGludF90eXBlIG92ZXJmbG93IChpbnRfdHlwZSBjKSB7IHJldHVybiBjOyB9Ci0gICAg fSBzYjsKK3RlbXBsYXRlIDxjbGFzcyBjaGFyVCwgY2xhc3MgVHJhaXRzPgorc3RydWN0IE15U3Ry ZWFtYnVmOiBzdGQ6OmJhc2ljX3N0cmVhbWJ1ZjxjaGFyVCwgVHJhaXRzPgoreworICAgIHR5cGVk ZWYgc3RkOjpiYXNpY19zdHJlYW1idWY8Y2hhclQsIFRyYWl0cz4gQmFzZTsKIAotI2lmbmRlZiBf UldTVERfTk9fV0NIQVJfVAorICAgIE15U3RyZWFtYnVmICgpCisgICAgICAgIDogQmFzZSAoKSB7 CisgICAgfQogCi0gICAgc3RydWN0IFdpZGVCdWY6IHN0ZDo6d3N0cmVhbWJ1ZiB7Ci0gICAgICAg IGludF90eXBlIG92ZXJmbG93IChpbnRfdHlwZSBjKSB7IHJldHVybiBjOyB9Ci0gICAgfSB3c2I7 CisgICAgdm9pZCBwdWJzZXRwIChjaGFyVCAqcGJlZywgc3RkOjpzdHJlYW1zaXplIG4pIHsKKyAg ICAgICAgdGhpcy0+c2V0cCAocGJlZywgcGJlZyArIG4pOworICAgIH0KK307CiAKLSNlbmRpZiAg IC8vIF9SV1NURF9OT19XQ0hBUl9UCiAKLSAgICBzdHJ1Y3QgSW9zOiBzdGQ6OmlvcyB7Ci0gICAg ICAgIElvcyAoKSB7IHRoaXMtPmluaXQgKDApOyB9Ci0gICAgfSBpbzsKKyNkZWZpbmUgY291bnRv Zih4KSAoc2l6ZW9mICh4KSAvIHNpemVvZiAoKngpKQogCi0gICAgaW50IGogPSAwOworZXh0ZXJu ICJDIiB7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSAhPSByd19vcHRfbmxvb3BzOyArK2ksICsr aikgeworYm9vbCB0ZXN0X2NoYXI7ICAgIC8vIGV4ZXJjaXNlIHRpbWVfcHV0PGNoYXI+Citib29s IHRlc3Rfd2NoYXI7ICAgLy8gZXhlcmNpc2UgdGltZV9wdXQ8d2NoYXJfdD4KIAotICAgICAgICAv LyBpbml0aWFsaXplIHRtIHdpdGggcmFuZG9tIGJ1dCB2YWxpZCB2YWx1ZXMKLSAgICAgICAgdG1i LnRtX3NlYyAgPSArK2ogJSA2MTsKLSAgICAgICAgdG1iLnRtX21pbiAgPSArK2ogJSA2MDsKLSAg ICAgICAgdG1iLnRtX21pbiAgPSArK2ogJSA2MDsKLSAgICAgICAgdG1iLnRtX3dkYXkgPSArK2og JSA3OwotICAgICAgICB0bWIudG1fbW9uICA9ICsraiAlIDEyOwotICAgICAgICB0bWIudG1feWVh ciA9ICsrajsKIAotICAgICAgICAvLyBnZW5lcmF0ZSBhICJyYW5kb20iIGNvbnZlcnNpb24gc3Bl Y2lmaWVyIGZyb20gdGhlIHNldAotICAgICAgICAvLyBvZiB2YWxpZCBzcGVjaWZpZXJzIHJlY29n bml6ZWQgYnkgdGhlIGZhY2V0IHRvIGV4ZXJjaXNlCi0gICAgICAgIC8vIGFsbCAob3IgbW9zdCkg Y29kZSBwYXRocwotICAgICAgICBjb25zdCBjaGFyIGN2dCA9IGN2dHNwZWNzIFtpICUgKHNpemVv ZiBjdnRzcGVjcyAtIDEpXTsKK3N0YXRpYyB2b2lkKgordGhyZWFkX2Z1bmMgKHZvaWQqKQorewor ICAgIGNoYXIgICAgICAgICAgICAgIG5jcyBbTXlUaW1lRGF0YTo6QnVmZmVyU2l6ZV07CisgICAg TXlJb3M8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+ICAgICAgIG5pbzsKKyAgICBNeVN0 cmVhbWJ1ZjxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+ID4gbnNiOwogCisjaWZuZGVmIF9S V1NURF9OT19XQ0hBUl9UCisgICAgd2NoYXJfdCAgICAgICAgICAgICAgICAgd2NzIFtNeVRpbWVE YXRhOjpCdWZmZXJTaXplXTsKKyAgICBNeUlvczx3Y2hhcl90LCBzdGQ6OmNoYXJfdHJhaXRzPHdj aGFyX3Q+ID4gICAgICAgd2lvOworICAgIE15U3RyZWFtYnVmPHdjaGFyX3QsIHN0ZDo6Y2hhcl90 cmFpdHM8d2NoYXJfdD4gPiB3c2I7CisjZW5kaWYgLy8gX1JXU1REX05PX1dDSEFSX1QKKworICAg IGZvciAoaW50IGkgPSAwOyBpICE9IHJ3X29wdF9ubG9vcHM7ICsraSkgeworCiAgICAgICAgIC8v IHNhdmUgdGhlIG5hbWUgb2YgdGhlIGxvY2FsZQotICAgICAgICBjb25zdCBjaGFyKiBjb25zdCBs b2NhbGVfbmFtZSA9IGxvY2FsZXMgW2kgJSBubG9jYWxlc107CisgICAgICAgIGNvbnN0IE15VGlt ZURhdGEmIGRhdGEgPSBteV90aW1lX2RhdGEgW2kgJSBubG9jYWxlc107CiAKICAgICAgICAgLy8g Y29uc3RydWN0IGEgbmFtZWQgbG9jYWxlLCBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHRpbWVfcHV0 CiAgICAgICAgIC8vIGZhY2V0IGZyb20gaXQgYW5kIHVzZSBpdCB0byBmb3JtYXQgYSByYW5kb20g dGltZSB2YWx1ZQogICAgICAgICAvLyB1c2luZyBhIHJhbmRvbSBjb252ZXJzaW9uIHNwZWNpZmll cgotICAgICAgICBjb25zdCBzdGQ6OmxvY2FsZSBsb2MgKGxvY2FsZV9uYW1lKTsKKyAgICAgICAg Y29uc3Qgc3RkOjpsb2NhbGUgbG9jID0KKyAgICAgICAgICAgIHJ3X29wdF9zaGFyZWRfbG9jYWxl ID8gZGF0YS5sb2NhbGVfCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHN0ZDo6 bG9jYWxlIChkYXRhLmxvY2FsZV9uYW1lXyk7CiAKICAgICAgICAgaWYgKHRlc3RfY2hhcikgewog ICAgICAgICAgICAgLy8gZXhlcmNpc2UgdGhlIG5hcnJvdyBjaGFyIHNwZWNpYWxpemF0aW9uIG9m IHRoZSBmYWNldApAQCAtMTI1LDExICsxNjMsMTkgQEAKICAgICAgICAgICAgIGNvbnN0IHN0ZDo6 dGltZV9wdXQ8Y2hhcj4gJnRwID0KICAgICAgICAgICAgICAgICBzdGQ6OnVzZV9mYWNldDxzdGQ6 OnRpbWVfcHV0PGNoYXI+ID4obG9jKTsKIAotICAgICAgICAgICAgLy8gZm9ybWF0IGEgInJhbmRv bSIgYnV0IHZhbGlkIHRtIHZhbHVlIHVzaW5nIHRoZSByYW5kb20KLSAgICAgICAgICAgIC8vIGZv cm1hdCBzcGVjaWZpZXIKLSAgICAgICAgICAgIHRwLnB1dCAoc3RkOjpvc3RyZWFtYnVmX2l0ZXJh dG9yPGNoYXI+KCZzYiksCi0gICAgICAgICAgICAgICAgICAgIGlvLCAnICcsICZ0bWIsIGN2dCk7 CisgICAgICAgICAgICBuaW8uaW1idWUgKGxvYyk7CiAKKyAgICAgICAgICAgIC8vIGFzc2lnbiBk YXRhIGJ1ZmZlciB0byBzdHJlYW1idWYKKyAgICAgICAgICAgIG5zYi5wdWJzZXRwIChuY3MsIGNv dW50b2YgKG5jcykpOworICAgICAgICAgICAgbmlvLnJkYnVmICgmbnNiKTsKKworICAgICAgICAg ICAgLy8gZm9ybWF0IHRpbWUgdXNpbmcgcHJvdmlkZWQgZm9ybWF0IHNwZWNpZmllcgorICAgICAg ICAgICAgKnRwLnB1dCAoc3RkOjpvc3RyZWFtYnVmX2l0ZXJhdG9yPGNoYXI+KCZuc2IpLAorICAg ICAgICAgICAgICAgICAgICBuaW8sICcgJywgJmRhdGEudGltZV8sIGRhdGEuZm9ybWF0XykgPSBj aGFyKCk7CisKKyAgICAgICAgICAgIFJXX0FTU0VSVCAoIW5pby5mYWlsICgpKTsKKyAgICAgICAg ICAgIFJXX0FTU0VSVCAoIXJ3X3N0cm5jbXAobmNzLCBkYXRhLm5jc18pKTsKKwogICAgICAgICB9 CiAKICAgICAgICAgLy8gYm90aCBzcGVjaWFsaXphdGlvbnMgbWF5IGJlIHRlc3RlZCBhdCB0aGUg c2FtZSB0aW1lCkBAIC0xMzksMTQgKzE4NSwyMiBAQAogCiAjaWZuZGVmIF9SV1NURF9OT19XQ0hB Ul9UCiAKLSAgICAgICAgICAgIGNvbnN0IHN0ZDo6dGltZV9wdXQ8d2NoYXJfdD4gJnd0cCA9Cisg ICAgICAgICAgICBjb25zdCBzdGQ6OnRpbWVfcHV0PHdjaGFyX3Q+ICZ3cCA9CiAgICAgICAgICAg ICAgICAgc3RkOjp1c2VfZmFjZXQ8c3RkOjp0aW1lX3B1dDx3Y2hhcl90PiA+KGxvYyk7CiAKLSAg ICAgICAgICAgIHd0cC5wdXQgKHN0ZDo6b3N0cmVhbWJ1Zl9pdGVyYXRvcjx3Y2hhcl90Pigmd3Ni KSwKLSAgICAgICAgICAgICAgICAgICAgIGlvLCBMJyAnLCAmdG1iLCBjdnQpOworICAgICAgICAg ICAgd2lvLmltYnVlIChsb2MpOwogCi0jZW5kaWYgICAvLyBfUldTVERfTk9fV0NIQVJfVAorICAg ICAgICAgICAgd3NiLnB1YnNldHAgKHdjcywgY291bnRvZiAod2NzKSk7CisgICAgICAgICAgICB3 aW8ucmRidWYgKCZ3c2IpOwogCisgICAgICAgICAgICAqd3AucHV0IChzdGQ6Om9zdHJlYW1idWZf aXRlcmF0b3I8d2NoYXJfdD4oJndzYiksCisgICAgICAgICAgICAgICAgICAgICB3aW8sIEwnICcs ICZkYXRhLnRpbWVfLCBkYXRhLmZvcm1hdF8pID0gd2NoYXJfdCgpOworCisgICAgICAgICAgICBS V19BU1NFUlQgKCF3aW8uZmFpbCAoKSk7CisgICAgICAgICAgICBSV19BU1NFUlQgKCFyd19zdHJu Y21wKHdjcywgZGF0YS53Y3NfKSk7CisKKyNlbmRpZiAvLyBfUldTVERfTk9fV0NIQVJfVAorCiAg ICAgICAgIH0KICAgICB9CiAKQEAgLTE2MCwxOSArMjE0LDExNyBAQAogc3RhdGljIGludAogcnVu X3Rlc3QgKGludCwgY2hhcioqKQogewotICAgIC8vIGZpbmQgYWxsIGluc3RhbGxlZCBsb2NhbGVz IGZvciB3aGljaCBzZXRsb2NhbGUoTENfQUxMKSBzdWNjZWVkcworICAgIE15SW9zPGNoYXIsIHN0 ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPiAgICAgICBuaW87CisgICAgTXlTdHJlYW1idWY8Y2hhciwg c3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+IG5zYjsKKworI2lmbmRlZiBfUldTVERfTk9fV0NIQVJf VAorICAgIE15SW9zPHdjaGFyX3QsIHN0ZDo6Y2hhcl90cmFpdHM8d2NoYXJfdD4gPiAgICAgICB3 aW87CisgICAgTXlTdHJlYW1idWY8d2NoYXJfdCwgc3RkOjpjaGFyX3RyYWl0czx3Y2hhcl90PiA+ IHdzYjsKKyNlbmRpZiAvLyBfUldTVERfTk9fV0NIQVJfVAorCisgICAgLy8gZmluZCBhbGwgaW5z dGFsbGVkIGxvY2FsZXMgZm9yIHdoaWNoIHNldGxvY2FsZSAoTENfQUxMKSBzdWNjZWVkcwogICAg IGNvbnN0IGNoYXIqIGNvbnN0IGxvY2FsZV9saXN0ID0KICAgICAgICAgcndfb3B0X2xvY2FsZXMg PyByd19vcHRfbG9jYWxlcyA6IHJ3X2xvY2FsZXMgKF9SV1NURF9MQ19BTEwpOwogCi0gICAgY29u c3Qgc3RkOjpzaXplX3QgbWF4aW54ID0gc2l6ZW9mIGxvY2FsZXMgLyBzaXplb2YgKmxvY2FsZXM7 CisgICAgY29uc3Qgc3RkOjpzaXplX3QgbWF4aW54ID0gY291bnRvZiAobG9jYWxlcyk7CiAKLSAg ICBmb3IgKGNvbnN0IGNoYXIgKm5hbWUgPSBsb2NhbGVfbGlzdDsgKm5hbWU7IG5hbWUgKz0gc3Rk OjpzdHJsZW4gKG5hbWUpICsxKSB7Ci0gICAgICAgIGxvY2FsZXMgW25sb2NhbGVzKytdID0gbmFt ZTsKKyAgICBjb25zdCBjaGFyKiBjb25zdCBwb3NzaWJsZV9sb2NhbGVfb3B0aW9uc1tdID0gewor ICAgICAgICBsb2NhbGVfbGlzdCwgIkNcMCIsIDAKKyAgICB9OwogCi0gICAgICAgIGlmIChubG9j YWxlcyA9PSBtYXhpbngpCi0gICAgICAgICAgICBicmVhazsKKyAgICBmb3IgKGludCBwID0gMDsg cG9zc2libGVfbG9jYWxlX29wdGlvbnNbcF07ICsrcCkgeworCisgICAgICAgIGludCBqID0gMDsK KyAgICAgICAgZm9yIChjb25zdCBjaGFyKiBuYW1lID0gcG9zc2libGVfbG9jYWxlX29wdGlvbnNb cF07CisgICAgICAgICAgICAgKm5hbWU7CisgICAgICAgICAgICAgbmFtZSArPSBzdGQ6OnN0cmxl biAobmFtZSkgKyAxKSB7CisKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6c2l6ZV90IGlueCA9IG5s b2NhbGVzOworICAgICAgICAgICAgbG9jYWxlcyBbaW54XSA9IG5hbWU7CisKKyAgICAgICAgICAg IC8vIGZpbGwgaW4gdGhlIHRpbWUgYW5kIHJlc3VsdHMgZm9yIHRoaXMgbG9jYWxlCisgICAgICAg ICAgICBNeVRpbWVEYXRhJiBkYXRhID0gbXlfdGltZV9kYXRhIFtpbnhdOworICAgICAgICAgICAg ZGF0YS5sb2NhbGVfbmFtZV8gPSBuYW1lOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAg ICAgICAgIGNvbnN0IHN0ZDo6bG9jYWxlIGxvYyAoZGF0YS5sb2NhbGVfbmFtZV8pOworCisgICAg ICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZSB0bSB3aXRoIHJhbmRvbSBidXQgdmFsaWQgdmFsdWVz CisgICAgICAgICAgICAgICAgZGF0YS50aW1lXy50bV9zZWMgID0gKytqICUgNjE7CisgICAgICAg ICAgICAgICAgZGF0YS50aW1lXy50bV9taW4gID0gKytqICUgNjA7CisgICAgICAgICAgICAgICAg ZGF0YS50aW1lXy50bV9ob3VyID0gKytqICUgMTI7CisgICAgICAgICAgICAgICAgZGF0YS50aW1l Xy50bV93ZGF5ID0gKytqICUgNzsKKyAgICAgICAgICAgICAgICBkYXRhLnRpbWVfLnRtX21vbiAg PSArK2ogJSAxMjsKKyAgICAgICAgICAgICAgICBkYXRhLnRpbWVfLnRtX21kYXkgPSArK2ogJSAz MTsKKyAgICAgICAgICAgICAgICBkYXRhLnRpbWVfLnRtX3lkYXkgPSArK2ogJSAzNjY7CisgICAg ICAgICAgICAgICAgZGF0YS50aW1lXy50bV95ZWFyID0gKytqOworCisgICAgICAgICAgICAgICAg Y29uc3QgY2hhciBjdnRzcGVjc1tdID0gImFBYkJjQ2REZUZnR2hISWptTW5wclJTdFR1VVZ3V3hY eVl6WiUiOworCisgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSAicmFuZG9tIiBjb252ZXJzaW9u IHNwZWNpZmllciB1c2VkIHRvIGdlbmVyYXRlCisgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3Vs dCBzdHJpbmcKKyAgICAgICAgICAgICAgICBkYXRhLmZvcm1hdF8gPSBjdnRzcGVjcyBbbmxvY2Fs ZXMgJSAoc2l6ZW9mIGN2dHNwZWNzIC0gMSldOworCisgICAgICAgICAgICAgICAgY29uc3Qgc3Rk Ojp0aW1lX3B1dDxjaGFyPiAmbnAgPQorICAgICAgICAgICAgICAgICAgICBzdGQ6OnVzZV9mYWNl dDxzdGQ6OnRpbWVfcHV0PGNoYXI+ID4obG9jKTsKKworICAgICAgICAgICAgICAgIG5pby5pbWJ1 ZSAobG9jKTsKKworICAgICAgICAgICAgICAgIG5zYi5wdWJzZXRwIChkYXRhLm5jc18sIGNvdW50 b2YgKGRhdGEubmNzXykpOworICAgICAgICAgICAgICAgIG5pby5yZGJ1ZiAoJm5zYik7CisgICAg ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgKm5wLnB1dCAoc3RkOjpvc3RyZWFtYnVmX2l0 ZXJhdG9yPGNoYXI+KCZuc2IpLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5pbywgJyAnLCAm ZGF0YS50aW1lXywgZGF0YS5mb3JtYXRfKSA9IGNoYXIoKTsKKworICAgICAgICAgICAgICAgIHJ3 X2Fzc2VydCAoIW5pby5mYWlsICgpLCBfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAidGltZV9wdXQ8Y2hhcj46OnB1dCguLi4sICVjKSAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZmFpbGVkIGZvciBsb2NhbGUoJSNzKSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLmZvcm1hdF8sIGRhdGEubG9jYWxlX25hbWVfKTsKKyAgICAgICAg ICAgICAgICAKKyNpZm5kZWYgX1JXU1REX05PX1dDSEFSX1QKKworICAgICAgICAgICAgICAgIGNv bnN0IHN0ZDo6dGltZV9wdXQ8d2NoYXJfdD4gJndwID0KKyAgICAgICAgICAgICAgICAgICAgc3Rk Ojp1c2VfZmFjZXQ8c3RkOjp0aW1lX3B1dDx3Y2hhcl90PiA+KGxvYyk7CisKKyAgICAgICAgICAg ICAgICB3aW8uaW1idWUgKGxvYyk7CisKKyAgICAgICAgICAgICAgICB3c2IucHVic2V0cCAoZGF0 YS53Y3NfLCBjb3VudG9mIChkYXRhLndjc18pKTsKKyAgICAgICAgICAgICAgICB3aW8ucmRidWYg KCZ3c2IpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICp3cC5wdXQgKHN0ZDo6 b3N0cmVhbWJ1Zl9pdGVyYXRvcjx3Y2hhcl90Pigmd3NiKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICB3aW8sIEwnICcsICZkYXRhLnRpbWVfLCBkYXRhLmZvcm1hdF8pID0gd2NoYXJfdCgpOwor ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJ3X2Fzc2VydCAoIXdpby5mYWlsICgp LCBfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAidGltZV9w dXQ8d2NoYXJfdD46OnB1dCguLi4sICVjKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi ZmFpbGVkIGZvciBsb2NhbGUoJSNzKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh LmZvcm1hdF8sIGRhdGEubG9jYWxlX25hbWVfKTsKKworI2VuZGlmIC8vIF9SV1NURF9OT19XQ0hB Ul9UCisKKyAgICAgICAgICAgICAgICBpZiAocndfb3B0X3NoYXJlZF9sb2NhbGUpCisgICAgICAg ICAgICAgICAgICAgIGRhdGEubG9jYWxlXyA9IGxvYzsKKworICAgICAgICAgICAgICAgIG5sb2Nh bGVzICs9IDE7CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhdGNoICguLi4pIHsKKyAg ICAgICAgICAgICAgICByd193YXJuICghcndfb3B0X2xvY2FsZXMsIDAsIF9fTElORV9fLAorICAg ICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gY3JlYXRlIGxvY2FsZSglI3MpIiwgbmFt ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChubG9jYWxlcyA9PSBtYXhpbngg fHwgbmxvY2FsZXMgPT0gc3RkOjpzaXplX3QgKHJ3X29wdF9ubG9jYWxlcykpCisgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAobmxvY2FsZXMgIT0gMCkgewor ICAgICAgICAgICAgYnJlYWs7IC8vIGZvdW5kIGF0IGxlYXN0IG9uZSBsb2NhbGUKKyAgICAgICAg fQogICAgIH0KIAorICAgIC8vIGF2b2lkIGRpdmlkZSBieSB6ZXJvIGluIHRocmVhZCBpZiB0aGVy ZSBhcmUgbm8gbG9jYWxlcyB0byB0ZXN0CisgICAgcndfZmF0YWwobmxvY2FsZXMgIT0gMCwgMCwg X19MSU5FX18sCisgICAgICAgICAgICAgImZhaWxlZCB0byBjcmVhdGUgb25lIG9yIG1vcmUgdXNh YmxlIGxvY2FsZXMhIik7CisKICAgICByd19pbmZvICgwLCAwLCAwLAogICAgICAgICAgICAgICJ0 ZXN0aW5nIHN0ZDo6dGltZV9wdXQ8Y2hhclQ+IHdpdGggJWQgdGhyZWFkJXs/fXMlezt9LCAiCiAg ICAgICAgICAgICAgIiV6dSBpdGVyYXRpb24lez99cyV7O30gZWFjaCwgaW4gbG9jYWxlcyB7ICV7 IC4qQUB9IH0iLApAQCAtMjA4LDcgKzM2MCw3IEBACiAgICAgICAgICAgICAgICJyd190aHJlYWRf cG9vbCgwLCAlZCwgMCwgJXsjZn0sIDApIGZhaWxlZCIsCiAgICAgICAgICAgICAgIHJ3X29wdF9u dGhyZWFkcywgdGhyZWFkX2Z1bmMpOwogCi0gICAgLy8gZXhlcmNpc2UgYm90aGUgdGhlIGNoYXIg YW5kIHRoZSB3Y2hhcl90IHNwZWNpYWxpemF0aW9ucworICAgIC8vIGV4ZXJjaXNlIGJvdGggdGhl IGNoYXIgYW5kIHRoZSB3Y2hhcl90IHNwZWNpYWxpemF0aW9ucwogICAgIC8vIGF0IHRoZSBzYW1l IHRpbWUKIAogICAgIHJ3X2luZm8gKDAsIDAsIDAsCkBAIC0yNDksOSArNDAxLDEzIEBACiAgICAg ICAgICAgICAgICAgICAgICJ0aHJlYWQgc2FmZXR5IiwgcnVuX3Rlc3QsCiAgICAgICAgICAgICAg ICAgICAgICJ8LW5sb29wcyMwICIgICAgICAgLy8gbXVzdCBiZSBub24tbmVnYXRpdmUKICAgICAg ICAgICAgICAgICAgICAgInwtbnRocmVhZHMjMC0qICIgICAvLyBtdXN0IGJlIGluIFswLCBNQVhf VEhSRUFEU10KLSAgICAgICAgICAgICAgICAgICAgInwtbG9jYWxlcz0iLCAgICAgICAvLyBtdXN0 IGJlIHByb3ZpZGVkCisgICAgICAgICAgICAgICAgICAgICJ8LW5sb2NhbGVzIzAgIiAgICAgLy8g YXJnIG11c3QgYmUgbm9uLW5lZ2F0aXZlCisgICAgICAgICAgICAgICAgICAgICJ8LWxvY2FsZXM9 ICIgICAgICAgLy8gbXVzdCBiZSBwcm92aWRlZAorICAgICAgICAgICAgICAgICAgICAifC1zaGFy ZWQtbG9jYWxlIyAiLAogICAgICAgICAgICAgICAgICAgICAmcndfb3B0X25sb29wcywKICAgICAg ICAgICAgICAgICAgICAgaW50IChNQVhfVEhSRUFEUyksCiAgICAgICAgICAgICAgICAgICAgICZy d19vcHRfbnRocmVhZHMsCi0gICAgICAgICAgICAgICAgICAgICZyd19vcHRfc2V0bG9jYWxlcyk7 CisgICAgICAgICAgICAgICAgICAgICZyd19vcHRfbmxvY2FsZXMsCisgICAgICAgICAgICAgICAg ICAgICZyd19vcHRfc2V0bG9jYWxlcywKKyAgICAgICAgICAgICAgICAgICAgJnJ3X29wdF9zaGFy ZWRfbG9jYWxlKTsKIH0K ------=_Part_28056_29307153.1186779733701--