Skip to content
KernelIndex
Search⌘K

amd-mixture-of-experts · submission 22002

KernelBot user 160 · 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.

submission.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-mixture-of-experts-22002?include=source"
interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp16

Benchmark evidence

2 measurements across 1 GPU, fastest first.

Operation / workload
Hardware
Latency
Rank
Observed
AMD DeepSeek-style MoE layerfp16 · [1, 8192, 7168]
AMD Instinct MI300X
4.28s
#85 of 118
2025-05-13
AMD DeepSeek-style MoE layerfp16 · [1, 2048, 7168]
AMD Instinct MI300X
4.29s
#85 of 118
2025-05-13

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:18c417d89bf06f7b15fd9c5e4fd9f6f7d0b5ae8d0c27931dbb26a445cb1a2b97
license declaredunknown
license concludedunknown
imported2026-08-15

Kernel source

submission.py1 lines
IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1taXh0dXJlLW9mLWV4cGVydHMKIyFQT1BDT1JOIGdwdXMgTUkzMDAKCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCBtYXRoCmltcG9ydCB0b3JjaAppbXBvcnQgdG9yY2gubm4gYXMgbm4KaW1wb3J0IHRvcmNoLm5uLmZ1bmN0aW9uYWwgYXMgRgpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgVHVwbGUsIE9wdGlvbmFsCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKZnJvbSB0b3JjaC51dGlscy5jcHBfZXh0ZW5zaW9uIGltcG9ydCBsb2FkX2lubGluZQoKCmNsYXNzIEV4cGVydChubi5Nb2R1bGUpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZzogRGljdCwgZF9leHBlcnQ6IE9wdGlvbmFsW2ludF0gPSBOb25lKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogICAgICAgIHNlbGYuYWN0X2ZuID0gbm4uU2lMVSgpCiAgICAgICAgc2VsZi5kX2hpZGRlbjogaW50ID0gY29uZmlnWyJkX2hpZGRlbiJdCiAgICAgICAgc2VsZi5kX2V4cGVydDogaW50ID0gY29uZmlnWyJkX2V4cGVydCJdIGlmIGRfZXhwZXJ0IGlzIE5vbmUgZWxzZSBkX2V4cGVydAoKICAgICAgICBzZWxmLldfZ2F0ZSA9IE5vbmUKICAgICAgICBzZWxmLldfdXAgPSBubi5MaW5lYXIoc2VsZi5kX2hpZGRlbiwgc2VsZi5kX2V4cGVydCwgYmlhcz1GYWxzZSkKICAgICAgICBzZWxmLldfZG93biA9IG5uLkxpbmVhcihzZWxmLmRfZXhwZXJ0LCBzZWxmLmRfaGlkZGVuLCBiaWFzPUZhbHNlKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIGdhdGUgPSBzZWxmLmFjdF9mbih4IEAgc2VsZi5XX2dhdGUpCiAgICAgICAgb3V0ID0gc2VsZi5XX2Rvd24oZ2F0ZSAqIHNlbGYuV191cCh4KSkKICAgICAgICByZXR1cm4gb3V0CgoKY2xhc3MgTW9FR2F0ZShubi5Nb2R1bGUpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZzogRGljdCk6CiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCiAgICAgICAgc2VsZi50b3BfazogaW50ID0gY29uZmlnWyJuX2V4cGVydHNfcGVyX3Rva2VuIl0KICAgICAgICBzZWxmLm51bV9leHBlcnRzOiBpbnQgPSBjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXQogICAgICAgIHNlbGYuZF9oaWRkZW46IGludCA9IGNvbmZpZ1siZF9oaWRkZW4iXQoKICAgICAgICBzZWxmLldfZyA9IG5uLkxpbmVhcihzZWxmLmRfaGlkZGVuLCBzZWxmLm51bV9leHBlcnRzLCBiaWFzPUZhbHNlKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gVHVwbGVbdG9yY2guVGVuc29yLCB0b3JjaC5UZW5zb3JdOgogICAgICAgIGxvZ2l0cyA9IHNlbGYuV19nKHgpCiAgICAgICAgc2NvcmVzID0gbG9naXRzLnNvZnRtYXgoZGltPS0xKQogICAgICAgIHRvcGtfc2NvcmVzLCB0b3BrX2luZGljZXMgPSB0b3JjaC50b3BrKAogICAgICAgICAgICBzY29yZXMsIGs9c2VsZi50b3BfaywgZGltPS0xLCBzb3J0ZWQ9RmFsc2UKICAgICAgICApCgogICAgICAgIHJldHVybiB0b3BrX2luZGljZXMsIHRvcGtfc2NvcmVzCgoKY2xhc3MgTW9FKG5uLk1vZHVsZSk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnOiBEaWN0KToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogICAgICAgIHNlbGYuZXhwZXJ0cyA9IG5uLk1vZHVsZUxpc3QoCiAgICAgICAgICAgIFtFeHBlcnQoY29uZmlnKSBmb3IgXyBpbiByYW5nZShjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXSldCiAgICAgICAgKQogICAgICAgIHNlbGYuZ2F0aW5nX25ldHdvcmsgPSBNb0VHYXRlKGNvbmZpZykKICAgICAgICBzaGFyZWRfZXhwZXJ0X2RpbSA9IGNvbmZpZ1siZF9leHBlcnQiXSAqIGNvbmZpZ1sibl9zaGFyZWRfZXhwZXJ0cyJdCiAgICAgICAgc2VsZi5zaGFyZWRfZXhwZXJ0ID0gRXhwZXJ0KGNvbmZpZz1jb25maWcsIGRfZXhwZXJ0PXNoYXJlZF9leHBlcnRfZGltKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIHNoYXJlZF9vdXRwdXQgPSBzZWxmLnNoYXJlZF9leHBlcnQoeCkKICAgICAgICBleHBlcnRfaW5kaWNlcywgZXhwZXJ0X3Njb3JlcyA9IHNlbGYuZ2F0aW5nX25ldHdvcmsoeCkKICAgICAgICBiYXRjaF9zaXplLCBzZXFfbGVuLCBoaWRkZW5fZGltID0geC5zaGFwZQogICAgICAgIG9yaWdfc2hhcGUgPSB4LnNoYXBlCiAgICAgICAgeF9mbGF0ID0geC52aWV3KC0xLCBoaWRkZW5fZGltKQogICAgICAgIGZsYXRfZXhwZXJ0X2luZGljZXMgPSBleHBlcnRfaW5kaWNlcy52aWV3KC0xKQogICAgICAgIGZsYXRfZXhwZXJ0X3dlaWdodHMgPSBleHBlcnRfc2NvcmVzLnZpZXcoLTEsIDEpCiAgICAgICAgcm91dGVkX291dHB1dF9mbGF0ID0gc2VsZi5tb2VfaW5mZXIoCiAgICAgICAgICAgIHhfZmxhdCwgZmxhdF9leHBlcnRfaW5kaWNlcywgZmxhdF9leHBlcnRfd2VpZ2h0cwogICAgICAgICkKCiAgICAgICAgcm91dGVkX291dHB1dCA9IHJvdXRlZF9vdXRwdXRfZmxhdC52aWV3KCpvcmlnX3NoYXBlKQogICAgICAgIHJldHVybiByb3V0ZWRfb3V0cHV0ICsgc2hhcmVkX291dHB1dAoKICAgIEB0b3JjaC5ub19ncmFkKCkKICAgIGRlZiBtb2VfaW5mZXIoCiAgICAgICAgc2VsZiwKICAgICAgICB4OiB0b3JjaC5UZW5zb3IsCiAgICAgICAgZmxhdF9leHBlcnRfaW5kaWNlczogdG9yY2guVGVuc29yLAogICAgICAgIGZsYXRfZXhwZXJ0X3dlaWdodHM6IHRvcmNoLlRlbnNvciwKICAgICkgLT4gdG9yY2guVGVuc29yOgogICAgICAgIGV4cGVydF9jYWNoZSA9IHRvcmNoLnplcm9zX2xpa2UoeCkKICAgICAgICBpZHhzID0gZmxhdF9leHBlcnRfaW5kaWNlcy5hcmdzb3J0KCkKICAgICAgICBjb3VudHMgPSBmbGF0X2V4cGVydF9pbmRpY2VzLmJpbmNvdW50KCkuY3B1KCkubnVtcHkoKQogICAgICAgIHRva2Vuc19wZXJfZXhwZXJ0ID0gY291bnRzLmN1bXN1bSgpCiAgICAgICAgbnVtX3Blcl90b2sgPSBzZWxmLmNvbmZpZ1sibl9leHBlcnRzX3Blcl90b2tlbiJdCiAgICAgICAgdG9rZW5faWR4cyA9IGlkeHMgLy8gbnVtX3Blcl90b2sKICAgICAgICBmb3IgZXhwZXJ0X2lkLCBlbmRfaWR4IGluIGVudW1lcmF0ZSh0b2tlbnNfcGVyX2V4cGVydCk6CiAgICAgICAgICAgIHN0YXJ0X2lkeCA9IDAgaWYgZXhwZXJ0X2lkID09IDAgZWxzZSB0b2tlbnNfcGVyX2V4cGVydFtleHBlcnRfaWQgLSAxXQogICAgICAgICAgICBpZiBzdGFydF9pZHggPT0gZW5kX2lkeDoKICAgICAgICAgICAgICAgIGNvbnRpbnVlCgogICAgICAgICAgICBleHBlcnQgPSBzZWxmLmV4cGVydHNbZXhwZXJ0X2lkXQogICAgICAgICAgICBleHBfdG9rZW5faWR4cyA9IHRva2VuX2lkeHNbc3RhcnRfaWR4OmVuZF9pZHhdCiAgICAgICAgICAgIGV4cGVydF90b2tlbnMgPSB4W2V4cF90b2tlbl9pZHhzXQogICAgICAgICAgICBleHBlcnRfb3V0ID0gZXhwZXJ0KGV4cGVydF90b2tlbnMpCiAgICAgICAgICAgIGV4cGVydF9vdXQubXVsXyhmbGF0X2V4cGVydF93ZWlnaHRzW2lkeHNbc3RhcnRfaWR4OmVuZF9pZHhdXSkKICAgICAgICAgICAgZXhwZXJ0X2NhY2hlLnNjYXR0ZXJfcmVkdWNlXygKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICBleHBfdG9rZW5faWR4cy52aWV3KC0xLCAxKS5yZXBlYXQoMSwgeC5zaGFwZVstMV0pLAogICAgICAgICAgICAgICAgZXhwZXJ0X291dCwKICAgICAgICAgICAgICAgIHJlZHVjZT0ic3VtIiwKICAgICAgICAgICAgKQoKICAgICAgICByZXR1cm4gZXhwZXJ0X2NhY2hlCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBpbnB1dF90ZW5zb3IsIHdlaWdodHMsIGNvbmZpZyA9IGRhdGEKICAgIG51bV9leHBlcnRzID0gY29uZmlnWyJuX3JvdXRlZF9leHBlcnRzIl0KICAgIG1vZSA9IE1vRShjb25maWcpCgogICAgbW9lLmdhdGluZ19uZXR3b3JrLldfZy53ZWlnaHQgPSBubi5QYXJhbWV0ZXIod2VpZ2h0c1sicm91dGVyLndlaWdodCJdKQoKICAgIGZvciBpIGluIHJhbmdlKG51bV9leHBlcnRzKToKICAgICAgICBtb2UuZXhwZXJ0c1tpXS5XX2dhdGUgPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMC53ZWlnaHQiXQogICAgICAgIHVwX3Byb2pfd2VpZ2h0ID0gd2VpZ2h0c1tmImV4cGVydHMue2l9LjEud2VpZ2h0Il0KICAgICAgICBkb3duX3Byb2pfd2VpZ2h0ID0gd2VpZ2h0c1tmImV4cGVydHMue2l9LjIud2VpZ2h0Il0KCiAgICAgICAgbW9lLmV4cGVydHNbaV0uV191cC53ZWlnaHQgPSBubi5QYXJhbWV0ZXIodXBfcHJval93ZWlnaHQudCgpKQogICAgICAgIG1vZS5leHBlcnRzW2ldLldfZG93bi53ZWlnaHQgPSBubi5QYXJhbWV0ZXIoZG93bl9wcm9qX3dlaWdodC50KCkpCgogICAgbW9lLnNoYXJlZF9leHBlcnQuV19nYXRlID0gd2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMC53ZWlnaHQiXQogICAgbW9lLnNoYXJlZF9leHBlcnQuV191cC53ZWlnaHQgPSBubi5QYXJhbWV0ZXIod2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMS53ZWlnaHQiXS50KCkpCiAgICBtb2Uuc2hhcmVkX2V4cGVydC5XX2Rvd24ud2VpZ2h0ID0gbm4uUGFyYW1ldGVyKAogICAgICAgIHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjIud2VpZ2h0Il0udCgpCiAgICApCgogICAgb3V0cHV0ID0gbW9lKGlucHV0X3RlbnNvcikKCiAgICByZXR1cm4gb3V0cHV0Cg==

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 amd-mixture-of-experts · submission 20495.

- IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1taXh0dXJlLW9mLWV4cGVydHMKIyFQT1BDT1JOIGdwdXMgTUkzMDAKCmltcG9ydCBtYXRoCmltcG9ydCB0b3JjaAppbXBvcnQgdG9yY2gubm4gYXMgbm4KaW1wb3J0IHRvcmNoLm5uLmZ1bmN0aW9uYWwgYXMgRgpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgVHVwbGUsIE9wdGlvbmFsCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKCmNsYXNzIEV4cGVydChubi5Nb2R1bGUpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZzogRGljdCwgZF9leHBlcnQ6IE9wdGlvbmFsW2ludF0gPSBOb25lKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogICAgICAgIHNlbGYuYWN0X2ZuID0gbm4uU2lMVSgpCiAgICAgICAgc2VsZi5kX2hpZGRlbjogaW50ID0gY29uZmlnWyJkX2hpZGRlbiJdCiAgICAgICAgc2VsZi5kX2V4cGVydDogaW50ID0gY29uZmlnWyJkX2V4cGVydCJdIGlmIGRfZXhwZXJ0IGlzIE5vbmUgZWxzZSBkX2V4cGVydAoKICAgICAgICBzZWxmLldfZ2F0ZSA9IG5uLkxpbmVhcihzZWxmLmRfaGlkZGVuLCBzZWxmLmRfZXhwZXJ0LCBiaWFzPUZhbHNlKQogICAgICAgIHNlbGYuV191cCA9IG5uLkxpbmVhcihzZWxmLmRfaGlkZGVuLCBzZWxmLmRfZXhwZXJ0LCBiaWFzPUZhbHNlKQogICAgICAgIHNlbGYuV19kb3duID0gbm4uTGluZWFyKHNlbGYuZF9leHBlcnQsIHNlbGYuZF9oaWRkZW4sIGJpYXM9RmFsc2UpCgogICAgZGVmIGZvcndhcmQoc2VsZiwgeDogdG9yY2guVGVuc29yKSAtPiB0b3JjaC5UZW5zb3I6CiAgICAgICAgZ2F0ZSA9IHNlbGYuYWN0X2ZuKHNlbGYuV19nYXRlKHgpKQogICAgICAgIG91dCA9IHNlbGYuV19kb3duKGdhdGUgKiBzZWxmLldfdXAoeCkpCiAgICAgICAgcmV0dXJuIG91dAoKCmNsYXNzIE1vRUdhdGUobm4uTW9kdWxlKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc6IERpY3QpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKQogICAgICAgIHNlbGYudG9wX2s6IGludCA9IGNvbmZpZ1sibl9leHBlcnRzX3Blcl90b2tlbiJdCiAgICAgICAgc2VsZi5udW1fZXhwZXJ0czogaW50ID0gY29uZmlnWyJuX3JvdXRlZF9leHBlcnRzIl0KICAgICAgICBzZWxmLmRfaGlkZGVuOiBpbnQgPSBjb25maWdbImRfaGlkZGVuIl0KCiAgICAgICAgc2VsZi5XX2cgPSBubi5MaW5lYXIoc2VsZi5kX2hpZGRlbiwgc2VsZi5udW1fZXhwZXJ0cywgYmlhcz1GYWxzZSkKCiAgICBkZWYgZm9yd2FyZChzZWxmLCB4OiB0b3JjaC5UZW5zb3IpIC0+IFR1cGxlW3RvcmNoLlRlbnNvciwgdG9yY2guVGVuc29yXToKICAgICAgICBsb2dpdHMgPSBzZWxmLldfZyh4KQogICAgICAgIHNjb3JlcyA9IGxvZ2l0cy5zb2Z0bWF4KGRpbT0tMSkKICAgICAgICB0b3BrX3Njb3JlcywgdG9wa19pbmRpY2VzID0gdG9yY2gudG9wayhzY29yZXMsIGs9c2VsZi50b3BfaywgZGltPS0xLCBzb3J0ZWQ9RmFsc2UpCgogICAgICAgIHJldHVybiB0b3BrX2luZGljZXMsIHRvcGtfc2NvcmVzCgoKY2xhc3MgTW9FKG5uLk1vZHVsZSk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnOiBEaWN0KToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogICAgICAgIHNlbGYuZXhwZXJ0cyA9IG5uLk1vZHVsZUxpc3QoWwogICAgICAgICAgICBFeHBlcnQoY29uZmlnKQogICAgICAgICAgICBmb3IgXyBpbiByYW5nZShjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXSkKICAgICAgICBdKQogICAgICAgIHNlbGYuZ2F0aW5nX25ldHdvcmsgPSBNb0VHYXRlKGNvbmZpZykKICAgICAgICBzaGFyZWRfZXhwZXJ0X2RpbSA9IGNvbmZpZ1siZF9leHBlcnQiXSAqIGNvbmZpZ1sibl9zaGFyZWRfZXhwZXJ0cyJdCiAgICAgICAgc2VsZi5zaGFyZWRfZXhwZXJ0ID0gRXhwZXJ0KGNvbmZpZz1jb25maWcsIGRfZXhwZXJ0PXNoYXJlZF9leHBlcnRfZGltKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIHNoYXJlZF9vdXRwdXQgPSBzZWxmLnNoYXJlZF9leHBlcnQoeCkKICAgICAgICBleHBlcnRfaW5kaWNlcywgZXhwZXJ0X3Njb3JlcyA9IHNlbGYuZ2F0aW5nX25ldHdvcmsoeCkKICAgICAgICBiYXRjaF9zaXplLCBzZXFfbGVuLCBoaWRkZW5fZGltID0geC5zaGFwZQogICAgICAgIG9yaWdfc2hhcGUgPSB4LnNoYXBlCiAgICAgICAgeF9mbGF0ID0geC52aWV3KC0xLCBoaWRkZW5fZGltKQogICAgICAgIGZsYXRfZXhwZXJ0X2luZGljZXMgPSBleHBlcnRfaW5kaWNlcy52aWV3KC0xKQogICAgICAgIGZsYXRfZXhwZXJ0X3dlaWdodHMgPSBleHBlcnRfc2NvcmVzLnZpZXcoLTEsIDEpCiAgICAgICAgcm91dGVkX291dHB1dF9mbGF0ID0gc2VsZi5tb2VfaW5mZXIoeF9mbGF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRfZXhwZXJ0X2luZGljZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdF9leHBlcnRfd2VpZ2h0cykKCiAgICAgICAgcm91dGVkX291dHB1dCA9IHJvdXRlZF9vdXRwdXRfZmxhdC52aWV3KCpvcmlnX3NoYXBlKQogICAgICAgIHJldHVybiByb3V0ZWRfb3V0cHV0ICsgc2hhcmVkX291dHB1dAoKICAgIEB0b3JjaC5ub19ncmFkKCkKICAgIGRlZiBtb2VfaW5mZXIoc2VsZiwKICAgICAgICAgICAgICAgICAgeDogdG9yY2guVGVuc29yLAogICAgICAgICAgICAgICAgICBmbGF0X2V4cGVydF9pbmRpY2VzOiB0b3JjaC5UZW5zb3IsCiAgICAgICAgICAgICAgICAgIGZsYXRfZXhwZXJ0X3dlaWdodHM6IHRvcmNoLlRlbnNvcgogICAgICAgICAgICAgICAgICkgLT4gdG9yY2guVGVuc29yOgogICAgICAgIGV4cGVydF9jYWNoZSA9IHRvcmNoLnplcm9zX2xpa2UoeCkKICAgICAgICBpZHhzID0gZmxhdF9leHBlcnRfaW5kaWNlcy5hcmdzb3J0KCkKICAgICAgICBjb3VudHMgPSBmbGF0X2V4cGVydF9pbmRpY2VzLmJpbmNvdW50KCkuY3B1KCkubnVtcHkoKQogICAgICAgIHRva2Vuc19wZXJfZXhwZXJ0ID0gY291bnRzLmN1bXN1bSgpCiAgICAgICAgbnVtX3Blcl90b2sgPSBzZWxmLmNvbmZpZ1sibl9leHBlcnRzX3Blcl90b2tlbiJdCiAgICAgICAgdG9rZW5faWR4cyA9IGlkeHMgLy8gbnVtX3Blcl90b2sKICAgICAgICBmb3IgZXhwZXJ0X2lkLCBlbmRfaWR4IGluIGVudW1lcmF0ZSh0b2tlbnNfcGVyX2V4cGVydCk6CiAgICAgICAgICAgIHN0YXJ0X2lkeCA9IDAgaWYgZXhwZXJ0X2lkID09IDAgZWxzZSB0b2tlbnNfcGVyX2V4cGVydFtleHBlcnRfaWQgLSAxXQogICAgICAgICAgICBpZiBzdGFydF9pZHggPT0gZW5kX2lkeDoKICAgICAgICAgICAgICAgIGNvbnRpbnVlCgogICAgICAgICAgICBleHBlcnQgPSBzZWxmLmV4cGVydHNbZXhwZXJ0X2lkXQogICAgICAgICAgICBleHBfdG9rZW5faWR4cyA9IHRva2VuX2lkeHNbc3RhcnRfaWR4OmVuZF9pZHhdCiAgICAgICAgICAgIGV4cGVydF90b2tlbnMgPSB4W2V4cF90b2tlbl9pZHhzXQogICAgICAgICAgICBleHBlcnRfb3V0ICAgID0gZXhwZXJ0KGV4cGVydF90b2tlbnMpCiAgICAgICAgICAgIGV4cGVydF9vdXQubXVsXyhmbGF0X2V4cGVydF93ZWlnaHRzW2lkeHNbc3RhcnRfaWR4OmVuZF9pZHhdXSkKICAgICAgICAgICAgZXhwZXJ0X2NhY2hlLnNjYXR0ZXJfcmVkdWNlXygKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICBleHBfdG9rZW5faWR4cy52aWV3KC0xLCAxKS5yZXBlYXQoMSwgeC5zaGFwZVstMV0pLAogICAgICAgICAgICAgICAgZXhwZXJ0X291dCwKICAgICAgICAgICAgICAgIHJlZHVjZT0nc3VtJwogICAgICAgICAgICApCgogICAgICAgIHJldHVybiBleHBlcnRfY2FjaGUKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgICIiIgogICAgU3VibWlzc2lvbiB0ZW1wbGF0ZSBmb3IgRGVlcFNlZWstc3R5bGUgTWl4dHVyZSBvZiBFeHBlcnRzIHVzaW5nIFB5VG9yY2guCiAgICAKICAgIEFyZ3M6CiAgICAgICAgZGF0YTogVHVwbGUgb2YgKGlucHV0OiB0b3JjaC5UZW5zb3IsIHdlaWdodHM6IERpY3Rbc3RyLCB0b3JjaC5UZW5zb3JdLCBjb25maWc6IERpY3QpCiAgICAgICAgICAgIC0gaW5wdXQ6IElucHV0IHRlbnNvciBvZiBzaGFwZSBbYmF0Y2hfc2l6ZSwgc2VxX2xlbiwgaGlkZGVuX3NpemVdCiAgICAgICAgICAgIC0gd2VpZ2h0czogRGljdGlvbmFyeSBjb250YWluaW5nIG1vZGVsIHdlaWdodHMKICAgICAgICAgICAgLSBjb25maWc6IERpY3Rpb25hcnkgY29udGFpbmluZyBtb2RlbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMKICAgICAgICAgICAgCiAgICBSZXR1cm5zOgogICAgICAgIFR1cGxlIGNvbnRhaW5pbmc6CiAgICAgICAgICAgIC0gb3V0cHV0OiBQcm9jZXNzZWQgdGVuc29yIFtiYXRjaF9zaXplLCBzZXFfbGVuLCBkX21vZGVsXQogICAgICAgICAgICAtIGF1eF9kYXRhOiBEaWN0aW9uYXJ5IHdpdGggYXV4aWxpYXJ5IGRhdGEKICAgICIiIgogICAgaW5wdXRfdGVuc29yLCB3ZWlnaHRzLCBjb25maWcgPSBkYXRhCiAgICBudW1fZXhwZXJ0cyA9IGNvbmZpZ1sibl9yb3V0ZWRfZXhwZXJ0cyJdCiAgICBtb2UgPSBNb0UoY29uZmlnKQoKICAgICMgRmlsbCBpbiB0aGUgZ2l2ZW4gd2VpZ2h0cyBvZiB0aGUgbW9kZWwKICAgIG1vZS5nYXRpbmdfbmV0d29yay5XX2cud2VpZ2h0ID0gbm4uUGFyYW1ldGVyKHdlaWdodHNbJ3JvdXRlci53ZWlnaHQnXSkKCiAgICBmb3IgaSBpbiByYW5nZShudW1fZXhwZXJ0cyk6CiAgICAgICAgZ2F0ZV9wcm9qX3dlaWdodCA9IHdlaWdodHNbZidleHBlcnRzLntpfS4wLndlaWdodCddCiAgICAgICAgdXBfcHJval93ZWlnaHQgPSB3ZWlnaHRzW2YnZXhwZXJ0cy57aX0uMS53ZWlnaHQnXQogICAgICAgIGRvd25fcHJval93ZWlnaHQgPSB3ZWlnaHRzW2YnZXhwZXJ0cy57aX0uMi53ZWlnaHQnXQoKICAgICAgICAjIFRyYW5zcG9zZSB3ZWlnaHRzIHRvIG1hdGNoIGV4cGVjdGVkIHNoYXBlIGZvciBubi5MaW5lYXIKICAgICAgICBtb2UuZXhwZXJ0c1tpXS5XX2dhdGUud2VpZ2h0ID0gbm4uUGFyYW1ldGVyKGdhdGVfcHJval93ZWlnaHQudCgpKQogICAgICAgIG1vZS5leHBlcnRzW2ldLldfdXAud2VpZ2h0ID0gbm4uUGFyYW1ldGVyKHVwX3Byb2pfd2VpZ2h0LnQoKSkKICAgICAgICBtb2UuZXhwZXJ0c1tpXS5XX2Rvd24ud2VpZ2h0ID0gbm4uUGFyYW1ldGVyKGRvd25fcHJval93ZWlnaHQudCgpKQoKICAgIG1vZS5zaGFyZWRfZXhwZXJ0LldfZ2F0ZS53ZWlnaHQgPSBubi5QYXJhbWV0ZXIod2VpZ2h0c1snc2hhcmVkX2V4cGVydHMuMC53ZWlnaHQnXS50KCkpCiAgICBtb2Uuc2hhcmVkX2V4cGVydC5XX3VwLndlaWdodCA9IG5uLlBhcmFtZXRlcih3ZWlnaHRzWydzaGFyZWRfZXhwZXJ0cy4xLndlaWdodCddLnQoKSkKICAgIG1vZS5zaGFyZWRfZXhwZXJ0LldfZG93bi53ZWlnaHQgPSBubi5QYXJhbWV0ZXIod2VpZ2h0c1snc2hhcmVkX2V4cGVydHMuMi53ZWlnaHQnXS50KCkpCgogICAgIyBSdW4gdGhlIG1vZGVsCiAgICBvdXRwdXQgPSBtb2UoaW5wdXRfdGVuc29yKQoKICAgIHJldHVybiBvdXRwdXQK
No newline at end of file
+ IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1taXh0dXJlLW9mLWV4cGVydHMKIyFQT1BDT1JOIGdwdXMgTUkzMDAKCmltcG9ydCBvcwppbXBvcnQgc3lzCmltcG9ydCBtYXRoCmltcG9ydCB0b3JjaAppbXBvcnQgdG9yY2gubm4gYXMgbm4KaW1wb3J0IHRvcmNoLm5uLmZ1bmN0aW9uYWwgYXMgRgpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgVHVwbGUsIE9wdGlvbmFsCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKZnJvbSB0b3JjaC51dGlscy5jcHBfZXh0ZW5zaW9uIGltcG9ydCBsb2FkX2lubGluZQoKCmNsYXNzIEV4cGVydChubi5Nb2R1bGUpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZzogRGljdCwgZF9leHBlcnQ6IE9wdGlvbmFsW2ludF0gPSBOb25lKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogICAgICAgIHNlbGYuYWN0X2ZuID0gbm4uU2lMVSgpCiAgICAgICAgc2VsZi5kX2hpZGRlbjogaW50ID0gY29uZmlnWyJkX2hpZGRlbiJdCiAgICAgICAgc2VsZi5kX2V4cGVydDogaW50ID0gY29uZmlnWyJkX2V4cGVydCJdIGlmIGRfZXhwZXJ0IGlzIE5vbmUgZWxzZSBkX2V4cGVydAoKICAgICAgICBzZWxmLldfZ2F0ZSA9IE5vbmUKICAgICAgICBzZWxmLldfdXAgPSBubi5MaW5lYXIoc2VsZi5kX2hpZGRlbiwgc2VsZi5kX2V4cGVydCwgYmlhcz1GYWxzZSkKICAgICAgICBzZWxmLldfZG93biA9IG5uLkxpbmVhcihzZWxmLmRfZXhwZXJ0LCBzZWxmLmRfaGlkZGVuLCBiaWFzPUZhbHNlKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIGdhdGUgPSBzZWxmLmFjdF9mbih4IEAgc2VsZi5XX2dhdGUpCiAgICAgICAgb3V0ID0gc2VsZi5XX2Rvd24oZ2F0ZSAqIHNlbGYuV191cCh4KSkKICAgICAgICByZXR1cm4gb3V0CgoKY2xhc3MgTW9FR2F0ZShubi5Nb2R1bGUpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZzogRGljdCk6CiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCiAgICAgICAgc2VsZi50b3BfazogaW50ID0gY29uZmlnWyJuX2V4cGVydHNfcGVyX3Rva2VuIl0KICAgICAgICBzZWxmLm51bV9leHBlcnRzOiBpbnQgPSBjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXQogICAgICAgIHNlbGYuZF9oaWRkZW46IGludCA9IGNvbmZpZ1siZF9oaWRkZW4iXQoKICAgICAgICBzZWxmLldfZyA9IG5uLkxpbmVhcihzZWxmLmRfaGlkZGVuLCBzZWxmLm51bV9leHBlcnRzLCBiaWFzPUZhbHNlKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gVHVwbGVbdG9yY2guVGVuc29yLCB0b3JjaC5UZW5zb3JdOgogICAgICAgIGxvZ2l0cyA9IHNlbGYuV19nKHgpCiAgICAgICAgc2NvcmVzID0gbG9naXRzLnNvZnRtYXgoZGltPS0xKQogICAgICAgIHRvcGtfc2NvcmVzLCB0b3BrX2luZGljZXMgPSB0b3JjaC50b3BrKAogICAgICAgICAgICBzY29yZXMsIGs9c2VsZi50b3BfaywgZGltPS0xLCBzb3J0ZWQ9RmFsc2UKICAgICAgICApCgogICAgICAgIHJldHVybiB0b3BrX2luZGljZXMsIHRvcGtfc2NvcmVzCgoKY2xhc3MgTW9FKG5uLk1vZHVsZSk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnOiBEaWN0KToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwogICAgICAgIHNlbGYuZXhwZXJ0cyA9IG5uLk1vZHVsZUxpc3QoCiAgICAgICAgICAgIFtFeHBlcnQoY29uZmlnKSBmb3IgXyBpbiByYW5nZShjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXSldCiAgICAgICAgKQogICAgICAgIHNlbGYuZ2F0aW5nX25ldHdvcmsgPSBNb0VHYXRlKGNvbmZpZykKICAgICAgICBzaGFyZWRfZXhwZXJ0X2RpbSA9IGNvbmZpZ1siZF9leHBlcnQiXSAqIGNvbmZpZ1sibl9zaGFyZWRfZXhwZXJ0cyJdCiAgICAgICAgc2VsZi5zaGFyZWRfZXhwZXJ0ID0gRXhwZXJ0KGNvbmZpZz1jb25maWcsIGRfZXhwZXJ0PXNoYXJlZF9leHBlcnRfZGltKQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIHNoYXJlZF9vdXRwdXQgPSBzZWxmLnNoYXJlZF9leHBlcnQoeCkKICAgICAgICBleHBlcnRfaW5kaWNlcywgZXhwZXJ0X3Njb3JlcyA9IHNlbGYuZ2F0aW5nX25ldHdvcmsoeCkKICAgICAgICBiYXRjaF9zaXplLCBzZXFfbGVuLCBoaWRkZW5fZGltID0geC5zaGFwZQogICAgICAgIG9yaWdfc2hhcGUgPSB4LnNoYXBlCiAgICAgICAgeF9mbGF0ID0geC52aWV3KC0xLCBoaWRkZW5fZGltKQogICAgICAgIGZsYXRfZXhwZXJ0X2luZGljZXMgPSBleHBlcnRfaW5kaWNlcy52aWV3KC0xKQogICAgICAgIGZsYXRfZXhwZXJ0X3dlaWdodHMgPSBleHBlcnRfc2NvcmVzLnZpZXcoLTEsIDEpCiAgICAgICAgcm91dGVkX291dHB1dF9mbGF0ID0gc2VsZi5tb2VfaW5mZXIoCiAgICAgICAgICAgIHhfZmxhdCwgZmxhdF9leHBlcnRfaW5kaWNlcywgZmxhdF9leHBlcnRfd2VpZ2h0cwogICAgICAgICkKCiAgICAgICAgcm91dGVkX291dHB1dCA9IHJvdXRlZF9vdXRwdXRfZmxhdC52aWV3KCpvcmlnX3NoYXBlKQogICAgICAgIHJldHVybiByb3V0ZWRfb3V0cHV0ICsgc2hhcmVkX291dHB1dAoKICAgIEB0b3JjaC5ub19ncmFkKCkKICAgIGRlZiBtb2VfaW5mZXIoCiAgICAgICAgc2VsZiwKICAgICAgICB4OiB0b3JjaC5UZW5zb3IsCiAgICAgICAgZmxhdF9leHBlcnRfaW5kaWNlczogdG9yY2guVGVuc29yLAogICAgICAgIGZsYXRfZXhwZXJ0X3dlaWdodHM6IHRvcmNoLlRlbnNvciwKICAgICkgLT4gdG9yY2guVGVuc29yOgogICAgICAgIGV4cGVydF9jYWNoZSA9IHRvcmNoLnplcm9zX2xpa2UoeCkKICAgICAgICBpZHhzID0gZmxhdF9leHBlcnRfaW5kaWNlcy5hcmdzb3J0KCkKICAgICAgICBjb3VudHMgPSBmbGF0X2V4cGVydF9pbmRpY2VzLmJpbmNvdW50KCkuY3B1KCkubnVtcHkoKQogICAgICAgIHRva2Vuc19wZXJfZXhwZXJ0ID0gY291bnRzLmN1bXN1bSgpCiAgICAgICAgbnVtX3Blcl90b2sgPSBzZWxmLmNvbmZpZ1sibl9leHBlcnRzX3Blcl90b2tlbiJdCiAgICAgICAgdG9rZW5faWR4cyA9IGlkeHMgLy8gbnVtX3Blcl90b2sKICAgICAgICBmb3IgZXhwZXJ0X2lkLCBlbmRfaWR4IGluIGVudW1lcmF0ZSh0b2tlbnNfcGVyX2V4cGVydCk6CiAgICAgICAgICAgIHN0YXJ0X2lkeCA9IDAgaWYgZXhwZXJ0X2lkID09IDAgZWxzZSB0b2tlbnNfcGVyX2V4cGVydFtleHBlcnRfaWQgLSAxXQogICAgICAgICAgICBpZiBzdGFydF9pZHggPT0gZW5kX2lkeDoKICAgICAgICAgICAgICAgIGNvbnRpbnVlCgogICAgICAgICAgICBleHBlcnQgPSBzZWxmLmV4cGVydHNbZXhwZXJ0X2lkXQogICAgICAgICAgICBleHBfdG9rZW5faWR4cyA9IHRva2VuX2lkeHNbc3RhcnRfaWR4OmVuZF9pZHhdCiAgICAgICAgICAgIGV4cGVydF90b2tlbnMgPSB4W2V4cF90b2tlbl9pZHhzXQogICAgICAgICAgICBleHBlcnRfb3V0ID0gZXhwZXJ0KGV4cGVydF90b2tlbnMpCiAgICAgICAgICAgIGV4cGVydF9vdXQubXVsXyhmbGF0X2V4cGVydF93ZWlnaHRzW2lkeHNbc3RhcnRfaWR4OmVuZF9pZHhdXSkKICAgICAgICAgICAgZXhwZXJ0X2NhY2hlLnNjYXR0ZXJfcmVkdWNlXygKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICBleHBfdG9rZW5faWR4cy52aWV3KC0xLCAxKS5yZXBlYXQoMSwgeC5zaGFwZVstMV0pLAogICAgICAgICAgICAgICAgZXhwZXJ0X291dCwKICAgICAgICAgICAgICAgIHJlZHVjZT0ic3VtIiwKICAgICAgICAgICAgKQoKICAgICAgICByZXR1cm4gZXhwZXJ0X2NhY2hlCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBpbnB1dF90ZW5zb3IsIHdlaWdodHMsIGNvbmZpZyA9IGRhdGEKICAgIG51bV9leHBlcnRzID0gY29uZmlnWyJuX3JvdXRlZF9leHBlcnRzIl0KICAgIG1vZSA9IE1vRShjb25maWcpCgogICAgbW9lLmdhdGluZ19uZXR3b3JrLldfZy53ZWlnaHQgPSBubi5QYXJhbWV0ZXIod2VpZ2h0c1sicm91dGVyLndlaWdodCJdKQoKICAgIGZvciBpIGluIHJhbmdlKG51bV9leHBlcnRzKToKICAgICAgICBtb2UuZXhwZXJ0c1tpXS5XX2dhdGUgPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMC53ZWlnaHQiXQogICAgICAgIHVwX3Byb2pfd2VpZ2h0ID0gd2VpZ2h0c1tmImV4cGVydHMue2l9LjEud2VpZ2h0Il0KICAgICAgICBkb3duX3Byb2pfd2VpZ2h0ID0gd2VpZ2h0c1tmImV4cGVydHMue2l9LjIud2VpZ2h0Il0KCiAgICAgICAgbW9lLmV4cGVydHNbaV0uV191cC53ZWlnaHQgPSBubi5QYXJhbWV0ZXIodXBfcHJval93ZWlnaHQudCgpKQogICAgICAgIG1vZS5leHBlcnRzW2ldLldfZG93bi53ZWlnaHQgPSBubi5QYXJhbWV0ZXIoZG93bl9wcm9qX3dlaWdodC50KCkpCgogICAgbW9lLnNoYXJlZF9leHBlcnQuV19nYXRlID0gd2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMC53ZWlnaHQiXQogICAgbW9lLnNoYXJlZF9leHBlcnQuV191cC53ZWlnaHQgPSBubi5QYXJhbWV0ZXIod2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMS53ZWlnaHQiXS50KCkpCiAgICBtb2Uuc2hhcmVkX2V4cGVydC5XX2Rvd24ud2VpZ2h0ID0gbm4uUGFyYW1ldGVyKAogICAgICAgIHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjIud2VpZ2h0Il0udCgpCiAgICApCgogICAgb3V0cHV0ID0gbW9lKGlucHV0X3RlbnNvcikKCiAgICByZXR1cm4gb3V0cHV0Cg==
No newline at end of file

Best evidence level for this revision: reported

JSON