ZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc3dwaHlpbnQuaCBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc3dwaHlpbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDJmN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvcHViL2luY2x1ZGUvcHNfcGh5L3Bzd3BoeWludC5oCkBAIC0wLDAgKzEsMjQ1MiBAQAorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KioqDQorICqw5rG+y/nT0CAoQykyMDEy1tDQy82o0ba5ybfd09DP3rmry74NCisgKiAgxKO/6cP7ICCjug0KKyAqICDOxLz+w/sgIKO6cHN3cGh5aW50LmgNCisgKiAgzsS8/rHqyrajug0KKyAqICDP4LnYzsS8/qO6DQorICogIMq1z9a5psTco7pXQ0RNQSBwc7rNV0NETUEgUEhZtcS907/atqjS5Q0KKyAqICDX99XfICAgIKO6DQorICogILDmsb4gICAgo7oNCisgKiAgzeqzycjVxtqjug0KKyAqICDG5Mv8y7XD96O6DQorKi8gDQorDQorI2lmbmRlZiBaX1BTX1dQSFlfSU5URVJGQUNFX0gNCisjZGVmaW5lIFpfUFNfV1BIWV9JTlRFUkZBQ0VfSA0KKw0KKw0KKyNpZm5kZWYgWl9TRU5EX1RPX1NJTVBIWQ0KKyNpbmNsdWRlICJyYW1fY29uZmlnLmgiDQorI2VuZGlmDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgICAgICAgICAgICAgICAgICAgICAgIM23zsS8/rD8uqwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qCQkJCUlDUCDW0LbP17TMrM67tqjS5QkJCQkJCQkJCQkJKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorI2RlZmluZSBDT05GSUdfT1BUX1NJWkUgICAgICAgKDEpICAgIC8qZm9yIHNpemUgb3B0aW1pemUsIGlmIGZvdW5kIHNvbWUgZXhjZXB0aW9uIHBsZWFzZSBkaXNhYmxlIGl0Ki8NCisNCisvKiBQSFlfQ1BVIC0+IFBTX0NQVSBJQ1AgU1RBVVRTKi8NCisjZGVmaW5lIFBIWV9QU19GUkFNRV9JQ1BfTUFTSwkJICAgICAgIChEV09SRCkweDAwMDAwMDAxDQorI2RlZmluZSBQSFlfUFNfV0FLRVVQX0lDUF9NQVNLCQkoRFdPUkQpMHgwMDAwMDAwMg0KKw0KKy8qIFBTX0NQVSAtPiBQSFlfQ1BVIElDUCBTVEFVVFMqLw0KKyNkZWZpbmUgUFNfUEhZX1VQQV9EQVRBX0lDUF9NQVNLCSAgICAgICAoRFdPUkQpMHgwMDAwMDAwMQ0KKyNkZWZpbmUgUFNfUEhZX1dBS0VVUF9JQ1BfTUFTSwkJKERXT1JEKTB4MDAwMDAwMDINCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisqICAgICAgICAgICAgICAgICAgICAgICAgIMirvta66rao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorDQorLypzdGFydDrQocf4y9HL97K/t9a66ta1tqjS5SovDQorI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfRlJFUVNDQU5fRlJFUSAgICAgICAgICAgICAgICAoV09SRCk2NCAgIC8q0OjSqsmow+i1xNfutPPGtbbOyv3EvyovDQorI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfUlNTSV9SRVNVTFRTICAgICAgICAgICAgICAgICAoV09SRCkzMiAgIC8qyajGtcnPsai1xNfutPPGtbXjyv3EvyovDQorI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfU0VBUkNIX1JFU1VMVFMgICAgICAgICAgICAgICAoV09SRCk4ICAgIC8q0KHH+MvRy/fJz7GotcTX7rTz0KHH+Mr9xL8qLw0KKw0KKyNkZWZpbmUgWl9XX1BfQ0VMTFNSSFRZUEVfU1RST05HRVNUICAgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKre1u9jWuLaoxrW147XE1+7Hv9Chx/gqLw0KKyNkZWZpbmUgWl9XX1BfQ0VMTFNFQVJDSFRZUEVfQkxJTkQgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAvKre1u9jWuLaoxrW147XE0KHH+MHQse0qLw0KKyNkZWZpbmUgWl9XX1BfQ0VMTFNFQVJDSFRZUEVfU1BFQyAgICAgICAgICAgICAgICAgICAgKFdPUkQpMiAgICAvKre1u9jWuLaoUHJpbVNyY7XE0KHH+CovDQorDQorDQorLyrJ6NbDV87vwO2y48rHt/HW98Sjyr0qLw0KKyNkZWZpbmUgWl9XX1BfSVJBVF9NT0RFX1NMQVZFICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKsno1sPOqrioxKPKvSovDQorI2RlZmluZSBaX1dfUF9JUkFUX01PREVfTUFTVEVSICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxICAgIC8qyejWw86q1vfEo8q9Ki8NCisNCisvKkZERMa1ts66xbao0uUqLw0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERJSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMg0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERJSUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMw0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERJViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNQ0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERWSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNg0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERWSUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNw0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERWSUlJICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERJWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOQ0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERYICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTANCisjZGVmaW5lIFpfV19QX0JBTkRfRkREWEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTExDQorI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMg0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERYSUlJICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTMNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREWElWICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE0DQorI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNQ0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERYWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTYNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREWFhJICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE3DQorLyplbmQg0KHH+MvRy/eyv7fWuurWtbao0uUqLw0KKw0KKy8qc3RhcnQ6z7XNs9DFz6Kyv7fWuurWtbao0uUqLw0KKyNkZWZpbmUgWl9XX1BfTUFYX05VTV9PRl9CQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOCAgICAgIA0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX1NJQl9PRkZTICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE2ICAgICAvKs+1zbPQxc+ixqvSxtfutPPK/dfpuPbK/SovDQorI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfU0lCX1NDSEVEVUxFUyAgICAgICAgICAgICAgICAgIChXT1JEKTMwICAgIC8q1+6087X3tsjQxc+iuPbK/SovDQorLyrPtc2z0MXPor/pwODQzSovDQorI2RlZmluZSBaX1dfUF9VUlJDX01JQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkwDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk1DQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk2DQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk3DQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjExICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMQ0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTINCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE4DQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxOQ0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMjMNCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTggICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTI2DQorI2RlZmluZSBaX1dfUF9VUlJDX1NCMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyNw0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TQjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMjgNCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCNUJJUyAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMwDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQl9UWVBFX0VYVEVOU0lPTl9UWVBFICAgICAgICAgICAoV09SRCkzMQ0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxMUJJUyAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMzINCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTVCSVMgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMzDQorLypTSUItVHlwZUV4dDIqLw0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNDANCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQyDQorDQorI2RlZmluZSBaX1dfUF9CQ0hfUkVRX09ORSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkwICAgIC8qx+vH887vwO2y49LU1ri2qLe9yr22wWJjaCovDQorI2RlZmluZSBaX1dfUF9CQ0hfUkVRX0FMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxICAgIC8qx+vH887vwO2y48Gs0Pi2wWJjaCovDQorDQorI2RlZmluZSBaX1dfUF9TVFREX05PVFVTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkwICAgIC8qsrvKudPDU1RURCovDQorI2RlZmluZSBaX1dfUF9TVFREX1VTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxICAgIC8qyrnTw1NUVEQqLw0KKyNkZWZpbmUgWl9XX1BfU1RURF9VTk5PVElGWSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMiAgICAvKs601qqjrLy0cHOyu8i3yM+1scew0KHH+MrHt/HKudPDU1RURCovDQorLyplbmQ6z7XNs9DFz6Kyv7fWuurWtbao0uUqLw0KKw0KKy8qc3RhcnQ618rUtLK/t9a66ta1tqjS5SovDQorI2RlZmluZSBaX1dfUF9NQVhfVUxfVFJDSF9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOCANCisjZGVmaW5lIFpfV19QX01BWF9ETF9UUkNIX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorI2RlZmluZSBaX1dfUF9NQVhfVUxfVEZfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMzINCisjZGVmaW5lIFpfV19QX01BWF9ETF9URl9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk2NA0KKyNkZWZpbmUgWl9XX1BfTUFYX1VMX1RGQ19OVU0gICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTY0DQorI2RlZmluZSBaX1dfUF9NQVhfRExfVEZDX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTI4DQorI2RlZmluZSBaX1dfUF9NQVhfTk9fT0ZfUkwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOC8q1+6081JMyv3EvyovDQorI2RlZmluZSBaX1dfUF9NQVhfRURDSF9OT19PRl9STCAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX0RQQ0hTICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisjZGVmaW5lIFpfV19QX01BWF9IX1BST0NFU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorI2RlZmluZSBaX1dfUF9NQVhfSFNfU0NDSF9DT0RFUyAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgWl9XX1BfTUFYX1JFRl9FVEZDSSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisjZGVmaW5lIFpfV19QX01BWF9IU0NDSExFU1NfVEZTX05VTSAgICAgICAgICAgICAgICAgICAoV09SRCk0DQorDQorI2RlZmluZSBaX1dfUF9UVElfMk1TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQorI2RlZmluZSBaX1dfUF9UVElfMTBNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyDQorI2RlZmluZSBaX1dfUF9UVElfMjBNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzDQorI2RlZmluZSBaX1dfUF9UVElfNDBNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQorI2RlZmluZSBaX1dfUF9UVElfODBNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk1DQorDQorI2RlZmluZSBaX1dfQUNUX1RJTUVfSU1NRURJQVRFTFkgICAgICAgICAgKFdPUkQpMjU2Lyq8pLvuyrG85MrHwaK8tLyku+4qLw0KKy8qZW5kINfK1LSyv7fWuurWtbao0uUqLw0KKw0KKy8qc3RhcnSy4sG/z+C52LrqtqjS5SovDQorI2RlZmluZSAgWl9XX1BfTUFYX0NFTExfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMzIgICAgICAgICAvKs2sxrXS7Ma11+6089ans9bQocf4yv3EvyovDQorI2RlZmluZSAgWl9XX1BfTUFYX0lOVFJBRlJFUV9OVU0gICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAgICAgICAvKs2sxrXGtbXjyv3Ev6Ossru/vMLHtdq2/snP0NDGtbXjyrG4w9a1zqoxKi8NCisjZGVmaW5lICBaX1dfUF9NQVhfSU5URVJGUkVRX05VTSAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4ICAgICAgICAgLyrS7Ma1xeTWw8a1tePK/cS/Ki8NCisjZGVmaW5lICBaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX05VTSAgICAgICAgICAgICAgICAoV09SRCkxNiAgICAgICAgICAvKtLsxrXDpMa1teO1xMa1tePK/cS/Ki8NCisjZGVmaW5lICBaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX0NFTExfTlVNICAgICAgICAgICAoV09SRCkzICAgICAgICAgIC8qw6TGtbXjz8LQocf4yv3EvyovDQorI2RlZmluZSAgWl9XX1BfTUFYX0NNX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNiAgICAgICAgICAvKtG5y/XEo8q9xeTWw8/uyv3EvyovDQorI2RlZmluZSAgWl9XX1BfTUFYX0ZSQU1FX0dBUF9OVU0gICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMiAgICAgICAgICAvKtK7uPbWodbQ1+6080dBUMr9xL8qLw0KKy8qZW5ksuLBv8/gudi66rao0uUqLw0KKw0KKy8qc3RhcnSy47b+z+C52LrqtqjS5SovDQorLyrO3s/f18rUtMXk1sPP4LnYuuq2qNLlKi8NCisNCisjZGVmaW5lICAgICBaX1dfUF9NQVhfVUxfRlJFUVVFTkNZX05VTSAgICAgICAgICAgICAgICAoV09SRCkyDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX0RMX0ZSRVFVRU5DWV9OVU0gICAgICAgICAgICAgICAgKFdPUkQpMg0KKw0KKy8qtKvK5NDFtcDA4NDNLL3208PT2rrNzu/A7bLjtcS907/a1tAqLw0KKyNkZWZpbmUgICAgIFpfV19QX1BDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTANCisjZGVmaW5lICAgICBaX1dfUF9GQUNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQorI2RlZmluZSAgICAgWl9XX1BfRExfRENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMg0KKyNkZWZpbmUgICAgIFpfV19QX1JBQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMNCisjZGVmaW5lICAgICBaX1dfUF9VTF9EQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQorDQorLypVUEHP4LnYss7K/SovDQorLy8jZGVmaW5lICAgICBaX1dfUF9NQVhfUkVGX0VURkNJX05VTSAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOC8qWl9XX1BfTUFYX1JFRl9FVEZDSSovDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX1JHX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKw0KKy8qyv2+3b3Tv9q089ChKi8NCisjZGVmaW5lICAgICBaX1dfUF9NQVhfTk9fT0ZfVUxfQllURVMgICAgICAgICAgICAgICAgICAoV09SRCkxMTY4DQorDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX05PX09GX0RMX0JZVEVTICAgICAgICAgICAgICAgICAgKFdPUkQpMTE2OA0KKyNkZWZpbmUgICAgIFpfV19QX01BWF9OT19PRl9IU0RQQV9CWVRFUyAgICAgICAgICAgICAgIChXT1JEKTUyNzQNCisNCisjZGVmaW5lICAgICBaX1dfUF9NQVhfTk9fT0ZfSFNVUEFfQllURVMgICAgICAgICAgICAgICAoV09SRCkyODc2DQorDQorDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX0VURkNJX05VTSAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTI4DQorI2RlZmluZSAgICAgWl9XX1BfTUFYX05UUl9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisNCisvKnJhY2jP4LnYKi8NCisjZGVmaW5lICAgICBaX1dfUF9SQUNIX0FDQ0VTU19BQ0sgICAgICAgICAgICAgICAgICAgICAoV09SRCkwDQorI2RlZmluZSAgICAgWl9XX1BfUkFDSF9BQ0NFU1NfTkFDSyAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KKyNkZWZpbmUgICAgIFpfV19QX1JBQ0hfQUNDRVNTX05PX0FDSyAgICAgICAgICAgICAgICAgIChXT1JEKTINCisNCisvKs/C0NDK/b7dwODQzSovDQorI2RlZmluZSAgICAgICAgWl9XX1BfUENIX0ZBQ0hfRENIX0RBVEEgICAgICAgICAgICAgICAgKFdPUkQpMA0KKyNkZWZpbmUgICAgICAgIFpfV19QX0RQQV9EQVRBICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTENCisvKmVuZLLjtv7P4LnYuuq2qNLlKi8NCisNCisNCisNCisvKnfW98Sjway908ysKEZBQ0ggoaJEQ0gpzu/A7bLjyc+xqEdBUNDo0qq/27P9tcTJ5Ma1saO7pLzkuPS1pc67Q0hJUCwgNzUyMLDmsb7Nt86yt9ax8L/bs/0zMGNoaXBzKDcuODEyNXVzKSA2NjBjaGlwcygxNzEuODc1dXMpLiAqLw0KKw0KKyNkZWZpbmUgICBaX1dfUF9NRUFTX0RDSEdBUF9TVEFSVF9PRkYgICAgICAgICAgICAgICAgIChXT1JEKTMwDQorI2RlZmluZSAgIFpfV19QX01FQVNfRENIR0FQX1RBSUxfT0ZGICAgICAgICAgICAgICAgICAgKFdPUkQpNjYwDQorDQorDQorI2RlZmluZSBaX1pXUENHX1ZBTEZHX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KKyNkZWZpbmUgWl9aV1BDR19QQVJBTV9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTI1DQorDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgICAgICAgICAgICAgICAgICAgICAgICDIq77Wyv2+3cDg0M22qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgKiAgICAgICAgICAgICAgICAgICAgICAgICDQocf4y9HL98irvtbK/b7dwODQzbao0uUgc3RhcnQgICAgICAgICAgICAgICAgICAgICoNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBSUkMtPlBIWQ0KKyAgICDKwrz+o7pQX1dfRlJFUVVFTkNZX1NDQU5fUkVRDQorICAgILmmxNw6DQorICAgICAgICC/ycTcs/bP1rXE1Nqz9cq817TMrKOsSURMRcyso6xDRUxMX1BDSMyso6xDRUxMX1VSQcyso6xMMbj5vt3P+8+i1tANCisgICAgICAgINCvtPi1xMa1teO78sa1ts7Qxc+ivfjQ0MmoxrWjrMrXz8jWtNDQxrW2zsmoxrWjrNauuvPU2b2rxrW2zsmow+i94Q0KKyAgICAgICAgufvGtbXj0+vQrdLp1bvPwreitcTA68mixrW147fF1NrSu8bwvfjQ0MDryaLGtbXjyajGtQ0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2ZyZXF1ZW5jeV9zY2FuX3JlcQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorIHR5cGVkZWYgc3RydWN0eyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxU3RhcnRSYW5nZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcUVuZFJhbmdlOyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JhbmRJbmQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KK31UX3pXX1BfZnJlcXVlbmN5X3JhbmdlOw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFSYW5nZU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdXb25seUZsZzsgLyq1scewyse38crHV7WlxKOjrHdXb25seUZsZz0xzqq1pcSjo6y38dTyzqq24MSjKi8NCisgICAgVF96V19QX2ZyZXF1ZW5jeV9yYW5nZSAgICAgICAgICAgICAgICAgICAgICBhdEZyZXF1ZW5jeVJhbmdlW1pfV19QX01BWF9OT19PRl9GUkVRU0NBTl9GUkVRXTsNCit9VF96V19QX2ZyZXF1ZW5jeV9zY2FuX3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBSUkMtPlBIWQ0KKyAgICDKwrz+o7pQX1dfQUJPUlRfRlJFUV9TQ0FOX1JFUQ0KKyAgICC5psTcOg0KKyAgICAgICAgzaPWuUwxxrXCysmow+jH68fzDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fcmVxLL/VveG5uQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiAgIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9hYm9ydF9mcmVxdWVuY3lfc2Nhbl9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5MMVcNCisgICAgysK8/qO6UF9BQk9SVF9GUkVRX1NDQU5fQ05GDQorICAgILmmxNw6DQorICAgICAgICDNo9a5TDHGtcLKyajD6Mi3yM8NCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9hYm9ydF9mcmVxdWVuY3lfc2Nhbl9jbmYsv9W94bm5DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmICAgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2Fib3J0X2ZyZXF1ZW5jeV9zY2FuX2NuZjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlJSQw0KKyAgICDKwrz+o7pQX0ZSRVFVRU5DWV9TQ0FOX0lORA0KKyAgICC5psTcOg0KKyAgICAgICAgTDHN6rPJyajGtbrzo6zNqLn9z/vPolBfRlJFUVVFTkNZX1NDQU5fSU5Eyc+xqMmoxrW94bn7LM7vwO2y47j5vt0NCisgICAgICAgIFJTU0my4sG/1rW8sFBTQ0jP4LnYxNzBv7bUxrXCyr340NDFxdDyo6zX7r/JxNzXpMH0tcTGtcLKt8XU2srXzrujrA0KKyAgICAgICAg0sC0zsDgzcajrLK7xNzXpMH0tcTGtcLKsrvJz7GooaMNCisgICAgICAgIMjnufvJqMa1veG5+7Osuf0zMqOszu/A7bLjvavHsDMyx7/GtbXj1/fOqr3hufvJz7Go0K3S6dW7oaMNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9mcmVxdWVuY3lfc2Nhbl9pbmQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKyB0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcXVlbmN5Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyB9VF96V19QX3NjYW5fcmVzdWx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjYW5SbHROdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlcU51bTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICANCisgICAgVF96V19QX3NjYW5fcmVzdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICBhdFNjYW5SZXN1bHRbWl9XX1BfTUFYX05PX09GX1JTU0lfUkVTVUxUU107IC8qzu/A7bLjvavJqMa1veG5+8ewMzLHv8nPsagqLyANCit9VF96V19QX2ZyZXF1ZW5jeV9zY2FuX2luZDsgDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9DRUxMX1NFQVJDSF9SRVENCisgICAguabE3DoNCisgICAgICAgICAgICDWuLaoxrW148nPsunV0ta4tqjK/cS/0KHH+KGjyOe5+7Wxx7DS0dPQt/7O8dChx/ijrEwx0OjSqs2syrGxo7PWt/7O8dChx/jNrLK9o6wNCisgICAgICAgINLUvLC908rV0bC69LXIoaPI57n7ytW1vdGwuvS1yMfpv/bQ6NKq1tC2z0wx0KHH+MvRy/ejrNbQts+680wxsrvU2c/y0K3S6dW7yc+xqNLRDQorICAgICAgICC3os/W0KHH+NDFz6Kho8jnuftudW1fb2ZfY2VsbF9pZMihMKOsx+vH80wx1NrWuLaoxrW148nPw6TL0dChx/ijrML61+OhsMPFz96hsbXEDQorICAgICAgICBudW1fb2ZfcmVzdWx0uPbQocf4yc+xqKGjyOe5+251bV9vZl9jZWxsX2lkyKG3xzDWtaOsx+vH80wx1NrWuLaoY2VsbF9wYXJhbWV0ZXJfaWS1xA0KKyAgICAgICAg0KHH+MHQse3W0MvRy/fC+tfjobDDxc/eobG1xNChx/jJz7GooaPG5NbQtcShsCDDxc/eobEg08nO78DtsuO4+b7d0NTE3Mi3tqgNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9jZWxsX3NlYXJjaF9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeERpdmVyc2l0eUluZDsgLyqyzrz7uuq2qNLlLL32tbF3U2VhcmNoVHlwZc6q1ri2qMvRy/fKsdPQ0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KK31UX3pXX1BfY2VsbHNyaF9pbmZvOyANCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VhcmNoVHlwZTsgICAvKrLOvPu66rao0uUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlJlc3VsdDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZDZWxsOw0KKyAgICBUX3pXX1BfY2VsbHNyaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgIGF0Q2VsbFNyaEluZm9bWl9XX1BfTUFYX05PX09GX1NFQVJDSF9SRVNVTFRTXTsNCit9VF96V19QX2NlbGxfc2VhcmNoX3JlcTsgDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5SUkMNCisgICAgysK8/qO6UF9BQk9SVF9DRUxMX1NFQVJDSF9SRVENCisgICAguabE3DoNCisgICAgICAgIM2j1rnO78DtsuO1xGNlbGwgc2VhcmNooaMNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9hYm9ydF9jZWxsX3NlYXJjaF9yZXEsv9W94bm5DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmICAgIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9hYm9ydF9jZWxsX3NlYXJjaF9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5MMVcNCisgICAgysK8/qO6UF9BQk9SVF9DRUxMX1NFQVJDSF9DTkYNCisgICAguabE3DoNCisgICAgICAgIM2j1rnO78DtsuO1xGNlbGwgc2VhcmNoyLfIz6GjDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfYWJvcnRfY2VsbF9zZWFyY2hfY25mLL/VveG5uQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiAgICBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfYWJvcnRfY2VsbF9zZWFyY2hfY25mOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+UlJDDQorICAgIMrCvP6julBfQ0VMTF9TRUFSQ0hfSU5EDQorICAgILmmxNw6DQorICAgICAgICDJz7Go1ri2qMa1tePJz8L61+PO78DtsuPX7rXNw8XP3ta1tcSjqNa4tqijqdChx/iy4sG/veG5+6GjDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfY2VsbF9zZWFyY2hfaW5kDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaFJzY3A7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoRWNObzsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfY2VsbF9wYXJhbXM7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkZvdW5kQ2VsbHM7ICAgIA0KKyAgICBUX3pXX1BfY2VsbF9wYXJhbXMgICAgICAgICAgICAgICAgICAgICAgICAgIGF0Q2VsbFtaX1dfUF9NQVhfTk9fT0ZfU0VBUkNIX1JFU1VMVFNdOyAgICAgICAgICAgICAgICAgICANCit9VF96V19QX2NlbGxfc2VhcmNoX2luZDsgDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9CQ0hfT1BFTl9SRVENCisgICAguabE3DoNCisgICAgICAgILjDz/vPotTat8dEQ0jMrLvhz8K3oiy08r+qQkNItsHPtc2z0MXPoiy/1c/QzKwsUENIzKy/ydLUtsHIobf+zvHQocf4DQorICAgICAgICC6zc/gwdrQocf4z7XNs9DFz6KjrEZBQ0jWu8TctsHIobf+zvHQocf4z7XNs9DFz6Kho7jDz/vPos7ez+zTps/7z6Khow0KKyAgICC94bm5Og0KKyAgICAgICAgVF96UF9URF9iY2hfb3Blbl9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWJUeXBlOyAgIC8qss68+7rqtqjS5SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlZ0NvdW50Oy8qIFNJQs/7z6K1xLfWts7K/cS/o6y3ts6nMS4uMTYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWJSZXA7IC8qIFNJQtbYuLTW3MbaKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2liUG9zOy8qIFNJQrXa0ru49rfWts61xM671sMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWJPZmZbWl9XX1BfTUFYX05PX09GX1NJQl9PRkZTXTsNCit9IFRfc2liX3NjaGVkdWxlX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHlwZTsgICAgICAvKrLOvPu66rao0uUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeERpdk1vZGU7IC8qss68+7rqtqjS5SovICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcXVlbmN5Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsUmVzZWxlY3RGbGc7Lyp3Q2VsbFJlc2VsZWN0RmxnPTGx7cq+tMu0zrbBU0lCysfS8tbY0aG3osbwoaPOqjCx7cq+t8fQocf41tjRodL9xvAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlNjaGVkdWxlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3NpYl9zY2hlZHVsZV9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgIHRTaWJTY2hlZHVsZUluZm9bWl9XX1BfTUFYX05PX09GX1NJQl9TQ0hFRFVMRVNdOw0KK31UX3pXX1BfYmNoX29wZW5fcmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+UlJDDQorICAgIMrCvP6julBfQkNIX0lORA0KKyAgICC5psTcOg0KKyAgICAgICAgtPK/qkJDSLrzTDHW8L/pyc+xqM+1zbPQxc+i1rjKviwgv9XP+8+io6zQrdLp1bvK1bW9tMvWuMq+uvPIpQ0KKyAgICAgICAgucy2qEJ1ZmZlcrbBz7XNs9DFz6LK/b7dDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfQmNoX0J1ZmZlcg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3JjQ2hlY2s7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuRGVjb2RlUmx0OyAvKjA6yqew3KOsMbPJuaYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd0RhdGFBcmVhW1pfV19QX01BWF9OVU1fT0ZfQkNIKjJdOw0KK31UX3pXX1BfQmNoX0luZDsgDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9CQ0hfUkVMRUFTRV9SRVENCisgICAguabE3DoNCisgICAgICAgINCt0unVu8frx/NMMc2j1rm908rVz7XNs9DFz6KjrMrNt8VCQ0gNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9iY2hfcmVsZWFzZV9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2JjaF9yZWxlYXNlX3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPkwxVw0KKyAgICDKwrz+o7pQX0JDSF9SRUxFQVNFX0NORg0KKyAgICC5psTcOg0KKyAgICAgICAgTDHIt8jP0K3S6dW7zaPWub3TytXPtc2z0MXPog0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2JjaF9yZWxlYXNlX2NuZg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfYmNoX3JlbGVhc2VfY25mOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFJSQy0+UEhZDQorICAgIMrCvP6julBfQ0FNUE9OX0FfQ0VMTF9SRVENCisgICAguabE3DoNCisgICAgICAgIFJSQ9Taz7XNs9DFz6K2wcihzeqzybrzo6zIz86q0KHH+L/J16TB9KOst6LLzbTLz/vPos2o1qoNCisgICAgICAgIM7vwO2y47TL0KHH+M6qt/7O8dChx/ihow0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2NhbXBfb25fYV9jZWxsX3JlcQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxGcmVxdWVuY3k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJlcXVlbmN5OyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJlRGxGcmVxdWVuY3k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9jYW1wX29uX2FfY2VsbF9yZXE7IA0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+TDFXDQorICAgIMrCvP6julBfQ0FNUE9OX0FfQ0VMTF9DTkYNCisgICAguabE3DoNCisgICAgICAgILXXsuPIt8jP16TB9NChx/ihow0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2NhbXBfb25fYV9jZWxsX2NuZg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2NhbXBfb25fYV9jZWxsX2NuZjsgDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9TRVRfSVJBVF9NT0RFX1JFUQ0KKyAgICC5psTcOg0KKyAgICAgICAg0K3S6dW7zajWqs7vwO2y48Sjyr3A4NDNo6zKx0ZERCBtb2RlvLRGRETOqtb3xKPKvaOsDQorICAgICAgICC78tXfsrvKx0ZERCBtb2RlvLRGRETOqriooaOyu7LZ1/fJ5Ma1oaMNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9zZXRfaXJhdF9tb2RlX1JlcQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNb2RlVHlwZXM7IC8qMC23x9b3o6wxLdb3xKOjrLLOvPu66rao0uUqLyAgICAgICANCit9VF96V19QX3NldF9pcmF0X21vZGVfUmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFJSQy0+UEhZDQorICAgIMrCvP6julBfUkVTRVRfUkVRDQorICAgILmmxNw6DQorICAgICAgICDQrdLp1bvNqNaqzu/A7bLjuLTOuw0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX1Jlc2V0X3JlcQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96V19QX1Jlc2V0X3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlJSQw0KKyAgICDKwrz+o7pQX1JFU0VUX0NORg0KKyAgICC5psTcOg0KKyAgICAgICAgzu/A7bLjzajWqtCt0unVu8rNt8XL+dPQ18rUtL3hyvgNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9SZXNldF9jbmYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX3Jlc2V0X2NuZjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBSUkMtPlBIWQ0KKyAgICDKwrz+o7pQX1dfUkVMX1JFUQ0KKyAgICC5psTcOg0KKyAgICAgICAgzu/A7bLjys23xcv509DQrdLp1bvPwreitcTStc7xx+vH87ywyeTGtaGjDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfcmVsZWFzZV9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfeldfUF9yZWxlYXNlX3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlJSQw0KKyAgICDKwrz+o7pQX1dfUkVMX0NORg0KKyAgICC5psTcOg0KKyAgICAgICAgzu/A7bLjzajWqtCt0unVu8rNt8XL+dPQ18rUtL3hyvgNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9yZWxlYXNlX2NuZg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96V19QX3JlbGVhc2VfY25mOw0KKw0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgINChx/jL0cv3yKu+1sr9vt3A4NDNtqjS5SAtLS0tLS0tLWVuZCAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAg18rUtMXk1sPIq77Wyv2+3cDg0M22qNLlIC0tLS0tLS0tc3RhcnQgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3TGlzdFsyMV07DQorfVRfeldfUF9JbXNpOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NybmNJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdTcm50aTsNCit9VF96V19QX1VybnRpOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVZUlkVmFsaWRCaXRtYXA7LypiaXQwLi5iaXQz09DQp6Os0sC0zrfWsfDWuMq+0MXUqlRtc2lHc22holBUbXNpR3NtoaJJbXNpR3NtoaJVUm50acrHt/G05tTaoaNiaXTOu86qMbHtyr621NOm0MXUqrTm1NqjrLfx1PKyu7Tm1NoqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1Rtc2lHc21bNF07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1BUbXNpR3NtWzRdOw0KKyAgICBUX3pXX1BfSW1zaSAgICAgICAgICAgICAgICAgICAgdEltc2lHc207DQorICAgIFRfeldfUF9Vcm50aSAgICAgICAgICAgICAgICAgICB0VXJudGk7ICAvKlBDSMysyrnTwyovDQorfVRfeldfUF91ZV9pZDsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaWNoQ2hhbkNvZGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZQaVBlckZyYW1lOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BpY2hTdHRkSW5kOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEN5Y2xlTGVuZ3RoQ29lZmY7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BpY2hQb3dlck9mZjsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZTY2NwY2g7IA0KKyAgICBUX3pXX1BfdWVfaWQgICAgICAgICAgICAgICAgICAgdFVlSWRJbmZvOw0KK30gVF96V19QX3BpY2hfaW5mbzsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJDb2RlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGU7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoYW5Db2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjcmFtYkNvZGVDaGFuZ2VGbGc7DQorfSBUX3pXX1BfZHBjaF9DaGFubmVsQ29kZTsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsgICAgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd0N0ZmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNQb3dlclBhcmFGbGc7Lyq5psLKv9jWxrLOyv2x6sq2o6wxse3KvtDo0qqyzr+8z8LK9rmmwsqyzsr90MXPoqOoUG93ZXJPZmZQcG3Qxc+io6zP1Mq+QmV0YUO6zUJldGFE0MXPoqOsss6/vFRGQ0lE0MXPoqOpoaMwse3Kvs7euaa/2LLOyv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmUHBtRmxnOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlck9mZlBwbTsvKk5lZWRlZCBvbmx5IGZvciBQUkFDSCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3R2FpbkZhY3RvckluZm87Lyqx7cq+QmV0YUOjrEJldGFE08PP1Mq+uPiz9rXEt73Kvbu5ysfTw7LOv7xURkO8xsvjtcS3vcq9oaMNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDIoda1MLvyMaOsMDqx7cq+z9TKvs2o1qosIEJldGHWtbLJ08O907/a1tDF5NbDtcR3QmV0YUQsIHdCZXRhQw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOrHtyr6yzr+8t73KvSy4+b7dd1JlZlRmY0lk1dK1vbbU06a1xEJldGHWtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YUM7LypzaWduYWxsZWRHYWluRmFjdG9yc8/Uyr64+LP2tcRCZXRhQyDIoda1MH4xNSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YUQ7ICAgICAgICAgICAgICAvKnNpZ25hbGxlZEdhaW5GYWN0b3Jzz9TKvrj4s/a1xEJldGFEIMih1rUwfjE1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZWZUZmNJZEZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZWZUZmNJZDsgICAgLypjb21wdXRlZEdhaW5GYWN0b3JzICBSZWYgdGZjaaOsMH4zIKOs0OjSqrW9ss6/vFRGQ0lEz8LRsNXSsb5URkNJRNDo0qq1xEJldGFDo6xCZXRhRCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX3VsX2N0ZmNfdGZjOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdDdGZjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2RsX2N0ZmNfdGZjOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAvKlVuaXQgaXMgYml0cztVVVJSQyBzaG91bGQgY29tcHV0ZSB0aGUgIFRCIHNpemUgYnkgdGhlIHJsYyBzaXplKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcmFuc0Jsb2NrU2l6ZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRyYW5zQmxvY2tzOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmaTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfZHluYW1pY190ZnM7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHJjaElkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyY2hUeXBlOyAgLyrXqNPD0MW1wCBPUiC5q7my0MW1wCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q29kaW5nVHlwZU9mQ2hhbm5lbDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3JjTGVuZ3RoOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JtQXR0cmlidXRlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mRHluYW1pY1RmczsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1Bfc3RhdGljX3RmczsNCisgICAgDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUcmNoOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVGZjOw0KKyAgICBUX3pXX1Bfc3RhdGljX3RmcyAgICAgICAgICAgYXRTdGF0aWNURlNbWl9XX1BfTUFYX1VMX1RSQ0hfTlVNXTsNCisgICAgVF96V19QX2R5bmFtaWNfdGZzICAgICAgIGF0RHluYW1pY1RGU1taX1dfUF9NQVhfVUxfVEZfTlVNXTsNCisgICAgVF96V19QX3VsX2N0ZmNfdGZjICAgICAgICAgIGF0Q3RmY1taX1dfUF9NQVhfVUxfVEZDX05VTV07DQorfVRfeldfUF91bF9kcGNoX3RyY2hfcmVjb25maWc7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7IC8qIFByaW1hcnlDUElDSCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BjcGljaFVzYWdlRm9yQ2hhbm5lbEVzdDsgICAvKlNlY29uZGFyeUNQSUNILUluZm8qLw0KKwkNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNoRnJhbWVPZmZzZXQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjQ3BTY3JDb2RlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NwaWNoU2NyYW1iQ29kZTsgLyogIFNlY29uZGFyeUNQSUNILUluZm8qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NwQ2hhbkNvZGVGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjQ3BpY2hDaGFuQ29kZTsvKiAgU2Vjb25kYXJ5Q1BJQ0gtSW5mbyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjQ29tYkluZGV4OyAgLyogVFBDLUNvbWJpbmF0aW9uSW5kZXggKi8NCisJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2xvc2VkTG9vcFRpbUFkak1vZGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJPZmZUcGNQZHBkY2g7IC8qIFBvd2VyT2Zmc2V0VFBDLXBkcGRjaCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4RGl2TW9kZTsgIC8qIERMLUNvbW1vbkluZm9ybWF0aW9uLXI4Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkRwY2hzOw0KKw0KKyAgICBUX3pXX1BfZHBjaF9DaGFubmVsQ29kZSAgYXREbERwY2hDaGFubmVsQ29kZVtaX1dfUF9NQVhfTk9fT0ZfRFBDSFNdOw0KK30gVF96V19QX2RlZGljYXRlZF9ybF9wYXJhbXM7DQorDQordHlwZWRlZiAgICBzdHJ1Y3R7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUcmNoOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRmYzsNCisgICAgLyogtNPT0rW91/NCSVTOu7bU06a1xLSryuTQxbXAy7PQ8tPrYXRTdGF0aWNURlPP4M2so7tiaXTWtTCx7cq+srvQ6NKqveLO9qOsMbHtyr7Q6NKqveLO9iAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VuYWJsZURlY29kZUJpdG1hcDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICANCisgICAgLyoguMO4w8r91+nU2kRDSMysyrHT0NCno6zK/dfp1KrL2LbU06a1xLSryuTQxbXAy7PQ8tPrYXRTdGF0aWNURlPP4M2so7sNCisgICAgICAgICAgICAgICAgICBUYXJnZXRfQkxFUs6qv8nRobLOyv2jrNa1tcS3ts6nzqow1sE2M6OsMHhmZmZmse3KvrLOyv2yu7Tm1Nqju87vwO2y48rVtb2689KqKqOoLTAuMaOptcO1vcq1vMrWtSAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUYXJnZXRCbGVyW1pfV19QX01BWF9ETF9UUkNIX05VTV07DQorICAgIA0KKyAgICBUX3pXX1Bfc3RhdGljX3RmcyAgICAgICAgICAgIGF0U3RhdGljVGZzW1pfV19QX01BWF9ETF9UUkNIX05VTV07DQorICAgIA0KKyAgICBUX3pXX1BfZHluYW1pY190ZnMgICAgICAgIGF0RHluYW1pY1Rmc1taX1dfUF9NQVhfRExfVEZfTlVNXTsNCisgICAgVF96V19QX2RsX2N0ZmNfdGZjICAgICAgICAgIGF0Q3RmY1taX1dfUF9NQVhfRExfVEZDX05VTV07DQorfVRfeldfUF9kbF90cmNoX3JlY29uZmlnOw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgd1ByaW1TcmM7IC8qKiBQcmltYXJ5Q1BJQ0ggKi8NCisgICAgV09SRCAgICAgICAgICAgICAgd1BjcGljaFVzYWdlRm9yQ2hhbm5lbEVzdDsgICAvKlNlY29uZGFyeUNQSUNILUluZm8qLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3RHBjaEZyYW1lT2Zmc2V0Ow0KKyAgICBXT1JEICAgICAgICAgICAgICB3RmRwY2hTbG90Rm9ybWF0Ow0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BTY3JDb2RlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BpY2hTY3JhbWJDb2RlOyAvKiAgU2Vjb25kYXJ5Q1BJQ0gtSW5mbyovDQorDQorICAgIFdPUkQgICAgICAgICAgICAgIHdTZWNDcENoYW5Db2RlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BpY2hDaGFuQ29kZTsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgd0ZkcGNoU2VjU2NyYW1iQ29kZUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgd0ZkcGNoU2VjU2NyYW1iQ29kZTsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgd1RwY0NvbWJJbmRleDsgIC8qIFRQQy1Db21iaW5hdGlvbkluZGV4ICovDQorICAgIFdPUkQgICAgICAgICAgICAgIHdTdHRkSW5kaWNhdGlvbjsNCisgICAgV09SRCAgICAgICAgICAgICAgd0ZkcGNoQ2hhbkNvZGU7DQorICAgIFdPUkQgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfZmRwY2hfZGVkaWNhdGVkX3JsX3BhcmFtczsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUZmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9zdGF0aWNfdGZzICAgICAgICAgICAgICAgICAgdFN0YXRpY1RGUzsNCisgICAgVF96V19QX2R5bmFtaWNfdGZzICAgICAgICAgICAgICBhdER5bmFtaWNURlNbWl9XX1BfTUFYX1VMX1RGX05VTV07DQorICAgIFRfeldfUF91bF9jdGZjX3RmYyAgICAgICAgICAgICAgICBhdEN0ZmNbWl9XX1BfTUFYX1VMX1RGQ19OVU1dOw0KK30gVF96V19QX3JhY2hfdGZzX3RmY3NfY29uZmlnOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01heFR4UG93ZXI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJhY2hTY3JhbWJDb2RlOyAvKiBQcmVhbWJsZSBzY3JhbWJsaW5nIGNvZGUgbnVtYmVyMC0xNSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pblNwcmVhZGluZ0ZhY3RvcjsvKiBBdmFpbGFibGUgU0YgSW4gY2hpcHMgcGVyIHN5bWJvbA0KKyAgICBEZWZpbmVzIHRoZSBtaW5pbXVtIGFsbG93ZWQgU0YgKi8NCisgICAgLyogRWFjaCBiaXQgaW5kaWNhdGVzIGF2YWlsYWJpbGl0eSBmb3IgYSBzaWduYXR1cmUsIHdoZXJlIHRoZSBzaWduYXR1cmVzIGFyZSBudW1iZXJlZCAic2lnbmF0dXJlIDAiIHVwIHRvICJzaWduYXR1cmUgMTUiLiBUaGUgdmFsdWUgMSBvZiBhIGJpdCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29ycmVzcG9uZGluZyBzaWduYXR1cmUgaXMgYXZhaWxhYmxlIGFuZCB0aGUgdmFsdWUgMCB0aGF0IGl0IGlzIG5vdCBhdmFpbGFibGUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1B1bmN0dXJpbmdMaW1pdDsNCisgICAgDQorICAgIC8qMTAuMy42LjU1Ki8NCisgICAgLyogUHJlYW1ibGVfSW5pdGlhbF9Qb3dlciA9IFByaW1hcnkgQ1BJQ0ggVFggcG93ZXIgLSBDUElDSF9SU0NQICsgVUwgaW50ZXJmZXJlbmNlICsgQ29uc3RhbnQgVmFsdWUgKi8NCisgICAgLyogUHJlYW1ibGVfSW5pdGlhbF9Qb3dlcj0gd0luaXRpYWxQb3dlck9mZnNldCAtIENQSUNIX1JTQ1AgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdJbml0aWFsUG93ZXJPZmY7DQorICAgIC8qUHJhY2ggUG93ZXIgT2Zmc2V0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlclJhbXBTdGVwOy8qUFJBQ0i5psLKxqvSxiBQb3dlciBSYW1wIFN0ZXAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmVhbWJsZU1heFJldHJhbnM7DQorICAgIA0KKyAgICANCisgICAgLyoxMC4zLjYuMiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWljaENoYW5Db2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FpY2hUeGRpdk1vZGU7ICAvKreiy8231ryv1rjKviovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWljaFRyYW5zVGltaW5nOyAvKkFJQ0i0q8rkyrG85CAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FpY2hQb3dlck9mZjsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmFjaFRmc1RmY3NDZmdGbGc7DQorDQorICAgIFRfeldfUF9yYWNoX3Rmc190ZmNzX2NvbmZpZyAgICB0UmFjaFRmc0FuZFRmY3NDb25maWc7DQorfSBUX3pXX1BfcHJhY2hfc3lzaW5mbzsgDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJPZmZIc3Bkc2NoOw0KKyAgICAgIC8qIENRSSBmZWVkYmFjayBjeWNsZSBjb3VudCAoMC4uMTYwIG1zKSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NxaUZlZWRiYWNrQ3ljbGU7DQorICAgICAgLyogQ1FJIHJlcGV0aXRpb24gZmFjdG9yICgxLi40KSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NxaVJlcEZhY3RvcjsNCisgICAgICAvKiBkZWx0YSBDUUkgKDAuLjgpICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFDcWk7DQorfVRfeldfUF9NZWFzRmVlZEJhY2s7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorDQorICAgIFRfeldfUF9NZWFzRmVlZEJhY2sgICAgICB0TWVhc0ZlZWRCYWNrOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFBY2s7IC8qIGRlbHRhIEFDSyAoMC4uOCkgKi8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YU5hY2s7IC8qIGRlbHRhIE5BQ0sgKDAuLjgpICovDQorICAgIA0KKyAgICAvKiBBQ0stTkFDSyByZXBldGl0aW9uIGZhY3RvciAoMS4uNCkgICBVTC1EUENILVBvd2VyQ29udHJvbEluZm8tcjcgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Fja05hY2tSZXBGYWN0b3I7ICAgICAgLypEUENIuabCyr/Y1sYqLw0KKyAgICANCisgICAgLyooMCwgMSkxIGluZGljYXRlcyB0aGF0IHByZWFtYmxlIGFuZCBwb3N0YW1ibGUgYXJlIHVzZWQgb24gdGhlIEhTLURQQ0NIIC0gc2VlIFsyOV0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxUHJlYW1ibGVNb2RlOyAvKiAoTVApKi8NCit9VF96V19QX2hzX2RwY2NoOw0KKw0KK3R5cGVkZWYgIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtYk9mUHJvY2VzczsNCisgICAgLyptZW1vcnkgcGFydGl0aW9uaW5nIDA6aW1wbGljaXQgMTpleHBsaWNpdCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lbW9yeVBhcnRpdGlvbjsNCisNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1Byb2Nlc3NNZW1vcnlTaXplWzIqWl9XX1BfTUFYX0hfUFJPQ0VTU107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KK31UX3pXX1BfaHNfaGFycV9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoTGVzc1RmY2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3aHNzY2NoTGVzc1NlY0NvZGVTdXA7ICAgICAgICAgICAgDQorfSBUX3pXX1BfaHNzY2NoX0xlc3NUZnNMaXN0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IHsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNwZHNjaENvZGVJbmRleDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hMZXNzVGZzTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzc2NjaExlc3NBY3RpdmVGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX2hzc2NjaF9MZXNzVGZzTGlzdCAgICAgIGF0SHNzY2NoTGVzc1Rmc0xpc3RbWl9XX1BfTUFYX0hTQ0NITEVTU19URlNfTlVNXTsNCit9IFRfeldfUF9oc3NjY2hfbGVzczsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEdHhDeWNsZTE7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4Q3ljbGUyOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eExvbmdQcmVhbWJsZUxlbmd0aDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcWlEdHhUaW1lcjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaEJ1cnN0MTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaEJ1cnN0MjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDeWNsZTJJbmFjdGl2aXR5VGhyZWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4QWN0aXZlRmxnOyAgDQorDQorfSBUX3pXX1BfZHR4X2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4Q3ljbGU7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4Q3ljbGVJbmFjdGVUaHJlZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhHcmFudE1vbml0b3I7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEFjdGl2ZUZsZzsNCit9IFRfeldfUF9kcnhfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFbmFibGVEZWxheTsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEdHhEcnhPZmY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxEcGNjaFNsb3RGb3JtYXQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEZsZzsNCisgICAgDQorICAgIFRfeldfUF9kdHhfaW5mbyAgICAgICAgICAgIHREdHhJbmZvOw0KKyAgICBUX3pXX1BfZHJ4X2luZm8gICAgICAgICAgICB0RHJ4SW5mbzsNCit9IFRfeldfUF9kdHhfZHJ4X2NvbmZpZzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyogaW5kaWNhdGUgaWYgc2Vjb25kYXJ5IHNjcmFtYmxpbmcgY29kZSBleGlzdHMgZm9yIEhTIFNDQ0ggY2hhbm5lbCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGVGbGc7DQorICAgIC8qIHNlY29uZGFyeSBzY3JhbWJsaW5nIGNvZGUgdmFsdWUuDQorICAgIFZhbGlkIG9ubHkgaWYgc2VjX3Njcl9jb2RlX3ZhbGlkIGlzIHNldCB0byBUUlVFLg0KKyAgICBJZiBub3QgdmFsaWQgdGhlbiBwcmltYXJ5IENQSUNIIHNjcmFtYmxpbmcgY29kZSBpcyB1c2VkICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1iQ29kZTsNCisgICAgLyogbnVtYmVyIG9mIGNoYW5uZWxpc2F0aW9uIGNvZGVzIHRvIFNDQ0ggKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkNoYW5uZWxDb2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIC8qIFNDQ0ggY2hhbm5lbGlzYXRpb24gY29kZXMgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3U2NjaENoYW5uZWxDb2RlIFtaX1dfUF9NQVhfSFNfU0NDSF9DT0RFU107DQorfVRfeldfUF9oc19zY2NoOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsZnJlcTsgICAgDQorICAgIC8qIHNlcnZpbmcgSFMtUERTQ0ggcmFkaW8gbGluayBwcmltYXJ5IHNjcmFtYmxpbmcgY29kZSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHJudGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGw2NFFBTUNvbmZpZ3VyZWQ7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNEc2NoVGJTaXplVGFibGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVzZXREcGFGbGc7DQorICAgIA0KKyAgICBUX3pXX1BfaHNfc2NjaCAgICAgICAgICAgIHRIc3NjY2hDb25maWdJbmZvOw0KK31UX3pXX1BfaHNkcGFfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbGZyZXE7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TmV3SHJudGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsgICANCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWVhc1Bvd2VyT2ZmOyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGw2NFFBTUNvbmZpZ3VyZWQ7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGlmZlR4RGl2ZXJzOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzRHNjaFRiU2l6ZVRhYmxlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0hzZHBhQWN0aXZlRmxnOw0KKyAgICANCisgICAgVF96V19QX2hzX3NjY2ggICAgICAgICAgICAgdEhzc2NjaENvbmZpZ0luZm87DQorfVRfeldfUF9zZWNfaHNkcGFfaW5mbzsNCisNCit0eXBlZGVmICAgIHN0cnVjdHsNCisgICAgLyowOm5vcm1hbHBhdHRlcm4szqowyrHH+NPySUXO3tCnOyAxOiBkaXZlcnNpdHlQYXR0ZXJuICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2Vjb25kQ3BpY2hQYXR0ZXJuOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjcGljaFBvd2VyT2ZmRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoYW5Db2RlOw0KKyAgICAvKsih1rW3ts6no7o5NC0xMDAgtaXOu2RCLNXmyrXIoda1t7bOp6O6LTYtMCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NwaWNoUG93ZXJPZmY7DQorfVRfeldfUF9taW1vX3BpbG90X2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8q08PT2rTmtKJtaW1vTi1NLVJhdGlv1tDDtr7Z1rW21NOmtcROtcTWtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWltb05SYXRpbzsNCisgICAgLyrTw9PatOa0om1pbW9OLU0tUmF0aW/W0MO2vtnWtbbU06a1xE21xNa1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaW1vTVJhdGlvOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByZWNvZGVXZWlnUmVzdHI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX21pbW9fcGlsb3RfaW5mbyAgIHRNaW1vUGlsb3RDZmc7DQorfSBUX3pXX1BfbWltb19pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAvKiAxMC4zLjYuNjlhKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZWZUZmNpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2lQbzsNCit9IFRfeldfUF9lZGNoX3RmY2lfcG87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRjaFJlZkV0ZmNpTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9lZGNoX3RmY2lfcG8gICAgICBhdEVkY2hUZmNpUG9bWl9XX1BfTUFYX1JFRl9FVEZDSV07DQorfSBUX3pXX1BfZWRjaF9ncmFudF9jb25maWdfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaW5SZWR1Y2VkRWRwZGNoR2FpbkZhY3RvcjsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWluRXRmY1NldDsgLyowWEZGRkax7cq+w7vT0MXk1sPX7tChRVRGQ9fTvK8qLw0KKyAgICBUX3pXX1BfZWRjaF9ncmFudF9jb25maWdfaW5mbyAgdEVkY2hHcmFudENvbmZpZ0luZm87DQorfSBUX3pXX1BfZWRwZGNoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRwY2NoUG93ZXJPZmZGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hQb3dlck9mZjsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRwZGNoUG93ZXJJbnRlcnBvbGF0aW9uOw0KKyAgICANCisgICAgLyogRS1URkMgQm9vc3QgSW5mbyAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNCb29zdEluZm9GbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXRmY2lCb29zdDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YVQyVFA7DQorfSBUX3pXX1BfZWRwY2NoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRjaFR0aTsgDQorDQorICAvKiAyNS4zMzEsIDEwLjMuNS43ZDoNCisgICAgIElmICJydjAiIGlzIGluZGljYXRlZCwgdGhlIFVFIHNoYWxsIG9ubHkgdXNlIEVfRENIIFJWIGluZGV4IDAuIA0KKyAgICAgRGVmYXVsdCB2YWx1ZSBpcyAicnZ0YWJsZSIsIGluIHdoaWNoIGNhc2UgdGhlIFVFIHNoYWxsIHVzZSBhbiBSU04gYmFzZWQNCisgICAgIFJWIGluZGV4LiAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hhcnFSdkNvbmZpZzsvKjC6zTGjrLfWsfCx7cq+cnYwus1ydnRhYmxlKi8NCisNCisgICAgVF96V19QX2VkcGRjaF9pbmZvICAgICAgIHRFZHBkY2hJbmZvOw0KKyAgICBUX3pXX1BfZWRwY2NoX2luZm8gICAgICAgdEVkcGNjaEluZm87DQorfSBUX3pXX1BfZWRjaF91bF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFYWdjaENoYW5Db2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96V19QX2VkY2hfYWdjaF9pbmZvOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgIA0KKyAgICAvKiBFLUhJQ0gtUkdDSC1TaWduYXR1cmVTZXF1ZW5jZSBTaWduYXR1cmUgU2VxdWVuY2U7IFJlZjogMTAuMy42LjEyMiBpbiAyNS4zMzEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NpZ25hdFNlcXVlbmNlOyAvKiAwLi4zOSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9jb21tX2VkY2hfcmdjaF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAvKiBSRyBjb21iaW5hdGlvbiBpbmRleDsgUmVmOiAxMC4zLjYuMTAwIGluIDI1LjMzMSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmdjaENvbWJJZHg7IC8qIDAuLjUgKi8NCisgICAgLyogRS1ISUNILVJHQ0gtU2lnbmF0dXJlU2VxdWVuY2UgU2lnbmF0dXJlIFNlcXVlbmNlOyBSZWY6IDEwLjMuNi4xMDAgaW4gMjUuMzMxKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWduYXRTZXF1ZW5jZTsgLyogMC4uMzkgKi8NCit9IFRfeldfUF9lZGNoX3JnY2hfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyogSElDSCBjaGFubmVsaXphdGlvbiBjb2RlOyBSZWY6IDEwLjMuNi4xMDEgaW4gMjUuMzMxICBFLUhJQ0gtQ2hhbm5lbGlzYXRpb25Db2RlICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWhpY2hDaGFubmxDb2RlOyAvKiAwLi4xMjcgICovDQorICAgIC8qIEUtSElDSC1SR0NILVNpZ25hdHVyZVNlcXVlbmNlIFNpZ25hdHVyZSBTZXF1ZW5jZTsgUmVmOiAxMC4zLjYuMTAwIGluIDI1LjMzMSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2lnbmF0U2VxdWVuY2U7IC8qIDAuLjM5ICovDQorfSBUX3pXX1BfZWRjaF9oaWNoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWNoRGxDaGFuQml0bWFwOw0KKw0KKyAgICAvKiBwcmltYXJ5IHNjcmFtYmxpbmcgY29kZSBvZiB0aGlzIFJMICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRjaFJsUHJpbVNyYzsNCisgICAgDQorICAgIFRfeldfUF9lZGNoX3JnY2hfaW5mbyAgIHRFZGNoRXJnY2hJbmZvOw0KKyAgICBUX3pXX1BfZWRjaF9oaWNoX2luZm8gICB0RWRjaEVoaWNoSW5mbzsNCit9IFRfeldfUF9lZGNoX2RsX3Blcl9ybF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1Fcm50aUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNFcm50aUZsZzsgDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1Fcm50aTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNFcm50aTsNCisgICAgLyogU2VydmluZyBSTCBpbmRleCBpbiBhcnJheSAgYXRFZGNoRFJsQWRkUmVjZmdJbmZvWyBbTUFYX2VkY2hfUkxdICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRjaFNlcnZSbElkeDsgICAgIC8qIDAuLihNQVhfZWRjaF9STC0xKSAqLw0KKyAgICANCisgICAgLyogbnVtYmVyIG9mIGVudGVyaWVzIHZhbGlkIGluIGFycmF5IGVfcmxfaW5mb1tMMV9NQVhfZWRjaF9STF0gKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkVkY2hSbDsNCisgICAgVF96V19QX2VkY2hfYWdjaF9pbmZvICAgICAgICAgICB0RWRjaEVhZ2NoSW5mbzsNCisgICAgVF96V19QX2VkY2hfZGxfcGVyX3JsX2luZm8gICAgIGF0RWRjaERsUmxJbmZvW1pfV19QX01BWF9FRENIX05PX09GX1JMXTsNCit9IFRfeldfUF9lZGNoX2RsX2luZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgICAgVF96V19QX2VkY2hfdWxfaW5mbyAgICAgICAgICAgICAgICAgIHRFZGNoVWxJbmZvOw0KKyAgICAgIFRfeldfUF9lZGNoX2RsX2luZm8gICAgICAgICAgICAgICAgICB0RWRjaERsSW5mbzsNCit9VF96V19QX2VkY2hfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbEZyZXE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NyYW1iQ29kZVR5cGU7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3U2NyYW1iQ29kZU51bTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJQcmVhbWJsZUxlbjsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hQb3dlck9mZjsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSbDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNFZGNoQWN0aXZlRmxnOw0KKyAgICBUX3pXX1BfZmRwY2hfZGVkaWNhdGVkX3JsX3BhcmFtcyAgICAgYXRGZHBjaERlZGljYXRlZFJsUGFyYW1zW1pfV19QX01BWF9OT19PRl9STF07DQorICAgIA0KKyAgICBUX3pXX1BfZWRjaF91bF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgIHRFZGNoVWxJbmZvOw0KKyAgICBUX3pXX1BfZWRjaF9kbF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgIHRFZGNoRGxJbmZvOw0KK30gVF96V19QX3NlY19lZGNoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3VDMyMTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RyeDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1J4QnVyc3Q7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3RHJ4SW50ZXJydXBIc2RzY2g7DQorfSBUX3pXX1BfZmFjaF9kcGFfZHJ4X2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIC8qIEFDSy1OQUNLIHJlcGV0aXRpb24gZmFjdG9yICgxLi40KSAgIFVMLURQQ0gtUG93ZXJDb250cm9sSW5mby1yNyAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWFja05hY2tSZXBGYWN0b3I7ICAgICAgLypEUENIuabCyr/Y1sYqLw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyQ29udHJvbEFsZ29yaXRoOyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcGNTdGVwU2l6ZTsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzRmVlZEJhY2tGbGc7DQorICAgIFRfeldfUF9NZWFzRmVlZEJhY2sgICAgICB0TWVhc0ZlZWRCYWNrOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhQWNrRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFBY2s7IC8qIGRlbHRhIEFDSyAoMC4uOCkgKi8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YU5BY2tGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YU5hY2s7IC8qIGRlbHRhIE5BQ0sgKDAuLjgpICovDQorfSBUX3pXX1BfZmFjaF9kcGNjaDsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHJudGlUeXBlOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHJudGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JjY2hIcm50aTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzZHBhRHJ4RmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc2RwY2NoU3VwQWNrOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGYWNoRHBjY2hGbGc7DQorICAgIFRfeldfUF9oc19zY2NoICAgICAgICAgICAgICAgICAgICAgdEhzc2NjaENvbmZpZzsNCisgICAgVF96V19QX2hzX2hhcnFfaW5mbyAgICAgICAgICAgICAgICB0SHNIYXJxSW5mbzsgICAgDQorICAgIFRfeldfUF9mYWNoX2RwYV9kcnhfaW5mbyAgICAgICAgICAgdEhzZHBhRHJ4SW5mbzsNCisgICAgVF96V19QX2ZhY2hfZHBjY2ggICAgICAgICAgICAgICAgICB0RmFjaERwY2NoOw0KK30gVF96V19QX2ZhY2hfZHBhX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N5bWJvbE9mZjsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZkcGNoQ2hhbkNvZGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsRHBjY2hTY3JhbWJDb2RlVHlwZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q29tbUVkY2hSZ2NoRmxnOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdVbERwY2NoU2NyYW1iQ29kZTsNCisgICAgVF96V19QX2NvbW1fZWRjaF9yZ2NoX2luZm8gICAgICAgICAgICAgIHRDb21tRWRjaFJnY2hJbmZvOw0KKyAgICBUX3pXX1BfZWRjaF9oaWNoX2luZm8gICAgICAgICAgICAgICAgICAgICAgICB0RWRjaEVoaWNoSW5mbzsNCit9VF96V19QX2NvbW1vbl9lZGNoX3Jlc291cmNlX2xpc3Q7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpRXJudGlGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpRXJudGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc2V0RmxnOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4VHhQb3dlcjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RmRwY2hUcGNDb21tYW5kRXJyb3JSYXRlOw0KKyAgICAvKiAyNS4zMzEsIDEwLjMuNS43ZDoNCisgICAgSWYgInJ2MCIgaXMgaW5kaWNhdGVkLCB0aGUgVUUgc2hhbGwgb25seSB1c2UgRV9EQ0ggUlYgaW5kZXggMC4gDQorICAgIERlZmF1bHQgdmFsdWUgaXMgInJ2dGFibGUiLCBpbiB3aGljaCBjYXNlIHRoZSBVRSBzaGFsbCB1c2UgYW4gUlNOIGJhc2VkDQorICAgIFJWIGluZGV4LiAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SGFycVJ2Q29uZmlnOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWRkRWRjaEJhY2tPZmY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFZGNoVHRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXRmY2lUYWJsZUluZGV4Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q29tbW9uRWRjaFJlc291cmNlTnVtOw0KKw0KKyAgICBUX3pXX1BfZWRjaF9hZ2NoX2luZm8gICAgICAgICAgICAgICAgICAgICAgIHRFZGNoRWFnY2hJbmZvOw0KKyAgICBUX3pXX1BfZWRwZGNoX2luZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgdEVkcGRjaEluZm87DQorICAgIFRfeldfUF9lZHBjY2hfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0RWRwY2NoSW5mbzsNCisgICAgVF96V19QX2NvbW1vbl9lZGNoX3Jlc291cmNlX2xpc3QgICAgICAgIGF0Q29tbW9uRWRjaFJlc291cmNlbGlzdFszMl07DQorIH0gVF96V19QX2ZhY2hfdXBhX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWFpSW5kOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RwY2NoUG93ZXJPZmZQZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFYWlQb3dlck9mZjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfcHJhY2hfc3lzaW5mbyAgICAgICAgICAgdFByYWNoU3lzaW5mbzsvKiDU9se/z8JQUkFDSNa709DSu9fpoaMqLw0KK31UX3pXX1BfaHNwYV9wbHVzX3ByYWNoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHJudGk7Lyq908rVz8LQ0EhTLVNDQ0jKsdPDtb21xFVFILHqyrYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JjY2hIcm50aTsgLyrU2s/C0NC12tK7zPVIUy1TQ0NIyc+908rVQkNDSMnPtcTP+8+iyrHTw7W9tcTXqNPDVUWx6sq2Ki8NCisgICAgDQorICAgIFRfeldfUF9oc19zY2NoICAgICAgICAgICAgIHRIc3NjY2hDb25maWc7DQorICAgIFRfeldfUF9oc19oYXJxX2luZm8gICAgICB0SHNIYXJxSW5mbzsgICAgDQorfSBUX3pXX1BfZGNjaF9kdGNoX3JlbGF0ZV9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGVGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1iQ29kZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdWJGcmFtZU51bU9mUGNjaDsvKm51bWJlciBvZiBzdWJmcmFtZXMgdXNlZCB0byB0cmFuc21pdCB0aGUgUEFHSU5HIFRZUEUgMSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNkcGFDaGFuQ29kZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUYnNOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VGJzTGlzdFsyXTsNCit9VF96V19QX3BjY2hfcmVsYXRlX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEY2NoRHRjaFJlYzsvKrWxx7DKx7fx1qez1r3TytVEVENIus1EQ0NIo7swo7qyu9ans9ajuzGjutans9YqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfZGNjaF9kdGNoX3JlbGF0ZV9pbmZvICAgdERjY2hEdGNoSW5mbzsgLypEY2NoL0R0Y2jJz7XEvdPK1cXk1sPQxc+io6y99rWxd0RjY2hfZHRjaF9yZWNfZmc9Mcqx09DQpyovDQorICAgIFRfeldfUF9wY2NoX3JlbGF0ZV9pbmZvICAgICAgICAgICB0UGNjaF9pbmZvOyAvKlBjY2jJz7XEvdPK1cXk1sPQxc+io6y99rWxd0RjY2hfZHRjaF9yZWNfZmc9MMqx09DQpyovICAgIA0KK30gVF96V19QX3BjaF9kcGFfaW5mbzsNCisNCisNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX0FERF9QUkFDSF9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkPF5NbDzu/A7bLjy+a7+r3TyOvQxbXADQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfcHJhY2hfc3lzaW5mbyAgICB0UHJhY2hTeXNpbmZvOw0KK31UX3pXX1BfYWRkX3ByYWNoX3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfVUxfRFBDSF9TRVRVUF9NT0RJRllfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDvajBosnP0NDXqNPDzu/A7dDFtcAgINPD09q3x0RDSL2owaK1vURDSLywRENIyO3TssfQu7ssDQorICAgICAgICAgICAgICDS1LywyKHP+7Dpy+ZEUENIo6zJz9DQVVBBo6zPwtDQRkRQQ0i21NOmtcTJz9DQRFBDQ0jF5NbDoaMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCisgICAgLyrT0M2sxrWjrNLsxrXTssfQo6xEQ0jMrL/n1sbKvcfQu7ujrENDT7vYzcvF5FVMRFBDSMqxIHdIYW5kb3ZlckNvbmZpZ1JldHVybkZsZz09MS7G5Mv7x+m/9ndIYW5kb3ZlckNvbmZpZ1JldHVybkZsZz09MA0KKyovDQorLy8gICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0hhbmRvdmVyQ29uZmlnUmV0dXJuRmxnOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3SGFuZG9Db25mUmV0dXJCaXRtYXA7LyrTssfQyqew3LvYzcvWuMq+QklUTUFQLiC009PSz/LX80JJVDDWwzGx7cq+tbHHsM6q1sbKvcTa07LH0MqnsNy72M3Lo6xCSVQx1sMxse3Kvr/n1sbKvcfQu7vKp7Dcu9jNy6OsQklUMtbDMbHtyr6/59bGyr1DQ0/Kp7Dcu9jNyyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdVbEZyZXE7DQorCQ0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3RGxGcmVxOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1NwcmVhZGluZ0ZhY3RvcjsgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgZHdVbFNjcmFtYkNvZGU7IA0KKwkNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1NjcmFtYkNvZGVUeXBlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZEUERDSDsvKjCx7cq+w7vT0MXk1sNEUERDSCzI57n7yKEwo6y0y8qxdFVsVHJjaFJlY29uZmlnINKyysfO3tCntcSho732vfbF5NbDVUxEUENDSCoqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3VGZjaUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd051bU9mRmJpQml0czsNCisgICAgDQorICAgIC8qtbF3VGZjaUV4aXN0OyB3TnVtRmJpQml0cyC2vLK7tObU2sqxo6x3TnVtVFBDQml0c7/J0aG05tTaKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVFBDQml0czsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1B1bmN0TGltaXQ7LypEUERDSLK7zqowyseyxdPQ0KcqLw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyUHJlYW1ibGVMZW47DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaFBvd2VyT2ZmOw0KKwkNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RwY2NoUG93ZXJPZmZTdGVwOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJDb250cm9sQWxnb3JpdGhtOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1RwY1N0ZXBTaXplOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01heFR4UG93ZXI7DQorICAgIA0KKw0KK1RfeldfUF91bF9kcGNoX3RyY2hfcmVjb25maWcgICAgdFVsVHJjaFJlY29uZmlnOw0KK31UX3pXX1BfdWxfZHBjaF9zZXR1cF9tb2RpZnlfcmVxOyANCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfREwgX0RQQ0hfU0VUVVBfTU9ESUZZX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ8frx/PO78DtsuO9qMGi16jTw87vwO3QxbXAo6jTw9PaRFBEQ0i8sERQQ0NItcTF5NbDo6kNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U29mdEhhbmRvdmVyRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOw0KKyAgICAvKsqxvOSxo7PWKNDo0qrNrLK9us2yu9Do0qrNrLK9Kbu5ysfKsbzk1ti9qNOyx9DWuMq+IMih1rW3ts6no6gwLTOjqSAgMLHtyr6z9cq8u68gICAxse3KvrK70OjSqs2ssr21xMqxvOSxo7PW07LH0KOsMrHtyr7Q6NKqzayyvbXEyrG85LGjs9bTssfQo6wzse3KvsqxvOTW2L2o07LH0KGjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGltaW5nSW5kaWNhdGlvbjsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RwY01vZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJPZmZQaWxvdFBkcGRjaDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2Y7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mUGlsb3RCaXRzOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpRmxnOyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyQ0hGaXhlZEZsZzsgIA0KKyAgICAvKk4zMTIsTjMxMyxOMzE1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxNTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3RG9mZjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG9zdFZlcmlmeVBlcmlvZEZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSbDsNCisgICAgVF96V19QX2RlZGljYXRlZF9ybF9wYXJhbXMgICAgICAgICAgICAgICAgYXREZWRSbFBhcmFtc1taX1dfUF9NQVhfTk9fT0ZfUkxdOw0KKyAgICBUX3pXX1BfZGxfdHJjaF9yZWNvbmZpZyAgICAgICAgICAgICAgICAgICAgICB0RGxUcmNoUmVjb25maWc7DQorfVRfeldfUF9kbF9zZXR1cF9tb2RpZnlfcmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19ETCBfRkRQQ0hfU0VUVVBfTU9ESUZZX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ8frx/PO78DtsuO9qMGisr+31teo08PO78Dt0MW1wA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NvZnRIYW5kb3ZlckZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorICAgIC8qRW51bWVyYXRlZChJbml0aWFsaXNlLE1haW50YWluKSAwOkluaXRpYWxpc2UsMTpNYWludGFpbiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1pbmdJbmRpY2F0aW9uOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjTW9kOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RmRwY2hUcGNFcnJvclJhdGU7DQorICAgIA0KKyAgICAvKk4zMTIsTjMxMyxOMzE1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzEzOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxNTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdEb2ZmOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG9zdFZlcmlmeVBlcmlvZEZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mUmw7DQorICAgIFRfeldfUF9mZHBjaF9kZWRpY2F0ZWRfcmxfcGFyYW1zICAgICAgICAgYXRGZHBjaERlZFJsUGFyYW1zW1pfV19QX01BWF9OT19PRl9STF07DQorfVRfeldfUF9kbF9mZHBjaF9zZXR1cF9tb2RpZnlfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19EUENIX1NFVFVQX01PRElGWV9DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6IM7vwO2y482o1qpVUlJDxeTWw7yku+7Ksbzktb0szu/A7bLj0tG+rcb008PQwrXExeTWwywNCisgICAgICAgICAgICAgtMvKsVVVUlJDxvS2r1QzMTK2qMqxxvcutMvP+8+i08PT2lBfREwgX0RQQ0hfU0VUVVBfTU9ESUZZX1JFUbrNDQorICAgICAgICAgICAgIFBfZGxfRkRQQ0hfU0VUVVBfTU9ESUZZX1JFUbXEt7TAoQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSbHQgOw0KK31UX3pXX1BfZGxfZHBjaF9zZXR1cF9tb2RpZnlfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19JTl9TWU5DX0lORCggUEhZLT5VUlJDICkNCisgy7XD9zogzu/A7bLj1Nq9qMGi16jTw87vwO3QxbXAyrEszajWqlVSUkPNrLK9s8m5pqOszNjWuNb3xrW147XEzayyvQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2luX3N5bmNfaW5kOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19PVVRfU1lOQ19JTkQoIFBIWS0+VVJSQyApDQorIMu1w/c6IM7vwO2y482o1qpVUlJDyqeyvaOszNjWuNb3xrW147XEyqeyvQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX291dF9zeW5jX2luZDsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfVUxfRFBDSF9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJD08PT2srNt8XJz9DQ16jTw87vwO3QxbXADQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCit9VF96V19QX3VsX2RwY2hfcmVsX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfRExfRFBDSF9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJD08PT2srNt8XPwtDQ16jTw87vwO3QxbXADQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCit9VF96V19QX2RsX2RwY2hfcmVsX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfRFBDSF9SRUxfQ05GKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiC117LjyLfIz0RQQ0jQxbXAys23xc3qsc8oKaGjDQorICAgICAgICAgICAgIMrHUF91bF9EUENIX1JFTF9SRVG78lBfZGxfRFBDSF9SRUxfUkVRtcS3tMChz/vPoqGjDQorICAgICAgICAgICAgILWxyc/PwtDQRFBDSNK7xvDJvrP9yrGjrM7vwO2y49a70OjSqrvYuLTSu8z1UF9EUENIX1JFTF9DTkYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9kcGNoX3JlbF9jbmY7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1JFTF9TQ0NQQ0hfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDINPD09rKzbfFuKi5q7myzu/A7dDFtcANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorfVRfeldfUF9yZWxfc2NjcGNoX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfUkVMX1NDQ1BDSF9DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6ILXXsuPIt8jPU0NDUENI0MW1wMrNt8XN6rHPDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfcmVsX3NjY3BjaF9jbmY7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0FERF9NT0RJRllfU0NDUENIX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQyDTw9PaxeTWw7iouau5ss7vwO3QxbXADQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJsQ29kZUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJsQ29kZTsgIC8qU2Vjb25kYXJ5IHNjcmFtYmxpbmcgY29kZSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4RGl2TW9kZTsgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NwcmVhZGluZ0ZhY3RvcjsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2NwY2hDaGFuQ29kZTsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2NwY2hDaGlwc09mZnNldDsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaWxvdEV4aXN0ZW5jZTsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpRmxnOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyQ0hGaXhlZEZsZzsNCisgICAgVF96V19QX2RsX3RyY2hfcmVjb25maWcgICAgICAgIHREbFRyY2hSZWNvbmZpZzsNCit9VF96V19QX2FkZF9tb2RpZnlfc2NjcGNoX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfUEFHSU5HX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQyDTw9PaxeTWw9GwuvTQxbXADQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX2FkZF9tb2RpZnlfc2NjcGNoX3JlcSAgICB0QWRkTW9kaWZ5U2NjcGNoUmVxOw0KKyAgICBUX3pXX1BfcGljaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgIHRQaWNoSW5mbzsNCit9VF96V19QX3BhZ2luZ19yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1NUT1BfUEFHSU5HX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQyDTw9PazaPWudGwuvQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9zdG9wX3BhZ2luZ19yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1NUT1BfUEFHSU5HX0NORiggUEhZLT5VUlJDICkNCisgy7XD9zogtdey48i3yM/KzbfF0bC69NDFtcDN6rHPDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1Bfc3RvcF9wYWdpbmdfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19BRERfSFNEUEFfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDINPD09rF5NbDSFNEUEHP4LnY0MW1wKOo0OjSqtPrRFBDSLvyRkRQQ0jF5NbDxeS6z8q508OjqQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgLyowfjI1NTsgMjU2Os7e0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eERyeENvbmZpZ0ZsZzsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoTGVzc0ZsZzsgDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0hzZHBhSW5mb0ZsZzsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pbW9QYXJhbUZsZzsvKrbU06ZhdE1pbW9JbmZvWzBd1tC1xLLOyv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NlbGxNaW1vUGFyYUZsZzsgLyq21NOmYXRNaW1vSW5mb1sxXdbQtcSyzsr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYWNIZFR5cDsNCisNCisgICAgVF96V19QX2hzX2RwY2NoICAgICAgICAgICB0SHNkcGNjaENvbmZpZ0luZm87DQorICAgIFRfeldfUF9oc19oYXJxX2luZm8gICAgICB0SHNIYXJxSW5mbzsNCisgICAgVF96V19QX2hzc2NjaF9sZXNzICAgICAgICB0SHNzY2NoTGVzc0luZm87ICAgIA0KKyAgICBUX3pXX1BfZHR4X2RyeF9jb25maWcgICAgdER0eERyeENvbmZpZzsgDQorICAgIFRfeldfUF9oc2RwYV9pbmZvICAgICAgICAgdEhzZHBhSW5mbzsNCisgICAgVF96V19QX3NlY19oc2RwYV9pbmZvICAgdFNlY0hzZHBhSW5mbzsNCisgICAgVF96V19QX21pbW9faW5mbyAgICAgICAgICBhdE1pbW9JbmZvWzJdOw0KK31UX3pXX1BfaHNkcGFfY29uZmlnX3JlcTsgDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1JFTF9IU0RQQV9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkPKzbfFSFNEUEHF5NbDx+vH8w0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCit9VF96V19QX2hzZHBhX3JlbF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1JFTF9IU0RQQV9DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6ILXXsuPIt8jPys23xUhTRFBB0MW1wM3qsc8NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9oc2RwYV9yZWxfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19BRERfSFNVUEFfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDxeTWw0hTVVBBDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOyAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxmcmVxOyAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01heFR4UG93ZXI7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWwxNlFBTUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFdGZjaVRhYmxlSW5kZXg7Lyogt8cxNlFBTcqxyKHWtbe2zqfKxzC1vTEuMTZRQU3Kscih1rW3ts6nyscytb0zKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNFZGNoRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9lZGNoX2luZm8gICAgICAgICAgdEVkY2hJbmZvOw0KKyAgICBUX3pXX1Bfc2VjX2VkY2hfaW5mbyAgICB0U2VjRWRjaEluZm87DQorfVRfeldfUF9oc3VwYV9jb25maWdfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1VQQV9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDyb6z/UhTVVBB18rUtA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCit9VF96V19QX2hzdXBhX3JlbF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0hTVVBBX1JFTF9DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6ILXXsuPIt8jPyb6z/UhTVVBB18rUtM3qsc8NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9oc3VwYV9yZWxfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1BBX1BMVVNfRkFDSF9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IMXk1sNMMSBGQUNIus1JRExFzKzPwrXEz+C52NT2x7/F5NbDLr3hus9QUkFDSMXk1sPSu8bwyrnTwy4NCisgICAgICAgICAgICAg1PbHv0ZBQ0jMrLWxz8LQ0LLJ08NEUEHKx6OstMvKsXdQbHVzVXBhRmxn1sMwo6wNCisgICAgICAgICAgICAgyc/Q0NDo0qpQX1dfQUREX1BSQUNIX1JFUcbVzahSQUNIxeTWww0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxGcmVxOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BsdXNVcGFGbGc7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9mYWNoX2RwYV9pbmZvICAgICAgICAgICB0RmFjaERwYUluZm87DQorICAgIFRfeldfUF9mYWNoX3VwYV9pbmZvICAgICAgICAgICB0RmFjaFVwYUluZm87DQorICAgIFRfeldfUF9oc3BhX3BsdXNfcHJhY2hfaW5mbyAgICB0UGx1c1ByYWNoSW5mbzsNCit9IFRfeldfUF9oc3BhX3BsdXNfZmFjaF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0hTUEFfUExVU19QQ0hfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiDF5NbDTDEgUENIzKzPwrXEz+C52NT2x7/F5NbDDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbEZyZXE7IA0KKyAgICBUX3pXX1BfcGNoX2RwYV9pbmZvICAgICB0UGNoRHBhSW5mbzsgDQorICAgIFRfeldfUF9waWNoX2luZm8gICAgICAgICAgIHRQaWNoSW5mbzsgICAgDQorfSBUX3pXX1BfaHNwYV9wbHVzX3BjaF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0hTUEFfUExVU19GQUNIX1JFTF9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IMm+s/1MMSAgRkFDSLrNSURMRcysz8K1xM/gudjU9se/xeTWww0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgICAgICAgICAgLyowfjI1NTsgMjU2OsGivLTG8NCnKi8NCit9IFRfeldfUF9oc3BhX3BsdXNfZmFjaF9yZWxfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1BBX1BMVVNfUENIX1JFTF9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IMm+s/1MMSAgUENIzKzPwrXEz+C52NT2x7/F5NbDDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgIA0KK30gVF96V19QX2hzcGFfcGx1c19wY2hfcmVsX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSFNQQV9QTFVTX0ZBQ0hfUkVMX0NORiggUEhZLT5VUlJDICkNCisgy7XD9zogzu/A7bLju9i4tLj4TDFUtcTU9se/RkFDSMXk1sPJvrP9yLfIz8/7z6INCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICANCit9IFRfeldfUF9oc3BhX3BsdXNfZmFjaF9yZWxfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1BBX1BMVVNfUENIX1JFTF9DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6IM7vwO2y47vYuLS4+EwxVLXE1PbHv1BDSMXk1sPJvrP9yLfIz8/7z6INCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICAgDQorfSBUX3pXX1BfaHNwYV9wbHVzX3BjaF9yZWxfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1NDQ0hfT1JERVJfSU5EKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiDO78DtsuPK1bW9SFNTQ0NIIE9SREVSuvPJz7GoUFMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0eyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisJV09SRCAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hPcmRlclR5cGVJbmQ7LyrNqLn9tMux6sq2o6xQSFnNqNaqUFOjrLjVuNXK1bW9tcRPUkRFUtbQ0K+0+LXEwODQzaOsuMPA4NDNtcS8pLvuyKW77tDo0qq4+b7dd0hzc2NjaE9yZGVyVHlwZc/g06bOu8XQts+hoyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoT3JkZXJUeXBlOw0KKwlXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9Ic2NjaF9PcmRlcl9JbmQ7DQorDQorLyp3SHNzY2NoT3JkZXJUeXBlSW5kICCx7cq+tbHHsMrVtb3By8TE0KlPUkRFUrXEwODQzaGj0+t3SHNzY2NoT3JkZXJUeXBl1tC1xMDg0M3Su9K7ttTTpqGjDQortNPT0s/y1/OjrMO/uPZCSVS31rHwse3KvkhTRFNDSLf+zvGx5Lj8o6xFUENIyrHU2khTX1NDQ0jJz8rVtb1IUk5USSxMRVNTo6y12rb+xrW140RQQaOstdq2/sa1teNVUEHH6b/2o6zP4NOmzrsg1sPSu7Htyr7K1bW9wcvP4NOmwODQzbXET1JERVIsoaMNCiu12jCxyMzYo7oxse3KvrjVytW1vUhTRFNDSLf+zvHQocf4uPy4xLXET1JERVIgo7sNCiu12jGxyMzYo7sxse3KvrjVytW1vUVQQ0jKsdTaSFNfU0NDSMnPytW1vUhSTlRJtcRPUkRFUg0KK7XaMrHIzNijujGx7cq+uNXK1bW9RFRYz+C52E9SREVSDQortdozscjM2KO6MbHtyr641crVtb21xMrHRFJYIM/gudhPUkRFUg0KK7XaNLHIzNijujGx7cq+uNW41crVtb21xMrHSFNfU0NDSF9MRVNTz+C52LXET1JERVINCiu12jWxyMzYo7oxse3KvrjVuNXK1bW9tcTKx7XaMsa1tePPwtDQRFBBz+C52LXET1JERVINCiu12jaxyMzYo7oxse3KvrjVuNXK1bW9tcTKx7XaMsa1tePJz9DQVVBBz+C52LXET1JERVINCisqLw0KKy8qDQord0hzc2NjaE9yZGVyVHlwZbTT09LP8tfzo6zDv7j2QklUt9ax8LHtyr5IU0RTQ0i3/s7xseS4/KOsRVBDSMqx1NpIU19TQ0NIyc/K1bW9SFJOVEksTEVTU7XEvKS77silu+6jrLXatv7GtbXjRFBBvKS77silu+6jrLXatv7GtbXjVVBBtcS8pLvuyKW77sfpv/YNCiu12jCxyMzYo7owse3KvkhTRFNDSLf+zvHQocf4uPy4xCwxse3Kvs60ytW1vUhTRFNDSLf+zvHQocf4uPy4xC4go7sNCiu12jGxyMzYo7sxse3KvkVQQ0jKsdTaSFNfU0NDSMnPytW1vUhSTlRJDQortdoyscjM2KO6MLHtyr7IpbvuRFRYo6wxse3Kvryku+5EVFgNCiu12jOxyMzYo7owse3Kvsilu+5EUlijrDGx7cq+vKS77kRSWA0KK7XaNLHIzNijujCx7cq+yKW77khTX1NDQ0hfTEVTU6OsIDGx7cq+vKS77khTX1NDQ0hfTEVTUw0KK7XaNbHIzNijujCx7cq+yKW77rXaMsa1tePPwtDQRFBBo6wxse3Kvryku+612jLGtbXjz8LQ0ERQQQ0KK7XaNrHIzNijujCx7cq+yKW77rXaMsa1tePJz9DQVVBBo6wxse3Kvryku+612jLGtbXjyc/Q0FVQQQ0KKw0KKyovDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX05FUkJFUkNFTExfSFNTQ0NIX09SREVSX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogx+vH887vwO2y47bByKHWuLao0KHH+LXESFNTQ0NIIE9SREVSLs/s06bP+8+iysdQX0hzY2NoX09yZGVyX0luZC4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQcmlTcmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdNb25pdG9yVGltZUxlbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9oc19zY2NoICAgICAgICAgdEhzc2NjaENvbmZpZ0luZm87DQorfVRfeldfUF9Ic2NjaF9PcmRlcl9SZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX05FUkJFUkNFTExfSFNTQ0NIX09SREVSX0FCT1JUX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogx+vH887vwO2y48ihz/u2wcih1ri2qNChx/i1xEhTU0NDSCBPUkRFUi4NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRuZzsNCit9VF96V19QX0hzY2NoX09yZGVyX0Fib3J0X1JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pXX1BfRUZBQ0hfVVBEQVRFX1JOVElfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiDNqNaqzu/A7bLjuPzQwteo08O1xEhSTlRJu/JFUk5USQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOy8qMH4yNTU7IDI1NjrBory0xvDQpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3VXBkYXRlVHlwZTsvKjGjuta7uPzQwkgtUk5USaO7MqO61ru4/NDCRS1STlRJo7szo7q4/NDCSC1STlRJus1FLVJOVEk7Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdIcm50aTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQcmlFcm50aTsgLyrXqNPD1vdFUk5USSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgDQorIH1UX3pXX1BfZWZhY2hfdXBkYXRlX3JudGlfcmVxOw0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIFJCQ8irvtbK/b7dwODQzbao0uUgLS0tLS0tLWVuZCAgICAgICAgICAgICAgICAgICAgICAgICoNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisgIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICogICAgICAgICAgICAgICAgICAgICAgICAgTUNSyKu+1sr9vt3A4NDNtqjS5SAtLS0tLS0tLXN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFJSQzwtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgUlJDus1QSFmy47zktcTNrMa1suLBv8Xk1sO907/aDQorICAgICAgICC94bm5OiAgICAgICAgDQorICAgICAgICAgICAgICAgIM2sxrWy4sG/xeTWw8/7z6IgV19QX0lOVFJBX0ZSRVFfTUVBU19SRVENCisgICAgICAgICAgICAgICAgzazGtbLiwb+94bn7z/vPoiBXX1BfSU5UUkFfRlJFUV9NRUFTX0lORA0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbElkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDaGlwQWNjdXJhY3k7ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmVGltZURpZmY7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeERpdkluZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3luSW5mb3JOZWVkOyAgICAgDQorfVRfeldfUF9jZWxsX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQorICAgIFRfeldfUF9jZWxsX2luZm8gICAgICAgICAgICAgYXRNZWFzQ2VsbEluZm9bWl9XX1BfTUFYX0NFTExfTlVNXTsNCit9VF96V19QX2ZyZXFfbWVhc19pbmZvOw0KKyANCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VhcmZjbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1ByaW1TcmNbWl9XX1BfTUFYX0NFTExfTlVNXTsNCit9VF96V19QX2ZyZXFfbm90X21lYXNfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZXRlY3RlZFNldFF1YW50aXR5Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzRnJlcU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Tm90TWVhc0ZyZXFOdW07DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgICAgDQorICAgIFRfeldfUF9mcmVxX21lYXNfaW5mbyAgICAgICAgICAgICBhdEludHJhRnJlcU1lYXNJbmZvW1pfV19QX01BWF9JTlRSQUZSRVFfTlVNXTsNCisgICAgVF96V19QX2ZyZXFfbm90X21lYXNfaW5mbyAgICAgICBhdE5vdE1lYXNGcmVxSW5mb1taX1dfUF9NQVhfSU5UUkFGUkVRX05VTV07DQorfVRfeldfUF9pbnRyYV9mcmVxX21lYXNfcmVxOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbElkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZm5GbGFnOjE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoUnNjcDo4Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaEVjTm86NzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdPZmY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RtOw0KK30gVF96V19QX2NlbGxfbWVhc19ybHQ7IA0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxOdW06ODsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaTo4Ow0KKyAgICBUX3pXX1BfY2VsbF9tZWFzX3JsdCAgICAgICAgICAgIGF0Q2VsbE1lYXNSbHRbWl9XX1BfTUFYX0NFTExfTlVNXTsNCit9IFRfeldfUF9mcmVxX21lYXNfcmx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFOdW07DQorICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsNCisgICBUX3pXX1BfZnJlcV9tZWFzX3JsdCAgICAgIGF0SW50cmFGcmVxTWVhc1JsdFtaX1dfUF9NQVhfSU5UUkFGUkVRX05VTV07DQorfVRfeldfUF9pbnRyYV9mcmVxX21lYXNfaW5kOw0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgUlJDPC0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBSUkO6zVBIWbLjvOS1xNLsxrWy4sG/xeTWw73Tv9oNCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAg0uzGtbLiwb/F5NbDz/vPoiBXX1BfSU5URVJfRlJFUV9NRUFTX1JFUQ0KKw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VhcmZjbjsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlYXJjaENlbGxGbGc7IC8qMbHtyr64w8a1teOyu732suLBv1JTU0m7udDo0qq9+NDQ0KHH+MvRy/ejrLKivfjQ0NChx/iy4sG/veG5+8nPsaihozCx7cq+uMPGtbXjvfay4sG/UlNTSSovDQorfVRfeldfUF9CbGluZF9mcmVxX21lYXNfcmVxOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCbGluZEZyZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0xic0ZsYWc7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd1RtZWFzSW5pYWw7IA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdUbWVhczsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3TWVhc0lkOyAgICANCisgICAgVF96V19QX2ZyZXFfbWVhc19pbmZvICAgICAgICAgICAgICBhdEludGVyRnJlcU1lYXNJbmZvW1pfV19QX01BWF9JTlRFUkZSRVFfTlVNXTsgICAgICAvKndGcmVxTnVtyv3Ev9a4yr4qLyAgICANCisgICAgVF96V19QX0JsaW5kX2ZyZXFfbWVhc19yZXEgICAgICBhdEJsaW5kRnJlcVtaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX05VTV07ICAgICAgICAvKndCbGluZEZyZXFOdW3K/cS/1rjKviovICAgIA0KK31UX3pXX1BfaW50ZXJfZnJlcV9tZWFzX3JlcTsNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFJSQzwtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgUlJDus1QSFmy47zktcTS7Ma1suLBv8Xk1sO907/aDQorICAgICAgICC94bm5OiAgICAgICAgDQorICAgICAgICAgICAgICAgINLsxrWy4sG/veG5+8/7z6IgV19QX0lOVEVSX0ZSRVFfTUVBU19JTkQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hSc2NwOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaEVjTm87DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfYmxpbmRfY2VsbF9ybHQ7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VhcmZjbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsgLyoguMPGtbXjz8LDpLLiwb+1xNChx/i49sr9ICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7IA0KKyAgICBUX3pXX2JsaW5kX2NlbGxfcmx0ICAgICAgICAgIGF0QmxpbmRDZWxsUmx0W1pfV19QX01BWF9CTElORF9JTlRFUkZSRVFfQ0VMTF9OVU1dOw0KK31UX3pXX2JsaW5kX3VhcmZjbl9ybHQ7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdJbnRlckZyZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JsaW5kRnJlcU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnB0RmxnOyAvKjA61tzG2snPsaggMTrM4cewyc+xqCovDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgDQorICAgIFRfeldfUF9mcmVxX21lYXNfcmx0ICAgICAgICAgICAgYXRJbnRlckZyZXFNZWFzUmx0W1pfV19QX01BWF9JTlRFUkZSRVFfTlVNXTsNCisgICAgVF96V19ibGluZF91YXJmY25fcmx0ICAgICAgICAgICAgIGF0QmxpbmRGcmVxUmx0W1pfV19QX01BWF9CTElORF9JTlRFUkZSRVFfTlVNXTsNCit9VF96V19QX2ludGVyX2ZyZXFfbWVhc19pbmQ7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFBIWS0+UlJDDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBSSFnP8lJSQ7eiy823/s7x0KHH+LLiwb+94bn7yc+xqA0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICC3/s7x0KHH+LLiwb+94bn7yc+xqM/7z6IgV19QX1NFUlZDRUxMX01FQVNfSU5EDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hSc2NwOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hFY05vOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k7IC8vt/7O8ca1teNSU1NJ1rWjrMih1rW3ts6nOjB+NzajrLbU06YtMjVkQm1+LTEwMGRCbQ0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1Bfc2VydmNlbGxfbWVhc19pbmQ7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFJSQzwtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgUlJDus1QSFmy47zktcRVRcTasr+y4sG/xeTWw73Tv9oNCisgICAgICAgIL3hubk6ICAgIA0KKyAgICAgICAgICAgICAgICBVRcTasr+y4sG/x+vH88/7z6IgV19QX1VFX0lOVEVSTkFMX01FQVNfUkVRDQorICAgICAgICAgICAgICAgIFVFxNqyv7Liwb+94bn7yc+xqCAgICAgV19QX1VFX0lOVEVSTkFMX01FQVNfSU5EICAgICAgICAgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCit0eXBlZGVmIHN0cnVjdCB7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVwSW50ZXJ2YWw7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4UG93ZXJOZWVkOjE7ICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnhUeE5lZWQ6MTsgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaU5lZWQ6MTsgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjEzOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3TWVhc0lkOw0KK31UX3pXX1BfdWVpbnRlcm5hbF9tZWFzX3JlcTsgDQorDQorDQordHlwZWRlZiBzdHJ1Y3QgeyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnhUeFRpbWVEaWZmOw0KK31UX3pXX1Bfcnh0eF90aW1lX2RpZmZfcmx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4UG93ZXJGbGFnOjE7ICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2lGbGFnOjE7ICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoxNDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhQb3dlcjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSeFR4UmVzdWx0czsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3TWVhc0lkOyAgDQorICAgIFRfeldfUF9yeHR4X3RpbWVfZGlmZl9ybHQgICAgICAgYXRSeFR4VGltZURpZmZSbHRbWl9XX1BfTUFYX05PX09GX1JMXTsNCit9VF96V19QX3VlaW50ZXJuYWxfbWVhc19pbmQ7IA0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgIFJSQy0+UEhZDQorICAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICBSUkPP8lBIWbeiy821xLLiwb/JvrP91rjKviAgDQorICAgICAgICAgveG5uToNCisgICAgICAgICAgICAgICCy4sG/ys23xc/7z6IgV19QX01FQVNfUkVMX1JFUV9FVg0KKyAgICAgICAgICAgICAgIHdNZWFzVHlwZXOx4MLro7rP4NOmYml0zrvWwzGx7cq+ys23xbTLwODQzbLiwb+ju7fx1PKyu8rNt8UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0MDogU2VydkNlbGxNZWFzDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdDE6IEludHJhRnJlcQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXQyOiBJbnRlckZyZXENCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0M6O6VWVJbnRlck1lYXMNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWVhc1R5cGVzOyAgICAgICAgIA0KK31UX3pXX1BfbWVhc19yZWxfcmVxOw0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgUlJDLT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIEZhY2jMrM/CsuLBv8qxu/rF5NbDDQorICAgICAgICC94bm5OiAgICAgICAgDQorICAgICAgICAgICAgICAgIEZNT9DFz6LF5NbDIFdfUF9GTU9fSU5GT19SRVENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGTU9OZWVkOyAgICAgICAgICAgLyrWuMq+yse38cq508NGTU+hozCx7cq+yKHP+0ZNT6Ost8cw1rWx7cq+xeTWw0ZNTyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHRpUGVyaW9kOyAgICAgICAgIC8qPU1fUkVQLCBtZWFzdXJlbWVudCBvY2Nhc2lvbiBjeWNsZSBsZW5ndGggKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGlPZmZzZXQ7ICAgICAgICAgLyo9Q19ybnRpIFJOVEltb2QgTV9SRVAqLw0KK31UX3pXX1BfZm1vX3JlcTsNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFJSQy0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBEY2jMrM/C0bnL9cSjyr3Qxc+ixeTWww0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICDRucv1xKPKvdDFz6LF5NbDIFdfUF9DT01QUkVTU19NT0RFX1JFUQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgeyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NvbXByZXNzZWRNb2RlVXNhZ2U7ICAvKtPD09rJz9DQo6zPwtDQu7nKx8nPz8LQ0CovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxDb21wTW9kZU1ldGhvZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbENvbXBNb2RlTWV0aG9kOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJhbWVUeXBlOyAgICAgICAgICAgLyrWocDg0M1BIE9SIEIqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JwcDsgLyogUmVjb3ZlcnkgUGVyaW9kIFBvd2VyIGNvbnRyb2wgbW9kZSBkdXJpbmcgdGhlIGZyYW1lIGFmdGVyIHRoZSB0cmFuc21pc3Npb24gZ2FwIHdpdGhpbiB0aGUgY29tcHJlc3NlZCBmcmFtZSAgxKPKvTC7ucrHxKPKvTEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0l0cDsvKiBuaXRpYWwgVHJhbnNtaXQgUG93ZXIgaXMgdGhlIHVwbGluayBwb3dlciBjb250cm9sIG1ldGhvZCB0byBiZSB1c2VkIHRvIGNvbXB1dGUgdGhlIGluaXRpYWwgdHJhbnNtaXQgcG93ZXIgYWZ0ZXIgdGhlIGNvbXByZXNzZWQgbW9kZSBnYXDEo8q9MLu5ysfEo8q9MSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFTaXIxOy8qz8LQ0FNJUrX31fvWtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFTaXJBZnRlcjE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFTaXIyOyAgICAgICAgICAgIC8qUmVhbCgwLi4zIGJ5IHN0ZXAgb2YgMC4xKSzAqbTzMTCxtiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFTaXJBZnRlcjI7DQorfVRfeldfUF9zdGF0aWNfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdwc2k7ICAgICAgICAgICAgICAvKmdhcCBJRCAxLTYgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RpdmVGbGc7ICAgICAgICAgIC8qMT28pLvuo7swPcilu+4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lYXNQdXJwb3NlOyAgICAgICAgLyoxPdLsxrUgo6wyPVJBVCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdzbjsgICAgICAgICAgICAgICAvKsbwyrzKsc+2usUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RncHJjOyAgICAgICAgICAgICAgLyq0q8rkvOS49NbYuLS0zsr9LCAweEZGRkax7cq+zt7P3rTOyv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RnY2ZuOyAgICAgICAgICAgICAgLyq0q8rkvOS49MGsvdPWobrFo6zKx7Xa0rvEo8q9tcS12tK7uPbO3s/f1qG1xENGTiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdsMTsgICAgICAgICAgICAgICAvKrXa0ru49kdBULXEs6S2yKOsyrHPtsr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ2wyOyAgICAgICAgICAgICAgIC8qtdq2/rj2R0FQtcSzpLbIKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ3BsOyAgICAgICAgICAgICAgIC8qtKvK5LzkuPSzpLbIo6zWocr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ2Q7ICAgICAgICAgICAgICAgIC8qwb249kdBUMbwyry147XEvuDA66OsyrHPtsr9o6wweEZGRkax7cP3R2FwxKPQzdbQsru05tTatdq2/rj2R2FwKi8NCisgICAgVF96V19QX3N0YXRpY19pbmZvICAgICAgICAgdENtU3RhaWNJbmZvOw0KK31UX3pXX1BfY29tcHJlc3NfZ2FwX3BhdHRlcm47DQorDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NtUGF0dGVybk51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOyAgICAgICAgLyrIoda1t7bOpzAtMjU1o6wyNTajrMbk1tAyNTax7cq+waK8tLyku+4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NtQ2VsbEluZm9GbGc7IC8qyKHWtTC78jGjrLHtyr7Kx7fx0K+0+MHL0KHH+NDFz6J3RGxVYXJmY266zXdQcmltU3JjLiDIoda1Mcqxd0RsVWFyZmNuus13UHJpbVNyY9PQ0KejrLfx1PLO3tCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbFVhcmZjbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOw0KKyAgICBUX3pXX1BfY29tcHJlc3NfZ2FwX3BhdHRlcm4gICAgYXRDb3ByZXNzTW9kZVBhdHRlcm5bWl9XX1BfTUFYX0NNX05VTV07DQorfVRfeldfUF9jb21wcmVzc19tb2RlX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgTDFXLT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIEZERM6quKjEo8q9z8KjrMrVtb21xEdBUMXk1sNXX1BfSVJBVEdBUENPTkZJR19SRVENCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAgR0FQx+vH89DFz6IgV19QX0lSQVRHQVBDT05GSUdfUkVRDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgIHdJZGxlT3JDb25uZWN0RmxnOy8qRkREzqq4qNbGyr3Ksdb31sbKvbXE17TMrKOsyKHWtc6qMLHtyr6/1c/QzKzIoda1zqoxse3KvsGsvdPMrCovDQorICAgIFdPUkQgICAgICAgICAgICAgICB3U3RhcnRTZm47LypHQVDG8Mq8tePWobrFLMih1rW3ts6nIDAtLTQwOTYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgd1N0YXJ0T2ZmQ2hpcDsgIC8qR0FQxvDKvLXjLkNISVDGq9LGo6hjaGlwc6OpLNXm1f21xEdBUMbwyry148rHd1N0YXJ0U2ZuK3dTdGFydE9mZkNoaXAqLw0KKyAgICBEV09SRCAgICAgICAgICAgICBkd0xlbmd0aDsvKiBHQVDEo9DNs9bQ+MqxvOQstaXOu8rHo6hjaGlwc6OpKi8NCit9VF96V19QX2lyYXRfZ2FwX2NvbmZpZ19yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIEwxVzwtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgTDFXus1QSFmy47zktcRBQk9SVCBHQVDF5NbDvdO/2g0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICDH68fzzu/A7bLjzaPWucq508NHQVDP+8+iIFdfUF9BQk9SVF9JUkFUX0dBUF9SRVENCisgICAgICAgICAgICAgICAgzu/A7bLjsrvU2sq508NHQVC1xMi3yM8gV19QX0FCT1JUX0lSQVRfR0FQX0NORg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgeyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfYWJvcnRfaXJhdF9nYXBfcmVxOyAgDQorDQordHlwZWRlZiBzdHJ1Y3QgeyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfYWJvcnRfaXJhdF9nYXBfY25mOw0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgUEhZLT5MMVcNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIM7vwO2y48nPsahnYXDKsbzk0MXPog0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICDO78DtsuPJz7GoR0FQyrG85NDFz6LP+8+iIFdfUF9JTkFDVElWRV9USU1FX0lORA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdGFydFJ0RnJhbWU7ICAgLypHQVDG8Mq8tePWobrFLMih1rW3ts6nMC0yNTWjrNPJzu/A7bLjUlTKsbv6xKMyNTa1w7W9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N0YXJ0Q2hpcE9mZjsgICAgLypHQVDG8Mq8tePP4LbU09p3U3RhcnRDZm61xENISVDGq9LGKi8NCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0xlbmd0aENoaXA7ICAvKkdBULOktsgqLw0KKw0KK31UX3pXX1BfZ2FwX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0dhcE51bTsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcGFkZGluZzsNCisgICAgVF96V19QX2dhcF9pbmZvICAgICAgICAgICAgYXRHYXBJbmZvW1pfV19QX01BWF9GUkFNRV9HQVBfTlVNXTsgIA0KK31UX3pXX1BfaW5hY3RfdGltZV9pbmQ7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIEwxVy0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICDF5NbDTDHKx7fxyc+xqMbkZ2FwyrG85KOs08PAtL340NAyRy9MVEXQocf4tcS5pNf3DQorICAgICAgICC94bm5OiAgICAgICAgDQorICAgICAgICAgICAgICAgIMXk1sNMMcrHt/HJz7GoxuRnYXDKsbzkz/vPoiBXX1BfSURMRV9QRVJJT0RfUkVQTU9ERV9SRVENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXBvcnRpbmdNb2RlOyAgICAgICAgICAvKjA6IG5vdCByZXByb3QgZ2FwLCAxOnJlcG9ydCBnYXAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisNCit9VF96V19QX2lkbGVfcGVyaW9kX3JlcG1vZGVfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICogICAgICAgICAgICAgICAgICAgICAgICAgsuLBv8irvtbK/b7dwODQzbao0uUgLS0tLS0tLS1lbmQgICAgICAgICAgICAgICAgICAgICAgICAqDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorIA0KKyAgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgKiAgICAgICAgICAgICAgICAgICAgICAgICDK/b7dw+bIq77Wyv2+3cDg0M22qNLlIHN0YXJ0ICAgICAgICAgICAgICAgICAgICAqDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjulBfUkFDSF9QUk9DRURVUkVfUkVRX0VWKCBXTUFDLT5QSFkgKQ0KKyDLtcP3OiBNQUPPwreiy+a7+r3TyOvH68fzuPjO78DtsuMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTaWduYXR1cmVCaXRtYXA7ICAgICAgIC8qv8nTw8epw/tiaXRtYXAoMTbOuyksIEJJVDDWuMq+tdrSu7j2o6xCSVQxNda4yr7X7rrz0ru49qOs09Kx38rH1+61zc67Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTdWJjaGFubmVsQml0bWFwOyAgICAgIC8qv8nTw9fT0MW1wGJpdG1hcCgxMs67KSwgQklUMNa4yr612tK7uPajrEJJVDEx1rjKvtfuuvPSu7j2o6zT0rHfysfX7rXNzrsqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0xhc3RGbGFnOyAgICAgICAgICAgICAgLyrWuMq+TUFDtcRSQUNIvdPI67n9s8zW0LTLtM7Kx7fx0tHOqrXaTW1heLTOo6y8tNfuuvPSu7TOo6gwfjGjqSovDQorfVRfeldfUF9yYWNoX3Byb2NlZHVyZV9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6UF9SQUNIX1BST0NFRFVSRV9JTkRfRVYoIFBIWS0+V01BQyApDQorIMu1w/c6IM7vwO2y47vYuLTL5rv6vdPI67PJuaYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdSZXN1bHQ7ICAgICAgICAgICAgICAgIC8qUkFDSCBBQ0NFU1O94bn7o6gwfjKjqaO7MKO6QUNLo6wxo7pOQUNLo6wyo7pOTyBBQ0sqLw0KK31UX3pXX1BfcmFjaF9wcm9jZWR1cmVfaW5kOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjulBfUE9TVF9WRVJGWV9GQUlMX0lORF9FViggUEhZLT5XTUFDICkNCisgy7XD9zog1NrTssfQTDHNrLK9Qbn9s8zKsaOsyOe5+7LJ08NQb3N0dmVyZnmjrMfS1vfJz9DQxrXCysnPtcRwb3N0IHZlcmZ5yqew3Mqxzu/A7bLjyc+xqMqnsNzWuMq+DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfeldfUF9wb3N0X3ZlcmZ5X2ZhaWxfaW5kOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjulRfeldfUF91cGFfZ3JhbnRfaGFycV9pbmZvKCBQSFktPldNQUMgKQ0KKyDLtcP3OiDWodbQts/W0M7vwO2y49CvtPi1xMrayKi8sEhBUlHQxc+iDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3SGFycUlkOyAgICAgICAgICAgICAgICAvKrbU06a9+LPMSUSjqDB+N6OpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTdGF0dXM7ICAgICAgICAgICAgICAgIC8qttTTpr34s8xIQVJRt7TAob3hufujrDCjukFDS6OsIDGjuk5BQ0sgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTZXJ2Q2VsbFN0YXR1czsgICAgICAgIC8qt/7O8dChx/jJz9a4yr61xEhBUlG3tMChveG5+6OsMKO6QUNLo6wgMaO6TkFDSyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2hhcnFfcHJvY2Vzc19zdGF0dXM7DQorDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0N5Y2xlMkZsYWc7ICAgICAgICAgICAgLyq4w7HqyrbTw9PazajWqlBTyse38SC/qsq808lDeWNsZTG9+MjrQ3ljbGUyICCjujCjusO709C9+Mjro6wxo7rTyWN5Y2xlMb34yOtDeWNsZTIgLrjDseq8x9a709C1sc7vwO2y47TTY3ljbGUxvfjI62N5Y2xlMsqx1sPOu86qMaOszajWqlBTvfjI60N5Y2xlMqOsxuTL+0N5Y2xlMbywQ3ljbGUyxtq85LXEyc+xqLXEuMOx6rzHvvnOqjAuKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdBR0ZsYWc7ICAgICAgICAgICAgICAgIC8qyse38dCvtPhBR9DFz6KjqDB+MaOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdBR0luZGV4OyAgICAgICAgICAgICAgIC8qytrIqNa1y/fS/aOoMH4zMaOpo6y1sXdBR0ZsYWfOqjHKsdPQ0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0FHVHlwZUFuZFNjb3BlOyAgICAgICAgLypJRMDg0M26zbe2zqfQxc+io6gwfjKjqaO7MDpQcmltYXJ5IElEJlBlckhBUlEsIDE6UHJpbWFyeSBJRCZBbGxIQVJRLCAyOlNlY29uZGFyeSBJRKOstbF3QUdGbGFnzqoxyrHT0NCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1JHTnVtOyAgICAgICAgICAgICAgICAgLyrWuMq+t/7O8VJHus23x7f+zvFSR7XEuPbK/aOoMH40o6mjuyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd1JHVmFsdWVbWl9XX1BfTUFYX1JHX05VTV07ICAgIC8qUkfK/dfpo6gwfjOjqaOsMLHtyr7O3tCno6wxse3KviJVUCKjrDKx7cq+IkRPV04io6wzse3KviJIT0xEIqOsxuTW0LXa0ru49sSsyM/M7tC0t/7O8VJHtcTWtSovDQorfVRfeldfUF9oc3VwYV9ncmFudF9pbmZvOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxQml0bWFwOyAgICAgICAgICAgICAgLyrWuMq+yse38dCvtPhIQVJRvfizzNDFz6KjqGJpdG1hcKOpo7tCSVQwo6hMU0KjqaO6ttTTptb3xrW146OsQklUMbbU06a4qMa1teMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0dyYW50Qml0bWFwOyAgICAgICAgICAgICAvKta4yr7Kx7fx0K+0+MrayKjQxc+io6hiaXRtYXCjqaO7QklUMKOoTFNCo6mjurbU06bW98a1teOjrEJJVDG21NOmuKjGtbXjKi8NCisgICAgVF96V19QX2hhcnFfcHJvY2Vzc19zdGF0dXMgIHRIYXJxW1pfV19QX01BWF9VTF9GUkVRVUVOQ1lfTlVNXTsNCisgICAgVF96V19QX2hzdXBhX2dyYW50X2luZm8gICAgIHRHcmFudFtaX1dfUF9NQVhfVUxfRlJFUVVFTkNZX05VTV07DQorfVRfeldfUF91cGFfZ3JhbnRfaGFycV9pbmZvOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjulRfeldfUF9ncmFudF9tb25pdG9yX3JlcSggV01BQy0+UEhZICkNCisgy7XD9zog1rjKvrWxx7BUVEnKx7fxwvrX421vbml0b3LM9bz+LM7vwO2y47TTucy2qLu6tObE2rbByKENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxSWQ7ICAgICAgICAgICAgICAgIC8q1NiyqNDFz6KjrDCx7cq+tdrSu7j21NiyqKOsMbHtyr612rb+uPbU2LKoKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RNb25pdG9yOyAgICAgICAgICAgIC8q1rjKvsrHt/HC+tfjTW9uaXRvcsz1vP6jrDCjurK7wvrX46OsMaO6wvrX4yovDQorfVRfeldfUF9ncmFudF9tb25pdG9yX3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pQX0VGQUNIX05PX0RBVEFfUkVRX0VWKCBXTUFDLT5QSFkgKQ0KKyDLtcP3OiBFRkFDSM/CbWFjzt7K/b7dt6LLzcqxo6zNqNaqzu/A7bLjzt7K/b7do6zO78DtsuPG9FQzMjG2qMqxxvcNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfZWZhY2hfbm9fZGF0YV9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6V19QXyBNQUNfRFRYX0NZQ0xFX0lORk9fUkVRX0VWKCBXTUFDLT5QSFkgKQ0KKyDLtcP3OiBEQ0jMrE1BQ734yOtNQUNfRFRYuvPNqNaqzu/A7bLj1tzG2sSj0M2jrNLUsePO78DtsuPU2kVEQ0jK/b7dx7DX7rbgzOHHsNK71qG3okRQQ0NIIHByZWFtYmxlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdNYWNEdHhJbmZvRmxnOy8qyKHWtTC78jGjrMih1rXOqjHKsaOsse3Kvk1BQ19EVFhjeWNsZSDT0NCno6zIoda1zqowyrHO3tCno6y8tM3Ls/ZNQUNfRFRYKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3TWFjRHR4U3RhcnRDZm47LypNQUNfRFJYIGN5Y2xltcTG8Mq81qG6xSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01hY0R0eFN0YXJ0U3ViQ2ZuOy8qTUFDX0RSWCBjeWNsZbXExvDKvNfT1qG6xSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01hY0R0eEN5Y2xlOy8qTUFDX0RSWCBjeWNsZbXE1tzG2rOktsgqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96V19QX21hY19kdHhfY3ljbGVfaW5mbzsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pXX1BfVEZDSV9DTV9JTkZPX0lORF9FViggUEhZLT5XTUFDICkNCisgy7XD9zogw7+0zsnP0NBEUENI1tjF5NbDyrEszu/A7bLjsai45jfX6VRGQ1PW0Lj2VEZDSbXE1qez1sfpv/YgTnRyPVs4LDE0XcqxDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCit0eXBlZGVmIHN0cnVjdCB7DQorCVdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd1N1cEZsYWdbWl9XX1BfTUFYX1VMX1RGQ19OVU1dOyAvLyBaX1dfUF9NQVhfVUxfVEZDX05VTSA9IDY0LCDK/dfpz8Kx6rHtyr50ZmNpo6zUqsvYxNrI3bHtyr64w1RGQ0nKx7fx1qez1qOsMS3Wp7PWo6wwLbK71qez1qGjDQorfSBUX3pXX1BfdGZjaV9zdXBfSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfdGZjaV9zdXBfSW5mbyAgIGF0VGZjaVN1cEluZm9bWl9XX1BfTUFYX05UUl9OVU1dOy8vIE50ci04ttTTpsr91+nPwrHqDQorfSBUX3pXX1BfdGZjaV9jbV9JbmZvOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjulRfeldfUF91bF9kYXRhX2J1ZmZlciggV01BQy0+UEhZICkNCisgy7XD9zogyc/Q0Mr9vt2907/aKCC3x1VQQSApDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgIGR3VHJjaEJ1ZmZPZmY7ICAgICAgICAgIC8quPe0q8rk0MW1wMr9vt3U2sr91+nW0LbU06a1xMar0sajrNLUV09SRM6qtaXOu6OoMH41ODOjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGJOdW1BbmRUcmNoSWQ7ICAgICAgICAvKrSryuTQxbXAaWS6zbbU06a1xHRiv+m49sr9o6y43zjOu7bU06ZUcmNoIElko6y1zTjOu7bU06ZUYiBudW0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RiU2l6ZTsgICAgICAgICAgICAgICAgLypUQr/ptPPQoaOstaXOu2JpdCovDQorfVRfeldfUF91bF90cmNoX2hlYWRlcjsNCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxMZW5ndGg7ICAgICAgICAgICAvKsr9vt3X3Lmy1bzTw7XEV09SRMr9o6gwfjU4NKOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRyY2g7ICAgICAgICAgICAgIC8qtKvK5NDFtcC49sr9o6gxfjijqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsgICAgICAgICAgICAgICAgICAvKtGh1PG1xFRmY2mjqDB+NjOjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX3VsX3RyY2hfaGVhZGVyICAgICAgIGF0VWxUcmNoSGVhZGVyW1pfV19QX01BWF9VTF9UUkNIX05VTV07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd1VsRGF0YVtaX1dfUF9NQVhfTk9fT0ZfVUxfQllURVMvMl07DQorfVRfeldfUF91bF9kYXRhX2J1ZmZlcjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pUX3pXX1BfZGxfZGF0YV9idWZmZXIoIFBIWS0+V01BQyApDQorIMu1w/c6IM/C0NDK/b7dvdO/2iggt8dEUEEgKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICBkd1RyY2hCdWZmT2ZmOyAgICAgICAgICAvKrj3tKvK5NDFtcDK/b7d1NrK/dfp1tC21NOmtcTGq9LGo6zS1FdPUkTOqrWlzrujqDB+NTgzo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RyY2hJZDsgICAgICAgICAgICAgICAgLyq0q8rk0MW1wGlkIKOoMX44o6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RyY2hUeXBlOyAgICAgICAgICAgICAgLyq0q8rk0MW1wMDg0M2jqDB+NKOpLLz7uuq2qNLlKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdDZm5BbmRUYk51bTsgICAgICAgICAgIC8qyv2+3beiy83KsbXEQ2Zuus1UYr/puPbK/aOsuN84zrvOqlRiIG51baOstc04zrvOqkNmbiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuOyAgICAgICAgICAgICAgICAgICAvKsr9vt23osvNyrG1xM+1zbPWobrFo6gwfjQwOTWjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGJTaXplOyAgICAgICAgICAgICAgICAvKlRCv+m089Cho6y1pc67Yml0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgIA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICBkd0NyY0NoZWNrOyAgICAgICAgICAgICAvKkNSQ73hufsgYml0bWFwKi8NCit9VF96V19QX2RsX3RyY2hfaGVhZGVyOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbExlbmd0aDsgICAgICAgICAgIC8qyv2+3dfcubLVvNPDtcRXT1JEyv2jqDB+NTg0o6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJjaDsgICAgICAgICAgICAgLyq0q8rk0MW1wLj2yv2jqDF+OKOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpOyAgICAgICAgICAgICAgICAgIC8q0aHU8bXEVGZjaaOoMH4xMjejqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX2RsX3RyY2hfaGVhZGVyICAgICAgIGF0RGxUcmNoSGVhZGVyW1pfV19QX01BWF9ETF9UUkNIX05VTV07ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd0RsRGF0YVtaX1dfUF9NQVhfTk9fT0ZfRExfQllURVMvMl07DQorfVRfeldfUF9kbF9kYXRhX2J1ZmZlcjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pUX3pXX1BfaHN1cGFfYnVmZmVyKCBXTUFDLT5QSFkgKQ0KKyDLtcP3OiDJz9DQyv2+3b3Tv9ooIFVQQSApDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TDsgICAgICAgICAgICAgICAgICAgICAvKrHtyr7KudPDuMNFLVRGQ8v509C1xEUtRFBEQ0hzo6zIoda1t7bOpygxfjQpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdCZXRhRWM7ICAgICAgICAgICAgICAgIC8qyKHWtbe2zqc1fjIzOaGjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3QmV0YUVkWzRdOyAgICAgICAgICAgIC8qd0y49ta1o6zIoda1t7bOpzV+Mzc3Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTZjsgICAgICAgICAgICAgICAgICAgICAgICAgLyq12tK7zPVFLWRwZGNotcRTRi7Ioda1t7bOpzAtLTUxMiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19wX2V0ZmNfZ2Fpbl9mYWN0b3I7DQorDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0NmbjsgICAgICAgICAgICAgICAgICAgLyrBrL3T1qG6xTAtLTI1NSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U3ViRnJhbWVOdW07ICAgICAgICAgICAvKtfT1qG6xTAtLTQqLw0KK31UX3pXX1BfdXBhX3RyYW5zX2ZyYW1lX251bTsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TmVqOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05kYXRhSjsNCit9VF96V19QX2V0ZmNfcm1faW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcUlkOyAgICAgICAgICAgICAgICAvKta4yr61scewysfEx7j21NiyqLbU06a1xMnP0NDK/b7do6wwse3KvrXa0ru49tTYsqijrDGx7cq+tdq2/rj21NiyqCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RXJudGk7ICAgICAgICAgICAgICAgICAvKrTLyv2+3bD8ttTTprXERVJOVEkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0hhcnFJZDsgICAgICAgICAgICAgICAgLypIQVJRvfizzElEo6gwfjejqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RXRmY2k7ICAgICAgICAgICAgICAgICAvKtGh1PG1xEV0ZmNpo6gwfjEyN6OpKi8NCisgICAgVF96V19wX2V0ZmNfZ2Fpbl9mYWN0b3IgICAgIHRFdGZjR2FpbkZhY3RvcjsNCisgICAgVF96V19QX2V0ZmNfcm1faW5mbyAgICAgICAgIHRFdGZjUm1JbmZvOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RiU2l6ZTsgICAgICAgICAgICAgICAgLyq21NOmVEK/6bTz0KFiaXRzo6gxOH4yMjk5NaOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdSc247ICAgICAgICAgICAgICAgICAgIC8qVGK/6bbU06ZSU06jqDB+M6OpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdIYXBweUJpdDsgICAgICAgICAgICAgIC8qSGFwcHkgQml01rjKvqOoMH4xo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1NjaERhdGFGZzsgICAgICAgICAgICAgLyrWuMq+tbHHsMrHt/HKx7X3tsjK/b7do6gwfjGjqSovDQorICAgIFRfeldfUF91cGFfdHJhbnNfZnJhbWVfbnVtICB0VXBhVHJhbnNGcmFtZU51bTsNCisvLyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdIc3VwYURhdGFbWl9XX1BfTUFYX05PX09GX0hTVVBBX0JZVEVTLzJdOyAgLypVUEHK/b7dzbfQxc+it8XI67myz+1SQU2jrFVQQcr9vt3Qxc+i1rG907Dh1sHO78DtsuPTsrz+vNPL2cb3RS1VVFIgUkFNKi8NCit9VF96V19QX2hzdXBhX2J1ZmZlcjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pUX3pXX1BfaHNkcGFfYnVmZmVyKCBQSFktPldNQUMgKQ0KKyDLtcP3OiDPwtDQyv2+3b3Tv9ooIERQQSApDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGJTaXplOyAgICAgICAgICAgICAgICAvKlRiv+m089ChYml0o6gxMjB+Mjc5NTKjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RGF0YVR5cGU7ICAgICAgICAgICAgICAvKta4yr6908rVtcTK/b7dv+nA4NDNo6wwo7rG5Mv7ICAxo7pQQ0NIICAyo7pCQ0NIo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINTaRVBDSMysu/JFRkFDSMysyrnTw0JDQ0ggUk5USb3iwuvKsaOs1PK21NOmd0RhdGFUeXBlzO7QtEJDQ0ijuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg1NpFUENIzKyyu8q508NCQ0NIIFJOVEm94sLryrGjrLbU06Z3RGF0YVR5cGXM7tC0UENDSKO7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDG5Mv7x+m/9s/Cd0RhdGFUeXBlzO7QtMbky/sqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdIc2RwYURhdGFbWl9XX1BfTUFYX05PX09GX0hTRFBBX0JZVEVTLzJdOw0KK31UX3pXX1BfaHNkcGFfYnVmZmVyOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorz/vPoqO6UF9URkNfRVRGQ19QQVJBTV9JTkQoIFdQSFktPldNQUMgKQ0KK8u1w/c6IEwxvau8xsvjusO1xFRGQyBnYWluIGZhY3Rvcta1uPhNQUOjrNPD09pFVEZDz97Wxrn9s8zKudPDDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlRmY2nWtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3QWpOdW1lcmF0b3JMb3c7ICAgICAgICAgICAgICAgIC8qvMbL40Fqxr23vcv508O1xLfW19Mstc0zMs67Ki8NCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3QWpOdW1lcmF0b3JIaWdoOyAgICAgICAgICAgICAgIC8qvMbL40Fqxr23vcv508O1xLfW19MsuN8zMs67Ki8NCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3QWpEZW5vbWluYXRvckxvdzsgICAgICAgICAgICAgIC8qvMbL40Fqxr23vcv508O1xLfWxLgstc0zMs67Ki8NCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3QWpEZW5vbWluYXRvckhpZ2g7ICAgICAgICAgICAgIC8qvMbL40Fqxr23vcv508O1xLfWxLgsuN8zMs67Ki8NCit9VF96V19QX3RmY19nYWluX2ZhY3RvcjsvKnNpZ25hbGxlZEdhaW5GYWN0b3JzICYgY29tcHV0ZWRHYWluRmFjdG9ycyovDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3aU1hbnRpc3NhOyAgICAgICAgICAgICAgICAgICAgICAvKs6yyv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd2lFeHA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyq4usr9vNPGq9LGoaPWuMr9Ki8NCit9VF96V19QX3BjX2Zsb3RfZGF0YTsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUZmM7ICAgICAgICAgICAgICAgICAgICAgICAvKlRmYyDK/SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VWxEcGRjaE51bTsgICAgICAgICAgICAgICAgICAgICAvKtPrVF96V19QX3VsX2RwY2hfc2V0dXBfbW9kaWZ5X3JlcdbQ0MXUqndOdW1PZkRQRENIz+DNrCovICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorICAgIFRfeldfUF90ZmNfZ2Fpbl9mYWN0b3IgICAgICBhdFRmY1BhcmFtW1pfV19QX01BWF9VTF9URkNfTlVNXTsvKsv509BURkO1xEJldGFDLEJldGFEKi8NCisgICAgVF96V19QX3BjX2Zsb3RfZGF0YSAgICAgICAgIHRQTWF4Ow0KK31UX3pXX1BfdGZjX2V0ZmNfcGFyYW1faW5kOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorz/vPoqO6VF96V19QX3VsX3Bvd2VyX2luZm8oIFdQSFktPldNQUMgKQ0KK8u1w/c6ICAgVEZDuabCyr/Y1sYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNQb3dlckZsYWc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qyse38dCvtPh0ZmMgcG93ZXIgaW5mb6OoMH4xo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0NvbXByZXNzZWRGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd0V4Y2Vzc1Bvd2VyRmxhZ1taX1dfUF9NQVhfVUxfVEZDX05VTV07IC8qVEZDScrHt/GzrLn91+6087SryuS5psLKtcTWuMq+o6zK/dfpz8Kx6s6qVEZDSaO7yv3X6cTayN3Oqsj9uPbKsc+2tcSy4sG/veG5+6OoYml0bWFwo6mjrEJJVDCjqExTQqOpo7q12tK7uPbKsc+2suLBv73hufujrEJJVDGjurXatv649sqxz7ay4sG/veG5+6OsQklUMqO6tdrI/bj2yrHPtrLiwb+94bn7Ki8NCit9VF96V19QX3VsX3Bvd2VyX2luZm87DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCivP+8+io7pUX3pXX1BfdXBhX2V0ZmNfcmVzdHJpY3RfaW5mbyggV1BIWS0+V01BQyApDQory7XD9zogICBFVEZDz97Wxrn9s8zQxc+iDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TnBpbG90QzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q0bnL9dah1tCjrMO/uPbKsc+2yc9EUENDSLXEcGlsb3QgYml0yv3Bv6GjyKHWtbe2zqczfjhiaXQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05waWxvdE47ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKrfH0bnL9dah1tCjrMO/uPbKsc+2yc9EUENDSLXEcGlsb3QgYml0yv3Bv6GjyKHWtbe2zqczfjhiaXQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05TbG90QzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKtG5y/XEo8q91qHW0KOssru3osvNyv2+3bXEyrHPtsr9oaPIoda1t7bOpzF+MTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9kcGNoX2NvbXByZXNzZWRfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q29tcHJlc3NlZEZsZzsgICAgICAgICAgICAgICAgICAgICAgIC8qMC3O3tG5y/XEo8q90MXPoqOsMS205tTa0bnL9cSjyr3Qxc+iKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdCZWx0YUhzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypIc2RwY2NotcTU9tLm0vLX06Ost7bOpzB+MzgqMTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0VzdGltYXRlUGRwY2NoRmlsdGVyU2xvdE51bTsgICAgICAgICAvKsLLsqjKsc+2uPbK/SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX2RwY2hfY29tcHJlc3NlZF9pbmZvIHREcGNoQ29tcHJlc3NlZEluZm87ICAgICAgICAgICAgICAgICAgLyrRucv1xKPKvdDFz6IqLw0KKyAgICBUX3pXX1BfcGNfZmxvdF9kYXRhICAgICAgICAgd0VzdGltYXRlUGRwY2NoVGFyZ1taX1dfUF9NQVhfVUxfRlJFUVVFTkNZX05VTV07ICAgICAgICAgICAgICAgLypEUENDSMbAucC5psLKo6zK/dfpz8Kx6jCx7cq+1vfGtaOsyv3X6c/Cseoxse3KvrioxrWjrDJtc1RUScqxxsC5wDNzbG90c6OsMTBtc1RUScqxxsC5wDE1c2xvdHOho9PD1rjK/dDOyr2x7cq+oaPI57n7ysfRucv1xKPKvaOsuMO5psLKysfV28vjuvO1xLmmwsrWtaOsvLRQRFBDQ0gsdGFyZ2V0LGkgPSBQRFBDQ0gsZmlsdGVyZWQsaaHBIChOcGlsb3QsTi8gTnBpbG90LEMpKi8NCit9VF96V19QX3VwYV9ldGZjX3Jlc3RyaWN0X2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdQcmltRnJlcVRyYW5zRmxnOyAgICAgICAgICAgICAgICAgICAgICAvKtb3xrUscGMgcHJlYW1ibGXKx7fxv8m3osr9vt2jrLvy0bnL9cSjyr1nYXDKx7fxv8m3osr9vt2hozCjurK71MrQ7beiy83K/b7do6wxo7rUytDtt6LK/b7dKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3U2VjRnJlcVRyYW5zRmxnOyAgDQorICB9VF96V19QX3VwYV90cmFuc19pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnRyWyBaX1dfUF9NQVhfTlRSX05VTV07LypDTdTaTisyLS1OKznWodbQo6zDv9ah1tC1xNW808PKsc+2yv2jrHdOdHJbMF221NOmTisy1qEszu/A7bLj1NrK1bW9Q03F5NbDyrG8sMqxyc+xqKOs1q6687XEyc+xqML61+MgQ0ZOJTg9MCDJz7GooaPJz7GotcTM4cewwb/OqjIwTVMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdHJTdGFydENmbjsvKiDJz7GotcROdHJbMF3L+dTa1qHWobrFKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2NtX250cl9pbmZvOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIL3hubmjulRfeldfUF9kYXRhX2ZyYW1lX2luZm8oIFBIWS0+V01BQyApDQorIMu1w/c6INah1tC2z8r9vt3Qxc+iyc+xqA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VXBoOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4QWN0aXZlOyAgICAgICAgIC8qxeTWw8HLRHR4RHJ4uvOjrNa4yr5EdHjKx7fxvKS77rvyyKW77qO7MKO6zt7Qp6OsMaO61rjKvryku+6jrDKjuta4yr7IpbvuKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEFjdGl2ZTsgICAgICAgICAvKsXk1sPBy0R0eERyeLrzo6zWuMq+RHJ4yse38byku+678silu+6juzCjus7e0KejrDGjuta4yr68pLvuo6wyo7rWuMq+yKW77iovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDZWxsQWN0aXZlOyAgICAgLyrF5NbDtdq2/sa1teO686Os1rjKvrXatv7GtbXjyse38byku+6juzCjus7e0KejrDGjuta4yr68pLvuo6wyo7rWuMq+yKW77iovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSYWNoRGNoVHJhbnNGZzsgICAgICAgICAgICAgICAvKta4yr5SQUNILERDSLTL1qHKx7fxv8nS1Leiy83K/b7do6wwo7qyu9TK0O23osvNyv2+3aOsMaO61MrQ7beiyv2+3SovICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NtTnRySW5mb0ZsZzsNCisgICAgVF96V19QX2NtX250cl9pbmZvICAgICAgICAgICAgICAgICAgdENtTnRySW5mbzsNCisgICAgVF96V19QX3VwYV90cmFuc19pbmZvICAgICAgICAgICAgICB0VXBhVHJhbnNJbmZvOw0KKyAgICBUX3pXX1BfdXBhX2dyYW50X2hhcnFfaW5mbyAgICAgIHRHcmFudEhhcnFJbmZvOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3Q21QYXR0ZXJuOyAgICAgICAgICAgICAgICAgICAvKsnPsajRucv1xKPKvc280fmjrMO/uPbX09ahyc+xqNK7tM6jrMnPsai1xMrHM7j219PWodauuvO1xNa1Ki8NCisgICAgDQorICAgIFRfeldfUF91bF9wb3dlcl9pbmZvICAgICAgICAgICAgICAgdFVsUG93ZXJJbmZvOy8q1eu21ERQQ0gszu/A7bLjyc+xqLXEzOHHsMG/yscy1qEqLw0KKw0KKyAgICBUX3pXX1BfdXBhX2V0ZmNfcmVzdHJpY3RfaW5mbyAgICB0RXRmY1Jlc3RyaWN0SW5mbzsvKtXrttRVUEGjrM7vwO2y48nPsai1xMzhx7DBv8rHMrj219PWoSovDQorfVRfeldfUF9kYXRhX2ZyYW1lX2luZm87IA0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIEwxVy0+UEhZDQorICAgIMrCvP6juldfUF9aV1BDR19SRVFfRVYNCisgICAguabE3DoNCisgICAgICAgINDeuMQvsunRr1fO78DtsuPF5NbDss7K/aGjDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFdPUkQgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgIHdDbWQ7ICAgICAgLyogw/zB7rrFo6y21NOmsrvNrLXEzu/A7bLjuabE3CAqLw0KKyAgICBXT1JEICAgICAgIGF3VmFsRmdbWl9aV1BDR19WQUxGR19OVU1dOyAgIC8qILHtyr5hZHdWYWzKx7fxtObU2qOsMLHtyr6yu7Tm1NqjrDGx7cq+tObU2iAqLw0KKyAgICBEV09SRCAgICAgIGFkd1ZhbFtaX1pXUENHX1ZBTEZHX05VTV07ICAgIC8qILLOyv3B0LHto6zQ3rjEL7bByKG1xM7vwO2y47LOyv2jrLLOyv3KtbzKuqzS5dPJzu/A7bLjuPiz9iAqLw0KK31UX3pXX1BfWndwY2dfUmVxOyANCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPkwxVw0KKyAgICDKwrz+o7pXX1BfWldQQ0dfQ05GX0VWDQorICAgILmmxNw6DQorICAgICAgICDQ3rjEL7Lp0a9Xzu/A7bLjxeTWw7LOyv21xM/s06bP+8+ioaMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgd0NtZDsgICAgICAvKiDD/MHuusWjrLbU06ayu82stcTO78DtsuO5psTco6xiTW9kZT0wLzG2vNPQ0KcgKi8NCisgICAgV09SRCAgICAgICB3UnNsdDsgICAgIC8qILHtyr7J6NbDveG5+6OsWl9UUlVFyejWw7PJuaajrFpfRkFMU0XJ6NbDyqew3CAgd0NtZM6qyejWw8P8we7KsdPQ0KcgKi8NCisgICAgV09SRCAgICAgICBhd1ZhbEZnW1pfWldQQ0dfUEFSQU1fTlVNXTsgLyqwtNXVz8Kx6rrNZHdWYWzW0Na10rvSu7bU06ajrGJWYWwxRmdbMF2x7cq+ZHdWYWxbMF3Kx7fxtObU2izSwLTOwODNxqOsMLHtyr6yu7Tm1NqjrDGx7cq+tObU2iovDQorICAgIExPTkcgICAgICAgYWxWYWxbWl9aV1BDR19QQVJBTV9OVU1dOyAgIC8qss7K/TEvss7K/TKhraOs0N64xC+2wcihtcTO78DtsuOyzsr9o6yyzsr9yrW8yrqs0uXTyc7vwO2y47j4s/YqLw0KK31UX3pXX1BfWndwY2dfQ25mOw0KKw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIEwxVy0+UEhZDQorICAgIMrCvP6juldfUF9SUElfU0VUX1JFUV9FVg0KKyAgICC5psTcOg0KKyAgICAgICAgyejWw1dQSFnKudPDtcTX7rTzt6LJ5Lmmwsq1xFJQSSBWQVVMRQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBXT1JEICAgIHdNc2dJZDsNCisgICAgV09SRCAgICB3UnBpOyAvKiBQVU1BWLbU06a1xFJQSbW1zrujrLe2zqcwLzEvMiAqLw0KK31UX3pXX1BfcnBpX3NldF9yZXE7IA0KKw0KKw0KKyNkZWZpbmUgICBaX01BWF9SUElfTlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMw0KKyNkZWZpbmUgICBaX1dfUlBJX1NVUFBPUlRfTUFYX0JBTkQgICAgICAgICAgKEJZVEUpOA0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICB3QmFuZDsgICAgICAgIC8qILbU06a1xEJBTkS6xSAqLw0KKyAgICBXT1JEICAgIGJQdW1heFtaX01BWF9SUElfTlJdOyAgIC8qINLUcnBpzqppbmRleMi3yM/X7rTzt6LJ5LmmwspwdW1heCAqLw0KK31UX3pCYW5kUnBpQ2ZnOyANCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBMMVctPlBIWQ0KKyAgICDKwrz+o7pXX1BfUlBJX0NGR19SRVFfRVYNCisgICAguabE3DoNCisgICAgICAgIMXk1sNXz8I4uPZCQU5Eo6zDv7j2QkFORM/CUlBJus1QVU1BWLXE07PJ5LnYz7WjrMbk1tBSUEm3ts6nMH4yDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFdPUkQgICAgd01zZ0lkOw0KKyAgICBUX3pCYW5kUnBpQ2ZnICAgIHRXQmFuZFJwaUNmZ1taX1dfUlBJX1NVUFBPUlRfTUFYX0JBTkRdOw0KK31UX3pXX1BfcnBpX2NmZ19yZXE7DQorDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgKiAgICAgICAgICAgICAgICAgICAgICAgICDK/b7dw+bIq77Wyv2+3cDg0M22qNLlIGVuZCAgICAgICAgICAgICAgICAgICAqDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgIFBT0+tXUEhZILmyz+1ERFK1xDVNQiC/1bzkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZiAwDQorI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTUwKQ0KKyNkZWZpbmUgRERSX0JBU0VfQUREUl9GT1JfVyAgICAgICAgICAgIDB4NTgwMDAwMA0KKyNlbmRpZg0KKyNpZiBkZWZpbmVkIChfQ0hJUF9aWDI4MDQpDQorI2RlZmluZSBERFJfQkFTRV9BRERSX0ZPUl9XICAgICAgICAgICAweDE1ODAwMDAwDQorI2VuZGlmDQorDQorI2VuZGlmDQorLypQU9PrcGh5ubLP7UREUrj5vt3Stc7xx+m/9rfWs8k1uPa1yLy2Ki8NCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9ERFJfR1JBREVfTlVNICAgICAgICAgICAoNSkNCisjZGVmaW5lIFBTX01BQ19IRUFEX0lGTk9fU0laRSAgICAgICAgICAgICAgICAgICA2MjAvL2VjNjE2MDAwMjU4NDAxDQorDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTBfR1JBREVfQlVGX1NJWkUgICAgMC8vKDg2ICsgUFNfTUFDX0hFQURfSUZOT19TSVpFKQ0KKyNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEUxX0dSQURFX0JVRl9TSVpFICAgIDAvLygyMzggKyBQU19NQUNfSEVBRF9JRk5PX1NJWkUpDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTJfR1JBREVfQlVGX1NJWkUgICAgMC8vKDY4MiArIFBTX01BQ19IRUFEX0lGTk9fU0laRSkNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFM19HUkFERV9CVUZfU0laRSAgICAwLy8oMTk4MCArIFBTX01BQ19IRUFEX0lGTk9fU0laRSkNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFNF9HUkFERV9CVUZfU0laRSAgICAoNTI4MiArIFBTX01BQ19IRUFEX0lGTk9fU0laRSkNCisNCisNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFMF9HUkFERV9CVUZfTlVNICAgICAwLy81MDUNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFMV9HUkFERV9CVUZfTlVNICAgICAwLy81MDUNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFMl9HUkFERV9CVUZfTlVNICAgICAwLy80MDANCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFM19HUkFERV9CVUZfTlVNICAgICAwLy8zMDANCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFNF9HUkFERV9CVUZfTlVNICAgICAxMzEvLzIwMA0KKw0KKyNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEVfR1JBREVfQlVGX05VTV9BTEwgICAgKFBTX1dQSFlfRExfREFUQV9UWVBFMF9HUkFERV9CVUZfTlVNICsgUFNfV1BIWV9ETF9EQVRBX1RZUEUxX0dSQURFX0JVRl9OVU0gKyBQU19XUEhZX0RMX0RBVEFfVFlQRTJfR1JBREVfQlVGX05VTVwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtQU19XUEhZX0RMX0RBVEFfVFlQRTNfR1JBREVfQlVGX05VTSArIFBTX1dQSFlfRExfREFUQV9UWVBFNF9HUkFERV9CVUZfTlVNKS8vYWRkIGJ5IHNoaWRleW91IA0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICBQU9PrV1BIWSC5ss/tUkFNtcQ2MEsgv9W85FBTX1BIWV9CQVNFX0FERFIrMTQ0Sy0tLVBTX1BIWV9CQVNFX0FERFIrMjA4SyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWZkZWYgWl9TRU5EX1RPX1NJTVBIWQ0KKyNkZWZpbmUgICAgUFNfUEhZX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQvL7L6xrfP38zhuakNCisjZGVmaW5lICAgIFBTX1dQSFlfQkFTRV9BRERSICAgICAgICAgICAgICAgICAgICAoUFNfUEhZX0JBU0VfQUREUiArMjQwMDApDQorI2Vsc2UNCisjZGVmaW5lICAgIFBTX1dQSFlfQkFTRV9BRERSICAgICAgICAgICAgICAgICAgICBJUkFNX0JBU0VfQUREUl9GT1JfVw0KKyNlbmRpZg0KKw0KKyNpZiAwDQorI2RlZmluZSAgICBQU19XUEhZX0VWRU5UX0FERFIgICAgICAgICAgICAgICAgICAgUFNfV1BIWV9CQVNFX0FERFINCisNCisvKlBTILj4zu/A7bLjt6LLzc/7z6K1xMbwyry12Na3Ki8NCisjZGVmaW5lICAgIFBTX1RPX1dQSFlfRVZFTlRfQUREUiAgICAgICAgICAgICAgICBQU19XUEhZX0JBU0VfQUREUg0KKw0KKyNkZWZpbmUgICAgUFNfVE9fV1BIWV9FTkVOVF9CVUZfU0laRSAgICAgICAgICAgICgwWDYxQkMgPj4gQ1BVX1NISUZUKSAgICAgLy9hZGQgYnkgc2hpZGV5b3UgIC8qUFMtPldQSFkgIM/7z6Kyv7fW1bzTw7XEUkFNv9W85LTz0KEqLw0KKw0KKy8qzu/A7bLjuPhQU7eiy83P+8+itcTG8Mq8tdjWtyovDQorI2RlZmluZSAgICBXUEhZX1RPX1BTX0VWRU5UX0FERFIgICAgICAgICAgICAgICAgKFBTX1dQSFlfQkFTRV9BRERSICsgUFNfVE9fV1BIWV9FTkVOVF9CVUZfU0laRSkNCisNCisvKlBT0+tXUEhZICDP+8+isr+31tW808O1xFJBTb/VvOS089ChKi8NCisjZGVmaW5lICAgIFBTX1dQSFlfRU5FTlRfQlVGX1NJWkUgICAgICAgICAgICAgICAoMFg4MTEwID4+IENQVV9TSElGVCkNCisjZW5kaWYNCisNCisvKsr9vt2xo7ukx/i089ChKi8NCisjZGVmaW5lICAgIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUgICAgICAgICAgICAgICAoNCA+PiBDUFVfU0hJRlQpDQorDQorI2lmIDANCisvKsbVzajJz9DQyv2+3bXExvDKvLXY1rcqLw0KKyNkZWZpbmUgICAgUFNfV1BIWV9VTF9EQVRBX0FERFIgICAgICAgICAgICAgICAgIChQU19XUEhZX0VWRU5UX0FERFIgKyBQU19XUEhZX0VORU5UX0JVRl9TSVpFICtQU19XUEhZX1NBRkVHVUFSRF9TSVpFKQ0KKw0KKyNkZWZpbmUgICBQU19XUEhZX1VMX1JBQ0hfRFBDSF9BRERSICAgICAgICAgICAgIFBTX1dQSFlfVUxfREFUQV9BRERSDQorI2RlZmluZSAgIFBTX1dfVUxfUkFDSF9EUENIX0JVRl9TSVpFICAgICAgICAgICAgKDIqIHNpemVvZihUX3pXX1BfdWxfZGF0YV9idWZmZXIpKQ0KKyNlbmRpZg0KKy8qVVBBv9jWxtDFz6Kyv7fWxvDKvLXY1rcqLw0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRX05VTSAgICAgICAgIDggICAvL2FkZCBieSBzaGlkZXlvdSAsuvPD5sjnufvWp7PWTUlNT8qx0OjSqrjEs8kxNg0KKy8vI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0FERFIgICAgICAgICAgICAgKFBTX1dfVUxfUkFDSF9EUENIX0JVRl9TSVpFICsgUFNfV1BIWV9VTF9SQUNIX0RQQ0hfQUREUisgMiogUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkgIC8vbW9kaWZ5IGJ5IHNoaWRleW91LCAgYWRkIDQgYnl0ZSBmb3Igc2hhcmUgaGFycWlkDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0FERFIgICAgICAgICAgICAgKFBTX1dQSFlfQkFTRV9BRERSICsgMiogUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkgIC8vbW9kaWZ5IGJ5IHNoaWRleW91LCAgYWRkIDQgYnl0ZSBmb3Igc2hhcmUgaGFycWlkDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFICAgICAoc2l6ZW9mKFRfeldfUF9oc3VwYV9idWZmZXIpKQ0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICAgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19BRERSDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlExX0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKQ0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMl9BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArICgyKlBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkpDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEzX0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgKDMqUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKSkNCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTRfQUREUiAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEwX0FERFIgKyAoNCpQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpKQ0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRNV9BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArICg1KlBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkpDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlE2X0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgKDYqUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKSkNCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTdfQUREUiAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEwX0FERFIgKyAoNypQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpKQ0KKw0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19CVUZfU0laRSAgICAgICAgKDE2KiBQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpLyq/vMLHtb3Wp7PWTUlNT7XEx+m/9iovDQorDQorDQorLyrO78DtsuPTsrz+Vy1FVVRSsr+31lVQQbTmt8XK/b7dtdjWt6O6Ki8NCisjaWYgZGVmaW5lZCAoX0NISVBfWlgyODA0KQ0KKy8qMjgwNMa9zKijuiAweDUwNDAgMDAwMDsgd3BoeczhuakqLw0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICAgICAgICAgICAgICAgICAgICAgKDBYNDBCMDAwMDAgPj4gQ1BVX1NISUZUKQ0KKyNlbmRpZg0KKyNpZiBkZWZpbmVkKF9DSElQX1pYMjk3NTIwKSB8fCBkZWZpbmVkKF9DSElQX1pYMjk3NTIwVjIpICB8fCBkZWZpbmVkKF9DSElQX1pYMjk3NTIwVjFfMSkNCisvKjc1MjDGvcyoo7ogKi8NCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgICgwWEE0MDAwMDAwID4+IENQVV9TSElGVCkNCisjZW5kaWYNCisjaWYgZGVmaW5lZCAoX0NISVBfWlgyOTc1MjBWMykgDQorLyo3NTIwVjPGvcyoo7ogKi8NCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgIEREUl9CQVNFX0FERFJfV1VQQV9EQVRBLy8oMFgyNzU5QUMwMCA+PiBDUFVfU0hJRlQpDQorI2VuZGlmDQorI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTUwQSkNCisvKjc1NTBBxr3MqKO6MHhBMjgwIDAwMDA7Ki8NCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgICgwWEEyODAwMDAwID4+IENQVV9TSElGVCkNCisjZW5kaWYNCisjaWYgZGVmaW5lZCAoX0NISVBfWlgyOTc1MjBWMykgDQorLyo3NTIwVjPGvcyoo7ogVVBByv2+3dTaRERSyc8qLw0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgICAgICAgICAgICAgICAgMA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSAgICAgICAgICAgKCgwWDE2OCo0KSA+PiBDUFVfU0hJRlQpDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSAgICAgICAgICAoKDBYMmQwKjQpID4+IENQVV9TSElGVCkNCisjZWxzZQ0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgICAgICAgICAgICAgICAgKDBYYjAwMCo0KQ0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSAgICAgICAgICAgKDBYMTY4KjQpDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSAgICAgICAgICAoMFgyZDAqNCkNCisjZW5kaWYNCisNCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTBfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlEyX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDIqV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTNfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgMypXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRNF9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyA0KldQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlE1X0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDUqV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTZfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgNipXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRN19CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyA3KldQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQorDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMF9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlExX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTFfQlVGX1NJWkUpIA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTJfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgMipXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlExX0JVRl9TSVpFKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlEzX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDMqV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSkgDQorDQorDQorLyrWodbQts/Qxc+isPzAqMr9vt2yv7fWo6zS1Lyw1qG6xaOsUFPT687vwO2y47myz+21xMbky/vQxc+iyOdEUlggR1JBTlQgUkVR0MXPoiovDQorI2RlZmluZSAgUFNfV1BIWV9GUkFNRV9EQVRBX0lORk9fQUREUiAgICAgICAgICAgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19BRERSICArIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19CVUZfU0laRSArIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUpDQorI2RlZmluZSAgUFNfV1BIWV9GUkFNRV9EQVRBX0JVRl9TSVpFICAgICAgICAgICAgICAgICAoc2l6ZW9mKFRfeldfUF9kYXRhX2ZyYW1lX2luZm8pKQ0KKw0KKw0KKy8q1qG6xc/gudjQxc+iKi8NCisjZGVmaW5lIFBTX1dQSFlfQ0ZOX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQU19XUEhZX0ZSQU1FX0RBVEFfQlVGX1NJWkUgKyBQU19XUEhZX0ZSQU1FX0RBVEFfSU5GT19BRERSICsgUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkNCisjZGVmaW5lIFBTX1dQSFlfU1VCRlJBTUVfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDQ+PkNQVV9TSElGVCkgKyBQU19XUEhZX0NGTl9BRERSKQ0KKyNkZWZpbmUgUFNfV1BIWV9TRk5fQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg0Pj5DUFVfU0hJRlQpICsgUFNfV1BIWV9TVUJGUkFNRV9BRERSKQ0KKyNkZWZpbmUgUFNfV1BIWV9SVFNGTl9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfU0ZOX0FERFIpDQorI2RlZmluZSBQU19XUEhZX1JUQ0ZOX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg0Pj5DUFVfU0hJRlQpICsgUFNfV1BIWV9SVFNGTl9BRERSKS8qzu/A7bLjw7+49tah1tC2z8nPsai1xFJUIM/gudhDRk6jrMih1rW3ts6nMC0yNTUu08nO78DtsuNSVMqxu/rEozI1NrXDtb0qLw0KKw0KKy8q08PT2sr9vt23osvNv9jWxrXEVHJhbnNGbGcuzu/A7bLj0LQsUFO2wSovDQorI2RlZmluZSBQU19XUEhZX1RSQU5TRkxHX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg0Pj5DUFVfU0hJRlQpICsgUFNfV1BIWV9SVENGTl9BRERSKQ0KKw0KKy8q08PT2kRSWL/Y1sa1xEdSQU5UIE1PTklUT1IgUkVRLlBT0LTO78DtsuPWoc23tsEqLw0KKyNkZWZpbmUgUFNfV1BIWV9HUkFOVF9NT05JVE9SX1JFUV9BRERSICAgICAgICAoKDQ+PkNQVV9TSElGVCkgKyBQU19XUEhZX1RSQU5TRkxHX0FERFIgKyBQU19XUEhZX1NBRkVHVUFSRF9TSVpFKQ0KKyNkZWZpbmUgUFNfV1BIWV9HUkFOVF9NT05JVE9SX1JFUV9CVUZfU0laRSAgKHNpemVvZiggVF96V19QX2dyYW50X21vbml0b3JfcmVxKSkNCisNCisNCisvKsf9tq/OrLukubLP7UREUrXEUklORyBCVUa208HQ0MXPoqO61bzTw0JVRrrNv9XP0EJVRiBhZGQgYnkgc2hpZGV5b3UqLw0KKw0KKy8qSVJBTSBETCBmcmVlIGJ1ZiBhZGRyICBhZGQgYnkgc2hpZGV5b3UqLw0KKyNkZWZpbmUgUFNfV1BIWV9GUkVFX0JVRl9BRERSICAgIChQU19XUEhZX0dSQU5UX01PTklUT1JfUkVRX0FERFIgKyBQU19XUEhZX0dSQU5UX01PTklUT1JfUkVRX0JVRl9TSVpFKQ0KKyNkZWZpbmUgUFNfV1BIWV9GUkVFX0JVRl9TSVpFICAgICgoMio0KlBTX1dQSFlfRExfREFUQV9ERFJfR1JBREVfTlVNICsgIDQqKFBTX1dQSFlfRExfREFUQV9UWVBFX0dSQURFX0JVRl9OVU1fQUxMICsgUFNfV1BIWV9ETF9EQVRBX0REUl9HUkFERV9OVU0pKT4+Q1BVX1NISUZUKQ0KKw0KKyNpZiAwDQorLypJUkFNIERMIHNlbmQgYnVmIGFkZHIgIGFkZCBieSBzaGlkZXlvdSovDQorI2RlZmluZSBQU19XUEhZX1NFTkRfQlVGX05VTSAgICAxNSAgICAgIA0KKyNkZWZpbmUgUFNfV1BIWV9TRU5EX0JVRl9BRERSICAgIChQU19XUEhZX0ZSRUVfQlVGX0FERFIgKyBQU19XUEhZX0ZSRUVfQlVGX1NJWkUpDQorI2RlZmluZSBQU19XUEhZX1NFTkRfQlVGX1NJWkUgICAgKCgyKjQgKyA0ICogKFBTX1dQSFlfU0VORF9CVUZfTlVNICsgMSkpPj5DUFVfU0hJRlQpDQorI2VuZGlmDQorDQorLypIRk4gYWRkcmVzcyAgYWRkIGJ5IHNoaWRleW91Lm91dHB1dGVkIGJ5IHdwaHkgYW5kIHVzZWQgZm9yIFRNVCAqLw0KKyNkZWZpbmUgV1BIWV9IRk5fQUREUkVTUyAgKFBTX1dQSFlfRlJFRV9CVUZfQUREUiArIFBTX1dQSFlfRlJFRV9CVUZfU0laRSkNCisjZGVmaW5lIFdQSFlfSEZOX1NJWkUgICAgICAgICAoMHg0ID4+Q1BVX1NISUZUKQ0KKyNlbmRpZiAgICAgICAgLy8gWl9QU19XUEhZX0lOVEVSRkFDRV9IDQorDQorDQorDQo=