From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sun, 4 Nov 2007 12:09:32 +0100 From: Daniel Simon Message-ID: <20071104120932.0a396361@domain.hid> In-Reply-To: <18216.57598.559447.478769@domain.hid> References: <20071031154106.29f66afc@domain.hid> <18216.57598.559447.478769@domain.hid> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_=W5YW1cWr//r3CLqNgQD8Pj" Subject: Re: [Xenomai-help] rt_task_inquire and NULL 2nd arg List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gilles Chanteperdrix Cc: xenomai@xenomai.org --MP_=W5YW1cWr//r3CLqNgQD8Pj Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Wed, 31 Oct 2007 21:09:34 +0100 Gilles Chanteperdrix wrote: > Daniel Simon wrote: > > Hello all, > >=20 > > I am testing some former programs with > > xenomai-2.4-rc4/kernel-2.6.23.1/pentiumM; > >=20 > > Calling rt_task_inquire(Id, NULL) with a null second argument now > > freezes or reboots the pc... > >=20 > > I had no problem with this call with a former (2.3.1) xenomai version.= Is > > it a known behaviour? >=20 > the rt_task_inquire system call checks that the "info" pointer points to > a piece of writable memory and returns -EFAULT otherwise.=20 That was the behaviour I got with xenomai-2.3.1 (I only wanted to check if = the task was still existing and thus only interested in the value returned) >So, what you > should get is a segmentation fault, no freeze or reboot. Actually, I > have tested a small test which segfaults as expected. Could you provide > us with the simple test that causes a freeze or reboot ? >=20 file testinfo.c and config attached, uncommenting line 201 reboots the syst= em at cleaning time after ^C=20 (xeno 2.4-rc5, kernel 2.6.23.1, gcc 4.0.2 with --xeno-cflags and --xeno-ldf= lags) Daniel --=20 Daniel SIMON Projet NeCS INRIA Rh=F4ne-Alpes Inovall=E9e, 655 avenue de l'Europe, Montbonnot 38 334 Saint Ismier Cedex France Daniel.Simon@domain.hid Phone:(33)476615328 Fax:(33)476615252 http://necs.inrialpes.fr/people/simon/ --MP_=W5YW1cWr//r3CLqNgQD8Pj Content-Type: application/octet-stream; name=config Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=config IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CiMgTGlu dXgga2VybmVsIHZlcnNpb246IDIuNi4yMy4xLXgyNAojIFR1ZSBPY3QgMzAgMDg6NTI6MDggMjAw NwojCkNPTkZJR19YODZfMzI9eQpDT05GSUdfR0VORVJJQ19USU1FPXkKQ09ORklHX0dFTkVSSUNf Q01PU19VUERBVEU9eQpDT05GSUdfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0c9eQpDT05GSUdfR0VORVJJ Q19DTE9DS0VWRU5UUz15CkNPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVD15CkNP TkZJR19MT0NLREVQX1NVUFBPUlQ9eQpDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKQ09ORklH X1NFTUFQSE9SRV9TTEVFUEVSUz15CkNPTkZJR19YODY9eQpDT05GSUdfTU1VPXkKQ09ORklHX1pP TkVfRE1BPXkKQ09ORklHX1FVSUNLTElTVD15CkNPTkZJR19HRU5FUklDX0lTQV9ETUE9eQpDT05G SUdfR0VORVJJQ19JT01BUD15CkNPTkZJR19HRU5FUklDX0JVRz15CkNPTkZJR19HRU5FUklDX0hX RUlHSFQ9eQpDT05GSUdfQVJDSF9NQVlfSEFWRV9QQ19GREM9eQpDT05GSUdfRE1JPXkKQ09ORklH X0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKCiMK IyBHZW5lcmFsIHNldHVwCiMKQ09ORklHX0VYUEVSSU1FTlRBTD15CkNPTkZJR19CUk9LRU5fT05f U01QPXkKQ09ORklHX0xPQ0tfS0VSTkVMPXkKQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgpD T05GSUdfTE9DQUxWRVJTSU9OPSIiCkNPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CkNPTkZJR19T V0FQPXkKQ09ORklHX1NZU1ZJUEM9eQpDT05GSUdfU1lTVklQQ19TWVNDVEw9eQpDT05GSUdfUE9T SVhfTVFVRVVFPXkKQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1Q9eQojIENPTkZJR19CU0RfUFJPQ0VT U19BQ0NUX1YzIGlzIG5vdCBzZXQKIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKIyBDT05G SUdfVVNFUl9OUyBpcyBub3Qgc2V0CkNPTkZJR19BVURJVD15CkNPTkZJR19BVURJVFNZU0NBTEw9 eQpDT05GSUdfSUtDT05GSUc9eQpDT05GSUdfSUtDT05GSUdfUFJPQz15CkNPTkZJR19MT0dfQlVG X1NISUZUPTE0CkNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKIyBDT05GSUdfUkVMQVkgaXMgbm90 IHNldApDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQpDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgoj IENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CkNPTkZJR19TWVNDVEw9eQoj IENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CkNPTkZJR19VSUQxNj15CkNPTkZJR19TWVNDVExf U1lTQ0FMTD15CkNPTkZJR19LQUxMU1lNUz15CkNPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkK Q09ORklHX0hPVFBMVUc9eQpDT05GSUdfUFJJTlRLPXkKQ09ORklHX0JVRz15CkNPTkZJR19FTEZf Q09SRT15CkNPTkZJR19CQVNFX0ZVTEw9eQpDT05GSUdfRlVURVg9eQpDT05GSUdfQU5PTl9JTk9E RVM9eQpDT05GSUdfRVBPTEw9eQpDT05GSUdfU0lHTkFMRkQ9eQpDT05GSUdfRVZFTlRGRD15CkNP TkZJR19TSE1FTT15CkNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CkNPTkZJR19TTEFCPXkKIyBD T05GSUdfU0xVQiBpcyBub3Qgc2V0CiMgQ09ORklHX1NMT0IgaXMgbm90IHNldApDT05GSUdfUlRf TVVURVhFUz15CiMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldApDT05GSUdfQkFTRV9TTUFM TD0wCkNPTkZJR19NT0RVTEVTPXkKQ09ORklHX01PRFVMRV9VTkxPQUQ9eQojIENPTkZJR19NT0RV TEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNl dApDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMPXkKQ09ORklHX0tNT0Q9eQpDT05GSUdfQkxP Q0s9eQojIENPTkZJR19MQkQgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlz IG5vdCBzZXQKQ09ORklHX0xTRj15CiMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKCiMK IyBJTyBTY2hlZHVsZXJzCiMKQ09ORklHX0lPU0NIRURfTk9PUD15CkNPTkZJR19JT1NDSEVEX0FT PW0KQ09ORklHX0lPU0NIRURfREVBRExJTkU9bQpDT05GSUdfSU9TQ0hFRF9DRlE9bQojIENPTkZJ R19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qg c2V0CiMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfTk9PUD15 CkNPTkZJR19ERUZBVUxUX0lPU0NIRUQ9Im5vb3AiCgojCiMgUmVhbC10aW1lIHN1Yi1zeXN0ZW0K IwpDT05GSUdfWEVOT01BST15CkNPTkZJR19YRU5PX09QVF9OVUNMRVVTPW0KQ09ORklHX1hFTk9f T1BUX1BFUlZBU0lWRT15CkNPTkZJR19YRU5PX09QVF9JU0hJRUxEPXkKQ09ORklHX1hFTk9fT1BU X1BSSU9DUEw9eQpDT05GSUdfWEVOT19PUFRfUElQRUxJTkVfSEVBRD15CkNPTkZJR19YRU5PX09Q VF9QSVBFPXkKQ09ORklHX1hFTk9fT1BUX1BJUEVfTlJERVY9MzIKQ09ORklHX1hFTk9fT1BUX1JF R0lTVFJZPXkKQ09ORklHX1hFTk9fT1BUX1JFR0lTVFJZX05SU0xPVFM9NTEyCkNPTkZJR19YRU5P X09QVF9TWVNfSEVBUFNaPTEyOApDT05GSUdfWEVOT19PUFRfU1RBVFM9eQpDT05GSUdfWEVOT19P UFRfREVCVUc9eQojIENPTkZJR19YRU5PX09QVF9ERUJVR19OVUNMRVVTIGlzIG5vdCBzZXQKIyBD T05GSUdfWEVOT19PUFRfREVCVUdfUVVFVUVTIGlzIG5vdCBzZXQKIyBDT05GSUdfWEVOT19PUFRf REVCVUdfUkVHSVNUUlkgaXMgbm90IHNldAojIENPTkZJR19YRU5PX09QVF9ERUJVR19USU1FUlMg aXMgbm90IHNldApDT05GSUdfWEVOT19PUFRfV0FUQ0hET0c9eQpDT05GSUdfWEVOT19PUFRfV0FU Q0hET0dfVElNRU9VVD00CkNPTkZJR19YRU5PX09QVF9TSElSUT15CgojCiMgVGltaW5nCiMKIyBD T05GSUdfWEVOT19PUFRfVElNSU5HX1BFUklPRElDIGlzIG5vdCBzZXQKQ09ORklHX1hFTk9fT1BU X1RJTUlOR19TQ0hFRExBVD0wCgojCiMgU2NhbGFiaWxpdHkKIwojIENPTkZJR19YRU5PX09QVF9T Q0FMQUJMRV9TQ0hFRCBpcyBub3Qgc2V0CkNPTkZJR19YRU5PX09QVF9USU1FUl9MSVNUPXkKIyBD T05GSUdfWEVOT19PUFRfVElNRVJfSEVBUCBpcyBub3Qgc2V0CiMgQ09ORklHX1hFTk9fT1BUX1RJ TUVSX1dIRUVMIGlzIG5vdCBzZXQKCiMKIyBNYWNoaW5lCiMKQ09ORklHX1hFTk9fSFdfRlBVPXkK CiMKIyBOTUkgd2F0Y2hkb2cKIwojIENPTkZJR19YRU5PX0hXX05NSV9ERUJVR19MQVRFTkNZIGlz IG5vdCBzZXQKCiMKIyBTTUkgd29ya2Fyb3VuZAojCiMgQ09ORklHX1hFTk9fSFdfU01JX0RFVEVD VF9ESVNBQkxFIGlzIG5vdCBzZXQKQ09ORklHX1hFTk9fSFdfU01JX0RFVEVDVD15CkNPTkZJR19Y RU5PX0hXX1NNSV9XT1JLQVJPVU5EPXkKQ09ORklHX1hFTk9fSFdfU01JX0FMTD15CgojCiMgSW50 ZXJmYWNlcwojCkNPTkZJR19YRU5PX1NLSU5fTkFUSVZFPW0KQ09ORklHX1hFTk9fT1BUX05BVElW RV9QRVJJT0Q9MApDT05GSUdfWEVOT19PUFRfTkFUSVZFX1BJUEU9eQpDT05GSUdfWEVOT19PUFRf TkFUSVZFX1BJUEVfQlVGU1o9MTAyNApDT05GSUdfWEVOT19PUFRfTkFUSVZFX1JFR0lTVFJZPXkK Q09ORklHX1hFTk9fT1BUX05BVElWRV9TRU09eQpDT05GSUdfWEVOT19PUFRfTkFUSVZFX0VWRU5U PXkKQ09ORklHX1hFTk9fT1BUX05BVElWRV9NVVRFWD15CkNPTkZJR19YRU5PX09QVF9OQVRJVkVf Q09ORD15CkNPTkZJR19YRU5PX09QVF9OQVRJVkVfUVVFVUU9eQpDT05GSUdfWEVOT19PUFRfTkFU SVZFX0hFQVA9eQpDT05GSUdfWEVOT19PUFRfTkFUSVZFX0FMQVJNPXkKQ09ORklHX1hFTk9fT1BU X05BVElWRV9NUFM9eQpDT05GSUdfWEVOT19PUFRfTkFUSVZFX0lOVFI9eQpDT05GSUdfWEVOT19P UFRfREVCVUdfTkFUSVZFPXkKQ09ORklHX1hFTk9fU0tJTl9QT1NJWD1tCkNPTkZJR19YRU5PX09Q VF9QT1NJWF9QRVJJT0Q9MApDT05GSUdfWEVOT19PUFRfUE9TSVhfU0hNPXkKQ09ORklHX1hFTk9f T1BUX1BPU0lYX0lOVFI9eQpDT05GSUdfWEVOT19PUFRfREVCVUdfUE9TSVg9eQojIENPTkZJR19Y RU5PX1NLSU5fUFNPUyBpcyBub3Qgc2V0CiMgQ09ORklHX1hFTk9fU0tJTl9VSVRST04gaXMgbm90 IHNldAojIENPTkZJR19YRU5PX1NLSU5fVlJUWCBpcyBub3Qgc2V0CiMgQ09ORklHX1hFTk9fU0tJ Tl9WWFdPUktTIGlzIG5vdCBzZXQKIyBDT05GSUdfWEVOT19TS0lOX1JUQUkgaXMgbm90IHNldApD T05GSUdfWEVOT19TS0lOX1JURE09bQpDT05GSUdfWEVOT19PUFRfUlRETV9QRVJJT0Q9MApDT05G SUdfWEVOT19PUFRfUlRETV9GSUxERVM9MTI4CkNPTkZJR19YRU5PX09QVF9ERUJVR19SVERNPXkK CiMKIyBEcml2ZXJzCiMKCiMKIyBTZXJpYWwgZHJpdmVycwojCkNPTkZJR19YRU5PX0RSSVZFUlNf MTY1NTBBPW0KIyBDT05GSUdfWEVOT19EUklWRVJTXzE2NTUwQV9QSU8gaXMgbm90IHNldAojIENP TkZJR19YRU5PX0RSSVZFUlNfMTY1NTBBX01NSU8gaXMgbm90IHNldApDT05GSUdfWEVOT19EUklW RVJTXzE2NTUwQV9BTlk9eQoKIwojIFRlc3RpbmcgZHJpdmVycwojCkNPTkZJR19YRU5PX0RSSVZF UlNfVElNRVJCRU5DSD1tCkNPTkZJR19YRU5PX0RSSVZFUlNfSVJRQkVOQ0g9bQpDT05GSUdfWEVO T19EUklWRVJTX1NXSVRDSFRFU1Q9bQoKIwojIENBTiBkcml2ZXJzCiMKQ09ORklHX1hFTk9fRFJJ VkVSU19DQU49bQpDT05GSUdfWEVOT19EUklWRVJTX0NBTl9ERUJVRz15CiMgQ09ORklHX1hFTk9f RFJJVkVSU19DQU5fTE9PUEJBQ0sgaXMgbm90IHNldApDT05GSUdfWEVOT19EUklWRVJTX0NBTl9S WEJVRl9TSVpFPTEwMjQKQ09ORklHX1hFTk9fRFJJVkVSU19DQU5fTUFYX0RFVklDRVM9NApDT05G SUdfWEVOT19EUklWRVJTX0NBTl9NQVhfUkVDRUlWRVJTPTE2CiMgQ09ORklHX1hFTk9fRFJJVkVS U19DQU5fQlVTX0VSUiBpcyBub3Qgc2V0CiMgQ09ORklHX1hFTk9fRFJJVkVSU19DQU5fVklSVCBp cyBub3Qgc2V0CiMgQ09ORklHX1hFTk9fRFJJVkVSU19DQU5fU0pBMTAwMCBpcyBub3Qgc2V0Cgoj CiMgUHJvY2Vzc29yIHR5cGUgYW5kIGZlYXR1cmVzCiMKQ09ORklHX1RJQ0tfT05FU0hPVD15CkNP TkZJR19OT19IWj15CkNPTkZJR19ISUdIX1JFU19USU1FUlM9eQojIENPTkZJR19TTVAgaXMgbm90 IHNldApDT05GSUdfWDg2X1BDPXkKIyBDT05GSUdfWDg2X0VMQU4gaXMgbm90IHNldAojIENPTkZJ R19YODZfVk9ZQUdFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9OVU1BUSBpcyBub3Qgc2V0CiMg Q09ORklHX1g4Nl9TVU1NSVQgaXMgbm90IHNldAojIENPTkZJR19YODZfQklHU01QIGlzIG5vdCBz ZXQKIyBDT05GSUdfWDg2X1ZJU1dTIGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X0dFTkVSSUNBUkNI IGlzIG5vdCBzZXQKIyBDT05GSUdfWDg2X0VTNzAwMCBpcyBub3Qgc2V0CiMgQ09ORklHX00zODYg aXMgbm90IHNldAojIENPTkZJR19NNDg2IGlzIG5vdCBzZXQKIyBDT05GSUdfTTU4NiBpcyBub3Qg c2V0CiMgQ09ORklHX001ODZUU0MgaXMgbm90IHNldAojIENPTkZJR19NNTg2TU1YIGlzIG5vdCBz ZXQKIyBDT05GSUdfTTY4NiBpcyBub3Qgc2V0CiMgQ09ORklHX01QRU5USVVNSUkgaXMgbm90IHNl dAojIENPTkZJR19NUEVOVElVTUlJSSBpcyBub3Qgc2V0CkNPTkZJR19NUEVOVElVTU09eQojIENP TkZJR19NQ09SRTIgaXMgbm90IHNldAojIENPTkZJR19NUEVOVElVTTQgaXMgbm90IHNldAojIENP TkZJR19NSzYgaXMgbm90IHNldAojIENPTkZJR19NSzcgaXMgbm90IHNldAojIENPTkZJR19NSzgg aXMgbm90IHNldAojIENPTkZJR19NQ1JVU09FIGlzIG5vdCBzZXQKIyBDT05GSUdfTUVGRklDRU9O IGlzIG5vdCBzZXQKIyBDT05GSUdfTVdJTkNISVBDNiBpcyBub3Qgc2V0CiMgQ09ORklHX01XSU5D SElQMiBpcyBub3Qgc2V0CiMgQ09ORklHX01XSU5DSElQM0QgaXMgbm90IHNldAojIENPTkZJR19N R0VPREVHWDEgaXMgbm90IHNldAojIENPTkZJR19NR0VPREVfTFggaXMgbm90IHNldAojIENPTkZJ R19NQ1lSSVhJSUkgaXMgbm90IHNldAojIENPTkZJR19NVklBQzNfMiBpcyBub3Qgc2V0CiMgQ09O RklHX01WSUFDNyBpcyBub3Qgc2V0CkNPTkZJR19YODZfR0VORVJJQz15CkNPTkZJR19YODZfQ01Q WENIRz15CkNPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NwpDT05GSUdfWDg2X1hBREQ9eQpDT05G SUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQojIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIg aXMgbm90IHNldAojIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldApDT05GSUdf R0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQpDT05GSUdfWDg2X1dQX1dPUktTX09LPXkKQ09ORklH X1g4Nl9JTlZMUEc9eQpDT05GSUdfWDg2X0JTV0FQPXkKQ09ORklHX1g4Nl9QT1BBRF9PSz15CkNP TkZJR19YODZfR09PRF9BUElDPXkKQ09ORklHX1g4Nl9JTlRFTF9VU0VSQ09QWT15CkNPTkZJR19Y ODZfVVNFX1BQUk9fQ0hFQ0tTVU09eQpDT05GSUdfWDg2X1RTQz15CkNPTkZJR19YODZfQ01PVj15 CkNPTkZJR19YODZfTUlOSU1VTV9DUFVfRkFNSUxZPTQKQ09ORklHX0hQRVRfVElNRVI9eQojIENP TkZJR19QUkVFTVBUX05PTkUgaXMgbm90IHNldAojIENPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWSBp cyBub3Qgc2V0CkNPTkZJR19QUkVFTVBUPXkKQ09ORklHX1BSRUVNUFRfQktMPXkKQ09ORklHX0lQ SVBFPXkKQ09ORklHX0lQSVBFX0RPTUFJTlM9NApDT05GSUdfSVBJUEVfQ09NUEFUPXkKQ09ORklH X1g4Nl9VUF9BUElDPXkKQ09ORklHX1g4Nl9VUF9JT0FQSUM9eQpDT05GSUdfWDg2X0xPQ0FMX0FQ SUM9eQpDT05GSUdfWDg2X0lPX0FQSUM9eQpDT05GSUdfWDg2X01DRT15CiMgQ09ORklHX1g4Nl9N Q0VfTk9ORkFUQUwgaXMgbm90IHNldAojIENPTkZJR19YODZfTUNFX1A0VEhFUk1BTCBpcyBub3Qg c2V0CkNPTkZJR19WTTg2PXkKIyBDT05GSUdfVE9TSElCQSBpcyBub3Qgc2V0CiMgQ09ORklHX0k4 SyBpcyBub3Qgc2V0CiMgQ09ORklHX1g4Nl9SRUJPT1RGSVhVUFMgaXMgbm90IHNldApDT05GSUdf TUlDUk9DT0RFPW0KQ09ORklHX01JQ1JPQ09ERV9PTERfSU5URVJGQUNFPXkKQ09ORklHX1g4Nl9N U1I9bQpDT05GSUdfWDg2X0NQVUlEPW0KCiMKIyBGaXJtd2FyZSBEcml2ZXJzCiMKQ09ORklHX0VE RD1tCiMgQ09ORklHX0RFTExfUkJVIGlzIG5vdCBzZXQKQ09ORklHX0RDREJBUz1tCkNPTkZJR19E TUlJRD15CkNPTkZJR19OT0hJR0hNRU09eQojIENPTkZJR19ISUdITUVNNEcgaXMgbm90IHNldAoj IENPTkZJR19ISUdITUVNNjRHIGlzIG5vdCBzZXQKQ09ORklHX1BBR0VfT0ZGU0VUPTB4QzAwMDAw MDAKIyBDT05GSUdfWDg2X1BBRSBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxF PXkKQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CkNPTkZJR19BUkNIX1NFTEVDVF9NRU1P UllfTU9ERUw9eQpDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQpDT05GSUdfU0VMRUNU X01FTU9SWV9NT0RFTD15CkNPTkZJR19GTEFUTUVNX01BTlVBTD15CiMgQ09ORklHX0RJU0NPTlRJ R01FTV9NQU5VQUwgaXMgbm90IHNldAojIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBz ZXQKQ09ORklHX0ZMQVRNRU09eQpDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQpDT05GSUdfU1BB UlNFTUVNX1NUQVRJQz15CkNPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiMgQ09ORklHX1JFU09V UkNFU182NEJJVCBpcyBub3Qgc2V0CkNPTkZJR19aT05FX0RNQV9GTEFHPTEKQ09ORklHX0JPVU5D RT15CkNPTkZJR19OUl9RVUlDSz0xCkNPTkZJR19WSVJUX1RPX0JVUz15CiMgQ09ORklHX01BVEhf RU1VTEFUSU9OIGlzIG5vdCBzZXQKQ09ORklHX01UUlI9eQojIENPTkZJR19FRkkgaXMgbm90IHNl dApDT05GSUdfU0VDQ09NUD15CiMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0ha XzI1MCBpcyBub3Qgc2V0CiMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0CkNPTkZJR19IWl8xMDAw PXkKQ09ORklHX0haPTEwMDAKIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldApDT05GSUdfUEhZU0lD QUxfU1RBUlQ9MHgxMDAwMDAKIyBDT05GSUdfUkVMT0NBVEFCTEUgaXMgbm90IHNldApDT05GSUdf UEhZU0lDQUxfQUxJR049MHgxMDAwMDAKQ09ORklHX0NPTVBBVF9WRFNPPXkKCiMKIyBQb3dlciBt YW5hZ2VtZW50IG9wdGlvbnMgKEFDUEksIEFQTSkKIwpDT05GSUdfUE09eQojIENPTkZJR19QTV9M RUdBQ1kgaXMgbm90IHNldAojIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19TVVNQ RU5EX1VQX1BPU1NJQkxFPXkKIyBDT05GSUdfU1VTUEVORCBpcyBub3Qgc2V0CkNPTkZJR19ISUJF Uk5BVElPTl9VUF9QT1NTSUJMRT15CiMgQ09ORklHX0hJQkVSTkFUSU9OIGlzIG5vdCBzZXQKQ09O RklHX0FDUEk9eQojIENPTkZJR19BQ1BJX1BST0NGUyBpcyBub3Qgc2V0CkNPTkZJR19BQ1BJX1BS T0NfRVZFTlQ9eQpDT05GSUdfQUNQSV9BQz1tCkNPTkZJR19BQ1BJX0JBVFRFUlk9bQpDT05GSUdf QUNQSV9CVVRUT049bQojIENPTkZJR19BQ1BJX1ZJREVPIGlzIG5vdCBzZXQKQ09ORklHX0FDUElf RkFOPW0KIyBDT05GSUdfQUNQSV9ET0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfQUNQSV9QUk9DRVNT T1IgaXMgbm90IHNldAojIENPTkZJR19BQ1BJX0FTVVMgaXMgbm90IHNldAojIENPTkZJR19BQ1BJ X1RPU0hJQkEgaXMgbm90IHNldApDT05GSUdfQUNQSV9CTEFDS0xJU1RfWUVBUj0wCiMgQ09ORklH X0FDUElfREVCVUcgaXMgbm90IHNldApDT05GSUdfQUNQSV9FQz15CkNPTkZJR19BQ1BJX1BPV0VS PXkKQ09ORklHX0FDUElfU1lTVEVNPXkKQ09ORklHX1g4Nl9QTV9USU1FUj15CiMgQ09ORklHX0FD UElfQ09OVEFJTkVSIGlzIG5vdCBzZXQKIyBDT05GSUdfQUNQSV9TQlMgaXMgbm90IHNldAoKIwoj IENQVSBGcmVxdWVuY3kgc2NhbGluZwojCiMgQ09ORklHX0NQVV9GUkVRIGlzIG5vdCBzZXQKCiMK IyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIE1DQSwgSVNBKQojCkNPTkZJR19QQ0k9 eQojIENPTkZJR19QQ0lfR09CSU9TIGlzIG5vdCBzZXQKIyBDT05GSUdfUENJX0dPTU1DT05GSUcg aXMgbm90IHNldAojIENPTkZJR19QQ0lfR09ESVJFQ1QgaXMgbm90IHNldApDT05GSUdfUENJX0dP QU5ZPXkKQ09ORklHX1BDSV9CSU9TPXkKQ09ORklHX1BDSV9ESVJFQ1Q9eQpDT05GSUdfUENJX01N Q09ORklHPXkKQ09ORklHX1BDSUVQT1JUQlVTPXkKQ09ORklHX1BDSUVBRVI9eQpDT05GSUdfQVJD SF9TVVBQT1JUU19NU0k9eQojIENPTkZJR19QQ0lfTVNJIGlzIG5vdCBzZXQKQ09ORklHX0hUX0lS UT15CkNPTkZJR19JU0FfRE1BX0FQST15CkNPTkZJR19JU0E9eQojIENPTkZJR19FSVNBIGlzIG5v dCBzZXQKIyBDT05GSUdfTUNBIGlzIG5vdCBzZXQKIyBDT05GSUdfU0N4MjAwIGlzIG5vdCBzZXQK CiMKIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0CiMKQ09ORklHX1BDQ0FSRD1tCiMg Q09ORklHX1BDTUNJQV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19QQ01DSUE9bQpDT05GSUdfUENN Q0lBX0xPQURfQ0lTPXkKQ09ORklHX1BDTUNJQV9JT0NUTD15CkNPTkZJR19DQVJEQlVTPXkKCiMK IyBQQy1jYXJkIGJyaWRnZXMKIwpDT05GSUdfWUVOVEE9bQpDT05GSUdfWUVOVEFfTzI9eQpDT05G SUdfWUVOVEFfUklDT0g9eQpDT05GSUdfWUVOVEFfVEk9eQpDT05GSUdfWUVOVEFfRU5FX1RVTkU9 eQpDT05GSUdfWUVOVEFfVE9TSElCQT15CkNPTkZJR19QRDY3Mjk9bQpDT05GSUdfSTgyMDkyPW0K Q09ORklHX0k4MjM2NT1tCkNPTkZJR19UQ0lDPW0KQ09ORklHX1BDTUNJQV9QUk9CRT15CkNPTkZJ R19QQ0NBUkRfTk9OU1RBVElDPW0KIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAoKIwoj IEV4ZWN1dGFibGUgZmlsZSBmb3JtYXRzCiMKQ09ORklHX0JJTkZNVF9FTEY9eQpDT05GSUdfQklO Rk1UX0FPVVQ9bQpDT05GSUdfQklORk1UX01JU0M9eQoKIwojIE5ldHdvcmtpbmcKIwpDT05GSUdf TkVUPXkKCiMKIyBOZXR3b3JraW5nIG9wdGlvbnMKIwpDT05GSUdfUEFDS0VUPXkKQ09ORklHX1BB Q0tFVF9NTUFQPXkKQ09ORklHX1VOSVg9eQpDT05GSUdfWEZSTT15CkNPTkZJR19YRlJNX1VTRVI9 eQojIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAojIENPTkZJR19YRlJNX01JR1JB VEUgaXMgbm90IHNldApDT05GSUdfTkVUX0tFWT1tCiMgQ09ORklHX05FVF9LRVlfTUlHUkFURSBp cyBub3Qgc2V0CkNPTkZJR19JTkVUPXkKIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQK IyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKQ09ORklHX0lQX0ZJQl9IQVNI PXkKIyBDT05GSUdfSVBfUE5QIGlzIG5vdCBzZXQKQ09ORklHX05FVF9JUElQPW0KQ09ORklHX05F VF9JUEdSRT1tCiMgQ09ORklHX0FSUEQgaXMgbm90IHNldAojIENPTkZJR19TWU5fQ09PS0lFUyBp cyBub3Qgc2V0CkNPTkZJR19JTkVUX0FIPW0KQ09ORklHX0lORVRfRVNQPW0KQ09ORklHX0lORVRf SVBDT01QPW0KQ09ORklHX0lORVRfWEZSTV9UVU5ORUw9bQpDT05GSUdfSU5FVF9UVU5ORUw9bQpD T05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKQ09ORklHX0lORVRfWEZSTV9NT0RFX1RV Tk5FTD15CkNPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKQ09ORklHX0lORVRfRElBRz1tCkNP TkZJR19JTkVUX1RDUF9ESUFHPW0KIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNl dApDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQpDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMi CiMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldApDT05GSUdfSVBWNj1tCkNPTkZJR19JUFY2 X1BSSVZBQ1k9eQojIENPTkZJR19JUFY2X1JPVVRFUl9QUkVGIGlzIG5vdCBzZXQKIyBDT05GSUdf SVBWNl9PUFRJTUlTVElDX0RBRCBpcyBub3Qgc2V0CkNPTkZJR19JTkVUNl9BSD1tCkNPTkZJR19J TkVUNl9FU1A9bQpDT05GSUdfSU5FVDZfSVBDT01QPW0KIyBDT05GSUdfSVBWNl9NSVA2IGlzIG5v dCBzZXQKQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMPW0KQ09ORklHX0lORVQ2X1RVTk5FTD1tCkNP TkZJR19JTkVUNl9YRlJNX01PREVfVFJBTlNQT1JUPW0KQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9U VU5ORUw9bQpDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9bQojIENPTkZJR19JTkVUNl9YRlJN X01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldApDT05GSUdfSVBWNl9TSVQ9bQpDT05G SUdfSVBWNl9UVU5ORUw9bQojIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0 CiMgQ09ORklHX05FVExBQkVMIGlzIG5vdCBzZXQKQ09ORklHX05FVFdPUktfU0VDTUFSSz15CiMg Q09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAoj IENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CiMgQ09O RklHX0FUTSBpcyBub3Qgc2V0CiMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CiMgQ09ORklHX1ZM QU5fODAyMVEgaXMgbm90IHNldAojIENPTkZJR19ERUNORVQgaXMgbm90IHNldAojIENPTkZJR19M TEMyIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVRBTEsgaXMg bm90IHNldAojIENPTkZJR19YMjUgaXMgbm90IHNldAojIENPTkZJR19MQVBCIGlzIG5vdCBzZXQK IyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0 CgojCiMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCiMKIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5v dCBzZXQKCiMKIyBOZXR3b3JrIHRlc3RpbmcKIwojIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBz ZXQKIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAojIENPTkZJR19JUkRBIGlzIG5vdCBzZXQK IyBDT05GSUdfQlQgaXMgbm90IHNldAojIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CgojCiMg V2lyZWxlc3MKIwojIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CiMgQ09ORklHX1dJUkVMRVNT X0VYVCBpcyBub3Qgc2V0CiMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKQ09ORklHX0lFRUU4 MDIxMT1tCiMgQ09ORklHX0lFRUU4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0lFRUU4 MDIxMV9DUllQVF9XRVAgaXMgbm90IHNldAojIENPTkZJR19JRUVFODAyMTFfQ1JZUFRfQ0NNUCBp cyBub3Qgc2V0CiMgQ09ORklHX0lFRUU4MDIxMV9DUllQVF9US0lQIGlzIG5vdCBzZXQKIyBDT05G SUdfSUVFRTgwMjExX1NPRlRNQUMgaXMgbm90IHNldAojIENPTkZJR19SRktJTEwgaXMgbm90IHNl dAojIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAoKIwojIERldmljZSBEcml2ZXJzCiMKCiMKIyBH ZW5lcmljIERyaXZlciBPcHRpb25zCiMKQ09ORklHX1NUQU5EQUxPTkU9eQpDT05GSUdfUFJFVkVO VF9GSVJNV0FSRV9CVUlMRD15CkNPTkZJR19GV19MT0FERVI9eQojIENPTkZJR19TWVNfSFlQRVJW SVNPUiBpcyBub3Qgc2V0CiMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiMgQ09ORklHX01U RCBpcyBub3Qgc2V0CkNPTkZJR19QQVJQT1JUPW0KQ09ORklHX1BBUlBPUlRfUEM9bQpDT05GSUdf UEFSUE9SVF9TRVJJQUw9bQojIENPTkZJR19QQVJQT1JUX1BDX0ZJRk8gaXMgbm90IHNldAojIENP TkZJR19QQVJQT1JUX1BDX1NVUEVSSU8gaXMgbm90IHNldApDT05GSUdfUEFSUE9SVF9QQ19QQ01D SUE9bQojIENPTkZJR19QQVJQT1JUX0dTQyBpcyBub3Qgc2V0CiMgQ09ORklHX1BBUlBPUlRfQVg4 ODc5NiBpcyBub3Qgc2V0CkNPTkZJR19QQVJQT1JUXzEyODQ9eQpDT05GSUdfUEFSUE9SVF9OT1Rf UEM9eQpDT05GSUdfUE5QPXkKIyBDT05GSUdfUE5QX0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBQcm90 b2NvbHMKIwpDT05GSUdfSVNBUE5QPXkKIyBDT05GSUdfUE5QQklPUyBpcyBub3Qgc2V0CkNPTkZJ R19QTlBBQ1BJPXkKQ09ORklHX0JMS19ERVY9eQpDT05GSUdfQkxLX0RFVl9GRD1tCiMgQ09ORklH X0JMS19ERVZfWEQgaXMgbm90IHNldApDT05GSUdfUEFSSURFPW0KCiMKIyBQYXJhbGxlbCBJREUg aGlnaC1sZXZlbCBkcml2ZXJzCiMKQ09ORklHX1BBUklERV9QRD1tCkNPTkZJR19QQVJJREVfUENE PW0KQ09ORklHX1BBUklERV9QRj1tCkNPTkZJR19QQVJJREVfUFQ9bQpDT05GSUdfUEFSSURFX1BH PW0KCiMKIyBQYXJhbGxlbCBJREUgcHJvdG9jb2wgbW9kdWxlcwojCiMgQ09ORklHX1BBUklERV9B VEVOIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFSSURFX0JQQ0sgaXMgbm90IHNldAojIENPTkZJR19Q QVJJREVfQlBDSzYgaXMgbm90IHNldAojIENPTkZJR19QQVJJREVfQ09NTSBpcyBub3Qgc2V0CiMg Q09ORklHX1BBUklERV9EU1RSIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFSSURFX0ZJVDIgaXMgbm90 IHNldAojIENPTkZJR19QQVJJREVfRklUMyBpcyBub3Qgc2V0CiMgQ09ORklHX1BBUklERV9FUEFU IGlzIG5vdCBzZXQKIyBDT05GSUdfUEFSSURFX0VQSUEgaXMgbm90IHNldAojIENPTkZJR19QQVJJ REVfRlJJUSBpcyBub3Qgc2V0CiMgQ09ORklHX1BBUklERV9GUlBXIGlzIG5vdCBzZXQKIyBDT05G SUdfUEFSSURFX0tCSUMgaXMgbm90IHNldAojIENPTkZJR19QQVJJREVfS1RUSSBpcyBub3Qgc2V0 CiMgQ09ORklHX1BBUklERV9PTjIwIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFSSURFX09OMjYgaXMg bm90IHNldApDT05GSUdfQkxLX0NQUV9EQT1tCkNPTkZJR19CTEtfQ1BRX0NJU1NfREE9bQpDT05G SUdfQ0lTU19TQ1NJX1RBUEU9eQpDT05GSUdfQkxLX0RFVl9EQUM5NjA9eQpDT05GSUdfQkxLX0RF Vl9VTUVNPXkKIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKQ09ORklHX0JM S19ERVZfTE9PUD1tCkNPTkZJR19CTEtfREVWX0NSWVBUT0xPT1A9bQpDT05GSUdfQkxLX0RFVl9O QkQ9bQpDT05GSUdfQkxLX0RFVl9TWDg9bQojIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQK Q09ORklHX0JMS19ERVZfUkFNPXkKQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CkNPTkZJR19C TEtfREVWX1JBTV9TSVpFPTE2Mzg0CkNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNApD T05GSUdfQ0RST01fUEtUQ0RWRD1tCkNPTkZJR19DRFJPTV9QS1RDRFZEX0JVRkZFUlM9OAojIENP TkZJR19DRFJPTV9QS1RDRFZEX1dDQUNIRSBpcyBub3Qgc2V0CkNPTkZJR19BVEFfT1ZFUl9FVEg9 bQpDT05GSUdfTUlTQ19ERVZJQ0VTPXkKIyBDT05GSUdfSUJNX0FTTSBpcyBub3Qgc2V0CiMgQ09O RklHX1BIQU5UT00gaXMgbm90IHNldAojIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAoj IENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0CiMgQ09ORklHX1RJRk1fQ09SRSBpcyBub3Qgc2V0 CiMgQ09ORklHX01TSV9MQVBUT1AgaXMgbm90IHNldAojIENPTkZJR19TT05ZX0xBUFRPUCBpcyBu b3Qgc2V0CiMgQ09ORklHX1RISU5LUEFEX0FDUEkgaXMgbm90IHNldApDT05GSUdfSURFPXkKQ09O RklHX0JMS19ERVZfSURFPXkKCiMKIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBm b3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKIwojIENPTkZJR19CTEtfREVWX0lERV9TQVRBIGlz IG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9IRF9JREUgaXMgbm90IHNldApDT05GSUdfQkxLX0RF Vl9JREVESVNLPXkKIyBDT05GSUdfSURFRElTS19NVUxUSV9NT0RFIGlzIG5vdCBzZXQKQ09ORklH X0JMS19ERVZfSURFQ1M9bQojIENPTkZJR19CTEtfREVWX0RFTEtJTiBpcyBub3Qgc2V0CkNPTkZJ R19CTEtfREVWX0lERUNEPXkKIyBDT05GSUdfQkxLX0RFVl9JREVUQVBFIGlzIG5vdCBzZXQKQ09O RklHX0JMS19ERVZfSURFRkxPUFBZPXkKQ09ORklHX0JMS19ERVZfSURFU0NTST1tCiMgQ09ORklH X0JMS19ERVZfSURFQUNQSSBpcyBub3Qgc2V0CiMgQ09ORklHX0lERV9UQVNLX0lPQ1RMIGlzIG5v dCBzZXQKQ09ORklHX0lERV9QUk9DX0ZTPXkKCiMKIyBJREUgY2hpcHNldCBzdXBwb3J0L2J1Z2Zp eGVzCiMKQ09ORklHX0lERV9HRU5FUklDPXkKQ09ORklHX0JMS19ERVZfQ01ENjQwPXkKQ09ORklH X0JMS19ERVZfQ01ENjQwX0VOSEFOQ0VEPXkKQ09ORklHX0JMS19ERVZfSURFUE5QPXkKQ09ORklH X0JMS19ERVZfSURFUENJPXkKQ09ORklHX0lERVBDSV9TSEFSRV9JUlE9eQpDT05GSUdfSURFUENJ X1BDSUJVU19PUkRFUj15CiMgQ09ORklHX0JMS19ERVZfT0ZGQk9BUkQgaXMgbm90IHNldApDT05G SUdfQkxLX0RFVl9HRU5FUklDPW0KIyBDT05GSUdfQkxLX0RFVl9PUFRJNjIxIGlzIG5vdCBzZXQK Q09ORklHX0JMS19ERVZfUloxMDAwPW0KQ09ORklHX0JMS19ERVZfSURFRE1BX1BDST15CiMgQ09O RklHX0JMS19ERVZfSURFRE1BX0ZPUkNFRCBpcyBub3Qgc2V0CiMgQ09ORklHX0lERURNQV9PTkxZ RElTSyBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfQUVDNjJYWCBpcyBub3Qgc2V0CiMgQ09O RklHX0JMS19ERVZfQUxJMTVYMyBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfQU1ENzRYWCBp cyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfQVRJSVhQIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxL X0RFVl9DTUQ2NFggaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1RSSUZMRVggaXMgbm90IHNl dAojIENPTkZJR19CTEtfREVWX0NZODJDNjkzIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9D UzU1MjAgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0NTNTUzMCBpcyBub3Qgc2V0CiMgQ09O RklHX0JMS19ERVZfQ1M1NTM1IGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9IUFQzNFggaXMg bm90IHNldAojIENPTkZJR19CTEtfREVWX0hQVDM2NiBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19E RVZfSk1JQ1JPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfU0MxMjAwIGlzIG5vdCBzZXQK Q09ORklHX0JMS19ERVZfUElJWD1tCiMgQ09ORklHX0JMS19ERVZfSVQ4MjEzIGlzIG5vdCBzZXQK IyBDT05GSUdfQkxLX0RFVl9JVDgyMVggaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX05TODc0 MTUgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1BEQzIwMlhYX09MRCBpcyBub3Qgc2V0CiMg Q09ORklHX0JMS19ERVZfUERDMjAyWFhfTkVXIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9T VldLUyBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfU0lJTUFHRSBpcyBub3Qgc2V0CiMgQ09O RklHX0JMS19ERVZfU0lTNTUxMyBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfU0xDOTBFNjYg aXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1RSTTI5MCBpcyBub3Qgc2V0CiMgQ09ORklHX0JM S19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBu b3Qgc2V0CiMgQ09ORklHX0lERV9BUk0gaXMgbm90IHNldAojIENPTkZJR19JREVfQ0hJUFNFVFMg aXMgbm90IHNldApDT05GSUdfQkxLX0RFVl9JREVETUE9eQojIENPTkZJR19JREVETUFfSVZCIGlz IG5vdCBzZXQKIyBDT05GSUdfQkxLX0RFVl9IRCBpcyBub3Qgc2V0CgojCiMgU0NTSSBkZXZpY2Ug c3VwcG9ydAojCkNPTkZJR19SQUlEX0FUVFJTPW0KQ09ORklHX1NDU0k9bQpDT05GSUdfU0NTSV9E TUE9eQojIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CkNPTkZJR19TQ1NJX05FVExJTks9eQpD T05GSUdfU0NTSV9QUk9DX0ZTPXkKCiMKIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwg Q0QtUk9NKQojCkNPTkZJR19CTEtfREVWX1NEPW0KQ09ORklHX0NIUl9ERVZfU1Q9bQpDT05GSUdf Q0hSX0RFVl9PU1NUPW0KQ09ORklHX0JMS19ERVZfU1I9bQpDT05GSUdfQkxLX0RFVl9TUl9WRU5E T1I9eQpDT05GSUdfQ0hSX0RFVl9TRz1tCiMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQK CiMKIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxl IExVTnMKIwpDT05GSUdfU0NTSV9NVUxUSV9MVU49eQojIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBp cyBub3Qgc2V0CkNPTkZJR19TQ1NJX0xPR0dJTkc9eQojIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMg aXMgbm90IHNldApDT05GSUdfU0NTSV9XQUlUX1NDQU49bQoKIwojIFNDU0kgVHJhbnNwb3J0cwoj CkNPTkZJR19TQ1NJX1NQSV9BVFRSUz1tCkNPTkZJR19TQ1NJX0ZDX0FUVFJTPW0KQ09ORklHX1ND U0lfSVNDU0lfQVRUUlM9bQpDT05GSUdfU0NTSV9TQVNfQVRUUlM9bQpDT05GSUdfU0NTSV9TQVNf TElCU0FTPW0KIyBDT05GSUdfU0NTSV9TQVNfQVRBIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9T QVNfTElCU0FTX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX1NDU0lfTE9XTEVWRUw9eQojIENPTkZJ R19JU0NTSV9UQ1AgaXMgbm90IHNldApDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQ9bQpDT05G SUdfU0NTSV8zV185WFhYPW0KIyBDT05GSUdfU0NTSV83MDAwRkFTU1QgaXMgbm90IHNldApDT05G SUdfU0NTSV9BQ0FSRD1tCkNPTkZJR19TQ1NJX0FIQTE1Mlg9bQpDT05GSUdfU0NTSV9BSEExNTQy PW0KQ09ORklHX1NDU0lfQUFDUkFJRD1tCkNPTkZJR19TQ1NJX0FJQzdYWFg9bQpDT05GSUdfQUlD N1hYWF9DTURTX1BFUl9ERVZJQ0U9NApDT05GSUdfQUlDN1hYWF9SRVNFVF9ERUxBWV9NUz0xNTAw MAojIENPTkZJR19BSUM3WFhYX0RFQlVHX0VOQUJMRSBpcyBub3Qgc2V0CkNPTkZJR19BSUM3WFhY X0RFQlVHX01BU0s9MAojIENPTkZJR19BSUM3WFhYX1JFR19QUkVUVFlfUFJJTlQgaXMgbm90IHNl dApDT05GSUdfU0NTSV9BSUM3WFhYX09MRD1tCkNPTkZJR19TQ1NJX0FJQzc5WFg9bQpDT05GSUdf QUlDNzlYWF9DTURTX1BFUl9ERVZJQ0U9NApDT05GSUdfQUlDNzlYWF9SRVNFVF9ERUxBWV9NUz0x NTAwMAojIENPTkZJR19BSUM3OVhYX0RFQlVHX0VOQUJMRSBpcyBub3Qgc2V0CkNPTkZJR19BSUM3 OVhYX0RFQlVHX01BU0s9MAojIENPTkZJR19BSUM3OVhYX1JFR19QUkVUVFlfUFJJTlQgaXMgbm90 IHNldApDT05GSUdfU0NTSV9BSUM5NFhYPW0KIyBDT05GSUdfQUlDOTRYWF9ERUJVRyBpcyBub3Qg c2V0CkNPTkZJR19TQ1NJX0RQVF9JMk89bQojIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBz ZXQKIyBDT05GSUdfU0NTSV9JTjIwMDAgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0FSQ01TUiBp cyBub3Qgc2V0CiMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0CiMgQ09ORklHX01F R0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0CiMgQ09ORklHX01FR0FSQUlEX1NBUyBpcyBub3Qgc2V0 CiMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9CVVNMT0dJQyBp cyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAojIENPTkZJR19TQ1NJ X0RUQzMyODAgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0VBVEEgaXMgbm90IHNldAojIENPTkZJ R19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0dEVEggaXMgbm90 IHNldAojIENPTkZJR19TQ1NJX0dFTkVSSUNfTkNSNTM4MCBpcyBub3Qgc2V0CiMgQ09ORklHX1ND U0lfR0VORVJJQ19OQ1I1MzgwX01NSU8gaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0lQUyBpcyBu b3Qgc2V0CiMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9JTklB MTAwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9QUEEgaXMgbm90IHNldAojIENPTkZJR19TQ1NJ X0lNTSBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfTkNSNTNDNDA2QSBpcyBub3Qgc2V0CiMgQ09O RklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90 IHNldAojIENPTkZJR19TQ1NJX0lQUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfUEFTMTYgaXMg bm90IHNldAojIENPTkZJR19TQ1NJX1BTSTI0MEkgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX1FM T0dJQ19GQVMgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIGlzIG5vdCBzZXQK IyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAojIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBp cyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfTFBGQyBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfU0VB R0FURSBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfU1lNNTNDNDE2IGlzIG5vdCBzZXQKIyBDT05G SUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0RDMzkwVCBpcyBub3Qgc2V0 CiMgQ09ORklHX1NDU0lfVDEyOCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfVTE0XzM0RiBpcyBu b3Qgc2V0CiMgQ09ORklHX1NDU0lfVUxUUkFTVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NTSV9O U1AzMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAojIENPTkZJR19T Q1NJX1NSUCBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfTE9XTEVWRUxfUENNQ0lBIGlzIG5vdCBz ZXQKQ09ORklHX0FUQT1tCiMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CkNPTkZJ R19BVEFfQUNQST15CkNPTkZJR19TQVRBX0FIQ0k9bQojIENPTkZJR19TQVRBX1NWVyBpcyBub3Qg c2V0CkNPTkZJR19BVEFfUElJWD1tCiMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldAojIENPTkZJ R19TQVRBX05WIGlzIG5vdCBzZXQKIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAojIENPTkZJ R19TQVRBX1FTVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQK IyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAojIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0 CiMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAojIENPTkZJR19TQVRBX1NJUyBpcyBub3Qg c2V0CiMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90 IHNldAojIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAojIENPTkZJR19TQVRBX0lOSUMx NjJYIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAojIENPTkZJR19QQVRB X0FNRCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAojIENPTkZJR19Q QVRBX0FUSUlYUCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfQ01ENjQwX1BDSSBpcyBub3Qgc2V0 CiMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMg bm90IHNldAojIENPTkZJR19QQVRBX0NTNTUzMCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfQ1M1 NTM1IGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdf UEFUQV9FRkFSIGlzIG5vdCBzZXQKIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAojIENP TkZJR19QQVRBX0hQVDM2NiBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfSFBUMzdYIGlzIG5vdCBz ZXQKIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9IUFQzWDMg aXMgbm90IHNldAojIENPTkZJR19QQVRBX0lTQVBOUCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFf SVQ4MjFYIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9JVDgyMTMgaXMgbm90IHNldAojIENPTkZJ R19QQVRBX0pNSUNST04gaXMgbm90IHNldAojIENPTkZJR19QQVRBX0xFR0FDWSBpcyBub3Qgc2V0 CiMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfTUFSVkVMTCBp cyBub3Qgc2V0CkNPTkZJR19QQVRBX01QSUlYPW0KQ09ORklHX1BBVEFfT0xEUElJWD1tCiMgQ09O RklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qg c2V0CiMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfT1BUSURNQSBp cyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfUENNQ0lBIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9Q RENfT0xEIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9RREkgaXMgbm90IHNldAojIENPTkZJR19Q QVRBX1JBRElTWVMgaXMgbm90IHNldAojIENPTkZJR19QQVRBX1JaMTAwMCBpcyBub3Qgc2V0CiMg Q09ORklHX1BBVEFfU0MxMjAwIGlzIG5vdCBzZXQKIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBp cyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfUERDMjAyN1ggaXMgbm90IHNldAojIENPTkZJR19QQVRB X1NJTDY4MCBpcyBub3Qgc2V0CiMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKIyBDT05GSUdf UEFUQV9WSUEgaXMgbm90IHNldAojIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAojIENP TkZJR19QQVRBX1dJTkJPTkRfVkxCIGlzIG5vdCBzZXQKQ09ORklHX01EPXkKQ09ORklHX0JMS19E RVZfTUQ9bQpDT05GSUdfTURfTElORUFSPW0KQ09ORklHX01EX1JBSUQwPW0KQ09ORklHX01EX1JB SUQxPW0KQ09ORklHX01EX1JBSUQxMD1tCiMgQ09ORklHX01EX1JBSUQ0NTYgaXMgbm90IHNldApD T05GSUdfTURfTVVMVElQQVRIPW0KQ09ORklHX01EX0ZBVUxUWT1tCkNPTkZJR19CTEtfREVWX0RN PW0KIyBDT05GSUdfRE1fREVCVUcgaXMgbm90IHNldApDT05GSUdfRE1fQ1JZUFQ9bQpDT05GSUdf RE1fU05BUFNIT1Q9bQpDT05GSUdfRE1fTUlSUk9SPW0KQ09ORklHX0RNX1pFUk89bQpDT05GSUdf RE1fTVVMVElQQVRIPW0KQ09ORklHX0RNX01VTFRJUEFUSF9FTUM9bQojIENPTkZJR19ETV9NVUxU SVBBVEhfUkRBQyBpcyBub3Qgc2V0CiMgQ09ORklHX0RNX0RFTEFZIGlzIG5vdCBzZXQKCiMKIyBG dXNpb24gTVBUIGRldmljZSBzdXBwb3J0CiMKIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIyBD T05GSUdfRlVTSU9OX1NQSSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0 CiMgQ09ORklHX0ZVU0lPTl9TQVMgaXMgbm90IHNldAoKIwojIElFRUUgMTM5NCAoRmlyZVdpcmUp IHN1cHBvcnQKIwojIENPTkZJR19GSVJFV0lSRSBpcyBub3Qgc2V0CiMgQ09ORklHX0lFRUUxMzk0 IGlzIG5vdCBzZXQKIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKIyBDT05GSUdfTUFDSU5UT1NIX0RS SVZFUlMgaXMgbm90IHNldApDT05GSUdfTkVUREVWSUNFUz15CiMgQ09ORklHX05FVERFVklDRVNf TVVMVElRVUVVRSBpcyBub3Qgc2V0CkNPTkZJR19EVU1NWT1tCkNPTkZJR19CT05ESU5HPW0KIyBD T05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CkNPTkZJR19FUVVBTElaRVI9bQpDT05GSUdfVFVOPW0K Q09ORklHX05FVF9TQjEwMDA9bQojIENPTkZJR19BUkNORVQgaXMgbm90IHNldAojIENPTkZJR19Q SFlMSUIgaXMgbm90IHNldApDT05GSUdfTkVUX0VUSEVSTkVUPXkKQ09ORklHX01JST1tCiMgQ09O RklHX0hBUFBZTUVBTCBpcyBub3Qgc2V0CiMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CiMgQ09O RklHX0NBU1NJTkkgaXMgbm90IHNldAojIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNl dAojIENPTkZJR19MQU5DRSBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfU01DIGlzIG5v dCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9SQUNBTCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9U VUxJUCBpcyBub3Qgc2V0CiMgQ09ORklHX0FUMTcwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0RFUENB IGlzIG5vdCBzZXQKIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAojIENPTkZJR19ORVRfSVNBIGlz IG5vdCBzZXQKQ09ORklHX05FVF9QQ0k9eQojIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKIyBD T05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAojIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlz IG5vdCBzZXQKIyBDT05GSUdfQUMzMjAwIGlzIG5vdCBzZXQKIyBDT05GSUdfQVBSSUNPVCBpcyBu b3Qgc2V0CiMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qg c2V0CiMgQ09ORklHX0NTODl4MCBpcyBub3Qgc2V0CiMgQ09ORklHX0RHUlMgaXMgbm90IHNldAoj IENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0CkNPTkZJR19FMTAwPW0KIyBDT05GSUdfRkVBTE5Y IGlzIG5vdCBzZXQKIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CiMgQ09ORklHX05FMktfUENJ IGlzIG5vdCBzZXQKIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKIyBDT05GSUdfODEzOVRPTyBp cyBub3Qgc2V0CiMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0VQSUMxMDAgaXMg bm90IHNldAojIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RMQU4gaXMgbm90 IHNldAojIENPTkZJR19WSUFfUkhJTkUgaXMgbm90IHNldAojIENPTkZJR19TQzkyMDMxIGlzIG5v dCBzZXQKIyBDT05GSUdfTkVUX1BPQ0tFVCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVERFVl8xMDAw IGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKIyBDT05GSUdfVFIg aXMgbm90IHNldAoKIwojIFdpcmVsZXNzIExBTgojCiMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMg bm90IHNldAojIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKCiMKIyBVU0IgTmV0d29yayBB ZGFwdGVycwojCkNPTkZJR19VU0JfQ0FUQz1tCkNPTkZJR19VU0JfS0FXRVRIPW0KQ09ORklHX1VT Ql9QRUdBU1VTPW0KQ09ORklHX1VTQl9SVEw4MTUwPW0KQ09ORklHX1VTQl9VU0JORVRfTUlJPW0K Q09ORklHX1VTQl9VU0JORVQ9bQpDT05GSUdfVVNCX05FVF9BWDg4MTdYPW0KQ09ORklHX1VTQl9O RVRfQ0RDRVRIRVI9bQojIENPTkZJR19VU0JfTkVUX0RNOTYwMSBpcyBub3Qgc2V0CiMgQ09ORklH X1VTQl9ORVRfR0w2MjBBIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9ORVRfTkVUMTA4MD1tCiMgQ09O RklHX1VTQl9ORVRfUExVU0IgaXMgbm90IHNldAojIENPTkZJR19VU0JfTkVUX01DUzc4MzAgaXMg bm90IHNldAojIENPTkZJR19VU0JfTkVUX1JORElTX0hPU1QgaXMgbm90IHNldAojIENPTkZJR19V U0JfTkVUX0NEQ19TVUJTRVQgaXMgbm90IHNldApDT05GSUdfVVNCX05FVF9aQVVSVVM9bQojIENP TkZJR19ORVRfUENNQ0lBIGlzIG5vdCBzZXQKIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKIyBDT05G SUdfRkRESSBpcyBub3Qgc2V0CiMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQ09ORklHX1BMSVA9 bQpDT05GSUdfUFBQPW0KQ09ORklHX1BQUF9NVUxUSUxJTks9eQpDT05GSUdfUFBQX0ZJTFRFUj15 CkNPTkZJR19QUFBfQVNZTkM9bQpDT05GSUdfUFBQX1NZTkNfVFRZPW0KQ09ORklHX1BQUF9ERUZM QVRFPW0KIyBDT05GSUdfUFBQX0JTRENPTVAgaXMgbm90IHNldAojIENPTkZJR19QUFBfTVBQRSBp cyBub3Qgc2V0CkNPTkZJR19QUFBPRT1tCiMgQ09ORklHX1BQUE9MMlRQIGlzIG5vdCBzZXQKQ09O RklHX1NMSVA9bQpDT05GSUdfU0xJUF9DT01QUkVTU0VEPXkKQ09ORklHX1NMSEM9bQpDT05GSUdf U0xJUF9TTUFSVD15CiMgQ09ORklHX1NMSVBfTU9ERV9TTElQNiBpcyBub3Qgc2V0CkNPTkZJR19O RVRfRkM9eQojIENPTkZJR19TSEFQRVIgaXMgbm90IHNldApDT05GSUdfTkVUQ09OU09MRT1tCkNP TkZJR19ORVRQT0xMPXkKIyBDT05GSUdfTkVUUE9MTF9UUkFQIGlzIG5vdCBzZXQKQ09ORklHX05F VF9QT0xMX0NPTlRST0xMRVI9eQojIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKIyBDT05GSUdfUEhP TkUgaXMgbm90IHNldAoKIwojIElucHV0IGRldmljZSBzdXBwb3J0CiMKQ09ORklHX0lOUFVUPXkK Q09ORklHX0lOUFVUX0ZGX01FTUxFU1M9eQojIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBz ZXQKCiMKIyBVc2VybGFuZCBpbnRlcmZhY2VzCiMKQ09ORklHX0lOUFVUX01PVVNFREVWPXkKQ09O RklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9Y PTEwMjQKQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAojIENPTkZJR19JTlBVVF9K T1lERVYgaXMgbm90IHNldAojIENPTkZJR19JTlBVVF9UU0RFViBpcyBub3Qgc2V0CiMgQ09ORklH X0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAoK IwojIElucHV0IERldmljZSBEcml2ZXJzCiMKQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKQ09ORklH X0tFWUJPQVJEX0FUS0JEPXkKIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKIyBD T05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAojIENPTkZJR19LRVlCT0FSRF9YVEtCRCBp cyBub3Qgc2V0CiMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0tF WUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX01PVVNFPXkKQ09ORklHX01P VVNFX1BTMj15CkNPTkZJR19NT1VTRV9QUzJfQUxQUz15CkNPTkZJR19NT1VTRV9QUzJfTE9HSVBT MlBQPXkKQ09ORklHX01PVVNFX1BTMl9TWU5BUFRJQ1M9eQpDT05GSUdfTU9VU0VfUFMyX0xJRkVC T09LPXkKQ09ORklHX01PVVNFX1BTMl9UUkFDS1BPSU5UPXkKIyBDT05GSUdfTU9VU0VfUFMyX1RP VUNIS0lUIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9VU0VfU0VSSUFMIGlzIG5vdCBzZXQKIyBDT05G SUdfTU9VU0VfQVBQTEVUT1VDSCBpcyBub3Qgc2V0CiMgQ09ORklHX01PVVNFX0lOUE9SVCBpcyBu b3Qgc2V0CiMgQ09ORklHX01PVVNFX0xPR0lCTSBpcyBub3Qgc2V0CiMgQ09ORklHX01PVVNFX1BD MTEwUEFEIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9VU0VfVlNYWFhBQSBpcyBub3Qgc2V0CkNPTkZJ R19JTlBVVF9KT1lTVElDSz15CkNPTkZJR19KT1lTVElDS19BTkFMT0c9bQpDT05GSUdfSk9ZU1RJ Q0tfQTNEPW0KQ09ORklHX0pPWVNUSUNLX0FEST1tCkNPTkZJR19KT1lTVElDS19DT0JSQT1tCkNP TkZJR19KT1lTVElDS19HRjJLPW0KQ09ORklHX0pPWVNUSUNLX0dSSVA9bQpDT05GSUdfSk9ZU1RJ Q0tfR1JJUF9NUD1tCkNPTkZJR19KT1lTVElDS19HVUlMTEVNT1Q9bQpDT05GSUdfSk9ZU1RJQ0tf SU5URVJBQ1Q9bQpDT05GSUdfSk9ZU1RJQ0tfU0lERVdJTkRFUj1tCkNPTkZJR19KT1lTVElDS19U TURDPW0KQ09ORklHX0pPWVNUSUNLX0lGT1JDRT1tCkNPTkZJR19KT1lTVElDS19JRk9SQ0VfVVNC PXkKQ09ORklHX0pPWVNUSUNLX0lGT1JDRV8yMzI9eQpDT05GSUdfSk9ZU1RJQ0tfV0FSUklPUj1t CkNPTkZJR19KT1lTVElDS19NQUdFTExBTj1tCkNPTkZJR19KT1lTVElDS19TUEFDRU9SQj1tCkNP TkZJR19KT1lTVElDS19TUEFDRUJBTEw9bQpDT05GSUdfSk9ZU1RJQ0tfU1RJTkdFUj1tCkNPTkZJ R19KT1lTVElDS19UV0lESk9ZPW0KQ09ORklHX0pPWVNUSUNLX0RCOT1tCkNPTkZJR19KT1lTVElD S19HQU1FQ09OPW0KQ09ORklHX0pPWVNUSUNLX1RVUkJPR1JBRlg9bQpDT05GSUdfSk9ZU1RJQ0tf Sk9ZRFVNUD1tCiMgQ09ORklHX0pPWVNUSUNLX1hQQUQgaXMgbm90IHNldAojIENPTkZJR19JTlBV VF9UQUJMRVQgaXMgbm90IHNldApDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQojIENPTkZJR19U T1VDSFNDUkVFTl9GVUpJVFNVIGlzIG5vdCBzZXQKQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFPW0K Q09ORklHX1RPVUNIU0NSRUVOX0VMTz1tCkNPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0g9bQpDT05G SUdfVE9VQ0hTQ1JFRU5fTUs3MTI9bQojIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBu b3Qgc2V0CiMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAojIENPTkZJ R19UT1VDSFNDUkVFTl9UT1VDSFdJTiBpcyBub3Qgc2V0CiMgQ09ORklHX1RPVUNIU0NSRUVOX1VD QjE0MDAgaXMgbm90IHNldAojIENPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRFIGlzIG5v dCBzZXQKQ09ORklHX0lOUFVUX01JU0M9eQpDT05GSUdfSU5QVVRfUENTUEtSPW0KIyBDT05GSUdf SU5QVVRfV0lTVFJPTl9CVE5TIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfQVRMQVNfQlROUyBp cyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX0FUSV9SRU1PVEUgaXMgbm90IHNldAojIENPTkZJR19J TlBVVF9BVElfUkVNT1RFMiBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX0tFWVNQQU5fUkVNT1RF IGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfUE9XRVJNQVRFIGlzIG5vdCBzZXQKIyBDT05GSUdf SU5QVVRfWUVBTElOSyBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9VSU5QVVQ9bQoKIwojIEhhcmR3 YXJlIEkvTyBwb3J0cwojCkNPTkZJR19TRVJJTz15CkNPTkZJR19TRVJJT19JODA0Mj15CkNPTkZJ R19TRVJJT19TRVJQT1JUPXkKIyBDT05GSUdfU0VSSU9fQ1Q4MkM3MTAgaXMgbm90IHNldAojIENP TkZJR19TRVJJT19QQVJLQkQgaXMgbm90IHNldAojIENPTkZJR19TRVJJT19QQ0lQUzIgaXMgbm90 IHNldApDT05GSUdfU0VSSU9fTElCUFMyPXkKIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQK Q09ORklHX0dBTUVQT1JUPXkKIyBDT05GSUdfR0FNRVBPUlRfTlM1NTggaXMgbm90IHNldAojIENP TkZJR19HQU1FUE9SVF9MNCBpcyBub3Qgc2V0CiMgQ09ORklHX0dBTUVQT1JUX0VNVTEwSzEgaXMg bm90IHNldAojIENPTkZJR19HQU1FUE9SVF9GTTgwMSBpcyBub3Qgc2V0CgojCiMgQ2hhcmFjdGVy IGRldmljZXMKIwpDT05GSUdfVlQ9eQpDT05GSUdfVlRfQ09OU09MRT15CkNPTkZJR19IV19DT05T T0xFPXkKIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKQ09ORklHX1NF UklBTF9OT05TVEFOREFSRD15CiMgQ09ORklHX0NPTVBVVE9ORSBpcyBub3Qgc2V0CkNPTkZJR19S T0NLRVRQT1JUPW0KIyBDT05GSUdfQ1lDTEFERVMgaXMgbm90IHNldAojIENPTkZJR19ESUdJRVBD QSBpcyBub3Qgc2V0CiMgQ09ORklHX0VTUFNFUklBTCBpcyBub3Qgc2V0CiMgQ09ORklHX01PWEFf SU5URUxMSU8gaXMgbm90IHNldAojIENPTkZJR19NT1hBX1NNQVJUSU8gaXMgbm90IHNldAojIENP TkZJR19NT1hBX1NNQVJUSU9fTkVXIGlzIG5vdCBzZXQKIyBDT05GSUdfSVNJIGlzIG5vdCBzZXQK Q09ORklHX1NZTkNMSU5LPW0KQ09ORklHX1NZTkNMSU5LTVA9bQojIENPTkZJR19TWU5DTElOS19H VCBpcyBub3Qgc2V0CkNPTkZJR19OX0hETEM9bQojIENPTkZJR19SSVNDT004IGlzIG5vdCBzZXQK IyBDT05GSUdfU1BFQ0lBTElYIGlzIG5vdCBzZXQKIyBDT05GSUdfU1ggaXMgbm90IHNldAojIENP TkZJR19SSU8gaXMgbm90IHNldApDT05GSUdfU1RBTERSVj15CiMgQ09ORklHX1NUQUxMSU9OIGlz IG5vdCBzZXQKIyBDT05GSUdfSVNUQUxMSU9OIGlzIG5vdCBzZXQKCiMKIyBTZXJpYWwgZHJpdmVy cwojCkNPTkZJR19TRVJJQUxfODI1MD15CkNPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKQ09O RklHX0ZJWF9FQVJMWUNPTl9NRU09eQpDT05GSUdfU0VSSUFMXzgyNTBfUENJPXkKQ09ORklHX1NF UklBTF84MjUwX1BOUD15CkNPTkZJR19TRVJJQUxfODI1MF9DUz1tCkNPTkZJR19TRVJJQUxfODI1 MF9OUl9VQVJUUz0zMgpDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz00CkNPTkZJR19T RVJJQUxfODI1MF9FWFRFTkRFRD15CkNPTkZJR19TRVJJQUxfODI1MF9NQU5ZX1BPUlRTPXkKIyBD T05GSUdfU0VSSUFMXzgyNTBfRk9VUlBPUlQgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfODI1 MF9BQ0NFTlQgaXMgbm90IHNldAojIENPTkZJR19TRVJJQUxfODI1MF9CT0NBIGlzIG5vdCBzZXQK IyBDT05GSUdfU0VSSUFMXzgyNTBfRVhBUl9TVDE2QzU1NCBpcyBub3Qgc2V0CiMgQ09ORklHX1NF UklBTF84MjUwX0hVQjYgaXMgbm90IHNldApDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJRPXkK Q09ORklHX1NFUklBTF84MjUwX0RFVEVDVF9JUlE9eQpDT05GSUdfU0VSSUFMXzgyNTBfUlNBPXkK CiMKIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CiMKQ09ORklHX1NFUklBTF9DT1JFPXkK Q09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQojIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBz ZXQKQ09ORklHX1VOSVg5OF9QVFlTPXkKIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldApD T05GSUdfUFJJTlRFUj1tCkNPTkZJR19MUF9DT05TT0xFPXkKIyBDT05GSUdfUFBERVYgaXMgbm90 IHNldAojIENPTkZJR19USVBBUiBpcyBub3Qgc2V0CiMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBu b3Qgc2V0CiMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKQ09ORklHX0hXX1JBTkRPTT15CkNP TkZJR19IV19SQU5ET01fSU5URUw9eQpDT05GSUdfSFdfUkFORE9NX0FNRD15CkNPTkZJR19IV19S QU5ET01fR0VPREU9eQpDT05GSUdfSFdfUkFORE9NX1ZJQT15CkNPTkZJR19OVlJBTT1tCkNPTkZJ R19SVEM9bQpDT05GSUdfR0VOX1JUQz1tCiMgQ09ORklHX0dFTl9SVENfWCBpcyBub3Qgc2V0CiMg Q09ORklHX0RUTEsgaXMgbm90IHNldAojIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiMgQ09ORklH X0FQUExJQ09NIGlzIG5vdCBzZXQKIyBDT05GSUdfU09OWVBJIGlzIG5vdCBzZXQKQ09ORklHX0FH UD1tCiMgQ09ORklHX0FHUF9BTEkgaXMgbm90IHNldApDT05GSUdfQUdQX0FUST1tCiMgQ09ORklH X0FHUF9BTUQgaXMgbm90IHNldAojIENPTkZJR19BR1BfQU1ENjQgaXMgbm90IHNldApDT05GSUdf QUdQX0lOVEVMPW0KIyBDT05GSUdfQUdQX05WSURJQSBpcyBub3Qgc2V0CiMgQ09ORklHX0FHUF9T SVMgaXMgbm90IHNldAojIENPTkZJR19BR1BfU1dPUktTIGlzIG5vdCBzZXQKIyBDT05GSUdfQUdQ X1ZJQSBpcyBub3Qgc2V0CiMgQ09ORklHX0FHUF9FRkZJQ0VPTiBpcyBub3Qgc2V0CkNPTkZJR19E Uk09bQojIENPTkZJR19EUk1fVERGWCBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9SMTI4IGlzIG5v dCBzZXQKQ09ORklHX0RSTV9SQURFT049bQojIENPTkZJR19EUk1fSTgxMCBpcyBub3Qgc2V0CiMg Q09ORklHX0RSTV9JODMwIGlzIG5vdCBzZXQKIyBDT05GSUdfRFJNX0k5MTUgaXMgbm90IHNldAoj IENPTkZJR19EUk1fTUdBIGlzIG5vdCBzZXQKIyBDT05GSUdfRFJNX1NJUyBpcyBub3Qgc2V0CiMg Q09ORklHX0RSTV9WSUEgaXMgbm90IHNldAojIENPTkZJR19EUk1fU0FWQUdFIGlzIG5vdCBzZXQK CiMKIyBQQ01DSUEgY2hhcmFjdGVyIGRldmljZXMKIwpDT05GSUdfU1lOQ0xJTktfQ1M9bQojIENP TkZJR19DQVJETUFOXzQwMDAgaXMgbm90IHNldAojIENPTkZJR19DQVJETUFOXzQwNDAgaXMgbm90 IHNldApDT05GSUdfTVdBVkU9bQojIENPTkZJR19QQzg3MzZ4X0dQSU8gaXMgbm90IHNldAojIENP TkZJR19OU0NfR1BJTyBpcyBub3Qgc2V0CiMgQ09ORklHX0NTNTUzNV9HUElPIGlzIG5vdCBzZXQK IyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0hQRVQgaXMgbm90IHNldApD T05GSUdfSEFOR0NIRUNLX1RJTUVSPW0KIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiMgQ09O RklHX1RFTENMT0NLIGlzIG5vdCBzZXQKQ09ORklHX0RFVlBPUlQ9eQpDT05GSUdfSTJDPW0KQ09O RklHX0kyQ19CT0FSRElORk89eQpDT05GSUdfSTJDX0NIQVJERVY9bQoKIwojIEkyQyBBbGdvcml0 aG1zCiMKQ09ORklHX0kyQ19BTEdPQklUPW0KQ09ORklHX0kyQ19BTEdPUENGPW0KQ09ORklHX0ky Q19BTEdPUENBPW0KCiMKIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKIwojIENPTkZJR19JMkNf QUxJMTUzNSBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19BTEkxNTYzIGlzIG5vdCBzZXQKIyBDT05G SUdfSTJDX0FMSTE1WDMgaXMgbm90IHNldAojIENPTkZJR19JMkNfQU1ENzU2IGlzIG5vdCBzZXQK IyBDT05GSUdfSTJDX0FNRDgxMTEgaXMgbm90IHNldAojIENPTkZJR19JMkNfRUxFS1RPUiBpcyBu b3Qgc2V0CkNPTkZJR19JMkNfSTgwMT1tCkNPTkZJR19JMkNfSTgxMD1tCkNPTkZJR19JMkNfUElJ WDQ9bQojIENPTkZJR19JMkNfTkZPUkNFMiBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19PQ09SRVMg aXMgbm90IHNldAojIENPTkZJR19JMkNfUEFSUE9SVCBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19Q QVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0 CiMgQ09ORklHX0kyQ19TQVZBR0U0IGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBu b3Qgc2V0CiMgQ09ORklHX1NDeDIwMF9BQ0IgaXMgbm90IHNldAojIENPTkZJR19JMkNfU0lTNTU5 NSBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAojIENPTkZJR19JMkNf U0lTOTZYIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKIyBDT05G SUdfSTJDX1NUVUIgaXMgbm90IHNldAojIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAoj IENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0 CiMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX1BDQV9JU0EgaXMg bm90IHNldAoKIwojIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAojCiMgQ09ORklHX1NF TlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19EUzEzNzQgaXMgbm90IHNl dAojIENPTkZJR19EUzE2ODIgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19FRVBST009bQojIENP TkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1BDQTk1Mzkg aXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAojIENPTkZJR19T RU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90 IHNldAojIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiMgQ09ORklHX0kyQ19ERUJV R19BTEdPIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiMgQ09O RklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKCiMKIyBTUEkgc3VwcG9ydAojCiMgQ09ORklH X1NQSSBpcyBub3Qgc2V0CiMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAojIENPTkZJR19X MSBpcyBub3Qgc2V0CiMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiMgQ09ORklHX0hX TU9OIGlzIG5vdCBzZXQKCiMKIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiMKIyBDT05G SUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKCiMKIyBNdWx0aW1lZGlhIGRldmljZXMKIwojIENPTkZJ R19WSURFT19ERVYgaXMgbm90IHNldAojIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CkNPTkZJ R19EQUI9eQojIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKCiMKIyBHcmFwaGljcyBzdXBw b3J0CiMKQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVD15CkNPTkZJR19MQ0RfQ0xBU1NfREVW SUNFPW0KQ09ORklHX0JBQ0tMSUdIVF9DTEFTU19ERVZJQ0U9eQojIENPTkZJR19CQUNLTElHSFRf UFJPR0VBUiBpcyBub3Qgc2V0CgojCiMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAojCiMgQ09ORklH X0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CkNPTkZJR19WR0FTVEFURT1tCkNPTkZJR19WSURF T19PVVRQVVRfQ09OVFJPTD1tCkNPTkZJR19GQj15CkNPTkZJR19GSVJNV0FSRV9FRElEPXkKQ09O RklHX0ZCX0REQz1tCkNPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQpDT05GSUdfRkJfQ0ZCX0NPUFlB UkVBPXkKQ09ORklHX0ZCX0NGQl9JTUFHRUJMSVQ9eQojIENPTkZJR19GQl9TWVNfRklMTFJFQ1Qg aXMgbm90IHNldAojIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAojIENPTkZJR19G Ql9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNl dApDT05GSUdfRkJfREVGRVJSRURfSU89eQojIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQK IyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldApDT05GSUdfRkJfQkFDS0xJR0hUPXkKQ09O RklHX0ZCX01PREVfSEVMUEVSUz15CkNPTkZJR19GQl9USUxFQkxJVFRJTkc9eQoKIwojIEZyYW1l IGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCiMKQ09ORklHX0ZCX0NJUlJVUz1tCiMgQ09ORklHX0ZC X1BNMiBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0CiMgQ09ORklH X0ZCX0FSQyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKIyBDT05G SUdfRkJfSU1TVFQgaXMgbm90IHNldApDT05GSUdfRkJfVkdBMTY9bQpDT05GSUdfRkJfVkVTQT15 CiMgQ09ORklHX0ZCX0hFQ1VCQSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0hHQSBpcyBub3Qgc2V0 CiMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfTlZJRElBIGlzIG5v dCBzZXQKIyBDT05GSUdfRkJfUklWQSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0k4MTAgaXMgbm90 IHNldAojIENPTkZJR19GQl9MRTgwNTc4IGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfSU5URUwgaXMg bm90IHNldAojIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldApDT05GSUdfRkJfUkFERU9OPW0K Q09ORklHX0ZCX1JBREVPTl9JMkM9eQpDT05GSUdfRkJfUkFERU9OX0JBQ0tMSUdIVD15CiMgQ09O RklHX0ZCX1JBREVPTl9ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qg c2V0CiMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX1MzIGlzIG5vdCBzZXQK IyBDT05GSUdfRkJfU0FWQUdFIGlzIG5vdCBzZXQKIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQK IyBDT05GSUdfRkJfTkVPTUFHSUMgaXMgbm90IHNldAojIENPTkZJR19GQl9LWVJPIGlzIG5vdCBz ZXQKIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZCX1ZPT0RPTzEgaXMgbm90 IHNldAojIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAojIENPTkZJR19GQl9DWUJMQSBpcyBu b3Qgc2V0CiMgQ09ORklHX0ZCX1RSSURFTlQgaXMgbm90IHNldAojIENPTkZJR19GQl9BUksgaXMg bm90IHNldAojIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAojIENPTkZJR19GQl9HRU9ERSBpcyBu b3Qgc2V0CiMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAoKIwojIENvbnNvbGUgZGlzcGxh eSBkcml2ZXIgc3VwcG9ydAojCkNPTkZJR19WR0FfQ09OU09MRT15CiMgQ09ORklHX1ZHQUNPTl9T T0ZUX1NDUk9MTEJBQ0sgaXMgbm90IHNldApDT05GSUdfVklERU9fU0VMRUNUPXkKQ09ORklHX01E QV9DT05TT0xFPW0KQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQpDT05GSUdfRlJBTUVCVUZGRVJfQ09O U09MRT15CiMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaXMgbm90 IHNldAojIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX1JPVEFUSU9OIGlzIG5vdCBzZXQKIyBD T05GSUdfRk9OVFMgaXMgbm90IHNldApDT05GSUdfRk9OVF84eDg9eQpDT05GSUdfRk9OVF84eDE2 PXkKQ09ORklHX0xPR089eQojIENPTkZJR19MT0dPX0xJTlVYX01PTk8gaXMgbm90IHNldAojIENP TkZJR19MT0dPX0xJTlVYX1ZHQTE2IGlzIG5vdCBzZXQKQ09ORklHX0xPR09fTElOVVhfQ0xVVDIy ND15CgojCiMgU291bmQKIwpDT05GSUdfU09VTkQ9bQoKIwojIEFkdmFuY2VkIExpbnV4IFNvdW5k IEFyY2hpdGVjdHVyZQojCkNPTkZJR19TTkQ9bQpDT05GSUdfU05EX1RJTUVSPW0KQ09ORklHX1NO RF9QQ009bQpDT05GSUdfU05EX1JBV01JREk9bQpDT05GSUdfU05EX1NFUVVFTkNFUj1tCkNPTkZJ R19TTkRfU0VRX0RVTU1ZPW0KQ09ORklHX1NORF9PU1NFTVVMPXkKQ09ORklHX1NORF9NSVhFUl9P U1M9bQpDT05GSUdfU05EX1BDTV9PU1M9bQpDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CkNP TkZJR19TTkRfU0VRVUVOQ0VSX09TUz15CkNPTkZJR19TTkRfUlRDVElNRVI9bQpDT05GSUdfU05E X1NFUV9SVENUSU1FUl9ERUZBVUxUPXkKIyBDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTIGlzIG5v dCBzZXQKQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQpDT05GSUdfU05EX1ZFUkJPU0VfUFJP Q0ZTPXkKIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKIyBDT05GSUdfU05E X0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBHZW5lcmljIGRldmljZXMKIwpDT05GSUdfU05EX01QVTQw MV9VQVJUPW0KQ09ORklHX1NORF9BQzk3X0NPREVDPW0KQ09ORklHX1NORF9EVU1NWT1tCkNPTkZJ R19TTkRfVklSTUlEST1tCkNPTkZJR19TTkRfTVRQQVY9bQojIENPTkZJR19TTkRfTVRTNjQgaXMg bm90IHNldAojIENPTkZJR19TTkRfU0VSSUFMX1UxNjU1MCBpcyBub3Qgc2V0CkNPTkZJR19TTkRf TVBVNDAxPW0KIyBDT05GSUdfU05EX1BPUlRNQU4yWDQgaXMgbm90IHNldAoKIwojIElTQSBkZXZp Y2VzCiMKIyBDT05GSUdfU05EX0FETElCIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0FEMTgxNkEg aXMgbm90IHNldAojIENPTkZJR19TTkRfQUQxODQ4IGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0FM UzEwMCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9BWlQyMzIwIGlzIG5vdCBzZXQKIyBDT05GSUdf U05EX0NNSTgzMzAgaXMgbm90IHNldAojIENPTkZJR19TTkRfQ1M0MjMxIGlzIG5vdCBzZXQKIyBD T05GSUdfU05EX0NTNDIzMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9DUzQyMzYgaXMgbm90IHNl dAojIENPTkZJR19TTkRfRFQwMTlYIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0VTOTY4IGlzIG5v dCBzZXQKIyBDT05GSUdfU05EX0VTMTY4OCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9FUzE4WFgg aXMgbm90IHNldAojIENPTkZJR19TTkRfR1VTQ0xBU1NJQyBpcyBub3Qgc2V0CiMgQ09ORklHX1NO RF9HVVNFWFRSRU1FIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0dVU01BWCBpcyBub3Qgc2V0CiMg Q09ORklHX1NORF9JTlRFUldBVkUgaXMgbm90IHNldAojIENPTkZJR19TTkRfSU5URVJXQVZFX1NU QiBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9PUEwzU0EyIGlzIG5vdCBzZXQKIyBDT05GSUdfU05E X09QVEk5MlhfQUQxODQ4IGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX09QVEk5MlhfQ1M0MjMxIGlz IG5vdCBzZXQKIyBDT05GSUdfU05EX09QVEk5M1ggaXMgbm90IHNldAojIENPTkZJR19TTkRfTUlS TyBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9TQjggaXMgbm90IHNldAojIENPTkZJR19TTkRfU0Ix NiBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9TQkFXRSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9T R0FMQVhZIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX1NTQ0FQRSBpcyBub3Qgc2V0CiMgQ09ORklH X1NORF9XQVZFRlJPTlQgaXMgbm90IHNldAoKIwojIFBDSSBkZXZpY2VzCiMKIyBDT05GSUdfU05E X0FEMTg4OSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9BTFMzMDAgaXMgbm90IHNldAojIENPTkZJ R19TTkRfQUxTNDAwMCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9BTEk1NDUxIGlzIG5vdCBzZXQK IyBDT05GSUdfU05EX0FUSUlYUCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9BVElJWFBfTU9ERU0g aXMgbm90IHNldAojIENPTkZJR19TTkRfQVU4ODEwIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0FV ODgyMCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAojIENPTkZJR19T TkRfQVpUMzMyOCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0CiMgQ09O RklHX1NORF9DQTAxMDYgaXMgbm90IHNldAojIENPTkZJR19TTkRfQ01JUENJIGlzIG5vdCBzZXQK IyBDT05GSUdfU05EX0NTNDI4MSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9DUzQ2WFggaXMgbm90 IHNldAojIENPTkZJR19TTkRfQ1M1NTMwIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0NTNTUzNUFV RElPIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0RBUkxBMjAgaXMgbm90IHNldAojIENPTkZJR19T TkRfR0lOQTIwIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0xBWUxBMjAgaXMgbm90IHNldAojIENP TkZJR19TTkRfREFSTEEyNCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9HSU5BMjQgaXMgbm90IHNl dAojIENPTkZJR19TTkRfTEFZTEEyNCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9NT05BIGlzIG5v dCBzZXQKIyBDT05GSUdfU05EX01JQSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9FQ0hPM0cgaXMg bm90IHNldAojIENPTkZJR19TTkRfSU5ESUdPIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0lORElH T0lPIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0lORElHT0RKIGlzIG5vdCBzZXQKIyBDT05GSUdf U05EX0VNVTEwSzEgaXMgbm90IHNldAojIENPTkZJR19TTkRfRU1VMTBLMVggaXMgbm90IHNldAoj IENPTkZJR19TTkRfRU5TMTM3MCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9FTlMxMzcxIGlzIG5v dCBzZXQKIyBDT05GSUdfU05EX0VTMTkzOCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9FUzE5Njgg aXMgbm90IHNldAojIENPTkZJR19TTkRfRk04MDEgaXMgbm90IHNldAojIENPTkZJR19TTkRfSERB X0lOVEVMIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0hEU1AgaXMgbm90IHNldAojIENPTkZJR19T TkRfSERTUE0gaXMgbm90IHNldAojIENPTkZJR19TTkRfSUNFMTcxMiBpcyBub3Qgc2V0CiMgQ09O RklHX1NORF9JQ0UxNzI0IGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0lOVEVMOFgwIGlzIG5vdCBz ZXQKIyBDT05GSUdfU05EX0lOVEVMOFgwTSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9LT1JHMTIx MiBpcyBub3Qgc2V0CkNPTkZJR19TTkRfTUFFU1RSTzM9bQpDT05GSUdfU05EX01BRVNUUk8zX0ZJ Uk1XQVJFX0lOX0tFUk5FTD15CiMgQ09ORklHX1NORF9NSVhBUlQgaXMgbm90IHNldAojIENPTkZJ R19TTkRfTk0yNTYgaXMgbm90IHNldAojIENPTkZJR19TTkRfUENYSFIgaXMgbm90IHNldAojIENP TkZJR19TTkRfUklQVElERSBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9STUUzMiBpcyBub3Qgc2V0 CiMgQ09ORklHX1NORF9STUU5NiBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9STUU5NjUyIGlzIG5v dCBzZXQKIyBDT05GSUdfU05EX1NPTklDVklCRVMgaXMgbm90IHNldAojIENPTkZJR19TTkRfVFJJ REVOVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NORF9WSUE4MlhYIGlzIG5vdCBzZXQKIyBDT05GSUdf U05EX1ZJQTgyWFhfTU9ERU0gaXMgbm90IHNldAojIENPTkZJR19TTkRfVlgyMjIgaXMgbm90IHNl dAojIENPTkZJR19TTkRfWU1GUENJIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX0FDOTdfUE9XRVJf U0FWRSBpcyBub3Qgc2V0CgojCiMgVVNCIGRldmljZXMKIwojIENPTkZJR19TTkRfVVNCX0FVRElP IGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX1VTQl9VU1gyWSBpcyBub3Qgc2V0CiMgQ09ORklHX1NO RF9VU0JfQ0FJQVEgaXMgbm90IHNldAoKIwojIFBDTUNJQSBkZXZpY2VzCiMKIyBDT05GSUdfU05E X1ZYUE9DS0VUIGlzIG5vdCBzZXQKIyBDT05GSUdfU05EX1BEQVVESU9DRiBpcyBub3Qgc2V0Cgoj CiMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAojCiMgQ09ORklHX1NORF9TT0MgaXMgbm90 IHNldAoKIwojIFNvQyBBdWRpbyBzdXBwb3J0IGZvciBTdXBlckgKIwoKIwojIE9wZW4gU291bmQg U3lzdGVtCiMKIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldApDT05GSUdfQUM5N19CVVM9 bQpDT05GSUdfSElEX1NVUFBPUlQ9eQpDT05GSUdfSElEPXkKQ09ORklHX0hJRF9ERUJVRz15Cgoj CiMgVVNCIElucHV0IERldmljZXMKIwpDT05GSUdfVVNCX0hJRD15CiMgQ09ORklHX1VTQl9ISURJ TlBVVF9QT1dFUkJPT0sgaXMgbm90IHNldApDT05GSUdfSElEX0ZGPXkKQ09ORklHX0hJRF9QSUQ9 eQpDT05GSUdfTE9HSVRFQ0hfRkY9eQojIENPTkZJR19QQU5USEVSTE9SRF9GRiBpcyBub3Qgc2V0 CkNPTkZJR19USFJVU1RNQVNURVJfRkY9eQojIENPTkZJR19aRVJPUExVU19GRiBpcyBub3Qgc2V0 CkNPTkZJR19VU0JfSElEREVWPXkKQ09ORklHX1VTQl9TVVBQT1JUPXkKQ09ORklHX1VTQl9BUkNI X0hBU19IQ0Q9eQpDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQpDT05GSUdfVVNCX0FSQ0hfSEFT X0VIQ0k9eQpDT05GSUdfVVNCPXkKIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKCiMKIyBN aXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCiMKQ09ORklHX1VTQl9ERVZJQ0VGUz15CkNPTkZJR19V U0JfREVWSUNFX0NMQVNTPXkKIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQK IyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAojIENPTkZJR19VU0JfUEVSU0lTVCBpcyBu b3Qgc2V0CiMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAoKIwojIFVTQiBIb3N0IENvbnRyb2xs ZXIgRHJpdmVycwojCkNPTkZJR19VU0JfRUhDSV9IQ0Q9bQpDT05GSUdfVVNCX0VIQ0lfU1BMSVRf SVNPPXkKQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKIyBDT05GSUdfVVNCX0VIQ0lfVFRf TkVXU0NIRUQgaXMgbm90IHNldAojIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldApD T05GSUdfVVNCX09IQ0lfSENEPW0KIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlz IG5vdCBzZXQKIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKQ09O RklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQpDT05GSUdfVVNCX1VIQ0lfSENEPW0KQ09ORklH X1VTQl9TTDgxMV9IQ0Q9bQpDT05GSUdfVVNCX1NMODExX0NTPW0KIyBDT05GSUdfVVNCX1I4QTY2 NTk3X0hDRCBpcyBub3Qgc2V0CgojCiMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCiMKQ09ORklH X1VTQl9BQ009bQpDT05GSUdfVVNCX1BSSU5URVI9bQoKIwojIE5PVEU6IFVTQl9TVE9SQUdFIGVu YWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKIwoKIwojIG1heSBhbHNvIGJlIG5l ZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KIwpDT05GSUdf VVNCX1NUT1JBR0U9bQojIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJ R19VU0JfU1RPUkFHRV9EQVRBRkFCPXkKQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT009eQpDT05G SUdfVVNCX1NUT1JBR0VfSVNEMjAwPXkKQ09ORklHX1VTQl9TVE9SQUdFX0RQQ009eQpDT05GSUdf VVNCX1NUT1JBR0VfVVNCQVQ9eQpDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5PXkKQ09ORklHX1VT Ql9TVE9SQUdFX1NERFI1NT15CkNPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVD15CiMgQ09ORklH X1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1B IGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKCiMKIyBVU0IgSW1h Z2luZyBkZXZpY2VzCiMKQ09ORklHX1VTQl9NREM4MDA9bQpDT05GSUdfVVNCX01JQ1JPVEVLPW0K Q09ORklHX1VTQl9NT049eQoKIwojIFVTQiBwb3J0IGRyaXZlcnMKIwpDT05GSUdfVVNCX1VTUzcy MD1tCgojCiMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAojCkNPTkZJR19VU0JfU0VSSUFM PW0KQ09ORklHX1VTQl9TRVJJQUxfR0VORVJJQz15CiMgQ09ORklHX1VTQl9TRVJJQUxfQUlSQ0FC TEUgaXMgbm90IHNldApDT05GSUdfVVNCX1NFUklBTF9BSVJQUklNRT1tCiMgQ09ORklHX1VTQl9T RVJJQUxfQVJLMzExNiBpcyBub3Qgc2V0CkNPTkZJR19VU0JfU0VSSUFMX0JFTEtJTj1tCkNPTkZJ R19VU0JfU0VSSUFMX1dISVRFSEVBVD1tCkNPTkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9S VD1tCkNPTkZJR19VU0JfU0VSSUFMX0NQMjEwMT1tCkNPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1Nf TTg9bQpDT05GSUdfVVNCX1NFUklBTF9FTVBFRz1tCkNPTkZJR19VU0JfU0VSSUFMX0ZURElfU0lP PW0KIyBDT05GSUdfVVNCX1NFUklBTF9GVU5TT0ZUIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9TRVJJ QUxfVklTT1I9bQpDT05GSUdfVVNCX1NFUklBTF9JUEFRPW0KQ09ORklHX1VTQl9TRVJJQUxfSVI9 bQpDT05GSUdfVVNCX1NFUklBTF9FREdFUE9SVD1tCkNPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JU X1RJPW0KQ09ORklHX1VTQl9TRVJJQUxfR0FSTUlOPW0KQ09ORklHX1VTQl9TRVJJQUxfSVBXPW0K Q09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREE9bQpDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFO PW0KQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9NUFI9eQpDT05GSUdfVVNCX1NFUklBTF9LRVlT UEFOX1VTQTI4PXkKQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFg9eQpDT05GSUdfVVNC X1NFUklBTF9LRVlTUEFOX1VTQTI4WEE9eQpDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4 WEI9eQpDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5PXkKQ09ORklHX1VTQl9TRVJJQUxf S0VZU1BBTl9VU0ExOFg9eQpDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5Vz15CkNPTkZJ R19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRVz15CkNPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5f VVNBMTlRST15CkNPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXPXkKQ09ORklHX1VTQl9T RVJJQUxfS0VZU1BBTl9VU0E0OVdMQz15CkNPTkZJR19VU0JfU0VSSUFMX0tMU0k9bQpDT05GSUdf VVNCX1NFUklBTF9LT0JJTF9TQ1Q9bQpDT05GSUdfVVNCX1NFUklBTF9NQ1RfVTIzMj1tCiMgQ09O RklHX1VTQl9TRVJJQUxfTU9TNzcyMCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TRVJJQUxfTU9T Nzg0MCBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9TRVJJQUxfTkFWTUFOIGlzIG5vdCBzZXQKQ09O RklHX1VTQl9TRVJJQUxfUEwyMzAzPW0KIyBDT05GSUdfVVNCX1NFUklBTF9PVEk2ODU4IGlzIG5v dCBzZXQKQ09ORklHX1VTQl9TRVJJQUxfSFA0WD1tCkNPTkZJR19VU0JfU0VSSUFMX1NBRkU9bQpD T05GSUdfVVNCX1NFUklBTF9TQUZFX1BBRERFRD15CiMgQ09ORklHX1VTQl9TRVJJQUxfU0lFUlJB V0lSRUxFU1MgaXMgbm90IHNldApDT05GSUdfVVNCX1NFUklBTF9UST1tCkNPTkZJR19VU0JfU0VS SUFMX0NZQkVSSkFDSz1tCkNPTkZJR19VU0JfU0VSSUFMX1hJUkNPTT1tCkNPTkZJR19VU0JfU0VS SUFMX09QVElPTj1tCkNPTkZJR19VU0JfU0VSSUFMX09NTklORVQ9bQojIENPTkZJR19VU0JfU0VS SUFMX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9FWlVTQj15CgojCiMgVVNCIE1pc2NlbGxh bmVvdXMgZHJpdmVycwojCkNPTkZJR19VU0JfRU1JNjI9bQojIENPTkZJR19VU0JfRU1JMjYgaXMg bm90IHNldAojIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9BVUVSU1dB TEQ9bQpDT05GSUdfVVNCX1JJTzUwMD1tCkNPTkZJR19VU0JfTEVHT1RPV0VSPW0KQ09ORklHX1VT Ql9MQ0Q9bQojIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKQ09ORklHX1VTQl9M RUQ9bQojIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAojIENPTkZJR19VU0Jf Q1lUSEVSTSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKQ09ORklH X1VTQl9JRE1PVVNFPW0KIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CiMgQ09ORklH X1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldApDT05GSUdfVVNCX1NJU1VTQlZHQT1tCiMgQ09O RklHX1VTQl9TSVNVU0JWR0FfQ09OIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBz ZXQKIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCX0lP V0FSUklPUiBpcyBub3Qgc2V0CkNPTkZJR19VU0JfVEVTVD1tCgojCiMgVVNCIERTTCBtb2RlbSBz dXBwb3J0CiMKCiMKIyBVU0IgR2FkZ2V0IFN1cHBvcnQKIwojIENPTkZJR19VU0JfR0FER0VUIGlz IG5vdCBzZXQKIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90 IHNldAojIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKIyBDT05GSUdfRURBQyBpcyBub3Qg c2V0CkNPTkZJR19SVENfTElCPW0KQ09ORklHX1JUQ19DTEFTUz1tCgojCiMgUlRDIGludGVyZmFj ZXMKIwpDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQpDT05GSUdfUlRDX0lOVEZfUFJPQz15CkNPTkZJ R19SVENfSU5URl9ERVY9eQojIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNl dAojIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAoKIwojIEkyQyBSVEMgZHJpdmVycwoj CiMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9EUzE2 NzIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAojIENPTkZJ R19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMg bm90IHNldAojIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RS Vl9QQ0Y4NTYzIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQK IyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAoKIwojIFNQSSBSVEMgZHJpdmVycwoj CgojCiMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKIwojIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90 IHNldAojIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZf U1RLMTdUQTggaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CiMg Q09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkg aXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKCiMKIyBvbi1DUFUg UlRDIGRyaXZlcnMKIwoKIwojIERNQSBFbmdpbmUgc3VwcG9ydAojCkNPTkZJR19ETUFfRU5HSU5F PXkKCiMKIyBETUEgQ2xpZW50cwojCkNPTkZJR19ORVRfRE1BPXkKCiMKIyBETUEgRGV2aWNlcwoj CkNPTkZJR19JTlRFTF9JT0FURE1BPW0KIyBDT05GSUdfQVVYRElTUExBWSBpcyBub3Qgc2V0CiMg Q09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKCiMKIyBVc2Vyc3BhY2UgSS9PCiMKIyBD T05GSUdfVUlPIGlzIG5vdCBzZXQKCiMKIyBGaWxlIHN5c3RlbXMKIwpDT05GSUdfRVhUMl9GUz15 CkNPTkZJR19FWFQyX0ZTX1hBVFRSPXkKQ09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXkKQ09ORklH X0VYVDJfRlNfU0VDVVJJVFk9eQojIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CkNPTkZJ R19FWFQzX0ZTPW0KQ09ORklHX0VYVDNfRlNfWEFUVFI9eQpDT05GSUdfRVhUM19GU19QT1NJWF9B Q0w9eQpDT05GSUdfRVhUM19GU19TRUNVUklUWT15CiMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90 IHNldApDT05GSUdfSkJEPW0KIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX0ZT X01CQ0FDSEU9eQojIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0pGU19G UyBpcyBub3Qgc2V0CkNPTkZJR19GU19QT1NJWF9BQ0w9eQojIENPTkZJR19YRlNfRlMgaXMgbm90 IHNldAojIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90 IHNldAojIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1JPTUZTX0ZTIGlzIG5v dCBzZXQKQ09ORklHX0lOT1RJRlk9eQpDT05GSUdfSU5PVElGWV9VU0VSPXkKIyBDT05GSUdfUVVP VEEgaXMgbm90IHNldApDT05GSUdfRE5PVElGWT15CkNPTkZJR19BVVRPRlNfRlM9bQpDT05GSUdf QVVUT0ZTNF9GUz1tCiMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAoKIwojIENELVJPTS9EVkQg RmlsZXN5c3RlbXMKIwpDT05GSUdfSVNPOTY2MF9GUz15CkNPTkZJR19KT0xJRVQ9eQpDT05GSUdf WklTT0ZTPXkKQ09ORklHX1VERl9GUz1tCkNPTkZJR19VREZfTkxTPXkKCiMKIyBET1MvRkFUL05U IEZpbGVzeXN0ZW1zCiMKQ09ORklHX0ZBVF9GUz1tCkNPTkZJR19NU0RPU19GUz1tCkNPTkZJR19W RkFUX0ZTPW0KQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwpDT05GSUdfRkFUX0RFRkFV TFRfSU9DSEFSU0VUPSJhc2NpaSIKQ09ORklHX05URlNfRlM9bQojIENPTkZJR19OVEZTX0RFQlVH IGlzIG5vdCBzZXQKIyBDT05GSUdfTlRGU19SVyBpcyBub3Qgc2V0CgojCiMgUHNldWRvIGZpbGVz eXN0ZW1zCiMKQ09ORklHX1BST0NfRlM9eQpDT05GSUdfUFJPQ19LQ09SRT15CkNPTkZJR19QUk9D X1NZU0NUTD15CkNPTkZJR19TWVNGUz15CkNPTkZJR19UTVBGUz15CiMgQ09ORklHX1RNUEZTX1BP U0lYX0FDTCBpcyBub3Qgc2V0CkNPTkZJR19IVUdFVExCRlM9eQpDT05GSUdfSFVHRVRMQl9QQUdF PXkKQ09ORklHX1JBTUZTPXkKIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAoKIwojIE1p c2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKIwojIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKIyBD T05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0VDUllQVF9GUyBpcyBub3Qgc2V0CiMg Q09ORklHX0hGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAoj IENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKIyBD T05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKIyBDT05G SUdfVlhGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAojIENPTkZJ R19RTlg0RlNfRlMgaXMgbm90IHNldAojIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKIyBDT05G SUdfVUZTX0ZTIGlzIG5vdCBzZXQKCiMKIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwojCkNPTkZJR19O RlNfRlM9bQpDT05GSUdfTkZTX1YzPXkKIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CkNP TkZJR19ORlNfVjQ9eQpDT05GSUdfTkZTX0RJUkVDVElPPXkKQ09ORklHX05GU0Q9bQpDT05GSUdf TkZTRF9WMz15CiMgQ09ORklHX05GU0RfVjNfQUNMIGlzIG5vdCBzZXQKQ09ORklHX05GU0RfVjQ9 eQpDT05GSUdfTkZTRF9UQ1A9eQpDT05GSUdfTE9DS0Q9bQpDT05GSUdfTE9DS0RfVjQ9eQpDT05G SUdfRVhQT1JURlM9bQpDT05GSUdfTkZTX0NPTU1PTj15CkNPTkZJR19TVU5SUEM9bQpDT05GSUdf U1VOUlBDX0dTUz1tCiMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldApDT05GSUdfUlBD U0VDX0dTU19LUkI1PW0KIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CiMgQ09O RklHX1NNQl9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0NJRlMgaXMgbm90IHNldAojIENPTkZJR19O Q1BfRlMgaXMgbm90IHNldAojIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfQUZT X0ZTIGlzIG5vdCBzZXQKCiMKIyBQYXJ0aXRpb24gVHlwZXMKIwpDT05GSUdfUEFSVElUSU9OX0FE VkFOQ0VEPXkKIyBDT05GSUdfQUNPUk5fUEFSVElUSU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfT1NG X1BBUlRJVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0 CiMgQ09ORklHX0FUQVJJX1BBUlRJVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX01BQ19QQVJUSVRJ T04gaXMgbm90IHNldApDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKQ09ORklHX0JTRF9ESVNLTEFC RUw9eQpDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OPXkKQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJ VElPTj15CkNPTkZJR19VTklYV0FSRV9ESVNLTEFCRUw9eQojIENPTkZJR19MRE1fUEFSVElUSU9O IGlzIG5vdCBzZXQKIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX1VM VFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAojIENPTkZJR19TVU5fUEFSVElUSU9OIGlzIG5vdCBz ZXQKIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfRUZJX1BBUlRJ VElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldAoKIwoj IE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0CiMKQ09ORklHX05MUz15CkNPTkZJR19OTFNfREVGQVVM VD0iaXNvODg1OS0xIgpDT05GSUdfTkxTX0NPREVQQUdFXzQzNz1tCkNPTkZJR19OTFNfQ09ERVBB R0VfNzM3PW0KQ09ORklHX05MU19DT0RFUEFHRV83NzU9bQpDT05GSUdfTkxTX0NPREVQQUdFXzg1 MD1tCkNPTkZJR19OTFNfQ09ERVBBR0VfODUyPW0KQ09ORklHX05MU19DT0RFUEFHRV84NTU9bQpD T05GSUdfTkxTX0NPREVQQUdFXzg1Nz1tCkNPTkZJR19OTFNfQ09ERVBBR0VfODYwPW0KQ09ORklH X05MU19DT0RFUEFHRV84NjE9bQpDT05GSUdfTkxTX0NPREVQQUdFXzg2Mj1tCkNPTkZJR19OTFNf Q09ERVBBR0VfODYzPW0KQ09ORklHX05MU19DT0RFUEFHRV84NjQ9bQpDT05GSUdfTkxTX0NPREVQ QUdFXzg2NT1tCkNPTkZJR19OTFNfQ09ERVBBR0VfODY2PW0KQ09ORklHX05MU19DT0RFUEFHRV84 Njk9bQpDT05GSUdfTkxTX0NPREVQQUdFXzkzNj1tCkNPTkZJR19OTFNfQ09ERVBBR0VfOTUwPW0K Q09ORklHX05MU19DT0RFUEFHRV85MzI9bQpDT05GSUdfTkxTX0NPREVQQUdFXzk0OT1tCkNPTkZJ R19OTFNfQ09ERVBBR0VfODc0PW0KQ09ORklHX05MU19JU084ODU5Xzg9bQpDT05GSUdfTkxTX0NP REVQQUdFXzEyNTA9bQpDT05GSUdfTkxTX0NPREVQQUdFXzEyNTE9bQpDT05GSUdfTkxTX0FTQ0lJ PW0KQ09ORklHX05MU19JU084ODU5XzE9eQpDT05GSUdfTkxTX0lTTzg4NTlfMj1tCkNPTkZJR19O TFNfSVNPODg1OV8zPW0KQ09ORklHX05MU19JU084ODU5XzQ9bQpDT05GSUdfTkxTX0lTTzg4NTlf NT1tCkNPTkZJR19OTFNfSVNPODg1OV82PW0KQ09ORklHX05MU19JU084ODU5Xzc9bQpDT05GSUdf TkxTX0lTTzg4NTlfOT1tCkNPTkZJR19OTFNfSVNPODg1OV8xMz1tCkNPTkZJR19OTFNfSVNPODg1 OV8xND1tCkNPTkZJR19OTFNfSVNPODg1OV8xNT1tCkNPTkZJR19OTFNfS09JOF9SPW0KQ09ORklH X05MU19LT0k4X1U9bQpDT05GSUdfTkxTX1VURjg9bQoKIwojIERpc3RyaWJ1dGVkIExvY2sgTWFu YWdlcgojCiMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CkNPTkZJR19JTlNUUlVNRU5UQVRJT049eQoj IENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAojIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQK CiMKIyBLZXJuZWwgaGFja2luZwojCkNPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKIyBD T05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAojIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBp cyBub3Qgc2V0CiMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKIyBDT05GSUdfVU5VU0VE X1NZTUJPTFMgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CiMgQ09ORklH X0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAojIENPTkZJR19JUElQRV9ERUJVRyBpcyBub3Qgc2V0 CiMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CkNPTkZJR19ERUJVR19CVUdWRVJCT1NF PXkKQ09ORklHX0VBUkxZX1BSSU5USz15CkNPTkZJR19YODZfRklORF9TTVBfQ09ORklHPXkKQ09O RklHX1g4Nl9NUFBBUlNFPXkKQ09ORklHX0RPVUJMRUZBVUxUPXkKCiMKIyBTZWN1cml0eSBvcHRp b25zCiMKQ09ORklHX0tFWVM9eQpDT05GSUdfS0VZU19ERUJVR19QUk9DX0tFWVM9eQpDT05GSUdf U0VDVVJJVFk9eQpDT05GSUdfU0VDVVJJVFlfTkVUV09SSz15CiMgQ09ORklHX1NFQ1VSSVRZX05F VFdPUktfWEZSTSBpcyBub3Qgc2V0CkNPTkZJR19TRUNVUklUWV9DQVBBQklMSVRJRVM9eQojIENP TkZJR19TRUNVUklUWV9ST09UUExVRyBpcyBub3Qgc2V0CkNPTkZJR19TRUNVUklUWV9TRUxJTlVY PXkKQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQk9PVFBBUkFNPXkKQ09ORklHX1NFQ1VSSVRZX1NF TElOVVhfQk9PVFBBUkFNX1ZBTFVFPTEKQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfRElTQUJMRT15 CkNPTkZJR19TRUNVUklUWV9TRUxJTlVYX0RFVkVMT1A9eQpDT05GSUdfU0VDVVJJVFlfU0VMSU5V WF9BVkNfU1RBVFM9eQpDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9DSEVDS1JFUVBST1RfVkFMVUU9 MQojIENPTkZJR19TRUNVUklUWV9TRUxJTlVYX0VOQUJMRV9TRUNNQVJLX0RFRkFVTFQgaXMgbm90 IHNldAojIENPTkZJR19TRUNVUklUWV9TRUxJTlVYX1BPTElDWURCX1ZFUlNJT05fTUFYIGlzIG5v dCBzZXQKQ09ORklHX0NSWVBUTz15CkNPTkZJR19DUllQVE9fQUxHQVBJPXkKQ09ORklHX0NSWVBU T19CTEtDSVBIRVI9bQpDT05GSUdfQ1JZUFRPX0hBU0g9eQpDT05GSUdfQ1JZUFRPX01BTkFHRVI9 eQpDT05GSUdfQ1JZUFRPX0hNQUM9eQojIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CkNP TkZJR19DUllQVE9fTlVMTD1tCkNPTkZJR19DUllQVE9fTUQ0PW0KQ09ORklHX0NSWVBUT19NRDU9 eQpDT05GSUdfQ1JZUFRPX1NIQTE9bQpDT05GSUdfQ1JZUFRPX1NIQTI1Nj1tCkNPTkZJR19DUllQ VE9fU0hBNTEyPW0KQ09ORklHX0NSWVBUT19XUDUxMj1tCkNPTkZJR19DUllQVE9fVEdSMTkyPW0K IyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19FQ0I9bQpD T05GSUdfQ1JZUFRPX0NCQz1tCkNPTkZJR19DUllQVE9fUENCQz1tCiMgQ09ORklHX0NSWVBUT19M UlcgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKQ09ORklHX0NS WVBUT19ERVM9bQojIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBU T19CTE9XRklTSD1tCkNPTkZJR19DUllQVE9fVFdPRklTSD1tCkNPTkZJR19DUllQVE9fVFdPRklT SF9DT01NT049bQojIENPTkZJR19DUllQVE9fVFdPRklTSF81ODYgaXMgbm90IHNldApDT05GSUdf Q1JZUFRPX1NFUlBFTlQ9bQpDT05GSUdfQ1JZUFRPX0FFUz1tCkNPTkZJR19DUllQVE9fQUVTXzU4 Nj1tCkNPTkZJR19DUllQVE9fQ0FTVDU9bQpDT05GSUdfQ1JZUFRPX0NBU1Q2PW0KQ09ORklHX0NS WVBUT19URUE9bQpDT05GSUdfQ1JZUFRPX0FSQzQ9bQpDT05GSUdfQ1JZUFRPX0tIQVpBRD1tCkNP TkZJR19DUllQVE9fQU5VQklTPW0KQ09ORklHX0NSWVBUT19ERUZMQVRFPW0KQ09ORklHX0NSWVBU T19NSUNIQUVMX01JQz1tCkNPTkZJR19DUllQVE9fQ1JDMzJDPW0KIyBDT05GSUdfQ1JZUFRPX0NB TUVMTElBIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldApDT05GSUdf Q1JZUFRPX0hXPXkKQ09ORklHX0NSWVBUT19ERVZfUEFETE9DSz1tCkNPTkZJR19DUllQVE9fREVW X1BBRExPQ0tfQUVTPW0KQ09ORklHX0NSWVBUT19ERVZfUEFETE9DS19TSEE9bQpDT05GSUdfQ1JZ UFRPX0RFVl9HRU9ERT1tCgojCiMgTGlicmFyeSByb3V0aW5lcwojCkNPTkZJR19CSVRSRVZFUlNF PXkKQ09ORklHX0NSQ19DQ0lUVD1tCkNPTkZJR19DUkMxNj1tCiMgQ09ORklHX0NSQ19JVFVfVCBp cyBub3Qgc2V0CkNPTkZJR19DUkMzMj15CiMgQ09ORklHX0NSQzcgaXMgbm90IHNldApDT05GSUdf TElCQ1JDMzJDPW0KQ09ORklHX0FVRElUX0dFTkVSSUM9eQpDT05GSUdfWkxJQl9JTkZMQVRFPXkK Q09ORklHX1pMSUJfREVGTEFURT1tCkNPTkZJR19QTElTVD15CkNPTkZJR19IQVNfSU9NRU09eQpD T05GSUdfSEFTX0lPUE9SVD15CkNPTkZJR19IQVNfRE1BPXkKQ09ORklHX0NIRUNLX1NJR05BVFVS RT15CkNPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkK Q09ORklHX1g4Nl9CSU9TX1JFQk9PVD15CkNPTkZJR19LVElNRV9TQ0FMQVI9eQo= --MP_=W5YW1cWr//r3CLqNgQD8Pj Content-Type: text/x-csrc; name=testinfo.c Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=testinfo.c #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define STACK_SIZE 8192 #define MIN_PRIO 1 #define MAX_PRIO 99 #define PRI_MT_MAX MAX_PRIO - 6 #define PRI_MT_MIN MIN_PRIO typedef void * (*FUNCPTR) (void *); typedef void (*SOSO) (void *); /**< Special type to be used for casting in task_create() */ #define ORCMSGQ RT_QUEUE * /**< Message Queue Type */ #define ORCSEM_ID RT_SEM * /**< Semaphore Type */ #define ORCFULL 1 /**< State of a Full Binary Semaphore */ #define ORCEMPTY 0 /**< State of a Empty Binary Semaphore */ #define ORCFOREVER TM_INFINITE /**< State of a ??? Binary Semaphore */ #define SIZE_QUEUE 100 /**< Size of the Message Queue */ #define SIZE_MES_MAX 4056 /**< Maximum size of a message in Message Queue */ #define SIZE_MES_MIN 128 /**< Minimum size of a message in Message Queue */ /*-------Tasks----------*/ #define ORCTHR_ID RT_TASK * /**< Xeno RT-Task Type */ #define STACKSIZE int /**< Stack size Type */ #define SCHED_OTHER 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHEDPOLICY SCHED_FIFO /**< Scheduling policy (see schedbits.h, sched.h )*/ #define SMALL_STACK 1000 /**< Small task stack size PTHREAD_STACK_MIN not defined */ #define NORMAL_STACK (5*SMALL_STACK) /**< Normal task stack size */ #define BIG_STACK (15*SMALL_STACK) /**< Big task stack size */ // --s-ms-us-ns RTIME task_period_ns = 500000000llu; #define NSEC_PER_SEC 1000000000 #define OK 0 #define ERROR -1 #define STATUS int #define FALSE 0 #define TRUE 1 #define POLICY 1 static int ji = 0; //static int togparport = 0; static RTIME startime, now; // inittime, nexttime; struct timespec clock_resolution; static int message_counter = 0; RT_ALARM BaseClk; int status, err, end = 0, loops = 10; char *dummy; ORCTHR_ID thr_clockit; ORCTHR_ID thr_loop; ORCMSGQ Queue; ORCSEM_ID SynchroSem; static int cpt_sem = 10000; char nameSem[10]; int crexec, cr; RT_TASK_INFO info; long past = 0; ORCTHR_ID MAIN_RT; /*-------Semaphores----------*/ /** * Function to create a semaphore * * @param initState semaphore initial creation state, eg ORCFULL, ORCEMPTY * @return ORCSEM_ID semaphore pointer created if successfull, NULL otherwise * @see ORCFULL * @see ORCEMPTY * @see #sem_init */ ORCSEM_ID orcSemCreate(int initState) { ORCSEM_ID newSem; int status; sprintf(nameSem,"%d",cpt_sem); newSem = malloc(sizeof(RT_SEM)); if (newSem == 0) { printf("ERROR orcSem init \n"); return 0; } memset(newSem, 0, sizeof(RT_SEM)); if(initState == ORCFULL) { status = rt_sem_create(newSem, nameSem, initState, S_FIFO); #ifdef DEBUG printf("WARNING binary Sem created FULL \n"); #endif } else status = rt_sem_create(newSem, nameSem, initState, S_FIFO|S_PULSE); if (status == OK) { #ifdef DEBUG printf("orcSemCreate %p\n", newSem); #endif cpt_sem++; return newSem; } else { #ifdef DEBUG printf("orcSemCreate ERROR %d\n", status); #endif return NULL; } } /** * Function to delete a given semaphore * * @param sem semaphore to be deleted * @return sem_destroy() returned value * @see #sem_destroy */ int orcSemDelete(ORCSEM_ID sem) { if (sem == 0) return ERROR; if (rt_sem_delete(sem) == 0) { free(sem); return OK; } printf("Erreur:orcSemDelete\n"); return ERROR; } /** * Function to give a semaphore * * @param sem semaphore id * @return sem_post) returned value * @see #sem_post */ int orcSemGive(ORCSEM_ID sem) { #ifdef DEBUG printf("SemGive %p\n", sem); #endif return (rt_sem_v(sem)); } /** * Function to take a semaphore * TODO : no timeout in Posix semaphores * * @param sem semaphore * @param timeout value * @return sem_wait() returned value * @see #sem_wait */ int orcSemTake(ORCSEM_ID sem, int timeout) { #ifdef DEBUG printf("SemTake %p\n", sem); #endif return (rt_sem_p(sem, timeout)); } /*-------Tasks----------*/ /** * Function to check if a task is still valid or not * * @param Id task identifier * @return OK if task is valid, ERROR otherwise * @see ORCTHR_ID * @see pthread_kill */ int orcTaskIdVerify(ORCTHR_ID Id) { int cr; RT_TASK_INFO info; cr = rt_task_inquire(Id,&info); /* cr = rt_task_inquire(Id,NULL); */ if (cr == 0) { printf("orcTaskIdVerify %p OK \n", Id); return OK; } printf("orcTaskIdVerify %p ERROR %d\n", Id, cr); return ERROR; } /** * Function to kill a task (pthread) * * @param Id task identifier * @return ERROR or pthread_cancel returned value * @see ORCTHR_ID * @see #pthread_kill * @see #pthread_cancel */ int orcTaskDelete(ORCTHR_ID task) { int result; if (task == 0) { printf("ERROR rt_task_delete, task == 0\n"); return ERROR; } result = rt_task_delete(task); if (result != 0) { printf("ERROR rt_task_delete %p error %d\n", task, result); return ERROR; } // if (result == 0) free(task); return OK; } /** * Function to spawn a task * * @param tid task identifier * @param name name descripting the task * @param prio task priority level * @param stackSize stack size to be allocated for the task * @param funcptr routine to be spawn by the task * @param arg argument needed for the routine to be spawn * @return pthread_create returned value * @see ORCTHR_ID * @see STACKSIZE * @see FUNCPTR * @see #pthread_create */ int orcSpawn(ORCTHR_ID *tid, const char *name, int prio, STACKSIZE stackSize, SOSO funcptr, void * arg) { int err; //Allocate memory if (((*tid) = (RT_TASK*) malloc (sizeof(RT_TASK))) == NULL) { printf("Error malloc orcspawn\n" ); return ERROR; } if ((err = rt_task_spawn(*tid, name, stackSize, prio, T_FPU|T_JOINABLE|T_CPU(0), (SOSO) funcptr, arg)) != 0) //if ((err = rt_task_spawn(*tid, name, stackSize, prio, T_FPU, (SOSO) funcptr, arg)) != 0) { printf("ERROR %d rt_task_init\n", err); return ERROR; } //#ifdef DEBUG printf("rt_task create %s prio %d StackSize %d Id %p \n", name, prio, stackSize, *tid); //#endif return OK; } int orcSpawn1(ORCTHR_ID *tid, const char *name, int prio, STACKSIZE stackSize, SOSO funcptr, void * arg) { int err; //Allocate memory if (((*tid) = (RT_TASK*) malloc (sizeof(RT_TASK))) == NULL) { printf("Error malloc orcspawn\n" ); return ERROR; } if ((err = rt_task_spawn(*tid, name, stackSize, prio, T_FPU|T_JOINABLE|T_CPU(1), (SOSO) funcptr, arg)) != 0) //if ((err = rt_task_spawn(*tid, name, stackSize, prio, T_FPU, (SOSO) funcptr, arg)) != 0) { printf("ERROR %d rt_task_init\n", err); return ERROR; } //#ifdef DEBUG printf("rt_task create %s prio %d StackSize %d Id %p \n", name, prio, stackSize, *tid); //#endif return OK; } ///Function that returns the cpu time in nanoseconds inline long long GetCpuTime(void) { return (long long)rt_timer_ticks2ns(rt_timer_read()); } inline long long orcGetExecTime(ORCTHR_ID task) { crexec = rt_task_inquire(task,&info); if (crexec != 0){ printf("rt_task_get_exectime error %d \n", crexec); return (long long)0;} else return (long long)info.exectime; } inline long long orcGetStartTime(ORCTHR_ID task) { return (long long)0; } int orcMakeRealTime(void) { int prio_main = PRI_MT_MAX + 1; mlockall(MCL_CURRENT | MCL_FUTURE); if ((cr = rt_task_shadow(MAIN_RT, "MAIN_PRR", prio_main, T_FPU | T_JOINABLE)) != 0) {printf("rt_task_shadow error %d \n", cr);} else {printf("rt_task_shadow done priority %d \n", prio_main);} return cr; } int orcTaskJoin(ORCTHR_ID task) { cr = rt_task_join(task); if (cr != 0){ printf("rt_task_join error %d on task %p \n", cr, task); return cr;} else return OK; } // Trap Ctrl C Interruption void clean_exit(int dummy) { printf("Ctrl C Interrupt\n"); end = 1; orcTaskIdVerify(thr_clockit); orcTaskIdVerify(thr_loop); err = rt_task_join(thr_clockit); if (err != 0)printf("rt_task_join() error %d \n", err); err = rt_task_join(thr_loop); if (err != 0)printf("rt_task_join() error %d \n", err); printf("deleting rt devices \n"); err = rt_alarm_delete(&BaseClk); if (err != 0)printf("rt_alarm_delete() error %d \n", err); orcSemDelete(SynchroSem); return ; } int orcTimerSigMask(void) { sigset_t set; sigfillset(&set); if ((err = pthread_sigmask(SIG_BLOCK, &set, NULL)) != OK) { printf("pthread_sigmask Failed %d \n", err); return ERROR; } sigemptyset(&set); sigaddset(&set, SIGINT); sigaddset(&set, SIGTERM); if ((err = pthread_sigmask(SIG_UNBLOCK, &set, NULL)) != OK) { printf("pthread_sigmask Failed %d \n", err); return ERROR; } return OK; } void setTimer(void) { /***starting timer ***/ err = rt_alarm_create(&BaseClk, "BaseClock"); if (err != 0)printf("rt_alarm_create() error %d \n", err); err = rt_alarm_start(&BaseClk, rt_timer_ns2ticks(task_period_ns), rt_timer_ns2ticks(task_period_ns)); if (err != 0)printf("rt_alarm_start() error %d \n", err); else printf("alarm started with period %llu ns \n", task_period_ns); printf("period in ticks %ld \n", (long)rt_timer_ns2ticks(task_period_ns)); return ; } long long loopbusytime, clockbusytime; void clock_it(void) { int msg = 1; long long clockexectime, clockdiff; static long long clockpast = 0; while (!end) { err = rt_alarm_wait(&BaseClk); clockbusytime = 30000000; rt_timer_spin((RTIME)clockbusytime); msg++; printf("clock_it \n"); orcSemGive(SynchroSem); } return ; } void func_loop() { while (!end) { orcSemTake(SynchroSem, ORCFOREVER); loopbusytime = 20000000; rt_timer_spin((RTIME)loopbusytime); printf("func_loop \n"); } return; } int main(void) { orcTimerSigMask(); signal(SIGTERM, clean_exit); signal(SIGINT, clean_exit); orcMakeRealTime(); setTimer(); SynchroSem = orcSemCreate(ORCEMPTY); orcSpawn(&thr_clockit, "AlarmServer", MAX_PRIO, NORMAL_STACK, (SOSO) clock_it, NULL); orcSpawn(&thr_loop, "Loop", MAX_PRIO - 1, NORMAL_STACK, (SOSO) func_loop, NULL); pause(); fflush(NULL); return 0; } --MP_=W5YW1cWr//r3CLqNgQD8Pj--