Skip to content
KernelIndex
Search⌘K

submission 21355

KernelBot user 334 · python · License unknown

Use it

Vendorable · source mirrored · license unknownView source →

No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.

finish-2.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-21355?include=source"
interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz

Benchmark evidence

18 measurements across 1 GPU, fastest first.

Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 256]
AMD Instinct MI300X
49.6µs
#57 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 512]
AMD Instinct MI300X
49.7µs
#58 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 1536]
AMD Instinct MI300X
64.2µs
#46 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
77.0µs
#25 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
77.9µs
#26 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
108.8µs
#22 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2048]
AMD Instinct MI300X
127.4µs
#44 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 2304]
AMD Instinct MI300X
138.4µs
#44 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 512]
AMD Instinct MI300X
138.9µs
#64 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 256]
AMD Instinct MI300X
142.1µs
#70 of 98
2025-05-13
Show all 18 measurements ›
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 1536]
AMD Instinct MI300X
196.3µs
#46 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
199.5µs
#44 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
207.2µs
#42 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
242.2µs
#49 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
407.5µs
#50 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2048]
AMD Instinct MI300X
497.4µs
#49 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 2304]
AMD Instinct MI300X
551.3µs
#47 of 98
2025-05-13
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
1.09ms
#45 of 98
2025-05-13

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:f6ae3003f9d71cc8a2b4d08f4b4391534c9ac4bc8603d16f2f324ce7c050ff9a
license declaredunknown
license concludedunknown
imported2026-08-15

Kernel source

