Ly8gUlVOOiAlY2xhbmdfY2MxIC10cmlwbGUgaTM4Ni11bmtub3duLXVua25vd24gLWVtaXQtbGx2bSAlcyAtbyAtIHwgRmlsZUNoZWNrIC1jaGVjay1wcmVmaXg9QyAlcwovLyBSVU46ICVjbGFuZ19jYzEgLXggYysrIC1zdGQ9YysrMHggLXRyaXBsZSBpMzg2LXVua25vd24tdW5rbm93biAtZW1pdC1sbHZtICVzIC1vIC0gfCBGaWxlQ2hlY2sgLWNoZWNrLXByZWZpeD1DUFAwWCAlcwovLyBSVU46ICVjbGFuZ19jYzEgLXggYysrIC1zdGQ9YysrMHggLWZzaG9ydC13Y2hhciAtdHJpcGxlIGkzODYtdW5rbm93bi11bmtub3duIC1lbWl0LWxsdm0gJXMgLW8gLSB8IEZpbGVDaGVjayAtY2hlY2stcHJlZml4PVNIT1JUV0NIQVIgJXMKCi8vIFRoaXMgZmlsZSBjb250YWlucyBhIG1peCBvZiBJU08tODg1OS0xIGFuZCBVVEYtOCBlbmNvZGVkIGRhdGEuCi8vIHRoZSBsaXRlcmFsIGFzc2lnbmVkIHRvICdhYScgc2hvdWxkIGJlIHRoZSBJU08tODg1OS0xIGVuY29kaW5nIGZvciB0aGUgY29kZQovLyBwb2ludHMgVSswMEMwIFUrMDBFOSBVKzAwRUUgVSswMEY1IFUrMDBGQwoKLy8gVGhlIHJlc3Qgb2YgdGhlIGxpdGVyYWxzIHNob3VsZCBjb250YWluIHRoZSBVVEYtOCBlbmNvZGluZyBmb3IgVSswNDFBIFUrMDQzRQovLyBVKzA0NDggVSswNDNBIFUrMDQzMAoKI2lmbmRlZiBfX2NwbHVzcGx1cwojaW5jbHVkZSA8c3RkZGVmLmg+CiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIKI2VuZGlmCnZvaWQgZigpIHsKICAvLyBDSEVDSy1DOiBwcml2YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbNiB4IGk4XSBjIlxDMFxFOVxFRVxGNVxGQ1wwMCIsIGFsaWduIDEKICAvLyBDSEVDSy1DUFAwWDogcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzYgeCBpOF0gYyJcQzBcRTlcRUVcRjVcRkNcMDAiLCBhbGlnbiAxCiAgY2hhciBjb25zdCAqYWEgPSAiwOnu9fwiOwogIAogIC8vIENIRUNLLUM6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFsxMSB4IGk4XSBjIlxEMFw5QVxEMFxCRVxEMVw4OFxEMFxCQVxEMFxCMFwwMCIsIGFsaWduIDEKICAvLyBDSEVDSy1DUFAwWDogcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzExIHggaThdIGMiXEQwXDlBXEQwXEJFXEQxXDg4XEQwXEJBXEQwXEIwXDAwIiwgYWxpZ24gMQogIGNoYXIgY29uc3QgKmEgPSAi0JrQvtGI0LrQsCI7CiAgCiAgLy8gQ0hFQ0stQzogcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzYgeCBpMzJdIFtpMzIgMTA1MCwgaTMyIDEwODYsIGkzMiAxMDk2LCBpMzIgMTA4MiwgaTMyIDEwNzIsIGkzMiAwXSwgYWxpZ24gNAogIC8vIENIRUNLLVNIT1JUV0NIQVI6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs2IHggaTE2XSBbaTE2IDEwNTAsIGkxNiAxMDg2LCBpMTYgMTA5NiwgaTE2IDEwODIsIGkxNiAxMDcyLCBpMTYgMF0sIGFsaWduIDIKICAvLyBDSEVDSy1DUFAwWDogcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzYgeCBpMzJdIFtpMzIgMTA1MCwgaTMyIDEwODYsIGkzMiAxMDk2LCBpMzIgMTA4MiwgaTMyIDEwNzIsIGkzMiAwXSwgYWxpZ24gNAogIHdjaGFyX3QgY29uc3QgKmIgPSBMItCa0L7RiNC60LAiOwoKICAvLyBDSEVDSy1DOiBwcml2YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbNCB4IGkzMl0gW2kzMiAyMDMyMCwgaTMyIDIyOTA5LCBpMzIgNjYzMDQsIGkzMiAwXSwgYWxpZ24gNAogIC8vIENIRUNLLVNIT1JUV0NIQVI6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs0IHggaTE2XSBbaTE2IDIwMzIwLCBpMTYgMjI5MDksIGkxNiA3NjgsIGkxNiAwXSwgYWxpZ24gMgogIC8vIENIRUNLLUNQUDBYOiBwcml2YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbNCB4IGkzMl0gW2kzMiAyMDMyMCwgaTMyIDIyOTA5LCBpMzIgNjYzMDQsIGkzMiAwXSwgYWxpZ24gNAogIHdjaGFyX3QgY29uc3QgKmIyID0gTCJceDRmNjBceDU5N2RceDEwMzAwIjsKICAKI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKICAKICAvLyBDSEVDSy1DUFAwWDogcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzEyIHggaThdIGMiMVxEMFw5QVxEMFxCRVxEMVw4OFxEMFxCQVxEMFxCMFwwMCIsIGFsaWduIDEKICBjaGFyIGNvbnN0ICpjID0gdTgiMdCa0L7RiNC60LAiOwogICAgCiAgLy8gQ0hFQ0stQ1BQMFg6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs3IHggaTE2XSBbaTE2IDUwLCBpMTYgMTA1MCwgaTE2IDEwODYsIGkxNiAxMDk2LCBpMTYgMTA4MiwgaTE2IDEwNzIsIGkxNiAwXSwgYWxpZ24gMgogIGNoYXIxNl90IGNvbnN0ICplID0gdSIy0JrQvtGI0LrQsCI7CiAgCiAgLy8gQ0hFQ0stQ1BQMFg6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs3IHggaTMyXSBbaTMyIDUxLCBpMzIgMTA1MCwgaTMyIDEwODYsIGkzMiAxMDk2LCBpMzIgMTA4MiwgaTMyIDEwNzIsIGkzMiAwXSwgYWxpZ24gNAogIGNoYXIzMl90IGNvbnN0ICpmID0gVSIz0JrQvtGI0LrQsCI7CgogIC8vIENIRUNLLUNQUDBYOiBwcml2YXRlIHVubmFtZWRfYWRkciBjb25zdGFudCBbMTIgeCBpOF0gYyI0XEQwXDlBXEQwXEJFXEQxXDg4XEQwXEJBXEQwXEIwXDAwIiwgYWxpZ24gMQogIGNoYXIgY29uc3QgKmQgPSB1OFIiKDTQmtC+0YjQutCwKSI7CiAgCiAgLy8gQ0hFQ0stQ1BQMFg6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs3IHggaTE2XSBbaTE2IDUzLCBpMTYgMTA1MCwgaTE2IDEwODYsIGkxNiAxMDk2LCBpMTYgMTA4MiwgaTE2IDEwNzIsIGkxNiAwXSwgYWxpZ24gMgogIGNoYXIxNl90IGNvbnN0ICpnID0gdVIiKDXQmtC+0YjQutCwKSI7CiAgCiAgLy8gQ0hFQ0stQ1BQMFg6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs3IHggaTMyXSBbaTMyIDU0LCBpMzIgMTA1MCwgaTMyIDEwODYsIGkzMiAxMDk2LCBpMzIgMTA4MiwgaTMyIDEwNzIsIGkzMiAwXSwgYWxpZ24gNAogIGNoYXIzMl90IGNvbnN0ICpoID0gVVIiKDbQmtC+0YjQutCwKSI7CiAgCiAgLy8gQ0hFQ0stU0hPUlRXQ0hBUjogcHJpdmF0ZSB1bm5hbWVkX2FkZHIgY29uc3RhbnQgWzcgeCBpMTZdIFtpMTYgNTUsIGkxNiAxMDUwLCBpMTYgMTA4NiwgaTE2IDEwOTYsIGkxNiAxMDgyLCBpMTYgMTA3MiwgaTE2IDBdLCBhbGlnbiAyCiAgLy8gQ0hFQ0stQ1BQMFg6IHByaXZhdGUgdW5uYW1lZF9hZGRyIGNvbnN0YW50IFs3IHggaTMyXSBbaTMyIDU1LCBpMzIgMTA1MCwgaTMyIDEwODYsIGkzMiAxMDk2LCBpMzIgMTA4MiwgaTMyIDEwNzIsIGkzMiAwXSwgYWxpZ24gNAogIHdjaGFyX3QgY29uc3QgKmkgPSBMUiIoN9Ca0L7RiNC60LApIjsKICAKI2VuZGlmCn0K