Ly9NaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIEMrKyBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NyaXB0Lg0KLy8NCiNpbmNsdWRlICJyZXNvdXJjZS5oIg0KDQojZGVmaW5lIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQovLw0KLy8gR2VuZXJhdGVkIGZyb20gdGhlIFRFWFRJTkNMVURFIDIgcmVzb3VyY2UuDQovLw0KI2luY2x1ZGUgImFmeHJlcy5oIg0KI2luY2x1ZGUgIm5ld3Jlcy5oIg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KI3VuZGVmIEFQU1RVRElPX1JFQURPTkxZX1NZTUJPTFMNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vIEVuZ2xpc2ggKFUuUy4pIHJlc291cmNlcw0KDQojaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpDQojaWZkZWYgX1dJTjMyDQpMQU5HVUFHRSBMQU5HX0VOR0xJU0gsIFNVQkxBTkdfRU5HTElTSF9VUw0KI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikNCiNlbmRpZiAvL19XSU4zMg0KDQojaWZkZWYgQVBTVFVESU9fSU5WT0tFRA0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBURVhUSU5DTFVERQ0KLy8NCg0KMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgInJlc291cmNlLmhcMCINCkVORA0KDQoyIFRFWFRJTkNMVURFIERJU0NBUkRBQkxFIA0KQkVHSU4NCiAgICAiI2luY2x1ZGUgIiJhZnhyZXMuaCIiXHJcbiINCiAgICAiI2luY2x1ZGUgIiJuZXdyZXMuaCIiXHJcbiINCiAgICAiXDAiDQpFTkQNCg0KMyBURVhUSU5DTFVERSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgIiNkZWZpbmUgX0FGWF9OT19TUExJVFRFUl9SRVNPVVJDRVNcclxuIg0KICAgICIjZGVmaW5lIF9BRlhfTk9fT0xFX1JFU09VUkNFU1xyXG4iDQogICAgIiNkZWZpbmUgX0FGWF9OT19UUkFDS0VSX1JFU09VUkNFU1xyXG4iDQogICAgIiNkZWZpbmUgX0FGWF9OT19QUk9QRVJUWV9SRVNPVVJDRVNcclxuIg0KICAgICJcclxuIg0KICAgICIjaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpXHJcbiINCiAgICAiI2lmZGVmIF9XSU4zMlxyXG4iDQogICAgIkxBTkdVQUdFIDksIDFcclxuIg0KICAgICIjcHJhZ21hIGNvZGVfcGFnZSgxMjUyKVxyXG4iDQogICAgIiNlbmRpZiAvL19XSU4zMlxyXG4iDQogICAgIiNpbmNsdWRlICIicmVzXFxQb2NrZXRQSi5yYzIiIiAgLy8gbm9uLU1pY3Jvc29mdCBlTWJlZGRlZCBWaXN1YWwgQysrIGVkaXRlZCByZXNvdXJjZXNcclxuIg0KICAgICIjaW5jbHVkZSAiImFmeHJlcy5yYyIiICAgICAgICAgLy8gU3RhbmRhcmQgY29tcG9uZW50c1xyXG4iDQogICAgIiNpbmNsdWRlICIid2NlcmVzLnJjIiIgICAgICAgICAvLyBXQ0Utc3BlY2lmaWMgY29tcG9uZW50c1xyXG4iDQogICAgIiNlbmRpZlxyXG4iDQogICAgIlwwIg0KRU5EDQoNCiNlbmRpZiAgICAvLyBBUFNUVURJT19JTlZPS0VEDQoNCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBJY29uDQovLw0KDQovLyBJY29uIHdpdGggbG93ZXN0IElEIHZhbHVlIHBsYWNlZCBmaXJzdCB0byBlbnN1cmUgYXBwbGljYXRpb24gaWNvbg0KLy8gcmVtYWlucyBjb25zaXN0ZW50IG9uIGFsbCBzeXN0ZW1zLg0KSURSX01BSU5GUkFNRSAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc1xcUG9ja2V0UEouaWNvIg0KSURJX09OTElORSAgICAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc1xcb25saW5lLmljbyINCklESV9PRkZMSU5FICAgICAgICAgICAgIElDT04gICAgRElTQ0FSREFCTEUgICAgICJyZXNcXG9mZmxpbmUuaWNvIg0KSURJX0lOVklTSUJMRSAgICAgICAgICAgSUNPTiAgICBESVNDQVJEQUJMRSAgICAgInJlc1xcaW52aXNpYmwuaWNvIg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy8NCi8vIERpYWxvZw0KLy8NCg0KSUREX1BPQ0tFVFBKX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDEzOSwgMTUxDQpTVFlMRSBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9ODQpFWFNUWUxFIFdTX0VYX0FQUFdJTkRPVyB8IDB4ODAwMDAwMDBMDQpDQVBUSU9OICJQb2NrZXRQSiINCkZPTlQgOCwgIlN5c3RlbSINCkJFR0lODQogICAgTFRFWFQgICAgICAgICAgICJzaXA6dXNlckBwanNpcC5sYWIiLElEQ19BQ0NfSUQsMjIsNSwxMTUsOA0KICAgIENPTlRST0wgICAgICAgICAxMzUsSURDX0JUTl9BQ0MsIlN0YXRpYyIsU1NfQklUTUFQIHwgU1NfTk9USUZZIHwgDQogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywzLDEyLDExDQogICAgQ09OVFJPTCAgICAgICAgICJMaXN0MSIsSURDX0JVRERZX0xJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19TTUFMTElDT04gfCANCiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IExWU19TT1JUQVNDRU5ESU5HIHwgV1NfQk9SREVSIHwgDQogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywzNSwxMjcsMTA5DQogICAgTFRFWFQgICAgICAgICAgICJVUkw6IixJRENfU1RBVElDLDcsMTksMTYsOA0KICAgIEVESVRURVhUICAgICAgICBJRENfVVJMLDI1LDE2LDk3LDEyLEVTX0FVVE9IU0NST0xMDQogICAgQ09OVFJPTCAgICAgICAgIDEzOCxJRENfQlROX0FDVElPTiwiU3RhdGljIixTU19CSVRNQVAgfCBTU19OT1RJRlkgfCANCiAgICAgICAgICAgICAgICAgICAgV1NfQk9SREVSLDEyNSwxNiwxMiwxMQ0KRU5EDQoNCklERF9TRVRUSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMTQwLCAxMjcNClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VDQpDQVBUSU9OICJQb2NrZXRQSiBTZXR0aW5ncy4uIg0KRk9OVCA4LCAiU3lzdGVtIg0KQkVHSU4NCiAgICBMVEVYVCAgICAgICAgICAgIkRvbWFpbjoiLElEQ19TVEFUSUMsNyw4LDMwLDkNCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RPTUFJTiwzOCw3LDc4LDEyLEVTX0FVVE9IU0NST0xMDQogICAgRURJVFRFWFQgICAgICAgIElEQ19VU0VSLDM4LDIxLDc4LDEyLEVTX0FVVE9IU0NST0xMDQogICAgRURJVFRFWFQgICAgICAgIElEQ19QQVNTV0QsMzgsMzUsNzgsMTIsRVNfUEFTU1dPUkQgfCBFU19BVVRPSFNDUk9MTA0KICAgIExURVhUICAgICAgICAgICAiVXNlcjoiLElEQ19TVEFUSUMsNywyMiwzMCw5DQogICAgTFRFWFQgICAgICAgICAgICJQYXNzd2Q6IixJRENfU1RBVElDLDcsMzYsMzAsOQ0KICAgIENPTlRST0wgICAgICAgICAiU1RVTiBTcnY6IixJRENfU1RVTiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCANCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDY1LDQ3LDEwDQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVFVOX1NSViw1Niw2NCw3NywxMixFU19BVVRPSFNDUk9MTA0KICAgIENPTlRST0wgICAgICAgICAiSUNFIixJRENfSUNFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw3OSwNCiAgICAgICAgICAgICAgICAgICAgMjcsMTANCiAgICBDT05UUk9MICAgICAgICAgIlNSVFAiLElEQ19TUlRQLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNDcsDQogICAgICAgICAgICAgICAgICAgIDc5LDMzLDEwDQogICAgQ09OVFJPTCAgICAgICAgICJQVUJMSVNIIixJRENfUFVCTElTSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCANCiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw4NSw3OSw0MywxMA0KICAgIEVESVRURVhUICAgICAgICBJRENfRE5TLDM4LDQ5LDc4LDEyLEVTX0FVVE9IU0NST0xMDQogICAgTFRFWFQgICAgICAgICAgICJETlM6IixJRENfU1RBVElDLDgsNTAsMzAsOQ0KICAgIFBVU0hCVVRUT04gICAgICAiT0siLElET0ssMTcsMTA2LDUwLDE0DQogICAgUFVTSEJVVFRPTiAgICAgICJDYW5jZWwiLElEQ0FOQ0VMLDczLDEwNiw1MCwxNA0KICAgIENPTlRST0wgICAgICAgICAiU3VwcHJlc3MgZWNobywgdGFpbDoiLElEQ19FQ0hPX1NVUFBSRVNTLCJCdXR0b24iLA0KICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsOTIsNzksMTANCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VDX1RBSUwsODksOTEsMzMsMTIsRVNfQVVUT0hTQ1JPTEwNCkVORA0KDQoNCiNpZm5kZWYgX01BQw0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBWZXJzaW9uDQovLw0KDQpWU19WRVJTSU9OX0lORk8gVkVSU0lPTklORk8NCiBGSUxFVkVSU0lPTiAxLDAsMCwxDQogUFJPRFVDVFZFUlNJT04gMSwwLDAsMQ0KIEZJTEVGTEFHU01BU0sgMHgzZkwNCiNpZmRlZiBfREVCVUcNCiBGSUxFRkxBR1MgMHgxTA0KI2Vsc2UNCiBGSUxFRkxBR1MgMHgwTA0KI2VuZGlmDQogRklMRU9TIDB4NEwNCiBGSUxFVFlQRSAweDFMDQogRklMRVNVQlRZUEUgMHgwTA0KQkVHSU4NCiAgICBCTE9DSyAiU3RyaW5nRmlsZUluZm8iDQogICAgQkVHSU4NCiAgICAgICAgQkxPQ0sgIjA0MDkwNEIwIg0KICAgICAgICBCRUdJTg0KICAgICAgICAgICAgVkFMVUUgIkNvbXBhbnlOYW1lIiwgIkhQXDAiDQogICAgICAgICAgICBWQUxVRSAiRmlsZURlc2NyaXB0aW9uIiwgIlBvY2tldFBKIFdDRSBNRkMgQXBwbGljYXRpb25cMCINCiAgICAgICAgICAgIFZBTFVFICJGaWxlVmVyc2lvbiIsICIxLCAwLCAwLCAxXDAiDQogICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwgIlBvY2tldFBKXDAiDQogICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiQ29weXJpZ2h0IKkgMjAwOFwwIg0KICAgICAgICAgICAgVkFMVUUgIkxlZ2FsVHJhZGVtYXJrcyIsICJcMCINCiAgICAgICAgICAgIFZBTFVFICJPcmlnaW5hbEZpbGVuYW1lIiwgIlBvY2tldFBKLmV4ZVwwIg0KICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3ROYW1lIiwgIlBvY2tldFBKIEFwcGxpY2F0aW9uXDAiDQogICAgICAgICAgICBWQUxVRSAiUHJvZHVjdFZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIg0KICAgICAgICBFTkQNCiAgICBFTkQNCiAgICBCTE9DSyAiVmFyRmlsZUluZm8iDQogICAgQkVHSU4NCiAgICAgICAgVkFMVUUgIlRyYW5zbGF0aW9uIiwgMHg0MDksIDEyMDANCiAgICBFTkQNCkVORA0KDQojZW5kaWYgICAgLy8gIV9NQUMNCg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy8NCi8vIERFU0lHTklORk8NCi8vDQoNCiNpZmRlZiBBUFNUVURJT19JTlZPS0VEDQpHVUlERUxJTkVTIERFU0lHTklORk8gRElTQ0FSREFCTEUgDQpCRUdJTg0KICAgIElERF9QT0NLRVRQSl9ESUFMT0csIERJQUxPRw0KICAgIEJFR0lODQogICAgICAgIExFRlRNQVJHSU4sIDcNCiAgICAgICAgUklHSFRNQVJHSU4sIDEzNw0KICAgICAgICBUT1BNQVJHSU4sIDcNCiAgICAgICAgQk9UVE9NTUFSR0lOLCAxNDQNCiAgICAgICAgSE9SWkdVSURFLCAyOA0KICAgIEVORA0KDQogICAgSUREX1NFVFRJTkcsIERJQUxPRw0KICAgIEJFR0lODQogICAgICAgIExFRlRNQVJHSU4sIDcNCiAgICAgICAgUklHSFRNQVJHSU4sIDEzMw0KICAgICAgICBUT1BNQVJHSU4sIDcNCiAgICAgICAgQk9UVE9NTUFSR0lOLCAxMjANCiAgICBFTkQNCkVORA0KI2VuZGlmICAgIC8vIEFQU1RVRElPX0lOVk9LRUQNCg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy8NCi8vIEJpdG1hcA0KLy8NCg0KSURCX09OTElORSAgICAgICAgICAgICAgQklUTUFQICBESVNDQVJEQUJMRSAgICAgInJlc1xcb25saW5lLmJtcCINCklEQl9PRkZMSU5FICAgICAgICAgICAgIEJJVE1BUCAgRElTQ0FSREFCTEUgICAgICJyZXNcXG9mZmxpbmUuYm1wIg0KSURCX0lOVklTSUJMRSAgICAgICAgICAgQklUTUFQICBESVNDQVJEQUJMRSAgICAgInJlc1xcaW52aXNpYmwuYm1wIg0KSURCX0FDVElPTiAgICAgICAgICAgICAgQklUTUFQICBESVNDQVJEQUJMRSAgICAgInJlc1xcYWN0aW9uLmJtcCINCklEQl9CTEFOSyAgICAgICAgICAgICAgIEJJVE1BUCAgRElTQ0FSREFCTEUgICAgICJyZXNcXGJsYW5rLmJtcCINCg0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCi8vDQovLyBNZW51YmFyDQovLw0KDQpJRFJfQUNDX01FTlUgTUVOVSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgUE9QVVAgIlNldCBPbmxpbmUgU3RhdHVzOiINCiAgICBCRUdJTg0KICAgICAgICBNRU5VSVRFTSAiJk9ubGluZSIsICAgICAgICAgICAgICAgICAgICAgSURDX0FDQ19PTkxJTkUNCiAgICAgICAgTUVOVUlURU0gIiZJbnZpc2libGUiLCAgICAgICAgICAgICAgICAgIElEQ19BQ0NfSU5WSVNJQkxFDQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUg0KICAgICAgICBNRU5VSVRFTSAiJlNldHRpbmdzLi4uIiwgICAgICAgICAgICAgICAgSURDX0FDQ19TRVRUSU5HUw0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1INCiAgICAgICAgTUVOVUlURU0gIkUmeGl0IiwgICAgICAgICAgICAgICAgICAgICAgIElET0sNCiAgICBFTkQNCkVORA0KDQpJRFJfVVJJX01FTlUgTUVOVSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgUE9QVVAgIlVSSSBBY3Rpb24iDQogICAgQkVHSU4NCiAgICAgICAgTUVOVUlURU0gIiZDYWxsLi4uIiwgICAgICAgICAgICAgICAgICAgIElEQ19VUklfQ0FMTA0KICAgICAgICBNRU5VSVRFTSAiQWRkIHRvIEJ1ZGR5IExpc3QiLCAgICAgICAgICAgSURDX1VSSV9BRERfQlVERFkNCiAgICAgICAgTUVOVUlURU0gIiZEZWwgQnVkZHkiLCAgICAgICAgICAgICAgICAgIElEQ19VUklfREVMX0JVRERZDQogICAgRU5EDQpFTkQNCg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KLy8NCi8vIERhdGENCi8vDQoNCklEUl9BQ0NfTUVOVSBTSE1FTlVCQVIgRElTQ0FSREFCTEUgDQpCRUdJTg0KICAgIElEUl9BQ0NfTUVOVSwgMSwNCiAgICBJX0lNQUdFTk9ORSwgSURDX01FTlUxLCBUQlNUQVRFX0VOQUJMRUQsIA0KICAgIFRCU1RZTEVfRFJPUERPV04gfCBUQlNUWUxFX0FVVE9TSVpFLCBJRFNfQ0FQX01FTlVJVEVNMzI3ODYsIDAsIDAsDQpFTkQNCg0KSURSX1VSSV9NRU5VIFNITUVOVUJBUiBESVNDQVJEQUJMRSANCkJFR0lODQogICAgSURSX1VSSV9NRU5VLCAxLA0KICAgIElfSU1BR0VOT05FLCBJRENfTUVOVTIsIFRCU1RBVEVfRU5BQkxFRCwgDQogICAgVEJTVFlMRV9EUk9QRE9XTiB8IFRCU1RZTEVfQVVUT1NJWkUsIElEU19DQVBfTUVOVUlURU0zMjc5MCwgMCwgMCwNCkVORA0KDQoNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQovLw0KLy8gU3RyaW5nIFRhYmxlDQovLw0KDQpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRSANCkJFR0lODQogICAgSURTX0NBUF9PTkxJTkUgICAgICAgICAgIk9ubGluZSINCiAgICBJRFNfQ0FQX09GRkxJTkUgICAgICAgICAiT2ZmbGluZSINCiAgICBJRFNfQ0FQX0lOVklTSUJMRSAgICAgICAiSW52aXNpYmxlIg0KRU5EDQoNClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIA0KQkVHSU4NCiAgICBJRFNfQ0FQX01FTlVJVEVNMzI3ODYgICAiU2V0IE9ubGluZSBTdGF0dXM6Ig0KICAgIElEU19DQVBfTUVOVUlURU0zMjc5MCAgICJVUkkgQWN0aW9uIg0KRU5EDQoNCiNlbmRpZiAgICAvLyBFbmdsaXNoIChVLlMuKSByZXNvdXJjZXMNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQoNCg0KDQojaWZuZGVmIEFQU1RVRElPX0lOVk9LRUQNCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vDQovLw0KLy8gR2VuZXJhdGVkIGZyb20gdGhlIFRFWFRJTkNMVURFIDMgcmVzb3VyY2UuDQovLw0KI2RlZmluZSBfQUZYX05PX1NQTElUVEVSX1JFU09VUkNFUw0KI2RlZmluZSBfQUZYX05PX09MRV9SRVNPVVJDRVMNCiNkZWZpbmUgX0FGWF9OT19UUkFDS0VSX1JFU09VUkNFUw0KI2RlZmluZSBfQUZYX05PX1BST1BFUlRZX1JFU09VUkNFUw0KDQojaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpDQojaWZkZWYgX1dJTjMyDQpMQU5HVUFHRSA5LCAxDQojcHJhZ21hIGNvZGVfcGFnZSgxMjUyKQ0KI2VuZGlmIC8vX1dJTjMyDQojaW5jbHVkZSAicmVzXFBvY2tldFBKLnJjMiIgIC8vIG5vbi1NaWNyb3NvZnQgZU1iZWRkZWQgVmlzdWFsIEMrKyBlZGl0ZWQgcmVzb3VyY2VzDQojaW5jbHVkZSAiYWZ4cmVzLnJjIiAgICAgICAgIC8vIFN0YW5kYXJkIGNvbXBvbmVudHMNCiNpbmNsdWRlICJ3Y2VyZXMucmMiICAgICAgICAgLy8gV0NFLXNwZWNpZmljIGNvbXBvbmVudHMNCiNlbmRpZg0KDQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KI2VuZGlmICAgIC8vIG5vdCBBUFNUVURJT19JTlZPS0VEDQoNCg==