LyoqCiAqIEBmaWxlIGF0X3JlZy5oCiAqIEBicmllZiDM4bmpYXRfY3RsxKO/6b/Nu6e2y7rNt/7O8bbL16Ky4b3Tv9oKICoKICogQ29weXJpZ2h0IChDKSAyMDE3IFNhbmVjaGlwcyBUZWNobm9sb2d5IENvLiwgTHRkLgogKiBAYXV0aG9yCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKi8KCiNpZm5kZWYgX19BVF9SRUdfSF9fCiNkZWZpbmUgX19BVF9SRUdfSF9fCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSBkZWZpbml0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKCgovKioKICogQGJyaWVmILeizflQUyxhdMnPz8LOxLrNYXTNqLXAtcRwb3NpdGlvbs6qTkVBUl9QU6Os1LbA61BTsuBhdMnPz8LOxLrNYXTNqLXAtcRwb3NpdGlvbs6qRkFSX1BTCiAqINa4yr5DUFW6y8TatcRBVM2otcC1xLe9zrujrNLUUFPQrdLp1bu1xNS2vfzX986qss7V1c7voaMKICogQHBhcmFtIE5FQVJfUFMgv7+9/FBT0K3S6dW7suC1xEFUzai1wKOswP3I50FQusvE2rmyz+1ERFLQ6cTitcRBVM2otcAKICogQHBhcmFtIEZBUl9QUyDUtsDrUFPQrdLp1bu1xEFUzai1wKOswP3I50FQusvE2lVTQsO2vtm1xEFUzai1wCx1YXJ0zai1wAogKiBAcGFyYW0gUE9TSVRJT05fVk9MVEUg0+t2b2x0ZcSjv+nNqNDFtcRwdHnNqLXAzrvWwwogKiBAcGFyYW0gUE9TSVRJT05fTUFYIMnPz9666gogKi8KZW51bSBhdF9jaGFubmVsX3NpdGUgewoJRkFSX1BTID0gMCwgICAgLy/UtsDrUFPQrdLp1bu1xEFUzai1wKOswP3I50FQusvE2lVTQsO2vtm1xEFUzai1wAoJTkVBUl9QUywgICAgICAgLy+/v738UFPQrdLp1buy4LXEQVTNqLXAo6zA/cjnQVC6y8TaubLP7UREUtDpxOK1xEFUzai1wAoJUE9TSVRJT05fVk9MVEUsIC8v0+t2b2x0ZcSjv+nNqNDFtcRwdHnNqLXAzrvWwwoJUE9TSVRJT05fTUFYLCAgLy/Jz8/euuoKfTsKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICAgICAgICAgICAgICAgICAgICAgICBHbG9iYWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi8qKgogILXn0MXW97/Yt6LLzcfrx/O1xNOmtPC94bn7uPjN4rK/o6y1scS/serEo7/pSUTOqr7ksfrKsaOs1+nXsNOmtPBBVMP8we7QtEFUzai1wKO7t/HU8reiy83P+8+iuPjEv7HqxKO/6QogICovCmludCBzZW5kX3JzcF9tc2coaW50IGRzdF9pZCwgdW5zaWduZWQgc2hvcnQgcmVxX2NtZCwgdW5zaWduZWQgc2hvcnQgcnNwX2NtZCwgdW5zaWduZWQgc2hvcnQgZGF0YWxlbiwgdW5zaWduZWQgY2hhciAqcERhdGEpOwoKI2VuZGlmCgoK