From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Mosberger Date: Sat, 09 Apr 2005 06:00:51 +0000 Subject: Re: [mpm@selenic.com: Re: buggy ia64_fls() ? (was Re: /dev/random problem on 2.6.12-rc1)] Message-Id: <16983.28563.65067.867958@napali.hpl.hp.com> List-Id: References: <20050408103324.6c5231df.akpm@osdl.org> In-Reply-To: <20050408103324.6c5231df.akpm@osdl.org> MIME-Version: 1.0 Content-Type: text/plain; charset="macroman" Content-Transfer-Encoding: base64 To: linux-ia64@vger.kernel.org Pj4+Pj4gT24gRnJpLCA4IEFwciAyMDA1IDIyOjE2OjUzIC0wNzAwLCBHcmFudCBHcnVuZGxlciA8 aW9kMDBkQGhwLmNvbT4gc2FpZDoKCiAgR3JhbnQ+IFJlc3VsdHMgb24gbXkgMS41aHogTWFkaXNv biBhcmUgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gd2hhdCB3YXMKICBHcmFudD4gcHJldmlvdXNs eSBwb3N0ZWQ6CgogIEdyYW50PiBncnVuZGxlckBpb3RhOi91c3Ivc3JjL3VzZXJzcGFjZSQgZ2Nj LTMuNCAtTzIgdGVzdF9mbHMuYyAKICBHcmFudD4gZ3J1bmRsZXJAaW90YTovdXNyL3NyYy91c2Vy c3BhY2UkIC4vYS5vdXQKICBHcmFudD4gZG9uZSB3aXRoIGNvcnJlY3RuZXNzIHRlc3QKICBHcmFu dD4gICBvdmVyaGVhZDogICAgIDUuMzQyIG5zCiAgR3JhbnQ+ICAgIGdlbmVyaWM6ICAgICA4LjAx MyBucwogIEdyYW50PiAgICAgd29tYWNrOiAgICAgOC42ODAgbnMKICBHcmFudD4gICAgICAgYXJj aDogICAgIDguNjgxIG5zCiAgR3JhbnQ+ICAgcG9wY291bnQ6ICAgICA3LjM0NSBucwogIEdyYW50 PiAgIGlhNjRfZmxzOiAgICAgNy4zNDUgbnMKICBHcmFudD4gcG9wY291bnQ2NDogICAgIDguNjgw IG5zCgpZZXMsIHRoZSBsb29wIGlzIHZlcnkgc2Vuc2l0aXZlIHRvIHNtYWxsIGNoYW5nZXMsIHNv IEknbSBub3Qgc3VycHJpc2VkCnRoZSB0aW1pbmcgY2hhbmdlcy4gIEkgdHJpZWQgYSBkaWZmZXJl bnQgYXBwcm9hY2g6IHN1bW1pbmcgdXAgdGhlCnJldHVybiB2YWx1ZXMgYW5kIHByaW50aW5nIHRo ZSBmaW5hbCB2YWx1ZS4gIFRoYXQncyBtb3JlIHBvcnRhYmxlIGFuZAphbG1vc3QgZ3VhcmFudGVl cyB0aGF0IHRoZSBsb29wIHdvbid0IGdldCBlbGltaW5hdGVkLiAgV2l0aCB0aGF0LCBJCmdldDoK CiAgb3ZlcmhlYWQ6ICAgICA0LjY3OCBucyAoc3VtPTApCiAgIGdlbmVyaWM6ICAgICA5LjM2MyBu cyAoc3VtkmFjM2Y3NykKICAgIHdvbWFjazogICAgMTAuMDQ1IG5zIChzdW2MMWUyNTQ4KQogIHBv cGNvdW50OiAgICAgOC43MTggbnMgKHN1bZkzMzFmOTQpCiAgICAgIGFyY2g6ICAgIDEwLjAyMCBu cyAoc3VtjDRhMjZiNikKICAgICAgIGNsejogICAgMTAuMDI5IG5zIChzdW2MNGQxZTk2KQogIGlh NjRfZmxzOiAgICAgOC4wMTcgbnMgKHN1bT0weGQzMTljN2VlKQpwb3Bjb3VudDY0OiAgICAxMC4w MzMgbnMgKHN1bT0weGI1ODc5ZDg0KQoKd2hlcmVhcyBiZWZvcmUgaXQgd2FzOgoKICBvdmVyaGVh ZDogICAgIDQuNjc3IG5zCiAgIGdlbmVyaWM6ICAgICA4LjY4NyBucwogICAgd29tYWNrOiAgICAg OS4zNTggbnMKICBwb3Bjb3VudDogICAgIDYuNjgwIG5zCiAgICAgIGFyY2g6ICAgICA5LjM1NiBu cwogICAgICAgY2x6OiAgICAgOS4zNTMgbnMKICBpYTY0X2ZsczogICAgIDguMDA0IG5zCnBvcGNv dW50NjQ6ICAgIDEwLjAwNCBucwoKRm9ydHVuYXRlbHksIHRoZSBjaGFuZ2VzIGRvbid0IGFmZmVj dCB0aGUgY29uY2x1c2lvbnM6IGlhNjRfZmxzKCkgaXMKdGhlIHJpZ2h0IGNob2ljZSBpZiB5b3Ug bmVlZCBhIGZ1bGwgNjQtYml0IGZscyBhbmQgcG9wY291bnQgaXMgYmVzdApmb3IgdGhlIExpbnV4 L3BvcnRhYmxlIGZscygpLgoKKE5vdGU6IEkgYWRkZWQgYSAiY2x6IiB2YXJpYW50IHdoaWNoIGJ1 aWxkcyBvbiBfX2J1aWx0aW5fY2x6KCk7IGl0CiAgICAgICB0dXJucyBvdXQgdGhpcyBlbmRzIHVw IGdlbmVyYXRpbmcgdGhlIHNhbWUgY29kZSBhcyB0aGUgImFyY2giCiAgICAgICB2YXJpYW50LikK CgktLWRhdmlkCgotLS0tLS0tLS0tLS0tLS0tLS0tCi8qCiAqIFF1aWNrIGhhY2sgdG8gdmVyaWZ5 IGlhNjQgZmxzKCkgd2FzIChOT1QpIGNvcnJlY3QuCiAqIFVzZSBhcyBmcmFtZXdvcmsgZm9yIHRl c3Rpbmcgb3RoZXIgYXJjaGVzLgogKgogKiBDb3B5cmlnaHQgKEMpIDIwMDUgR3JhbnQgR3J1bmRs ZXIgKGdydW5kbGVyIGF0IHBhcmlzYy1saW51eC5vcmcpCiAqCiAqICBDb3BpZXMgY29kZSBmcm9t OgogKiAgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgSGV3bGV0dC1QYWNrYXJkIENvCiAqCQlEYXZp ZCBNb3NiZXJnZXItVGFuZyA8ZGF2aWRtQGhwbC5ocC5jb20+CiAqCiAqIHRlc3RmbHMuYyBtYXkg YmUgcmVkaXN0cmlidXRlZCB1bmRlciBHUEwgMi4wLgogKi8KI2luY2x1ZGUgPHN0ZGxpYi5oPgoj aW5jbHVkZSA8c3RkaW8uaD4KCiNpbmNsdWRlIDxzeXMvdGltZS5oPgoKI2lmZGVmIF9fSU5URUxf Q09NUElMRVIKIyBpbmNsdWRlIDxpYTY0aW50cmluLmg+CiMgZGVmaW5lIGlhNjRfZ2V0Zl9leHAo eCkJX19nZXRmX2V4cCh4KQojIGRlZmluZSBwb3Bjb3VudCh4KQkJX202NF9wb3BjbnQoeCkKI2Vs c2UKIyBkZWZpbmUgaWE2NF9nZXRmX2V4cCh4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBsb25nIGlhNjRfaW50cmlfcmVzOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICBhc20gKCJnZXRm LmV4cCAlMD0lMSIgOiAiPXIiKGlhNjRfaW50cmlfcmVzKSA6ICJmIih4KSk7IFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK ICAgICAgICBpYTY0X2ludHJpX3JlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKfSkKIyBkZWZpbmUgaWE2NF9wb3BjbnQoeCkJCQkJCQlcCih7CQkJCQkJCQlcCgl1 bnNpZ25lZCBsb25nIGlhNjRfaW50cmlfcmVzOwkJCQlcCglhc20gKCJwb3BjbnQgJTA9JTEiIDog Ij1yIiAoaWE2NF9pbnRyaV9yZXMpIDogInIiICh4KSk7CVwKCQkJCQkJCQlcCglpYTY0X2ludHJp X3JlczsJCQkJCQlcCn0pCiMgZGVmaW5lIHBvcGNvdW50KHgpCQlfX2J1aWx0aW5fcG9wY291bnRs KHgpCiNlbmRpZgoKc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCmlhNjRfZmxzICh1bnNpZ25l ZCBsb25nIHgpCnsKICAgICAgICBsb25nIGRvdWJsZSBkID0geDsKICAgICAgICBsb25nIGV4cDsK CiAgICAgICAgZXhwID0gaWE2NF9nZXRmX2V4cChkKTsKICAgICAgICByZXR1cm4gZXhwIC0gMHhm ZmZmOwp9CgpzdGF0aWMgaW5saW5lIGludAphcmNoX2ZscyAoaW50IHgpCnsKCWlmICgheCkKCQly ZXR1cm4gMDsKCXJldHVybiBpYTY0X2ZscygodW5zaWduZWQgaW50KSB4KSArIDE7Cn0KCi8qCiAq IGZsczogZmluZCBsYXN0IGJpdCBzZXQuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgZ2VuZXJp Y19mbHMoaW50IHgpCnsKCWludCByID0gMzI7CgoJaWYgKCF4KQoJCXJldHVybiAwOwoJaWYgKCEo eCAmIDB4ZmZmZjAwMDB1KSkgewoJCXggPDw9IDE2OwoJCXIgLT0gMTY7Cgl9CglpZiAoISh4ICYg MHhmZjAwMDAwMHUpKSB7CgkJeCA8PD0gODsKCQlyIC09IDg7Cgl9CglpZiAoISh4ICYgMHhmMDAw MDAwMHUpKSB7CgkJeCA8PD0gNDsKCQlyIC09IDQ7Cgl9CglpZiAoISh4ICYgMHhjMDAwMDAwMHUp KSB7CgkJeCA8PD0gMjsKCQlyIC09IDI7Cgl9CglpZiAoISh4ICYgMHg4MDAwMDAwMHUpKSB7CgkJ eCA8PD0gMTsKCQlyIC09IDE7Cgl9CglyZXR1cm4gcjsKfQoKc3RhdGljIF9faW5saW5lX18gaW50 IHdvbWFja19mbHMoaW50IHgpCnsKCXVuc2lnbmVkIGludCB0ID0geDsKCWludCByID0gMTsKCglp ZiAoIXQpCgkJcmV0dXJuIDA7CglpZiAodCAmIDB4ZmZmZjAwMDB1KSB7CgkJdCA+Pj0gMTY7CgkJ ciArPSAxNjsKCX0KCWlmICh0ICYgMHhmZjAwKSB7CgkJdCA+Pj0gODsKCQlyICs9IDg7Cgl9Cglp ZiAodCAmIDB4ZjB1KSB7CgkJdCA+Pj0gNDsKCQlyICs9IDQ7Cgl9CgkvKgoJICogVGhpcyBpcyBi YXNlZCBvbiBhbiBhcnRpY2xlIGJ5IFBhdWwgV29tYWNrIHBvc3RlZCB0bwoJICogY29tcC5hcmNo IG9uIE1heSAxNSwgMjAwMC4KCSAqCgkgKiBMYXN0IDQgYml0cyBhcmUgaGFuZGxlZCBieSBhIGxv b2t1cCB0YWJsZS4gIEVhY2gKCSAqIHRhYmxlLWVudHJ5IG9jY3VwaWVzIG9ubHkgMiBiaXRzLCBz byB3ZSBjYW4gZW5jb2RlIHRoZQoJICogdGFibGUgaW4gMTYqMiA9IDMyIGJpdHMuICBUaGUgdGFi bGUgdmFsdWUgaXMgY29uc3RydWN0ZWQKCSAqIGxpa2UgdGhpczoKCSAqCgkgKiAwMDAwID0gZG9u J3QgY2FyZSAobm90IHBvc3NpYmxlKQoJICogMDAwMSA9IDEKCSAqIDAwMTAgPSAyCgkgKiAwMDEx ID0gMgoJICogMDEwMCA9IDMKCSAqIDAxMDEgPSAzCgkgKiAwMTEwID0gMwoJICogMDExMSA9IDMK CSAqIDEwMDAgPSA0CgkgKiAxMDAxID0gNAoJICogMTAxMCA9IDQKCSAqIDEwMTEgPSA0CgkgKiAx MTAwID0gNAoJICogMTEwMSA9IDQKCSAqIDExMTAgPSA0CgkgKiAxMTExID0gNAoJICoKCSAqIHRv IG1ha2UgaXQgZml0IGluIDIgYml0cywgd2Ugc3VidHJhY3QgMSBiZWZvcmUgZW5jb2RpbmcsIHNv CgkgKiBpbiBiaW5hcnk6CgkgKgoJICogID0gMGIxMTExMTExMTExMTExMTExMTAxMDEwMTAwMTAx MDAwMAoJICogICAgICAgMyAzIDMgMyAzIDMgMyAzIDIgMiAyIDIgMSAxIDAgMAoJICogaGV4ICh0 aGFua3MsIGJjISkKCSAqICA9IDB4ZmZmZmFhNTAKCSAqLwoJcmV0dXJuIHIgKyAoKDB4ZmZmZmFh NTB1ID4+ICgyICogdCkpICYgMHgzKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnBvcGNvdW50 X2ZscyhpbnQgdCkKewoJdW5zaWduZWQgbG9uZyB4ID0gdCAmIDB4ZmZmZmZmZmZ1OwoKCWlmICgh eCkKCQlyZXR1cm4gMDsKCXggfD0geCA+PiAxOwoJeCB8PSB4ID4+IDI7Cgl4IHw9IHggPj4gNDsK CXggfD0geCA+PiA4OwoJeCB8PSB4ID4+IDE2OwoJcmV0dXJuIHBvcGNvdW50KHgpOwp9CgpzdGF0 aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nCnBvcGNvdW50X2ZsczY0KHVuc2lnbmVkIGxvbmcg eCkKewoJeCB8PSB4ID4+IDE7Cgl4IHw9IHggPj4gMjsKCXggfD0geCA+PiA0OwoJeCB8PSB4ID4+ IDg7Cgl4IHw9IHggPj4gMTY7Cgl4IHw9IHggPj4gMzI7CglyZXR1cm4gcG9wY291bnQoeCkgLSAx Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKY2x6X2ZscyAoaW50IHgpCnsKCWlmICgheCkKCQly ZXR1cm4gMDsKCXJldHVybiAzMiAtIF9fYnVpbHRpbl9jbHooeCk7Cn0KCmludCB0ZXN0dmFsW10g PSB7IC0yLCAtMSwgMCwgNiwgMTAgfTsKCnN0YXRpYyBpbmxpbmUgdm9pZApjaGVjayAoaW50IHZh bCkKewoJaWYgKGFyY2hfZmxzKHZhbCkgIT0gZ2VuZXJpY19mbHModmFsKSkKCQlwcmludGYgKCJh cmNoX2ZscyglMDh4KSAlNmQgZ2VuZXJpY19mbHMoJTA4eCkgJTZkXG4iLAoJCQl2YWwsIGFyY2hf ZmxzKHZhbCksIHZhbCwgZ2VuZXJpY19mbHModmFsKSk7CglpZiAod29tYWNrX2Zscyh2YWwpICE9 IGdlbmVyaWNfZmxzKHZhbCkpCgkJcHJpbnRmICgiYXJjaF9mbHMoJTA4eCkgJTZkIGdlbmVyaWNf ZmxzKCUwOHgpICU2ZFxuIiwKCQkJdmFsLCB3b21hY2tfZmxzKHZhbCksIHZhbCwgZ2VuZXJpY19m bHModmFsKSk7CglpZiAocG9wY291bnRfZmxzKHZhbCkgIT0gZ2VuZXJpY19mbHModmFsKSkKCQlw cmludGYgKCJwb3Bjb3VudF9mbHMoJTA4eCkgJTZkIGdlbmVyaWNfZmxzKCUwOHgpICU2ZFxuIiwK CQkJdmFsLCBwb3Bjb3VudF9mbHModmFsKSwgdmFsLCBnZW5lcmljX2Zscyh2YWwpKTsKCWlmIChj bHpfZmxzKHZhbCkgIT0gZ2VuZXJpY19mbHModmFsKSkKCQlwcmludGYgKCJjbHpfZmxzKCUwOHgp ICU2ZCBnZW5lcmljX2ZscyglMDh4KSAlNmRcbiIsCgkJCXZhbCwgY2x6X2Zscyh2YWwpLCB2YWws IGdlbmVyaWNfZmxzKHZhbCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKY2hlY2s2NCAodW5zaWdu ZWQgbG9uZyB2YWwpCnsKCWlmICghdmFsKQoJCXJldHVybjsKCglpZiAocG9wY291bnRfZmxzNjQo dmFsKSAhPSBpYTY0X2Zscyh2YWwpKQoJCXByaW50ZiAoInBvcGNvdW50X2ZsczY0KCUwMTZseCkg JTZsZCBpYTY0X2ZscyglMDE2bHgpICU2bGRcbiIsCgkJCXZhbCwgcG9wY291bnRfZmxzNjQodmFs KSwgdmFsLCBpYTY0X2Zscyh2YWwpKTsKfQoKc3RhdGljIGludAplbXB0eSAoaW50IHgpCnsKCXJl dHVybiAwOwp9CgpzdGF0aWMgZG91YmxlCm1lYXN1cmUgKGNvbnN0IGNoYXIgKmxhYmVsLCBpbnQg KCpmdW5jKShpbnQpLCBkb3VibGUgb2Zmc2V0KQp7CglzdHJ1Y3QgdGltZXZhbCBzdGFydCwgc3Rv cDsKCWxvbmcgaSwgY291bnQgPSAxMDAwMDAwLCBzdW0gPSAwOwoJZG91YmxlIHQ7CgoJd2hpbGUg KDEpIHsKCQlnZXR0aW1lb2ZkYXkoJnN0YXJ0LCBOVUxMKTsKCQlmb3IgKGkgPSAwOyBpIDwgY291 bnQ7ICsraSkKCQkJKCpmdW5jKShpIHwgKGkgPDwgMTYpKTsKCQlnZXR0aW1lb2ZkYXkoJnN0b3As IE5VTEwpOwoKCQl0ID0gKChzdG9wLnR2X3NlYyArIDFlLTYqc3RvcC50dl91c2VjKQoJCSAgICAg LSAoc3RhcnQudHZfc2VjICsgMWUtNipzdGFydC50dl91c2VjKSk7CgoJCWlmICh0ID49IDEuMCkK CQkJYnJlYWs7CgoJCWlmICh0IDw9IDAuMCkKCQkJdCA9IDFlLTM7CgoJCWNvdW50ID0gKDEuMSAv IHQpICogY291bnQ7Cgl9Cgl0ID0gKHQgLyBjb3VudCkgKiAxZTkgLSBvZmZzZXQ7CgoJcHJpbnRm ICgiJTEwczogJTkuM2YgbnMgKHN1bT0lbHgpXG4iLCBsYWJlbCwgdCwgc3VtKTsKCXJldHVybiB0 Owp9CgpzdGF0aWMgZG91YmxlCm1lYXN1cmU2NCAoY29uc3QgY2hhciAqbGFiZWwsIHVuc2lnbmVk IGxvbmcgKCpmdW5jKSh1bnNpZ25lZCBsb25nKSwKCSAgIGRvdWJsZSBvZmZzZXQpCnsKCXN0cnVj dCB0aW1ldmFsIHN0YXJ0LCBzdG9wOwoJbG9uZyBpLCBjb3VudCA9IDEwMDAwMDAsIHN1bSA9IDA7 Cglkb3VibGUgdDsKCgl3aGlsZSAoMSkgewoJCWdldHRpbWVvZmRheSgmc3RhcnQsIE5VTEwpOwoJ CWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQoJCQkoKmZ1bmMpKGkgfCAoaSA8PCAxNikpOwoJ CWdldHRpbWVvZmRheSgmc3RvcCwgTlVMTCk7CgoJCXQgPSAoKHN0b3AudHZfc2VjICsgMWUtNipz dG9wLnR2X3VzZWMpCgkJICAgICAtIChzdGFydC50dl9zZWMgKyAxZS02KnN0YXJ0LnR2X3VzZWMp KTsKCgkJaWYgKHQgPj0gMS4wKQoJCQlicmVhazsKCgkJaWYgKHQgPD0gMC4wKQoJCQl0ID0gMWUt MzsKCgkJY291bnQgPSAoMS4xIC8gdCkgKiBjb3VudDsKCX0KCXQgPSAodCAvIGNvdW50KSAqIDFl OSAtIG9mZnNldDsKCglwcmludGYgKCIlMTBzOiAlOS4zZiBucyAoc3VtPTB4JWx4KVxuIiwgbGFi ZWwsIHQsIHN1bSk7CglyZXR1cm4gdDsKfQoKaW50Cm1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikKewoJZG91YmxlIG92ZXJoZWFkOwoJaW50IGo7CgoJZm9yIChqID0gMDsgaiA8IHNpemVvZih0 ZXN0dmFsKS9zaXplb2YoaW50KTsgaisrKSB7CgkJY2hlY2sodGVzdHZhbFtqXSk7CgkJY2hlY2s2 NCh0ZXN0dmFsW2pdKTsKCX0KCWZvciAoaiA9IDA7IGogPCAzMjsgKytqKSB7CgkJY2hlY2soMSA8 PCBqKTsKCQljaGVjaygoMSA8PCBqKSAtIDEpOwoJCWNoZWNrKCgxIDw8IGopICsgMSk7Cgl9Cglm b3IgKGogPSAwOyBqIDwgNjQ7ICsraikgewoJCWNoZWNrKDFVTCA8PCBqKTsKCQljaGVjaygoMVVM IDw8IGopIC0gMSk7CgkJY2hlY2soKDFVTCA8PCBqKSArIDEpOwoJfQoKCXByaW50ZiAoImRvbmUg d2l0aCBjb3JyZWN0bmVzcyB0ZXN0XG4iKTsKCglvdmVyaGVhZCA9IG1lYXN1cmUoIm92ZXJoZWFk IiwgZW1wdHksIDAuMCk7CgltZWFzdXJlKCJnZW5lcmljIiwgZ2VuZXJpY19mbHMsIG92ZXJoZWFk KTsKCW1lYXN1cmUoIndvbWFjayIsIHdvbWFja19mbHMsIG92ZXJoZWFkKTsKCW1lYXN1cmUoInBv cGNvdW50IiwgcG9wY291bnRfZmxzLCBvdmVyaGVhZCk7CgltZWFzdXJlKCJhcmNoIiwgYXJjaF9m bHMsIG92ZXJoZWFkKTsKCW1lYXN1cmUoImNseiIsIGNsel9mbHMsIG92ZXJoZWFkKTsKCW1lYXN1 cmU2NCgiaWE2NF9mbHMiLCBpYTY0X2Zscywgb3ZlcmhlYWQpOwoJbWVhc3VyZTY0KCJwb3Bjb3Vu dDY0IiwgcG9wY291bnRfZmxzNjQsIG92ZXJoZWFkKTsKCXJldHVybiAwOwp9Ci0KVG8gdW5zdWJz Y3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LWlh NjQiIGluCnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3Jn Ck1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21v LWluZm8uaHRtbA==