finish-2.py1 lines
IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NChjb25zdCB1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCB1aW50NjRfdCogY2FjaGUsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgb2Zmc2V0KSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGNvbnN0IHVpbnQ2NF90KiBhID0gY2FjaGU7CiAgICBjb25zdCB1aW50NjRfdCogYiA9IGNhY2hlICsgb2Zmc2V0OwogICAgaW50IGN4ID0gMzIgKiBibG9ja0lkeC54OwogICAgaW50IGN5ID0gMzIgKiBibG9ja0lkeC55OwogICAgaWYoY3ggPj0gbSB8fCBjeSA+PSBuKSByZXR1cm47CiAgICBpbnQgdHggPSB0aHJlYWRJZHgueCAmIDMxOwogICAgaW50IHR5ID0gdGhyZWFkSWR4LnggPj4gNSAmIDE7CiAgICBpbnQgc24gPSAobiArIEJMT0NLIC0gMSkgPj4gNzsKICAgIGJzICs9IGN5ID4+IDc7CiAgICBhcyArPSBjeCArIHR4OwogICAgYSArPSBibG9ja0lkeC54ICogY29sICsgdGhyZWFkSWR4Lng7CiAgICBiICs9IGJsb2NrSWR4LnkgKiBjb2wgKyB0aHJlYWRJZHgueDsKICAgIGYzMngxNiByZXN1bHQgPSB7IH07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgazsgaSArPSBCTE9DSykgewogICAgICAgIGNvbnN0IGF1dG8qIGFwID0gYSArIGkgKiA0OwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gYiArIGkgKiA0OwogICAgICAgIGYzMngxNiBibG9ja19yZXN1bHQgPSB7IH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHg0MF0sIGFwWzB4NDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDgwXSwgYXBbMHg4MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4YzBdLCBhcFsweGMwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxMDBdLCBhcFsweDEwMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4MTQwXSwgYXBbMHgxNDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDE4MF0sIGFwWzB4MTgwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxYzBdLCBhcFsweDFjMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgcmVzdWx0ICs9IGJsb2NrX3Jlc3VsdCAqIGJzWyhpID4+IDcpICogc25dICogYXNbKGkgPj4gNykgKiBtXTsKICAgIH0KICAgIGNvbnN0IGF1dG8qIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QoKilbOF0+KCZyZXN1bHQpOwogICAgdWludDY0X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihjICsgKHR4ICsgY3gpICogbiArIGN5ICsgdHkgKiA0KTsKICAgIGRzdFswXSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1swXSk7CiAgICBkc3RbMl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmNbMV0pOwogICAgZHN0WzRdID0gcGFja191MTZ4OF90b191NjQoc3JjWzJdKTsKICAgIGRzdFs2XSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1szXSk7Cn0KCl9fZ2xvYmFsX18gdm9pZCByZW9yZGVyX2tlcm5lbChjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMwLCBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMxLCB1aW50NjRfdCogZHN0LCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgbmV4dCkgewogICAgbmV4dCA9IGJsb2NrSWR4LnggPj0gbmV4dCA/IG5leHQgOiAwOwogICAgbSA9IG5leHQgPyBuIDogbTsKICAgIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIHNyYyA9IG5leHQgPyBzcmMxIDogc3JjMDsKICAgIGludCBjeCA9IChibG9ja0lkeC54IC0gbmV4dCkgKiAzMiArICh0aHJlYWRJZHgueCAmIDMxKTsKICAgIGludCBjeSA9IChibG9ja0lkeC55ICogMiArICh0aHJlYWRJZHgueCA+PiA1ICYgMSkpICogODsKICAgIHVpbnQ2NF90KiBkID0gZHN0ICsgYmxvY2tJZHgueCAqIGNvbCArIGJsb2NrSWR4LnkgKiA2NCArIHRocmVhZElkeC54OwogICAgaWYgKGN4ID49IG0gfHwgY3kgPj0gaykgewogICAgICAgICpkID0gMDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBzcmMgKz0gY3kgKiBtICsgY3g7CiAgICBfX2hpcF9mcDhfZTRtM19mbnV6IGJ1ZmZlcls4XSA9IHsgc3JjWzBdLCBzcmNbbV0sIHNyY1syICogbV0sIHNyY1szICogbV0sCiAgICAgIHNyY1s0ICogbV0sIHNyY1s1ICogbV0sIHNyY1s2ICogbV0sIHNyY1s3ICogbV19OwogICAgKmQgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGJ1ZmZlcik7Cn0KCnZvaWQgZnA4X21tKHRvcmNoOjpUZW5zb3IgYSwgdG9yY2g6OlRlbnNvciBiLCB0b3JjaDo6VGVuc29yIGFzLCB0b3JjaDo6VGVuc29yIGJzLCB0b3JjaDo6VGVuc29yIGMpIHsKICAgIGludCBtID0gYS5zaXplKDApOwogICAgaW50IG4gPSBiLnNpemUoMCk7CiAgICBpbnQgayA9IGEuc2l6ZSgxKTsKICAgIGludCBuZXh0ID0gKG0gKyAxMjcpIC8gMTI4ICogNDsKICAgIGludCByb3cgPSAobiArIDEyNykgLyAxMjggKiA0ICsgbmV4dDsKICAgIGludCBjb2wgPSAoayArIDEyNykgLyAxMjggKiA1MTI7CiAgICBhdXRvIG9wdGlvbnMgPSB0b3JjaDo6VGVuc29yT3B0aW9ucygpLmR0eXBlKHRvcmNoOjprVUludDY0KS5kZXZpY2UodG9yY2g6OmtDVURBKTsKICAgIHRvcmNoOjpUZW5zb3IgY2FjaGUgPSB0b3JjaDo6ZW1wdHkoe3JvdywgY29sfSwgb3B0aW9ucyk7CiAgICByZW9yZGVyX2tlcm5lbDw8PGRpbTMocm93LCBjb2wgLyA2NCksIGRpbTMoNjQpLCAwLCAwPj4+KChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmRhdGFfcHRyKCksICAoX19oaXBfZnA4X2U0bTNfZm51eiopYi5kYXRhX3B0cigpLAogICAgICAgIGNhY2hlLmRhdGFfcHRyPHVpbnQ2NF90PigpLCBtLCBuLCBrLCBjb2wsIG5leHQpOwogICAgY3VzdG9tX2tlcm5lbDw8PGRpbTMoKG0rMzEpLzMyLCAobiszMSkvMzIpLCBkaW0zKDY0KSwgMCwgMD4+PiAoY2FjaGUuZGF0YV9wdHI8dWludDY0X3Q+KCksCiAgICAgICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgaywgY29sLCBuZXh0ICogY29sKTsKfQoiIiIKCmltcG9ydCBvcwpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIgoKbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSdmcDhfbW0nLAogICAgY3BwX3NvdXJjZXM9W0NQUF9XUkFQUEVSXSwKICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLAogICAgZnVuY3Rpb25zPVsnZnA4X21tJ10sCiAgICB2ZXJib3NlPVRydWUsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==

Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0

Changes from previous submission

Against this author's previous submission submission 21025.

- IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NChjb25zdCB1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCB1aW50NjRfdCogY2FjaGUsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgb2Zmc2V0KSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGNvbnN0IHVpbnQ2NF90KiBhID0gY2FjaGU7CiAgICBjb25zdCB1aW50NjRfdCogYiA9IGNhY2hlICsgb2Zmc2V0OwogICAgaW50IGN4ID0gMzIgKiBibG9ja0lkeC54OwogICAgaW50IGN5ID0gMzIgKiBibG9ja0lkeC55OwogICAgaWYoY3ggPj0gbSB8fCBjeSA+PSBuKSByZXR1cm47CiAgICBpbnQgdHggPSB0aHJlYWRJZHgueCAmIDMxOwogICAgaW50IHR5ID0gdGhyZWFkSWR4LnggPj4gNSAmIDE7CiAgICBpbnQgc24gPSAobiArIEJMT0NLIC0gMSkgPj4gNzsKICAgIGJzICs9IGN5ID4+IDc7CiAgICBhcyArPSBjeCArIHR4OwogICAgYSArPSBibG9ja0lkeC54ICogY29sICsgdGhyZWFkSWR4Lng7CiAgICBiICs9IGJsb2NrSWR4LnkgKiBjb2wgKyB0aHJlYWRJZHgueDsKICAgIGYzMngxNiByZXN1bHQgPSB7IH07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgazsgaSArPSBCTE9DSykgewogICAgICAgIGNvbnN0IGF1dG8qIGFwID0gYSArIGkgKiA0OwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gYiArIGkgKiA0OwogICAgICAgIGYzMngxNiBibG9ja19yZXN1bHQgPSB7IH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHg0MF0sIGFwWzB4NDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDgwXSwgYXBbMHg4MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4YzBdLCBhcFsweGMwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxMDBdLCBhcFsweDEwMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4MTQwXSwgYXBbMHgxNDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDE4MF0sIGFwWzB4MTgwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxYzBdLCBhcFsweDFjMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgcmVzdWx0ICs9IGJsb2NrX3Jlc3VsdCAqIGJzWyhpID4+IDcpICogc25dICogYXNbKGkgPj4gNykgKiBtXTsKICAgIH0KICAgIGNvbnN0IGF1dG8qIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QoKilbOF0+KCZyZXN1bHQpOwogICAgdWludDY0X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihjICsgKHR4ICsgY3gpICogbiArIGN5ICsgdHkgKiA0KTsKICAgIGRzdFswXSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1swXSk7CiAgICBkc3RbMl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmNbMV0pOwogICAgZHN0WzRdID0gcGFja191MTZ4OF90b191NjQoc3JjWzJdKTsKICAgIGRzdFs2XSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1szXSk7Cn0KCl9fZ2xvYmFsX18gdm9pZCByZW9yZGVyX2tlcm5lbChjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMwLCBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMxLCB1aW50NjRfdCogZHN0LCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgbmV4dCkgewogICAgbmV4dCA9IGJsb2NrSWR4LnggPj0gbmV4dCA/IG5leHQgOiAwOwogICAgbSA9IG5leHQgPyBuIDogbTsKICAgIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIHNyYyA9IG5leHQgPyBzcmMxIDogc3JjMDsKICAgIGludCBjeCA9IChibG9ja0lkeC54IC0gbmV4dCkgKiAzMiArICh0aHJlYWRJZHgueCAmIDMxKTsKICAgIGludCBjeSA9IChibG9ja0lkeC55ICogMiArICh0aHJlYWRJZHgueCA+PiA1ICYgMSkpICogODsKICAgIGlmIChjeCA+PSBtIHx8IGN5ID49IGspIHJldHVybjsKICAgIHNyYyArPSBjeSAqIG0gKyBjeDsKICAgIF9faGlwX2ZwOF9lNG0zX2ZudXogYnVmZmVyWzhdID0geyBzcmNbMF0sIHNyY1ttXSwgc3JjWzIgKiBtXSwgc3JjWzMgKiBtXSwKICAgICAgc3JjWzQgKiBtXSwgc3JjWzUgKiBtXSwgc3JjWzYgKiBtXSwgc3JjWzcgKiBtXX07CiAgICBkc3RbYmxvY2tJZHgueCAqIGNvbCArIGJsb2NrSWR4LnkgKiA2NCArIHRocmVhZElkeC54XSA9ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oYnVmZmVyKTsKfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgaW50IG5leHQgPSAobSArIDEyNykgLyAxMjggKiA0OwogICAgaW50IHJvdyA9IChuICsgMTI3KSAvIDEyOCAqIDQgKyBuZXh0OwogICAgaW50IGNvbCA9IChrICsgMTI3KSAvIDEyOCAqIDUxMjsKICAgIGF1dG8gb3B0aW9ucyA9IHRvcmNoOjpUZW5zb3JPcHRpb25zKCkuZHR5cGUodG9yY2g6OmtVSW50NjQpLmRldmljZSh0b3JjaDo6a0NVREEpOwogICAgdG9yY2g6OlRlbnNvciBjYWNoZSA9IHRvcmNoOjp6ZXJvcyh7cm93LCBjb2x9LCBvcHRpb25zKTsKICAgIHJlb3JkZXJfa2VybmVsPDw8ZGltMyhyb3csIGNvbCAvIDY0KSwgZGltMyg2NCksIDAsIDA+Pj4oKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWEuZGF0YV9wdHIoKSwgIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmRhdGFfcHRyKCksCiAgICAgICAgY2FjaGUuZGF0YV9wdHI8dWludDY0X3Q+KCksIG0sIG4sIGssIGNvbCwgbmV4dCk7CiAgICBjdXN0b21fa2VybmVsPDw8ZGltMygobSszMSkvMzIsIChuKzMxKS8zMiksIGRpbTMoNjQpLCAwLCAwPj4+IChjYWNoZS5kYXRhX3B0cjx1aW50NjRfdD4oKSwKICAgICAgICBhcy5kYXRhX3B0cjxmbG9hdD4oKSwgYnMuZGF0YV9wdHI8ZmxvYXQ+KCksIChfX2hpcF9iZmxvYXQxNiopYy5kYXRhX3B0cigpLCBtLCBuLCBrLCBjb2wsIG5leHQgKiBjb2wpOwp9CiIiIgoKaW1wb3J0IG9zCm9zLmVudmlyb25bIkNYWCJdID0gImNsYW5nKysiCgptb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9J2ZwOF9tbScsCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLAogICAgY3VkYV9zb3VyY2VzPVtDVURBX1NSQ10sCiAgICBmdW5jdGlvbnM9WydmcDhfbW0nXSwKICAgIHZlcmJvc2U9VHJ1ZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPVsiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLU8zIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoK
No newline at end of file
+ IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NChjb25zdCB1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCB1aW50NjRfdCogY2FjaGUsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgb2Zmc2V0KSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGNvbnN0IHVpbnQ2NF90KiBhID0gY2FjaGU7CiAgICBjb25zdCB1aW50NjRfdCogYiA9IGNhY2hlICsgb2Zmc2V0OwogICAgaW50IGN4ID0gMzIgKiBibG9ja0lkeC54OwogICAgaW50IGN5ID0gMzIgKiBibG9ja0lkeC55OwogICAgaWYoY3ggPj0gbSB8fCBjeSA+PSBuKSByZXR1cm47CiAgICBpbnQgdHggPSB0aHJlYWRJZHgueCAmIDMxOwogICAgaW50IHR5ID0gdGhyZWFkSWR4LnggPj4gNSAmIDE7CiAgICBpbnQgc24gPSAobiArIEJMT0NLIC0gMSkgPj4gNzsKICAgIGJzICs9IGN5ID4+IDc7CiAgICBhcyArPSBjeCArIHR4OwogICAgYSArPSBibG9ja0lkeC54ICogY29sICsgdGhyZWFkSWR4Lng7CiAgICBiICs9IGJsb2NrSWR4LnkgKiBjb2wgKyB0aHJlYWRJZHgueDsKICAgIGYzMngxNiByZXN1bHQgPSB7IH07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgazsgaSArPSBCTE9DSykgewogICAgICAgIGNvbnN0IGF1dG8qIGFwID0gYSArIGkgKiA0OwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gYiArIGkgKiA0OwogICAgICAgIGYzMngxNiBibG9ja19yZXN1bHQgPSB7IH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHg0MF0sIGFwWzB4NDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDgwXSwgYXBbMHg4MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4YzBdLCBhcFsweGMwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxMDBdLCBhcFsweDEwMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4MTQwXSwgYXBbMHgxNDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDE4MF0sIGFwWzB4MTgwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxYzBdLCBhcFsweDFjMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgcmVzdWx0ICs9IGJsb2NrX3Jlc3VsdCAqIGJzWyhpID4+IDcpICogc25dICogYXNbKGkgPj4gNykgKiBtXTsKICAgIH0KICAgIGNvbnN0IGF1dG8qIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QoKilbOF0+KCZyZXN1bHQpOwogICAgdWludDY0X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihjICsgKHR4ICsgY3gpICogbiArIGN5ICsgdHkgKiA0KTsKICAgIGRzdFswXSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1swXSk7CiAgICBkc3RbMl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmNbMV0pOwogICAgZHN0WzRdID0gcGFja191MTZ4OF90b191NjQoc3JjWzJdKTsKICAgIGRzdFs2XSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1szXSk7Cn0KCl9fZ2xvYmFsX18gdm9pZCByZW9yZGVyX2tlcm5lbChjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMwLCBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMxLCB1aW50NjRfdCogZHN0LCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgbmV4dCkgewogICAgbmV4dCA9IGJsb2NrSWR4LnggPj0gbmV4dCA/IG5leHQgOiAwOwogICAgbSA9IG5leHQgPyBuIDogbTsKICAgIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIHNyYyA9IG5leHQgPyBzcmMxIDogc3JjMDsKICAgIGludCBjeCA9IChibG9ja0lkeC54IC0gbmV4dCkgKiAzMiArICh0aHJlYWRJZHgueCAmIDMxKTsKICAgIGludCBjeSA9IChibG9ja0lkeC55ICogMiArICh0aHJlYWRJZHgueCA+PiA1ICYgMSkpICogODsKICAgIHVpbnQ2NF90KiBkID0gZHN0ICsgYmxvY2tJZHgueCAqIGNvbCArIGJsb2NrSWR4LnkgKiA2NCArIHRocmVhZElkeC54OwogICAgaWYgKGN4ID49IG0gfHwgY3kgPj0gaykgewogICAgICAgICpkID0gMDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBzcmMgKz0gY3kgKiBtICsgY3g7CiAgICBfX2hpcF9mcDhfZTRtM19mbnV6IGJ1ZmZlcls4XSA9IHsgc3JjWzBdLCBzcmNbbV0sIHNyY1syICogbV0sIHNyY1szICogbV0sCiAgICAgIHNyY1s0ICogbV0sIHNyY1s1ICogbV0sIHNyY1s2ICogbV0sIHNyY1s3ICogbV19OwogICAgKmQgPSAqcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGJ1ZmZlcik7Cn0KCnZvaWQgZnA4X21tKHRvcmNoOjpUZW5zb3IgYSwgdG9yY2g6OlRlbnNvciBiLCB0b3JjaDo6VGVuc29yIGFzLCB0b3JjaDo6VGVuc29yIGJzLCB0b3JjaDo6VGVuc29yIGMpIHsKICAgIGludCBtID0gYS5zaXplKDApOwogICAgaW50IG4gPSBiLnNpemUoMCk7CiAgICBpbnQgayA9IGEuc2l6ZSgxKTsKICAgIGludCBuZXh0ID0gKG0gKyAxMjcpIC8gMTI4ICogNDsKICAgIGludCByb3cgPSAobiArIDEyNykgLyAxMjggKiA0ICsgbmV4dDsKICAgIGludCBjb2wgPSAoayArIDEyNykgLyAxMjggKiA1MTI7CiAgICBhdXRvIG9wdGlvbnMgPSB0b3JjaDo6VGVuc29yT3B0aW9ucygpLmR0eXBlKHRvcmNoOjprVUludDY0KS5kZXZpY2UodG9yY2g6OmtDVURBKTsKICAgIHRvcmNoOjpUZW5zb3IgY2FjaGUgPSB0b3JjaDo6ZW1wdHkoe3JvdywgY29sfSwgb3B0aW9ucyk7CiAgICByZW9yZGVyX2tlcm5lbDw8PGRpbTMocm93LCBjb2wgLyA2NCksIGRpbTMoNjQpLCAwLCAwPj4+KChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmRhdGFfcHRyKCksICAoX19oaXBfZnA4X2U0bTNfZm51eiopYi5kYXRhX3B0cigpLAogICAgICAgIGNhY2hlLmRhdGFfcHRyPHVpbnQ2NF90PigpLCBtLCBuLCBrLCBjb2wsIG5leHQpOwogICAgY3VzdG9tX2tlcm5lbDw8PGRpbTMoKG0rMzEpLzMyLCAobiszMSkvMzIpLCBkaW0zKDY0KSwgMCwgMD4+PiAoY2FjaGUuZGF0YV9wdHI8dWludDY0X3Q+KCksCiAgICAgICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgaywgY29sLCBuZXh0ICogY29sKTsKfQoiIiIKCmltcG9ydCBvcwpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIgoKbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSdmcDhfbW0nLAogICAgY3BwX3NvdXJjZXM9W0NQUF9XUkFQUEVSXSwKICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLAogICAgZnVuY3Rpb25zPVsnZnA4X21tJ10sCiAgICB2ZXJib3NlPVRydWUsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==
No newline at end of file

Best evidence level for this revision: reported

JSON