ZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9hdWRpb19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2F1ZGlvX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI3ZGQ4NgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9hdWRpb19tc2dpZC5oCkBAIC0wLDAgKzEsMzI2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqIGwxX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMYXllciAxIGFuZCBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9BVUlET19NU0dJRF9ICisjZGVmaW5lIF9BVUlET19NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9BVURJT19NU0dfQ09ERV9CRUdJTiApCitNU0dfSURfQVVESU9fQ0NDSV9CRUdJTiA9IE1TR19JRF9BVURJT19NU0dfQ09ERV9CRUdJTiwKKworTVNHX0lEX0FVRElPX0EyTV9DQ0NJLAorTVNHX0lEX0FVRElPX00yQV9DQ0NJLAorTVNHX0lEX0FVRElPX0FGRV9SRUZSRVNILAorTVNHX0lEX0FVRElPX0NUTV9QUk9DRVNTLAorTVNHX0lEX0FVRElPX0NUTV9SWF9EQVRBLAorTVNHX0lEX0FVRElPX1NUUk1fUENNNFdBWV9EQVRBLAorTVNHX0lEX0FVRElPX1NUUk1fQkdTTkRfREFUQV9SRVFVRVNULAorTVNHX0lEX0FVRElPX1NUUk1fVk1fREFUQV9SRVFVRVNULAorTVNHX0lEX0FVRElPX1ZNX0RBVEFfTk9USUZJQ0FUSU9OLAorCitNU0dfSURfU1BFRUNIX09OX0FDSywKK01TR19JRF9TUEVFQ0hfT0ZGX0FDSywKK01TR19JRF9TVFJNX1NQRUVDSF9ETF9EQVRBX05PVElGWSwKK01TR19JRF9TVFJNX1NQRUVDSF9VTF9EQVRBX1JFUVVFU1QsCisvLyBObyBBcHBsaWNhdGlvbiBVc2UsIGJ1dCBjb2RlIGlzIHJlc2VydmVkCitNU0dfSURfQVVESU9fU1RSTV9QQ01fREFUQV9SRVFVRVNULAorTVNHX0lEX0FVRElPX1NUUk1fUENNX1JFQ19EQVRBX05PVElGSUNBVElPTiwKK01TR19JRF9BVURJT19BTVJfREFUQV9OT1RJRklDQVRJT04sCitNU0dfSURfQVVESU9fQkdTTkRfREFUQV9SRVFVRVNULAorTVNHX0lEX0FVRElPX1BDTV9EQVRBX05PVElGSUNBVElPTiwKK01TR19JRF9BVURJT19UT05FX1NUT1BfUkVRVUVTVCwKK01TR19JRF9BVURJT19UT05FX0RFVEVDVCwKK01TR19JRF9BVURJT19WTV9EQVRBX1JFUVVFU1QsCitNU0dfSURfQVVESU9fV0FWX0RBVEFfUkVRVUVTVCwKK01TR19JRF9BVURJT19XQVZfREFUQV9OT1RJRklDQVRJT04sCisKK01TR19JRF9BVURJT19MNENfRVBPRl9OT1RJRlksIAorTVNHX0lEX0FVRElPX0w0Q19FUE9GX0FDSywKK01TR19JRF9BVURJT19DVVNUX0RVTVBfUkVRLAorTVNHX0lEX0FVRElPX0w0Q19FUlRUU1RSLAorCitNU0dfSURfQVVESU9fQ0NDSV9UQUlMLAorCisvLyBNMk0gbWVzc2FnZQorTVNHX0lEX0FVRElPX00yTV9CRUdJTiwKKworTVNHX0lEX0FVRElPX00yTV9WT0xURV9NQUNfVElNSU5HX0lORk8sCitNU0dfSURfQVVESU9fTTJNX1ZPTlJfTUFDX1RJTUlOR19JTkZPLAorTVNHX0lEX0wxU1BfRU1BQ19WT0xURV9OT1RJRllfTU9ERV9DSEFOR0UsCitNU0dfSURfTDFTUF9OTUFDX1ZPTlJfTk9USUZZX01PREVfQ0hBTkdFLAorTVNHX0lEX0FVRElPX00yTV9DQ0NJLAorTVNHX0lEX0FVRElPX00yTV9WT0xURV9LVF9CR1NORF9DTE9TRSwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfVE9ORV9CR1NORF9DTE9TRSwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfRExfS1RfUExBWSwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfRExfS1RfU1RPUCwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfVUxfS1RfUExBWSwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfVUxfS1RfU1RPUCwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfRExfVE9ORV9QTEFZLAorTVNHX0lEX0FVRElPX00yTV9WT0xURV9ETF9UT05FX1NUT1AsCitNU0dfSURfQVVESU9fTTJNX1ZPTFRFX1VMX1RPTkVfUExBWSwKK01TR19JRF9BVURJT19NMk1fVk9MVEVfVUxfVE9ORV9TVE9QLAorTVNHX0lEX0FVRElPX00yTV9TUF9MNENfU0VUX0VWRU5ULAorTVNHX0lEX0FVRElPX00yTV9DSEFOR0VSQVRFX0VWRU5ULAorTVNHX0lEX0FVRElPX00yTV9TUF9VUERBVEVfU1BFRUNIX0VOSEFOQ0VNRU5UX1BBUkFNRVRFUiwKK01TR19JRF9BVURJT19NMk1fU1BfQzJLX0VWRU5ULAorTVNHX0lEX0FVRElPX00yTV9TUF9DMktfUkFURV9SRURVQ1RJT04sIAorTVNHX0lEX0FVRElPX00yTV9TUDNHX1VMX0VWRU5ULC8vZm9yIDNnIGxvb3BiYWNrIHRlc3QKK01TR19JRF9BVURJT19NMk1fUkFNUF9ET05FLAorTVNHX0lEX0FVRElPX00yTV9TUENfU0VUTE9PUEJBQ0tfRExfVUwsCitNU0dfSURfQVVESU9fTTJNX1ZNX1NUQVJULAorTVNHX0lEX0FVRElPX00yTV9WTV9TVE9QLAorI2lmIGRlZmluZWQoX19FQ0FMTF9TVVBQT1JUX18pCisjaWYgZGVmaW5lZChfX0w1X1NVUFBPUlRfXykKK01TR19JRF9BVURJT19NMk1fU1BfTDVFQ0FMTF9TRVRfRVZFTlQsCisjZW5kaWYKKyNlbmRpZiAKK01TR19JRF9BVURJT19NMk1fVEFJTCwKKworLy8gQXVkaW8gTG9nZ2luZyBtZXNzYWdlCitNU0dfSURfQVVESU9fTE9HR0lOR19CRUdJTiwKKwkKK01TR19JRF9BVURJT19MT0dHSU5HX1NQRUVDSCwKK01TR19JRF9BVURJT19MT0dHSU5HX0JUX1RYLAorTVNHX0lEX0FVRElPX0xPR0dJTkdfQlRfUlgsCisJCitNU0dfSURfQVVESU9fTE9HR0lOR19UQUlMLAorCisvLyBDMkMgbWVzc2FnZQorTVNHX0lEX0FVRElPX0wyUF9CRUdJTiwKKworTVNHX0lEX0FVRElPX0wyUF9TUDNHX1VQREFURV9MMV9JTkZPLAorCisKK01TR19JRF9BVURJT19MMlBfVEFJTCwKKworI2lmIGRlZmluZWQoX19JUENfQURBUFRFUl9fKQorTVNHX0lEX1RJVEFOX1NORF9CRUdJTiwgTVNHX0lEX1RJVEFOX1NORF9WT0xVTUVfU0VUID0gTVNHX0lEX1RJVEFOX1NORF9CRUdJTiwKK01TR19JRF9USVRBTl9TTkRfTVVURV9TRVQsCitNU0dfSURfVElUQU5fU05EX1BBVEhfU0VULAorTVNHX0lEX1RJVEFOX1NORF9MT09QQkFDS19TRVQsCitNU0dfSURfVElUQU5fU05EX0FVRElPX01PREVfU0VULAorTVNHX0lEX1RJVEFOX1NORF9UV09NSUNfU09MX0NUUkxfU0VULAorTVNHX0lEX1RJVEFOX1NORF9ESEFTT0xfU0VULAorTVNHX0lEX1RJVEFOX1NORF9UQUlMLAorI2VuZGlmIAorCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfQVVESU9fTVNHX0NPREVfVEFJTCApCisjZW5kaWYgIC8vX0FVSURPX01TR0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9jY2lmY29yZV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NjaWZjb3JlX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NiYTljNQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9jY2lmY29yZV9tc2dpZC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBjY2lmY29yZV9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBUQVRBS0EKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBkZWZpbmUgY2NpZmNvcmUgbWVzc2FnZXMKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDYgMDMgMjAxMyBib3gud3UKKyAqIFtNT0xZMDAwMDg5NjFdIENDSUYgZGV2CisgKiBDQ0lGQ29yZSBHUEQgc3VwcG9ydAorICoKKyAqIDAxIDE2IDIwMTMgYm94Lnd1CisgKiBbTU9MWTAwMDA4OTYxXSBDQ0lGIGRldgorICogaW50ZWdyYXRlIENDSUYgZHJ2ICYgQ0NJRkNvcmUgZnJvbSBUQVRBS0EuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfQ0NJRkNPUkVfTVNHSURfSAorI2RlZmluZSBfQ0NJRkNPUkVfTVNHSURfSAorCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX0NDSUZDT1JFX0NPREVfQkVHSU4pCisgICAgTVNHX0lEX0NDSUZDT1JFX0lTUl9SRVEsCisgICAgTVNHX0lEX0NDSUZDT1JFX0dQRF9UWF9SRVEsCitNT0RVTEVfTVNHX0VORChNU0dfSURfQ0NJRkNPUkVfQ09ERV9FTkQpCisKKyNlbmRpZiAgICAKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9jY2lzbWNvcmVfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9jY2lzbWNvcmVfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTJhMzI4Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NjaXNtY29yZV9tc2dpZC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBjY2lzbWNvcmVfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIGRlZmluZSBjY2lzbWNvcmUgbWVzc2FnZXMKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgQ0NJU01DT1JFX01TR0lEX0gKKyNkZWZpbmUgQ0NJU01DT1JFX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfQ0NJU01DT1JFX0NPREVfQkVHSU4pCisgICAgTVNHX0lEX0NDSVNNQ09SRV9ISVNSX1JYX1JFUSwKKyAgICBNU0dfSURfQ0NJU01DT1JFX1JFTE9BRF9SWF9SRVEsCisJTVNHX0lEX0NDSVNNQ09SRV9HUERfVFhfUkVRLAorCU1TR19JRF9DQ0lTTUNPUkVfVFJNX0lOSVQsCisJTVNHX0lEX0NDSVNNQ09SRV9UUk1fSU5JVF9ET05FLAorTU9EVUxFX01TR19FTkQoTVNHX0lEX0NDSVNNQ09SRV9DT0RFX0VORCkKKworI2VuZGlmICAvLwlfQ0NJU01DT1JFX01TR0lEX0hfIApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NjaXNtY29yZV9zY3BfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9jY2lzbWNvcmVfc2NwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU1ZWQ2NQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9jY2lzbWNvcmVfc2NwX21zZ2lkLmgKQEAgLTAsMCArMSw3MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGNjaXNtY29yZV9zY3Bfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVU1PTFlBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgZGVmaW5lIGNjaXNtY29yZSBtZXNzYWdlcyBNRDwtPlNDUAorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBDQ0lTTUNPUkVfU0NQX01TR0lEX0gKKyNkZWZpbmUgQ0NJU01DT1JFX1NDUF9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX0NDSVNNQ09SRV9TQ1BfQ09ERV9CRUdJTikKKyAgICBNU0dfSURfQ0NJU01DT1JFX1NDUF9ISVNSX1JYX1JFUSwKKyAgICBNU0dfSURfQ0NJU01DT1JFX1NDUF9SRUxPQURfUlhfUkVRLAorCU1TR19JRF9DQ0lTTUNPUkVfU0NQX0dQRF9UWF9SRVEsCisJTVNHX0lEX0NDSVNNQ09SRV9TQ1BfVFJNX0lOSVQsCisJTVNHX0lEX0NDSVNNQ09SRV9TQ1BfVFJNX0lOSVRfRE9ORSwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9DQ0lTTUNPUkVfU0NQX0NPREVfRU5EKQorCisjZW5kaWYgIC8vCV9DQ0lTTUNPUkVfU0NQX01TR0lEX0hfIApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NsZG1hY29yZV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NsZG1hY29yZV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0M2E3NjMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvY2xkbWFjb3JlX21zZ2lkLmgKQEAgLTAsMCArMSw3MyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGNsZG1hY29yZV9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBUQVRBS0EKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBkZWZpbmUgY2xkbWFjb3JlIG1lc3NhZ2VzCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDEyIDIzIDIwMTIgdGguY2hlbmcKKyAqIFtNT0xZMDAwMDc4ODZdIE1lcmdlIENMRE1BQ29yZSB0byBNT0xZCisgKgorICogMTIgMjMgMjAxMiB0aC5jaGVuZworICogW01PTFkwMDAwNzg4Nl0gTWVyZ2UgQ0xETUFDb3JlIHRvIE1PTFkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9DTERNQUNPUkVfTVNHSURfSAorI2RlZmluZSBfQ0xETUFDT1JFX01TR0lEX0gKKworCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9DTERNQUNPUkVfQ09ERV9CRUdJTikKKyAgICBNU0dfSURfQ0xETUFDT1JFX0lTUl9SRVEsCitNT0RVTEVfTVNHX0VORChNU0dfSURfQ0xETUFDT1JFX0NPREVfRU5EKQorCisjZW5kaWYgICAgCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvY211eF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NtdXhfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTUxZjVlCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NtdXhfbXNnaWQuaApAQCAtMCwwICsxLDE0OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgICBjbXV4X3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIGZpbGUgaXMgaW50ZW5kcyBmb3IgU0FQIG9mIG11bHRpcGxleGVyLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKkNNVVgqLworI2lmbmRlZiBDTVVYX01TR0lEX0gKKyNkZWZpbmUgQ01VWF9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIENNVVhfTVNHX0NPREVfQkVHSU4gKQorTVNHX0lEX0NNVVhfU1RBUlRVUF9SRVEgPSBDTVVYX01TR19DT0RFX0JFR0lOLAorTVNHX0lEX0NNVVhfQ0xPU0VfRE9XTl9SRVEsCitNU0dfSURfQ01VWF9DTE9TRV9ET1dOX0lORCwKKy8vTVNHX0lEX0NNVVhfVElNRU9VVF9JTkQsLypDTVVYLT5BUCovCitNU0dfSURfQ01VWF9ETENfQ09OTkVDVF9JTkQsLypDTVVYLT5BUCovCisvL01TR19JRF9DTVVYX0RMQ19ESVNDT05ORUNUX0lORCwvKkNNVVgtPkFQKi8KKworTVNHX0lEX0NNVVhfRExDX0RBVEFfUkVBRFlfUkVRLAorTVNHX0lEX0NNVVhfRExDX1JFQURZX1RPX1JFQ0VJVkVfUkVRLAorCitNU0dfSURfQ01VWF9SRUFEWV9UT19TRU5EX0lORCwKK01TR19JRF9DTVVYX1VBUlRfREFUQV9JTkQsCitNU0dfSURfQ01VWF9VQVJUX0RBVEFfUkVRLAorTVNHX0lEX0NNVVhfVUFSVF9DTE9TRV9ET1dOX1JFUSwKK01TR19JRF9DTVVYX1VBUlRfQ0xPU0VfRE9XTl9DTkYsCisKKy8qIENNVVggVVQgSU5URVJGQUNFICovCitNU0dfSURfQ01VWF9VVF9VQVJUX0RBVEFfSU5ELAorTVNHX0lEX0NNVVhfVVRfVUFSVF9EQVRBX1JFUSwKKworLyogRm9yIFdpbk1vIEdlbWluaSBWVCBvbmx5ICovCitNU0dfSURfQ01VWF9WUF9TRVRfQlVGRl9DT05GSUdfUkVRLAorTVNHX0lEX0NNVVhfVlBfU0VUX0JVRkZfQ09ORklHX0NORiwKK01TR19JRF9DTVVYX1ZQX1JFU0VUX0JVRkZfQ09ORklHX1JFUSwKK01TR19JRF9DTVVYX1ZQX1JFU0VUX0JVRkZfQ09ORklHX0NORiwKKworLyogRkxDMiBJTlRFUkZBQ0UgKi8KK01TR19JRF9DTVVYX0ZMQ19EQVRBX1JFU1VNRV9JTkQsCitNU0dfSURfQ01VWF9GTENfREFUQV9TVVNQRU5EX0lORCwKKy8qIFNUQUNLX1RJTUVSX1NBUCAqLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9DTVVYX0NPREVfVEFJTCApCisKKyNlbmRpZiAvL0NNVVhfTVNHSURfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NzY2Rjb3JlX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvY3NjZGNvcmVfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzlkZWI2Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2NzY2Rjb3JlX21zZ2lkLmgKQEAgLTAsMCArMSw3NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGNzY2Rjb3JlX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVU1PTFlBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgZGVmaW5lIGNzY2Rjb3JlIG1lc3NhZ2VzCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIENTQ0RDT1JFX01TR0lEX0gKKyNkZWZpbmUgQ1NDRENPUkVfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9DU0NEQ09SRV9DT0RFX0JFR0lOKQorICAgIE1TR19JRF9DU0NEQ09SRV9ISVNSX1JYX1JFUSwKKyAgICBNU0dfSURfQ1NDRENPUkVfUkVMT0FEX1JYX1JFUSwKKwlNU0dfSURfQ1NDRENPUkVfR1BEX1RYX1JFUSwKKwlNU0dfSURfQ1NDRENPUkVfSVRfQ1NTX0xCX05PVElGWSwKKwlNU0dfSURfQ1NDRENPUkVfSVRfTEJfTk9USUZZLAorCU1TR19JRF9DQ0lTTUNPUkVfSVQyX1NUQVJUX1BIQVNFMl8yXzIsCisJTVNHX0lEX0NDSVNNQ09SRV9JVDJfU1RBUlRfUEhBU0UyXzRfMiwKKwlNU0dfSURfQ0NJU01DT1JFX0lUMl9TVEFSVF9QSEFTRTJfNV8yLAorTU9EVUxFX01TR19FTkQoTVNHX0lEX0NTQ0RDT1JFX0NPREVfRU5EKQorCisjZW5kaWYgIC8vCV9DU0NEQ09SRV9NU0dJRF9IXyAKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9kcG1haWZfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9kcG1haWZfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTE2YzIwCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2RwbWFpZl9tc2dpZC5oCkBAIC0wLDAgKzEsMTEgQEAKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgRFBNQUlGX01TR0lEX0gKKyNkZWZpbmUgRFBNQUlGX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfRFBBTUlGX0NPREVfQkVHSU4pCitNU0dfSURfRFBNQUlGX0RMX0lOVFJfSEFORExFLAorTVNHX0lEX0RQTUFJRl9ETF9EQVRBX0hBTkRMRSwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9EUE1BSUZfQ09ERV9UQUlMKQorCisjZW5kaWYgIC8vCURQTUFJRl9NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvZHJ2X21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvZHJ2X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk0NGZiZgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9kcnZfbXNnaWQuaApAQCAtMCwwICsxLDcyMSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgICBkcnZfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBpcyBpbnRlbmRzIGZvciBTQVAgb2YgZHJpdmVyLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9EUlZfTVNHSURfSAorI2RlZmluZSBfRFJWX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggRFJJVkVSX01TR19DT0RFX0JFR0lOICkKKy8qVUFSVCovCitNU0dfSURfVUFSVF9SRUFEWV9UT19SRUFEX0lORCA9IERSSVZFUl9NU0dfQ09ERV9CRUdJTiwKK01TR19JRF9VQVJUX1JFQURZX1RPX1dSSVRFX0lORCwKK01TR19JRF9VQVJUX0RTUl9DSEFOR0VfSU5ELAorTVNHX0lEX1VBUlRfRVNDQVBFX0RFVEVDVEVEX0lORCwKK01TR19JRF9VQVJUX1BMVUdJTl9JTkQsCitNU0dfSURfVUFSVF9QTFVHT1VUX0lORCwKKy8qQk1UKi8KK01TR19JRF9CTVRfQ0hBUkdFUl9JTkQsCitNU0dfSURfQk1UX0FEQ19EQVRBX1JFUSwKK01TR19JRF9CTVRfQURDX0RBVEFfQ09ORiwKK01TR19JRF9CTVRfTEVBVkVfUFJFQ0hBUkdFX0lORCwKKworTVNHX0lEX0JNVF9BRENfTUVBU1VSRV9ET05FX0NPTkYsCitNU0dfSURfQk1UX0FEQ19BRERfSVRFTV9SRVEsCitNU0dfSURfQk1UX0FEQ19SRU1PVkVfSVRFTV9SRVEsCitNU0dfSURfQk1UX0FEQ19NT0RJRllfUEFSQU1FVEVSU19SRVEsCisKKy8qQVVYKi8KK01TR19JRF9BVVhfUExVR0lOLAorTVNHX0lEX0FVWF9QTFVHT1VULAorTVNHX0lEX0FVWF9ERVRFQ1QsICAgLypvbGQqLworTVNHX0lEX0FVWF9DQUxMX1NFVFVQX1JFUV9JTkQsIAorTVNHX0lEX0FVWF9DQUxMX0NPTk5FQ1RfUkVRX0lORCwKK01TR19JRF9BVVhfQ0FMTF9ESVNDT05ORUNUX1JFUV9JTkQsCitNU0dfSURfQVVYX0lELAorTVNHX0lEX1JFQURfQUxMX0FEQ19DSEFOTkVMX1JFUSwKK01TR19JRF9BRENfQUxMX0NIQU5ORUxfQ09ORiwKK01TR19JRF9BVVhfQVVESU9fT1BFTiwKK01TR19JRF9BVVhfQVVESU9fQ0xPU0VELAorCisvKlBGQyovCitNU0dfSURfUFBQX1BGQ19FTkNPREVfRE9ORV9JTkQsCitNU0dfSURfUFBQX1BGQ19ERUNPREVfRE9ORV9JTkQsCisKKy8qVVNCKi8KK01TR19JRF9VU0JfQV9QTFVHSU5fSU5ELAorTVNHX0lEX1VTQl9BX1BMVUdPVVRfSU5ELAorTVNHX0lEX1VTQl9CX1BMVUdJTl9JTkQsCitNU0dfSURfVVNCX0JfUExVR09VVF9JTkQsCitNU0dfSURfRFJWVUVNX1VTQkNGR19SRVEsCitNU0dfSURfRFJWVUVNX1VTQkNGR19DTkYsCitNU0dfSURfVVNCRF9TVEFSVF9ITlAsCitNU0dfSURfU1JQX0lOSVQsCitNU0dfSURfT1RHX0RJU1BMQVlfSU5ELAorTVNHX0lEX0RSVk1NSV9NU19JTklUX0RPTkUsCisKK01TR19JRF9VU0JfTVNEUlZfUkVTRVRfSU5ELAkJCQkvKiBtYXNzIHN0b3JhZ2UgbWVzc2FnZXMgKi8KK01TR19JRF9VU0JfTVNEUlZfUkVDX0RPTkVfQ09ORiwKK01TR19JRF9VU0JfTVNEUlZfVFJYX0RPTkVfQ09ORiwKK01TR19JRF9VU0JfTVNEUlZfQ0xFQVJfU1RBTExfUkVRLAorTVNHX0lEX1VTQl9NU0RSVl9SRU1PVU5UX1JFUSwKK01TR19JRF9VU0JfTVNIT1NUX1NUQVJUX0lORCwKK01TR19JRF9VU0JfTVNIT1NUX1FVRVJZX0lORCwKK01TR19JRF9VU0JfTVNIT1NUX0NMRUFSX1NUQUxMX0lORCwKK01TR19JRF9VU0JfSE9TVF9BVFRBQ0hfSU5ELAorTVNHX0lEX09UR19NU19JTlNFUlRfSU5ELAorTVNHX0lEX09UR19NU19SRU1PVkVfSU5ELAorTVNHX0lEX09UR19DQVJEX0RFVEVDVF9JTkQsCitNU0dfSURfT1RHX0hETFJfSU5ELAorTVNHX0lEX1VTQl9GVF9JTkQsCQkJCQkvKiBDREMgQUNNIGZhY3RvcnkgbW9kZSBtZXNzYWdlcyAqLworTVNHX0lEX1VTQl9GVF9TVEFSVF9SRVEsCitNU0dfSURfVVNCX0ZUX1RYX0RPTkVfSU5ELAorTVNHX0lEX1VTQl9GVF9SWF9EQVRBX0lORCwKKworCitNU0dfSURfUk5ESVNfVVNCX0NPTkZJR19SRVEsICAgLy8gUk5ESVMKK01TR19JRF9STkRJU19VU0JfQ09ORklHX0NORiwKK01TR19JRF9STkRJU19VU0JfREVUQUNIX1JFUSwKK01TR19JRF9STkRJU19VU0JfREVUQUNIX0NORiwKK01TR19JRF9STkRJU19VU0JfRU5VTV9JTkQsCitNU0dfSURfQ1RSTF9VQVJUX1JFQURZX1RPX1JFQURfSU5ELAorTVNHX0lEX0NUUkxfVUFSVF9SRUFEWV9UT19XUklURV9JTkQsCisKK01TR19JRF9NQklNX1VTQl9SRVNFVF9JTkQsICAgLy8gTUJJTQorCisKK01TR19JRF9VU0JfTE9HR0lOR19TVEFSVF9JTkQsCQkJCS8qIFVTQiBMT0dHSU5HIFRvb2wgKi8KK01TR19JRF9VU0JfTE9HR0lOR19SRVNFVF9JTkQsCitNU0dfSURfVVNCX0xPR0dJTkdfQ09OTkVDVF9JTkQsCitNU0dfSURfVVNCX0xPR0dJTkdfRElTQ09OTkVDVF9JTkQsCisKKy8vVVNCIEVDSE8gVGVzdCAKK01TR19JRF9VU0JfVEVTVF9TVEFSVF9JTkQsICAKKworLypVU0IgdmlkZW8gYW5kIG1lZGlhIG1zZyAqLworTVNHX0lEX1VTQl9NRURfU0VUX0NBTUVSQV9BVFRSX1JFUSwKK01TR19JRF9VU0JfTUVEX1NFVF9DQU1FUkFfQVRUUl9DTkYsCitNU0dfSURfTUVEX1VTQl9TVEFSVF9WSURFT19SRVEsIAorTVNHX0lEX1VTQl9NRURfU1RBUlRfVklERU9fQ05GLAorTVNHX0lEX1VTQl9NRURfQ0hBTkdFX1ZJREVPX0lORCwKK01TR19JRF9VU0JfTUVEX1NUQVJUX1NUSUxMX0lORCwKK01TR19JRF9VU0JfTUVEX1NUQVJUX1ZJREVPX0lORCwKK01TR19JRF9NRURfVVNCX0RFVklDRV9TVElMTF9SRVEsCitNU0dfSURfVVNCX01FRF9ERVZJQ0VfU1RJTExfQ05GLAorTVNHX0lEX01FRF9VU0JfUEFVU0VfUkVRLAorTVNHX0lEX1VTQl9NRURfUEFVU0VfQ05GLAorTVNHX0lEX01FRF9VU0JfUkVTVU1FX1ZJREVPX1JFUSwKK01TR19JRF9VU0JfTUVEX1JFU1VNRV9WSURFT19DTkYsCitNU0dfSURfVVNCX01FRF9TVE9QX0lORCwKK01TR19JRF9VU0JfTUVEX0FCT1JUX0lORCwKK01TR19JRF9NRURfVVNCX1NUT1BfUkVRLAorTVNHX0lEX1VTQl9NRURfU1RPUF9DTkYsCitNU0dfSURfTUVEX1VTQl9ESVNDT05ORUNUX1JFUSwKK01TR19JRF9NRURfVVNCX0NPTk5FQ1RfUkVRLAorCisKKworLypVU0IgdmlkZW8gaW50ZXJuYWwgbXNnICovCitNU0dfSURfVVNCX0VOVU1fRE9ORSwKK01TR19JRF9VU0JfVklERU9fQ09NUExFVEUsCitNU0dfSURfVVNCX1ZJREVPX0RNQV9ET05FLAorTVNHX0lEX1VTQl9WSURFT19DSEFOR0VfU0laRSwKK01TR19JRF9VU0JfU1RJTExfQ0FQVFVSRSwKK01TR19JRF9VU0JfU1RJTExfQ09NUExFVEUsCitNU0dfSURfVVNCX1ZJREVPX1NUSUxMX0RNQV9ET05FLAorTVNHX0lEX1VTQl9WSURFT19TVElMTF9ETUFfUEFSVElBTCwKK01TR19JRF9VU0JfVklERU9fSU5DQUxMX0RNQV9ET05FLAorTVNHX0lEX1VTQl9WSURFT19JTkNBTExfVElNRU9VVCwKK01TR19JRF9VU0JfVklERU9fSU5DQUxMX0NIQU5HRV9TSVpFLAorTVNHX0lEX1VTQl9WSURFT19BQk9SVCwKKworLyogbXNncyBiZXR3ZWVuIFVTQiBhbmQgTU1JIDogUFRQICovCitNU0dfSURfVVNCX01NSV9EUFNfRElTQ09WRVJZX0lORCwKK01TR19JRF9VU0JfTU1JX0RQU19IUkVRVUVTVF9JTkQsCitNU0dfSURfTU1JX1VTQl9EUFNfSFJFUVVFU1RfQ09ORiwKK01TR19JRF9VU0JfTU1JX0RQU19IUkVTUE9OU0VfSU5ELAorTVNHX0lEX01NSV9VU0JfRFBTX0hSRVNQT05TRV9DT05GLAorTVNHX0lEX01NSV9VU0JfRFBTX0RSRVFVRVNUX1JFUSwKK01TR19JRF9VU0JfTU1JX0RQU19EUkVRVUVTVF9DT05GLAorTVNHX0lEX01NSV9VU0JfRFBTX0RSRVNQT05TRV9SRVEsCitNU0dfSURfVVNCX01NSV9EUFNfRFJFU1BPTlNFX0NPTkYsCitNU0dfSURfVVNCX01NSV9QVFBfQ09OTkVDVF9UT19QQ19JTkQsCitNU0dfSURfVVNCX01NSV9QVFBfT1BFTl9GSUxFX0ZBSUxfSU5ELAorTVNHX0lEX1VTQl9NTUlfUFRQX0hPU1RfUkVTRVRfSU5ELAorTVNHX0lEX01NSV9VU0JfUFRQX0hPU1RfUkVTRVRfQ05GLAorTVNHX0lEX01NSV9VU0JfU1RBUlRfSk9CX1JFUSwKK01TR19JRF9NTUlfVVNCX0NMT1NFX0pPQl9SRVEsCisKKy8qIFVTQiBpbWFnZSBpbnRlcm5hbCBtc2cgOiBQVFAgKi8KK01TR19JRF9VU0JfUFRQSU1BR0VfREFUQV9SWF9ET05FX0NPTkYsCitNU0dfSURfVVNCX1BUUElNQUdFX0RBVEFfVFhfRE9ORV9DT05GLAorTVNHX0lEX1VTQl9QVFBJTUFHRV9SRVNFVF9JTkQsCisKKy8qIG1zZ3MgYmV0d2VlbiBVU0IgYW5kIE1UUCA6IE1UUCAqLworTVNHX0lEX1VTQl9NVFBfRU5BQkxFX1JFUSwKK01TR19JRF9VU0JfTVRQX0VOQUJMRV9SU1AsCitNU0dfSURfVVNCX01UUF9ESVNBQkxFX1JFUSwKK01TR19JRF9VU0JfTVRQX0RJU0FCTEVfUlNQLAorTVNHX0lEX1VTQl9NVFBfT1BFUkFUSU9OX1JFUSwKK01TR19JRF9VU0JfTVRQX09QRVJBVElPTl9SU1AsCitNU0dfSURfVVNCX01UUF9FVkVOVF9JTkQsCisKKy8qIFVTQiBpbWFnZSBpbnRlcm5hbCBtc2cgOiBNVFAgKi8KK01TR19JRF9VU0JfTVRQSU1BR0VfREFUQV9SWF9ET05FX0NPTkYsCitNU0dfSURfVVNCX01UUElNQUdFX0RBVEFfVFhfRE9ORV9DT05GLAorTVNHX0lEX1VTQl9NVFBJTUFHRV9SRVNFVF9JTkQsCitNU0dfSURfVVNCX01UUElNQUdFX0NBTkNFTF9JTkQsCisKKy8qTVNEQyovCitNU0dfSURfTVNEQ19DQVJEX0RFVEVDVF9JTkQsCitNU0dfSURfU0lNX1BMVVNfREVURUNUX0lORCwKK01TR19JRF9NU0RDMl9DQVJEX0RFVEVDVF9JTkQsCitNU0dfSURfTVNEQ19DQVJEX0RJU1BMQVlfSU5ELAorCisvKlVTQiBjaGFyZ2luZyovCitNU0dfSURfQk1UX1VTQl9JTkQsCitNU0dfSURfQk1UX1VTQl9SRUFEX0NBTElfRE9ORV9JTkQsCisKKy8qdG91Y2ggcGFuZWwqLworTVNHX0lEX1RQX0VWRU5UX0lORCwKK01TR19JRF9UUF9DQUxJX0RPTkUsCitNU0dfSURfVFBfUEVOX0RPV05fSU5ELAorCisvKlRETUIqLworTVNHX0lEX1RETUJfVFVSTl9PTl9SRVFVRVNULCBNU0dfSURfVERNQl9DT0RFX0JFR0lOID0gTVNHX0lEX1RETUJfVFVSTl9PTl9SRVFVRVNULAorTVNHX0lEX1RETUJfVFVSTl9PTl9DT05GSVJNLAorTVNHX0lEX1RETUJfVFVSTl9PRkZfUkVRVUVTVCwKK01TR19JRF9URE1CX1RVUk5fT0ZGX0NPTkZJUk0sCitNU0dfSURfVERNQl9TRVRfQkFORF9SRVFVRVNULAorTVNHX0lEX1RETUJfU0VUX0JBTkRfQ09ORklSTSwKK01TR19JRF9URE1CX0FVVE9fU0NBTl9SRVFVRVNULAorTVNHX0lEX1RETUJfQVVUT19TQ0FOX0NPTkZJUk0sCitNU0dfSURfVERNQl9TVE9QX0FVVE9fU0NBTl9SRVFVRVNULAorTVNHX0lEX1RETUJfU1RPUF9BVVRPX1NDQU5fQ09ORklSTSwKK01TR19JRF9URE1CX1NFVF9GUkVRVUVOQ1lfUkVRVUVTVCwKK01TR19JRF9URE1CX1NFVF9GUkVRVUVOQ1lfQ09ORklSTSwKK01TR19JRF9URE1CX1NFTEVDVF9TRVJWSUNFX1JFUVVFU1QsCitNU0dfSURfVERNQl9TRUxFQ1RfU0VSVklDRV9DT05GSVJNLAorTVNHX0lEX1RETUJfR0VUX1NJR05BTF9SRVFVRVNULAorTVNHX0lEX1RETUJfR0VUX1NJR05BTF9DT05GSVJNLAorTVNHX0lEX1RETUJfU1RBUlRfQU5OT1VOQ0VNRU5UX1JFUVVFU1QsCitNU0dfSURfVERNQl9TVEFSVF9BTk5PVU5DRU1FTlRfQ09ORklSTSwKK01TR19JRF9URE1CX0VORF9BTk5PVU5DRU1FTlRfUkVRVUVTVCwKK01TR19JRF9URE1CX0VORF9BTk5PVU5DRU1FTlRfQ09ORklSTSwKK01TR19JRF9URE1CX1NFVF9JRExFX1JFUVVFU1QsCitNU0dfSURfVERNQl9TRVRfSURMRV9DT05GSVJNLAorTVNHX0lEX1RETUJfTUNJX1JFQ09ORklHX0lORElDQVRJT04sCitNU0dfSURfVERNQl9HRVRfRU5TRU1CTEVfSU5GT19SRVFVRVNULAorTVNHX0lEX1RETUJfR0VUX0VOU0VNQkxFX0lORk9fQ09ORklSTSwKK01TR19JRF9URE1CX0RFTU9EX01DSV9SRUNPTkZJR19JTkRJQ0FUSU9OLAorTVNHX0lEX1RETUJfREVNT0RfQU5OT1VOQ0VNRU5UX0lORElDQVRJT04sCitNU0dfSURfVERNQl9BTk5PVU5DRU1FTlRfSU5ESUNBVElPTiwKK01TR19JRF9URE1CX1NFVF9BTk5PVU5DRU1FTlRfUkVRVUVTVCwKK01TR19JRF9URE1CX1NFVF9BTk5PVU5DRU1FTlRfQ09ORklSTSwKK01TR19JRF9URE1CX0RBVEFfSU5ESUNBVElPTiwKK01TR19JRF9URE1CX1NFUlZJQ0VfRU5EX0lORElDQVRJT04sCitNU0dfSURfVERNQl9GSUNfSU5EX0lORElDQVRJT04sCitNU0dfSURfVERNQl9NU0NfSU5EX0lORElDQVRJT04sCitNU0dfSURfVERNQl9JTlRfQVJSSVZFLAorTVNHX0lEX1RETUJfU0lHTkFMX1NUQVRVUywKK01TR19JRF9URE1CX0dFVF9UU19EQVRBX0VSUk9SLAorTVNHX0lEX1RETUJfU0VUX0VOU0VNQkxFLAorTVNHX0lEX1RETUJfQ09ERV9FTkQgPSBNU0dfSURfVERNQl9TRVRfRU5TRU1CTEUsCisKKy8qQ01NQiovCitNU0dfSURfQ01NQl9UVVJOX09OX1JFUVVFU1QsIE1TR19JRF9DTU1CX0NPREVfQkVHSU4gPSBNU0dfSURfQ01NQl9UVVJOX09OX1JFUVVFU1QsCitNU0dfSURfQ01NQl9UVVJOX09OX0NPTkZJUk0sCitNU0dfSURfQ01NQl9UVVJOX09GRl9SRVFVRVNULAorTVNHX0lEX0NNTUJfVFVSTl9PRkZfQ09ORklSTSwKK01TR19JRF9DTU1CX1NFVF9CQU5EX1JFUVVFU1QsCitNU0dfSURfQ01NQl9TRVRfQkFORF9DT05GSVJNLAorTVNHX0lEX0NNTUJfQVVUT19TQ0FOX1JFUVVFU1QsCitNU0dfSURfQ01NQl9BVVRPX1NDQU5fQ09ORklSTSwKK01TR19JRF9DTU1CX1NUT1BfQVVUT19TQ0FOX1JFUVVFU1QsCitNU0dfSURfQ01NQl9TVE9QX0FVVE9fU0NBTl9DT05GSVJNLAorTVNHX0lEX0NNTUJfU0VUX0ZSRVFVRU5DWV9SRVFVRVNULAorTVNHX0lEX0NNTUJfU0VUX0ZSRVFVRU5DWV9DT05GSVJNLAorTVNHX0lEX0NNTUJfU0VMRUNUX1NFUlZJQ0VfUkVRVUVTVCwKK01TR19JRF9DTU1CX1NFTEVDVF9TRVJWSUNFX0NPTkZJUk0sCitNU0dfSURfQ01NQl9QQVVTRV9TRVJWSUNFX1JFUVVFU1QsCitNU0dfSURfQ01NQl9QQVVTRV9TRVJWSUNFX0NPTkZJUk0sCitNU0dfSURfQ01NQl9HRVRfU0lHTkFMX1JFUVVFU1QsCitNU0dfSURfQ01NQl9HRVRfU0lHTkFMX0NPTkZJUk0sCitNU0dfSURfQ01NQl9HRVRfVEFCTEVfUkVRVUVTVCwKK01TR19JRF9DTU1CX0dFVF9UQUJMRV9DT05GSVJNLAorTVNHX0lEX0NNTUJfU1RSRUFNX0lORk9fVEFCTEVfVVBEQVRFX0lORElDQVRJT04sCitNU0dfSURfQ01NQl9DT05UUk9MX0lORk9fVEFCTEVfVVBEQVRFX0lORElDQVRJT04sCitNU0dfSURfQ01NQl9TQVZFX1NUUkVBTV9UT19GSUxFX1JFUVVFU1QsCitNU0dfSURfQ01NQl9TQVZFX1NUUkVBTV9UT19GSUxFX0NPTkZJUk0sCitNU0dfSURfQ01NQl9TVE9QX1NBVkVfU1RSRUFNX1RPX0ZJTEVfUkVRVUVTVCwKK01TR19JRF9DTU1CX1NUT1BfU0FWRV9TVFJFQU1fVE9fRklMRV9DT05GSVJNLAorTVNHX0lEX0NNTUJfR0VUX1NUUkVBTV9GUk9NX0ZJTEVfUkVRVUVTVCwKK01TR19JRF9DTU1CX0dFVF9TVFJFQU1fRlJPTV9GSUxFX0NPTkZJUk0sCitNU0dfSURfQ01NQl9TVE9QX0dFVF9TVFJFQU1fRlJPTV9GSUxFX1JFUVVFU1QsCitNU0dfSURfQ01NQl9TVE9QX0dFVF9TVFJFQU1fRlJPTV9GSUxFX0NPTkZJUk0sCitNU0dfSURfQ01NQl9JTlRfQVJSSVZFLAorTVNHX0lEX0NNTUJfREFUQV9JTkRJQ0FUSU9OLAorTVNHX0lEX0NNTUJfVUFNX0NIRUNLX1NVUFBPUlRfUkVRVUVTVCwKK01TR19JRF9DTU1CX1VBTV9DSEVDS19TVVBQT1JUX0NPTkZJUk0sCitNU0dfSURfQ01NQl9VQU1fU0VUX1NJTVRZUEVfUkVRVUVTVCwKK01TR19JRF9DTU1CX1VBTV9TRVRfU0lNVFlQRV9DT05GSVJNLAorTVNHX0lEX0NNTUJfVUFNX0dFVF9DTU1CU05fUkVRVUVTVCwKK01TR19JRF9DTU1CX1VBTV9HRVRfQ01NQlNOX0NPTkZJUk0sCitNU0dfSURfQ01NQl9VQU1fQ0hFQ0tfR0JBSVNORUVEX1JFUVVFU1QsCitNU0dfSURfQ01NQl9VQU1fQ0hFQ0tfR0JBSVNORUVEX0NPTkZJUk0sCitNU0dfSURfQ01NQl9VQU1fR0VUX0tFWV9SRVFVRVNULAorTVNHX0lEX0NNTUJfVUFNX0dFVF9LRVlfQ09ORklSTSwKK01TR19JRF9DTU1CX1VBTV9TRVRfS0VZX1JFUVVFU1QsCitNU0dfSURfQ01NQl9VQU1fU0VUX0tFWV9DT05GSVJNLAorTVNHX0lEX0NNTUJfVUFNX0NIRUNLX01TS0lTVkFMSURfUkVRVUVTVCwKK01TR19JRF9DTU1CX1VBTV9DSEVDS19NU0tJU1ZBTElEX0NPTkZJUk0sCitNU0dfSURfQ01NQl9VQU1fTVNLX0NIQU5HRV9JTkRJQ0FUSU9OLAorTVNHX0lEX0NNTUJfQ09ERV9FTkQsCisKKy8qTUJCTVNEUlYqLworTVNHX0lEX01CQk1TX0RSVl9JTklULAorTVNHX0lEX01CQk1TX0RSVl9ERUlOSVQsCisKKy8qQlRJRiovCitNU0dfSURfQlRJRl9SRUFEWV9UT19SRUFEX0lORCwKK01TR19JRF9CVElGX1JFQURZX1RPX1dSSVRFX0lORCwKKworLyogUHJpb3hpbWl0eSAtIHNlbmQgdGhlIHByaW1pdGl2ZSB0byBNTUkgU2Vuc29yIFNlcnZpY2UgKi8KK01TR19JRF9TUlZfU0VOU09SX1BYU19ERVRFQ1RfT0JKRUNUX0lORCwKKworCisvKkNDQ0kgLSBzZW5kIHRoZSBzYXAgaWQgdG8gVVBTICovCitNU0dfSURfVVBTMV9SRUFEWV9UT19SRUFEX0lORCwKK01TR19JRF9VUFMyX1JFQURZX1RPX1JFQURfSU5ELAorTVNHX0lEX1VQUzNfUkVBRFlfVE9fUkVBRF9JTkQsCitNU0dfSURfVVBTNF9SRUFEWV9UT19SRUFEX0lORCwKK01TR19JRF9VUFMxX1JFQURZX1RPX1dSSVRFX0lORCwKK01TR19JRF9VUFMyX1JFQURZX1RPX1dSSVRFX0lORCwKK01TR19JRF9VUFMzX1JFQURZX1RPX1dSSVRFX0lORCwKK01TR19JRF9VUFM0X1JFQURZX1RPX1dSSVRFX0lORCwKKworLypTRElPQ09SRSovCitNU0dfSURfU0RJT0NPUkVfQ09ERV9CRUdJTiwKK01TR19JRF9TRElPQ09SRV9JU1JfUkVRID0gTVNHX0lEX1NESU9DT1JFX0NPREVfQkVHSU4sCitNU0dfSURfU0RJT0NPUkVfVVRfSVNSX1JFUSwKK01TR19JRF9TRElPQ09SRV9VVF9UWF9SRVEsCitNU0dfSURfU0RJT0NPUkVfVVRfUlhfUkVRXywKK01TR19JRF9TRElPQ09SRV9VVF9MQl9SRVFfLAorTVNHX0lEX1NESU9DT1JFX0NPREVfVEFJTCA9IE1TR19JRF9TRElPQ09SRV9DT0RFX0JFR0lOICsgMjAsCisKKworCisvKiBJREMgKi8KK01TR19JRF9JRENfUlhfREFUQSwKKworLyogTFBNICovCitNU0dfSURfTFBNLAorCisjaWYgZGVmaW5lZChJQ19NT0RVTEVfVEVTVCkgfHwgZGVmaW5lZChfX0lDX1NMVF9fKQorTVNHX0lEX0RSVlRFU1RfVEREU0xUX1NUQVJUX1JFUSwKK01TR19JRF9EUlZURVNUX1RERFNMVF9TVEFSVF9DTkYsCitNU0dfSURfRFJWVEVTVF9URERTTFRfRE9ORSwKKyNlbmRpZgorCisvKiBFU0wgKi8KKyNpZiBkZWZpbmVkKF9fRVNMX0NPU0lNX0xURV9fKQorTVNHX0lEX0lETEVfVEFTS19TRU1BUEhPUkVfUkVRLAorI2VuZGlmCisKKy8qIERQREwyICovCisjaWYgZGVmaW5lZChfX0RZTkFNSUNfUE9XRVJfRE9XTl9MMkNBQ0hFX1dBWV9TVVBQT1JUX18pCitNU0dfSURfUE9XRVJfRE9XTl9XQVlfUkVRLAorTVNHX0lEX1BPV0VSX0RPV05fTElORV9SRVEsCisjZW5kaWYKKworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0RSSVZFUl9DT0RFX1RBSUwgKQorCisjZW5kaWYgLy9fRFJWX01TR0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9saGlmY29yZV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L2xoaWZjb3JlX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY3Y2Y1MAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydi9saGlmY29yZV9tc2dpZC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBjY2lzbWNvcmVfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIGRlZmluZSBjY2lzbWNvcmUgbWVzc2FnZXMKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDYgMjMgMjAxNyBjcy5odWFuZworICogW01PTFkwMDI1ODQ3MV0gW0xISUZDb3JlXSBFbmFibGUgTEhJRiBIVyBsb2cgaW50ZXJydXB0IHRvIHJlZHVjZSBwb2xsaW5nIHRpbWVzCisgKiBtZXJnZSBITVUgcGFydAorICoKKyAqIDAzIDEzIDIwMTcgYWN0b3J5Lm91CisgKiBbTU9MWTAwMjMzODYyXSBjaGVjayBpbiBMSElGIFNMVCBhbmQgTEhJRiBIVyBsb2dnaW5nIGFwaQorICogW0xISUZDT1JFXSByZXBsYWNlIExISUYgbG9nIGFwaSB3aXRoIEVCUyBhcGkgYnV0IHdyYXBwZWQKKyAqIGZpeCBidWlsZCBlcnJvciBhdCBEVlQgYW5kIE1PRElTIGR1ZSB0byBFQlMgcmV0dXJuIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBMSElGQ09SRV9NU0dJRF9ICisjZGVmaW5lIExISUZDT1JFX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfTEhJRkNPUkVfQ09ERV9CRUdJTikKK01TR19JRF9MSElGQ09SRV9JVF9TVEFSVF9HRU5fRExfREFUQSwKK01TR19JRF9MSElGQ09SRV9JVF9TVE9QX0dFTl9ETF9EQVRBLAorTVNHX0lEX0xISUZDT1JFX0lUX0dFTl9ETF9EQVRBX0FHQUlOLAorTVNHX0lEX0xISUZDT1JFX0xPR19EQVRBX0RVTVAsCitNU0dfSURfTEhJRkNPUkVfUE9MTElORywKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9MSElGQ09SRV9DT0RFX0VORCkKKworI2VuZGlmICAvLwlMSElGQ09SRV9NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvbWV1dF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L21ldXRfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmIxYWQxCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L21ldXRfbXNnaWQuaApAQCAtMCwwICsxLDk4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKgltZXV0X3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKglNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqCU1NSSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogCQkJCUhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwkvKiBUaGlzIGlzIHRoZSBkZWZhdWx0IG1lc3NhZ2UgdHlwZSB3aGljaCBpcyB1c2VkIHRvIGV4Y2hhbmdlIG1vc3QgY29tbWFuZHMgYmV0d2VlbiBob3N0IGFuZCB0YXJnZXQgKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgTUVVVF9NU0dfSAorI2RlZmluZSBNRVVUX01TR19ICisKKwkvKiBUaGlzIGlzIHRoZSBkZWZhdWx0IG1lc3NhZ2UgdHlwZSB3aGljaCBpcyB1c2VkIHRvIGV4Y2hhbmdlIG1vc3QgY29tbWFuZHMgYmV0d2VlbiBob3N0IGFuZCB0YXJnZXQgKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9NRVVUX01TR19DT0RFX0JFR0lOICkKKyAJTVNHX0lEX0RWVF9EQVRBX01FU1NBR0UgPSBNU0dfSURfTUVVVF9NU0dfQ09ERV9CRUdJTiwKKwkvKiBUaGlzIG1lc3NhZ2UgdHlwZSBpcyB1c2VkIG9ubHkgd2hlbiByZWNlaXZpbmcgbGFyZ2UgcGFja2V0IGRhdGEgaS5lLiBkYXRhIGxhcmdlciB0aGFuIHNheSAxIGtCICovCisgICBNU0dfSURfRFZUX0xBUkdFX0RBVEFfTUVTU0FHRSwKKwkvKiBUaGlzIG1lc3NhZ2UgdHlwZSBpcyB1c2VkIHRvIGluZGljYXRlIFNUQVRVUyBpLmUuIEFDSyBvciBOQUNLICovCisgICBNU0dfSURfRFZUX1NUQVRVU19NRVNTQUdFLAorCS8qIFRoaXMgaXMgdXNlZCB0byByZXF1ZXN0IGEgY29uZmlndXJhdGlvbiBjaGFuZ2Ugb3IgdG8gcmVxdWVzdCBsYXJnZSBkYXRhKi8KKyAgIE1TR19JRF9EVlRfUkVRVUVTVF9NRVNTQUdFLAorCS8qIFRoaXMgaXMgdXNlZCB0byBjaGVjayBmb3IgdmFsaWQgbWVzc2FnZSB0eXBlICovCisgICBNU0dfSURfRFZUX01FU1NBR0VfTlVNLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9NRVVUX01TR19DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vTUVVVF9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L3dtdF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2L3dtdF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MjEwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9kcnYvd210X21zZ2lkLmgKQEAgLTAsMCArMSwxNzMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogIHdtdF9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIFdNVCBTQVAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSW5jbHVkZQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfV01UX01TR19ICisjZGVmaW5lIF9XTVRfTVNHX0gKKyAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgSW5kaWNhdGlvbiBNZXNzYWdlczogQlQgLT4gV01UCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1dNVF9NU0dfQ09ERV9CRUdJTiApCitNU0dfSURfQlRfV01UX0NPTk5fU1RBVFVTX1VQREFURV9JTkQgPSBNU0dfSURfV01UX01TR19DT0RFX0JFR0lOLAorTVNHX0lEX0JUX1dNVF9RVUVSWV9SU1NJX0lORCwKK01TR19JRF9XTVRfQlRfU0VUX1JYX1JBTkdFX0NORiwKK01TR19JRF9XTVRfV05EUlZfU0VUX0JXQ1NfSU5ELAorTVNHX0lEX1dNVF9CVF9TRVRfREVGQVVMVF9UWF9QT1dFUl9DTkYsCitNU0dfSURfV01UX0JUX1VQREFURV9DT05OX1RYX1BPV0VSX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBSZXF1ZXN0IE1lc3NhZ2VzOiBXTVQgLT4gQlQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX1dNVF9CVF9TRVRfQldDU19SRVEsCitNU0dfSURfV01UX0JUX1FVRVJZX1JTU0lfUkVRLAorTVNHX0lEX1dNVF9CVF9TRVRfUlhfUkFOR0VfUkVRLAorTVNHX0lEX1dNVF9CVF9TRVRfREVGQVVMVF9UWF9QT1dFUl9SRVEsCitNU0dfSURfV01UX0JUX1VQREFURV9DT05OX1RYX1BPV0VSX1JFUSwKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgSW5kaWNhdGlvbiBNZXNzYWdlczogV05EUlYgLT4gV01UCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9XTkRSVl9XTVRfQ09OTl9TVEFUVVNfVVBEQVRFX0lORCwKK01TR19JRF9XTkRSVl9XTVRfUVVFUllfUlNTSV9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgUmVxdWVzdCBNZXNzYWdlczogV01UIC0+IFdORFJWCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9XTVRfV05EUlZfU0VUX0JXQ1NfUkVRLAorTVNHX0lEX1dNVF9XTkRSVl9RVUVSWV9SU1NJX1JFUSwKK01TR19JRF9XTVRfV05EUlZfU0VUX0FOVF9SRVEsCitNU0dfSURfV01UX1dORFJWX1NFVF9GTE9XX0NUUkxfUkVRLAorTVNHX0lEX1dNVF9XTkRSVl9TRVRfRklYRURfUlhfR0FJTl9SRVEsCitNU0dfSURfV01UX1dORFJWX1NFVF9PTUlUX0xPV19SQVRFX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBSZXF1ZXN0IE1lc3NhZ2VzOiBGTSAtPiBXTVQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0ZNX1dNVF9TTEVFUF9SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgUmVxdWVzdCBNZXNzYWdlczogV01UIC0+IEZNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9GTV9XTVRfU0xFRVBfQ05GLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIE5ldyBBZGRlZCBJbmRpY2F0aW9uIE1lc3NhZ2VzOiBCVCAtPiBXTVQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0JUX1dNVF9IQ0lfRVZFTlRfSU5ELAorTVNHX0lEX1dNVF9CVF9IQ0lfQ01EX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIE5ldyBBZGRlZCBSZXF1ZXN0IE1lc3NhZ2VzOiBXTVQgLT4gQlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfV01UX0JUX0hDSV9DTURfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIEluZGljYXRpb24gTWVzc2FnZXM6IFdORFJWIC0+IFdNVAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfV05EUlZfV01UX0NNX01PREVfVVBEQVRFX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfV01UX01TR19DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX1dNVF9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvZHJ2X21vZGlkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9kcnZfbW9kaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmE0MGM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2X21vZGlkLmgKQEAgLTAsMCArMSwxNzcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGRydl9tb2RpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG1vZHVsZSBpbmRleCBlbnVtIGJ1aWx0LgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIERSSVZFUl9NT0RVTEVfSURfSAorI2RlZmluZSBEUklWRVJfTU9EVUxFX0lEX0gKKworI2luY2x1ZGUgIm1vZHVsZV9pZF9yYW5nZS5oIgorCisvKiB1bmRlZiB1bnVzZWQgbWFjcm8gKi8KKyN1bmRlZiBUQVNLX1BSSU9SSVRZX01BQ1JPCisjdW5kZWYgdGFza19uYW1lCisjdW5kZWYgdGFza19xdWV1ZV9uYW1lCisjdW5kZWYgdGFza19wcmlvcml0eQorI3VuZGVmIHRhc2tfc3RhY2tfc2l6ZQorI3VuZGVmIG51bGxfdGFza19jcmVhdGVfZW50cnkKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiB0YXNrX2NyZWF0ZV9mdW5jdGlvbgorI3VuZGVmIHRhc2tfc3RhY2tfaW50ZXJuYWxSQU0KKyN1bmRlZiB0YXNrX2V4dGVybmFsX3F1ZXVlX3NpemUKKyN1bmRlZiB0YXNrX2ludGVybmFsX3F1ZXVlX3NpemUKKyN1bmRlZiB0YXNrX2Jvb3RfbW9kZQorI3VuZGVmIHRhc2tfYWZmaW5pdHlfZ3JvdXAKKyN1bmRlZiB0YXNrX2FmZmluaXR5X2dyb3VwX2lkCisjdW5kZWYgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTQorI3VuZGVmIE1PRFVMRV9JRF9GT1JfUFJJTlRfVFJBQ0UKKyN1bmRlZiB0YXNrX2luZGV4CisjdW5kZWYgdGFza19tb2R1bGVfbWFwCisKKy8qIGRlZmluZSBhbGwgdW51c2VkIG1hY3JvcyBhcyBlbXB0eSAqLworI2RlZmluZSB0YXNrX25hbWUocDEpCisjZGVmaW5lIHRhc2tfcXVldWVfbmFtZShwMSkKKyNkZWZpbmUgdGFza19wcmlvcml0eShwMSxwMikKKyNkZWZpbmUgdGFza19zdGFja19zaXplKHAxKQorI2RlZmluZSBudWxsX3Rhc2tfY3JlYXRlX2VudHJ5KHAxKQorI2RlZmluZSB0YXNrX2NyZWF0ZV9mdW5jdGlvbihwMSkKKyNkZWZpbmUgdGFza19zdGFja19pbnRlcm5hbFJBTShwMSkKKyNkZWZpbmUgdGFza19leHRlcm5hbF9xdWV1ZV9zaXplKHAxKQorI2RlZmluZSB0YXNrX2ludGVybmFsX3F1ZXVlX3NpemUocDEpCisjZGVmaW5lIHRhc2tfYm9vdF9tb2RlKHAxKQorI2RlZmluZSB0YXNrX2FmZmluaXR5X2dyb3VwKHAxKQorI2RlZmluZSB0YXNrX2FmZmluaXR5X2dyb3VwX2lkKHAxKQorI2RlZmluZSB0YXNrX2luZGV4KHAxKQorCisvKiBkZWZpbmUgdGhlIG1hY3JvIHdoaWNoIHByb3ZpZGVzIHRoZSBNT0QgSUQqLworI2RlZmluZSB0YXNrX21vZHVsZV9tYXAodGFzaywgbW9kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QsCisjZGVmaW5lIGNvbXBhdGlibGVfY29kZShleHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIsCisjZGVmaW5lIE1PRFVMRV9JRF9NQVBfVE9fTlVMTF9UQVNLX0NBTl9BTExPQ0FURV9JTE0obW9kKSAgICAgICAgICAgIG1vZCwKKyNkZWZpbmUgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRShtb2QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLAorCisKK01PRFVMRV9NT0RfQkVHSU4oTU9EX0lEX0RSVl9DT0RFX0JFR0lOKQorCSNpbmNsdWRlICJkcnZfdGFza19jb25maWcuaCIKKy8qIGN1c3RvbWVyIGFkZCBtb2R1bGUgaWQgYXQgaGVyZSAqLworTU9EVUxFX01PRF9FTkQoTU9EX0lEX0RSVl9DT0RFX1RBSUwpCisKKy8qIGNsZWFuIHVudXNlIGRlZmluYXRpb24gKi8KKyN1bmRlZiB0YXNrX21vZHVsZV9tYXAKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNCisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorCisKKyNlbmRpZiAvKiBEUklWRVJfTU9EVUxFX0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2Rydl9zYXAuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2Rydl9zYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjAyNTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvZHJ2X3NhcC5oCkBAIC0wLDAgKzEsNjMgQEAKKyNpZm5kZWYgRFJWX1NBUF9ICisjZGVmaW5lIERSVl9TQVBfSAorCisjaW5jbHVkZSAic2FwX3JhbmdlLmgiCisKK01PRFVMRV9TQVBfQkVHSU4oU0FQX0lEX0RSVl9DT0RFX0JFR0lOKQorCUFVRElPX1NBUCA9IFNBUF9JRF9EUlZfQ09ERV9CRUdJTiwKKwlCVF9BMkRQX1NBUCwKKwlCVF9BUFBfU0FQLAorCUJUX0FWUkNQX1NBUCwKKwlCVF9CSVBfU0FQLAorCUJUX0JQUF9TQVAsCisJQlRfSEZHX1NBUCwKKwlCVF9PQkVYX1NBUCwKKwlCVF9QQkFQX1NBUCwKKwlCV0NTX0JUX1NBUCwJICAgCisJQldDU19XTVRfU0FQLAorCUJXQ1NfV05EUlZfU0FQLAorCUNBTF9TQVAsIAorCUNBTF9MT1dfU0FQPUNBTF9TQVAsCisgICAgLy9DQUxfU0FQLCAgICAgIAorCUNNVVhfVUhfU0FQLAorCURSVlRFU1RfVEwxX1NBUCwKKwlEUlZURVNUX0w0X1NBUCwKKwlGTVJfU0FQLAorCUZUX1dORFJWX1NBUCwKKwlHUFNfRlRfU0FQLAorCUdQU19NTkxfU0FQLAorCUhPU1RBUF9BQk1fU0FQLAorCUhPU1RBUF9XTkRSVl9TQVAsCisJSVJDT01NX0FQUF9TQVAsCisJSVJEQV9JUkNPTU1fU0FQLAorCUlSREFfT0JFWF9TQVAsCisJTU1JX05GQ19TQVAsCisJTkZDX0FQUF9ORkNfU0FQLAorCU5GQ19NTUlfU0FQLAorCU5GQ19ORkNfQVBQX1NBUCwKKwlORkNfTkZDX1JFQURFUl9TQVAsCisJTkZDX1JFQURFUl9ORkNfU0FQLAorCVJUQ19HUFNfU0FQLAorCVdNVF9CVF9TQVAsCisJV01UX0ZNUl9TQVAsCSAgIAorCVdNVF9XTVRfU0FQLAorCVdNVF9XTkRSVl9TQVAsCisJV05EUlZfQlRfU0FQLAorCVdORFJWX01NSV9TQVAsCSAgIAorCVdORFJWX1NVUENfU0FQLAorCVdORFJWX1RDUElQX1NBUCwKKwlXTkRSVl9XTkRSVl9TQVAsCisJTDFTUF9MVEVDU1JfU0FQLAorI2lmIGRlZmluZWQoX19FQ0FMTF9TVVBQT1JUX18pCisjaWYgZGVmaW5lZChfX0w1X1NVUFBPUlRfXykKKwlMMVNQX0w1VUVDQUxMX1NBUCwKKyNlbmRpZgorI2VuZGlmIAorCisjaWYgZGVmaW5lZChfX0VTTF9DT1NJTV9MVEVfXykKKyAgSURMRV9TQVAsCisjZW5kaWYKKworTU9EVUxFX1NBUF9FTkQoU0FQX0lEX0RSVl9DT0RFX1RBSUwpCisJCQorI2VuZGlmIC8qIERSVl9TQVBfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvZHVtbXkudHh0IGIvbWN1L2ludGVyZmFjZS9zYXAvZHVtbXkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9kdW1teS50eHQKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2hpc3JfbW9kaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2hpc3JfbW9kaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTY2NTU2Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvaGlzcl9tb2RpZC5oCkBAIC0wLDAgKzEsMTUzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBoaXNyX21vZGlkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBwcm92aWRlcyB0aGUgbW9kdWxlIGluZGV4IGVudW0gYnVpbHQuCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBISVNSX01PRFVMRV9JRF9ICisjZGVmaW5lIEhJU1JfTU9EVUxFX0lEX0gKKyNpbmNsdWRlICJtb2R1bGVfaGlzcmlkX3JhbmdlLmgiCisjaW5jbHVkZSAibW9kdWxlX2lkX3JhbmdlLmgiCisKKy8qIHVuZGVmIHVudXNlZCBtYWNybyAqLworI3VuZGVmIFRBU0tfUFJJT1JJVFlfTUFDUk8KKyN1bmRlZiB0YXNrX25hbWUKKyN1bmRlZiB0YXNrX3F1ZXVlX25hbWUKKyN1bmRlZiB0YXNrX3ByaW9yaXR5CisjdW5kZWYgdGFza19zdGFja19zaXplCisjdW5kZWYgbnVsbF90YXNrX2NyZWF0ZV9lbnRyeQorI3VuZGVmIGNvbXBhdGlibGVfY29kZQorI3VuZGVmIHRhc2tfY3JlYXRlX2Z1bmN0aW9uCisjdW5kZWYgdGFza19zdGFja19pbnRlcm5hbFJBTQorI3VuZGVmIHRhc2tfZXh0ZXJuYWxfcXVldWVfc2l6ZQorI3VuZGVmIHRhc2tfaW50ZXJuYWxfcXVldWVfc2l6ZQorI3VuZGVmIHRhc2tfYm9vdF9tb2RlCisjdW5kZWYgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTQorI3VuZGVmIE1PRFVMRV9JRF9GT1JfUFJJTlRfVFJBQ0UKKyN1bmRlZiB0YXNrX2luZGV4CisjdW5kZWYgdGFza19tb2R1bGVfbWFwCisKKy8qIGRlZmluZSBhbGwgdW51c2VkIG1hY3JvcyBhcyBlbXB0eSAqLworI2RlZmluZSBYX0hJU1JfQ09OU1RfV0lUSF9BRkZJTklUWShhLGIsYyxkLGUsZixnLGgsaSkgCisKKy8qIGRlZmluZSB0aGUgbWFjcm8gd2hpY2ggcHJvdmlkZXMgdGhlIE1PRCBJRCovCisjZGVmaW5lIFhfSElTUl9NT0QoYSxoKSBoLAorI2RlZmluZSBNT0RVTEVfSURfRk9SX1BSSU5UX1RSQUNFKG1vZCkgbW9kLAorCisKK01PRFVMRV9NT0RfQkVHSU4oTU9EX0lEX0hJU1JfQ09ERV9CRUdJTikKKyAgICAjaW5jbHVkZSAiaGlzcl9jb25maWdfaW50ZXJuYWwuaCIKK01PRFVMRV9NT0RfRU5EKCBNT0RfSURfSElTUl9DT0RFX1RBSUwgKQorCisKKy8qIGNsZWFuIHVudXNlIGRlZmluYXRpb24gKi8KKyN1bmRlZiBYX0hJU1JfTU9ECisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorCisjdW5kZWYgWF9ISVNSX0NPTlNUX1dJVEhfQUZGSU5JVFkKKworI2VuZGlmIC8qIEhJU1JfTU9EVUxFX0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL2ltY2JfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2ltY2JfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDNjMmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvaW1jYl9tc2dpZC5oCkBAIC0wLDAgKzEsNDY2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgaW1jYl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwMyAyMiAyMDIyIHl1bmctbGlhbmcudHNvdQorICogW01PTFkwMDc4NDQ0MF0gW0ZlYXR1cmVEZXZlbG9wbWVudF1bQUxQU0FSMDYzNTQ5OTldW0dlbjk3Lzk4XVtBVCZUXVt2MjEuM11bQ0RSLUxURS0xNDQ3XVtDRFItSU1TLTEyMTBdIElNUyB2b2ljZSBub3QgYXZhaWxhYmxlIHdoZW4gUEROIHJlamVjdCBjYXN1ZSAyOCwgMzMKKyAqIC5pbWNiIG1zZyBpZAorICoKKyAqIDEyIDE2IDIwMjEgeGluLm5pCisgKiBbTU9MWTAwNzc0MTYxXSBbbXQyNzM1XVtDUyBlQ2FsbF1bTkcgZUNhbGxdW3BhdGNoIGJhY2tdIGVjYWxsIHBhdGNoIGJhY2sgZnJvbSBOUjE1LlIzLk1ENzAwLk1QLkVDQWxsLkRFVgorICogCQorICogCS4KKyAqCisgKiAxMiAwNiAyMDIxIHhpbi5uaQorICogW01PTFkwMDc3NDE2MV0gW210MjczNV1bQ1MgZUNhbGxdW05HIGVDYWxsXVtwYXRjaCBiYWNrXSBlY2FsbCBwYXRjaCBiYWNrIGZyb20gTlIxNS5SMy5NRDcwMC5NUC5FQ0FsbC5ERVYKKyAqIAlTV1JEIGludGVyZmFjZSBQYXJ0LgorICogCS4KKyAqCisgKiAwNSAxOCAyMDIxIG90X2h1aS50dQorICogW01PTFkwMDM4OTAwN10gZUNhbGwgb3ZlciBJTVMgSU1DIGludGVyZmFjZSBwYXJ0CisgKiAJCisgKiAJLgorICoKKyAqIDA4IDI2IDIwMTkgamFuaS5tYW5uaW5lbgorICogW01PTFkwMDQzMzA0MV0gW0dlbjk3XVtFUFNGQl0gSVQgcmVsYXRlZCBpc3N1ZXMKKyAqIAkKKyAqIAlWTU9MWS5BUE9MTE8uU1FDIC0gSU1TIDVHIFZvaWNlIFN1cHBvcnQgQ2hhbmdlcworICoKKyAqIDA4IDE0IDIwMTkgamFuaS5tYW5uaW5lbgorICogW01PTFkwMDQzMTgyNl0gW1ZPTlJdIElNQyBDaGFuZ2VzIGZvciA1RyBWb2ljZSBTdXBwb3J0IC0gU0FQCisgKiAJCisgKiAJVk1PTFkuVi41R1ZPSUNFLkRFViAtIFNBUCAtIFNXUkQKKyAqCisgKiAwMSAwOCAyMDE5IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAzNjcxMjZdIFtHZW45N11bSU1TXSBWb0xURSBwb3J0aW5nCisgKiBBZGRpbmcgSU1TIGludGVyZmFjZXMgdG8gdHJhY2UgZGF0YWJhc2UuCisgKgorICogMTIgMzEgMjAxOCBodWlmZW5nLmppbmcKKyAqIFtNT0xZMDAzNzU2NjBdIFtJTVNdW0dlbjk3IHN1Ym1hcmluZV0gVlRTIGludGVyZmFjZSBkZXZlbG9wbWVudHMKKyAqIHJlbW92ZSBidWlsZCBlcnJvci4KKyAqCisgKiAxMiAyOSAyMDE4IGh1aWZlbmcuamluZworICogW01PTFkwMDM3NTY2MF0gW0lNU11bR2VuOTcgc3VibWFyaW5lXSBWVFMgaW50ZXJmYWNlIGRldmVsb3BtZW50cworICogaW1zX2hpZiBvdmVyIHR0eS4KKyAqCisgKiAxMiAyMSAyMDE4IHN6dS1jaGllaC5jaGl1CisgKiBbTU9MWTAwMzY2ODg0XSBbSU1TXVtHZW45N10gSU1DQiByZWxhdGVkIGRldmVsb3BtZW50cworICogW0dlbjk3XSBUcmFjaW5nLgorICogCTEuIERITCBsb2dnaW5nIGV2ZW50OiBkdW1wIHNpbV9jb250ZXh0CisgKgorICogMTIgMTggMjAxOCBqb2huc29uLmxpdQorICogW01PTFkwMDM3MzA4M10gW0dlbjk3XVtTdWJtYXJpbmVdW0lNQ11QY3NjZiBhZGRyZXNzIGRpc2NvdmVyeSB2aWEgc2ltIGJ5IGltYworICogcGF0Y2ggYmFjayB0byBkZXYuCisgKgorICogMTIgMTEgMjAxOCBqb25pLmh1dHR1bGEKKyAqIFtNT0xZMDAzNzIxMzBdIFtHZW45N11bSU1TXSBNU0dfSUQgY2hhbmdlIGFuZCBzb21lIGJ1ZyBmaXggdG8gcnVuIFVULgorICoKKyAqIDEyIDExIDIwMTggam9uaS5odXR0dWxhCisgKiBbTU9MWTAwMzcyMTMwXSBbR2VuOTddW0lNU10gTVNHX0lEIGNoYW5nZSBhbmQgc29tZSBidWcgZml4IHRvIHJ1biBVVC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfSU1DQl9NU0dJRF9IXworI2RlZmluZSBfSU1DQl9NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0gSU1DQl9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfSU1DQl9DT0RFX0JFR0lOICkKKworICAgIE1TR19JRF9JTUNCX0JFR0lOLAorCisgICAgTVNHX0lEX0lNQ0JfRVhfQkVHSU4sCisKKyAgICAvKiB3aXRoIElNU00gKi8KKyAgICBNU0dfSURfSU1TTV9JTUNCX0JFR0lOLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUEROX0FDVF9QUk9HUkVTU0lOR19OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX1BETl9BQ1RfQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QRE5fQUNUX1JFSl9SU1AsCisKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERURJQ0FURURfQkVBUkVSX0FDVF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfREVESUNBVEVEX0JFQVJFUl9BQ1RfQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERURJQ0FURURfQkVBUkVSX0FDVF9SRUpfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0RFRElDQVRFRF9CRUFSRVJfQUNUX05PVElGWV9SRVEsCisKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERUFDVF9BQ0tfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0RFQUNUX1JFSl9SU1AsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfREVBQ1RfTk9USUZZX1JFUSwKKworICAgICAgICBNU0dfSURfSU1TTV9JTUNCX01PRElGWV9BQ0tfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX01PRElGWV9SRUpfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX01PRElGWV9OT1RJRllfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUEROX0JFQVJFUl9VUERBVEVfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9IQU5ET1ZFUl9TVEFSVF9OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0hBTkRPVkVSX1NUT1BfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9IQU5ET1ZFUl9JUF9SRUFEWV9OT1RJRllfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfVVBEQVRFX0lQVjRfR0xPQkFMX0FERFJfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9VUERBVEVfSVBWNl9HTE9CQUxfQUREUl9OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0lSQVRfV0lUSE9VVF9JUF9DSEFOR0VfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUENPX1VQREFURV9SRVEsCisKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9SRVNFVF9TVUdHRVNUSU9OX1RJTUVSX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERUFDVF9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNU01fSU5QVVRfTVNHX1BBUkFfQ0hFQ0tJTkdfRkFJTF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfTU9ESUZZX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9QRE5fQUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QRE5fQUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9ERUFDVF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUENTQ0ZfRElTQ09WRVJZX1ZJQV9TSU1fUkVKX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9BQ0tfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX1BDU0NGX0RJU0NPVkVSWV9WSUFfUENPX1JFSl9SU1AsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUENTQ0ZfRElTQ09WRVJZX1ZJQV9QQ09fQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QQ1NDRl9ESVNDT1ZFUllfUkVKX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QQ1NDRl9ESVNDT1ZFUllfQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9JTkRfVElNRVJfQ0FOQ0VMLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0lORF9USU1FUl9TVEFSVCwKKyAgICAgICAgCisgICAgTVNHX0lEX0lNU01fSU1DQl9FTkQsCisKKyAgICAvKiB3aXRoIElNU1ZUICovCisgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQkVHSU4sCisgICAgICAgIC8qIFR5cGU0OiBJTVNWVC1JTUNCIFRWIHsgKi8KKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTE9PUF9URVNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTE9PUF9URVNUX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQ09NTV9FUlJPUiwKKworICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9HRVRfQ0FQX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfR0VUX0NBUF9SU1AsCisKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQ09ORklHX0lOSVRfSU5ELAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9DT05GSUdfVVBEQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQ09ORklHX0RFSU5JVF9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fUkVRLAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9NT0RJRllfU0VTU0lPTl9DTkYsCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX01PRElGWV9TRVNTSU9OX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fUlNQLAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX0NPTkZJR19JTklULAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9DT05GSUdfVVBEQVRFLAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9HRVRfQ0FQX1JFUSwKKworICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9NT0RfQldfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX0hBTkRPVkVSX1NUQVJUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfSEFORE9WRVJfU1RPUF9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fQ0FOQ0VMX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fQ0FOQ0VMX0NORiwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fQ0FOQ0VMX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfRVZFTlRfTE9DQUxfQldfUkVBRFlfSU5ELAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX0NBTExfUFJPR1JFU1NfSU5ELAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX1BETl9IQU5ET1ZFUl9CRUdJTl9JTkQsCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX1BETl9IQU5ET1ZFUl9FTkRfSU5ELAorCisgICAgICAgIC8qIH0gVHlwZTQ6IElNU1ZULUlNQ0IgVFYgKi8KKyAgICBNU0dfSURfSU1TVlRfSU1DQl9FTkQsCisKKyAgICAvKiB3aXRoIElNQyAqLworICAgIE1TR19JRF9JTUNCX0lNQ19CRUdJTiwKKworICAgICAgICBNU0dfSURfSU1DQl9JTUNfSVBDX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lQQ19SRVEsCisKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0xPT1BfVEVTVF9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19MT09QX1RFU1RfUlNQLAorCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TRVRfVEVTVF9NT0RFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NFVF9URVNUX01PREVfQ0VMTF9JTkZPX1JFUSwKKworICAgICAgICAvKiBJTVMgU0lNICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9DTkYsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9SRUosCisKKyAgICAgICAgLyogV0ZDICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19IQU5ET1ZFUl9TVEFSVF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19IQU5ET1ZFUl9TVE9QX1JFUSwKKworICAgICAgICAvKiBJTVMgUmVnaXN0cmF0aW9uICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRVFfVVBEQVRFX1JUX1NFVFRJTkcsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19JTVNfUkVHX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19SRUdfUkVKX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19ERVJFR19JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19JTVNfUkVHX1NUQVRFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lORF9SRUdfQVVUSF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUdfRU1TX01PREVfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ05GX1JFR19BVVRIX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX09PU19TVEFSVF9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19PT1NfRU5EX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1FVRVJZX1NUQVRFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1FVRVJZX1NUQVRFX0NORiwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1JBVF9DSEFOR0VfSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfSU1TVk9QU19OT1RJRklDQVRJT05fSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkxNX0VWRU5UX0lORCwKKworICAgICAgICAvKiBWSUxURSAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfVlRfQ09OTkVDVF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19WVF9DQVBfUVVFUllfSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfVlRfQ0FQX1FVRVJZX1JTUCwKKworICAgICAgICAvKiBTTVMgcmVsYXkgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NNU19CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TRU5EX1NNU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU0VORF9TTVNfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1JFQ1ZfU01TX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUNWX1NNU19DTkYsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVMX1NNU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVDVl9TTVNfRVJST1JfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0FCT1JUX1NFTkRfU01TX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19BQk9SVF9SRUNWX1NNU19JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TTVNfRU5ELAorCisgICAgICAgIC8qIENDIHJlbGF5ICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19DQUxMX1BST0dSRVNTX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19TSVBfQ0FMTF9QUk9HUkVTU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTUVESUFfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01UX0NBTExfQUJPUlRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01UX0NBTExfUFJFU0VOVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTVRfQ0FMTF9QUkVTRU5UX0NORiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NVF9DQUxMX1JJTkdfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0ZPUkNFX0hBTkdVUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTVRfQUNDRVBUX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NVF9BQ0NFUFRfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0hBTkdVUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTU9fSEFOR1VQX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TUlZDQ19TVEFUVVNfVVBEQVRFX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TUlZDQ19DT05URVhUX1RSQU5TRkVSX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQUxMX0NPTlRST0xfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NBTExfQ09OVFJPTF9SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTU9fQ09ORl9DQUxMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NT19DT05GX0NBTExfUlNQLAorCisgICAgICAgICAgICAvKiBWSUxURSAqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX1ZUX0FDVElWRV9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTUVESUFfTU9EX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19WSURFT19DQVBfUkVRLAorCisgICAgICAgICAgICAvKiBTRFAgaW5mbyAqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX01FRElBX05FVywKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19NRURJQV9VUERBVEUsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfTUVESUFfREVMLAorCisgICAgICAgICAgICAvKiBWSUxURSAqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01UX1ZUX1NQRUNJQUxfQUNDRVBUX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NVF9WVF9TUEVDSUFMX0FDQ0VQVF9SU1AsCisJCQkKKwkJCS8qRUNBTEwqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX0VDQUxMX0lOX0JBTkRfTVNEX1RSQU5GRVJfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX0VDQUxMX1VQREFURV9NU0RfUlNQLAkJCQorICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfRU5ELAorCisgICAgICAgIC8qIFNTIHJlbGF5ICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19TV0lUQ0hfV0FJVElOR19PUl9IT0xESU5HX0FORF9BQ1RJVkVfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX1NXSVRDSF9XQUlUSU5HX09SX0hPTERJTkdfQU5EX0FDVElWRV9SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9XQUlUSU5HX09SX0FMTF9CR19DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9XQUlUSU5HX09SX0FMTF9CR19DQUxMU19SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9BTExfRkdfQU5EX1JFU1VNRV9CR19DQUxMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19SRUxFQVNFX0FMTF9GR19BTkRfUkVTVU1FX0JHX0NBTExfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX1JFTEVBU0VfQUxMX0ZHX0FORF9CR19DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9BTExfRkdfQU5EX0JHX0NBTExTX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19FWFBMSUNJVF9DQUxMX1RSQU5TRkVSX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19FWFBMSUNJVF9DQUxMX1RSQU5TRkVSX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DUkVBVEVfQ09ORkVSRU5DRV9DQUxMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DUkVBVEVfQ09ORkVSRU5DRV9DQUxMX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19BVEhfUkVMX0FMTF9DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfQVRIX1JFTF9BTExfQ0FMTFNfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0xJU1RfQ1VSUkVOVF9DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfTElTVF9DVVJSRU5UX0NBTExTX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19QUk9HUkVTU19OT1RJRllfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX05PX1JUUFBLVF9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTk9fUlRQUEtUX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DT05GRVJFTkNFX0NPTlRST0xfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX1NVQlNDUklCRV9DT05UUk9MX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DT05GRVJFTkNFX0NPTlRST0xfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0NPTkZFUkVOQ0VfQ09OVFJPTF9SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfSU5DT01JTkdfUlRQUEtUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0VORCwKKworICAgICAgICAvKiBVU1NEICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TRU5EX1VTU0RfSU5ELCAgLy9TZW5kIFVTU0QgUmVxdWVzdCB0byBVQQorICAgICAgICBNU0dfSURfSU1DQl9JTUNfU0VORF9VU1NEX1JTUCwgIC8vU2VuZCBVU1NEJ3MgUmVzcG9uc2UgZnJvbSBVQQorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVDVl9VU1NEX1JFUSwgIC8vVVJDIGZyb20gVUEKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1VTU0RfVVJDX1NUQVRVU19JTkQsIC8vU2VuZCBVUkMgU3RhdHVzIHRvIFVBCisKKyAgICAgICAgLyogQ01DQyBBdXRvIFRlc3QgVG9vbCAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1RBUlRfRUJJX0ZJTFRFUl9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TVE9QX0VCSV9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1RBUlRfQkVBUkVSX0ZJTFRFUl9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TVE9QX0JFQVJFUl9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVHX0lQU0VDX0ZMVVNIX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1JFR19JUFNFQ19BRERfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVHX0lQU0VDX0RFTEVURV9SRVEsCisKKyAgICAgICAgLyogTUQgTG93ZXIgTGF5ZXIgRXJyb3IgKFNlcnZpY2UgcmVxdWVzdCBmYWlsZWQsIEFDIEJhcnJlZC4uLmV0YykgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX01EX0xPV0VSX0xBWUVSX0VSUl9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1RMVl9QQVJBX1NFVFRJTkdfSU5ELAorCisgICAgICAgIC8qIElNUyBEZWJ1ZyBJbmZvcm1hdGlvbiBJTUNCLT5JTUMqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfSU1TX0RFQlVHX0lORk9fUkVRLAorCisgICAgICAgIC8qIElNUyBEZWJ1ZyBJbmZvcm1hdGlvbiBJTUMtPklNQ0IgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19ERUJVR19JTkZPX0lORCwKKworICAgICAgICAvKiBmb3IgSVNJTSByZWFkIGRhdGEgc2VnbWVudGF0aW9uICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUFEX0lTSU1fTlRGX1JFUSwKKworICAgICAgICAvKiBIYW5kb3ZlciBldmVudCB0byBMVEVDU1IgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0hBTkRPVkVSX0JFR0lOX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0hBTkRPVkVSX0VORF9SRVEsCisKKyAgICAgICAgLyogVFRZICAgSU1DIC0+IElNQ0IgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX1RUWV9FTkFCTEVfSU5ELAorCisgICAgICAgIC8qIFRUWSAgIElNQ0IgLT4gSU1DICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19UVFlfRU5BQkxFX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX1RUWV9DQVBBQklMSVRZX1JFUSwKKworICAgICAgICAvKiBGb3IgTFRFQ1NSLCBOT1RJRlkgSU1TIHRoZSBkYXRhIHBsYW4gZXZlbnQuICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19JTVNfTk9USUZZX0lORCwKKworICAgICAgICAvKiBJTUMgdHJpZ2dlciBJTUNCIHJlbGVhc2UgUEROICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUxFQVNFX1BETl9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUxFQVNFX1BETl9SU1AsCisKKyAgICAgICAgLyogRUNUIElNQyAtPiBJTUNCICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19FQ1RfSU5ELCAgLy8gU2VuZCBFQ1QgcmVxdWVzdCB0byBVQQorCisgICAgICAgIC8qIEVDVCBJTUNCIC0+IElNQyAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfRUNUX1JTUCwgIC8vIFNlbmQgRUNUIHJlc3BvbnNlIGZyb20gVUEKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0VDVF9SRVEsICAvLyBTZW5kIGZpbmFsIEVDVCBVUkMgY29uZmlybWF0aW9uIGZyb20gVUEKKworICAgICAgICAvKiBUTFYgZnJvbSBJTUNCIHRvIElNQyAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfVExWX1BBUkFfU0VUVElOR19SRVEsCisKKyAgICAgICAgLypNTyBDYWxsIERvbWFpbiBDb25mbGljdCBmbG93Ki8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfRE9NQUlOX0NPTkZMSUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfRE9NQUlOX0NPTkZMSUNUX1JTUCwKKworICAgICAgICAvKiBBVENNRCByZWxheSAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfQVRDTURfUkVMQVlfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfQVRDTURfUkVMQVlfSU5ELAorCisgICAgICAgIC8qIFJUVCAgIElNQyAtPiBJTUNCICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19SVFRfT1BfSU5ELAorCisgICAgICAgIC8qIFJUVCAgIElNQ0IgLT4gSU1DICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19SVFRfT1BfUlNQLAorCisgICAgICAgIC8qIENETUEtbGVzcyBJTUNCLT5JTUMgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19USU1FUl9TVEFUVVNfSU5ELAorCisgICAgICAgIC8qIFJGIGNvbnRyb2wgbWVzc2FnZSAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1JVX0lORk9fUkVRLAorCisgICAgICAgIC8qIFBTX0RBVEFfT0ZGIElNQy0+SU1DQiAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfUFNfREFUQV9PRkZfSU5ELAorCisgICAgICAgIC8qIGVWT0xURSBmbG93ICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NRURJQV9BTkJSX05PVElGWV9JTkQsIC8qIElNQyAtPiBJTUNCICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NRURJQV9BTkJSX05PVElGWV9SU1AsIC8qIElNQ0IgLT4gSU1DICovCisKKyAgICAgICAgLyogVUEgcXVlcnkgQ1Mgc3RhdHVzIGZyb20gSU1DICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19DU19BVkFJTEFCSUxJVFlfUkVRLCAgLyogSU1DQiAtPiBJTUMgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX0NTX0FWQUlMQUJJTElUWV9DTkYsICAvKiBJTUMgLT4gSU1DQiAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU01TX0NTX0FWQUlMQUJJTElUWV9SRVEsICAvKiBJTUNCIC0+IElNQyAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU01TX0NTX0FWQUlMQUJJTElUWV9DTkYsICAvKiBJTUMgLT4gSU1DQiAqLworCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19JTVNfUkVTRVRfU1VHR0VTVElPTl9USU1FUl9SRVEsIC8qIElNQ0IgLT4gSU1DICovCisKKyAgICBNU0dfSURfSU1DQl9JTUNfRU5ELAorCisgICAgLyogd2l0aCBOQ0NDSSAqLworICAgIE1TR19JRF9XUkFQX0lNQ0JfSU1DQl9OQ0NDSV9CRUdJTiwKKworICAgICAgICBNU0dfSURfV1JBUF9JTUNCX0lNQ0JfUkVBRFlfVE9fV1JJVEVfSU5ELAorICAgICAgICBNU0dfSURfV1JBUF9JTUNCX0lNQ0JfUkVBRF9ET05FX0lORCwKKyAgICAgICAgTVNHX0lEX1dSQVBfSU1DQl9JTUNCX0NPTU1fRVJST1IsCisKKyAgICBNU0dfSURfV1JBUF9JTUNCX0lNQ0JfTkNDQ0lfRU5ELAorCisgICAgLyogd2l0aCBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0lNQ0JfQkVHSU4sCisKKyAgICAgICAgTVNHX0lEX0FUUF9JTUNCX0lOVEVSX1JBVF9TVEFUVVNfSU5ELAorCisgICAgTVNHX0lEX0FUUF9JTUNCX0VORCwKKworICAgIE1TR19JRF9JTUNCX0VYX0VORCwKKworICAgIE1TR19JRF9JTUNCX0lOX0JFR0lOLAorCisgICAgICAgIC8qIElNQ0IgQ3RybCAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNCX0JFR0lOLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DQl9EVU1QX0NPTlRFWFRfSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNCX0VORCwKKworICAgIE1TR19JRF9JTUNCX0lOX0VORCwKKworICAgIE1TR19JRF9JTUNCX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9JTUNCX0NPREVfVEFJTCApCisKKworI2VuZGlmIC8qIF9JTUNCX01TR0lEX0hfICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9pc3JfbW9kaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL2lzcl9tb2RpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NjJhNDcKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9pc3JfbW9kaWQuaApAQCAtMCwwICsxLDg1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBpc3JfbW9kaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNVDYyOTcKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIElTUiBtb2R1bGUgaW5kZXggZW51bSBidWlsdC4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgSVNSX01PRFVMRV9JRF9ICisjZGVmaW5lIElTUl9NT0RVTEVfSURfSAorI2luY2x1ZGUgIm1vZHVsZV9pZF9yYW5nZS5oIgorCisvKiBkZWZpbmUgYWxsIHVudXNlZCBtYWNyb3MgYXMgZW1wdHkgKi8KKyNkZWZpbmUgWF9JU1JfTVRXUShhLGIsYykgCisvKiBkZWZpbmUgdGhlIG1hY3JvIHdoaWNoIHByb3ZpZGVzIHRoZSBNT0QgSUQqLworI2RlZmluZSBYX0lTUl9DT05TVChhLGIsYyxkLGUsZixnLGgsbW9kX2lkLGopIG1vZF9pZCwKKworTU9EVUxFX01PRF9CRUdJTihNT0RfSURfTElTUl9DT0RFX0JFR0lOKQorI2luY2x1ZGUgIm1vZGVtX2lzcl9jb25maWcuaCIKK01PRFVMRV9NT0RfRU5EKCBNT0RfSURfTElTUl9DT0RFX1RBSUwgKQorCisvKiBjbGVhbiB1bnVzZSBkZWZpbmF0aW9uICovCisjdW5kZWYgWF9JU1JfQ09OU1QKKyN1bmRlZiBYX0lTUl9NVFdRCisKKyNlbmRpZiAvKiBISVNSX01PRFVMRV9JRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9NRDk1L19lbDJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL01EOTUvX2VsMl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMTI3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9NRDk1L19lbDJfbXNnaWQuaApAQCAtMCwwICsxLDY2NiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGVsMl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAgIAorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA1IDE1IDIwMTkgdGMuY2hhbmcKKyAqIFtNT0xZMDA0MDYyNDZdIFtHYW1pbmddW0tvR11bTDJdIEdlbjk3IEdhbWluZyBlbmhhbmNlbWVudC4KKyAqCisgKiAwNyAxOCAyMDE4IHN0ZXZlLmthbworICogW01PTFkwMDMzOTMwN10gVGhlIGhhbmRsaW5nIG9mIGVuZXJneSBkZXBsZXRpb24gYXR0YWNrIGJ5IFNUTVNJIHBhZ2luZyBmcm9tIGZha2UgY2VsbAorICogSW5hY3Rpdml0eSBEZXRlY3Rpb24gVGltZXIgMgorICoKKyAqIDA3IDEwIDIwMTggc2xpZmVyLmhzdWVoCisgKiBbTU9MWTAwMzM3OTE1XSBbTVQ2Mjk1XVtFTDJdIEZhc3QgcmV0cmFuc21pc3Npb24gb2YgUkxDIFNUQVRVUyBQRFUgdXBvbiBVTCBIQVJRIGZhaWx1cmUKKyAqIERlZmluZSBtZXNzYWdlIGlkIGZvciBTVEFUVVMgUERVIGZlZWRiYWNrCisgKgorICogMDYgMjkgMjAxOCBndWFuZy15dS56aGVuZworICogW01PTFkwMDMzNTg3OV0gW01UNjI5NV0gTUwxUyBtdWx0aXBsZSBUQUcgZmxvdyBhZGRpbmcKKyAqIEVNQUMtTUwxUyBzVEFHIFRBIGZsb3cgZGV2ZWxvcG1lbnQKKyAqCisgKiAwNiAyMCAyMDE4IGt1bmctaGFvLmNodW5nCisgKiBbTU9MWTAwMzM0MTc0XSBbTVQ2Mjk1XVtFTDJdIFJlbW92ZSBSQiBzdXNwZW5kL3Jlc3VtZSBJTE0gYmV0d2VlbiBFUERDUCBhbmQgRVJMQ1VMCisgKiByZW1vdmUgdHdvIHVuc3VzZWQgbXNnaWRzCisgKgorICogMDYgMTEgMjAxOCBqaWEtc2hpLmxpbgorICogW01PTFkwMDMxOTM3M10gW01UNjI5NV0gcmVjb21tZW5kZWQgYml0IHJhdGUgZmVhdHVyZQorICogcmVjb21tZW5kZWQgYml0IHJhdGUgZmVhdHVyZTogdXBjbS1lbWFjIGludGVyZmFjZQorICoKKyAqIDA0IDE3IDIwMTggbmljb2xlLmhzdQorICogW01PTFkwMDMyMDEwNF0gW0lDRF0gUGF0Y2ggYmFjayB0byBVTU9MWUUKKyAqIFtVTU9MWUVdW0VMMklDRF0gZWwyaWNkIGZyYW1ld29yaworICoKKyAqIDA0IDE3IDIwMTggbmljb2xlLmhzdQorICogW01PTFkwMDMyMDEwNF0gW0lDRF0gUGF0Y2ggYmFjayB0byBVTU9MWUUKKyAqIFtVTU9MWUVdW0VMMklDRF0gZWwyaWNkIGZyYW1ld29yaworICoKKyAqIDA0IDEzIDIwMTggc2xpZmVyLmhzdWVoCisgKiBbTU9MWTAwMzA4MzY4XSBbTVQ2NzYzXVtCaWFuY29dW08xXVtNUDJdW1RNT11bV1cgRlRdW1VuaXRlZCBTdGF0ZXNdW1NlYXR0bGVdW05va2lhXVs0R01NXVtGNExdW0RhdGFdW0hUVFBdW1VMXSBIVFRQIFVMIEF2ZXJhZ2UgVGhyb3VnaHB1dCBGYWlsIGJ5IDAuMTg2IGFzIGNvbXBhcmVkIHRvIFJFRiBMRyBHNCBkZXZpY2UgZHVyaW5nIERhdHVtIEV4cDEgUm91bmQzIG9uIDMwdGggSmFuIGluIFBvb3IgU2lnbmFsIFN0YXRpYyBjb25kaXRpb24KKyAqIERlZmluZSBtZXNzYWdlIGlkIGZvciBSQiBwb2xsIHJlcXVlc3QKKyAqCisgKiAwMyAxOSAyMDE4IGd1YW5nLXl1LnpoZW5nCisgKiBbTU9MWTAwMzEzODUwXSBbTVQ2Mjk1XSBNTUwyIERWRlMgY29udHJvbCBmZWF0dXJlIGRldmVsb3BtZW50CisgKiBNTUwyIERWRlMgY29udHJvbCBhbmQgTUNVIERWRlMgcmUtb3JnCisgKgorICogMDEgMDkgMjAxOCB0aW1vdGh5LnlhbworICogW01PTFkwMDMwMDI5OF0gW1BWVCBtdXN0IHJlc29sdmVdILdMq0g/P6VdukM/PyAtIGVsMiBtc2cKKyAqIHNlbmRpbmcgcGRjcCBpbnZhbGlkIGNvbnRyb2wgcGR1IHRvIGF2b2lkIGVudGVyaW5nIHNsZWVwLiAoVU1PTFlBIC0gY29tbW9uKQorICoKKyAqIDExIDA2IDIwMTcgbWYuamhhbmcKKyAqIFtNT0xZMDAyNzIwNDJdIFtNVDYyOTVdWzkzLzk1IHJlLWFyY2hdIEFkZCBFTUFDIE1MMVMgaW50ZXJmYWNlCisgKiAuCisgKgorICogMDggMTggMjAxNyBtZi5qaGFuZworICogW01PTFkwMDI3MjA0Ml0gW01UNjI5NSBEZXZdIEFkZCBFTUFDIE1MMVMgaW50ZXJmYWNlCisgKiBhZGQgRU1BQyBNTDFTIGludGVyZmFjZS4KKyAqIDEwIDAzIDIwMTcgamlhLXNoaS5saW4KKyAqIFtNT0xZMDAyODE3NTRdIFtNVDY3NjNdIFVMIEhBUlEgZWFybHkgY2xvc2UgZm9yIHZvbHRlIGxvdyBwb3dlciBlbmhhbmNlbWVudAorICogZWFybHkgdWwgaGFycSBjbG9zZSBmb3Igdm9sdGUgbG93IHBvd2VyCisgKgorICogMTAgMDMgMjAxNyBqaWEtc2hpLmxpbgorICogW01PTFkwMDI4MTc1NF0gW01UNjc2M10gVUwgSEFSUSBlYXJseSBjbG9zZSBmb3Igdm9sdGUgbG93IHBvd2VyIGVuaGFuY2VtZW50CisgKiBlYXJseSB1bCBoYXJxIGNsb3NlIGZvciB2b2x0ZSBsb3cgcG93ZXIKKyAqCisgKiAxMCAwMyAyMDE3IGppYS1zaGkubGluCisgKiBbTU9MWTAwMjgxNzU0XSBbTVQ2NzYzXSBVTCBIQVJRIGVhcmx5IGNsb3NlIGZvciB2b2x0ZSBsb3cgcG93ZXIgZW5oYW5jZW1lbnQKKyAqIGVhcmx5IHVsIGhhcnEgY2xvc2UgZm9yIHZvbHRlIGxvdyBwb3dlcgorICoKKyAqIDA5IDIwIDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDI3OTE4NF0gW1BDVF1bQW5yaXRzdV1bQ0FHNTBDXVtFNDBdWzcuMS4xLjJdIGZhaWwKKyAqIFtUUlVOS10gTENJRCB2cy4gc3VwcG9ydCByZWxlYXNlIGhhbmRsaW5nCisgKgorICogMDggMjIgMjAxNyBjYW1taWUueWFuZworICogW01PTFkwMDI2OTU5OF0gW0dlbjkzXVRQQi9Nb2JpbGl0eSBDdHJsIHBhdGNoIGNoZWNrIGluCisgKiBbVFJVTktdW01lcmdlZCBmcm9tIFIxXVtFUERDUF1bSFNUXSBzZXQgdmlwIGJpdCBhbmQgbm90aWZ5IFZvTFRFIGJlYXJlciBmb3IgRVJMQ1VMCisgKgorICogMDggMDMgMjAxNyB3ZW4taml1bm4ubGl1CisgKiBbTU9MWTAwMjY4NTUxXSBUYXNrIGJhdGNoIHNjaGVkdWxpbmcgZm9yIExURSBMb3cgcG93ZXIKKyAqIFtFTDJdIFRhc2sgUmVzY2hlZHVsaW5nIGZvciBMb3cgUG93ZXIgUG9sbGluZyBUaWNrIENoYW5nZQorICoKKyAqIDA4IDAzIDIwMTcgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDI2ODU1MV0gVGFzayBiYXRjaCBzY2hlZHVsaW5nIGZvciBMVEUgTG93IHBvd2VyCisgKiBbRUwyXSBUYXNrIFJlc2NoZWR1bGluZyBmb3IgTG93IFBvd2VyIFBvbGxpbmcgVGljayBDaGFuZ2UKKyAqCisgKiAwNyAyOCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNjc1MDldIFtNVDY3NjNdW0JpYW5jb11bTjFdW01UQkZdW1BIT05FXVtPdmVybmlnaHRdW0hRXVtMYWJdW0VyaWNzc29uXVtBU1NFUlRdIGZpbGU6bWN1L2NvbW1vbi9kcml2ZXIvZHBjb3Byby9zcmMvZHBjb3Byb19tbXVfZHJ2LmMgbGluZToxNjE2CisgKiBbVFJVTktdIG1vdmUgTE1BQyBIQVJRIHJlc2V0IHRvIGVsMnBvdworICoKKyAqIDA3IDI0IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDI2NjI5M10gW0Jsb2NraW5nXVtNVDY3NjNdW0JpYW5jb11bTjFdW0luZGlhIEZUXVtNdW1iYWldW1dXIEZUXVtlTUJNU11bUkpJT10gIG1kMTooVVNJUDFfVVNJUDApIFtBU1NFUlRdIGZpbGU6bWQzMi91c2lwL2JycC9tb2RlbS9sdGUvdG9wL3NyYy80Z190b3BfaXJxLmMgbGluZToyMDA0CisgKiBbVFJVTktdIGZpeCBQb2xsIGNvbnRyb2wgb2YgVFhMSVNSIGFuZCBFTDJQT1cKKyAqCisgKiAwNyAxOCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNjM5MzZdIFtCSUFOQ09dW01UNjc2M11bUkRJVF1bUEhPTkVdW0dDRl1bVFM4OTgwXVtGREQgQjcsVEMgNS4yLjFdSGFuZG9mZiBkZWxheSBleGNlZWQgMTkwbXMgd2hlbiBMVEUgaGFuZG9mZiB0byBXQ0RNQQorICogW1RSVU5LXSBwb3dlciBvbiBDb3BybyBiZWZvcmUgVFhMSVNSIGhhbmRsZSBTQ0hfQ0xPU0UgKGZvciBMTUFDIEhBUlEgUkVTRVQpCisgKgorICogMDcgMTcgMjAxNyBwZXRlci55dQorICogW01PTFkwMDI2Mzc0OV0gW1ZPTFRFXVtIU1RdW0FuaXRlXVswMi52MDEuMDIwXVs1LjEuMV1bRTM5XUZBSUwuTm8gTU9TIHNjb3JlIHJldHVybmVkLiBFcnJvciBjb2RlOiAtNS4KKyAqIE92ZXJ3aXJ0ZSB1bnJlYXNvbmFibGUgUkxDIGNvbmZpZ3VyYXRpb24gLSB0LVJlb3JkZXJpbmcgdGltZXIuCisgKgorICogMDcgMDYgMjAxNyBzbGlmZXIuaHN1ZWgKKyAqIFtNT0xZMDAyNjE4NjhdIFs2MjkzXVVMIFNJVCBuZXcgaGFuZGxpbmcKKyAqIEFkZCBtZXNzYWdlIGlkIGZvciBFTDIgUkIgc3luYyBwcm9jZWR1cmUKKyAqCisgKiAwNiAwMSAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNTQzMzFdIFtNVDY3NjNdW0VNXSBFTDJFTSBtYWludGVuYW5jZSBhbmQgRU1BQyBFTSB1cGRhdGUKKyAqIFtFTUFDXSBFTSB1cGRhdGUKKyAqIFtFTDJFTV0gYWRkIHRyYWNlIGFuZCBmaXggcmVwb3J0IG1lY2hhbmlzbQorICoKKyAqIDA2IDAxIDIwMTcgc3RldmUua2FvCisgKiBbTU9MWTAwMjUyOTY0XSBbNjI5M10gQVBJIHVwZGF0ZSBmb3IgTFRFQ1NSIFZvTFRFIEVCSSBpbmRpY2F0aW9uCisgKiAJCisgKiAJW1VNT0xZQV1bVFJVTktdIEFQSSB1cGRhdGUgZm9yIExURUNTUiBWb0xURSBFQkkgaW5kaWNhdGlvbgorICoKKyAqIDA1IDE2IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDI0OTgwNF0gW0JJQU5DT11bTVQ2NzYzXVtSRElUXVtGVF1bRkREXVtIS11bU0lNMTpDTUhLXVtTSU0yOlNNVF1bT3Zlcm5pZ2h0XVtBU1NFUlRdIGZpbGU6bWN1L2NvbW1vbi9kcml2ZXIvZHBjb3Byby9zcmMvbDJfNGdfZGxfbG1hYy5jIGxpbmU6MjE0CisgKiAxLiBlbmFibGUgZWwycG93CisgKiAyLiBpbnRlcmZhY2UgY2hhbmdlIGZvciBzY2hfY2xvc2UKKyAqCisgKiAwNCAyNSAyMDE3IHNsaWZlci5oc3VlaAorICogW01PTFkwMDI0NDc5NV0gW0JJQU5DT11bTVQ2NzYzXVtSRElUXVtOVklPVF1bRkREXVtOb2tpYV1bNEddIEFzc2VydCBmYWlsOiBkcGNvcHJvX21tdV9kcnYuYyAxMzAzIC0gSVBDT1JFCisgKiBBZGQgRUwyIG1lc3NhZ2UgaWQgZm9yIFJCIGxvY2svdW5sb2NrCisgKgorICogMDQgMDYgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMjI2NjU0XSBbTVQ2MjkzXVtFTDJQT1ddIEVMMiBMMkNvcHJvIHBvd2VyIGNvbnRyb2wKKyAqIFtFTDJQT1ddCisgKiAtIEJhc2ljIGZ1bmN0aW9uCisgKiAtIEwrWCwgTCtMCisgKiAtIE1ldGEgbW9kZSwgTDFTCisgKiAtIFVUCisgKgorICogMDMgMTMgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMTk0OTg3XSBbTVQ2MjkzXVtVTU9MWUEvUFMgREVWXSBFTUFDIG1haW50ZW5hbmNlCisgKiBNTDFTCisgKiAtIEZvcmNlIE5FV1RYIHdoZW4gTUwxUyByZXF1ZXN0IGlzIHNlbnQKKyAqCisgKiAwMiAyNCAyMDE3IG1mLmpoYW5nCisgKiBbTU9MWTAwMTk0OTg3XSBbTVQ2MjkzXVtVTU9MWUEvUFMgREVWXSBFTUFDIG1haW50ZW5hbmNlCisgKiAuQWRkIE1MMVMgSUxNIGhhbmRsZXIKKyAqCisgKiAwMiAxMCAyMDE3IHN0ZXZlLmthbworICogW01PTFkwMDIyODk3Ml0gW1VNT0xZQV1bRVBEQ1BdW1ItU0lNXSBJbnRlcmZhY2Ugd2l0aCBFUlJDIGZvciBSZW1vdGUgU0lNCisgKiBbRVBEQ1BdW1ItU0lNXSBJbnRlcmZhY2Ugd2l0aCBFUlJDIGZvciBSZW1vdGUgU0lNLgorICoKKyAqIDAyIDA2IDIwMTcgcGV0ZXIueXUKKyAqIFtNT0xZMDAyMDc3MzNdIFtNVDYyOTNdW0VMMl0gRVJMQ0RMIGRldmVsb3BtZW50CisgKiBbTS1TSU1dIFN5bmMgUi1TSU0gcmVsYXRlZCBpbnRlcmZhY2VzLCByZW1vdmUgcmVkdW5kYW50IG1lc3NhZ2UgSURzIHJlbGF0ZWQgdG8gRVJMQy4KKyAqCisgKiAwMSAyNCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyMjY2NTRdIFtNVDYyOTNdW0VMMlBPV10gRUwyIEwyQ29wcm8gcG93ZXIgY29udHJvbAorICogQWRkIEVMMSBtc2dpZCBhbmQgdGVtcCBpbG0gaGFuZGxpbmcKKyAqCisgKiAwMSAxNiAyMDE3IGVkZGllLndhbmcKKyAqIFtNT0xZMDAyMTA2NTBdIFtNVDYyOTNdW1VNT0xZQSBUUlVOS10gRU1BQyBtYWludGVuYW5jZQorICogW01TSU1dIEFkZCBSU1ZBUyBzdXNwZW5kIG1zZyBpZAorICoKKyAqIDAxIDA1IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDIyMzA2N10gW01UNjI5M10gRUwyIEVNIGltcGxlbWVudGF0aW9uCisgKiBFTDJFTSBmcmFtZXdvcmssIG1lcmdlIHRvIFRSVU5LCisgKgorICogMTIgMjYgMjAxNiBtZi5qaGFuZworICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogbWVyZ2UgRFZGUyBJRiBjb2RlCisgKgorICogMTEgMTQgMjAxNiBjaGloLWNoZW5nLnlhbmcKKyAqIFtNT0xZMDAyMTMxMjJdIFtNVDYyOTNdW0VMMl0gRUwyIEZQR0EgSVQgcGhhc2UgSUkgc291cmNlIGNvZGUgaW50ZWdyYXRpb24KKyAqIDEuIHJlZmluZSAgUkIvTUJNUyBSU01UIHJlbGVhc2UKKyAqIDIuIHJlZmluZSBlcGRjcCBwb2xsaW5nIHJzbXQKKyAqIDIuIGFkZCBjb3ZlcmFnZQorICoKKyAqIDEwIDI4IDIwMTYgamlhLXNoaS5saW4KKyAqIFtNT0xZMDAxOTQ5ODddIFtNVDYyOTNdW1VNT0xZQS9QUyBERVZdIEVNQUMgbWFpbnRlbmFuY2UKKyAqIGVtYWMgdGltaW5nIHJlcG9ydCBmb3Igdm9sdGUgZHNwCisgKgorICogMTAgMjUgMjAxNiBjaGloLWNoZW5nLnlhbmcKKyAqIFtNT0xZMDAyMDkyNDBdIFtNVDYyOTNdW0VMMl0gRUwyIEZQR0EgSVQgcGhhc2UgMSBzb3VyY2UgY29kZXMgaW50ZWdyYXRpb24KKyAqIG5ldyBzYXAgYW5kIG1lc3NhZ2UgaWQgZm9yIEVSTENETCB0byBub3RpZnkgRVBEQ1AgdG8gcmVsZWFzZSBSU01UIHdoZW4gcmVsZWFzaW5nIFJCCisgKgorICogMTAgMDYgMjAxNiB2aWxsZS5wdWthcmkKKyAqIFtNT0xZMDAxNTA4MzVdIE1MMVMgVGVzdCBFbnZpcm9ubWVudCBTdXBwb3J0CisgKiAJCisgKiAJW1VNT0xZQV0gU3luYyBjb2RlIGZyb20gVU1PTFkgVHJ1bmsgQ0wyMjI4NzA2LCBDTDI0NTUzNTAsIENMMjUyOTc0MCBhbmQgQ0wyODIxMzg3CisgKgorICogMDggMjUgMjAxNiBqaWEtc2hpLmxpbgorICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogRU1BQyBFTDEgaW50ZXJmYWNlIGNoYW5nZQorICoKKyAqIDA4IDE2IDIwMTYgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDE5NDI5OF0gW1VNT0xZQV0gRUwyICsgRU1BQyBDb2RlIFJldmlldworICogU3luYyB0byBMYXRlc3QgUFMuREVWIChDTC0yNzI4NjYwKQorICogCisgKiBDTC0yNzI4NjYwIC0gZWwyIHZyYiB2aXJ0dWFsIHNwYWNlIHNob3J0YWdlIGhhbmRsaW5nIGZyYW1ld29yaworICoKKyAqIDA4IDE2IDIwMTYgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDE5NDI5OF0gW1VNT0xZQV0gRUwyICsgRU1BQyBDb2RlIFJldmlldworICogZWwyIHZyYiB2aXJ0dWFsIHNwYWNlIHNob3J0YWdlIGhhbmRsaW5nIGZyYW1ld29yaworICogMDggMDkgMjAxNiBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMTk2MDY1XSBbTVQ2MjkzXVtmb2xkZXIgc3RydWN0dXJlXSBNb3ZlIEVMMS9FTDIgZmlsZXMgZnJvbSBMVEUgZG9tYWluIHRvIFNXUkQgZG9tYWluCisgKiA5MyBFTDIgb3RoZXJzCisgKgorICoKKyAqIDA3IDI3IDIwMTYgamVyZW15LmNoZW4KKyAqIFtNT0xZMDAxOTA2ODNdIFtVTU9MWUFdWzYyOTNdIEVMMiBtZXJnZSBiYWNrIHRvIFVNT0xZQSBUUlVOSyAmIFBTIERFVgorICogW2NvbW1vbl1bT0EgZG9tYWluXSBtZXJnZSBmcm9tIFVFU0lNIENCcgorICoKKyAqIDA3IDE5IDIwMTYgZWRkaWUud2FuZworICogW01PTFkwMDE5MTkyMV0gU3luYyBVTU9MWSB0byBVTU9MWUEuUFMuREVWCisgKiBTeW5jIGVsMl9tc2dpZC5oIGZyb20gVU1PTFkgQ0wyNTgyMTY1IENMMjUyOTAxNAorICoKKyAqIDA2IDI4IDIwMTYgZWRkaWUud2FuZworICogW01PTFkwMDE4NzA0MV0gU3luYyBlcnJjX2VtYWNfbXNnLmggZnJvbSBVTU9MWSB0byBVTU9MWUEKKyAqIEFkZCBNU0dfSURfRVJSQ19FTUFDX01FQVNfR0FQX0lORAorICoKKyAqIDAzIDE1IDIwMTYgcnlhbi5vdQorICogW01PTFkwMDE2MjI5MV0gW01UNjI5Ml0gRU1BQyBjb2RlIHN5bmMgZnJvbSBMUjExIHRvIFVNT0xZCisgKiBDTDE4Njc3NjEsIFtNT0xZMDAxNTEwMDBdIFtNVDY3NTVdIFNSVkNDIEVuaGFuY2VtZW50LgorICoKKyAqIDAxIDExIDIwMTYga2F0aGllLmhvCisgKiBbTU9MWTAwMTU2MjI5XSBbTVQ2MjkyXSBDb2RlIHN5bmMgZnJvbSBNVDYyOTE6IEF1RFJYCisgKiAuCisgKgorICogMDEgMDkgMjAxNiBuaWVudGVoLmhzdQorICogW01PTFkwMDE1OTU0OF0gWzYyOTJdIEVSTEMgY29kZSBzeW5jIGZyb20gTFIxMSB0byBVTU9MWSAoMjAxNS8xMikgCisgKiBTV1JEIGRvbWFpbiBwYXJ0CQorICogCS4KKyAqCisgKiAxMiAzMCAyMDE1IGFudHRpLmthcmphbGFpbmVuCisgKiBbTU9MWTAwMTUzMzM1XSBVTCBidWNrZXQgbWFuYWdlbWVudCBmb3IgVUwgQ0EgYW5kIDY0UUFNOiBFUERDUAorICoKKyAqIDExIDI3IDIwMTUgdmlsbGUucHVrYXJpCisgKiBbTU9MWTAwMTUwODM1XSBNTDFTIFRlc3QgRW52aXJvbm1lbnQgU3VwcG9ydDoKKyAqIAkKKyAqIAlFTUFDIHN1cHBvcnQgZm9yIE1MMVMgVGVzdCBNb2RlCisgKgorICogMDcgMTYgMjAxNSBjaGVuLXdlaS53YW5nCisgKiBbTU9MWTAwMTE4MTU3XSBbVEs2MjkxXUVSTEMgY29kZSBtYWludGFpbgorICogRVJMQyBzdGF0dXMgcHJvaCB0aW1lciBtb2RpZmljYXRpb24KKyAqCisgKiAwNyAwNiAyMDE1IHNoZW5neWkuaG8KKyAqIFtNT0xZMDAxMjU1ODZdIFtUSzYyOTFFMV1bTVZUVi1EXVs0R11bVEREXVtURERfTUlNT183LjJdYXNzZXJ0IGZhaWwgOiBlbDF0eC5jIDczMQorICogMSkgYWRkIEVNQUNfRUwyVEFTS19MT0NLL1VOTE9DS19QT1dFUl9SRVEKKyAqCisgKiAwNiAxOCAyMDE1IG1pbmd0c3VuZy5zdW4KKyAqIFtNT0xZMDAxMjEzMzJdIFtUSzYyOTFdIDRHIEVBUyBsb3cgcG93ZXIgY2hlY2sgaW4KKyAqIGFkZCBRQk0vRUwyIHBvd2VyIGNvbnRyb2wgbWVzc2FnZXMgZm9yIExvZ0RNQQorICoKKyAqIDA2IDE1IDIwMTUgc2MudHVuZworICogW01PTFkwMDEyMTQ0MF0gW1RLNjI5MV0gZUwyIGRldmVsb3BtZW50IGNoZWNrIGluIENSCisgKiAJQWRkIE1TR19JRF9FUlJDX0NfUk5USV9SQV9QUk9CSU5HX1JFUSBmb3IgcHJvYmluZyByZXEuCisgKgorICogMDYgMTUgMjAxNSBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMTIxMzMyXSBbVEs2MjkxXSA0RyBFQVMgbG93IHBvd2VyIGNoZWNrIGluCisgKiBlTDIgbG93IHBvd2VyIGFuZCBlUERDUCBjb2RlIHN5bmM6IGVsMl9tc2dpZC5oCisgKgorICogMDYgMDMgMjAxNSBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMTE4MTYxXSBbTVQ2MjkxXSBFUERDUCBDUiBTeW5jIC0gRWFybHkgcmVlc3RhYmxpc2htZW50IHRvIHByZXZlbnQgY2VydGFpbiBraW5kIG9mIFZvTFRFIGNhbGwgZHJvcAorICogUkQgZG9tYWluCisgKgorICogMDMgMTggMjAxNSBjaGVuLXdlaS53YW5nCisgKiBbTU9MWTAwMDk5NTI1XSBbVEs2MjkxXSBFTUFDIE1EVCBmZWF0dXJlIGNoZWNrLWluCisgKiBpbnRlcmZhY2UgZmlsZSBjaGVjay1pbgorICoKKyAqIDAyIDEzIDIwMTUgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDA5MTgyMl0gUkFURE0gcmVvcmdhbml6YXRpb24KKyAqIC4KKyAqCisgKiAxMiAxNiAyMDE0IHl1dGluZy5jaGVuCisgKiBbTU9MWTAwMDg0ODA3XSBbTVQ2MjkxX0RFVl0gRUwyIExvdyBQb3dlciBGbG93CisgKiAuCisgKgorICogMTIgMTIgMjAxNCB5ay5saXUKKyAqIFtNT0xZMDAwODYzNTBdIFtNVDYyOTFdW0wyMzQgUDJQXSBFbmFibGUgRUwyIFBEVSBkcm9wLCBwaW5nIG5vIHJlcGx5IGFmdGVyIDMwbWluCisgKiAJLgorICoKKyAqIDExIDExIDIwMTQgeWl0aW5nLmNoZW5nCisgKiBbTU9MWTAwMDg0MDQyXSBbVU1PTFldIG1lcmdlIFVNT0xZX0RFViB0byBVTU9MWSB0cnVuaworICogLgorICoKKyAqIDEwIDI4IDIwMTQgYW5kcmV3Lnd1CisgKiBbTU9MWTAwMDc5MDE4XSBbTVQ2MjkxX0RFVl0gZVBEQ1AgYmF0Y2ggSSBVVCByZWxhdGVkIG1vZGlmaWNhdGlvbgorICogTWVyZ2luZworICogCQorICogCS8vVU1PTFlfQ0JyL2FuZHJldy53dS9NVDYyOTFfREVWX0VQRENQREVWVzE0MjdQMS9tY3UvY29tbW9uL2ludGVyZmFjZS9zYXAvbWQvZXJyY19tc2dpZC5oCisgKiAJCisgKiAJdG8gLy9VTU9MWS9ERVYvTVQ2MjkxX0RFVi9tY3UvY29tbW9uL2ludGVyZmFjZS9zYXAvbWQvZXJyY19tc2dpZC5oCisgKgorICogMDkgMTggMjAxNCBzaGVuZ3lpLmhvCisgKiBbTU9MWTAwMDc3NTkyXSBbVEs2MjkxXSBjb2RlIHN5bmMgZnJvbSBDQnIgdG8gVEs2MjkxX0RFViAtIGVtYWMKKyAqIC4KKyAqCisgKiAwOCAyNiAyMDE0IHNoLnlhbmcKKyAqIFtNT0xZMDAwNzcyOTBdIFtUSzYyOTFfREVWXSBJTE0vRXZlbnQgc2NoZWR1bGVyIHdyYXBwZXIgZm9yIExJU1IySElTUiByZW1vdmFsCisgKiAuCisgKgorICogMDggMjIgMjAxNCBqeS5vdQorICogW01PTFkwMDA3NjEwNF0gW1RLNjI5MV0gRU1BQyAmIEVSTEMgVVQgZnJhbWV3b3JrIGFuZCBFUkxDIFVUIGNhc2VzCisgKiAuCisgKgorICogMDggMjEgMjAxNCBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMDcyOTAyXSBbVEs2MjkxXVtERVZdIExUVCB1bml0IHRlc3QgZnJhbWV3b3JrCisgKiBNZXJnaW5nCisgKiAgICAgIAorICogICAgIC8vVU1PTFlfQ0JyL2VyaWMuaHNpZWgvVEs2MjkxX0RFVl9FU0wvbWN1L2NvbW1vbi9pbnRlcmZhY2Uvc2FwLy4uLgorICogICAgICAKKyAqICAgICB0byAvL1VNT0xZL0RFVi9USzYyOTFfREVWL21jdS9jb21tb24vaW50ZXJmYWNlL3NhcC8uLi4KKyAqCisgKiAwOCAxNCAyMDE0IGFuZHJldy53dQorICogW01PTFkwMDA3NTM5N10gW1RLNjI5MV9ERVZdIGNvZGUgc3luYyBNT0xZMDAwNzI0NDUgZnJvbSBNT0xZIHRvIFRLNjI5MV9ERVYKKyAqIEludGVyZmFjZSBjaGVjay1pbiBmb3IgRVBEQ1BfRU1BQ19MRUFWRV9EUlgKKyAqCisgKiAwNyAzMCAyMDE0IHlpdGluZy5jaGVuZworICogW01PTFkwMDA3MzgzMF0gW1RLNjI5MV9ERVZdIGNoZWNrLWluIFRLNjI5MSBtb2RpZmljYXRpb24KKyAqIG1vZGlmeSBzYXAKKyAqCisgKiAwNyAyOSAyMDE0IGFuZHJldy53dQorICogW01PTFkwMDA3Mzg3M10gW1RLNjI5MV9ERVZdIEVQRENQLUVSUkMgaW50ZXJmYWNlcyBjaGVjay1pbgorICogYWRkIEVSUkNfRVBEQ1BfTVRDSF9QQ19SRVEKKyAqCisgKiAwNyAyOCAyMDE0IG5pZW50ZWguaHN1CisgKiBbTU9MWTAwMDczODM2XSBbVEs2MjkxXVtFUlJDXVtDSE1dIExURS1BIENITSBkZXZlbG9wbWVudCBjb2RlIGNoZWNrLWluCisgKiAgICAgLgorICoKKyAqIDAxIDE1IDIwMTQgc2xpZmVyLmhzdWVoCisgKiBbTU9MWTAwMDUzMTA0XSBbTVQ2MjkwRTJdW05BUyBSVERdW01NXVtGRERdIEFzc2VydCBmYWlsOiBkcml2ZXIvbDJjb3Byby9jaXBoZXIvc3JjL2NpcGhlcl9jb21tb24uYyAxOTYgLSBMMkNPUFJPCisgKiBNZXJnZSBjb2RlcyByZWxhdGVkIHRvIEwyIGNvcHJvIGRlbGF5IHBvd2VyIG9mZiBiYWNrIHRvIE1PTFkgVFJVTksgaW4gT0EgZG9tYWluCisgKgorICogMDEgMDYgMjAxNCBtZi5qaGFuZworICogW01PTFkwMDA1MTk4M10gW01UNjU4MkxURV1bV1dGVF1bR2VybWFueV1bVm9kYWZvbmVdUGluZyBSVFQgaXMgbW9yZSB0aGFuIGJlbmNobWFyaworICogQWRkIEhPU1RfREFUQV9SRUFEWV9JTkQKKyAqCisgKiAxMiAwMyAyMDEzIGxld2lzLnl1CisgKiBbTU9MWTAwMDQ4ODMyXSBwb3dlciBkb3duL29uIGluIEVMMiB0YXNrIGNvbnRleHQgYW5kIHJlZmluZSB0aGUgZmxvdworICogLgorICoKKyAqIDA5IDI2IDIwMTMgbGV3aXMueXUKKyAqIFtNT0xZMDAwMzkxOTVdIFtNVDYyOTBdIFtMb3cgUG93ZXJdIExURSBMMiBjb3BybyBwb3dlciBkb3duIGluIExURSBmbGlnaHQgbW9kZQorICogLgorICoKKyAqIDA3IDEyIDIwMTMgc3RhbmxleWh5LmNoZW4KKyAqIFtNT0xZMDAwMjk2MDJdIFtOZXcgRmVhdHVyZV0gTkJSX0NFTExfSU5GTyBhbmQgVEFfSU5GTyByZWxhdGVkIGludGVyZmFjZXMKKyAqIFRBX0lORk8gYW5kIE5CUl9DRUxMX0lORk8gaW50ZXJmYWNlcyBmb3IgTFBQIGZlYXR1cmUKKyAqCisgKiAwNSAxNSAyMDEzIG1vamEuaHN1CisgKiBbTU9MWTAwMDA3NjI1XSBNYWludGFpbiBjb2RlCisgKiBhZGQgZWwyIG1lc3NhZ2UgZm9yIEVSVCB0YXNrIHRvIEVSVCBISVNSLgorICoKKyAqIDAzIDIwIDIwMTMgamVyZW15LmNoZW4KKyAqIFtNT0xZMDAwMDcxMjddIFtNVDcyMDhdIEVMMiBlbmhhbmNlbWVudCBpbiBNT0xZCisgKiBhZGQgSURDLXJlbGF0ZWQgaW50ZXJmYWNlCisgKgorICogMDIgMjYgMjAxMyBqZXJlbXkuY2hlbgorICogW01PTFkwMDAwNzEyN10gW01UNzIwOF0gRUwyIGVuaGFuY2VtZW50IGluIE1PTFkKKyAqIGFkZCBNU0dfSURfRVJMQ1VMX0VQRENQX1NSQl9EQVRBX0NORi4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfX0VMMl9NU0dJRF9ICisjZGVmaW5lIF9fRUwyX01TR0lEX0gKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRUwyX0NPREVfQkVHSU4gKQorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tIEVMMl9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gRGVzdGluYXRpb246IEVQRENQICAgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8vIExURUNTUiAtLT4gRVBEQ1AKKyAgICBNU0dfSURfTFRFQ1NSX0VQRENQX1ZPTFRFX0VCSV9OVEYsCisKKyAgICAvLyBVUENNIC0tPiBFUERDUAorICAgIE1TR19JRF9VUENNX0VQRENQX05FVElGX0JJTkRfTlRGID0gTVNHX0lEX0VMMl9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9VUENNX0VQRENQX05FVElGX1VOQklORF9OVEYsCisKKyAgICAvLyBFUlJDIC0tPiBFUERDUAorICAgIE1TR19JRF9FUlJDX0VQRENQX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX0VSUkNfRVBEQ1BfU1dJVENIX1ZJUlRVQUxfQ09OTkVDVEVEX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FUERDUF9EQ0NIX0RBVEFfUkVRLAorICAgIE1TR19JRF9FUlJDX0VQRENQX0RDQ0hfREFUQV9SRVMsCisgICAgTVNHX0lEX0VSUkNfRVBEQ1BfVEVTVF9SRVEsCisgICAgTVNHX0lEX0VSUkNfRVBEQ1BfQ05USU5GT19SRVEsCisgICAgLy9NU0dfSURfRVJSQ19FUERDUF9NVENIX1BDX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FUERDUF9ERVRFQ1RJT05fVElNRVJfU1RBUlRfUkVRLAorICAgIE1TR19JRF9FUlJDX0VQRENQX0RFVEVDVElPTl9USU1FUl8yX1NUQVJUX1JFUSwKKworICAgIC8vIEVSTEMtVUwgLS0+IEVQRENQCisgICAgTVNHX0lEX0VSTENVTF9FUERDUF9TUkJfREFUQV9DTkYsCisgICAgTVNHX0lEX0VSTENVTF9FUERDUF9SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfRVJMQ1VMX0VQRENQX1JCX1JFTEVBU0VfSU5ELAorICAgIE1TR19JRF9FUkxDVUxfRVBEQ1BfUkJfU1lOQ19DTkYsCisgICAgTVNHX0lEX0VSTENVTF9FUERDUF9SQl9MT0NLX0NORiwKKworICAgIC8vIEVSTEMtREwgLS0+IEVQRENQCisgICAgTVNHX0lEX0VSTENETF9FUERDUF9NQk1TX1NUQVJUX0lORCwKKyAgICBNU0dfSURfRVJMQ0RMX0VQRENQX01CTVNfRU5EX0lORCwKKworICAgIC8vIEVQRENQIC0tPiBFUERDUAorICAgIC8vTVNHX0lEX0VQRENQX0VQRENQX0NUUkxfUERVX0lORCwKKyAgICAvL01TR19JRF9FUERDUF9FUERDUF9ETF9GTFVTSF9ET05FX0lORCwKKworICAgIC8vIFVQQ00gLS0+IEVQRENQCisgICAgTVNHX0lEX1VQQ01fRVBEQ1BfU0VORF9JTlZfQ1RSTF9QRFUsCisKKyAgICAvLyBFTUFDIC0tPiBFUERDUAorICAgIE1TR19JRF9FTUFDX0VQRENQX1RETV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfVERNX0VORF9JTkQsCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfTUFYX1VMX1RCX0lORCwKKworICAgIC8vIFdMQU4gLS0+IEVQRENQCisgICAgTVNHX0lEX1dMQU5fRVBEQ1BfQ1RSTF9NU0dfSUQsCisgICAgCisgICAgLy8gRUwyIC0tPiBFUERDUAorICAgIE1TR19JRF9FTDJfRVBEQ1BfVlJCX1ZBX1NIT1JUQUdFX05URiwKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBEZXN0aW5hdGlvbjogRVJMQy1VTCAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLy8gRVJSQyAtLT4gRVJMQy1VTAorICAgIE1TR19JRF9FUlJDX0VSTENVTF9DT05GSUdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VSTENVTF9TUkIxX0FDS19SRVEsCisgICAgTVNHX0lEX0VSUkNfRVJMQ1VMX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9SRVEsCisKKyAgICAvLyBFUERDUCAtLT4gRVJMQy1VTAorICAgIE1TR19JRF9FUERDUF9FUkxDVUxfRElTQ0FSRF9SRVEsCisgICAgTVNHX0lEX0VQRENQX0VSTENVTF9WSVBfREFUQV9OVEYsCisgICAgTVNHX0lEX0VQRENQX0VSTENVTF9TVEFUVVNfUERVX05URiwKKyAgICBNU0dfSURfRVBEQ1BfRVJMQ1VMX1JCX1NZTkNfUkVRLAorICAgIE1TR19JRF9FUERDUF9FUkxDVUxfUkJfUE9MTF9SRVEsCisgICAgTVNHX0lEX0VQRENQX0VSTENVTF9SQl9MT0NLX1JFUSwKKyAgICBNU0dfSURfRVBEQ1BfRVJMQ1VMX1JCX1VOTE9DS19OVEYsCisgICAgTVNHX0lEX0VQRENQX0VSTENVTF9WT0xURV9SQl9JRFhfTlRGLAorCisgICAgLy8gRVJMQ0RMIC0tPiBFUkxDLVVMCisgICAgTVNHX0lEX0VSTENETF9FUkxDVUxfU1RBVFVTX1BEVV9OVEYsCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gRGVzdGluYXRpb246IEVSTEMtREwgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8vIEVSUkMgLS0+IEVSTEMtREwKKyAgICBNU0dfSURfRVJSQ19FUkxDRExfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FUkxDRExfU1dJVENIX1ZJUlRVQUxfQ09OTkVDVEVEX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FUkxDRExfVEVTVF9SRVEsCisgICAgTVNHX0lEX0VSUkNfRVJMQ0RMX01UQ0hfUENfUkVRLAorCisgICAgLy8gRUwyIC0tPiBFUkxDLURMCisgICAgTVNHX0lEX0VMMl9FUkxDRExfVlJCX1ZBX1NIT1JUQUdFX05URiwKKworICAgIC8vIEVQRENQIC0tPiBFUkxDLURMCisgICAgTVNHX0lEX0VQRENQX0VSTENETF9WT0xURV9SQl9JRFhfTlRGLAorCisgICAgLy8gRVJMQy1VTCAtLT4gRVJMQy1ETAorICAgIE1TR19JRF9FUkxDVUxfRVJMQ0RMX1NUQVRVU19GQktfTlRGLAorICAgIAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBEZXN0aW5hdGlvbjogRU1BQyAgICAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgTVNHX0lEX0VSUkNfRU1BQ19DT05GSUdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfQ0NDSF9EQVRBX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDX1RBX0lORk9fUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfRVNURkFJTF9SRVBPUlRfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfQ19STlRJX1JBX1BST0JJTkdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfRFJYX0lOQ19HQVBfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfTUVBU19HQVBfSU5ELAorICAgIE1TR19JRF9FUlJDX0VNQUNfU1VQUE9SVF9DQVBBQklMSVRZX0lORCwKKworICAgIC8vLyBFUERDUCAtLT4gRU1BQworICAgIE1TR19JRF9FUERDUF9FTUFDX0xFQVZFX0RSWCwKKyAgICBNU0dfSURfRVBEQ1BfRU1BQ19WT0xURV9SQl9JRFhfUkVRLAorICAgIE1TR19JRF9FUERDUF9FTUFDX1ZPTFRFX0RBVEFfUkVRLAorCisgICAgLy8vIEVSTENETCAtLT4gRU1BQworICAgIE1TR19JRF9FUkxDRExfRU1BQ19ETF9WT0xURV9OT1RJRllfUkVRLAorCisgICAgLy8gRU1BQ19VVCAtLT4gRU1BQworICAgIE1TR19JRF9FTUFDX1VUX0VNQUNfVEVTVF9DTUQsCisKKyAgICAvLyBFTDEgLS0+IEVNQUMKKyAgICBNU0dfSURfRU1BQ19FTDFfUEhZX0lORk9fSU5ELAorICAgIE1TR19JRF9FTUFDX0VMMV9SQV9HQVBfU1RPUF9DTkYsCisgICAgTVNHX0lEX0VNQUNfRUwxX1JBX0dBUF9SRVNVTUVfQ05GLAorICAgIE1TR19JRF9FTUFDX0VMMV9STlRJX1VQREFURV9DTkYsCisgICAgTVNHX0lEX0VNQUNfRUwxX0RSWF9DVFJMX0NORiwKKyAgICBNU0dfSURfRU1BQ19FTDFfU0NFTExfTk9USUZZX0NORiwKKyAgICBNU0dfSURfRU1BQ19FTDFfSE9TVF9EQVRBX0NORiwKKyAgICBNU0dfSURfRU1BQ19FTDFfSE9TVF9EQVRBX1JFQURZX0lORCwKKyAgICBNU0dfSURfRU1BQ19FTDFfUkFfUkVTVEFSVF9JTkQsCisgICAgTVNHX0lEX0VNQUNfRUwxX0lEQ19URE1fSU5ELAorCisgICAgLy8gTUwxUyBTVyAtLT4gRU1BQworICAgIE1TR19JRF9NTDFTX0VNQUNfVEVTVF9NT0RFX0VOQUJMRV9SRVEsCisgICAgTVNHX0lEX01MMVNfRU1BQ19DT05OX0VTVF9SQV9SRVEsICAgIAorICAgIE1TR19JRF9NTDFTX0VNQUNfRExfREFUQV9ESVNDQVJEX1JFUSwKKyAgICBNU0dfSURfTUwxU19FTUFDX01BQ19DRV9UUklHR0VSX1JFUSwKKyAgICBNU0dfSURfTUwxU19FTUFDX1RCU19NSVNNQVRDSF9GT1JDRV9ORVdUWF9SRVEsCisgICAgTVNHX0lEX01MMVNfRU1BQ19IT19SQV9UUklHR0VSX1JFUSwKKyAgICBNU0dfSURfTUwxU19FTUFDX1NSX1RSSUdHRVJfUkVRLAorICAgIE1TR19JRF9NTDFTX0VNQUNfU1RBR19UQV9SRVEsCisKKyAgICAvLyBFTDIgLS0+IEVNQUMKKyAgICBNU0dfSURfRUwyX0VNQUNfVlJCX1ZBX1NIT1JUQUdFX05URiwKKworICAgIC8vIFVQQ00gLS0+IEVNQUMKKyAgICBNU0dfSURfVVBDTV9FTUFDX0lOVEVSTkVUX0RJU0NPTk5FQ1RfUkVRLAorICAgIE1TR19JRF9VUENNX0VNQUNfUkJSUV9SRVEsCisgICAgTVNHX0lEX1VQQ01fRU1BQ19UQUdfREFUQV9BUlJJVkFMX1JFUSwgICAgCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gRGVzdGluYXRpb246IEVSVF9XUFIgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8vRVJUX1dQUiAtLT4gRVJUX1dQUgorICAgIE1TR19JRF9FUlRfV1BSX0VSVF9XUFJfRVNfSU5TVFJfUFJPQ19OVEYsCisgICAgTVNHX0lEX0VSVF9FUkxDRExfV1BSX0VTX0lOU1RSX1BST0NfTlRGLAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBEZXN0aW5hdGlvbjogRUwyICAgICAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLy8gRVZBTCAtLT4gRU1BQworICAgIE1TR19JRF9FTUFDX0FVRFJYX0VOQUJMRV9SRVEsCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0gRUwyX01TR19DT0RFX0VORC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworICAgIC8qICBNVDYyOTMgRUwyIE1TRyBJRCAgKi8KKyAgICBNU0dfSURfVFhISVNSX0VSVF9QT0xMX1JFUSwKKyAgICBNU0dfSURfRU1BQ0RMX1BPTExfUkVRLAorICAgIE1TR19JRF9FTUFDRExfRU1BQ01DSF9QT0xMX1JFUSwKKyAgICBNU0dfSURfRU1BQ0RMX0VMMkhfUE9MTF9SRVEsCisgICAgTVNHX0lEX0VNQUNETF9FTDJfUE9MTF9SRVEsCisKKyAgICAvKiBFTUFDREwgKi8KKyAgICBNU0dfSURfRU1BQ19FTUFDRExfRFJCX0NPTkZJR19JTkQsCisgICAgTVNHX0lEX0VNQUNfRU1BQ0RMX1NVUFBPUlRfUkVMRUFTRV9JTkQsCisgICAgTVNHX0lEX0VNQUNETF9FTUFDX01BQ19DRV9JTkQsCisgICAgTVNHX0lEX0VNQUNETF9FUkxDRExfRExTQ0hfREFUQV9JTkQsCisgICAgTVNHX0lEX0VNQUNETF9FTUFDTUNIX0RBVEFfSU5ELAorICAgIC8qIFJBIGJldHdlZW4gRU1BQyBhbmQgRU1BQ0RMICovCisgICAgTVNHX0lEX0VNQUNETF9FTUFDX1JBUl9QUk9DX1JFUSwKKyAgICBNU0dfSURfRU1BQ19FTUFDRExfUkFSX1BST0NfQ05GLAorICAgIE1TR19JRF9FTUFDX0VNQUNETF9UQ1JOVElfQ1JfUFJPQ19SRVEsCisgICAgTVNHX0lEX0VNQUNETF9FTUFDX1RDUk5USV9DUl9QUk9DX0NORiwKKyAgICBNU0dfSURfRU1BQ0RMX0VNQUNfQ0NDSF9EQVRBX0lORCwKKyAgICAvKiBETCBMTUFDIGludGVycnVwdCBub3RpZmljYXRpb24gSUxNICovCisgICAgTVNHX0lEX0xNQUNfRU1BQ0RMX1JBUl9SRUFEWV9OVEYsCisgICAgTVNHX0lEX0xNQUNfRU1BQ0RMX1RDUk5USV9SRUFEWV9OVEYsCisgICAgTVNHX0lEX0xNQUNfRU1BQ0RMX0RBVEFfUkVBRFlfTlRGLAorCisgICAgTVNHX0lEX0VNQUNNQ0hfRVJMQ0RMX01DSF9EQVRBX0lORCwKKworICAgIC8qICBNVDYyOTMgRUwyIE1TRyBJRCAoc2xlZXAgcmVsYXRlZCkgICovCisKKyAgICAvLyAgTVNHX0lEX0VNQUNfRUwxX0RSWF9DWUNMRV9OVEYsCisgICAgLy8gIE1TR19JRF9FTUFDX0VMMV9EUlhfQ1RSTF9SRVEsCisgICAgLy8gIE1TR19JRF9FTUFDX0VMMV9EUlhfQ1RSTF9DTkYsCisgICAgTVNHX0lEX0VNQUNfRVJMQ1VMX1dBS0VVUF9SRVEsCisgICAgTVNHX0lEX0VNQUNfRVJMQ0RMX1dBS0VVUF9SRVEsCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfV0FLRVVQX1JFUSwKKyAgICBNU0dfSURfRU1BQ19FUERDUF9FTkFCTEVfV0FLRVVQX1JFUV9JTkQsCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfRElTQUJMRV9XQUtFVVBfUkVRX0lORCwKKworICAgIC8vIEVMMSAtPiBFTUFDTUNICisgICAgTVNHX0lEX0VNQUNNQ0hfRUwxX01DQ0hfUkNWX01PREVfQ0hBTkdFX0lORCwKKworICAgIC8vIEVSUkMgLT4gRU1BQ01DSAorICAgIE1TR19JRF9FUlJDX0VNQUNNQ0hfU1lOQ0FSRUFfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDTUNIX0FSRUFfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDTUNIX01YQ0hfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDTUNIX01DQ0hfUkNWX01PREVfQ0hBTkdFX1JFUSwKKworICAgIC8vIEVMMkVNIHJlbGF0ZWQKKyAgICBNU0dfSURfRVJMQ19FTDJFTV9FTDJfSU5URVJOQUxfT05fUkVRLAorICAgIE1TR19JRF9FUkxDX0VMMkVNX0VMMl9JTlRFUk5BTF9PRkZfUkVRLAorICAgIE1TR19JRF9FTUFDX0VMMkVNX0VMMl9GRUFUX0RFVF9MT05HX0RSWF9JTkQsCisgICAgTVNHX0lEX0VNQUNfRUwyRU1fRExfVEJfUkVQT1JUX0lORCwKKyAgICBNU0dfSURfRU1BQ19FTDJFTV9QTUNIU19JTkZPX0lORCwKKworICAgIC8vIERWRlMgLT4gRU1BQ0RMCisgICAgTVNHX0lEX0RWRlNfRU1BQ19JVF9VUF9HRUFSX1JFUSwKKyAgICBNU0dfSURfRFZGU19FTUFDX0lUX0RPV05fR0VBUl9SRVEsCisgICAgTVNHX0lEX01FRF9FTUFDX1ZPTFRFX1RJTUlOR19JTkZPX1JFUSwKKworICAgIC8vIFJTVkFTIDwtPiBFTDIgcmVsYXRlZCBQT1JUQUwKKyAgICBNU0dfSURfUlNWQVNfRUwySFBPUlRBTF9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19FTDJIUE9SVEFMX1NVU1BFTkRfU0VSVklDRV9DTkYsCisgICAgTVNHX0lEX1JTVkFTX0VNQUNETFBPUlRBTF9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19FTUFDRExQT1JUQUxfU1VTUEVORF9TRVJWSUNFX0NORiwKKyAgICBNU0dfSURfUlNWQVNfRUwyUE9SVEFMX1NVU1BFTkRfU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX1JTVkFTX0VMMlBPUlRBTF9TVVNQRU5EX1NFUlZJQ0VfQ05GLAorCisgICAgLy8gRUwyUE9XCisgICAgTVNHX0lEX0VMMlBPV19FTUFDRExfRUwyUE9XX1BPTExfUkVRLAorICAgIE1TR19JRF9FTUFDRExfRUwyX0VMMlBPV19QT0xMX1JFUSwKKyAgICBNU0dfSURfRUwxX0VMMlBPV19MMkNPUFJPX1BPV0VSX09OX0lORCwKKyAgICBNU0dfSURfRUwxX0VMMlBPV19MMkNPUFJPX1BPV0VSX09GRl9JTkQsCisgICAgTVNHX0lEX0VMMV9FTDJQT1dfU0NIX0NMT1NFX1JYQlJQX0lETEVfTlRGLAorICAgIE1TR19JRF9FTDJQT1dfVVNFUl9MMkNPUFJPX1BPV0VSX09OX1JFUSwKKyAgICBNU0dfSURfRUwyUE9XX1VTRVJfTDJDT1BST19QT1dFUl9PRkZfUkVRLAorICAgIE1TR19JRF9FTDJfRUwyUE9XX1ZSQl9WQV9TSE9SVEFHRV9OVEYsCisgICAgTVNHX0lEX0VNQUNfRUwyUE9XX0xNQUNfSEFSUV9SRVNFVF9SRVEsCisKKyAgICAvLyBFTDJJQ0QKKyAgICBNU0dfSURfSUNEX0VMMklDRF9TWVNURU1fTlRGLAorICAgIE1TR19JRF9FTDJJQ0RfRVJUUE9SVEFMX0NUUkxfTlRGLAorICAgIE1TR19JRF9FTDJJQ0RfRU1BQ0RMUE9SVEFMX0NUUkxfTlRGLAorICAgIE1TR19JRF9FTDJJQ0RfRUwySFBPUlRBTF9DVFJMX05URiwKKyAgICBNU0dfSURfRUwySUNEX0VMMlBPUlRBTF9DVFJMX05URiwKKyAgICBNU0dfSURfRUwySUNEX0VSVFBPUlRBTF9USU1FUl9FWFBJUllfTlRGLAorICAgIE1TR19JRF9FTDJJQ0RfRU1BQ0RMUE9SVEFMX1RJTUVSX0VYUElSWV9OVEYsCisgICAgTVNHX0lEX0VMMklDRF9FTDJIUE9SVEFMX1RJTUVSX0VYUElSWV9OVEYsCisgICAgTVNHX0lEX0VMMklDRF9FTDJQT1JUQUxfVElNRVJfRVhQSVJZX05URiwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9FTDJfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9fRUwyX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL01EOTcvX2VsMl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvTUQ5Ny9fZWwyX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThmYjg0YQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL01EOTcvX2VsMl9tc2dpZC5oCkBAIC0wLDAgKzEsNzI2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgZWwyX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIAorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqICAgCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDkgMTggMjAyMCBrYXRoaWUuaG8KKyAqIFtNT0xZMDA1Njk1MDRdIFtHZW45N11bTVA3XSBMVEUgYW5kIE5SLU5TQSBtb2RlIHNuaWZmZXIgdHlwZSAxIHN1Ym1pdCBSMyBDUgorICogU25pZmZlciAoaW50ZXJmYWNlKS4KKyAqCisgKiAwOSAxOCAyMDE5IGthdGhpZS5obworICogW01PTFkwMDQzOTUzM10gW0dlbjk3XVtJRENdIElEQyBmZWF0dXJlIGRldmVsb3BtZW50CisgKiBFTUFDIElEQworICoKKyAqIDA4IDE1IDIwMTkgaGFtaWx0b24ubGlhbmcKKyAqIFtNT0xZMDA0Mjk4OTNdIFtHZW45N10gRFZGUyBjb2RlIGNoYW5nZSBmb3IgR2FtaW5nIExhdGVuY3kgRW5oYW5jZW1lbnQKKyAqIChTV1JEIGRvbWFpbikgRFZGUyBkZXZlbG9wbWVudCBmb3IgZ2FtaW5nIGVuaGFuY2VtZW50CisgKgorICogMDggMDYgMjAxOSBtaW5nLmxlZQorICogW01PTFkwMDQyNTgzOV0gW01UNjI5N11bQXBvbGxvXVtNUDFdW1NRQ11bTlZJT1RdW05va2lhXVtPdWx1XVs1R11bT3Zlcm5pZ2h0XTogRmF0YWwgRXJyb3IgKDB4YzBhLCAweDI5M2IzMzJjLCAweGNjY2NjY2NjKSAtIEVMMgorICogSUNkIE5SIHJwdC4KKyAqCisgKiAwNyAxOSAyMDE5IHNodXl1LmNoYW5nCisgKiBbTU9MWTAwNDAzMDQ3XSBOZXR3b3JrIHJlbGF0ZWQgb3B0aW1pemF0aW9uCisgKiBbU1dSRF1bR2VuOTUgQ29kZSBzeW5jXVtWTU9MWV0gU1cgbWFuYWdlbWVudC4KKyAqCisgKiAwNSAxNSAyMDE5IGhhbWlsdG9uLmxpYW5nCisgKiBbTU9MWTAwNDA1NTA5XSBbVk1PTFldIFZBIG5vIHJlbGVhc2UgZnJhbWV3b3JrCisgKiAJCisgKiAJW1NXUkQgZG9tYWluXSBWQSBubyByZWxlYXNlIGZyYW1ld29yayBpbXBsZW1lbnRhdGlvbgorICoKKyAqIDA1IDE1IDIwMTkgdGMuY2hhbmcKKyAqIFtNT0xZMDA0MDYyNDZdIFtHYW1pbmddW0tvR11bTDJdIEdlbjk3IEdhbWluZyBlbmhhbmNlbWVudC4KKyAqCisgKiAwNSAxNCAyMDE5IGNoZW55ZW4uaHVhbmcKKyAqIFtNT0xZMDA0MDMwNTNdIFtHZW45N10gRVJMQyBHZW45My85NSBQYXRjaCBTeW5jCisgKiAJCisgKiAJUmVsIFJTTVQgaW5kIChub24gTVBEKS4KKyAqCisgKiAwNSAwNiAyMDE5IHNodS13ZWkuaG8KKyAqIFtNT0xZMDA0MDIwNDJdIFtHZW45N11bRU1BQ11bRUwxXVtFUkxDXSBIUlQgSW1wcm92ZW1udCwgZGVmYXVsdCBvZmYKKyAqIFtFTUFDXVtIUlRdIFNXUkQgZmlsZXMuCisgKgorICogMDQgMjYgMjAxOSBtaW5nLmxlZQorICogW01PTFkwMDQwMjAxMl0gW05NQUMtSF0gTW9kaWZ5IEhJU1IgUXVldWUgZGVzaWduIHRvIGEgbW9yZSBleHRlbnNpYmxlIG1hbm5lcgorICogRVdTUDAwMDAwMDcxMTYKKyAqCisgKiAwNCAxNiAyMDE5IGhhbWlsdG9uLmxpYW5nCisgKiBbTU9MWTAwMzk1MjE3XSBbR2VuOTddIFRNQyBkZXZlbG9wbWVudAorICogCQorICogCVRNQyBkZXZlbG9wbWVudCAtIEVNQUMgcGFydChTV1JEIGRvbWFpbikKKyAqCisgKiAwNCAwOSAyMDE5IGhhbWlsdG9uLmxpYW5nCisgKiBbTU9MWTAwMzMyNjgyXSBHZW45NyByZWxldmFudCBmZWF0dXJlL3N0cnVjdHVyZSBjaGFuZ2UKKyAqIAkKKyAqIAlbR2VuOTddW1NXUkQgZG9tYWluXSBUTUMgZGV2ZWxvcG1lbnQgLSBFTUFDIHBhcnQKKyAqCisgKiAwMiAxOCAyMDE5IGhhbWlsdG9uLmxpYW5nCisgKiBbTU9MWTAwMzMyNjgyXSBHZW45NyByZWxldmFudCBmZWF0dXJlL3N0cnVjdHVyZSBjaGFuZ2UKKyAqIAkKKyAqIAlHZW45NSBDTCBzeW5jIHRvIEdlbjk3KENMIGxpc3Q6IDcwNTgzNjkvNzA1OTY3Ny83MDU5NzkyLzcwNTk3OTcpCisgKiAJPT4gc3luYyBpbmZvcm1hdGlvbjogSUNEIHJlbGV2YW50ICYgQXNzZXJ0aW9uIHJlbW92YWwgZm9yIEVNIGNvZGUKKyAqCisgKiAxMiAyMSAyMDE4IHNodS13ZWkuaG8KKyAqIFtNT0xZMDAzMzk0NDldIFtHZW45N11bRU1BQ10gR2VuZXJhbCBkZXZlbG9wbWVudCBjaGVjay1pbgorICogW0VNQUNdIEdlbWluaSAzLjAgKFNXUkQgcGFydCkuCisgKgorICogMTIgMTkgMjAxOCBjaGVueWVuLmh1YW5nCisgKiBbTU9MWTAwMzQ3NjU4XSBbR2VuOTddIGVSTEMgZGV2ZWxvcG1lbnQgY2hlY2staW4KKyAqIAkKKyAqIAlTdGFydCBTdGF0dXMgUHJvaGliaXQgdGltZXIgaW4gREwuIChub24gTVBEKQorICoKKyAqIDEyIDEzIDIwMTggZnJhbmsuc29uZworICogW01PTFkwMDM3MjQ2OV0gU3luYyBHZW45NSBDTCAxMC8xNX4xMS01CisgKiAuCisgKgorICogMTEgMjkgMjAxOCBoYW1pbHRvbi5saWFuZworICogW01PTFkwMDMzMjY4Ml0gR2VuOTcgcmVsZXZhbnQgZmVhdHVyZS9zdHJ1Y3R1cmUgY2hhbmdlCisgKiAJCisgKiAJRU5MMiBJQ0QgcGF0Y2ggYmFjayB0byBWTU9MWSBUUlVOSyhjaGVjay1pbiBpdGVtczogRU5MMklDRCByZW5hbWUgbW9kaWZpY2F0aW9uKQorICoKKyAqIDEwIDA0IDIwMTgga2F0aGllLmhvCisgKiBbTU9MWTAwMzQ2NjI2XSBbR2VuOTddW0VNQUNdIE1lcmdlIEdlbjk1IENMcyBvbiBHZW45NyBhbmQgcGF0Y2ggYmFjayB0byBWTU9MWSBUUlVOSworICogQ0w2MjY3NjYzKG5vbi1NUEQpICsgQ0w2Mjc2MDk3CisgKgorICogMTAgMDQgMjAxOCBrYXRoaWUuaG8KKyAqIFtNT0xZMDAzNTE1NDldIEdlbjk3IEVNQUMgY2hlY2staW4KKyAqIEVOREMgKFRETSBwYXR0ZXJuKSBpbnRlcmZhY2UKKyAqCisgKiAwOCAxNyAyMDE4IGthdGhpZS5obworICogW01PTFkwMDM0NjYyNl0gW0dlbjk3XVtFTUFDXSBNZXJnZSBHZW45NSBDTHMgb24gR2VuOTcgYW5kIHBhdGNoIGJhY2sgdG8gVk1PTFkgVFJVTksKKyAqIEdlbjk1Kzk3CisgKgorICogMDggMTAgMjAxOCBqZW4tZGUubGFpCisgKiBbTU9MWTAwMzI3OTI2XSBbR0VOOTddW0VOUERDUF0gYmFzZSBkZXZlbG9wbWVudCBjaGVjay1pbgorICogCUZpeCBidWlsZCBmYWlsIGZvciBJQ0QgZW5hYmxlCisgKgorICogMDggMDcgMjAxOCBwZXRlci5jaGlhbmcKKyAqIFtNT0xZMDAzMjY2OTFdIFtNVDYyOTddIEdFTjk3LkRFViBFTkwyIFBhdGNoIGJhY2sKKyAqIEdlbjkzL0dlbjk1IHRvIEdlbjk3IENvZGUgU3luYyAoSnVseSBDTHMpCisgKiAJMS4gTU9MWTAwMzM3OTE1CisgKiAJMi4gTU9MWTAwMzM3MzEwCisgKgorICogMDYgMjcgMjAxOCB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDAzMjc5MjZdIFtHRU45N11bRU5QRENQXSBiYXNlIGRldmVsb3BtZW50IGNoZWNrLWluCisgKiBSZW1vdmUgdW4tdXNlZCBtZXNzYWdlcywgcmVtb3ZlIE1PRF9TREFQIGFuZCBNT0RfUk9IQyBpbiBQRENQIGNvZGUKKyAqCisgKiAwMyAxOSAyMDE4IGd1YW5nLXl1LnpoZW5nCisgKiBbTU9MWTAwMzEzODUwXSBbTVQ2Mjk1XSBNTUwyIERWRlMgY29udHJvbCBmZWF0dXJlIGRldmVsb3BtZW50CisgKiBNTUwyIERWRlMgY29udHJvbCBhbmQgTUNVIERWRlMgcmUtb3JnCisgKgorICogMDEgMDkgMjAxOCB0aW1vdGh5LnlhbworICogW01PTFkwMDMwMDI5OF0gW1BWVCBtdXN0IHJlc29sdmVdILdMq0g/P6VdukM/PyAtIGVsMiBtc2cKKyAqIHNlbmRpbmcgcGRjcCBpbnZhbGlkIGNvbnRyb2wgcGR1IHRvIGF2b2lkIGVudGVyaW5nIHNsZWVwLiAoVU1PTFlBIC0gY29tbW9uKQorICoKKyAqIDExIDA2IDIwMTcgbWYuamhhbmcKKyAqIFtNT0xZMDAyNzIwNDJdIFtNVDYyOTVdWzkzLzk1IHJlLWFyY2hdIEFkZCBFTUFDIE1MMVMgaW50ZXJmYWNlCisgKiAuCisgKgorICogMDggMTggMjAxNyBtZi5qaGFuZworICogW01PTFkwMDI3MjA0Ml0gW01UNjI5NSBEZXZdIEFkZCBFTUFDIE1MMVMgaW50ZXJmYWNlCisgKiBhZGQgRU1BQyBNTDFTIGludGVyZmFjZS4KKyAqIDEwIDAzIDIwMTcgamlhLXNoaS5saW4KKyAqIFtNT0xZMDAyODE3NTRdIFtNVDY3NjNdIFVMIEhBUlEgZWFybHkgY2xvc2UgZm9yIHZvbHRlIGxvdyBwb3dlciBlbmhhbmNlbWVudAorICogZWFybHkgdWwgaGFycSBjbG9zZSBmb3Igdm9sdGUgbG93IHBvd2VyCisgKgorICogMTAgMDMgMjAxNyBqaWEtc2hpLmxpbgorICogW01PTFkwMDI4MTc1NF0gW01UNjc2M10gVUwgSEFSUSBlYXJseSBjbG9zZSBmb3Igdm9sdGUgbG93IHBvd2VyIGVuaGFuY2VtZW50CisgKiBlYXJseSB1bCBoYXJxIGNsb3NlIGZvciB2b2x0ZSBsb3cgcG93ZXIKKyAqCisgKiAxMCAwMyAyMDE3IGppYS1zaGkubGluCisgKiBbTU9MWTAwMjgxNzU0XSBbTVQ2NzYzXSBVTCBIQVJRIGVhcmx5IGNsb3NlIGZvciB2b2x0ZSBsb3cgcG93ZXIgZW5oYW5jZW1lbnQKKyAqIGVhcmx5IHVsIGhhcnEgY2xvc2UgZm9yIHZvbHRlIGxvdyBwb3dlcgorICoKKyAqIDA5IDIwIDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDI3OTE4NF0gW1BDVF1bQW5yaXRzdV1bQ0FHNTBDXVtFNDBdWzcuMS4xLjJdIGZhaWwKKyAqIFtUUlVOS10gTENJRCB2cy4gc3VwcG9ydCByZWxlYXNlIGhhbmRsaW5nCisgKgorICogMDggMjIgMjAxNyBjYW1taWUueWFuZworICogW01PTFkwMDI2OTU5OF0gW0dlbjkzXVRQQi9Nb2JpbGl0eSBDdHJsIHBhdGNoIGNoZWNrIGluCisgKiBbVFJVTktdW01lcmdlZCBmcm9tIFIxXVtFUERDUF1bSFNUXSBzZXQgdmlwIGJpdCBhbmQgbm90aWZ5IFZvTFRFIGJlYXJlciBmb3IgRVJMQ1VMCisgKgorICogMDggMDMgMjAxNyB3ZW4taml1bm4ubGl1CisgKiBbTU9MWTAwMjY4NTUxXSBUYXNrIGJhdGNoIHNjaGVkdWxpbmcgZm9yIExURSBMb3cgcG93ZXIKKyAqIFtFTDJdIFRhc2sgUmVzY2hlZHVsaW5nIGZvciBMb3cgUG93ZXIgUG9sbGluZyBUaWNrIENoYW5nZQorICoKKyAqIDA4IDAzIDIwMTcgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDI2ODU1MV0gVGFzayBiYXRjaCBzY2hlZHVsaW5nIGZvciBMVEUgTG93IHBvd2VyCisgKiBbRUwyXSBUYXNrIFJlc2NoZWR1bGluZyBmb3IgTG93IFBvd2VyIFBvbGxpbmcgVGljayBDaGFuZ2UKKyAqCisgKiAwNyAyOCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNjc1MDldIFtNVDY3NjNdW0JpYW5jb11bTjFdW01UQkZdW1BIT05FXVtPdmVybmlnaHRdW0hRXVtMYWJdW0VyaWNzc29uXVtBU1NFUlRdIGZpbGU6bWN1L2NvbW1vbi9kcml2ZXIvZHBjb3Byby9zcmMvZHBjb3Byb19tbXVfZHJ2LmMgbGluZToxNjE2CisgKiBbVFJVTktdIG1vdmUgTE1BQyBIQVJRIHJlc2V0IHRvIGVsMnBvdworICoKKyAqIDA3IDI0IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDI2NjI5M10gW0Jsb2NraW5nXVtNVDY3NjNdW0JpYW5jb11bTjFdW0luZGlhIEZUXVtNdW1iYWldW1dXIEZUXVtlTUJNU11bUkpJT10gIG1kMTooVVNJUDFfVVNJUDApIFtBU1NFUlRdIGZpbGU6bWQzMi91c2lwL2JycC9tb2RlbS9sdGUvdG9wL3NyYy80Z190b3BfaXJxLmMgbGluZToyMDA0CisgKiBbVFJVTktdIGZpeCBQb2xsIGNvbnRyb2wgb2YgVFhMSVNSIGFuZCBFTDJQT1cKKyAqCisgKiAwNyAxOCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNjM5MzZdIFtCSUFOQ09dW01UNjc2M11bUkRJVF1bUEhPTkVdW0dDRl1bVFM4OTgwXVtGREQgQjcsVEMgNS4yLjFdSGFuZG9mZiBkZWxheSBleGNlZWQgMTkwbXMgd2hlbiBMVEUgaGFuZG9mZiB0byBXQ0RNQQorICogW1RSVU5LXSBwb3dlciBvbiBDb3BybyBiZWZvcmUgVFhMSVNSIGhhbmRsZSBTQ0hfQ0xPU0UgKGZvciBMTUFDIEhBUlEgUkVTRVQpCisgKgorICogMDcgMTcgMjAxNyBwZXRlci55dQorICogW01PTFkwMDI2Mzc0OV0gW1ZPTFRFXVtIU1RdW0FuaXRlXVswMi52MDEuMDIwXVs1LjEuMV1bRTM5XUZBSUwuTm8gTU9TIHNjb3JlIHJldHVybmVkLiBFcnJvciBjb2RlOiAtNS4KKyAqIE92ZXJ3aXJ0ZSB1bnJlYXNvbmFibGUgUkxDIGNvbmZpZ3VyYXRpb24gLSB0LVJlb3JkZXJpbmcgdGltZXIuCisgKgorICogMDcgMDYgMjAxNyBzbGlmZXIuaHN1ZWgKKyAqIFtNT0xZMDAyNjE4NjhdIFs2MjkzXVVMIFNJVCBuZXcgaGFuZGxpbmcKKyAqIEFkZCBtZXNzYWdlIGlkIGZvciBFTDIgUkIgc3luYyBwcm9jZWR1cmUKKyAqCisgKiAwNiAwMSAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNTQzMzFdIFtNVDY3NjNdW0VNXSBFTDJFTSBtYWludGVuYW5jZSBhbmQgRU1BQyBFTSB1cGRhdGUKKyAqIFtFTUFDXSBFTSB1cGRhdGUKKyAqIFtFTDJFTV0gYWRkIHRyYWNlIGFuZCBmaXggcmVwb3J0IG1lY2hhbmlzbQorICoKKyAqIDA2IDAxIDIwMTcgc3RldmUua2FvCisgKiBbTU9MWTAwMjUyOTY0XSBbNjI5M10gQVBJIHVwZGF0ZSBmb3IgTFRFQ1NSIFZvTFRFIEVCSSBpbmRpY2F0aW9uCisgKiAJCisgKiAJW1VNT0xZQV1bVFJVTktdIEFQSSB1cGRhdGUgZm9yIExURUNTUiBWb0xURSBFQkkgaW5kaWNhdGlvbgorICoKKyAqIDA1IDE2IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDI0OTgwNF0gW0JJQU5DT11bTVQ2NzYzXVtSRElUXVtGVF1bRkREXVtIS11bU0lNMTpDTUhLXVtTSU0yOlNNVF1bT3Zlcm5pZ2h0XVtBU1NFUlRdIGZpbGU6bWN1L2NvbW1vbi9kcml2ZXIvZHBjb3Byby9zcmMvbDJfNGdfZGxfbG1hYy5jIGxpbmU6MjE0CisgKiAxLiBlbmFibGUgZWwycG93CisgKiAyLiBpbnRlcmZhY2UgY2hhbmdlIGZvciBzY2hfY2xvc2UKKyAqCisgKiAwNCAyNSAyMDE3IHNsaWZlci5oc3VlaAorICogW01PTFkwMDI0NDc5NV0gW0JJQU5DT11bTVQ2NzYzXVtSRElUXVtOVklPVF1bRkREXVtOb2tpYV1bNEddIEFzc2VydCBmYWlsOiBkcGNvcHJvX21tdV9kcnYuYyAxMzAzIC0gSVBDT1JFCisgKiBBZGQgRUwyIG1lc3NhZ2UgaWQgZm9yIFJCIGxvY2svdW5sb2NrCisgKgorICogMDQgMDYgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMjI2NjU0XSBbTVQ2MjkzXVtFTDJQT1ddIEVMMiBMMkNvcHJvIHBvd2VyIGNvbnRyb2wKKyAqIFtFTDJQT1ddCisgKiAtIEJhc2ljIGZ1bmN0aW9uCisgKiAtIEwrWCwgTCtMCisgKiAtIE1ldGEgbW9kZSwgTDFTCisgKiAtIFVUCisgKgorICogMDMgMTMgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMTk0OTg3XSBbTVQ2MjkzXVtVTU9MWUEvUFMgREVWXSBFTUFDIG1haW50ZW5hbmNlCisgKiBNTDFTCisgKiAtIEZvcmNlIE5FV1RYIHdoZW4gTUwxUyByZXF1ZXN0IGlzIHNlbnQKKyAqCisgKiAwMiAyNCAyMDE3IG1mLmpoYW5nCisgKiBbTU9MWTAwMTk0OTg3XSBbTVQ2MjkzXVtVTU9MWUEvUFMgREVWXSBFTUFDIG1haW50ZW5hbmNlCisgKiAuQWRkIE1MMVMgSUxNIGhhbmRsZXIKKyAqCisgKiAwMiAxMCAyMDE3IHN0ZXZlLmthbworICogW01PTFkwMDIyODk3Ml0gW1VNT0xZQV1bRVBEQ1BdW1ItU0lNXSBJbnRlcmZhY2Ugd2l0aCBFUlJDIGZvciBSZW1vdGUgU0lNCisgKiBbRVBEQ1BdW1ItU0lNXSBJbnRlcmZhY2Ugd2l0aCBFUlJDIGZvciBSZW1vdGUgU0lNLgorICoKKyAqIDAyIDA2IDIwMTcgcGV0ZXIueXUKKyAqIFtNT0xZMDAyMDc3MzNdIFtNVDYyOTNdW0VMMl0gRVJMQ0RMIGRldmVsb3BtZW50CisgKiBbTS1TSU1dIFN5bmMgUi1TSU0gcmVsYXRlZCBpbnRlcmZhY2VzLCByZW1vdmUgcmVkdW5kYW50IG1lc3NhZ2UgSURzIHJlbGF0ZWQgdG8gRVJMQy4KKyAqCisgKiAwMSAyNCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyMjY2NTRdIFtNVDYyOTNdW0VMMlBPV10gRUwyIEwyQ29wcm8gcG93ZXIgY29udHJvbAorICogQWRkIEVMMSBtc2dpZCBhbmQgdGVtcCBpbG0gaGFuZGxpbmcKKyAqCisgKiAwMSAxNiAyMDE3IGVkZGllLndhbmcKKyAqIFtNT0xZMDAyMTA2NTBdIFtNVDYyOTNdW1VNT0xZQSBUUlVOS10gRU1BQyBtYWludGVuYW5jZQorICogW01TSU1dIEFkZCBSU1ZBUyBzdXNwZW5kIG1zZyBpZAorICoKKyAqIDAxIDA1IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDIyMzA2N10gW01UNjI5M10gRUwyIEVNIGltcGxlbWVudGF0aW9uCisgKiBFTDJFTSBmcmFtZXdvcmssIG1lcmdlIHRvIFRSVU5LCisgKgorICogMTIgMjYgMjAxNiBtZi5qaGFuZworICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogbWVyZ2UgRFZGUyBJRiBjb2RlCisgKgorICogMTEgMTQgMjAxNiBjaGloLWNoZW5nLnlhbmcKKyAqIFtNT0xZMDAyMTMxMjJdIFtNVDYyOTNdW0VMMl0gRUwyIEZQR0EgSVQgcGhhc2UgSUkgc291cmNlIGNvZGUgaW50ZWdyYXRpb24KKyAqIDEuIHJlZmluZSAgUkIvTUJNUyBSU01UIHJlbGVhc2UKKyAqIDIuIHJlZmluZSBlcGRjcCBwb2xsaW5nIHJzbXQKKyAqIDIuIGFkZCBjb3ZlcmFnZQorICoKKyAqIDEwIDI4IDIwMTYgamlhLXNoaS5saW4KKyAqIFtNT0xZMDAxOTQ5ODddIFtNVDYyOTNdW1VNT0xZQS9QUyBERVZdIEVNQUMgbWFpbnRlbmFuY2UKKyAqIGVtYWMgdGltaW5nIHJlcG9ydCBmb3Igdm9sdGUgZHNwCisgKgorICogMTAgMjUgMjAxNiBjaGloLWNoZW5nLnlhbmcKKyAqIFtNT0xZMDAyMDkyNDBdIFtNVDYyOTNdW0VMMl0gRUwyIEZQR0EgSVQgcGhhc2UgMSBzb3VyY2UgY29kZXMgaW50ZWdyYXRpb24KKyAqIG5ldyBzYXAgYW5kIG1lc3NhZ2UgaWQgZm9yIEVSTENETCB0byBub3RpZnkgRVBEQ1AgdG8gcmVsZWFzZSBSU01UIHdoZW4gcmVsZWFzaW5nIFJCCisgKgorICogMTAgMDYgMjAxNiB2aWxsZS5wdWthcmkKKyAqIFtNT0xZMDAxNTA4MzVdIE1MMVMgVGVzdCBFbnZpcm9ubWVudCBTdXBwb3J0CisgKiAJCisgKiAJW1VNT0xZQV0gU3luYyBjb2RlIGZyb20gVU1PTFkgVHJ1bmsgQ0wyMjI4NzA2LCBDTDI0NTUzNTAsIENMMjUyOTc0MCBhbmQgQ0wyODIxMzg3CisgKgorICogMDggMjUgMjAxNiBqaWEtc2hpLmxpbgorICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogRU1BQyBFTDEgaW50ZXJmYWNlIGNoYW5nZQorICoKKyAqIDA4IDE2IDIwMTYgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDE5NDI5OF0gW1VNT0xZQV0gRUwyICsgRU1BQyBDb2RlIFJldmlldworICogU3luYyB0byBMYXRlc3QgUFMuREVWIChDTC0yNzI4NjYwKQorICogCisgKiBDTC0yNzI4NjYwIC0gZWwyIHZyYiB2aXJ0dWFsIHNwYWNlIHNob3J0YWdlIGhhbmRsaW5nIGZyYW1ld29yaworICoKKyAqIDA4IDE2IDIwMTYgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDE5NDI5OF0gW1VNT0xZQV0gRUwyICsgRU1BQyBDb2RlIFJldmlldworICogZWwyIHZyYiB2aXJ0dWFsIHNwYWNlIHNob3J0YWdlIGhhbmRsaW5nIGZyYW1ld29yaworICogMDggMDkgMjAxNiBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMTk2MDY1XSBbTVQ2MjkzXVtmb2xkZXIgc3RydWN0dXJlXSBNb3ZlIEVMMS9FTDIgZmlsZXMgZnJvbSBMVEUgZG9tYWluIHRvIFNXUkQgZG9tYWluCisgKiA5MyBFTDIgb3RoZXJzCisgKgorICoKKyAqIDA3IDI3IDIwMTYgamVyZW15LmNoZW4KKyAqIFtNT0xZMDAxOTA2ODNdIFtVTU9MWUFdWzYyOTNdIEVMMiBtZXJnZSBiYWNrIHRvIFVNT0xZQSBUUlVOSyAmIFBTIERFVgorICogW2NvbW1vbl1bT0EgZG9tYWluXSBtZXJnZSBmcm9tIFVFU0lNIENCcgorICoKKyAqIDA3IDE5IDIwMTYgZWRkaWUud2FuZworICogW01PTFkwMDE5MTkyMV0gU3luYyBVTU9MWSB0byBVTU9MWUEuUFMuREVWCisgKiBTeW5jIGVsMl9tc2dpZC5oIGZyb20gVU1PTFkgQ0wyNTgyMTY1IENMMjUyOTAxNAorICoKKyAqIDA2IDI4IDIwMTYgZWRkaWUud2FuZworICogW01PTFkwMDE4NzA0MV0gU3luYyBlcnJjX2VtYWNfbXNnLmggZnJvbSBVTU9MWSB0byBVTU9MWUEKKyAqIEFkZCBNU0dfSURfRVJSQ19FTUFDX01FQVNfR0FQX0lORAorICoKKyAqIDAzIDE1IDIwMTYgcnlhbi5vdQorICogW01PTFkwMDE2MjI5MV0gW01UNjI5Ml0gRU1BQyBjb2RlIHN5bmMgZnJvbSBMUjExIHRvIFVNT0xZCisgKiBDTDE4Njc3NjEsIFtNT0xZMDAxNTEwMDBdIFtNVDY3NTVdIFNSVkNDIEVuaGFuY2VtZW50LgorICoKKyAqIDAxIDExIDIwMTYga2F0aGllLmhvCisgKiBbTU9MWTAwMTU2MjI5XSBbTVQ2MjkyXSBDb2RlIHN5bmMgZnJvbSBNVDYyOTE6IEF1RFJYCisgKiAuCisgKgorICogMDEgMDkgMjAxNiBuaWVudGVoLmhzdQorICogW01PTFkwMDE1OTU0OF0gWzYyOTJdIEVSTEMgY29kZSBzeW5jIGZyb20gTFIxMSB0byBVTU9MWSAoMjAxNS8xMikgCisgKiBTV1JEIGRvbWFpbiBwYXJ0CQorICogCS4KKyAqCisgKiAxMiAzMCAyMDE1IGFudHRpLmthcmphbGFpbmVuCisgKiBbTU9MWTAwMTUzMzM1XSBVTCBidWNrZXQgbWFuYWdlbWVudCBmb3IgVUwgQ0EgYW5kIDY0UUFNOiBFUERDUAorICoKKyAqIDExIDI3IDIwMTUgdmlsbGUucHVrYXJpCisgKiBbTU9MWTAwMTUwODM1XSBNTDFTIFRlc3QgRW52aXJvbm1lbnQgU3VwcG9ydDoKKyAqIAkKKyAqIAlFTUFDIHN1cHBvcnQgZm9yIE1MMVMgVGVzdCBNb2RlCisgKgorICogMDcgMTYgMjAxNSBjaGVuLXdlaS53YW5nCisgKiBbTU9MWTAwMTE4MTU3XSBbVEs2MjkxXUVSTEMgY29kZSBtYWludGFpbgorICogRVJMQyBzdGF0dXMgcHJvaCB0aW1lciBtb2RpZmljYXRpb24KKyAqCisgKiAwNyAwNiAyMDE1IHNoZW5neWkuaG8KKyAqIFtNT0xZMDAxMjU1ODZdIFtUSzYyOTFFMV1bTVZUVi1EXVs0R11bVEREXVtURERfTUlNT183LjJdYXNzZXJ0IGZhaWwgOiBlbDF0eC5jIDczMQorICogMSkgYWRkIEVNQUNfRUwyVEFTS19MT0NLL1VOTE9DS19QT1dFUl9SRVEKKyAqCisgKiAwNiAxOCAyMDE1IG1pbmd0c3VuZy5zdW4KKyAqIFtNT0xZMDAxMjEzMzJdIFtUSzYyOTFdIDRHIEVBUyBsb3cgcG93ZXIgY2hlY2sgaW4KKyAqIGFkZCBRQk0vRUwyIHBvd2VyIGNvbnRyb2wgbWVzc2FnZXMgZm9yIExvZ0RNQQorICoKKyAqIDA2IDE1IDIwMTUgc2MudHVuZworICogW01PTFkwMDEyMTQ0MF0gW1RLNjI5MV0gZUwyIGRldmVsb3BtZW50IGNoZWNrIGluIENSCisgKiAJQWRkIE1TR19JRF9FUlJDX0NfUk5USV9SQV9QUk9CSU5HX1JFUSBmb3IgcHJvYmluZyByZXEuCisgKgorICogMDYgMTUgMjAxNSBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMTIxMzMyXSBbVEs2MjkxXSA0RyBFQVMgbG93IHBvd2VyIGNoZWNrIGluCisgKiBlTDIgbG93IHBvd2VyIGFuZCBlUERDUCBjb2RlIHN5bmM6IGVsMl9tc2dpZC5oCisgKgorICogMDYgMDMgMjAxNSBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMTE4MTYxXSBbTVQ2MjkxXSBFUERDUCBDUiBTeW5jIC0gRWFybHkgcmVlc3RhYmxpc2htZW50IHRvIHByZXZlbnQgY2VydGFpbiBraW5kIG9mIFZvTFRFIGNhbGwgZHJvcAorICogUkQgZG9tYWluCisgKgorICogMDMgMTggMjAxNSBjaGVuLXdlaS53YW5nCisgKiBbTU9MWTAwMDk5NTI1XSBbVEs2MjkxXSBFTUFDIE1EVCBmZWF0dXJlIGNoZWNrLWluCisgKiBpbnRlcmZhY2UgZmlsZSBjaGVjay1pbgorICoKKyAqIDAyIDEzIDIwMTUgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDA5MTgyMl0gUkFURE0gcmVvcmdhbml6YXRpb24KKyAqIC4KKyAqCisgKiAxMiAxNiAyMDE0IHl1dGluZy5jaGVuCisgKiBbTU9MWTAwMDg0ODA3XSBbTVQ2MjkxX0RFVl0gRUwyIExvdyBQb3dlciBGbG93CisgKiAuCisgKgorICogMTIgMTIgMjAxNCB5ay5saXUKKyAqIFtNT0xZMDAwODYzNTBdIFtNVDYyOTFdW0wyMzQgUDJQXSBFbmFibGUgRUwyIFBEVSBkcm9wLCBwaW5nIG5vIHJlcGx5IGFmdGVyIDMwbWluCisgKiAJLgorICoKKyAqIDExIDExIDIwMTQgeWl0aW5nLmNoZW5nCisgKiBbTU9MWTAwMDg0MDQyXSBbVU1PTFldIG1lcmdlIFVNT0xZX0RFViB0byBVTU9MWSB0cnVuaworICogLgorICoKKyAqIDEwIDI4IDIwMTQgYW5kcmV3Lnd1CisgKiBbTU9MWTAwMDc5MDE4XSBbTVQ2MjkxX0RFVl0gZVBEQ1AgYmF0Y2ggSSBVVCByZWxhdGVkIG1vZGlmaWNhdGlvbgorICogTWVyZ2luZworICogCQorICogCS8vVU1PTFlfQ0JyL2FuZHJldy53dS9NVDYyOTFfREVWX0VQRENQREVWVzE0MjdQMS9tY3UvY29tbW9uL2ludGVyZmFjZS9zYXAvbWQvZXJyY19tc2dpZC5oCisgKiAJCisgKiAJdG8gLy9VTU9MWS9ERVYvTVQ2MjkxX0RFVi9tY3UvY29tbW9uL2ludGVyZmFjZS9zYXAvbWQvZXJyY19tc2dpZC5oCisgKgorICogMDkgMTggMjAxNCBzaGVuZ3lpLmhvCisgKiBbTU9MWTAwMDc3NTkyXSBbVEs2MjkxXSBjb2RlIHN5bmMgZnJvbSBDQnIgdG8gVEs2MjkxX0RFViAtIGVtYWMKKyAqIC4KKyAqCisgKiAwOCAyNiAyMDE0IHNoLnlhbmcKKyAqIFtNT0xZMDAwNzcyOTBdIFtUSzYyOTFfREVWXSBJTE0vRXZlbnQgc2NoZWR1bGVyIHdyYXBwZXIgZm9yIExJU1IySElTUiByZW1vdmFsCisgKiAuCisgKgorICogMDggMjIgMjAxNCBqeS5vdQorICogW01PTFkwMDA3NjEwNF0gW1RLNjI5MV0gRU1BQyAmIEVSTEMgVVQgZnJhbWV3b3JrIGFuZCBFUkxDIFVUIGNhc2VzCisgKiAuCisgKgorICogMDggMjEgMjAxNCBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMDcyOTAyXSBbVEs2MjkxXVtERVZdIExUVCB1bml0IHRlc3QgZnJhbWV3b3JrCisgKiBNZXJnaW5nCisgKiAgICAgIAorICogICAgIC8vVU1PTFlfQ0JyL2VyaWMuaHNpZWgvVEs2MjkxX0RFVl9FU0wvbWN1L2NvbW1vbi9pbnRlcmZhY2Uvc2FwLy4uLgorICogICAgICAKKyAqICAgICB0byAvL1VNT0xZL0RFVi9USzYyOTFfREVWL21jdS9jb21tb24vaW50ZXJmYWNlL3NhcC8uLi4KKyAqCisgKiAwOCAxNCAyMDE0IGFuZHJldy53dQorICogW01PTFkwMDA3NTM5N10gW1RLNjI5MV9ERVZdIGNvZGUgc3luYyBNT0xZMDAwNzI0NDUgZnJvbSBNT0xZIHRvIFRLNjI5MV9ERVYKKyAqIEludGVyZmFjZSBjaGVjay1pbiBmb3IgRVBEQ1BfRU1BQ19MRUFWRV9EUlgKKyAqCisgKiAwNyAzMCAyMDE0IHlpdGluZy5jaGVuZworICogW01PTFkwMDA3MzgzMF0gW1RLNjI5MV9ERVZdIGNoZWNrLWluIFRLNjI5MSBtb2RpZmljYXRpb24KKyAqIG1vZGlmeSBzYXAKKyAqCisgKiAwNyAyOSAyMDE0IGFuZHJldy53dQorICogW01PTFkwMDA3Mzg3M10gW1RLNjI5MV9ERVZdIEVQRENQLUVSUkMgaW50ZXJmYWNlcyBjaGVjay1pbgorICogYWRkIEVSUkNfRVBEQ1BfTVRDSF9QQ19SRVEKKyAqCisgKiAwNyAyOCAyMDE0IG5pZW50ZWguaHN1CisgKiBbTU9MWTAwMDczODM2XSBbVEs2MjkxXVtFUlJDXVtDSE1dIExURS1BIENITSBkZXZlbG9wbWVudCBjb2RlIGNoZWNrLWluCisgKiAgICAgLgorICoKKyAqIDAxIDE1IDIwMTQgc2xpZmVyLmhzdWVoCisgKiBbTU9MWTAwMDUzMTA0XSBbTVQ2MjkwRTJdW05BUyBSVERdW01NXVtGRERdIEFzc2VydCBmYWlsOiBkcml2ZXIvbDJjb3Byby9jaXBoZXIvc3JjL2NpcGhlcl9jb21tb24uYyAxOTYgLSBMMkNPUFJPCisgKiBNZXJnZSBjb2RlcyByZWxhdGVkIHRvIEwyIGNvcHJvIGRlbGF5IHBvd2VyIG9mZiBiYWNrIHRvIE1PTFkgVFJVTksgaW4gT0EgZG9tYWluCisgKgorICogMDEgMDYgMjAxNCBtZi5qaGFuZworICogW01PTFkwMDA1MTk4M10gW01UNjU4MkxURV1bV1dGVF1bR2VybWFueV1bVm9kYWZvbmVdUGluZyBSVFQgaXMgbW9yZSB0aGFuIGJlbmNobWFyaworICogQWRkIEhPU1RfREFUQV9SRUFEWV9JTkQKKyAqCisgKiAxMiAwMyAyMDEzIGxld2lzLnl1CisgKiBbTU9MWTAwMDQ4ODMyXSBwb3dlciBkb3duL29uIGluIEVMMiB0YXNrIGNvbnRleHQgYW5kIHJlZmluZSB0aGUgZmxvdworICogLgorICoKKyAqIDA5IDI2IDIwMTMgbGV3aXMueXUKKyAqIFtNT0xZMDAwMzkxOTVdIFtNVDYyOTBdIFtMb3cgUG93ZXJdIExURSBMMiBjb3BybyBwb3dlciBkb3duIGluIExURSBmbGlnaHQgbW9kZQorICogLgorICoKKyAqIDA3IDEyIDIwMTMgc3RhbmxleWh5LmNoZW4KKyAqIFtNT0xZMDAwMjk2MDJdIFtOZXcgRmVhdHVyZV0gTkJSX0NFTExfSU5GTyBhbmQgVEFfSU5GTyByZWxhdGVkIGludGVyZmFjZXMKKyAqIFRBX0lORk8gYW5kIE5CUl9DRUxMX0lORk8gaW50ZXJmYWNlcyBmb3IgTFBQIGZlYXR1cmUKKyAqCisgKiAwNSAxNSAyMDEzIG1vamEuaHN1CisgKiBbTU9MWTAwMDA3NjI1XSBNYWludGFpbiBjb2RlCisgKiBhZGQgZWwyIG1lc3NhZ2UgZm9yIEVSVCB0YXNrIHRvIEVSVCBISVNSLgorICoKKyAqIDAzIDIwIDIwMTMgamVyZW15LmNoZW4KKyAqIFtNT0xZMDAwMDcxMjddIFtNVDcyMDhdIEVMMiBlbmhhbmNlbWVudCBpbiBNT0xZCisgKiBhZGQgSURDLXJlbGF0ZWQgaW50ZXJmYWNlCisgKgorICogMDIgMjYgMjAxMyBqZXJlbXkuY2hlbgorICogW01PTFkwMDAwNzEyN10gW01UNzIwOF0gRUwyIGVuaGFuY2VtZW50IGluIE1PTFkKKyAqIGFkZCBNU0dfSURfRVJMQ1VMX0VQRENQX1NSQl9EQVRBX0NORi4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfX01EOTdfRUwyX01TR0lEX1YyX0gKKyNkZWZpbmUgX19NRDk3X0VMMl9NU0dJRF9WMl9ICisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0VMMl9WMl9DT0RFX0JFR0lOICkKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLSBFTDJfTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIERlc3RpbmF0aW9uOiBFUERDUCAgICAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvLyBMVEVDU1IgLS0+IEVQRENQCisgICAgTVNHX0lEX0xURUNTUl9FUERDUF9WT0xURV9FQklfTlRGLAorCisgICAgLy8gRVJMQy1VTCAtLT4gRVBEQ1AKKworICAgIC8vIEVSTEMtREwgLS0+IEVQRENQCisgICAgTVNHX0lEX0VSTENETF9FUERDUF9NQk1TX1NUQVJUX0lORCwKKyAgICBNU0dfSURfRVJMQ0RMX0VQRENQX01CTVNfRU5EX0lORCwKKworCisgICAgLy8gVVBDTSAtLT4gRVBEQ1AKKyAgICBNU0dfSURfVVBDTV9FUERDUF9TRU5EX0lOVl9DVFJMX1BEVSwKKworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIERlc3RpbmF0aW9uOiBFUkxDLVVMICAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKyAgICAvLyBFUlJDIC0tPiBFUkxDLVVMCisgICAgTVNHX0lEX0VSUkNfRVJMQ1VMX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX0VSUkNfRVJMQ1VMX1NSQjFfQUNLX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FUkxDVUxfU1dJVENIX1ZJUlRVQUxfQ09OTkVDVEVEX1JFUSwKKworICAgIC8vIEVSTENETCAtLT4gRVJMQy1VTAorICAgIE1TR19JRF9FUkxDRExfRVJMQ1VMX1NUQVRVU19QRFVfTlRGLAorCisgICAgLy8gRVJUUE9SVEFMIC0tPiBFUkxDVUwKKyAgICBNU0dfSURfRVJUUE9SVEFMX0VSTENVTF9USU1FUl9FWFBJUllfTlRGLAorCQorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBEZXN0aW5hdGlvbjogRVJMQy1ETCAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLy8gRVJSQyAtLT4gRVJMQy1ETAorICAgIE1TR19JRF9FUlJDX0VSTENETF9DT05GSUdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VSTENETF9TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfUkVRLAorICAgIE1TR19JRF9FUlJDX0VSTENETF9URVNUX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FUkxDRExfTVRDSF9QQ19SRVEsCisKKyAgICAvLyBFTDIgLS0+IEVSTEMtREwKKyAgICBNU0dfSURfRUwyX0VSTENETF9WUkJfVkFfU0hPUlRBR0VfTlRGLAorICAgIE1TR19JRF9FTDJfRVJMQ0RMX1ZSQl9WQV9OT19SRUxFQVNFX05URiwKKworICAgIC8vIEVSTEMtVUwgLS0+IEVSTEMtREwKKyAgICBNU0dfSURfRVJMQ1VMX0VSTENETF9TVEFUVVNfRkJLX05URiwKKworICAgIC8vIEVNQUMgIC0tPiBFUkxDLURMCisgICAgTVNHX0lEX0VNQUNfRVJMQ0RMX0dFTUlOSV9HQVBfSU5ELAorICAgIAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBEZXN0aW5hdGlvbjogRU1BQyAgICAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgTVNHX0lEX0VSUkNfRU1BQ19DT05GSUdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfQ0NDSF9EQVRBX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDX1RBX0lORk9fUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfRVNURkFJTF9SRVBPUlRfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfQ19STlRJX1JBX1BST0JJTkdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfRFJYX0lOQ19HQVBfUkVRLAorICAgIE1TR19JRF9FUlJDX0VNQUNfTUVBU19HQVBfSU5ELAorICAgIE1TR19JRF9FUlJDX0VNQUNfU1VQUE9SVF9DQVBBQklMSVRZX0lORCwKKyAgICBNU0dfSURfRVJSQ19FTUFDX05SX1BTQ0VMTF9BRERfT1JfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfRVJSQ19FTUFDX0RTUF9TTklGRkVSX1JFUSwKKworICAgIC8vLyBFUkxDREwgLS0+IEVNQUMKKyAgICBNU0dfSURfRVJMQ0RMX0VNQUNfRExfVk9MVEVfTk9USUZZX1JFUSwKKworICAgIC8vIEVNQUNfVVQgLS0+IEVNQUMKKyAgICBNU0dfSURfRU1BQ19VVF9FTUFDX1RFU1RfQ01ELAorCisgICAgLy8gRUwxIC0tPiBFTUFDCisgICAgTVNHX0lEX0VNQUNfRUwxX1BIWV9JTkZPX0lORCwKKyAgICBNU0dfSURfRU1BQ19FTDFfUkFfR0FQX1NUT1BfQ05GLAorICAgIE1TR19JRF9FTUFDX0VMMV9SQV9HQVBfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfRU1BQ19FTDFfUk5USV9VUERBVEVfQ05GLAorICAgIE1TR19JRF9FTUFDX0VMMV9EUlhfQ1RSTF9DTkYsCisgICAgTVNHX0lEX0VNQUNfRUwxX1NDRUxMX05PVElGWV9DTkYsCisgICAgTVNHX0lEX0VNQUNfRUwxX0hPU1RfREFUQV9DTkYsCisgICAgTVNHX0lEX0VNQUNfRUwxX0hPU1RfREFUQV9SRUFEWV9JTkQsCisgICAgTVNHX0lEX0VNQUNfRUwxX1JBX1JFU1RBUlRfSU5ELAorICAgIE1TR19JRF9FTUFDX0VMMV9JRENfVERNX0lORCwKKworICAgIC8vSURDIC0tPiBFTUFDLCB3aGVuIENVUl9HRU4gPj0gTURfR0VOOTcKKyAgICBNU0dfSURfSURDX0VNQUNfVERNX0lORCwKKyAgICAKKyAgICAvLyBNTDFTIFNXIC0tPiBFTUFDCisgICAgTVNHX0lEX01MMVNfRU1BQ19URVNUX01PREVfRU5BQkxFX1JFUSwKKyAgICBNU0dfSURfTUwxU19FTUFDX0NPTk5fRVNUX1JBX1JFUSwgICAgCisgICAgTVNHX0lEX01MMVNfRU1BQ19ETF9EQVRBX0RJU0NBUkRfUkVRLAorICAgIE1TR19JRF9NTDFTX0VNQUNfTUFDX0NFX1RSSUdHRVJfUkVRLAorICAgIE1TR19JRF9NTDFTX0VNQUNfVEJTX01JU01BVENIX0ZPUkNFX05FV1RYX1JFUSwKKyAgICBNU0dfSURfTUwxU19FTUFDX0hPX1JBX1RSSUdHRVJfUkVRLAorICAgIE1TR19JRF9NTDFTX0VNQUNfU1JfVFJJR0dFUl9SRVEsCisgICAgTVNHX0lEX01MMVNfRU1BQ19TVEFHX1RBX1JFUSwKKworICAgIC8vIEVMMiAtLT4gRU1BQworICAgIE1TR19JRF9FTDJfRU1BQ19WUkJfVkFfU0hPUlRBR0VfTlRGLAorICAgIE1TR19JRF9FTDJfRU1BQ19WUkJfVkFfTk9fUkVMRUFTRV9OVEYsCisKKyAgICAvLyBVUENNIC0tPiBFTUFDCisgICAgTVNHX0lEX1VQQ01fRU1BQ19JTlRFUk5FVF9ESVNDT05ORUNUX1JFUSwKKyAgICBNU0dfSURfVVBDTV9FTUFDX1JCUlFfUkVRLAorICAgIE1TR19JRF9VUENNX0VNQUNfVEFHX0RBVEFfQVJSSVZBTF9SRVEsICAgIAorCisgICAgLy8gRU1BQyAtLT4gRU1BQworICAgIE1TR19JRF9FTUFDX0VNQUNfUlJDX0NGR19ESVNQQVRDSF9JTkQsCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gRGVzdGluYXRpb246IEVSVF9XUFIgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8vRVJUX1dQUiAtLT4gRVJUX1dQUgorICAgIE1TR19JRF9FUlRfV1BSX0VSVF9XUFJfRVNfSU5TVFJfUFJPQ19OVEYsCisgICAgTVNHX0lEX0VSVF9FUkxDRExfV1BSX0VTX0lOU1RSX1BST0NfTlRGLAorCQorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBEZXN0aW5hdGlvbjogRVJUUE9SVEFMICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIE1TR19JRF9FUlRQT1JUQUxfRVJUUE9SVEFMX1dQUl9FU19JTlNUUl9QUk9DX05URiwKKwkKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gRGVzdGluYXRpb246IEVMMiAgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8vIEVWQUwgLS0+IEVNQUMKKyAgICBNU0dfSURfRU1BQ19BVURSWF9FTkFCTEVfUkVRLAorCisgICAgLy8gVE1DICAtLT4gRU1BQworICAgIE1TR19JRF9UTUNfRU1BQ19USEVSTUFMX0NPTlRST0xfUkVRLAorI2lmIChDVVJfR0VOID49IE1EX0dFTjk3KQorICAgIE1TR19JRF9UTUNfRU1BQ19TRVNTSU9OX0JFR0lOX05URiwKKyAgICBNU0dfSURfVE1DX0VNQUNfU0VTU0lPTl9FTkRfTlRGLAorI2VuZGlmCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0gRUwyX01TR19DT0RFX0VORC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworICAgIC8qICBNVDYyOTMgRUwyIE1TRyBJRCAgKi8KKyAgICBNU0dfSURfVFhISVNSX0VSVF9QT0xMX1JFUSwKKyAgICBNU0dfSURfVFhMSVNSX0VSVF9NVVhfUkVRLAorICAgIE1TR19JRF9FTUFDRExfUE9MTF9SRVEsCisgICAgTVNHX0lEX0VNQUNETF9FTUFDTUNIX1BPTExfUkVRLAorICAgIE1TR19JRF9FTUFDRExfRUwySF9QT0xMX1JFUSwKKyAgICBNU0dfSURfRU1BQ0RMX0VMMl9QT0xMX1JFUSwKKworICAgIC8qIEVNQUNETCAqLworICAgIE1TR19JRF9FTUFDX0VNQUNETF9EUkJfQ09ORklHX0lORCwKKyAgICBNU0dfSURfRU1BQ19FTUFDRExfU1VQUE9SVF9SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfRU1BQ0RMX0VNQUNfTUFDX0NFX0lORCwKKyAgICBNU0dfSURfRU1BQ0RMX0VSTENETF9ETFNDSF9EQVRBX0lORCwKKyAgICBNU0dfSURfRU1BQ0RMX0VNQUNNQ0hfREFUQV9JTkQsCisKKyAgICBNU0dfSURfRU1BQ19FTUFDRExfRU5BQkxFX0dFQVJfVVAsCisgICAgTVNHX0lEX0VNQUNfRU1BQ0RMX0RJU0FCTEVfR0VBUl9VUCwKKworICAgIC8qIFJBIGJldHdlZW4gRU1BQyBhbmQgRU1BQ0RMICovCisgICAgTVNHX0lEX0VNQUNETF9FTUFDX1JBUl9QUk9DX1JFUSwKKyAgICBNU0dfSURfRU1BQ19FTUFDRExfUkFSX1BST0NfQ05GLAorICAgIE1TR19JRF9FTUFDX0VNQUNETF9UQ1JOVElfQ1JfUFJPQ19SRVEsCisgICAgTVNHX0lEX0VNQUNETF9FTUFDX1RDUk5USV9DUl9QUk9DX0NORiwKKyAgICBNU0dfSURfRU1BQ0RMX0VNQUNfQ0NDSF9EQVRBX0lORCwKKyAgICAvKiBIaWdoIERhdGEgYmV0d2VlbiBFTUFDIGFuZCBFTUFDREwgKi8KKyAgICBNU0dfSURfRU1BQ19FTUFDRExfRExfSERBVEFfU1RBVFVTX1JFU0VUX05URiwKKyAgICBNU0dfSURfRU1BQ19FTUFDRExfRExfSERBVEFfSU5ELAorICAgIC8qIERMIExNQUMgaW50ZXJydXB0IG5vdGlmaWNhdGlvbiBJTE0gKi8KKyAgICBNU0dfSURfTE1BQ19FTUFDRExfUkFSX1JFQURZX05URiwKKyAgICBNU0dfSURfTE1BQ19FTUFDRExfVENSTlRJX1JFQURZX05URiwKKyAgICBNU0dfSURfTE1BQ19FTUFDRExfREFUQV9SRUFEWV9OVEYsCisKKyAgICBNU0dfSURfRU1BQ01DSF9FUkxDRExfTUNIX0RBVEFfSU5ELAorCisgICAgLyogIE1UNjI5MyBFTDIgTVNHIElEIChzbGVlcCByZWxhdGVkKSAgKi8KKworICAgIC8vICBNU0dfSURfRU1BQ19FTDFfRFJYX0NZQ0xFX05URiwKKyAgICAvLyAgTVNHX0lEX0VNQUNfRUwxX0RSWF9DVFJMX1JFUSwKKyAgICAvLyAgTVNHX0lEX0VNQUNfRUwxX0RSWF9DVFJMX0NORiwKKyAgICBNU0dfSURfRU1BQ19FUkxDVUxfV0FLRVVQX1JFUSwKKyAgICBNU0dfSURfRU1BQ19FUkxDRExfV0FLRVVQX1JFUSwKKworICAgIC8vIEVMMSAtPiBFTUFDTUNICisgICAgTVNHX0lEX0VNQUNNQ0hfRUwxX01DQ0hfUkNWX01PREVfQ0hBTkdFX0lORCwKKworICAgIC8vIEVSUkMgLT4gRU1BQ01DSAorICAgIE1TR19JRF9FUlJDX0VNQUNNQ0hfU1lOQ0FSRUFfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDTUNIX0FSRUFfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDTUNIX01YQ0hfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTUFDTUNIX01DQ0hfUkNWX01PREVfQ0hBTkdFX1JFUSwKKworICAgIC8vIEVMMkVNIHJlbGF0ZWQKKyAgICBNU0dfSURfRVJMQ19FTDJFTV9FTDJfSU5URVJOQUxfT05fUkVRLAorICAgIE1TR19JRF9FUkxDX0VMMkVNX0VMMl9JTlRFUk5BTF9PRkZfUkVRLAorICAgIE1TR19JRF9FTUFDX0VMMkVNX0VMMl9GRUFUX0RFVF9MT05HX0RSWF9JTkQsCisgICAgTVNHX0lEX0VNQUNfRUwyRU1fRExfVEJfUkVQT1JUX0lORCwKKyAgICBNU0dfSURfRU1BQ19FTDJFTV9QTUNIU19JTkZPX0lORCwKKworICAgIC8vIERWRlMgLT4gRU1BQ0RMCisgICAgTVNHX0lEX0RWRlNfRU1BQ19JVF9VUF9HRUFSX1JFUSwKKyAgICBNU0dfSURfRFZGU19FTUFDX0lUX0RPV05fR0VBUl9SRVEsCisgICAgTVNHX0lEX01FRF9FTUFDX1ZPTFRFX1RJTUlOR19JTkZPX1JFUSwKKworICAgIC8vIFJTVkFTIDwtPiBFTDIgcmVsYXRlZCBQT1JUQUwKKyAgICBNU0dfSURfUlNWQVNfRUwySFBPUlRBTF9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19FTDJIUE9SVEFMX1NVU1BFTkRfU0VSVklDRV9DTkYsCisgICAgTVNHX0lEX1JTVkFTX0VNQUNETFBPUlRBTF9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19FTUFDRExQT1JUQUxfU1VTUEVORF9TRVJWSUNFX0NORiwKKyAgICBNU0dfSURfUlNWQVNfRUwyUE9SVEFMX1NVU1BFTkRfU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX1JTVkFTX0VMMlBPUlRBTF9TVVNQRU5EX1NFUlZJQ0VfQ05GLAorCisgICAgLy8gRUwyUE9XCisgICAgTVNHX0lEX0VMMlBPV19FTUFDRExfRUwyUE9XX1BPTExfUkVRLAorICAgIE1TR19JRF9FTUFDRExfRUwyX0VMMlBPV19QT0xMX1JFUSwKKyAgICBNU0dfSURfRUwxX0VMMlBPV19MMkNPUFJPX1BPV0VSX09OX0lORCwKKyAgICBNU0dfSURfRUwxX0VMMlBPV19MMkNPUFJPX1BPV0VSX09GRl9JTkQsCisgICAgTVNHX0lEX0VMMV9FTDJQT1dfU0NIX0NMT1NFX1JYQlJQX0lETEVfTlRGLAorICAgIE1TR19JRF9FTDJQT1dfVVNFUl9MMkNPUFJPX1BPV0VSX09OX1JFUSwKKyAgICBNU0dfSURfRUwyUE9XX1VTRVJfTDJDT1BST19QT1dFUl9PRkZfUkVRLAorICAgIE1TR19JRF9FTDJfRUwyUE9XX1ZSQl9WQV9TSE9SVEFHRV9OVEYsCisgICAgTVNHX0lEX0VMMl9FTDJQT1dfVlJCX1ZBX05PX1JFTEVBU0VfTlRGLAorICAgIE1TR19JRF9FTUFDX0VMMlBPV19MTUFDX0hBUlFfUkVTRVRfUkVRLAorICAgIE1TR19JRF9FTDJQT1dfRU1BQ0RMX0VMMlBPV19PRkZfTlRGLAorCisgICAgLy8gRU5MMklDRAorICAgIE1TR19JRF9JQ0RfRU5MMklDRF9TWVNURU1fTlRGLAorICAgIE1TR19JRF9FTkwySUNEX0VSVFBPUlRBTF9DVFJMX05URiwKKyAgICBNU0dfSURfRU5MMklDRF9FTUFDRExQT1JUQUxfQ1RSTF9OVEYsCisgICAgTVNHX0lEX0VOTDJJQ0RfRUwySFBPUlRBTF9DVFJMX05URiwKKyAgICBNU0dfSURfRU5MMklDRF9FTDJQT1JUQUxfQ1RSTF9OVEYsCisgICAgTVNHX0lEX0VOTDJJQ0RfRVJUUE9SVEFMX1RJTUVSX0VYUElSWV9OVEYsCisgICAgTVNHX0lEX0VOTDJJQ0RfRU1BQ0RMUE9SVEFMX1RJTUVSX0VYUElSWV9OVEYsCisgICAgTVNHX0lEX0VOTDJJQ0RfRUwySFBPUlRBTF9USU1FUl9FWFBJUllfTlRGLAorICAgIE1TR19JRF9FTkwySUNEX0VMMlBPUlRBTF9USU1FUl9FWFBJUllfTlRGLAorICAgIE1TR19JRF9FTkwySUNEX05NQUNfSFlCUklEX1JQVF9OVEYsCisgICAgTVNHX0lEX05NQUNfRU5MMklDRF9OUl9SRUNPUkRfUlBUX1JFUSwKKworICAgIE1TR19JRF9FTUFDX0VMMlBPUlRBTF9BQ1RJVkVfUFJPVE9DT0xfTlRGLAorCisgICAgTVNHX0lEX0VSTENETF9FTDJQT1JUQUxfUkVMX1JTTVRfSU5ELAorCisgICAgLy8gM3JkIGFycm93IFNXIHByb3RlY3Rpb24KKyAgICBNU0dfSURfQVRQX0VNQUNfM1JEX0FSUk9XX0FVVEhfSU5ELAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0VMMl9WMl9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX19NRDk3X0VMMl9NU0dJRF9WMl9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9WVF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvVlRfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmYwMTVlCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvVlRfbXNnaWQuaApAQCAtMCwwICsxLDIxNiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBWVF9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT05aQQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgVlQgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24gKHByaXZhdGUpCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBWVF9NU0dfSAorI2RlZmluZSBWVF9NU0dfSAorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQcml2YXRlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9WVF9DT0RFX0JFR0lOICkKKworLy8gQ1NNCitNU0dfSURfQ1NNX1ZUX0FDVElWQVRFX1JFUSA9IE1TR19JRF9WVF9DT0RFX0JFR0lOLAorTVNHX0lEX0NTTV9WVF9BQ1RJVkFURV9DTkYsCitNU0dfSURfQ1NNX1ZUX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX0NTTV9WVF9ERUFDVElWQVRFX0NORiwKK01TR19JRF9DU01fVlRfRElTQ19JTkQsCisKKy8vIENTUgorTVNHX0lEX1ZUX0NTUl9VUExJTktfREFUQV9JTkQsCitNU0dfSURfVlRfQ1NSX1NUQVJUX0NPTlNVTUVfRExfSU5ELAorCisvLyBGX0NTUgorTVNHX0lEX1ZUX0ZfQ1NSX0FDVElWQVRFX1JFUSwKK01TR19JRF9WVF9GX0NTUl9ERUFDVElWQVRFX1JFUSwKKworLy8gVVQKKy8qIEplZmZlcnk6IEgyNDUgVVQgMSAqLworTVNHX0lEX1ZUX1VUX0gyNDVfU1lOQ19JTkQsCisvKiBKZWZmZXJ5OiBIMjQ1IFVUIDMgKi8KK01TR19JRF9WVF9VVF9IMjQ1X0RMX01TRywKKworLyogSmVmZmVyeTogeFNSUCBVVCAzICovCitNU0dfSURfVlRfVVRfWFNSUF9SWF9NU0csCisvKiBKZWZmZXJ5OiB4U1JQIFVUIDQgKi8KK01TR19JRF9WVF9VVF9YU1JQX1RYX01TRywKKy8qIEplZmZlcnk6IHhTUlAgVVQgNSAqLworTVNHX0lEX1ZUX1VUX1hTUlBfSDI0NV9ETF9EQVRBX0lORCwKKy8qIEplZmZlcnk6IHhTUlAgVVQgNiAqLworTVNHX0lEX1ZUX1VUX1hTUlBfSDI0NV9VTF9EQVRBX1JFUSwKKworLyogSmVmZmVyeTogSDIyMyBVVCAzIC0gY29udHJvbCAqLworTVNHX0lEX1ZUX1VUX0gyMjNfQ1RSTF9VTF9EQVRBX1JFUSwKKy8qIEplZmZlcnk6IEgyMjMgVVQgMyAtIGF1ZGlvICovCitNU0dfSURfVlRfVVRfSDIyM19BVURJT19VTF9EQVRBX1JFUSwKKy8qIEplZmZlcnk6IEgyMjMgVVQgMyAtIHZpZGVvICovCitNU0dfSURfVlRfVVRfSDIyM19WSURFT19VTF9EQVRBX1JFUSwKKy8qIEplZmZlcnk6IEgyMjMgVVQgNCAtIGNvbnRyb2wgKi8KK01TR19JRF9WVF9VVF9IMjIzX0NUUkxfRExfREFUQV9JTkQsCisvKiBKZWZmZXJ5OiBIMjIzIFVUIDQgLSBhdWRpbyAqLworTVNHX0lEX1ZUX1VUX0gyMjNfQVVESU9fRExfREFUQV9JTkQsCisvKiBKZWZmZXJ5OiBIMjIzIFVUIDQgLSB2aWRlbyAqLworTVNHX0lEX1ZUX1VUX0gyMjNfVklERU9fRExfREFUQV9JTkQsCisKKy8vIFZUCitNU0dfSURfVlRfQ1NSX0NPTlNVTUVfRExfSU5ELAorTVNHX0lEX1ZUX0xPT1BCQUNLX0FVRElPX0RBVEEsCitNU0dfSURfVlRfTE9PUEJBQ0tfVklERU9fREFUQSwKK01TR19JRF9WVF9EQkdfRExfSDI0NV9NU0dfSU5ELAorTVNHX0lEX1ZUX0RCR19VTF9IMjQ1X01TR19JTkQsCisKKy8vIEwxU1AKK01TR19JRF9WVF9TUDNHX1VMX0RBVEFfUkVBRFlfSU5ELAorCisvLyBNRUQKK01TR19JRF9NRURfVlRfQ09ERUNfT1BFTl9BQ0ssCitNU0dfSURfTUVEX1ZUX1BVVF9VTF9WSURFT19JTkQsCisKKy8vIFRWVAorTVNHX0lEX1RWVF9VVF9VQVJUX0RBVEFfUkVRLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9WVF9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vVlRfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2F0cF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvYXRwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI0MDU1NwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2F0cF9tc2dpZC5oCkBAIC0wLDAgKzEsMTM3NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBhdHBfbXNnaWQuaAorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIEFUUCByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9BVFBfTVNHSURfSAorI2RlZmluZSBfQVRQX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0FUUElPX0NPREVfQkVHSU4gKQorCisgICAgLyogQVRQIC0tPiBBVFBfSU8gKi8KKyAgICBNU0dfSURfQVRQX0FUX0NNRF9DTkYsIC8vQVRQIHJlc3BvbmRzIHRvIEFUUF9JTyB0aGUgQVQgcmVzdWx0LCByZXBsYWNlIE1TR19JRF9QUk9YWV9BVENJX0NNRF9SU1AKKyAgICBNU0dfSURfQVRQX0lPX1VSQ19JTkQsIC8vQVRQIHJlcXVlc3RzIEFUUF9JTyB0byBzZW5kIFVSQywgcmVwbGFjZSBNU0dfSURfUFJPWFlfQVRDSV9VUkNfUkVRCisgICAgTVNHX0lEX0FUUF9JT19SRV9FTlFfQVRfQ01EX0NORiwgLy8gQVRQX0lPIHJlLWVucXVlIHRoZSBBVCByZXN1bHQgYmVjYXVzZSBjb3VsZCBub3QgY2FsbCBDQ0NJIHB1dCBieXBlIGZ1bmN0aW9uIHRvIHRoZSBmdWxsIGJ1ZmZlcgorICAgIE1TR19JRF9BVFBfSU9fUkVfRU5RX1VSQ19JTkQsIC8vIEFUUF9JTyByZS1lbnF1ZSB0aGUgVVJDIGJlY2F1c2UgY291bGQgbm90IGNhbGwgQ0NDSSBwdXQgYnlwZSBmdW5jdGlvbiB0byB0aGUgZnVsbCBidWZmZXIKKyAgICBNU0dfSURfQVRQX0lPX1RBUkdFVF9SRVNFVF9JTkQsICAgICAvLyBBVFAgcmVxdWVzdHMgQVRQX0lPIHRvIHJlc2V0IG1vZGVtCisgICAgTVNHX0lEX0FUUF9JT19GTFVTSF9VQVJUX1FVRVVFX0lORCwKKworICAgIC8qIEZvciBVVCAqLworICAgIE1TR19JRF9BVFBfVVRfVUFSVF9SVFJfSU5ELAorICAgIE1TR19JRF9BVFBfVVRfVUFSVF9SVFdfSU5ELAorICAgIE1TR19JRF9BVFBfVVRfQVRfQ01EX1JFUSwKKyAgICBNU0dfSURfQVRQX1VUX0FUX0NNRF9DTkYsCisgICAgTVNHX0lEX0FUUF9VVF9JT19DT05URVhUX1JFUSwKKyAgICBNU0dfSURfQVRQVFNUX0FUX1JFU1BPTlNFX0lORCwgLy90byByZXBsYWNlIE1TR19JRF9MNENUU1RfQVRfUkVTUE9OU0VfSU5ECisgICAgTVNHX0lEX0FUUF9VVF9VUkNfUkVQT1JUX01PREVfSU5ELAorCisgICAgLyogRm9yIFZNTUkgKi8KKyAgICBNU0dfSURfVk1NSV9BVFBfSU9fQVRfQ01EX1JFUSwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9BVFBJT19DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUFJPWFlfQ09ERV9CRUdJTiApCisgICAgLyogQVRQX0lPIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0FUX0NNRF9SRVEgPSBNU0dfSURfUFJPWFlfQ09ERV9CRUdJTiwgLy9BVFBfSU8gbm90aWZpZXMgQVRQIGhlcmUgY29tZXMgYW4gQVQgY29tbWFuZCwgcmVwbGFjZSBNU0dfSURfUFJPWFlfQVRDSV9DTURfSU5ECisKKyAgICAvKiBMNEIgLS0+IEFUUCAqLworICAgIE1TR19JRF9BVFBfTDRCX0FUX0NNRF9DTkYsIC8vTDRCIHJlc3BvbmRzIHRvIEFUUCB0aGUgQVQgcmVzdWx0LCByZXBsYWNlIE1TR19JRF9QUk9YWV9BVENJX0NNRF9DTkYKKyAgICBNU0dfSURfQVRQX0w0Ql9BVF9VUkNfSU5ELAorCisgICAgTVNHX0lEX0FUUF9MNEJQV1JfRUZVTl9DTkYsCisgICAgTVNHX0lEX0FUUF9MNEJQV1JfQ0ZVTl9DTkYsCisgICAgTVNHX0lEX0FUUF9MNEJQV1JfRVBPRl9DTkYsCisKKyAgICBNU0dfSURfQVRQX0w0QlBXUl9HRVRfTlJfUFNfQ05GLAorICAgIE1TR19JRF9BVFBfTDRCUFdSX1NFVF9OUl9QU19DTkYsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUFJPWFlfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0FUUF9DT0RFX0JFR0lOICkKKworICAgIC8qIElNQ1NNUyAtLT4gQVRQICovCisgIE1TR19JRF9BVFBfSU1DU01TX1JBTkdFX0JFR0lOID0gTVNHX0lEX0FUUF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfSU1DU01TX1NVQk1JVF9DSEVDS19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNTTVNfQ09NTUFORF9DSEVDS19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNTTVNfU01NQV9DSEVDS19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNTTVNfU1RLX1NVQk1JVF9DSEVDS19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNTTVNfU0VORF9NU0dfVVJDX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ1NNU19SRUNWX01TR19DTkYsCisgIE1TR19JRF9BVFBfSU1DU01TX1JBTkdFX0VORCwKKyAgCisgICAgLyogU0RNIC0tPiBBVFAgKi8KKyAgTVNHX0lEX1NETV9BVFBfUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX1NETV9BVFBfQ01EX1NFTkRfU01TX1JTUCwKKyAgICBNU0dfSURfU0RNX0FUUF9VUkNfUkNWX1NNU19SRVEsCisgICAgTVNHX0lEX1NETV9BVFBfQ01EX1NFTkRfU01NQV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9TRE1fQVRQX0NTX1NNU19TVUJNSVQsCisgICAgTVNHX0lEX1NETV9BVFBfQ01EX1NFTkRfREVMSVZFUl9SRVBPUlRfUlNQLAorICAgIE1TR19JRF9TRE1fQVRQX0NTX1NNU19DT01NQU5ELAorICAgIE1TR19JRF9TRE1fQVRQX0NTX1NNU19TTU1BLAorICAgIE1TR19JRF9TRE1fQVRQX0NNRF9TVEtfU01TX1JTUCwKKyAgICBNU0dfSURfU0RNX0FUUF9TVEtfU01TX1FVRVJZX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9DU19TVEtfU01TX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9TVEtfU01TX1RSX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9DTURfV0ZDX1BST0ZJTEVfUlNQLAorICAgIE1TR19JRF9TRE1fQVRQX0NNRF9TRVRfV0ZDX1BST0ZJTEVfUkVRLAorICAgIE1TR19JRF9TRE1fQVRQX0lNU0lfR0VUX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9DTURfU0VORF9DMktfU01TX1JTUCwKKyAgICBNU0dfSURfU0RNX0FUUF9VUkNfUkNWX0MyS19TTVNfUkVRLAorICAgIE1TR19JRF9TRE1fQVRQX0NNRF9TRU5EX0NNU1NfUlNQLAorICAgIE1TR19JRF9TRE1fQVRQX0NNU1NfSU1TX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9DTVNTX0NTX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9VUERBVEVfTVNHX0JPWF9SRVEsCisgICAgTVNHX0lEX1NETV9BVFBfU0VORF9DMktfTVNHX1VSQ19JTkQsCisgICAgTVNHX0lEX1NETV9BVFBfSU1TX1NNU19TTUFSVF9DT05HRVNUSU9OX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9JTVNfTk9STUFMX1NNU19TTUFSVF9DT05HRVNUSU9OX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9JTVNfU1RLX1NNU19TTUFSVF9DT05HRVNUSU9OX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfU0RNX0FUUF9JTVNfQ01TU19TTVNfU01BUlRfQ09OR0VTVElPTl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX1NETV9BVFBfSU1TX0MyS19TTVNfU01BUlRfQ09OR0VTVElPTl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX1NETV9BVFBfSU1TX1VUS19TTVNfU01BUlRfQ09OR0VTVElPTl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX1NETV9BVFBfSU1TX1NNU19TTUFSVF9DT05HRVNUSU9OX1NUT1BfUkVRLAorICAgIE1TR19JRF9TRE1fQVRQX0lNU19TTVNfU01BUlRfQ09OR0VTVElPTl9VUkNfSU5ELAorICAgIE1TR19JRF9TRE1fQVRQX1NNU19ERUxJVkVSX1VSQ19JTkQsCisgICAgTVNHX0lEX1NETV9BVFBfQ01EX1NFTkRfQ1NfREVMSVZFUl9SRVBPUlQsCisgICAgTVNHX0lEX1NETV9BVFBfU1RBVFVTX1JFUE9SVF9VUkNfSU5ELAorICAgIE1TR19JRF9TRE1fQVRQX0VDRkdfU0VUX0NORiwKKyAgICBNU0dfSURfU0RNX0FUUF9FQ0ZHX0dFVF9DTkYsCisgICAgTVNHX0lEX1NETV9BVFBfU0VORF9TQ0JNX1VSQ19JTkQsCisgICAgTVNHX0lEX1NETV9BVFBfRkROX0VDQ19DSEVDS19SRVEsCisgICAgTVNHX0lEX1NETV9BVFBfQzJLX1NNU19ERUxJVkVSX1VSQ19JTkQsICAgIAorCU1TR19JRF9BVFBfU0RNX1NNU19TVEFUVVNfVVJDX0lORCwKKwlNU0dfSURfU0RNX0FUUF9SRVBPUlRfUFNJX1VSQ19JTkQsCisJTVNHX0lEX1NETV9BVFBfSU1TX01UX1NNU19FTkRfUkVRLAorCisgIE1TR19JRF9TRE1fQVRQX1JBTkdFX0VORCwKKyAgCisgICAgLyogVkRNIC0tPiBBVFAgKi8KKyAgTVNHX0lEX1ZETV9BVFBfUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0RJQUxfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9ESUFMX1VSSV9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0RJQUxfRU1FUkdfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9ESUFMX0ZST01fTElORV9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0RJQUxfQ09ORl9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0NEVl9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX1NUS19DQUxMX1JTUCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfTVRfQ0FMTF9BUFBST1ZFX1JTUCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfTVRfQ0FMTF9BQ0NFUFRfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9NVF9WVF9TUEVDSUFMX0FDQ0VQVF9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0hBTkdVUF9BTExfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9GT1JDRV9IQU5HVVBfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9DQUxMX1JFTEFURURfU1NfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9EVE1GX1JTUCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfRVhUX0RUTUZfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9FWFRfRVJST1JfUkVQT1JUX1JTUCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfTElTVF9DVVJSRU5UX0NBTExTX1JTUCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfTElTVF9DVVJSRU5UX0NBTExTX0VYVF9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0VNRVJHX1NFUlZfQ0FUX1JTUCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfV0ZDX1BST0ZJTEVfUlNQLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9SVFRfQ0FQQUJJTElUWV9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX1NFTEZfQUNUSVZBVElPTl9SU1AsCisjaWYgZGVmaW5lZChfX0VDQUxMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX05HX0VDQUxMX1NVUFBPUlRfXykKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfRElBTF9FQ0FMTF9SU1AsCisjZW5kaWYKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfRUNQSV9NT19DQUxMX0lEX0FMTE9DX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfRUNQSV9NVF9DQUxMX1NFVFVQX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfRUNQSV9DQUxMX1JFTEVBU0VfUkVRLAorICAgIE1TR19JRF9WRE1fQVRQX1NORF9NVF9DQUxMX0FQUFJPVkVfUkVRLAorICAgIE1TR19JRF9WRE1fQVRQX1NORF9FQ1BJX1JUVF9SRURJQUxfUkVRLAorCisgICAgTVNHX0lEX1ZETV9BVFBfQ1NfQ0NfRUNQSV9UUkFOU0xBVEVfUlNQLAorCisgICAgTVNHX0lEX1ZETV9BVFBfQzJLX0NDX0VDUElfVFJBTlNMQVRFX1JTUCwKKworICAgIE1TR19JRF9WRE1fQVRQX1NORF9BRFNfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfTVRfQ0FMTF9SSU5HX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfVVJDX1JFTEFZX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfU1JWQ0NfQ09ORl9DQUxMX0lEX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfU1RLX0NBTExfVFJfUkVRLAorICAgIE1TR19JRF9WRE1fQVRQX1ZETV9WT0lDRV9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9WRE1fQVRQX1NORF9BRFNfUkVTVUxUX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX1ZETV9BVFBfU05EX0NPTkZfQ0hFQ0tfUkVTVUxUX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfRElHSVRTX1RSTl9RVUVSWV9SRVEsCisgICAgTVNHX0lEX1ZETV9BVFBfR01TU19TRVRfSFZPTFRFX01PREVfUkVRLAorICAgIE1TR19JRF9WRE1fQVRQX1NORF9BRFNfU1dJVENIX1RPX0VNRVJHRU5DWV9SRVEsCisgICAgTVNHX0lEX1ZETV9BVFBfR0VORVJBTF9NT0RFTV9DT05GSUdVUkVfU0VUX1JFUSwKKyAgICBNU0dfSURfVkRNX0FUUF9TTkRfRU5IX1ZPTFRFX1NJX0NBTExfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9FQ0ZHX1NFVF9SU1AsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX1NSVkNDX0NPTlRFWFRfVFJBTlNGRVJfUlNQLAorCisgICAgTVNHX0lEX0FUUF9WRE1fU05EX0VNQ1NTX1VSQ19SRVEsIC8vIHNlbmQgK0VNQ1NTIFVSQworICAgIE1TR19JRF9BVFBfVkRNX1NORF9FQ0JNX1VSQ19SRVEsICAvLyBzZW5kICtDSUVWOiAxMDIseCBVUkMKKyAgICBNU0dfSURfQVRQX1ZETV9DTURfRU1DU19DTkYsCisgICAgTVNHX0lEX0FUUF9WRE1fU05EX0VDTldTX1VSQ19SRVEsIC8vIHNlbmQgK0VDTldTIFVSQworCisgICAgTVNHX0lEX1ZETV9BVFBfQVRfQ01EX1RPX01EX0lORCwKKworICBNU0dfSURfVkRNX0FUUF9SQU5HRV9FTkQsCisKKyAgICAvKklNQyAtLT4gQVRQICovCisgIE1TR19JRF9BVFBfSU1DX1JBTkdFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfSU1DX0xPT1BfVEVTVF9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfUE9XRVJfT0ZGX0NORiwKKyAgICBNU0dfSURfQVRQX0lNQ19JTVNfUkVHX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfSU1TX0VOQUJMRV9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfQ0FMTF9DT05UUk9MX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19DQ19DQUxMX1BST0dSRVNTX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19DQ19QQVVfSU5ELAorICAgIE1TR19JRF9BVFBfSU1DX0NDX0lNU0VNU19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfQ0NfRVZUU1RBVFVTX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19DQ19FU1BFRUNIX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19TU19DT05GRVJFTkNFX0NPTlRST0xfQ05GLAorICAgIE1TR19JRF9BVFBfSU1DX1NTX1NVQlNDUklCRV9DT05UUk9MX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19TU19DT05GRVJFTkNFX0NPTlRST0xfSU5ELAorICAgIE1TR19JRF9BVFBfSU1DX1NTX1BST0dSRVNTX05PVElGWV9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfU1NfRUNUX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19FQ0ZHX1NFVF9DTkYsCisgICAgTVNHX0lEX0FUUF9JTUNfRUNGR19HRVRfQ05GLAorICAgIE1TR19JRF9BVFBfSU1DX0VDRkdfUkVTRVRfQ05GLAorICAgIE1TR19JRF9BVFBfSU1DX0VNT0NGR19DTkYsCisgICAgTVNHX0lEX0FUUF9JTUNfQ0NfQ1NTVV9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfUVVFUllfVVJJX1RZUEVfQ05GLAorICAgIE1TR19JRF9BVFBfSU1DX0NBTExfQ09OVFJPTF9DTkYsCisgICAgTVNHX0lEX0FUUF9JTUNfSU1TX1JFR19TVEFSVF9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfSU1TX0RFUkVHX1NUQVJUX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19TSVBfQ0FMTF9QUk9HUkVTU19JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfRUlNU19VUkNfSU5ELAorICAgIE1TR19JRF9BVFBfSU1DX1NFVF9STE1fUkVRLAorICAgIE1TR19JRF9BVFBfSU1DX0lNU19ERVJFR19DTkYsCisgICAgTVNHX0lEX0FUUF9JTUNfSU1TX0lOSVRfSU5ELAorICAgIE1TR19JRF9BVFBfSU1DX0VQVlNfU0VUX0NORiwKKyAgICBNU0dfSURfQVRQX0lNQ19FUFZTX0dFVF9DTkYsCisgICAgTVNHX0lEX0FUUF9JTUNfRkROX0VDQ19DSEVDS19SRVEsCisgICAgTVNHX0lEX0FUUF9JTUNfU1NfRkROX0NIRUNLX1JFUSwKKyAgICBNU0dfSURfQVRQX0lNQ19JTVNfRVhJVF9FQ0JNX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19FSU1TR0VPX0lORCwKKyAgICAvKiBXRkMgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19IQU5ET1ZFUl9TVEFSVF9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfSEFORE9WRVJfU1RPUF9JTkQsCisKKyAgICAvKiBWSUxURSAqLworICAgIE1TR19JRF9BVFBfSU1DX0NDX01FRElBX01PRF9JTkQsCisgICAgTVNHX0lEX0FUUF9JTUNfQ0NfVklERU9fQ0FQX0lORCwKKworICAgIC8qIFVTU0kgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19TRU5EX1VTU0RfQ05GLAorICAgIE1TR19JRF9BVFBfSU1DX1JFQ1ZfVVNTRF9JTkQsCisKKyAgICAvKiBlbWVyZ2VuY3kgYWNjZXNzIGlkLCByZXF1aXJlbWVudCBmb3IgQVQmVCAqLworICAgIE1TR19JRF9BVFBfSU1DX1NFVF9FTUVSR0VOQ1lfQUlEX0NORiwKKworICAgIC8qIEFUK0VXRkNQICovCisgICAgTVNHX0lEX0FUUF9JTUNfV0ZDX1BST0ZJTEVfQ05GLAorCisgICAgLyogQVQrRUlNU1JDUyAqLworICAgIE1TR19JRF9BVFBfSU1DX1JDU19GRUFUVVJFX0NORiwKKyAgICBNU0dfSURfQVRQX0lNQ19TV0lUQ0hfUFJFRkVSX1JBVF9DTkYsCisgICAgLyogQVQrRUNUICovCisgICAgTVNHX0lEX0FUUF9JTUNfU1NfRUNUX0NORiwKKworICAgIC8qIEFUK0VTSVBIRUFERVIgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19TSVBfSEVBREVSX0NORiwKKworICAgIC8qICtFSU1TVENBUCAqLworICAgIE1TR19JRF9BVFBfSU1DX1RUWV9DQVBBQklMSVRZX0lORCwKKworICAgIC8qIEFUIENNRCByZWxheSAqLworICAgIE1TR19JRF9BVFBfSU1DX0FUQ01EX1JFTEFZX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ19BVENNRF9SRUxBWV9DTkYsCisKKyAgICAvKiBBVCtFR01SPTAsOSAqLworICAgIE1TR19JRF9BVFBfSU1DX1FVRVJZX0lNRUlfU1ZOX1JFUSwKKworICAgIC8qIEFUK0VJTVNFVlMgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19TRVRfRVZTX1NVUFBPUlRfQ05GLAorCisKKyAgICAvKiBNSU1TIGNhcGFiaWxpdHkgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19NSU1TX0NBUEFCSUxJVFlfQ05GLAorCisgICAgLyogQVQrRUlUTVIgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19JTVNfVElNRVJfU1RBVFVTX0lORCwKKworICAgIC8qIEFUK0VJTVNFVkVOVCAqLworICAgIE1TR19JRF9BVFBfSU1DX0lNU19FVkVOVF9JTkQsCisKKyAgICAvKiBSVFQgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19SVFRfQ0FQQUJJTElUWV9DTkYsCisgICAgTVNHX0lEX0FUUF9JTUNfQ0NfUlRUX09QX0NORiwKKworICAgIC8qIEdlbmVyYWwgQVQgY29tbWFuZCB0byBNRCwgQVQrRUdNQz0xLDxjb25maWd1cmVfbmFtZT4sPGNvbmZpZzE+Wyw8Y29uZmlnMj4uLi5dKi8KKyAgICBNU0dfSURfQVRQX0lNQ19BVF9DTURfVE9fTURfSU5ELAorCQorCS8qQVQrQ1NDTSovCisgICAgTVNHX0lEX0FUUF9JTUNfTk9STUFMX1JFR19DU0NNX1JFUSwKKworICAgIC8qIEFUK1NUS0NBTEw9ODAvODEgd2hlbiBTVEsgY2FsbCBvdmVyIElNUyBzdWNjZXNzZnVsbHkuICovCisgICAgTVNHX0lEX0FUUF9JTUNfSU1TX1NUS0NBTExfSU5ELAorICAgIAorICAgIC8qIHJlZ3VhIHJlbWFpbiB0aW1lIHRvIGFwICovCisgICAgTVNHX0lEX0FUUF9JTUNfUkVHVUFfUkVNQUlOX1RJTUVfSU5ELAorICBNU0dfSURfQVRQX0lNQ19SQU5HRV9FTkQsIAorCisgICAgLypJTUNCIC0tPiBBVFAgKi8KKyAgTVNHX0lEX0FUUF9JTUNCX1JBTkdFX0JFR0lOLAorICBNU0dfSURfQVRQX0lNQ0JfUkFOR0VfRU5ELAorCisgIC8qIExURUNTUiAtPiBBVFAgKi8KKyAgTVNHX0lEX0xURUNTUl9BVFBfUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX0xURUNTUl9BVFBfUlRQX1RJTUVSX0VYUElSRSwKKyAgICBNU0dfSURfTFRFQ1NSX0FUUF9QS1RfSU5GT19VUkMsCisgICAgTVNHX0lEX0xURUNTUl9BVFBfSU1TX0FVRElPX1NJTEVOQ0VfSU5ELAorICAgIE1TR19JRF9BVFBfTFRFQ1NSX0VDRkdfU0VUX0NORiwKKyAgICBNU0dfSURfQVRQX0xURUNTUl9FQ0ZHX0dFVF9DTkYsCisgIE1TR19JRF9MVEVDU1JfQVRQX1JBTkdFX0VORCwKKworICAvKiBEMkFNIC0tPiBBVFAgKi8KKyAgTVNHX0lEX0FUUF9EMkFNX1JBTkdFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfRDJBVF9DRlVOX0NORiwgICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0NGVU5fUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0VGVU5fQ05GLCAgICAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUZVTl9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRUlBQVBOX0NORiwgICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9FSUFBUE5fUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0VHREFUQV9DTkYsICAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUdEQVRBX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9MNF9DTURfQ0dBVFRfSU5ELCAgICAgIC8vdXNlZCB0byBzZW5kIEFUK0NHQVRUIHRvIFBTLCBwYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfTDRfQ01EX0NHQVRUX1JTUAorICAgIE1TR19JRF9BVFBfRDJBVF9MNF9DTURfRUdUWVBFX0lORCwgICAgIC8vdXNlZCB0byBzZW5kIEFUK0VHVFlQRSB0byBQUywgcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0w0X0NNRF9FR1RZUEVfUlNQCisgICAgTVNHX0lEX0FUUF9EMkFUX0w0X0NNRF9JQ0NJRF9JTkQsICAgICAgIC8vdXNlZCB0byBzZW5kIEFUK0lDQ0lEIHRvIFBTLCBwYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfTDRfQ01EX0lDQ0lEX1JTUAorICAgIE1TR19JRF9BVFBfRDJBVF9FREFMTE9XX0NORiwgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRURBTExPV19SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfTDRfQ01EX0VHUkVBX0lORCwgLy8gdXNlZCB0byBzZW5kIEFUK0VHUkVBIHRvIFBTLCBwYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfTDRfQ01EX0VHUkVBX1JTUAorICAgIE1TR19JRF9BVFBfRDJBVF9BUF9VUkNfRUlBUkVHX0lORCwgLy8gVVJDIGF0dGFjaCBwZG4gdG8gQVAKKyAgICBNU0dfSURfQVRQX0QyQVRfRUlNU1RFU1RNT0RFX0NORiwgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VJTVNURVNUTU9ERV9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRURBVEFTSU1fQ05GLCAvLyBkZWZhdWx0IGRhdGEgc2ltLCBwYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRURBTExPV19SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRUlBTURQUkVGRVJfQ05GLCAvLyBwYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUlBTURQUkVGRVJfUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0VJQUFUVEFDSF9DTkYsICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VJQUFUVEFDSF9SRVEKKyAgTVNHX0lEX0FUUF9EMkFNX1JBTkdFX0VORCwKKworICAvKiBEMlVYIC0+IEFUUCAqLworICBNU0dfSURfQVRQX0QyVVhfUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX0FUUF9EMkFUX0VHRENBQ1RfQ05GLCAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9FR0RDQUNUX1JFUQorICBNU0dfSURfQVRQX0QyVVhfUkFOR0VfRU5ELAorCisgIC8qIEQyQVQgLS0+IEFUUCAqLworICBNU0dfSURfQVRQX0QyQVRfUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX0FUUF9EMkFUX0NORiwgICAgICAgICAgLy9HZW5lcmFsIENORgorICAgIE1TR19JRF9BVFBfRDJBVF9DR0FDVF9JTkQsICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0NHQUNUX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9DR0FDVF9DTkYsICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0NHQUNUX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9BQ1RURVNUX0NORiwgICAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfQ0dBQ1RfUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHRENPTlRfSU5ELCAgICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9DR0RDT05UX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9DR0RDT05UX0NORiwgICAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfQ0dEQ09OVF9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfWEdEQ09OVF9JTkQsICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX1hHRENPTlRfUkVRLCBmb3IgRkkqKipPTSBvbmx5LgorICAgIE1TR19JRF9BVFBfRDJBVF9DR0FVVEhfSU5ELCAgICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9DR0FVVEhfUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHQVVUSF9DTkYsICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0NHQVVUSF9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfQ0dQQUREUl9JTkQsICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0NHUEFERFJfUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHUEFERFJfQ05GLCAgICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9DR1BBRERSX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9DR0NPTlRSRFBfSU5ELCAgICAgIC8vIHBhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9DR0NPTlRSRFBfSU5ECisgICAgTVNHX0lEX0FUUF9EMkFUX0NHQ09OVFJEUF9DTkYsICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfQ0dDT05UUkRQX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9BUF9VUkNfQ0dFVl9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NNRF9DTkYsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHRFNDT05UX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfQ0dURlRfSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9DR1FSRVFfSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9DR1FNSU5fSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9DR0VRUkVRX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfQ0dFUU1JTl9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHU0NPTlRSRFBfSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9DR1RGVFJEUF9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHRVFPU19JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHRVFPU1JEUF9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0M1R1FPU19JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0M1R1FPU1JEUF9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHRVJFUF9JTkQsCisKKyAgICBNU0dfSURfQVRQX0QyQVRfRUdQQ09SRFBfSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9FR1BDT19JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0JHUENPUkRQX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfQ0dFUU5FR19JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0NHREVMX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfRUdERUxQRl9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0VHTE5LUEZfSU5ELAorCisgICAgTVNHX0lEX0FUUF9EMkFUX0FQX1VSQ19FSUZfSE9fSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9FU0NPTlRJTkRfSU5ELAorICAgIE1TR19JRF9BVFBfRDJBVF9BUF9VUkNfRVNDT05USU5EX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfRVBTSV9DTkYsICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRVBTSV9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRUdVUlNQUkRQX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfRUdVUlNQUkRQX0NORiwKKyAgICBNU0dfSURfQVRQX0QyQVRfRUdVUlNQUkVFVkFMX1VSQ19JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0VHVUVQT0xJQ1lfQ05GLAorICAgIE1TR19JRF9BVFBfRDJBVF9FR1VFUE9MSUNZUkRQX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfRUdVRVBPTElDWVJEUF9DTkYsCisgICAgTVNHX0lEX0FUUF9EMkFUX0VHVUVQT0xJQ1lfVVJDX0lORCwKKyAgTVNHX0lEX0FUUF9EMkFUX1JBTkdFX0VORCwKKyAgCisgIC8qIEQyQ00gLS0+IEFUUCAqLworICBNU0dfSURfQVRQX0QyQ01fUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX0FUUF9EMkFUX0VBUE5BQ1RfSU5ELCAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUFQTkFDVF9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRUFQTkFDVF9DTkYsICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9FQVBOQUNUX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9FSUZfQ05GLCAgICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VJRl9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRVBETl9JTkQsICAgICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9FUEROX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9FUEROX0NORiwgICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VQRE5fUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0VHRkJfQ05GLCAgICAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUdGQl9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRURSRVRSWV9DTkYsICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9FRFJFVFJZX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9FRFJFVFJZUkRQX0lORCwgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VEUkVUUllSRFBfUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0VEUkVUUllSRFBfQ05GLCAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRURSRVRSWVJEUF9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfQVBfVVJDX0VJRl9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX0FQX1VSQ19FUEROX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfQVBfVVJDX0VBUE5JTkZPX0lORCwKKyAgICBNU0dfSURfQVRQX0QyQVRfQVBfVVJDX0VEUkVUUllfSU5ELCAKKyAgTVNHX0lEX0FUUF9EMkNNX1JBTkdFX0VORCwKKyAgCisgIC8qIEQyUE0gLS0+IEFUUCAqLworICBNU0dfSURfQVRQX0QyUE1fUkFOR0VfQkVHSU4sCisgICAgTVNHX0lEX0FUUF9EMkFUX0VBUE5MT0NLX0NORiwgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUFQTkxPQ0tfUkVRCisgICAgTVNHX0lEX0FUUF9EMkFUX0VBUE5TRVRfSU5ELCAgICAgICAgLy9wYWlyZWQgd2l0aCBNU0dfSURfQVRQX0QyQVRfRUFQTlNFVF9SRVEKKyAgICBNU0dfSURfQVRQX0QyQVRfRUFQTlNFVF9DTkYsICAgICAgICAvL3BhaXJlZCB3aXRoIE1TR19JRF9BVFBfRDJBVF9FQVBOU0VUX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9FQVBOUkVTVl9DTkYsICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VBUE5SRVNWX1JFUQorICAgIE1TR19JRF9BVFBfRDJBVF9FQUlEX0NORiwgICAgICAgICAgIC8vcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9EMkFUX0VBSURfUkVRCisgIE1TR19JRF9BVFBfRDJQTV9SQU5HRV9FTkQsCisKKyAgTVNHX0lEX0FUUF9EMlJNX1JBTkdFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfRDJSTV9FV09QRE5FUlJfSU5ELAorICBNU0dfSURfQVRQX0QyUk1fUkFOR0VfRU5ELAorCisgICAgLyogRERNIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0RETV9SQU5HRV9CRUdJTiwKKyAgICBNU0dfSURfQVRQX0RETV9DTURfQ05GLAorICAgIE1TR19JRF9BVFBfRERNX0NHREFUQV9DTkYsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dEQ09OVF9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dEU0NPTlRfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHVEZUX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9DR1FSRVFfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHUU1JTl9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dFUVJFUV9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dFUU1JTl9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dFUU5FR19JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dBQ1RfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHUEFERFJfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHQVVUT19JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0dFUkVQX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9DR0NPTlRSRFBfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHU0NPTlRSRFBfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHVEZUUkRQX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9DR0VRT1NfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHRVFPU1JEUF9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQzVHUU9TX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9DNUdRT1NSRFBfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0NHREVMX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9DR0FVVEhfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX1ZaV0FQTkVUTVJfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX1ZaV0FQTkVfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX0VTQ09OVElORF9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fRUdQQVVfSU5ELAorICAgIE1TR19JRF9BVFBfRERNX1BTQkVBUkVSX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9FR0ZCX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9FR0RFTFBGX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9FR0xOS1BGX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9FR1BDT1JEUF9JTkQsCisjaWZkZWYgX19UQzAxX18KKyAgICBNU0dfSURfQVRQX0RETV9CQUNLT0ZGX1RJTUVSX0lORCwKKyNlbmRpZiAgICAKKyAgICBNU0dfSURfQVRQX0RETV9OV0xJTUlUX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9FR1BDT19JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fRURSRVRSWV9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ1JMQUROX0lORCwKKyAgICBNU0dfSURfQVRQX0RETV9DTEFETl9JTkQsCisgICAgTVNHX0lEX0FUUF9ERE1fQ0xBRE5VX0lORCwKKyAgICAvL3NlbmQgQ01EIHRvIEw0CisgICAgTVNHX0lEX0FUUF9ERE1fTDRfQ01EX0NHQVRUX0lORCwgICAgICAvL3VzZWQgdG8gc2VuZCBBVCtDR0FUVCB0byBQUywgcGFpcmVkIHdpdGggTVNHX0lEX0FUUF9ERE1fTDRfQ01EX0NHQVRUX1JTUAorICAgIE1TR19JRF9BVFBfRERNX1JBTkdFX0VORCwKKworICAgIE1TR19JRF9BVFBfU0lNTU5HUl9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9TSU1NTkdSX0NNRUVfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9TSU1NTkdSX0NQSU5fUVVFUllfUkVRLAorICAgICAgICBNU0dfSURfQVRQX1NJTU1OR1JfRVNJTVNfUVVFUllfUkVRLAorICAgICAgICBNU0dfSURfQVRQX1NJTU1OR1JfSU1FSV9RVUVSWV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfU0lNTU5HUl9FU0lNQVBQX1FVRVJZX1JFUSwKKyAgICBNU0dfSURfQVRQX1NJTU1OR1JfUkFOR0VfRU5ELAorCisgICAgLyogSU1TTSAtLT4gQVRQICovCisgICAgTVNHX0lEX0FUUF9JTVNNX1JBTkdFX0JFR0lOLAorICAgICAgICAvL3NlbmQgVVJDIHRvIEFQCisgICAgICAgIE1TR19JRF9BVFBfSU1TTV9BUF9VUkNfSU5ELAorICAgICAgICAvL3NlbmQgQ01EIHRvIEw0CisgICAgICAgIE1TR19JRF9BVFBfSU1TTV9MNF9DTURfSU5ELCAgICAgIC8vdXNlZCB0byBzZW5kIGF0IGNvbW1hbmQgdG8gUFMsIHBhaXJlZCB3aXRoIE1TR19JRF9BVFBfSU1TTV9MNF9DTURfUlNQCisJTVNHX0lEX0FUUF9JTVNNX01UVV9TSVpFX0lORCwKKyAgICBNU0dfSURfQVRQX0lNU01fUkFOR0VfRU5ELAorICAgIAorICAgIC8qIElXTEFOIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0lXTEFOX1JBTkdFX0JFR0lOLAorICAgICAgICAvLyBzZW5kIENNRCB0byBMNAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0w0X0lNU0NGR19JTkQsIC8vIHVzZWQgdG8gc2VuZCBBVCtFSU1TQ0ZHIHRvIFBTLCBwYWlyZWQgd2l0aCBNU0dfSURfQVRQX0lXTEFOX0w0X0lNU0NGR19SU1AKKyAgICAgICAgTVNHX0lEX0FUUF9JV0xBTl9MNF9QTFdUSENGR19JTkQsCisgICAgICAgIE1TR19JRF9BVFBfSVdMQU5fV0lGSU1PTl9DRkdfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VXSUZJUEROQUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0FUUF9JV0xBTl9FSVdMUExfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0NFVVNfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VJV0xDRkdTRVRfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VJV0xDRkdHRVRfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VJTVNHRU9fSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VXRkNSVk9VVF9JTkQsCisgICAgICAgIE1TR19JRF9BVFBfSVdMQU5fRUlXTFBJTkdfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VQVlNTRVRfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VQVlNHRVRfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0lXTEFOX0VQT0ZfSU5ELAorICAgIE1TR19JRF9BVFBfSVdMQU5fUkFOR0VfRU5ELAorCisgICAgLyogTjNFUEMgLS0+IEFUUCAqLworICAgIE1TR19JRF9BVFBfTjNFUENfUkFOR0VfQkVHSU4sCisgICAgICAgIE1TR19JRF9BVFBfTjNFUENfRVdPUEROT09TX0lORCwKKyAgICBNU0dfSURfQVRQX04zRVBDX1JBTkdFX0VORCwKKworICAgIC8qIFdPIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX1dPX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfQVRQX1dPX0VXT1BETk9PU19JTkQsCisgICAgICAgIE1TR19JRF9BVFBfV09fRVdPS0VFUEFMSVZFX0lORCwKKyAgICAgICAgTVNHX0lEX0FUUF9XT19FV0lGSU5BVFRfQ05GLAorICAgICAgICBNU0dfSURfQVRQX1dPX0VXT0NGR1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9BVFBfV09fRVdPQ0ZHR0VUX0NORiwKKyAgICBNU0dfSURfQVRQX1dPX1JBTkdFX0VORCwKKworICAgIC8qIE4zQ0YgLS0+IEFUUCAqLworICAgIE1TR19JRF9BVFBfTjNDRl9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9OM0NGX0VOM0NGR1NFVF9JTkQsCisgICAgICAgIE1TR19JRF9BVFBfTjNDRl9FTjNDRkdHRVRfQ05GLAorICAgICAgICBNU0dfSURfQVRQX04zQ0ZfRVBPRl9JTkQsCisgICAgICAgIE1TR19JRF9BVFBfTjNDRl9FUFZTX1NFVF9DTkYsCisgICAgTVNHX0lEX0FUUF9OM0NGX1JBTkdFX0VORCwKKworICAgIC8qIEJJUCBTSU0gTUdSIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0JJUF9TSU1fTUdSX1JBTkdFX0JFR0lOLAorICAgICAgICAvL3NlbmQgVVJDIHRvIEFQCisgICAgICAgIE1TR19JRF9BVFBfQklQX1NJTV9NR1JfQVBfVVJDX1JFUSwKKyAgICAgICAgLy9zZW5kIENNRCB0byBwcm90b2NvbCBzdGFjayhQUykKKyAgICAgICAgTVNHX0lEX0FUUF9CSVBfU0lNX01HUl9QU19DTURfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0JJUF9TSU1fTUdSX1BTX1RSX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9CSVBfU0lNX01HUl9QU19FTlZfUkVRLAorICAgIE1TR19JRF9BVFBfQklQX1NJTV9NR1JfUkFOR0VfRU5ELAorCisgICAgLyogU1NEUyAtLT4gQVRQICovCisgICAgTVNHX0lEX0FUUF9TU0RTX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfQVRQX1NTRFNfU1NfQVRDTURfUkVESVJFQ1RfUkVRLCAgICAgICAgICAvKkFUQ01EIHJlZGlyZWN0IHRvIHByb3RvY29sIHN0YWNrIHJlcXVlc3Q6IFNTRFMtLS0+QVRQLS0tPlBTKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX1NTX1VSQ19JTkQsICAgICAgICAgICAgICAgICAgICAgLypTU0RTIFVSQyB0byBBVFA6IFNTRFMgLS0tID5BVFAgLS0tPiBBUCovCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19TU19BVENNRF9DTkYsICAgICAgICAgICAgICAgICAgIC8qU1NEUyByZXNwb25zZSB0byBBVFA6IFNTRFMgLS0tID5BVFAgLS0tPiBBUCovCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19FR0JBX0FUQ01EX0NORiwgICAgICAgICAgICAgICAgIC8qU1NEUyByZXNwb25zZSB0byBBVFA6IFNTRFMgLS0tID5BVFAgLS0tPiBBUCovCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19VU1NEX0FUQ01EX0NORiwgICAgICAgICAgICAgICAgIC8qU1NEUyByZXNwb25zZSB0byBBVFA6IFNTRFMgLS0tID5BVFAgLS0tPiBBUCovCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19VU1NEX0FUQ01EX1JFRElSRUNUX1JFUSwgICAgICAgIC8qQVRDTUQgcmVkaXJlY3QgdG8gcHJvdG9jb2wgc3RhY2sgcmVxdWVzdDogU1NEUy0tLT5BVFAtLS0+UFMqLworICAgICAgICBNU0dfSURfQVRQX1NTRFNfVVNTRF9VUkNfSU5ELCAgICAgICAgICAgICAgICAgICAvKlNTRFMgVVJDIHRvIEFUUDogU1NEUyAtLS0gPkFUUCAtLS0+IEFQKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VYQ0FQUkNOX1VSQ19JTkQsICAgICAgICAgICAgICAgLypTU0RTIHNlbmQgRVhDQVBSQ04gdG8gQVRQOiBTU0RTIC0tLSA+QVRQIC0tLT4gQVAgKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VSQVRfUVVFUllfUkVRLCAgICAgICAgICAgICAgICAgLypTU0RTIHNlbmQgQVQrRVJBVD8gKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VSQVRfU0VUX1JFUSwgICAgICAgICAgICAgICAgICAgLypTU0RTIHNlbmQgQVQrRVJBVD0sLCwsLCAqLworICAgIE1TR19JRF9BVFBfU1NEU19SQU5HRV9FTkQsCisKKyAgICAvKiBYQ0FQIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX1hDQVBfUkFOR0VfQkVHSU4sCisgICAgICAgIE1TR19JRF9BVFBfWENBUF9FR0JBX0FUQ01EX0NORiwgICAgICAgICAgICAgICAgIC8qWENBUCByZXNwb25zZSB0byBBVFA6IFhDQVAgLS0tID5BVFAgLS0tPiBBUCovCisgICAgICAgIE1TR19JRF9BVFBfWENBUF9FWENBUENGR1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9BVFBfWENBUF9FWENBUENGR0dFVF9DTkYsCisgICAgTVNHX0lEX0FUUF9YQ0FQX1JBTkdFX0VORCwKKworICAgIC8qTDRCU0JQLT5BVFAqLworICAgIE1TR19JRF9BVFBfTDRCU0JQX1JBTkdFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfTDRCU0JQX0FUX0NIX0xPQ0tfUkVRLAorICAgIE1TR19JRF9BVFBfTDRCU0JQX0FUX0NIX1VOTE9DS19SRVEsCisgICAgTVNHX0lEX0FUUF9MNEJTQlBfUkFOR0VfRU5ELAorCisgICAgLyogTDRDIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0w0Q19SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9MNENfRU4zR1BFQ1BfQ05GLAorICAgICAgICBNU0dfSURfQVRQX0w0Q19FNUdPUFRfUkVBRF9DTkYsCisgICAgICAgIE1TR19JRF9BVFBfTDRDX0U1R09QVF9TRVRfQ05GLAorICAgIE1TR19JRF9BVFBfTDRDX1JBTkdFX0VORCwKKworICAgIC8qIFNNU0FMIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX1NNU0FMX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfQVRQX1NNU0FMX0M1R1NNU19DTkYsCisgICAgTVNHX0lEX0FUUF9TTVNBTF9SQU5HRV9FTkQsCisgICAgCisgICAgLyogU01TIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfQVRQX1NNU19SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9TTVNfU1RBVFVTX0NORiwKKyAgICAgICAgTVNHX0lEX0FUUF9TTVNfU1RBVFVTX1VSQ19JTkQsCisgICAgTVNHX0lEX0FUUF9TTVNfUkFOR0VfRU5ELAorCisgICAgLypNVC0+QVRQKi8KKyAgICBNU0dfSURfQVRQX01UX0RNRl9DTURfQ05GLAorICAgIE1TR19JRF9BVFBfTVRfRE1GX1VSQ19JTkQsCisKKyAgICAvKiBTVEtCUkcgLS0+IEFUUCAqLworICAgIE1TR19JRF9TVEtCUkdfQVRQX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfU1RLQlJHX0FUUF9QT1JUX0FMTE9DX1JFUSwKKyAgICAgICAgTVNHX0lEX1NUS0JSR19BVFBfUE9SVF9GUkVFX1JFUSwKKyAgICBNU0dfSURfU1RLQlJHX0FUUF9SQU5HRV9FTkQsCisKKyAgICAvKiBJUFNFQyAtLT4gQVRQICovCisgICAgTVNHX0lEX0lQU0VDX0FUUF9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0lQU0VDX0FUUF9TUElfQUxMT0NfUkVRLAorICAgICAgICBNU0dfSURfSVBTRUNfQVRQX1NQSV9GUkVFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lQU0VDX0FUUF9NVUxUSV9TUElfRlJFRV9SRVEsCisgICAgTVNHX0lEX0lQU0VDX0FUUF9SQU5HRV9FTkQsCisKKyAgICAvKiBXTEMgLS0+IEFUUCAqLworICAgIE1TR19JRF9XTENfQVRQX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfV0xDX0FUUF9FV0lGSUxPQ0tfSU5ELAorICAgICAgICBNU0dfSURfV0xDX0FUUF9FV0lGSVJTU0lUSFJDRkdfSU5ELAorICAgICAgICBNU0dfSURfV0xDX0FUUF9FSU1TR0VPX0lORCwKKyAgICAgICAgTVNHX0lEX0FUUF9XTENfRVdJRklNQUNfSU5ELAorICAgICAgICBNU0dfSURfV0xDX0FUUF9PRkZMT0FEX0tFRVBfQUxJVkVfSU5ELAorICAgIE1TR19JRF9XTENfQVRQX1JBTkdFX0VORCwKKworICAgIC8qS1BBTFYtPkFUUCovCisgICAgTVNHX0lEX0FUUF9LUEFMVl9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9LUEFMVl9LRUVQQUxJVkVfQ05GLAorICAgICAgICBNU0dfSURfQVRQX0tQQUxWX0NPTk5FQ1RJT05fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfQVRQX0tQQUxWX1JBTkdFX0VORCwKKworI2lmIGRlZmluZWQoX19JUENfQURBUFRFUl9fKQorICAgIC8qIElQQ19BZGFwdGVyIC0tPiBBVFAgKi8KKyAgICBNU0dfSURfSVBDQV9BVFBfUkFOR0VfQkVHSU4sCisgICAgICAgIE1TR19JRF9JUENBX0FUUF9DTURfUkVRLAorICAgICAgICBNU0dfSURfSVBDQV9BVFBfQ01EX1JTUCwKKyAgICAgICAgTVNHX0lEX0lQQ0FfQ1RSTF9BVFBfTE9DS19SU1AsCisgICAgICAgIE1TR19JRF9JUENBX0NUUkxfQVRQX1VOTE9DS19SU1AsCisgICAgTVNHX0lEX0lQQ0FfQVRQX1JBTkdFX0VORCwgIAorI2VuZGlmICAgIAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0FUUF9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8qIF9BVFBfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvYmlwX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9iaXBfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2Q4NDZiCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvYmlwX21zZ2lkLmgKQEAgLTAsMCArMSwyMDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgYmlwX21zZ2lkLmgKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBCSVAgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9CSVBfTVNHSURfSAorI2RlZmluZSBfQklQX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0JJUF9DT0RFX0JFR0lOICkKKy8vIE1PRF9CSVAKKworLy8gTU9EX1NJTV9NR1IKK01TR19JRF9CSVBfU0lNX01HUl9CSVBfQ01EX0lORCwKK01TR19JRF9CSVBfU0lNX01HUl9CSVBfQ01EX0NORiwKK01TR19JRF9CSVBfU0lNX01HUl9UUl9SRVEsIAorTVNHX0lEX0JJUF9TSU1fTUdSX1RSX1JTUCwKK01TR19JRF9CSVBfU0lNX01HUl9FTlZFTE9QRV9SRVEsCitNU0dfSURfQklQX1NJTV9NR1JfRU5WRUxPUEVfUlNQLAorTVNHX0lEX0JJUF9TSU1fTUdSX1NJTV9FUlJPUl9JTkQsCitNU0dfSURfQklQX1NJTV9NR1JfU0lNX0VSUk9SX0NORiwKK01TR19JRF9BVFBfQklQX1NJTV9NR1JfU1RLX1JFUSwvLyBTVEsgY21kCitNU0dfSURfQVRQX0JJUF9TSU1fTUdSX0JJUF9DTkZfSU5ELC8vIEFQIGNvbmZpcm0KK01TR19JRF9BVFBfQklQX1NJTV9NR1JfRUNOQ0ZHX0lORCwgCitNU0dfSURfQVRQX0JJUF9TSU1fTUdSX0JJUF9FTiwgCisKKy8vIE1PRF9DT05OX01HUgorTVNHX0lEX0JJUF9DT05OX01HUl9DUkVBVEVfM0dQUF9DT05ORUNUSU9OX1JFUSwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ1JFQVRFXzNHUFBfQ09OTkVDVElPTl9SU1AsCitNU0dfSURfQklQX0NPTk5fTUdSX0NSRUFURV9XSUZJX0NPTk5FQ1RJT05fUkVRLAorTVNHX0lEX0JJUF9DT05OX01HUl9DUkVBVEVfV0lGSV9DT05ORUNUSU9OX1JTUCwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ0xPU0VfM0dQUF9DT05ORUNUSU9OX1JFUSwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ0xPU0VfM0dQUF9DT05ORUNUSU9OX1JTUCwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ0xPU0VfV0lGSV9DT05ORUNUSU9OX1JFUSwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ0xPU0VfV0lGSV9DT05ORUNUSU9OX1JTUCwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ0hFQ0tfU1RBVFVTX1JFUSwKK01TR19JRF9CSVBfQ09OTl9NR1JfQ0hFQ0tfU1RBVFVTX1JTUCwKK01TR19JRF9CSVBfQ09OTl9NR1JfU0lNX0VSUk9SX1JFUSwKK01TR19JRF9CSVBfQ09OTl9NR1JfU0lNX0VSUk9SX1JTUCwKK01TR19JRF9CSVBfQ09OTl9NR1JfRElTQ09OTkVDVF9JTkQsCitNU0dfSURfQklQX0NPTk5fTUdSX0RJU0NPTk5FQ1RfQ05GLAorLy8gTU9EX0NNRF9IRFIKKworLy8gTU9EX05FVF9NR1IKK01TR19JRF9CSVBfTkVUX01HUl9DUkVBVEVfQ09OTkVDVElPTl9SRVEsCitNU0dfSURfQklQX05FVF9NR1JfQ1JFQVRFX0NPTk5FQ1RJT05fUlNQLAorTVNHX0lEX0JJUF9ORVRfTUdSX0NMT1NFX0NPTk5FQ1RJT05fUkVRLAorTVNHX0lEX0JJUF9ORVRfTUdSX0NMT1NFX0NPTk5FQ1RJT05fUlNQLAorTVNHX0lEX0JJUF9ORVRfTUdSX1BPTExJTkdfREFUQSwKK01TR19JRF9CSVBfTkVUX01HUl9SRUNFSVZFX0RBVEFfSU5ELAorTVNHX0lEX0JJUF9ORVRfTUdSX1JFQ0VJVkVfREFUQV9DTkYsCitNU0dfSURfQklQX05FVF9NR1JfU0VORF9EQVRBX1JFUSwKK01TR19JRF9CSVBfTkVUX01HUl9TRU5EX0RBVEFfUlNQLAorTVNHX0lEX0JJUF9ORVRfTUdSX0NIRUNLX1NUQVRVU19SRVEsCitNU0dfSURfQklQX05FVF9NR1JfQ0hFQ0tfU1RBVFVTX1JTUCwKK01TR19JRF9CSVBfTkVUX01HUl9TSU1fRVJST1JfUkVRLAorTVNHX0lEX0JJUF9ORVRfTUdSX1NJTV9FUlJPUl9SU1AsCitNU0dfSURfQklQX05FVF9NR1JfRElTQ09OTkVDVF9JTkQsCitNU0dfSURfQklQX05FVF9NR1JfRElTQ09OTkVDVF9DTkYsCitNU0dfSURfQklQX05FVF9NR1JfQ0hBTk5FTF9TVEFUVVNfSU5ELAorTVNHX0lEX0JJUF9ORVRfTUdSX0NIQU5ORUxfU1RBVFVTX0NORiwKKworLy8gTU9EX1VUX1RFU1RfQ0FTRQorTVNHX0lEX0JJUF9VVF9URVNUX0NBU0VfTVVMVElQTEVfU0lNX1JFUSwKK01TR19JRF9CSVBfVVRfVEVTVF9DQVNFX01VTFRJUExFX1NJTV9SU1AsCisKKy8vIE1PRF9CSVBfRFNfTUdSCitNU0dfSURfQklQX0RTX01HUl9DUkVBVEVfQ09OTkVDVElPTl9SRVEsCitNU0dfSURfQklQX0RTX01HUl9DUkVBVEVfQ09OTkVDVElPTl9SU1AsCitNU0dfSURfQklQX0RTX01HUl9DTE9TRV9DT05ORUNUSU9OX1JFUSwKK01TR19JRF9CSVBfRFNfTUdSX0NMT1NFX0NPTk5FQ1RJT05fUlNQLAorTVNHX0lEX0JJUF9EU19NR1JfQ1JFQVRFX0NPTk5FQ1RJT05fUkVUUllfUEROLAorTVNHX0lEX0JJUF9EU19NR1JfQ1JFQVRFX0NPTk5FQ1RJT05fUkVUUllfU09DS0VULAorTVNHX0lEX0JJUF9EU19NR1JfU0lNX0VSUk9SX1JFUSwKK01TR19JRF9CSVBfRFNfTUdSX1NJTV9FUlJPUl9SU1AsCisKKy8vIE1PRF9CSVBfQUdFTlQKK01TR19JRF9CSVBfQUdFTlRfU0VORF9BQ0ssCisvLyBBUCBzaWRlIEJJUCBtb2R1bGUKK01TR19JRF9CSVBfQVBfU0lERV9NT0RVTEVfU1RBUlQgPSBNU0dfSURfQklQX0NPREVfQkVHSU4gKyA2MCwKKworLy8gTU9EX0JJUF9XSUZJCitNU0dfSURfQVBfQklQX1dJRklfUVVFUllfV0lGSV9TVEFUVVNfUkVRLAorTVNHX0lEX0FQX0JJUF9XSUZJX1FVRVJZX1dJRklfU1RBVFVTX1JTUCwKK01TR19JRF9BUF9CSVBfV0lGSV9DUkVBVEVfQ09OTkVDVElPTl9SRVEsCitNU0dfSURfQVBfQklQX1dJRklfQ1JFQVRFX0NPTk5FQ1RJT05fUlNQLAorTVNHX0lEX0FQX0JJUF9XSUZJX0NMT1NFX0NPTk5FQ1RJT05fUkVRLAorTVNHX0lEX0FQX0JJUF9XSUZJX0NMT1NFX0NPTk5FQ1RJT05fUlNQLAorTVNHX0lEX0FQX0JJUF9XSUZJX1NFTkRfREFUQV9SRVEsCitNU0dfSURfQVBfQklQX1dJRklfU0VORF9EQVRBX1JTUCwKK01TR19JRF9BUF9CSVBfV0lGSV9SRUNFSVZFX0RBVEFfSU5ELAorTVNHX0lEX0FQX0JJUF9XSUZJX1JFQ0VJVkVfREFUQV9DTkYsCitNU0dfSURfQVBfQklQX1dJRklfRElTQ09OTkVDVF9JTkQsCitNU0dfSURfQVBfQklQX1dJRklfRElTQ09OTkVDVF9DTkYsCitNU0dfSURfQVBfQklQX1dJRklfU0lNX0VSUk9SX1JFUSwKK01TR19JRF9BUF9CSVBfV0lGSV9TSU1fRVJST1JfUlNQLAorTVNHX0lEX0FQX0JJUF9XSUZJX1RJTUVSX0FSUklWQUwsCisKKy8vIE1PRF9CSVBfVUlDQ19TRVJWRVIKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfQ1JFQVRFX0NPTk5FQ1RJT05fUkVRLAorTVNHX0lEX0FQX0JJUF9VSUNDX1NFUlZFUl9DUkVBVEVfQ09OTkVDVElPTl9SU1AsCitNU0dfSURfQVBfQklQX1VJQ0NfU0VSVkVSX0NMT1NFX0NPTk5FQ1RJT05fUkVRLAorTVNHX0lEX0FQX0JJUF9VSUNDX1NFUlZFUl9DTE9TRV9DT05ORUNUSU9OX1JTUCwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfU0VORF9EQVRBX1JFUSwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfU0VORF9EQVRBX1JTUCwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfUkVDRUlWRV9EQVRBX0lORCwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfUkVDRUlWRV9EQVRBX0NORiwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfU0lNX0VSUk9SX1JFUSwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfU0lNX0VSUk9SX1JTUCwKK01TR19JRF9BUF9CSVBfVUlDQ19TRVJWRVJfQ0hBTkdFX0xJTktfSU5ELAorTVNHX0lEX0FQX0JJUF9VSUNDX1NFUlZFUl9DSEFOR0VfTElOS19DTkYsCitNU0dfSURfQVBfQklQX1VJQ0NfU0VSVkVSX1RJTUVSX0FSUklWQUwsCisKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9CSVBfQ09ERV9UQUlMICkKKworI2VuZGlmICAvKiBfQklQX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2NjX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0YjRhN2QKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jY19tc2dpZC5oCkBAIC0wLDAgKzEsMTc2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGNjLnNhcAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgQ0MgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKgorKiAgVGhpcyBwcm9kdWN0IGhhcyBiZWVuIGRldmVsb3BlZCB1c2luZyBhIHByb3RvY29sIHN0YWNrCisqICBkZXZlbG9wZWQgYnkgU2Fza2VuIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIExpbWl0ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgQ0NfTVNHSURfSAorI2RlZmluZSBDQ19NU0dJRF9ICisKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENDX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0qLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQ0NfQ09ERV9CRUdJTiApCisJTVNHX0lEX01OQ0NfU0VUVVBfUkVRID0gTVNHX0lEX0NDX0NPREVfQkVHSU4sCisJTVNHX0lEX01OQ0NfU0VUVVBfUkVTLAorCU1TR19JRF9NTkNDX1JFSl9SRVEsCisJTVNHX0lEX01OQ0NfQ0FMTF9DT05GX1JFUSwKKwlNU0dfSURfTU5DQ19BTEVSVF9SRVEsCisJTVNHX0lEX01OQ0NfTk9USUZZX1JFUSwKKwlNU0dfSURfTU5DQ19ESVNDX1JFUSwKKwlNU0dfSURfTU5DQ19SRUxfUkVRLAorCU1TR19JRF9NTkNDX1JFTF9DT01QX1JFUSwKKwlNU0dfSURfTU5DQ19GQUNJTElUWV9SRVEsCisJTVNHX0lEX01OQ0NfU1RBUlRfRFRNRl9SRVEsCisJTVNHX0lEX01OQ0NfU1RPUF9EVE1GX1JFUSwKKwlNU0dfSURfTU5DQ19NT0RJRllfUkVRLAorCU1TR19JRF9NTkNDX01PRElGWV9SRVMsCisJTVNHX0lEX01OQ0NfSE9MRF9SRVEsCisJTVNHX0lEX01OQ0NfUkVUUklFVkVfUkVRLAorCU1TR19JRF9NTkNDX0FCT1JUX0NBTExfUkVRLAorCU1TR19JRF9NTkNDX1VTRVJfSU5GT19SRVEsCisJTVNHX0lEX01OQ0NfQ0NCU19FU1RfUkVTLAorCU1TR19JRF9NTkNDX0NDQlNfU0VUVVBfUkVRLAorCU1TR19JRF9NTkNDX0NDQlNfUkVKX1JFUSwKKwlNU0dfSURfTU5DQ19BQ01fVVBEQVRFX1JFUSwKKwlNU0dfSURfTU5DQ19TUlZDQ19UUkFOU0ZFUl9SRVEsCisJTVNHX0lEX01NQ0NfREFUQV9JTkQsCisJTVNHX0lEX01NQ0NfRVNUX0NORiwKKwlNU0dfSURfTU1DQ19FU1RfUkVKLAorCU1TR19JRF9NTUNDX0VTVF9JTlRSLAorCU1TR19JRF9NTUNDX0VTVF9JTkQsCisJTVNHX0lEX01NQ0NfUkVMX0lORCwKKwlNU0dfSURfTU1DQ19FUlJfSU5ELAorCU1TR19JRF9NTUNDX1BST01QVF9JTkQsCisJTVNHX0lEX01NQ0NfUkVFU1RfQ05GLAorCU1TR19JRF9NTUNDX1JFRVNUX1NUQVJUX0lORCwKKwlNU0dfSURfTU1DQ19TWU5DX0lORCwKKwlNU0dfSURfTU1DQ19SQVRfSU5ELAorCU1TR19JRF9NTUNDX1BMTU5fSU5GT19JTkQsCisJTVNHX0lEX01NQ0NfU1JWQ0NfSE9fSU5ELAorCU1TR19JRF9NTUNDX1NSVkNDX0VTVF9DTkYsCisJTVNHX0lEX01NQ0NfU1JWQ0NfRVNUX1JFSiwKKwlNU0dfSURfQ0NfVElNRVJfRVhQSVJZLAorCU1TR19JRF9DQ19DT0RFX0VORCA9ICBNU0dfSURfQ0NfVElNRVJfRVhQSVJZLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9DQ19DT0RFX1RBSUwgKQorCS8qLS0tLS0tLS0tLS0tLS0tLS0tLSBDQ19NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjZW5kaWYgIC8vQ0NfTVNHSURfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvY2VydF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvY2VydF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzNmU2MzUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jZXJ0X21zZ2lkLmgKQEAgLTAsMCArMSwxNDMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE5CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgY2VydF9tc2dpZC5oCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgQ2VydGlmaWNhdGUgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfQ0VSVF9NU0dJRF9ICisjZGVmaW5lIF9DRVJUX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0NFUlRfQ09ERV9CRUdJTiApCisKKy8vIE1PRF9DRVJUCitNU0dfSURfQ0VSVF9DRVJUTE9BRF9JTklUX1JFUSwKK01TR19JRF9DRVJUX0NFUlRMT0FEX0lOSVRfQ05GLAorCisvLyBNT0RfTjNTQU0KK01TR19JRF9OM1NBTV9DRVJUX0NBX0NFUlRfR0VUX1JFUSwKK01TR19JRF9OM1NBTV9DRVJUX0NBX0NFUlRfR0VUX0NORiwKKworTVNHX0lEX04zU0FNX0NFUlRfQ0VSVF9SRUFEWV9JTkQsCitNU0dfSURfTjNTQU1fQ0VSVF9DRVJUX1JFQURZX0NORiwKKworTVNHX0lEX04zU0FNX0NFUlRfQ0VSVF9IQVNIX0dFVF9SRVEsCitNU0dfSURfTjNTQU1fQ0VSVF9DRVJUX0hBU0hfR0VUX0NORiwKKworTVNHX0lEX04zU0FNX0NFUlRfQ0VSVF9QQVRIX1ZBTElEQVRFX1JFUSwKK01TR19JRF9OM1NBTV9DRVJUX0NFUlRfUEFUSF9WQUxJREFURV9DTkYsCisKKy8vIE1PRF9UTFMKK01TR19JRF9UTFNfQ0VSVF9DRVJUX1JFQURZX0lORCwKK01TR19JRF9UTFNfQ0VSVF9DRVJUX1JFQURZX0NORiwKKworTVNHX0lEX1RMU19DRVJUX0NFUlRfUEFUSF9WQUxJREFURV9SRVEsCitNU0dfSURfVExTX0NFUlRfQ0VSVF9QQVRIX1ZBTElEQVRFX0NORiwKKworLy8gT0NTUAorLy8gVXNlciAtLT4gT0NTUCwgZG8gT0NTUCBxdWVyeSBhY3Rpb24uIEl0IHdpbGwgdHJpZ2dlcgorLy8gSFRUUCBjb25uZWN0aW9uIGZvciBnZXQgT0NTUCByZXNwb25zZQorTVNHX0lEX09DU1BfUVVFUllfUkVRLAorLy8gT0NTUCAtLT4gVXNlciwgcmV0dXJuIE9DU1AgcmVzcG9uc2UgcmVzdWx0IHRvIFVzZXIKK01TR19JRF9PQ1NQX1FVRVJZX0NORiwKKworLy8gVXNlciAtLT4gT0NTUCwgY29tcG9zZSBPQ1NQIHJlcXVzZXQgbWVzc2FnZS4KK01TR19JRF9PQ1NQX01TR19DT01QT1NFX1JFUSwKKy8vIE9DU1AgLS0+IFVzZXIsIHJldHVybiBERVItZW5jb2RlIE9DU1AgcmVxdWVzdCBtZXNzYWdlCitNU0dfSURfT0NTUF9NU0dfQ09NUE9TRV9DTkYsCisKKy8vIFVzZXIgLS0+IE9DU1AsIHZlcmlmeSBvbmUgT0NTUCByZXNwb25zZSBkYXRhCitNU0dfSURfT0NTUF9WRVJJRllfUkVTUE9OU0VfUkVRLAorLy8gT0NTUCAtLT4gVXNlciwgcmV0dXJuIHZlcmlmaWVkIHJlc3VsdAorTVNHX0lEX09DU1BfVkVSSUZZX1JFU1BPTlNFX0NORiwKKworLy8gT0NTUCAtLT4gQ0VSVCwgY2hlY2sgaXNzdWVyIGNlcnQgZGF0YQorTVNHX0lEX09DU1BfQ0VSVF9HRVRfSVNTVUVSX1JFUSwKKworLy8gQ0VSVCAtLS0+IE9DU1AgcmV0dXJuIGlzc3VlciBjZXJ0IGRhdGEKK01TR19JRF9PQ1NQX0NFUlRfR0VUX0lTU1VFUl9DTkYsCisKKy8vIFVTRVIgLS0+IENSTCBjaGVjayByZXZvY2F0aW9uIGJ5IENSTAorTVNHX0lEX0NSTF9RVUVSWV9SRVEsCisKKy8vIENSTCAtLT4gVVNFUiByZXR1cm4gcmV2b2NhdGlvbiByZXN1bHQKK01TR19JRF9DUkxfUVVFUllfQ05GLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0NFUlRfQ09ERV9UQUlMICkKKworI2VuZGlmICAvKiBfQ0VSVF9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jaXNzX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jaXNzX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNjZjk5NwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2Npc3NfbXNnaWQuaApAQCAtMCwwICsxLDE0MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBjYy5zYXAKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTUFVSQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIENJU1MgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyoKKyogIFRoaXMgcHJvZHVjdCBoYXMgYmVlbiBkZXZlbG9wZWQgdXNpbmcgYSBwcm90b2NvbCBzdGFjaworKiAgZGV2ZWxvcGVkIGJ5IFNhc2tlbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBMaW1pdGVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIENJU1NfTVNHSURfSAorI2RlZmluZSBDSVNTX01TR0lEX0gKKworCS8qLS0tLS0tLS0tLS0tLS0tLS0gQ0lTU19NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9DSVNTX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9NTlNTX0JFR0lOX1JFUSA9IE1TR19JRF9DSVNTX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX01OU1NfRkFDX1JFUSwKKyAgICBNU0dfSURfTU5TU19FTkRfUkVRLAorICAgIE1TR19JRF9NTVNTX0RBVEFfSU5ELAorICAgIE1TR19JRF9NTVNTX0VTVF9DTkYsCisgICAgTVNHX0lEX01NU1NfRVNUX1JFSiwKKyAgICBNU0dfSURfTU1TU19FU1RfSU5UUiwKKyAgICBNU0dfSURfTU1TU19FU1RfSU5ELAorICAgIE1TR19JRF9NTVNTX1JFTF9JTkQsCisgICAgTVNHX0lEX01NU1NfRVJSX0lORCwKKyAgICBNU0dfSURfTU1TU19SQVRfSU5ELAorICAgIE1TR19JRF9DSVNTX0VWQUxfREFUQV9DTkYsCisgICAgTVNHX0lEX0NJU1NfRVZBTF9EQVRBX0lORCwKKyAgICBNU0dfSURfQ0lTU19USU1FUl9FWFBJUlksCisgICAgTVNHX0lEX0NJU1NfVVRfVkVSSUZZX1NUUklORywKKyAgICBNU0dfSURfQ0lTU19MNENfRUNDX0VORF9JTkQsCisgICAgTVNHX0lEX0NJU1NfQ09ERV9FTkQgPSBNU0dfSURfQ0lTU19MNENfRUNDX0VORF9JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0NJU1NfQ09ERV9UQUlMICkKKwkvKi0tLS0tLS0tLS0tLS0tLS0tIENJU1NfTVNHX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2VuZGlmIC8vQ0lTU19NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jbDF0c3RfbDFwc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvY2wxdHN0X2wxcHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzM0ZTgyCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvY2wxdHN0X2wxcHNfbXNnaWQuaApAQCAtMCwwICsxLDE0NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGNsMXRzdF9tc2dpZC5oCisgKgorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA5IDE4IDIwMjAgc2FsbHkudGFvCisgKiBbTU9MWTAwNTA0NjAwXSBbOTddW1RJVEFOXSBJUENBIEVNOiBDMksgUkZQRCBmZWF0dXJlCisgKiAJCisgKiAJcGF0Y2ggYmFjayBmcm9tIFRDMTAuU1AuCisgKgorICogMDkgMTUgMjAyMCBzYWxseS50YW8KKyAqIFtNT0xZMDA1MDQ2MDBdIFs5N11bVElUQU5dIElQQ0EgRU06IEMySyBSRlBEIGZlYXR1cmUKKyAqIAkKKyAqIAlwYXRjaCBiYWNrIGZyb20gTlIxNS5SMy5UQzEwLlNQLgorICoKKyAqIDA5IDE5IDIwMTkgZWxvbi56aGFuZworICogW01PTFkwMDQzOTMyMF0gW0NPREUgU1lOQ11bVk1PTFld19TTyczsz9/H6b/2z8KjrMjnus678cihtbHHsMq508O1xMrHxMS4+czsz98KKyAqIAkKKyAqIAkuCisgKgorICogMDUgMDYgMjAxOSBlbG9uLnpoYW5nCisgKiBbTU9MWTAwMzQzNDk5XSChvtDCuabE3NDox/Ohv9fUuMnIxcmow+iy4srUCisgKiAJCisgKiAJLgorICoKKyAqIDAzIDIxIDIwMTggc2FsbHkudGFvCisgKiBbTU9MWTAwMzEzNTkxXSC499bGyr3QxcHuz8LM4bjf1+6087eiyeS5psLK0OjH8worICogCQorICogCUMyayBEbyBNYXggVHhQb3dlciBBZGp1c3QobWVyZ2UgZnJvbSBSMykKKyAqCisgKiAwNSAxMCAyMDE3IGVsb24uemhhbmcKKyAqIFtNT0xZMDAyNDUwMjVdIFtNVDY3NjNdW0MyS11bRVZET111cGRhdGUgUkYgZGVzZW5zZQorICoKKyAqIDAzIDI4IDIwMTcgc2FsbHkudGFvCisgKiBbTU9MWTAwMjI5Njk3XSBbOTMtQklBTkNPXVtDMktdW0VWRE9dRVZMMSBFTSBEZXNpZ24KKyAqIAkKKyAqIAllbSBkZXNpZ24gcGhhc2UyCisgKgorICogMDMgMjQgMjAxNyBsaW4uY2FvCisgKiBbTU9MWTAwMjI5Nzc0XSBbNjI5M11DMksgRkhDIHJlcG9ydCBGYWlsIFtNRUlEL1VCSU4vRkhDIFJYIG9uIGFoZWFkL0Rpc2FibGUgc29ydCBkb25lIGluIE1FVEEgbW9kZSBdCisgKgorICogMDIgMTUgMjAxNyBzYWxseS50YW8KKyAqIFtNT0xZMDAyMjk2OTddIFs5My1CSUFOQ09dW0MyS11bRVZET11FVkwxIEVNIERlc2lnbgorICogCQorICogCUFkZCBFVkwxIEVNIENvbXBvbmVudHMKKyAqCisgKiAwMSAwNSAyMDE3IHN1ZS56aG9uZworICogW01PTFkwMDIxODQwOV0gWzYyOTNdW0MyS11TeW5jIEMySyBjb2RlIHRvIFVNT0xZQSBUUlVOSyBmcm9tIEMySyBDQnIgKFcxNzAxKQorICogbWVyZ2UgeHh4X21zZ2lkLmgKKyAqCisgKiAxMiAxNSAyMDE2IHN1ZS56aG9uZworICogW01PTFkwMDIxNzI3MF0gWzYyOTNdW0MyS11TeW5jIEMySyBjb2RlIHRvIFVNT0xZQSBUUlVOSyBmcm9tIEMySyBDQnIgKFc1MSkKKyAqIGRobCBkYXRhYmFzZQorICoKKyAgKiAuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0NMMVRTVF9MMVBTX01TR0lEX0gKKyNkZWZpbmUgX0NMMVRTVF9MMVBTX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0NMMVRTVF9MMVBTX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9DTDFUU1RfVkFMX1JYX1RFU1RfTU9ERV9NU0cgPSBNU0dfSURfQ0wxVFNUX0wxUFNfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfQ0wxVFNUX1ZBTF9SWFRYX1BXUl9ERVRFQ1RfTVNHLAorI2lmZGVmIF9fUkZfU0NBTl9GT1JfREVTRU5TRV9URVNUX18gIAorICAgIE1TR19JRF9DTDFUU1RfVkFMX1JYX1NDQU5fTVNHLAorI2VuZGlmCisgICAgTVNHX0lEX0ZIQ19DTDFUU1RfUkVQT1JUX01TRywKKyNpZiAoZGVmaW5lZChNVEtfUExUX09OX1BDX0lUKSl8fChkZWZpbmVkKE1US19DMktfTDFfVFNUKSkgICAgCisgICAgTVNHX0lEX1NIX1BIWVVUX1JFUE9SVF9NU0csCisjZW5kaWYgICAgCisKKyAgICBNU0dfSURfQ0wxVFNUX05TVF9QT1dFUl9VUF9DTkZfTVNHICwgICAKKyAgICBNU0dfSURfQ0wxVFNUX05TVF9UQ0hfRkVSX0NGR19DTkZfTVNHLCAgICAKKyAgICBNU0dfSURfQ0wxVFNUX05TVF9SWF9QV1JfTUVBU19DRkdfQ05GX01TRywgICAgCisgICAgTVNHX0lEX0NMMVRTVF9OU1RfVFhfUFdSX01FQVNfQ0ZHX0NORl9NU0csICAgIAorICAgIE1TR19JRF9DTDFUU1RfTlNUX0xJU1RfU0VUX0NGR19DTkZfTVNHLCAKKyAgICAKKyAgICBNU0dfSURfQ0wxVFNUX1NFVF9NT0JJTEVfSURfUlNQX01TRywKKyAgICBNU0dfSURfQ0wxVFNUX0dFVF9NT0JJTEVfSURfUlNQX01TRywKKyAgICBNU0dfSURfQ0wxVFNUX1ZBTF9HRVRfQU5UX0lORk9fUkVRX01TRywKKyAgICBNU0dfSURfQ0wxVFNUX1RBU19NQUlOX1BBVEhfU1dJVENIX0lORk9fTVNHLAorI2lmZGVmIE1US19ERVZfRU5HSU5FRVJfTU9ERQorICAgIE1TR19JRF9DTDFUU1RfUkNQX1RYX1RSQU5TTUlUX0NUUkxfTVNHLAorI2VuZGlmIAorCisjaWZkZWYgX19FTV9NQVhfVFhfUE9XRVJfU1VQUE9SVF9fCisgICAgTVNHX0lEX0NMMVRTVF9WQUxfTUFYX1RYX1BXUl9TRVRfTVNHLAorI2VuZGlmCisKKyNpZmRlZiBfX0VWTDFfRU1fTU9ERV9fCisgICAgTVNHX0lEX0VNX0VWTDFfR0VORVJBTF9SRVBPUlRfTVNHLAorICAgIE1TR19JRF9FTV9FVkwxX1RJTUlOR19UUkFDS19TVEFUVVNfUkVQT1JUX01TRywKKyAgICBNU0dfSURfRU1fRVZMMV9UWEFHQ19QT1dFUl9SRVBPUlRfTVNHLAorI2lmZGVmIF9fVEMxMF9JUENfQ0RNQV9TVVBQT1JUX18KKyAgICBNU0dfSURfRU1fRVZMMV9UWEFHQ19SRlBEX0FCTk9STUFMX1JFUE9SVF9NU0csCisjZW5kaWYKKyAgICBNU0dfSURfRU1fRVZMMV9DU01fSU5GT19SRVBPUlRfTVNHLAorICAgIE1TR19JRF9FTV9FVkwxX1JYQUdDX1JFUE9SVF9NU0csCisgICAgTVNHX0lEX0VNX0VWTDFfQUZDX1JFUE9SVF9NU0csCisgICAgTVNHX0lEX0VNX0VWTDFfQUNDX0RBVEFfUkFURV9SRVBPUlRfTVNHLAorICAgIE1TR19JRF9FTV9FVkwxX1RSRkZJQ19SUklfVkFMVUVfUkVQT1JUX01TRywKKyNlbmRpZgorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0NMMVRTVF9MMVBTX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBfQ0wxVFNUX0wxUFNfTVNHSURfSCAqLworCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jbDF0c3RfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2NsMXRzdF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxYWRiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jbDF0c3RfbXNnaWQuaApAQCAtMCwwICsxLDYzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgY2wxdHN0X21zZ2lkLmgKKyAqCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDEgMDUgMjAxNyBzdWUuemhvbmcKKyAqIFtNT0xZMDAyMTg0MDldIFs2MjkzXVtDMktdU3luYyBDMksgY29kZSB0byBVTU9MWUEgVFJVTksgZnJvbSBDMksgQ0JyIChXMTcwMSkKKyAqIG1lcmdlIHh4eF9tc2dpZC5oCisgKgorICAqIC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfQ0wxVFNUX01TR0lEX0gKKyNkZWZpbmUgX0NMMVRTVF9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9DTDFUU1RfQ09ERV9CRUdJTiApCisgICAgTVNHX0lEX0NMMVRTVF9UT19ESEwgPSBNU0dfSURfQ0wxVFNUX0NPREVfQkVHSU4sCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfQ0wxVFNUX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBfQ0wxVFNUX01TR0lEX0ggKi8KKworCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jc3NfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2Nzc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NDU5YzUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9jc3NfbXNnaWQuaApAQCAtMCwwICsxLDI1MyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgRklMRSBOQU1FOiAgY3NzX21zZ2lkLmgKKworICBERVNDUklQVElPTjoKKworICAgIFRoaXMgZmlsZSBjb250YWlucyB0aGUgZGVmZW5pdGlvbnMgb2YgYWxsIHRoZSBDU1MgbXNnIGlkJ3MuCisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9DU1NfTVNHSURfSF8KKyNkZWZpbmUgX0NTU19NU0dJRF9IXworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmNsdWRlIEZpbGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX0NTU19DT0RFX0JFR0lOKQorCisvKiBDU1MgU2lnbmFscyBkZWZpbmF0aW9uICovCisgICAgTVNHX0lEX0NTU18xWF9TRUxFQ1RfUkVRX01TRyA9IE1TR19JRF9DU1NfQ09ERV9CRUdJTiwgIC8qIDAgKi8KKyAgICBNU0dfSURfQ1NTXzFYX1ZBTElEQVRFX1JFUV9NU0csCisgICAgTVNHX0lEX0NTU18xWF9PT1NBX1dBS0VVUF9JTkRfTVNHLAorICAgIE1TR19JRF9DU1NfMVhfQUNRX0FCT1JUX1JTUF9NU0csCisgICAgTVNHX0lEX0NTU18xWERPX0hBTkRPRkZfSU5EX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX1JFR19BQ0NFUFRFRF9NU0csCisgICAgTVNHX0lEX0NTU18xWF9FOTExTU9ERV9TVEFSVF9NU0csCisgICAgTVNHX0lEX0NTU18xWF9FOTExTU9ERV9TVE9QX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX05BTV9VUERBVEVEX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX1VQREFURV9BQ1RJVkVfTkFNX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX1NFVF9SRVRVUk5fQ0hBTk5FTF9NU0csCisgICAgTVNHX0lEX0NTU18xWF9TRVRfQ0FMTF9QRU5ESU5HX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX1NZU19QQVJNU19VUERBVEVfTVNHLAorICAgIE1TR19JRF9DU1NfMVhfUkVQT1JUX0NQX0VWRU5UX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX0NMRUFSX01SVV9NU0csCisgICAgTVNHX0lEX0NTU18xWF9TQVZFX0xBU1RfU1lTX0lOX01SVV9NU0csCisgICAgTVNHX0lEX0NTU18xWF9TQVZFX0NIQU5ORUxfTVNHLAorICAgIE1TR19JRF9DU1NfMVhfTVBTU19USU1FT1VUX01TRywKKyAgICBNU0dfSURfQ1NTX0RPX1NFTEVDVF9SRVFfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fVkFMSURBVEVfUkVRX01TRywKKyAgICBNU0dfSURfQ1NTX0RPX1JFRElSRUNUX1JFUV9NU0csCisgICAgTVNHX0lEX0NTU19ET19PT1NBX1dBS0VVUF9JTkRfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fQ09OTl9TVEFSVF9JTkRfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fQ09OTl9SRUxFQVNFX0lORF9NU0csCisgICAgTVNHX0lEX0NTU19ET19BQ1FfQUJPUlRfUlNQX01TRywKKyAgICBNU0dfSURfQ1NTX0RPMVhfSEFORE9GRl9JTkRfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fTVBTU19USU1FT1VUX01TRywKKyAgICBNU0dfSURfQ1NTX0RPX1JFRElSRUNUX0NIQU5ORUxfTElTVF9NU0csCisgICAgTVNHX0lEX0NTU19ET19OVFdLX0FDUURfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fQ0hBTl9DSEFOR0VEX0lORF9NU0csCisgICAgTVNHX0lEX0NTU19ET19TRVNTSU9OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX0NTU19ET19TRVNTSU9OX0NMT1NFRF9NU0csCisgICAgTVNHX0lEX0NTU19ET19DTEVBUl9NUlVfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fUkVQT1JUX0NQX0VWRU5UX01TRywKKyAgICBNU0dfSURfQ1NTX0NQX1BPV0VSX0NUUkxfTVNHLAorICAgIE1TR19JRF9DU1NfUEVSSU9ESUNBTF9TRUFSQ0hfQ1lDTEVfU0VUX01TRywKKyAgICBNU0dfSURfQ1NTX0RPX0RFRkFVTFRfQkFORF9TRVRfTVNHLAorICAgIE1TR19JRF9DU1NfRE9fQUNNX0FQRVJTSVNfSU5EX01TRywKKyAgICBNU0dfSURfQ1NTX0RPX0FVVEhfRkFJTF9JTkQsCisgICAgTVNHX0lEX0NTU19VSU1fR0VUX1BSTF9SU1BfTVNHLAorICAgIE1TR19JRF9DU1NfVUlNX1NUQVRVU19OT1RJRllfTVNHLAorICAgIE1TR19JRF9DU1NfVUlNX0dFVF9OQU1fREFUQV9NU0csCisKKyAgICBNU0dfSURfQ1NTX1NWQ19TVEFUVVNfUkVRX01TRyA9IDQzK01TR19JRF9DU1NfQ09ERV9CRUdJTiwgICAgICAgIC8qIDQzICovCisgICAgTVNHX0lEX0NTU19GT1JDRV9ET1NDQU5fUkVRX01TRywKKyAgICBNU0dfSURfQ1NTX0NMRUFSX01SVV9NU0csCisgICAgTVNHX0lEX0NTU19QUkxfVVBEQVRFRF9NU0csCisgICAgTVNHX0lEX0NTU19NTVNTX0ZJTEVfVVBEQVRFRF9NU0csCisgICAgTVNHX0lEX0NTU19URVNUX01BTlVBTF9CQU5EX0NITkxfTVNHLAorCisgICAgTVNHX0lEX0NTU19NQVJLX0NVUlJFTlRfMVhfU1lTVEVNX0FTX05FR0FUSVZFX01TRywKKyAgICBNU0dfSURfQ1NTXzFYX1JFRElSX0lORF9NU0csCisgICAgTVNHX0lEX0NTU18xWF9PVkVSSEVBRF9DVVJSRU5UX01TRywKKyAgICBNU0dfSURfQ1NTX1RJTUVSX0VYUElSRURfTVNHLAorICAgIE1TR19JRF9DU1NfVVBEQVRFX1NZU19TRUxFQ1RfUlNQX01TRywKKyAgICBNU0dfSURfSVJBVF9MMURfVFhfUFdSX1JTUCwKKworICAgIE1TR19JRF9DU1NfRE9fQUNDRVNTX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0NTU19ET19FUlJfSU5ELAorICAgIE1TR19JRF9DU1NfREFUQV9UQ0hfU0VUVVBfU1RBVFVTX01TRywKKyAgICBNU0dfSURfQ1NTX1BTV18xWF9SRUdfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfQ1NTX1BTV18xWF9ET19PVkVSTEFQX0lORCwKKyAgICBNU0dfSURfQ1NTX0hMUF9TRVNTX1ZFUklGX0ZBSUxfSU5ELAorICAgIE1TR19JRF9DU1NfMVhfVVBEQVRFX0xBU1RfU0FWRURfRUNJT19SWFBXUl9NU0csCisgICAgTVNHX0lEX0NTU19EQk1fSU5JVF9OVlJBTV9UT19ERUZBVUxUX01TRywKKyAgICBNU0dfSURfQ1NTX1NFVF9QQVJNX01TRywKKyAgICBNU0dfSURfQ1NTX0dFVF9QQVJNX01TRywKKyAgICBNU0dfSURfQ1NTX0hMUF9ORVRXT1JLX0NPTk5fUlNQLAorICAgIE1TR19JRF9DU1NfSExQX0VQU19BQ1RJVkFURV9SU1AsCisgICAgTVNHX0lEX0NTU19ITFBfTkVUV09SS19SRUxfUlNQLAorICAgIE1TR19JRF9DU1NfSExQX05FVFdLX1JFTF9JTkQsCisgICAgTVNHX0lEX0NTU19ITFBfRVBTX0JFQVJFUl9TRVRVUF9SU1AsCisgICAgTVNHX0lEX0NTU19ITFBfRVBTX0JFQVJFUl9ESVNDT05OX1JTUCwKKyAgICBNU0dfSURfQ1NTX0hMUF9FUFNfQkVBUkVSX0RJU0NPTk5fSU5ELAorICAgIE1TR19JRF9DU1NfSExQX0VQU19CRUFSRVJfU0VUVVBfSU5ELAorICAgIE1TR19JRF9DU1NfSExQX0VQU19ERUZBVUxUX0JFQVJFUl9ESVNDT05OX0lORCwKKyAgICBNU0dfSURfQ1NTX0hMUF9QUFBfT1BFTl9SRVFfUkNWRF9JTkQsCisgICAgTVNHX0lEX0NTU19WQUxfUFBQX0NPTk5fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfQ1NTX1ZBTF9EQVRBX1NUQVRFX0lORCwKKyAgICBNU0dfSURfSVJBVF9PTVBfUkFUX0lORk9fSU5ELAorICAgIE1TR19JRF9JUkFUX09NUF9NQ0NfUlNQLAorICAgIE1TR19JRF9JUkFUX09NUF9NQ0NfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfSVJBVF9SQ1BfVFhfUFdSX1JTUCwKKyAgICBNU0dfSURfSVJBVF9QU1dfUkFUX0lORk9fSU5ELAorICAgIE1TR19JRF9JUkFUX1BTV19NQ0NfUlNQLAorICAgIE1TR19JRF9JUkFUX1BTV19NQ0NfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfSVJBVF9QU1dfQ1VSX1NZU19XRUFLX0lORCwKKyAgICBNU0dfSURfSVJBVF9QU1dfQ1VSX1NZU19NRUFTX1JTUCwKKyAgICBNU0dfSURfSVJBVF9PTVBfQ0VMTElEX0lORCwKKyAgICBNU0dfSURfSVJBVF9QU1dfQ0VMTElEX0lORCwKKyAgICBNU0dfSURfQ1NTX0lSQVRfRVZFTlRfTVNHLAorCisgICAgTVNHX0lEX0lSQVRVVF9DU1NfQ09ORklHVVJFX1JFUSwKKyAgICAvKiBJUkFUTSB0byBDU1MuICovCisgICAgTVNHX0lEX0NTU19JUkFUTV9XQUtFVVBfRk9SX0lSQVRfTUVBU19JTkQsCisgICAgTVNHX0lEX0NTU19JUkFUTV9UT19MVEVfTUVBU19DVFJMX0NORiwKKyAgICBNU0dfSURfQ1NTX0lSQVRNX1RPX0xURV9SRVNFTF9JTkQsCisgICAgTVNHX0lEX0NTU19JUkFUTV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfQ1NTX0lSQVRNX1ZJUlRVQUxfU1VTUEVORF9DTkYsCisgICAgTVNHX0lEX0NTU19JUkFUTV9QTE1OX0xJU1RfVVBEQVRFX1JTUCwKKyAgICBNU0dfSURfQ1NTX0lSQVRNX1NFVF9SQVRfQ05GLAorICAgIC8qSURQIHRvIENTUyovCisgICAgTVNHX0lEX0NTU19JRFBfUlNWQVNfVklSVFVBTF9TVVNQRU5EX0NORl9NU0csCisgICAgLypJTlNQIHRvIENTUyovCisgICAgTVNHX0lEX0NTU19JTlNQX1JTVkFTX1NVU1BFTkRfQ09NUF9NU0csCisgICAgTVNHX0lEX0NTU19JTlNQX0RFRVBfU0xFRVBfQ05GX01TRywKKyAgICAvKiBQU1cgdG8gQ1NTICovCisgICAgTVNHX0lEX0NTU19QU1dfUlNWQVNfU1VTUEVORF9SRVFfTVNHLAorICAgIE1TR19JRF9DU1NfUFNXX1JTVkFTX1JFU1VNRV9SRVFfTVNHLAorICAgIE1TR19JRF9DU1NfUFNXX1JTVkFTX0RPX1ZSVExfU1VTUF9SRVFfTVNHLAorICAgIE1TR19JRF9DU1NfUFNXX1JTVkFTX0RPX1JFU1VNRV9SRVFfTVNHLAorICAgIE1TR19JRF9DU1NfUFNXX1JTVkFTX1ZSVExfUkVTVU1FX1JFUV9NU0csCisgICAgTVNHX0lEX0NTU19QU1dfUlNWQVNfRVZFTlRfUkVQT1JUX01TRywKKyAgICBNU0dfSURfSVJBVF9DU1NfUFNXX1JTVkFTX0NTX09DQ1VQWV9JTkQsCisgICAgTVNHX0lEX0NTU19QU1dfUlNWQVNfQ1NfU0VSVl9TVEFSVF9JTkQsCisgICAgTVNHX0lEX0NTU19QU1dfUlNWQVNfQ1NfU0VSVl9GSU5JU0hfSU5ELAorICAgIE1TR19JRF9DU1NfUFNXX09PU0FfU0xFRVBfQ05GX01TRywKKworICAgIE1TR19JRF9DU1NfSVJBVE1fUEFSQU1fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfQ1NTX0lSQVRNX1BPV0VSX0NUUkxfQ05GLAorCisgICAgTVNHX0lEX0NTU19WQUxfTDJDX1JFU0VMX1JFUSwKKyAgICBNU0dfSURfQ1NTX1ZBTF9MMkNfUkVESVJFQ1RfUkVRLAorICAgIE1TR19JRF9DU1NfVkFMX0wyQ19DTVBfUkVRLAorICAgIE1TR19JRF9DU1NfVkFMX0MyTF9SRVNFTF9SU1AsCisgICAgTVNHX0lEX0NTU19WQUxfREFUQV9ERUFDVElWQVRFX1JTUCwKKyAgICBNU0dfSURfQ1NTX1ZBTF9JUkFUX1BPV0VSX0NUUkxfUkVRLAorICAgIE1TR19JRF9DU1NfVkFMX0FUVEFDSF9TVEFURV9JTkRfTVNHLAorICAgIE1TR19JRF9DU1NfVkFMX0VMRVZBVE9SX01PREVfSU5EX01TRywKKyAgICBNU0dfSURfQ1NTX1ZBTF9TSU1fSU5GT19DSEFOR0VEX0lORF9NU0csCisgICAgTVNHX0lEX0NTU19WQUxfREVFUF9TTEVFUF9NT0RFX1JFUV9NU0csCisgICAgTVNHX0lEX0NTU19WQUxfTFRFX0RJU0FCTEVEX1JFUV9NU0csCisgICAgTVNHX0lEX0NTU19WQUxfSVJBVF9QT1dFUl9DVFJMX1VUX1JFUSwKKyAgICBNU0dfSURfQ1NTX0NMQ19NQUpPUl9PQ0NVUFlfTExBX1JFUSwKKyAgICBNU0dfSURfQ1NTX0NMQ19SRUxFQVNFX0xMQV9SRVEsCisgICAgTVNHX0lEX0NTU19WQUxfVUlNX1BSTF9SRUFEX1JFUSwKKyAgICAKKyAgICAvKiBDMktfTVJTX1NBUCAqLworICAgIE1TR19JRF9NUlNfQ0FTX0xPV0VSX0xBWUVSX0FWQUlMQUJJTElUWV9VUERBVEVfSU5ELAorICAgIC8qIEdNU1NfQ1NTX1NBUCAqLworICAgIC8vTVNHX0lEX0dNU1NfQ1NTX01DQ19TRUFSQ0hfUkVRICAgICAgICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1NZU19BQ1FVSVJFX1JFUSAgICAgICAgICAsCisgICAvLyBNU0dfSURfR01TU19DU1NfQ1NfUkVHX1JFUSAgICAgICAgICAgICAgICwKKyAgICAvL01TR19JRF9HTVNTX0NTU19QU19SRUdfUkVRICAgICAgICAgICAgICAgLAorICAgIC8vTVNHX0lEX0dNU1NfQ1NTX0RFQUNUSVZBVEVfUkVRICAgICAgICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1JBVF9DSEFOR0VfUkVRICAgICAgICAgICAsCisgICAgTVNHX0lEX05BU19TVl9DU1NfUFNfREVSRUdfUkVRICAgICAgICAgICAgICwKKyAgICBNU0dfSURfR01TU19DU1NfQUNUSVZFX1NJTV9JTkZPX1JFUSAgICAgICwKKyAgICBNU0dfSURfR01TU19DU1NfU0VUX1JBVF9NT0RFX1JFUSAgICAgICAgICwKKyAgICBNU0dfSURfR01TU19DU1NfTU1TU19MSVNUX1NZTkNfUkVRICAgICAgICwKKyAgICBNU0dfSURfR01TU19DU1NfM0dQUF9OT1JNQUxfU0VSVklDRV9SRVEgICwKKyAgICAvKiBtZXNzYWdlcyBmb3IgVlpXIEVDQyBjYWxsICovCisgICAgTVNHX0lEX0dNU1NfQ1NTX0VNQ19TRVNTSU9OX1NUQVJUX1JFUSAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0VNQ19TRVNTSU9OX1NUT1BfUkVRICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0VNQ19MT0NBTF9ERVRBQ0hfUkVRICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1NJTV9QTE1OX0lORk9fSU5EICAgICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX01TUExfU0VBUkNIX0VYSEFVU1RFRCAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0NTX1JFU1VNRV9SRVEgICAgICAgICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0VMRVZBVE9SX01PREVfUkVRICAgICAsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0VDQ19SRVNFVF9TRUFSQ0hfUkVTVUxUX1JFUSAgICAsIAorICAgIE1TR19JRF9HTVNTX0NTU19ST0FNSU5HX0lORAkJICAgICAgICAgLAorICAgIC8qIFJTVkFDX0NTU19TQVAgICovCisgICAgTVNHX0lEX1JTVkFDX0NTU19GUkVRVUVOQ1lfU0NBTl9BQ0NFUFRfSU5ELAorICAgIE1TR19JRF9SU1ZBQ19DU1NfRlJFUVVFTkNZX1NDQU5fUFJFRU1QVF9JTkQsCisgICAgTVNHX0lEX0VBU19DU1NfU1lTX1NOSUZGRVJfQ05GICAgICAgICAgICAsCisKKyAgICAvKiBNVEtfUExUX09OX1BDX1VUICovCisgICAgTVNHX0lEX0NTU19TWVNfVVRfVElNRVJfU1RBUlRfUkVRLAorICAgIE1TR19JRF9DU1NfU1lTX1VUX1RJTUVSX1NUT1BfUkVRLAorICAgIE1TR19JRF9DU1NfU1lTX1VUX1RJTUVSX0VYUElSRURfSU5ELAorCisgICAgTVNHX0lEX0NTU19DUFNNXzFYX1NDQU5fVElNRU9VVCwKKyAgICBNU0dfSURfQ1NTX1VJTV9OQU1fR0VUX1RJTUVPVVQsCisgICAgTVNHX0lEX0NTU19VSU1fUlNQX1RJTUVPVVQsCisgICAgTVNHX0lEX0NTU19OVlJBTV9SU1BfVElNRU9VVCwKKyAgICBNU0dfSURfQ1NTX1ZBTF9SQVRfTU9ERV9DSEdfQ05GX01TRywKKyAgICBNU0dfSURfQ1NTX0wxRF9SU1NJX1NDQU5fQ05GX01TRywKKyAgICBNU0dfSURfQ1NTX1VUX0RVTU1ZX1JFUSwKKyAgICBNU0dfSURfQ1NTX1VUX0RVTU1ZX0NORiwKKyAgICBNU0dfSURfQ1NTX1BPV0VSX1VQX1NFVF9SQVRfUkVRLAorICAgIE1TR19JRF9DU1NfUE9XRVJfRE9XTl9TRVRfUkFUX1JFUSwKKyAgICBNU0dfSURfQ1NTX1ZTX0NOVERfSU5EX01TRywKKyAgICBNU0dfSURfQ1NTX1ZBTF9WT0lDRV9DQUxMX1JFTF9JTkRfTVNHLAorICAgIE1TR19JRF9DU1NfVUlNX0dFVF9QUkxfSU5EX01TRywKKyAgICBNU0dfSURfQ1NTX0RPX1NFU1NJT05fTkVHT19NT0RFX01TRywKKyAgICBNU0dfSURfQ1NTX1ZBTF9SQVRfTU9ERV9DSEdfUkVRLAorICAgIE1TR19JRF9DU1NfRFNCUF9HRVRfTlZSQU1fREFUQV9JTkQsCisJTVNHX0lEX0NTU19IU0NfU0VUX1JBVF9HQVBfU1RPUF9DTkYsCisgICAgTVNHX0lEX0NTU19OVU1fTVNHX0lEUywKKyAKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9DU1NfQ09ERV9UQUlMKQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgRmlsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZW5kaWYKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2QyX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kMl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNTk3MGMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kMl9tc2dpZC5oCkBAIC0wLDAgKzEsNDY0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9EMl9NU0dJRF9ICisjZGVmaW5lIF9EMl9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9EMl9DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfQVRQX0QyQVRfTVNHX0ZST01fQVRQX0JFR0lOLAorICAgICAgICAvLyBpbnRlcmNlcHQgQ01EIHRvIEQyCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DRlVOX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VGVU5fUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dBQ1RfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dEQ09OVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9YR0RDT05UX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0NHQVVUSF9SRVEsIAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dQQUREUl9SRVEsIAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dDT05UUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHUENPUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHUENPX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0JHUENPUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0NHRVJFUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FQVBOTE9DS19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FQVBOU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VBUE5BQ1RfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRUFQTlJFU1ZfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRUlGX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VJRl9JTkQsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FUEROX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHRkJfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRURSRVRSWV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FRFJFVFJZUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VBSURfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRUlBQVBOX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHREFUQV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR1BJQUZfUkVRLAorCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR0RTQ09OVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR1RGVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR1FSRVFfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dRTUlOX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0NHRVFSRVFfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dFUU1JTl9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR0NNT0RfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dTQ09OVFJEUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR1RGVFJEUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR0VRT1NfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dFUU9TUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0M1R1FPU19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DNUdRT1NSRFBfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQUNUVEVTVF9SRVEsCisKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VEQUxMT1dfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dBTlNfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dFUU5FR19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR0RBVEFfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfQ0dTREFUQV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9DR0RFTF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FR0FDVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FR0RDT05UX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHREVMUEZfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRUdMRF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FR0xOS1BGX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHUEFVX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VTSU1NQVBfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRVBTTUFQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VJTVNURVNUTU9ERV9SRVEsICAvLyBpbXMgdGVzdCBtb2RlCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9MR0RDT05UX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VOU1NBSV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FREFUQVNJTV9SRVEsIC8vIGRlZmF1bHQgZGF0YSBzaW0KKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VJQU1EUFJFRkVSX1JFUSwgLy8gK0VJQU1EUFJFRkVSPTEvMAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRUdEQ0FDVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FSUFBVFRBQ0hfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRVBTSV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9FU0NPTlRJTkRfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfUlNUSUFBUE5fUkVRLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfRUdVUlNQUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHVUVQT0xJQ1lfUkVRLCAKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0VHVUVQT0xJQ1lSRFBfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQVRfSVBDQV9HUFJTX1JFU0VUX0lBX0FQTl9SRVEsCisKKyAgICAgICAgLy9ERE0gLT4gRDJBVAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ01EX0NORiwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHRFNDT05UX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHVEZUX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHUVJFUV9JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR1FNSU5fSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dFUVJFUV9JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR0VRTUlOX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHU0NPTlRSRFBfSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dURlRSRFBfSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dFUU9TX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHRVFPU1JEUF9JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DNUdRT1NfSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQzVHUU9TUkRQX0lORCwKKworICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dBQ1RfSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dEQ09OVF9JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR0FVVEhfSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dDT05UUkRQX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHUEFERFJfSU5ELAorCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FR1BDT19JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FR1BDT1JEUF9JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR0VRTkVHX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHREVMX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0VHREVMUEZfSU5ELAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fRUdMTktQRl9JTkQsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FU0NPTlRJTkRfSU5ELAorCisgICAgICAgIC8vIEFUIHJlc3BvbmUgdG8gRDIKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0w0X0NNRF9DR0FUVF9SU1AsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9MNF9DTURfRUdUWVBFX1JTUCwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0w0X0NNRF9JQ0NJRF9SU1AsCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9MNF9DTURfSUNDSURfT0tfUlNQLAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfTDRfQ01EX0VHUkVBX1JTUCwKKworICAgICAgICAvLyBub3RpZnkgVVJDIHRvIEQyCisgICAgICAgIE1TR19JRF9BVFBfRDJBVF9MNF9VUkNfRVNJTVNfSU5ELAorICAgICAgICBNU0dfSURfQVRQX0QyQVRfTDRfVVJDX0VHUkVHX0lORCwKKyAgICAgICAgTVNHX0lEX0FUUF9EMkFUX0w0X1VSQ19FVVNJTV9JTkQsCisgICAgICAgIE1TR19JRF9EMkFNX0QyX0NNRF9SRVRSWV9JTkQsCisgICAgTVNHX0lEX0FUUF9EMkFUX01TR19GUk9NX0FUUF9FTkQsCisKKyAgIC8vIERETSB0byBEMgorICAgIE1TR19JRF9EMlBNX0RETV9NU0dfRlJPTV9ERE1fQkVHSU4sCisjaWYgMAorLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmCisjaWYgMAorLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmCisgICAgTVNHX0lEX0QyUE1fRERNX01TR19GUk9NX0RETV9FTkQsCisKKyAgICAvLyBJTVNNIHRvIEQyCisgICAgTVNHX0lEX0lNU01fRDJfTVNHX0ZST01fSU1TTV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0lNU01fRDJDTV9BQ1RfREFUQV9DQUxMX1JFUSwgCisgICAgICAgIE1TR19JRF9JTVNNX0QyQ01fREVBQ1RfREFUQV9DQUxMX1JFUSwgCisgICAgICAgIE1TR19JRF9JTVNNX0QyQ01fQUNUX0RBVEFfQ0FMTF9SU1AsIAorICAgICAgICBNU0dfSURfSU1TTV9EMkNNX0RFQUNUX0RBVEFfQ0FMTF9SU1AsIAorICAgICAgICBNU0dfSURfSU1TTV9EMkNNX0FCT1JUX0RBVEFfQ0FMTF9SRVEsIAorICAgICAgICBNU0dfSURfSU1TTV9JTVNNX0dFVF9DRUxMX0lORk9fUkVRLAorICAgIE1TR19JRF9JTVNNX0QyX01TR19GUk9NX0lNU01fRU5ELCAKKy8vIEQyIHRvIElNU00KKyAgICBNU0dfSURfSU1TTV9EMl9GUk9NX0QyX0JFR0lOLAorICAgICAgICBNU0dfSURfSU1TTV9EMkNNX0FDVF9EQVRBX0NBTExfQ05GLCAKKyAgICAgICAgTVNHX0lEX0lNU01fRDJDTV9ERUFDVF9EQVRBX0NBTExfQ05GLCAKKyAgICAgICAgTVNHX0lEX0lNU01fRDJDTV9BQ1RfREFUQV9DQUxMX0lORCwgCisgICAgICAgIE1TR19JRF9JTVNNX0QyQ01fREVBQ1RfREFUQV9DQUxMX0lORCwgCisgICAgICAgIE1TR19JRF9JTVNNX0QyQ01fTU9EX0RBVEFfQ0FMTF9JTkQsIAorICAgICAgICBNU0dfSURfSU1TTV9EMkNNX0FCT1JUX0RBVEFfQ0FMTF9DTkYsIAorICAgICAgICBNU0dfSURfSU1TTV9JTVNNX0dFVF9DRUxMX0lORk9fQ05GLAorICAgICAgICBNU0dfSURfSU1TTV9EMkNNX0VBUE5MT0NLX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU01fREFTVF9FQVBOTE9DS19JTkQsCisgICAgTVNHX0lEX0lNU01fRDJfRlJPTV9EMl9FTkQsCisgICAgLy8gQVRQIHRvIElNU00KKyAgICBNU0dfSURfQVRQX0lNU01fRlJPTV9BVFBfQkVHSU4sCisgICAgICAgIC8vQVQgaW5kaWNhdGlvbiB0byBJTVNNCisgICAgICAgIE1TR19JRF9BVFBfSU1TTV9MNF9DTURfSU5ULAorICAgICAgICAvL0FUIHJlc3BvbmUgdG8gSU1TTQorICAgICAgICBNU0dfSURfQVRQX0lNU01fTDRfQ01EX1JTUCwKKyAgICAgICAgLy9BVCBjbWQgdG8gSU1TTQorICAgICAgICBNU0dfSURfQVRQX0lNU01fRUlNU1BETl9SU1AsCisgICAgICAgIC8vQVQgY21kIHRvIElNU00gCisgICAgICAgIE1TR19JRF9BVFBfSU1TTV9FV0lGSUFTQ19JTkQsCisgICAgICAgIC8vQVQgY21kIHRvIElNU00KKyAgICAgICAgTVNHX0lEX0FUUF9JTVNNX0VXT1BETk9PU19JTkQsCisgICAgTVNHX0lEX0FUUF9JTVNNX0ZST01fQVRQX0VORCwKKworICAgIC8vIEQyCisgICAgTVNHX0lEX0QyX0JFR0lOLAorICAgICAgICAvLyA9PiBEYXRhIENhbGwKKyAgICAgICAgTVNHX0lEX0QyX0FDVF9EQVRBX0NBTExfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyX0FDVF9EQVRBX0NBTExfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyX0FDVF9EQVRBX0NBTExfSU5ELCAKKyAgICAgICAgTVNHX0lEX0QyX0FDVF9EQVRBX0NBTExfUlNQLAorICAgICAgICBNU0dfSURfRDJfREVBQ1RfREFUQV9DQUxMX1JFUSwgCisgICAgICAgIE1TR19JRF9EMl9ERUFDVF9EQVRBX0NBTExfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyX0RFQUNUX0RBVEFfQ0FMTF9JTkQsIAorICAgICAgICBNU0dfSURfRDJfREVBQ1RfREFUQV9DQUxMX1JTUCwKKyAgICAgICAgTVNHX0lEX0QyX0FCT1JUX0RBVEFfQ0FMTF9SRVEsIAorICAgICAgICBNU0dfSURfRDJfQUJPUlRfREFUQV9DQUxMX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX0FCT1JUX0RBVEFfQ0FMTF9JTkQsCisgICAgICAgIE1TR19JRF9EMl9NT0RfREFUQV9DQUxMX0lORCwgCisJCU1TR19JRF9EMl9TRVRfUFJPRklMRV9TVEFUVVNfUkVRLAorCQlNU0dfSURfRDJfU0VUX1BST0ZJTEVfU1RBVFVTX0NORiwgCQkKKyAgICAgICAgLy8gPT4gUXVlcnkKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9QRFhfUFJPRklMRV9SRVEsIAorICAgICAgICBNU0dfSURfRDJfR0VUX1BEWF9QUk9GSUxFX0lORCwgCisgICAgICAgIE1TR19JRF9EMl9HRVRfUERYX1BST0ZJTEVfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9EQVRBX0NBTExfTElTVF9SRVEsCisgICAgICAgIE1TR19JRF9EMl9HRVRfREFUQV9DQUxMX0xJU1RfSU5ELAorICAgICAgICBNU0dfSURfRDJfR0VUX0RBVEFfQ0FMTF9MSVNUX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9EWU5BTUlDX1BBUkFNX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9EWU5BTUlDX1BBUkFNX0lORCwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9EWU5BTUlDX1BBUkFNX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9JUF9JTkZPX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9JUF9JTkZPX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9QRE5fUkFOX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9QRE5fUkFOX0lORCwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9QRE5fUkFOX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX0dFVF9JRl9JRF9SRVEsCisgICAgICAgIE1TR19JRF9EMl9HRVRfSUZfSURfQ05GLAorCisgICAgICAgIC8vID0+IE5vdGlmaWNhdGlvbgorICAgICAgICBNU0dfSURfRDJfRVZFTlRfSU5ELCAKKyAgICBNU0dfSURfRDJfRU5EID0gTVNHX0lEX0QyX0VWRU5UX0lORCwgCisKKyAgICAvLyBEMkFQTgorICAgIE1TR19JRF9EMkFQTl9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyQVBOX1NFVF9BUE5TX0lORk9fUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQVBOX1NFVF9BUE5TX0lORk9fQ05GLAorICAgICAgICBNU0dfSURfRDJBUE5fU0VUX0FQTlNfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQVBOX1NFVF9BUE5TX0NORiwgCisgICAgICAgIE1TR19JRF9EMkFQTl9SRVNFVF9BUE5TX0lORk9fUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQVBOX1JFU0VUX0FQTlNfSU5GT19DTkYsIAorICAgICAgICBNU0dfSURfRDJBUE5fUkVTRVRfQVBOU19SRVEsIAorICAgICAgICBNU0dfSURfRDJBUE5fUkVTRVRfQVBOU19DTkYsIAorICAgICAgICBNU0dfSURfRDJBUE5fQ09QWV9BUE5TX1RCTF9SRVEsIAorICAgICAgICBNU0dfSURfRDJBUE5fQ09QWV9BUE5TX1RCTF9DTkYsIAorICAgICAgICBNU0dfSURfRDJBUE5fR0VUX0FQTlNfSU5GT19SRVEsIAorICAgICAgICBNU0dfSURfRDJBUE5fR0VUX0FQTlNfSU5GT19JTkQsCisgICAgICAgIE1TR19JRF9EMkFQTl9HRVRfQVBOU19JTkZPX0NORiwgCisgICAgICAgIE1TR19JRF9EMkFQTl9HRVRfQVBOU19SRVEsCisgICAgICAgIE1TR19JRF9EMkFQTl9HRVRfQVBOU19JTkQsIAorICAgICAgICBNU0dfSURfRDJBUE5fR0VUX0FQTlNfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyQVBOX0FQTlNfQ0hHX0lORCwKKyAgICBNU0dfSURfRDJBUE5fRU5EID0gTVNHX0lEX0QyQVBOX0FQTlNfQ0hHX0lORCwgCisKKyAgICAvLyBEMlBNCisgICAgTVNHX0lEX0QyUE1fQkVHSU4sCisgICAgICAgIC8vID0+IEQyCisgICAgICAgIE1TR19JRF9EMl9EMlBNX0FDVF9EQVRBX0NBTExfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyX0QyUE1fQUNUX0RBVEFfQ0FMTF9DTkYsIAorICAgICAgICBNU0dfSURfRDJfRDJQTV9BQ1RfREFUQV9DQUxMX0lORCwgCisgICAgICAgIE1TR19JRF9EMl9EMlBNX0FDVF9EQVRBX0NBTExfUlNQLAorICAgICAgICBNU0dfSURfRDJfRDJQTV9ERUFDVF9EQVRBX0NBTExfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyX0QyUE1fREVBQ1RfREFUQV9DQUxMX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX0QyUE1fREVBQ1RfREFUQV9DQUxMX0lORCwgCisgICAgICAgIE1TR19JRF9EMl9EMlBNX0RFQUNUX0RBVEFfQ0FMTF9SU1AsCisgICAgICAgIE1TR19JRF9EMl9EMlBNX0FCT1JUX0RBVEFfQ0FMTF9SRVEsIAorICAgICAgICBNU0dfSURfRDJfRDJQTV9BQk9SVF9EQVRBX0NBTExfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyX0QyUE1fQUJPUlRfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0QyX0QyUE1fTU9EX0RBVEFfQ0FMTF9JTkQsIAorICAgIE1TR19JRF9EMlBNX0VORCA9IE1TR19JRF9EMl9EMlBNX01PRF9EQVRBX0NBTExfSU5ELCAKKworICAgIC8vIEQyQ00KKyAgICBNU0dfSURfRDJDTV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyQ01fR0VUX1BETl9QUk9GSUxFX1JFUSwgCisgICAgICAgIE1TR19JRF9EMkNNX0dFVF9QRE5fUFJPRklMRV9JTkQsIAorICAgICAgICBNU0dfSURfRDJDTV9HRVRfUEROX1BST0ZJTEVfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyQ01fQUNUX0RBVEFfQ0FMTF9SRVEsIAorICAgICAgICBNU0dfSURfRDJDTV9BQ1RfREFUQV9DQUxMX0NORiwgCisgICAgICAgIE1TR19JRF9EMkNNX0FDVF9EQVRBX0NBTExfSU5ELCAKKyAgICAgICAgTVNHX0lEX0QyQ01fQUNUX0RBVEFfQ0FMTF9SU1AsCisgICAgICAgIE1TR19JRF9EMkNNX0FDVF9EQVRBX0NBTExfUkVKLAorICAgICAgICBNU0dfSURfRDJDTV9ERUFDVF9EQVRBX0NBTExfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQ01fREVBQ1RfREFUQV9DQUxMX0NORiwgCisgICAgICAgIE1TR19JRF9EMkNNX0RFQUNUX0RBVEFfQ0FMTF9JTkQsIAorICAgICAgICBNU0dfSURfRDJDTV9ERUFDVF9EQVRBX0NBTExfUlNQLAorICAgICAgICBNU0dfSURfRDJDTV9ERUFDVF9EQVRBX0NBTExfUkVKLAorICAgICAgICBNU0dfSURfRDJDTV9BQk9SVF9EQVRBX0NBTExfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQ01fQUJPUlRfREFUQV9DQUxMX0NORiwgCisgICAgICAgIE1TR19JRF9EMkNNX0FCT1JUX0RBVEFfQ0FMTF9JTkQsCisgICAgICAgIE1TR19JRF9EMkNNX0FCT1JUX0RBVEFfQ0FMTF9SRUosCisgICAgICAgIE1TR19JRF9EMkNNX01PRF9EQVRBX0NBTExfSU5ELCAKKyAgICAgICAgTVNHX0lEX0QyQ01fSE9fSU5ELCAKKyAgICAgICAgTVNHX0lEX0QyQ01fREFUQV9DQUxMX0lORk9fSU5ELCAKKyAgICAgICAgTVNHX0lEX0QyQ01fR0VUX1JFVFJZX1RNUl9SRVEsIAorICAgICAgICBNU0dfSURfRDJDTV9HRVRfUkVUUllfVE1SX0NORiwgCisgICAgICAgIE1TR19JRF9EMkNNX1JFU0VUX1JFVFJZX1RNUl9SRVEsIAorICAgICAgICBNU0dfSURfRDJDTV9SRVNFVF9SRVRSWV9UTVJfQ05GLCAKKyAgICAgICAgTVNHX0lEX0QyQ01fUkVTRVRfUkVUUllfVE1SX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQ01fVk9MVEVfQ0ZHX0NIQU5HRV9JTkQsIAorICAgICAgICBNU0dfSURfRDJDTV9FVkVOVF9JTkQsIAorICAgICAgICBNU0dfSURfRDJDTV9CWVBBU1NfUkVRLCAKKyAgICAgICAgTVNHX0lEX0QyQ01fQllQQVNTX0NORiwgCisgICAgICAgIE1TR19JRF9EMkNNX0JZUEFTU19JTkQsIAorICAgICAgICBNU0dfSURfRDJDTV9CWVBBU1NfUlNQLAorICAgICAgICBNU0dfSURfRDJDTV9ORVRJRl9TRU5EX0lNU01fSU5URVJNRURJQVRFX0NORiwKKyAgICBNU0dfSURfRDJDTV9FTkQsIAorCisvLyBEMlJNCisgICAgTVNHX0lEX0QyUk1fQkVHSU4sCisgICAgICAgIE1TR19JRF9BVFBfRDJSTV9FV0lGSUVOX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9EMlJNX0VJRkNPTkZJR19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRDJSTV9FSUZfSE9fUkVRLAorICAgIE1TR19JRF9EMlJNX0VORCwgCisKKyAgICAvL0QyUE0gLT4gRDJSTQorICAgIE1TR19JRF9EMlBNX0QyUk1fQVBOQ0FQQV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9EMlBNX0QyUk1fQUNUX0RBVEFfQ0FMTF9SRVEsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9ERUFDVF9EQVRBX0NBTExfUkVRLAorICAgIE1TR19JRF9EMlBNX0QyUk1fQUJPUlRfREFUQV9DQUxMX1JFUSwKKyAgICBNU0dfSURfRDJQTV9EMlJNX01PRF9EQVRBX0NBTExfUkVRLAorICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX0RBVEFfQ0FMTF9MSVNUX1JFUSwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9EWU5BTUlDX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9QRFBfQUREUkVTU19SRVEsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfU0VDT05EQVJZX0RZTkFNSUNfUEFSQU1fUkVRLAorICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1FPU19SRVEsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfVEZUX1JFUSwKKyAgICBNU0dfSURfRDJQTV9EMlJNX1NFVF9QQUNLRVRfRklMVEVSX1JFUSwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9QQUNLRVRfRklMVEVSX1JFUSwKKy8vICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1BETl9QUk9GSUxFX1JTUCwKKy8vICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1BETl9QUk9GSUxFX1JFSkVDVF9SU1AsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9TRVRfUkVUUllUTVJfUkVRLAorICAgIE1TR19JRF9EMlBNX0QyUk1fVlpXQVBORVRNUl9SRVEsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9WWldBUE5FX1JFUSwKKworICAgIC8vSVdMQU4gLT4gRDJSTQorICAgIE1TR19JRF9EMlJNX0lXTEFOX1dBTlNfUlBMX1VQREFURV9JTkQsCisKKyAgICAvL0QyUE0gPC0gRDJSTQorICAgIE1TR19JRF9EMlBNX0QyUk1fQUNUX0RBVEFfQ0FMTF9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9BQk9SVF9EQVRBX0NBTExfQ05GLAorICAgIE1TR19JRF9EMlBNX0QyUk1fQUNUX0RBVEFfQ0FMTF9SRUpFQ1RfQ05GLAorICAgIE1TR19JRF9EMlBNX0QyUk1fREVBQ1RfREFUQV9DQUxMX0NORiwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0RFQUNUX0RBVEFfQ0FMTF9SRUpFQ1RfQ05GLAorICAgIE1TR19JRF9EMlBNX0QyUk1fQUJPUlRfREFUQV9DQUxMX1JFSkVDVF9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9NT0RfREFUQV9DQUxMX0NORiwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9EQVRBX0NBTExfTElTVF9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfRFlOQU1JQ19QQVJBTV9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfUERQX0FERFJFU1NfQ05GLAorICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1NFQ09OREFSWV9EWU5BTUlDX1BBUkFNX0NORiwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9RT1NfQ05GLAorICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1RGVF9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfUEFDS0VUX0ZJTFRFUl9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9TRVRfUEFDS0VUX0ZJTFRFUl9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9TRVRfUkVUUllUTVJfQ05GLAorICAgIC8vTVNHX0lEX0QyUE1fRDJSTV9WWldBUE5FVE1SX0NORiwKKyAgICAvL01TR19JRF9EMlBNX0QyUk1fVlpXQVBORV9DTkYsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9BQ1RfREFUQV9DQUxMX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX1BETl9OV19BQ1RfSU5ELAorICAgIE1TR19JRF9EMlBNX0QyUk1fUEROX05XX0RFQUNUX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX01PRF9EQVRBX0NBTExfSU5ELAorICAgIE1TR19JRF9EMlBNX0QyUk1fVVJDX0NHRVZfSU5ELAorICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX0RBVEFfQ0FMTF9MSVNUX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9EWU5BTUlDX1BBUkFNX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9QRFBfQUREUkVTU19JTkQsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfU0VDT05EQVJZX0RZTkFNSUNfUEFSQU1fSU5ELAorICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1FPU19JTkQsCisgICAgTVNHX0lEX0QyUE1fRDJSTV9HRVRfVEZUX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX0dFVF9QQUNLRVRfRklMVEVSX0lORCwKKy8vICAgIE1TR19JRF9EMlBNX0QyUk1fR0VUX1BETl9QUk9GSUxFX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX1BETl9IT19OT1RJRllfSU5ELAorICAgIE1TR19JRF9EMlBNX0QyUk1fUlNUX1JFVFJZVE1SX0lORCwKKyAgICBNU0dfSURfRDJQTV9EMlJNX1ZPTFRFX0NGR19DSEFOR0VfSU5ELAorCisgICAgLy9EMlJNIC0+IEQyUk0KKyAgICBNU0dfSURfRDJSTV9EMlJNX1BETl9BQ0NTRUxfSU5ELAorICAgIAorICAgIC8vREFUQSBCSU5ERVIKKyAgICBNU0dfSURfRDJSTV9EQl9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyUk1fREJfVEVTVF9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0RCX1RFU1RfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9EQl9EVU1QX0FMTF9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RCX0RVTVBfSU5GT19JTkQsCisgICAgTVNHX0lEX0QyUk1fREJfRU5ELAorCisgICAgLy8gRDJBTQorICAgIE1TR19JRF9EMkFNX0JFR0lOLAorICAgICAgICBNU0dfSURfRDJBTV9NREFMTE9XX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQU1fTURBTExPV19DTkYsCisgICAgICAgIE1TR19JRF9EMkFNX0VBUE5BQk9SVF9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0QyQU1fSEFORE9WRVJfQVRUQUNIX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyUk1fRDJBTV9IQU5ET1ZFUl9BVFRBQ0hfQ05GLAorICAgICAgICBNU0dfSURfRDJBTV9FSUFSRUdfSU5ELAorICAgICAgICBNU0dfSURfRDJBTV9FSUFFUlJfSU5ELAorICAgIE1TR19JRF9EMkFNX0VORCwKKworICAgIE1TR19JRF9JTUNfRDJfTVNHX0ZST01fSU1DX0JFR0lOLAorICAgICAgICBNU0dfSURfRDJfSU1DX0lNU19ERVJFR19DTkYsCisgICAgICAgIE1TR19JRF9EMl9JTUNfSU1TX0NBTExfU1RBVFVTX0lORCwKKyAgICAgICAgTVNHX0lEX0QyX0lNQ19JTVNfUk9BTUlOR19JTkQsCisgICAgTVNHX0lEX0lNQ19EMl9NU0dfRlJPTV9JTUNfRU5ELAorCisgICAgLy8gRDJVVAorICAgIE1TR19JRF9EMlVUX0JFR0lOLAorICAgICAgICBNU0dfSURfRDJVVF9URVNUX1JFUSwKKyAgICBNU0dfSURfRDJVVF9FTkQsCisKKyAgICAvLyBVUlNQCisgICAgTVNHX0lEX1VSU1BfQkVHSU4sCisgICAgICAgIE1TR19JRF9VUlNQX0dFVF9ST1VURV9QUk9GSUxFX1JFUSwKKyAgICAgICAgTVNHX0lEX1VSU1BfR0VUX1JPVVRFX1BST0ZJTEVfSU5ELAorICAgICAgICBNU0dfSURfVVJTUF9HRVRfUk9VVEVfU1VQUF9QUk9GSUxFX0lORCwKKyAgICAgICAgTVNHX0lEX1VSU1BfR0VUX1JPVVRFX1BST0ZJTEVfQ05GLAorICAgICAgICBNU0dfSURfVVJTUF9SRUVWQUxfUkVRLAorICAgICAgICBNU0dfSURfVVJTUF9SRUVWQUxfQ05GLAorICAgICAgICBNU0dfSURfVVJTUF9SRUVWQUxfSU5ELAorICAgICAgICBNU0dfSURfVVJTUF9TRVRfUFJFQ09ORl9VRV9QT0xJQ1lfUkVRLAorICAgICAgICBNU0dfSURfVVJTUF9TRVRfUFJFQ09ORl9VRV9QT0xJQ1lfQ05GLAorICAgICAgICBNU0dfSURfVVJTUF9TRVRfVVNJTV9VRV9QT0xJQ1lfUkVRLAorICAgICAgICBNU0dfSURfVVJTUF9TRVRfVVNJTV9VRV9QT0xJQ1lfQ05GLAorICAgICAgICBNU0dfSURfVVJTUF9HRVRfVUVfUE9MSUNZX1JFUSwKKyAgICAgICAgTVNHX0lEX1VSU1BfR0VUX1VFX1BPTElDWV9JTkQsCisgICAgICAgIE1TR19JRF9VUlNQX0dFVF9VRV9QT0xJQ1lfQ05GLAorICAgICAgICBNU0dfSURfVVJTUF9VRV9QT0xJQ1lfQ0hHX0lORCwKKyAgICAgICAgTVNHX0lEX1VSU1BfUlVMRV9UQkxfRFVNUF9JTkQsCisgICAgTVNHX0lEX1VSU1BfRU5ELAorCisgICAgTVNHX0lEX0QyX05FVElGX0FQSV9EVU1QX0lORCwKKyAgICBNU0dfSURfRDJfTkVUSUZfQ09OVEVYVF9EVU1QX0lORCwKKyAgICBNU0dfSURfRDJfTkVUSUZfQ09OVEVYVF9EVU1QX1NUQVJUX0lORCwKKyAgICBNU0dfSURfRDJfTkVUSUZfQ09OVEVYVF9EVU1QX0VORF9JTkQsCisKKyAgICAvLyBEMlVYCisgICAgTVNHX0lEX0QyVVhfQkVHSU4sCisgICAgTVNHX0lEX0QyVVhfRU5ELAorCisgICAgLy8gRDJTU0MKKyAgICBNU0dfSURfRDJTU0NfQkVHSU4sCisgICAgTVNHX0lEX0QyU1NDX0VORCwKKworICAgIE1TR19JRF9EMl9HRVRfUkVUUllUTVJfUkVRLAorICAgIE1TR19JRF9EMl9HRVRfUkVUUllUTVJfSU5ELAorICAgIE1TR19JRF9EMl9HRVRfUkVUUllUTVJfQ05GLAorCisgICAgTVNHX0lEX0w1X0QyX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9EMkFNX1NFVF9JQV9BUE5fUkVRLAorICAgICAgICBNU0dfSURfTDVVUEROX0QyQU1fU0VUX0lBX0FQTl9DTkYsCisgICAgTVNHX0lEX0w1X0QyX01TR19FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRDJfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9ERE1fTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZGF0YV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZGF0YV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlZTdjZjgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kYXRhX21zZ2lkLmgKQEAgLTAsMCArMSwyNjIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgZGF0YS5zYXAKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTUFVSQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIERBVEEgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfREFUQV9NU0dJRF9ICisjZGVmaW5lIF9EQVRBX01TR0lEX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tIERBVEFfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0gVERUIE1lc3NhZ2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVERUX0NPREVfQkVHSU4gKQorICAgTVNHX0lEX0NTTV9URFRfQUNUSVZBVEVfUkVRID0gTVNHX0lEX1REVF9DT0RFX0JFR0lOLAorICAgTVNHX0lEX0NTTV9URFRfREVBQ1RJVkFURV9SRVEsCisgICBNU0dfSURfQ1NNX1REVF9VQVJUX1NFVE9XTkVSX1JFUSwKKyAgIE1TR19JRF9DU01fVERUX0VTQ19PRkZfUkVRLCAKKyAgIE1TR19JRF9QUFBfVERUX0RBVEFfUkVRLAorICAgTVNHX0lEX1REVF9DT0RFX0VORCA9IE1TR19JRF9QUFBfVERUX0RBVEFfUkVRLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9URFRfQ09ERV9UQUlMICkKKworCS8qLS0tLS0tLS0tLS0tLS0tLS0tLSBUMzAgTWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVDMwX0NPREVfQkVHSU4gKQorICAgTVNHX0lEX0NTTV9UMzBfQUNUSVZBVEVfUkVRID0gTVNHX0lEX1QzMF9DT0RFX0JFR0lOLAorICAgTVNHX0lEX0NTTV9UMzBfREVBQ1RJVkFURV9SRVEsCisgICBNU0dfSURfQ1NNX1QzMF9GQVhfUkFURV9SRVEsCisKKyAgIE1TR19JRF9MNENfVDMwX1JXX1NUUl9QQVJBTV9SRVEsCisgICBNU0dfSURfTDRDX1QzMF9SV19QQVJBTV9SRVEsCisgICBNU0dfSURfTDRDX1QzMF9UWF9NU0dfUkVRLCAKKyAgIE1TR19JRF9MNENfVDMwX1JYX01TR19SRVEsCisgICBNU0dfSURfTDRDX1QzMF9UWF9CQ1NfUkVRLAorICAgTVNHX0lEX0w0Q19UMzBfUlhfQkNTX1JFUSwKKyAgIE1TR19JRF9MNENfVDMwX1RYX1NJTEVOQ0VfUkVRLAorICAgTVNHX0lEX0w0Q19UMzBfUlhfU0lMRU5DRV9SRVEsCisgICBNU0dfSURfTDRDX1QzMF9UUkFOU0ZFUl9VQVJUX1JFUSwKKyAgIE1TR19JRF9MNENfVDMwX1RYX1BQTV9SRVEsCisKKyAgIE1TR19JRF9GQV9UMzBfQUNUSVZBVEVfQ05GLAorICAgTVNHX0lEX0ZBX1QzMF9ERUFDVElWQVRFX0NORiwKKyAgIE1TR19JRF9GQV9UMzBfVFhfREFUQV9DTkYsIAorICAgTVNHX0lEX0ZBX1QzMF9SWF9EQVRBX0NORiwgCisgICBNU0dfSURfRkFfVDMwX0RJU0NfSU5ELAorICAgTVNHX0lEX0ZBX1QzMF9DTURfQ05GLAorCisgICBNU0dfSURfRkFfVDMwX0NNRF9JTkQsCisgICBNU0dfSURfRkFfVDMwX0RBVEFfSU5ELAorICAgTVNHX0lEX0ZBX1QzMF9HRVRfQ01EX0lORCwKKyAgIE1TR19JRF9GQV9UMzBfR0VUX0RBVEFfSU5ELAorCisgICBNU0dfSURfRkFfVDMwX1RYX0RBVEFfRU5EX0lORCwKKyAgIE1TR19JRF9GQV9UMzBfUlhfREFUQV9FTkRfSU5ELAorICAgTVNHX0lEX0ZBX1QzMF9UWF9DTURfRU5EX0lORCwgCisgICBNU0dfSURfRkFfVDMwX1JYX0NNRF9FTkRfSU5ELCAKKworICAgTVNHX0lEX0ZBX1QzMF9HRVRNT1JFX0RBVEFfSU5ELAorICAgTVNHX0lEX0ZBX1QzMF9PVkVSRkxPV19JTkQsCisgICBNU0dfSURfRkFfVDMwX0RBVEFfQVZBSUxBQkxFX0lORCwKKyAgIE1TR19JRF9GQV9UMzBfUkFURV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX0ZBX1QzMF9IRExDX0lORCwKKyAgIE1TR19JRF9UMzBfQ09ERV9FTkQgPSBNU0dfSURfRkFfVDMwX0hETENfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9UMzBfQ09ERV9UQUlMKQorCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tIEZBIE1lc3NhZ2VzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZBX0NPREVfQkVHSU4pCisgICBNU0dfSURfVDMwX0ZBX0FDVElWQVRFX1JFUSA9IE1TR19JRF9GQV9DT0RFX0JFR0lOLAorICAgTVNHX0lEX1QzMF9GQV9ERUFDVElWQVRFX1JFUSwgCisgICBNU0dfSURfVDMwX0ZBX0NNRF9SRVEsIAorICAgTVNHX0lEX1QzMF9GQV9EQVRBX1JFUSwgICAKKyAgIE1TR19JRF9UMzBfRkFfVFhfREFUQV9SRVEsIAorICAgTVNHX0lEX1QzMF9GQV9SWF9EQVRBX1JFUSwgCisgICBNU0dfSURfVDMwX0ZBX0ZBWF9SQVRFX1JFUSwgIAorICAgTVNHX0lEX1QzMF9GQV9TRU5EX0RBVEFfUkVRLCAKKyAgIE1TR19JRF9GQV9UMzBfSERMQ19SRVEsCisKKyAgIE1TR19JRF9SQV9GQV9QUk9DRVNTX0NNRF9JTkQsCisKKyAgIE1TR19JRF9SQV9GQV9BQ1RJVkFURV9DTkYsIAorICAgTVNHX0lEX1JBX0ZBX0RMX1FfRlVMTF9JTkQsIAorICAgTVNHX0lEX1JBX0ZBX0RMX1FfT1ZFUkZMT1dfSU5ELCAKKyAgIE1TR19JRF9SQV9GQV9VTF9RX1VOREVSRkxPV19JTkQsIAorICAgTVNHX0lEX1JBX0ZBX1RYX0RBVEFfQ05GLCAKKyAgIE1TR19JRF9SQV9GQV9SWF9EQVRBX0NORiwgCisgICBNU0dfSURfUkFfRkFfUlhfREFUQV9FTkRfSU5ELCAKKyAgIE1TR19JRF9SQV9GQV9UWF9EQVRBX0VORF9JTkQsIAorICAgTVNHX0lEX1JBX0ZBX1JYX0NNRF9FTkRfSU5ELCAKKyAgIE1TR19JRF9SQV9GQV9UWF9DTURfRU5EX0lORCwgCisgICBNU0dfSURfUkFfRkFfUlhfTVNHX1JFQ19JTkQsIAorICAgTVNHX0lEX1JBX0ZBX1JBVEVfQ0hBTkdFX0lORCwKKyAgIE1TR19JRF9GQV9DT0RFX0VORCA9IE1TR19JRF9SQV9GQV9SQVRFX0NIQU5HRV9JTkQsIAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9GQV9DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTDJSX0NPREVfQkVHSU4gKQorCS8qLS0tLS0tLS0tLS0tLS0tLS0tLSBMMlIgTWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICBNU0dfSURfQ1NNX0wyUl9BQ1RJVkFURV9SRVEgPSBNU0dfSURfTDJSX0NPREVfQkVHSU4sCisgICBNU0dfSURfQ1NNX0wyUl9ERUFDVElWQVRFX1JFUSwKKyAgIE1TR19JRF9DU01fTDJSX1VBUlRfU0VUT1dORVJfUkVRLAorICAgTVNHX0lEX0NTTV9MMlJfRVNDX09GRl9SRVEsCisgICBNU0dfSURfUFBQX0wyUl9EQVRBX1JFUSwKKyAgIE1TR19JRF9TTVVfTDJSX0RBVEFfUkVRLAorCisgICBNU0dfSURfTDJSX1JMUF9DT05OX0NORiwKKyAgIE1TR19JRF9MMlJfUkxQX0NPTk5fSU5ELAorICAgTVNHX0lEX0wyUl9STFBfWElEX0lORCwKKyAgIE1TR19JRF9MMlJfUkxQX1RFU1RfQ05GLCAgICAgICAgICAvKiB0ZXN0IGNuZiAqLworICAgTVNHX0lEX0wyUl9STFBfVU5JVERBVEFfSU5ELCAgIC8qIHVpICovCisgICBNU0dfSURfTDJSX1JMUF9ESVNDX0NORiwKKyAgIE1TR19JRF9MMlJfUkxQX0RJU0NfSU5ELAorICAgTVNHX0lEX0wyUl9STFBfREVUQUNIX0NORiwKKyAgIE1TR19JRF9MMlJfUkxQX0VSUk9SX0lORCwKKyAgIE1TR19JRF9MMlJfUkxQX1JFU0VUX0NORiwKKyAgIE1TR19JRF9MMlJfUkxQX1JFU0VUX0lORCwKKyAgIE1TR19JRF9MMlJfUkxQX0RBVEFfSU5ELAorICAgTVNHX0lEX0wyUl9STFBfUkVBRFlfSU5ELAorICAgTVNHX0lEX0wyUl9STFBfQ0hBTkdFX1JBVEVfSU5ELAorICAgTVNHX0lEX0wyUl9STFBfUFJFUEFSRV9SRU1BUF9JTkQsCisgICBNU0dfSURfTDJSX1JMUF9SRU1BUF9JTkQsCisgICBNU0dfSURfRkxDX0NTRF9ETF9BUFBEVV9SRVNVTUUsCisgICBNU0dfSURfTDJSX0NPREVfRU5EID0gTVNHX0lEX0wyUl9STFBfUkVNQVBfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9MMlJfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JMUF9DT0RFX0JFR0lOICkKKyAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLSBSTFAgTWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisJTVNHX0lEX0wyUl9STFBfQVRUQUNIX1JFUSA9IE1TR19JRF9STFBfQ09ERV9CRUdJTiwKKyAgIE1TR19JRF9MMlJfUkxQX0RBVEFfUkVRLAorICAgTVNHX0lEX0wyUl9STFBfQ09OTl9SRVEsCisgICBNU0dfSURfTDJSX1JMUF9DT05OX1JFU1AsCisgICBNU0dfSURfTDJSX1JMUF9SRVNFVF9SRVNQLAorICAgTVNHX0lEX0wyUl9STFBfUkVTRVRfUkVRLAorICAgTVNHX0lEX0wyUl9STFBfRElTQ19SRVEsCisgICBNU0dfSURfTDJSX1JMUF9VTklUREFUQV9SRVEsCisgICBNU0dfSURfTDJSX1JMUF9YSURfUkVRLAorICAgTVNHX0lEX0wyUl9STFBfVEVTVF9SRVEsCisgICBNU0dfSURfTDJSX1JMUF9QUkVQQVJFX1JFTUFQX1JFU1AsCisgICBNU0dfSURfTDJSX1JMUF9SRU1BUF9SRVNQLAorICAgTVNHX0lEX0wyUl9STFBfREVUQUNIX1JFUSwKKyAgIE1TR19JRF9STFBfUkFfREFUQV9SRVEsCisgICBNU0dfSURfUkxQX1JBX0RBVEFfSU5ELAorICAgTVNHX0lEX0ZMQ19STFBfUlJfUkVRLAorICAgTVNHX0lEX0ZMQ19STFBfUk5SX1JFUSwKKyAgIE1TR19JRF9MMlJfUkxQX0FCT1ZFX1VQX1RIUkVTSE9MRF9JTkQsCisgICBNU0dfSURfTDJSX1JMUF9CRUxPV19VUF9USFJFU0hPTERfSU5ELAorCisgICBNU0dfSURfQ1NEX1VBUlRfUkVBRFlfVE9fUkVBRCwKKyAgIE1TR19JRF9DU0RfVUFSVF9SRUFEWV9UT19XUklURSwKKyAgIE1TR19JRF9DU0RfVUFSVF9EQVRBX1JFUSwKKyAgIE1TR19JRF9DU0RfVUFSVF9GVUxMX0lORCwKKyAgIE1TR19JRF9DU0RfQUNUSVZBVEVfUkVRLAorICAgTVNHX0lEX0NTRF9ERUFDVElWQVRFX1JFUSwKKyAgIE1TR19JRF9DU0RfUkFfREFUQV9SRVEsCisgICBNU0dfSURfQ1NEX1JBX0RBVEFfSU5ELAorICAgTVNHX0lEX0NTRF9DRUVMX0NIQU5HRV9TVEFSVF9JTkQsCisgICBNU0dfSURfQ1NEX0NFRUxfQ0hBTkdFX0ZJTklEU0hfSU5ELAorICAgTVNHX0lEX0NTRF9VUExJTktfVElDS19JTkQsCisgICBNU0dfSURfQ1NEX0RPV05MSU5LX1RJQ0tfSU5ELAorICAgTVNHX0lEX1JMUF9DT0RFX0VORCA9IE1TR19JRF9DU0RfRE9XTkxJTktfVElDS19JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JMUF9DT0RFX1RBSUwgKQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0gREFUQV9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNlbmRpZiAvL19EQVRBX01TR0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RkbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZGRtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFmMGIzNgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RkbV9tc2dpZC5oCkBAIC0wLDAgKzEsMjk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9ERE1fTVNHSURfSAorI2RlZmluZSBfRERNX01TR0lEX0gKKyNpZiAwCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9ERE1fQ09ERV9CRUdJTiApCisgICAgLy9EQVNUIHRvIERETQorICAgIE1TR19JRF9EMl9ERE1fTVNHX0ZST01fREFTVF9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX0RFRklORV9BVFRBQ0hfUEROX1JTUCwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX0w0Qk5XX0VEQUxMT1dfUkVRLAorICAgICAgICBNU0dfSURfRDJBTV9ERE1fRURBTExPV19SRVEsCQorICAgICAgICBNU0dfSURfRDJBTV9ERE1fRVZaV0FQRkNJQV9SRVEsCisgICAgICAgIE1TR19JRF9EMlBNX0RETV9TRVRfU0JQX0lEX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX1BTX1RZUEVfQ09ORklHX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX1BTX1JFQVRUQUNIX0NPTkZJR19SRVEsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9FVVRSQU5fRElTQUJMRV9DSEVDS19SU1AsIC8qRDJBTSAtPiBERE0gLT4gTldTRUwgOiBSU1AqLwkKKyAgICAgICAgTVNHX0lEX0QyUE1fRERNX0VTQ09OVElORF9JTkQsCisgICAgTVNHX0lEX0QyX0RETV9NU0dfRlJPTV9EQVNUX0VORCwKKworICAgIC8vRDJSTSB0byBERE0KKyAgICBNU0dfSURfRDJSTV9ERE1fTVNHX0ZST01fRDJSTV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0FDVF9EQVRBX0NBTExfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fREVBQ1RfREFUQV9DQUxMX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9EWU5BTUlDX1BBUkFNX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9EQVRBX0NBTExfTElTVF9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfUERQX0FERFJFU1NfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1NFQ09OREFSWV9EWU5BTUlDX1BBUkFNX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9URlRfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fU0VUX1BBQ0tFVF9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1BBQ0tFVF9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fTU9ESUZZX0RBVEFfQ0FMTF9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9BQk9SVF9EQVRBX0NBTExfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1JFVFJZVE1SX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX1NFVF9SRVRSWVRNUl9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfRVBER19JTkZPX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX1ZaV0FQTkVUTVJfUkVRLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fVlpXQVBORV9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9QRE5fQklORF9SRVEsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9QRE5fVU5CSU5EX1JFUSwKKyAgICBNU0dfSURfRDJSTV9ERE1fTVNHX0ZST01fRDJSTV9FTkQsCisKKyAgICAvL0RETSB0byBEQVNUCisgICAgTVNHX0lEX0QyX0RETV9NU0dfRlJPTV9ERE1fQkVHSU4sCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9ERUZJTkVfQVRUQUNIX1BETl9JTkQsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9ORUVEX0RFVEFDSF9QRE5fSU5ELAorICAgICAgICBNU0dfSURfRDJBTV9ERE1fQVRUQUNIRURfUkFUX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX0FUVEFDSF9QRE5fQUNUSVZBVEVfU1VDQ0VTU19JTkQsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9BVFRBQ0hfUEROX0FDVElWQVRFX0ZBSUxVUkVfSU5ELAorICAgICAgICBNU0dfSURfRDJBTV9ERE1fRUNOQ0ZHX1JFUV9JTkQsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9FVlpXQVBGQ0lBX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX0VEQUxMT1dfQ05GLAorICAgICAgICBNU0dfSURfRDJQTV9ERE1fQUNUX0RBVEFfQ0FMTF9DTkYsCisgICAgICAgIE1TR19JRF9EMlBNX0RETV9HRVRfRFlOQU1JQ19QQVJBTV9DTkYsCisgICAgICAgIE1TR19JRF9EMlBNX0RETV9HRVRfREFUQV9DQUxMX0xJU1RfQ05GLAorICAgICAgICBNU0dfSURfRDJBTV9ERE1fRVZaV0FQRkNJQV9DTkYsCisgICAgICAgIE1TR19JRF9EMlBNX0RETV9VUkNfQ0dFVl9JTkQsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9QU19UWVBFX0NPTkZJR19DTkYsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9SRUxFQVNFX0ZCX0NJRF9JTkQsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9FVVRSQU5fRElTQUJMRV9DSEVDS19JTkQsIC8qTldTRUwgLT4gRERNIC0+IEQyQU0gOiBJTkQqLworICAgICAgICBNU0dfSURfRDJBTV9ERE1fUFNfRVZFTlRfUkVQT1JUX0lORCwKKyAgICAgICAgTVNHX0lEX0QyQU1fRERNX0w0Qk5XX0VEQUxMT1dfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fUEROX0JJTkRfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fUEROX1VOQklORF9DTkYsCisgICAgICAgIE1TR19JRF9EMkFNX0RETV9UMzQwMl9TVE9QX0lORCwKKyAgICBNU0dfSURfRDJfRERNX01TR19GUk9NX0RETV9FTkQsCisKKyAgICAvL0RETSB0byBEMlJNCisgICAgTVNHX0lEX0QyUk1fRERNX01TR19GUk9NX0RETV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0FDVF9EQVRBX0NBTExfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fREVBQ1RfREFUQV9DQUxMX0NORiwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0FCT1JUX0RBVEFfQ0FMTF9DTkYsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfRFlOQU1JQ19QQVJBTV9DTkYsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfREFUQV9DQUxMX0xJU1RfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1BEUF9BRERSRVNTX0NORiwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9TRUNPTkRBUllfRFlOQU1JQ19QQVJBTV9DTkYsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfUU9TX0NORiwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9URlRfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fU0VUX1BBQ0tFVF9GSUxURVJfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1BBQ0tFVF9GSUxURVJfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fTU9ESUZZX0RBVEFfQ0FMTF9DTkYsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfUkVUUllUTVJfQ05GLAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fU0VUX1JFVFJZVE1SX0NORiwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9FUERHX0lORk9fQ05GLAorICAgICAgICAvL01TR19JRF9EMlJNX0RETV9WWldBUE5FVE1SX0NORiwKKyAgICAgICAgLy9NU0dfSURfRDJSTV9ERE1fVlpXQVBORV9DTkYsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9VUkNfQ0dFVl9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9BQ1RfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9EQVRBX0NBTExfTElTVF9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfRFlOQU1JQ19QQVJBTV9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfUERQX0FERFJFU1NfSU5ELAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1NFQ09OREFSWV9EWU5BTUlDX1BBUkFNX0lORCwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX0dFVF9RT1NfSU5ELAorICAgICAgICBNU0dfSURfRDJSTV9ERE1fR0VUX1RGVF9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfUEFDS0VUX0ZJTFRFUl9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9NT0RfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0QyUk1fRERNX1JTVF9SRVRSWVRNUl9JTkQsCisgICAgICAgIE1TR19JRF9EMlJNX0RETV9HRVRfRVBER19JTkZPX0lORCwKKyAgICBNU0dfSURfRDJSTV9ERE1fTVNHX0ZST01fRERNX0VORCwKKyAgICAvL0FUUCB0byBERE0KKyAgICBNU0dfSURfQVRQX0RETV9GUk9NX0FUUF9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fQ0dEQ09OVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHRFNDT05UX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fQ0dURlRfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR1FSRVFfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR1FNSU5fUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR0VRUkVRX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fQ0dFUU1JTl9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHRVFORUdfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR0FDVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHQ01PRF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHREFUQV9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHUEFERFJfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR0FVVE9fUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR0FOU19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHRVJFUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHQ09OVFJEUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHU0NPTlRSRFBfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9DR1RGVFJEUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHRVFPU19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHRVFPU1JEUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0M1R1FPU19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0M1R1FPU1JEUF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHREVMX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fQ0dBVVRIX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fRUNOQ0ZHX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fRUdEQ09OVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX1ZaV0FQTkVUTVJfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9WWldBUE5FX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fRUdQQVVfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9FR0FDVF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0NHU0RBVEFfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9BQ1RURVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fUFNCRUFSRVJfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9FR0ZCX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fRUdMRF9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0VHREVMUEZfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9FR0xOS1BGX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fRUdQQ09SRFBfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9FR1BDT19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0VEQUxMT1dfUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9FRFJFVFJZX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fRUlNU0NGR19SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0VHUU9TX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fQ1JMQUROX1JFUSwKKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fQ0xBRE5fUkVRLAorICAgICAgICBNU0dfSURfQVRQX0RETV9FTEFETl9SRVEsCisgICAgICAgIE1TR19JRF9BVFBfRERNX0VTQ09OVElORF9SRVEsCisgICAgICAgIC8vQVQgcmVzcG9uZSB0byBERE0KKyAgICAgICAgTVNHX0lEX0FUUF9ERE1fTDRfQ01EX0NHQVRUX1JTUCwKKyAgICBNU0dfSURfQVRQX0RETV9GUk9NX0FUUF9FTkQsCisgICAgICAgIAorICAgICAgICAvL0QyQVQgLT4gRERNCisgICAgTVNHX0lEX0FUUF9ERE1fRlJPTV9EMkFUX0JFR0lOLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dEU0NPTlRfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dURlRfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dRUkVRX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHUU1JTl9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR0VRUkVRX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHRVFNSU5fUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dFUkVQX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHU0NPTlRSRFBfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dURlRSRFBfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dFUU9TX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHRVFPU1JEUF9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DNUdRT1NfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQzVHUU9TUkRQX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHQ01PRF9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR1BBRERSX1JFUSwKKworICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dBQ1RfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dEQ09OVF9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9DR0FVVEhfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dDT05UUkRQX1JFUSwKKworICAgICAgICBNU0dfSURfRDJBVF9ERE1fRURBTExPV19SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FR1BDT19SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FR1BDT1JEUF9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9BQ1RURVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHQU5TX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHRVFORUdfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dEQVRBX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0NHU0RBVEFfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fQ0dERUxfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fRUdBQ1RfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fRUdEQ09OVF9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FR0RFTFBGX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQVRfRERNX0VHTERfUkVRLAorICAgICAgICBNU0dfSURfRDJBVF9ERE1fRUdMTktQRl9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FR1BBVV9SRVEsCisgICAgICAgIE1TR19JRF9EMkFUX0RETV9FU0NPTlRJTkRfUkVRLAorCisgICAgTVNHX0lEX0FUUF9ERE1fRlJPTV9EMkFUX0VORCwKKworICAgICAgICAvL0RETSB0byBJTVNNCisgICAgTVNHX0lEX0lNU01fRERNX01TR19GUk9NX0RETV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0lNU01fRERNX1BDT19VUERBVEVfSU5ELAorICAgICAgICBNU0dfSURfSU1TTV9ERE1fRkFMTEJBQ0tfSVBWNF9JTkQsCisgICAgTVNHX0lEX0lNU01fRERNX01TR19GUk9NX0RETV9FTkQsCisgICAgLy9ERE0gdG8gVkRNCisgICAgTVNHX0lEX1ZETV9ERE1fTVNHX0ZST01fRERNX0JFR0lOLAorICAgICAgICBNU0dfSURfVkRNX0RETV9QQ09fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfVkRNX0RETV9NU0dfRlJPTV9ERE1fRU5ELCAgICAKKworICAgIC8vTldTRUwgdG8gRERNCisgICAgTVNHX0lEX0RETV9OV1NFTF9NU0dfRlJPTV9ERE1fQkVHSU4sCisgICAgICAgIE1TR19JRF9ERE1fTldTRUxfRVVUUkFOX0RJU0FCTEVfQ0hFQ0tfSU5ELAorICAgIE1TR19JRF9ERE1fTldTRUxfTVNHX0ZST01fRERNX0VORCwKKworICAgIC8vVkdNTSB0byBERE0KKyAgICBNU0dfSURfRERNX1ZHTU1fTVNHX0ZST01fVkdNTV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0RETV9WR01NX0NSTEFETl9DTkYsCisgICAgICAgIE1TR19JRF9ERE1fVkdNTV9DQUJUU1JJX0lORCwKKyAgICAgICAgTVNHX0lEX0RETV9WR01NX0RFQUNUX1BEVVNfSU5GT19VUERBVEVfSU5ELAorICAgIE1TR19JRF9ERE1fVkdNTV9NU0dfRlJPTV9WR01NX0VORCwKKworICAgIE1TR19JRF9ERE1fQkVHSU4sCisgICAgICAgIE1TR19JRF9ERE1fRFNCUF9SRUFEWV9JTkQsCisgICAgTVNHX0lEX0RETV9FTkQsCisKKyAgICAvL0QyVVgtPkRETQorICAgIE1TR19JRF9EMlVYX0RETV9NU0dfRlJPTV9EMlVYX0JFR0lOLAorICAgICAgICBNU0dfSURfRDJVWF9ERE1fTk9USUZZX1BETl9UWVBFX1JFUSwKKyAgICBNU0dfSURfRDJVWF9ERE1fTVNHX0ZST01fRDJVWF9FTkQsCisKKyAgICAvL0RETS0+RDJVWAorICAgIE1TR19JRF9EMlVYX0RETV9NU0dfRlJPTV9ERE1fQkVHSU4sCisgICAgICAgIE1TR19JRF9EMlVYX0RETV9OT1RJRllfUEROX1RZUEVfQ05GLAorICAgIE1TR19JRF9EMlVYX0RETV9NU0dfRlJPTV9ERE1fRU5ELAorCisgICAgLy9EMkFQTkItPkRETQorICAgIE1TR19JRF9EMkFQTkJfRERNX01TR19GUk9NX0RETV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyQVBOQl9ERE1fVlpXX0FQTl9OVEYsCisgICAgTVNHX0lEX0QyQVBOQl9ERE1fTVNHX0ZST01fRERNX0VORCwKKyAgCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0RETV9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX0RETV9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kaXNwYXRjaGVyX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kaXNwYXRjaGVyX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2QzN2U3MAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2Rpc3BhdGNoZXJfbXNnaWQuaApAQCAtMCwwICsxLDc1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgZGlzcGF0Y2hlcl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIFZNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgRGlzcGF0Y2hlciBtZXNzYWdlIGlkIGRlY2xhcmF0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfRElTUEFUQ0hFUl9NU0dJRF9ICisjZGVmaW5lIF9ESVNQQVRDSEVSX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0RJU1BBVENIRVJfQ09ERV9CRUdJTiApCisKK01TR19JRF9OM0VQQ19ESVNQQVRDSEVSX0JFQVJFUl9BQ1RfUkVRID0gTVNHX0lEX0RJU1BBVENIRVJfQ09ERV9CRUdJTiwgLy8gVE9ETzogbm8gbmVlZCEKK01TR19JRF9OM0VQQ19ESVNQQVRDSEVSX0JFQVJFUl9ERUFDVF9SRVEsCisKK01TR19JRF9OM0VQQ19ESVNQQVRDSEVSX1BETl9CSU5EX1JFUSwKK01TR19JRF9OM0VQQ19ESVNQQVRDSEVSX1BETl9CSU5EX0NORiwKK01TR19JRF9OM0VQQ19ESVNQQVRDSEVSX1BETl9VTkJJTkRfUkVRLAorTVNHX0lEX04zRVBDX0RJU1BBVENIRVJfUEROX1VOQklORF9DTkYsCisKK01TR19JRF9JUENPUkVfRElTUEFUQ0hFUl9QRE5fQklORF9JTkQsCitNU0dfSURfSVBDT1JFX0RJU1BBVENIRVJfUEROX0JJTkRfUlNQLAorTVNHX0lEX0lQQ09SRV9ESVNQQVRDSEVSX1BETl9VTkJJTkRfSU5ELAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0RJU1BBVENIRVJfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9ESVNQQVRDSEVSX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RvX2NsY19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZG9fY2xjX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc4ZmMzZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RvX2NsY19tc2dpZC5oCkBAIC0wLDAgKzEsMzAyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIiJNRURJQVRFSyBTT0ZUV0FSRSIiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICIiQVMtSVMiIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGSUxFIE5BTUUgICA6IGRvX2NsY19tc2dpZC5oCisqCisqIERFU0NSSVBUSU9OIDogTWVzc2FnZSBJRCBkZWZpbml0aW9uIGZvciBDTEMgKENvbm5lY3Rpb24gTGF5ZXIgQ29udHJvbCkgdGFzay4KKyoKKyogSElTVE9SWSAgICAgOgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9ET19DTENfTVNHSURfSF8KKyNkZWZpbmUgX0RPX0NMQ19NU0dJRF9IXworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmNsdWRlIEZpbGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfQ0xDX0NPREVfQkVHSU4pCisKKyAgICAvKiBDTEMgdGFzayBzZWdtZW50Ki8KKyAgICBNU0dfSURfQ0xDX1hYWF9DTURfTVNHID0gTVNHX0lEX0NMQ19DT0RFX0JFR0lOLAorICAgIE1TR19JRF9DTENfVElNRVJfRVhQSVJFRF9NU0csCisgICAgTVNHX0lEX0RPX1BBUk1fU0VUX01TRywKKyAgICBNU0dfSURfRE9fUEFSTV9HRVRfTVNHLAorCisgICAgLyogQUxNUCBzZWdtZW50ICovCisgICAgTVNHX0lEX0NMQ19DTURfTVNHSURfQUxNUF9TVEFSVCwKKyAgICBNU0dfSURfQUxNUF9QU1dfUE9XRVJfTVNHLAorICAgIE1TR19JRF9BTE1QX0lOU1BfTlRXS19BQ1FEX01TRywKKyAgICBNU0dfSURfQUxNUF9JRFBfQ09OTl9PUEVORURfTVNHLAorICAgIE1TR19JRF9BTE1QX0lEUF9DT05OX0ZBSUxFRF9NU0csCisgICAgTVNHX0lEX0FMTVBfSURQX1BBR0VfUkVRX01TRywKKyAgICBNU0dfSURfQUxNUF9JRFBfRkFTVENPTk5fSU5JVElBVEVEX01TRywKKyAgICBNU0dfSURfQUxNUF9DU1BfQ09OTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9BTE1QX09NUF9BTl9SRURJUkVDVF9NU0csCisgICAgTVNHX0lEX0FMTVBfT01QX1NVUEVSVlNOX0ZBSUxfTVNHLAorICAgIE1TR19JRF9BTE1QX0NDTV9TVVBFUlZTTl9GQUlMX01TRywKKyAgICBNU0dfSURfQUxNUF9BQ01fU1VQRVJWU05fRkFJTF9NU0csCisgICAgTVNHX0lEX0FMTVBfUlRNX1NVUEVSVlNOX0ZBSUxfTVNHLAorICAgIE1TR19JRF9BTE1QX0ZUTV9TVVBFUlZTTl9GQUlMX01TRywKKyAgICBNU0dfSURfQUxNUF9SVVBfTlRXS19MT1NUX01TRywKKyAgICBNU0dfSURfQUxNUF9SVVBfQVNTR05fUkVKX01TRywKKyAgICBNU0dfSURfQUxNUF9DU1NfUkVfSU5JVF9NU0csCisgICAgTVNHX0lEX0FMTVBfSExQX1JFTF9DT05OX01TRywKKyAgICBNU0dfSURfQUxNUF9ITFBfQ0xPU0VfQ09OTl9NU0csCisgICAgTVNHX0lEX0FMTVBfSExQX09QRU5fQ09OTl9NU0csCisgICAgTVNHX0lEX0FMTVBfRlRBUF9PUEVOX0NPTk5fTVNHLAorICAgIE1TR19JRF9BTE1QX0ZUQVBfUkVMX0NPTk5fTVNHLAorICAgIE1TR19JRF9BTE1QX0ZUQVBfQ0xPU0VfQ09OTl9NU0csCisgICAgTVNHX0lEX0FMTVBfUlRBUF9PUEVOX0NPTk5fTVNHLAorICAgIE1TR19JRF9BTE1QX1JUQVBfUkVMX0NPTk5fTVNHLAorICAgIE1TR19JRF9BTE1QX1JUQVBfQ0xPU0VfQ09OTl9NU0csCisgICAgTVNHX0lEX0FMTVBfU0NQX09QRU5fQ09OTl9NU0csCisgICAgTVNHX0lEX0FMTVBfU0NQX1JFTF9DT05OX01TRywKKyAgICBNU0dfSURfQUxNUF9TQ1BfQ0xPU0VfQ09OTl9NU0csCisgICAgTVNHX0lEX0FMTVBfT01QX1VQREFURV9DTURfTVNHLAorICAgIE1TR19JRF9BTE1QX1NNUF9DTE9TRV9DT05OX01TRywKKyAgICBNU0dfSURfQUxNUF9TQ1BfUkVDT05GSUdVUkVEX01TRywKKyAgICBNU0dfSURfQUxNUF9DU1NfU1lTX0FDUV9SRVFfTVNHLAorICAgIE1TR19JRF9BTE1QX0NTU19PT1NBX1dBS0VVUF9SRVFfTVNHLAorICAgIE1TR19JRF9BTE1QX0hTQ19OVFdLX0xPU1RfTVNHLAorICAgIE1TR19JRF9BTE1QX0RTQVJfUVVFVUVfRlVMTF9NU0csCisgICAgTVNHX0lEX0FMTVBfSURQX1RIQVdfTVNHLAorICAgIE1TR19JRF9BTE1QX0lEUF9BQ0NFU1NfRkFJTF9NU0csCisgICAgTVNHX0lEX0FMTVBfQ1NTX1NZU1RFTV9WQUxJREFURURfTVNHLAorICAgIE1TR19JRF9BTE1QX1NNUF9QT1dFUkRPV05fQ05GX01TRywKKyAgICBNU0dfSURfQUxNUF9JUkFUTV9UT19MVEVfTUVBU19DVFJMX0NORiwKKyAgICBNU0dfSURfQUxNUF9OT1RJRllfU1JWX1NUQVRVU19UT19VUFBFUl9MQVlFUl9NU0csCisgICAgTVNHX0lEX0FMTVBfVkFMX0ZMSUdIVF9NT0RFX01TRywKKworICAgIC8qIElOU1Agc2VnbWVudCAqLworICAgIE1TR19JRF9DTENfQ01EX01TR0lEX0lOU1BfU1RBUlQsCisgICAgTVNHX0lEX0lOU1BfQUxNUF9BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX0lOU1BfQUxNUF9ERUFDVElWQVRFX01TRywKKyAgICBNU0dfSURfSU5TUF9STUNfUElMT1RfQUNRX1JTUF9NU0csCisgICAgTVNHX0lEX0lOU1BfUk1DX1NZTkNfT0tfTVNHLAorICAgIE1TR19JRF9JTlNQX1JNQ19ORVRXT1JLX1JFU0VUX0RPTkVfTVNHLAorICAgIE1TR19JRF9JTlNQXzFYQVNTSVNUX0RPQUNRX01TRywKKyAgICBNU0dfSURfSU5TUF9DU1NfRlJFUV9SU1BfTVNHLAorICAgIE1TR19JRF9JTlNQX0NTU19PT1NBX1NMRUVQX1JFUV9NU0csCisgICAgTVNHX0lEX0lOU1BfQ1NTX09PU0FfQ09OVF9TTEVFUF9SRVFfTVNHLAorICAgIE1TR19JRF9JTlNQX0NTU19BQ1FfQUJPUlRfUkVRX01TRywKKyAgICBNU0dfSURfSU5TUF9IU0NfT09TQV9XQUtFVVBfSU5EX01TRywKKyAgICBNU0dfSURfQ0xDX0hTQ19PT1NBX1NMRUVQX0NORl9NU0csCisgICAgTVNHX0lEX0lOU1BfUk1DX1JGX1NUQVRVU19NU0csCisgICAgTVNHX0lEX0lOU1BfSFNDX1NVU1BFTkRfU0xFRVBfQ05GX01TRywKKyAgICBNU0dfSURfSU5TUF9PTVBfUUNfUkVESVJFQ1QsCisgICAgTVNHX0lEX0lOU1BfUk1DX0lDU19HQVBfRVhIQVVTVF9NU0csCisKKyAgICAvKiBJRFAgc2VnbWVudCAqLworICAgIE1TR19JRF9DTENfQ01EX01TR0lEX0lEUF9TVEFSVCwKKyAgICBNU0dfSURfSURQX0FMTVBfQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9JRFBfQUxNUF9ERUFDVElWQVRFX01TRywKKyAgICBNU0dfSURfSURQX0FMTVBfQ0xPU0VfTVNHLAorICAgIE1TR19JRF9JRFBfQUxNUF9PUEVOX0NPTk5fTVNHLAorICAgIE1TR19JRF9JRFBfUlVQX0NPTk5FQ1RJT05fSU5JVElBVEVEX01TRywKKyAgICBNU0dfSURfSURQX1JVUF9DT05ORUNUSU9OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX0lEUF9SVVBfSUhPX1JFU1VMVF9NU0csCisgICAgTVNHX0lEX0lEUF9IU0NfRlJFRVpFX01TRywKKyAgICBNU0dfSURfSURQX0hTQ19USEFXX01TRywKKyAgICBNU0dfSURfSURQX0hTQ19XQUtFVVBfSU5EX01TRywKKyAgICBNU0dfSURfSURQX0hTQ19SRVNZTkNfSU5EX01TRywKKyAgICBNU0dfSURfSURQX0hTQ19SRVNZTkNfREVOSUVEX01TRywKKyAgICBNU0dfSURfSURQX0FDTV9UWF9TVEFSVEVEX01TRywKKyAgICBNU0dfSURfSURQX0FDTV9UWF9FTkRFRF9NU0csCisgICAgTVNHX0lEX0lEUF9DQ01fU0xFRVBfQ0FQU1VMRV9ET05FX01TRywKKyAgICBNU0dfSURfSURQX1NNUF9TRVNTSU9OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX0lEUF9TTVBfU0VTU0lPTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9JRFBfT01QX1VQREFURURfTVNHLAorICAgIE1TR19JRF9JRFBfQ1NQX1NVU1BFTkRfUEVSSU9EX1NUQVRVU19NU0csCisgICAgTVNHX0lEX0lEUF9DU1BfQ09OTkVDVElPTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9JRFBfQU1QX1NFU1NJT05TRUVEX01TRywKKyAgICBNU0dfSURfSURQX0NDTV9PRkZTRVRfTVNHLAorICAgIE1TR19JRF9JRFBfU0xPVFRFRF9NT0RFX1NFVF9NU0csCisgICAgTVNHX0lEX0lEUF8xWFBTX1BBR0lOR01BU0tfU0VUX01TRywKKyAgICBNU0dfSURfSURQX1NDUF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9JRFBfU0NQX0NPTU1JVFRFRF9NU0csCisgICAgTVNHX0lEX0lEUF9BTE1QX1NZU0lORk9fVVBEQVRFX01TRywKKyAgICBNU0dfSURfSURQX0RTQVJfQUNDRVNTX1NUQVJURURfTVNHLAorICAgIE1TR19JRF9JRFBfRFNBUl9BQ0NFU1NfRU5ERURfTVNHLAorICAgIE1TR19JRF9JRFBfUFJFRl9DQ19DWUNMRV9TRVRfTVNHLAorICAgIE1TR19JRF9JRFBfRVhURU5ERURfU0xPVENZQ0xFX1NFVF9NU0csCisgICAgTVNHX0lEX0lEUF9SVVBfQ0hBTk5FTF9DSEFOR0VEX0lORF9NU0csCisgICAgTVNHX0lEX0lEUF9SVVBfRk9SQ0VfSUhPX1JTUF9NU0csCisgIAorICAgIE1TR19JRF9JRFBfT01QX09USEVSUkFUX1VQREFURURfTVNHLAorICAgIE1TR19JRF9JRFBfU01QX1NFU1NJT05fU1RBVFVTX01TRywKKyAgICBNU0dfSURfSURQX0hTQ19UWF9BVkFJTEFCTEVfSU5ELAorICAgIE1TR19JRF9JRFBfUlVQX0RGU19FTkRfTVNHLAorICAgIE1TR19JRF9JRFBfREZTX1RJTUVSX1NFVF9NU0csCisgICAgTVNHX0lEX0lEUF9STUNfRlJFRVpFX01TRywKKyAgICBNU0dfSURfSURQX1JNQ19USEFXX01TRywKKyAgICBNU0dfSURfSURQX0NTU19SU1ZBU19WSVJUVUFMX1NVU1BFTkRfUkVRX01TRywKKyAgICBNU0dfSURfSURQX0NTU19SU1ZBU19SRVNVTUVfUkVRX01TRywKKyAgICBNU0dfSURfSURQX1BTV19SU1ZBU19TRVJWSUNFX09DQ1VQWV9DTkZfTVNHLAorICAgIE1TR19JRF9JRFBfUFNXX1JTVkFTX1NFUlZJQ0VfT0NDVVBZX0lORF9NU0csCisgICAgTVNHX0lEX0lEUF9WQUxfUEROX1NFVFVQX1NUQVRVU19OT1RJRllfSU5EX01TRywKKyAgICBNU0dfSURfSURQX1JNQ19JTlRFUl9IT19DTkZfTVNHLAorICAgIE1TR19JRF9DTENfUk1DX0lETEVfTU9ERV9DRkdfQ05GX01TRywKKyAgICBNU0dfSURfSURQX1JNQ19JSE9fV0FLRV9SRURVQ1RJT05fU1RBVEVfQ05GX01TRywKKyAgICBNU0dfSURfSURQX1JNQ19GT1JDRV9BQ1FfT1ZIRF9JTkRfTVNHLAorICAgIE1TR19JRF9JRFBfUFNXXzFYUlRUX1BBR0VfUE9TSVRJT05fQ0hBTkdFX0lORF9NU0csCisgICAgTVNHX0lEX0lEUF9EU0FSX0NPTk5FQ1RJT05fQ0xPU0VfTVNHX1NFTkRfQ09NUExFVEVfTVNHLAorICAgIE1TR19JRF9JRFBfQUNNX1BST0JFX1RYSU5HX1BST1RFQ1RfSU5EX01TRywKKyAgICBNU0dfSURfSURQX0RTQVJfU0lHTkFMX0lOVEVSQUNUSVZFX0NPTVBMRVRFX01TRywKKworICAgIC8qIENTUCBzZWdtZW50ICovCisgICAgTVNHX0lEX0NMQ19DTURfTVNHSURfQ1NQX1NUQVJULAorICAgIE1TR19JRF9DU1BfQUxNUF9BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX0NTUF9BTE1QX0RFQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9DU1BfQUxNUF9DTE9TRV9DT05OX01TRywKKyAgICBNU0dfSURfQ0xDX0NNRF9NU0dJRF9DU1BfTEFTVCwKKworICAgIC8qIE9NUCBzZWdtZW50ICovCisgICAgTVNHX0lEX0NMQ19DTURfTVNHSURfT01QX1NUQVJULAorICAgIE1TR19JRF9PTVBfSURQX0FDVElWQVRFX01TRywKKyAgICBNU0dfSURfT01QX0NTUF9BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX09NUF9JRFBfREVBQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX09NUF9BTE1QX0RFQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9PTVBfUlVQX0lETEVfSEFORE9GRl9NU0csCisgICAgTVNHX0lEX09NUF9DU1BfQ09OTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9PTVBfU0NQX1JFQ09ORklHVVJFRF9NU0csCisgICAgTVNHX0lEX09NUF9TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfT01QX0FDTV9TWVNfUEFSTVNfVVBEX1JFUSwKKyAgICBNU0dfSURfT01QX0lSQVRfTUNDX1JFUSwKKyAgICBNU0dfSURfT01QX0NTU19TWVNURU1fVkFMSURBVEVEX01TRywKKyAgICBNU0dfSURfT01QX1JDUF9BQ0NFU1NfSU5JVElBVEVfTVNHLAorCisgICAgLyogSVJBVE0gc2VnbWVudCAqLworICAgIE1TR19JRF9DTENfQ01EX01TR0lEX0lSQVRNX1NUQVJULAorICAgIE1TR19JRF9JUkFUTV9PTVBfT1RIRVJSQVRfVVBEQVRFRF9NU0csCisgICAgTVNHX0lEX0lSQVRNX1JVUF9JRExFX0hBTkRPRkZfTVNHLAorICAgIE1TR19JRF9JUkFUTV9STUNfQ0NFTExfTUVBU1VSRU1FTlRfQ05GLAorICAgIE1TR19JRF9JUkFUTV9STUNfU1lOQ19NU0dfQUNRX1NUQVJUX0lORCwKKyAgICBNU0dfSURfSVJBVE1fUk1DX1NZTkNfTVNHX0FDUV9UTVJfT1VULAorICAgIE1TR19JRF9JUkFUTV9STUNfQ0NFTExfTUVBU19JTkQsCisgICAgTVNHX0lEX0lSQVRNX1JNQ19BQ1FfQ0dJX0NORiwKKyAgICBNU0dfSURfSVJBVE1fUk1DX0NHSV9BQ1FfU1RBUlRfSU5ELAorICAgIE1TR19JRF9JUkFUTV9STUNfQ0dJX0FDUV9UTVJfT1VULAorICAgIE1TR19JRF9JUkFUTV9STUNfUElMT1RfQUNRX0ZBSUxFRF9JTkQsCisgICAgTVNHX0lEX0lSQVRNX1JNQ19TRVRfUkFUX0NORiwKKyAgICBNU0dfSURfSVJBVE1fQ1NTX1NFVF9SQVRfUkVRLAorICAgIE1TR19JRF9JUkFUTV9DU1NfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX0lSQVRNX0NTU19WSVJUVUFMX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9JUkFUTV9SVVBfQ1VSX1NFQ1RPUl9NRUFTX0NORiwKKyAgICBNU0dfSURfSVJBVE1fUlVQX0NVUl9TRUNUT1JfU0lHX0NIQU5HRURfSU5ELAorICAgIE1TR19JRF9JUkFUTV9DU1NfVE9fTFRFX01FQVNfQ1RSTF9SRVEsCisgICAgTVNHX0lEX0lSQVRNX0NTU19QTE1OX0xJU1RfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfSVJBVE1fQ1NTX1RPX0xURV9SRVNFTF9GQUlMX0lORk8sCisgICAgTVNHX0lEX0lSQVRNX0NTU19XQUtFVVBfQ01QX1JTUCwKKyAgICBNU0dfSURfSVJBVE1fQUxNUF9UT19MVEVfTUVBU19DVFJMX1JFUSwKKyAgICBNU0dfSURfSVJBVE1fVElNRVJfRVhQSVJFRF9DTURfTVNHLAorICAgIE1TR19JRF9JUkFUTV9STUNfUlhfU1RPUF9JTkQsCisgICAgTVNHX0lEX0lSQVRNX0NTU19TVVNQRU5EX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX0lSQVRNX0NTU19WSVJUVUFMX1NVU1BFTkRfUkVTVU1FX1JFUSwKKyAgICBNU0dfSURfSVJBVE1fQ1NTX1BPV0VSX0NUUkxfUkVRLAorICAgIE1TR19JRF9DTENfQ01EX01TR0lEX0lSQVRNX0xBU1QsCisKKyAgICAvKiBPVEEgc2VnbWVudCAqLworICAgIE1TR19JRF9DTENfT1RBTVNHX01TR0lEX1NUQVJULAorICAgIE1TR19JRF9BTE1QX0RTQV9PVEFfTVNHLAorICAgIE1TR19JRF9DTENfT1RBX01TR19NU0dJRF9MQVNULAorCisgICAgLyogVVQgc2VnbWVudCAqLworICAgIE1TR19JRF9VVF9DTENfRFNBRl9GV0RfTVNHLAorICAgIE1TR19JRF9VVF9TRVRfMVhSVFRfU1lTVEVNX1RJTUVfU1RfTVNHLAorICAgIE1TR19JRF9VVF9DTENfQ09ORklHX1NCUF9NU0csCisKKyAgICAvKiBJUkFUIHNlZ21lbnQgKi8KKyAgICBNU0dfSURfRUFTX0NBU19MVEVfUE9XRVJfT05fSU5ELAorICAgIE1TR19JRF9FQVNfQ0FTX0xURV9QT1dFUl9PRkZfSU5ELAorICAgIE1TR19JRF9DQVNfRUFTX0xURV9NRUFTVVJFTUVOVF9DTkYsCisgICAgTVNHX0lEX0NBU19FQVNfTFRFX01FQVNVUkVNRU5UX0lORCwKKyAgICBNU0dfSURfQ0FTX0VBU19FVkFMVUFURV9FQ0VMTF9DTkYsCisgICAgTVNHX0lEX0NBU19FQVNfRVZBTFVBVEVfRUNFTExfU1RPUF9DTkYsCisgICAgTVNHX0lEX0NBU19FQVNfQUNUSVZBVEVfRUNFTExfQ05GLAorICAgIE1TR19JRF9FQVNfQ0FTX0NPTkZJR19DQ0VMTF9NRUFTX1JFUSwKKyAgICBNU0dfSURfRUFTX0NBU19SRVBPUlRfQ0dJX1JFUSwKKyAgICBNU0dfSURfRUFTX0NBU19BQ1RJVkFURV9DQ0VMTF9SRVEsCisgICAgTVNHX0lEX0VBU19DQVNfUEFSQU1fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfRVJSQ19DTENfTFRFX1NDQU5fQzJLX0FDVElWRV9QQVJBTVNfSU5ELAorICAgIE1TR19JRF9DMktfTVJTX0NBU19PQ0NVUFlfTExBX1JFUSwKKyAgICBNU0dfSURfQzJLX01SU19DQVNfUkVMRUFTRV9MTEFfUkVRLAorICAgIE1TR19JRF9DMktfTVJTX0NBU19HRVRfTExBX09DQ1VQWV9SQVRfUkVRLAorCisgICAgTVNHX0lEX0NMQ19DTURfTVNHSURfTlVNLAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfQ0xDX0NPREVfVEFJTCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBGaWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kb19mY3BfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RvX2ZjcF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkZDFiYzUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kb19mY3BfbXNnaWQuaApAQCAtMCwwICsxLDIzMiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCIiTUVESUFURUsgU09GVFdBUkUiIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiIkFTLUlTIiIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU0tBTF9UUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIgorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU0tBTF9UUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgIEZJTEUgTkFNRTogIGZjcF9tc2dpZC5oCisKKyAgREVTQ1JJUFRJT046CisKKyAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmVuaXRpb25zIG9mIGFsbCB0aGUgRkNQIG1zZyBpZCdzLgorICAgIAorICBISVNUT1JZICAgICA6ICAgIAorICAgIDEuRmlsZSBDcmVhdGUgYnkgYXRsYXMueHUsIDIwMTYsMSwyNyAgICAKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0ZDUF9NU0dfSURfSAorI2RlZmluZSBfRkNQX01TR19JRF9ICisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIENvbW1hbmQgTWVzc2FnZSBJRHMsIGZvciBGQ1AgdGFzaywgZm9yIEZDUF9DTURfTUFJTEJPWCwgRVhFX01BSUxCT1hfMV9JRAorICAgICBUaGUgbWVzc2FnZSBJRHMgZm9yIGNvbXBvbmVudHMgc2hhbGwgYWxzbyBiZSBwdXQgaW4gaGVyZS4KKyAgICAgU2F0eWE6IEFkZCBhbGwgdGhlIFBLVF9TSU0gcmVsYXRlZCBtZXNzYWdlcyBpbnRvIHRoZSBhcmVhIHRoYXQgaXMgZGVmaW5lZAorICAgICBiZXR3ZWVuICNpZmRlZi8jZW5kaWYuLkNvbnRhY3QgbWUsIGlmIHlvdSBuZWVkIGFueSBjbGFyaWZpY2F0aW9ucyEuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfRkNQX0NPREVfQkVHSU4pCisKKyAgICBNU0dfSURfRkNQX0NNRF9NU0cgPSBNU0dfSURfRkNQX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0ZDUF9UU1RfQ0NNX0lOSVRJQUxJWkUsCisgICAgTVNHX0lEX0ZDUF9UU1RfQ0NNX0FDVElWQVRFLAorICAgIE1TR19JRF9GQ1BfVFNUX0NDTV9ERUFDVElWQVRFLAorICAgIE1TR19JRF9GQ1BfVFNUX01BQ19QS1RfTElTVF9JTlRFR1JJVFksCisgICAgTVNHX0lEX0ZDUF9UU1RfQ09OTl9MQVlFUl9QS1RfTElTVF9JTlRFR1JJVFksCisgICAgTVNHX0lEX0ZDUF9TVEFSVF9QQ1BGX09QRVJBVElPTlMsCisgICAgTVNHX0lEX0ZDUF9TVEFSVF9TVFJFQU1fTEFZRVJfT1BFUkFUSU9OUywKKyAgICBNU0dfSURfRkNQX0JSUF9GV0RfUEtUX01TRywKKyAgICBNU0dfSURfRkNQX1JNQ180X1NMT1RfSU5EX01TRywgICAgCisgICAgTVNHX0lEX0ZDUF9DTURfTVNHX0xBU1QsICAgICAvLyA9IEZDUF9DTURfTVNHSURfRU5EIAorCisgICAgLyogRkNQIGNvbW1vbiBFWEUgbWVzc2FnZXMgc2VnbWVudCAqLworICAgIE1TR19JRF9GVE1fTVNHLAorICAgIE1TR19JRF9GVE1fUlVQX0FDVElWQVRFX01TRywKKyAgICBNU0dfSURfRlRNX1JVUF9ERUFDVElWQVRFX01TRywKKyAgICBNU0dfSURfRlRNX1JVUF9UQ0FfTVNHLAorICAgIE1TR19JRF9GVE1fRlRBUF9EUkNfQUNLX0NPTkZJR19NU0csICAgIAorICAgIE1TR19JRF9GVE1fTVNHX0xBU1QsICAgCisgIAorICAgIC8qIEFsbCBDQ00gTWVzc2FnZXMuLiAgKi8KKyAgICBNU0dfSURfQ0NNX01TRywKKyAgICBNU0dfSURfQ0NNX0FNUF9BVElMSVNUX01TRywKKyAgICBNU0dfSURfQ0NNX1NDTV9TRVNTSU9OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX0NDTV9TQ01fU0VTU0lPTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9DQ01fU0NNX0tFRVBBTElWRV9SRVNFVF9NU0csCisgICAgTVNHX0lEX0NDTV9TQ01fS0VFUEFMSVZFX0NGR19NU0csCisgICAgTVNHX0lEX0NDTV9JTlNQX0FDVElWQVRFX0NNRCwKKyAgICBNU0dfSURfQ0NNX0lOU1BfREVBQ1RJVkFURV9DTUQsICAKKyAgICBNU0dfSURfQ0NNX0FMTVBfREVBQ1RJVkFURV9DTUQsIAorICAgIE1TR19JRF9DQ01fSURQX0FDVElWQVRFX0NNRCwgCisgICAgTVNHX0lEX0NDTV9JRFBfREVBQ1RJVkFURV9DTUQsIAorICAgIE1TR19JRF9DQ01fQ1NQX0FDVElWQVRFX0NNRCwgCisgICAgTVNHX0lEX0NDTV9DTENfU1VQX1RJTUVSX1JTVF9DTUQsCisgICAgTVNHX0lEX0NDTV9NU0dfTEFTVCwKKyAgCisgICAgLyogQWxsIFBDUEYgTWVzc2FnZXMgICovCisgICAgTVNHX0lEX1BDUEZfTVNHLAorICAgIE1TR19JRF9QQ1BGX01TR19MQVNULCAgICAKKyAgICBNU0dfSURfRkNQX1JDUF9TVFJFQU1fQ09ORklHX01TRywKKyAgICAKKyAgICAvKiBBbGwgRFNBRiBNZXNzYWdlcyAqLworICAgIE1TR19JRF9EU0FGX01TRywKKyAgICBNU0dfSURfRFNBRl9GV0RfTVNHLAorICAgIE1TR19JRF9EU0FfQ0NNX0lOVEVSUlVQVEVEX0lORCwKKyAgICBNU0dfSURfRFNBRl9SVVBfQ09OTkVDVElPTl9JTklUX01TRywKKyAgICBNU0dfSURfRFNBRl9SVE1fTElOS19BQ1FfTVNHLAorICAKKyAgICBNU0dfSURfRFNBRl9NU0dfTEFTVCwgICAgCisgIAorICAgIC8qQWxsIFBBRiBNZXNzYWdlICovCisgICAgTVNHX0lEX1BBRl9NU0csCisgICAgTVNHX0lEX1BBRl9JRFBfQ09OTl9PUEVORURfTVNHLAorICAgIE1TR19JRF9QQUZfQ1NQX0NPTk5fQ0xPU0VEX01TRywKKyAgICBNU0dfSURfUEFGX0hMUF9GTE9XX0NUUkxfTVNHLAorICAgIE1TR19JRF9QQUZfUkNQX1NFU1NJT05fQ09ORklHX01TRywKKyAgICBNU0dfSURfUEFGX1RJTUVSX0VYUElSRURfTVNHLAorICAgIE1TR19JRF9QQUZfUkxQX1JFU0VUX1JFUV9NU0csCisjaWZkZWYgUEtUX1RFU1QKKyAgICBNU0dfSURfUEFGX09UVFNfRldEX0RBVEFfSU5EX01TRywKKyNlbmRpZgorICAKKyAgICBNU0dfSURfUEFGX1JVUF9ORVRXT1JLX0xPU1RfTVNHLAorICAgIE1TR19JRF9QQUZfSExQX1NUT1BfU1ZDU1RSTV9YT0ZGX01TRywKKyAgICBNU0dfSURfRkNQX0NNRF9NU0dJRF9EUEFSX0xBU1QsCisgIAorICAgIC8qIE1US19QTFRfT05fUENfVVQgKi8KKyAgICBNU0dfSURfRkNQX1RFU1RfRFNBUl9SRVZfTVNHLAorICAgIE1TR19JRF9GQ1BfVEVTVF9QQUZfREFUQV9JTkRfTVNHLAorICAgIE1TR19JRF9GQ1BfVEVTVF9SRVZfREFUQV9SRVFfTVNHLAorICAgIE1TR19JRF9GQ1BfVEVTVF9STV9EQVRBX1JFVl9NU0csCisgICAgTVNHX0lEX0ZDUF9URVNUX1JUTV9EQVRBX0lORF9NU0csCisgICAgTVNHX0lEX1JDUF9URVNUX0RTQVJfUkVWX01TRywKKyAgCisgICAgLypGVEFQRiBtZXNzYWdlKi8KKyAgICBNU0dfSURfRlRBUF9DQ01fRklSU1RfU1lOQ19DQ19NU0csCisgICAgTVNHX0lEX0ZUQVBfUlVQX0lETEVIT19NU0csCisgICAgTVNHX0lEX0ZUQVBfUlVQX1NFUlZJTkdfU0VDVE9SX01TRywKKyAgICBNU0dfSURfRlRBUF9SVVBfVFJBRkZJQ0NIQU5BU1NJR05fTVNHLAorICAgIE1TR19JRF9GVEFQX0FMTVBfU1RfVVBEQVRFX01TRywKKyAgICBNU0dfSURfRlRBUF9BTE1QX0NPTk5fT1BFTkVEX01TRywKKyAgICBNU0dfSURfRlRBUF9BTE1QX0NPTk5fUkVMRUFTRURfTVNHLAorICAgIE1TR19JRF9GVEFQX0FMTVBfQ09OTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9GVEFQX0FMTVBfQ09OTl9GQUlMRURfTVNHLAorICAgIE1TR19JRF9GVEFQX0ZUQVBSX0lOSVRfTVNHLAorICAgIE1TR19JRF9GQ1BfRVRTX0ZUQVBfU1RBVFNfQ0xSX1JFUV9NU0csCisgICAgTVNHX0lEX0ZDUF9FVFNfRlRBUF9TVEFUU19HRVRfUkVRX01TRywKKyAgICBNU0dfSURfRkNQX0NNRF9NU0dJRF9GVEFQX0xBU1QsCisgIAorICAgIE1TR19JRF9GVEFQX1RFU1RfVElNRVJfRVhQX01TRywKKyAgICBNU0dfSURfRlRBUF9URVNUX1NUQVJUX01TRywKKyAgICBNU0dfSURfRlRBUF9URVNUX0NMT1NFX01TRywgICAgCisgICAgTVNHX0lEX0ZDUF9EQVRBX01TR0lEX0xBU1QsCisgIAorICAgIC8qIEFsbCBPVEEgbWVzc2FnZXM6IFNhdHlhOiBBbSByZWFsbHkgbm90IHN1cmUgZm9yIHRoZSBuZWVkIGZvciB0aGlzICovCisgICAgTVNHX0lEX0ZDUF9PVEFfTVNHLAorICAgIE1TR19JRF9GQ1BfT1RBX01TR0lEX0xBU1QsCisgIAorICAgIC8qIE9OX1BDX1VUICovCisgICAgTVNHX0lEX1VUX0NDTV9BTVBfQVRJTElTVF9NU0csCisgICAgTVNHX0lEX1VUX0ZDUF9DQ01fQ09NTUlUX01TRywKKyAgICBNU0dfSURfVVRfRkNQX0ZXRF9EQVRBX0lORF9NU0csCisgICAgTVNHX0lEX1VUX0ZDUF9EU0FGX0ZXRF9NU0csCisgICAgTVNHX0lEX1VUX0ZDUF9ITFBfUkVWX0RBVEFfUkVRX01TRywKKyAgICBNU0dfSURfVVRfRkNQX0ZUTV9TRVRfQVRUUklCX01TRywKKyAgICBNU0dfSURfVVRfRkNQX0ZUTV9HRVRfQVRUUklCX01TRywgIAorICAgIE1TR19JRF9VVF9GQ1BfRlRNX0dFVF9BVFRSSUJfUlNQX01TRywgICAgCisgICAgTVNHX0lEX1VUX0ZDUF9DQ01fRUZVU0VfRVJST1JfTVNHLAorICAKKyAgICBNU0dfSURfRkNQX0VUU19TRU5EX01BQ1BLVF9NU0csCisgICAgTVNHX0lEX0ZDUF9FVFNfQ0NNX0FDVElWQVRFLAorICAgIE1TR19JRF9GQ1BfRVRTX0NDTV9ERUFDVElWQVRFLAorICAgIE1TR19JRF9GQ1BfRVRTX0ZXRF9PVEFfTVNHLAorICAgIE1TR19JRF9GQ1BfRVRTX0ZXRF9URVNUX01PREVfTVNHLAorICAgIE1TR19JRF9GQ1BfRVRTX1NFTkRfT1ZFUkhFQURfTVNHLAorICAgIE1TR19JRF9GQ1BfRVRTX1NFTkRfSFdfVFJJR19NU0csCisgICAgTVNHX0lEX0ZDUF9FVFNfREVTSUdOQVRFX0RSQ19NU0csCisgICAgTVNHX0lEX0ZDUF9FVFNfUEFDS0VUX1BFUkZfU1RBVF9SRVNFVF9NU0csCisgICAgTVNHX0lEX0ZDUF9FVFNfTVNHX0JMT0NLX0NGR19NU0csCisgIAorICAgIC8qIE1US19ERVZfT1BUSU1JWkVfRVZMMSAqLworICAgIE1TR19JRF9GQ1BfRVRTX0ZJWF9EUkNWQUxfTVNHLAorICAKKyAgICAvKiBNVEtfREVWX09QVElNSVpFX0VWTDIgKi8KKyAgICBNU0dfSURfRkNQX0VUU19TRVRfU1RBVF9QRVJJT0RfTVNHLAorICAgICAgICAKKyAgICBNU0dfSURfRFNBRl9TTFBfQlVGX0ZSRUVfTVNHLAorCisgICAgTVNHX0lEX0ZDUF9SQ1BfQUNDRVNTX0lOSVRJQVRFX01TRywKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX0ZDUF9DT0RFX1RBSUwpCisKKyNlbmRpZgorCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RvX3JjcF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZG9fcmNwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZjYjhmZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RvX3JjcF9tc2dpZC5oCkBAIC0wLDAgKzEsMzA1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRklMRSBOQU1FICAgOmRvX3JjcF9tc2dpZC5oCisqCisqIERFU0NSSVBUSU9OIDoKKyoKKyoKKyoKKyogSElTVE9SWSAgICAgOgorKiAgICAgU2VlIExvZyBhdCBlbmQgb2YgZmlsZQorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmNsdWRlIEZpbGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZm5kZWYgX0RPX1JDUF9NU0dfSURfSAorI2RlZmluZSBfRE9fUkNQX01TR19JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZmRlZiAgSFdEX01TR19JRF9NSVNNQVRDSF9ERVRFQ1QKKyNkZWZpbmUgIFJDUFZhbGlkTXNnSWRMaXN0IEh3ZFJjcFZhbGlkTXNnSWRMaXN0CisjZWxzZQorI2RlZmluZSAgUkNQVmFsaWRNc2dJZExpc3QgUmNwVmFsaWRNc2dJZExpc3QKKyNlbmRpZgorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9SQ1BfQ09ERV9CRUdJTiApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLSovCisgICAgLyogUkNQIFRhc2sgTXNncyAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfUkNQX1JNQ19SRlJFQURZX01TRyA9IE1TR19JRF9SQ1BfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfUkNQX1JNQ19SRlJFTEVBU0VfTVNHLAorICAgIE1TR19JRF9SQ1BfU0hfUkZSRUxFQVNFX01TRywKKyAgICBNU0dfSURfUkNQX1NIX1JGUkVBRFlfTVNHLAorICAgIE1TR19JRF9SQ1BfU0NQX1JFQ09ORklHVVJFRF9JTkQsCisgICAgTVNHX0lEX1JDUF9BTVBfQVRJTElTVF9NU0csCisgICAgTVNHX0lEX1NUUl9TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfU1RSMV9TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfU1RSMl9TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfU1RSM19TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfU1RSX1NDUF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9TVFIxX1NDUF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9TVFIyX1NDUF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9TVFIzX1NDUF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9SQ1BfQVBQX1RPX05FR19TRVRfTVNHLAorCisgICAgTVNHX0lEX1JDUF9DU01fQUNUSVZFX01TRywKKyAgICBNU0dfSURfUkNQX0NTTV9ERUFDVElWRV9NU0csCisgICAgTVNHX0lEX1JDUF9DU01fU0VDVE9SX0lORk9fUkVRX01TRywKKyAgICBNU0dfSURfUkNQX0NTTV9TRUNUT1JfSU5GT19VUERBVEVfTVNHLAorICAgIE1TR19JRF9SQ1BfQ1NNX1NFQ1RPUl9DMklfVVBEQVRFX01TRywKKyAgICBNU0dfSURfUkNQX0NTTV9ET05FX01TRywKKyAgICBNU0dfSURfUkNQX0NTTV9GT1JDRV9ERURJQ0FURV9DT1ZFUl9NU0csCisgICAgTVNHX0lEX1JDUF9DU01fSFNDX1BSRUVNUFRfTVNHLAorICAgIE1TR19JRF9SQ1BfQ1NNX0hTQ19SRVNVTUVfTVNHLAorICAgIE1TR19JRF9SQ1BfQ1NNX1RYX0ZSRUVaRV9NU0csCisgICAgTVNHX0lEX1JDUF9DU01fVFhfVU5GUkVFWkVfTVNHLAorICAgIE1TR19JRF9SQ1BfQ1NNX1RDQV9JTkRfTVNHLAorICAgIE1TR19JRF9SQ1BfQ1NNX0MySV9SRF9NU0csCisgICAgTVNHX0lEX1JDUF9DU01fU1VTUEVORF9NU0csCisgICAgTVNHX0lEX1JDUF9DU01fUkVTVU1FX01TRywKKyAgICBNU0dfSURfUkNQX0NTTV9DRUxMU1dSRFlfTVNHLAorICAgIE1TR19JRF9SQ1BfQ1NNX0hTQ19QUkVFTVBUX1RJTUVfVVBfTVNHLAorICAgIE1TR19JRF9SQ1BfUkZfVFNUX1BPV0VSX0NPTlRST0xfTVNHLAorICAgIE1TR19JRF9SQ1BfVFhBR0NfUlRDX1BXUl9SRUZfUEFSQU1fTVNHLAorICAgIE1TR19JRF9SQ1BfQURKX1VQREFURV9NU0csCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBBQ00gKEFDTUFDKSBjb21wb25lbnQgKi8KKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfQUNNX1JVUF9BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX0FDTV9SVVBfREVBQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX0FDTV9SVVBfQUNDRVNTX0hPX0lORF9NU0csCisgICAgTVNHX0lEX0FDTV9PTVBfU0VDVE9SUEFSTVNfVVBEQVRFRF9NU0csCisgICAgTVNHX0lEX0FDTV9EU0FfQUREX0JZVEVfTVNHLAorICAgIE1TR19JRF9BQ01fVElNRVJfRVhQSVJFRF9NU0csCisgICAgTVNHX0lEX0FDTV9TQ1BfUkVDT05GSUdVUkVEX01TRywKKyAgICBNU0dfSURfQUNNX1NDUF9DT01NSVRURURfTVNHLAorICAgIE1TR19JRF9BQ01fUFJPVF9TVE9QX0FDQ0VTU19NU0csCisgICAgTVNHX0lEX0VMVF9BQ01fU1VQRVJWSVNJT05fRVhQSVJFRF9DTURfTVNHLAorICAgIE1TR19JRF9SQ1BfQ01EX01TR0lEX0FDTV9MQVNULAorCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgLyogUlRNIChSVENNQUMpIGNvbXBvbmVudCAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfUlRNX1JVUF9BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX1JUTV9SVVBfREVBQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX1JUTV9SVVBfVENIQVNTSUdOX01TRywKKyAgICBNU0dfSURfUlRNX0FNUF9UWEFUSV9VUERBVEVfTVNHLAorICAgIE1TR19JRF9SVE1fT01QX1NFQ1RPUlBBUk1TX01TRywKKyAgICBNU0dfSURfUlRNX0ZUTV9DRkdfREFUQV9NU0csCisgICAgTVNHX0lEX1JUTV9TTVBfU0VTU0lPTl9PUEVOX01TRywKKyAgICBNU0dfSURfUlRNX0NTU19TRUFSQ0hfRU5EX01TRywKKyAgICBNU0dfSURfUlRNX1JUQVBfTU9ERV9NU0csCisgICAgTVNHX0lEX1JUTV9UTVJfRVhQSVJFRF9NU0csCisgICAgTVNHX0lEX1JUTV9TQ1BfUkVDT05GSUdVUkVEX01TRywKKyAgICBNU0dfSURfUlRNX1NDUF9DT01NSVRURURfTVNHLAorICAgIE1TR19JRF9SVE1fRFJDX1RYX0NPTlRST0xfTVNHLCAvKiBEUkMgc3VwZXJ2aXNpb24gcHJvY2VzcyBUeCBjb250cm9sIE1zZyAqLworICAgIE1TR19JRF9SVE1fVFhPRkZfSU5JVF9CVUZGRVJfTVNHLAorICAgIE1TR19JRF9SQ1BfSVJBVF9UWF9QV1JfUkVRLAorICAgIE1TR19JRF9SQ1BfQ01EX01TR0lEX1JUTV9MQVNULAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBEU0FSIGNvbXBvbmVudCAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX0RTQVJfUkVWX01TRywKKyAgICBNU0dfSURfRFNBUl9UWF9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9EU0FSX0RTQUZfQUNLX01TRywKKyAgICBNU0dfSURfRFNBUl9EU0FGX0FDS19SRVFfTVNHLAorICAgIE1TR19JRF9EU0FSX1RJTUVfRVhQX01TRywKKyAgICBNU0dfSURfRFNBUl9EU0FGX1JFU0VUX01TRywKKyAgICBNU0dfSURfRFNBUl9SVVBfQ09OTkVDVElPTl9JTklUX01TRywKKyAgICBNU0dfSURfRFNBUl9SVE1fTElOS19BQ1FfTVNHLAorICAgIE1TR19JRF9EU0FSX0FMTVBfQ09OTkVDVElPTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9EU0FSX0FMTVBfREVMX01TRywKKyAgICBNU0dfSURfRFNBUl9BTVBfUkVTRVRfTVNHLAorICAgIE1TR19JRF9EU0FSX1JVUF9JRExFX0hIT19NU0csCisgICAgTVNHX0lEX0RTQVJfUlVQX0RFTF9NU0csCisgICAgTVNHX0lEX0RTQVJfQUxNUF9QT1dFUl9ET1dOX01TRywKKyAgICBNU0dfSURfRFNBUl9DU1NfQ0hBTl9TQ0FOX1NUQVJUX01TRywKKyAgICBNU0dfSURfRFNBUl9DU1NfQ0hBTl9TQ0FOX0RPTkVfTVNHLAorICAgIE1TR19JRF9EU0FSX0lEUF9UWF9BVkFJTF9NU0csCisgICAgTVNHX0lEX0RTQVJfSURQX1RYX1VOQVZBSUxfTVNHLAorICAgIE1TR19JRF9EU0FSX0lEUF9UWF9VUERBVEVfTVNHLAorICAgIE1TR19JRF9EU0FSX1NFTlRfSU5EX01TRywKKyAgICBNU0dfSURfRFNBUl9OT1RfU0VOVF9JTkRfTVNHLAorICAgIE1TR19JRF9EU0FSX1JFVl9NVUxUSV9NU0csCisgICAgTVNHX0lEX0RTQVJfT1RBX01TRywKKworICAgIE1TR19JRF9SQ1BfQ01EX01TR0lEX0RTQVJfTEFTVCwKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBQQVIgY29tcG9uZW50ICovCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9QQVJfSExQX0RBVEFfVFhfTVNHLAorICAgIE1TR19JRF9QQVJfQUNDRVNTX1RJTUVSX0VYUElSRV9NU0csCisgICAgTVNHX0lEX1BBUl9TRVJWSUNFX1RJTUVSX0VYUElSRV9NU0csCisgICAgTVNHX0lEX1BBUl9EU0FfRldEX01TRywKKyAgICBNU0dfSURfUEFSX1BBRl9GTE9XQ1RMX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1BBUl9QQUZfUkxQX1JFU0VUX1JFUV9NU0csCisgICAgTVNHX0lEX1BBUl9JRFBfQ09OTl9PUEVORURfTVNHLAorICAgIE1TR19JRF9QQVJfQ1NQX0NPTk5fQ0xPU0VfTVNHLAorICAgIE1TR19JRF9QQVJfSExQX0RPU19UWF9NU0csCisgICAgTVNHX0lEX1BBUl9SRVNFUlZBVElPTl9UUkFOU0lUSU9OX1RJTUVSX0VYUElSRV9NU0csCisgICAgTVNHX0lEX1BBUl9HQVVQX1RNX0VYUElSRV9NU0csCisgICAgTVNHX0lEX1BBUl9RT01fUkVTRVJWQVRJT05fUkVRX01TRywKKyAgICBNU0dfSURfUEFSX1FPTV9TRU5EX1FPU1JFUVVFU1RfTVNHLAorCisgICAgLypFTUZQQSovCisgICAgTVNHX0lEX1BBUl9QQUZfUlNQX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1BBUl9MVVBfVU5TT0xJQ0lURURfQ0ZHX01TRywKKyAgICBNU0dfSURfUEFSX0hMUF9DTEVBTlVQX1FVRVVFX01TRywKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgLyogUlRBUCBjb21wb25lbnQgKi8KKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX1JUQVBfQUxNUF9DT05OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX1JUQVBfQUxNUF9DT05OX1JFTEVBU0VEX01TRywKKyAgICBNU0dfSURfUlRBUF9BTE1QX0NPTk5fQ0xPU0VEX01TRywKKyAgICBNU0dfSURfUlRBUF9BTE1QX0NPTk5fRkFJTEVEX01TRywKKyAgICBNU0dfSURfUlRBUF9USU1FUl9FWFBJUkVEX01TRywKKyAgICBNU0dfSURfUlRBUF9CVVJTVFRJTUVSX0VYUElSRURfTVNHLAorICAgIE1TR19JRF9SVEFQX0RTQV9GV0RfTVNHLAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBGVEFQIGNvbXBvbmVudCAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfRlRBUFJfRlRBUEZfTE9PUEJBQ0tfU1RBVFVTX01TRywKKyAgICBNU0dfSURfRlRBUFJfRlRBUEZfVEVTVF9QS1RfTVNHLAorICAgIE1TR19JRF9GVEFQUl9SVE1fU1RBVFVTX01TRywgLypJZiBSVE0gaXMgT0ssIHRoaXMgbWVzc2dlIHdpbGwgYmUgdXNlZCBhbnkgbW9yZS4qLworI2lmZGVmIE9UVFMKKyAgICBNU0dfSURfRlRBUFJfVEVTVF9QS1RfTVNHLAorI2VuZGlmCisKKworI2lmIGRlZmluZWQgKFBLVF9TSU0pIHx8IGRlZmluZWQgKE1US19QTFRfT05fUEMpCisgICAgTVNHX0lEX1JDUF9UU1RfQ1JFQVRFX01BQ19GTE9XX0xJU1QsCisgICAgTVNHX0lEX1JDUF9UU1RfTUFDX0ZMT1dfTElTVF9JTlRFR1JJVFksCisgICAgTVNHX0lEX1JDUF9UU1RfQ09NTUlUX0FQUF9GTl9QVFJTLAorICAgIE1TR19JRF9SQ1BfVFNUX0FERF9NU0dfVE9fUVVFLAorICAgIE1TR19JRF9SQ1BfVFNUX1BSSU5UX0FQUF9RVUVTLAorICAgIE1TR19JRF9SQ1BfVFNUX0dSQU5UX01TRywKKyAgICBNU0dfSURfUkNQX1RTVF9QUklOVF9BU1NFTUJMRURfUEtUX0xJU1QsCisgICAgTVNHX0lEX1JDUF9UU1RfUEtUX1NFTlQsCisgICAgTVNHX0lEX1JDUF9UU1RfUEtUX05PVF9TRU5ULAorICAgIE1TR19JRF9SQ1BfVFNUX1BIWV9UUkFGRklDX0FDS0VELAorICAgIE1TR19JRF9SQ1BfVFNUX1BIWV9UUkFGRklDX01JU1NFRCwKKyAgICBNU0dfSURfQUNNX1BLVFNJTV9SRVRfQUNNX1NFQ19QS1RfQ01EX01TRywKKyAgICBNU0dfSURfUkNQX1BLVFNJTV9TRU5EX1BLVF9MSVNUX0VYRV9NU0dfQ01EX01TRywgIC8qX01zZ1N0cnVjdCBQa3RTaW1TZW5kUGt0TGlzdEV4ZU1zZ1QqLworICAgIE1TR19JRF9SQ1BfUEtUU0lNX1NFTkRfUEFZTEFPRF9DTURfTVNHLAorICAgIE1TR19JRF9SQ1BfUEtUU0lNX1NFTkRfREFUQVBLVF9DTURfTVNHLCAgICAgICAgICAgLypfTXNnU3RydWN0IFBrdFNpbUZvcm1EYXRhUGt0TXNnVCovCisjZW5kaWYKKyAgICBNU0dfSURfQVVUSF9TSEFfS0VQX1JQQ0FVVEhLRVlfTVNHLAorICAgIE1TR19JRF9BVVRIX1VQREFURV9TRUNUT1JJRF9NU0csCisKKyAgICAvKiBSQ1AgVVQgTXNncyAqLworICAgIE1TR19JRF9VVF9EU0FSX1JFVl9NU0csCisgICAgTVNHX0lEX1VUX1BBUl9ITFBfREFUQV9UWF9NU0csCisgICAgTVNHX0lEX1VUX1JDUF9EU0FGX0ZXRF9NU0csCisgICAgTVNHX0lEX1VUX1JDUF9ETUFfREFUQV9SRVFfTVNHLAorICAgIE1TR19JRF9VVF9SQ1BfUlRNX0NPTU1JVF9NU0csCisgICAgTVNHX0lEX1VUX1NUUkVBTV9DT01NSVRfTVNHLAorICAgIE1TR19JRF9VVF9TVFJFQU0xX0NPTU1JVF9NU0csCisgICAgTVNHX0lEX1VUX1NUUkVBTTJfQ09NTUlUX01TRywKKyAgICBNU0dfSURfVVRfU1RSRUFNM19DT01NSVRfTVNHLAorICAgIE1TR19JRF9VVF9TRVRfU1RET19NU0csCisgICAgTVNHX0lEX1VUX01CUF9NQUNfQklUU19PVVRQVVRfTVNHLAorICAgIE1TR19JRF9VVF9BQ01fTE9HX09VVF9TSUdOQUxfTVNHLAorICAgIE1TR19JRF9VVF9SQ1BfQUNNX0NPTU1JVF9NU0csCisgICAgTVNHX0lEX1VUX1BBUl9EU0FfRldEX01TRywKKyAgICBNU0dfSURfVVRfUEFSX1FPTV9TRU5EX1FPU1JFUVVFU1RfTVNHLAorICAgIE1TR19JRF9VVF9SVE1fU1dFRVBfTU9ERV9BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX1VUX1JUTV9TV0VFUF9NT0RFX0RFQUNUSVZBVEVfTVNHLAorICAgIC8qIEFjY2VzcyAqLworICAgIE1TR19JRF9VVF9BQ01fUFJFQU1CTEVfU1RBUlRfTVNHLAorICAgIE1TR19JRF9VVF9BQ01fREFUQV9SRVFfTVNHLAorICAgIE1TR19JRF9VVF9BQ01fVFJBTlNfU1RPUF9NU0csCisgICAgLyogVHJhZmZpYyAqLworICAgIE1TR19JRF9VVF9SVE1fUEFSQU1fSU5JVF9NU0csCisgICAgTVNHX0lEX1VUX1JUTV9QQVJBTV9SRUNGR19NU0csCisgICAgTVNHX0lEX1VUX1JUTV9UUkFOU19TVEFSVF9NU0csCisgICAgTVNHX0lEX1VUX1JUTV9EQVRBX1JFUV9NU0csCisgICAgTVNHX0lEX1VUX1JUTV9UUkFOU19TVE9QX01TRywKKworICAgIC8qIEFVVEggc2VnbWVudCAqLworICAgIE1TR19JRF9BVVRIX1NDUF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9BVVRIX1NDUF9DT01NSVRURURfTVNHLAorCisgICAgLyogU0VDIHNlcW1lbnQqLworICAgIE1TR19JRF9TRUNfU0NQX1JFQ09ORklHVVJFRF9NU0csCisgICAgTVNHX0lEX1NFQ19TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfUkNQX0NNRF9NU0dJRF9TTF9MQVNULAorCisKKyAgICBNU0dfSURfUkNQX1RBU0tfU0lHTkFMLAorICAgIE1TR19JRF9BQ01fUFJFQU1CTEVfU0lHTkFMLAorICAgIE1TR19JRF9BQ01fREFUQV9TSUdOQUwsCisgICAgTVNHX0lEX0FDTV9QU1RfREVMQVlfU0lHTkFMLAorICAgIE1TR19JRF9BQ01fSU5URVJfU0VRVUVOQ0VfU0lHTkFMLAorICAgIE1TR19JRF9BQ01fVFhPRkZfQ0JfU0lHTkFMLAorICAgIE1TR19JRF9BQ01fVFhPTl9DQl9TSUdOQUwsCisgICAgTVNHX0lEX1BBUl9ITFBfREFUQV9UWF9TSUdOQUwsCisgICAgTVNHX0lEX1BBUl9ITFBfREFUQV9UWDJfU0lHTkFMLAorICAgIE1TR19JRF9QQVJfUEhZTUlTU0VETElTVF9VUERBVEVfU0lHTkFMLAorICAgIE1TR19JRF9SQ1BfU0lHTkFMX01TR0lEX0xBU1QsCisKKyAgICBNU0dfSURfUkNQX1NIX0NSQ1JFQURZX01TRywKKyAgICBNU0dfSURfUkNQX1RTVF9UWF9DRE1BX0NUUkxfTVNHLAorICAgIE1TR19JRF9SQ1BfVFNUX1RYX0FHQ19DVFJMX01TRywKKyAgICBNU0dfSURfUkNQX0FDQ19SVEJfTVNHLAorCisgICAgTVNHX0lEX1JDUF9DUF9CVUZfTElTVF9NU0csCisgICAgTVNHX0lEX1JDUF9QS1RfSU5GT19NU0csCisKKyAgICBNU0dfSURfRU1fUkNQX1RSQUZGSUNfSU5GT19UUkFOU19NU0csCisgICAgTVNHX0lEX0VNX0FDTV9TVEFURV9JTkZPX1RSQU5TX01TRywKKyAgICBNU0dfSURfRU1fUlRNM19UMlBfSU5GT19UUkFOU19NU0csCisKKyAgICBNU0dfSURfVVRTX1JDUF9SSV9NU0dfVE9fUkNQX01TRywKKworICAgIC8qIGFkZCBjb21taXQgbXNnIHRvIGF2b2lkIFJDUCBTTVAgaXNzdWUgKi8KKyAgICBNU0dfSURfU0xDX1JUTV9DT01NSVRfTVNHLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JDUF9DT0RFX1RBSUwgKQorCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kb19ybWNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2RvX3JtY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMTkwNmIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kb19ybWNfbXNnaWQuaApAQCAtMCwwICsxLDMyNSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OiAgCisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICBGSUxFIE5BTUU6ICBkb19ybWNfbXNnaWQuaAorCisgIERFU0NSSVBUSU9OOgorCisgICAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZlbml0aW9ucyBvZiBhbGwgdGhlIFJNQyBtc2cgaWQncy4KKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0RPX1JNQ19NU0dJRF9IXworI2RlZmluZSBfRE9fUk1DX01TR0lEX0hfCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluY2x1ZGUgRmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI3VuZGVmIE1TR0lEX1NFVAorI3VuZGVmIE1TR0lEX05FWFQKKworCisKKworLyogTWVzc2FnZXMgaGFuZGxlZCBieSBSTUMgdGFzaworICAgTk9URTogRm9sbG93aW5nIG1lc3NhZ2VzIGFyZSBwcm9jZXNzZWQgYnkgUk1DIGJ1dCBkZWZpbmVkIGFzIE1QQSBtZXNzYWdlcyhpbiBNcGFDbWRJZFQpCisgICAgICAgICBzaW5jZSB0aGV5IGFyZSB1c2VkIGFsc28gYnkgTDFECisgICBNUEFfUkZfQU5URU5OQV9SRUxFQVNFX1JFUV9NU0csCisgICBNUEFfUkZfQU5URU5OQV9BU1NJR05fTVNHLAorKi8KK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX1JNQ19DT0RFX0JFR0lOKQorCisKKyAgICAvKiBSTUMgc2VnbWVudCAqLworICAgIE1TR19JRF9STUNfSU5TUF9QSUxPVF9BQ1FfTVNHID0gTVNHX0lEX1JNQ19DT0RFX0JFR0lOLAorICAgIE1TR19JRF9STUNfSU5TUF8xWEFTU0lTVF9ET0FDUV9NU0csCisgICAgTVNHX0lEX1JNQ19BTE1QX05FVFdPUktfUkVTRVRfTVNHLAorICAgIE1TR19JRF9STUNfUkVTRVJWRUQxX01TRywgIC8vUGxhY2UtaG9sZGVyIGZvciBhIGRlcHJlY2F0ZWQgbXNnLiBFbnN1cmVzIHN1Y2NlZWRpbmcgTVNHSURzICBkb250IGNoYW5nZSBudW1lcmljIHZhbHVlcy4gQ2FuIGJlIHVzZWQgZm9yIGFkZGluZyBuZXcgTVNHIGluIHRoZSBmdXR1cmUKKyAgICBNU0dfSURfUk1DX01QQV9SRl9QUkVFTVBUX1JFUV9NU0csCisgICAgTVNHX0lEX1JNQ19NUEFfUkZfU0hVVE9GRl9SRVFfTVNHLAorICAgIE1TR19JRF9STUNfRk1QX01PREVfQ0hBTkdFX01TRywKKyAgICBNU0dfSURfUk1DX0hTQ19SWEFDVElWQVRFX01TRywKKyAgICBNU0dfSURfUk1DX0hTQ19TVE9QX0NNRF9NU0csCisgICAgTVNHX0lEX1JNQ19SRl9ESVZfUkVRX01TRywKKyAgICBNU0dfSURfUk1DX0lOU1BfTkVUV09SS19SRVNFVF9NU0csCisgICAgTVNHX0lEX1JNQ19JTlNQX1BPV0VSX0RPV05fSU5ELAorICAgIE1TR19JRF9STUNfUkVTRVJWRUQyX01TRywgIC8vUGxhY2UtaG9sZGVyIGZvciBhIGRlcHJlY2F0ZWQgbXNnLiBFbnN1cmVzIHN1Y2NlZWRpbmcgTVNHSURzICBkb250IGNoYW5nZSBudW1lcmljIHZhbHVlcy4gQ2FuIGJlIHVzZWQgZm9yIGFkZGluZyBuZXcgTVNHIGluIHRoZSBmdXR1cmUKKyAgICBNU0dfSURfUk1DX1JVUF9SWERFQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9STUNfUlVQX1JYQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9STUNfRVRTX1BSRUVNUFRfTVNHLAorICAgIE1TR19JRF9STUNfRVRTX1JYQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9STUNfSFNDX1NUT1BfVFhfTVNHLAorICAgIE1TR19JRF9STUNfSFdEX1JFU0VUX0FDS19NU0csCisgICAgTVNHX0lEX1JNQ19SU1NJX1JFUE9SVF9BQ0tfTVNHLAorICAgIE1TR19JRF9STUNfSURQX0RETF9DSEFOR0VfTVNHLAorICAgIE1TR19JRF9STUNfUlVQX0RETF9DSEFOR0VfTVNHLAorICAgIE1TR19JRF9STUNfRkhfUkFLRV9ERExfRE9ORV9NU0csCisgICAgLyogT05fUEMgKi8KKyAgICBNU0dfSURfUk1DX1RFTVBfQURKX1VQREFURV9NU0csCisgICAgTVNHX0lEX1JNQ19GUkVRX0FESl9VUERBVEVfTVNHLAorCisgICAgTVNHX0lEX1JNQ19MRUNfTU9CU1lTVEVNT0ZGU0VUX1FVRVJZX01TRywKKyAgICBNU0dfSURfUk1DX0hTQ19TTEVFUF9PVkVSX01TRywKKyAgICBNU0dfSURfUk1DX1RPUF9DTURfTVNHSURfTEFTVCwKKyAgICAvKiBNVEtfREVWX1JGX0NVU1RPTUlaRSAqLworICAgIE1TR19JRF9STUNfUlhfRElWX0NUUkxfQUZURVJfUkZfQ1VTVF9HRVRfTVNHLAorCisgICAgLypJUkFUKi8KKyAgICBNU0dfSURfUk1DX1JVUF9ERlNfSU5GT19NU0csCisgICAgTVNHX0lEX1JNQ19JUkFUTV9DQ0VMTF9NRUFTX1JFUSwKKyAgICBNU0dfSURfUk1DX0lSQVRNX1NZTkNfTVNHLAorICAgIE1TR19JRF9STUNfSVJBVE1fQUNRX0NHSV9SRVEsCisgICAgTVNHX0lEX1JNQ19JUkFUTV9TRVRfUkFUX1JFUSwKKyAgICBNU0dfSURfUk1DX0NMQ19JRExFX01PREVfQ0ZHX01TRywKKyAgICBNU0dfSURfUk1DX0lEUF9BQ0NFU1NfUFJPVEVDVElPTl9NU0csCisgICAgTVNHX0lEX1JNQ19JRFBfVFJBRkZJQ19QUk9URUNUSU9OX01TRywKKworICAgIC8qIFNDSCBzZWdtZW50ICovCisgICAgTVNHX0lEX1NDSF9SVVBfU0VBUkNIUEFSTVNfVVBEQVRFX01TRywgLypfTXNnU3RydWN0IFNjaFBhcm1VcGRhdGVNc2dUKi8KKyAgICBNU0dfSURfU0NIX1JVUF9QSUxPVF9VUERBVEVfTVNHLCAgICAgICAvKl9Nc2dTdHJ1Y3QgU2NoUGlsb3RVcGRhdGVNc2dUKi8KKworICAgIC8qIFNZU19PUFRJT05fU0lOR0xFQ0hJUF9NVUxUSU1PREUsIEFTUEVOIElSQVQgTFRFIElkbGUgYW5kIEFjdGl2ZSBETyBtZWFzdXJlbWVudCAqLworICAgIE1TR19JRF9STUNfSVJBVF9ET19FQVJMWV9XQUtFVVBfUkVRLAorICAgIE1TR19JRF9STUNfSVJBVF9TUkNIX0NGR19NU0csCisgICAgTVNHX0lEX1JNQ19DRE1BTDFfRE9NRUFTX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfUk1DX0lSQVRfRE9NRUFTX0FCT1JUX0NORiwKKyAgICBNU0dfSURfUk1DX0lSQVRfRE9fSU5BQ1RJVkFURV9SRVEsCisKKyAgICAvKiBGTVAgc2VnbWVudCAqLworICAgIE1TR19JRF9GTVBfSU5TUF9TWU5DX01TRywKKyAgICBNU0dfSURfRk1QX0FMTVBfQ09OTkVDVElPTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9GTVBfQ0NNX0NDU0hPUlRQS1RJTkRfTVNHLAorICAgIE1TR19JRF9STUNfU0hfRklOR0VSX1JFU0VUX01TRywKKyAgICBNU0dfSURfUk1DX1NIX1JBS0VfRk5HX0NGR19ET05FX01TRywKKyAgICBNU0dfSURfUk1DX1NIX0RSQ19DSFRZUEVfRVNUSU1BVEVfTVNHLAorICAgIE1TR19JRF9STUNfQlJQX0RSQ19SQVRFX0RFVEVSTUlOQVRFX01TRywKKyAgICBNU0dfSURfUk1DX0ZIX1JBVF9VUERBVEVfTVNHLAorICAgIE1TR19JRF9STUNfRkhfREZTX1BJTE9UX1VQREFURV9NU0csCisgICAgTVNHX0lEX1JNQ19TSF9TQ0hfU1RBUlRfSU5ELAorICAgIE1TR19JRF9STUNfUlVQX0RGU19DRkdfTVNHLAorICAgIE1TR19JRF9STUNfUlVQX0RGU19BQk9SVF9NU0csCisgICAgTVNHX0lEX1JNQ19SVVBfSU5URVJfSE9fTVNHLCAgICAKKyAgICBNU0dfSURfUk1DX0lEUF9JTlRFUl9IT19DTURfTVNHLAorICAgIE1TR19JRF9STUNfUkNQX0FDQ0VTU19TVEFSVF9JTkRfTVNHLAorICAgIE1TR19JRF9STUNfUkNQX1JUQVBfQ0ZHX01TRywKKyAgICBNU0dfSURfUk1DX0ZDUF9GVEFQX0NGR19NU0csCisgICAgTVNHX0lEX1JNQ19GSF9NT0RFTV9TVEFURV9VUERBVEVfTVNHLAorICAgIE1TR19JRF9STUNfRkNQX0ZUTV9TVEFURV9VUERBVEVfTVNHLAorICAgIE1TR19JRF9STUNfRkNQX0RSQ19BQ1RJVkVfTVNHLAorICAgIE1TR19JRF9STUNfRkNQX0RSQ19ERUZBVUxUX0FUVFJJX1VQREFURV9NU0csCisgICAgTVNHX0lEX1JNQ19GQ1BfRFJDX0VOSEFOQ0VfQVRUUklfVVBEQVRFX01TRywKKyAgICBNU0dfSURfRFJDX0NTTV9DRUxMX1NXSVRDSF9SRVFFRF9NU0csCisgICAgTVNHX0lEX0RSQ19DU01fQ0VMTF9TV0lUQ0hfT0NDVVJfTVNHLAorCisgICAgLyogUlVQIHNlZ21lbnQgKi8KKyAgICBNU0dfSURfUlVQX1NDSF9SRVNVTFRfUlBUX01TRywgICAgICAgICAgLypfTXNnU3RydWN0IFJ1cFNlYXJjaFJlc3VsdFJwdE1zZ1QqLworICAgIE1TR19JRF9SVVBfT01QX1VQREFURV9DTURfTVNHLCAgICAgICAgIC8qX01zZ1N0cnVjdCBSdXBPbXBVcGRhdGVkTXNnR1QqLworICAgIE1TR19JRF9SVVBfT01QX1NOUk9VVEVVUERBVEVfQ01EX01TRywKKyAgICBNU0dfSURfUlVQX0FDTV9UWFNUQVJUX0NNRF9NU0csCisgICAgTVNHX0lEX1JVUF9BQ01fVFhFTkRfQ01EX01TRywKKyAgICBNU0dfSURfUlVQX0FMTVBfQUNUSVZBVEVfQ01EX01TRywgICAgICAgICAgIC8qX01zZ1N0cnVjdCBSdXBBbG1wQWN0aXZlTXNnR1QqLworICAgIE1TR19JRF9SVVBfQUxNUF9ERUFDVElWQVRFX0NNRF9NU0csCisgICAgTVNHX0lEX1JVUF9BTE1QX0NMT1NFX0NNRF9NU0csCisgICAgTVNHX0lEX1JVUF9DU1BfQ0xPU0VfQ01EX01TRywKKyAgICBNU0dfSURfUlVQX0lEUF9DT05OU1RfVE1TVEFURV9DTURfTVNHLAorICAgIE1TR19JRF9SVVBfSURQX0ZSRUVaRV9NU0csCisgICAgTVNHX0lEX1JVUF9JRFBfVEhBV19NU0csCisgICAgTVNHX0lEX1JVUF9SVE1fTElOS0FDUV9DTURfTVNHLAorICAgIE1TR19JRF9SVVBfVElNRVJfRVhQSVJFRF9DTURfTVNHLAorICAgIE1TR19JRF9SVVBfUk1DX0NBTVBfT05fQ0hBTk5FTF9DT01QTEVURV9NU0csCisgICAgTVNHX0lEX1JVUF9STUNfSU5URVJfSE9fTk9USUZZX01TRywKKworICAgIE1TR19JRF9SVVBfU0NQX1JFQ09ORklHVVJFRF9NU0csCisgICAgTVNHX0lEX1JVUF9TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfUlVQX0FDTV9BQ0NFU1NfSE9fRU5BQkxFX01TRywKKyAgICBNU0dfSURfUlVQX0FDTV9BQ0NFU1NfSE9fRElTQUJMRV9NU0csCisKKyAgICBNU0dfSURfUlVQX0lEUF9TVE9QX1JFTV9NU0csCisgICAgTVNHX0lEX1JVUF9PTVBfSUhPX0VOQUJMRURfTVNHLAorICAgIE1TR19JRF9SVVBfSURQX0ZPUkNFX0lIT19SRVFfTVNHLAorCisgICAgTVNHX0lEX1JVUF9JUkFUX0NVUl9TWVNfTUVBU19SRVEsCisgICAgTVNHX0lEX1JVUF9JUkFUX1JBVF9TSUdfTU9OX1JFUSwKKyAgICBNU0dfSURfUlVQX1JDUF9BQ0NFU1NfSU5JVElBVEVfTVNHLAorCisgICAgLypJUkFUKi8KKyAgICBNU0dfSURfUk1DX0NNRF9NU0dJRF9SVVBfTEFTVCwKKworICAgIE1TR19JRF9STUNfUkZfRElWX1JFTEVBU0VfTVNHLAorCisgICAgTVNHX0lEX1JNQ19DU1NfRE9TQ0FOX1NMT1ROVU1fSU5ELAorICAgIE1TR19JRF9SVVBfSURQX0RGU19TVEFSVF9NU0csCisgICAgTVNHX0lEX1JVUF9JRFBfREZTX0FCT1JUX01TRywKKyAgICBNU0dfSURfUlVQX0NMQ19ERlNfU0VUVElOR1NfTVNHLAorICAgIE1TR19JRF9SVVBfSU9QX0dFVF9ERlNfSU5GT19NU0csCisKKyAgICAvKiBMTDFBIHNlZ21lbnQgKi8KKyAgICBNU0dfSURfRVZTVEFOREJZX0xMMUFfR0FQX05PVElGWV9JTkRfTVNHLAorICAgIE1TR19JRF9FVlNUQU5EQllfTEwxQV9HQVBfU1RPUF9SRVFfTVNHLAorICAgIE1TR19JRF9FVlNUQU5EQllfTEwxQV9BVVRPX0dBUF9DTkZfTVNHLAorICAgIE1TR19JRF9FVlNUQU5EQllfTEwxQV9BVVRPX0dBUF9TVE9QX0lORF9NU0csCisgICAgTVNHX0lEX1JNQ19MTDFBX1NFVF9SQVRfQ05GX01TRywKKyAgICBNU0dfSURfUlVQX0lSQVRNX0NVUl9TRUNUT1JfTUVBU19SRVEsCisgICAgTVNHX0lEX1JVUF9JUkFUTV9DVVJfU0VDVE9SX1NJR19NT05fUkVRLAorICAgIE1TR19JRF9SVVBfSVJBVE1fREZTX0ZSRVFfTlVNX1NFTlRfUkVRLAorICAgIE1TR19JRF9SVVBfQ1NTX0lIT19ESVNBQkxFX1JFUSwKKyAgICBNU0dfSURfUlVQX0NTU19JSE9fRU5BQkxFX1JFUSwKKworICAgIC8qKiBSVEJBIFNlZ21lbnQuKi8KKyAgICBNU0dfSURfUk1DX1JUQkFfUkZfUkVTRVJWRV9FTkRfSU5EX01TRywKKworICAgIC8qIEVWRE8gUk1DIFNpZ25hbHMgLS1kb19ybWNhcGkuaCAqLworICAgIE1TR19JRF9STUNfVEFTS19TSUdOQUwsCisgICAgTVNHX0lEX1JNQ19TUkNIX1JFU1VMVFNfUkRZX1NJR05BTCwKKyAgICBNU0dfSURfUk1DX0dFTkVSQVRFX0RFQ0lNQVRFRF9UUkFDRV9JTkZPX1NJR05BTCwKKyAgICBNU0dfSURfUk1DX1BST0NfREVMQVlFRF9TQ0hfUkVTVUxUX1NJR05BTCwKKyAgICBNU0dfSURfUk1DX0dFTkVSQVRFX0RFQ0lNQVRFRF9UUkFDRV9JTkZPMV9TSUdOQUwsCisgICAgTVNHX0lEX1JNQ19TQ0hfTE9HSVFfU0lHTkFMLAorICAgIE1TR19JRF9STUNfSURQX0lIT19XQUtFX1JFRFVDVElPTl9TVEFURV9SRVFfTVNHLAorCisgICAgTVNHX0lEX1JNQ19DTURfTVNHSURfTEFTVCwKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBTQ0ggVGVzdCBNc2dzICovCisgICAgLyotLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9STUNfVEVTVF9NU0dJRF9TVEFSVCwKKyAgICBNU0dfSURfU0NIX0VUU19DQVBUVVJFX0lOUFVUX0JVRkZFUl9NU0cgPSBNU0dfSURfUk1DX1RFU1RfTVNHSURfU1RBUlQsIC8vTVNHX0lEX1JNQ19URVNUX01TR0lEX1NUQVJULAorICAgIE1TR19JRF9TQ0hfTUlOSUFDUV9XSU5TSVpFX01TRywKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBSRkMgVGVzdCBNc2dzICovCisgICAgLyotLS0tLS0tLS0tLS0tLS0qLworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBGTVAgVGVzdCBNc2dzICovCisgICAgLyotLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9GTVBfVEVTVF9IV1RFU1RNT0RFX01TRywKKyAgICBNU0dfSURfRk1QX1RFU1RfVVBEQVRFRklOR0VSU19NU0csCisgICAgTVNHX0lEX0ZNUF9URVNUX1VQREFURU1BQ0ZJTkdFUlNfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9JTlNQX1NZTkNfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9TQ0hQUk9DX01TRywKKyAgICBNU0dfSURfRk1QX1RFU1RfU0NIUFJPR0ZOR19DQUxMQktfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9TTE9URk9VTkRfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9VUERBVEVQV1JfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9VUERBVEVGTkdQT1NfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9JTklUQUNRRk5HQVNTSUdOX0NBTExCS19NU0csCisgICAgTVNHX0lEX0ZNUF9URVNUX0NPTk5TRVRVUF9DQUxMQktfTVNHLAorICAgIE1TR19JRF9GTVBfVEVTVF9GTkhXX01TRywKKyAgICBNU0dfSURfRk1QX0ZOQUxHT1BBUk1TX0dFVF9DTUQsCisgICAgTVNHX0lEX0ZNUF9GTkFMR09QQVJNU19TRVRfQ01ELAorICAgIE1TR19JRF9GTVBfRklOR0VSX1NDQU5fQ01ELAorICAgIE1TR19JRF9GTVBfRklOR0VSX0NPTUJfQ0ZHX0NNRCwKKyNpZiBkZWZpbmVkKE1US19DQlApICYmICghZGVmaW5lZChNVEtfUExUX09OX1BDKSkKKyAgICBNU0dfSURfRk1QX0ZJTkdFUl9BTlRDT01CX0NGR19DTUQsCisjZW5kaWYKKyAgICBNU0dfSURfRk1QX0VRRk5BTEdPUEFSTVNfU0VUX0NNRCwKKyAgICBNU0dfSURfRk1QX0VRRkVBVFVSRV9TRVRfQ01ELAorICAgIE1TR19JRF9GTVBfRVFfTUFOVUFMX0FTU0lHTl9DTUQsCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIC8qIEZNUCBNTVNFIE1SQyBDdHJsIENvbmZpZyBDbWRzICovCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfQ1BfUk1DX01BQ19UQVJHRVRfVEVTVF9DTUQsCisKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBSVVAgTXNncyAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfUlVQX0VUU19UQ0FfTVNHLAorICAgIE1TR19JRF9SVVBfRVRTX1NFVF9TVVBQT1JUX0NETUFDSEFOX01TRywKKyAgICBNU0dfSURfUlVQX0VUU19TRVRfU0lNUExFX0FUVFJfTVNHLAorICAgIE1TR19JRF9SVVBfRVRTX1NFVF9TRUFSQ0hfUEFSTV9NU0csCisgICAgTVNHX0lEX1JVUF9FVFNfU0VUX01BTkNIQU5fUEFSTV9NU0csCisgICAgTVNHX0lEX1JVUF9FVFNfT1RBX01TRywKKyAgICBNU0dfSURfUlVQX1RTVF9TTl9UQ0FfTVNHLAorICAgIE1TR19JRF9SVVBfU05ST1VURVVQREFURV9DTURfTVNHLAorICAgIE1TR19JRF9SVVBfRVRTX1NFVF9QTlBIQVNFLAorICAgIE1TR19JRF9SVVBfRVRTX1NFVF9NQUNfUEFSTSwKKworICAgIE1TR19JRF9STUNfVEVTVF9STUNfREVBQ1RJVkFURV9DTUQsCisgICAgTVNHX0lEX1JNQ19URVNUX1JNQ19TUFlfREVDSV9DTUQsCisgICAgTVNHX0lEX1JNQ19URVNUX0RPX0RGU19DTUQsCisgICAgTVNHX0lEX1JNQ19URVNUX0NUUkwsCisgICAgTVNHX0lEX1JNQ19UU1RfVVRfUkVRLAorI2lmZGVmIE1US19DQlAKKyAgICBNU0dfSURfUk1DX1RFU1RfRE9fREZTX1NFUlZDSF9DTUQsCisgICAgTVNHX0lEX1JNQ19URVNUX0ZNUF9NRF9DSEdfQUZUX1JYREVBQ1RfQ01ELAorICAgIE1TR19JRF9STUNfVEVTVF9ET19TRVRfREZTX0NIQ05UX0NNRCwKKyNpZiBkZWZpbmVkIChNVEtfREVWX0MyS19JUkFUKSAmJiBkZWZpbmVkIChNVEtfREVWX0MyS19TUkxURV9MMSkKKyAgICBNU0dfSURfUk1DX1RFU1RfRE9fREZTX01FRVRfMVhfV0FLRVVQX0NNRCwKKyNlbmRpZgorI2VuZGlmCisgICAgLyotLS0tLS0tLS0tLS0tLS0qLworICAgIC8qIFJNQyBJTUQgTXNncyAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfQ1BfUk1DX0lNRF9DT05GSUdfU0VUX01TRywKKyAgICBNU0dfSURfQ1BfUk1DX0lNRF9DT05GSUdfR0VUX01TRywKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBSTUMgRVEgTXNncyAqLworICAgIC8qLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfQ1BfUk1DX0VRX1dfV0xfU0VMRUNUX1NFVF9NU0csCisgICAgTVNHX0lEX0NQX1JNQ19FUV9XX1dMX1NFTEVDVF9HRVRfTVNHLAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0qLworICAgIC8qIE1CUCBNc2dzICovCisgICAgLyotLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9NQlBfRVRTX1BST0NfTUNEX1JQQ19USCwKKyAgICBNU0dfSURfTUJQX0VUU19QUk9DX01DRF9SUENfVEhfQzJJLAorCisgICAgLyotLS0tLUFkYXB0aXZlIFJYIHBvd2VyIG1vZGUgLS0tLSovCisgICAgTVNHX0lEX1JNQ19FVFNfRE9fQURBUFRJVkVfUlhfQ0ZHX0NNRCwKKworICAgIE1TR19JRF9STUNfQUZDX09OX01TRywKKyAgICBNU0dfSURfUk1DX0FGQ19TVEFURV9TRVRfTVNHLAorICAgIE1TR19JRF9STUNfQUZDX0ZOR19GT0VfVVBEQVRFX01TRywKKyAgICBNU0dfSURfUk1DX1ZBTF9ET19SWF9UWF9USU1FX0lORk9fREFUQV9SRVEsCisgICAgTVNHX0lEX1ZBTF9STUNfRE9fUlhfVFhfVElNRV9JTkZPX0RBVEFfUlNQLAorICAgIE1TR19JRF9GSF9NT0RFX0NIQU5HRV9SRVEsCisgICAgTVNHX0lEX0ZIX1NUQl9NRUFTX0lORF9NU0csCisgICAgTVNHX0lEX1JNQ19URVNUX01TR0lEX0xBU1QsCisgICAgTVNHX0lEX1JNQ19WQUxfRE9fREFUX0NGR19NU0csCisKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX1JNQ19DT0RFX1RBSUwpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBGaWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZG9fc2VjX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kb19zZWNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWVmMGI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZG9fc2VjX21zZ2lkLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgIEZJTEUgTkFNRTogIGRvX3NlY19tc2dpZC5oCisKKyAgREVTQ1JJUFRJT046CisKKyAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmVuaXRpb25zIG9mIGFsbCB0aGUgU0VDIG1zZyBpZCdzLgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaWZuZGVmIF9ET19TRUNfTVNHSURfSF8KKyNkZWZpbmUgX0RPX1NFQ19NU0dJRF9IXworCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKworI3VuZGVmIE1TR0lEX1NFVAorI3VuZGVmIE1TR0lEX05FWFQKKworI2RlZmluZSBNU0dJRF9TRVQobmFtZSwgdmFsKSBNU0dfSURfIyNuYW1lID0gdmFsCisjZGVmaW5lIE1TR0lEX05FWFQobmFtZSkgTVNHX0lEXyMjbmFtZQorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9TRUNfQ09ERV9CRUdJTikKKworICAgLyogU0VDIEFLQSBzZWdtZW50Ki8KKyAgICBNU0dJRF9TRVQoU0VDX0FLQV9BVVRIX1JFUV9NU0csIE1TR19JRF9TRUNfQ09ERV9CRUdJTiksCisgICAgTVNHSURfTkVYVChTRUNfQUtBX0RFUklWRU1LX1JFUV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVSRUFVVEhYS0VZX1JFUV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVNU0tfUkVRX01TRyksCisgICAgTVNHSURfTkVYVChTRUNfQUtBX0RFUklWRU1BQ19SRVFfTVNHKSwKKyAgICBNU0dJRF9ORVhUKFNFQ19BS0FfREVSSVZFUE1LX1JFUV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9BRVNDUllQVF9SRVFfTVNHKSwKKyAgICBNU0dJRF9ORVhUKFNFQ19BS0FfQVVUSF9SRVFfVEVTVF9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVNS19SRVFfVEVTVF9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVSRUFVVEhYS0VZX1JFUV9URVNUX01TRyksCisgICAgTVNHSURfTkVYVChTRUNfQUtBX0RFUklWRU1TS19SRVFfVEVTVF9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVNQUNfUkVRX1RFU1RfTVNHKSwKKyAgICBNU0dJRF9ORVhUKFNFQ19BS0FfREVSSVZFUE1LX1JFUV9URVNUX01TRyksCisgICAgTVNHSURfTkVYVChTRUNfQUtBX0FFU0NSWVBUX1JFUV9URVNUX01TRyksCisgICAgTVNHSURfTkVYVChTRUNfQUtBX1BSSU1FX1NRTl9JTklUX01TRyksCisKKyAgICAvKiBTRUMgQUtBIFBSSU1FIE1TZyAqLworICAgIE1TR0lEX05FWFQoU0VDX0FLQV9QUklNRV9ERVJJVkVNS19SRVFfTVNHKSwKKyAgICBNU0dJRF9ORVhUKFNFQ19BS0FfUFJJTUVfREVSSVZFUkVBVVRITUtfUkVRX01TRyksCisgICAgTVNHSURfTkVYVChTRUNfVkFMX0FFU0NSWVBUX1JFUV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0NNRF9NU0dJRF9OVU0pLAorCisgICAgLyogU0VDIFNQWSBPTiBQQyBVVCAqLworICAgIE1TR0lEX05FWFQoU0VDX0FLQV9BVVRIX1NQWV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVfTUtfU1BZX01TRyksCisgICAgTVNHSURfTkVYVChTRUNfQUtBX0RFUklWRV9SRUFVVEhYS0VZX1NQWV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVfTVNLX1NQWV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVfTUFDX1NQWV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9ERVJJVkVfUE1LX1NQWV9NU0cpLAorICAgIE1TR0lEX05FWFQoU0VDX0FLQV9BRVNfQ1JZUFRfU1BZX01TRyksCisKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9TRUNfQ09ERV9UQUlMKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVuZCBvZiBGaWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZG9fc2xjX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kb19zbGNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFkMzY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZG9fc2xjX21zZ2lkLmgKQEAgLTAsMCArMSwxODEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiIk1FRElBVEVLIFNPRlRXQVJFIiIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIiJBUy1JUyIiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNLQUxfVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUqRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EKk9SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNLQUxfVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZJTEUgTkFNRSAgIDogZG9fc2xjX21zZ2lkLmgKKyoKKyogREVTQ1JJUFRJT04gOiBNZXNzYWdlIElEIGRlZmluaXRpb24gZm9yIFNMQyAoU2Vzc2lvbiBMYXllciBDb250cm9sKSB0YXNrLgorKgorKiBISVNUT1JZICAgICA6CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX0RPX1NMQ19NU0dJRF9IXworI2RlZmluZSBfRE9fU0xDX01TR0lEX0hfCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluY2x1ZGUgRmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX1NMQ19DT0RFX0JFR0lOKQorCisgICAgLyogU0xDIHNlZ21lbnQgKi8KKyAgICBNU0dfSURfU0xDX1hYWF9DTURfTVNHID0gTVNHX0lEX1NMQ19DT0RFX0JFR0lOLAorICAgIE1TR19JRF9TTENfVElNRVJfRVhQSVJFRF9NU0csCisgICAgTVNHX0lEX0RIS0VQX1RJTUVSX0VYUElSRURfTVNHLAorICAgIE1TR19JRF9ESEtFUF9LRVlDQUxfUlNQX01TRywKKyAgICBNU0dfSURfREhLRVBfU0NQX1JFQ09ORklHVVJFRF9NU0csCisKKyAgICAvKiBTTVAgc2VnbWVudCAqLworICAgIE1TR19JRF9TTENfQ01EX01TR0lEX1NNUF9TVEFSVCwKKyAgICBNU0dfSURfU01QX0NTU19BQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX1NNUF9DU1NfTVBTX0lOUFJPR1JFU1NfTVNHLAorICAgIE1TR19JRF9TTVBfU0NQX0NPTkZJR1VSQVRJT05fRkFJTEVEX01TRywKKyAgICBNU0dfSURfU01QX1NDUF9TRVNTSU9OX0lORk9fTVNHLAorICAgIE1TR19JRF9TTVBfU0NQX0FDVElWQVRFX0NORl9NU0csCisgICAgTVNHX0lEX1NNUF9TQ1BfR0FVUF9QUklPUl9TRVNTSU9OX0NORl9NU0csCisgICAgTVNHX0lEX1NNUF9BTVBfT1BFTkVEX01TRywKKyAgICBNU0dfSURfU01QX0FNUF9GQUlMVVJFX01TRywKKyAgICBNU0dfSURfU01QX0FNUF9VQVRJX1JDVl9NU0csCisgICAgTVNHX0lEX1NNUF9PTVBfUFJJT1JfU0VTU0lPTl9HQVVQX1VQREFURV9NU0csCisgICAgTVNHX0lEX1NNUF9DQ01fUEVSRk9STV9LRUVQQUxJVkVfVFJBTlNfTVNHLAorICAgIE1TR19JRF9TTVBfU0NQX1JFQ09ORklHVVJFRF9NU0csCisgICAgTVNHX0lEX1NNUF9TQ1BfQ09NTUlUVEVEX01TRywKKyAgICBNU0dfSURfU01QX0RTQVJfVFhfU1RBVFVTX01TRywKKyAgICBNU0dfSURfU01QX0FMTVBfQ09OTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9TTVBfU0VTU0lPTl9DTE9TRV9FVFNfQ01ELAorICAgIE1TR19JRF9TTVBfQUxNUF9QT1dFUl9ET1dOX01TRywKKyAgICBNU0dfSURfU01QX0FMTVBfQ09OTl9PUEVORURfTVNHLAorICAgIE1TR19JRF9TTVBfU0NQX1BST1RfUkVTRVRfRE9ORV9NU0csCisgICAgTVNHX0lEX1NNUF9TQ1BfU0VTU0lPTl9DT01NSVRUSU5HX0lORCwKKyAgICBNU0dfSURfU01QX0NTU18xWF9DT05ORUNUSU9OX1NUX0lORCwgCisgICAgTVNHX0lEX1NNUF9WQUxfMVhfUFNfQ0hBTkdFX1RPX0VWRE9fTk9USUZZLCAgICAKKyAgICAvKiBNVEtfREVWX0MyS19JUkFUICovCisgICAgTVNHX0lEX1NNUF9PTVBfREVBQ1RJVkFURV9NU0csCisgICAgTVNHX0lEX1NNUF9DU1NfRUhSUERfU0VTU0lPTl9NU0csCisgICAgTVNHX0lEX1NNUF9DU1NfSFJQRF9TRVNTSU9OX01TRywKKworICAgIC8qIFNDUCBzZWdtZW50ICovCisgICAgTVNHX0lEX1NMQ19DTURfTVNHSURfU0NQX1NUQVJULAorICAgIE1TR19JRF9TQ1BfU01QX0FDVElWQVRFX01TRywKKyAgICBNU0dfSURfU0NQX1NNUF9ERUFDVElWQVRFX01TRywKKyAgICBNU0dfSURfU0NQX0lEUF9DT05ORUNUSU9OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX1NDUF9DU1BfQ09OTkVDVElPTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9TQ1BfUlVQX0NPTk5FQ1RJT05fTE9TVF9NU0csCisgICAgTVNHX0lEX1NDUF9QUk9UX0NPTkZJR19SRVFfTVNHLAorICAgIE1TR19JRF9TQ1BfUFJPVF9SRUNPTkZJR1VSRURfTVNHLAorICAgIE1TR19JRF9TQ1BfUFJPVF9SRUNPTkZJR19DTkZfTVNHLAorICAgIE1TR19JRF9TQ1BfUFJPVF9DT05GSUdfRkFJTF9NU0csCisgICAgTVNHX0lEX1NDUF9QUk9UX0NPTkZJR19QQVVTRV9NU0csCisgICAgTVNHX0lEX1NDUF9QUk9UX0NPTkZJR19SRVNVTUVfTVNHLAorICAgIE1TR19JRF9TQ1BfU0NQX05FR09fU1RBUlRfTVNHLAorICAgIE1TR19JRF9TQ1BfU0NQX05FR09fQ09OVElOVUVfTVNHLAorICAgIE1TR19JRF9TQ1BfRFNBUl9UWF9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9TQ1BfQUxNUF9DT05OX09QRU5FRF9NU0csCisgICAgTVNHX0lEX1NDUF9BTE1QX0NPTk5fQ0xPU0VEX01TRywKKyAgICBNU0dfSURfU0NQX0FMTVBfQ09OTl9SRUxFQVNFRF9NU0csCisgICAgTVNHX0lEX1NDUF9BTE1QX0NPTk5fRkFJTEVEX01TRywKKyAgICBNU0dfSURfU0NQX0NPTkZJR19FVFNfQ01ELAorICAgIE1TR19JRF9TQ1BfU01QX1NFU1NJT05fQ0xPU0lOR19JTkQsCisgICAgTVNHX0lEX1NDUF9FSFJQRF9ESVNBQkxFX0VUU19DTUQsCisgICAgTVNHX0lEX1NDUF9FSFJQRF9FTkFCTEVfRVRTX0NNRCwKKworICAgIC8qIEFNUCBzZWdtZW50ICovCisgICAgTVNHX0lEX1NMQ19DTURfTVNHSURfQU1QX1NUQVJULAorICAgIE1TR19JRF9BTVBfU01QX0ZBSUxFRF9NU0csCisgICAgTVNHX0lEX0FNUF9TTVBfQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9BTVBfU01QX0RFQUNUSVZBVEVfTVNHLAorICAgIE1TR19JRF9BTVBfUlVQX0lETEVIT19NU0csCisgICAgTVNHX0lEX0FNUF9PTVBfVVBEQVRFRF9NU0csCisgICAgTVNHX0lEX0FNUF9DU1BfQ09OTl9DTE9TRURfTVNHLAorICAgIE1TR19JRF9BTVBfSU5TUF9ORVRXT1JLX0FDUV9NU0csCisgICAgTVNHX0lEX0FNUF9EU0FSX1RYX1NUQVRVU19NU0csCisgICAgTVNHX0lEX0FNUF9TQ1BfUkVDT05GSUdVUkVEX01TRywKKyAgICBNU0dfSURfQU1QX1NDUF9DT01NSVRURURfTVNHLAorICAgIE1TR19JRF9BTVBfU01QX1NFU1NJT05fQ0xPU0lOR19JTkQsCisgICAgTVNHX0lEX0FNUF9DU1NfREFUQV9XQUlUSU5HX01TRywKKyAgICBNU0dfSURfQU1QX0lEUF9DSEFOX0NIQU5HRURfQ09NUExFVEVfTVNHLAorICAgIE1TR19JRF9BTVBfSURQX0FTU0VNQkxFX1VBVElDTVBMX0FORF9IV0lEUlNQX01TRywKKworICAgIC8qIFNMQyBVVCBNc2dzICovCisgICAgTVNHX0lEX1VUX1NMQ19EU0FGX0ZXRF9NU0csIAorICAgIE1TR19JRF9VVF9TTENfU0VUX1NCUF9JRF9NU0csCisgICAgTVNHX0lEX1VUX1NMQ19DT05GX1NCUF9GRUFUVVJFX01TRywKKworICAgIE1TR19JRF9BTVBfQ01EX01TR0lEX05VTSwKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX1NMQ19DT0RFX1RBSUwpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgRmlsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZHBzX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9kcHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2Y4MWUzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZHBzX21zZ2lkLmgKQEAgLTAsMCArMSwyNDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBkcHNfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIER1bW15IFByb3RvY29sIFN0YWNrLCBTQVAgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfRFBTX01TR0lEX0gKKyNkZWZpbmUgX0RQU19NU0dJRF9ICisKKyNpZiBkZWZpbmVkKERVTU1ZX1BST1RPQ09MKSAmJiBkZWZpbmVkKF9fR1NNX1JBVF9fKQorCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9EUFNfQ09ERV9CRUdJTikKK01TR19JRF9EUFNfUE9XRVJfU0NBTl9SRVEgPSBNU0dfSURfRFBTX0NPREVfQkVHSU4sCitNU0dfSURfRFBTX1NUUk9OR0VTVF9BUkZDTl9GQl9TRUFSQ0hfUkVRLAorTVNHX0lEX0RQU19SRVBFQVRFRF9GQl9TRUFSQ0hfUkVRICwKK01TR19JRF9EUFNfU1BFQ0lGSUNfQkNDSF9SWF9SRVEgLAorTVNHX0lEX0RQU19TVEFSVF9JRExFX1JFUSAsCitNU0dfSURfRFBTX1JFUEVBVEVEX0lETEVfUkVRICwKK01TR19JRF9EUFNfQ0JDSF9SWF9SRVEgICAsCitNU0dfSURfRFBTX1NDX1RFU1RfUkVRCSwKK01TR19JRF9EUFNfTE9DQVRJT05fVVBEQVRFX1JFUSAsCitNU0dfSURfRFBTX01UX0NBTExfUkVRICAgLAorTVNHX0lEX0RQU19NT19DQUxMX1JFUSAgICwKK01TR19JRF9EUFNfVEVTVF9TVEFSVF9SRVEgICAsCitNU0dfSURfRFBTX1RFU1RfU1RPUF9SRVEgICwKK01TR19JRF9EUFNfVEVTVF9TVE9QMl9SRVEgICwKK01TR19JRF9EUFNfQ0NDSF9OQ19NRUFTX1JFUSAgLAorTVNHX0lEX0RQU19DQ0NIX0VYVF9NRUFTX1JFUSAsCitNU0dfSURfRFBTX0NDQ0hfUEtUX0lETEVfU0NfVEVTVF9SRVEgLAorTVNHX0lEX0RQU19DQ0NIX0dQUlNfQVRUQUNIX09ORV9QSEFTRV9SRVEgLAorTVNHX0lEX0RQU19DQ0NIX0dQUlNfQVRUQUNIX1RXT19QSEFTRV9SRVEgLAorTVNHX0lEX0RQU19DQ0NIX1BBQ0tFVF9JRExFMV9SRVEgLAorTVNHX0lEX0RQU19DQ0NIX1BBQ0tFVF9JRExFMl9SRVEgLAorTVNHX0lEX0RQU19DQ0NIX1RCRl9TQ19URVNUX1JFUSAsCitNU0dfSURfRFBTX0NDQ0hfUEFDS0VUX0lETEVfUEJDQ0hfUkVBRF9SRVEgLAorTVNHX0lEX0RQU19QQ0NDSF9QQUNLRVRfSURMRV9SRVEgLAorTVNHX0lEX0RQU19QQ0NDSF9QQUNLRVRfSURMRV9QQkNDSF9VUERBVEVfUkVRICwKK01TR19JRF9EUFNfUENDQ0hfUEtUX0lETEVfU0NfVEVTVF9SRVEgLAorTVNHX0lEX0RQU19QQ0NDSF9QS1RfSURMRV9TQ19URVNUX1BCQ0NIX1VQREFURV9SRVEgLAorTVNHX0lEX0RQU19QQ0NDSF9QS1RfSURMRV9OQ19NRUFTX1JFUSAsCitNU0dfSURfRFBTX1BDQ0NIX0VYVF9NRUFTX1JFUSAsCitNU0dfSURfRFBTX1BDQ0NIX0dQUlNfQVRUQUNIX09ORV9QSEFTRV9SRVEgLAorTVNHX0lEX0RQU19QQ0NDSF9HUFJTX0FUVEFDSF9UV09fUEhBU0VfUkVRICwKK01TR19JRF9EUFNfU0VSVklOR19QQkNDSF9VUERBVEVfRFVSSU5HX1RCRl9SRVEgLAorTVNHX0lEX0RQU19QQ0NDSF9OQlJfUFNJX1VQREFURV9EVVJJTkdfVEJGX1JFUSAsCitNU0dfSURfRFBTX0NDQ0hfTkJSX1BTSV9VUERBVEVfRFVSSU5HX1RCRl9SRVEgLAorTVNHX0lEX1JMQ19EQVRBX1JFUSwKK01TR19JRF9HUlJfUkxDX0VTVF9JTkQsCitNU0dfSURfR1JSX1JMQ19FU1RfUkVRX0NORiwKK01TR19JRF9HUlJfUkxDX1JFTF9SRVEsCitNU0dfSURfTDFfUkxDX1BEVENIX0NORiwKK01TR19JRF9MMV9STENfUEFDQ0hfSU5ELAorTVNHX0lEX0wxX1JMQ19QQUNDSF9DTkYsCitNU0dfSURfTDFfUkxDX1BEVENIX0lORCwKK01TR19JRF9STENfR1JSX0RBVEFfSU5ELAorTVNHX0lEX1JMQ19HUlJfUkVMX0lORCwKK01TR19JRF9STENfR1JSX1JFTF9DTkYsCitNU0dfSURfUlJfRlJBTUVUSUNLLAorTVNHX0lEX01QQUxfRlJBTUVUSUNLLAorTVNHX0lEX0wxRF9MT09QQkFDS19SRVEsCitNU0dfSURfRFBTX0NDQ0hfSUNNUF9SRVEsCitNU0dfSURfRFBTX0NDQ0hfR1BSU19OT05TSUdOQUxJTkdfUkVRLAorTVNHX0lEX0RQU19DQ0NIX0dQUlNfTk9OU0lHX0ZUX1JFUSwKK01TR19JRF9EUFNfUE9XRVJfU0NBTl9XSVRIX1NUT1JFRF9MSVNUX1JFUSwKK01TR19JRF9EUFNfQ0NDSF9DT01CX1BBR0VfUkVPUkdfUkVRLAorTVNHX0lEX0RQU19DQ0NIX0VHUFJTX0FUVEFDSF9PTkVfUEhBU0VfUkVRLAorTVNHX0lEX0RQU19DQ0NIX0VHUFJTX0FUVEFDSF9UV09fUEhBU0VfUkVRLAorTVNHX0lEX0RQU19QQ0NDSF9FR1BSU19BVFRBQ0hfT05FX1BIQVNFX1JFUSwKK01TR19JRF9EUFNfUENDQ0hfRUdQUlNfQVRUQUNIX1RXT19QSEFTRV9SRVEsCitNU0dfSURfRFBTX0NDQ0hfRUdQUlNfVEJGX05CQ0NIX1JFUSwKK01TR19JRF9EUFNfQ0NDSF9FR1BSU19UQkZfTlBCQ0NIX1JFUSwKK01TR19JRF9EUFNfUENDQ0hfRUdQUlNfVEJGX05QQkNDSF9SRVEsCitNU0dfSURfUkxDX01QQUxfRUdQUlNfU1JCX1JFUSwKK01TR19JRF9EUFNfVU5JVF9URVNUX0RMX0NBTExCQUNLLAorTVNHX0lEX0RQU19VTklUX1RFU1RfSU5JVCwKK01TR19JRF9EUFNfVU5JVF9URVNUX1RSQUNFX1BSSU5URVIsCitNU0dfSURfRFBTX1RSQUNFX1BSSU5URVJfVVBEQVRFX1ZOLAorCisvKiBGb3IgRHVhbCBEUFMgKi8gLyogV2l0aCAiTVNHX0lEX0RQU194eHhfUkVRIiAqLworLyogMkcgU3RhbmRieSAzRyBBY3RpdmU6IHN0YXJ0IGZyb20gVURQUyAqLworTVNHX0lEX0RQU19VRFBTX0dTTV9NRUFTX0lOX05VTExfUkVRLCAvKiBHTTEgKi8KK01TR19JRF9EUFNfVURQU19HU01fTUVBU19JTl9JRExFX1JFUSwgLyogR00yICovCitNU0dfSURfRFBTX1VEUFNfR1NNX01FQVNfSU5fRkFDSF9SRVEsIC8qIEdNMyAqLworTVNHX0lEX0RQU19VRFBTX0dTTV9SRVBPUlRJTkdfREVMQVlfUkVRLCAvKiBHTTQgKi8KK01TR19JRF9EUFNfVURQU19HU01fUkVQT1JUSU5HX0RFTEFZX05PX0JTSUNfUkVRLCAvKiBHTTUgKi8KK01TR19JRF9EUFNfVURQU19BQlNfR1NNX0NBUlJJRVJfUlNTSV9SRVEsIC8qIEdNNiAqLworCisvKiAyRyBBY3RpdmUgM0cgU3RhbmRieTogc3RpbGwgc3RhcnQgZnJvbSBVRFBTICovCitNU0dfSURfRFBTX1VEUFNfVU1UU19NRUFTX0lOX1NDQU5fUkVRLCAvKlVNMSovCitNU0dfSURfRFBTX1VEUFNfVU1UU19NRUFTX0lOX0lETEVfUkVRLCAvKlVNMiovCitNU0dfSURfRFBTX1VEUFNfVU1UU19NRUFTX0lOX0RFRElfUkVRLCAvKlVNMyovCitNU0dfSURfRFBTX1VEUFNfVU1UU19NRUFTX0lOX1BJRExFX1JFUSwgLypVTTQqLworTVNHX0lEX0RQU19VRFBTX1VNVFNfTUVBU19JTl9QVFhfUkVRLCAvKlVNNSovCitNU0dfSURfRFBTX1VEUFNfUkVDVVJTSVZFX1RDU19JTl8yR19JRExFX1JFUSwgLyogVU02ID0gQ1MxMihDU0QpIGFuZCBDUzEzKENTRCkgKi8KK01TR19JRF9EUFNfVURQU19SRUNVUlNJVkVfVENTX0lOXzJHX0RFRElfUkVRLCAvKiBVTTcgPSBDUzgoQ1NEKSBhbmQgQ1M5KENTRCkgKi8KKworTVNHX0lEX0RQU19VRFBTX0dTTV9DUlNfVE9fVU1UU19SRVEsIC8qSVJUMSovCitNU0dfSURfRFBTX1VEUFNfVU1UU19DUlNfVE9fR1NNX1JFUSwgLypJUlQyKi8KK01TR19JRF9EUFNfVURQU19HU01fSEhPX1RPX1VNVFNfUkVRLCAvKklSVDMqLworTVNHX0lEX0RQU19VRFBTX1VNVFNfSEhPX1RPX0dTTV9SRVEsIC8qSVJUNCovCisKKworTVNHX0lEX0RQU19VRFBTX1RSSUdHRVJfRFBTX1JFUSwgICAgICAgICAgIC8qIGNvbW1vbiB1c2FnZSAqLworTVNHX0lEX0RQU19SRVNQT05TRV9UT19VRFBTX0NORiwgLyogY29tbW9uIHVzYWdlICovCisKKy8qIENvcHkgZnJvbSB1YXNfZ2FzX3NhcC5oIGZvciB0aGUgYWN0aXZpdHkgYmV0d2VlbiBEUFMgYW5kIFVEUFMgKi8KK01TR19JRF9VQVNfR0FTX0NPTkZJR19HQ0VMTF9NRUFTX1JFUSwKKworTVNHX0lEX0dBU19VQVNfQ09ORklHX1VDRUxMX01FQVNfQ05GLAorTVNHX0lEX0dBU19VQVNfVUNFTExfTUVBU19JTkQsCisKK01TR19JRF9VQVNfR0FTX0NPTkZJR19HQ0VMTF9NRUFTX0NORiwKK01TR19JRF9VQVNfR0FTX0dDRUxMX01FQVNfSU5ELAorTVNHX0lEX1VBU19HQVNfR0NFTExfQlNJQ19JTkQsCitNU0dfSURfR0FTX1VBU19DT05GSUdfVUNFTExfTUVBU19SRVEsCisKKy8qIEZvciBEdWFsIERQUyAqLworTU9EVUxFX01TR19FTkQoTVNHX0lEX0RQU19DT0RFX1RBSUwpCisKKyNlbmRpZgorCisjZW5kaWYgIC8vX0RQU19NU0dJRF9ICisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VhcF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWFwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQyZjYxOQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VhcF9tc2dpZC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0VBUF9NU0dfSURfSAorI2RlZmluZSBfRUFQX01TR19JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FQVBfQ09ERV9CRUdJTiApCisKKy8vIEZyb20gVXNlcgorICAgIE1TR19JRF9FQVBfQ09OVkVSU0FUSU9OX1NUQVJUX1JFUSA9IE1TR19JRF9FQVBfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfRUFQX0NPTlZFUlNBVElPTl9TVE9QX1JFUSwKKyAgICBNU0dfSURfRUFQX0RFQ09ERV9SRVEsCisKKy8vIFRvIFVzZXIKKyAgICBNU0dfSURfRUFQX0NPTlZFUlNBVElPTl9TVEFSVF9DTkYsCisgICAgTVNHX0lEX0VBUF9DT05WRVJTQVRJT05fU1RPUF9DTkYsCisgICAgTVNHX0lEX0VBUF9ERUNPREVfQ05GLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0VBUF9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX0VBUF9NU0dfSURfSApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsMV9pcGNfbXNnaWRfc291cmNlLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDFfaXBjX21zZ2lkX3NvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4ODJkYTEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDFfaXBjX21zZ2lkX3NvdXJjZS5oCkBAIC0wLDAgKzEsNDkgQEAKKy8vYmVsb3cgYXJlIEVMMSBJUEMgbWVzc2FnZXMgc2VudCBmcm9tIEFQCitNU0dfSURfSVBDX0VMMV9DT05TWVNfQUxMT1dfVFhfTlRGLCAgICAgICAgLy8gaXMgbm90IHVzZWQKK01TR19JRF9JUENfRUwxX0NPTlNZU19ERUZBVUxUX1BBUkFNX05URiwKK01TR19JRF9JUENfRUwxX0NPTlNZU19PUEVSX0ZSRVFfTlRGLAorTVNHX0lEX0lQQ19FTDFfQ09OU1lTX0ZSRVFfSURYX1RBQkxFX05URiwgIC8vIGlzIG5vdCB1c2VkIAorTVNHX0lEX0lQQ19FTDFfQ09OU1lTX1BST0ZJTEVfTlRGLCAgICAgICAgIC8vIGlzIG5vdCB1c2VkCisKKy8vYmVsb3cgYXJlIEVMMSBtZXNzYWdlcyBzZW50IHRvIEFQCitNU0dfSURfSVBDX0VMMV9MVEVfREVGQVVMVF9QQVJBTV9JTkQsCitNU0dfSURfSVBDX0VMMV9MVEVfQ0FfT1BFUl9GUkVRX0lORCwKK01TR19JRF9JUENfRUwxX0xURV9XSUZJX1BXUl9JTkQsICAgICAgICAgICAvLyBpcyBub3QgdXNlZAorTVNHX0lEX0lQQ19FTDFfTFRFX1RYX0lORCwgICAgICAgICAgICAgICAgIC8vIGlzIG5vdCB1c2VkCitNU0dfSURfSVBDX0VMMV9MVEVfQ09OTkVDVElPTl9TVEFUVVNfSU5ELCAgLy8gaXMgbm90IHVzZWQKKworLy9iZWxvdyBhcmUgRUwxIElQQyBtZXNzYWdlcyBzZW50IGZyb20gQVAKK01TR19JRF9JUENfRUwxX0NPTlNZU19QSU5fVFlQRV9OVEYsICAgICAgIC8vIGlzIG5vdCB1c2VkCisKKy8vYmVsb3cgYXJlIEVMMSBtZXNzYWdlcyBzZW50IHRvIEFQCitNU0dfSURfSVBDX0VMMV9MVEVfSFdfSU5URVJGQUNFX0lORCwgICAgICAvLyBpcyBub3QgdXNlZAorCisvL2JlbG93IGFyZSBFTDEgSVBDIG1lc3NhZ2VzIHNlbnQgZnJvbSBBUAorTVNHX0lEX0lQQ19FTDFfQ09OU1lTX1RETV9BU1NJVF9JTkZPX05URiwKKworLy9iZWxvdyBhcmUgRUwxIG1lc3NhZ2VzIHNlbnQgdG8gQVAKK01TR19JRF9JUENfRUwxX0xURV9EUlhfUlBUX0NGR19JTkQsICAgICAgIC8vIGlzIG5vdCB1c2VkCitNU0dfSURfSVBDX0VMMV9MVEVfRFJYX1BBVFRFUk5fSU5ELAorTVNHX0lEX0lQQ19FTDFfTFRFX0RSWF9NQVBQSU5HX0lORCwKK01TR19JRF9JUENfRUwxX0xURV9SMTFfSURDX1BBUkFNX0lORCwKK01TR19JRF9JUENfRUwxX0xURV9JRENfSU5GT19JTkQsCitNU0dfSURfSVBDX0VMMV9MVEVfV0lGSUJUX1VOU0FGRV9GUkVRX0JNUF9JTkQsCitNU0dfSURfSVBDX0VMMV9MVEVfV0lGSUJUX0RCRENfQjBfVU5TQUZFX0ZSRVFfQk1QX0lORCwKKworLy9iZWxvdyBhcmUgRUwxIElQQyBtZXNzYWdlcyBzZW50IGZyb20gQVAKK01TR19JRF9JUENfRUwxX0NPTlNZU19NQVhfUFdSX0JBQ0tPRkZfTlRGLAorTVNHX0lEX0lQQ19FTDFfQ09OU1lTX1NFTkRfU1dfTVNHX0NORiwKKworLy9iZWxvdyBhcmUgRUwxIG1lc3NhZ2VzIHNlbnQgdG8gQVAKK01TR19JRF9JUENfRUwxX0xURV9TRU5EX1NXX01TR19DTkYsCitNU0dfSURfSVBDX0VMMV9MVEVfV0lGSUJUX0RCRENfQjFfVU5TQUZFX0ZSRVFfQk1QX0lORCwKKworLy9iZWxvdyBhcmUgcmVzZXJ2ZWQgRUwxIG1lc3NhZ2VzCitNU0dfSURfRUwxX0RVTU1ZMjVfSU5ELAorTVNHX0lEX0VMMV9EVU1NWTI2X0lORCwgCitNU0dfSURfRUwxX0RVTU1ZMjdfSU5ELAorTVNHX0lEX0VMMV9EVU1NWTI4X0lORCwgCitNU0dfSURfRUwxX0RVTU1ZMjlfSU5ELAorTVNHX0lEX0VMMV9EVU1NWTMwX0lORCwKK01TR19JRF9FTDFfRFVNTVkzMV9JTkQsCitNU0dfSURfRUwxX0RVTU1ZMzJfSU5ELApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDFfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGQ2OWZmCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxX21zZ2lkLmgKQEAgLTAsMCArMSwxMzU5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgZWwxX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIExURSBMYXllciAxIGFuZCBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwMyAyMiAyMDIyIGRpdnlhcHJha2FzaC50aXdhcmkKKyAqIFtNT0xZMDA3MTU2MDVdIFtQSVNTQVJSTy01NDkwXSBGVF9LMTZfTmFuY2hhbmdfPz8/IDE/PzVHVk9MVEUsPz8/Mj8/R1NNLD8/Pz8/MT8/PzVHVk9MVEUgTlNBCisgKiBFTkRDIGluZm8gbGlzdCBwYXRoY2JhY2sgLi4KKyAqCisgKiAwMSAyMSAyMDIyIHNoYXNoaWthbnRoLmtvdGFrb25kYQorICogW01PTFkwMDc1NjA1N10gW0dlbjk3XVtNVDY4OTNdW1BlcnR1cy1QXVtSMF1bUjNdW1NBXVtDTUNDXVtMaXZlTlddXVsyMUgxIENNQ0MgQ2hpcCBCZW5jaG1hcmtdW0JlaWppbmddVEFTIG9wdGltaXphdGlvbiBDaGVjayBpbiBDUgorICogCVtFV1NQMDAwMDM5NjMzOF1tZXJnZSBDTCBmcm9tIFIzLk1QIHRvIE1ENzAwLkRFVgorICoKKyAqIDA3IDIzIDIwMjEgdGFudWouYmFodWd1bmEKKyAqIFtNT0xZMDA2NDA3MDJdIEluZm9ybSBjZWxsIHRpbWUgY2hhbmdlIHRvIElSVCAtIEludGVyZmFjZSBmaWxlIGZvciBuZXcgTVNHX0lECisgKgorICogMDMgMjkgMjAyMSBwcmFkZWVwLnRoYW5uZWVydQorICogW01PTFkwMDU5MjQ1MF0gW1dOPz9EVFMyMDIwMTEwOTA1SDBTWVAxMjAwXVdOPz9iZXRhPz8gbW9kZW0gY3Jhc2g/W0FTU0VSVF0gZmlsZTptY3UvbDEvbmwxL2ludGVybmFsL21kOTcvc3JjL2N0cmwvbnJfY3RybF9pcnQuYyBsaW5lOjM2NDM/P01USz8/Pz8/CisgKiAJCisgKiAJRU5EQyBBdXRvIEdBUCAoTVBENzAwKSBicmFuY2gKKyAqCisgKiAwMSAyMSAyMDIxIHByYWRlZXAudGhhbm5lZXJ1CisgKiBbTU9MWTAwNTkyNDUwXSBbV04/P0RUUzIwMjAxMTA5MDVIMFNZUDEyMDBdV04/P2JldGE/PyBtb2RlbSBjcmFzaD9bQVNTRVJUXSBmaWxlOm1jdS9sMS9ubDEvaW50ZXJuYWwvbWQ5Ny9zcmMvY3RybC9ucl9jdHJsX2lydC5jIGxpbmU6MzY0Mz8/TVRLPz8/Pz8KKyAqIAkKKyAqIAlFTkRDIEF1dG8gR0FQIEZMb3cgY2hhbmdlIChSMy5NUCBCcmFuY2gpCisgKgorICogMTEgMjYgMjAyMCBwcmFkZWVwLnRoYW5uZWVydQorICogW01PTFkwMDU5Mzk0Ml0gW01UNjg5M11bUGV0cnVzLVBdWzVHXVtOU0FdW0NNQ0NdW0ZUXVtSMF1bTVA3XVtSM11bU1FDXVszcmQgcm91bmRdWzVHLUZULU5TQS0xLjRdW0JlaWppbmddRFVUIEhPIHRvIDJHIHdoZW4gbWFrZSBNTyB2b2ljZSBjYWxsLgorICogCQorICogCU1SREMgQ0hBTkdFCisgKgorICogMTEgMDYgMjAyMCB2ZW5kX210Yl9tb2JpdmVpbDAxOQorICogW01PTFkwMDU4MTAwNl0gW0dlbjk3XSBEUi1EU0RTIDMuMAorICoKKyAqIDA5IDE4IDIwMjAgYWRpdHlhLnJhY2hha29uZGEKKyAqIFtNT0xZMDA1Njk1MDRdIFtHZW45N11bTVA3XSBMVEUgYW5kIE5SLU5TQSBtb2RlIHNuaWZmZXIgdHlwZSAxIHN1Ym1pdCBSMyBDUgorICogCQorICogCUVMMUMtUEhTIGFuZCBFTDFDLUNIIHBhcnQgKG5vbiBNUEQgZmlsZXMpLgorICoKKyAqIDA5IDA5IDIwMjAgYXN3YW5pLnBhYmJhdGhpCisgKiBbTU9MWTAwNTY2OTU1XSBbVlRGXVtNVDY4NzVdW01hcmdhdXhdW1EwXVtNUDZdW1NRQ11bNUdNTV1bTkxPIEZUXVs1RyA/Pz9dW1JUXVtHdWFuZ3pob3VdWz8/Pz9dW0NUK0NNQ0NdW05TQV1bTWV0cm9dRXh0ZXJuZWwgKEVFKSwwLDAsOTksL2RhdGEvdmVuZG9yL2NvcmUvLDEsbW9kZW0sW0FTU0VSVF0gZmlsZTptY3UvcHJvdG9jb2wvbHRlX3NlYy9lcnJjL2V2dGgvc3JjL2VycmNfZXZ0aC5jIGxpbmU6MjM1MAorICogCQorICogCS4KKyAqCisgKiAwNiAzMCAyMDIwIHByYWRlZXAudGhhbm5lZXJ1CisgKiBbTU9MWTAwNTM1MTIwXSBbR2VuOTddIEludHJhLUJhbmQgRFItRFNEUworICogCQorICogCUludHJhQmFuZCBFTkRDIENoYW5nZXMKKyAqCisgKiAwNiAxOSAyMDIwIGFzd2FuaS5wYWJiYXRoaQorICogW01PTFkwMDUzNDcxMl0gW01UNjg1M11bTW91dG9uXVtNVDYxOTBdW1IzXVtNUDVdW1EwXVtTUUNdW0NoaW5hXVtTaGFudG91XVs1R01NXVtOU0FdW0ludGVybmFsXVtGVF1bTlNBIFNlbGYtQ2VyXVtUQ0lEOk5TQV9TZWxmLUNlcl9GVF8wMl8wMDJdW0NVK0NNQ0NdW2Vycm9yIHRpbWVzOjFdW0ZhdGFsIGVycm9yKE1QVV9OT1RfQUxMT1cpXSBlcnJfY29kZTE6MHgwMDAwMDAxRCBlcnJfY29kZTI6MHg5MENFMzBCRSBlcnJfY29kZTM6MHgyOUQwREYyMAorICogCQorICogCUVMMSB0byB3YWl0IGZvciBOUiBTQ0dfUkVMIGluIGNhc2Ugb2YgRVJSQyBpbmZvcm1zIEVMMSB0byB3YWl0IGluIFNDSF9jbG9zZSBjYXNlCisgKgorICogMDYgMDIgMjAyMCBhZGl0eWEucmFjaGFrb25kYQorICogW01PTFkwMDUxNjMxNF0gW0NBWU1BTl1bU1BSXSBPTUFETSBub2RlIHRvIGNvbnRyb2wgLi9MVEUvUUFNL0Rvd25saW5rIC4vTFRFL1FBTS9VcGxpbmsgLi9MVEUvVEREL1RNOTogLi9MVEUvRkREL1RNOTogLi9MVEUvQjI1LzR4NE1JTU86Li9MVEUvQjQxLzR4NE1JTU86CisgKiAJCisgKiAJW01PTFkwMDUxNjMxNF0gW0VXU1AwMDAwMTE3NTIxXSBbQ0FZTUFOXVtTUFJdIE9NQURNIG5vZGUgdG8gY29udHJvbCAuL0xURS9RQU0vRG93bmxpbmsgLi9MVEUvUUFNL1VwbGluayAuL0xURS9UREQvVE05OiAuL0xURS9GREQvVE05OiAuL0xURS9CMjUvNHg0TUlNTzouL0xURS9CNDEvNHg0TUlNTzoKKyAqIAkKKyAqIAlFbmFibGUvZGlzYWJsZSA0eDQgTUlNTyBzdXBwb3J0IGZvciBiYW5kIDI1IGFuZCBiYW5kIDQxIGJhc2VkIG9uIE9NQURNIHJlcXVlc3Qgc2VudCBieSBMNCB0byBFTDFDLgorICoKKyAqIDA2IDAxIDIwMjAgcHJhdGlrLmRldmlrYXIKKyAqIFtNT0xZMDA1MjY5ODJdW0VXU1AwMDAwMTE3NDA1XU5iciBjZWxsIHdpbGwgYmUgbG9ja2VkIGR1cmluZyBOYnIgZXZlbnQgb25nb2luZywgc28gdGhhdCBNUEMgZG9lc25vdCBtYWtlIHRoYXQgTmJyIGNlbGwgYXMgZmFrZSBjZWxsCisgKgorICogMDUgMTkgMjAyMCBsb3Vpcy10dy5odWFuZworICogW01PTFkwMDUyNTIzN10gW01UNjg1M11bTW91dG9uXVtNVDYxOTBdW01QNV1bUjNdW1EwXVtTUUNdIExBQSBjb2V4IHJlbGF0ZWQgY29kZSBkZWZlY3QgYnVnIGZpeAorICogW0VXU1AwMDAwMTEzNzExXS4KKyAqCisgKiAwNCAxNiAyMDIwIGNoaW5nLXdlbi5odQorICogW01PTFkwMDUwOTMwNV0gW0xBQV0gRm9yY2UgQ1FJID0gMCB3aGVuIFdJRkkgaXMgaW4gU1RBIG1vZGUgYW5kIExURSBjb25uZWN0cyB0byBMQUEgY2VsbAorICogW0lEQ11bTEFBXSBub3RpZnkgRUwxQ19SWCBvZiB3aWZpIHN0YXRpb24gbW9kZSBzdGF0dXMuCisgKgorICogMDQgMTUgMjAyMCBkZWVwdGkudmFyYWRhcmFqYW4KKyAqIFtNT0xZMDA1MDMxOTJdW0NPREVTWU5DXVtESDMwX1RSRl1bUFJPVE9DT0xdW0FUVF1bMTA3NzZdICBJbnRlcmZhY2UgOiBMVEUtQlRSLTUtNDEwMiBpcyBmYWlsZWQKKyAqCisgKiAwNCAxMCAyMDIwIHByYWRlZXAudGhhbm5lZXJ1CisgKiBbTU9MWTAwNTExMTgwXSBbTVQ2ODc1XVtNYXJnYXV4XVtRMF1bTVAzXVtTUUNdW0ludGVybmFsXVtGdW5jdGlvbl1bQ2hpbmFdW1NoZW56aGVuXVtNRFNUXVtTV0lGVF1bQ1QrQ1VdW0FTU0VSVF0gZmlsZTptY3UvZHJpdmVyL3NsZWVwX2Rydi9pbnRlcm5hbC9zcmMvTURfVE9QU00uYyBsaW5lOjE4ODYKKyAqIAkKKyAqIAlFTkRDIHN0YXR1cyBJbnRlcmZhY2UKKyAqCisgKiAwMiAyNSAyMDIwIHJhaHVsLmcKKyAqIFtNT0xZMDA1MDE3ODZdIFtNVDY4NzNdW01hcmdhdXhdW1EwXVtNUDJdW1NRQ11bSFFdW01UQkZdW0xhYl1bRXJpY3Nzb25dW0Vycm9yVGltZXM6NV1tZDE6TW9kZW0gV2FybmluZzogK0VXQVJOSU5HOiBbMV1bMTU0Ml0gbnJfbHB3cl9zbS5jICM2NDI7CisgKiAJCisgKiAJREwgQ2hhbmdlIEFib3J0IGR1cmluZyBSU1ZBUyBzdXNwZW5kCisgKgorICogMDIgMDUgMjAyMCByYWh1bC5nCisgKiBbTU9MWTAwNDc1NDMyXSBbTVQ2ODczXVtNYXJnYXV4XVtNUDJdW1NRQ11bQ1RdW05TSU9UXVtIUV1bS1NdW043OF1bU0FdW0NUQ19QQ19TQV82LjIuMi4yXzJUNFJdW1RDLU1GXzVHX1BPV0VSLTEyMDAyXVZQQSBjb250cm9sIGZpeCBpbiBDRFJYIGZvciBsb3cgcG93ZXIgY29uc3VtcHRpb24KKyAqIAkKKyAqIAlVRSBpbiB2b2x0ZSBjYWxsIG9yIG5vdAorICoKKyAqIDEyIDAyIDIwMTkgYXN3YW5pLnBhYmJhdGhpCisgKiBbTU9MWTAwNDYyMjgwXSBbR05TU10gQ29kZSBjaGFuZ2VzIGZvciBMVEUgRUwxQyBHTlNTCisgKiAJCisgKiAJR05TUyBpbnRlcmZhY2UgY2hhbmdlcy4KKyAqCisgKiAxMSAwNSAyMDE5IHNtaXRhLnNvbGFua2kKKyAqIFtNT0xZMDA0NDIxMzhdIFtUb3AgSXNzdWVdW01UNjI5N11bQXBvbGxvXVtNUDFdW0xURV1bR0NGXVtUUzg5ODBdW0ZERCBCMyxUQyA1LjEuMS40UnhdIFVFIFJlZXN0YWJsaXNobWVudCBhdCB0aGUgaXRlcmF0aW9uIHdoZW4gTkJSIFBDSSBtb2QgNiA9IDMKKyAqIAkKKyAqIAlbTU9MWTAwNDQyMTM4XVtFV1NQMDAwMDA1NzM5Ml1bRUwxQyBNZWFzXSBQYXRjaGJhY2sgZnJvbSBHZW45NQorICoKKyAqIDA5IDI2IDIwMTkgY2hpbmctd2VuLmh1CisgKiBbTU9MWTAwNDQzMDYyXSBbR2VtaW5pXSBTQStMIERSLURTRFMvRFNEQQorICogW0VMMUNdW1JYXSBEUi1EU0RTL0RTREEgZmVhdHVyZS4KKyAqCisgKiAwOSAyMyAyMDE5IGNoaW5nLXdlbi5odQorICogW01PTFkwMDQzOTUzM10gW0dlbjk3XVtJRENdIElEQyBmZWF0dXJlIGRldmVsb3BtZW50CisgKiBbRVdTUDAwMDAwNDYyMzNdW0VMMUNdW1JYXSBJREMgZmVhdHVyZS4KKyAqCisgKiAwOSAxOCAyMDE5IHdhZGUuY2hlbgorICogW01PTFkwMDM0Nzk0MF0gW0dlbjk3XVtNVDYyOTddIHRzdG1fbWV0YSBkZXZlbG9wbWVudAorICogCQorICogCVtFV1NQMDAwMDA0NDEzOF1bVk1PTFldTFRFIE1FVEEgbm9uLXN5bmMgTlNGVCAmIHF1ZXJ5IEhQVUUgcm91dGUgaW5mbyAoaW50ZXJmYWNlIHBhcnQpCisgKgorICogMDkgMTggMjAxOSBzbWl0YS5zb2xhbmtpCisgKiBbTU9MWTAwNDM0NDc0XSBsb2cgcmVkdWN0aW9uIGVuaGFuY2VtZW50CisgKgorICogMDkgMTggMjAxOSBoYXJzaGl0LmtoYW5kZWx3YWwKKyAqIFtNT0xZMDA0Mzk0ODVdIFtNVDYyOTddIERBVCBkZXZlbG9wbWVudAorICogW0VXU1AwMDAwMDQzMDg4XW1kX3NhcCBmaWxlcworICoKKyAqIDA5IDA2IDIwMTkga3VvLXdlaS5odW5nCisgKiBbTU9MWTAwMzc4OTk4XSBbVk1PTFldIE5MMSBmcmFtZXdvcmsgZGV2ZWxvcG1lbnQKKyAqIFtNTUwxXVtGV0tdW1ZNT0xZXSBDaGFuZ2UgRU5MMSBtc2cgSUQgKFNXUkQpCisgKiAJW0VXU1AwMDAwMDM5NzU4XQorICoKKyAqIDA5IDA2IDIwMTkgYWxleC5jaHVuZworICogW01PTFkwMDQzNjIxMF0gWzYyOTddW1RBU10gVEFTIGRldmVsb3BtZW50IFBvcnRpbmcKKyAqIFtTQ0hFRF0gVEFTIGRldmVsb3BtZW50CisgKgorICogMDggMjYgMjAxOSBjaGluZy13ZW4uaHUKKyAqIFtNT0xZMDA0MzQ3MzldIFs2Mjk3XVtFTkRDXVtTTEVFUF0gRU5EQyBjb21tb24gZ2FwIGZyYW1ld29yayBtb2RpZmljYXRpb24gZm9yIHNsZWVwIG1vZGUKKyAqIFtFV1NQMDAwMDAzNTk1N11bRUwxQ11bUlhdICgxKSBub3RpZnkgbG9jay91bmxvY2sgcGVlciBzaW0gc20gd2hlbiBjb21tb24gcmZkYiBuZWVkcyB0byBiZSB1cGRhdGVkICgyKSB3aGVuIGpvaW50X3JmIGlzIFRSVUUsIDFzdCBkbCBjaGFuZ2UgUkFUIHNob3VsZCBzdXNwZW5kIHNydiB0cnggdW50aWwgMm5kIGRsIGNoYW5nZSBSQVQgZmluaXNoZXMuCisgKgorICogMDcgMzEgMjAxOSByYWh1bC5nCisgKiBbTU9MWTAwNDIwMTQwXSBbVE9QIElzc3VlXVtNVDYyOTddW0Fwb2xsb11bTVAxXVtTUUNdW1NIXUFzc2VydCBmYWlsOiBscmZ0eGNvbnRyb2wuYyA1ODQgMHgyOCAweDI3IDB4MCAtIChMSVNSKUVMMV9EX1RYCisgKgorICogCS4KKyAqCisgKiAwNyAyNCAyMDE5IHNtaXRhLnNvbGFua2kKKyAqIFtNT0xZMDA0MjQxMzddW0dlbjk3XSBMUFAgSVJBVCBSU1REIG1vZGlmaWNhdGlvbnMKKyAqIAktIFRpbWVyIGRlZmluYXRpb24gZml4CisgKgorICogMDcgMDQgMjAxOSB5YW1pbi5jaGVuCisgKiBbTU9MWTAwNDE5MTcwXSBTRlREIGZlYXR1cmUgZGV2ZWxvcAorICogW0VXU1AwMDAwMDIzNDEyXQorICogCS4KKyAqCisgKiAwNyAwMSAyMDE5IHNoaWgtaHN1YW4ud2VpCisgKiBbTU9MWTAwMzk5MjI0XSBbR0VOOTddW1VUQVNdIFVUQVMgcmVsYXRlZCBkZXZlbG9wbWVudC4gW0VXU1AwMDAwMDIxNzY5XS4KKyAqCisgKiAwNiAyNiAyMDE5IHlhbWluLmNoZW4KKyAqIFtNT0xZMDA0MTU1NjFdIFtHZW45N11bUEhTXSBQTE1OIExpc3QgQ29udHJvbAorICogcm9sbGJhY2suCisgKgorICogMDUgMzAgMjAxOSBjaGluZy13ZW4uaHUKKyAqIFtNT0xZMDAzNTE4NjRdIFtNVDYyOTddIEVMMUMgUnggZGV2ZWxvcG1lbnQKKyAqIFtFV1NQMDAwMDAxMzY4Ml0gZ2FtaW5nIGVuaGFuY2VtZW50IChwb3J0aW5nIGZyb20gQ0wjNjIzMzg0MiwgQ0wjNjM1Nzk1NikuCisgKgorICogMDUgMzAgMjAxOSBqYXNuZWV0a2F1ci5iaHVsbGFyCisgKiBbTU9MWTAwMzg0NjY2XSBbNjI5N11bSVJBVC1SU1REXSBbTVAyXSA2MjkzIE1QMiBGZWF0dXJlLCBJUkFUIFJTVEQgcmVsYXRlZCBjaGFuZ2VzCisgKiBJUkFUX1JTVEQgZmVhdHVyZSBjaGFuZ2VzOiBSVFAgaGFuZGxpbmcgJiBQUlNfR0FQX1BBVFRFUk4KKyAqCisgKiAwNSAxMyAyMDE5IHlhbWluLmNoZW4KKyAqIFtNT0xZMDA0MDUxNjJdIFtHZW45N10gRm9yY2UgR2FwIGZvciBTRlRECisgKiAJW0VXU1AwMDAwMDA5NzExXQorICogCS4KKyAqCisgKiAwNCAzMCAyMDE5IHN0ZXZlbi15eC5odQorICogW01PTFkwMDQwMTU2OV0gW01UNjI5N10gTmV3IFJSTSBnYXAgZGlzdHJpYnV0aW9uIGFsZ29yaXRobS4gW0VXU1AwMDAwMDA3NDE0XQorICogCVtFTDFDXVtSWF0gbXNnIGlkLgorICoKKyAqIDA0IDE1IDIwMTkgcG8tY2h1bi5jaGl1CisgKiBbTU9MWTAwMzc3NDgzXSBbTVQ2Nzc5XVtMYWZpdGVdW1AwXVtCU1ArXVtNUDJdW0hRXVtNVEJGXVtMYWJdW0VyaWNzc29uXVtHZW1pbmldW0Vycm9yVGltZXM6MV1bT1BQT11Nb2RlbSBXYXJuaW5nOiArRVdBUk5JTkc6IFsxXVsxMjc5XSBscnhkc3BycHQuYyAjOTkxOTsgKHRpbWUKKyAqCisgKiAJW0VXU1AwMDAwMDA0Mzc3XSBUcmFuc2ZlciBMMURfUlBUIHRvIE1QQyB0YXNrIGFuZCBoYW5kbGUgaXQgLSBTQVAgcGFydC4KKyAqCisgKiAwMyAyOSAyMDE5IGphc25lZXRrYXVyLmJodWxsYXIKKyAqIFtNT0xZMDAzODQ2NjZdIFs2Mjk3XVtJUkFULVJTVERdIFtNUDJdIDYyOTMgTVAyIEZlYXR1cmUsIElSQVQgUlNURCByZWxhdGVkIGNoYW5nZXMKKyAqIExQUF9JUlRfSVJBVCBNUDIgZmVhdHVyZSwgSW50ZXJmYWNlIHBhcnQuIFtFV1NQMDAwMDAwMjM3MF0KKyAqCisgKiAwMyAyOSAyMDE5IGphc25lZXRrYXVyLmJodWxsYXIKKyAqIFtNT0xZMDAzODQ2NjZdIFs2Mjk3XVtJUkFULVJTVERdIFtNUDJdIDYyOTMgTVAyIEZlYXR1cmUsIElSQVQgUlNURCByZWxhdGVkIGNoYW5nZXMKKyAqIExQUF9JUlRfSVJBVCBNUDIgZmVhdHVyZSwgSW50ZXJmYWNlIHBhcnQuIFtFV1NQMDAwMDAwMjM3MF0KKyAqCisgKiAwMyAxOCAyMDE5IG5lbHNvbmhlLmh1YW5nCisgKiBbTU9MWTAwMzg0NjY2XSBbNjI5N11bSVJBVC1SU1REXSBbTVAyXSA2MjkzIE1QMiBGZWF0dXJlLCBJUkFUIFJTVEQgcmVsYXRlZCBjaGFuZ2VzCisgKgorICogCVtFUlMwMDAzMTUyNV1JUkFULVJTVEQgZnVuY3Rpb24tU1dSRAorICoKKyAqIDAzIDEyIDIwMTkgbmVsc29uaGUuaHVhbmcKKyAqIFtNT0xZMDAzODQ2NjZdIFs2Mjk3XVtJUkFULVJTVERdIFtNUDJdIDYyOTMgTVAyIEZlYXR1cmUsIElSQVQgUlNURCByZWxhdGVkIGNoYW5nZXMKKyAqIAlyZXZlcnNlIGZvciBHZW45NQorICoKKyAqIDAzIDEyIDIwMTkgbmVsc29uaGUuaHVhbmcKKyAqIFtNT0xZMDAzODQ2NjZdIFs2Mjk3XVtJUkFULVJTVERdIFtNUDJdIDYyOTMgTVAyIEZlYXR1cmUsIElSQVQgUlNURCByZWxhdGVkIGNoYW5nZXMKKyAqCisgKiAJW01PTFkwMDM4NDY2Nl1bRVJTMDAwMzExNTBdIFs2Mjk3XVtJUkFULVJTVERdIFtNUDJdIDYyOTMgTVAyIEZlYXR1cmUsIElSQVQgUlNURCByZWxhdGVkIGNoYW5nZXMKKyAqCisgKiAJdGhlIGludGVyZmFjZSBmb3IgSS1SQVQgUlNURCBmb3IgR0VOOTcgTVAyIGZlYXR1cmUKKyAqCisgKiAwMSAxOSAyMDE5IGt1YW4tdGluZy5sZWUKKyAqIFtNT0xZMDAzNzY5MDRdIFtOUl1bTU1dW01MTDEvTVBDL0NUUkxdIE5SIGludGVyLXJhdCBkZXZlbG9wbWVudAorICogQWRkIGlsbSBmb3IgU0ZURCB0aW1pbmcgY2FsY3VsYXRpb24uIFtFUlMwMDAyNzk5Nl0KKyAqCisgKiAwMSAwOSAyMDE5IGNoaW5nLXdlbi5odQorICogW01PTFkwMDM3ODE1NF0gW01UNjI5N10gRU5EQyBhdXRvIGdhcCBjdHJsICsgRUwxIFNDUyBmbG93IGVuaGFuY2VtZW50CisgKiBbRVJTMDAwMjY2OTNdIEVOREMgYXV0byBnYXAgY3RybC4KKyAqCisgKiAxMiAyOCAyMDE4IG1hcnMtc2guY2hlbmcKKyAqIFtNT0xZMDAzNTYwMDddIFtTTU9dW0RlYnVnJlRyYWNlXSBsb2dnaW5nIHJhdGUgYWRqdXN0bWVudAorICogW1NNT11bNjI5N10gTUNVIHRyaWdnZXJpbmcgRFNQIHN0cmVhbWluZyBsb2dnaW5nIC0gaW50ZXJmYWNlCisgKgorICogMTAgMzEgMjAxOCBjaGluZy13ZW4uaHUKKyAqIFtNT0xZMDAzNjE0NzhdIFtHZW45N10gR2VtaW5pIENvbXBpbGUgT3B0aW9uIENsZWFuIFVwCisgKgorICogCVtFUlMwMDAxOTcwOF0gZ2VtaW5pIGNvbXBpbGUgb3B0aW9uIGNsZWFuIHVwLgorICoKKyAqIDEwIDMxIDIwMTggY2hpbmctd2VuLmh1CisgKiBbTU9MWTAwMzYxNDc4XSBbR2VuOTddIEdlbWluaSBDb21waWxlIE9wdGlvbiBDbGVhbiBVcAorICogW0VSUzAwMDE5NzA4XSBnZW1pbmkgY29tcGlsZSBvcHRpb24gY2xlYW4gdXAuCisgKgorICogMTAgMDUgMjAxOCBjYXJvbC5saW4KKyAqIFtNT0xZMDAzNDUxNTBdIFtHZW45N11bRUwxQ11bQ0hdIEVOREMgZmVhdHVyZSBkZXZlbG9wbWVudC4KKyAqIGFkZCBpbnRlcmZhY2UgZm9yIEVORENfUFJFX0RCX1JFQURZX0lORAorICoKKyAqIDA4IDIyIDIwMTggYy1oLmh1YW5nCisgKiBbTU9MWTAwMzM1NTg4XSBbR2VuOTddW0VMMUNdW1BIU10gRU5EQyBmZWF0dXJlIGRldmVsb3BtZW50LgorICogQWRkIGF1dG8gZ2FwIG1lc3NhZ2UgYmV0d2VlbiBFTDEvTkwxLgorICoKKyAqIDA4IDIyIDIwMTggZGF2aWQudGFuZworICogW01PTFkwMDM0NzYxN10gW05SXVtOTDFdW0NUUkxdIG1lcmdlIENUUkwtSVJUIG1vZHVsZSB0byBWTU9MWQorICogLltOUl1bQ1RSTF0gQ1RSTC1JUlQgbWVyZ2UgdG8gVk1PTFkgZnJvbSA5N0RFVgorICoKKyAqIDA4IDIxIDIwMTggZGF2aWQudGFuZworICogW01PTFkwMDM0MzkzNl0gW05SXVtOTDFdW0NUUkxdIGN0cmxfdGFzayBpcnQgc3ViLW1vZHVsZSBkZXZlbG9wbWVudAorICogLltOUl1bQ1RSTF0gZWwxLW5sMSBpbnRlcmZhY2UgY2hhbmdlCisgKgorICogMDYgMjIgMjAxOCBjLWguaHVhbmcKKyAqIFtNT0xZMDAzMzM0MDhdIFtHZW45N11bRUwxQ11bUlhdIENvZGUgc3luYyBmcm9tIFVNT0xZRSB0byBHRU45Ny5ERVYKKyAqIENMNTcwOTY4OCwgQ0w1ODQxNDA0LCBDTDU4NDEwMjMuCisgKgorICogMDYgMjAgMjAxOCBjaHVuLXllbi55YW5nCisgKiBbTU9MWTAwMzMxMjg2XSBbTVQ2Mjk1XVtMK0wrTF1bTFRFXSBwYWdpbmcgY29uZmxpY3QgQ00gaGFuZGxpbmcKKyAqIE5ldyB0aWNrIHRvIE1QQyB3aGVuIHBhZ2luZyBjb25mbGljdCAoVU1PTFlFKQorICoKKyAqIDAzIDI5IDIwMTggcG8tY2h1bi5jaGl1CisgKiBbTU9MWTAwMzE2NjkxXSBbTVQ2Mjk1XVtVTU9MWUVdW0VMMV1bTUVBU10gUmVwbGFjZSBhbGwgIl9fTUQ5NV9fIiAgd2l0aCAgIihDVVJfR0VOID49IE1EX0dFTjk1KSIgZm9yIEVMMSByZWxhdGVkIGZpbGVzLgorICoKKyAqIAkuCisgKgorICogMDMgMjggMjAxOCBwby1jaHVuLmNoaXUKKyAqIFtNT0xZMDAzMTY2OTFdIFtNVDYyOTVdW1VNT0xZRV1bRUwxXVtNRUFTXSBSZXBsYWNlIGFsbCAiX19NRDk1X18iICB3aXRoICAiKENVUl9HRU4gPj0gTURfR0VOOTUpIiBmb3IgRUwxIHJlbGF0ZWQgZmlsZXMuCisgKgorICogCVJlcGxhY2UgYWxsICJfX01EOTVfXyIgIHdpdGggICIoQ1VSX0dFTiA+PSBNRF9HRU45NSkgZm9yIEdlbjk3LgorICoKKyAqIDAzIDI4IDIwMTggcG8tY2h1bi5jaGl1CisgKiBbTU9MWTAwMzE2NjkxXSBbTVQ2Mjk1XVtVTU9MWUVdW0VMMV1bTUVBU10gUmVwbGFjZSBhbGwgIl9fTUQ5NV9fIiAgd2l0aCAgIihDVVJfR0VOID49IE1EX0dFTjk1KSIgZm9yIEVMMSByZWxhdGVkIGZpbGVzLgorICoKKyAqIAkuCisgKgorICogMDMgMDggMjAxOCBtaWthLnN1b2thcworICogW01PTFkwMDI2MDA3MV0gWzYyOTVdIEVMMUMgUnggZGV2ZWxvcG1lbnQKKyAqIAkuCisgKgorICogMDIgMjcgMjAxOCB0b21taS50YXVyaWFpbmVuCisgKiBbTU9MWTAwMjk4NzAzXSBbTVQ2Mjk1XSBFTDEgTEFBIGRldmVsb3BtZW50CisgKiBBZGRlZCBNU0dfSURfRUwxTVBDX0VMMV9NRUFTX0NIX0lOVEVSX1JNVENfVVBEQVRFX0lORAorICoKKyAqIDAyIDE0IDIwMTggdG9tbWkudGF1cmlhaW5lbgorICogW01PTFkwMDMwNjIyN10gW01UNjI5NV0gTEwxIGdhcCBhc3NpZ25tZW50IHJlZGVzaWduIGltcGxlbWVudGF0aW9uCisgKiBbSU5URVJGQUNFXVtTQVBdIEFkZGVkIE1TR19JRF9FTDFfRUwxTVBDX0lSVF9NRUFTX1JQR19HQVBfTk9USUZZX0lORAorICoKKyAqIDAxIDAyIDIwMTggbWVuZy1oc3Vhbi5saW4KKyAqIFtNT0xZMDAyOTYwMzJdIFtNVDY3NjNdW0JpYW5jb11bTzFdW01QMl1bVE1PXVtXVyBGVF1bVW5pdGVkIFN0YXRlc11bU2VhdHRsZV1bTm9raWFdW0VFXVtBU1NFUlRdIGZpbGU6bWN1L3Bjb3JlL21vZGVtL2x0ZV9zZWMvZXJyYy9hc3NlcnQvZXJyY19lbDFfYXNzZXJ0X2Nzci5jIGxpbmU6ODYKKyAqCisgKiAJW01PTFkwMDI5NjAzMl0gY3NyIHNjaGVkdWxpbmcKKyAqCisgKiAwMSAwMiAyMDE4IG1lbmctaHN1YW4ubGluCisgKiBbTU9MWTAwMjk2MDMyXSBbTVQ2NzYzXVtCaWFuY29dW08xXVtNUDJdW1RNT11bV1cgRlRdW1VuaXRlZCBTdGF0ZXNdW1NlYXR0bGVdW05va2lhXVtFRV1bQVNTRVJUXSBmaWxlOm1jdS9wY29yZS9tb2RlbS9sdGVfc2VjL2VycmMvYXNzZXJ0L2VycmNfZWwxX2Fzc2VydF9jc3IuYyBsaW5lOjg2CisgKgorICogCVtNT0xZMDAyOTYwMzJdIGNzciBzY2hlZHVsaW5nCisgKgorICogMTEgMjggMjAxNyBjaGluZy13ZW4uaHUKKyAqIFtNT0xZMDAyODc3ODRdIFtNVDYyOTVdIHRzdG1fbWV0YSBkZXZlbG9wbWVudAorICogdXBkYXRlIGNhcCBpbmZvIHRvIHRvb2wgZnJvbSBlcnJjLgorICoKKyAqIDExIDIxIDIwMTcgam9jb2JyaWFuLmNoYW5nCisgKiBbTU9MWTAwMjg4NjcxXSBbTVQ2Mjk1XVtNTUwxIERDTENdIER5bmFtaWMgY2FjaGUgbG9jayBjZW50cmFsIGNvbnRyb2wgZGV2ZWxvcG1lbnQuCisgKgorICogMTEgMDMgMjAxNyBhbGV4LmNodW5nCisgKiBbTU9MWTAwMjg2ODgwXSBbTVQ2NzYzXVtJRENdIFdvcmthcm91bmQgZm9yIFdNVCBEZWZlY3QKKyAqIFJlY29yZCBhbGwgQ0NDSSBtc2cgY29udGVudCBhbmQgdGhlbiBoYW5kbGUgdGhlbSBvbmNlIHRvIHByZXZlbnQgV01UIGRlcXVldWUgdG9vIG11Y2ggTVNHCisgKgorICogMDkgMjUgMjAxNyBhcmljLmNoaXUKKyAqIFtNT0xZMDAyNzk0MTBdIFtJUkFUIFBFUkYgVlRGXSBFTDFDIHNwZWVkIHVwIENTL0NNIHNjaGVkdWxpbmcgaW4gSFNSIG1vZGUKKyAqIFtlcnJjLWVsMW1wY10gYWRkIFJDTSBoc3IgZnJlcSBpbnRlcmZhY2UvUkNNIGhzciBtb2RlIGludGVyZmFjZS4KKyAqCisgKiAwOSAyMCAyMDE3IGxhd3JlbmNlLmNoZW4KKyAqIFtNT0xZMDAyNzgzNjZdTFBQIE9URE9BIG5ldyBwcm9jZWR1cmUgYXJjaGl0ZWN0dXJlIGRldmVsb3BtZW50LgorICoKKyAqIDA5IDEzIDIwMTcgYXJpYy5jaGl1CisgKiBbTU9MWTAwMjc3NzAzXSBbTVQ2MjkzXVtMUjEyQS5SMl0gc3BlZWQgdXAgaW50ZXItZnJlcS4gbWVhc3VyZW1lbnQgYnkgTUVBU1VSRV9DRkdfTlRGLgorICogW2VycmMtZWwxbXBjXSBhZGQgaW50ZXJmYWNlIGZvciBNRUFTVVJFX0NGR19OVEYuCisgKgorICogMDggMjkgMjAxNyBwZWkteHVhbi5xaXUKKyAqIFtNT0xZMDAyNjA1MDhdIFtFTDFfTUVBU19EZXZlbG9wbWVudF0KKyAqCisgKiAJUmVtb3ZlIE1FQVMgcGF0aGxvc3MgKFVNT0xZQSkuCisgKgorICogMDggMjggMjAxNyBnYXJ5LmxpdQorICogW01PTFkwMDI2NjYwNV0gVmVyaXpvbicgb3RhIGFudGVubmEgaW5mb3MgUG9ydGluZyA5MSBbVlpXXSBmZWF0dXJlIHRvIDkzCisgKiBbRUwxIFBIU10gYnlwYXNzIFZaVyBjbWQgZm9yIE1QQworICoKKyAqIDA4IDI0IDIwMTcgbmVsc29uaGUuaHVhbmcKKyAqIFtNT0xZMDAyNzM1ODhdIFtNT0xZMDAyNjk1OThdIFtHZW45M10gVFBCL01vYmlsaXR5IEN0cmwgcGF0Y2ggY2hlY2sgaW4gLT4gTWVhcyBwYXJ0IDogUmV2aXNlIGlsbSBuYW1pbmcKKyAqCisgKiAwOCAyNCAyMDE3IGh5cGVyLndhbmcKKyAqIFtNT0xZMDAxNzYwNDVdIFtVTU9MWUFdW0VMMSBNRUFTIERldmVsb3BtZW50XSBSZWZpbmUgU0lOUiBjYWxjdWxhdGlvbgorICoKKyAqIDA4IDIxIDIwMTcgbWFzYy5jaGVuZworICogW01PTFkwMDI2OTU5OF0gW0dlbjkzXVRQQi9Nb2JpbGl0eSBDdHJsIHBhdGNoIGNoZWNrIGluCisgKiBbVFBCXUVMMUMgVHggcGFydAorICoKKyAqIDA4IDIxIDIwMTcgZ2FyeS5saXUKKyAqIFtNT0xZMDAyMDc0MTNdIEVMMUMgNjI5MyBkZXZlbG9wbWVudAorICoKKyAqIAlbRUwxIENIXSBhZGQgbmV3IG1lc3NhZ2UgdG8gdGVsbCBUWCBJRExFIERSWCBjb25maWcgZm9yIFRBUworICoKKyAqIDA4IDE2IDIwMTcgeXUtY2h1bi5jaGVuCisgKiBbTU9MWTAwMjMzNDU2XSBbQmlhbmNvX1NNVF1bVU1PTFlBXSA5MyBUU1RNX01FVEEgRGV2ZWxvcG1lbnQKKyAqIEZpeCBNU0dJRCBmb3IgVFNUTQorICoKKyAqIDA4IDA3IDIwMTcgeXUtY2h1bi5jaGVuCisgKiBbTU9MWTAwMjMzNDU2XSBbQmlhbmNvX1NNVF1bVU1PTFlBXSA5MyBUU1RNX01FVEEgRGV2ZWxvcG1lbnQKKyAqIG1vdmUgVFNUTSB4bDFzaW0gY2FzZSBmcm9tIGNvZGUgdG8geGwxc2ltIHNjcmlwdAorICoKKyAqIDA3IDI4IDIwMTcgZ2FyeS5saXUKKyAqIFtNT0xZMDAyNjY4NTJdIFtCaWFuY28vWmlvbl0gZnJlIHN3IGNoZWNrLWluCisgKiBbRUwxXSBCNzEgZWZ1c2UKKyAqCisgKiAwNyAwNyAyMDE3IGp1bmctY2hpbmcuaHNpZWgKKyAqIFtNT0xZMDAyNjI3NTBdW1BIMSBWWlddIFJlZ2FyZGluZyBBbnRlbm5hIFRlc3RpbmcgaW50ZXJmYWNlIG1vZGlmeQorICoKKyAqIDA2IDMwIDIwMTcgYWxleC5jaHVuZworICogW01PTFkwMDI2MDcwM10gW1RFLU1UQkZdW0FpcnRlbCBJTVNdW0JpYW5jb11bTjFdRXh0ZXJuZWwgKEVFKSwwLDAsOTksL2RhdGEvY29yZS8sMSxtb2RlbSxUcmlnZ2VyIHRpbWU6WzIwMTctMDYtMjMgMDY6MTg6MjQuMjUwMzE5XSBtZDE6KE1DVV9jb3JlMS52cGUwLnRjMChWUEUyKSkgW0ZhdGFsIGVycm9yKHRhc2spXSBlcnJfY29kZTE6MHgwMDAwMDYwNCBlcnJfY29kZTI6MHhGRkZGRkZERSBlcnJfY29kZTM6MHhDQ0NDQ0NDQyBNRCBPZmZlbmRlcjpFTDEKKyAqIE1PRF9FTDFfTVBDIHNlbmRzIElMTSB0byB1cGRhdGUgdm9sdGUgYW5kIGludGVyLWZyZXF1ZW5jeSBzdGF0ZQorICoKKyAqIDA2IDI4IDIwMTcgYWxleC5jaHVuZworICogW01PTFkwMDI2MDMzN10gW0JJQU5DT10gRW5hYmxlIEwrTCBJREMKKyAqIEVuYWJsZSBMK0wgSURDCisgKgorICogMDYgMjggMjAxNyBoeXBlci53YW5nCisgKiBbTU9MWTAwMjU3OTMwXSBbNjI5M10gU3BlY2lhbCBQYXRjaCBmb3IgVm9MVEUKKyAqIDEuIFJlbW92ZSBNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19DTV9QUk9DX1JFUS9NU0dfSURfRUwxX0VMMU1QQ19QSFNfTUVBU19DTV9QUk9DX0NORgorICogMi4gUmVtb3ZlIE1FQVNfSU5EX0NFTExfU1RBVEVfVkFMSURfQklUCisgKgorICogMDUgMjYgMjAxNyBoeXBlci53YW5nCisgKiBbTU9MWTAwMjQwNjA0XSBbU0UyIEludGVybmFsIFRlc3RdW01UNjI5M11bVU1PTFlBXVsyMDE3MDQwNl1bT3Zlcm5pZ2h0IFJlc3VsdF0gQXNzZXJ0IGZhaWw6IGVsMV9tZWFzX3BoeS5jIDExMDQgLSBFTDFfTVBDCisgKiAJKENvbnNpZGVyIGNyb3NzLXRlcm0gZmxhZyBpbiBBUEQpCisgKiAJLgorICoKKyAqIDA1IDE2IDIwMTcgZ2FyeS5saXUKKyAqIFtNT0xZMDAyNDk1NzVdIFs2MjkzXVtFTDFDXSBTVyBmZWF0dXJlIGNoZWNrCisgKiBbRUwxQ10gU1cgZmVhdHVyZSBjaGVjaworICoKKyAqIDA0IDIwIDIwMTcgankucGFuCisgKiBbTU9MWTAwMjM3NDE4XSBbRUwxRCBDU11DU0hXIGhhbmcgd29ya2Fyb3VuZAorICogW0VMMUQgQ1NdQ1NIVyBoYW5nIHdvcmthcm91bmQuCisgKgorICogMDQgMDggMjAxNyBoeXBlci53YW5nCisgKiBbTU9MWTAwMTc2MDQ1XSBbVU1PTFlBXVtFTDEgTUVBUyBEZXZlbG9wbWVudF0KKyAqIAlFbmFibGUgTUVBUy9QSFMgaW50ZXJmYWNlOiBNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19NRUFTVVJFX1RZUEVfTlRGCisgKgorICogMDMgMjkgMjAxNyBhbGV4LmNodW5nCisgKiBbTU9MWTAwMjI2MDI4XSBbVU1PTFlBXVtFTDFdIEVMMSBSWCBkZXZlbG9wbWVudAorICogUG9ydGluZyBJREMgZnJvbSBHZW45MiB0byBHZW45MworICoKKyAqIDAzIDI5IDIwMTcgYWxpLnN1CisgKiBbTU9MWTAwMjM3ODczXSBbNjI5M11bRUwxXSBHZW1pbmkgTCtMCisgKiAoVU1PTFlBIFRSVU5LKSA2MjkzIEVMMTogTCtMIChDSCkuCisgKgorICogMDMgMjEgMjAxNyBsZXdpcy55dQorICogW01PTFkwMDE4Mjg2NF0gWzYyOTNdIEVMMUMgUlggZGV2ZWxvcG1lbnQKKyAqIEwrTCBkZXZlbG9wbWVudC4KKyAqCisgKiAwMyAxNSAyMDE3IHBvcGNhZmEuc2hpaAorICogW01PTFkwMDIyMjc2MF0gW0dlbiA5M11bVU1PTFkgdG8gVU1PTFlBIHN5bmNdIGVsMXR4IHBhcnQKKyAqIE1MMVMgVFJYIEZlYXR1cmUgZm9yIHBoeSB0ZXN0LgorICoKKyAqIDAyIDE2IDIwMTcgbHVodW5nLmhzdQorICogW01PTFkwMDE4Njk5NF0gOTMgTmV3IFBIUyBjb2RlCisgKiBbRUwxIFBIU11SZWZpbmUgNEcgc3RieSBmbG93CisgKgorICogMDIgMDIgMjAxNyBqb2hubnkuY2hpYW5nCisgKiBbTU9MWTAwMjAyMzI5XSBbVU1PTFlBXSA5MyBUU1RNX01FVEEgRGV2ZWxvcG1lbnQKKyAqCisgKiAJLgorICoKKyAqIDAxIDI1IDIwMTcgZ2FyeS5saXUKKyAqIFtNT0xZMDAyMDc0MTNdIEVMMUMgNjI5MyBkZXZlbG9wbWVudAorICogW0VMMSBDSF0gTDFBRFQgcG9ydGluZworICoKKyAqIDAxIDE3IDIwMTcgYWxpLnN1CisgKiBbTU9MWTAwMjAzMjM1XSBbNjI5M11bRUwxXUVMMV9SWC9NTEwxIGRldmVsb3BtZW50CisgKiAoVU1PTFlBKSBFTDFDIHVlX2NhdGVnb3J5X2luZCBpbXBsZW1lbnRhdGlvbi4KKyAqCisgKiAwMSAxMyAyMDE3IGFsaS5zdQorICogW01PTFkwMDIwMzIzNV0gWzYyOTNdW0VMMV1FTDFfUlgvTUxMMSBkZXZlbG9wbWVudAorICogKFVNT0xZQSkgRVJSQy1FTDEgdWVfY2F0ZWdvcnkgaW50ZXJmYWNlLgorICoKKyAqIDAxIDEwIDIwMTcgbHVodW5nLmhzdQorICogW01PTFkwMDE4Njk5NF0gOTMgTmV3IFBIUyBjb2RlCisgKiBbRUwxIFBIU11Db21iaW5lIHR3byBzdG9wU3J2UHJlc3luYyBmbGFnIHRvIG9uZQorICoKKyAqIDAxIDA0IDIwMTcgYWxpLnN1CisgKiBbTU9MWTAwMjAzMjM1XSBbNjI5M11bRUwxXUVMMV9SWC9NTEwxIGRldmVsb3BtZW50CisgKiAoVU1PTFlBKUVSUkMtRUwxICBNLVBTLCBSLVNJTSBpbnRlcmZhY2UuCisgKgorICogMDEgMDQgMjAxNyBsdWh1bmcuaHN1CisgKiBbTU9MWTAwMTg2OTk0XSA5MyBOZXcgUEhTIGNvZGUKKyAqIFJlbmFtZSBzY3MgcmVzdWx0IGlsbSBtc2cKKyAqCisgKiAxMiAyNSAyMDE2IGpvaG5ueS5jaGlhbmcKKyAqIFtNT0xZMDAyMDIzMjldIFtVTU9MWUFdIDkzIFRTVE1fTUVUQSBEZXZlbG9wbWVudAorICoKKyAqIAkuOTMgdHN0bV9tZXRhIHBhdGNoIGJhY2sKKyAqCisgKiAxMiAwOCAyMDE2IGdhcnkubGl1CisgKiBbTU9MWTAwMjA3NDEzXSBFTDFDIDYyOTMgZGV2ZWxvcG1lbnQKKyAqIFtFTDEgSURDXSBhZGQgbWVzc2FnZQorICoKKyAqIDEyIDA3IDIwMTYgYXJpYy5jaGl1CisgKiBbTU9MWTAwMTg1NTYxXSBbVU1PTFlBXVtUUlVOS11bVU1PTFlBXVtFTDEvRUwxX01QQ10KKyAqIFtlbDFdIHJlbmFtZSBNU0dfSURfRUwxX0VMMU1QQ19DSF9NRUFTX0NFTExfSU5GT19VUERBVEVfSU5EIHRvIE1TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfQ0VMTF9JTkZPX1VQRFRfSU5ELgorICoKKyAqIDEyIDA2IDIwMTYga3Vhbi10aW5nLmxlZQorICogW01PTFkwMDE3NjA0NV0gW1VNT0xZQV1bRUwxIE1FQVMgRGV2ZWxvcG1lbnRdCisgKiBBZGQ6IE1TR19JRF9FUlJDX0VMMU1QQ19NRUFTVVJFTUVOVF9JTkZPX05URi4KKyAqCisgKiAxMSAyNCAyMDE2IGt1YW4tdGluZy5sZWUKKyAqIFtNT0xZMDAxNzYwNDVdIFtVTU9MWUFdW0VMMSBNRUFTIERldmVsb3BtZW50XQorICoKKyAqIAlJY1NwOiAxLiBzeW5jIGNvZGUgZnJvbSA5MgorICogCSAgICAgICAgICAyLiBEZXNpZ24gY2hhbmdlOiBSeCBxdWFsIHJlcG9ydAorICogCSAgICAgICAgICAzLiBGZWljaWMgYW50ZW5uYSBwb3J0IGluZm9ybWF0aW9uLgorICogCSAgICAgICAgICA0LiBNaXNjCisgKgorICogMTEgMTYgMjAxNiBwb3BjYWZhLnNoaWgKKyAqIFtNT0xZMDAxOTYwNjVdIFtNVDYyOTNdW2ZvbGRlciBzdHJ1Y3R1cmVdIE1vdmUgRUwxL0VMMiBmaWxlcyBmcm9tIExURSBkb21haW4gdG8gU1dSRCBkb21haW4KKyAqIG1vZGlmeSBNT0xZMDAxNzM5NDkgJiBNT0xZMDAxNzI5NjQgZm9yIElTX0VMMV9BTkRST0lEX01fTENFX1JFUE9SVF9TVVBQT1JUIDAuCisgKgorICogMTEgMTYgMjAxNiB5dWFud2VpLmZhbgorICogW01PTFkwMDIxMzM4Nl0gW0VMMURdW0NNXSByZXBvcnQgYnVmZmVyIHNhdmUgcmVsYXRlZCBtb2RpZnkKKyAqIFtFTDFEXVtDTV0gcmVwb3J0IGJ1ZmZlciByZWxhdGVkIG1vZGl5ICh0byBzYXZlIGJ1ZmZlcikKKyAqCisgKiAxMSAxNSAyMDE2IGFsaS5zdQorICogW01PTFkwMDIwMzIzNV0gWzYyOTNdW0VMMV1FTDFfUlgvTUxMMSBkZXZlbG9wbWVudAorICogKFVNT0xZQSlFTDE6IHJlbW92ZSBTR0xURSBsZWdhY3kgY29kZS4KKyAqCisgKiAxMSAxMSAyMDE2IGFsaS5zdQorICogW01PTFkwMDIwMzIzNV0gWzYyOTNdW0VMMV1FTDFfUlgvTUxMMSBkZXZlbG9wbWVudAorICogKFVNT0xZQSkgRUwxIEdlbWluaTogUlNWQVMgKHBhcnQgMSkuCisgKgorICogMTEgMDcgMjAxNiB5dWFud2VpLmZhbgorICogW01PTFkwMDIxMTgyMl0gW0VMMUNdW0NNXSBNQlNGTiByZXBvcnQgcmVsYXRlZCBtb2RpZnkgcm9sbGJhY2sKKyAqIFtFTDFEXVtDTV0gTUJTRk4gcmVwb3J0IHJlbGF0ZWQgbW9kaWZ5IHJvbGxiYWNrCisgKgorICogMTEgMDMgMjAxNiBnYXJ5LmxpdQorICogW01PTFkwMDIwNzQxM10gRUwxQyA2MjkzIGRldmVsb3BtZW50CisgKiBbNjI5M10gcm9sbCBiYWNrIGZvciBlbDFiCisgKgorICogMTEgMDIgMjAxNiBsdWh1bmcuaHN1CisgKiBbTU9MWTAwMTg2OTk0XSA5MyBOZXcgUEhTIGNvZGUKKyAqIFtFTDEgUEhTXVNDZWxsIGZsb3cgcmVmaW5lCisgKgorICogMTAgMjAgMjAxNiBhbGkuc3UKKyAqIFtNT0xZMDAyMDg1MTldIFtNVDYyOTNdW1Z6V11MVEUgU0lCOC8xNiBmb3IgQUdQUyBmaW5lIHRpbWUgYWlkaW5nIChjb2RlIHN5bmMgZnJvbSBVTU9MWSkKKyAqIChVTU9MWUEpIEFHUFMgc3luYyBmZWF0dXJlIChFTDEpLgorICoKKyAqIDEwIDE4IDIwMTYgaHlwZXIud2FuZworICogW01PTFkwMDIwMzMxMF0gW1BTX0RFVl1bNjI5M10gRVJSQyBNQlNGTiBNRFQgY2hlY2sgaW4KKyAqCisgKiAxMCAxNCAyMDE2IGFsaS5zdQorICogW01PTFkwMDIwMzIzNV0gWzYyOTNdW0VMMV1FTDFfUlgvTUxMMSBkZXZlbG9wbWVudAorICogKFVNT0xZQSkgYWRkIG5vdGUuCisgKgorICogMTAgMDUgMjAxNiBrdWFuLXRpbmcubGVlCisgKiBbTU9MWTAwMTc2MDQ1XSBbVU1PTFlBXVtFTDEgTUVBUyBEZXZlbG9wbWVudF0KKyAqIE1lYXMgZm9yY2UgbW9kZSBjaGFuZ2UuCisgKgorICogMDkgMjggMjAxNiBrdWFuLXRpbmcubGVlCisgKiBbTU9MWTAwMTc2MDQ1XSBbVU1PTFlBXVtFTDEgTUVBUyBEZXZlbG9wbWVudF0KKyAqIEFkZCBuZXcgaWxtOiBNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1RYX1NSVl9STFRfSU5ELgorICoKKyAqIDA5IDI2IDIwMTYgaHlwZXIud2FuZworICogW01PTFkwMDIwMzMxMF0gW1BTX0RFVl1bNjI5M10gRVJSQyBNQlNGTiBNRFQgY2hlY2sgaW4KKyAqCisgKiAwOSAyNiAyMDE2IGxld2lzLnl1CisgKiBbTU9MWTAwMTgyODY0XSBbNjI5M10gRUwxQyBSWCBkZXZlbG9wbWVudAorICogYWRkIFRYL01FQVMgUlggQ01EIGluZC4KKyAqCisgKiAwOSAyNiAyMDE2IGx1aHVuZy5oc3UKKyAqIFtNT0xZMDAxODY5OTRdIDkzIE5ldyBQSFMgY29kZQorICogW0VMMSBQSFNdQWRkIFNSVkNDIGVuaGFuY2VtZW50IGZsb3cKKyAqCisgKiAwOSAyMyAyMDE2IGVkZGllLndhbmcKKyAqIFtNT0xZMDAxOTQ5ODddIFtNVDYyOTNdW1VNT0xZQS9QUyBERVZdIEVNQUMgbWFpbnRlbmFuY2UKKyAqIFN5bmMgUFMuREVWIHRvIFRSVU5LIHVwIHRvIENMMjg2ODg3MworICoKKyAqIDA4IDE2IDIwMTYgZWRkaWUud2FuZworICogW01PTFkwMDE5NzE3N10gQ29kZSBtYWludGVuYW5jZSBvbiBVTU9MWUEuUFMuREVWCisgKiBbRU1BQ01DSF1SZW1vdmUgTUNDSF9SQ1ZfTU9ERV9DSEFOR0VfQ09NUExFVEVfTlRGIGFuZCByZWxhdGVkIHN0cnVjdAorICogMDkgMDcgMjAxNiBhbGkuc3UKKyAqIFtNT0xZMDAxODEwNTFdIFs2MjkzXVtFTDFdRUwxX0NIL0VMMV9JUlQgZGV2ZWxvcG1lbnQKKyAqIChVTU9MWUEpIG1lcmdlIEVMMV9DSCBjb2RlIGZyb20gVU1PTFksIENMIzIzMDI1OTcsIENMIzI2Mzk4ODAsIENMIzI2NjM2NjksIENMIzI2Njc5NzEsIENMIzI2OTAxNDgsIENMIzI3MDYyMzIuCisgKgorICogMDkgMDIgMjAxNiB5dWFud2VpLmZhbgorICogW01PTFkwMDIwMDkwM10gW0VMMURdW0NNXSBTQ00gYW5kIHRwIHJlbGF0ZWQgbW9kaWZ5CisgKiBbRUwxRF1bQ01dIFNDTSAgUlNTSS9QSEFTRSBSZXBvcnQgZm9yIFZ6VyBPVEEgVGVzdAorICoKKyAqIDA4IDI0IDIwMTYgc2hpaHlhby53YW5nCisgKiBbTU9MWTAwMTc1OTk3XSBbRUwxQ10gdW1vbHlhIGNvZGUgc3luYworICogZHJ4IGNvbnRyb2wgJiBldmVudCBzY2hlZHVsaW5nCisgKgorICogMDggMjIgMjAxNiBoeXBlci53YW5nCisgKiBbTU9MWTAwMTc2MDQ1XSBbVU1PTFlBXVtFTDEgTUVBUyBEZXZlbG9wbWVudF0KKyAqIAlhZGQgTVNHIElECisgKiAJLgorICoKKyAqIDA4IDEwIDIwMTYgZ2FyeS5saXUKKyAqIFtNT0xZMDAxOTQyNjddIGFkZCBuZXcgZmVhdHVyZQorICogTWVyZ2luZworICoKKyAqIAkvL1VNT0xZQV9DQnIvYXJpYy5jaGl1L1VNT0xZQV9XMTYuMzEuTFRFLnAxLmVsMUZvbGRlck1vdmUvCisgKgorICogCXRvIC8vVU1PTFlBL1RSVU5LL1VNT0xZQS8KKyAqCisgKiAwOCAxMCAyMDE2IGt1YW4tdGluZy5sZWUKKyAqIFtNT0xZMDAxNzYwNDVdIFtVTU9MWUFdW0VMMSBNRUFTIERldmVsb3BtZW50XQorICogc2VuZCBzcGVjaWZpYyBtZWFzdXJlbWVudCBpbG0gdG8gQ1NSIGluc3RlYWQgb2YgTUVBUworICoKKyAqIDA4IDA5IDIwMTYgYXJpYy5jaGl1CisgKiBbTU9MWTAwMTk2MDY1XSBbTVQ2MjkzXVtmb2xkZXIgc3RydWN0dXJlXSBNb3ZlIEVMMS9FTDIgZmlsZXMgZnJvbSBMVEUgZG9tYWluIHRvIFNXUkQgZG9tYWluCisgKiBbZmxkcl9zdHJdW2VsMV0gbWVyZ2UgY29tbW9uIGZpbGUgZnJvbSBDYnIuCisgKgorICogMDcgMTEgMjAxNiBnYXJ5LmxpdQorICogW01PTFkwMDE5MDAyN10gVU1PTFlBIGJ1aWxkIGVycm9yCisgKiBmaXggYnVpbGQgZXJyb3IKKyAqCisgKiAwNiAyOCAyMDE2IGxhd3JlbmNlLmNoZW4KKyAqIFtNT0xZMDAxODM2NDJdIG5ldyB0YXNrIEVMMV9NUEMgZGVmaW5pdGlvbiBmb3IgNjI5MworICogUmVuYW1lIE1TRyBJZCBmb3IgdGhlIG5ldyBFTDFfTVBDIHRhc2suCisgKgorICogMDYgMjggMjAxNiBhcmljLmNoaXUKKyAqIFtNT0xZMDAxODU1NjFdIFtVTU9MWUFdW1RSVU5LXVtVTU9MWUFdW0VMMS9FTDFfTVBDXQorICogYWRkIE1TR19JRF9FTDFfVFhfTUVBU19UWF9SWF9ESUZGX0lORC4KKyAqCisgKiAwNiAyOCAyMDE2IGFyaWMuY2hpdQorICogW01PTFkwMDE4NTU2MV0gW1VNT0xZQV1bVFJVTktdW1VNT0xZQV1bRUwxL0VMMV9NUENdCisgKiBhZGQgbG9zdCBtc2dfaWQuCisgKgorICogMDYgMjggMjAxNiBqb2hubnkuY2hpYW5nCisgKiBbTU9MWTAwMTc0MDY5XSBbVU1PTFlBXSBmaXggYnVpbGQgZXJyb3IKKyAqCisgKiAJLnVwZGF0ZSBjc3IgaXJ0IGludGVyZmFjZQorICoKKyAqIDA2IDI4IDIwMTYgYXJpYy5jaGl1CisgKiBbTU9MWTAwMTg1NTYxXSBbVU1PTFlBXVtUUlVOS11bVU1PTFlBXVtFTDEvRUwxX01QQ10KKyAqIGZpeCByZWRlY2xhcmF0aW9uIG9mIGVudW1lcmF0b3IuCisgKgorICogMDYgMjggMjAxNiBhcmljLmNoaXUKKyAqIFtNT0xZMDAxODU1NjFdIFtVTU9MWUFdW1RSVU5LXVtVTU9MWUFdW0VMMS9FTDFfTVBDXQorICogbXNnX2lkIG1vZGlmeSBiZXR3ZWVuIGVsMV9tcGMgJiBlbDFfcGhzCisgKgorICogMDYgMjggMjAxNiBnYXJ5LmxpdQorICogW01PTFkwMDE4Njk3N10gbWVyZ2UgZWwxYyBjb2RlIHRvIHVtb2x5YQorICoKKyAqIAlhZGQgbmV3IG1lc3NhZ2UgaWQgYW5kIGNoYW5nZSBtc2cgcmFuZ2UgZm9yIGVsMQorICoKKyAqIDA2IDI3IDIwMTYgam9obm55LmNoaWFuZworICogW01PTFkwMDE3NDA2OV0gW1VNT0xZQV0gZml4IGJ1aWxkIGVycm9yCisgKgorICogCS4KKyAqCisgKiAwNiAyNyAyMDE2IGxhd3JlbmNlLmNoZW4KKyAqIFtNT0xZMDAxODM2NDJdIG5ldyB0YXNrIEVMMV9NUEMgZGVmaW5pdGlvbiBmb3IgNjI5MworICogTVNHIElkIHJlbmFtZSBmb3IgdGhlIG5ldyB0YXNrIEVMMV9NUEMuCisgKgorICogMDYgMjIgMjAxNiBqb2hubnkuY2hpYW5nCisgKiBbTU9MWTAwMTgxODAwXSBbVU1PTFlBXSA5MyBDU1IgRGV2ZWxvcG1lbnQKKyAqCisgKiAJLiBhZGQgbmV3IHNjbSBtZXNzYWdlIGlkCisgKgorICogMDYgMTMgMjAxNiBqb2hubnkuY2hpYW5nCisgKiBbTU9MWTAwMTgxODAwXSBbVU1PTFlBXSA5MyBDU1IgRGV2ZWxvcG1lbnQKKyAqCisgKiAJLgorICoKKyAqIDA2IDEzIDIwMTYgam9obm55LmNoaWFuZworICogW01PTFkwMDE4MTgwMF0gW1VNT0xZQV0gOTMgQ1NSIERldmVsb3BtZW50CisgKgorICogCS5hZGQgbmV3IHByaW1pdGl2ZQorICoKKyAqIDA2IDA4IDIwMTYga3Vhbi10aW5nLmxlZQorICogW01PTFkwMDE3NjA0NV0gW1VNT0xZQV1bRUwxIE1FQVMgRGV2ZWxvcG1lbnRdCisgKiBBZGQgTWVhcyBTQ1MgcHJvY2VkdXJlIC4KKyAqCisgKiAwNiAwOCAyMDE2IGFsaS5zdQorICogW01PTFkwMDE4MTA1MV0gWzYyOTNdW0VMMV1FTDFfQ0gvRUwxX0lSVCBkZXZlbG9wbWVudAorICogKFVNT0xZQSkgRU1BQy1FTDEgaW50ZXJmYWNlIHVwZGF0ZSAobXNnKS4KKyAqCisgKiAwNiAwOCAyMDE2IGFsaS5zdQorICogW01PTFkwMDE4MTA1MV0gWzYyOTNdW0VMMV1FTDFfQ0gvRUwxX0lSVCBkZXZlbG9wbWVudAorICogKFVNT0xZQSkgRVJSQy1FTDEgaW50ZXJmYWNlIHVwZGF0ZSAobXNnKS4KKyAqCisgKiAwNiAwMyAyMDE2IGFsaS5zdQorICogW01PTFkwMDE4MTA1MV0gWzYyOTNdW0VMMV1FTDFfQ0gvRUwxX0lSVCBkZXZlbG9wbWVudAorICogKFVNT0xZQSkgRUwxIFNDUyBmbG93IGNoYW5nZTogKE9BKSBpbnRlcmZhY2UuCisgKgorICogMDUgMjQgMjAxNiBhbGkuc3UKKyAqIFtNT0xZMDAxODEwNTFdIFs2MjkzXVtFTDFdRUwxX0NIL0VMMV9JUlQgZGV2ZWxvcG1lbnQKKyAqIChVTU9MWUEpIENILU1FQVMgZmxvdyBjaGFuZ2U6IGFkZCBtZXNzYWdlLgorICoKKyAqIDA0IDI2IDIwMTYgc2hpaHlhby53YW5nCisgKiBbTU9MWTAwMTc1OTk3XSBbRUwxQ10gdW1vbHlhIGNvZGUgc3luYworICogOTMgY29kZSBzeW5jIGZyb20gcGFudSBjYnIgKGxhYmVsPVVNT0xZXzkyTDFEZXYuVzE2MTcucDQpLgorICoKKyAqIDAzIDE2IDIwMTYgcGFudS5wZWlzYQorICogW01PTFkwMDE0NzYxMV0gTVQ2MjkyIEVMMSBjb2RlIG1lcmdlIGZyb20gVU1PTFlfOTJMMURldiBDQnIgdG8gVU1PTFkKKyAqIEludGVncmF0ZWQgbWN1L2NvbW1vbiBhbmQgbWN1L21ha2UgY2hhbmdlcyBmcm9tIDIxMjQ4OTggdG8gMjE2ODE3Mi4KKyAqCisgKiAwMyAwNCAyMDE2IHBhbnUucGVpc2EKKyAqIFtNT0xZMDAxNDc2MTFdIE1UNjI5MiBFTDEgY29kZSBtZXJnZSBmcm9tIFVNT0xZXzkyTDFEZXYgQ0JyIHRvIFVNT0xZCisgKiBJbnRlZ3JhdGVkIG1jdS9jb21tb24sIG1jdS9tYWtlIGFuZCBtY3UvcGNvcmUgY2hhbmdlcyBmb3JtIDIxMDgzNTYgdG8gMjEyNDg5OCAoIHN3cmQgcGFydCApLgorICoKKyAqIDAyIDA0IDIwMTYgcGFudS5wZWlzYQorICogW01PTFkwMDE0NzYxMV0gTVQ2MjkyIEVMMSBjb2RlIG1lcmdlIGZyb20gVU1PTFlfOTJMMURldiBDQnIgdG8gVU1PTFkKKyAqIEludGVncmF0ZWQgbWN1L2NvbW1vbiwgbWN1L21ha2UgYW5kIG1jdS9wY29yZSBjaGFuZ2VzIGZyb20gMjAxOTI5NyB0byAyMDQzMjk4ICggc3dyZCBwYXJ0ICkuCisgKgorICogMDIgMDMgMjAxNiBhbnR0aS50b3JtYW5lbgorICogW01PTFkwMDEzMzMyNV0gNjI5MXBsdXMgZGV2ZWxvcG1lbnQKKyAqCisgKiAJSW50ZXJmYWNlIHVwZGF0ZXMgZm9yIGZlYXR1cmUgcG9ydCAmIHN5bmMKKyAqIAlQb3J0IExSMTEgbmV3IGZlYXR1cmVzOgorICogCU1PTFkwMDEzOTI2MyAtIHNwZWNpZmljIGNlbGwgZGVsZXRlCisgKiAJTU9MWTAwMTU1MzA3IC0gZU1CTVMgZW5oYW5jZW1lbnQKKyAqIAlNT0xZMDAxNTQzNjggLSBDaGFuZ2UgaGFuZG92ZXIgYWJvcnQgaW50ZXJmYWNlIHRvIFJFUS9DTkYKKyAqIAlBVURSWCBzdXBwb3J0CisgKiAJTUlCIHNwYXJlIGJpdCBpbnRlcmZhY2UuCisgKgorICogMDEgMjIgMjAxNiBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTQ3NjExXSBNVDYyOTIgRUwxIGNvZGUgbWVyZ2UgZnJvbSBVTU9MWV85MkwxRGV2IENCciB0byBVTU9MWQorICogSW50ZWdyYXRlZCBtY3UvbWFrZSwgbWN1L2NvbW1vbiBtY3UvcGNvcmUgY2hhbmdlcyBmcm9tIDE5ODUyNDggdG8gMjAxMTIyNiAoIHN3cmQgcGFydCkuCisgKgorICogMDEgMTkgMjAxNiBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTQ3NjExXSBNVDYyOTIgRUwxIGNvZGUgbWVyZ2UgZnJvbSBVTU9MWV85MkwxRGV2IENCciB0byBVTU9MWQorICogSW50ZWdyYXRlZCBjb21tb24gYW5kIG1jdS9jb21tb24gY2hhbmdlcyBmcm9tIDE5NDYwOTEgdG8gMTk4NTI0OCAuCisgKgorICogMTEgMTYgMjAxNSBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTQ3NjExXSBNVDYyOTIgRUwxIGNvZGUgbWVyZ2UgZnJvbSBVTU9MWV85MkwxRGV2IENCciB0byBVTU9MWQorICogSW50ZWdyYXRlZCBtY3UvY29tbW9uLCBtY3UvbWFrZSBhbmQgbWN1L3Bjb3JlIGNoYW5nZXMgYmV0d2VlbiAxODA5MDUxIGFuZCAxODI2MzE3ICggc3dyZCBwYXJ0ICkuCisgKgorICogMTEgMTIgMjAxNSBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTQ3NjExXSBNVDYyOTIgRUwxIGNvZGUgbWVyZ2UgZnJvbSBVTU9MWV85MkwxRGV2IENCciB0byBVTU9MWQorICoKKyAqIAlJbnRlZ3JhdGVkIGNvbW1vbiwgbWN1L2NvbW1vbiBhbmQgbWN1L21ha2UgY2hhbmdlcyBiZXR3ZWVuIDE3ODg3NzEgdG8gMTgwODg3OC4KKyAqCisgKiAxMCAzMCAyMDE1IHBhbnUucGVpc2EKKyAqIFtNT0xZMDAxNDc2MTFdIE1UNjI5MiBFTDEgY29kZSBtZXJnZSBmcm9tIFVNT0xZXzkyTDFEZXYgQ0JyIHRvIFVNT0xZCisgKgorICogCW1jdS9jb21tb24gY2hhbmdlcyBpbnRlZ3JhdGVkIGZyb20gVU1PTFlfOTJMMURldl8xNXc0MyBDQnIuCisgKgorICogMDkgMTUgMjAxNSB5ZW5jaGloLnlhbmcKKyAqIFtNT0xZMDAwOTk2NDhdIFtWb0xURV0gVm9pY2UgcXVhbGl0eSBwYXRjaCAtIEVSUkMKKyAqIC4KKyAqCisgKiAwOCAwNSAyMDE1IHlyLmNoaWFuZworICogW01PTFkwMDA4Nzg5M10gW01UNjI5MV0gTWVyZ2UgRUwxQy9FTDFEIGZyb20geEwxU0lNIHRvIE1UNjI5MV9ERVYKKyAqIHVwZGF0ZSBBRFQgaGVhZGVyIGZpbGVzCisgKgorICogMDggMDMgMjAxNSBjYXJvbC5saW4KKyAqIFtNT0xZMDAxMzQ2MzddIFtKYWRlXVtUSzYyOTFdW05ldyBGZWF0dXJlXVtBRFRdIENoZWNrIGluIEFEVCBuZXcgZmVhdHVyZSBpbnRvIExSMTEKKyAqIEFEVC4KKyAqCisgKiAwOCAwMSAyMDE1IHlyLmNoaWFuZworICogW01PTFkwMDA4Nzg5M10gW01UNjI5MV0gTWVyZ2UgRUwxQy9FTDFEIGZyb20geEwxU0lNIHRvIE1UNjI5MV9ERVYKKyAqIDkxIEwxUyBUUEMgaW5mbyBhY3F1aXNpdGlvbgorICoKKyAqIDA1IDI4IDIwMTUgaHlwZXIud2FuZworICogW01PTFkwMDA3NDE2NF0gNjI5MSBJREMgRGV2ZWxvcG1lbnQKKyAqIAkuCisgKgorICogMDQgMjggMjAxNSBzaGloeWFvLndhbmcKKyAqIFtNT0xZMDAxMDk1NDBdIFtFTDFJVF0gOTEgTW9ESVMgSVQgY29kZQorICogOTEgTW9ESVMgaW50ZWdyYXRpb24uCisgKgorICogMDMgMDIgMjAxNSBtcy5saW4KKyAqIFtNT0xZMDAwNzAyNjVdIE1UNjI5MSBjb2RlIGNoYW5nZTogYWRkIG5ldyBzYXAgaWQKKyAqIAkuCisgKgorICogMTAgMjcgMjAxNCBkYXJvbi5sdQorICogW01PTFkwMDA4MTc2M10gW01UNjI5MV0gTWVyZ2UgRUwxQy9FTDFEIHRvIFVNT0xZCisgKiAJLgorICoKKyAqIDA4IDA3IDIwMTQgeXIuY2hpYW5nCisgKiBbTU9MWTAwMDcyMjkyXSA2MjkxIEVMMUMgRGV2ZWxvcG1lbnQKKyAqIHN5bmMgTU9MWSB0byBVTU9MWQorICoKKyAqIDA4IDA0IDIwMTQgbGV3aXMueXUKKyAqIFtNT0xZMDAwNzM5OTBdIFtMUFAgQ1BdIExQUCBjb2RlIGNoZWNrLWluIGZvciBPVERPQSBmZWF0dXJlCisgKiAuCisgKgorICogMDcgMTUgMjAxNCBrdWFuLXRpbmcubGVlCisgKiBbTU9MWTAwMDU1MjE3XSBFTDEgSURDIGRldmVsb3BtZW50CisgKiBJREMgbXNnIDogcGluIHR5cGUgbHRlIGNvbiwgYW5kIGx0ZSBjb24gdGltZXIKKyAqCisgKiAwNiAyMyAyMDE0IHBvcGNhZmEuc2hpaAorICogW01PTFkwMDA2OTM4M10gW1ZvTFRFXVtMb3cgcG93ZXIgaW1wcm92ZW1lbnRdCisgKiBtb3ZlIHJlY2FsIHRvIHRhc2suCisgKgorICogMDYgMTMgMjAxNCBwb3BjYWZhLnNoaWgKKyAqIFtNT0xZMDAwNjkzODNdIFtWb0xURV1bTG93IHBvd2VyIGltcHJvdmVtZW50XQorICogYWRkIG5ldyBzYXAuCisgKgorICogMDUgMjEgMjAxNCBkZW5uaXMud2VuZworICogW01PTFkwMDA2NjI1MV0gSUNTIG1heSBjYW1wIG9uIGEgY2VsbCBub3QgaGF2aW5nIGxhcmdlc3QgUlNSUCBpbiBUREQgbW9kZQorICogc3BlY2lmaWMgbWVhc3VyZW1lbnQgZWwxIHNhcAorICoKKyAqIDA0IDI4IDIwMTQgbGV3aXMueXUKKyAqIFtNT0xZMDAwNjM4NzZdIFtNVDY1OTVdIE1UNjU5NSBEVkZTIHN1cHBvcnQKKyAqIC4KKyAqCisgKiAwMiAyMCAyMDE0IGxld2lzLnl1CisgKiBbTU9MWTAwMDU2Njk1XSBbTFRFIFI5XSBkaXNhbGxvdyBzbGVlcCAocHJldmVudCBwb3dlciBkb3duIEwyIGNvcHJvKSBkdXJpbmcgZXZhbHVhdGlvbiBwaGFzZSBvZiBITy9DQ1IvSVJDUi9yZWRpcmVjdGlvbiBmcm9tIExURQorICogLgorICoKKyAqIDAyIDExIDIwMTQgeXIuY2hpYW5nCisgKiBbTU9MWTAwMDU1NzA3XSBbTU9MWTAwMDU0NTM4XSBbTVQ2MjkwRTJdW0VMMV0gRUwxIFRyYWNlIHVwZGF0ZSBmb3IgRU0gQ3VzdG9tZXIgUmVsZWFzZSAocGhhc2UgMikKKyAqIC4KKyAqCisgKiAwMSAyOSAyMDE0IGNhcm9sLmxpbgorICogW01PTFkwMDA1NDY4OF0gW01UNjI5MEUyXVtURERdIGludGVyLWNlbGwgSE8gdG9vayB0b28gbXVjaCB0aW1lCisgKgorICogMDEgMjIgMjAxNCBjLWguaHVhbmcKKyAqIFtNT0xZMDAwNTQzMjRdIFs0RyBHZW1pbmldW01lcmdlXSBNT0xZLk1NLkdFTUlOSS5ERVYgTWVyZ2UgYmFjayB0byBNT0xZCisgKiAuCisgKgorICogMTIgMDMgMjAxMyBsZXdpcy55dQorICogW01PTFkwMDA0ODgzMl0gcG93ZXIgZG93bi9vbiBpbiBFTDIgdGFzayBjb250ZXh0IGFuZCByZWZpbmUgdGhlIGZsb3cKKyAqIC4KKyAqCisgKiAxMSAyNSAyMDEzIHZlbmRfZGF2aWQudGFuZworICogW01PTFkwMDA0NzI3NV0gW01UNjI5MEUyXVtFTDEgQ0hdIENQSFlfQ0ZHX1JFUS9DTkYgZ3VhcmQgdGltZXIuCisgKiBBZGQgYSAxcyBndWFyZCB0aW1lciBmb3IgY3BoeV9jZmdfcmVxL2NuZi4KKyAqCisgKiAxMSAxMyAyMDEzIHR5LnNoZW4KKyAqIFtNT0xZMDAwNDYwMjddIFtNVDYyOTBFMV1bTU1EU19EQ10gTU1EQyBmZWF0dXJlIHBhdGNoIGJhY2sgdG8gTU9MWSB0cnVuaworICogLgorICoKKyAqIDExIDA2IDIwMTMgeXIuY2hpYW5nCisgKiBbTU9MWTAwMDQ1MDg5XSBbTVQ2MjkwRTFdW0lPVF1bSHVhd2VpXVtMVEVdW1V1X0FOUl8wMDFdIEFzc2VydDogbDJsbWFjX2Rydi5jIDIzNCAtTDJDT1BSTworICogYWRkIGNzaV9zcnNfYWRtaXNzaW9uXzJuZF9udGYgZm9yIEVNQUMKKyAqCisgKiAxMSAwMSAyMDEzIHZlbmRfaHlwZXIud2FuZworICogW01PTFkwMDAxNDE1Ml0gRUwxIElEQyBkZXZlbG9wbWVudAorICogCShSZXZpc2UgSVBDIG1lc3NhZ2VzKS4KKyAqCisgKiAxMCAzMCAyMDEzIHZlbmRfaHlwZXIud2FuZworICogW01PTFkwMDAxNDE1Ml0gRUwxIElEQyBkZXZlbG9wbWVudAorICogQWRkIG5ldyBTVyBtZXNzYWdlIElECisgKgorICogMTAgMjkgMjAxMyBtcy5saW4KKyAqIFtNT0xZMDAwNDEzNjNdIFtNVDYyOTBFMV1bRGVzaWduIENoYW5nZV0gTmVpZ2hib3IgQkNDSCBmbG93IGNoYW5nZQorICogIC4KKyAqCisgKiAxMCAxMSAyMDEzIGxld2lzLnl1CisgKiBbTU9MWTAwMDQwODI0XSBbTVQ2MjkwXVtFTDFdIFBIUyBzdXNwZW5kIElSVCBnYXAgZm9yIE1BQ19EUlhfVFJBQ0sKKyAqIC4KKyAqCisgKiAxMCAxMSAyMDEzIG1zLmxpbgorICogW01PTFkwMDA0MDgyNF0gW01UNjI5MF1bRUwxXSBQSFMgc3VzcGVuZCBJUlQgZ2FwIGZvciBNQUNfRFJYX1RSQUNLCisgKiAgLgorICoKKyAqIDA4IDI2IDIwMTMgY2Fyb2wubGluCisgKiBbTU9MWTAwMDM0Mjg1XSBbTVQ2MjkwRTFdW0VMMiBSVERdIEFzc2VydCBmYWlsOiBtb2RlbS9sdGVfc2VjL2VsMS9tZWFzL3NyYy9lbDFfbWVhc19jdHJsLmMgNTc4MyBhZnRlciBhdHRhY2ggYW5kIHBpbmdpbmcKKyAqIEhPU1RfREFUQV9SRVEgaXMgcmN2IGJ5IENICisgKgorICogMDggMTYgMjAxMyBjLWguaHVhbmcKKyAqIFtNT0xZMDAwMzM5ODldIFtNVDYyOTBdW0VMMV0gTVNHIElEIG5hbWluZyB0eXBvIGVycm9yIGZpeAorICogLgorICoKKyAqIDA4IDE1IDIwMTMgZGFyb24ubHUKKyAqIFtNT0xZMDAwMzEzNDBdIFtNVDYyOTBFMV1bR0NGXVtSUk1dWzM2NTIxLTNdW1RDIDkuMS4xLzkuMS4zXWNvbmZpZyBsb25nIERSWCwgVUUgY2FuJ3QgbWVhc3VyZSBpbnRyYS9pbnRlciBmcmVxIGNlbGwKKyAqIC4KKyAqCisgKiAwOCAxNSAyMDEzIGRhcm9uLmx1CisgKiBbTU9MWTAwMDMxMzQwXSBbTVQ2MjkwRTFdW0dDRl1bUlJNXVszNjUyMS0zXVtUQyA5LjEuMS85LjEuM11jb25maWcgbG9uZyBEUlgsIFVFIGNhbid0IG1lYXN1cmUgaW50cmEvaW50ZXIgZnJlcSBjZWxsCisgKiAuCisgKgorICogMDcgMDQgMjAxMyB2ZW5kX2h5cGVyLndhbmcKKyAqIFtNT0xZMDAwMjYwNjVdIEVMMSBJREMgdW5pdCB0ZXN0IGNhc2UgZGV2ZWxvcG1lbnQKKyAqIChhZGQgbmV3IG1zZ2lkKS4KKyAqCisgKiAwNSAyMiAyMDEzIHZlbmRfZGF2aWQudGFuZworICogW01PTFkwMDAwNzgwNF0gW0VMMSBDSF0KKyAqIGFkZCB0aW1lciBleHBpcnkgbXNnIGZvciBzY2guCisgKgorICogMDUgMDcgMjAxMyB2ZW5kX2h5cGVyLndhbmcKKyAqIFtNT0xZMDAwMDY1NzddIEVMMSBNRUFTIGRldmVsb3BtZW50ICh1cGRhdGUgTU9ESVMgQVVUTyBFTDEgSVQpLgorICoKKyAqIDAzIDMwIDIwMTMgamVycnkuaG8KKyAqIFtNT0xZMDAwMTA5NTFdIExURSBMMVMgcmVsYXRpdmUgZmlsZXMgbWVyZ2UgdG8gTU9MWQorICoKKyAqIDAzIDA1IDIwMTMgZWxseS53ZWkKKyAqIFtNT0xZMDAwMDcwNzNdIFtNVDcyMDhdW0VMMV0gU2xlZXAgbW9kZSBzdXBwb3J0CisgKiA8c2F2ZWQgYnkgUGVyZm9yY2U+CisgKiBSZS1hcnJhbmdlIHRoZSBNU0cgSUQgZm9yIHNsZWVwIG1vZGUgcmVsYXRlZCBtZXNzYWdlcy4KKyAqCisgKiAwMyAwNCAyMDEzIG1zLmxpbgorICogW01PTFkwMDAwNjA2MV0gW0Rlc2lnbiBjaGFuZ2VdTFRFIEVMMSBEUlYvVFNUTS9QSFMgY29kZSBjaGFuZ2UKKyAqIC4KKyAqCisgKiAwMSAyOCAyMDEzIG1zLmxpbgorICogW01PTFkwMDAwNjA2MV0gW0Rlc2lnbiBjaGFuZ2VdTFRFIEVMMSBEUlYvVFNUTS9QSFMgY29kZSBjaGFuZ2UKKyAqIC4KKyAqCisgKiAxMSAwOCAyMDEyIG1zLmxpbgorICogW01PTFkwMDAwNTMyMl0gVEFUQUtBIG1lcmdlIHRvIE1PTFkKKyAqIC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfRUwxX01TR0lEX0gKKyNkZWZpbmUgX0VMMV9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FTDFfQ09ERV9CRUdJTiApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IENICisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FUlJDX0VMMV9DUEhZX0NGR19SRVEgICAgICAgICAgICA9IE1TR19JRF9FTDFfQ09ERV9CRUdJTiwKK01TR19JRF9FTDFfQ0hfTVNHX1NUQVJUICAgICAgICAgICAgICAgICA9IE1TR19JRF9FUlJDX0VMMV9DUEhZX0NGR19SRVEsCitNU0dfSURfRVJSQ19FTDFfUkxfTU9OSVRPUl9SRVEsCitNU0dfSURfRVJSQ19FTDFfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfUkVRLAorI2lmIGRlZmluZWQgKF9fR0VNSU5JX18pCitNU0dfSURfRVJSQ19FTDFfVklSVFVBTF9NT0RFX1JFUSwKKyNlbmRpZgorI2lmIDEgLyogVG8gYmUgcmVtb3ZlZCBvbmNlIEVSUkMgc3VwcG9ydHMgKi8KK01TR19JRF9FUlJDX0VMMV9BQk9SVF9IT19OVEYsCisjZW5kaWYKK01TR19JRF9FUlJDX0VMMV9BQk9SVF9IT19SRVEsCitNU0dfSURfRVJSQ19FTDFfTDFTX1RFU1RfUEFSQV9SRVEsCitNU0dfSURfRVJSQ19FTDFfTDFTX1RFU1RfUEFSQV9DTkYsCitNU0dfSURfRVJSQ19FTDFfVDMxMl9TVEFSVF9SRVEsCitNU0dfSURfRVJSQ19FTDFfVFhfRU5IQU5DRV9OVEYsCitNU0dfSURfRVJSQ19FTDFfUENIX1JDVl9OVEYsCitNU0dfSURfRVJSQ19FTDFfUlhfUE9MTF9EQVRBX0lORCwKK01TR19JRF9FUlJDX0VMMV9TSUJfRlJBTUVfU1lOQ19SRVEsICAvLyBTSUIgZm9yIEFHUFMuCitNU0dfSURfRVJSQ19FTDFfVUVfQ0FURUdPUllfSU5ELAorTVNHX0lEX0VSUkNfRUwxX0RTUF9TTklGRkVSX1JFUSwKK01TR19JRF9FTUFDX0VMMV9SQV9HQVBfU1RPUF9SRVEsCitNU0dfSURfRU1BQ19FTDFfUkFfR0FQX1JFU1VNRV9SRVEsCitNU0dfSURfRU1BQ19FTDFfRFJYX0NUUkxfUkVRLAorTVNHX0lEX0VNQUNfRUwxX0RSWF9DWUNMRV9OVEYsCitNU0dfSURfRU1BQ19FTDFfSE9TVF9EQVRBX1JFUSwKK01TR19JRF9FTUFDX0VMMV9NU0lfTk9USUZZLCAgLy8gdG8gYmUgcmVtb3ZlZCBpbiA2MjkzLgorTVNHX0lEX0VUTVJfRUwxX0RSWF9TTEVFUF9UTVJfRVhQSVJZLAorTVNHX0lEX0VUTVJfRUwxX1VFX0NBVEVHT1JZX1RNUl9FWFBJUlksCitNU0dfSURfRVRNUl9FTDFfQjcxX1RNUl9FWFBJUlksCitNU0dfSURfRVRNUl9FTDFfR0VNSU5JX0ZFQVRVUkVfVE1SX0VYUElSWSwKK01TR19JRF9FVE1SX0VMMV9DUEhZX0NGR19UTVJfRVhQSVJZLAorTVNHX0lEX0dBU19FTDFfRU5BQkxFX0IzOV9SRVEsICAgICAgIC8vIFNHTFRFIGxlZ2FjeSBjb2RlLCBub3QgdXNlZCBpbiA2MjkzLgorTVNHX0lEX0dBU19FTDFfRElTQUJMRV9CMzlfUkVRLCAgICAgIC8vIFNHTFRFIGxlZ2FjeSBjb2RlLCBub3QgdXNlZCBpbiA2MjkzLgorTVNHX0lEX0hBTF9FTDFfR1BTX1RJTUVfU1lOQ19SRVEsCitNU0dfSURfSEFMX0VMMV9HUFNfVElNRV9TWU5DX0lORCwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NykKK01TR19JRF9OTDFfRUwxX0VORENfU1RBVFVTX0lORCwKK01TR19JRF9FVE1SX0VMMV9SRkRCX0xPQ0tfUkVUUllfVE1SX0VYUElSWSwKK01TR19JRF9FVE1SX0VMMV9DSF9QSFNfU0hBUkVEX0xPQ0tfUkVUUllfVE1SX0VYUElSWSwKK01TR19JRF9FVE1SX0VMMV9FTkRDX0FVVE9fR0FQX1JFVFJZX1RNUl9FWFBJUlksCitNU0dfSURfTkwxX0VMMV9FTkRDX0dBUF9DVFJMX1JFUSwKK01TR19JRF9OTDFfRUwxX0VORENfR0FQX0NUUkxfRE9ORV9JTkQsCitNU0dfSURfTkwxX0VMMV9NTUwxX0VORENfUFJFX0RCX1JFQURZX0lORCwKK01TR19JRF9OTDFfRUwxX1NQRUNJRklDX0RMX0NITkdfTlRGLAorTVNHX0lEX05MMV9FTDFfVU5MT0NLX05SX1JGREJfTlRGLAorTVNHX0lEX0xMMV9FTDFfRU5EQ19BVVRPX0dBUF9DTkYsCitNU0dfSURfTkwxX0VMMU1QQ19OUl9SVFBfSU5ELCAgICAgICAgLy8gX19FTDFfTFBQX0lOVEVSX1JBVF9SU1REX1NVUFBPUlRfCitNU0dfSURfTkwxX0VMMV9GT1JDRV9HQVBfTlRGLAorTVNHX0lEX05MMV9FTDFfU0NHX1JFTF9OT1RJRllfSU5ELAorTVNHX0lEX05MMV9FTDFfVURDX0NPTkZJR19VUERBVEVfTlRGLAorI2VuZGlmCisKKy8qIEludGVybmFsIG1lc3NhZ2UgKi8KK01TR19JRF9FTDFfSVJUX0NIX1BBUkFNX0NIR19DTkYsCitNU0dfSURfRUwxX0lSVF9DSF9HQVBfU1VTUF9DTkYsCitNU0dfSURfRUwxX0lSVF9DSF9CQ0NIX0NORiwKK01TR19JRF9FTDFfSVJUX0NIX0FVVE9fR0FQX1NUT1BfUkVRLAorTVNHX0lEX0VMMV9JUlRfQ0hfQVVUT19HQVBfQVZBSUxfSU5ELAorTVNHX0lEX0VMMV9QSFNfQ0hfRExfQkNfQVNTSUdOX1JMVCwKK01TR19JRF9FTDFfUEhTX0NIX0NUUkxfQ05GLAorTVNHX0lEX0VMMV9QSFNfQ0hfRExfQ0hOR19TRVRfQ05GLAorTVNHX0lEX0VMMV9QSFNfQ0hfRExfQ0hOR19SUFQsCitNU0dfSURfRUwxX1BIU19DSF9HRU1JTklfQ09ORkxJQ1RfSU5ELAorTVNHX0lEX0VMMV9QSFNfQ0hfUkVMX0FMTF9JTkQsCitNU0dfSURfRUwxX1BIU19DSF9WSVJUVUFMX01PREVfQ05GLAorTVNHX0lEX0VMMV9QSFNfQ0hfTkJSX0FVVE9fR0FQX0VORF9JTkQsCitNU0dfSURfRUwxX1BIU19DSF9NSUJfUlBULAorTVNHX0lEX0VMMV9QSFNfQ0hfRFJYX1NMRUVQX05URiwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NykKK01TR19JRF9FTDFfUEhTX0NIX0NPTU1PTl9SRkRCX0xURV9VUERUX0RPTkVfTlRGLAorTVNHX0lEX0VSUkNfRUwxX1ZPTFRFX0NBTExfU1RBVFVTX0lORCwKK01TR19JRF9FTDFfUEhTX0NIX1JTVkFTX0NBTkNFTF9ETF9DSEFOR0VfSU5ELAorI2VuZGlmCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX0NIX05CUl9QQVJBTV9VUERBVEVfSU5ELAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19DSF9TQ1NfU1RBUlRfQ05GLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19DSF9TQ1NfQ0VMTF9JTkZPX0lORCwKK01TR19JRF9FTDFNUENfRUwxX01FQVNfQ0hfU0NTX1NUT1BfQ05GLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19DSF9JTlRFUl9STVRDX1VQREFURV9JTkQsCitNU0dfSURfRUwxTVBDX0VMMV9MUFBfQ0hfUFJTX0lORk9fVVBEVF9OVEYsCitNU0dfSURfRUwxTVBDX0VMMV9MUFBfSVJUX01FQVNVUkVfTlRGLCAgICAgICAgICAgICAgICAgICAvLyBfX0VMMV9MUFBfSU5URVJfUkFUX1JTVERfU1VQUE9SVF9fCitNU0dfSURfRUwxTVBDX0VMMV9DU1JfQ0hfRkFLRV9TUlZfQUREX1JFUSwKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBQSFMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VSUkNfRUwxX0NIQU5ORUxfUFJPVEVDVF9TVEFSVF9SRVEsCitNU0dfSURfRUwxX1BIU19NU0dfU1RBUlQgICAgICAgICAgICAgICAgPSBNU0dfSURfRVJSQ19FTDFfQ0hBTk5FTF9QUk9URUNUX1NUQVJUX1JFUSwKK01TR19JRF9FUlJDX0VMMV9DSEFOTkVMX1BST1RFQ1RfU1RPUF9SRVEsCitNU0dfSURfRVJSQ19FTDFfREFUQV9TRVJWSUNFX0lORCwKK01TR19JRF9BUF9NRF9MVEVfQVVUT19HQVBfUkVRLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfQ0RfQ1RSTF9SRVEsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19DRF9DVFJMX1NUT1BfUkVRLAorTVNHX0lEX0VMMU1QQ19DU19BQk9SVF9JTkQsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19PQ19DTUQsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19DU0lfSE9fQ01ELAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfUlNSUF9GSUxURVJJTkdfQ01ELAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfT0NfTUVBU19DTUQsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19SWF9PQ19DT05ESVRJT05fQ01ELAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfUlhfVlpXX0NNRF9JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTDFEQ1NfQUJPUlRfSU5ELAorTVNHX0lEX0VMMV9QSFNfVEFTS19TVVNQRU5EX0lORCwKK01TR19JRF9FTDFfUEhTX1NDSF9ISUdIX1BSSU9fSU5ELAorTVNHX0lEX0VMMV9QSFNfSE9TVF9EQVRBX1JFUSwKK01TR19JRF9FTDFfUEhTX1RBU0tfV0FLRV9JTkQsCitNU0dfSURfRUwxX0VMMV9UU1RNX01FVEFfUkVRLAorTVNHX0lEX0VMMV9FTDFfVFNUTV9UT09MX0NORiwKK01TR19JRF9FTDFfRVJSQ19GQUNUT1JZX0NBUEFCSUxJVFlfUlNQLAorTVNHX0lEX0VOTDFfVVRBU19QSFNfVEFTX0lORCwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NykKK01TR19JRF9OTDFfRUwxX1NGVERfVElNSU5HX1JFUSwKK01TR19JRF9OTDFfRUwxX1RBU19HQVBfSU5ELAorTVNHX0lEX05MMV9FTDFfVEFTX0dBUF9BQk9SVF9JTkQsCitNU0dfSURfTkwxX0VMMV9UQVNfR0FQX0FCT1JUX1JTUCwKK01TR19JRF9HTlNTX1RDX0VMMV9TWU5DX1JFUSwKK01TR19JRF9HTlNTX1RDX0VMMV9USU1FX0lORk9fUlNQLCAKK01TR19JRF9FUlJDX0VMMV9HQ0lfSU5ELAorI2VuZGlmCisKKy8qIEludGVybmFsIG1lc3NhZ2UgKi8KK01TR19JRF9FTDFfQ0hfUEhTX0RMX0NITkdfUkVRLAorTVNHX0lEX0VMMV9DSF9QSFNfU0NIX1JOVElfSU5ELAorTVNHX0lEX0VMMV9DSF9QSFNfRFJYX0NUUkxfUkVRLAorTVNHX0lEX0VMMV9DSF9QSFNfQ1RSTF9SRVEsCitNU0dfSURfRUwxX0NIX1BIU19SUkNfQ09ORklHX0lORCwKK01TR19JRF9FTDFfQ0hfUEhTX1VFX0NBVEVHT1JZX0lORCwKK01TR19JRF9FTDFfQ0hfUEhTX1NJQjFfQ1JDX05PVElGWV9JTkQsCitNU0dfSURfRUwxX0NIX1BIU19MTUFDX0xPQ0tfSU5ELAorTVNHX0lEX0VMMV9DSF9QSFNfUlNWQVNfU1VTUEVORF9SRVEsCitNU0dfSURfRUwxX0NIX1BIU19SU1ZBU19TVVNQRU5EX0RPTkVfSU5ELAorTVNHX0lEX0VMMV9DSF9QSFNfVklSVFVBTF9NT0RFX1JFUSwKK01TR19JRF9FTDFNUENfRUwxX01FQVNfUEhTX0NUUkxfUkVRLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfQ1RSTF9TVE9QX1JFUSwKK01TR19JRF9FTDFNUENfRUwxX01FQVNfUEhTX1NGX1BBVFRFUk5fSU5ELAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfU1JWX01FQVNVUkVfQ0ZHX05URiwKK01TR19JRF9FTDFNUENfRUwxX01FQVNfUEhTX1NDRUxMX0tOT1dOX0lORCwKK01TR19JRF9FTDFNUENfRUwxX01FQVNfUEhTX0lSVF9DVFJMX1JFUSwKK01TR19JRF9FTDFNUENfRUwxX01FQVNfUEhTX0lSVF9DVFJMX1NUT1BfUkVRLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19QSFNfUFNJTV9TV0FQX0NORiwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NSkKK01TR19JRF9FTDFNUENfRUwxX01FQVNfUEhTX0RSWF9NRUFTX0dBUF9SRVEsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1BIU19USU1JTkdfQ09ORklHX0lORCwKKyNlbmRpZiAvKiAjaWYgKENVUl9HRU4gPj0gTURfR0VOOTUpICovCitNU0dfSURfRUwxTVBDX0VMMV9DU1JfUEhTX0NUUkxfUkVRLAorTVNHX0lEX0VMMU1QQ19FTDFfQ1NSX1BIU19DVFJMX1NUT1BfUkVRLAorTVNHX0lEX0VMMU1QQ19FTDFfTFBQX1BIU19QUlNfQ1RSTF9SRVEsCitNU0dfSURfRUwxTVBDX0VMMV9MUFBfUEhTX1BSU19TVE9QX1JFUSwKK01TR19JRF9FTDFNUENfRUwxX0xQUF9QSFNfUFJTX0FDVElWQVRFX1JFUSwKK01TR19JRF9FTDFNUENfRUwxX0xQUF9QSFNfUFJTX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX0VMMV9DSF9QSFNfTVNJX05PVElGWSwKK01TR19JRF9FTDFfSVJUX1BIU19SQVRfQ0hHX1JFUSwKK01TR19JRF9FTDFfSVJUX1BIU19HQVBfQ0FOQ0VMX0NORiwKK01TR19JRF9FTDFfSVJUX1BIU19BVVRPX0dBUF9DQU5DRUxfQ05GLAorTVNHX0lEX0VMMV9JUlRfUEhTX01FQVNfR0FQX1JFUSwKK01TR19JRF9FTDFfSVJUX1BIU19BVVRPX0dBUF9JTkQsCitNU0dfSURfRUwxX0lSVF9QSFNfQVVUT19HQVBfRU5EX0lORCwKK01TR19JRF9FTDFfSVJUX1BIU19DQU5DRUxfQVVUT19HQVBfSU5ELCAvLyB0byBmb3JjZSBQSFMgcmV1dHVybiBBVVRPX0dBUF9SRVMgaW1tZWRpYXRlbHkgKGZvciBTUlZDQykKK01TR19JRF9FTDFfSVJUX1BIU19HQVBfQ1RSTF9SRVEsCitNU0dfSURfRUwxX0lSVF9QSFNfR0FQX0NBTkNFTF9SRVEsCitNU0dfSURfRUwxX0lSVF9QSFNfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfRUwxX0lSVF9QSFNfR0FQX0NMRUFSX0lORCwKK01TR19JRF9FTDFfSVJUX1BIU19HQVBfU1VTUEVORF9DTkYsCitNU0dfSURfRUwxX1BIU19NQk1TX0lORk9fSU5ELAorTVNHX0lEX0VMMV9UWF9QSFNfUFNJTV9TV0FQX0NORiwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NykKK01TR19JRF9FTDFfRUwxX0dOU1NfVElNRV9TWU5DX1JFUSwKK01TR19JRF9FTDFfRUwxX0dOU1NfVElNRV9TWU5DX0NORiwKK01TR19JRF9FTDFfRUwxX0dOU1NfVElNRV9JTkZPX1JTUCwKK01TR19JRF9JRENfRUwxX1BIU19QU0lNX1NXQVBfQ05GLAorTVNHX0lEX0lEQ19FTDFfUEhTX1JYX0dBUF9TVVNQX1JFUSwKK01TR19JRF9JRENfRUwxX1BIU19SWF9HQVBfUkVTVV9JTkQsCitNU0dfSURfSURDX0VMMV9QSFNfV0lGSV81R19TVEFUVVNfSU5ELAorI2Vsc2UKK01TR19JRF9FTDFfSURDX1BIU19QU0lNX1NXQVBfQ05GLAorI2VuZGlmCitNU0dfSURfRUwxX0lSVF9QSFNfQUNUVl9HQVBfSU5ELAorTVNHX0lEX0VMMV9DSF9QSFNfTVJEQ19TVEFUVVNfSU5ELAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogSVJUCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FUlJDX0VMMV9TRVRfUkFUX1JFUSwKK01TR19JRF9FTDFfSVJUX01TR19TVEFSVCAgICAgICAgICAgICAgICA9IE1TR19JRF9FUlJDX0VMMV9TRVRfUkFUX1JFUSwKK01TR19JRF9FUlJDX0VMMV9BVVRPX0dBUF9PTl9SRVEsCitNU0dfSURfRVJSQ19FTDFfQVVUT19HQVBfT0ZGX1JFUSwKK01TR19JRF9FUlJDX0VMMV9MT0NLX1NMRUVQX05URiwKKworLyogSW50ZXJuYWwgbWVzc2FnZSAqLworTVNHX0lEX0VMMU1QQ19FTDFfQ1NSX0lSVF9HQVBfUkVRLAorTVNHX0lEX0VMMV9QSFNfSVJUX1JBVF9DSEdfQ05GLAorTVNHX0lEX0VMMV9DSF9JUlRfUEFSQU1fQ0hHX1JFUSwKK01TR19JRF9FTDFfQ0hfSVJUX1JFQ09ORklHX0RPTkVfSU5ELAorTVNHX0lEX0VMMV9DSF9JUlRfR0FQX1NVU1BfUkVRLAorTVNHX0lEX0VMMV9DSF9JUlRfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfRUwxX0NIX0lSVF9CQ0NIX1JFUSwKK01TR19JRF9FTDFfQ0hfSVJUX0FVVE9fR0FQX1NUT1BfQ05GLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19JUlRfTUVBU1VSRV9SRVEsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX0lSVF9NRUFTVVJFX0RPTkVfSU5ELAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19JUlRfR0FQX1NVU1BfUkVRLAorTVNHX0lEX0VMMU1QQ19FTDFfTUVBU19JUlRfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfRUwxTVBDX0VMMV9MUFBfSVJUX0lSQVRfR0FQX1BBVFRFUk4sCitNU0dfSURfRUwxX1BIU19JUlRfRFJYX1RJQ0tfSU5ELAorTVNHX0lEX0VMMV9QSFNfSVJUX0dBUF9QRVJJT0RfSU5ELAorTVNHX0lEX0VMMV9QSFNfSVJUX0dBUF9DQU5DRUxfUkVRLAorTVNHX0lEX0VMMV9QSFNfSVJUX0FVVE9fR0FQX0NBTkNFTF9SRVEsCitNU0dfSURfRUwxX1BIU19JUlRfR0FQX0NUUkxfQ05GLAorTVNHX0lEX0VMMV9QSFNfSVJUX0dBUF9DQU5DRUxfQ05GLAorTVNHX0lEX0VMMV9QSFNfSVJUX0FVVE9fR0FQX1JFUywKK01TR19JRF9FTDFfUEhTX0lSVF9HQVBfU1VTUEVORF9SRVEsCitNU0dfSURfRUwxX1BIU19JUlRfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfRUwxX1BIU19JUlRfU1RCWV9HQVBfRU5EX0lORCwKK01TR19JRF9FTDFfUEhTX0lSVF9BQ1RWX0dBUF9FTkRfSU5ELAorTVNHX0lEX0VMMV9QSFNfSVJUX1RJTUlOR19VUERBVEVfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBNRUFTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FUlJDX0VMMU1QQ19SQURJT19NRUFTVVJFX1JFUSwKK01TR19JRF9FTDFNUENfTUVBU19NU0dfU1RBUlQgICAgICAgICAgICAgICA9IE1TR19JRF9FUlJDX0VMMU1QQ19SQURJT19NRUFTVVJFX1JFUSwKK01TR19JRF9FUlJDX0VMMU1QQ19TUEVDSUZJQ19DRUxMX0RFTEVURV9OVEYsCitNU0dfSURfRVJSQ19FTDFNUENfSFBTX1FVQUxJRllfQ0VMTF9OVEYsCitNU0dfSURfRVJSQ19FTDFNUENfTUVBU1VSRV9FVkVOVF9OVEYsCitNU0dfSURfRVJSQ19FTDFNUENfT09TX1RSSUdfU0VBUkNIX05URiwKK01TR19JRF9FUlJDX0VMMU1QQ19NQlNGTl9NRUFTVVJFX1JFUSwKK01TR19JRF9FUlJDX0VMMU1QQ19NQlNGTl9NRUFTVVJFX05URiwKK01TR19JRF9FUlJDX0VMMU1QQ19TUEJfTlRGLAorTVNHX0lEX0VSUkNfRUwxTVBDX01FQVNVUkVNRU5UX0lORk9fTlRGLAorTVNHX0lEX0VSUkNfRUwxTVBDX01FQVNVUkVfQ0ZHX05URiwKK01TR19JRF9FUlJDX0VMMU1QQ19IU1JfRlJFUV9OVEYsCitNU0dfSURfRVJSQ19FTDFNUENfSFNSX01PREVfTlRGLAorTVNHX0lEX0VUTVJfRUwxTVBDX1NSVl9UTVJfRVhQSVJZLAorTVNHX0lEX0VUTVJfRUwxTVBDX0lSQVRfTFBQX1JFRl9DRF9UTVJfRVhQSVJZLCAgICAvLyBfX0VMMV9MUFBfSU5URVJfUkFUX1JTVERfU1VQUE9SVF9fCitNU0dfSURfRVRNUl9FTDFNUENfTElGRV9UTVJfRVhQSVJZLAorTVNHX0lEX0VUTVJfRUwxX1ZaV19UTVJfRVhQSVJZLAorI2lmZGVmIF9fTE9HR0lOR19SQVRFX0FESl9fCitNU0dfSURfRVJSQ19FTDFNUENfQURKVVNUX0xPR19JTkZPLAorI2VuZGlmIC8qX19MT0dHSU5HX1JBVEVfQURKX18qLworCisvKiBJbnRlcm5hbCBtZXNzYWdlICovCitNU0dfSURfRUwxX0VMMU1QQ19JUlRfTUVBU19HQVBfQ0ZHX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX0lSVF9NRUFTX01FQVNfR0FQX1JFUSwKK01TR19JRF9FTDFfRUwxTVBDX0lSVF9NRUFTX0JBU0VfVElNRV9JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19JUlRfTUVBU19NT0RFX0NITkdfTlRGLAorTVNHX0lEX0VMMV9FTDFNUENfSVJUX01FQVNfR0FQX1NVU1BfQ05GLAorTVNHX0lEX0VMMV9FTDFNUENfSVJUX01FQVNfUkFUX1NUQVRVU19JTkQsCisjaWYgKENVUl9HRU4gPj0gTURfR0VOOTUpCitNU0dfSURfRUwxX0VMMU1QQ19JUlRfTUVBU19SUEdfR0FQX05PVElGWV9JTkQsCisjZW5kaWYgLyogI2lmIChDVVJfR0VOID49IE1EX0dFTjk1KSAqLworCisvL01TR19JRF9FTDFfUEhTX01FQVNfU0NIRExfSU5ELAorLy9NU0dfSURfRUwxX1BIU19NRUFTX0NUUkxfQ05GLAorLy9NU0dfSURfRUwxX1BIU19NRUFTX0NPTkZMSUNUX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX0FCT1JUX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX1NDRUxMX1NUQVRVU19JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTUVBU19DRF9DVFJMX0NORiwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX0NEX0NUUkxfU1RPUF9DTkYsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTUVBU19TVEJfVFJYX0ZPUkNFX1JFUE9SVF9OVEYsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTUVBU19JUlRfQ1RSTF9DTkYsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTUVBU19JUlRfQ1RSTF9TVE9QX0NORiwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX0NUUkxfU1RPUF9DTkYsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTUVBU19DVFJMX0NORiwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX1NDSERMX0lORCwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NSkKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX1BBR0lOR19JTkQsCisjZW5kaWYKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX1JFTF9FTDFEX0JVRkZfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfUEhTX01FQVNfUFNJTV9TV0FQX1JFUSwKKyNpZiAoQ1VSX0dFTiA+PSBNRF9HRU45NSkKK01TR19JRF9FTDFfRUwxTVBDX1BIU19NRUFTX0RSWF9NRUFTX0dBUF9DTkYsCisjZW5kaWYgLyogI2lmIChDVVJfR0VOID49IE1EX0dFTjk1KSAqLworCisvL01TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfUkxfUFJPQkxFTV9OVEYsCisvL01TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfUkxfUkVDT1ZFUl9OVEYsCitNU0dfSURfRUwxX0VMMU1QQ19DSF9NRUFTX01FQVNfTU9ERV9DSE5HX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfTUFJTl9DSF9TVEFUVVNfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19EUlhfUEFSQU1TX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfR0FQX1BBUkFNU19JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19DSF9NRUFTX1NVQkZSQU1FX0NPTkZJR19JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19DSF9NRUFTX0NPTU1PTl9QQVJBTVNfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19TQ0VMTF9DT05GSUdfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19TQ0VMTF9TVEFUVVNfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19FQVJGQ05fVVBEQVRFX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfU0NTX1NUQVJUX1JFUSwKK01TR19JRF9FTDFfRUwxTVBDX0NIX01FQVNfU0NTX1NUT1BfUkVRLAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19DRUxMX0lORCwgLy8gc2hvdWxkICBiZSByZW1vdmVkLgorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19DRUxMX0lORk9fVVBEVF9JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19DSF9NRUFTX0lDX0FTU0lTVF9DT05GSUdfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTVBDX1JFU0VUX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX0NIX01QQ19SU1ZBU19TVVNQRU5EX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX0NIX01QQ19SU1ZBU19SRVNVTUVfSU5ELAorTVNHX0lEX0VMMV9FTDFNUENfVFhfTUVBU19UWF9SWF9ESUZGX0lORCwKK01TR19JRF9FTDFfRUwxTVBDX1JYX1RJQ0tfTlRGLAorTVNHX0lEX0VMMV9FTDFNUENfRUwxRF9SUFRfQUZDX0ZXU19BQk5PUk1BTCwKK01TR19JRF9FTDFfRUwxTVBDX0VMMURfUlBUX01BWF9TUlZfUlhfTlVNLAorTVNHX0lEX0VMMV9FTDFNUENfQ0hfTUVBU19OQkNDSF9JTkZPX1VQRFRfSU5ELAorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogTFBQCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FUlJDX0VMMU1QQ19PVERPQV9NRUFTX1JFUSwKK01TR19JRF9FTDFNUENfTFBQX01TR19TVEFSVCAgICAgICAgICAgICAgID0gTVNHX0lEX0VSUkNfRUwxTVBDX09URE9BX01FQVNfUkVRLAorTVNHX0lEX0VSUkNfRUwxTVBDX09URE9BX0NUUkxfUkVRLAorTVNHX0lEX0VUTVJfRUwxTVBDX09URE9BX1RNUl9FWFBJUlksCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTFBQX1BSU19DVFJMX0NORiwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19MUFBfUFJTX1NUT1BfQ05GLAorTVNHX0lEX0VMMV9FTDFNUENfUEhTX0xQUF9QUlNfQUNUSVZBVEVfQ05GLAorTVNHX0lEX0VMMV9FTDFNUENfUEhTX0xQUF9QUlNfREVBQ1RJVkFURV9DTkYsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfTFBQX1BSU19TQ0hFRF9JTkQsCitNU0dfSURfRUwxX0VMMU1QQ19JUlRfTFBQX0dBUF9DT05GSUdfSU5ELCAgICAvLyBfX0VMMV9MUFBfSU5URVJfUkFUX1JTVERfU1VQUE9SVF9fCisKKworLyogSW50ZXJuYWwgbWVzc2FnZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBDU1IKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VSUkNfRUwxTVBDX0NBUlJJRVJfU0VBUkNIX1JFUSwKK01TR19JRF9FTDFNUENfQ1NSX01TR19TVEFSVCAgICAgICAgICAgICAgICA9IE1TR19JRF9FUlJDX0VMMU1QQ19DQVJSSUVSX1NFQVJDSF9SRVEsCitNU0dfSURfRVJSQ19FTDFNUENfU1BFQ0lGSUNfTUVBU1VSRV9SRVEsCitNU0dfSURfRVJSQ19FTDFNUENfUlNTSV9TTklGRkVSX1JFUSwKK01TR19JRF9FTDFfRUwxTVBDX1BIU19DU1JfQ1RSTF9DTkYsCitNU0dfSURfRUwxX0VMMU1QQ19QSFNfQ1NSX0NUUkxfU1RPUF9DTkYsCitNU0dfSURfRUwxTVBDX0VMMU1QQ19CQU5EX0ZMVF9DT05UX05URiwKK01TR19JRF9FTDFfRUwxTVBDX0NIX0NTUl9GQUtFX1NSVl9BRERfQ05GLAorTVNHX0lEX0VSUkNfRUwxX0VORENfTElTVF9JTkZPLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IElEQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWYgIShDVVJfR0VOID49IE1EX0dFTjk3KQorTVNHX0lEX0VMMV9QSFNfSURDX1BTSU1fU1dBUF9SRVEsCitNU0dfSURfRUwxX0lEQ19NU0dfU1RBUlQgICAgICAgICAgICAgICAgICAgICA9IE1TR19JRF9FTDFfUEhTX0lEQ19QU0lNX1NXQVBfUkVRLAorTVNHX0lEX0VUTVJfRUwxX1RETV9UWF9FTkFCTEVfVE1SX0VYUElSWSwKK01TR19JRF9FVE1SX0VMMV9URE1fVFhfRElTQUJMRV9UTVJfRVhQSVJZLAorTVNHX0lEX0VUTVJfRUwxX0lEQ19JTkRfVE1SX0VYUElSWSwKK01TR19JRF9FVE1SX0VMMV9JRENfU1dNU0dfUkVTRU5EX1RNUl9FWFBJUlksCitNU0dfSURfRVRNUl9FTDFfSURDX1NXTVNHX0RFTEFZX1RNUl9FWFBJUlksCitNU0dfSURfRVJSQ19FTDFfSURDX0xURV9QUk9URUNUX05URiwKK01TR19JRF9FTDFNUENfRUwxX0lEQ19NRUFTX09CSkVDVF9OVEYsCitNU0dfSURfRUwxTVBDX0VMMV9JRENfVk9MVEVfTlRGLAorTVNHX0lEX0VMMV9FTDFfSURDX1BPU1RfUFJPQ0VTU19OVEYsCitNU0dfSURfRUwxX0lEQ19NU0dfRU5ELAorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVMMSBUQVMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VOTDFfVVRBU19FTDFfVEFTX0lORk9fSU5ELAorTVNHX0lEX0VOTDFfVVRBU19FTDFfUkFTX0NORl9JTkQsCitNU0dfSURfRU5MMV9VVEFTX0VMMV9EQVRfQ05GX0lORCwKK01TR19JRF9FTkwxX1VUQVNfRUwxX0ZNX0lORk9fSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBUWAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfRUwxX1RYX01TR19TVEFSVCwKK01TR19JRF9FTDFfQ0hfVFhfUERTQ0hfUlBUX0ZSRUVfSU5ELCAgICAgIC8vYWRkIGluIDYyOTMuICh0byByZXBsYWNlIHRoZSBjb21tYW5kIHF1ZXVlIGFyY2hpdGVjdHVyZS4pCitNU0dfSURfRUwxX0NIX1RYX1NFVFVQX01BWF9QV1JfSU5ELCAgICAgICAvL2FkZCBpbiA2MjkzLiAodG8gcmVwbGFjZSB0aGUgY29tbWFuZCBxdWV1ZSBhcmNoaXRlY3R1cmUuKQorTVNHX0lEX0VMMV9DSF9UWF9DTEVBUl9NQVhfUFdSX0lORCwgICAgICAgLy9hZGQgaW4gNjI5My4gKHRvIHJlcGxhY2UgdGhlIGNvbW1hbmQgcXVldWUgYXJjaGl0ZWN0dXJlLikKK01TR19JRF9FTDFfQ0hfVFhfRk9SQ0VfTUFYX1BXUl9JTkQsICAgICAgIC8vYWRkIGluIDYyOTMuICh0byByZXBsYWNlIHRoZSBjb21tYW5kIHF1ZXVlIGFyY2hpdGVjdHVyZS4pCitNU0dfSURfRUwxX0NIX1RYX0RSWF9DVFJMX0lORCwgICAgICAgICAgICAvL2FkZCBpbiA2MjkzLiAodG8gcmVwbGFjZSB0aGUgY29tbWFuZCBxdWV1ZSBhcmNoaXRlY3R1cmUuKSwgcmVuYW1lIGZyb20gQ0hfVFhfRFJYX0NUUkxfUkVRCitNU0dfSURfRUwxX0NIX1RYX0RSWF9DWUNMRV9TTEVFUF9FTl9JTkQsICAvL2FkZCBpbiA2MjkzLiAodG8gcmVwbGFjZSB0aGUgY29tbWFuZCBxdWV1ZSBhcmNoaXRlY3R1cmUuKQorTVNHX0lEX0VMMV9DSF9UWF9JTkZPX0lORCwgICAgICAgICAgICAgICAgLy9hZGQgaW4gNjI5My4gKHRvIHJlcGxhY2UgdGhlIGNvbW1hbmQgcXVldWUgYXJjaGl0ZWN0dXJlLikgLy8gbm90IHVzZWQgbm93LgorTVNHX0lEX0VMMV9DSF9UWF9TQ0hfQ0xPU0VfSU5ELCAgICAgICAgICAgLy9hZGQgaW4gNjI5My4gKHRvIHJlcGxhY2UgdGhlIGNvbW1hbmQgcXVldWUgYXJjaGl0ZWN0dXJlLikKK01TR19JRF9FTDFfQ0hfVFhfR0FQX0lORk9fSU5ELCAgICAgICAgICAgIC8vYWRkIGluIDYyOTMuICh0byByZXBsYWNlIHRoZSBjb21tYW5kIHF1ZXVlIGFyY2hpdGVjdHVyZS4pCitNU0dfSURfRUwxX0NIX1RYX0RSWF9QQVJBTVNfSU5ELAorTVNHX0lEX0VMMV9JUlRfVFhfQVVUT19HQVBfSU5ELCAgICAgICAgICAgLy9hZGQgaW4gNjI5My4gKHRvIHJlcGxhY2UgdGhlIGNvbW1hbmQgcXVldWUgYXJjaGl0ZWN0dXJlLikKK01TR19JRF9FTDFNUENfRUwxX01FQVNfTUFJTl9TUEJfSU5GT19OVEYsCitNU0dfSURfRUwxTVBDX0VMMV9NRUFTX1RTVE1fU1JWX1JMVF9JTkQsCitNU0dfSURfRUwxX1BIU19UWF9TQ0VMTF9BQ1RfRE9ORV9JTkQsICAgICAvL2FkZCBpbiA2MjkzLiAodG8gcmVwbGFjZSB0aGUgY29tbWFuZCBxdWV1ZSBhcmNoaXRlY3R1cmUuKQorTVNHX0lEX0VMMV9QSFNfVFhfUFNJTV9TV0FQX1JFUSwgICAgICAgICAgLy9hZGQgaW4gNjI5My4gKHRvIHJlcGxhY2UgdGhlIGNvbW1hbmQgcXVldWUgYXJjaGl0ZWN0dXJlLikKK01TR19JRF9FTDFfQ0hfVFhfRFNQX1NOSUZGRVJfSU5ELCAgICAgICAgIC8vIGFkZCBpbiA2Mjk3CitNU0dfSURfRUwxX01TR19FTkQsICAgICAgICAgICAgICAgICAgICAgICAvL0VORCBvZiBFTDEgTWVzc2FnZXMKK01TR19JRF9FTDFfVFhfVFhfQ0ZHX0lORCwKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIEVNQUMgLT4gRUwxLVRYCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTDFfSVQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VUTVJfWEwxX0dBUF9UTVIsCitNU0dfSURfRUwxX1RYX0lUX0NDX0lOVEVSUlVQVF9JTkQsCitNU0dfSURfVENfQVVUT19USU1FUl9FWFBJUllfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIFRvb2wgPC0+IEVMMS1NQUlOCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTDFfVEVTVF9NT0RFX0VOQUJMRV9SRVEsCitNU0dfSURfTUwxU19FTDFfVFJYX0ZFQVRVUkVfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBFTDFEIDwtPiBFTDFDCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTDFfRUwxX1RBU0tfV0FLRV9JTkQsCitNU0dfSURfRUwxX0wxQURUX0VOVEVSX0NPTk5FQ1RFRF9SRVEsCitNU0dfSURfRUwxX0wxQURUX0VOVEVSX0NPTk5FQ1RFRF9DTkYsCitNU0dfSURfRUwxX0wxQURUX0xFQVZFX0NPTk5FQ1RFRF9SRVEsCitNU0dfSURfRUwxX0wxQURUX0xFQVZFX0NPTk5FQ1RFRF9DTkYsCitNU0dfSURfRUwxX0wxQURUX1NFVF9SQVRfSU5ELAorTVNHX0lEX0VMMU1QQ19DU19SRVNVTFRTX0lORCwKK01TR19JRF9FTDFNUENfQ1NfR0NDX1JFU1VMVFNfSU5ELAorTVNHX0lEX0VMMU1QQ19DU19BRERfRlJFUV9SRVEsCitNU0dfSURfRUwxTVBDX0NTX0RFTEVURV9GUkVRU19SRVEsCitNU0dfSURfRUwxTVBDX0NTX0NTSFdfSEFOR19JTkQsCitNU0dfSURfRUwxTVBDX0NNX05CUl9SRVNVTFRTX0lORCwKK01TR19JRF9FTDFNUENfQ01fU1JWX1JFU1VMVFNfSU5ELAorTVNHX0lEX0VMMU1QQ19DTV9BRkNfUkVTVUxUU19JTkQsCitNU0dfSURfRUwxTVBDX0NNX01JQl9SRVNVTFRTX0lORCwKK01TR19JRF9FTDFNUENfQ01fVlpXX1JFU1VMVFNfSU5ELAorTVNHX0lEX0VMMU1QQ19DTV9NQlNGTl9NRUFTX1JFU1VMVFNfSU5ELAorTVNHX0lEX0VMMU1QQ19DTV9NQlNGTl9DUkNfUkVTVUxUU19JTkQsCitNU0dfSURfRUwxTVBDX1BPU19SRVNVTFRTX0lORCwKK01TR19JRF9FTDFNUENfUFNfUkVTVUxUU19JTkQsCitNU0dfSURfRUwxTVBDX1NDTV9SRVNVTFRTX0lORCwKK01TR19JRF9FTDFfMzJLX0xFU1NfTUVBU19DRUxMX1NGQkRfQURKVVNUX0lORCwKK01TR19JRF9FTDFDX0VMMV9SWF9SU1NJX1ZFUklGWV9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRUw0QyA8LT4gRUwxQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfTDRDX0VMMV9MQ0VfUkVQT1JUX1NUQVJUX1JFUSwKK01TR19JRF9MNENfRUwxX0xDRV9SRVBPUlRfU1RPUF9SRVEsCitNU0dfSURfTDRDX0VMMV9MQ0VfUkVQT1JUX1BVTExEQVRBX1JFUSwKK01TR19JRF9MNENfRUwxX0xDRV9SRVBPUlRfQ05GLAorTVNHX0lEX0w0Q19FTDFfTENFX1JFUE9SVF9JTkQsCitNU0dfSURfTDRDX0VMMV9PTUFETV9VUERBVEVfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIFVQQ00gPC0+IEVMMUMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmIGRlZmluZWQoX19NVEtfSU5URVJOQUxfRU5HX1VTRVJfXykgfHwgZGVmaW5lZChfX0dBTUVfTEFURU5DWV9PUFRfMVNUX0FSUk9XX18pCitNU0dfSURfVVBDTV9FTDFfS0dfUEFUQ0hfUkVTRVQsCisjZW5kaWYKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgWEwxc2ltIFRTVE0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitNU0dfSURfRUwxX0VMMV9FTlRFUl9GQUNUT1JZX01PREVfUkVRLAorTVNHX0lEX0VMMV9FTDFfRU5URVJfTk9STUFMX01PREVfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIEVMMUQgPC0+IERDTEMoRHluYW1pYyBDYWNoZSBMb2NrIENvbnRyb2wpCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZiBkZWZpbmVkKF9fRFlOQU1JQ19DQUNIRV9MT0NLX0NFTlRSQUxfQ09OVFJPTF9TVVBQT1JUX18pCitNU0dfSURfRUwxX0RDTENfTE9DS19VTkxPQ0tfSU5ELAorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRUwxIChURzFfSElTUikgPC0+IEVOTDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VMMV9FTkwxX05PVElGWV9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBNVDYyOTMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRUwxX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBfRUwxX01TR0lEX0ggKi8KKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxX3Boc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxX3Boc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZWY0ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDFfcGhzX21zZ2lkLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBlbDFfcGhzX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIExURSBMYXllciAxIGFuZCBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwNiAyOCAyMDE2IGdhcnkubGl1CisgKiBbTU9MWTAwMTg2OTc3XSBtZXJnZSBlbDFjIGNvZGUgdG8gdW1vbHlhCisgKiAJCisgKiAJYWRkIG5ldyBtZXNzYWdlIGlkIGFuZCBjaGFuZ2UgbXNnIHJhbmdlIGZvciBlbDEKKyAqCisgKiAwNiAyNyAyMDE2IGxhd3JlbmNlLmNoZW4KKyAqIFtNT0xZMDAxODM2NDJdIG5ldyB0YXNrIEVMMV9NUEMgZGVmaW5pdGlvbiBmb3IgNjI5MworICogTVNHIElkIHJlbmFtZSBmb3IgdGhlIG5ldyB0YXNrIEVMMV9NUEMuCisgKgorICogMDQgMjYgMjAxNiBzaGloeWFvLndhbmcKKyAqIFtNT0xZMDAxNzU5OTddIFtFTDFDXSB1bW9seWEgY29kZSBzeW5jCisgKiA5MyBjb2RlIHN5bmMgZnJvbSBwYW51IGNiciAobGFiZWw9VU1PTFlfOTJMMURldi5XMTYxNy5wNCkuCisgKgorICogMDEgMjIgMjAxNiBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTQ3NjExXSBNVDYyOTIgRUwxIGNvZGUgbWVyZ2UgZnJvbSBVTU9MWV85MkwxRGV2IENCciB0byBVTU9MWQorICogSW50ZWdyYXRlZCBtY3UvbWFrZSwgbWN1L2NvbW1vbiBtY3UvcGNvcmUgY2hhbmdlcyBmcm9tIDE5ODUyNDggdG8gMjAxMTIyNiAoIHN3cmQgcGFydCkuCisgKgorICogMTEgMTYgMjAxNSBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTQ3NjExXSBNVDYyOTIgRUwxIGNvZGUgbWVyZ2UgZnJvbSBVTU9MWV85MkwxRGV2IENCciB0byBVTU9MWQorICogSW50ZWdyYXRlZCBtY3UvY29tbW9uLCBtY3UvbWFrZSBhbmQgbWN1L3Bjb3JlIGNoYW5nZXMgYmV0d2VlbiAxODA5MDUxIGFuZCAxODI2MzE3ICggc3dyZCBwYXJ0ICkuCisgKgorICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfRUwxX1BIU19NU0dJRF9ICisjZGVmaW5lIF9FTDFfUEhTX01TR0lEX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBQSFMgVEFTSyBkZWZpbml0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZiAwCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKKyNlbmRpZiAvKiBfRUwxX01TR0lEX0ggKi8KKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxX3R4X21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDFfdHhfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjUyYzVlCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxX3R4X21zZ2lkLmgKQEAgLTAsMCArMSw4MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGVsMV90eF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMVEUgTGF5ZXIgMSBhbmQgUHJvdG9jb2wgU3RhY2sgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDYgMjggMjAxNiBjaGlhbGluLnd1CisgKiBbTU9MWTAwMTc2MDc4XSBbRUwxQ10gVU1PTFlBIGNvZGUgc3luYworICogLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfRUwxX1RYX01TR0lEX0gKKyNkZWZpbmUgX0VMMV9UWF9NU0dJRF9ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgVFggVEFTSyBkZWZpbml0aW9ucworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0VMMV9UWF9DT0RFX0JFR0lOICkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogVFgKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogSW50ZXJuYWwgbWVzc2FnZSAqLworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0VMMV9UWF9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX0VMMV9NU0dJRF9IICovCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsMWJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsMWJfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTQyOTkyCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZWwxYl9tc2dpZC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogIGVsMWJfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogIFU0RyBhZGFwdG9yCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICBFTDFCIG1lc3NhZ2UgaWQgZGVmaW5pdGlvbnMKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBFTDFCX01TR0lEX0gKKyNkZWZpbmUgRUwxQl9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FTDFCX0NPREVfQkVHSU4gKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK01TR19JRF9VNEdfVElDS19JTkQgICAgICAgICAgICAgICAgPSBNU0dfSURfRUwxQl9DT0RFX0JFR0lOLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRUwxQl9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogRUwxQl9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDF0c3RfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsMXRzdF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYmI5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDF0c3RfbXNnaWQuaApAQCAtMCwwICsxLDgyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgTW9kaWZpY2F0aW9uIE5vdGljZToKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IE1lZGlhVGVrIEluYy4gYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogZWwxdHN0X21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTVQ2MjkxCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgZWwxdHN0X21zZ2lkLmgKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0VMMVRTVF9NU0dJRF9ICisjZGVmaW5lIF9FTDFUU1RfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRUwxVFNUX0NPREVfQkVHSU4gKQorTVNHX0lEX0VMMVRTVF9UT19ESEwgPSBNU0dfSURfRUwxVFNUX0NPREVfQkVHSU4sCitNU0dfSURfRUwxVEFTS19XQUtFVVAsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0VMMVRTVF9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX0VMMVRTVF9NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsMl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYWRmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDJfbXNnaWQuaApAQCAtMCwwICsxLDQyOSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGVsMl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAgIAorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDEyIDE3IDIwMTggbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDM3Mjc2OV0gW1ZNT0xZXSBlbmFibGUgRU5MMiBvbiBHZW45NSBIVyBwbGF0Zm9ybQorICogRU5MMiBtaWdyYXRpb24gLSBpbnRlcmZhY2UKKyAqCisgKiAwOSAwNyAyMDE4IHl1cmkuaHVhbmcKKyAqIFtNT0xZMDAzNDQ5MjRdIFtWTU9MWV1bQnVpbGRFbnZdIG1lcmdlIGJhY2sgZnJvbSBHZW45NyBEZXYgdG8gVk1PTFkKKyAqIAkKKyAqIAkuCisgKgorICogMDggMjcgMjAxOCB5ay5saXUKKyAqIFtNT0xZMDAzMjc5MjZdIFtHRU45N11bRU5QRENQXSBiYXNlIGRldmVsb3BtZW50IGNoZWNrLWluCisgKiBDVVJfR0VOID49IE1EX0dFTjk3CisgKgorICogMDggMTUgMjAxOCB5ay5saXUKKyAqIFtNT0xZMDAzMjc5MjZdIFtHRU45N11bRU5QRENQXSBiYXNlIGRldmVsb3BtZW50IGNoZWNrLWluCisgKiAuCisgKgorICogMDcgMTggMjAxOCBzdGV2ZS5rYW8KKyAqIFtNT0xZMDAzMzkzMDddIFRoZSBoYW5kbGluZyBvZiBlbmVyZ3kgZGVwbGV0aW9uIGF0dGFjayBieSBTVE1TSSBwYWdpbmcgZnJvbSBmYWtlIGNlbGwKKyAqIEluYWN0aXZpdHkgRGV0ZWN0aW9uIFRpbWVyIDIKKyAqCisgKiAwNyAxMCAyMDE4IHNsaWZlci5oc3VlaAorICogW01PTFkwMDMzNzkxNV0gW01UNjI5NV1bRUwyXSBGYXN0IHJldHJhbnNtaXNzaW9uIG9mIFJMQyBTVEFUVVMgUERVIHVwb24gVUwgSEFSUSBmYWlsdXJlCisgKiBEZWZpbmUgbWVzc2FnZSBpZCBmb3IgU1RBVFVTIFBEVSBmZWVkYmFjaworICoKKyAqIDA2IDI5IDIwMTggZ3VhbmcteXUuemhlbmcKKyAqIFtNT0xZMDAzMzU4NzldIFtNVDYyOTVdIE1MMVMgbXVsdGlwbGUgVEFHIGZsb3cgYWRkaW5nCisgKiBFTUFDLU1MMVMgc1RBRyBUQSBmbG93IGRldmVsb3BtZW50CisgKgorICogMDYgMjAgMjAxOCBrdW5nLWhhby5jaHVuZworICogW01PTFkwMDMzNDE3NF0gW01UNjI5NV1bRUwyXSBSZW1vdmUgUkIgc3VzcGVuZC9yZXN1bWUgSUxNIGJldHdlZW4gRVBEQ1AgYW5kIEVSTENVTAorICogcmVtb3ZlIHR3byB1bnN1c2VkIG1zZ2lkcworICoKKyAqIDA2IDExIDIwMTggamlhLXNoaS5saW4KKyAqIFtNT0xZMDAzMTkzNzNdIFtNVDYyOTVdIHJlY29tbWVuZGVkIGJpdCByYXRlIGZlYXR1cmUKKyAqIHJlY29tbWVuZGVkIGJpdCByYXRlIGZlYXR1cmU6IHVwY20tZW1hYyBpbnRlcmZhY2UKKyAqCisgKiAwNCAxNyAyMDE4IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAzMjAxMDRdIFtJQ0RdIFBhdGNoIGJhY2sgdG8gVU1PTFlFCisgKiBbVU1PTFlFXVtFTDJJQ0RdIGVsMmljZCBmcmFtZXdvcmsKKyAqCisgKiAwNCAxNyAyMDE4IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAzMjAxMDRdIFtJQ0RdIFBhdGNoIGJhY2sgdG8gVU1PTFlFCisgKiBbVU1PTFlFXVtFTDJJQ0RdIGVsMmljZCBmcmFtZXdvcmsKKyAqCisgKiAwNCAxMyAyMDE4IHNsaWZlci5oc3VlaAorICogW01PTFkwMDMwODM2OF0gW01UNjc2M11bQmlhbmNvXVtPMV1bTVAyXVtUTU9dW1dXIEZUXVtVbml0ZWQgU3RhdGVzXVtTZWF0dGxlXVtOb2tpYV1bNEdNTV1bRjRMXVtEYXRhXVtIVFRQXVtVTF0gSFRUUCBVTCBBdmVyYWdlIFRocm91Z2hwdXQgRmFpbCBieSAwLjE4NiBhcyBjb21wYXJlZCB0byBSRUYgTEcgRzQgZGV2aWNlIGR1cmluZyBEYXR1bSBFeHAxIFJvdW5kMyBvbiAzMHRoIEphbiBpbiBQb29yIFNpZ25hbCBTdGF0aWMgY29uZGl0aW9uCisgKiBEZWZpbmUgbWVzc2FnZSBpZCBmb3IgUkIgcG9sbCByZXF1ZXN0CisgKgorICogMDMgMTkgMjAxOCBndWFuZy15dS56aGVuZworICogW01PTFkwMDMxMzg1MF0gW01UNjI5NV0gTU1MMiBEVkZTIGNvbnRyb2wgZmVhdHVyZSBkZXZlbG9wbWVudAorICogTU1MMiBEVkZTIGNvbnRyb2wgYW5kIE1DVSBEVkZTIHJlLW9yZworICoKKyAqIDAxIDA5IDIwMTggdGltb3RoeS55YW8KKyAqIFtNT0xZMDAzMDAyOThdIFtQVlQgbXVzdCByZXNvbHZlXSC3TKtIPz+lXbpDPz8gLSBlbDIgbXNnCisgKiBzZW5kaW5nIHBkY3AgaW52YWxpZCBjb250cm9sIHBkdSB0byBhdm9pZCBlbnRlcmluZyBzbGVlcC4gKFVNT0xZQSAtIGNvbW1vbikKKyAqCisgKiAxMSAwNiAyMDE3IG1mLmpoYW5nCisgKiBbTU9MWTAwMjcyMDQyXSBbTVQ2Mjk1XVs5My85NSByZS1hcmNoXSBBZGQgRU1BQyBNTDFTIGludGVyZmFjZQorICogLgorICoKKyAqIDA4IDE4IDIwMTcgbWYuamhhbmcKKyAqIFtNT0xZMDAyNzIwNDJdIFtNVDYyOTUgRGV2XSBBZGQgRU1BQyBNTDFTIGludGVyZmFjZQorICogYWRkIEVNQUMgTUwxUyBpbnRlcmZhY2UuCisgKiAxMCAwMyAyMDE3IGppYS1zaGkubGluCisgKiBbTU9MWTAwMjgxNzU0XSBbTVQ2NzYzXSBVTCBIQVJRIGVhcmx5IGNsb3NlIGZvciB2b2x0ZSBsb3cgcG93ZXIgZW5oYW5jZW1lbnQKKyAqIGVhcmx5IHVsIGhhcnEgY2xvc2UgZm9yIHZvbHRlIGxvdyBwb3dlcgorICoKKyAqIDEwIDAzIDIwMTcgamlhLXNoaS5saW4KKyAqIFtNT0xZMDAyODE3NTRdIFtNVDY3NjNdIFVMIEhBUlEgZWFybHkgY2xvc2UgZm9yIHZvbHRlIGxvdyBwb3dlciBlbmhhbmNlbWVudAorICogZWFybHkgdWwgaGFycSBjbG9zZSBmb3Igdm9sdGUgbG93IHBvd2VyCisgKgorICogMTAgMDMgMjAxNyBqaWEtc2hpLmxpbgorICogW01PTFkwMDI4MTc1NF0gW01UNjc2M10gVUwgSEFSUSBlYXJseSBjbG9zZSBmb3Igdm9sdGUgbG93IHBvd2VyIGVuaGFuY2VtZW50CisgKiBlYXJseSB1bCBoYXJxIGNsb3NlIGZvciB2b2x0ZSBsb3cgcG93ZXIKKyAqCisgKiAwOSAyMCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNzkxODRdIFtQQ1RdW0Fucml0c3VdW0NBRzUwQ11bRTQwXVs3LjEuMS4yXSBmYWlsCisgKiBbVFJVTktdIExDSUQgdnMuIHN1cHBvcnQgcmVsZWFzZSBoYW5kbGluZworICoKKyAqIDA4IDIyIDIwMTcgY2FtbWllLnlhbmcKKyAqIFtNT0xZMDAyNjk1OThdIFtHZW45M11UUEIvTW9iaWxpdHkgQ3RybCBwYXRjaCBjaGVjayBpbgorICogW1RSVU5LXVtNZXJnZWQgZnJvbSBSMV1bRVBEQ1BdW0hTVF0gc2V0IHZpcCBiaXQgYW5kIG5vdGlmeSBWb0xURSBiZWFyZXIgZm9yIEVSTENVTAorICoKKyAqIDA4IDAzIDIwMTcgd2VuLWppdW5uLmxpdQorICogW01PTFkwMDI2ODU1MV0gVGFzayBiYXRjaCBzY2hlZHVsaW5nIGZvciBMVEUgTG93IHBvd2VyCisgKiBbRUwyXSBUYXNrIFJlc2NoZWR1bGluZyBmb3IgTG93IFBvd2VyIFBvbGxpbmcgVGljayBDaGFuZ2UKKyAqCisgKiAwOCAwMyAyMDE3IHdlbi1qaXVubi5saXUKKyAqIFtNT0xZMDAyNjg1NTFdIFRhc2sgYmF0Y2ggc2NoZWR1bGluZyBmb3IgTFRFIExvdyBwb3dlcgorICogW0VMMl0gVGFzayBSZXNjaGVkdWxpbmcgZm9yIExvdyBQb3dlciBQb2xsaW5nIFRpY2sgQ2hhbmdlCisgKgorICogMDcgMjggMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMjY3NTA5XSBbTVQ2NzYzXVtCaWFuY29dW04xXVtNVEJGXVtQSE9ORV1bT3Zlcm5pZ2h0XVtIUV1bTGFiXVtFcmljc3Nvbl1bQVNTRVJUXSBmaWxlOm1jdS9jb21tb24vZHJpdmVyL2RwY29wcm8vc3JjL2RwY29wcm9fbW11X2Rydi5jIGxpbmU6MTYxNgorICogW1RSVU5LXSBtb3ZlIExNQUMgSEFSUSByZXNldCB0byBlbDJwb3cKKyAqCisgKiAwNyAyNCAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNjYyOTNdIFtCbG9ja2luZ11bTVQ2NzYzXVtCaWFuY29dW04xXVtJbmRpYSBGVF1bTXVtYmFpXVtXVyBGVF1bZU1CTVNdW1JKSU9dICBtZDE6KFVTSVAxX1VTSVAwKSBbQVNTRVJUXSBmaWxlOm1kMzIvdXNpcC9icnAvbW9kZW0vbHRlL3RvcC9zcmMvNGdfdG9wX2lycS5jIGxpbmU6MjAwNAorICogW1RSVU5LXSBmaXggUG9sbCBjb250cm9sIG9mIFRYTElTUiBhbmQgRUwyUE9XCisgKgorICogMDcgMTggMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMjYzOTM2XSBbQklBTkNPXVtNVDY3NjNdW1JESVRdW1BIT05FXVtHQ0ZdW1RTODk4MF1bRkREIEI3LFRDIDUuMi4xXUhhbmRvZmYgZGVsYXkgZXhjZWVkIDE5MG1zIHdoZW4gTFRFIGhhbmRvZmYgdG8gV0NETUEKKyAqIFtUUlVOS10gcG93ZXIgb24gQ29wcm8gYmVmb3JlIFRYTElTUiBoYW5kbGUgU0NIX0NMT1NFIChmb3IgTE1BQyBIQVJRIFJFU0VUKQorICoKKyAqIDA3IDE3IDIwMTcgcGV0ZXIueXUKKyAqIFtNT0xZMDAyNjM3NDldIFtWT0xURV1bSFNUXVtBbml0ZV1bMDIudjAxLjAyMF1bNS4xLjFdW0UzOV1GQUlMLk5vIE1PUyBzY29yZSByZXR1cm5lZC4gRXJyb3IgY29kZTogLTUuCisgKiBPdmVyd2lydGUgdW5yZWFzb25hYmxlIFJMQyBjb25maWd1cmF0aW9uIC0gdC1SZW9yZGVyaW5nIHRpbWVyLgorICoKKyAqIDA3IDA2IDIwMTcgc2xpZmVyLmhzdWVoCisgKiBbTU9MWTAwMjYxODY4XSBbNjI5M11VTCBTSVQgbmV3IGhhbmRsaW5nCisgKiBBZGQgbWVzc2FnZSBpZCBmb3IgRUwyIFJCIHN5bmMgcHJvY2VkdXJlCisgKgorICogMDYgMDEgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMjU0MzMxXSBbTVQ2NzYzXVtFTV0gRUwyRU0gbWFpbnRlbmFuY2UgYW5kIEVNQUMgRU0gdXBkYXRlCisgKiBbRU1BQ10gRU0gdXBkYXRlCisgKiBbRUwyRU1dIGFkZCB0cmFjZSBhbmQgZml4IHJlcG9ydCBtZWNoYW5pc20KKyAqCisgKiAwNiAwMSAyMDE3IHN0ZXZlLmthbworICogW01PTFkwMDI1Mjk2NF0gWzYyOTNdIEFQSSB1cGRhdGUgZm9yIExURUNTUiBWb0xURSBFQkkgaW5kaWNhdGlvbgorICogCQorICogCVtVTU9MWUFdW1RSVU5LXSBBUEkgdXBkYXRlIGZvciBMVEVDU1IgVm9MVEUgRUJJIGluZGljYXRpb24KKyAqCisgKiAwNSAxNiAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyNDk4MDRdIFtCSUFOQ09dW01UNjc2M11bUkRJVF1bRlRdW0ZERF1bSEtdW1NJTTE6Q01IS11bU0lNMjpTTVRdW092ZXJuaWdodF1bQVNTRVJUXSBmaWxlOm1jdS9jb21tb24vZHJpdmVyL2RwY29wcm8vc3JjL2wyXzRnX2RsX2xtYWMuYyBsaW5lOjIxNAorICogMS4gZW5hYmxlIGVsMnBvdworICogMi4gaW50ZXJmYWNlIGNoYW5nZSBmb3Igc2NoX2Nsb3NlCisgKgorICogMDQgMjUgMjAxNyBzbGlmZXIuaHN1ZWgKKyAqIFtNT0xZMDAyNDQ3OTVdIFtCSUFOQ09dW01UNjc2M11bUkRJVF1bTlZJT1RdW0ZERF1bTm9raWFdWzRHXSBBc3NlcnQgZmFpbDogZHBjb3Byb19tbXVfZHJ2LmMgMTMwMyAtIElQQ09SRQorICogQWRkIEVMMiBtZXNzYWdlIGlkIGZvciBSQiBsb2NrL3VubG9jaworICoKKyAqIDA0IDA2IDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDIyNjY1NF0gW01UNjI5M11bRUwyUE9XXSBFTDIgTDJDb3BybyBwb3dlciBjb250cm9sCisgKiBbRUwyUE9XXQorICogLSBCYXNpYyBmdW5jdGlvbgorICogLSBMK1gsIEwrTAorICogLSBNZXRhIG1vZGUsIEwxUworICogLSBVVAorICoKKyAqIDAzIDEzIDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogTUwxUworICogLSBGb3JjZSBORVdUWCB3aGVuIE1MMVMgcmVxdWVzdCBpcyBzZW50CisgKgorICogMDIgMjQgMjAxNyBtZi5qaGFuZworICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogLkFkZCBNTDFTIElMTSBoYW5kbGVyCisgKgorICogMDIgMTAgMjAxNyBzdGV2ZS5rYW8KKyAqIFtNT0xZMDAyMjg5NzJdIFtVTU9MWUFdW0VQRENQXVtSLVNJTV0gSW50ZXJmYWNlIHdpdGggRVJSQyBmb3IgUmVtb3RlIFNJTQorICogW0VQRENQXVtSLVNJTV0gSW50ZXJmYWNlIHdpdGggRVJSQyBmb3IgUmVtb3RlIFNJTS4KKyAqCisgKiAwMiAwNiAyMDE3IHBldGVyLnl1CisgKiBbTU9MWTAwMjA3NzMzXSBbTVQ2MjkzXVtFTDJdIEVSTENETCBkZXZlbG9wbWVudAorICogW00tU0lNXSBTeW5jIFItU0lNIHJlbGF0ZWQgaW50ZXJmYWNlcywgcmVtb3ZlIHJlZHVuZGFudCBtZXNzYWdlIElEcyByZWxhdGVkIHRvIEVSTEMuCisgKgorICogMDEgMjQgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMjI2NjU0XSBbTVQ2MjkzXVtFTDJQT1ddIEVMMiBMMkNvcHJvIHBvd2VyIGNvbnRyb2wKKyAqIEFkZCBFTDEgbXNnaWQgYW5kIHRlbXAgaWxtIGhhbmRsaW5nCisgKgorICogMDEgMTYgMjAxNyBlZGRpZS53YW5nCisgKiBbTU9MWTAwMjEwNjUwXSBbTVQ2MjkzXVtVTU9MWUEgVFJVTktdIEVNQUMgbWFpbnRlbmFuY2UKKyAqIFtNU0lNXSBBZGQgUlNWQVMgc3VzcGVuZCBtc2cgaWQKKyAqCisgKiAwMSAwNSAyMDE3IG5pY29sZS5oc3UKKyAqIFtNT0xZMDAyMjMwNjddIFtNVDYyOTNdIEVMMiBFTSBpbXBsZW1lbnRhdGlvbgorICogRUwyRU0gZnJhbWV3b3JrLCBtZXJnZSB0byBUUlVOSworICoKKyAqIDEyIDI2IDIwMTYgbWYuamhhbmcKKyAqIFtNT0xZMDAxOTQ5ODddIFtNVDYyOTNdW1VNT0xZQS9QUyBERVZdIEVNQUMgbWFpbnRlbmFuY2UKKyAqIG1lcmdlIERWRlMgSUYgY29kZQorICoKKyAqIDExIDE0IDIwMTYgY2hpaC1jaGVuZy55YW5nCisgKiBbTU9MWTAwMjEzMTIyXSBbTVQ2MjkzXVtFTDJdIEVMMiBGUEdBIElUIHBoYXNlIElJIHNvdXJjZSBjb2RlIGludGVncmF0aW9uCisgKiAxLiByZWZpbmUgIFJCL01CTVMgUlNNVCByZWxlYXNlCisgKiAyLiByZWZpbmUgZXBkY3AgcG9sbGluZyByc210CisgKiAyLiBhZGQgY292ZXJhZ2UKKyAqCisgKiAxMCAyOCAyMDE2IGppYS1zaGkubGluCisgKiBbTU9MWTAwMTk0OTg3XSBbTVQ2MjkzXVtVTU9MWUEvUFMgREVWXSBFTUFDIG1haW50ZW5hbmNlCisgKiBlbWFjIHRpbWluZyByZXBvcnQgZm9yIHZvbHRlIGRzcAorICoKKyAqIDEwIDI1IDIwMTYgY2hpaC1jaGVuZy55YW5nCisgKiBbTU9MWTAwMjA5MjQwXSBbTVQ2MjkzXVtFTDJdIEVMMiBGUEdBIElUIHBoYXNlIDEgc291cmNlIGNvZGVzIGludGVncmF0aW9uCisgKiBuZXcgc2FwIGFuZCBtZXNzYWdlIGlkIGZvciBFUkxDREwgdG8gbm90aWZ5IEVQRENQIHRvIHJlbGVhc2UgUlNNVCB3aGVuIHJlbGVhc2luZyBSQgorICoKKyAqIDEwIDA2IDIwMTYgdmlsbGUucHVrYXJpCisgKiBbTU9MWTAwMTUwODM1XSBNTDFTIFRlc3QgRW52aXJvbm1lbnQgU3VwcG9ydAorICogCQorICogCVtVTU9MWUFdIFN5bmMgY29kZSBmcm9tIFVNT0xZIFRydW5rIENMMjIyODcwNiwgQ0wyNDU1MzUwLCBDTDI1Mjk3NDAgYW5kIENMMjgyMTM4NworICoKKyAqIDA4IDI1IDIwMTYgamlhLXNoaS5saW4KKyAqIFtNT0xZMDAxOTQ5ODddIFtNVDYyOTNdW1VNT0xZQS9QUyBERVZdIEVNQUMgbWFpbnRlbmFuY2UKKyAqIEVNQUMgRUwxIGludGVyZmFjZSBjaGFuZ2UKKyAqCisgKiAwOCAxNiAyMDE2IHdlbi1qaXVubi5saXUKKyAqIFtNT0xZMDAxOTQyOThdIFtVTU9MWUFdIEVMMiArIEVNQUMgQ29kZSBSZXZpZXcKKyAqIFN5bmMgdG8gTGF0ZXN0IFBTLkRFViAoQ0wtMjcyODY2MCkKKyAqIAorICogQ0wtMjcyODY2MCAtIGVsMiB2cmIgdmlydHVhbCBzcGFjZSBzaG9ydGFnZSBoYW5kbGluZyBmcmFtZXdvcmsKKyAqCisgKiAwOCAxNiAyMDE2IHdlbi1qaXVubi5saXUKKyAqIFtNT0xZMDAxOTQyOThdIFtVTU9MWUFdIEVMMiArIEVNQUMgQ29kZSBSZXZpZXcKKyAqIGVsMiB2cmIgdmlydHVhbCBzcGFjZSBzaG9ydGFnZSBoYW5kbGluZyBmcmFtZXdvcmsKKyAqIDA4IDA5IDIwMTYgbmljb2xlLmhzdQorICogW01PTFkwMDE5NjA2NV0gW01UNjI5M11bZm9sZGVyIHN0cnVjdHVyZV0gTW92ZSBFTDEvRUwyIGZpbGVzIGZyb20gTFRFIGRvbWFpbiB0byBTV1JEIGRvbWFpbgorICogOTMgRUwyIG90aGVycworICoKKyAqCisgKiAwNyAyNyAyMDE2IGplcmVteS5jaGVuCisgKiBbTU9MWTAwMTkwNjgzXSBbVU1PTFlBXVs2MjkzXSBFTDIgbWVyZ2UgYmFjayB0byBVTU9MWUEgVFJVTksgJiBQUyBERVYKKyAqIFtjb21tb25dW09BIGRvbWFpbl0gbWVyZ2UgZnJvbSBVRVNJTSBDQnIKKyAqCisgKiAwNyAxOSAyMDE2IGVkZGllLndhbmcKKyAqIFtNT0xZMDAxOTE5MjFdIFN5bmMgVU1PTFkgdG8gVU1PTFlBLlBTLkRFVgorICogU3luYyBlbDJfbXNnaWQuaCBmcm9tIFVNT0xZIENMMjU4MjE2NSBDTDI1MjkwMTQKKyAqCisgKiAwNiAyOCAyMDE2IGVkZGllLndhbmcKKyAqIFtNT0xZMDAxODcwNDFdIFN5bmMgZXJyY19lbWFjX21zZy5oIGZyb20gVU1PTFkgdG8gVU1PTFlBCisgKiBBZGQgTVNHX0lEX0VSUkNfRU1BQ19NRUFTX0dBUF9JTkQKKyAqCisgKiAwMyAxNSAyMDE2IHJ5YW4ub3UKKyAqIFtNT0xZMDAxNjIyOTFdIFtNVDYyOTJdIEVNQUMgY29kZSBzeW5jIGZyb20gTFIxMSB0byBVTU9MWQorICogQ0wxODY3NzYxLCBbTU9MWTAwMTUxMDAwXSBbTVQ2NzU1XSBTUlZDQyBFbmhhbmNlbWVudC4KKyAqCisgKiAwMSAxMSAyMDE2IGthdGhpZS5obworICogW01PTFkwMDE1NjIyOV0gW01UNjI5Ml0gQ29kZSBzeW5jIGZyb20gTVQ2MjkxOiBBdURSWAorICogLgorICoKKyAqIDAxIDA5IDIwMTYgbmllbnRlaC5oc3UKKyAqIFtNT0xZMDAxNTk1NDhdIFs2MjkyXSBFUkxDIGNvZGUgc3luYyBmcm9tIExSMTEgdG8gVU1PTFkgKDIwMTUvMTIpIAorICogU1dSRCBkb21haW4gcGFydAkKKyAqIAkuCisgKgorICogMTIgMzAgMjAxNSBhbnR0aS5rYXJqYWxhaW5lbgorICogW01PTFkwMDE1MzMzNV0gVUwgYnVja2V0IG1hbmFnZW1lbnQgZm9yIFVMIENBIGFuZCA2NFFBTTogRVBEQ1AKKyAqCisgKiAxMSAyNyAyMDE1IHZpbGxlLnB1a2FyaQorICogW01PTFkwMDE1MDgzNV0gTUwxUyBUZXN0IEVudmlyb25tZW50IFN1cHBvcnQ6CisgKiAJCisgKiAJRU1BQyBzdXBwb3J0IGZvciBNTDFTIFRlc3QgTW9kZQorICoKKyAqIDA3IDE2IDIwMTUgY2hlbi13ZWkud2FuZworICogW01PTFkwMDExODE1N10gW1RLNjI5MV1FUkxDIGNvZGUgbWFpbnRhaW4KKyAqIEVSTEMgc3RhdHVzIHByb2ggdGltZXIgbW9kaWZpY2F0aW9uCisgKgorICogMDcgMDYgMjAxNSBzaGVuZ3lpLmhvCisgKiBbTU9MWTAwMTI1NTg2XSBbVEs2MjkxRTFdW01WVFYtRF1bNEddW1RERF1bVEREX01JTU9fNy4yXWFzc2VydCBmYWlsIDogZWwxdHguYyA3MzEKKyAqIDEpIGFkZCBFTUFDX0VMMlRBU0tfTE9DSy9VTkxPQ0tfUE9XRVJfUkVRCisgKgorICogMDYgMTggMjAxNSBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwMTIxMzMyXSBbVEs2MjkxXSA0RyBFQVMgbG93IHBvd2VyIGNoZWNrIGluCisgKiBhZGQgUUJNL0VMMiBwb3dlciBjb250cm9sIG1lc3NhZ2VzIGZvciBMb2dETUEKKyAqCisgKiAwNiAxNSAyMDE1IHNjLnR1bmcKKyAqIFtNT0xZMDAxMjE0NDBdIFtUSzYyOTFdIGVMMiBkZXZlbG9wbWVudCBjaGVjayBpbiBDUgorICogCUFkZCBNU0dfSURfRVJSQ19DX1JOVElfUkFfUFJPQklOR19SRVEgZm9yIHByb2JpbmcgcmVxLgorICoKKyAqIDA2IDE1IDIwMTUgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDEyMTMzMl0gW1RLNjI5MV0gNEcgRUFTIGxvdyBwb3dlciBjaGVjayBpbgorICogZUwyIGxvdyBwb3dlciBhbmQgZVBEQ1AgY29kZSBzeW5jOiBlbDJfbXNnaWQuaAorICoKKyAqIDA2IDAzIDIwMTUgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDExODE2MV0gW01UNjI5MV0gRVBEQ1AgQ1IgU3luYyAtIEVhcmx5IHJlZXN0YWJsaXNobWVudCB0byBwcmV2ZW50IGNlcnRhaW4ga2luZCBvZiBWb0xURSBjYWxsIGRyb3AKKyAqIFJEIGRvbWFpbgorICoKKyAqIDAzIDE4IDIwMTUgY2hlbi13ZWkud2FuZworICogW01PTFkwMDA5OTUyNV0gW1RLNjI5MV0gRU1BQyBNRFQgZmVhdHVyZSBjaGVjay1pbgorICogaW50ZXJmYWNlIGZpbGUgY2hlY2staW4KKyAqCisgKiAwMiAxMyAyMDE1IG1pbmd0c3VuZy5zdW4KKyAqIFtNT0xZMDAwOTE4MjJdIFJBVERNIHJlb3JnYW5pemF0aW9uCisgKiAuCisgKgorICogMTIgMTYgMjAxNCB5dXRpbmcuY2hlbgorICogW01PTFkwMDA4NDgwN10gW01UNjI5MV9ERVZdIEVMMiBMb3cgUG93ZXIgRmxvdworICogLgorICoKKyAqIDEyIDEyIDIwMTQgeWsubGl1CisgKiBbTU9MWTAwMDg2MzUwXSBbTVQ2MjkxXVtMMjM0IFAyUF0gRW5hYmxlIEVMMiBQRFUgZHJvcCwgcGluZyBubyByZXBseSBhZnRlciAzMG1pbgorICogCS4KKyAqCisgKiAxMSAxMSAyMDE0IHlpdGluZy5jaGVuZworICogW01PTFkwMDA4NDA0Ml0gW1VNT0xZXSBtZXJnZSBVTU9MWV9ERVYgdG8gVU1PTFkgdHJ1bmsKKyAqIC4KKyAqCisgKiAxMCAyOCAyMDE0IGFuZHJldy53dQorICogW01PTFkwMDA3OTAxOF0gW01UNjI5MV9ERVZdIGVQRENQIGJhdGNoIEkgVVQgcmVsYXRlZCBtb2RpZmljYXRpb24KKyAqIE1lcmdpbmcKKyAqIAkKKyAqIAkvL1VNT0xZX0NCci9hbmRyZXcud3UvTVQ2MjkxX0RFVl9FUERDUERFVlcxNDI3UDEvbWN1L2NvbW1vbi9pbnRlcmZhY2Uvc2FwL21kL2VycmNfbXNnaWQuaAorICogCQorICogCXRvIC8vVU1PTFkvREVWL01UNjI5MV9ERVYvbWN1L2NvbW1vbi9pbnRlcmZhY2Uvc2FwL21kL2VycmNfbXNnaWQuaAorICoKKyAqIDA5IDE4IDIwMTQgc2hlbmd5aS5obworICogW01PTFkwMDA3NzU5Ml0gW1RLNjI5MV0gY29kZSBzeW5jIGZyb20gQ0JyIHRvIFRLNjI5MV9ERVYgLSBlbWFjCisgKiAuCisgKgorICogMDggMjYgMjAxNCBzaC55YW5nCisgKiBbTU9MWTAwMDc3MjkwXSBbVEs2MjkxX0RFVl0gSUxNL0V2ZW50IHNjaGVkdWxlciB3cmFwcGVyIGZvciBMSVNSMkhJU1IgcmVtb3ZhbAorICogLgorICoKKyAqIDA4IDIyIDIwMTQgankub3UKKyAqIFtNT0xZMDAwNzYxMDRdIFtUSzYyOTFdIEVNQUMgJiBFUkxDIFVUIGZyYW1ld29yayBhbmQgRVJMQyBVVCBjYXNlcworICogLgorICoKKyAqIDA4IDIxIDIwMTQgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDA3MjkwMl0gW1RLNjI5MV1bREVWXSBMVFQgdW5pdCB0ZXN0IGZyYW1ld29yaworICogTWVyZ2luZworICogICAgICAKKyAqICAgICAvL1VNT0xZX0NCci9lcmljLmhzaWVoL1RLNjI5MV9ERVZfRVNML21jdS9jb21tb24vaW50ZXJmYWNlL3NhcC8uLi4KKyAqICAgICAgCisgKiAgICAgdG8gLy9VTU9MWS9ERVYvVEs2MjkxX0RFVi9tY3UvY29tbW9uL2ludGVyZmFjZS9zYXAvLi4uCisgKgorICogMDggMTQgMjAxNCBhbmRyZXcud3UKKyAqIFtNT0xZMDAwNzUzOTddIFtUSzYyOTFfREVWXSBjb2RlIHN5bmMgTU9MWTAwMDcyNDQ1IGZyb20gTU9MWSB0byBUSzYyOTFfREVWCisgKiBJbnRlcmZhY2UgY2hlY2staW4gZm9yIEVQRENQX0VNQUNfTEVBVkVfRFJYCisgKgorICogMDcgMzAgMjAxNCB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDAwNzM4MzBdIFtUSzYyOTFfREVWXSBjaGVjay1pbiBUSzYyOTEgbW9kaWZpY2F0aW9uCisgKiBtb2RpZnkgc2FwCisgKgorICogMDcgMjkgMjAxNCBhbmRyZXcud3UKKyAqIFtNT0xZMDAwNzM4NzNdIFtUSzYyOTFfREVWXSBFUERDUC1FUlJDIGludGVyZmFjZXMgY2hlY2staW4KKyAqIGFkZCBFUlJDX0VQRENQX01UQ0hfUENfUkVRCisgKgorICogMDcgMjggMjAxNCBuaWVudGVoLmhzdQorICogW01PTFkwMDA3MzgzNl0gW1RLNjI5MV1bRVJSQ11bQ0hNXSBMVEUtQSBDSE0gZGV2ZWxvcG1lbnQgY29kZSBjaGVjay1pbgorICogICAgIC4KKyAqCisgKiAwMSAxNSAyMDE0IHNsaWZlci5oc3VlaAorICogW01PTFkwMDA1MzEwNF0gW01UNjI5MEUyXVtOQVMgUlREXVtNTV1bRkREXSBBc3NlcnQgZmFpbDogZHJpdmVyL2wyY29wcm8vY2lwaGVyL3NyYy9jaXBoZXJfY29tbW9uLmMgMTk2IC0gTDJDT1BSTworICogTWVyZ2UgY29kZXMgcmVsYXRlZCB0byBMMiBjb3BybyBkZWxheSBwb3dlciBvZmYgYmFjayB0byBNT0xZIFRSVU5LIGluIE9BIGRvbWFpbgorICoKKyAqIDAxIDA2IDIwMTQgbWYuamhhbmcKKyAqIFtNT0xZMDAwNTE5ODNdIFtNVDY1ODJMVEVdW1dXRlRdW0dlcm1hbnldW1ZvZGFmb25lXVBpbmcgUlRUIGlzIG1vcmUgdGhhbiBiZW5jaG1hcmsKKyAqIEFkZCBIT1NUX0RBVEFfUkVBRFlfSU5ECisgKgorICogMTIgMDMgMjAxMyBsZXdpcy55dQorICogW01PTFkwMDA0ODgzMl0gcG93ZXIgZG93bi9vbiBpbiBFTDIgdGFzayBjb250ZXh0IGFuZCByZWZpbmUgdGhlIGZsb3cKKyAqIC4KKyAqCisgKiAwOSAyNiAyMDEzIGxld2lzLnl1CisgKiBbTU9MWTAwMDM5MTk1XSBbTVQ2MjkwXSBbTG93IFBvd2VyXSBMVEUgTDIgY29wcm8gcG93ZXIgZG93biBpbiBMVEUgZmxpZ2h0IG1vZGUKKyAqIC4KKyAqCisgKiAwNyAxMiAyMDEzIHN0YW5sZXloeS5jaGVuCisgKiBbTU9MWTAwMDI5NjAyXSBbTmV3IEZlYXR1cmVdIE5CUl9DRUxMX0lORk8gYW5kIFRBX0lORk8gcmVsYXRlZCBpbnRlcmZhY2VzCisgKiBUQV9JTkZPIGFuZCBOQlJfQ0VMTF9JTkZPIGludGVyZmFjZXMgZm9yIExQUCBmZWF0dXJlCisgKgorICogMDUgMTUgMjAxMyBtb2phLmhzdQorICogW01PTFkwMDAwNzYyNV0gTWFpbnRhaW4gY29kZQorICogYWRkIGVsMiBtZXNzYWdlIGZvciBFUlQgdGFzayB0byBFUlQgSElTUi4KKyAqCisgKiAwMyAyMCAyMDEzIGplcmVteS5jaGVuCisgKiBbTU9MWTAwMDA3MTI3XSBbTVQ3MjA4XSBFTDIgZW5oYW5jZW1lbnQgaW4gTU9MWQorICogYWRkIElEQy1yZWxhdGVkIGludGVyZmFjZQorICoKKyAqIDAyIDI2IDIwMTMgamVyZW15LmNoZW4KKyAqIFtNT0xZMDAwMDcxMjddIFtNVDcyMDhdIEVMMiBlbmhhbmNlbWVudCBpbiBNT0xZCisgKiBhZGQgTVNHX0lEX0VSTENVTF9FUERDUF9TUkJfREFUQV9DTkYuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfRUwyX01TR0lEX0gKKyNkZWZpbmUgX0VMMl9NU0dJRF9ICisKKyNpZmRlZiBfX0VMMl9BUkNIX1YyX18gIAorI2luY2x1ZGUgIk1EOTcvX2VsMl9tc2dpZC5oIgorI2Vsc2UKKyNpbmNsdWRlICJNRDk1L19lbDJfbXNnaWQuaCIKKyNlbmRpZiAvKiBfX0VMMl9BUkNIX1YyX18gKi8KKworCisjZW5kaWYgLyogX0VMMl9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDJfdjJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsMl92Ml9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NTAzN2QKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbDJfdjJfbXNnaWQuaApAQCAtMCwwICsxLDQ1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9FTDJfVjJfTVNHSURfSAorI2RlZmluZSBfRUwyX1YyX01TR0lEX0gKKworI2lmZGVmIF9fRUwyX0FSQ0hfVjJfXworI2luY2x1ZGUgIk1EOTcvX2VsMl9tc2dpZC5oIgorI2Vsc2UKKyNpbmNsdWRlICJNRDk1L19lbDJfbXNnaWQuaCIKKyNlbmRpZgorCisjZW5kaWYgLyogX0VMMl9WMl9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbHRfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VsdF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYWFkYzcKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbHRfbXNnaWQuaApAQCAtMCwwICsxLDk0OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfRUxUX01TR19JRF9ICisjZGVmaW5lIF9FTFRfTVNHX0lEX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZJTEUgTkFNRSAgIDplbHRfbXNnaWQuaAorKgorKiBERVNDUklQVElPTiA6CisqCisqCisqCisqIEhJU1RPUlkgICAgIDoKKyogICAgIFNlZSBMb2cgYXQgZW5kIG9mIGZpbGUKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorI2luY2x1ZGUgImRvX3JtY19tc2dpZC5oIgorI2luY2x1ZGUgICJkb19jbGNfbXNnaWQuaCIKKworI3VuZGVmIE1TR0lEX1NFVAorI3VuZGVmIE1TR0lEX05FWFQKKworI2RlZmluZSBNU0dJRF9TRVQobmFtZSwgdmFsKSBuYW1lID0gdmFsICsgTVNHX0lEX0VMVF9DT0RFX0JFR0lOCisjZGVmaW5lIE1TR0lEX05FWFQobmFtZSkgbmFtZQorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FTFRfQ09ERV9CRUdJTiApCisgICAgLyoqKiAxeFJUVCBMTUQgKioqLworICAgIE1TR0lEX1NFVCggTVNHX0lEX1VUU19MTURfRldEX0ZDSF9DRkdfTVNHICwgMCksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0xNRF9SRVZfRkNIX0NGR19NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19MTURfU1ZDX0ZTQ0hfQ0ZHX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0xNRF9TVkNfUlNDSF9DRkdfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfTE1EX0ZXRF9UUkFGRklDX0JBRF9GUkFNRV9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19MTURfRldEX0ZFUl9TVEFUU19NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19MTURfRldEX1NUQVRTX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfTE1EX1REU09fRkNIX1JYX1NUQVRTX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0xNRF9URFNPX0ZDSF9UWF9TVEFUU19NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19MTURfVERTT19TVVBQX1RYX1NUQVRTX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0xNRF9URFNPX1NVUFBfUlhfU1RBVFNfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfTE1EX1REU09fU1VQUF9QRFVfUlhfU1RBVFNfTVNHKSwKKworICAgIC8qKiogMXhSVFQgUkxQICoqKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfWFJMUF9GV0RfRlJBTUVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfWFJMUF9SRVZfRlJBTUVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfWFJMUF9FVkVOVF9TVEFUU19NU0cpLAorCisgICAgLyoqKiAxeFJUVCBQU1cgKioqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19QU1dfTE9DX1RYX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX1BTV19MT0NfUlhfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfUEVfRVJJX1ZBTF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19QRV9RUENIX01FQVNfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfU0NDX1BTX1BLVF9IQVRfSFRfVE1SX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX1NDQ19QU19QS1RfWk9ORV9MSVNUX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX1BFX01TR19XQUlUSU5HX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX1BFX1NJR05BTF9JTkZPX1JFQ09SRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19QU1dfUkVQT1JUX0VWRU5UX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX1BTX1NNU19TVUNDX0JTX1NNU19BQ0tfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfU01TX0VUU19BUElfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfT1RBU1BfVVBEQVRFX0RBVEFfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfU1RBVEVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfUFNXX01FQVNVUkVNRU5UX1JFU1VMVF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19QU1dfSUdOT1JFX01BVENIRURfUEFHRV9QQVJBTV9NU0cpLAorCisgICAgLyoqKiBMMUQgKioqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19MMURfU0VBUkNIX1JFU1VMVFNfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfTDFEX1RYX1JFU1VMVFNfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfTDFEX1JQQ19SRVBPUlRfTVNHKSwKKworICAgIC8qUk1DIFNDSCBQSFkgVVQqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19STUNfU0VBUkNIX1JFU1VMVFNfQ0hFQ0tfTVNHKSwKKworICAgIC8qKiogSFdEICoqKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfSFdEX0ZSRVFfQ0hBTl9NU0cpLAorCisgICAgLyoqKiBFVkRPICoqKi8KKyAgICAvKiogRkNQICoqLworICAgIC8qIERTQUYgKi8KKyAgICAvL01TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9GQ1BfT0hEX01TRyksCisgICAgLy9NU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfRkNQX09UQV9NU0cpLAorICAgIC8vTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX0ZDUF9TTFBEX0hEUl9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9GQ1BfU05QX1JBV19EQVRBX01TRyksCisgICAgLyogUEFGICovCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX0ZDUF9QQUZfRFBBUkxQX1NUQVRfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfRkNQX1BBRl9NRlBBUkxQX1NUQVRfTVNHKSwKKworICAgIC8qIEZUTSAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9GQ1BfRFJDX1RBQkxFX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX0ZDUF9QQUNLRVRfUkVDX0NETV9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9GQ1BfUEVSRl9TVEFUX01TRyksCisKKyAgICAvKiBDQ00gKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ0NNX1NVUEVSVklTSU9OX0VYUElSRURfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NDTV9TVVBFUlZJU0lPTl9FWFBJUkVEX1JTUF9NU0cpLAorCisgICAgLyoqIFJDUCAqKi8KKyAgICAvKiBEU0FSICovCisgICAgLy9NU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfUkNQX09UQV9NU0cpLAorICAgIC8vTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX0ZDUF9TTFBEX0hEUl9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9SQ1BfU05QX1JBV19EQVRBX01TRyksCisgICAgLyogUEFSICovCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX1JDUF9QQVJfUkxQX1NUQVRfTVNHKSwKKyAgICAvKiBSVE0gKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfUkNQX1JUTTNfUEFDS0VUX0lORk9fU1RBVEVTX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX1JDUF9SVE0zX1NUQVRFU19NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9SQ1BfUlRNM19UMlBfU1RBVF9TVEFURVNfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfUkNQX1JUTV9HUkFOVDdfTVNHKSwKKyAgICAvKiBUWEggKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfUkNQX1RYQUdDX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX1JDUF9DUkNSRVNVTFRTX01TRyksCisKKyAgICAvKiogSExQIHNweSAqKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfSExQX1JNX0ZXRF9QUFBfRlJBTUVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfSExQX1JNX1JFVl9QUFBfRlJBTUVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfSExQX1VNX0ZXRF9QUFBfRlJBTUVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfSExQX1VNX1JFVl9QUFBfRlJBTUVfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfSExQX0ExMl9GV0RfUFBQX0ZSQU1FX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX0hMUF9BMTJfUkVWX1BQUF9GUkFNRV9NU0cpLAorCisgICAgLyoqIFJVUCAqKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfUk1DX1JVUF9QSUxPVF9TRUFSQ0hfU1RBVFVTX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX1JNQ19SVVBfUElMT1RfU0VUX1NUQVRVU19NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9SVVBfUElMT1RfU1VQRVJWSVNJT05fRVhQSVJFRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUlVQX1BJTE9UX1NVUEVSVklTSU9OX0VYUElSRURfUlNQX01TRyksCisKKyAgICAvKiogUk1DICoqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9STUNfRE9fUkZDX1JYVFhfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfUk1DX0ZNUF9NQUNfUE9TSVRJT05fTVNHKSwKKworICAgIC8qKiBDTEMgKiovCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX0NMQ19MM19TVEFURV9NU0cpLAorCisgICAgLyoqIFNMQyAqKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfU0xDX1NFU1NJT05fU1RBVEVfTVNHKSwKKworICAgIC8qKiBWQUwgKiovCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQX1ZBTF9HUFNfTE9DX1VQREFURV9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9WQUxfR1BTX1NFQVJDSF9FVkVOVF9NU0cpLAorCisgICAgLyogRFNQTShDUEgpIFRyYWNlIE9yIFNweSBNc2cqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX1VUU19DUEhfRlBDX0NPTkZJR19TUFlfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BIX0ZQQ19PVVRfTFBfU1BZX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfVVRTX0NQSF9TQ0hfRk5HUl9TVEFUVVNfU1BZX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BIX1JYX1RYX1BXUl9JTkZPX1NQWV9NU0cpLAorCisgICAgLyogVFJBQ0UgU1BZIGVuZCAqLworCisKKyAgICAvKiBFTFQgQ01EIGFuZCBSU1Agc3RhcnQgKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX0FMTF9EQVRBX0lOSVRfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1BPV0VSX0NUUkxfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX0dFVF9BTEVSVF9TVEFUVVNfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9HRVRfQUxFUlRfU1RBVFVTX1JTUF9NU0cpLAorCisgICAgLyoqIEhMUCB0cmFjZSAqKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9BQ1RfUFJPRklMRV9JRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9BQ1RfUFJPRklMRV9JRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9BQ1RfUFJPRklMRV9JRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9BQ1RfUFJPRklMRV9JRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9BTl9OQUlfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfQU5fTkFJX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX0FOX05BSV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9BTl9OQUlfUlNQX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9BTl9QQVNTV09SRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9BTl9QQVNTV09SRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9BTl9QQVNTV09SRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9BTl9QQVNTV09SRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9BTl9CSU5BUllfUEFTU1dPUkRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfQU5fQklOQVJZX1BBU1NXT1JEX1JTUF9NU0cpLAorCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfUU5DX0VOQUJMRURfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfUU5DX0VOQUJMRURfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfUU5DX0VOQUJMRURfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfUU5DX0VOQUJMRURfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfREFUQV9TT19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9EQVRBX1NPX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX0RBVEFfU09fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfREFUQV9TT19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9ET1JNQU5UX1RJTUVSX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX0RPUk1BTlRfVElNRVJfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfRE9STUFOVF9USU1FUl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9ET1JNQU5UX1RJTUVSX1JTUF9NU0cpLAorCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfSFNQRF9QUk9GSUxFX0RBVEFfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfSFNQRF9QUk9GSUxFX0RBVEFfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfSFNQRF9QUk9GSUxFX0RBVEFfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfSFNQRF9QUk9GSUxFX0RBVEFfUlNQX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9IU1BEX1NFQ1VSRV9TRUdfUFJPRklMRV9EQVRBX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX0hTUERfU0VDVVJFX1NFR19QUk9GSUxFX0RBVEFfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfSFNQRF9TRUNVUkVfU0VHX1BST0ZJTEVfQllURV9EQVRBX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX0hTUERfU0VDVVJFX1NFR19QUk9GSUxFX0JZVEVfREFUQV9SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX01JUF9CSU5BUllfUEFTU1dPUkRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfTUlQX0JJTkFSWV9QQVNTV09SRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9NSVBfQklOQVJZX1BBU1NXT1JEX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX01JUF9CSU5BUllfUEFTU1dPUkRfUlNQX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9SRUdfQkFDS09GRl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9SRUdfQkFDS09GRl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9SRUdfQkFDS09GRl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX1NFVF9SRUdfQkFDS09GRl9SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX05VTV9SRUdfUkVUUklFU19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9OVU1fUkVHX1JFVFJJRVNfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfTlVNX1JFR19SRVRSSUVTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX05VTV9SRUdfUkVUUklFU19SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX01JUF9NT0RFX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX01JUF9NT0RFX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX01JUF9NT0RFX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX01JUF9NT0RFX1JTUF9NU0cpLAorCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfTU5fSEFfQVVUSF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9NTl9IQV9BVVRIX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX01OX0hBX0FVVEhfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfTU5fSEFfQVVUSF9SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX05QS09JRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9OUEtPSURfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfTlBLT0lEX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX05QS09JRF9SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX05VTV9QUk9GSUxFX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX05VTV9QUk9GSUxFX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX05VTV9QUk9GSUxFX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX05VTV9QUk9GSUxFX1JTUF9NU0cpLAorCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfU0lQX05BSV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9TSVBfTkFJX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX1NJUF9OQUlfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfU0lQX05BSV9SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX1NJUF9EVU5fTkFJX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX1NJUF9EVU5fTkFJX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX1NJUF9EVU5fTkFJX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX1NJUF9EVU5fTkFJX1JTUF9NU0cpLAorCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9HRVRfU0lQX0JJTkFSWV9QQVNTV09SRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9TSVBfQklOQVJZX1BBU1NXT1JEX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX1NJUF9CSU5BUllfUEFTU1dPUkRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfU0lQX0JJTkFSWV9QQVNTV09SRF9SU1BfTVNHKSwKKworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfR0VUX0RBVEFfUFBQX1VNX0NPTkZJR19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSExQX0dFVF9EQVRBX1BQUF9VTV9DT05GSUdfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hMUF9TRVRfREFUQV9QUFBfVU1fQ09ORklHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9ITFBfU0VUX0RBVEFfUFBQX1VNX0NPTkZJR19SU1BfTVNHKSwKKworICAgIC8qTE1EIHRhc2sqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9MTURfQ0xFQVJfRkVSX0NNRF9NU0cpLAorICAgIC8vTVNHSURfTkVYVChNU0dfSURfRUxUX0xNRF9DTEVBUl9GRVJfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0xNRF9DTEVBUl9NQVJLT1ZfU1RBVFNfQ01EX01TRyksCisgICAgLy9NU0dJRF9ORVhUKE1TR19JRF9FTFRfTE1EX0NMRUFSX01BUktPVl9TVEFUU19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfTE1EX0NMRUFSX1REU09fU1RBVFNfQ01EX01TRyksCisgICAgLy9NU0dJRF9ORVhUKE1TR19JRF9FTFRfTE1EX0NMRUFSX1REU09fU1RBVFNfUlNQX01TRyksCisKKyAgICAvKiBQU1cgdGFzayAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfQ0FMTF9IQU5HVVBfQ01EX01TRyksCisgICAgLy9NU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX0NBTExfSEFOR1VQX1JTUF9NU0cpLG5vIHJzcAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfQ0xFQVJfTVJVX0NNRF9NU0cpLAorICAgIC8vTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19DTEVBUl9NUlVfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19HRVRfQ1VSUkVOVF9USU1FX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfR0VUX0NVUlJFTlRfVElNRV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX0dFVF9BQ1RJVkVfTkFNX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfR0VUX0FDVElWRV9OQU1fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19HRVRfUkVUUklFVkFCTEVfU1RBVElTVElDU19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX0dFVF9SRVRSSUVWQUJMRV9TVEFUSVNUSUNTX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfR0VUX1NQQ19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX0dFVF9TUENfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19HRVRfU1NEX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfR0VUX1NTRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX0dFVF9QX1JFVl9JTl9VU0VfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19HRVRfUF9SRVZfSU5fVVNFX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUkVBRF9SQVdfSU1TSV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1JFQURfUkFXX0lNU0lfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19TRUxFQ1RfQUNUSVZFX05BTV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFTEVDVF9BQ1RJVkVfTkFNX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfU0VUX1BLWklEX0hZU1RFUkVTSVNfVElNRVJfQ01EX01TRyksCisgICAgLy9NU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9QS1pJRF9IWVNURVJFU0lTX1RJTUVSX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfU0VUX1BSSVZBQ1lfTU9ERV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9QUklWQUNZX01PREVfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9WT0lDRV9QUklWQUNZX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfVk9JQ0VfUFJJVkFDWV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9SRVRSSUVWQUJMRV9TVEFUSVNUSUNTX0NNRF9NU0cpLAorICAgIC8vTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19TRVRfUkVUUklFVkFCTEVfU1RBVElTVElDU19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9TRVJWSUNFX09QVElPTl9DTURfTVNHKSwKKyAgICAvL01TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfU0VUX1NFUlZJQ0VfT1BUSU9OX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfU0VUX1NQQ19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9TUENfUlNQX01TRyksCisgICAgLyogTVNHX0lEX0VMVF9QU1dfR0VUX1NMT1RURURfTU9ERV9BTExPV0VEX0NNRF9NU0cpICovIC8qIEluY2x1ZGUgaW4gRUxUX1BTV19QQVJNX0dFVF9DTUQgKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX1NMT1RURURfTU9ERV9BTExPV0VEX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfU0xPVFRFRF9NT0RFX0FMTE9XRURfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19TVEFUVVNfUkVRVUVTVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NUQVRVU19SRVFVRVNUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfVEVTVF9NT0RFX0NNRF9NU0cpLAorICAgIC8vTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19URVNUX01PREVfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9BQ0NFU1NfT1ZFUkxPQURfQ0xBU1NfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9BQ0NFU1NfT1ZFUkxPQURfQ0xBU1NfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9DRE1BX1BSRUZfQU9SQl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX0NETUFfUFJFRl9BT1JCX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfRElTVEFOQ0VfQkFTRURfUEFSTVNfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9ESVNUQU5DRV9CQVNFRF9QQVJNU19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX0VOQ09ERURfTVNJRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX0VOQ09ERURfTVNJRF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX0VTTl9NRUlEX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfRVNOX01FSURfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9GT1JFSUdOX05JRF9SRUdfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9GT1JFSUdOX05JRF9SRUdfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9GT1JFSUdOX1NJRF9SRUdfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9GT1JFSUdOX1NJRF9SRUdfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9IT01FX1NZU19SRUdfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9IT01FX1NZU19SRUdfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9JTVNJX1MxX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfSU1TSV9TMV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX0lNU0lfUzJfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9JTVNJX1MyX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfTUROX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfTUROX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfTVNJRF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX01TSURfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QT1NJVElWRV9TSURfTklEX0xJU1RfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QT1NJVElWRV9TSURfTklEX0xJU1RfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVGX0hPTUVfTU9fU09fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVGX0hPTUVfTU9fU09fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVGX0hPTUVfTVRfU09fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVGX0hPTUVfTVRfU09fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVGX1JPQU1fTU9fU09fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVGX1JPQU1fTU9fU09fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9QUkVWX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfUFJFVl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX1BSTF9JTkZPX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfUFJMX0lORk9fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9TQ01fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9TQ01fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9TT19TVVBQT1JUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfU09fU1VQUE9SVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX1NJRF9OSURfTElTVF9TUF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX1NJRF9OSURfTElTVF9TUF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX1NMT1RfQ1lDTEVfSU5ERVhfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9TTE9UX0NZQ0xFX0lOREVYX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9HRVRfU1BDX0NIQU5HRV9FTkFCTEVfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9TUENfQ0hBTkdFX0VOQUJMRV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fR0VUX1NZU1RFTV9TRUxFQ1RfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX0dFVF9TWVNURU1fU0VMRUNUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfQUNDRVNTX09WRVJMT0FEX0NMQVNTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfQUNDRVNTX09WRVJMT0FEX0NMQVNTX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfQUtFWV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX0FLRVlfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9DRE1BX1BSRUZfQU9SQl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX0NETUFfUFJFRl9BT1JCX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfRU5DT0RFRF9NU0lEX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfRU5DT0RFRF9NU0lEX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfRk9SRUlHTl9OSURfUkVHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfRk9SRUlHTl9OSURfUkVHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfRk9SRUlHTl9TSURfUkVHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfRk9SRUlHTl9TSURfUkVHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfSE9NRV9TWVNfUkVHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfSE9NRV9TWVNfUkVHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfSU1TSV9TMV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX0lNU0lfUzFfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9JTVNJX1MyX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfSU1TSV9TMl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX01ETl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX01ETl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX01TSURfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9NU0lEX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUE9TSVRJVkVfU0lEX05JRF9MSVNUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUE9TSVRJVkVfU0lEX05JRF9MSVNUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFRl9IT01FX01PX1NPX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFRl9IT01FX01PX1NPX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFRl9IT01FX01UX1NPX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFRl9IT01FX01UX1NPX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFRl9ST0FNX01PX1NPX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFRl9ST0FNX01PX1NPX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfUFJFVl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX1BSRVZfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9TQ01fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9TQ01fUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9TT19TVVBQT1JUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfU09fU1VQUE9SVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX1NJRF9OSURfTElTVF9TUF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX1NJRF9OSURfTElTVF9TUF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX1NMT1RfQ1lDTEVfSU5ERVhfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9TTE9UX0NZQ0xFX0lOREVYX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfUEFSTV9TRVRfU1BDX0NIQU5HRV9FTkFCTEVfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9TUENfQ0hBTkdFX0VOQUJMRV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1BBUk1fU0VUX1NZU1RFTV9TRUxFQ1RfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19QQVJNX1NFVF9TWVNURU1fU0VMRUNUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfR0VUX0NQX0JDX1RPX0NETUFfQkNfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19HRVRfQ1BfQkNfVE9fQ0RNQV9CQ19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9JTVNJX01fVkFMSURfU1RBVFVTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfU0VUX0lNU0lfTV9WQUxJRF9TVEFUVVNfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19OU1RfUE9XRVJVUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfTlNUX1RSQU5TTUlUX1RDSF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfTlNUX0VYSVRfVEVTVF9NT0RFX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19OU1RfUlhfUFdSX1JFUV9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QU1dfTlNUX1RYX1BXUl9MRVZFTF9TRVRfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUFNXX1NFVF9NT0JJTEVfSURfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BTV19TRVRfTU9CSUxFX0lEX1JTUF9NU0cpLAorCisgICAgLyogQ0xDIFRBU0sgU1RBUlQgKi8KKyAgICAvKiBtc2cgZm9yIFVUUyAqLworICAgIE1TR19JRF9FTFRfQ0xDX0lOSVRBQ1FfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19JTklUQUNRX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfR0VUX0wzX1NUQVRVU19DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0dFVF9MM19TVEFUVVNfUlNQX01TRywKKworICAgIE1TR19JRF9FTFRfQ0xDX0RPX0VIUlBEX01PREVfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRUhSUERfTU9ERV9HRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19ET19FSFJQRF9NT0RFX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX0VIUlBEX01PREVfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRVhUX1NMT1RfQ1lDTEVfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRVhUX1NMT1RfQ1lDTEVfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRVhUX1NMT1RfQ1lDTEVfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRVhUX1NMT1RfQ1lDTEVfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRk9SQ0VfUjBfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRk9SQ0VfUjBfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRk9SQ0VfUjBfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRk9SQ0VfUjBfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRlRfTUFDX0RSQ19HQVRJTkdfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRlRfTUFDX0RSQ19HQVRJTkdfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRlRfTUFDX0RSQ19HQVRJTkdfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fRlRfTUFDX0RSQ19HQVRJTkdfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fSFlCUklEX01PREVfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fSFlCUklEX01PREVfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fSFlCUklEX01PREVfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fSFlCUklEX01PREVfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fTFVQX1VOU09MSUNJVEVEX0dFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX0xVUF9VTlNPTElDSVRFRF9HRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19ET19MVVBfVU5TT0xJQ0lURURfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fTFVQX1VOU09MSUNJVEVEX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX05PVF9ESVNUVVJCX0dFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX05PVF9ESVNUVVJCX0dFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX05PVF9ESVNUVVJCX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX05PVF9ESVNUVVJCX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1BSRUZfQ0NfQ1lDTEVfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fUFJFRl9DQ19DWUNMRV9HRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19ET19QUkVGX0NDX0NZQ0xFX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1BSRUZfQ0NfQ1lDTEVfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fUFJFRl9NT0RFX0dFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1BSRUZfTU9ERV9HRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19ET19QUkVGX01PREVfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fUFJFRl9NT0RFX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1JYX0RJVkVSU0lUWV9DVFJMX0dFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1JYX0RJVkVSU0lUWV9DVFJMX0dFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1JYX0RJVkVSU0lUWV9DVFJMX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1JYX0RJVkVSU0lUWV9DVFJMX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1NUUkVBTV9DT05GSUdfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfRE9fU1RSRUFNX0NPTkZJR19HRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19ET19TVFJFQU1fQ09ORklHX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0RPX1NUUkVBTV9DT05GSUdfU0VUX1JTUF9NU0csCisKKyAgICBNU0dfSURfRUxUX0NMQ19JRFBfRE9fU1lTX1NUQVRVU19HRVRfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19JRFBfRE9fU1lTX1NUQVRVU19HRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19JRFBfU0xPVFRFRF9NT0RFX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0lEUF9TTE9UVEVEX01PREVfU0VUX1JTUF9NU0csCisgICAgLyptc2cgZm9yIGludGVybmFsIHVzZS4qLworICAgIE1TR19JRF9FTFRfQ0xDX0FMTVBfT1BFTl9DT05OX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfQUxNUF9PUEVOX0NPTk5fUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19BTE1QX1JFTF9DT05OX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfQUxNUF9SRUxfQ09OTl9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQ0xDX0lEUF9IQU5ET0ZGX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfSURQX0hBTkRPRkZfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19OU1RfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19OU1RfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19DT05OUkVRX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DTENfQ09OTlJFUV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfT01QX1NVUEVSVklTSU9OX0VYUElSRURfQ01EX01TRywKKyAgICAvKiBDTEMgVEFTSyBFTkQgKi8KKworICAgIC8qIFNMQyBUQVNLIFNUQVJUICovCisgICAgTVNHX0lEX0VMVF9TTENfU1RBVEVfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9TTENfU1RBVEVfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9TTENfU01QX1NFU1NJT05fQ0xPU0VfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1NMQ19TTVBfU0VTU0lPTl9DTE9TRV9SU1BfTVNHLAorICAgIC8qIFNMQyBUQVNLIEVORCAqLworCisgICAgLyogUk1DIFJVUCBFTFQgcmVsYXRlZCAqLworICAgIE1TR19JRF9FTFRfUlVQX1RDQV9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUlVQX1RDQV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfUk1DX0lOVFJBX0lIT19NU0csCisKKyNpZiAoZGVmaW5lZChNVEtfUExUX09OX1BDX0lUKSl8fChkZWZpbmVkKE1US19DMktfTDFfVFNUKSkKKyAgICAvKiBQSFkgVVQgdGVzdCAqLworICAgIE1TR19JRF9FTFRfQzJLX1BIWVVUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9DMktfUEhZVVRfUlBUX01TRywKKyAgICBNU0dfSURfRUxUX0MyS19MMV9VVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQzJLX0wxX1VUX1JQVF9NU0csCisjZW5kaWYKKworI2lmZGVmIE1US19QTFRfT05fUENfSVQKKyAgICBNU0dfSURfRUxUX1JNQ19FRlVTRV9DRkdfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19FRlVTRV9DRkdfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0wxX0RPX0VGVVNFX1NZTkNfQ0hFQ0tfTVNHLAorICAgIE1TR19JRF9FTFRfTDFfRE9fRUZVU0VfRk1QX0NIRUNLX01TRywKKyAgICBNU0dfSURfRUxUX0wxX0RPX0VGVVNFX0VSUl9DSEVDS19NU0csCisjZW5kaWYKKworICAgIE1TR19JRF9FTFRfQzJLX1BIWVVUX1JYX0NBU0VfUlBUX01TRywKKyAgICBNU0dfSURfRUxUX0ZDUF9GSVhfRFJDVkFMX01TRywKKworICAgIE1TR19JRF9FTFRfUk1DX1BPV0VSX01PREVfVEVTVF9NT0RFX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfUE9XRVJfTU9ERV9URVNUX01PREVfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19SU1NJX1BPV0VSX01PREVfUVVFUllfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19SU1NJX1BPV0VSX01PREVfUVVFUllfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19SWF9ESVZfQ1RSTF9NU0csCisgICAgTVNHX0lEX0VMVF9SRVNVTFRfQ0hFQ0tfUkVTUF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfTU9ESUZZX0ZPRV9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUk1DX01PRElGWV9GT0VfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19GT0VfUVVFUllfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19GT0VfUVVFUllfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JVUF9DTENfREZTX1NFVFRJTkdTX01TRywKKyAgICBNU0dfSURfRUxUX1JVUF9JRFBfREZTX1NUQVJUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SVVBfSURQX0RGU19BQk9SVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUk1DX0RPX0RGU19TRVJWQ0hfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19ET19ERlNfU0VSVkNIX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfVEVTVF9ET19TRVRfREZTX0NIQ05UX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfVEVTVF9ET19TRVRfREZTX0NIQ05UX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfRE9fSU5UUkFfTUVBU19DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUk1DX0RPX0lOVFJBX01FQVNfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19SVVBfREZTX1NUQVJUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfUlVQX0RGU19BQk9SVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUk1DX01NQUZDX1NUQVRFX1FVRVJZX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfTU1BRkNfU1RBVEVfUVVFUllfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NTTV9URVNUX0NFTExfU1dJVENIX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19TRVRfRklYRURfRFJDX01TRywKKwlNU0dfSURfRUxUX1JNQ19TRVRfRFJDX1JBTkdFX01TRywKKyAgICAvKiBSRiB0ZXN0ICovCisgICAgTVNHX0lEX0VMVF9HRVRfUkZfUExBVF9JTkZPX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9HRVRfUkZfUExBVF9JTkZPX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9SRkRfVEVTVF9NT0RFX1JFUV9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUkZEX1RFU1RfTU9ERV9SRVFfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JGRF9JTklUX1JFUV9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUkZEX0lOSVRfUkVRX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9TRVRfTUlQSV9DV19DTURfTVNHLAorICAgIE1TR19JRF9FTFRfU0VUX01JUElfQ1dfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0dFVF9NSVBJX0NXX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9HRVRfTUlQSV9DV19SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfU0VUX1NQSV9EQVRBX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9TRVRfU1BJX0RBVEFfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0dFVF9TUElfREFUQV9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfR0VUX1NQSV9EQVRBX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9TRVRfVFBDX01JUElfQ1dfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1NFVF9UUENfTUlQSV9DV19SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfR0VUX1RQQ19NSVBJX0NXX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9HRVRfVFBDX01JUElfQ1dfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1RSQU5TTUlUX0NUUkxfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1RSQU5TTUlUX0NUUkxfQ01EX1BIWVVUX01TRywKKyAgICBNU0dfSURfRUxUX1RSQU5TTUlUX0NUUkxfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX01FVEFfVFJBTlNNSVRfQ1RSTF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUkVDRUlWRV9DVFJMX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SRUNFSVZFX0NUUkxfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0FGQ19DT05GSUdfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX0FGQ19DT05GSUdfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1RYX0FHQ19DT05GSUdfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1RYX0FHQ19DT05GSUdfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1RYX1BPV0VSX1FVRVJZX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9UWF9QT1dFUl9RVUVSWV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfQUdDX0NPTkZJR19DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfQUdDX0NPTkZJR19SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfUlNTSV9RVUVSWV9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfUlNTSV9RVUVSWV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfU05SX1FVRVJZX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SWF9TTlJfUVVFUllfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JYX0VDX0lPX1FVRVJZX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SWF9FQ19JT19RVUVSWV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQUZDX0NBTF9EQVRBX1NFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQUZDX0NBTF9EQVRBX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfQUZDX0NBTF9EQVRBX0dFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfQUZDX0NBTF9EQVRBX0dFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfQ0FMX0RBVEFfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SWF9DQUxfREFUQV9TRVRfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JYX0NBTF9EQVRBX0dFVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfQ0FMX0RBVEFfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9UWF9DQUxfREFUQV9TRVRfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1RYX0NBTF9EQVRBX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFhfQ0FMX0RBVEFfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9UWF9DQUxfREFUQV9HRVRfUlNQX01TRywKKyNpZm5kZWYgX19NRDkzX18KKyAgICBNU0dfSURfRUxUX1JYX0xOQV9QV1JfUkFOR0VfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SWF9MTkFfUFdSX1JBTkdFX0dFVF9SU1BfTVNHLAorI2VuZGlmCisjaWYgKCFkZWZpbmVkKF9fTUQ5M19fKSkgJiYgKCFkZWZpbmVkKF9fTUQ5NV9fKSkKKyAgICBNU0dfSURfRUxUX1JYX0dBSU5fR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9SWF9HQUlOX0dFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFhfR0FJTl9HRVRfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1RYX0dBSU5fR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9TRVRfQlBJX0RBVEFfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1NFVF9CUElfREFUQV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfR0VUX0JQSV9EQVRBX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9HRVRfQlBJX0RBVEFfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX1JYX0FHQ19GSVhfTUFOVUFMX0NPTkZJR19DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUlhfQUdDX0ZJWF9NQU5VQUxfQ09ORklHX1JTUF9NU0csCisjZW5kaWYKKyAgICBNU0dfSURfRUxUX0ZIQ19TVEFSVF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfRkhDX1NUQVJUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9URU1QX0JBQ0tPRkZfU0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9URU1QX0JBQ0tPRkZfU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9URU1QX0JBQ0tPRkZfR0VUX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9URU1QX0JBQ0tPRkZfR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9SQ1BfVFhfQUdDX0NUUkxfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX0wxRF9UWF9BR0NfQ1RSTF9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfTDFEX1RYX0FHQ19DVFJMX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9MMURfQ0ZTX0NPTVBMRVRFX01TRywgICAgCisgICAgTVNHX0lEX0VMVF9MMURfTUlOSUFDUV9GQUlMX01TRywKKyAgICBNU0dfSURfRUxUX1RYREZFX0JCX1RPTkVfQ0ZHX0NNRF9NU0csCisgICAgTVNHX0lEX0VMVF9UWERGRV9CQl9UT05FX0NGR19SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFhERkVfQkJfTkNPX0NGR19SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFhERkVfQkJfTkNPX0NGR19DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUkNQX1RYX0FHQ19DVFJMX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9STUNfSUNTX1RTVF9DQVNFSURfQ0ZHX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19JQ1NfVFNUX0NIRUNLUlBUX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19ERlNfTUVBU19ET05FX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19JTlRFUkhPX1RTVF9DRkdfTVNHLAorICAgIE1TR19JRF9FTFRfUk1DX0lOVFJBSE9fVFNUX0NGR19NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfU1RCX0RPU0lHTkFMX0NGR19NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfU1RCX1RJTUlOR19DRkdfTVNHLAorICAgIE1TR19JRF9FTFRfQ0wxRF9SRl9UU1RfQ0FTRV9NU0csCisgICAgTVNHX0lEX0VMVF9DTDFEX1JGX1RTVF9DQVNFX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9DTDFEX1JGX1RTVF9SWF9DQVNFX01TRywKKyAgICBNU0dfSURfRUxUX0NMMURfUkZfVFNUX1RYREZFX0NBU0VfTVNHLAorICAgIE1TR19JRF9FTFRfQ0wxRF9SRl9UU1RfVFhERkVfUkVTVUxUX0NIRUNLX01TRywKKyAgICBNU0dfSURfRUxUX0NMMURfUkZfVFNUX1JYX1JFU1VMVF9DSEVDS19NU0csCisgICAgTVNHX0lEX0VMVF9DTDFEX1JGX1RTVF9UWF9DQVNFX01TRywKKyAgICBNU0dfSURfRUxUX0NMMURfUkZfVFNUX1RYX1JFU1VMVF9DSEVDS19NU0csCisgICAgTVNHX0lEX0VMVF9STUNfUlhfVFhfQUNUX1NMT1RfUVVFUllfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1JNQ19SWF9UWF9BQ1RfU0xPVF9RVUVSWV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFNUX1JYX0FOVEVOTkFfVEVTVE1PREVfU0VUX01TRywKKyAgICBNU0dfSURfRUxUX1RTVF9SWF9BTlRFTk5BX1RFU1RNT0RFX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFNUX0FUX1NJTV9SWF9SU1NJX01TRywKKyAgICBNU0dfSURfRUxUX1RTVF9BVF9TSU1fUlhfUlNTSV9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfVFNUX1RFTVBfUkVBRF9NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfVEVNUF9SRUFEX1JTUF9NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfTUNEX0RFQlVHX01TRywKKyAgICBNU0dfSURfRUxUX1RTVF9DVUlGX0NGR19NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfU0xFRVBfQ1RSTF9NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfQ0ZHX01TRywKKyAgICBNU0dfSURfRUxUX1RTVF9SU1BfTVNHLAorICAgIE1TR19JRF9FTFRfU0VUX1NUQk9OTFlfTU9ERV9NU0csCisgICAgTVNHX0lEX0VMVF9UU1RfUkNfQ1RSTF9NU0csCisgICAgLyogSFNDIHRhc2sqLworICAgIE1TR19JRF9FTFRfUkJTX0RFTllfUEFUVEVSTl9DT05GSUdfSU5ELAorICAgIE1TR19JRF9FTFRfSFNDX1NIRFJfRU5BQkxFX0NPTkZJRywKKyAgICBNU0dfSURfRUxUX0hTQ19QUkVFTVBUX1RSSUdfQ09ORklHX0lORCwKKyAgICBNU0dfSURfRUxUX0xMMUFfTFRFX0FDVElWRV9DT05GSUdfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX1JCU19TQ0VOQVJJT19DT05UUk9MX0NPTkZJR19JTkRfTVNHLAorICAgIE1TR19JRF9FTFRfUkJTX1NDRU5BUklPX0NPTlRST0xfVFJJR0dFUkVEX0lORF9NU0csCisgICAgTVNHX0lEX0VMVF9SQlNfU0NFTkFSSU9fQ09OVFJPTF9SUFRfSU5EX01TRywKKyAgICBNU0dfSURfRUxUX0xMMUFfU1RBTkRCWV9HQVBfTEVOR1RIX0lORF9NU0csCisKKyAgICAvKiBSQ1AgdGFzayovCisgICAgTVNHX0lEX0VMVF9SQ1BfQUNDX1JUQl9DTURfTVNHLAorICAgIE1TR19JRF9FTFRfUkNQX0FDQ19SVEJfUlNQX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19BTE1QX1JFTF9DT05OX1NIRFJfQ01EX01TRywKKyAgICBNU0dfSURfRUxUX0NMQ19BTE1QX1JFTF9DT05OX1NIRFJfUlNQX01TRywKKworICAgLyogVGVzdCBtZXNzYWdlKi8KKyAgICBNU0dfSURfRUxUX0wxX0lUX1NURVBfUEFTU19NU0csCisgICAgTVNHX0lEX0VMVF9MMV9JVF8xWFNZTkNfUEFTU19NU0csCisjaWYgIWRlZmluZWQoTVRLX1BMVF9PTl9QQykKKyAgICBNU0dfSURfRUxUX0wxRF9FRlVTRV9NU0csCisjZW5kaWYKKyAgICAvKiBDU1MgdGFzayAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfREJNX0lOSVRfTlZSQU1fVE9fREVGQVVMVF9DTURfTVNHKSwgLyogcnNwIG1zZyBub3QgbmVlZGVkICovCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19URVNUX0NGR19DTURfTVNHKSwgLyogcnNwIG1zZyBub3QgbmVlZGVkICovCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU18xWF9DTEVBUl9NUlVfQ01EX01TRyksIC8qIHJzcCBtc2cgbm90IG5lZWRlZCAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfRE9fQ0xFQVJfTVJVX0NNRF9NU0cpLCAvKiByc3AgbXNnIG5vdCBuZWVkZWQgKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX0dFVF9QUkxfSURfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19HRVRfUFJMX0lEX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfT09TQV9TRVRfUEFSTVNfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX1NFVF9QQVJNU19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX09PU0FfR0VUX1BBUk1TX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfT09TQV9HRVRfUEFSTVNfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX1NFVF9FTkFCTEVfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX1NFVF9FTkFCTEVfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX0dFVF9FTkFCTEVfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX0dFVF9FTkFCTEVfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX1NFVF9OVU1fUEhBU0VTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfT09TQV9TRVRfTlVNX1BIQVNFU19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX09PU0FfR0VUX05VTV9QSEFTRVNfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX0dFVF9OVU1fUEhBU0VTX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfT09TQV9TRVRfQ1VSUkVOVF9TVEFHRV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX09PU0FfU0VUX0NVUlJFTlRfU1RBR0VfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19PT1NBX0dFVF9DVVJSRU5UX1NUQUdFX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfT09TQV9HRVRfQ1VSUkVOVF9TVEFHRV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX0dFVF9NQ0NfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19HRVRfTUNDX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfR0VUX0VSSV9WRVJTSU9OX05VTUJFUl9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX0dFVF9FUklfVkVSU0lPTl9OVU1CRVJfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19TRVRfUEFSTV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1NTX1NFVF9QQVJNX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DU1NfR0VUX1BBUk1fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NTU19HRVRfUEFSTV9SU1BfTVNHKSwKKyAgICAvKiBDU1MgdGFzayBlbmQgKi8KKworICAgIC8qIERTUE0oQ1BIKSBDbWQgYW5kIFJzcCBNc2cqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DUEhfRldEX0NITkxfU0NSQU1CTEVfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0NQSF9GV0RfQ0hOTF9TQ1JBTUJMRV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQ1BIX1RYQUdDX0NMT1NFRF9MT09QX1NUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DUEhfVFhBR0NfQ0xPU0VEX0xPT1BfU1RfUlNQX01TRyksCisKKworICAgIC8qIEdQUyAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfTE9DX1RDUF9DT05OX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfTE9DX1RDUF9DT05OX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfTE9DX1RDUF9DTE9TRV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0xPQ19UQ1BfQ0xPU0VfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19OTUVBX0NGR19TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19OTUVBX0NGR19TRVRfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19OTUVBX0NGR19HRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19OTUVBX0NGR19HRVRfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19PUEVOX0RFVklDRV9IV19JTklUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfT1BFTl9ERVZJQ0VfSFdfSU5JVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0NMT1NFX0RFVklDRV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0NMT1NFX0RFVklDRV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1BPU0lUSU9OX0dFVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1BPU0lUSU9OX0dFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1NUQVJUX0ZJWF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1NUQVJUX0ZJWF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1FVRVJZX0ZJWF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1FVRVJZX0ZJWF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1NUT1BfRklYX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfU1RPUF9GSVhfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19DT05GSUdfRklYX01PREVfU0VUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQ09ORklHX0ZJWF9NT0RFX1NFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0NPTkZJR19GSVhfUkFURV9TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19DT05GSUdfRklYX1JBVEVfU0VUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQ09ORklHX1FPU19TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19DT05GSUdfUU9TX1NFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1dSSVRFX1NFUlZFUl9DT05GSUdfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19XUklURV9TRVJWRVJfQ09ORklHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfUkVBRF9TRVJWRVJfQ09ORklHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfUkVBRF9TRVJWRVJfQ09ORklHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfRU5BQkxFX1NFQ1VSSVRZX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfRU5BQkxFX1NFQ1VSSVRZX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfV1JJVEVfU0VDVVJJVFlfQ09ORklHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfV1JJVEVfU0VDVVJJVFlfQ09ORklHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfUkVBRF9TRUNVUklUWV9DT05GSUdfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19SRUFEX1NFQ1VSSVRZX0NPTkZJR19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFQURfU0VDVVJJVFlfQ09ORklHX1dfU1RBVFVTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfUkVBRF9TRUNVUklUWV9DT05GSUdfV19TVEFUVVNfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19SRUFEX0VOQ1JZUFRfQ09ORklHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfUkVBRF9FTkNSWVBUX0NPTkZJR19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFQURfRU5DUllQVF9DT05GSUdfV19TVEFUVVNfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19SRUFEX0VOQ1JZUFRfQ09ORklHX1dfU1RBVFVTX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfTEJTX1BSSVZBQ1lfU0VUVElOR19HRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19MQlNfUFJJVkFDWV9TRVRUSU5HX0dFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0xCU19QUklWQUNZX1NFVFRJTkdfU0VUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfTEJTX1BSSVZBQ1lfU0VUVElOR19TRVRfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19CQVNFU1NEX0dFVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0JBU0VTU0RfR0VUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQkFTRVNTRF9TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19CQVNFU1NEX1NFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0NUX01QQ19VU0VSTk1FX1BTV1JEX0NGR19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0NUX01QQ19VU0VSTk1FX1BTV1JEX0NGR19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1RFU1RfTU9ERV9TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19URVNUX01PREVfU0VUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfU1RBUlRfTU9ERV9TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19TVEFSVF9NT0RFX1NFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTTEJTX1NUQVRFX0dFVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTTEJTX1NUQVRFX0dFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JBTkRfUEVSSU9EX1NFVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JBTkRfUEVSSU9EX1NFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFU0VUX0FTU0lTVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFU0VUX0FTU0lTVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFU1RBUlRfRklYX0NNRF9NU0cpICwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFU1RBUlRfRklYX1JTUF9NU0cpICwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1NFQ19TRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19TRUNfU0VUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQ09ORklHX1RFQ0hfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19DT05GSUdfVEVDSF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUEdQU19DRkdfU0VUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QR1BTX0NGR19TRVRfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1BHUFNfQ0ZHX0dFVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfUEdQU19DRkdfR0VUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QR1BTX1NUQVJUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9QR1BTX1NUQVJUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfV1JJVEVfT0ZGU0VUX0lORk9fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19XUklURV9PRkZTRVRfSU5GT19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX1JFQURfT0ZGU0VUX0lORk9fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19SRUFEX09GRlNFVF9JTkZPX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfTk1FQV9PVVRQVVRfU0VUVElOR19DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX05NRUFfT1VUUFVUX1NFVFRJTkdfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19DT05GSUdfRklYX1JBVEVfR0VUX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQ09ORklHX0ZJWF9SQVRFX0dFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0NUX01QQ19JUF9DRkdfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19DVF9NUENfSVBfQ0ZHX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQ1BfVkFMX01QQ19NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfQ1BfTE9DX1JFU1BfTVNHKSwJCisJTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19MT0NfU1RBVEVfTVNHKSwKKworICAgIC8qTEVDKi8KKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfTEVDX1RTVF9HUFNfUEdQU19PTl9PRkZfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0xFQ19UU1RfR1BTX1BHUFNfT05fT0ZGX1JTUF9NU0cpLAorCisKKyAgICAvKiBVSSAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9HRVRfQVVUT19BTlNXRVJfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9QQVJNX0dFVF9BVVRPX0FOU1dFUl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fR0VUX0FVVE9fUkVESUFMX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9HRVRfQVVUT19SRURJQUxfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9QQVJNX0dFVF9EVE1GX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9HRVRfRFRNRl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fR0VUX0xPQ0tfQ09ERV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fR0VUX0xPQ0tfQ09ERV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fR0VUX1ZPSUNFX1BSSVZBQ1lfQUxFUlRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9QQVJNX0dFVF9WT0lDRV9QUklWQUNZX0FMRVJUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9TRVRfQVVUT19BTlNXRVJfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9QQVJNX1NFVF9BVVRPX0FOU1dFUl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fU0VUX0FVVE9fUkVESUFMX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9TRVRfQVVUT19SRURJQUxfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9QQVJNX1NFVF9EVE1GX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9TRVRfRFRNRl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fU0VUX0xPQ0tfQ09ERV9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fU0VUX0xPQ0tfQ09ERV9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fU0VUX1ZPSUNFX1BSSVZBQ1lfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9QQVJNX1NFVF9WT0lDRV9QUklWQUNZX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfUEFSTV9TRVRfVk9JQ0VfUFJJVkFDWV9BTEVSVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1VJX1BBUk1fU0VUX1ZPSUNFX1BSSVZBQ1lfQUxFUlRfUlNQX01TRyksCisKKyAgICAvKiBOT1cgaXMgVkFMLG5leHQgd2lsbCBiZSBtb3ZlIHRvIFVJICovCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9VSV9DUF9ESVNQTEFZX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfVUlfQ1BfS0VZX1BSRVNTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfU0VUX1NNU19DSF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1NFVF9TTVNfQ0hfUlNQX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1NNU19ERUxfQUxMX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfU01TX0RFTF9BTExfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfREVMX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfU01TX0RFTF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1NNU19HRVRfRklSU1RfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfR0VUX0ZJUlNUX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfU01TX0dFVF9DT1VOVF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1NNU19HRVRfQ09VTlRfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfR0VUX05FWFRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfR0VUX05FWFRfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfU0VORF9JTkRFWF9DTURfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1NNU19TRU5EX0lOREVYX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfU01TX1NFTkRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfU0VORF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVkFMX1NNU19TRVRfU1RBVFVTX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9WQUxfU01TX1NFVF9TVEFUVVNfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfV1JJVEVfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1ZBTF9TTVNfV1JJVEVfUlNQX01TRyksCisKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfTDFEX1RTVF9ESUFHX01PTklUT1JfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0wxRF9UU1RfRElBR19NT05JVE9SX1JTUF9NU0cpLAorCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hXRF9UU1RfUExMX0NIQU5ORUxfQ09ORklHX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9IV0RfVFNUX1BMTF9DSEFOTkVMX0NPTkZJR19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfSFdEX1RTVF9QTExfQ0hBTk5FTF9HRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0hXRF9UU1RfUExMX0NIQU5ORUxfR0VUX1JTUF9NU0cpLAorICAgIC8qIFJDUCAqLworICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9SQ1BfUlRNX1RFU1RfVFhDSEFOU1RBVF9HRVRfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1JDUF9SVE1fVEVTVF9UWENIQU5TVEFUX0dFVF9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfU1lTX0MyS19GUkNfU1lOQyksCisgICAgLyogRVRTICovCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0MyS19WRVJTSU9OX0NNRF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DMktfVkVSU0lPTl9SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfVUlNX1NFVF9GQUNUT1JZX01PREVfUlNQX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX1VJTV9HRVRfRkFDVE9SWV9NT0RFX1JTUF9NU0cpLAorICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9DMktfTE9PUEJBQ0tfQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0MyS19MT09QQkFDS19SU1BfTVNHKSwKKyAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfQzJLX0NPTkZJR1VSQVRJT05fQ01EX01TRyksCisgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX0MyS19DT05GSUdVUkFUSU9OX1JTUF9NU0cpLAorICAgIAorCU1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9WQUxfR1BTX1NFU1NfRVZFTlRfTVNHKSwKKwlNU0dJRF9ORVhUKE1TR19JRF9VVFNfQ1BfVkFMX0dQU19MT0NfUkVTUF9NU0cpLAorCU1TR0lEX05FWFQoTVNHX0lEX1VUU19DUF9WQUxfR1BTX0NQX0xPQ19SRVNQX01TRyksCisJTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19JUzgwMV9GTE9XX01TX1JTUF9NU0cpLAorCU1TR0lEX05FWFQoTVNHX0lEX0VMVF9HUFNfSVM4MDFfRkxPV19NU19SRVFfTVNHKSwKKwlNU0dJRF9ORVhUKE1TR19JRF9FTFRfR1BTX0lTODAxX0ZMT1dfQlNfUkVRX01TRyksCisJTVNHSURfTkVYVChNU0dfSURfRUxUX0dQU19JUzgwMV9GTE9XX0JTX1JTUF9NU0cpLAorCisJTVNHX0lEX0VMVF9MMURfR0VUX0FHUFNfR1JPVVBfREVMQVlfQ01EX01TRywKKwlNU0dfSURfRUxUX0wxRF9HRVRfQUdQU19HUk9VUF9ERUxBWV9SU1BfTVNHLAorCU1TR19JRF9FTFRfTDFEX1NFVF9BR1BTX0dST1VQX0RFTEFZX0NNRF9NU0csCisJTVNHX0lEX0VMVF9MMURfU0VUX0FHUFNfR1JPVVBfREVMQVlfUlNQX01TRywKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRUxUX0NPREVfVEFJTCApCisKKworI3VuZGVmIE1TR0lEX1NFVAorI3VuZGVmIE1TR0lEX05FWFQKKworI2RlZmluZSBNU0dJRF9TRVQobmFtZSwgdmFsKSBuYW1lID0gdmFsICsgTVNHX0lEX0VMVF9PVEFfQ09ERV9CRUdJTgorI2RlZmluZSBNU0dJRF9ORVhUKG5hbWUpIG5hbWUKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0VMVF9PVEFfQ09ERV9CRUdJTiApCisgICAgIE1TR0lEX1NFVCggTVNHX0lEX0VMVF9PVEFfQ09ERV9TVEFSVCwgMCksCisgICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9PVEFfQ1BfUEVfRU5HX0xBWUVSMl9UUl8xM18xMyksCisgICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9PVEFfQ1BfUEVfRU5HX1BBR0VfVFJfMjBfNTIpLAorICAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfT1RBX0NQX1BFX0VOR19DUF9UUl8yM180KSwKKyAgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX09UQV9DUF9QRV9FTkdfTEFZRVIyX1RSXzEzXzU3KSwKKyAgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX09UQV9DUF9MT0NBVElPTl9JUzgwMV9NU0cpLAorICAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfT1RBX0NQX1BFX0VOR19BQ0NFU1NfUFJPQ19UUl8xXzQwKSwKKyAgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX09UQV9DUF9QRV9FTkdfUlRDX1RSXzI5XzM0KSwKKyAgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX09UQV9DUF9QRV9FTkdfTEFZRVIyX1RSXzEzXzE1KSwKKworICAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfT1RBX0NQX0ZDUF9PSERfTVNHKSwKKyAgICAgTVNHSURfTkVYVChNU0dfSURfRUxUX09UQV9DUF9GQ1BfT1RBX01TRyksCisgICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9PVEFfQ1BfRkNQX1NMUERfQUNLX01TRyksCisgICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9PVEFfQ1BfUkNQX1NMUERfQUNLX01TRyksCisgICAgIE1TR0lEX05FWFQoTVNHX0lEX0VMVF9PVEFfQ1BfUkNQX09UQV9NU0cpLAorICAgICBNU0dJRF9ORVhUKE1TR19JRF9FTFRfT1RBX0NPREVfRU5EKSwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRUxUX09UQV9DT0RFX1RBSUwgKQorCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZW1fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGY3YTBmCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZW1fbXNnaWQuaApAQCAtMCwwICsxLDExNDMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBlbV9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgRW5naW5lZXIgbW9kZSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogCQkJCUhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyoKKyogIFRoaXMgcHJvZHVjdCBoYXMgYmVlbiBkZXZlbG9wZWQgdXNpbmcgYSBwcm90b2NvbCBzdGFjaworKiAgZGV2ZWxvcGVkIGJ5IFNhc2tlbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBMaW1pdGVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIEVNX01TR0lEX0gKKyNkZWZpbmUgRU1fTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRU1fQ09ERV9CRUdJTiApCisgCS8qIEVuZ2luZWVyIG1vZGUgbWVzc2FnZSBiZWdpbiAqLworIAkvKiBTZW5kIHRvIFBTICovCisJTVNHX0lEX0w0Q1BTX0VNX1VQREFURV9SRVEgPSBNU0dfSURfRU1fQ09ERV9CRUdJTiwKKworCS8qQnlyb246IDIwMDYvMDIvMTU6IFN1c3BlbmQgb3IgcmVzdW1lIHRoZSBjZWxsIHJlc2VsZWN0aW9uKi8KKwlNU0dfSURfTDRDUFNfRU1fQ0VMTF9SRVNFTF9TVVNQRU5EX1JFUSwgIC8qIFN1c3BlbmQgY2VsbCByZXNlbGVjdGlvbiAqLworCU1TR19JRF9MNENQU19FTV9DRUxMX1JFU0VMX1NVU1BFTkRfQ05GLCAgLyogU3VzcGVuZCBjZWxsIHJlc2VsZWN0aW9uICovCisKKwlNU0dfSURfTDRDUFNfRU1fQ0VMTF9SRVNFTF9SRVNVTUVfUkVRLCAgICAvKiBSZXN1bWUgY2VsbCByZXNlbGVjdGlvbiAqLworCU1TR19JRF9MNENQU19FTV9DRUxMX1JFU0VMX1JFU1VNRV9DTkYsICAgIC8qIFJlc3VtZSBjZWxsIHJlc2VsZWN0aW9uICovCisKKyAgICAgICAvKkJ5cm9uOiAyMDA2LzA4LzA2OiBBZGQgZm9yIGNlbGwgbG9jayBmdW5jdGlvbmFsaXR5IGZyb20gTU1JIEVNKi8KKwlNU0dfSURfTDRDUFNfRU1fU0VUX0NFTExfTE9DS19SRVEsCisgICAgICAgTVNHX0lEX0w0Q1BTX0VNX1NFVF9DRUxMX0xPQ0tfQ05GLAorCisJTVNHX0lEX0w0Q1BTX0VNX0dFVF9DRUxMX0xPQ0tfUkVRLAorICAgICAgIE1TR19JRF9MNENQU19FTV9HRVRfQ0VMTF9MT0NLX0NORiwKKworCS8qQnlyb246IDIwMDcvMDMvMTQ6IEFkZCBmb3IgUHVyZSBDb21tYW5kIHJlcXVlc3QqLworCU1TR19JRF9MNENQU19FTV9GRUFUVVJFX0NPTU1BTkRfUkVRLAorCU1TR19JRF9MNENQU19FTV9GRUFUVVJFX0NPTU1BTkRfQ05GLAorCisvKiBicndhbmcsIDIwMDcwNzI3LCBbRU0gQ2VsbCBJRCBMb2NrIGZ1bmN0aW9uXSB7ICovCisKKyAgIC8qIFNlbmQgdG8gUFMgKi8KKyAgIE1TR19JRF9MNENQU19FTV9TRVRfQ0VMTF9JRF9MT0NLX1JFUSwKKyAgIC8qIFJlY2VpdmVkIGZyb20gUFMgKi8KKyAgIE1TR19JRF9MNENQU19FTV9TRVRfQ0VMTF9JRF9MT0NLX0NORiwKKworLyogYnJ3YW5nLCAyMDA3MDcyNywgW0VNIENlbGwgSUQgTG9jayBmdW5jdGlvbl0gIH0gKi8KKworI2lmIDAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbHNlCisgICAgLyogUmVjZWl2ZWQgZnJvbSBESEwgKi8KKwlNU0dfSURfREhMTDRDX0VNX1VQREFURV9SRVEsCisgICAgTVNHX0lEX01URkw0Q19FTV9VUERBVEVfUkVRLAorI2VuZGlmCisKKwkvKm10azAwOTI0OiAwNjExMDYgYWRkIGZvciBuZXR3b3JrIGV2ZW50IG5vdGlmeSovCisJTVNHX0lEX0w0Q1BTX0VNX05XX0VWRU5UX05PVElGWV9SRVEsCisJTVNHX0lEX0w0Q1BTX0VNX05XX0VWRU5UX05PVElGWV9DTkYsCisJTVNHX0lEX0w0Q1BTX0VNX05XX0VWRU5UX05PVElGWV9JTkQsCisKKwkvKiBSZWNlaXZlZCBmcm9tIFBTICovCisgICAgICAgIE1TR19JRF9MNENQU19FTV9VUERBVEVfQ05GLAorICAgICAgI2lmICgoZGVmaW5lZChfX1NNX1VUX18pKSAmJiAoIWRlZmluZWQoX19NVEtfVEFSR0VUX18pKSkKKyAgICAgIE1TR19JRF9MNENQU19DSEVDS19TTV9FTV9TVEFUVVNfQ09OVEVOVCwgLy8gdXNlZCBmb3IgY2hlY2sgcGFyYW1ldGVyIGNvcnJlY3RuZXNzIGluIFNNIFVUCisgICAgICAjZW5kaWYgLy8gfiAjaWYgKChkZWZpbmVkKF9fU01fVVRfXykpICYmICghZGVmaW5lZChfX01US19UQVJHRVRfXykpKQorICAgICAgI2lmICgoIWRlZmluZWQoX19NVEtfVEFSR0VUX18pKSAmJiBkZWZpbmVkKF9fVENNX1VUX18pKQorICAgICAgLyogTVNHX0lEX0w0Q1BTX0NIRUNLX1RDTV9NTUlfRU1fSU5GTywgLy8gdXNlZCBmb3IgY2hlY2sgcGFyYW1ldGVyIGNvcnJlY3RuZXNzIGluIFRDTSBVVCAqLworICAgICAgI2VuZGlmIC8vIH4gKCghZGVmaW5lZChfX01US19UQVJHRVRfXykpICYmIGRlZmluZWQoX19UQ01fVVRfXykpCisKKyAgICAvKiBWVCBFbmdpbmVlciBNb2RlICovCisgICAgTVNHX0lEX0w0Q19WVF9FTV9HRVRfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTDRDX1ZUX0VNX0dFVF9DT05GSUdfQ05GLAorICAgIE1TR19JRF9MNENfVlRfRU1fU0VUX0NPTkZJR19SRVEsCisKKyAgICAvKiBFTSByZXF1ZXN0OiBHU00gUkYgdGVzdCAqLworICAgIE1TR19JRF9MNENMMV9FTV9SRl9URVNUX0dTTV9TVE9QX1JFUSwKKyAgICBNU0dfSURfTDRDTDFfRU1fUkZfVEVTVF9HU01fVFhfVEVTVF9SRVEsCisgICAgTVNHX0lEX0w0Q0wxX0VNX1JGX1RFU1RfR1NNX1JYX1RFU1RfUkVRLAorCU1TR19JRF9MNENMMV9FTV9SRl9URVNUX0dTTV9SWF9URVNUX1RXT19QQVRIX1JFUSwKKyAgICBNU0dfSURfTDRDTDFfRU1fUkZfVEVTVF9HU01fUE9XRVJfU0NBTl9SRVEsCisgICAgTVNHX0lEX0w0Q0wxX0VNX1JGX1RFU1RfR1NNX1BPV0VSX1NDQU5fQ05GLAorICAgIE1TR19JRF9MNENMMV9FTV9UU1RfQ09OVFJPTF9SRVEsCisgICAgTVNHX0lEX0w0Q0wxX0VNX1RTVF9DT05UUk9MX0NORiwKKyAgICBNU0dfSURfTDRDTDFfRU1fVFhfUkVQT1JUX0lORCwgICAgICAKKworICAgIC8qIEVMMSBSRiBURU1QVVJBVFVSRSAqLworICAgIE1TR19JRF9MNENFTDFfR0VUX1JGX1RFTVBFUkFUVVJFX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX0dFVF9SRl9URU1QRVJBVFVSRV9DTkYsCisgICAgTVNHX0lEX0w0Q0VMMV9NT05JVE9SX1JGX1RFTVBFUkFUVVJFX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX01PTklUT1JfUkZfVEVNUEVSQVRVUkVfQ05GLAorICAgIE1TR19JRF9MNENFTDFfTU9OSVRPUl9SRl9URU1QRVJBVFVSRV9JTkQsCisKKyAgICAvKiBFTDEgUlggUEFUSCAqLworICAgIE1TR19JRF9MNENFTDFfU0VUX1JYX1BBVEhfUkVRLAorICAgIE1TR19JRF9MNENFTDFfU0VUX1JYX1BBVEhfQ05GLAorI2lmZGVmIF9fVFhfUFdSX0VYVEVOU0lPTl9fCisgICAgTVNHX0lEX0w0Q1VMMV9HRVRfVFhfUE9XRVJfUkVRLAorICAgIE1TR19JRF9MNENVTDFfR0VUX1RYX1BPV0VSX0NORiwKKyAgICBNU0dfSURfTDRDTkwxX0dFVF9UWF9QT1dFUl9SRVEsCisgICAgTVNHX0lEX0w0Q05MMV9HRVRfVFhfUE9XRVJfQ05GLAorI2VuZGlmCisgICAgTVNHX0lEX0w0Q19DQ0NJX0dFVF9USEVSTUFMX0lORk9fUkVRLAorICAgIC8qIFVMMSBSWCBQQVRIICovCisgICAgTVNHX0lEX0w0Q1VMMV9TRVRfUlhfUEFUSF9SRVEsCisgICAgTVNHX0lEX0w0Q1VMMV9TRVRfUlhfUEFUSF9DTkYsCisKKyAgICAvKiBFTDEgUlggUlNTSSBWRVJJRlkgKi8KKyAgICBNU0dfSURfTDRDRUwxX1JYX1JTU0lfVkVSSUZZX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX1JYX1JTU0lfVkVSSUZZX0lORCwKKworICAgIC8qIEVMMSBUWCBQT1dFUiAqLworICAgIE1TR19JRF9MNENFTDFfR0VUX1RYX1BPV0VSX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX0dFVF9UWF9QT1dFUl9DTkYsCisKKyAgICAvKiBFTDEgRUIzSU5GTyBBVC1DTUQgKi8KKyAgICBNU0dfSURfTDRDRUwxX0IzX0lORk9fUkVRLAorICAgIE1TR19JRF9MNENFTDFfQjNfSU5GT19DTkYsCisKKyAgICAvKiBFTDEgVnpXIE9UQSBURVNUIFJFUSAqLworICAgIE1TR19JRF9MNENFTDFfQU5URU5OQV9JTkZPUk1BVElPTl9SRVEsCisgICAgTVNHX0lEX0w0Q0VMMV9BTlRFTk5BX0lORk9STUFUSU9OX0NORiwKKyAgICBNU0dfSURfTDRDRUwxX0FOVEVOTkFfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX0FOVEVOTkFfQ09ORklHX0NORiwKKyAgICBNU0dfSURfTDRDRUwxX0FOVEVOTkFfQ09ORklHX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX0w0Q0VMMV9BTlRFTk5BX0NPTkZJR19TVEFUVVNfQ05GLAorCisgICAgTVNHX0lEX0wxX0dTTV9NQVhfVFhfUFdSX1JFRF9SRVEsCisgICAgTVNHX0lEX1VMMV9VTVRTX01BWF9UWF9QV1JfUkVEX1JFUSwKKyAgICBNU0dfSURfTkwxX05SX01BWF9UWF9QV1JfUkVEX1JFUSwKKworICAgIC8qIFJGIFRFU1QgcmVzdWx0IGZyb20gTDEgKi8KKyAgICBNU0dfSURfTDRDTDFfRU1fUkZfVEVTVF9HU01fUlhfVEVTVF9JTkQsCisJTVNHX0lEX0w0Q0wxX0VNX1JGX1RFU1RfR1NNX1JYX1RFU1RfVFdPX1BBVEhfSU5ELAorICAgIE1TR19JRF9UTDFfVU1UU19NQVhfVFhfUFdSX1JFRF9SRVEsCisgICAgTVNHX0lEX0VMMV9MVEVfTUFYX1RYX1BXUl9SRURfUkVRLAorCisgICAgTVNHX0lEX0w0Q0wxX0dFVF9SRl9URU1QRVJBVFVSRV9SRVEsCisgICAgTVNHX0lEX0w0Q0wxX0dFVF9SRl9URU1QRVJBVFVSRV9DTkYsCisKKyAgICBNU0dfSURfTDRDVUwxX0dFVF9SRl9URU1QRVJBVFVSRV9SRVEsCisgICAgTVNHX0lEX0w0Q1VMMV9HRVRfUkZfVEVNUEVSQVRVUkVfQ05GLAorCisgICAgTVNHX0lEX0w0Q1RMMV9HRVRfUkZfVEVNUEVSQVRVUkVfUkVRLAorICAgIE1TR19JRF9MNENUTDFfR0VUX1JGX1RFTVBFUkFUVVJFX0NORiwKKyAgICAKKyAgICBNU0dfSURfTDRDTkwxX0dFVF9SRl9URU1QRVJBVFVSRV9SRVEsCisgICAgTVNHX0lEX0w0Q05MMV9HRVRfUkZfVEVNUEVSQVRVUkVfQ05GLAorICAgIAorICAgIE1TR19JRF9MNENMMV9FTV9SRl9URVNUX0dTTV9UWF9URVNUX0lORCwKKworICAgIC8qIFRBUyBGb3JjZSBUeCBBbnQgSW5kZXggKi8KKyAgICBNU0dfSURfTDRDVUwxX0ZPUkNFX1RYX0FOVF9SRVEsCisgICAgTVNHX0lEX0w0Q1VMMV9GT1JDRV9UWF9BTlRfQ05GLAorCisgICAgTVNHX0lEX0w0Q0wxX0ZPUkNFX1RYX0FOVF9SRVEsCisgICAgTVNHX0lEX0w0Q0wxX0ZPUkNFX1RYX0FOVF9DTkYsCisKKyAgICBNU0dfSURfTDRDVEwxX0ZPUkNFX1RYX0FOVF9SRVEsCisgICAgTVNHX0lEX0w0Q1RMMV9GT1JDRV9UWF9BTlRfQ05GLAorCisgICAgTVNHX0lEX0w0Q0VMMV9GT1JDRV9UWF9BTlRfUkVRLAorICAgIE1TR19JRF9MNENFTDFfRk9SQ0VfVFhfQU5UX0NORiwKKyAgICAKKyAgICBNU0dfSURfTDRDTkwxX0ZPUkNFX1RYX0FOVF9SRVEsCisgICAgTVNHX0lEX0w0Q05MMV9GT1JDRV9UWF9BTlRfQ05GLAorCisgICAgTVNHX0lEX0w0Q19OTDFfREFUX1JFUSwKKyAgICBNU0dfSURfTDRDX05MMV9EQVRfQ05GLAorCisgICAgTVNHX0lEX0VOTDFfVVRBU19OTDFfREFUX0NORl9JTkQsCisgICAgTVNHX0lEX0w0Q19DMktfQ0wxX0ZPUkNFX1RYX0FOVF9SRVEsCisgICAgTVNHX0lEX0w0Q19DMktfQ0wxX0ZPUkNFX1RYX0FOVF9DTkYsCisKKyAgICAvKiBFTDFfRU1fTU9ERSAqLworICAgIE1TR19JRF9MNENfRUwxX0VNX1RTVF9DT05UUk9MX1JFUSwKKyAgICBNU0dfSURfTDRDX0VMMV9FTV9UU1RfQ09OVFJPTF9DTkYsCisgICAgTVNHX0lEX0w0Q19FTDFfRU1fVFhfUkVQT1JUX0lORCwKKworICAgIC8qIEVNIHJlcXVlc3Q6IFVMMSBSRiB0ZXN0ICovCisgICAgTVNHX0lEX0w0Q1VMMV9SU1NJX01FQVNVUkVNRU5UX0lORCwKKworICAgIC8qIEVNIHJlcXVlc3Q6IFVMMSBUWCBwb3dlciBkZWN0b3IgbWVhc3VyZW1lbnQgKi8KKyAgICBNU0dfSURfTDRDVUwxX0VNX1RYX1JFUE9SVF9JTkQsCisKKyAgICAvKiBUTDEgUnggdGVzdCovCisgICAgTVNHX0lEX0w0Q1RMMV9SU1NJX01FQVNVUkVNRU5UX0lORCwKKyAgICAvKiBUTDEgVHggdGVzdCovCisgICAgTVNHX0lEX0w0Q1RMMV9FTV9UWF9SRVBPUlRfSU5ELAorCisgICAgLyogQVAgU2Vuc29yIEluZm8gZm9yIFRBUyAyLjAgKi8KKyAgICBNU0dfSURfTDRDVUwxX0FQSU5GT19VUERBVEVfUkVRLAorICAgIE1TR19JRF9MNENMMV9BUElORk9fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTDRDVEwxX0FQSU5GT19VUERBVEVfUkVRLAorICAgIE1TR19JRF9MNENFTDFfQVBJTkZPX1VQREFURV9SRVEsCisKKyAgICAvKiB0byBnZXQgVHggUnggYWN0aXZlIHRpbWUgZnJvbSBMMSAqLworICAgIE1TR19JRF9MNENMMV9UWFJYX0FDVElWRV9USU1FX1JFUSwKKyAgICBNU0dfSURfTDRDTDFfVFhSWF9BQ1RJVkVfVElNRV9DTkYsCisKKyAgICBNU0dfSURfTDRDVUwxX1RYUlhfQUNUSVZFX1RJTUVfUkVRLAorICAgIE1TR19JRF9MNENVTDFfVFhSWF9BQ1RJVkVfVElNRV9DTkYsCisKKyAgICBNU0dfSURfTDRDVEwxX1RYUlhfQUNUSVZFX1RJTUVfUkVRLAorICAgIE1TR19JRF9MNENUTDFfVFhSWF9BQ1RJVkVfVElNRV9DTkYsCisKKyAgICBNU0dfSURfTDRDRUwxX1RYUlhfQUNUSVZFX1RJTUVfUkVRLAorICAgIE1TR19JRF9MNENFTDFfVFhSWF9BQ1RJVkVfVElNRV9DTkYsCisKKyAgICBNU0dfSURfTDRDTU1SRl9URU1QRVJBVFVSRV9SRVEsCisgICAgTVNHX0lEX0w0Q01NUkZfVEVNUEVSQVRVUkVfQ05GLAorCisgICAgLyogTU1SRiBNSVBJL0JQSSByZWFkIG9yIHdyaXRlIGFjdGlvbiAqLworICAgIE1TR19JRF9MNENNTVJGX0VNX01JUElfQUNUSU9OX1JFUSwKKyAgICBNU0dfSURfTDRDTU1SRl9FTV9NSVBJX0FDVElPTl9DTkYsCisKKyAgICBNU0dfSURfTDRDTU1SRl9FTV9CUElfQUNUSU9OX1JFUSwKKyAgICBNU0dfSURfTDRDTU1SRl9FTV9CUElfQUNUSU9OX0NORiwKKworICAgIE1TR19JRF9MNENNTVJGX0FQX1JGSURYX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0w0Q01NUkZfQVBfUkZJRFhfVVBEQVRFX0NORiwKKworICAgIE1TR19JRF9MNENVTDFfQVBfUkZJRFhfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTDRDVUwxX0FQX1JGSURYX1VQREFURV9DTkYsCisKKyAgICBNU0dfSURfTDRDRUwxX0FQX1JGSURYX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0w0Q0VMMV9BUF9SRklEWF9VUERBVEVfQ05GLAorCisJTVNHX0lEX0w0Q05MMV9BUF9SRklEWF9VUERBVEVfUkVRLAorCU1TR19JRF9MNENOTDFfQVBfUkZJRFhfVVBEQVRFX0NORiwKKworICAgIE1TR19JRF9MNENfQzJLX0NMMV9BUF9SRklEWF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9MNENfQzJLX0NMMV9BUF9SRklEWF9VUERBVEVfQ05GLAorCisgICAgTVNHX0lEX0w0Q1BTX0VWRU5UX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX0w0Q1BTX0VWRU5UX1JFUE9SVF9DTkYsCisgICAgTVNHX0lEX0w0Q1BTX01EX0VWRU5UX0lORCwKKworICAgIE1TR19JRF9MNENMMV9HU01fRU1fVFhfUFdSX0NUUkxfUkVRLAorICAgIE1TR19JRF9MNENMMV9HU01fRU1fVFhfUFdSX0NUUkxfQ05GLAorCisgICAgLyogRU0gTUFYIFRYIFBPV0VSIFNVUFBPUlQqLworCU1TR19JRF9MNENFTDFfU0VUX01BWF9UWF9QT1dFUl9SRVEsCisJTVNHX0lEX0w0Q0VMMV9TRVRfTUFYX1RYX1BPV0VSX0NORiwKKyNpZmRlZiBfX1RYX1BXUl9FWFRFTlNJT05fXworCU1TR19JRF9MNENFTDFfU0VUX0VYQ0xfTUFYX1RYX1BPV0VSX1JFUSwKKwlNU0dfSURfTDRDRUwxX1NFVF9FWENMX01BWF9UWF9QT1dFUl9DTkYsCisJTVNHX0lEX0w0Q0VMMV9HRVRfRVhDTF9NQVhfVFhfUE9XRVJfUkVRLAorCU1TR19JRF9MNENFTDFfR0VUX0VYQ0xfTUFYX1RYX1BPV0VSX0NORiwKKyNlbmRpZgorCU1TR19JRF9MNENVTDFfU0VUX01BWF9UWF9QT1dFUl9SRVEsCisJTVNHX0lEX0w0Q1VMMV9TRVRfTUFYX1RYX1BPV0VSX0NORiwKKyNpZmRlZiBfX1RYX1BXUl9FWFRFTlNJT05fXworCU1TR19JRF9MNENVTDFfU0VUX0VYQ0xfTUFYX1RYX1BPV0VSX1JFUSwKKwlNU0dfSURfTDRDVUwxX1NFVF9FWENMX01BWF9UWF9QT1dFUl9DTkYsCisJTVNHX0lEX0w0Q1VMMV9HRVRfRVhDTF9NQVhfVFhfUE9XRVJfUkVRLAorCU1TR19JRF9MNENVTDFfR0VUX0VYQ0xfTUFYX1RYX1BPV0VSX0NORiwKKyNlbmRpZgorICAgIE1TR19JRF9MNENUTDFfU0VUX01BWF9UWF9QT1dFUl9SRVEsCisJTVNHX0lEX0w0Q1RMMV9TRVRfTUFYX1RYX1BPV0VSX0NORiwKKworCU1TR19JRF9MNENMMV9TRVRfTUFYX1RYX1BPV0VSX1JFUSwKKwlNU0dfSURfTDRDTDFfU0VUX01BWF9UWF9QT1dFUl9DTkYsCisjaWZkZWYgX19UWF9QV1JfRVhURU5TSU9OX18KKyAgICBNU0dfSURfTDRDTkwxX1NFVF9NQVhfVFhfUE9XRVJfT0ZGU0VUX1JFUSwKKyAgICBNU0dfSURfTDRDTkwxX1NFVF9NQVhfVFhfUE9XRVJfT0ZGU0VUX0NORiwKKyAgICBNU0dfSURfTDRDTkwxX1NFVF9BQlNfTUFYX1RYX1BPV0VSX1JFUSwKKyAgICBNU0dfSURfTDRDTkwxX1NFVF9BQlNfTUFYX1RYX1BPV0VSX0NORiwKKyAgICBNU0dfSURfTDRDTkwxX0dFVF9BQlNfTUFYX1RYX1BPV0VSX1JFUSwKKyAgICBNU0dfSURfTDRDTkwxX0dFVF9BQlNfTUFYX1RYX1BPV0VSX0NORiwKKyNlbmRpZgorICAgIC8qIEdMMSBSWCBQQVRIICovCisgICAgTVNHX0lEX0w0Q0wxX1NFVF9SWF9QQVRIX1JFUSwKKyAgICBNU0dfSURfTDRDTDFfU0VUX1JYX1BBVEhfQ05GLAorICAgIC8qIFJGIHNjYW4gcmVsYXRlZCAqLworI2lmZGVmIF9fUkZfU0NBTl9GT1JfREVTRU5TRV9URVNUX18KKwlNU0dfSURfTDRDTDFfRU1fUkZfU0NBTl9SRVEsCisJTVNHX0lEX0w0Q0wxX0VNX1JGX1NDQU5fQ05GLAorCisgICAgTVNHX0lEX0w0Q1VMMV9FTV9SRl9TQ0FOX1JFUSwKKyAgICBNU0dfSURfTDRDVUwxX0VNX1JGX1NDQU5fQ05GLAorCisgICAgTVNHX0lEX0w0Q1RMMV9FTV9SRl9TQ0FOX1JFUSwKKyAgICBNU0dfSURfTDRDVEwxX0VNX1JGX1NDQU5fQ05GLAorCisgICAgTVNHX0lEX0w0Q0VMMV9FTV9SRl9TQ0FOX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX0VNX1JGX1NDQU5fQ05GLAorCisgICAgTVNHX0lEX0w0Q19DMktfQ0wxX0VNX1JGX1NDQU5fUkVRLAorICAgIE1TR19JRF9MNENfQzJLX0NMMV9FTV9SRl9TQ0FOX0NORiwKKworICAgIC8qIEMySyBSU1NJIGluZGljYXRpb24gZm9yIFJGIHNjYW4gcmVxdWVzdCovCisgICAgTVNHX0lEX0w0Q19WQUxfQzJLX1JGX1NDQU5fSU5ELCAgCisjZW5kaWYgLypfX1JGX1NDQU5fRk9SX0RFU0VOU0VfVEVTVF9fKi8KKworICAgIC8qIE1zZyBpZCBmb3IgTUNGIGNvbmZpZ3VyYXRpb24qLworCU1TR19JRF9MNENfTUNGX1NFVF9DT05GSUdfUkVRLAorCU1TR19JRF9MNENfTUNGX1NFVF9DT05GSUdfQ05GLAorCisgICAgTVNHX0lEX0w0Q19NQ0ZfR0VUX0NPTkZJR19SRVEsCisJTVNHX0lEX0w0Q19NQ0ZfR0VUX0NPTkZJR19DTkYsCisKKyAgICBNU0dfSURfTDRDX01DRl9EVU1QX0RBVEFfUkVRLAorICAgIE1TR19JRF9MNENfTUNGX0RVTVBfREFUQV9DTkYsCisKKyAgICBNU0dfSURfTDRDX01DRl9VUERBVEVfT1RBX0ZJTEVfUkVRLAorICAgIE1TR19JRF9MNENfTUNGX1VQREFURV9PVEFfRklMRV9DTkYsCisKKyAgICBNU0dfSURfTDRDX01DRl9DT05GSUdfUkVRLAorICAgIE1TR19JRF9MNENfTUNGX0NPTkZJR19DTkYsCisKKyAgICBNU0dfSURfTDRDX01DRl9DT05GSUdfTElEX1ZBUklBQkxFX09QRVJBVElPTl9SRVEsCisgICAgTVNHX0lEX0w0Q19NQ0ZfQ09ORklHX0xJRF9WQVJJQUJMRV9PUEVSQVRJT05fQ05GLAorICAgIE1TR19JRF9MNENfTUNGX1ZBUklBQkxFX1ZBTFVFX09QRVJBVElPTl9SRVEsCisgICAgTVNHX0lEX0w0Q19NQ0ZfVkFSSUFCTEVfVkFMVUVfT1BFUkFUSU9OX0NORiwKKwkKKyNpZmRlZiBfX01DRl9DT01CSU5FX0ZJTEVfU1VQUE9SVF9fICAgCQorCU1TR19JRF9MNENfTUNGX0FTU0lHTl9DT01CSU5FRF9GSUxFX1BBVEhfUkVRLAorICAgIE1TR19JRF9MNENfTUNGX0FTU0lHTl9DT01CSU5FRF9GSUxFX1BBVEhfQ05GLAorI2VuZGlmIC8qIF9fTUZDX0NPTUJJTkVfRklMRV9TVVBQT1JUX18gKi8KKworICAgIC8qIEdlbiBBbnRlbm5hIGZlYXR1cmUqLworICAgIE1TR19JRF9MNENHTDFfR0VUX0FOVF9JTkZPX1JFUSwKKyAgICBNU0dfSURfTDRDR0wxX0dFVF9BTlRfSU5GT19DTkYsCisKKyAgICBNU0dfSURfTDRDVUwxX0dFVF9BTlRfSU5GT19SRVEsCisgICAgTVNHX0lEX0w0Q1VMMV9HRVRfQU5UX0lORk9fQ05GLAorCisgICAgTVNHX0lEX0w0Q1RMMV9HRVRfQU5UX0lORk9fUkVRLAorICAgIE1TR19JRF9MNENUTDFfR0VUX0FOVF9JTkZPX0NORiwKKworICAgIE1TR19JRF9MNENFTDFfR0VUX0FOVF9JTkZPX1JFUSwKKyAgICBNU0dfSURfTDRDRUwxX0dFVF9BTlRfSU5GT19DTkYsCisKKyAgICBNU0dfSURfTDRDR0wxX0dFVF9BTlRfSU5GT19JTkQsCisgICAgTVNHX0lEX0w0Q1VMMV9HRVRfQU5UX0lORk9fSU5ELAorICAgIE1TR19JRF9MNENFTDFfR0VUX0FOVF9JTkZPX0lORCwKKyAgICBNU0dfSURfTDRDVEwxX0dFVF9BTlRfSU5GT19JTkQsCisKKyAgICAvKiBFeHRlbmRlZCBMQ0Ugc3VwcG9ydCBmb3IgQW5kcm9pZCBQICovCisgICAgTVNHX0lEX0w0Q19OTDFfRVhURU5ERURfTENFX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX0w0Q19FTDFfRVhURU5ERURfTENFX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX0w0Q19VTDFfRVhURU5ERURfTENFX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX0w0Q19VTUFDX0VYVEVOREVEX0xDRV9SRVBPUlRfUkVRLAorICAgIE1TR19JRF9MNENfTUFDX0VYVEVOREVEX0xDRV9SRVBPUlRfUkVRLAorCisgICAgTVNHX0lEX0w0Q19OTDFfRVhURU5ERURfTENFX1JFUE9SVF9JTkQsCisgICAgTVNHX0lEX0w0Q19FTDFfRVhURU5ERURfTENFX1JFUE9SVF9JTkQsCisgICAgTVNHX0lEX0w0Q19VTDFfRVhURU5ERURfTENFX1JFUE9SVF9JTkQsCisgICAgTVNHX0lEX0w0Q19VTUFDX0VYVEVOREVEX0xDRV9SRVBPUlRfSU5ELAorICAgIE1TR19JRF9MNENfTUFDX0VYVEVOREVEX0xDRV9SRVBPUlRfSU5ELAorICAgIAorICAgIE1TR19JRF9MNENHTDFfTENNX0hPUFBJTkdfSU5ELAorICAgIE1TR19JRF9MNENVTDFfTENNX0hPUFBJTkdfSU5ELAorICAgIE1TR19JRF9MNENSVFRMM19MQ01fSE9QUElOR19JTkQsCisgICAgTVNHX0lEX0w0Q0VWRE9MM19MQ01fSE9QUElOR19JTkQsCisgICAgTVNHX0lEX0w0Q0VMMV9MQ01fSE9QUElOR19JTkQsCisgICAgTVNHX0lEX0w0Q05MMV9MQ01fSE9QUElOR19JTkQsCisKKyAgICBNU0dfSURfTDRDX01NUkZfVFhfUE9XRVJfU1RBVFVTX0lORCwKKworCisgICAgLyogSWYgdGhlIG1lc3NhZ2UgaXMgbm90IHRvIHNlbmQgRU0gaW5mb3JtYXRpb24gdG8gQVAgb3IgTG9nZ2luZyB0b29sLAorICAgICAqIHBsZWFzZSBhZGQgYmVmb3JlIE1TR19JRF9FTV9TVEFUVVNfQkVHSU4uIEJlbG93IGFyZSBFTSBtZXNzYWdlcyB0bworICAgICAqIHJlcG9ydCB0byBBUCBvciBMb2dnaW5nIHRvb2wKKyAgICAgKi8KKyAgICBNU0dfSURfRU1fU1RBVFVTX0JFR0lOLAorICAgIE1TR19JRF9MNENQU19FTV9TVEFUVVNfSU5EID0gTVNHX0lEX0VNX1NUQVRVU19CRUdJTiwKKyAgICAvKiBETyBOT1QgYWRkIGFueSBtZXNzYWdlIGFmdGVyIE1TR19JRF9FTV9TVEFUVVNfQkVHSU4gbWFudWFseQorICAgICAgIG1lc3NhZ2VzIGJlbG93IHNoYWxsIGJlIGV4cGFuZCBmcm9tIGVtX2luZm8uaAorICAgICovCisKKyNkZWZpbmUgRU1fSU5GTyhFTV9TUlYsWCxZLFhfQk0sWV9CTSxNU0dJRCkgTVNHSUQsCisKKyAgICAjaW5jbHVkZSAiZW1faW5mby5oIgorCisjdW5kZWYgRU1fSU5GTworCisjaWYgMAorLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmCisgICAgTVNHX0lEX0VNX0NPREVfRU5ELCAvKiBlbmQgdGFnLiBwbGVhc2UgYWRkIHlvdXIgbmV3IEVNIG1zZyBJRCBiZWZvcmUgdGhpcyB0YWcgKi8KKyAgICAvKiBFbmdpbmVlciBtb2RlIG1lc3NhZ2UgZW5kICovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0VNX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9FTV9NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbWFjX21sMXNfbXNnLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbWFjX21sMXNfbXNnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNhNzliMgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VtYWNfbWwxc19tc2cuaApAQCAtMCwwICsxLDEwOCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGVtYWNfbWwxc19tc2cuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBVTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIEludGVyZmFjZSBoZWFkZXIgZm9yIEVNQUMtTUwxUyBpbnRlcmZhY2UKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKiAgIAorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA2IDI5IDIwMTggZ3VhbmcteXUuemhlbmcKKyAqIFtNT0xZMDAzMzU4NzldIFtNVDYyOTVdIE1MMVMgbXVsdGlwbGUgVEFHIGZsb3cgYWRkaW5nCisgKiBFTUFDLU1MMVMgc1RBRyBUQSBmbG93IGRldmVsb3BtZW50CisgKgorICogMDMgMzAgMjAxNyBuaWNvbGUuaHN1CisgKiBbTU9MWTAwMTk0OTg3XSBbTVQ2MjkzXVtVTU9MWUEvUFMgREVWXSBFTUFDIG1haW50ZW5hbmNlCisgKiBbVFJVTktdIE1vZGlmeSBGb3JjZSBORVdUWCBpbnRlcmZhY2UgYXMgTUwxUyByZXF1ZXN0CisgKgorICogMDMgMTUgMjAxNyBtZi5qaGFuZworICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogLiBhZGQgZW1hY19tbDFzX21zZy5oIHRvIGxpYlBhcnNlRGJNb2RlbQorICoKKyAqIDAzIDEzIDIwMTcgbmljb2xlLmhzdQorICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogTUwxUworICogLSBGb3JjZSBORVdUWCB3aGVuIE1MMVMgcmVxdWVzdCBpcyBzZW50CisgKgorICogMDIgMjQgMjAxNyBtZi5qaGFuZworICogW01PTFkwMDE5NDk4N10gW01UNjI5M11bVU1PTFlBL1BTIERFVl0gRU1BQyBtYWludGVuYW5jZQorICogLkFkZCBNTDFTIElMTSBoYW5kbGVyCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmICBFTUFDX01MMVNfTVNHX0gKKyNkZWZpbmUgIEVNQUNfTUwxU19NU0dfSAorCisvLyBNU0dfSURfTUwxU19FTUFDX1NUQUdfVEFfUkVRCit0eXBlZGVmIHN0cnVjdCAKK3sKKyAgICBMT0NBTF9QQVJBX0hEUgorICAgIGthbF91aW50MTYgc3RhZ190YV92YWx1ZVszXTsgCit9IG1sMXNfZW1hY19zdGFnX3RhX3JlcV9zdHJ1Y3Q7CisKKworLy8gTVNHX0lEX01MMVNfRU1BQ19DT05OX0VTVF9SQV9SRVEKK3R5cGVkZWYgc3RydWN0IAoreworICAgIExPQ0FMX1BBUkFfSERSCisKKyAgICBrYWxfdWludDE2ICAgIGNfcm50aTsgLyogMSAtIDY1NTIzICovCisgICAga2FsX3VpbnQxNiAgICBwdGFnX3RhX3ZhbHVlOyAvKiAxIC0gMTI4MiAqLworfSBtbDFzX2VtYWNfY29ubl9lc3RfcmFfcmVxX3N0cnVjdDsKKworCit0eXBlZGVmIHN0cnVjdAoreworICAgIExPQ0FMX1BBUkFfSERSCisgICAga2FsX3VpbnQ4IGxjaWQ7CisgICAga2FsX3VpbnQ4IG1hY19jZV9jb250ZW50WzNdOworfSBtbDFzX2VtYWNfbWFjX2NlX3RyaWdnZXJfcmVxX3N0cnVjdDsKKworCisjZW5kaWYgICAvKiAtLS0tLSAjaWZuZGVmIEVNQUNfTUwxU19NU0cgIC0tLS0tICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbW1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VtbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YTM4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lbW1fbXNnaWQuaApAQCAtMCwwICsxLDIyOTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGVtbV9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMVEUgTkFTIEVNTSAoRVBTIE1vYmlsaXR5IE1hbmFnZW1lbnQpIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0VNTV9NU0dJRF9ICisjZGVmaW5lIF9FTU1fTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRU1NX0NPREVfQkVHSU4gKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU0gKEVWQUwgdG8gRU1NKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VWQUxfRU1NX1NFVF9SQVRfTU9ERV9SRVEgID0gTVNHX0lEX0VNTV9DT0RFX0JFR0lOLAorTVNHX0lEX0VWQUxfRU1NX0FUVEFDSF9SRVEsCitNU0dfSURfRVZBTF9FTU1fREVUQUNIX1JFUSwKK01TR19JRF9FVkFMX0VNTV9FTUNfQVRUQUNIX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRU1NX0lOSVRfUkVRLAorTVNHX0lEX0VWQUxfRU1NX1JGT0ZGX1JFUSwKK01TR19JRF9FVkFMX0VNTV9VRU1PREVfUEFSQU1fVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VNTV9QTE1OX1NFQVJDSF9SRVEsCitNU0dfSURfRVZBTF9FTU1fUExNTl9MSVNUX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX05BU19DVFhUX1RSQU5TRkVSX1JFUSwKKy8vTVNHX0lEX0VWQUxfRU1NX0wyQ19UUkFOU0ZFUl9SRVEsICAvLyBmb3IgQzJLCitNU0dfSURfRVZBTF9FTU1fU0VBUkNIX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX1NZU19JTkZPX1VQREFURV9SRVEsCitNU0dfSURfRVZBTF9FTU1fUkVHTl9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VNTV9QTE1OX0xJU1RfUkVRLAorTVNHX0lEX0VWQUxfRU1NX1BMTU5fTElTVF9TVE9QX1JFUSwKK01TR19JRF9FVkFMX0VNTV9DU0dfTElTVF9SRVEsCitNU0dfSURfRVZBTF9FTU1fQ1NHX0xJU1RfU1RPUF9SRVEsCitNU0dfSURfRVZBTF9FTU1fRU1DX0ZQTE1OX0xJU1RfVVBEQVRFX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRU1NX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX1JQTE1OX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0hQTE1OX0lORk9fVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VNTV9TTVNfRVNUX1JFUSwKK01TR19JRF9FVkFMX0VNTV9TTVNfVU5JVERBVEFfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0xDU19EQVRBX1JFUSwgLy8gZm9yIExQUAorTVNHX0lEX0VWQUxfRU1NX0xQUF9EQVRBX1JFUSwgLy8gZm9yIExQUAorTVNHX0lEX0VWQUxfRU1NX1NJTV9SRUFEWV9SRVEsCitNU0dfSURfRVZBTF9FTU1fQVVUSEVOVElDQVRFX1JTUCwKK01TR19JRF9FVkFMX0VNTV9TSU1fRVJST1JfUkVRLAorTVNHX0lEX0VWQUxfRU1NX1NJTV9GSUxFX1VQREFURV9SRVEsCitNU0dfSURfRVZBTF9FTU1fU0VBUkNIX1BSRUZFUkVOQ0VfVVBEQVRFX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRU1NX1JFU0VMRUNUX1NIQVJFRF9OV19SU1AsIC8vIGZvciBJTVMgX182MjkzREVWX18KK01TR19JRF9FVkFMX0VNTV9SRVNVTUVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0FDVElWRV9TSU1fSU5GT19SRVEsLy8gVE9ETzogcmVtb3ZlIHdpdGggRUFDVFMKK01TR19JRF9FVkFMX0VNTV9TRVRfSU1TX1ZPSUNFX0FWQUlMQUJJTElUWV9SRVEsIC8vIGZvciBJTVMKK01TR19JRF9FVkFMX0VNTV9TRVRfSU1TX1ZPSUNFX1RFUk1JTkFUSU9OX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRU1NX0lOVkFMSURfU0lNX1JFQ09WRVJfUkVRLCAvLyBmb3IgX19SRUwxMF9fOiB0MzI0NQorTVNHX0lEX0VWQUxfRU1NX1ZETV9WT0lDRV9TVEFUVVNfUkVRLCAvLyBJTVMgY2FsbCBzdGFydCAoZmlyc3QpIC8gZW5kIChsYXN0KQorTVNHX0lEX0VWQUxfRU1NX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsIC8vZm9yIEMySworTVNHX0lEX0VWQUxfRU1NX0NMRUFSX1QzMzQ2X0VQTE1OX1JFUSwKK01TR19JRF9FVkFMX0VNTV9DMktfQ1NGQl9SRVEsCitNU0dfSURfRVZBTF9FTU1fQzJLX0NTRkJfU1RPUF9SRVEsCitNU0dfSURfRVZBTF9FTU1fRkFDVE9SWV9SRVNFVF9SRVEsCitNU0dfSURfRVZBTF9FTU1fSU1TX1JFR19TVEFUVVNfVVBEQVRFX1JFUSwgLy9mb3IgVlpfUkVRX0xURUIxM05BQ182NDgyCitNU0dfSURfRVZBTF9FTU1fRFJYX1VQREFURV9SRVEsCitNU0dfSURfRVZBTF9FTU1fR0xPQkFMX01PREVfQ0hBTkdFX1NUQVJUX1JFUSwKK01TR19JRF9FVkFMX0VNTV9JTVNfU0NNX0lORk9fUkVRLCAvLyBmb3IgUkVMMTIgZmVhdHVyZSBTQ00KK01TR19JRF9FVkFMX0VNTV9BQ0RDX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0MyS19GT1JDRV9UT19MT0NBTF9ERVRBQ0hfUkVRLCAvL2ZvciBDMksgd2hlbiBPUDEyIHByb2plY3QKK01TR19JRF9FVkFMX0VNTV9IVk9MVEVfTU9ERV9DSEFOR0VfUkVRLCAvL1tBTFBTMDI1ODUwMDJdIGZvciBWWiBoVm9MVEUsIEU5MTEgdGVzdCAKK01TR19JRF9FVkFMX0VNTV9DQUxMX1NUQVRVU19JTkQsCitNU0dfSURfRVZBTF9FTU1fREFUQV9BTExPV19SRVEsICAgICAgICAgLy8gX19NVUxUSVBMRV9QU19fCitNU0dfSURfRVZBTF9FTU1fQ0xFQVJfRk9SQklEREVOX1RBX0xJU1RfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0dNU1NfSVJBVF9TVEFSVF9JTkQsIC8vIGZvciBDMksKK01TR19JRF9FVkFMX0VNTV9HTVNTX0lSQVRfRklOSVNIX0lORCwgLy8gZm9yIEMySworCitNU0dfSURfRVZBTF9FTU1fU0VUX1BHQ0hFQ0tfUkVRLCAvLyBmb3IgTEcgbmV3IEFUIGNvbW1hbmQKK01TR19JRF9FVkFMX0VNTV9FUFNfTE9DSV9DTEVBUl9SRVEsIC8vTVNHX0lEX0VWQUxfRU1NX0dVVElfSU5fTlZfQ0xFQVJfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0lNU19IQU5ET1ZFUl9BVFRBQ0hfUkVRLAorTVNHX0lEX0VWQUxfRU1NX1NFVF9NU19TVl9SRVEsCitNU0dfSURfRVZBTF9FTU1fR0VORVJBTF9NT0RFTV9DT05GSUdVUkVfU0VUX1JFUSwKK01TR19JRF9FVkFMX0VNTV9NRV9SRUNPTkZJR1VSRV9SRVEsCitNU0dfSURfRVZBTF9FTU1fU1RBUlRfUkVMRUFTRV9EUkJfU0VTU0lPTl9USU1FUl9JTkQsCitNU0dfSURfRVZBTF9FTU1fUkFUX0RJU0FCTEVfQ09ORklHX1JFUSwKK01TR19JRF9FVkFMX0VNTV9TTVNfU1RBVFVTX1JFUSwKK01TR19JRF9FVkFMX0VNTV9NVF9TTVNfT1ZFUl9JTVNfU1RBVFVTX1JFUSwKK01TR19JRF9FVkFMX0VNTV9OT1RJRllfU0lNX1NXSVRDSF9SRk9GRl9SRVEsCitNU0dfSURfRVZBTF9FTU1fUkVKRUNUX0NBVVNFX01BUFBJTkdfSU5ELAorTVNHX0lEX0VWQUxfRU1NX01BTlVBTF9TRUFSQ0hfU1RPUF9SRVEsIAorCisvLyBSZW1vdGUgU0lNCitNU0dfSURfRVZBTF9FTU1fUlNJTV9BS0FfU1RBVFVTX1JFUSwKK01TR19JRF9FVkFMX0VNTV9SU0lNX0FLQV9SU0lNX0FDQ0VTU19GT1JfQVVUSF9ET1dOTE9BRF9SRVEsCitNU0dfSURfRVZBTF9FTU1fUlNJTV9BVVRIX0FCT1JUX1JFUSwKKworLy8gZUNhbGwKK01TR19JRF9FVkFMX0VNTV9FQ0FMTF9URVNUX0NBTExfQVRUQUNIX1JFUSwKK01TR19JRF9FVkFMX0VNTV9FQ0FMTF9BQk9SVF9URVNUX0NBTExfQVRUQUNIX1JFUSwKK01TR19JRF9FVkFMX0VNTV9FQ0FMTF9FTkRfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1NFVF9USU1FUl9SRVEsCisKKy8vVE1PLVVTIEdJRC1NVFJSRVEtMjQ1OTAzIAorTVNHX0lEX0VWQUxfRU1NX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX1JTUCwKKworTVNHX0lEX0VWQUxfRU1NX0VDQk1fU1RBUlRfUkVRLAorTVNHX0lEX0VWQUxfRU1NX0VDQk1fU1RPUF9SRVEsCitNU0dfSURfRVZBTF9FTU1fU0VORF9EQU5fU01TX0lORCwKK01TR19JRF9FVkFMX0VNTV9ESVNDQVJEX1NZU19JTkZPX1VQREFURV9SRVEsCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU0gKEVTTSB0byBFTU0pIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBGcm9tIEVTTSAqLworTVNHX0lEX0VTTV9FTU1fQVRUQUNIX05FRURFRF9HRVRfRVNNX01TR19SU1AsCitNU0dfSURfRVNNX0VNTV9HRVRfRVNNX0NBVVNFX1JTUCwKK01TR19JRF9FU01fRU1NX1NZTkNfRVBTQl9TVEFUVVNfUkVRLAorTVNHX0lEX0VTTV9FTU1fR0VUX0VQU0JfU1RBVFVTX1JTUCwKK01TR19JRF9FU01fRU1NX0RFVEFDSF9SRVEsCitNU0dfSURfRVNNX0VNTV9JU1JfREVBQ1RfUkVRLAorTVNHX0lEX0VTTV9FTU1fUU9TX1VQREFURV9SRVEsCitNU0dfSURfRVNNX0VNTV9EQVRBX1JFUSwKK01TR19JRF9FU01fRU1NX1JFRVNUX1JFUSwKK01TR19JRF9FU01fRU1NX0FCT1JUX1JFUSwKK01TR19JRF9FU01fRU1NX1JBVF9DSEFOR0VfUlNQLAorTVNHX0lEX0VTTV9FTU1fUkFUX0NIQU5HRV9SRVEsCitNU0dfSURfRVNNX0VNTV9SQVRfQ0hBTkdFX0VQU0JfU1RBVFVTX1JFUSwKK01TR19JRF9FU01fRU1NX0VNQ19CRUFSRVJfU1RBVFVTX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VTTV9FTU1fVVBEQVRFX0VQU0JfU1RBVFVTX1JTUCwgLy8gZm9yIElNUworTVNHX0lEX0VTTV9FTU1fRU5URVJfRU1DX0FUVEFDSF9SU1AsICAvLyBmb3IgSU1TCitNU0dfSURfRVNNX0VNTV9RVUVSWV9VTF9EQVRBX1NUQVRVU19SU1AsCitNU0dfSURfRVNNX0VNTV9DMktfSVJBVF9DT01QTEVURV9SRVEsCitNU0dfSURfRVNNX0VNTV9OT1RJRllfRVNNX0VWRU5UX1JFUSwgLy9WelcKK01TR19JRF9FU01fRU1NX1NFU1NJT05fQkVHSU5fUkVRLCAgICAvLyBfX01VTFRJUExFX1BTX18KK01TR19JRF9FU01fRU1NX1NFU1NJT05fRU5EX1JFUSwgICAgICAvLyBfX01VTFRJUExFX1BTX18KK01TR19JRF9FU01fRU1NX1BFUlNJU1RFTlRfRVBTQkNfVVBEQVRFX1JFUSwgICAgLy9fX1BFUlNJU1RfRVBTQkNfXyAKK01TR19JRF9FU01fRU1NX0VQU19CRUFSRVJfSU5GT19SRVEsCitNU0dfSURfRVNNX0VNTV9WRE1fSU1TX1ZPSUNFX1NUQVRVU19SRVEsCitNU0dfSURfRVNNX0VNTV9JQV9BUE5fQ0hBTkdFX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NIChFUlJDIHRvIEVNTSkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogRnJvbSBFUlJDICovIAorTVNHX0lEX0VNTV9FUlJDX0FDVElWQVRJT05fQ05GLAorTVNHX0lEX0VNTV9FUlJDX1JBVF9CQU5EX0NORiwKK01TR19JRF9FTU1fRVJSQ19FU1RBQkxJU0hfQ05GLAorTVNHX0lEX0VNTV9FUlJDX1JFTEVBU0VfQ05GLAorTVNHX0lEX0VNTV9FUlJDX1JFTEVBU0VfSU5ELAorTVNHX0lEX0VNTV9FUlJDX0RBVEFfQ05GLAorTVNHX0lEX0VNTV9FUlJDX0RBVEFfSU5ELAorTVNHX0lEX0VNTV9FUlJDX0RBVEFfQUJPUlRfQ05GLAorTVNHX0lEX0VNTV9FUlJDX0VQU0JFQVJFUl9EQVRBX0lORCwKK01TR19JRF9FTU1fRVJSQ19BQ19TVEFUVVNfSU5ELAorTVNHX0lEX0VNTV9FUlJDX0tFWV9VUERBVEVfQ05GLAorTVNHX0lEX0VNTV9FUlJDX1RFU1RfQ05GLAorTVNHX0lEX0VNTV9FUlJDX01CTVNfUEFDS0VUX0NPVU5URVJfQ05GLAorTVNHX0lEX0VNTV9FUlJDX09PU19JTkQsCitNU0dfSURfRU1NX0VSUkNfQ0VMTFNFTEVDVF9DTkYsCitNU0dfSURfRU1NX0VSUkNfQ0VMTFNFTEVDVF9JTkQsCitNU0dfSURfRU1NX0VSUkNfUExNTl9GT1VORF9JTkQsCitNU0dfSURfRU1NX0VSUkNfUExNTkxJU1RfQ05GLAorTVNHX0lEX0VNTV9FUlJDX1JFU1VNRV9DTkYsCitNU0dfSURfRU1NX0VSUkNfUEFHRV9JTkQsCitNU0dfSURfRU1NX0VSUkNfRVhDTFVTSVZFX0NPTlRST0xfQ05GLAorTVNHX0lEX0VNTV9FUlJDX1JBVF9DSEFOR0VfQ05GLAorTVNHX0lEX0VNTV9FUlJDX1JBVF9DSEFOR0VfSU5ELAorTVNHX0lEX0VNTV9FUlJDX0NTRkJfRkFJTFVSRV9JTkQsCitNU0dfSURfRU1NX0VSUkNfU1RBTkRCWV9DTkYsCitNU0dfSURfRU1NX0VSUkNfU1RBTkRCWV9JTkQsCitNU0dfSURfRU1NX0VSUkNfUEFSQU1fVVBEQVRFX0NORiwKK01TR19JRF9FTU1fRVJSQ19RT1NfVVBEQVRFX0NORiwKK01TR19JRF9FTU1fRVJSQ19TSUdOQUxfQVBQRUFSX0lORCwKK01TR19JRF9FTU1fRVJSQ19DU0dfTElTVF9DTkYsCitNU0dfSURfRU1NX0VSUkNfQ1NHX0xJU1RfU1RPUF9DTkYsCitNU0dfSURfRU1NX0VSUkNfU1RBVFVTX1VQREFURV9DTkYsCitNU0dfSURfRU1NX0VSUkNfU0tJUF9JUkNDT19TVEFHRTJfSU5ELAorTVNHX0lEX0VNTV9FUlJDX0NFTExfQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fRVJSQ19HRU1JTklfU1VTUEVORF9JTkQsCitNU0dfSURfRU1NX0VSUkNfT09TX1NFQVJDSF9JTkQsCitNU0dfSURfRU1NX0VSUkNfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwgLy9mb3IgQzJLCitNU0dfSURfRU1NX0VSUkNfR0VNSU5JX1ZJUlRVQUxfTU9ERV9JTkQsCitNU0dfSURfRU1NX0VSUkNfRUFSTFlfT09TX0RJU1BMQVlfSU5ELAorTVNHX0lEX0VNTV9FUlJDX05FRURfRFVQTEVYX01PREVfQ0hHX0lORCwKK01TR19JRF9FTU1fRVJSQ19MT0NBTF9SRUxFQVNFX1RSSUdHRVJfSU5ELAorTVNHX0lEX0VNTV9FUlJDX1NFVF9BQ1RJVkVfUkFUX0NORiwKK01TR19JRF9FTU1fRVJSQ19VRV9DQVBfRU5RVUlSWV9FVVRSQV9OVEYsCitNU0dfSURfRU1NX0VSUkNfQ0FQQUJJTElUWV9DSEFOR0VfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU0gKE1NIHRvIEVNTSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBGcm9tIE1NICovCitNU0dfSURfTU1fRU1NX0lOSVRfTkFTX0NUWFRfUlNQLAorTVNHX0lEX01NX0VNTV9HTU1fVVBEQVRFX1JFR0lTVFJBVElPTl9SRVEsCitNU0dfSURfTU1fRU1NX0dNTV9VUERBVEVfREVSRUdJU1RSQVRJT05fUkVRLAorTVNHX0lEX01NX0VNTV9NTV9VUERBVEVfUkVHSVNUUkFUSU9OX1JFUSwKK01TR19JRF9NTV9FTU1fTU1fVVBEQVRFX0RFUkVHSVNUUkFUSU9OX1JFUSwKK01TR19JRF9NTV9FTU1fQ1NGQl9SRVEsCitNU0dfSURfTU1fRU1NX0NTRkJfU1RPUF9SRVEsCitNU0dfSURfTU1fRU1NX0NTRkJfUEFHRV9SU1AsCitNU0dfSURfTU1fRU1NX0NTRkJfUEFHRV9DT05GSUdfUkVRLAorTVNHX0lEX01NX0VNTV9JU1JfVVBEQVRFX1JFUSwKK01TR19JRF9NTV9FTU1fVVBEQVRFX1NFQ1VSSVRZX1NUQVRVU19JTkQsCitNU0dfSURfTU1fRU1NX05BU19DVFhUX1RSQU5TRkVSX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NIChFTlBEQ1AgdG8gRU1NKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRnJvbSBFTlBEQ1AgKi8KK01TR19JRF9FTU1fRU5QRENQX0RFVEVDVElPTl9USU1FUjNfVElNRU9VVF9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTSAoTkFTX1NWIHRvIEVNTSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBGcm9tIE5BU19TViAqLworTVNHX0lEX05BU19TVl9FTU1fU0VUX0lNU19WT0lDRV9BVkFJTEFCSUxJVFlfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fU0VUX0lNU19WT0lDRV9URVJNSU5BVElPTl9SRVEsIAorTVNHX0lEX05BU19TVl9FTU1fSU5JVF9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9VRU1PREVfUEFSQU1fVVBEQVRFX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX1BMTU5fTElTVF9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX0lOVkFMSURfU0lNX1JFQ09WRVJfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fU1lTX0lORk9fVVBEQVRFX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX1JFR05fU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9HTE9CQUxfTU9ERV9DSEFOR0VfU1RBUlRfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fUkVTVU1FX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fUlBMTU5fRVFfUExNTl9MSVNUX1VQREFURV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9FTUNfRlBMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fU0VBUkNIX1BSRUZFUkVOQ0VfVVBEQVRFX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX0hWT0xURV9NT0RFX0NIQU5HRV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9TTVNfRVNUX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX1NNU19VTklUREFUQV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9MQ1NfREFUQV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9MUFBfREFUQV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9BQ1RJVkVfU0lNX0lORk9fUkVRLAorTVNHX0lEX05BU19TVl9FTU1fQzJLX0NTRkJfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fQzJLX0NTRkJfU1RPUF9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9DMktfRk9SQ0VfVE9fTE9DQUxfREVUQUNIX1JFUSwgCitNU0dfSURfTkFTX1NWX0VNTV9DTEVBUl9GT1JCSURERU5fVEFfTElTVF9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9GQUNUT1JZX1JFU0VUX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX0lNU19SRUdfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9DTEVBUl9UMzM0Nl9FUExNTl9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9TRVRfUEdDSEVDS19SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9EQVRBX0FMTE9XX1JFUSwgCitNU0dfSURfTkFTX1NWX0VNTV9EUlhfVVBEQVRFX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX0lNU19TQ01fSU5GT19SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9BQ0RDX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fSUFfQVBOX0NIQU5HRV9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9TRVRfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fUkFUX0RJU0FCTEVfQ09ORklHX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX1NFVF9NU19TVl9SRVEsIAorTVNHX0lEX05BU19TVl9FTU1fTk9USUZZX1NJTV9TV0lUQ0hfUkZPRkZfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fSFBMTU5fSU5GT19VUERBVEVfUkVRLAorTVNHX0lEX05BU19TVl9FTU1fUlNJTV9BS0FfU1RBVFVTX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX1JTSU1fQUtBX1JTSU1fQUNDRVNTX0ZPUl9BVVRIX0RPV05MT0FEX1JFUSwKK01TR19JRF9OQVNfU1ZfRU1NX1JTSU1fQVVUSF9BQk9SVF9SRVEsCitNU0dfSURfTkFTX1NWX0VNTV9TRVRfQUNUSVZFX1JBVF9SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9DQUxMCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1fRVNNSUZfQ0FMTF9EQVRBX1JFUSwKK01TR19JRF9FTU1fRVNNSUZfQ0FMTF9SRUVTVF9SRVEsCitNU0dfSURfRU1NX0VTTUlGX0NBTExfQkVBUkVSX0lORCwKK01TR19JRF9FTU1fRVNNSUZfQ0FMTF9BQk9SVF9SRVEsCitNU0dfSURfRU1NX0VTTUlGX0NBTExfU0VTU0lPTl9CRUdJTl9SRVEsICAgLy8gX19NVUxUSVBMRV9QU19fCitNU0dfSURfRU1NX0VTTUlGX0NBTExfU0VTU0lPTl9FTkRfUkVRLCAgICAgLy8gX19NVUxUSVBMRV9QU19fCitNU0dfSURfRU1NX0VSUkNJRl9DQUxMX1NUTVNJX1BBR0VfSU5ELAorTVNHX0lEX0VNTV9FUlJDSUZfQ0FMTF9DU19QQUdFX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX0NBTExfQ1NGQl9GQUlMVVJFX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX0NBTExfUkNWX0VQU0JFQVJFUl9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9DQUxMX1NORF9OQVNNU0dfQ05GLAorTVNHX0lEX0VNTV9FUlJDSUZfQ0FMTF9ORUVEX0RVUExFWF9NT0RFX0NIR19JTkQsCitNU0dfSURfRU1NX01NSUZfQ0FMTF9DU0ZCX1JFUSwKK01TR19JRF9FTU1fTU1JRl9DQUxMX0NTRkJfU1RPUF9SRVEsCitNU0dfSURfRU1NX01NSUZfQ0FMTF9DU0ZCX1BBR0VfUlNQLAorTVNHX0lEX0VNTV9NTUlGX0NBTExfQ1NGQl9QQUdFX0NPTkZJR19SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9DQUxMX1NNU19FU1RfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9TTVNfVU5JVERBVEFfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9MQ1NfREFUQV9SRVEsIC8vIGZvciBMUFAKK01TR19JRF9FTU1fRVZBTElGX0NBTExfTFBQX0RBVEFfUkVRLCAvLyBmb3IgTFBQCitNU0dfSURfRU1NX0VWQUxJRl9DQUxMX0RJU0FCTEVfSU5GT19VUERBVEVfTlRGLAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9TRVRfUEdDSEVDS19SRVEsIC8vIGZvciBMRyBuZXcgQVQgY29tbWFuZAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9DMktfQ1NGQl9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9DQUxMX0MyS19DU0ZCX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9JTVNfU0NNX0lORk9fUkVRLCAvLyBmb3IgUkVMMTIgZmVhdHVyZSBTQ00KK01TR19JRF9FTU1fRVZBTElGX0NBTExfU01TX1NUQVRVU19SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9DQUxMX01UX1NNU19PVkVSX0lNU19TVEFUVVNfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9OT1RJRllfU0lNX1NXSVRDSF9SRk9GRl9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9DQUxMX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX1JTUCwgLy9UTU8tVVMgR0lELU1UUlJFUS0yNDU5MDMKK01TR19JRF9FTU1fRVZBTElGX0NBTExfU1RBUlRfUkVMRUFTRV9EUkJfU0VTU0lPTl9USU1FUl9JTkQsCitNU0dfSURfRU1NX0VWQUxJRl9DQUxMX0dFTkVSQUxfTU9ERU1fQ09ORklHVVJFX1NFVF9SRVEsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVF9SRUxFQVNFX0RSQl9TRVNTSU9OX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfQ0FMTF9DQUxMX1NUQVRVU19JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVDM0MTdFWFRfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVDM0MTdFWFRfTVRfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVF9DU0ZCX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1QzNDE3X1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1QzNDQyX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1RfU1JfTk9UX0FMTE9XX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1RfU0VSVklDRV9SRVFVRVNUX1BST1RFQ1RfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVF9QU19QQUdJTkdfUFJPVEVDVF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfQ0FMTF9UX0NBTExfUkVMX0NTX1NFTUFQSE9SRV9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfQ0FMTF9UX1NUTVNJX1BBR0VfUkVUUllfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVF9DU0ZCX1VTRVJfUlNQX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1RfSUdOT1JFX1NBTUVfTlVNQkVSX09GX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1RfT0JTRVJWQVRJT05fUEFHSU5HX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19DQUxMX1RfREVMQVlfU0VORF9QRE5fUkVRVUVTVF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfQ0FMTF9UX1FVRVVFX1BTX1BBR0lOR19USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfQ0FMTF9UX0FDVElWRV9RVUVVRV9QU19QQUdJTkdfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1JFR19DQUxMX0FUVEFDSF9SRVNVTFRfSU5ELAorTVNHX0lEX0VNTV9SRUdfQ0FMTF9DU19OV19ERVRBQ0hfSU5ELAorTVNHX0lEX0VNTV9SRUdfQ0FMTF9SRUxfRVBTQl9DVFhUX0lORCwKK01TR19JRF9FTU1fUkVHX0NBTExfU05EX0VTTU1TR19DTkYsCitNU0dfSURfRU1NX1JFR19DQUxMX1RBVV9QRU5ESU5HX0lORCwKK01TR19JRF9FTU1fUkVHX0NBTExfU1VTUEVORF9TUl9SRVEsCitNU0dfSURfRU1NX1JFR19DQUxMX1JFU1VNRV9TUl9SRVEsCitNU0dfSURfRU1NX1JFR19DQUxMX1VFX0RFVEFDSF9JTkQsCitNU0dfSURfRU1NX1JFR19DQUxMX0xSX1NVQ0NFU1NfSU5ELAorTVNHX0lEX0VNTV9SRUdfQ0FMTF9SU0lNX0FVVEhfQUJPUlRfUkVRLCAvLyBSZW1vdGUgU0lNCitNU0dfSURfRU1NX1BMTU5TRUxfQ0FMTF9DT05PT1NfTEVBVkVMVEVfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX0NBTExfQ0VMTF9JTkZPX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9DQUxMX05PX0NFTExfSU5GT19JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfQ0FMTF9DQU1QT05fMkczR19JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfQ0FMTF9HRU1JTklfU1VTUEVORF9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfQ0FMTF9PT1NfU0VBUkNIX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9DQUxMX0dFTUlOSV9WSVJUVUFMX01PREVfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9SQVRfTFRFU0JZX0lORCwgICAgICAvLyBuZWVkIHRvIHJlbW92ZQorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9SQVRfRTJVR19GQUlMX0lORCwgICAvLyBuZWVkIHRvIHJlbW92ZQorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9BU19DT05UUk9MX0NORiwgICAgICAvLyBuZWVkIHRvIHJlbW92ZQorTVNHX0lEX0VNTV9QTE1OU0VMX0NBTExfRU1DX1NUQVRVU19VUERBVEVfSU5ELCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX1JBVENIR19DQUxMX0lSQVRfRTJVR19DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX0NBTExfSVJBVF9FMlVHX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9JTlRFUl9TWVNURU1fRTJWX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9JTlRFUl9TWVNURU1fRTJWX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9JTlRFUl9TWVNURU1fVjJFX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfQ0FMTF9JUkFUX1VHMkVfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19DQUxMX0lSQVRfRTJDX0NPTVBfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1JBVENIR19DQUxMX0lSQVRfRTJDX0ZBSUxfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1JBVENIR19DQUxMX1NUQU5EQllfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1JBVEJBTkRfQ0FMTF9TRVRfUkFUX0FCT1JUX1BST0NfUkVRLCAvLyBhYm9ydCBwcm9jZWR1cmUgZm9yIHNraXAgZGV0YWNoIGluIHNldCBSQVQKK01TR19JRF9FTU1fUkFUQkFORF9DQUxMX1NFVF9SQVRfTU9ERV9JTkQsCitNU0dfSURfRU1NX0NPTk5fQ0FMTF9SRUxfSU5ELAorTVNHX0lEX0VNTV9DT05OX0NBTExfRVNUX0NORiwKK01TR19JRF9FTU1fQ09OTl9DQUxMX0FDX1NUQVRVU19JTkQsCitNU0dfSURfRU1NX0NPTk5fQ0FMTF9BQ0RDX1NUQVRVU19DSEFOR0VfSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfQ0FMTF9SQ1ZfQ1NfU0VSVklDRV9OT1RJRklDQVRJT05fSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfQ0FMTF9SQ1ZfU0VSVklDRV9SRUpfSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfQ0FMTF9TTkRfTkFTTVNHX0NORiwKK01TR19JRF9FTU1fRVZUQ1RSTF9DQUxMX0FCT1JUX1JFUSwKKy8vTVNHX0lEX0VNTV9FVlRDVFJMX0NBTExfU1VTUEVORF9SRVEsIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCisvL01TR19JRF9FTU1fRVZUQ1RSTF9DQUxMX1JFU1VNRV9SRVEsICAvL3JlbW92ZSBTVVNQX1NVU1AgY29uZmxpY3QgcmVzb2x1dGlvbgorTVNHX0lEX0VNTV9FVlRDVFJMX0NBTExfQ09OVElOVUVfUkVRLAorTVNHX0lEX0VNTV9FVlRDVFJMX0NBTExfV0RUX1BPTExJTkdfUkVRLAorTVNHX0lEX0VNTV9TRUNfQ0FMTF9TTUNfRkFJTFVSRV9JTkQsCitNU0dfSURfRU1NX1NFQ19DQUxMX1JTSU1fQVVUSF9JTkQsCitNU0dfSURfRU1NX1NWX0NBTExfSU1TX09DQ1VQWV9IUFNfUkVRLAorTVNHX0lEX0VNTV9DQUxMX1VUX0NGR19SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9DTU5QUk9DCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1fRVJSQ0lGX0NNTlBST0NfU05EX05BU01TR19DTkYsCitNU0dfSURfRU1NX05BU01TR19DTU5QUk9DX1JDVl9JREVOVElUWV9SRVFVRVNUX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX0NNTlBST0NfUkNWX0VNTV9JTkZPUk1BVElPTl9JTkQsCitNU0dfSURfRU1NX05BU01TR19DTU5QUk9DX1JDVl9FTU1fU1RBVFVTX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX0NNTlBST0NfUkNWX0dVVElfUkVBTExPQ19DTURfSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfQ01OUFJPQ19TTkRfTkFTTVNHX0NORiwKK01TR19JRF9FTU1fUExNTlNFTF9DTU5QUk9DX0NFTExfSU5GT19JTkQsCitNU0dfSURfRU1NX0FOWV9DTU5QUk9DX1VUX0NPTkZJR19SRVEsCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU1fQ09OTgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfRU1NX0NBTExfQ09OTl9SRUxfUkVRLAorTVNHX0lEX0VNTV9DQUxMX0NPTk5fRVNUX1JFUSwKK01TR19JRF9FTU1fRVJSQ0lGX0NPTk5fRVNUQUJMSVNIX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX0NPTk5fUkVMRUFTRV9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9DT05OX1JFTEVBU0VfQ05GLAorTVNHX0lEX0VNTV9FUlJDSUZfQ09OTl9BQ19TVEFUVVNfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfQ09OTl9BQ0RDX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfQ09OTl9SRUxfUkVRLAorTVNHX0lEX0VNTV9OQVNNU0dfQ09OTl9UMzQ0MF9TVE9QX1JFUSwKK01TR19JRF9FTU1fUExNTlNFTF9DT05OX0NFTExfSU5GT19JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfQ09OTl9SRUxfUkVRLAorTVNHX0lEX0VNTV9QTE1OU0VMX0NPTk5fR0VNSU5JX1NVU1BFTkRfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX0NPTk5fR0VNSU5JX1ZJUlRVQUxfTU9ERV9JTkQsCitNU0dfSURfRU1NX1JBVENIR19DT05OX0VTVF9SRVEsCitNU0dfSURfRU1NX1JBVENIR19DT05OX1JFTF9SRVEsCitNU0dfSURfRU1NX1JBVENIR19DT05OX0lSQVRfRTJVR19DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX0NPTk5fSU5URVJfU1lTVEVNX0UyVl9DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX0NPTk5fSU5URVJfU1lTVEVNX0hPX1YyRV9DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX0NPTk5fU1RBTkRCWV9JTkQsCitNU0dfSURfRU1NX1JBVENIR19DT05OX1JBVF9IT19VMkVfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19DT05OX0lSQVRfRTJDX0NPTVBfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1JFR19DT05OX1JFTF9SRVEsCitNU0dfSURfRU1NX1JFR19DT05OX0VTVF9SRVEsCitNU0dfSURfRU1NX1JFR19DT05OX1QzNDQwX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9SRUdfQ09OTl9XQUlUX1JFTF9DT05fUkVRLAorTVNHX0lEX0VNTV9SRUdfQ09OTl9ERVJFR19DT01QX0lORCwKK01TR19JRF9FTU1fU0VDX0NPTk5fUkVMX1JFUSwKK01TR19JRF9FTU1fVElNRVJNTkdfQ09OTl9UMzQ0MF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfQ09OTl9ERVJFR19SRUxfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0NPTk5fVDMzMjRfVElNRU9VVF9JTkQsIC8vUkVMMTIgUFNNCitNU0dfSURfRU1NX1BMTU5TRUxfQ09OTl9QU01fUkVRX0lORCwgLy9SRUwxMiBQU00KK01TR19JRF9FTU1fU1ZfQ09OTl9TSU1fRVJST1JfSU5ELAorTVNHX0lEX0VNTV9DT05OX1VUX1NFVFRJTkdfQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fRVZBTElGX0NPTk5fREFUQV9BTExPV19SRVEsICAgICAgICAgICAvLyBfX01VTFRJUExFX1BTX18KK01TR19JRF9FTU1fVElNRVJNTkdfQ09OTl9UX01QU19SRUxfVElNRU9VVF9JTkQsICAgLy8gX19NVUxUSVBMRV9QU19fCitNU0dfSURfRU1NX1RJTUVSTU5HX0NPTk5fVF9JR05PUkVfUFNfUEFHSU5HX1RJTUVPVVRfSU5ELCAgIC8vIF9fTVVMVElQTEVfUFNfXworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU1fRVJSQ0lGCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1fUkVHX0VSUkNJRl9QQVJBTV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9SRUdfRVJSQ0lGX0NTR19XSElURV9MSVNUX1VQRFRfUkVRLAorTVNHX0lEX0VNTV9SRUdfRVJSQ0lGX1JFR19TVEFUVVNfVVBEQVRFX1JFUSwgLy9fX1JFTDEwX18gQ1IwODk0ICsgZm9yIEMySworTVNHX0lEX0VNTV9SRUdfRVJSQ0lGX1BST0NfUkVTVUxUX1VQREFURV9SRVEsIC8vVlpfUkVRX0xURURBVEFSRVRSWV8zOTg2MQorTVNHX0lEX0VNTV9SRUdfRVJSQ0lGX05BU19GQUlMX0hBTkRMRV9SRVEsCitNU0dfSURfRU1NX1JFR19FUlJDSUZfU1lOQ19DT05ORUNUSU9OX1NUQVRVU19OVEYsCitNU0dfSURfRU1NX0NBTExfRVJSQ0lGX0NTR19XSElURV9MSVNUX1VQRFRfUkVRLAorTVNHX0lEX0VNTV9DQUxMX0VSUkNJRl9QQVJBTV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9DQUxMX0VSUkNJRl9DU0ZCX05URiwKK01TR19JRF9FTU1fQ0FMTF9FUlJDSUZfUFJPQ19SRVNVTFRfVVBEQVRFX1JFUSwgLy9WWl9SRVFfTFRFREFUQVJFVFJZXzM5ODYxCitNU0dfSURfRU1NX0NBTExfRVJSQ0lGX05BU19GQUlMX0hBTkRMRV9SRVEsCitNU0dfSURfRU1NX0NBTExfRVJSQ0lGX0RBVEFfQUJPUlRfUkVRLAorTVNHX0lEX0VNTV9DQUxMX0VSUkNJRl9TWU5DX0NPTk5FQ1RJT05fU1RBVFVTX05URiwKK01TR19JRF9FTU1fUExNTlNFTF9FUlJDSUZfUExNTkxJU1RfUkVRLAorTVNHX0lEX0VNTV9QTE1OU0VMX0VSUkNJRl9DU0dfTElTVF9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfRVJSQ0lGX0NTR19MSVNUX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9QTE1OU0VMX0VSUkNJRl9DRUxMU0VMRUNUX1JFUSwKK01TR19JRF9FTU1fUExNTlNFTF9FUlJDSUZfTldTRUxfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfRVJSQ0lGX1BMTU5fTElTVF9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fUExNTlNFTF9FUlJDSUZfUEFSQU1fVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fUExNTlNFTF9FUlJDSUZfU0VBUkNIX1BSRUZFUkVOQ0VfVVBEQVRFX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9QTE1OU0VMX0VSUkNJRl9DU0dfV0hJVEVfTElTVF9VUERUX1JFUSwgLy8gbW9kaWZpZWQgd2l0aCBJTVMKK01TR19JRF9FTU1fUExNTlNFTF9FUlJDSUZfQ0hFQ0tfU0VSVklOR19TVUlUQUJJTElUWV9SRVEsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fUExNTlNFTF9FUlJDSUZfU1RBTkRCWV9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfRVJSQ0lGX1JBVF9ESVNBQkxFX0NPTkZJR19SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfRVJSQ0lGX0hQTE1OX0lORk9fVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fUkFUQ0hHX0VSUkNJRl9SQVRfQ0hBTkdFX1JFUSwKK01TR19JRF9FTU1fUkFUQ0hHX0VSUkNJRl9SQVRfQ0hBTkdFX1JTUCwKK01TR19JRF9FTU1fUkFUQ0hHX0VSUkNJRl9TVEFOREJZX1JFUSwKK01TR19JRF9FTU1fUkFUQ0hHX0VSUkNJRl9SRVNVTUVfUkVRLAorTVNHX0lEX0VNTV9SQVRDSEdfRVJSQ0lGX1JFR19TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fUkFUQ0hHX0VSUkNJRl9SQVRfQ0hBTkdFX0NBVVNFX1VQREFURV9SRVEsCitNU0dfSURfRU1NX1JBVENIR19FUlJDSUZfQzJLX0lSQVRfQ09NUExFVEVfUkVRLAorTVNHX0lEX0VNTV9SQVRDSEdfRVJSQ0lGX1NFVF9BQ1RJVkVfUkFUX1JFUSwKK01TR19JRF9FTU1fU0VDX0VSUkNJRl9LRVlfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fU0VDX0VSUkNJRl9QQVJBTV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9TRUNfRVJSQ0lGX05VTExfU0VDVVJJVFlfQUNDRVBUX1JFUSwKK01TR19JRF9FTU1fU0VDX0VSUkNJRl9EQVRBX0FCT1JUX1JFUSwKK01TR19JRF9FTU1fQ09OTl9FUlJDSUZfRVNUQUJMSVNIX1JFUSwKK01TR19JRF9FTU1fQ09OTl9FUlJDSUZfUkVMRUFTRV9SRVEsCitNU0dfSURfRU1NX0NPTk5fRVJSQ0lGX1JFTEVBU0VfUlNQLAorTVNHX0lEX0VNTV9DT05OX0VSUkNJRl9QQVJBTV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9DT05OX0VSUkNJRl9OQVNfRkFJTF9IQU5ETEVfUkVRLAorTVNHX0lEX0VNTV9DT05OX0VSUkNJRl9EQVRBX0FMTE9XX1JFUSwgICAgICAgICAgICAgLy8gX19NVUxUSVBMRV9QU19fCitNU0dfSURfRU1NX0NPTk5fRVJSQ0lGX1BST0NfUkVTVUxUX1VQREFURV9SRVEsIC8vVlpfUkVRX0xURURBVEFSRVRSWV8zOTg2MQorTVNHX0lEX0VNTV9DTU5QUk9DX0VSUkNJRl9QQVJBTV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9OQVNNU0dfRVJSQ0lGX0RBVEFfUkVRLAorTVNHX0lEX0VNTV9OQVNNU0dfRVJSQ0lGX1NFTlNJVElWRV9EQVRBX1JFUSwKK01TR19JRF9FTU1fRVNNSUZfRVJSQ0lGX1FPU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FU01JRl9FUlJDSUZfRVBTX0JFQVJFUl9JTkZPX1JFUSwKK01TR19JRF9FTU1fRVNNSUZfRVJSQ0lGX1ZETV9JTVNfVk9JQ0VfU1RBVFVTX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX0VSUkNJRl9TWU5DX0NPTk5FQ1RJT05fU1RBVFVTX05URiwKK01TR19JRF9FTU1fU1ZfRVJSQ0lGX0FDVElWQVRJT05fUkVRLAorTVNHX0lEX0VNTV9TVl9FUlJDSUZfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9TVl9FUlJDSUZfQ1NHX1dISVRFX0xJU1RfVVBEVF9SRVEsCitNU0dfSURfRU1NX1NWX0VSUkNJRl9TSU1fRklMRV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9TVl9FUlJDSUZfUEFSQU1fVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fUkFUQkFORF9FUlJDSUZfUkFUX0JBTkRfUkVRLAorTVNHX0lEX0VNTV9SQVRCQU5EX0VSUkNJRl9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLCAvL2ZvciBDMksKK01TR19JRF9FTU1fRVRDSUZfRVJSQ0lGX1RFU1RfUkVRLAorTVNHX0lEX0VNTV9FVENJRl9FUlJDSUZfTUJNU19QQUNLRVRfQ09VTlRFUl9SRVEsCitNU0dfSURfRU1NX0VUQ0lGX0VSUkNJRl9VUERBVEVfVUVfTE9DQVRJT05fSU5GT1JNQVRJT05fUkVRLAorTVNHX0lEX0VNTV9DQUxMX0VSUkNJRl9HRU1JTklfQ1NGQl9TVEFUVVNfUkVRLAorTVNHX0lEX0VNTV9DQUxMX0VSUkNJRl9TRVRfUEdDSEVDS19SRVEsIC8vIGZvciBMRyBuZXcgQVQgY29tbWFuZAorTVNHX0lEX0VNTV9FVlRDVFJMX0VSUkNJRl9MT0NBTF9SRUxFQVNFX1RSSUdHRVJfUlNQLAorTVNHX0lEX0VNTV9FUlJDSUZfVVRfQ09ORklHX1JFUSwKK01TR19JRF9FTU1fRVJSQ0lGX1VUX1NUQVRVU19JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9FU01JRiAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VNTV9SRUdfRVNNSUZfR0VUX0VQU0JfU1RBVFVTX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX0RBVEFfUkVTVU1FX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX0RBVEFfU1VTUEVORF9JTkQsCitNU0dfSURfRU1NX1JFR19FU01JRl9BVFRBQ0hfTkVFREVEX0dFVF9FU01fTVNHX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX1VQREFURV9FUFNCX1NUQVRVU19JTkQsCitNU0dfSURfRU1NX1JFR19FU01JRl9ERVJFR19JTkQsCitNU0dfSURfRU1NX1JFR19FU01JRl9HRVRfRVNNX0NBVVNFX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX1FVRVJZX1VMX0RBVEFfU1RBVFVTX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX0VNQ19BVFRBQ0hfUkVKX0lORCwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9SRUdfRVNNSUZfRU1DX0RBVEFfRkFJTF9JTkQsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fUkVHX0VTTUlGX1NUT1BfVDMzOTZfSU5ELCAvLyBmb3IgX19SRUwxMF9fOiB0MzM5NgorTVNHX0lEX0VNTV9SRUdfRVNNSUZfU1RPUF9QRE5fVEhST1RUX1RJTUVSX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX1QzNDAyX1NUQVJUX0lORCwKK01TR19JRF9FTU1fUkVHX0VTTUlGX1QzNDAyX1NUT1BfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVNNSUZfVDM0MDJfQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fQ0FMTF9FU01JRl9EQVRBX0NORiwKK01TR19JRF9FTU1fQ0FMTF9FU01JRl9EQVRBX1NFTkRfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VTTUlGX1JFRVNUX1JFSiwKK01TR19JRF9FTU1fQ0FMTF9FU01JRl9BQk9SVF9DTkYsCitNU0dfSURfRU1NX0NBTExfRVNNSUZfQUNfQkFSX0FMTEVWSUFURV9JTkQsCitNU0dfSURfRU1NX1JBVENIR19FU01JRl9SQVRfQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX0VTTUlGX1JBVF9DSEFOR0VfQ05GLAorTVNHX0lEX0VNTV9DT05OX0VTTUlGX0NPTk5fUkVMRUFTRV9JTkQsCitNU0dfSURfRU1NX05BU01TR19FU01JRl9FUFNCRUFSRVJfREFUQV9JTkQsCitNU0dfSURfRU1NX05BU01TR19FU01JRl9EQVRBX0lORCwKK01TR19JRF9FTU1fU0VDX0VTTUlGX0VOVEVSX0VNQ19BVFRBQ0hfSU5ELCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX1NWX0VTTUlGX0lNU19SRUdfU1RBVFVTX1VQREFURV9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0VTTUlGX1QzNDAyX1NUT1BfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX0VTTUlGX0dFTUlOSV9TVVNQRU5EX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9FU01JRl9HRU1JTklfUkVTVU1FX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9FU01JRl9DRUxMX0lORk9fSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU1fRVRDSUYKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VNTV9FUlJDSUZfRVRDSUZfREFUQV9DTkYsCitNU0dfSURfRU1NX05BU01TR19FVENJRl9EQVRBX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX0VUQ0lGX0RBVEFfQ05GLAorTVNHX0lEX0VNTV9FUlJDSUZfRVRDSUZfVEVTVF9DTkYsCitNU0dfSURfRU1NX0VSUkNJRl9FVENJRl9NQk1TX1BBQ0tFVF9DT1VOVEVSX0NORiwKK01TR19JRF9FTU1fUkVHX0VUQ0lGX0RFVEFDSF9JTkQsCitNU0dfSURfRU1NX0NPTk5fRVRDSUZfUkVMX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NX0VWQUxJRgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfRU1NX1JFR19FVkFMSUZfREVUQUNIX0lORCwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9BVFRBQ0hfQ05GLAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX05XX0VDQ19JTkQsCitNU0dfSURfRU1NX1JFR19FVkFMSUZfTk9OXzNHUFBfTldfUE9MSUNJRVNfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX1JFR05fUkVTVUxUX0lORCwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9CUk9BRENBU1RfUkVHTl9SRVNVTFRfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX0RJU0FCTEVfTldfTE9TU19PUFRJTUlaRV9JTkQsCitNU0dfSURfRU1NX1JFR19FVkFMSUZfTldfUkVKRUNUX0lORCwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9OV19GRUFUVVJFX1NVUFBPUlRfSU5ELCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX1JFR19FVkFMSUZfRU1DX0FUVEFDSF9DTkYsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9FTUNfREVUQUNIX0lORCwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9SRUdfRVZBTElGX1QzNDAyX0NIQU5HRV9JTkQsIC8vIF9fUkVMMTBfXzogdDM0MDIKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9UMzQwMl9TVE9QX0lORCwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9QRVJTSVNURU5UX0VQU0JfUkVMX0lORCwgLy8gX19SRUwxMF9fOiBwZXJzaXN0ZW50IEVQU0IKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9QTE1OX1JFU1RSSUNUSU9OX0NIQU5HRV9JTkQsCitNU0dfSURfRU1NX1JFR19FVkFMSUZfQzJLX0lSQVRfQVRUQUNIX1JFU1VMVF9JTkQsIC8vIGZvciBDMksKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9VUERBVEVfRU1DX1BETl9TVEFUVVNfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX1JTSU1fQVVUSF9BQk9SVF9DTkYsIC8vIFJlbW90ZSBTSU0KK01TR19JRF9FTU1fUkVHX0VWQUxJRl9JTVNfSEFORE9WRVJfTkVFRF9TRUFSQ0hfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX0lBX0FQTl9DSEFOR0VfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX0lBX0FQTl9OT1RfUkVBRFlfSU5ELAorLy8gZUNhbGwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9FQ0FMTF9URVNUX0NBTExfQVRUQUNIX0NORiwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9FQ0FMTF9BQk9SVF9URVNUX0NBTExfQVRUQUNIX0NORiwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9FQ0FMTF9SRUdJU1RSQVRJT05fU1RBVEVfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9DU0ZCX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9TTVNfRVNUX0NORiwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfU01TX0VTVF9SRUosCitNU0dfSURfRU1NX0NBTExfRVZBTElGX1NNU19FUlJfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9MQ1NfREFUQV9DTkYsIC8vIGZvciBMUFAKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfTFBQX0RBVEFfQ05GLCAvLyBmb3IgTFBQCitNU0dfSURfRU1NX0NBTExfRVZBTElGX1NNU19VTklUREFUQV9DTkYsCitNU0dfSURfRU1NX0NBTExfRVZBTElGX1NSX0ZBSUxVUkVfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9TUl9SRUpFQ1RfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9SQUNIX1JFSkVDVF9JTkQsCitNU0dfSURfRU1NX0NBTExfRVZBTElGX0lNU19TQ01fSU5GT19DTkYsCitNU0dfSURfRU1NX0NBTExfRVZBTElGX1BMTU5fUkVTVFJJQ1RJT05fQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfQzJLX0NTRkJfQ05GLAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9DMktfQ1NGQl9TVE9QX0NORiwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfQzJLX0NTRkJfU1RBUlRfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9DMktfQ1NGQl9FU1RfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9DMktfQ1NGQl9TVE9QX0lORCwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfTkVFRF9EVVBMRVhfTU9ERV9DSEdfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9NVF9QQUdFX0lORCwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfU0VORF9FU1JfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9DQVVTRV9JTkZPX0lORCwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfQ1NfU0VSVklDRV9OT1RJRklDQVRJT05fSU5ELCAvL1RNTy1VUyBHSUQtTVRSUkVRLTI0NTkwMyAKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfRFJCX1NFU1NJT05fU1RBVFVTX05URiwKK01TR19JRF9FTU1fQ0FMTF9FVkFMSUZfUEFHSU5HX1BST1RFQ1RFRF9USU1FUl9NQVhfSU5ELAorTVNHX0lEX0VNTV9DQUxMX0VWQUxJRl9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9TRVRfQ05GLAorTVNHX0lEX0VNTV9DT05OX0VWQUxJRl9CQVJSSU5HX1NUQVRVU19JTkQsCitNU0dfSURfRU1NX0NPTk5fRVZBTElGX0VTVEFCTElTSE1FTlRfSU5ELAorTVNHX0lEX0VNTV9DT05OX0VWQUxJRl9DT05ORUNUSU9OX0lORk9fSU5ELAorTVNHX0lEX0VNTV9DT05OX0VWQUxJRl9BQ0RDX1NUQVRVU19VUERBVEVfQ05GLAorTVNHX0lEX0VNTV9DT05OX0VWQUxJRl9BTllfT1BFUkFUSU9OX0FMTE9XX0NORiwKK01TR19JRF9FTU1fQ09OTl9FVkFMSUZfQU5ZX09QRVJBVElPTl9BTExPV19OT19BQ1RJT05fSU5ELAorTVNHX0lEX0VNTV9FVlRDVFJMX0VWQUxJRl9BTllfT1BFUkFUSU9OX0NORiwKK01TR19JRF9FTU1fQ09OTl9FVkFMSUZfTE9DQUxfUkVMRUFTRV9SRUNPVkVSWV9DTkYsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX1BMTU5fTElTVF9DTkYsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX1BMTU5fTElTVF9TVE9QX0NORiwKK01TR19JRF9FTU1fUExNTlNFTF9FVkFMSUZfUExNTl9TRUFSQ0hfQ05GLAorTVNHX0lEX0VNTV9QTE1OU0VMX0VWQUxJRl9QTE1OX1NFQVJDSF9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX1NZU19JTkZPX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9FVkFMSUZfUExNTl9MT1NTX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9FVkFMSUZfT1VUX09GX1NFUlZJQ0VfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX0VWQUxJRl9OT19BQ1RJT05fSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX0VWQUxJRl9QTE1OX0ZPVU5EX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9FVkFMSUZfQ1NHX0xJU1RfQ05GLAorTVNHX0lEX0VNTV9QTE1OU0VMX0VWQUxJRl9DU0dfTElTVF9TVE9QX0NORiwKK01TR19JRF9FTU1fUExNTlNFTF9FVkFMSUZfU0lHTkFMX0FQUEVBUl9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX0NMRUFSX0ZPUkJJRERFTl9UQV9ORUVEX1NFQVJDSF9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX1JFR05fUkVTVUxUX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9FVkFMSUZfQ0VMTF9JTkZPX1VQREFURV9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX0RFVEFDSF9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX0VNRVJHRU5DWV9TVEFUVVNfVVBEQVRFX0lORCwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9QTE1OU0VMX0VWQUxJRl9SRVNFTEVDVF9TSEFSRURfTldfSU5ELCAvLyBmb3IgSU1TIF9fNjI5M0RFVl9fCitNU0dfSURfRU1NX1BMTU5TRUxfRVZBTElGX1JFU1VNRV9ORUVERURfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfRVZBTElGX0RFQUNUSVZBVEVfQ05GLAorTVNHX0lEX0VNTV9SQVRDSEdfRVZBTElGX05BU19DVFhUX1RSQU5TRkVSX0NORiwKKy8vTVNHX0lEX0VNTV9SQVRDSEdfRVZBTElGX0wyQ19UUkFOU0ZFUl9DTkYsICAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1JBVENIR19FVkFMSUZfU1JWQ0NfU1RBVFVTX1VQREFURV9JTkQsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fUkFUQ0hHX0VWQUxJRl9JUkFUX0MyTF9TVUNDRVNTX05PVElGWV9JTkQsIC8vIGZvciBDMksKK01TR19JRF9FTU1fUkFUQ0hHX0VWQUxJRl9TRUFSQ0hfSU5URVJSVVBUX0VWRU5UX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX0VWQUxJRl9TRVRfQUNUSVZFX1JBVF9DTkYsCitNU0dfSURfRU1NX1JBVENIR19FVkFMSUZfQU5ZX0VWRU5UX1VQREFURV9JTkQsCitNU0dfSURfRU1NX1NFQ19FVkFMSUZfUlNJTV9BVVRIX0ZJTklTSF9JTkQsIC8vIFItU0lNCitNU0dfSURfRU1NX1NFQ19FVkFMSUZfQVVUSEVOVElDQVRFX0lORCwKK01TR19JRF9FTU1fQ01OUFJPQ19FVkFMSUZfTldfSU5GT19JTkQsCitNU0dfSURfRU1NX1JBVEJBTkRfRVZBTElGX0JST0FEQ0FTVF9ERVRBQ0hfUkVRVUlSRURfSU5ELAorTVNHX0lEX0VNTV9SQVRCQU5EX0VWQUxJRl9TRVRfUkFUX01PREVfQ05GLAorTVNHX0lEX0VNTV9SQVRCQU5EX0VWQUxJRl9SRk9GRl9DTkYsCitNU0dfSURfRU1NX1JBVEJBTkRfRVZBTElGX0RVUExFWF9NT0RFX0NIQU5HRV9DTkYsICAgLy9mb3IgQzJLCitNU0dfSURfRU1NX05BU01TR19FVkFMSUZfU01TX1VOSVREQVRBX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX0VWQUxJRl9MUFBfREFUQV9JTkQsIC8vIGZvciBMUFAKK01TR19JRF9FTU1fTkFTTVNHX0VWQUxJRl9MQ1NfREFUQV9JTkQsIC8vIGZvciBMUFAKK01TR19JRF9FTU1fQ09OTl9FVkFMSUZfUkVMRUFTRV9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0VWQUxJRl9QTE1OX1JFU1RSSUNUSU9OX0NIQU5HRV9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0VWQUxJRl9TUl9GQUlMVVJFX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfRVZBTElGX0NBQlRTUklfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19FVkFMSUZfQlJPQURDQVNUX1RJTUVSX1NUQVRVU19JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX0VWQUxJRl9UMzQwMl9TVE9QX0lORCwKK01TR19JRF9FTU1fU1ZfRVZBTElGX1BMTU5fUkVTVFJJQ1RJT05fQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fU1ZfRVZBTElGX1NJTV9SRVNFVF9DT01QTEVURV9JTkQsCitNU0dfSURfRU1NX1NWX0VWQUxJRl9NRV9SRUNPTkZJR1VSRV9DTkYsCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfRFJYX1VQREFURV9DTkYsCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfRFJYX1VQREFURV9JTkQsCisKKworTVNHX0lEX0VNTV9SQVRDSEdfRVZBTElGX0FTX1BBUkFNX1VQREFURV9JTkQsCisKK01TR19JRF9FTU1fRVZBTElGX1JFR19DRUxMX0JBTkRfSU5GT19VUERBVEVfSU5ELCAgLy8gRm9yIFZ6VyAoVlpfUkVRX2U5MTFfMzAyMDMpCitNU0dfSURfRU1NX1JFR19FVkFMSUZfRU1NX01TR19JTkQsICAgICAgICAgICAgICAgIC8vIEZvciBWelcgVm9XaWZpIFRDMy4yCitNU0dfSURfRU1NX1JFR19FVkFMSUZfQ1NfRE9NQUlOX05PVF9BVkFJTEFCTEVfSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX0NBVVNFX0lORk9fSU5ELAorTVNHX0lEX0VNTV9SRUdfRVZBTElGX1RBVV9GQUlMVVJFX0lORCwKKworTVNHX0lEX0VNTV9TVl9FVkFMSUZfR0VORVJBTF9NT0RFTV9DT05GSUdVUkVfU0VUX0NORiwKK01TR19JRF9FTU1fUkVHX0VWQUxJRl9BTllfR0VORVJBTF9NT0RFTV9DT05GSUdVUkVfU0VUX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogCQkJCQkJIERlc3RpbmF0aW9uOiBFTU1fTVNQTUlGCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIE1TR19JRF9FTU1fQ0FMTF9NU1BNSUZfU0VTU0lPTl9TVEFSVF9OVEYsCisgTVNHX0lEX0VNTV9DQUxMX01TUE1JRl9TRVNTSU9OX0VORF9OVEYsCisgTVNHX0lEX0VNTV9SRUdfTVNQTUlGX1NFU1NJT05fU1RBUlRfTlRGLAorIE1TR19JRF9FTU1fUkVHX01TUE1JRl9TRVNTSU9OX0VORF9OVEYsCisgTVNHX0lEX0VNTV9TRUNfTVNQTUlGX1NFU1NJT05fU1RBUlRfTlRGLAorIE1TR19JRF9FTU1fU0VDX01TUE1JRl9TRVNTSU9OX0VORF9OVEYsCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU1fRVZUQ1RSTAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBFTkRfSU5EICovCitNU0dfSURfRU1NX1NWX0VWVENUUkxfRU5EX0lORCwKK01TR19JRF9FTU1fUkFUQkFORF9FVlRDVFJMX0VORF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19FVlRDVFJMX0VORF9JTkQsCitNU0dfSURfRU1NX1JFR19FVlRDVFJMX0VORF9JTkQsCitNU0dfSURfRU1NX0NBTExfRVZUQ1RSTF9FTkRfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX0VWVENUUkxfRU5EX0lORCwKKy8qIEFCT1JUX0NORiAqLworTVNHX0lEX0VNTV9TVl9FVlRDVFJMX0FCT1JUX0NORiwKK01TR19JRF9FTU1fUkFUQkFORF9FVlRDVFJMX0FCT1JUX0NORiwKK01TR19JRF9FTU1fUkFUQ0hHX0VWVENUUkxfQUJPUlRfQ05GLAorTVNHX0lEX0VNTV9SRUdfRVZUQ1RSTF9BQk9SVF9DTkYsCitNU0dfSURfRU1NX0NBTExfRVZUQ1RSTF9BQk9SVF9DTkYsCitNU0dfSURfRU1NX1BMTU5TRUxfRVZUQ1RSTF9BQk9SVF9DTkYsCisvKiBTVVNQRU5EX0NORiAqLworI2lmIDAgLy9yZW1vdmUgU1VTUF9TVVNQIGNvbmZsaWN0IHJlc29sdXRpb24KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorLyogVElNRVJNTkcgKi8KK01TR19JRF9FTU1fVElNRVJNTkdfRVZUQ1RSTF9XRFRfVElNRU9VVF9JTkQsCisvKkVSUkNJRiovCitNU0dfSURfRU1NX0VSUkNJRl9FVlRDVFJMX0xPQ0FMX1JFTEVBU0VfVFJJR0dFUl9JTkQsCisvKkNPTk4qLworTVNHX0lEX0VNTV9DT05OX0VWVENUUkxfUkVMX0lORCwKKy8qRVZBTElGKi8KK01TR19JRF9FTU1fRVZBTElGX0NPTk5fQU5ZX09QRVJBVElPTl9BTExPV19SRVEsCisvKiBGb3IgVVQgKi8KK01TR19JRF9FTU1fRVZUQ1RSTF9VVF9TVEFSVF9SRVEsCitNU0dfSURfRU1NX0VWVENUUkxfVVRfU1RPUF9SRVEsCitNU0dfSURfRU1NX0VWVENUUkxfVVRfU1RBVEVfU0VUX1JFUSwKK01TR19JRF9FTU1fRVZUQ1RSTF9VVF9FVkVOVF9TVEFSVF9SRVEsCitNU0dfSURfRU1NX0VWVENUUkxfVVRfUFVCTElDX0FQSV9SRVEsCitNU0dfSURfRU1NX0VWVENUUkxfVVRfUFVCTElDX0FQSV9DTkYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9NTUlGCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1fUkVHX01NSUZfSVNSX1VQREFURV9JTkQsCitNU0dfSURfRU1NX1JFR19NTUlGX0VNTV9VUERBVEVfUkVHSVNUUkFUSU9OX0lORCwKK01TR19JRF9FTU1fUkVHX01NSUZfRU1NX1VQREFURV9ERVJFR0lTVFJBVElPTl9JTkQsCitNU0dfSURfRU1NX0NBTExfTU1JRl9DU0ZCX0NORiwKK01TR19JRF9FTU1fQ0FMTF9NTUlGX0NTRkJfUEFHRV9JTkQsCitNU0dfSURfRU1NX0NBTExfTU1JRl9DU0ZCX1JFU1VMVF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19NTUlGX0lOSVRfTkFTX0NUWFRfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfTU1JRl9OQVNfQ1RYVF9UUkFOU0ZFUl9SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9OQVNNU0cKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VNTV9DQUxMX05BU01TR19TTkRfTkFTTVNHX1JFUSwKK01TR19JRF9FTU1fQ0FMTF9OQVNNU0dfU05EX1NFUlZfUkVRLAorTVNHX0lEX0VNTV9SRUdfTkFTTVNHX1NORF9OQVNNU0dfUkVRLAorTVNHX0lEX0VNTV9SRUdfTkFTTVNHX1NORF9FU01fTVNHX1JFUSwKK01TR19JRF9FTU1fUkVHX05BU01TR19BQ0NFUFRfRkFJTFVSRV9JTkQsCitNU0dfSURfRU1NX1NFQ19OQVNNU0dfU05EX05BU01TR19SRVEsCitNU0dfSURfRU1NX1NFQ19OQVNNU0dfRVhDSEdfUkVFU1RfQ05GLAorTVNHX0lEX0VNTV9DTU5QUk9DX05BU01TR19TTkRfTkFTTVNHX1JFUSwKK01TR19JRF9FTU1fRVJSQ0lGX05BU01TR19FUFNCRUFSRVJfREFUQV9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9OQVNNU0dfREFUQV9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9OQVNNU0dfREFUQV9DTkYsCitNU0dfSURfRU1NX05BU01TR19VVF9TRVRUSU5HX0NIQU5HRV9JTkQsCitNU0dfSURfRU1NX0VUQ0lGX05BU01TR19EQVRBX1JFUSwKK01TR19JRF9FTU1fUExNTlNFTF9OQVNNU0dfQ0VMTF9JTkZPX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX05BU01TR19DRUxMX0NIQU5HRV9JTkQsCitNU0dfSURfRU1NX0NPTk5fTkFTTVNHX1JFTF9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9QTE1OU0VMCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1fRVZBTElGX1BMTU5TRUxfUExNTl9MSVNUX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1BMTU5TRUxfUExNTl9MSVNUX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9QTE1OX0xJU1RfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9QTE1OU0VMX1BMTU5fU0VBUkNIX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1BMTU5TRUxfU1lTX0lORk9fVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1BMTU5TRUxfU0VBUkNIX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9DU0dfTElTVF9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9QTE1OU0VMX0NTR19MSVNUX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9FTUNfRlBMTU5fTElTVF9VUERBVEVfUkVRLCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX0VWQUxJRl9QTE1OU0VMX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9SUExNTl9FUV9QTE1OX0xJU1RfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1BMTU5TRUxfSFBMTU5fSU5GT19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9SRUdOX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9TRUFSQ0hfUFJFRkVSRU5DRV9VUERBVEVfUkVRLCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX0VWQUxJRl9QTE1OU0VMX0NMRUFSX0ZPUkJJRERFTl9UQV9MSVNUX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1BMTU5TRUxfUkVTRUxFQ1RfU0hBUkVEX05XX1JTUCwgLy8gZm9yIElNUyBfXzYyOTNERVZfXworTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9SRVNVTUVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9HTE9CQUxfTU9ERV9DSEFOR0VfU1RBUlRfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9SQVRfRElTQUJMRV9DT05GSUdfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUExNTlNFTF9ESVNDQVJEX1NZU19JTkZPX1VQREFURV9SRVEsCitNU0dfSURfRU1NX0VSUkNJRl9QTE1OU0VMX1BMTU5MSVNUX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX1BMTU5TRUxfQ1NHX0xJU1RfQ05GLAorTVNHX0lEX0VNTV9FUlJDSUZfUExNTlNFTF9DU0dfTElTVF9TVE9QX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX1BMTU5TRUxfQ0VMTFNFTEVDVF9DTkYsCitNU0dfSURfRU1NX0VSUkNJRl9QTE1OU0VMX0NFTExTRUxFQ1RfSU5ELAorTVNHX0lEX0VNTV9FUlJDSUZfUExNTlNFTF9QTE1OX0ZPVU5EX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX1BMTU5TRUxfT09TX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX1BMTU5TRUxfU0lHTkFMX0FQUEVBUl9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9QTE1OU0VMX0VBUkxZX09PU19ESVNQTEFZX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX1BMTU5TRUxfT09TX1NFQVJDSF9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9QTE1OU0VMX0dFTUlOSV9WSVJUVUFMX01PREVfSU5ELAorTVNHX0lEX0VNTV9FUlJDSUZfUExNTlNFTF9TVEFOREJZX0NORiwgLy9SRUwxMiBQU00KK01TR19JRF9FTU1fRVNNSUZfUExNTlNFTF9FTUNfQkVBUkVSX1NUQVRVU19SRVEsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fRVJSQ0lGX1BMTU5TRUxfR0VNSU5JX1NVU1BFTkRfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9BU19DT05UUk9MX0NORiwKKy8vTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9SQVRfSE9fRTJVX0lORCwgICAvLyB1bnVzZWQKKy8vTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9QUk9DX0FTU0JZX0lORCwgICAvLyB1bnVzZWQKKy8vTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9JUkFUX1VHMkVfSU5ELCAgICAvLyB1bnVzZWQKKy8vTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9SRURJUl9FMlVHX0ZBSUxfSU5ELCAgLy8gdW51c2VkCisvL01TR19JRF9FTU1fUkFUQ0hHX1BMTU5TRUxfUkFUX0xURVNCWV9JTkQsICAgICAgIC8vIHVudXNlZAorTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9JUkFUX0UyVUdfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19QTE1OU0VMX0lOVEVSX1NZU1RFTV9FMlZfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19QTE1OU0VMX1NUQU5EQllfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9OT19BQ1RJT05fSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUExNTlNFTF9JUkFUX0UyQ19DT01QX0lORCwgLy8gZm9yIEMySworLy9NU0dfSURfRU1NX1JBVENIR19QTE1OU0VMX0lSQVRfQzJFX0NPTVBfSU5ELCAvLyBmb3IgQzJLCisvL01TR19JRF9FTU1fUkFUQ0hHX1BMTU5TRUxfSVJBVF9DMkVfRklOSVNIX0lORCwgLy8gZm9yIEMySworTVNHX0lEX0VNTV9DQUxMX1BMTU5TRUxfU0VBUkNIXzJHM0dfUkVRLAorTVNHX0lEX0VNTV9DQUxMX1BMTU5TRUxfU1JfRU5EX0lORCwKK01TR19JRF9FTU1fQ0FMTF9QTE1OU0VMX1NSX0NBVVNFX0lORCwgLy8gbW9kaWZpZWQgd2l0aCBJTVMKK01TR19JRF9FTU1fUkVHX1BMTU5TRUxfUkVHSVNUUkFUSU9OX0VORF9JTkQsCitNU0dfSURfRU1NX1JFR19QTE1OU0VMX1JFR0lTVFJBVElPTl9TVUNDRVNTX0lORCwKK01TR19JRF9FTU1fUkVHX1BMTU5TRUxfUkVHSVNUUkFUSU9OX0NBVVNFX0lORCwgLy8gbW9kaWZpZWQgd2l0aCBJTVMKK01TR19JRF9FTU1fUkVHX1BMTU5TRUxfUkVTRUxFQ1RfU0hBUkVEX05XX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9DT05OX1BMTU5TRUxfUkVMX0lORCwKK01TR19JRF9FTU1fQ09OTl9QTE1OU0VMX1BTTV9BQ1RJVkFURV9SRVEsIC8vUkVMMTIgUFNNCitNU0dfSURfRU1NX1BMTU5TRUxfUFNNX0RFQUNUSVZBVEVfUkVRLCAvL1JFTDEyIFBTTQorTVNHX0lEX0VNTV9FVlRDVFJMX1BMTU5TRUxfQUJPUlRfUkVRLAorLy9NU0dfSURfRU1NX0VWVENUUkxfUExNTlNFTF9TVVNQRU5EX1JFUSwgLy9yZW1vdmUgU1VTUF9TVVNQIGNvbmZsaWN0IHJlc29sdXRpb24KKy8vTVNHX0lEX0VNTV9FVlRDVFJMX1BMTU5TRUxfUkVTVU1FX1JFUSwgIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCitNU0dfSURfRU1NX0VWVENUUkxfUExNTlNFTF9DT05USU5VRV9SRVEsCitNU0dfSURfRU1NX0VWVENUUkxfUExNTlNFTF9XRFRfUE9MTElOR19SRVEsCitNU0dfSURfRU1NX1RJTUVSTU5HX1BMTU5TRUxfRlRBSV9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUExNTlNFTF9GVEFJX1JFSjE1X1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9TVl9QTE1OU0VMX1NJTV9FUlJPUl9JTkQsCitNU0dfSURfRU1NX1NWX1BMTU5TRUxfUE9XRVJPRkZfSU5ELAorTVNHX0lEX0VNTV9TVl9QTE1OU0VMX1NJTV9SRUFEWV9JTkQsCitNU0dfSURfRU1NX1NWX1BMTU5TRUxfU0lNX1ZBTElEX0lORCwKK01TR19JRF9FTU1fU1ZfUExNTlNFTF9TSU1fUkVBRFlfQ0FOQ0VMRURfSU5ELAorTVNHX0lEX0VNTV9SQVRCQU5EX1BMTU5TRUxfU0VUX1JBVF9NT0RFX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9VVF9DT05GSUdfUkVRLAorTVNHX0lEX0VNTV9QTE1OU0VMX1VUX0NIRUNLX1BVQkxJQ19GVU5DVElPTl9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfVVRfQ0hFQ0tfUFVCTElDX0ZVTkNUSU9OX0NORiwKK01TR19JRF9FTU1fUExNTlNFTF9TRUxGX1VUX1JFUSwgLy8gbW9kaWZpZWQgd2l0aCBJTVMKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NX1JBVEJBTkQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VNTV9FVlRDVFJMX1JBVEJBTkRfQUJPUlRfUkVRLAorLy9NU0dfSURfRU1NX0VWVENUUkxfUkFUQkFORF9TVVNQRU5EX1JFUSwgLy9yZW1vdmUgU1VTUF9TVVNQIGNvbmZsaWN0IHJlc29sdXRpb24KKy8vTVNHX0lEX0VNTV9FVlRDVFJMX1JBVEJBTkRfUkVTVU1FX1JFUSwgIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCitNU0dfSURfRU1NX0VWVENUUkxfUkFUQkFORF9DT05USU5VRV9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9SQVRCQU5EX1JGT0ZGX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JBVEJBTkRfU0VUX1JBVF9NT0RFX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JBVEJBTkRfRFVQTEVYX01PREVfQ0hBTkdFX1JFUSwgICAvL2ZvciBDMksKK01TR19JRF9FTU1fRVJSQ0lGX1JBVEJBTkRfUkFUX0JBTkRfQ05GLAorTVNHX0lEX0VNTV9FUlJDSUZfUkFUQkFORF9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLCAgIC8vZm9yIEMySworTVNHX0lEX0VNTV9SRUdfUkFUQkFORF9ERVRBQ0hfQ05GLAorTVNHX0lEX0VNTV9SQVRDSEdfUkFUQkFORF9BU19DT05UUk9MX0NORiwKK01TR19JRF9FTU1fQU5ZX1JBVEJBTkRfVVRfQ09ORklHX1JFUSwKK01TR19JRF9FTU1fUkFUQkFORF9VVF9TVEFUVVNfSU5ELAorTVNHX0lEX0VNTV9FVlRDVFJMX1JBVEJBTkRfV0RUX1BPTExJTkdfUkVRLAorTVNHX0lEX0VNTV9DT05OX1JBVEJBTkRfUkVMX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkFUQkFORF9SRUxfQ09OTl9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkFUQkFORF9ERVRBQ0hfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JBVEJBTkRfREVGRVJfU0VUX1JBVF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fU1ZfUkFUQkFORF9JTVNfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVNTV9SQVRDSEcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAKKy8vTVNHX0lEX0VNTV9DQUxMX1JBVENIR19BU19DT05UUk9MX1JFUSwKK01TR19JRF9FTU1fUExNTlNFTF9SQVRDSEdfQVNfQ09OVFJPTF9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfUkFUQ0hHX0NFTExfSU5GT19JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfUkFUQ0hHX0FCT1JUX05BU19DVFhUX1RSQU5TRkVSX1JFUSwKK01TR19JRF9FTU1fQ09OTl9SQVRDSEdfRVNUX0NORiwKK01TR19JRF9FTU1fQ09OTl9SQVRDSEdfUkVESVJFQ1RJT05fSU5ELAorTVNHX0lEX0VNTV9DT05OX1JBVENIR19SRUxfUEVORF9JTkQsCitNU0dfSURfRU1NX0NPTk5fUkFUQ0hHX1JFTF9JTkQsCitNU0dfSURfRU1NX0VTTUlGX1JBVENIR19SQVRfQ0hBTkdFX1JFUSwKK01TR19JRF9FTU1fRVNNSUZfUkFUQ0hHX1JBVF9DSEFOR0VfUlNQLAorTVNHX0lEX0VNTV9FU01JRl9SQVRDSEdfQzJLX0lSQVRfQ09NUExFVEVfUkVRLCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX0VTTUlGX1JBVENIR19SQVRfQ0hBTkdFX0VQU0JfU1RBVFVTX1JFUSwKKy8vTVNHX0lEX0VNTV9FVkFMSUZfUkFUQ0hHX0wyQ19UUkFOU0ZFUl9SRVEsICAvLyBmb3IgQzJLCitNU0dfSURfRU1NX0VWQUxJRl9SQVRDSEdfREVBQ1RJVkFURV9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9SQVRDSEdfR01TU19JUkFUX1NUQVJUX0lORCwgLy8gZm9yIEMySworTVNHX0lEX0VNTV9FVkFMSUZfUkFUQ0hHX0dNU1NfSVJBVF9GSU5JU0hfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX0VWQUxJRl9SQVRDSEdfU0VUX0FDVElWRV9SQVRfUkVRLAorTVNHX0lEX0VNTV9NTUlGX1JBVENIR19JTklUX05BU19DVFhUX1JTUCwKK01TR19JRF9FTU1fTU1JRl9SQVRDSEdfTkFTX0NUWFRfVFJBTlNGRVJfUkVRLCAvLyBOQVMtU1YgSVJBVAorTVNHX0lEX0VNTV9NTUlGX1JBVENIR19VUERBVEVfU0VDVVJJVFlfU1RBVFVTX0lORCwKK01TR19JRF9FTU1fRVZBTElGX1JBVENIR19OQVNfQ1RYVF9UUkFOU0ZFUl9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9SQVRDSEdfQU5ZX1JBVF9DSEFOR0VfU1RBUlRfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfUkFUQ0hHX0FOWV9SQVRfQ0hBTkdFX0ZJTklTSF9JTkQsCitNU0dfSURfRU1NX0VWQUxJRl9SQVRDSEdfQVNfUEFSQU1fVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JBVENIR19BTllfRVZFTlRfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVJSQ0lGX1JBVENIR19SQVRfQ0hBTkdFX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX1JBVENIR19SQVRfQ0hBTkdFX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX1JBVENIR19TVEFOREJZX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX1JBVENIR19TVEFOREJZX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX1JBVENIR19SRVNVTUVfQ05GLAorTVNHX0lEX0VNTV9FUlJDSUZfUkFUQ0hHX1NLSVBfSVJDQ09fU1RBR0UyX0lORCwKK01TR19JRF9FTU1fRVJSQ0lGX1JBVENIR19TRVRfQUNUSVZFX1JBVF9DTkYsCitNU0dfSURfRU1NX1JBVEJBTkRfUkFUQ0hHX0FTX0NPTlRST0xfUkVRLAorTVNHX0lEX0VNTV9SQVRCQU5EX1JBVENIR19DMktfUkFUX0RJU0FCTEVfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1NWX1JBVENIR19TSU1fUkVBRFlfSU5ELAorTVNHX0lEX0VNTV9TVl9SQVRDSEdfU0lNX0RFVEFDSF9JTkQsCitNU0dfSURfRU1NX0VWVENUUkxfUkFUQ0hHX0FCT1JUX1JFUSwKKy8vTVNHX0lEX0VNTV9FVlRDVFJMX1JBVENIR19TVVNQRU5EX1JFUSwgIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCisvL01TR19JRF9FTU1fRVZUQ1RSTF9SQVRDSEdfUkVTVU1FX1JFUSwgICAvL3JlbW92ZSBTVVNQX1NVU1AgY29uZmxpY3QgcmVzb2x1dGlvbgorTVNHX0lEX0VNTV9FVlRDVFJMX1JBVENIR19DT05USU5VRV9SRVEsCitNU0dfSURfRU1NX0VWVENUUkxfUkFUQ0hHX1dEVF9QT0xMSU5HX1JFUSwKK01TR19JRF9FTU1fQU5ZX1JBVENIR19VVF9DT05GSUdfUkVRLAorTVNHX0lEX0VNTV9SQVRDSEdfVVRfU1RBVFVTX0lORCwKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU1fUkVHCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gCisvKiBmcm9tIENBTEwgKi8KK01TR19JRF9FTU1fQ0FMTF9SRUdfUkNWX1NFUlZJQ0VfUkVKRUNUX0lORCwKK01TR19JRF9FTU1fQ0FMTF9SRUdfVEFVX0lOSVRfUkVRLAorTVNHX0lEX0VNTV9DQUxMX1JFR19FWFNSX1NFTkRfSU5ELAorTVNHX0lEX0VNTV9DQUxMX1JFR19TTkRfRVNNTVNHX1JFUSwKK01TR19JRF9FTU1fQ0FMTF9SRUdfQkVBUkVSX0lORCwKK01TR19JRF9FTU1fQ0FMTF9SRUdfV0FJVEVQU0lORk9fU1RBUlRfUkVRLAorTVNHX0lEX0VNTV9DQUxMX1JFR19BVFRBQ0hfSU5JVF9SRVEsCitNU0dfSURfRU1NX0NBTExfUkVHX1NVU1BFTkRfVEFVX1JFUSwKK01TR19JRF9FTU1fQ0FMTF9SRUdfUkVTVU1FX1RBVV9SRVEsCitNU0dfSURfRU1NX0NBTExfUkVHX1NSX1BFTkRJTkdfSU5ELAorTVNHX0lEX0VNTV9DQUxMX1JFR19TUl9TVEFUVVNfSU5ELCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX0NBTExfUkVHX1NSX01BWF9BVFRFTVBUX0lORCwKK01TR19JRF9FTU1fQ0FMTF9SRUdfU1JfUkFDSF9GQUlMX0lORCwKK01TR19JRF9FTU1fQ0FMTF9SRUdfU1JfQUJOT1JNQUxfSU5ELAorTVNHX0lEX0VNTV9DQUxMX1JFR19DMktfQ1NGQl9JTkQsIC8vZm9yIEMySyArIFNSTFRFCitNU0dfSURfRU1NX0NBTExfUkVHX0MyS19DU0ZCX1NUT1BfSU5ELCAvL2ZvciBDMksgKyBTUkxURQorTVNHX0lEX0VNTV9DQUxMX1JFR19TTVNfRVNUX0lORCwKKy8qIGZyb20gUExNTlNFTCAqLworTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19OT19DRUxMX0lORk9fSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19DRUxMX0lORk9fSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19QTE1OX0xJU1RfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfUkVHX1BMTU5TRUFSQ0hfRU5EX0lORCwKK01TR19JRF9FTU1fUExNTlNFTF9SRUdfT09TX0ZJUlNUX1JPVU5EX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19FTUNfU1RBVFVTX1VQREFURV9JTkQsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fUExNTlNFTF9SRUdfUkVTRUxFQ1RfU0hBUkVEX05XX0NORiwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19QTE1OX1NFQVJDSF9MSVNUX1NUQVJUX0lORCwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19HRU1JTklfU1VTUEVORF9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfUkVHX0dMT0JBTF9NT0RFX0NIQU5HRV9TVEFSVF9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfUkVHX0dFTUlOSV9WSVJUVUFMX01PREVfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX1JFR19MRUFWRV9WSVJUVUFMX0lETEVfTU9ERV9JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfUkVHX0RJU0NBUkRfU1lTX0lORk9fVVBEQVRFX1JFUSwKKy8qIGZyb20gQ01OUFJPQyAqLworTVNHX0lEX0VNTV9DTU5QUk9DX1JFR19SRUdfUkVJTklUX1JFUSwKKy8qIGZyb20gQ09OTiAqLworTVNHX0lEX0VNTV9DT05OX1JFR19FU1RfQ05GLAorTVNHX0lEX0VNTV9DT05OX1JFR19SRUxfSU5ELAorTVNHX0lEX0VNTV9DT05OX1JFR19BQ19TVEFUVVNfSU5ELAorTVNHX0lEX0VNTV9DT05OX1JFR19FU1RfSU5ELAorTVNHX0lEX0VNTV9DT05OX1JFR19UMzQ0MF9TVE9QX0NORiwKK01TR19JRF9FTU1fQ09OTl9SRUdfQUNEQ19TVEFUVVNfQ0hBTkdFX0lORCwKKy8qIGZyb20gRVNNSUYgKi8KK01TR19JRF9FTU1fRVNNSUZfUkVHX0FUVEFDSF9ORUVERURfR0VUX0VTTV9NU0dfUlNQLAorTVNHX0lEX0VNTV9FU01JRl9SRUdfR0VUX0VQU0JfU1RBVFVTX1JTUCwKK01TR19JRF9FTU1fRVNNSUZfUkVHX1NZTkNfRVBTQl9TVEFUVVNfUkVRLAorTVNHX0lEX0VNTV9FU01JRl9SRUdfREVUQUNIX1JFUSwKK01TR19JRF9FTU1fRVNNSUZfUkVHX0lTUl9ERUFDVF9SRVEsCitNU0dfSURfRU1NX0VTTUlGX1JFR19HRVRfRVNNX0NBVVNFX1JTUCwKK01TR19JRF9FTU1fRVNNSUZfUkVHX1FVRVJZX1VMX0RBVEFfU1RBVFVTX1JTUCwKK01TR19JRF9FTU1fRVNNSUZfUkVHX1VQREFURV9FUFNCX1NUQVRVU19SU1AsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fRVNNSUZfUkVHX1FPU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FU01JRl9SRUdfUEVSU0lTVEVOVF9FUFNCQ19VUERBVEVfUkVRLCAgLy8gZm9yIF9fUkVMMTBfXzogcGVyc2lzdGVudCBFUFNCCitNU0dfSURfRU1NX0VTTUlGX1JFR19OT1RJRllfRVNNX0VWRU5UX1JFUSwgLy9WelcKK01TR19JRF9FTU1fRVNNSUZfUkVHX0VQU19CRUFSRVJfSU5GT19SRVEsCitNU0dfSURfRU1NX0VTTUlGX1JFR19JQV9BUE5fQ0hBTkdFX1JFUSwKKy8qIGZyb20gRVZBTElGICovCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfREVUQUNIX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19BVFRBQ0hfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX1VFTU9ERV9QQVJBTV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0NBUEFCSUxJVFlfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19FTUNfQVRUQUNIX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0FDVElWRV9TSU1fSU5GT19SRVEsIC8vIFRPRE86IHJlbW92ZSB3aXRoIEVBQ1RTCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfU0VUX0lNU19WT0lDRV9BVkFJTEFCSUxJVFlfUkVRLCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfU0VUX0lNU19WT0lDRV9URVJNSU5BVElPTl9SRVEsIC8vIGZvciBJTVMKK01TR19JRF9FTU1fRVZBTElGX1JFR19WRE1fVk9JQ0VfU1RBVFVTX1JFUSwgLy8gSU1TIGNhbGwgc3RhcnQgKGZpcnN0KSAvIGVuZCAobGFzdCkKK01TR19JRF9FTU1fRVZBTElGX1JFR19EUlhfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19DMktfRk9SQ0VfVE9fTE9DQUxfREVUQUNIX1JFUSwgLy9mb3IgQzJLCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfRU1DX1NFU1NJT05fU1RBUlRfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0VNQ19TRVNTSU9OX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0hWT0xURV9NT0RFX0NIQU5HRV9SRVEsIC8vW0FMUFMwMjU4NTAwMl0gZm9yIFZaIGhWb0xURSwgRTkxMSB0ZXN0CitNU0dfSURfRU1NX0VWQUxJRl9SRUdfRVBTX0xPQ0lfQ0xFQVJfUkVRLAkvL01TR19JRF9FTU1fRVZBTElGX1JFR19HVVRJX0lOX05WX0NMRUFSX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19JTVNfSEFORE9WRVJfQVRUQUNIX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19NQU5VQUxfU0VBUkNIX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0FOWV9CUk9BRENBU1RfUkVHTl9SRVNVTFRfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0FOWV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9TRVRfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfUkVHX0RJU0FCTEVfSU5GT19VUERBVEVfTlRGLAorCisvLyBSZW1vdGUgU0lNCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfUlNJTV9BS0FfU1RBVFVTX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19SU0lNX0FLQV9SU0lNX0FDQ0VTU19GT1JfQVVUSF9ET1dOTE9BRF9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfUlNJTV9BVVRIX0FCT1JUX1JFUSwKKworLy8gZUNhbGwKK01TR19JRF9FTU1fRVZBTElGX1JFR19FQ0FMTF9URVNUX0NBTExfQVRUQUNIX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19FQ0FMTF9BQk9SVF9URVNUX0NBTExfQVRUQUNIX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19FQ0FMTF9FTkRfSU5ELAorCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfRUNCTV9TVEFSVF9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9SRUdfRUNCTV9TVE9QX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1JFR19TRU5EX0RBTl9TTVNfSU5ELAorCisvKiBmcm9tIE1NSUYgKi8KK01TR19JRF9FTU1fTU1JRl9SRUdfR01NX1VQREFURV9SRUdJU1RSQVRJT05fUkVRLAorTVNHX0lEX0VNTV9NTUlGX1JFR19HTU1fVVBEQVRFX0RFUkVHSVNUUkFUSU9OX1JFUSwKK01TR19JRF9FTU1fTU1JRl9SRUdfTU1fVVBEQVRFX1JFR0lTVFJBVElPTl9SRVEsCitNU0dfSURfRU1NX01NSUZfUkVHX01NX1VQREFURV9ERVJFR0lTVFJBVElPTl9SRVEsCitNU0dfSURfRU1NX01NSUZfUkVHX0lTUl9VUERBVEVfUkVRLAorLyogZnJvbSBFUlJDSUYgKi8KK01TR19JRF9FTU1fRVJSQ0lGX1JFR19TTkRfTkFTTVNHX0NORiwgLy8gbm8gdXNlPworTVNHX0lEX0VNTV9FUlJDSUZfUkVHX0lNU0lfUEFHRV9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9SRUdfQUNUSVZFX0VQU0JFQVJFUl9JTkQsIC8vIGZvciBfX1JFTDEwX186IHBlcnNpc3RlbnQgRVBTQgorTVNHX0lEX0VNTV9FUlJDSUZfUkVHX0RFVEVDVElPTl9USU1FUjNfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX0VSUkNJRl9SRUdfVUVfQ0FQX0VOUVVJUllfRVVUUkFfTlRGLAorTVNHX0lEX0VNTV9FUlJDSUZfUkVHX0NBUEFCSUxJVFlfQ0hBTkdFX0lORCwKKy8qIGZyb20gRVZUQ1RSTCAqLworTVNHX0lEX0VNTV9FVlRDVFJMX1JFR19BQk9SVF9SRVEsCisvL01TR19JRF9FTU1fRVZUQ1RSTF9SRUdfU1VTUEVORF9SRVEsIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCisvL01TR19JRF9FTU1fRVZUQ1RSTF9SRUdfUkVTVU1FX1JFUSwgIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCitNU0dfSURfRU1NX0VWVENUUkxfUkVHX0NPTlRJTlVFX1JFUSwKK01TR19JRF9FTU1fRVZUQ1RSTF9SRUdfV0RUX1BPTExJTkdfUkVRLAorLyogZnJvbSBOQVNNU0cgKi8KK01TR19JRF9FTU1fTkFTTVNHX1JFR19SQ1ZfQVRUQUNIX0FDQ0VQVF9JTkQsCitNU0dfSURfRU1NX05BU01TR19SRUdfUkNWX0FUVEFDSF9SRUpFQ1RfSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfUkVHX1JDVl9UQVVfQUNDRVBUX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX1JFR19SQ1ZfVEFVX1JFSkVDVF9JTkQsCitNU0dfSURfRU1NX05BU01TR19SRUdfUkNWX0RFVEFDSF9SRVFVRVNUX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX1JFR19SQ1ZfREVUQUNIX0FDQ0VQVF9JTkQsCitNU0dfSURfRU1NX05BU01TR19SRUdfU05EX05BU01TR19DTkYsCitNU0dfSURfRU1NX05BU01TR19SRUdfUkNWX0dVVElfUkVBTExPQ19DTURfSU5ELAorCisvKiBmcm9tIFNFQyAqLworTVNHX0lEX0VNTV9TRUNfUkVHX1JFR19SRUlOSVRfUkVRLAorTVNHX0lEX0VNTV9TRUNfUkVHX0FUVEFDSF9UUklHR0VSX0lORCwKK01TR19JRF9FTU1fU0VDX1JFR19SQ1ZfQVVUSF9SRUpFQ1RfSU5ELAorTVNHX0lEX0VNTV9TRUNfUkVHX1NNQ19GQUlMVVJFX0lORCwKK01TR19JRF9FTU1fU0VDX1JFR19BVVRIX1RSSUdHRVJfRU5EX0RFVEFDSF9SRVEsCitNU0dfSURfRU1NX1NFQ19SRUdfUlNJTV9BVVRIX0lORCwKKworLyogZnJvbSBUSU1FUk1ORyAqLworTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfVDM0MDJfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UMzQxMV9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1QzNDEyX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfVDM0MzBfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UMzQxMF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1QzNDIxX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfVF9ERVRBQ0hfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UMzQyM19USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1QzMzQ2X1RJTUVPVVRfSU5ELCAvLyBmb3IgX19SRUwxMF9fOiB0MzM0NgorTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfQUJOX1JFR19HVUFSRF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1RfUExNTkxJU1RfUkVMX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfVEhST1RUTElOR19USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1RfV0FJVF9ISUdIX1BTX1JFTF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1RfRlRBSV9BQk5PUk1BTF9NQVhfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19OQVNfUkVDT1ZFUllfQkFDS09GRl9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1RfTldfREVUX0VOSF9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfUkVHX1RfUkVVU0VfQ09OTl9GT1JfRU1DX1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfVF9QUk9URUNUX0VSUkNfRkFLRV9QUk9DRURVUkVfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UX1NNQVJUX0lETEVfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UX01PTklUT1JfVUVfQ0FQX0VOUVVJUllfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UX0xJTUlUX1NZTkNfVEFVX1RJTUVPVVRfSU5ELAorI2lmZGVmIF9fTkdfRUNBTExfU1VQUE9SVF9fIAorTVNHX0lEX0VNTV9USU1FUk1OR19SRUdfVDM0NDRfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1JFR19UMzQ0NV9USU1FT1VUX0lORCwKKyNlbmRpZgorCisvKiBmcm9tIFNWICovCitNU0dfSURfRU1NX1NWX1JFR19TSU1fUkVBRFlfSU5ELAorTVNHX0lEX0VNTV9TVl9SRUdfREVUQUNIX1JFUSwKK01TR19JRF9FTU1fU1ZfUkVHX1NJTV9SRUFEWV9DQU5DRUxFRF9JTkQsCitNU0dfSURfRU1NX1NWX1JFR19TSU1fVkFMSURfSU5ELCAvLyBmb3IgX19SRUwxMF9fOiB0MzI0NSAKKy8qIGZyb20gUkFUQkFORCAqLworTVNHX0lEX0VNTV9SQVRCQU5EX1JFR19ERVRBQ0hfUkVRLAorTVNHX0lEX0VNTV9SQVRCQU5EX1JFR19GT1JDRV9MT0NBTF9ERVRBQ0hfUkVRLAorTVNHX0lEX0VNTV9SQVRCQU5EX1JFR19TRVRfUkFUX0FCT1JUX1BST0NfUkVRLCAvLyBhYm9ydCBwcm9jZWR1cmUgZm9yIHNraXAgZGV0YWNoIGluIHNldCBSQVQKK01TR19JRF9FTU1fUkFUQkFORF9SRUdfU0VUX1JBVF9NT0RFX0lORCwKKy8qIGZyb20gUkFUQ0hHICovCitNU0dfSURfRU1NX1JBVENIR19SRUdfSVJBVF9FMlVHX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUkVHX0lSQVRfVUcyRV9DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1JFR19JUkFUX0UyVUdfRkFJTF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19SRUdfSVJBVF9VRzJFX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUkVHX0lSQVRfRTJVR19JTklUX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1JFR19JTlRFUl9TWVNURU1fRTJWX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUkVHX0lOVEVSX1NZU1RFTV9FMlZfRkFJTF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19SRUdfSU5URVJfU1lTVEVNX0UyVl9JTklUX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1JFR19JTlRFUl9TWVNURU1fVjJFX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfUkVHX0lOVEVSX1NZU1RFTV9WMkVfRkFJTF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19SRUdfU1RBTkRCWV9JTkQsIC8vIGZvciBDMksKK01TR19JRF9FTU1fUkFUQ0hHX1JFR19JUkFUX0UyQ19DT01QX0lORCwgLy8gZm9yIEMySworTVNHX0lEX0VNTV9SQVRDSEdfUkVHX0lSQVRfQzJFX0NPTVBfSU5ELCAvLyBmb3IgQzJLCisKKy8qIGZyb20gTVNQTUlGKi8KK01TR19JRF9FTU1fTVNQTUlGX1JFR19SRl9PV05FUl9QUklPUklUWV9DSEFOR0VfTlRGLAorCisvKiBmb3IgVVQqLworTVNHX0lEX0VNTV9SRUdfVVRfQ09ORklHX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NX1NFQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfRU1NX1BMTU5TRUxfU0VDX0NBTVBPTl9QTE1OX0NIR19JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfU0VDX0NFTExfSU5GT19JTkQsCitNU0dfSURfRU1NX1BMTU5TRUxfU0VDX1ZJUlRVQUxfTU9ERV9TVEFUVVNfVVBEQVRFX0lORCwgLy8gUi1TSU0KK01TR19JRF9FTU1fQ0FMTF9TRUNfQVVUSF9EQVRBX0RFTF9SRVEsCitNU0dfSURfRU1NX0NBTExfU0VDX0RFTEVURV9LU0lfUkVRLAorTVNHX0lEX0VNTV9DQUxMX1NFQ19JTklUSUFMX05BU19QUk9DX0lORCwKK01TR19JRF9FTU1fUkVHX1NFQ19ERUxFVEVfS1NJX1JFUSwKK01TR19JRF9FTU1fUkVHX1NFQ19BVVRIX0RBVEFfREVMX1JFUSwKK01TR19JRF9FTU1fUkVHX1NFQ19SRUdfSU5JVF9JTkQsCitNU0dfSURfRU1NX1JFR19TRUNfREVSRUdfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JFR19TRUNfSU5JVElBTF9OQVNfUFJPQ19JTkQsCitNU0dfSURfRU1NX1JFR19TRUNfQVBQTFlfSURMRV9LQVNNRV9JTkQsCisvL01TR19JRF9FTU1fUkFUQ0hHX1NFQ19SQVRMVEVTQllfSU5ELCAgICAvLyBuZWVkIHRvIHJlbW92ZQorLy9NU0dfSURfRU1NX1JBVENIR19TRUNfUkFUX0hPX1UyRV9JTkQsICAgLy8gbmVlZCB0byByZW1vdmUKKy8vTVNHX0lEX0VNTV9SQVRDSEdfU0VDX1JBVF9JRExFX1UyRV9JTkQsIC8vIG5lZWQgdG8gcmVtb3ZlIAorTVNHX0lEX0VNTV9SQVRDSEdfU0VDX0lSQVRfRTJVR19DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1NFQ19JTlRFUl9TWVNURU1fRTJWX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfU0VDX0lOVEVSX1NZU1RFTV9IT19WMkVfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19TRUNfSU5URVJfU1lTVEVNX0lETEVfVjJFX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfU0VDX1JBVF9JRExFX1VHMkVfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19TRUNfUkFUX0hPX1UyRV9DT01QX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1NFQ19SQVRfSE9fVTJFX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfU0VDX1dSQVBfQVJPVU5EX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1NFQ19JUkFUX0UyQ19DT01QX0lORCwgLy8gZm9yIEMySworTVNHX0lEX0VNTV9DT05OX1NFQ19SRUxfSU5ELAorTVNHX0lEX0VNTV9DT05OX1NFQ19FU1RfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfU0VDX0FVVEhFTlRJQ0FURV9SU1AsCitNU0dfSURfRU1NX05BU01TR19TRUNfUkNWX0FVVEhfUkVRX0lORCwKK01TR19JRF9FTU1fTkFTTVNHX1NFQ19SQ1ZfQVVUSF9SRUpfSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfU0VDX1JDVl9TRUNVUklUWV9DTURfSU5ELAorTVNHX0lEX0VNTV9OQVNNU0dfU0VDX1dSQVBfQVJPVU5EX0lORCwKKy8vTVNHX0lEX0VNTV9OQVNNU0dfU0VDX0VYQ0hHX1JFRVNUX1JFUSwKK01TR19JRF9FTU1fTkFTTVNHX1NFQ19TTkRfTkFTTVNHX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX1NFQ19TTkRfTkFTTVNHX0NORiwKK01TR19JRF9FTU1fRVJSQ0lGX1NFQ19SQ1ZfRVBTQkVBUkVSX0lORCwKK01TR19JRF9FTU1fRVNNSUZfU0VDX0VOVEVSX0VNQ19BVFRBQ0hfUlNQLCAvLyBmb3IgSU1TCitNU0dfSURfRU1NX1RJTUVSTU5HX1NFQ19UMzQxNl9USU1FT1VUX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfU0VDX1QzNDE4X1RJTUVPVVRfSU5ELAorTVNHX0lEX0VNTV9USU1FUk1OR19TRUNfVDM0MjBfVElNRU9VVF9JTkQsCitNU0dfSURfRU1NX1RJTUVSTU5HX1NFQ19UX1JFU0VORF9BVVRIX1RJTUVPVVRfSU5ELCAvLyBSLVNJTQorTVNHX0lEX0VNTV9TVl9TRUNfU0lNX1JFQURZX0lORCwKK01TR19JRF9FTU1fU1ZfU0VDX1NJTV9ERVRBQ0hfSU5ELAorTVNHX0lEX0VNTV9TVl9TRUNfREVMRVRFX0tTSV9SRVEsCitNU0dfSURfRU1NX0FOWV9TRUNfVVRfQ09ORklHX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NX1NWCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1fRVZBTElGX1NWX0lOSVRfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfU1ZfU0VUX01TX1NWX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1NWX1NJTV9SRUFEWV9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9TVl9TSU1fRVJST1JfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfU1ZfREVUQUNIX1JFUSwKK01TR19JRF9FTU1fRVZBTElGX1NWX1NJTV9GSUxFX1VQREFURV9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9TVl9TSU1fVkFMSURfUkVRLCAvLyBmb3IgX19SRUwxMF9fOiB0MzI0NQorTVNHX0lEX0VNTV9FVkFMSUZfU1ZfRkFDVE9SWV9SRVNFVF9SRVEsCitNU0dfSURfRU1NX0VWQUxJRl9TVl9JTVNfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfU1ZfUkVKRUNUX0NBVVNFX01BUFBJTkdfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfU1ZfTUVfUkVDT05GSUdVUkVfUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfU1ZfU01TX1NUQVRVU19SRVEsCitNU0dfSURfRU1NX0VSUkNJRl9TVl9BQ1RJVkFUSU9OX0NORiwKK01TR19JRF9FTU1fUkVHX1NWX1NJTV9JTlZBTElEX0lORCwKK01TR19JRF9FTU1fUkVHX1NWX0RFVEFDSF9DTkYsCitNU0dfSURfRU1NX0NBTExfU1ZfU0lNX0lOVkFMSURfSU5ELAorTVNHX0lEX0VNTV9TRUNfU1ZfU0lNX0lOVkFMSURfSU5ELAorTVNHX0lEX0VNTV9FVlRDVFJMX1NWX0FCT1JUX1JFUSwKKy8vTVNHX0lEX0VNTV9FVlRDVFJMX1NWX1NVU1BFTkRfUkVRLCAvL3JlbW92ZSBTVVNQX1NVU1AgY29uZmxpY3QgcmVzb2x1dGlvbgorLy9NU0dfSURfRU1NX0VWVENUUkxfU1ZfUkVTVU1FX1JFUSwgIC8vcmVtb3ZlIFNVU1BfU1VTUCBjb25mbGljdCByZXNvbHV0aW9uCitNU0dfSURfRU1NX0VWVENUUkxfU1ZfQ09OVElOVUVfUkVRLAorTVNHX0lEX0VNTV9FVlRDVFJMX1NWX1dEVF9QT0xMSU5HX1JFUSwKK01TR19JRF9FTU1fQU5ZX1NWX1VUX0NPTkZJR19SRVEsCitNU0dfSURfRU1NX1NWX1VUX1NUQVRVU19JTkQsCitNU0dfSURfRU1NX1JBVEJBTkRfU1ZfU0VUX1JBVF9NT0RFX0lORCwKK01TR19JRF9FTU1fRVZBTElGX1NWX0dFTkVSQUxfTU9ERU1fQ09ORklHVVJFX1NFVF9SRVEsCitNU0dfSURfRU1NX1BMTU5TRUxfU1ZfUExNTl9TRUFSQ0hfSU5ELAorTVNHX0lEX0VNTV9QTE1OU0VMX1NWX0dFTUlOSV9TVVNQRU5EX0lORCwKK01TR19JRF9FTU1fVElNRVJNTkdfU1ZfVF9TSU1fREVUQUNIX1dBSVRfSU1TX0RFUkVHX1RJTUVPVVRfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFTU1fVElNRVJNTkcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VNTV9SQVRDSEdfVElNRVJNTkdfSVJBVF9FMlVHX0lOSVRfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfVElNRVJNTkdfSVJBVF9FMlVHX0NPTVBfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfVElNRVJNTkdfSVJBVF9FMlVHX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfVElNRVJNTkdfSU5URVJfU1lTVEVNX0UyVl9JTklUX0lORCwKK01TR19JRF9FTU1fUkFUQ0hHX1RJTUVSTU5HX0lOVEVSX1NZU1RFTV9FMlZfQ09NUF9JTkQsCitNU0dfSURfRU1NX1JBVENIR19USU1FUk1OR19JTlRFUl9TWVNURU1fRTJWX0ZBSUxfSU5ELAorTVNHX0lEX0VNTV9SQVRDSEdfVElNRVJNTkdfSVJBVF9FMkNfSU5JVF9JTkQsIC8vIGZvciBDMksKK01TR19JRF9FTU1fUkFUQ0hHX1RJTUVSTU5HX0lSQVRfRTJDX0NPTVBfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfRU1NX1JBVENIR19USU1FUk1OR19JUkFUX0UyQ19GQUlMX0lORCwgLy8gZm9yIEMySworTVNHX0lEX0VNTV9FVkFMSUZfVElNRVJNTkdfQ0xFQVJfVDMzNDZfRVBMTU5fUkVRLAorTVNHX0lEX0VNTV9FVkFMSUZfVElNRVJNTkdfQU5ZX0JST0FEQ0FTVF9USU1FUl9TVEFUVVNfSU5ELAorTVNHX0lEX0VNTV9FVkFMSUZfVElNRVJNTkdfU0VUX1RJTUVSX1JFUSwJICAvLyBlQ2FsbAorCisvKiBGb3IgVGltZXJNbmcgVVQgKi8KK01TR19JRF9FTU1fVElNRVJNTkdfVVRfUkVRLAorTVNHX0lEX0VNTV9USU1FUk1OR19VVF9JTkQsCisKKy8qIFNwZWNpYWwgVXNhZ2U6IFNldCBjdXJyZW50IHRlc3QgbW9kZSBmb3IgRU1NICovCitNU0dfSURfRU1NX01PRF9HTE9CQUxfVkFSX1JFUSwKKworLyogRW5naW5lZXIgTW9kZSBDb25maWcgTWVzc2FnZSAqLworTVNHX0lEX0VNTV9FTV9DT05GSUdfUkVRLAorCitNU0dfSURfRU1NX1RJTUVSTU5HX0NBTExfVF9TVE1TSV9DU19QQUdFX1JFVFJZX1RJTUVPVVRfSU5ELAorCisvKiBmcm9tIE1TUE1JRiovCitNU0dfSURfRU1NX01TUE1JRl9DQUxMX1JGX09XTkVSX1BSSU9SSVRZX0NIQU5HRV9OVEYsCisKK01TR19JRF9FTU1fUkFUQkFORF9SRUdfVEFVX1JFUSwKKworTVNHX0lEX0VNTV9DT0RFX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9FTU1fQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9FTU1fU0FQX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VubDJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VubDJfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmQ1YzNkCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZW5sMl9tc2dpZC5oCkBAIC0wLDAgKzEsNDQ1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgZW5sMl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKgorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIAorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqICAgCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDEgMTkgMjAyMiBjaGFuZ2p1bi5qaQorICogW01PTFkwMDYwMTA3NV0gW01UNjg4NV1bUGV0cnVzXVtOU0FdW0Zyb20gS1NdWzVHXVtQQ1RdW0tleXNpZ2h0XVtWNjRdWzIwV0szOF1bMzguNTIzLTFdW1NJTTFdIC0gUERDUCBkdXBsaWNhdGlvbiBUQyA3LjEuMy41LjUgZmFpbHVyZSBTdGVwICM5CisgKiAJCisgKiAJPHNhdmVkIGJ5IFBlcmZvcmNlPgorICoKKyAqIDEyIDEzIDIwMjEgYXNodG9uLmxpYW8KKyAqIFtNT0xZMDA2MDEwNzVdIFtNVDY4ODVdW1BldHJ1c11bTlNBXVtGcm9tIEtTXVs1R11bUENUXVtLZXlzaWdodF1bVjY0XVsyMFdLMzhdWzM4LjUyMy0xXVtTSU0xXSAtIFBEQ1AgZHVwbGljYXRpb24gVEMgNy4xLjMuNS41IGZhaWx1cmUgU3RlcCAjOQorICogCVBvcnRpbmcgZHVwIGRpc2MgdG8gR2VuOTcgZnJvbSBHZW45OCAoTU9MWTAwNTU0NzM4KS4KKyAqIDEwIDIxIDIwMjEgYXRsYXMueHUKKyAqIFtNT0xZMDA2NTY0OTFdID8yMTA0MT8gP0VWVD8/Pz8/Pz8/NUctU0E/Pz8/Pz8/Pz8xND8zOD8gIDIxMDQxQ1QrQ1U/PzVHPz8/Pz8/Pz8/TVQ/PzM/PzMvNTA/CisgKiAJCisgKgorICogCQorICogCS4KKyAqCisgKiAwNSAyNiAyMDIxIGF0bGFzLnh1CisgKiBbTU9MWTAwNjI2ODc0XSBbQ01DQyAxVDJSIFZURl0gUERDUCB0LXJvIGVuaGFuY2VtZW50IGR1cmluZyBWQworICogCVtNQ1JTMDAwODk5XQorICogCS4KKyAqCisgKiAxMiAxMSAyMDIwIHlpdGluZy5jaGVuZworICogW01PTFkwMDYwMjU1OF0gW0dhbWluZ11bU0ZdW1ZURl1bTVQ2ODkzXVtQZXRydXMtUF1bUjNdW01QN11bU1FDXVs1R01NXVtOTE8gRlRdW0d1YW5nemhvdV1bNUekVKTkvWJdW6T9qsw/xKNdW0NUK0NNQ0NdW1NBXVtXZWFrXVtIdWF3ZWkgTWF0ZSAzMF1QZXRydXMtUCBPTiBhbmQgUGV0cnVzLVAgT0ZGIEhpZ2ggbGF0ZW5jeaVbP6lNIGxvc2UgSHVhd2VpIE1hdGUgMzChXTIgdnMgNSB2cyAxoV4KKyAqIC4KKyAqCisgKiAxMCAxNiAyMDIwIGFzaHRvbi5saWFvCisgKiBbTU9MWTAwNTcxMjg3XSChaTIwMDc1oWqhaVFPRT8/oWqhaT/VdaFqMjAwNzUgQ01DQyA1RyBTQT8/rnqrSD8/udKkVaFBqM+lzqbbPz+lzrDTqbGkVT+k/arMP8SjoUE/ut2kVT8/P7CqpF8xOTE2MaFCpM2w00HJ8765CisgKiAJCisgKiAJLgorICoKKyAqIDA4IDEyIDIwMjAgY2hpbi13ZWkuaHN1CisgKiBbTU9MWTAwNTUwNTUzXSBbTVQ2ODc1XVtNYXJnYXV4XVtRMF1bUjNdW01QNl1bQ2hhbmdlU2VsZl1bQ1RdW0lPRFRdWzVHXVut3a5lqco/P11bQ29tcGF0aWJpbGl0eV8wMTAwMV9TNF8xXSBDZWxsIGhhbmRvdmVyIHdpdGggZGF0YSBmcm9tIFNBIHRvIE5TQQorICogcXVldWUgaW50ZXJuZXQgZGF0YS4KKyAqCisgKiAwNyAyNCAyMDIwIHlpLWxpbi5sZWUKKyAqIFtNT0xZMDA1NDI3ODRdIFtNVDY4ODVdW1BldHJ1c11bTVAxXVtJT0RUXVtFcmljc3Nvbl1bTGFiXVtCSl1bU0FdIFZpZGVvIHN0cmVhbWluZyBpc3N1ZSBkdXJpbmcgVm9MVEUgY2FsbCBhbmQgbmVlZCBVRSBwcm92aWRlIHJlbGF0ZWQgb3V0cHV0IHRyYWNlCisgKiAJCisgKiAJcm9oYyBjb21wcmVzc2lvbiByYXRpbyBsb2dnaW5nCisgKgorICogMDcgMDggMjAyMCB5aS1saW4ubGVlCisgKiBbTU9MWTAwNTE3MTY5XSBbTVQ2ODg1XVtQZXRydXNdW01QMV1bSU9EVF1bRXJpY3Nzb25dW0ZUXVtTdXpob3VdW1NBXUVNIHRvb2wgcmVxdWlyZW1lbnQgZm9yIEVQU0ZCJlZvTFRFIFRlc3QgbmVlZCBhZGQgUERDUCB0cmFjZSBvbiBQUyBJbnRlZ3JhdGVbcGFydCAzXS4KKyAqIAkKKyAqIAlFTlBEQ1AgREwgdGltZXN0YW1wCisgKgorICogMDUgMDggMjAyMCBjaGloLWNoZW5nLnlhbmcKKyAqIFtNT0xZMDA1MTg5MzVdIFsxLjcgVlRGXVtNVDY4NzNdW01hcmdhdXhdW1EwXVtNUDJdW1NRQ11bNUcgRlRdW05TQV1bNUdNTV1bQ2hpbmFdW0NNQ0NdW0ZUXVtDTUNDIEZUXVtDaGlwIFRlc3RdW1JUXVs1Ry1GVC1OU0EtMS43XVtCZWlqaW5nXU1UNjg3MyBETCBhdmVyYWdlIFRQVVQoMjI5Ljk5TWJwcykgaXMgd29yc2UgdGhhbiBNVDY4ODkoMjY0LjlNYnBzKSB3aGVuIERMIHBhcmFsbGVsIHRlc3RpbmcuCisgKiBbTlJMQ1VMXSBjbG9zZSB6b21iaWUgSEFSUSB3aGVuIEFDSyBQUkIgZnVsbCAoaW50ZXJmYWNlKQorICoKKyAqIDA0IDE1IDIwMjAgbmFuY3kuY2hhbmcKKyAqIFtNT0xZMDA1MDUyNDBdIFs2Mjk3XSBFTi1EQyBnYW1pbmcgSE8gZW5oYW5jZW1lbnQKKyAqIC4gKE9BKQorICoKKyAqIDA0IDE1IDIwMjAgY2hpbi13ZWkuaHN1CisgKiBbTU9MWTAwNTA4ODY0XSBbVk1PTFldIEdlbjk3IFNXIGRlc2lnbiB0byBhY2hpZXZlIGxvc3NsZXNzIDQ1RyBETCBIVyBwYXRoCisgKiBbUkRdIEVQU0IgZmFsbGJhY2suCisgKgorICogMDMgMzAgMjAyMCBjaGloLWNoZW5nLnlhbmcKKyAqIFtNT0xZMDA1MDg2MTNdIFtCTE9DS0lOR11bTVQ2ODg1XVtQZXRydXNdW01QM11bTlZJT1RdW05va2lhXVtEYWxsYXNdW05SX01CXVtUQ0lEODNdIEFmdGVyIGxlZyBzd2l0Y2ggZnJvbSBOUiBvbmx5IHRvIExURSBvbmx5LCBEYXRhIHN0dWNrIGFuZCBjYW4ndCByZWNvdmVyeS4KKyAqIAkKKyAqIAlbTlJMQ1VMXSBpbnRlcmZhY2UgZm9yIFNJVCBmdWxsIGhhbmRsaW5nCisgKgorICogMDMgMjMgMjAyMCB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDA1MDI4NDRdIDI3MTMzNjihR6FpMTkxNjWhaqFpTVChaqFppFfKSaFqsr4/pWSqYD81R6FBP6prpFfKSQorICogLgorICoKKyAqIDAzIDEyIDIwMjAgYW5keS13Yy5jaGFuZworICogW01PTFkwMDUwMjYzMF0gW0Jsb2NraW5nXVtNVDY4NzNdW01hcmdhdXhdW01QMl1bTFRFXVtHQ0ZdW1RTODk4MF1bRkREIDFBXzNBXzIwQSwgVEMgOC43LjEuMS5IM10gUERVIGxvc3MgYnV0IERMIEJMRVIgaXMgMCUKKyAqIAkKKyAqIAlbVk1PTFldW0VOUERDUF0gcG9sbCBSTEMgU0lUIGFuZCBhZGQgcHJldHggb3Bwb3J0dW5pdHkgLSBzd3JkCisgKgorICogMDIgMTAgMjAyMCBpLWZlbmcuY2hlbgorICogW01PTFkwMDQ5OTAwM10gr8qztChCdWdzKSAyNzcwNDgxoUehaTE5MTY1oWqhaU1QoWqhaTVHoWqhaaRXrvyhajE5MTY1Q1QrQ1UoTlItSU1TK0lNUyksQ1RzcGVlZHRlc3SnXaZStnE/PyykVabms3Sydj+6Q6FBtU2mWqVYP6RAqr2ko6/gpFfKSSg1LzUpCisgKiAJCisgKiAJW1ZNT0xZXSBOU0EgUERDUCBIRk4gRGVzeW5jIEhhbmRsZSAtIG5ldyBpbG0gKE1TR19JRF9FTlBEQ1BfQk9HVVNfSVBfUERVX0lORCkKKyAqCisgKiAwMiAxMCAyMDIwIHlpdGluZy5jaGVuZworICogW01PTFkwMDQ5NTkzNF0gW01UNjg3M11bTWFyZ2F1eF1bUTBdW01QMl1bU1FDXVtDaGluYV1bU2hhbmdoYWldWzRHTU1dW0ludGVybmFsXVtGVF1bTURTVF1bQ0FUXVtNb3ZpbmddW0NUK0NNQ0NdbWQxOihNQ1VfY29yZTAudnBlMS50YzIoVlBFMSkpIFtBU1NFUlRdIGZpbGU6bWN1L2RyaXZlci9kcGNvcHJvL3NyYy9kcGNvcHJvX2hpc3IuYyBsaW5lOjc3NQorICogLgorICoKKyAqIDExIDI1IDIwMTkgY2hlLXdlaS5oc3UKKyAqIFtNT0xZMDA0NjA4MjldIFtNVDY4ODVdW1BldHJ1c11bTVAxXVtTUUNdW0NUXVtOU0lPVF1bSFFdW0tTXVtONzhdW1NBXVtDVENfRFBfNi4yLjNdW1RDLU1GX05SX0RULTAyMDAzXVNBIFVMMjU2UUFNIFRwdXQgbm90IGFzIGV4cGVjdGVkCisgKiAJCisgKiAJbmwxIHNpdCB1cGRhdGUgbXNnCisgKiAJW0VXU1AwMDAwMDYyMjA2XQorICogCQorICogCUREWjo1MDc0RDYzNS0yQ0FELTQ1MjYtOTA0NS0wQTMxRDIzQzlGMkMKKyAqCisgKiAxMSAxNiAyMDE5IHlpLWxpbi5sZWUKKyAqIFtNT0xZMDA0NTk3MDBdID9bTVQ2ODg1XVtQZXRydXNdW01QMV1bU1FDXVtFTV1bRUxUXVs1R11bUERDUF0/c29tZSBFTFQgRU0gdmFsdWUgZGlzcGxheSBmYWlsCisgKiAJCisgKiAJSUNEIHJlcXVlc3QgbG9nIGNtZAorICoKKyAqIDExIDA5IDIwMTkga2VuLmxpCisgKiBbTU9MWTAwNDU4MTk5XSBbTVQ2ODg1XVtQZXRydXNdW01QMV1bU1FDXVtJT0RUXVtFcmljc3Nvbl1bTGFiXVtCSl1bTlNBXUFzc2VydCBmYWlsOiBkcGNvcHJvX2hpc3IuYyA3MzQgLSAoTElTUilOUkwyIEVYQ0VQCisgKiAJCisgKiAJYWRkIGhhbmRsZXIgZm9yIHhSTEMgcmUtZXN0IGJ1dCBFTlBEQ1AgaW4gc3VzcCAtIG1zZ2lkCisgKgorICogMTAgMzEgMjAxOSBwZXRlci5jaGlhbmcKKyAqIFtNT0xZMDA0NTU3MTVdIFtGVCBGb2N1c11bTVQ2ODg1XVtQZXRydXNdW01QMV1bU1FDXVtDVENdW0ZUXVtOU0FdWzVHIEZUXVtDaGluYV1bU2hhbmdoYWldW09wZXJhdG9yIEZUXVtUQy1NRl9JT1RGVC0xMjAwMl1pZGxlIG1vIGNhbGwgZmFpbAorICogW0VSTENVTF1GaXggUkJJRCBtaXNtYXRjaCBhZnRlciBITywgY2F1c2UgUERDUCBjYW4ndCBwcmVUeCBwcm9ibGVtCisgKgorICogMTAgMTQgMjAxOSB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDA0NDA2MjddIFtHZW45N10gTW9kZW20vK/gq93J82ZlYXR1cmUgLSBOU0EgcGFydCAoQ29tbW9uIGludGVyZmFjZS9zdHJ1Y3R1cmUpCisgKiAuCisgKgorICogMDkgMjMgMjAxOSBtaW5ndHN1bmcuc3VuCisgKiBbTU9MWTAwNDQxMzE4XSBbR2VuOTddIEVOTDIgVlJCIHJ1bnRpbWUgcHJvZmlsaW5nIHRyYWNlCisgKiBWUkIgcnVudGltZSB1c2FnZSB0cmFjZSAtIGludGVyZmFjZQorICoKKyAqIDA5IDE4IDIwMTkgeWl0aW5nLmNoZW5nCisgKiBbTU9MWTAwNDQwOTg2XSBbR2VuOTddW0VOUERDUC9OUkxDVUwvTk1BQ10gTkwyIFVMIGdyYW50IHNpemUgZ3Vlc3MgbWVjaGFuaXNtIGZvciBiaS1kaXJlY3Rpb25hbCBGVFAKKyAqIC4KKyAqCisgKiAwOCAyNyAyMDE5IGNoaS1waW4ueWVoCisgKiBbTU9MWTAwNDM0ODY1XSBbR2VuOTddW0dhbWluZ10gM3JkIGFycm93IHBvcnRpbmcKKyAqIFtPQV0gZ2FtaW5nIGludGVyZmFjZQorICoKKyAqIDA4IDE0IDIwMTkga2VuLmxpCisgKiBbTU9MWTAwNDE2NzA3XSBbTVQ2Mjk3XVtBcG9sbG9dW0lPRFRdW01QMC41XVtIdWF3ZWldW0ZUXVs1R1NNXVtDaGluYV1bSGFuZ3pob3VdW0NNUkldW05TQV0wNi8yNV+lqq5hP19bMV1bY29yZTAsdnBlMSx0YzIodnBlMSldIEFzc2VydCBmYWlsOiBkcGNvcHJvX2hpc3IuYyA3MjYgLSAoTElTUilOUkwyIEVYQ0VQCisgKiAJCisgKiAJZml4IE5QRENQIHJlLWVzdGFibGlzaCB4UkxDREwgZmx1c2ggLSBtc2dpZAorICoKKyAqIDA4IDAxIDIwMTkgeWl0aW5nLmNoZW5nCisgKiBbTU9MWTAwNDI3MjQ2XSBbR2VuOTddW0VOUERDUF0gRU5QRENQLU5STENVTCBnaG9zdCBwYWNrZXQgZm9yIGdhbWluZworICogLgorICoKKyAqIDA3IDE5IDIwMTkgeWl0aW5nLmNoZW5nCisgKiBbTU9MWTAwNDAzMDQ3XSBOZXR3b3JrIHJlbGF0ZWQgb3B0aW1pemF0aW9uCisgKiAuCisgKgorICogMDcgMTEgMjAxOSBqaWEtc2hpLmxpbgorICogW01PTFkwMDQxMzU3NF0gW01UNjI5N11bQXBvbGxvXVtJT0RUXVtNUDAuNV1bQW5yaXRzdV1bUlREXVt2Ny4wLjRdWzVHXVtCYW5nQmFuZ19OUlJDX01FQVNfMDE1X05SX043OF9BM19tZWFzdXJlbWVudF1GYXRhbCBFcnJvciAoMHgxZCwgMHg5MDNjZTE0OCwgMHg5MDNjZTEyNikgLSBFTDIsIENhbGxlciBBZGRyZXNzOiAweDkwM2NlMTQ4CisgKiBjZGIgdXBkYXRlIGhvb2svdW5ob29rIHByb2Nlc3MgKFJEIGRvbWFpbikKKyAqCisgKiAwNyAwMiAyMDE5IHlpdGluZy5jaGVuZworICogW01PTFkwMDQxNDc3Ml0gW0dlbjk3XVtVTklURV1bNUddW1NBXVtIRUFUXVtSMTVfU0FfUlJDX3BhZ2luZ18zXSBEdXJpbmcgUGFnaW5nOiBObyByZXBseSBmcm9tIEVOUERDUCBmb3IgTVNHX0lEX05SUkNfRU5QRENQX0NPTkZJR19SRVEKKyAqIC4KKyAqCisgKiAwNSAxNSAyMDE5IGhhbWlsdG9uLmxpYW5nCisgKiBbTU9MWTAwNDA1NTA5XSBbVk1PTFldIFZBIG5vIHJlbGVhc2UgZnJhbWV3b3JrCisgKiAJCisgKiAJW1NXUkQgZG9tYWluXSBWQSBubyByZWxlYXNlIGZyYW1ld29yayBpbXBsZW1lbnRhdGlvbgorICoKKyAqIDA1IDE1IDIwMTkgY2hpLXBpbi55ZWgKKyAqIFtNT0xZMDA0MDYyNDZdIFtHYW1pbmddW0tvR11bTDJdIEdlbjk3IEdhbWluZyBlbmhhbmNlbWVudAorICogW09BXSBhZGQgbmV3IGludGVyZmFjZSBmb3IgZ2FtaW5nIG9wdGltaXphdGlvbgorICoKKyAqIDA1IDAzIDIwMTkgbmFuY3kuY2hhbmcKKyAqIFtNT0xZMDA0MDMzMjddIFs2Mjk3XSB1cGRhdGUgWFJMQy1ETCB0aW1lcnMgdG8gQ0RCIGFuZCBlYXJseSBOQUNLIGhhbmRsaW5nCisgKiAuCisgKgorICogMDQgMTYgMjAxOSB0Yy5jaGFuZworICogW01PTFkwMDM5NTE1OF0gW0dlbjk3XSBTeW5jIEdlbjk1IFVNT0xZRSBidWcgZml4CisgKiBbVVBDTV0gSUNEIGFuZCBzb21lIGJ1ZyBmaXguCisgKgorICogMDQgMTIgMjAxOSB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDAzOTY3MDFdIFtHZW45N11bRU5QRENQXSBjaGVjay1pbiBidWcgZml4IGZvciBFTlBEQ1AKKyAqIHZvaWNlIFJCX0lEWCBub3RpZmljYXRpb24gaW4gTDIKKyAqCisgKiAwMiAxNSAyMDE5IG5hbmN5LmNoYW5nCisgKiBbTU9MWTAwMzg0NzExXSBbNjI5N10gTlJMQyBhYm5vcm1hbCBoYW5kbGluZyBhbmQgVUwgU0lUIGFkanVzdG1lbnQKKyAqIC4KKyAqCisgKiAwMSAwMiAyMDE5IHlpdGluZy5jaGVuZworICogW01PTFkwMDM3NTk2OF0gW0dFTjk3XVtFTlBEQ1BdIFZvTFRFL1ZvTlIgRU5QRENQIGRldmVsb3BtZW50CisgKiAuCisgKgorICogMDEgMDIgMjAxOSB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDAzNzU5NjhdIFtHRU45N11bRU5QRENQXSBWb0xURS9Wb05SIEVOUERDUCBkZXZlbG9wbWVudAorICogLgorICoKKyAqIDEwIDE3IDIwMTggd29uZGVyLmxlZQorICogW01PTFkwMDM1OTEzNF0gW0dlbjk3XSBOUkxDVUwgVHJhY2UgUmVmaW5lbWVudAorICogCQorICogCS4KKyAqCisgKiAxMCAwOSAyMDE4IHdvbmRlci5sZWUKKyAqIFtNT0xZMDAzNTcwNTRdIFtHZW45N11bS1MtSU9EVF1bNEddWzVHXVtSMTVfRU5EQ19BVFRfMl8xMF9qdW5lXU5vIFVMIGRhdGEKKyAqIAkKKyAqIAkuCisgKgorICogMDggMjcgMjAxOCBoZWFkLmhzdQorICogW01PTFkwMDMyNzkyNl0gW0dFTjk3XVtFTlBEQ1BdIGJhc2UgZGV2ZWxvcG1lbnQgY2hlY2staW4KKyAqIFBEQ1AgbWF4LXRiLXNpemUgJiBwcmV0eCBmYWN0b3IgY29kaW5nCisgKgorICogMDggMTcgMjAxOCB5ay5saXUKKyAqIFtNT0xZMDAzMjc5MjZdIFtHRU45N11bRU5QRENQXSBiYXNlIGRldmVsb3BtZW50IGNoZWNrLWluCisgKiBtZXJnZSBFTU9MWSBDTHMgdG8gVk1PTFkKKyAqCisgKiAwNyAwOSAyMDE4IHBldGVyLmNoaWFuZworICogW01PTFkwMDMyNjY5MV0gW01UNjI5N10gR0VOOTcuREVWIEVOTDIgUGF0Y2ggYmFjaworICogMS4gZml4IGRpc2NhcmQgaW5kZXggYm91bmRhcnkgY2hlY2sKKyAqIDIuIGNoYW5nZSBtc2dpZCBmcm9tIGVwZGNwIHRvIGVucGRjcAorICogW1Byb3RvY29sIGJ1aWxkIHRhZ10KKyAqIFtJcyBDTCBzZWxmIHRlc3RhYmxlOiBZRVNdCisgKiBbR3JvdXAgQ0wgbGlzdDogTk9dCisgKgorICogMDYgMjcgMjAxOCB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDAzMjc5MjZdIFtHRU45N11bRU5QRENQXSBiYXNlIGRldmVsb3BtZW50IGNoZWNrLWluCisgKiBSZW1vdmUgdW4tdXNlZCBtZXNzYWdlcywgcmVtb3ZlIE1PRF9TREFQIGFuZCBNT0RfUk9IQyBpbiBQRENQIGNvZGUKKyAqCisgKiAwNiAyNiAyMDE4IHlpdGluZy5jaGVuZworICogW01PTFkwMDMyNzkyNl0gW0dFTjk3XVtFTlBEQ1BdIGJhc2UgZGV2ZWxvcG1lbnQgY2hlY2staW4KKyAqIFVMIGJ1ZmZlciBjdHJsIGFuZCBVTCBWQSBzaG9ydGFnZQorICoKKyAqIDA2IDEzIDIwMTggbmllbnRlaC5oc3UKKyAqIFtNT0xZMDAzMjY2OTFdIFtNVDYyOTddIEdFTjk3LkRFViBFTkwyIFBhdGNoIGJhY2sgLSBTeW5jIEVSTEMgcGF0Y2ggZnJvbSBHZW45My85NSAmIG1vZGlmeSBWb0xURSBSQiBpbmRleCBub3RpZnkgcHJpbWllaXR2ZS4KKyAqIAkKKyAqIAlbUHJvdG9jb2wgYnVpbGQgdGFnXQorICogCVtJcyBDTCBzZWxmIHRlc3RhYmxlOiBZRVNdCisgKiAJW0dyb3VwIENMIGxpc3Q6IE5PXQorICoKKyAqIDA2IDAxIDIwMTggY2hlbi13ZWkud2FuZworICogW01PTFkwMDMyNjY5MV0gW01UNjI5N10gR0VOOTcuREVWIEVOTDIgUGF0Y2ggYmFjaworICogLgorICoKKyAqIDA1IDE4IDIwMTggaGVhZC5oc3UKKyAqIFtNT0xZMDAzMjY2OTFdIFtNVDYyOTddIEdFTjk3LkRFViBFTkwyIFBhdGNoIGJhY2sKKyAqIAlwb3J0IGxhdGVzdCBpbnRlcmZhY2UgYW5kIGNvZGUgb24gR2VuOTcuREVWIChpbnRlcmZhY2UpCisgKgorICogMDQgMjcgMjAxOCB5aXRpbmcuY2hlbmcKKyAqIFtNT0xZMDAzMjA2MjldIFs2Mjk3XSBQUy5ERVYgcGF0Y2ggYmFjayB0byBHRU45Ny5ERVYKKyAqIENoZWNrLWluIE5SUkMtRU5QRENQIG1lc3NhZ2UgSUQKKyAqCisgKiAwNCAyNyAyMDE4IHlpdGluZy5jaGVuZworICogQ2hlY2staW4gTlJSQy1FTlBEQ1AgbWVzc2FnZSBJRAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfRU5MMl9NU0dJRF9ICisjZGVmaW5lIF9FTkwyX01TR0lEX0gKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRU5QRENQX0NPREVfQkVHSU4gKQorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tIE1TR19JRF9FTlBEQ1BfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIERlc3RpbmF0aW9uOiBFTlBEQ1AgICAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIE1TR19JRF9FUlJDX0VOUERDUF9DT05GSUdfUkVRLAorICAgIE1TR19JRF9FUlJDX0VOUERDUF9LRVlfVVBEQVRFX0RPTkVfUkVRLAorICAgIE1TR19JRF9FUlJDX0VOUERDUF9TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfUkVRLAorICAgIE1TR19JRF9FUlJDX0VOUERDUF9EQ0NIX0RBVEFfUkVRLAorICAgIE1TR19JRF9FUlJDX0VOUERDUF9EQ0NIX0RBVEFfUlNQLAorICAgIE1TR19JRF9FUlJDX0VOUERDUF9URVNUX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTlBEQ1BfQ05USU5GT19SRVEsCisgICAgTVNHX0lEX0VSUkNfRU5QRENQX0RFVEVDVElPTl9USU1FUl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX0VSUkNfRU5QRENQX0RFVEVDVElPTl9USU1FUl8yX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfRVJSQ19FTlBEQ1BfREVURUNUSU9OX1RJTUVSXzNfU1RBUlRfUkVRLAorICAgIAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9DT05GSUdfUkVRLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9LRVlfVVBEQVRFX0RPTkVfUkVRLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9EQ0NIX0RBVEFfUkVRLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9EQ0NIX0RBVEFfUlNQLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9URVNUX1JFUSwKKworICAgIC8vIFRPRE86IFJCTSAtIG5lZWQgdGhlc2U/CisgICAgTVNHX0lEX05SUkNfRU5QRENQX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9SRVEsCisgICAgTVNHX0lEX05SUkNfRU5QRENQX0NOVElORk9fUkVRLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9ERVRFQ1RJT05fVElNRVJfU1RBUlRfUkVRLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9ERVRFQ1RJT05fVElNRVJfMl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX05SUkNfRU5QRENQX0RFVEVDVElPTl9USU1FUl8zX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19FTlBEQ1BfREVURUNUSU9OX1RJTUVSXzRfU1RBUlRfUkVRLAorCisgICAgTVNHX0lEX0VMMl9FUERDUF9WUkJfVkFfU0hPUlRBR0VfTlRGLCAvLyBzaG91bGQgYmUgcmVtb3ZlZCBsYXRlcgorICAgIE1TR19JRF9FTDJfRVBEQ1BfVlJCX1ZBX05PX1JFTEVBU0VfTlRGLAorICAgIE1TR19JRF9FTDJfRU5QRENQX1ZSQl9WQV9TSE9SVEFHRV9OVEYgPSBNU0dfSURfRUwyX0VQRENQX1ZSQl9WQV9TSE9SVEFHRV9OVEYsCisgICAgTVNHX0lEX0VMMl9FTlBEQ1BfVlJCX1ZBX05PX1JFTEVBU0VfTlRGID0gTVNHX0lEX0VMMl9FUERDUF9WUkJfVkFfTk9fUkVMRUFTRV9OVEYsCisgICAgTVNHX0lEX0xURUNTUl9FTlBEQ1BfVk9JQ0VfQkVBUkVSX0lORCwKKworICAgIE1TR19JRF9VUENNX0VOUERDUF9CRUFSRVJfQVBQX1JFUSwgLy8gOTU6IE1TR19JRF9VUENNX0VQRENQX0VQU0JfQVBQX05URgorICAgIE1TR19JRF9VUENNX0VOUERDUF9TRU5EX0lOVl9DVFJMX1BEVV9SRVEsIC8vIDk1OiBNU0dfSURfVVBDTV9FUERDUF9TRU5EX0lOVl9DVFJMX1BEVSwgZ2FtaW5nCisgICAgTVNHX0lEX1VQQ01fRU5QRENQX0lNU19GSUxURVJfRE9ORV9SRVEsCisgICAgTVNHX0lEX1VQQ01fRU5QRENQX05PTl9JTVNfRklMVEVSX0RPTkVfUkVRLAorICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBHZW45NyBFTlBEQ1AsIEVOUkxDLCBFTkwyX0ZSRUUgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIE1TR19JRF9FTkwyRlJFRV9TRVRfRlJFRV9FVkVOVCwKKyAgICBNU0dfSURfRU5MMkZSRUVfRU5QRENQX0ZSRUVTSVRfSU5ELAorCU1TR19JRF9FTkwyRlJFRV9FTlBEQ1BfRFVQX0RJU0NfSU5ELAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ1VMX0RJU0NBUkRfUkVRLAorICAgIE1TR19JRF9FUkxDVUxfRU5QRENQX1NEVV9SRVRVUk5fSU5ELAorICAgIE1TR19JRF9FUkxDVUxfRU5QRENQX1NJVF9VUERBVEVfSU5ELAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ1VMX1NJVF9IT09LX1JFUSwKKyAgICBNU0dfSURfRU5QRENQX0VSTENVTF9TSVRfSE9PS19DTkYsCisJTVNHX0lEX0VOUERDUF9FUkxDVUxfUkJfSU5GT19VUERBVEVfSU5ELAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ1VMX1NJVF9VTkhPT0tfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ1VMX1NJVF9VTkhPT0tfQ05GLAorICAgIE1TR19JRF9FUkxDVUxfRU5QRENQX0dIT1NUX0RBVEFfQU1PVU5UX0lORCwKKyAgICBNU0dfSURfRVJMQ0RMX0VOUERDUF9WUkJfVkFfTk9fUkVMRUFTRV9JTkQsCisgICAgTVNHX0lEX0VOUERDUF9FUkxDVUxfTE9OR19ERUxBWV9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9FUkxDVUxfUkJfTE9DS19SRVEsCisgICAgTVNHX0lEX0VOUERDUF9FUkxDVUxfUkJfTE9DS19DTkYsCisgICAgTVNHX0lEX0VOUERDUF9FUkxDVUxfUkJfVU5MT0NLX1JFUSwKKyAgICBNU0dfSURfRU5QRENQX0VSTENVTF9WT0xURV9SQl9JRFhfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ1VMX1JCX0FQUF9OVEYsCisgICAgTVNHX0lEX0VOUERDUF9FUkxDVUxfTDRfTlRGLAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ1VMX0dIT1NUX0RBVEFfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfRVJMQ0RMX1ZPTFRFX1JCX0lEWF9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9FUkxDRExfUkJfQVBQX05URiwKKyAgICBNU0dfSURfRU5QRENQX0VSTENVTF9SQl9QT0xMX1JFUSwKKyAgICBNU0dfSURfRU5QRENQX0VSTENETF9SQl9OQUNLX1JFUSwKKyAgICBNU0dfSURfRU5QRENQX0VSTENETF9SRUVTVEFCTElTSF9SRVEsCisgICAgTVNHX0lEX0VSTENETF9FTlBEQ1BfUkVFU1RBQkxJU0hfSU5ELAorICAgIE1TR19JRF9FTlBEQ1BfVlJCX1VTQUdFX1JFUE9SVF9JTkQsCisJTVNHX0lEX0VOUERDUF9CT0dVU19JUF9QRFVfSU5ELAorCU1TR19JRF9FTlBEQ1BfU0lUX1VQREFURV9JTkQsCisJTVNHX0lEX0VOUERDUF9ETF9USU1FU1RBTVBfSU5ELAorCQorICAgIC8qIE1TR3MgZnJvbSBFTlBEQ1AgdG8gTlJMQ1VMICovCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfRElTQ0FSRF9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfTkVXVFhfREFUQV9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfTE9OR19ERUxBWV9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfRFVQTElDQVRJT05fUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX1JCX0xPQ0tfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX1JCX1VOTE9DS19SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfUkJfUE9MTF9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfVk9OUl9SQl9JRFhfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX1NJVF9IT09LX0NORiwKKyAgICBNU0dfSURfRU5QRENQX05STENVTF9TSVRfVU5IT09LX0NORiwKKyAgICBNU0dfSURfRU5QRENQX05STENVTF9SQl9BUFBfTlRGLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX0w0X05URiwKKyAgICBNU0dfSURfRU5QRENQX05STENVTF9HSE9TVF9EQVRBX1JFUSwKKyAgICBNU0dfSURfRU5QRENQX05STENVTF9OQVNfU0lUX0ZVTExfTlRGLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX0JLVF9TSVRfRlVMTF9OVEYsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfU0lUX0ZVTExfUkVMSUVWRV9OVEYsCisKKyAgICAvKiBNU0dzIGZyb20gTEhJRiB0byBOUkxDVUwgKi8KKyAgICBNU0dfSURfTEhJRl9OUkxDVUxfUFJCX0ZVTExfTlRGLAorCisgICAgLyogTVNHcyBmcm9tIEVOUERDUCB0byBOUkxDREwgKi8KKyAgICBNU0dfSURfRU5QRENQX05STENETF9WT05SX1JCX0lEWF9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDRExfUkJfQVBQX05URiwKKyAgICBNU0dfSURfRU5QRENQX05STENETF9SQl9OQUNLX1JFUSwKKyAgICBNU0dfSURfRU5QRENQX05STENETF9SRUVTVEFCTElTSF9SRVEsCisgICAgTVNHX0lEX05STENETF9FTlBEQ1BfUkVFU1RBQkxJU0hfSU5ELAorCisgICAgLyogTVNHcyBmcm9tIE5STENVTCB0byBFTlBEQ1AgKi8KKyAgICBNU0dfSURfRU5QRENQX05STENVTF9TRFVfUkVUVVJOX0lORCwKKyAgICBNU0dfSURfRU5QRENQX05STENVTF9TSVRfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfRU5QRENQX05STENVTF9FTkFCTEVfREFUQV9JTkQsCisgICAgTVNHX0lEX0VOUERDUF9OUkxDVUxfU0lUX0hPT0tfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX1NJVF9VTkhPT0tfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ1VMX1JCX0xPQ0tfQ05GLAorICAgIE1TR19JRF9OUkxDVUxfRU5QRENQX0dIT1NUX0RBVEFfQU1PVU5UX0lORCwKKworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICAvLyBHZW45NyBFTlBEQ1AsIEVNQUMsIE5NQUMgICAgICAgICAgICAgICAgIC8vCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIE1TR19JRF9FTlBEQ1BfRU1BQ19VTF9UT1RBTF9UQl9TSVpFX0lORCwKKyAgICBNU0dfSURfRU5QRENQX05NQUNfVUxfVE9UQUxfVEJfU0laRV9JTkQsCisgICAgTVNHX0lEX0VOUERDUF9OTUFDX1NJVF9VUERBVEVfSU5ELAorICAgIE1TR19JRF9FUERDUF9FTUFDX1ZPTFRFX1JCX0lEWF9SRVEsIC8vIHNob3VsZCBiZSByZW1vdmVkIGxhdGVyCisgICAgTVNHX0lEX0VOUERDUF9FTUFDX1ZPTFRFX1JCX0lEWF9SRVEgPSBNU0dfSURfRVBEQ1BfRU1BQ19WT0xURV9SQl9JRFhfUkVRLAorICAgIE1TR19JRF9FTlBEQ1BfTk1BQ19WT05SX1JCX0lEWF9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OTUFDX0lOVEVSTkVUX1JCX0lEWF9SRVEsCisgICAgTVNHX0lEX0VQRENQX0VNQUNfVk9MVEVfREFUQV9SRVEsIC8vIHNob3VsZCBiZSByZW1vdmVkIGxhdGVyCisgICAgTVNHX0lEX0VOUERDUF9FTUFDX1ZPTFRFX0RBVEFfUkVRID0gTVNHX0lEX0VQRENQX0VNQUNfVk9MVEVfREFUQV9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9OTUFDX1ZPTlJfREFUQV9SRVEsCisgICAgTVNHX0lEX0VOUERDUF9FTUFDX0NVVF9DRUxMX0lORCwKKyAgICBNU0dfSURfRU5QRENQX05NQUNfQ1VUX0NFTExfSU5ELAorCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfV0FLRVVQX1JFUSwgLy8gc2hvdWxkIGJlIHJlbW92ZWQgbGF0ZXIKKyAgICBNU0dfSURfRU1BQ19FTlBEQ1BfV0FLRVVQX1JFUSA9IE1TR19JRF9FTUFDX0VQRENQX1dBS0VVUF9SRVEsCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfRU5BQkxFX1dBS0VVUF9SRVFfSU5ELCAvLyBzaG91bGQgYmUgcmVtb3ZlZCBsYXRlcgorICAgIE1TR19JRF9FTUFDX0VOUERDUF9FTkFCTEVfV0FLRVVQX1JFUV9JTkQgPSBNU0dfSURfRU1BQ19FUERDUF9FTkFCTEVfV0FLRVVQX1JFUV9JTkQsCisgICAgTVNHX0lEX0VNQUNfRVBEQ1BfRElTQUJMRV9XQUtFVVBfUkVRX0lORCwgLy8gc2hvdWxkIGJlIHJlbW92ZWQgbGF0ZXIKKyAgICBNU0dfSURfRU1BQ19FTlBEQ1BfRElTQUJMRV9XQUtFVVBfUkVRX0lORCA9IE1TR19JRF9FTUFDX0VQRENQX0RJU0FCTEVfV0FLRVVQX1JFUV9JTkQsCisgICAgTVNHX0lEX0VNQUNfRU5QRENQXzNSRF9BUlJPV19BVVRIX0lORCwKKworICAgIE1TR19JRF9OTUFDX0VOUERDUF9XQUtFVVBfUkVRLAorICAgIE1TR19JRF9OTUFDX0VOUERDUF9FTkFCTEVfV0FLRVVQX1JFUV9JTkQsCisgICAgTVNHX0lEX05NQUNfRU5QRENQX0RJU0FCTEVfV0FLRVVQX1JFUV9JTkQsCisgICAgTVNHX0lEX0lDRF9FTlBEQ1BfUkVRVUVTVF9MT0dfTlRGLAorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIEdlbjk3IE5MMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgTVNHX0lEX0VOUERDUF9OTDFfU0lUX1VQREFURV9JTkQsCisgICAgTVNHX0lEX0VOUERDUF9OTDFfR0VNSU5JX0dBUF9TVEFURV9JTkQsCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisgICAgLy8gR2VuOTcgUk9IQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKyAgICBNU0dfSURfUk9IQ19DTVBSU19SQVRJT19JTkZPX0lORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9FTlBEQ1BfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9FTkwyX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VycmNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VycmNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzlhMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZXJyY19tc2dpZC5oCkBAIC0wLDAgKzEsMTczMCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGVycmNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTFRFIExheWVyIDEgYW5kIFByb3RvY29sIFN0YWNrIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDAyIDIxIDIwMjIgYW51c2hhLnByYWthc2gKKyAqIFtNT0xZMDA3MjQwMDNdIENVK0NUKFNBK1NBKT8/Pz8/Pz9OU0ErU0E/Pz8/Pz8/MT9TQT8/Pz8/MW1pbi0KKyAqIC4KKyAqCisgKiAxMSAwOSAyMDIxIGFzaGlrLnRqCisgKiBbTU9MWTAwNjg2NjQ5XSBbR2VuOTddIE5SIEVQUyBWb2ljZSBGYWxsYmFjayBJbmRpY2F0b3IgKFBvcnRpbmcgZnJvbSBHRU45OCBNT0xZMDA2MDQyNzggKQorICoKKyAqIDEwIDE4IDIwMjEgc2FwbmEua3MKKyAqIFtNT0xZMDA1NzIxNzddIEJhciBjZWxsPz8/PworICogLgorICoKKyAqIDAzIDIzIDIwMjEgeXVuZy1jaHVuLmxpbgorICogW01PTFkwMDU3NjY3OF0gPz+nVT+m9D8/U0GlXK/TyaykxrG1pGYKKyAqIAkKKyAqIAlbU0EgU2xpZW5jZSBNb2RlXSBFUlJDIEludGVyZmFjZSBJZChPQSkKKyAqCisgKiAwMyAxNiAyMDIxIGNoaS1sdW4ud3UKKyAqIFtNT0xZMDA1OTExNzFdIERVVKVkMbK+P6VkU0GhQadApUSlc7BfqUmm2z+sRT8KKyAqCisgKiAwMyAxMiAyMDIxIGNoaS1sdW4ud3UKKyAqIFtNT0xZMDA1OTExNzFdIERVVKVkMbK+P6VkU0GhQadApUSlc7BfqUmm2z+sRT8KKyAqIAkKKyAqIAlNRDcwMC5QUkVDSEVDS0lOLkRFVgorICoKKyAqIDExIDAyIDIwMjAgeXVuZy1jaHVuLmxpbgorICogW01PTFkwMDU4NDE3MF0gNUcgU0EgZWxldmF0b3IgbW9kZQorICogCQorICogCVtFbGV2YXRvciBNb2RlXVtTQV81RzRdIEludGVyZmFjZSAoT0EpCisgKiAJLSBOQVNfU1YgLSBFUlJDCisgKiAJICAgPSBTQSBtb2RlIG5vdGlmaWNhdGlvbgorICogCS0gRVJSQy1OTDEKKyAqIAkgICA9IGNvbm5lY3RlZCBtb2RlIEFGUiBGcmVxIG1lYXN1cmVtZW50CisgKgorICogMTAgMjEgMjAyMCBjaGktbHVuLnd1CisgKiBbTU9MWTAwNTMxNTcxXSBbc2VsZl01MDOxvD8/P6v5P8mspMYKKyAqCisgKiAwOSAxOCAyMDIwIHl1aGh3YW5nLnl1CisgKiBbTU9MWTAwNTY5NTA0XSBbR2VuOTddW01QN10gTFRFIGFuZCBOUi1OU0EgbW9kZSBzbmlmZmVyIHR5cGUgMSBzdWJtaXQgUjMgQ1IKKyAqIC4gZXJyYyBpbnRlcmZhY2UKKyAqCisgKiAwNyAxNyAyMDIwIGhlbGVuLmhzaWVoCisgKiBbTU9MWTAwNTM0MzYxXSChaTE5NDIwoWqhaVVLoWqhaUVFoWqhaUZUoWqhaUVWVKFqRFVUIGNhbid0IGFsd2F5cyBzdGF5IG9uIE5SIHdoaWxlIGFjdGl2YXRpbmcgc21hbGwgZGF0YSBpbiB0aGUgYmFja2dyb3VuZAorICogCQorICogCS4KKyAqCisgKiAwNiAzMCAyMDIwIGhvaG8uY2hlbgorICogW01PTFkwMDUzNjU4N10gW0dlbjk3XVtNUDZdW0FGUl0gZmVhdHVyZSBjaGVjay1pbiwgIChjaGVjay1pbiBhcHByb3ZlZDo/aXRlbV8yMzMpICkKKyAqIC4KKyAqCisgKiAwNiAyOSAyMDIwIHllbmNoaWgueWFuZworICogW01PTFkwMDUzNjcxOF0gW0dlbjk3XVtTVE9dW01QNyBmZWF0dXJlXSA/TUNDIFJlY29nbml0aW9uCisgKiAJCisgKiAJLgorICoKKyAqIDA2IDEwIDIwMjAgY2hpbi1jaGlhLmNoYW5nCisgKiBbTU9MWTAwNTMyMzUwXSBbRm9yIE1vdXRvbl1bUjNdW01UNjg3NV1bTWFyZ2F1eF1bUTBdW01QNV1bU1FDXVtDaGluYV1bUXV6aG91XVs1R01NXVtOU0FdW0ludGVybmFsXVtGVF1bTlNBIFNlbGYtQ2VyXVtNRFNUXVtDQVRdW01vdmluZ11bQ01DQytDTUNDXSBNb2RlbSBXYXJuaW5nOiArRVdBUk5JTkc6IFsxXVs3MjNdIGVycmNfY2htX21haW4uYyAjNTY1OAorICogCQorICogCVtSM19NUF0gW09BXSBJUkFUX1RPX0xURV9BQk9SVF9JTkQgdG8gQ0hNLCB0byByZXNldCBDSE0gQ05UWAorICoKKyAqIDA2IDAxIDIwMjAgd2F5bmUtd2MuY2hlbgorICogW01PTFkwMDUyNjk0Ml0gW01UNjg1M11bTW91dG9uXVtNVDYxOTBdW01QNV1bUjNdW1EwXVtTUUNdW1BlcmZvcm1hbmNlIFRlc3RdW1NBXVtDVF1bTGl2ZV1bU2hlbnpoZW5dbWQxOihNQ1VfY29yZTAudnBlMC50YzAoVlBFMCkpIFtBU1NFUlRdIGZpbGU6bWN1L3Byb3RvY29sL2VubDIvcGRjcC9jb21tb24vc3JjL2VwZGNwX3VsX3Byb2MuYyBsaW5lOjkwOTgKKyAqCisgKiAwNCAwMSAyMDIwIGphY2suY2h1CisgKiBbTU9MWTAwNTA5MDgyXSBbTVQ2ODczXVtNYXJnYXV4XVtRMF1bTVAyXVtTUUNdW1BlcmZvcm1hbmNlIFRlc3RdW0xlZ2FjeV1bQ01DQ11bTGl2ZV1bQmVpamluZ11bUGVyZl9BdHRhY2hfMDVfVEREXU1hcmdhdXggTFRFIEF0dGFjaCB0aW1lIGxvc2UgTWF0ZTMwKDMuMTFzIHZzIDEuOTNzKQorICogCQorICogCS4KKyAqCisgKiAwMyAyNiAyMDIwIGNoaWgtY2hpZW4ubGluCisgKiBbTU9MWTAwNTA3MjA2XSBbTVQ2ODczXVtNYXJnYXV4XVtRMF1bTVAzXVtTUUNdW0luZGlhXVtEZWxoaV1bNUdNTV1bRkREXVtBSVJURUxdW1JKSU9dW0F1dG9dW0FuZHJvaWQgTGludXggU2NyaXB0XVtTU1RdW1NUQVRJQ11bRXJyb3IgVGltZXM6MV1bQVNTRVJUXSBmaWxlOm1jdS9wcm90b2NvbC9sdGVfc2VjL2VycmMvY2htL3NyYy9lcnJjX2NobV9tYWluLmMgbGluZTo2NzA5CisgKiBhZGQgbXNnCisgKgorICogMDMgMjMgMjAyMCBob2hvLmNoZW4KKyAqIFtNT0xZMDA1MDI4NDRdIDI3MTMzNjihR6FpMTkxNjWhaqFpTVChaqFppFfKSaFqsr4/pWSqYD81R6FBP6prpFfKSQorICogLgorICoKKyAqIDAzIDE2IDIwMjAgc3RhbmxleS5zdQorICogW01PTFkwMDUwMTkyOF0gPz+mo7K+tNNNT0xZMDA0MjY5MzkKKyAqIFZTSU0gUExNTiBsaXN0KFNXUkQpCisgKgorICogMDMgMTYgMjAyMCBtaW5nLnNoZW4KKyAqIFtNT0xZMDA1MDQxNDZdIFs1Ry1BXVs1RyBNb2RlbbdzZmVhdHVyZV3JrKTGNUextaRKsbGo7gorICogCQorICogCS0gQ0VMCisgKgorICogMDMgMDMgMjAyMCBqYWNrLmNodQorICogW01PTFkwMDUwMjYyNl0gW01UNjg3M11bTWFyZ2F1eF0gTWFyZ2F1eCBCaWcgRVUgVlRGOiBtcmRjX2x0ZV9zdGFuZGFsb25lX2JhbmRfY29tYmluYXRpb25fc3VwcG9ydGVkCisgKiAJCisgKiAJLgorICoKKyAqIDAxIDA2IDIwMjAgc3RhbmxleS5zdQorICogW01PTFkwMDQ2NDgyOV0gW0dlbjk3XXN0b3JlZCBmcmVxdWVuY3kgQVBJCisgKiBTdG9yZWQgZnJlcXVlbmN5IEFQSShNU0dfSUQpCisgKgorICogMDEgMDIgMjAyMCBtYW5keS56aGVuZworICogW01PTFkwMDQ2ODkxN10gMjY2Mzg0Ny0tLS2yvj+lZKpgPzJHoUGm06SjrE80RyChQT8/P6bmvNKmobROpWmlSKpgPzRHIMpJP6FdMS8xMKFeCisgKiAJCisgKiAJLgorICoKKyAqIDEyIDA5IDIwMTkgaGVsZW4uaHNpZWgKKyAqIFtNT0xZMDA0NjM2MDFdIFtHZW45N10gTW9kaWZ5IFNBU0UgbW9kdWxlCisgKgorICogMTIgMDkgMjAxOSBsb3JlbnoubGluCisgKiBbTU9MWTAwNDY0NTI2XSBbTVQ2ODg1XVtQZXRydXNdW01QMV1bU1FDXVtJbmRpYV1bRGVsaGldWzVHTU1dW0ZERF1bUkpJT11bVm9kYWZvbmVdW0F1dG9dW0FuZHJvaWQgTGludXggU2NyaXB0XVtTU1RdW0FSU11bRXJyb3IgVGltZXM6MV0gW0FTU0VSVF0gZmlsZTptY3UvcHJvdG9jb2wvbHRlX3NlYy9lcnJjL2V2dGgvc3JjL2VycmNfZXZ0aC5jIGxpbmU6MjExNyBwMToweDAwMDA1YWUzIHAyOjB4MDAwMDAwMDUgcDM6MHgwMDAwMDAwNAorICogLgorICoKKyAqIDEwIDE0IDIwMTkgeXVuZy1jaHVuLmxpbgorICogW01PTFkwMDQ0MDYyN10gW0dlbjk3XSBNb2RlbbS8r+Cr3cnzZmVhdHVyZSAtIE5TQSBwYXJ0IChDb21tb24gaW50ZXJmYWNlL3N0cnVjdHVyZSkKKyAqIAkKKyAqIAkJW0VSUkNdW01PQl0gU21hcnQgSWRsZSAoSW50ZXJmYWNlOyBPQSkKKyAqCisgKiAwOSAyNiAyMDE5IGJvLXlhby50c2FpCisgKiBbTU9MWTAwNDQzMDYyXSBbR2VtaW5pXSBTQStMIERSLURTRFMvRFNEQQorICoKKyAqIDA5IDI1IDIwMTkgc2gucGFuCisgKiBbTU9MWTAwNDQyMTM2XSBbR2VuOTddW0VSUkNdIEhTVCBnYW1lIG1vZGUgZW5oYW5jZW1lbnQKKyAqIAkKKyAqIAkuCisgKgorICogMDkgMjMgMjAxOSB5dW5nLWNodW4ubGluCisgKiBbTU9MWTAwNDQwODg2XSBbR2VuOTddIERTREEtbGlrZSBmZWF0dXJlIGNoZWNrIGluCisgKiAJCisgKiAJW0VSUkNdW01PQl1bOTddIERTREEtbGlrZSBmZWF0dXJlIChPQSkKKyAqCisgKiAwOSAyMyAyMDE5IGNoYXJsZXktY2MuY2hlbmcKKyAqIFtNT0xZMDA0Mzk1MzNdIFtHZW45N11bSURDXSBJREMgZmVhdHVyZSBkZXZlbG9wbWVudAorICogCQorICogCVtDSE0vQ09OTl0gTVNHIElEIGZvciBNUkRDIElEQyBmZWF0dXJlIGRldmVsb3BtZW50CisgKgorICogMDkgMTcgMjAxOSB0ZXJlYXNhLmh1YW5nCisgKiBbTU9MWTAwNDQwNjQ5XSBbR2VuOTddW05MMV9NT0JdW05SUkNfTUVBU10gR2FtaW5nIGNlbGwgbGlzdCBmb3IgbW9iaWxpdHkgZW5oYW5jZW1lbnQKKyAqIFtOTDFfTU9CXSBHYW1pbmcgTGlzdCAoSW50ZXJmYWNlKS4KKyAqCisgKiAwOCAxNSAyMDE5IGhlbGVuLmhzaWVoCisgKiBbTU9MWTAwNDI3MDcyXSBbR2VuOTddW05TQV0gRGVhY3RpdmF0ZSBFTkRDIGZlYXR1cmUKKyAqIAkKKyAqIAktIEVSUkMtTDRDIGludGVyZmFjZQorICoKKyAqIDA3IDMwIDIwMTkgd2F5bmUtd2MuY2hlbgorICogW01PTFkwMDQyNjIwNl0gW1ZNT0xZXVtFUlJDXVtSQ01dIFByZS1idWlsZCBVRSBjYXBhYmlsaXR5IHdoZW4gZW50ZXJpbmcgY29ubmVjdGVkIG1vZGUKKyAqIAkKKyAqIAktIGluZm9ybSBSQ00gdGhhdCBlcnJjIGVudGVycyBjb25uZWN0ZWQgc3RhdGUgKE9BKQorICoKKyAqIDA3IDI0IDIwMTkgc2hpaC1oYW4ubGluCisgKiBbTU9MWTAwNDI0Mzk2XSBbQ09ERSBTWU5DXSA/qkE/pFWlXK/TyaykxqSnt2rKSbWmsqQKKyAqIAkKKyAqIAkoQ0VMIE9BIHBhcnQpCisgKgorICogMDcgMTcgMjAxOSBtYXJ1Y28udHUKKyAqIFtNT0xZMDA0MjI4NjldIFs2Mjk3XVtJbnRlcmZhY2VdW0NvZGUgU3luY10gVG8gcHJvdmlkZSBBUEkgdG8gY29udHJvbCA0RyBmYWtlIGNlbGwgZmVhdHVyZQorICogCQorICogCVtJbnRlcmZhY2VdMTM2MzE5MqFHNEcgZmFrZSBjZWxsIG5ldyBmZWF0dXJlIHJlcXVpcmVtZW50cy4KKyAqIAkoT0EgZG9tYWluKQorICoKKyAqIDA3IDA5IDIwMTkgeWVuY2hpaC55YW5nCisgKiBbTU9MWTAwNDE4MDcyXSBbR2VuOTddIEFkdi4gQ2VsbCBTZWFyY2ggRmVhdHVyZQorICogCQorICogCUJhY2tncm91bmQgYmFuZCBsZWFybmluZyBpbnRlcmZhY2UuCisgKgorICogMDcgMDkgMjAxOSB5ZW5jaGloLnlhbmcKKyAqIFtNT0xZMDA0MTgwNzJdIFtHZW45N10gQWR2LiBDZWxsIFNlYXJjaCBGZWF0dXJlCisgKiBFUlJDLUNFTCBJbnRlci1SQVQgUG93ZXIgU2NhbiBJbnRlcmZhY2UuCisgKgorICogMDcgMDMgMjAxOSBmYXJtaW5nLnRzZW5nCisgKiBbTU9MWTAwNDE3Njk1XSBbR2VuOTddW1ZNT0xZXSBQcm90b2NvbCBBc3NlcnQgUmVtb3ZlIHBoYXNlIDEgLSBFUlJDCisgKiBmcm9tIE1PTFkwMDM5ODQzMywgcGVyZiBFUlJDIHBhcnQuIE9BIGRvbWFpbgorICoKKyAqIDA3IDAxIDIwMTkgcG8teXUuaHVhbmcKKyAqIFtNT0xZMDA0MTU2MjldIFtHZW45N11bRVJSQ11bTU9CXSBJUkFUIE9URE9BL0VDSUQgZmVhdHVyZQorICogCQorICogCS4KKyAqCisgKiAwNyAwMSAyMDE5IHNhYnJpbmEuaHN1CisgKiBbTU9MWTAwNDE3NTQxXSBbUkNNXVs2Mjk3XSBMVEUgQ0EgY2hhbmdlCisgKiBbVk1PTFldIGFkZCBDQSBBUEkgZGhsIGxvZyBwcmltaXRpdmUKKyAqCisgKiAwNiAxNyAyMDE5IHNoaWgtY2hlLmNob3UKKyAqIFtNT0xZMDA0MTM4NjBdIFtOQVNfU1YvIHhNTS8geEFTXSBTMS8gTjEgbW9kZSB1cGRhdGUKKyAqIC4KKyAqCisgKiAwNiAwNCAyMDE5IHllbmNoaWgueWFuZworICogW01PTFkwMDM2NTc2NF0gW0dlbjk3XVtOV1NJTV1bNEddW1RDXzZfNF8zXVtUQ184XzNfNF80XSBGYWlsIGluIGNhc2UgcHJlYW1ibGUgKGJlZm9yZSBjYW1wIG9uIExURSBjZWxsIDEuCisgKiAJRVJSQy1DRUwgaW50ZXJmYWNlLgorICoKKyAqIDA1IDMwIDIwMTkgd2F5bmUtd2MuY2hlbgorICogW01PTFkwMDQwMjAwM10gW1ZNT0xZXSBHRU1JTkkgTitMIERTRFMKKyAqIAkKKyAqIAlbRVJSQy1TUFZdIERSREEvRFJEUyBkZXZlbG9wbWVudCAoT0EpCisgKgorICogMDUgMTQgMjAxOSBoZWxlbi5oc2llaAorICogW01PTFkwMDM5MjY0Nl0gW01UNjI5N11bUGhvbmUgQ2FsbF1bTlNBIEZ1bGxTdGFja11bSHVhd2VpIE1XQyBEZW1vXVtTaGFuZ2hhaV1bNUddW1ZNT0xZXVVFIGRpZG4ndCBzZW5kIGV2ZW50QjFfTlIgcmVwb3J0IHRvIE5XIGFmdGVyIEF0dGFjaCBjb21wbGV0ZQorICogCQorICogCS0gZXJyYy1ubDEgYW5kIGVycmMtbW9iL2NobSBpbnRlcmZhY2UgZm9yIGJhc2ljIFNGVEQgYW5kIGdhcGxlc3MgbWVhcyAoZmFrZSBTRlREKQorICoKKyAqIDA0IDI1IDIwMTkgd2F5bmUtd2MuY2hlbgorICogW01PTFkwMDM4MzcxMV0gW01UNjI5N11bQXBvbGxvXVtQcmVTUUNdW01QMC41XVtOVklPVF1bTm9raWFdW091bHVdWzRHXTogQXNzZXJ0IEZhaWw6IGRwY29wcm9faGlzci5jIDcxMyAtIChMSVNSKW1tbDJfZXhjZXBfbGlzcgorICogCQorICogCS4KKyAqCisgKiAwNCAyMiAyMDE5IHdheW5lLXdjLmNoZW4KKyAqIFtNT0xZMDAzODM3MTFdIFtNVDYyOTddW0Fwb2xsb11bUHJlU1FDXVtNUDAuNV1bTlZJT1RdW05va2lhXVtPdWx1XVs0R106IEFzc2VydCBGYWlsOiBkcGNvcHJvX2hpc3IuYyA3MTMgLSAoTElTUiltbWwyX2V4Y2VwX2xpc3IKKyAqIAkKKyAqIAlyb2xsIGJhY2sKKyAqCisgKiAwNCAyMiAyMDE5IHdheW5lLXdjLmNoZW4KKyAqIFtNT0xZMDAzODM3MTFdIFtNVDYyOTddW0Fwb2xsb11bUHJlU1FDXVtNUDAuNV1bTlZJT1RdW05va2lhXVtPdWx1XVs0R106IEFzc2VydCBGYWlsOiBkcGNvcHJvX2hpc3IuYyA3MTMgLSAoTElTUiltbWwyX2V4Y2VwX2xpc3IKKyAqIAkKKyAqIAlbRVJSQy1DSE1dIHBkY3AgcmxmIGludGVyZmFjZSAoT0EpCisgKgorICogMDMgMjkgMjAxOSBtaW5nLnNoZW4KKyAqIFtNT0xZMDAzOTU0ODddIFtFUlJDXSBJbnRlclJBVC1SU1REIC0gQ0VML01PQiBpbnRlcmZhY2UKKyAqCisgKiAwMyAyOCAyMDE5IGhvaG8uY2hlbgorICogW01PTFkwMDM3OTIxNV0gW01UNjI5N11bRU4tRENdIFNjZW5hcmlvIHdoZXJlIFNSQjEgaXMgY29uZmlndXJlZCB0byB1c2UgTlIgUERDUCBiZWZvcmUgdGhlIGluaXRpYWwgc2VjdXJpdHkgY29uZmlndXJhdGlvbiBkb2VzIG5vdCB3b3JrCisgKiAuCisgKgorICogMDMgMjggMjAxOSBtb3J0b24ubGluCisgKiBbTU9MWTAwMzkzNzY3XSBbTVQ2Mjk3XSBUUyAzNi4zMzEgMjAxOCBEZWNlbWJlciBiYXNlbGluZSBtaWdyYXRpb24KKyAqIFtFUlJDXVtOVlJBTV0gQVNOLjEgMjAxOERFQyB2ZXJzaW9uIHVwZ3JhZGluZyArIEludGVyZmFjZSAoU1dSRCkKKyAqCisgKiAwMyAyNiAyMDE5IGNoaW4tY2hpYS5jaGFuZworICogW01PTFkwMDM5NDE4N10gW1ZNT0xZXSBbRVJSQ10gW1NDR106IChSMi0xODE3NjIwKSBJbnRyb2R1Y2luZyBwcm9jZWR1cmUgZm9yIHJlcG9ydGluZyBSTEMgZmFpbHVyZXMKKyAqIAkKKyAqIAlbTlJSQyBTQ0ddIFtSTEMgZmFpbHVyZV0KKyAqIAkKKyAqIAkyCisgKgorICogMDIgMTggMjAxOSBmYXJtaW5nLnRzZW5nCisgKiBbTU9MWTAwMzgxOTY2XSBbR2VuOTddIEFGUiB0byBOUjogZGV2ZWxvcG1lbnQKKyAqIENPTU1PTiBwYXJ0IGNoZWNrIGluLgorICoKKyAqIDEyIDI0IDIwMTggbG9yZW56LmxpbgorICogW01PTFkwMDM3NDM3OV0gW0VSUkNdW0NFTF0gNUc0IFJDR0kgZGV2ZWxvcG1lbnQKKyAqIDVHNCBSQ0dJIHJlbGF0ZWQgaW50ZXJmYWNlIChPQSkuCisgKgorICogMTIgMjAgMjAxOCB5aS1oYW4uY2h1bmcKKyAqIFtNT0xZMDAzNjk0NDZdIFtNVDM5NjddW0VpZ2VyXVtPMV1bTVAxXVtQZXJmb3JtYW5jZSBUZXN0XVtMYWJdW1JURF1bSFFdW1NJTTE6QW5yaXRzdV1bNEdNTV1bMDUxX0Zhc3RSb2FtaW5nXzRHX0hQTE1OXzJHX1ZQTE1OX25vX2ZsaWdodF9tb2RlXQorICoKKyAqIAlTeW5jIHBhdGNoIChDTCM2NTAxMjc3ICsgQ0wjNjUwMTIyOSkKKyAqCisgKiAJZXJyY19tc2dpZCArIHNicF9mZWF0dXJlIChTQlBfTFRFX0VBUkxZX09PU19TRUFSQ0hfRU5IKQorICoKKyAqIDEyIDIwIDIwMTggZmFybWluZy50c2VuZworICogW01PTFkwMDM3MzA3MF0gW1ZNT0xZXSBDT05OIFNBIElSQVQgSE8gLSBpbnRlcmZhY2UgcGFydC4KKyAqCisgKiAxMiAxOCAyMDE4IHBvLXl1Lmh1YW5nCisgKiBbTU9MWTAwMzcwNDY0XSBbR2VuOTddW0VSUkNdW01PQl0gTlIgZGV2ZWxvcG1lbnQgb24gVk1PTFkuRVZCLlNFUFQuREVWCisgKgorICogCS4KKyAqCisgKiAxMiAxNyAyMDE4IGNoYXJsZXktY2MuY2hlbmcKKyAqIFtNT0xZMDAzNzI2MzhdIFtHZW45N11bRVZUSC9DSE1dIEVOTDIgTWlncmF0aW9uCisgKgorICogCU1TRyBJRCB1cGRhdGUgZm9yIEVOTDIgbWlncmF0aW9uCisgKgorICogMTIgMTEgMjAxOCBzaC5wYW4KKyAqIFtNT0xZMDAzNzE5MDVdIFtHZW45N11kYXRhIHByZWZlciBWMy4wIC0tIGxhcmdlIGJhbmR3aWR0aCBwcmVmZXIKKyAqCisgKiAJLmludGVyZmFjZQorICoKKyAqIDExIDI5IDIwMTggcG8teXUuaHVhbmcKKyAqIFtNT0xZMDAzNjg3NjJdIFtHZW45N11bRVJSQ11bTU9CXSBWTU9MWS5GUEdBLlNFUC5ERVYgdG8gVk1PTFkKKyAqCisgKiAJTlIgUkNHSSAmIEVOREMgYXV0byBnYXAgSUYKKyAqCisgKiAxMSAyOSAyMDE4IG90dG8ubGl1CisgKiBbTU9MWTAwMzY4NzQ4XSBbR0VOOTddW0NFTF0gU0VQLkRFViB0byBWTU9MWSBpbnRlZ3JhdGluZworICoKKyAqIAlTQSB0byBWTU9MWSBJRgorICoKKyAqIDEwIDI1IDIwMTggc2FicmluYS5oc3UKKyAqIFtNT0xZMDAzNDUyNjddIFs2Mjk3XVtFUlJDXVtSQ01dIExURSBuZXcgZmVhdHVyZQorICoKKyAqIAlbRVJSQyBSQ01dLiBFUlJDX1JDTV9BUElfVEVTVCBtc2cKKyAqCisgKiAxMCAyMyAyMDE4IGhvaG8uY2hlbgorICogW01PTFkwMDM1NTkxMV0gW0NvZGUgU3luY10gR2VuOTMvR2VuOTUgcG9ydGluZyB0byBWTU9MWQorICogLgorICoKKyAqIDEwIDE4IDIwMTggeWVuY2hpaC55YW5nCisgKiBbTU9MWTAwMzQ2NjU4XSBbVk1PTFldIEdlbjk3IEVSUkMtQ0VMIG1vZGlmaWNhdGlvbnMKKyAqIEVSUkMtQ0VMIFNuaWZmLgorICoKKyAqIDEwIDAzIDIwMTggb3R0by5saXUKKyAqIFtNT0xZMDAzNTYyODZdIFtHZW45N10gYmFja2dyb3VuZCBzZWFyY2ggZmVhdHVyZQorICoKKyAqIAkuCisgKgorICogMTAgMDEgMjAxOCBkb3VnLnNoaWgKKyAqIFtNT0xZMDAzMjYzNTVdIFs2Mjk3XVtFUlJDXSBTUFYgZGV2ZWxvcG1lbnQKKyAqIE5BU19TViBjYXBhYmlsaXR5IGNoYW5nZSBmZWF0dXJlIC0gU1BWIGludGVyZmFjZS4KKyAqCisgKiAwOSAyNyAyMDE4IHNoaW4uY2hlbgorICogW01PTFkwMDM1MTI1Nl0gW0dlbjk3XVtLUy1JT0RUXVs1R11bUjE1X0VORENfUlJDX1NSQjFfMnNfMV8yXVNSQiBOUiBjb25maWd1cmF0aW9uIFsxXSBBc3NlcnQgZmFpbDogZXBkY3BfcmJtLmMgNDQ2NCAtIEVMMiBbMV0gRXhwcmVzc2lvbjogUkJfU1RfTk9ORSA9PSBwX3NyYi0+Y21uLnN0YXRlCisgKiAuCisgKgorICogMDggMzAgMjAxOCBtb3J0b24ubGluCisgKiBbTU9MWTAwMzQ4OTUyXSBbR2VuOTddSnVuZSBWZXJzaW9uIEFTTi4xIG1pZ3JhdGlvbiBwYXRjaCBiYWNrCisgKiBbSU5URVJGQUNFXVtVVElMSVRZXVtOVlJBTV1bU0JQXVtDVVNUT01dIEdlbjk3IE5TQS9TQSBkZXZlbG9wbWVudCBwaGFzZS1pbgorICoKKyAqIDA4IDE3IDIwMTggaGVsZW4uaHNpZWgKKyAqIFtNT0xZMDAzNDY1NzZdIFs2Mjk3XVtFUlJDXVtNT0JdIE5TQSBkZXZlbG9wbWVudCBHRU45Ny5ERVYgcGF0Y2ggYmFjayB0byBWTU9MWQorICoKKyAqIAktIENPTk4sIFNDRywgTkwxIGludGVyZmFjZSB3aXRoIE1PQgorICoKKyAqIDA4IDE3IDIwMTggamFtZXMtY2hpLWp1LmNoYW5nCisgKiBbTU9MWTAwMzA2MTQ4XSBbTkFTXSBwYW5ndSBnaWFudCBDUgorICogaW50ZXJmYWNlCisgKgorICogMDggMTcgMjAxOCBsb3JlbnoubGluCisgKiBbTU9MWTAwMzQ2NTc5XSBbR2VuOTddIFJSQy1QRENQIGludGVyZmFjZSBjaGVjay1pbgorICogLgorICoKKyAqIDA4IDE3IDIwMTggc2hpbi5jaGVuCisgKiBbTU9MWTAwMzI0Nzk3XSBbNjI5N11bRVJSQ10gQ0hNIGRldmVsb3BtZW50CisgKiAuCisgKgorICogMDggMTcgMjAxOCBkb3VnLnNoaWgKKyAqIFtNT0xZMDAzMjYzNTVdIFs2Mjk3XVtFUlJDXSBTUFYgZGV2ZWxvcG1lbnQKKyAqIEdFTjk3LkRFViBwYXRjaCBiYWNrIHRvIFZNT0xZLgorICogTkFTX1NWIFJBVCBDSEFOR0UgaW50ZXJmYWNlIGNoYW5nZS4KKyAqCisgKiAwOCAxNiAyMDE4IG5pY2t5LmNob3UKKyAqIFtNT0xZMDAzNDYyNTJdIFs2Mjk3XVtFUlJDXVtDT05OXSBHRU45Ny5ERVYgcGF0Y2ggYmFjayB0byBWTU9MWQorICogLgorICoKKyAqIDA4IDA2IDIwMTggeXVuZy1jaHVuLmNoYW5nCisgKiBbTU9MWTAwMzQ0Mjc0XSBbSFVBV0VJXVtPTlRJTV1bRHVyYV1bRFRdP++/ve+/ve+/ve+/vSBMVEUgUk9IQyBQcm9maWxlcz9WT0xURe+/ve+/ve+7KgorICogCWZvciBMUjEzLlIwIHNicCtvYSBwYXJ0LgorICoKKyAqIDA3IDI0IDIwMTgga2UtdGluZy5sZWUKKyAqIFtNT0xZMDAzMzU3NzddIFtFSUdFUl1bTVQzOTY3XVtSRElUXVtQaG9uZV1baW4taG91c2UgRlRBXVszNi41MjMtMV1bTFRFXVtGRERdW0UwMV1bU0lNMV1bQ01XNTAwXVs4LjIuMS41XSBUZXN0IGNhc2UgZmFpbCBhdCBzdGVwIDQgSEFSUSBlcnJvciBmb3IgVUwgdHJhbnNtaXNzaW9uIGluIGxhdGVuY3kgdGVzdAorICogLXByb2NlZHVyZSBkZWxheQorICoKKyAqIDA3IDE4IDIwMTggbWFydWNvLnR1CisgKiBbTU9MWTAwMzM5MzA3XSBUaGUgaGFuZGxpbmcgb2YgZW5lcmd5IGRlcGxldGlvbiBhdHRhY2sgYnkgU1RNU0kgcGFnaW5nIGZyb20gZmFrZSBjZWxsCisgKiBbSW50ZXJmYWNlXSBuZXcgbWVzc2FnZSBvZiBTVE1TSSBwYWdpbmcgYXR0YWNrCisgKgorICogMDcgMTcgMjAxOCBhYXJvaC55YW5nCisgKiBbTU9MWTAwMzM4MjA1XSBbRUlHRVJdW01UMzk2N11bUkRJVF1bRlRdW1RERF1bQ01DQ11bSFpdW1RETF1bVm9MVEUtRlQtMDAxXVsxLjEuMV0gY2FsbCBrZWVwaW5nIHRpbWUgaXMgZGlmZmVyZW50IGJldHdlZW4gdHdvIERVVFtGT0NVU10KKyAqIFtMUjEzLlIwXVtFUlJDL1NQVl0gUmUtYXJjaCBWRE1fSU1TX1ZPSUNFX1NUQVRVU19SRVEgLSBpbnRlcmZhY2UgcGFydCAoT0EpCisgKgorICogMDcgMTIgMjAxOCB5dW5nLWNodW4ubGluCisgKiBbTU9MWTAwMzM3OTkxXSBbR2VtaW5pXVtMK0xdW0dlbjk1XSBBMiB0cmlnZ2VyIG5ldHdvcmsgcmVsZWFzZQorICoKKyAqIAlbRmFrZUEyXVtFUlJDXSBOZXcgTXNnIElkIGZvciBGYWtlQTIgY29ubmVjdGlvbiByZWxlYXNlIHRyaWdnZXJpbmcKKyAqIAktIEVNTS0+RVJSQyBub3RpZmljYXRpb24gZm9yIGNvbm5lY3Rpb24gcmVsZWFzZSB0cmlnZ2VyaW5nCisgKiAJLSBJTVMgRVBTIGJlYXJlciB1cGRhdGUgaW5mbyAoZXNwZWNpYWxseSBmb3IgSU1TIGRlZGljYXRlZCBiZWFyZXIpCisgKgorICogMDYgMjAgMjAxOCBwZXRlci5jaGllbgorICogW01PTFkwMDMzNDA4MF0gW0VSUkNdW1NTSV1bTVQ2NzYzXVtCaWFuY29dW08xXVtNUDJdW0FUJlRdW3NpbXVsYXRvci1QMThfMV1baW4taG91c2VdW1ImU11bQVRUQUNIL1JFU1RBUlRdW0xURS1CVFItMS04MjY4XSBVRSBmYWlsZWQgYXQgc3RlcDE1OyBSUkNDb25uZWN0aW9uUmVxdWVzdCBUaW1lT3V0CisgKgorICogCS4KKyAqCisgKiAwNiAxMSAyMDE4IG90dG8ubGl1CisgKiBbTU9MWTAwMzMxODE2XSBbTFIxM10gUkNNIHBhdGNoIGJhY2sKKyAqCisgKiAJLgorICoKKyAqIDA2IDA4IDIwMTgga2UtdGluZy5sZWUKKyAqIFtNT0xZMDAzMzI0NDVdIFtFSUdFUl1bTVQzOTY3XVtDQVQxNl1bUkRJVF1bUEhPTkVdW0NNVzUwMF9NTEFQSV1bVEMsIEZERCwgMC40LjEuMi5BLTFdIFNjZWxsIGFjdGl2ZSBmYWlsIGluIEFkZC9BY3RpdmUgY21kIHJldmVyc2VkCisgKiAtcmVkdWNlIHByb2NlZHVyZSBkZWxheQorICoKKyAqIDA2IDA4IDIwMTgga2UtdGluZy5sZWUKKyAqIFtNT0xZMDAzMzI0NDVdIFtFSUdFUl1bTVQzOTY3XVtDQVQxNl1bUkRJVF1bUEhPTkVdW0NNVzUwMF9NTEFQSV1bVEMsIEZERCwgMC40LjEuMi5BLTFdIFNjZWxsIGFjdGl2ZSBmYWlsIGluIEFkZC9BY3RpdmUgY21kIHJldmVyc2VkCisgKgorICogCS0gUmVkdWNlIHByb2NlZHVyZSBkZWxheSBwYXJ0MQorICoKKyAqIDA1IDE1IDIwMTggYWFyb2gueWFuZworICogW01PTFkwMDMyNjAxNF0gW0dlbjk1XVtNU1BNXSBTVyBjaGFuZ2VzIGNoZWNrIGluIFVNT0xZRQorICogW0VSUkMvU1BWJkNPTk5dIFJlYXJjaCBmb3IgTVNQTSAtIEludGVyZmFjZSBwYXJ0IChPQSkKKyAqCisgKiAwNSAxNSAyMDE4IGNoZXN0ZXItemQuaHVhbmcKKyAqIFtNT0xZMDAzMjYwMTRdIFtHZW45NV1bTVNQTV0gU1cgY2hhbmdlcyBjaGVjayBpbiBVTU9MWUUKKyAqIC0gIFJTVkFTIGludGVyZmFjZQorICoKKyAqIDA0IDEwIDIwMTggY3ludGhpYS5jaGVuCisgKiBbTU9MWTAwMzEyMzE0XSBbR2VuOTVdW1IxNF1EZWxheUJ1ZGdldFJlcG9ydCAtIGFkZCBpbmplY3QgYW5kIG5ldyBtc2cgQE9BCisgKgorICogMDMgMzEgMjAxOCB5dW5nLWNodW4ubGluCisgKiBbTU9MWTAwMzE3NDk0XSBbQ29kZSBTeW5jIGZyb20gUjIuU1BdW0FMUFMwMzc2NzYyMV3vv71paGlnaO+/vWrvv71pSU5fRlRfREMwNjbvv71qIO+/vWlSMV9FVlQx77+9aiDvv71pTO+/vWog77+9aUZyZWVfVGVzdO+/vWog77+9aUluZG9yZe+/vWogIERVVCBmYWlscyB0byBpbml0aWF0ZSBjYWxsIHdoaWxlIHBlcmZvcm1pbmcgU1JWQ0MgZnJvbSBWb0xURSB0byAzRyBmb3IgQWlydGVsIChWb0xURSkgT3BlcmF0b3IuICg5LzE1KQorICoKKyAqIAlbRVJSQ10gTmV3IEludGVyZmFjZSBmb3IgU1JWQ0MgYWxsb3dlbmNlIG5vdGlmaWNhdGlvbgorICoKKyAqIDAzIDEzIDIwMTggY3ludGhpYS5jaGVuCisgKiBbTU9MWTAwMzEyMzE0XSBbR2VuOTVdW1IxNF1EZWxheUJ1ZGdldFJlcG9ydAorICogLSBhZGQgZXJyYyBtc2cgaWQgQE9BCisgKgorICogMDIgMTIgMjAxOCBhYXJvaC55YW5nCisgKiBbTU9MWTAwMzA3MzI5XSBbVU1PTFlFXVtWb2x1bnRlZXIgUGF0Y2hdW0lNU11EdWFsIElNUyByZWdpc3RyYXRpb24gZW5oYWNlbWVudAorICogW1VNT0xZRV1bRVJSQy9TUFZdIE9jY3VweSBIUFMvQ1MgZHVyaW5nIElNUyBTZXJ2aWNlLCBPY2N1cHkgQ1MgZHVyaW5nIEVTTSBTZXJ2aWNlIC0gaW50ZXJmYWNlIHBhcnQgKE9BKQorICoKKyAqIDAyIDA2IDIwMTggdHN1bmctbWluZy5sZWUKKyAqIFtNT0xZMDAyOTk4NjZdIFtVTU9MWUVdW0VSUkMvRWwyXVtSMTNdRmVNRFQgVUwgUERDUCBkZWxheSBtZWFzdXJlbWVudCByZXBvcnQKKyAqCisgKiAJLW1zZyBpZC4KKyAqCisgKiAwMSAxNiAyMDE4IGFhcm9oLnlhbmcKKyAqIFtNT0xZMDAzMDIxMDddIFtNVDY3NjNdW0JpYW5jb11bTjFdW0luZGlhIEZUXVtDaGVubmFpXVtXVyBGVF1bUkNPTV1bVEFUQSBET0NPTU9dW1RDX01US19QMV80R19HZW1pbmlfMTNdIFtNUDEuNV0gRFVUIGxvbmcgU01TIHRvIHNpbTIgZmFpbHMgKEVSUkMgcGFydCkKKyAqIFtSM11bRVJSQ11bU1BWXSBTTVMgcHJvY2VkdXJlIHdpdGggQ1Mgc2VtYXBob3JlIC0gRVZBTC9FUlJDIEludGVyZmFjZSAoT0EpLgorICoKKyAqIDEyIDExIDIwMTcgbW9ydG9uLmxpbgorICogW01PTFkwMDI5NTA3N10gW0dlbjkzXVtFUlJDXVtSQ01dIExURSBzdXBwb3J0IGJhbmQgYW5kIENBIGNvbWJpbmF0aW9uIGN1c3RvbWl6YXRpb24gcmUtYXJjaAorICogQ29tbW9uIElGIGFuZCBNUlMgcGFydCAoTFIxMkEuUjMuTVApIChOb3QgaW4gVi1MaXN0KQorICoKKyAqIDEyIDA4IDIwMTcgY2hhcmxleS1jYy5jaGVuZworICogW01PTFkwMDI5NDAxM10gW0VSUkNdW0NITV0gVVQgVGVzdCBDb2RlCisgKgorICogCUBSMyBbQ0hNIFVUIFRlc3QgQ29kZV0gTmV3IFByb3Bvc2FsIC0gQ0hNIHNlbGYtY29udGFpbmVkLCBlZGl0IGFuZCBleGVjdXRlIHdpdGggb25lIHNpbmdsZSBwcmltaXRpdmUgKE9BIGRvbWFpbikKKyAqCisgKiAxMiAwNyAyMDE3IGtlLXRpbmcubGVlCisgKiBbTU9MWTAwMjk0Nzc4XSBbU3lsdmlhXVtPMV1bU1JMVEVdW0NUIDZNIENdW1ZvTFRFXVtGVF1bR1pdW0hXXVtDQVRdW0ZhdGFsIGVycm9yKGJ1ZildIGVycl9jb2RlMToweDAwMDAwODIzIGVycl9jb2RlMjoweDAwMDA0MDAwIGVycl9jb2RlMzoweENDQ0NDQ0NDIE1EIE9mZmVuZGVyOkVSUkMKKyAqIC1TSSBzaGFyaW5nCisgKgorICogMTEgMjkgMjAxNyB0ZXJlYXNhLmh1YW5nCisgKiBbTU9MWTAwMjkwMzQ3XSAyMzg3MjHvv71p77+9fj8/77+9T++/vWrvv71kMT/vv71INEfvv71u77+9Su+/ve+/vT/vv73vv73vv73Fr8K/wr1777+977+977+9bj/vv71j77+9WD/vv71JPzQ2MO+/vW41c++/ve+/ve+/vWvvv73vv73vv71gPz8/Mu+/vXjvv73vv71BMu+/vXgz77+977+977+977+9P++/vUDvv71YPzE277+977+9PyhFUlJDIEludGVyZmFjZSkKKyAqIFIzIEludGVyZmFjZSAoT0EgRG9tYWluKS4KKyAqCisgKiAxMSAyOSAyMDE3IHNoaWgtY2hpZWgubGlhbworICogW01PTFkwMDI5MjA4Ml0gW0dlbjkzXVtUTU9dIDJHIGRpc2FibGUgd2l0aCBlY2MgZW5hYmxlCisgKiAuCisgKgorICogMTEgMjggMjAxNyB5dW5nLWNodW4uY2hhbmcKKyAqIFtNT0xZMDAyODc3ODRdIFtNVDYyOTVdIHRzdG1fbWV0YSBkZXZlbG9wbWVudAorICogVFNUTV9NRVRBIHJjbSBvYSBwYXJ0CisgKgorICogMTEgMjEgMjAxNyBhYXJvaC55YW5nCisgKiBbTU9MWTAwMjg5NTIzXSBbWmlvbl1bTjFdW0ZyZWUgVGVzdF1bTUNEXVtURU1vdmluZ11tYWtlIGEgdmlsdGUgY2FsbCx0aGUgcGljdHVyZSBpcyB1bmNsZWFyKDUvNSkKKyAqIFtFUlJDL1NQVl0gYWRkIE1TR19JRF9FVkFMX0VSUkNfSU1TX1NUQVRVU19VUERBVEVfUkVRIE1TRyBJRAorICoKKyAqIDExIDAyIDIwMTcgYWFyb2gueWFuZworICogW01PTFkwMDI4NjA4Ml0gWzYyOTMgR2VtaW5pXVtBbGwgIC5oIGZpbGVdOiBOZXcgU2VtYXBob3JlICJNUFMiIGZvciBNTyBkYXRhICYgU29sdXRpb24gZm9yIFRBVSBwaW5nLXBvbmcKKyAqIFtFUlJDL1NQVl0gYWRkIE1TR19JRF9FTU1fRVJSQ19EQVRBX0FMTE9XX1JFUSBtc2cgSUQgZm9yIE1lZFBTCisgKgorICogMTAgMTcgMjAxNyBiby15YW8udHNhaQorICogW01PTFkwMDI4MTk3M10g77+9aVRPUO+/vWrvv71p77+9cz/vv71377+9e++/vWo/77+9ZD/vv71x77+9Qe+/vWQy77+9RO+/vWTvv71BP++/ve+/vVrvv71gPzNH77+9Qe+/vWA/NEfvv71B77+977+977+977+9P++/vXvvv73vv73vv71T77+9Xu+/ve+/vTNH77+9ST/vv71B77+977+977+977+977+9YDRH77+9XTNcMTDvv71eCisgKgorICogMDkgMjAgMjAxNyBsYXdyZW5jZS5jaGVuCisgKiBbTU9MWTAwMjc4MzY2XUxQUCBPVERPQSBuZXcgcHJvY2VkdXJlIGFyY2hpdGVjdHVyZSBkZXZlbG9wbWVudC4KKyAqCisgKiAwOSAxNCAyMDE3IHRlcmVhc2EuaHVhbmcKKyAqIFtNT0xZMDAyNzc5ODZdIFtVTU9MWUFdW01PQl1bQ29kZV1TUlZDQ++/ve+/ve+/ve+/vQorICoKKyAqIDA4IDIyIDIwMTcgYWRlbGluZS5jaGFuZworICogW01PTFkwMDI2OTU5OF0gW0dlbjkzXVRQQi9Nb2JpbGl0eSBDdHJsIHBhdGNoIGNoZWNrIGluCisgKiAuCisgKgorICogMDggMTcgMjAxNyBlbWlseS5sdQorICogW01PTFkwMDI3MTIyN10gW1VNT0xZQV0gW1Jvc2VdW1ZpbnNvbl1bTjFdVGhlIEVDQyBjYWxsIHdpbGwgY2FuJ3QgYmUgZGlhbCBvdXQgc3VjY2Vzcy4oNS81KQorICoKKyAqIAkuIGNvZGUgc3luYyBDTDQxNjAwMjEKKyAqCisgKiAwNyAwNyAyMDE3IGN5bnRoaWEuY2hlbgorICogW01PTFkwMDI2MTgyN10gW1VNT1lMQV0gTFBQZSBkZXZlbG9wbWVudCAtIEVSUkMgcGFydCBAT0EKKyAqCisgKiAwNSAzMSAyMDE3IHZpdmlhbi5jaGVuCisgKiBbTU9MWTAwMjE3MTI5XSBbTVQ2MjkzXSBjb2RlIHN5bmMgZnJvbSBVTU9MWSAoUGhhc2U0KQorICogLnN5bmNbTU9MWTAwMjQ4NDI0XUNMIzM4ODMxNzEuYWRkIG1zZ19pZCBNU0dfSURfRVJSQ19FTDFfR0FQX1NUQVRVU19JTkQKKyAqCisgKiAwNCAxOSAyMDE3IGxvdWlzLmx1CisgKiBbTU9MWTAwMjQzNDc2XSBbTVQ2MjkzXVJlbC0xMiBXTEFOIG9mZmxvYWQgRVJSQyBwYXRjaCBkdWUgdG8gTDQgTTMgbW9kaWZpY2F0aW9uCisgKgorICogCVJlbC0xMiBMV0kgbW9kaWZpY2F0aW9uIGR1ZSB0byBMNCBNMyBwYXRjaCAoT0EgZG9tYWluKQorICoKKyAqIDAzIDAyIDIwMTcgbWFydWNvLnR1CisgKiBbTU9MWTAwMjI2NTA0XSBbRVJSQ11bTENFTF0gTENFTCBlbmhhbmNlbWVudCBhZnRlciBjb2RlIHByZXNlbnRhdGlvbgorICogcmVtb3ZlIHVudXNlZCBMQ0VMX0VNX1VQREFURV9SRVEKKyAqCisgKiAwMiAxNyAyMDE3IGtlLXRpbmcubGVlCisgKiBbTU9MWTAwMTk2NTUwXSBbNjI5M10gRVJSQyBDU1IgZGV2ZWxvcG1lbnQKKyAqIC0gUmVtb3ZlIG1zZ19zaWJ4X3N0b3JlZF9kYXRhCisgKgorICogMDIgMDkgMjAxNyBkZW5uaXMud2VuZworICogW01PTFkwMDIyODU4NV0gW01UNjI5M11bRVJSQy9DRUxdIEdlbWluaSBzdXNwZW5kIGNtcGxfc3ViYmFuZCBpbXByb3ZlbWVudAorICogYWRkIGNhcnJpZXJfc2VhcmNoX3N0YXR1c19pbmQgbXNnaWQKKyAqCisgKiAwMSAxOSAyMDE3IHJhaW5lZS55ZWgKKyAqIFtNT0xZMDAyMDczMTFdIFtNVDYyOTNdW0VSUkNdW0NPTk5dIFVNT0xZIHN5bmMgdG8gVU1PTFlBCisgKiAtQ0wgMzM3MDIwMywgKEwrTCkgYWRkIFNJTV9TV0lUQ0hfUkVRIG1lc3NhZ2UKKyAqCisgKiAxMiAxNCAyMDE2IGxvdWlzLmx1CisgKiBbTU9MWTAwMjExMTg0XSBbNjI5M10gTFdBIHBoYXNlMiBkZXNpZ24KKyAqCisgKiAJQ2hlY2sgLWluIGludGVyZmFjZSBmb3IgTVNHX0lEX0VSUkNfQ09OTl9NT0JfV0xBTl9MT1NUX0lORCxPQSBEb21haW4gcGFydAorICoKKyAqIDEyIDA4IDIwMTYgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMjE3MTI5XSBbTVQ2MjkzXSBjb2RlIHN5bmMgZnJvbSBVTU9MWSAoUGhhc2U0KQorICogLgorICoKKyAqIDExIDA5IDIwMTYgamVkLmxlZQorICogW01PTFkwMDIxMDc2Ml0gW01UNjI5M11bRVJSQ11bQ09OTl0gVU1PTFkgc3luYyB0byBVTU9MWUEKKyAqIC1DTDI2ODM5MjguCisgKgorICogMTEgMDggMjAxNiBtZW5naGF1Lnd1CisgKiBbTU9MWTAwMjExMTg0XSBbNjI5M10gTFdBIHBoYXNlMiBkZXNpZ24KKyAqIGFkZCBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0NBUEFCSUxJVFlfUkVRIHJlbGF0ZWQgcHJvY2Vzc2luZyAoT0EgZG9tYWluKQorICoKKyAqIDExIDA3IDIwMTYgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMjExMTg0XSBbNjI5M10gTFdBIHBoYXNlMiBkZXNpZ24KKyAqIC4KKyAqCisgKiAxMSAwNCAyMDE2IHRzdW5nLW1pbmcubGVlCisgKiBbTU9MWTAwMjEwNzg0XSBbTVQ2MjkzXSBjb2RlIHN5bmMgZm9ybSBVTU9MWQorICogCUNSIFtNT0xZMDAxOTMzMDBdIFBvcnRpbmcgb2YgTlcgQkFORCBJbmZvIGZyb20gTFI5IHRvIExSMTEgVEMwMQorICogCUNMMjcwNjIxNworICogCUNMMjcwNDk2OS4KKyAqCisgKiAxMSAwMyAyMDE2IGRhbm55Lmt1bworICogW01PTFkwMDE5MzMwMF0gUG9ydGluZyBvZiBOVyBCQU5EIEluZm8gZnJvbSBMUjkgdG8gTFIxMSBUQzAxCisgKiAuCisgKgorICogMTEgMDMgMjAxNiBkYW5ueS5rdW8KKyAqIFtNT0xZMDAxOTMzMDBdIFBvcnRpbmcgb2YgTlcgQkFORCBJbmZvIGZyb20gTFI5IHRvIExSMTEgVEMwMQorICogLgorICoKKyAqIDExIDAzIDIwMTYgbG91aXMubHUKKyAqIFtNT0xZMDAyMTExODRdIFs2MjkzXSBMV0EgcGhhc2UyIGRlc2lnbgorICogCS4KKyAqIAlJbnRyb2R1Y2UgbmV3IG1zZyBNU0dfSURfRVJSQ19DSE1fTU9CX0xXQV9DRkdfSU5EIChPQSBkb21haW4pCisgKgorICogMTEgMDIgMjAxNiBjeW50aGlhLmNoZW4KKyAqIFtNT0xZMDAyMTEwMzhdIFtNVDYyOTNdW0VSUkNdW0NPTk5dIFVNT0xZIHN5bmMgdG8gVU1PTFlBCisgKiAtQ0wyOTI1MjM2IGluIE9BCisgKgorICogMTEgMDIgMjAxNiBlbWlseS5sdQorICogW01PTFkwMDIxMDc4NF0gW01UNjI5M10gY29kZSBzeW5jIGZvcm0gVU1PTFkKKyAqIFtNT0xZMDAwOTMyMDZdW0M5MF0gbmV3IEFUIGNvbW1hbmQgKEFUJVBHQ0hFQ0spCisgKgorICogMTEgMDEgMjAxNiBqZWQubGVlCisgKiBbTU9MWTAwMjEwNzYyXSBbTVQ2MjkzXVtFUlJDXVtDT05OXSBVTU9MWSBzeW5jIHRvIFVNT0xZQQorICogQ0wyNjgzOTI4LgorICoKKyAqIDExIDAxIDIwMTYgamVkLmxlZQorICogW01PTFkwMDIxMDc2Ml0gW01UNjI5M11bRVJSQ11bQ09OTl0gVU1PTFkgc3luYyB0byBVTU9MWUEKKyAqIENMMjY4MzkyOC4KKyAqCisgKiAxMCAzMSAyMDE2IG1lbmdoYXUud3UKKyAqIFtNT0xZMDAyMDcwNTNdIFtNVDYyOTNdIGNvZGUgc3luYyBmb3JtIFVNT0xZCisgKiBMK0wvTS1QUy9SLVNJTSBpbnRlcmZhY2UKKyAqCisgKiAxMCAyMCAyMDE2IHJhY2hlbC5saXUKKyAqIFtNT0xZMDAyMDg1MTldIFtNVDYyOTNdW1Z6V11MVEUgU0lCOC8xNiBmb3IgQUdQUyBmaW5lIHRpbWUgYWlkaW5nIChjb2RlIHN5bmMgZnJvbSBVTU9MWSkKKyAqCisgKiAxMCAxOSAyMDE2IHZpdmlhbi5jaGVuCisgKiBbTU9MWTAwMjA3MDUzXSBbTVQ2MjkzXSBjb2RlIHN5bmMgZm9ybSBVTU9MWQorICogLltNT0xZMDAxOTM4NjhdIFtNVDYyOTJdW05ldyBmZWF0dXJlXVtSMTJdW1Z6V10gVlpfUkVRX0xURURBVEFSRVRSWV8zOTg2MSAtIEVSUkMgaW1wbGVtZW50YXRpb24uIENMMjY1NTQ0NQorICoKKyAqIDEwIDE4IDIwMTYgcGV0ZXIuY2hpZW4KKyAqIFtNT0xZMDAyMDcxOTddIFtNVDYyOTNdW0VSUkNdIFVNT0xZIHN5bmMgdG8gVU1PTFlBCisgKiAuCisgKgorICogMTAgMTcgMjAxNiBrZS10aW5nLmxlZQorICogW01PTFkwMDIwNzA1M10gW01UNjI5M10gY29kZSBzeW5jIGZvcm0gVU1PTFkgLSBNT0xZMDAxODYwMjktQ0wyNjMyNDUxIGVycmNfbXNnaWQuaAorICoKKyAqIDA5IDI2IDIwMTYgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMjA1MDkzXSBbVU1PTFlBXSBtZXJnZSBDUiBmcm9tIG13LmhzdSBDQnIKKyAqIC4KKyAqCisgKiAwOCAwOSAyMDE2IGFkZWxpbmUuY2hhbmcKKyAqIFtNT0xZMDAxOTQ3MzBdIFtVTU9MWUFdWzYyOTNdIEVSUkMgQ0hNIE1CTVMgcmUtYXJjIGl0bWVzCisgKiAuCisgKgorICogMDggMDkgMjAxNiBtYXJ1Y28udHUKKyAqIFtNT0xZMDAxOTYwNjVdIFtNVDYyOTNdW2ZvbGRlciBzdHJ1Y3R1cmVdIE1vdmUgRUwxL0VMMiBmaWxlcyBmcm9tIExURSBkb21haW4gdG8gU1dSRCBkb21haW4KKyAqIFtMQ0VMIHJlLWFyY2hdKENPTkZJRyBmaWxlcykgKE9BIGRvbWFpbikKKyAqIAkxLm1vZGlmeSBTQVAgZmlsZQorICogCTIuQWRkIG5ldyBtZXNzYWdlIGZvciBkaGwvbWNkZGxsCisgKiAJMy5kaXNhYmxlIExDRUwgaW4gbGFzX2NyZWF0ZS5jCisgKiAJNC5jaGVjayBpbiBlbDEvZXJyYy9sYXNfbXNnaWQuaAorICogCTUuUmVtb3ZlIGxhcy9sY2VsIHBhdGggYW5kIGFkZCBlcnJjL2xjZWwgcGF0aCBpbiBsdGVfZGVmLm1haworICoKKyAqIDA3IDI3IDIwMTYganVpLWNoaWguY2hpbgorICogW01PTFkwMDE5MzYxOF0gWzYyOTNdW0xNT0IgUmVtb3ZlbF0gQ29kZSBNZXJnZSBmcm9tIENCciB0byBVTU9MWUEgVFJVTksgYW5kIFVNT0xZQSBQUyBERVYKKyAqCisgKiAJTE1PQiByZW1vdmFsIChPQSkKKyAqCisgKiAwNiAyNyAyMDE2IGp1aS1jaGloLmNoaW4KKyAqIFtNT0xZMDAxODM2NDJdIG5ldyB0YXNrIEVMMV9NUEMgZGVmaW5pdGlvbiBmb3IgNjI5MworICoKKyAqIAkuCisgKgorICogMDYgMjcgMjAxNiBkZW5uaXMud2VuZworICogW01PTFkwMDE4MzY0Ml0gbmV3IHRhc2sgRUwxX01QQyBkZWZpbml0aW9uIGZvciA2MjkzCisgKiBzcGVjaWZpYyBtZWFzdXJlIGNuZgorICoKKyAqIDA2IDI3IDIwMTYgZGVubmlzLndlbmcKKyAqIFtNT0xZMDAxODM2NDJdIG5ldyB0YXNrIEVMMV9NUEMgZGVmaW5pdGlvbiBmb3IgNjI5MworICogLgorICoKKyAqIDA2IDI0IDIwMTYga2UtdGluZy5sZWUKKyAqIFtNT0xZMDAxODU5MDFdIFVNT0xZQSBlcnJjIHJlbGV2YW50IGxhdGVzdCBjb2RlIHN5bmMgZnJvbSBVTU9MWS0gZXJyY19tc2dpZC5oIG1lcmdlCisgKgorICogMDYgMjAgMjAxNiBlbGxlLnN1bgorICogW01PTFkwMDE4NDkwNl0gW01PQl1bVnpXIEVNXSBNRE1JIEVNIGNvZGUgY2hlY2staW4KKyAqCisgKiAJLgorICoKKyAqIDA2IDE0IDIwMTYgYW50dGkua2Fpc3RvCisgKiBbTU9MWTAwMTgwNTg4XSBbTVQ2MjkyXVtOZXcgZmVhdHVyZV0gUlJDIGZvciBMV0EKKyAqIEVSUkMgQ0hNIGNoYW5nZXMgdG8gJ0xURSAtIFdMQU4gQWdncmVnYXRpb24nLgorICoKKyAqIDA2IDE0IDIwMTYgaXZ5LndhbmcKKyAqIFtNT0xZMDAxNjUyMzZdIFtQSDFfVlpXXVtGTERdW1JhZGlvX1Byb3RvY29sXSBWWl9SRVFfTFRFREFUQV8zNzgyMSBBdXRvbm9tb3VzIEdhcHMKKyAqIC4KKyAqCisgKiAwNSAyMyAyMDE2IGFudHRpLmthcmphbGFpbmVuCisgKiBbTU9MWTAwMTgwNTg4XSBbTVQ2MjkyXVtOZXcgZmVhdHVyZV0gUlJDIGZvciBMV0E6CisgKiBMNEMtRVJSQyBpbnRlcmZhY2UKKyAqCisgKiAwNSAyMyAyMDE2IGd1aS1saXUud2FuZworICogW01PTFkwMDE4MDY5MF0gW01UNjc1NV1bSmFkZSBMNl1bTVAyXVtSVERdWzM0R11bUGVyZm9ybWFuY2UgSW5kZXhdWzE5XVs0RzMgUmVzZWxlY3Rpb25dCisgKgorICogCS4KKyAqCisgKiAwNSAxNyAyMDE2IG1hcmsubmcKKyAqIFtNT0xZMDAxNzkwMjNdIEFsbG93YWJsZSBSZWdpc3RyYXRpb24gQXJlYSBMaXN0IEZlYXR1cmUgVjIgQ2hlY2sgSW4KKyAqIEFSQUwgMi4wIGludGVyZmFjZQorICoKKyAqIDA0IDI2IDIwMTYgY2hpaC1jaGllbi5saW4KKyAqIFtNT0xZMDAxNjc5ODNdIFtNVDY3NTVdW0phZGUgTDZdW01QMl1bQ1NGQiBEU0RTXVtIU1JdW0ZERF1bSFNSXVs0R19Nb3ZpbmddW0Nhc2UgRmFpbF1bTEFUMl1QTE1OIExpc3QgdGltZSBpcyBsb3NlIHRvIHJlZmVyZW5jZSBwaG9uZQorICogZmFzdCBsaXN0CisgKgorICogMDQgMjYgMjAxNiBtaW5nLnNoZW4KKyAqIFtNT0xZMDAxNTAyMTFdIFtWelddW1ZaX1JFUV9MVEVNTU9fMzg2OTVdIExURSBTY2FubmluZyBFbmhhbmNlbWVudAorICogLgorICoKKyAqIDA0IDI2IDIwMTYgbWluZy5zaGVuCisgKiBbTU9MWTAwMTQ0NDQ3XSBPcGVyYXRvciBGZWF0dXJlL1JlcXVpcmVtZW50CisgKgorICogCS4KKyAqCisgKiAwNCAxNSAyMDE2IHlpLWhhbi5jaHVuZworICogW01PTFkwMDE2NTc3OF0gW0VSUkNdW0NFTF0gQWRkIHN0b3AgY29udHJvbCBmb3Igc3BlY2lmaWMgbWVhc3VyZSByZXEgIC0gaW50ZXJmYWNlIChvYSBkb21haW4pCisgKgorICogMDQgMDEgMjAxNiBtaW5nLnNoZW4KKyAqIFtNT0xZMDAxNDI3NzVdIFtFUlJDXVtDRUxdIExURSBjb2RlIHN5bmMKKyAqIC4KKyAqCisgKiAwMyAxNyAyMDE2IGt1bi1saW4ud3UKKyAqIFtNT0xZMDAxNjc0NzddIFtQSDFfVlpXXVtqb2ludC1jYW1wXVtSYWRpb19Qcm90b2NvbF1bZU1CTVNdIFZaVyBMQyBUQyAyLjUgLSBlTUJNUyBDaGFubmVsIENhcGFjaXR5CisgKgorICogMDMgMTYgMjAxNiBiby15YW8udHNhaQorICogW01PTFkwMDE2NDA4MV0g77+9aUNB77+9au+/vWLvv71077+9be+/ve+/vT/vv71p77+9Re+/vVjvv73vv70/77+977+9Pz8/77+9de+/vUk/77+9QT8/P++/ve+/ve+/vU0/77+977+9NEcrCisgKiBPUFBPIDRHKyBpY29uCisgKiAtIGFkZCBNU0dfSURfRVJSQ19FTUFDX0NBX0FDVElWQVRFX0lORAorICoKKyAqIDAzIDE1IDIwMTYgdGVyZWFzYS5odWFuZworICogW01PTFkwMDE2NzgzMF0gW01UNjI5MV1bVm9MVEVdW1NSVkNDXSBTUlZDQyBDRFJYIEVuaGFuY2VtZW50IFBhdGNoIC0gRVJSQyBFbmhhbmNlbWVudCAyRyBQcmlvcml0eQorICogLgorICoKKyAqIDAzIDEwIDIwMTYgbW9ydG9uLmxpbgorICogW01PTFkwMDE2NTk1NF0gWzYyOTEgSFNSXSBQcm90b2NvbCAvIExvd2VyIExheWVyIENvbW1vbiBIZWFkZXIvSW50ZXJmYWNlCisgKiBDTUNDIHJlcXVpcmVtZW50OiBIU0ZSIENUUkwgKEwxIFBTIEhlYWRlciAvIEludGVyZmFjZSkKKyAqCisgKiAwMyAxMCAyMDE2IG1vcnRvbi5saW4KKyAqIFtNT0xZMDAxNjU5NDddIFs2MjkxIEhTUl0gUHJvdG9jb2wgRW5oYW5jZW1lbnQgKEhlYWRlci9JbnRlcmZhY2UpCisgKiBDTUNDIHJlcXVpcmVtZW50OiBIU0ZSIENUUkwgKFNCUCwgTlZSQU0gYW5kIE1SUykgKFByb3RvY29sIEhlYWRlciAvIEludGVyZmFjZSkKKyAqCisgKiAwMyAxMCAyMDE2IGNoZXN0ZXItemQuaHVhbmcKKyAqIFtNT0xZMDAxNjU5NTRdIFs2MjkxIEhTUl0gUHJvdG9jb2wgLyBMb3dlciBMYXllciBDb21tb24gSGVhZGVyL0ludGVyZmFjZS1FUlJDIENPTU1PTiBQYXJ0KFVNT0xZKS4KKyAqCisgKiAwMyAwOSAyMDE2IHNhYnJpbmEuaHN1CisgKiBbTU9MWTAwMTU1ODAxXSBbQ0FdIEVuYWJsZS9EaXNhYmxlIENBIGJ5IEFUK0VDQVNXIChFUlJDKQorICogbWVyZ2UgVU1PTFkgdmVyc2lvbgorICoKKyAqIDAzIDAzIDIwMTYgZXRoYW4uaGFuCisgKiBbTU9MWTAwMTY2NTg0XSBMVEUgY29kZSBzeW5jIDIwMTYKKyAqCisgKiAJLgorICoKKyAqIDAyIDE3IDIwMTYgc2FicmluYS5oc3UKKyAqIFtNT0xZMDAxNTYyMzBdIFs2MjkyXSBFUlJDIGNvZGUgc3luYyBMUjExIHRvIFVNT0xZCisgKiBbRVJSQ11bUkNNXSBJbmplY3QgZmFrZSBVRSBFVVRSQSBDYXBhYmlsaXR5IHBoYXNlLWluCisgKgorICogMDIgMTcgMjAxNiBzYW0udHNhaQorICogW01PTFkwMDE1NjAyNV0gTU9CL0xNT0IgY29kZSBzeW5jIGZyb20gTFIxMSB0byBVTU9MWQorICoKKyAqIDAyIDE3IDIwMTYgc2FtLnRzYWkKKyAqIFtNT0xZMDAxNTYwMjVdIE1PQi9MTU9CIGNvZGUgc3luYyBmcm9tIExSMTEgdG8gVU1PTFkKKyAqIC5bTU9MWTAwMTU2NDQwXSBbTEdFIHJlcXVlc3RdIFNpZ25hbCBTdHJlbmd0aCBNb25pdG9yaW5nIEFjcm9zcyBUaHJlc2hvbGQKKyAqCisgKiAwMiAxNyAyMDE2IHNhbS50c2FpCisgKiBbTU9MWTAwMTU2MDI1XSBNT0IvTE1PQiBjb2RlIHN5bmMgZnJvbSBMUjExIHRvIFVNT0xZCisgKiAuW01PTFkwMDE1MzUyNF0gWzYyOTFdIFZpdm8gQmxhY2tMaXN0IGZlYXR1cmUKKyAqIC5bRVJSQ11bTU9CXSBDbGVhciBibGFjayBjZWxsIGxpc3QuCisgKgorICogMDIgMTcgMjAxNiBzYW0udHNhaQorICogW01PTFkwMDE1NjAyNV0gTU9CL0xNT0IgY29kZSBzeW5jIGZyb20gTFIxMSB0byBVTU9MWQorICogLltNT0xZMDAxNDk2MjhdIE1EMS9NRDMgcG93ZXIgZG93biBwcm9jZWR1cmUgLSBBUyB3b3JrYXJvdW5kIGhhbmRzaGFrZSBmbG93CisgKgorICogMDIgMTYgMjAxNiBuaWNreS5jaG91CisgKiBbTU9MWTAwMTYwNDE0XSBbRVJSQ11bQ09OTl0gc3luYyBmcm9tIExSMTEgdG8gVU1PTFkKKyAqIFtDTDE5NTkxNjddW01PTFkwMDE1NDM2OF0gW01UNjc1NV1bTCtXXVtPdmVybmlnaHRdW0ZERF1bTVRCRl1bTDFDT1JFXSBBc3NlcnQgZmFpbDogZXJyY19jb25uX21haW4uYyA4NDkgMHgyMiAweDAgMHgwIFYgRVJSQy4KKyAqCisgKiAwMiAxNSAyMDE2IGt1bi1saW4ud3UKKyAqIFtNT0xZMDAxNDQ5MDFdIFtFUlJDXSBiQ1NGQiBmZWF0dXJlIGNoZWNrLWluIGZvciBUTU8tVVMKKyAqCisgKiAxMSAyNyAyMDE1IHZpbGxlLnB1a2FyaQorICogW01PTFkwMDE1MDgzNV0gTUwxUyBUZXN0IEVudmlyb25tZW50IFN1cHBvcnQ6CisgKgorICogCUVSUkMgc3VwcG9ydCBmb3IgTUwxUyBUZXN0IE1vZGUKKyAqCisgKiAwOSAyNSAyMDE1IG1hcmsubmcKKyAqIFtNT0xZMDAxNDMxNTZdIFtNVDY3NTVdW0UxXVtHQ0ZdW0FuaXRlXVszR11bRkREXVtDU0ddWzYuMy4xLjFdIFRlc3QgRmFpbAorICogbWFudWFsIGNzZyBzZWFyY2ggb24gVU1PTFkKKyAqCisgKiAwOSAxNSAyMDE1IHllbmNoaWgueWFuZworICogW01PTFkwMDA5OTY0OF0gW1ZvTFRFXSBWb2ljZSBxdWFsaXR5IHBhdGNoIC0gRVJSQworICogLgorICoKKyAqIDA5IDEwIDIwMTUgcGFudS5wZWlzYQorICogW01PTFkwMDE0MTIxNF0gREU2IGNvZGUgbWVyZ2UgZnJvbSBMUjExX1Z6VyBDQnIgdG8gVU1PTFkgdHJ1bmsKKyAqIAlbTU9MWTAwMTQxMjE0XSBERTYgY29kZSBtZXJnZSBmb3JtIExSMTFfVnpXIENCciB0byBVTU9MWSB0cnVuaworICogCUludGVncmF0ZWQgQ0wgMTU4NDYwMyBmcm9tIFZ6VyBDQnIuICBTV1JEIGRvbWFpbiBjaGFuZ2VzIG5lZWRlZCBieSBFUlJDX1NZUyBmb3IgRXh0ZW5kZWQgQWNjZXNzIEJhcnJpbmcuCisgKiAJQ0wgaGF2ZSBkZXBlbmRlbmN5IHRvIGx0ZV9zZWMgcGFydC4KKyAqCisgKiAwOSAwNCAyMDE1IGV0aGFuLmhhbgorICogW01PTFkwMDEzOTg2MV0gW01UNjI5MV1bU0JNXSBOZXcgRmVhdHVyZSA6IERpc2FibGUgTFRFIEI0MSBmb3Igcm9hbWluZyBvdXQgc2lkZSBvZiBKYXBhbi4KKyAqIAkuCisgKgorICogMDggMjEgMjAxNSBzaGVuZy1sdW5nLmxpdQorICogW01PTFkwMDA5NzAwOV0gW1dGQ11bVm9sdW50ZWVyIHBhdGNoXSBMVEVDU1JfbmV0d29yayBpbml0CisgKiBSb2xsIGJhY2sgZm9yIEVSUkMgbm90IHJlYWR5IGNhbGwgZHJvcCBlbmhhbmNlbWVudCwga2VlcCBSb0hDIGNvbmZpZGVuY2UgZW5hYmxlCisgKgorICogMDggMjEgMjAxNSBoZW5yeS5sYWkKKyAqIFtNT0xZMDAxMzgxNzBdIFtNVDYyOTFdIE1CTVMgU2NlbGwgU2VsZi1GaW5kaW5nIE1lY2hhbmlzbQorICogCS4KKyAqCisgKiAwOCAyMCAyMDE1IHNoZW5nLWx1bmcubGl1CisgKiBbTU9MWTAwMDk3MDA5XSBbV0ZDXVtWb2x1bnRlZXIgcGF0Y2hdIExURUNTUl9uZXR3b3JrIGluaXQKKyAqIEVuYWJsZSBSb0hDIGNvbmZpZGVuY2UsIEVSUkMgTm90aWZ5CisgKgorICogMDggMTIgMjAxNSByb2xhbmQubGkKKyAqIFtNT0xZMDAxMjkwNzFdIFtFUlJDXVtSQ01dIER5bmFtaWMgU0JQCisgKiAuCisgKiBmaXggY29kZSBnZW4gZXJyb3IKKyAqCisgKiAwOCAwNCAyMDE1IHJvbGFuZC5saQorICogW01PTFkwMDEyOTA3MV0gW0VSUkNdW1JDTV0gRHluYW1pYyBTQlAKKyAqIC4KKyAqCisgKiAwNiAxNyAyMDE1IGVza28ub2lrYXJpbmVuCisgKiBbTU9MWTAwMTE4MjU1XSBbTVQ2MjkxXSBFUlJDIG1lc3NhZ2UgaWRlbnRpZmllciBmb3IgREFCVVdBTiBjb2RlIG1lcmdlCisgKgorICogMDYgMTYgMjAxNSBoZW5yeS5sYWkKKyAqIFtNT0xZMDAxMTMwODJdIFtNVDYyOTFdIEVSUkMgQ0VMIGRldmVsb3BtZW50CisgKiAuCisgKgorICogMDYgMDUgMjAxNSBtb3J0b24ubGluCisgKiBbTU9MWTAwMDk1NjIzXSBbZVJSQ10gR2VtaW5pIHZpcnR1YWwgbW9kZQorICogWzYyOTFdW0VSUkNdW1NQVl0gZU1CTVMgR2VtaW5pIDJQUyBmZWF0dXJlIGltcHJvdmVtZW50cworICoKKyAqIDA2IDAxIDIwMTUgaGVucnkubGFpCisgKiBbTU9MWTAwMDkyNTA4XSBbTVQ2MjkxXVtMVEUtQzJLXSBBUyBJbnRlciBSQVQgZmVhdHVyZQorICogLgorICoKKyAqIDA1IDIyIDIwMTUgY2h1bi1mYW4udHNhaQorICogW01PTFkwMDA5ODkxNl0gW01UNjI5MV0gTUJNUyByZWNlcHRpb24gb24gU0NFTEwKKyAqIGVSUkMgQ09OTiBNQk1TIG9uIFNDRUxMIChQaGFzZSAxKShPQSBEb21haW4pCisgKgorICogMDUgMTkgMjAxNSBjb29wZXIubGluCisgKiBbTU9MWTAwMTE0MTQ5XSBbTVQ2MjkxXVtMMjM0IE5XLVVFIFNJTV1bNEddW0xURS1BIE1EVF0gRkREIE1EVCA4LjYuMi4zYSBmYWlsZWQgZHVlIHRvIFJSQ0Nvbm5lY3Rpb25TZXR1cENvbXBsZXRlIGNvbnRlbnQgbWlzbWF0Y2gKKyAqIEFkZCBsb2dnZWRNZWFzQ2ZnIE1TRyBJRCBmb3IgRVZUSCB0byB1c2UKKyAqCisgKiAwNCAyOCAyMDE1IGdlb3JnZS5jaGFuZworICogW01PTFkwMDEwOTcxNF0gWzYyOTFdIE1PQiBNRFQgY2hlY2sgaW4gdG8gVU1PTFkgVFJVTksKKyAqIAkuCisgKgorICogMDQgMTYgMjAxNSBkb3VnLnNoaWgKKyAqIFtNT0xZMDAwOTI1MDhdIFtNVDYyOTFdW0xURS1DMktdIEFTIEludGVyIFJBVCBmZWF0dXJlCisgKiBNZXJnZSBDMksgQVMgSVJBVCAtIENFTCBQYXJ0IChPQSBkb21haW4pLgorICoKKyAqIDA0IDA5IDIwMTUgY2h1bi1mYW4udHNhaQorICogW01PTFkwMDA5ODkxNl0gW01UNjI5MV0gTUJNUyByZWNlcHRpb24gb24gU0NFTEwKKyAqIENPTk4vQ0VMIG5ldyBpbnRlcmZhY2UgLSBNQk1TX1NDRUxMX1JFUS9DTkYKKyAqCisgKiAwNCAwOSAyMDE1IGNodW4tZmFuLnRzYWkKKyAqIFtNT0xZMDAwOTg5MTZdIFtNVDYyOTFdIE1CTVMgcmVjZXB0aW9uIG9uIFNDRUxMCisgKiBFUlJDL0VMMSBuZXcgaW50ZXJmYWNlIC0gU0NFTExfRk9VTkRfSU5ECisgKgorICogMDQgMDcgMjAxNSBtaW5nLnNoZW4KKyAqIFtNT0xZMDAxMDYxMTFdIFs2MjkxXSBTeW5jIE1PTFkgdG8gVU1PTFkgLSBTUFYgVzE1MTAtMTMKKyAqCisgKiAwMyAwOSAyMDE1IGNvb3Blci5saW4KKyAqIFtNT0xZMDAwOTA1MzJdIFtNVDYyOTFdIENoYW5nZSBGZWF0dXJlIENoZWNrLWluCisgKiBFTSwgTW9kZSBTd2l0Y2ggaW50ZXJmYWNlIGNoZWNrLWluCisgKgorICogMDMgMDkgMjAxNSBnZW9yZ2UuY2hhbmcKKyAqIFtNT0xZMDAwOTgxNzddIFs2MjkxXSBNRFQgY2hlY2sgaW4gdG8gVU1PTFkgVFJVTksKKyAqIAkuCisgKgorICogMDIgMTYgMjAxNSB0ZXJlYXNhLmh1YW5nCisgKiBbTU9MWTAwMDk1NjIzXSBbZVJSQ10gR2VtaW5pIHZpcnR1YWwgbW9kZQorICogVmlydHVhbCBtb2RlIGludGVyZmFjZS4KKyAqCisgKiAwMiAxMiAyMDE1IGNvb3Blci5saW4KKyAqIFtNT0xZMDAwOTA1MzJdIFtNVDYyOTFdIENoYW5nZSBGZWF0dXJlIENoZWNrLWluCisgKiBNRFQgY2hlY2staW4KKyAqCisgKiAwMiAwNSAyMDE1IGNvb3Blci5saW4KKyAqIFtNT0xZMDAwOTA1MzJdIFtNVDYyOTFdIENoYW5nZSBGZWF0dXJlIENoZWNrLWluCisgKiBDb2RlIHN5bmMgZnJvbSBNT0xZIChXMTUuMDYpCisgKgorICogMDEgMTYgMjAxNSBkYXZpZC5uaXUKKyAqIFtNT0xZMDAwODc5MzRdIFtNVDYyOTFdW0xQUCBPVERPQSBEZXZlbG9wbWVudF0gSW50ZXItZnJlcSBSU1REIG1lYXN1cmVtZW50IGluZGljYXRpb24KKyAqIC4KKyAqCisgKiAxMiAxOSAyMDE0IGJpcnVpLmxpCisgKiBbTU9MWTAwMDg3Njc3XSBbVTNHXVtURERdW1VBUyBSUkNFXSBtb2RpZmljYXRpb25zIGZvciBVM0cKKyAqIG1lcmdlIGZyb20gcGVuZy1hbiBDQnIuCisgKgorICogMTIgMTYgMjAxNCBjbGF1ZC5saQorICogW01PTFkwMDA4Nzc5NV0gW01FTUVdIHVuaXZlcnNhbCBiaW4gY2hlY2sgaW4KKyAqIFtVbml2ZXJzYWwgYmluXVtGRERdW01FTUUvRUFTL0dBU10gaW50ZXJmYWNlCisgKgorICogMTIgMTIgMjAxNCB5dWhod2FuZy55dQorICogW01PTFkwMDA4NzIxMV0gW0NJU0VdIGFkZCBDU0cgZmluZ2VycHJpbnQgY29tcGlsZSBvcHRpb24gYW5kIGJ1ZyBmaXgKKyAqIC4gQ0lTRSBjb2RlcworICoKKyAqIDExIDEyIDIwMTQgY29vcGVyLmxpbgorICogW01PTFkwMDA2ODcxMF0gW01UNjI5MV9ERVZdIFN5bmMgTU9MWSB0byBNVDYyOTFfREVWCisgKiBNZXJnZSBNVDYyOTFfREVWIGNvZGUgdG8gVU1PTFkgdHJ1bmsuCisgKgorICogMTEgMTIgMjAxNCBjaGktY2h1bmcubGluCisgKiBbTU9MWTAwMDY4NzEwXSBbTVQ2MjkxX0RFVl0gU3luYyBNT0xZIHRvIE1UNjI5MV9ERVYKKyAqIFtDSE1dIGNvZGUgc3luYyBmcm9tIE1UNjI5MV9ERVYgdG8gVU1PTFkKKyAqCisgKiAxMSAxMiAyMDE0IHlpbmd3ZWkuaHVhbmcKKyAqIFtNT0xZMDAwNzM5MzJdIFtNVDYyOTFfREVWXSBFRERBIGltcGxlbWVudGF0aW9uIC0tIGludGVyZmFjZSBwYXJ0LgkuCisgKgorICogMTEgMTIgMjAxNCBoZW5yeS5sYWkKKyAqIFtNT0xZMDAwNzkwNzFdIFtNVDYyOTFdW1U0R10gTG93IFBvd2VyIE1vZGlmaWNhdGlvbiBmb3IgQ0VMIFBhZ2luZworICogLgorICoKKyAqIDA3IDIxIDIwMTQgd2lsbGlhbS5jaGFuZworICogW01PTFkwMDA3Mjg3Nl0gW1dXIEZUXVtLOTUgVjEuMl1bNEcgR2VtaW5pXVtGVF1bSGFuZ3pob3VdRXh0ZXJuZWwgKEVFKSwwLDAsOTksL2RhdGEvY29yZS8sMSxtb2RlbSxtZDA6W0FTU0VSVF0gZmlsZTpyc3Zhc19mc20uYyBsaW5lOjM3NzYKKyAqIC4KKyAqCisgKiAwNSAyOCAyMDE0IHdpbGxpYW0uY2hhbmcKKyAqIFtNT0xZMDAwNjcyMDldIFtMVEUgR2VtaW5pXSBBZGQgaW50ZXJmYWNlIGZvciBFTU0gdG8gb2NjdXB5IENTIHNlbWFwaG9yZSBmb3IgQXR0YWNoIHByb2NlZHVyZQorICogLgorICoKKyAqIDA1IDI4IDIwMTQgd2lsbGlhbS5jaGFuZworICogW01PTFkwMDA2NzIwOV0gW0xURSBHZW1pbmldIEFkZCBpbnRlcmZhY2UgZm9yIEVNTSB0byBvY2N1cHkgQ1Mgc2VtYXBob3JlIGZvciBBdHRhY2ggcHJvY2VkdXJlCisgKiAuCisgKgorICogMDQgMzAgMjAxNCB3aWxsaWFtLmNoYW5nCisgKiBbTU9MWTAwMDY0MzA4XSBNb2RpZnkgRVZBTCBFUlJDIG1zZyBuYW1lIGZvciBWT0xURSBnZW1pbmkKKyAqIC4KKyAqCisgKiAwNCAwMiAyMDE0IGNvb2tpZS5jaGVuCisgKiBbTU9MWTAwMDYwMDEyXSBBVCtFQ0JNUiB0byByZW1vdmUgbW9kZW0gQ0IgcmVjb3JkcworICogLgorICoKKyAqIDAzIDI4IDIwMTQgd2lsbGlhbS5jaGFuZworICogW01PTFkwMDA2MTE4NF0gWzRHIEdlbWluaV0gTm90aWZ5IEFTIHdoZW4gSVJDQ08gc3RhZ2UyIGNhdXNlIGlzIHVwZGF0ZWQgYnkgTkFTdTFyd2R1dWB3dnBnaGxxZ3xybGlpbGRoK2ZtZGtiCisgKgorICogMDMgMjggMjAxNCBqYXNwZXIuY2hlbgorICogW01PTFkwMDA2MDk4OF0gW0xQUCBDUF0gTFBQIGNvZGUgY2hlY2staW4gZm9yIEEtR05TUyBhbmQgZUNJRCBmZWF0dXJlCisgKiAJQ2hlY2sgaW4gRUNJRCBFUlJDIG1vZGlmaWNhdGlvbnMgKE9BIGRvbWFpbikKKyAqCisgKiAwMyAwNiAyMDE0IGFhcm9uLmxpdQorICogW01PTFkwMDA1NjQ4M10gW01UNjU4MkxURV1bU0dMVEVdW0NNQ0MgRlRdW0daXQorICogQWRkIFBMTU4gU0VBUkNIIEFib3J0IEludGVyZmFjZToKKyAqIDEuTVNHX0lEX0VWQUxfRVJSQ19QTE1OX1NFQVJDSF9BQk9SVF9SRVEKKyAqIDIuTVNHX0lEX05XU0VMX0VWQUxfUExNTl9TRUFSQ0hfQUJPUlRfUkVRCisgKgorICogMDMgMDMgMjAxNCBwZXRlci5jaGllbgorICogW01PTFkwMDA1ODA4Ml0gW0NFTF1bQ09OTl0gQ2hhbmdlIElETEVfQ05GIHRvIENIX1NUQVRVU19DTkYKKyAqIE1lcmdpbmcKKyAqCisgKiAJLy9NT0xZX0NCci9jb29raWUuY2hlbi9NT0xZX1cxNC4wOS5MVEUucDEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZXJyY19tc2dpZC5oCisgKgorICogCXRvIC8vTU9MWS9UUlVOSy9NT0xZL21jdS9pbnRlcmZhY2Uvc2FwL21kL2VycmNfbXNnaWQuaAorICoKKyAqIDAxIDIyIDIwMTQgamVyZW15LmNoZW4KKyAqIFtNT0xZMDAwNTQ1ODldIFtNVDYyOTBFMl0gYWRkIFJMRiBpbmRpY2F0aW9uIGZyb20gRVJMQy1ETAorICogcmVhbmFtZSBFUlJDX0VSTENVTF9TVEFUVVNfSU5EIHRvIEVSUkNfRVJMQ19STEZfSU5ECisgKgorICogMDEgMjIgMjAxNCB3aWxsaWFtLmNoYW5nCisgKiBbTU9MWTAwMDU0MzI0XSBbNEcgR2VtaW5pXVtNZXJnZV0gTU9MWS5NTS5HRU1JTkkuREVWIE1lcmdlIGJhY2sgdG8gTU9MWQorICogLiBDaGVjay1pbiBJbnRlcmZhY2UgcGFydCBvZiBMVEUgR0VNSU5JCisgKgorICogMDEgMTMgMjAxNCBhYXJvbi5saXUKKyAqIFtNT0xZMDAwNTMzNzldIFtNVDYyOTBdW1ZPTFRFXVtFUlJDXU5ldyBmZWF0dXJlIDogSU1TIGVtZXJnZW5jeQorICogQWRkIEVSUkMgSW50ZXJmYWNlLgorICoKKyAqIDEyIDMwIDIwMTMgbWVuZ2hhdS53dQorICogW01PTFkwMDA1MTQ1NF0gW0VSUkNdW0NFTF0gd3JpdGUgUExNTiBsaXN0IHN0b3JlZCBjZWxsIGludG8gTlZSQU0KKyAqIEFkZCBTdG9yZWQgY2VsbCBpbmZvIHJlbGF0ZWQgTlZSQU0gY29udGV4dAorICoKKyAqIDExIDI5IDIwMTMgbWVuZ2hhdS53dQorICogW01PTFkwMDA0ODM0NF0gW01UNjI5MF1bRVJSQ10gQWRkIGxlYXJuZWQgbWNjIGluZm8gY29udGV4dCB0byBOVlJBTS9SQ00KKyAqIAlhZGQgbnZyYW0gZmlsZSBmb3IgbGVhcm5lZCBtY2MgaW5mbworICoKKyAqIDExIDEzIDIwMTMgamVkLmxlZQorICogW01PTFkwMDA0NjAyN10gW01UNjI5MEUxXVtNTURTX0RDXSBNTURDIGZlYXR1cmUgcGF0Y2ggYmFjayB0byBNT0xZIHRydW5rCisgKiBCMyZCMzkgY29ubiBwYXJ0LgorICoKKyAqIDExIDEzIDIwMTMgYWRlbGluZS5jaGFuZworICogW01PTFkwMDA0NjAyN10gW01UNjI5MEUxXVtNTURTX0RDXSBNTURDIGZlYXR1cmUgcGF0Y2ggYmFjayB0byBNT0xZIHRydW5rCisgKiAuCisgKgorICogMTAgMjEgMjAxMyBob25nLXl1YW4ueWFuZworICogW01PTFkwMDA0MDA1MF0gW011bHRpTW9kZV0gRHluYW1pYyBiYW5kIHNlbGVjdGlvbgorICogLgorICoKKyAqIDEwIDAyIDIwMTMgbWFydWNvLnR1CisgKiBbTU9MWTAwMDM5MDMxXSBbRVJSQ11bQ0VMXUluamVjdCBpbXBsZW1lbnQKKyAqIHJlbW92ZSBsZWF2ZV80Zy4KKyAqCisgKiAwOSAyNSAyMDEzIG1hcnVjby50dQorICogW01PTFkwMDAzOTAzMV0gW0VSUkNdW0NFTF1JbmplY3QgaW1wbGVtZW50CisgKiBpbmplY3QgbWVzc2FnZShuZXcgbWVzc2FnZTpNU0dfSURfRVJSQ19DRUxfSU5KRUNUX0xFQVZFX0xURV9JTkQpCisgKgorICogMDkgMjQgMjAxMyBwZXRlci5jaGllbgorICogW01PTFkwMDAzODU5OV0gRVJSQyBNT0IgQ09OTiBpbmplY3QgbWVzc2FnZSBmZWF0dXJlCisgKiAuQWRkIGludGVyZmFjZQorICoKKyAqIDA4IDA2IDIwMTMgYWRlbGluZS5jaGFuZworICogW01PTFkwMDAzMTY5NV0gTW9kaWZ5IENITS9SQ00gY29kZSBmb3IgVVQgZW5oYW5jZW1lbnQgLgorICogLgorICoKKyAqIDA4IDAxIDIwMTMgZGVubmlzLndlbmcKKyAqIFtNT0xZMDAwMzIwMjBdIFtFUlJDXVtDRUxdIG5ldyBjYXJyaWVyIHNlYXJjaCBmbG93IGNoZWNrLWluCisgKiAuCisgKgorICogMDcgMjQgMjAxMyBkZW5uaXMud2VuZworICogW01PTFkwMDAzMTAyMF0gW01NRFNfRENdIE1lcmdlIE1NREMgaW50ZXJmYWNlIHRvIE1PTFkKKyAqIG1lcmdlIEdBU19FQVNfRUFSRkNOX0xJU1RfVVBEQVRFX1JFUQorICoKKyAqIDA3IDIyIDIwMTMgc3RhbmxleWh5LmNoZW4KKyAqIFtNT0xZMDAwMjk2MDJdIFtOZXcgRmVhdHVyZV0gTkJSX0NFTExfSU5GTyBhbmQgVEFfSU5GTyByZWxhdGVkIGludGVyZmFjZXMKKyAqIEFkZCBFUlJDX0VNQUNfVEFfSU5GT19JTlZBTElEX0lORAorICoKKyAqIDA3IDEyIDIwMTMgc3RhbmxleWh5LmNoZW4KKyAqIFtNT0xZMDAwMjk2MDJdIFtOZXcgRmVhdHVyZV0gTkJSX0NFTExfSU5GTyBhbmQgVEFfSU5GTyByZWxhdGVkIGludGVyZmFjZXMKKyAqIFRBX0lORk8gYW5kIE5CUl9DRUxMX0lORk8gaW50ZXJmYWNlcyBmb3IgTFBQIGZlYXR1cmUKKyAqCisgKiAwNSAyNyAyMDEzIGplZC5sZWUKKyAqIFtNT0xZMDAwMjM5MTFdIFREUyBNb0RJUyBNTSBJVCBjb2RlIG1lcmdlCisgKiAuCisgKgorICogMDUgMTMgMjAxMyBzaGloLWNoaWVoLmxpYW8KKyAqIFtNT0xZMDAwMjIwMjhdIExURSBNTS5JVCBlcnJjIG1lcmdlIHRvIE1PTFkKKyAqIG1lcmdlIG1ycworICoKKyAqIDA0IDAxIDIwMTMgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMDExOTM0XSBMVEUgTU0gSVQgQ0JyIG1lcmdlIHRvIE1PTFkKKyAqIC5hc24xIHJlcGxhY2VtZW50CisgKgorICogMDEgMjQgMjAxMyB3aWxsaWFtLmNoYW5nCisgKiBbTU9MWTAwMDA5MTYzXSBMVEUgTXVsdGltb2RlIG1lcmdlIGJhY2sgdG8gTU9MWQorICogLk1lcmdlIGZyb20gTU0gcHJlSVQgQ0JyCisgKgorICogMDEgMjMgMjAxMyBob25nLXl1YW4ueWFuZworICogW01PTFkwMDAwOTE2M10gTFRFIE11bHRpbW9kZSBtZXJnZSBiYWNrIHRvIE1PTFkKKyAqIExURSBtdWx0aW1vZGUgbWVyZ2UgYmFjayB0byBtb2x5CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0VSUkNfTVNHSURfSAorI2RlZmluZSBfRVJSQ19NU0dJRF9ICisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0VSUkNfQ09ERV9CRUdJTiApCisKKworTVNHX0lEX0VYRVZUX1JDVl9CRUdJTiA9IE1TR19JRF9FUlJDX0NPREVfQkVHSU4sCitNU0dfSURfRU1NX0VSUkNfQUNUSVZBVElPTl9SRVEsCitNU0dfSURfRU1NX0VSUkNfUkFUX0JBTkRfUkVRLAorTVNHX0lEX0VNTV9FUlJDX0VTVEFCTElTSF9SRVEsCitNU0dfSURfRU1NX0VSUkNfUkVMRUFTRV9SRVEsCitNU0dfSURfRU1NX0VSUkNfUkVMRUFTRV9SU1AsCitNU0dfSURfRU1NX0VSUkNfTE9DQUxfUkVMRUFTRV9UUklHR0VSX1JTUCwKK01TR19JRF9FTU1fRVJSQ19EQVRBX1JFUSwKK01TR19JRF9FTU1fRVJSQ19LRVlfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVJSQ19URVNUX1JFUSwKK01TR19JRF9FTU1fRVJSQ19DRUxMU0VMRUNUX1JFUSwKK01TR19JRF9OQVNfU1ZfRVJSQ19QT1dFUl9TQ0FOX1JFUSwKK01TR19JRF9FTU1fRVJSQ19TRVRfQUNUSVZFX1JBVF9SRVEsCitNU0dfSURfTkFTX1NWX0VSUkNfQ0hFQ0tfQUNUSVZFX1JBVF9SRVEsCitNU0dfSURfTkFTX1NWX0VSUkNfU05JRkZFUl9TVEFSVF9SRVEsCitNU0dfSURfTkFTX1NWX0VSUkNfU05JRkZFUl9TVE9QX1JFUSwKK01TR19JRF9FTU1fRVJSQ19QTE1OTElTVF9SRVEsCitNU0dfSURfRU1NX0VSUkNfUExNTl9MSVNUX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FUlJDX1JFU1VNRV9SRVEsCitNU0dfSURfRU1NX0VSUkNfTldTRUxfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRU1NX0VSUkNfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX05BU19TVl9FUlJDX1JBVF9DSEFOR0VfUkVRLAorTVNHX0lEX05BU19TVl9FUlJDX1JBVF9DSEFOR0VfUlNQLAorTVNHX0lEX0VNTV9FUlJDX1NUQU5EQllfUkVRLAorTVNHX0lEX0VNTV9FUlJDX1BBUkFNX1VQREFURV9SRVEsCitNU0dfSURfRU1NX0VSUkNfUU9TX1VQREFURV9SRVEsCitNU0dfSURfRU1NX0VSUkNfQ1NHX0xJU1RfUkVRLAorTVNHX0lEX0VNTV9FUlJDX0NTR19MSVNUX1NUT1BfUkVRLAorTVNHX0lEX0VNTV9FUlJDX05VTExfU0VDVVJJVFlfQUNDRVBUX1JFUSwKK01TR19JRF9FTU1fRVJSQ19DU0dfV0hJVEVfTElTVF9VUERUX1JFUSwKK01TR19JRF9FTU1fRVJSQ19TSU1fRklMRV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FUlJDX0NTRkJfTlRGLAorTVNHX0lEX0VNTV9FUlJDX0NTRkJfU1RBVFVTX1JFUSwKK01TR19JRF9FTU1fRVJSQ19DSEVDS19TRVJWSU5HX1NVSVRBQklMSVRZX1JFUSwKK01TR19JRF9FTU1fRVJSQ19TRUFSQ0hfUFJFRkVSRU5DRV9VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FUlJDX1JBVF9DSEFOR0VfQ0FVU0VfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVJSQ19HRU1JTklfTFJfUkVRLAorTVNHX0lEX0VNTV9FUlJDX0dFTUlOSV9TRVJWSUNFX1JFUSwKK01TR19JRF9FTU1fRVJSQ19NQk1TX1BBQ0tFVF9DT1VOVEVSX1JFUSwKK01TR19JRF9FTU1fRVJSQ19EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorTVNHX0lEX0VNTV9FUlJDX1VQREFURV9VRV9MT0NBVElPTl9JTkZPUk1BVElPTl9SRVEsCitNU0dfSURfRU1NX0VSUkNfUkFUX0RJU0FCTEVfQ09ORklHX1JFUSwKK01TR19JRF9FTU1fRVJSQ19EQVRBX0FMTE9XX1JFUSwKK01TR19JRF9FUlJDX0xCU19HTlNTX1BPU19JTkQsCitNU0dfSURfTEJTX0VSUkNfUkVBRF9USU1FX1NJQl9SRVEsCitNU0dfSURfRU1NX0VSUkNfUFJPQ19SRVNVTFRfVVBEQVRFX1JFUSwKK01TR19JRF9FTU1fRVJSQ19TRVRfUEdDSEVDS19SRVEsCitNU0dfSURfRU1NX0VSUkNfSFBMTU5fSU5GT19VUERBVEVfUkVRLAorTVNHX0lEX0VNTV9FUlJDX0RBVEFfQUJPUlRfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19BREpVU1RfTUVBU19SRVEsCitNU0dfSURfRVZBTF9FUlJDX0VUV1NfU0VUVElOR19SRVEsCitNU0dfSURfRVZBTF9FUlJDX0NCQ0hfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19DQl9VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19NTURDX01PREVfVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfTFRFX05FSUdIQk9SX0NFTExfSU5GT19SRVEsCitNU0dfSURfRVZBTF9FUlJDX0MyS19OT1JNQUxfU0VSVklDRV9SRVEsCitNU0dfSURfRVZBTF9FUlJDX05CUl9DRUxMX0lORk9fU1RBUlRfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19OQlJfQ0VMTF9JTkZPX1NUT1BfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19HRVRfU1NBQ19QQVJBTV9SRVEsCitNU0dfSURfRU1NX0VSUkNfVkRNX0lNU19WT0lDRV9TVEFUVVNfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19JTVNfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRVZBTF9FUlJDX1BMTU5fU0VBUkNIX0FCT1JUX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfQ0JfTVNHX1JFTU9WQUxfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19NUlVfVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfQ1NHX0FVVE9fU0VBUkNIX01PREVfUkVRLAorTVNHX0lEX01CTVNBTF9FUlJDX01CTVNfQ09ORklHX1JFUSwKK01TR19JRF9OQVNfU1ZfRVJSQ19QTE1OX0xJU1RfQUJPUlRfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19FUkxNX0NPTlRST0xfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19DQUxMX1NUQVRVU19JTkQsCitNU0dfSURfRVZBTF9FUlJDX0FSQUxfVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfTldfQkFORF9JTkZPX1NUQVJUX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfTldfQkFORF9JTkZPX1NUT1BfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19TTVNfU1RBVFVTX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfU0VNQVBIT1JFX1NFUlZJQ0VfU1RBVFVTX1JFUSwKK01TR19JRF9FVlRIX0VSUkNfU0VNQVBIT1JFX1NFUlZJQ0VfU1RBVFVTX1JFUSwKK01TR19JRF9FTU1fRVJSQ19TRU1BUEhPUkVfU0VSVklDRV9TVEFUVVNfUkVRLAorTVNHX0lEX0VWVEhfRVJSQ19GRUFUVVJFX0NPTkZJR19SRVEsCitNU0dfSURfRVZUSF9FUlJDX0ZFQVRVUkVfUVVFUllfUkVRLAorTVNHX0lEX0VWVEhfRVJSQ19IU1RfR0FNRV9JTkQsCitNU0dfSURfSU1TX0VSUkNfQ0FMTF9TVEFUVVNfU1JWQ0NfSU5ELAorTVNHX0lEX0lNU19FUlJDX0VBUkxZX0NPTk5fUkVMX0lORCwKK01TR19JRF9FTU1fRVJSQ19TWU5DX0NPTk5FQ1RJT05fU1RBVFVTX05URiwKK01TR19JRF9FTU1fRVJSQ19FUFNfQkVBUkVSX0lORk9fUkVRLAorTVNHX0lEX0VSUkNfU0lNX1BST1RFQ1RfUkVRLAorTVNHX0lEX1NBVF9FQVNfTk1SX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfU0VSVklDRV9SRUNPVkVSWV9ST1VORF9VUERBVEVfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19TQ1JFRU5fT05fUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19TQ1JFRU5fT0ZGX1JFUSwKK01TR19JRF9FUlJDX0VMMV9TRVRfUkFUX0NORiwKK01TR19JRF9FUlJDX0VMMV9BRkNfRldTX0FCTk9STUFMX0lORCwKK01TR19JRF9FUlJDX0VMMU1QQ19DQVJSSUVSX1NFQVJDSF9DTkYsCitNU0dfSURfRVJSQ19FTDFNUENfQ0FSUklFUl9TRUFSQ0hfSU5ELAorTVNHX0lEX0VSUkNfRUwxTVBDX0NBUlJJRVJfU0VBUkNIX1NUQVRVU19JTkQsCitNU0dfSURfRVJSQ19FTDFNUENfU1BFQ0lGSUNfTUVBU1VSRV9DTkYsCitNU0dfSURfRVJSQ19FTDFNUENfU1BFQ0lGSUNfTUVBU1VSRV9JTkQsCitNU0dfSURfRVJSQ19FTDFNUENfUkFESU9fTUVBU1VSRV9DTkYsCitNU0dfSURfRVJSQ19FTDFNUENfUkFESU9fTUVBU1VSRV9JTkQsCitNU0dfSURfRVJSQ19FTDFNUENfT1RET0FfTUVBU19DTkYsCitNU0dfSURfRVJSQ19FTDFNUENfT1RET0FfQ1RSTF9DTkYsCitNU0dfSURfRVJSQ19FTDFNUENfUFJTX0dBUF9JTkQsCitNU0dfSURfRVJSQ19FTDFNUENfTkJSQ0VMTF9FTV9JTkZPLAorTVNHX0lEX0VSUkNfRUwxTVBDX01CU0ZOX01FQVNVUkVfQ05GLAorTVNHX0lEX0VSUkNfRUwxTVBDX01CU0ZOX01FQVNVUkVfSU5ELAorTVNHX0lEX0xNT0JfTU9CX1BPV0VSX0xFVkVMX0lORCwKK01TR19JRF9MTU9CX01PQl9SQURJT19NRUFTVVJFX0lORCwKK01TR19JRF9MTU9CX01PQl9OQlJDRUxMX0VNX0lORk8sCitNU0dfSURfTE1PQl9NT0JfQ0VMX1JFU0VMX0lORCwKK01TR19JRF9MTU9CX01PQl9DRUxfT09TX0lORCwKK01TR19JRF9MTU9CX01PQl9DRUxfTkVFRF9JUl9DSEFOR0VfU1RBVFVTX0lORCwKK01TR19JRF9MTU9CX01PQl9TQ1NJX0lORk9fSU5ELAorTVNHX0lEX0xNT0JfTU9CX1JFSl9JTkZPX0lORCwKK01TR19JRF9MTU9CX01PQl9SQURJT19NRUFTVVJFX0NORiwKK01TR19JRF9MTU9CX01PQl9PT1NfU0NTSV9JTkZPX1JFUSwKK01TR19JRF9MTU9CX01PQl9OQlJfQ0VMTF9JTkZPX0lORCwKK01TR19JRF9MTU9CX01PQl9DT05GSUdfVUNFTExfTUVBU19SRVEsCitNU0dfSURfTE1PQl9NT0JfQ09ORklHX1VDRUxMX1BSSU9fTUVBU19SRVEsCitNU0dfSURfTE1PQl9NT0JfVUNFTExfTUVBU19JTkQsCitNU0dfSURfTE1PQl9NT0JfQ09ORklHX0dDRUxMX01FQVNfUkVRLAorTVNHX0lEX0xNT0JfTU9CX0NPTkZJR19HQ0VMTF9QUklPX01FQVNfUkVRLAorTVNHX0lEX0xNT0JfTU9CX0dDRUxMX01FQVNfSU5ELAorTVNHX0lEX0xNT0JfTU9CX0dDRUxMX0JTSUNfSU5ELAorTVNHX0lEX0xNT0JfTU9CX0NPTkZJR19DQ0VMTF9NRUFTX1JFUSwKK01TR19JRF9MTU9CX01PQl9DT05GSUdfQ0NFTExfUFJJT19NRUFTX1JFUSwKK01TR19JRF9MTU9CX01PQl9DQ0VMTF9NRUFTX0lORCwKK01TR19JRF9MTU9CX01PQl9VQVNfTFRFX01FQVNVUkVNRU5UX0NORiwKK01TR19JRF9MTU9CX01PQl9HQVNfTFRFX01FQVNVUkVNRU5UX0NORiwKK01TR19JRF9MTU9CX01PQl9DQVNfTFRFX01FQVNVUkVNRU5UX0NORiwKK01TR19JRF9MTU9CX01PQl9NRUFTX0lOVFJBUkFUX0lORk9fSU5ELAorTVNHX0lEX0xNT0JfTU9CX01FQVNfSU5URVJSQVRfVVRSQU5fSU5GT19JTkQsCitNU0dfSURfTE1PQl9NT0JfTUVBU19JTlRFUlJBVF9HRVJBTl9JTkZPX0lORCwKK01TR19JRF9MTU9CX01PQl9NRUFTX0lOVEVSUkFUX0MyS19JTkZPX0lORCwKK01TR19JRF9MTU9CX01PQl9TWU5DSF9TVEFUVVNfQ05GLAorTVNHX0lEX0xNT0JfTU9CX0NPTk5fRkFLRV9JUkNDT19HQ0VMTF9JTkQsCitNU0dfSURfTE1PQl9NT0JfUFJTX0dBUF9JTkQsCitNU0dfSURfTE1PQl9NT0JfR0NFTExfQlNJQ19FTkhfSU5ELAorTVNHX0lEX01PQl9MTU9CX01FQVNfTE9HR0lOR19JTkQsCitNU0dfSURfTU9CX0xNT0JfRVNURkFJTF9SRVBPUlRfQ05GLAorTVNHX0lEX0VSUkNfRUwxX1BBR0lOR19JTkQsCitNU0dfSURfRVJSQ19FTDFfQlVGRkVSX0NIRUNLX0lORCwKK01TR19JRF9FUlJDX0VMMV9DUEhZX0NGR19DTkYsCitNU0dfSURfRVJSQ19FTDFfUkxfTU9OSVRPUl9DTkYsCitNU0dfSURfRVJSQ19FTDFfUkxGX0lORCwKK01TR19JRF9FUlJDX0VMMV9CQ0NIX0lORCwKK01TR19JRF9FUlJDX0VMMV9CQ0NIX1NZU19JTkZPX0lORCwKK01TR19JRF9FUlJDX0VMMU1QQ19OQlJfQkNDSF9NRUFTX0lORCwKK01TR19JRF9FUlJDX0VMMV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9DTkYsCitNU0dfSURfRVJSQ19DRUxfU1BFQ0lGSUNfQ0VMTF9TUkNIX0NORiwKK01TR19JRF9FUlJDX0NPTk5fU1BFQ0lGSUNfQ0VMTF9TUkNIX0NORiwKK01TR19JRF9FUlJDX0VMMV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9JTkQsCitNU0dfSURfRVJSQ19DRUxfU1BFQ0lGSUNfQ0VMTF9TUkNIX0lORCwKK01TR19JRF9FUlJDX0NPTk5fU1BFQ0lGSUNfQ0VMTF9TUkNIX0lORCwKK01TR19JRF9FUlJDX0VMMU1QQ19SU1NJX1NOSUZGRVJfQ05GLAorTVNHX0lEX0VSUkNfRUwxTVBDX1JTU0lfU05JRkZFUl9JTkQsCitNU0dfSURfRVJSQ19FTDFNUENfUlNTSV9TTklGRkVSX0JBTkRfQ09NUExFVEVfSU5ELAorTVNHX0lEX0VSUkNfRUwxX1NJQl9GUkFNRV9TWU5DX0lORCwKK01TR19JRF9FUlJDX0VMMV9QQ0hfQ1JDTkdfSU5ELCAvKiBOZWVkIHRvIHJlbW92ZSBmb3IgVEs2MjkxIFU0RyAqLworTVNHX0lEX0VSUkNfRUwxX0FVVE9fR0FQX09OX0NORiwKK01TR19JRF9FUlJDX0VMMV9BVVRPX0dBUF9PRkZfQ05GLAorTVNHX0lEX0VSUkNfRUwxX0FDVElWRV9BRkNfSU5ELAorTVNHX0lEX0VSUkNfRUwxX0hTVF9JTkQsCitNU0dfSURfRVJSQ19FTDFfSURDX0lORCwKK01TR19JRF9FUlJDX0lEQ19JRENfSU5ELAorTVNHX0lEX0VSUkNfRUwxX1NDRUxMX0ZPVU5EX0lORCwKK01TR19JRF9FUlJDX0VMMV9BQk9SVF9IT19DTkYsCitNU0dfSURfRVJSQ19FTDFfVklSVFVBTF9NT0RFX0NORiwKK01TR19JRF9FUlJDX0VMMV9HQVBfU1RBVFVTX0lORCwgLyogVnpXIE1NTyBDMksgR0FQICovCitNU0dfSURfRVJSQ19FTDFfRFNQX1NOSUZGRVJfQ05GLAorTVNHX0lEX1BFUkZfRVJSQ19SRUVTVEFCTElTSE1FTlRfUkVDT1ZFUllfUkVRLAorTVNHX0lEX0VSUkNfRU1BQ19DT05URU5USU9OX0lORCwKK01TR19JRF9FUlJDX0VNQUNfUkFfRVJST1JfSU5ELAorTVNHX0lEX0VSUkNfRU1BQ19FU1RGQUlMX1JFUE9SVF9DTkYsCitNU0dfSURfRVJSQ19DT05OX1JSQ19UUklHRVJfUkFFUlIsCitNU0dfSURfRVJSQ19FVlRIX0NITV9OT05fUlJDX1RSSUdFUl9SQUVSUiwKK01TR19JRF9FUlJDX0VNQUNfQ09ORklHX0NORiwKK01TR19JRF9FUlJDX0VNQUNNQ0hfU1lOQ0FSRUFfQ0ZHX0NORiwKK01TR19JRF9FUlJDX0VNQUNNQ0hfQVJFQV9DRkdfQ05GLAorTVNHX0lEX0VSUkNfRU1BQ01DSF9NWENIX0NGR19DTkYsCitNU0dfSURfRVJSQ19FTUFDTUNIX01DQ0hfUkNWX01PREVfQ0hBTkdFX0NORiwKK01TR19JRF9FUlJDX0VNQUNNQ0hfTVRDSF9TVVNQRU5EX0lORCwKK01TR19JRF9FUlJDX0VNQUNfTDFfVUxfUkVMX0lORCwKK01TR19JRF9FUlJDX0VNQUNfUkFfSU5GT19JTkQsCitNU0dfSURfRVJSQ19FTUFDX1NJX0lORCwKK01TR19JRF9FUlJDX0VNQUNfVEFfSU5GT19DTkYsCitNU0dfSURfRVJSQ19FTUFDX1RBX0lORk9fSU5ELAorTVNHX0lEX0VSUkNfRU1BQ19UQV9JTkZPX0lOVkFMSURfSU5ELAorTVNHX0lEX0xQUF9FUlJDX0VDSURfTUVBU19SRVEsCitNU0dfSURfTFBQX0VSUkNfRUNJRF9NRUFTX0FCT1JUX1JFUSwKK01TR19JRF9MUFBfRVJSQ19JUkFUX0VDSURfTUVBU19SRVEsCitNU0dfSURfTFBQX0VSUkNfT1RET0FfTUVBU19SRVEsCitNU0dfSURfTFBQX0VSUkNfT1RET0FfTUVBU19BQk9SVF9SRVEsCitNU0dfSURfTFBQX0VSUkNfU1JCX1NUQVRVU19SRVEsCitNU0dfSURfRVJSQ19FVlRIX1NZU19TSSwKK01TR19JRF9FUlJDX0VWVEhfU1lTX1NJQjEsCitNU0dfSURfRVJSQ19FVlRIX1NZU19CQ0NIX0FTTjFfREVDX0VSUiwKK01TR19JRF9FUlJDX0VWVEhfU1lTX0JDQ0hfVU5ERUZJTkUsCitNU0dfSURfRVJSQ19FTUFDX0NDQ0hfREFUQV9JTkQsCitNU0dfSURfRVJSQ19FTUFDX0NBX0FDVElWQVRFX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9DT05OX1JFRVNULAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0NPTk5fUkVFU1RfUkVKLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0NPTk5fUkVKLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0NPTk5fU0VUVVAsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fQ0NDSF9BU04xX0RFQ19FUlIsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fQ0NDSF9VTkRFRklORSwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9NQlNGTl9BUkVBX0NGRywKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9NQk1TX0NOVF9SRVEsCitNU0dfSURfRVJSQ19FUkxDVUxfQ09ORklHX0NORiwKK01TR19JRF9FUlJDX0VSTENETF9DT05GSUdfQ05GLAorTVNHX0lEX0VSUkNfRVJMQ19STEZfSU5ELAorTVNHX0lEX0VSUkNfRVJMQ1VMX1NSQjFfQUNLX0NORiwKK01TR19JRF9FUlJDX0VSTENfVklQX0RBVEFfU1RBVFVTX0lORCwKK01TR19JRF9FUlJDX0VOUERDUF9STENfSU5GT1RSQU5TX0FDS19JTkQsCitNU0dfSURfRVJSQ19FTlBEQ1BfUkxDX1VFSU5GT19BQ0tfSU5ELAorTVNHX0lEX0VSUkNfRU5QRENQX1JMQ19NT0JfQUNLX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9ETF9JTkZPX1RSQU5TLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX01PQl9GUk9NX0VVVFJBX0NNRCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9DT05OX1JFQ09ORiwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9SRUNPTkZfUFJFQ0hLLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0NPTk5fUkVMLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1NFQ1VSSVRZX01PREVfQ01ELAorTVNHX0lEX0VSUkNfRVZUSF9SQ01fVUVfQ0FQQV9FTlEsCitNU0dfSURfRUwxX0VSUkNfRkFDVE9SWV9DQVBBQklMSVRZX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9DT1VOVEVSX0NIRUNLLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1VFX0lORk9fUkVRLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0RDQ0hfQVNOMV9ERUNfRVJSLAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0lSQVRfRENDSF9BU04xX0RFQ19FUlIsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fSVJBVF9OUl9EQ0NIX0FTTjFfREVDX0VSUiwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9EQ0NIX0lOVEdfQ0hLX0VSUiwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9EQ0NIX1VOREVGSU5FLAorTVNHX0lEX0VSUkNfRVZUSF9NT0JfTE9HR0VEX01FQVNfQ0ZHLAorTVNHX0lEX0VSUkNfRVJMQ0RMX1RFU1RfQ05GLAorTVNHX0lEX0VSUkNfRVBEQ1BfQ05USU5GT19DTkYsCitNU0dfSURfRVJSQ19FUERDUF9ERVRFQ1RJT05fVElNRVJfVElNRU9VVF9JTkQsCitNU0dfSURfRVJSQ19FUERDUF9QU19EQVRBX0lOQUNUSVZFX1RJTUVfSU5ELAorTVNHX0lEX0VSUkNfRVBEQ1BfTVRDSF9QQ19DTkYsCitNU0dfSURfRVJSQ19FUkxDRExfTVRDSF9QQ19DTkYsCitNU0dfSURfRVJSQ19USU1FUl9UUklHX1RJTUVPVVRfUkVRLAorTVNHX0lEX0VSUkNfRVZUSF9SQ01fQ1NHX1dISVRFX0xJU1RfVVBEQVRFX0lORCwKK01TR19JRF9FUlJDX0VWVEhfUkNNX05WUkFNX1JFQURfQ05GLAorTVNHX0lEX0VSUkNfRVZUSF9SQ01fTlZSQU1fV1JJVEVfQ05GLAorTVNHX0lEX0VSUkNfRVZUSF9SQ01fQkFORF9VUERBVEVfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9SQ01fU0JQX1JFQ09ORklHX1JFUSwKK01TR19JRF9FUlJDX0VWVEhfUkNNX1NJTV9TV0lUQ0hfUkVRLAorTVNHX0lEX0VSUkNfRVZUSF9DRUxfTE9XRVJfTEFZRVJfQVZBSUxBQklMSVRZX1VQREFURV9JTkQsCitNU0dfSURfRVJSQ19FVlRIX1JDTV9ESVNBQkxFX0IzOV9JTkQsCitNU0dfSURfRVJSQ19FVlRIX1JDTV9FTkFCTEVfQjM5X0lORCwKK01TR19JRF9FUlJDX0VWVEhfUkNNX0JBTkRfQ1RSTF9JTkQsCitNU0dfSURfQ0xDX0VBU19FQVJGQ05fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX1VBU19FQVNfSEFORE9WRVJfRUNFTExfUkVRLAorTVNHX0lEX05SUkNfRVJSQ19IQU5ET1ZFUl9FQ0VMTF9SRVEsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fSVJBVF9SRUNPTkYsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fSVJBVF9OUl9SRUNPTkYsCitNU0dfSURfVUFTX0VBU19BQk9SVF9IT19FQ0VMTF9SRVEsCitNU0dfSURfTlJSQ19FUlJDX0FCT1JUX0hBTkRPVkVSX0VDRUxMX1JFUSwKK01TR19JRF9NUlNfRUFTX1VNVFNfSE9fSU5GT19JTkQsCitNU0dfSURfTVJTX0VBU19DTEVBUl9CTEFDS19DRUxMX0lORCwKK01TR19JRF9NUlNfRUFTX0FGUl9BTExfU0VTU0lPTl9FTkRfSU5ELAorTVNHX0lEX0VBU19VQVNfSEFORE9WRVJfVUNFTExfQ05GLAorTVNHX0lEX0VBU19HQVNfSEFORE9WRVJfR0NFTExfQ05GLAorTVNHX0lEX0VSUkNfTlJSQ19IQU5ET1ZFUl9OUkNFTExfQ05GLAorTVNHX0lEX0VBU19VQVNfSE9fQUNUSVZBVEVfVUNFTExfQ05GLAorTVNHX0lEX0VBU19HQVNfSE9fQUNUSVZBVEVfR0NFTExfQ05GLAorTVNHX0lEX0dBU19FQVNfRVZBTFVBVEVfRUNFTExfUkVRLAorTVNHX0lEX1VBU19FQVNfRVZBTFVBVEVfRUNFTExfUkVRLAorTVNHX0lEX05SUkNfRVJSQ19FVkFMVUFURV9FQ0VMTF9SRVEsCitNU0dfSURfQ0FTX0VBU19FVkFMVUFURV9FQ0VMTF9SRVEsCitNU0dfSURfR0FTX0VBU19FVkFMVUFURV9FQ0VMTF9TVE9QX1JFUSwKK01TR19JRF9VQVNfRUFTX0VWQUxVQVRFX0VDRUxMX1NUT1BfUkVRLAorTVNHX0lEX05SUkNfRVJSQ19FVkFMVUFURV9FQ0VMTF9TVE9QX1JFUSwKK01TR19JRF9DQVNfRUFTX0VWQUxVQVRFX0VDRUxMX1NUT1BfUkVRLAorTVNHX0lEX0VBU19HQVNfRVZBTFVBVEVfR0NFTExfQ05GLAorTVNHX0lEX0VBU19VQVNfRVZBTFVBVEVfVUNFTExfQ05GLAorTVNHX0lEX0VSUkNfTlJSQ19FVkFMVUFURV9OUkNFTExfQ05GLAorTVNHX0lEX0VBU19HQVNfRVZBTFVBVEVfR0NFTExfU1RPUF9DTkYsCitNU0dfSURfRUFTX1VBU19FVkFMVUFURV9VQ0VMTF9TVE9QX0NORiwKK01TR19JRF9FUlJDX05SUkNfRVZBTFVBVEVfTlJDRUxMX1NUT1BfQ05GLAorTVNHX0lEX0VBU19HQVNfQUNUSVZBVEVfR0NFTExfQ05GLAorTVNHX0lEX0VBU19VQVNfQUNUSVZBVEVfVUNFTExfQ05GLAorTVNHX0lEX0VSUkNfTlJSQ19BQ1RJVkFURV9OUkNFTExfQ05GLAorTVNHX0lEX0VBU19DQVNfQUNUSVZBVEVfQ0NFTExfQ05GLAorTVNHX0lEX0dBU19FQVNfUkVBRFlfVElNRVJfU1RBVFVTX0lORCwKK01TR19JRF9HQVNfRUFTX0VWQUxVQVRFX0NTR19FQ0VMTF9SRVEsCitNU0dfSURfVUFTX0VBU19FVkFMVUFURV9DU0dfRUNFTExfUkVRLAorTVNHX0lEX0dBU19FQVNfU0VBUkNIX0NTR19FQ0VMTF9SRVEsCitNU0dfSURfVUFTX0VBU19TRUFSQ0hfQ1NHX0VDRUxMX1JFUSwKK01TR19JRF9FQVNfVUFTX0VWQUxVQVRFX0NTR19VQ0VMTF9DTkYsCitNU0dfSURfRUFTX1VBU19TRUFSQ0hfQ1NHX1VDRUxMX0NORiwKK01TR19JRF9VQVNfRUFTX0xURV9NRUFTVVJFTUVOVF9SRVEsCitNU0dfSURfR0FTX0VBU19MVEVfTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX0NBU19FQVNfTFRFX01FQVNVUkVNRU5UX1JFUSwKK01TR19JRF9FQVNfQ0FTX0NDRUxMX01FQVNfSU5ELAorTVNHX0lEX1VBU19FQVNfTFRFX0hQU19RVUFMSUZZX0NFTExfSU5ELAorTVNHX0lEX0dBU19FQVNfTFRFX0hQU19RVUFMSUZZX0NFTExfSU5ELAorTVNHX0lEX0NBU19FQVNfTFRFX0hQU19RVUFMSUZZX0NFTExfSU5ELAorTVNHX0lEX0VBU19GRERfVUFTX0NPTkZJR19VQ0VMTF9NRUFTX0NORiwKK01TR19JRF9FQVNfVEREX1VBU19DT05GSUdfVUNFTExfTUVBU19DTkYsCitNU0dfSURfRUFTX0dBU19DT05GSUdfR0NFTExfTUVBU19DTkYsCitNU0dfSURfRUFTX0NBU19DT05GSUdfQ0NFTExfTUVBU19DTkYsCitNU0dfSURfRUFTX0ZERF9VQVNfQ09ORklHX1VDRUxMX1BSSU9fTUVBU19DTkYsCitNU0dfSURfRUFTX1RERF9VQVNfQ09ORklHX1VDRUxMX1BSSU9fTUVBU19DTkYsCitNU0dfSURfRUFTX0dBU19DT05GSUdfR0NFTExfUFJJT19NRUFTX0NORiwKK01TR19JRF9FQVNfRkREX1VBU19VQ0VMTF9NRUFTX0lORCwKK01TR19JRF9FQVNfVEREX1VBU19VQ0VMTF9NRUFTX0lORCwKK01TR19JRF9FQVNfR0FTX0dDRUxMX01FQVNfSU5ELAorTVNHX0lEX0VBU19HQVNfR0NFTExfQlNJQ19JTkQsCitNU0dfSURfRUFTX1VBU19SRVBPUlRfQ0dJX0NORiwKK01TR19JRF9FQVNfR0FTX1JFUE9SVF9DR0lfQ05GLAorTVNHX0lEX0VBU19DQVNfUkVQT1JUX0NHSV9DTkYsCitNU0dfSURfVUFTX0VBU19CQUNLR1JPVU5EX1NFQVJDSF9TVEFSVF9SRVEsCitNU0dfSURfVUFTX0VBU19CQUNLR1JPVU5EX1NFQVJDSF9TVE9QX1JFUSwKK01TR19JRF9HQVNfRUFTX0JBQ0tHUk9VTkRfU0VBUkNIX1NUQVJUX1JFUSwKK01TR19JRF9HQVNfRUFTX0JBQ0tHUk9VTkRfU0VBUkNIX1NUT1BfUkVRLAorTVNHX0lEX0VSUkNfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9GT1VORF9JTkQsCitNU0dfSURfRVJSQ19OUlJDX0JBQ0tHUk9VTkRfU0VBUkNIX1NUQVJUX0NORiwKK01TR19JRF9VQVNfRUFTX0JVSUxEX0ZJTkdFUlBSSU5UX1JFUSwKK01TR19JRF9VQVNfRUFTX0FCT1JUX0ZJTkdFUlBSSU5UX0lORCwKK01TR19JRF9FQVNfVUFTX0JVSUxEX0ZJTkdFUlBSSU5UX0NORiwKK01TR19JRF9FQVNfR0FTX0JVSUxEX0ZJTkdFUlBSSU5UX0NORiwKK01TR19JRF9HQVNfRUFTX0VBUkZDTl9MSVNUX1VQREFURV9SRVEsCitNU0dfSURfRVZUSF9FUlJDX01TUE1fQVNfU0VTU0lPTl9TVEFSVF9DTkYsCitNU0dfSURfUlNWQVNfRUFTX1NVU1BFTkRfU0VSVklDRV9SRVEsCitNU0dfSURfUlNWQVNfRUFTX1JFU1VNRV9TRVJWSUNFX1JFUSwKK01TR19JRF9SU1ZBU19FQVNfQUJPUlRfU0VSVklDRV9SRVEsCitNU0dfSURfUlNWQVNfRUFTX0FCT1JUX1NFUlZJQ0VfQ09NUExFVEVfSU5ELAorTVNHX0lEX1JTVkFTX0VBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9SRVEsCitNU0dfSURfUlNWQVNfRUFTX1ZJUlRVQUxfU1VTUEVORF9TRVJWSUNFX0NPTVBMRVRFX0lORCwKK01TR19JRF9SU1ZBU19FQVNfVklSVFVBTF9SRVNVTUVfU0VSVklDRV9SRVEsCitNU0dfSURfUlNWQVNfRUFTX1ZJUlRVQUxfTU9ERV9VUERBVEVfUkVRLAorTVNHX0lEX0NBU19FQVNfQzJLX1BPV0VSX09OX0lORCwKK01TR19JRF9DQVNfRUFTX0MyS19QT1dFUl9PRkZfSU5ELAorTVNHX0lEX1JTVkFFX0VBU19GUkVRVUVOQ1lfU0NBTl9BQ0NFUFRfSU5ELAorTVNHX0lEX1JTVkFFX0VBU19GUkVRVUVOQ1lfU0NBTl9QUkVFTVBUX0lORCwKK01TR19JRF9MVEVDU1JfRVJSQ19WT0xURV9TVEFUVVNfTlRGLAorTVNHX0lEX0VWQUxfRVJSQ19JTVNfQ0FMTF9TVEFUVVNfUkVRLAorTVNHX0lEX0xURUNTUl9FUlJDX1ZPTFRFX0NBTExfU0lMRU5DRV9OVEYsCitNU0dfSURfTFRFQ1NSX0VSUkNfREVMQVlfQlVER0VUX1JQVF9DTkYsCitNU0dfSURfTFRFQ1NSX0VSUkNfREVMQVlfQlVER0VUX1JQVF9JTkQsCitNU0dfSURfRVZBTF9FUlJDX0RFTEFZX0JVREdFVF9SUFRfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19FRERBX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfTFRFQ0FfTU9ERV9TRVRUSU5HX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfT01BRE1fVVBEQVRFX1JFUSwKK01TR19JRF9FVkFMX0VSUkNfTFRFX1RNOV9GRERfVEREX1NFVFRJTkdfUkVRLAorTVNHX0lEX0VWQUxfRVJSQ19DQV9CQU5EX0NPTUJfTElTVF9SRVEsCitNU0dfSURfTUwxU19FUlJDX1RFU1RfTU9ERV9FTkFCTEVfUkVRLAorTVNHX0lEX0w0Q19DRUxMX1BPV0VSX1RIUkVTSE9MRF9DT05GSUdfUkVRLAorTVNHX0lEX0w0Q19FUlJDX0NVU1RPTV9CQVJfTElTVF9SRVEsCitNU0dfSURfTDRDX0VSUkNfSU1TX0NPTkZJR19JTkQsCitNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0NBUEFCSUxJVFlfUkVRLAorTVNHX0lEX0lXTEFOX0VSUkNfV0xBTl9MV0FfQ09OTkVDVF9SU1AsCitNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0xXQV9MT1NUX1JFUSwKK01TR19JRF9JV0xBTl9FUlJDX1dMQU5fTFdBX0RJU0NPTk5FQ1RfUlNQLAorTVNHX0lEX0lXTEFOX0VSUkNfV0xBTl9NRUFTVVJFTUVOVF9SRVEsCitNU0dfSURfSVdMQU5fRVJSQ19MV0lfU1RFRVJfU1RBVFVTX1JFUSwKK01TR19JRF9DTENfRVJSQ19FVkRPX1BTX0NPTk5FQ1RJT05fU1RBVFVTX0lORCwKK01TR19JRF9QU1dfRVJSQ18xWFJUVF9QU19DT05ORUNUSU9OX1NUQVRVU19JTkQsCitNU0dfSURfRUFTX0dBU19CU0lDX0VOSF9JTkQsCitNU0dfSURfRVZBTF9FUlJDX0hRX1NFUlZJQ0VfU1RBVFVTX1JFUSwKK01TR19JRF9FUlJDX0VSTENVTF9TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfQ05GLAorTVNHX0lEX0VSUkNfRVJMQ0RMX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9DTkYsCitNU0dfSURfUlNWQVNfRUFTX1ZJUlRVQUxfQ09OTkVDVEVEX1NVU1BFTkRfUkVRLAorTVNHX0lEX1JTVkFTX0VBU19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfUkVRLAorTVNHX0lEX0VNTV9FUlJDX05BU19GQUlMX0hBTkRMRV9SRVEsCitNU0dfSURfRVJSQ19FTlBEQ1BfRVhDRVNTX0RFTEFZX0lORCwKK01TR19JRF9NTV9FUlJDX05PX0RBVEFfREVURUNUX0lORCwKK01TR19JRF9FUlJDX0VOUERDUF9ERVRFQ1RJT05fVElNRVJfMl9USU1FT1VUX0lORCwKK01TR19JRF9FUlJDX0VOUERDUF9ERVRFQ1RJT05fVElNRVJfM19USU1FT1VUX0lORCwKK01TR19JRF9FUlJDX0VNQUNfSERBVEFfSU5ELAorTVNHX0lEX0VSUkNfRU1BQ19EU1BfU05JRkZFUl9DTkYsCitNU0dfSURfRVJSQ19OUlJDX1NSQjNfQ09ORklHX0lORCwKK01TR19JRF9FUlJDX05SUkNfSUVfQ0hFQ0tfQ05GLAorTVNHX0lEX0VSUkNfTlJSQ19DT05GSUdfQ05GLAorTVNHX0lEX0VSUkNfTlJSQ19DT05GSUdfQ09OVElOVUVfQ05GLAorTVNHX0lEX0VSUkNfTlJSQ19TVVNQRU5EX0NORiwKK01TR19JRF9FUlJDX05SUkNfUkVMRUFTRV9DTkYsCitNU0dfSURfRVJSQ19OUlJDX1NDR19GQUlMVVJFX0lORCwKK01TR19JRF9FUlJDX05SUkNfUU9TX1VQREFURV9DTkYsCitNU0dfSURfRVJSQ19OUlJDX1NSQjFfU0VDX0FDVElWQVRFX0NORiwKK01TR19JRF9FUlJDX05SUkNfQ09ORklHX0lORCwKK01TR19JRF9OUlJDX0VSUkNfUERDUF9DT05GSUdfUkVRLAorTVNHX0lEX05SUkNfRVJSQ19QRENQX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9SRVEsCitNU0dfSURfTlJSQ19FUlJDX1JFUE9SVF9DR0lfUkVRLAorTVNHX0lEX0VSUkNfTlJSQ19SQl9SRVZFUlRfRk9SR0VUX0NORiwKK01TR19JRF9FUlJDX05SUkNfTUVBU19SRVBPUlRfSU5ELAorTVNHX0lEX0VSUkNfTlJSQ19GQUlMVVJFX0lORk9fSU5ELAorTVNHX0lEX0VSUkNfTlJSQ19SRVBPUlRfQ0dJX0NORiwKK01TR19JRF9OUlJDX0VSUkNfQ0dJX0NPTkZMSUNUX0pVREdFX1JFUSwKK01TR19JRF9FUlJDX05SUkNfQ0dJX0NPTkZMSUNUX0ZJTklTSF9JTkQsCitNU0dfSURfTlJSQ19FUlJDX0FVVE9fR0FQX09OX1JFUSwKK01TR19JRF9OUlJDX0VSUkNfQVVUT19HQVBfT0ZGX1JFUSwKK01TR19JRF9OUlJDX0VSUkNfQVVUT19HQVBfT0ZGX1JTUCwKK01TR19JRF9OUlJDX0VSUkNfT1RET0FfTUVBU19SRVEsCitNU0dfSURfTlJSQ19FUlJDX09URE9BX01FQVNfQUJPUlRfUkVRLAorTVNHX0lEX0VSUkNfRU5QRENQX0NPTkZJR19DTkYsCitNU0dfSURfRVJSQ19FTlBEQ1BfUkxGX0lORCwKK01TR19JRF9FUlJDX0VOUERDUF9NQ0NIX0RBVEFfSU5ELAorTVNHX0lEX0VSUkNfRU5QRENQX0RDQ0hfREFUQV9DTkYsCitNU0dfSURfRVJSQ19FTlBEQ1BfRENDSF9EQVRBX0lORCwKK01TR19JRF9FUlJDX0VOUERDUF9TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfQ05GLAorTVNHX0lEX0VSUkNfRU5QRENQX1RFU1RfQ05GLAorTVNHX0lEX0VSUkNfRU5QRENQX0NOVElORk9fQ05GLAorTVNHX0lEX0VSUkNfRU5QRENQX0RFVEVDVElPTl9USU1FUl9USU1FT1VUX0lORCwKK01TR19JRF9FUlJDX0VOUERDUF9QU19EQVRBX0lOQUNUSVZFX1RJTUVfSU5ELAorTVNHX0lEX0VSUkNfRU5QRENQX0NVVF9DRUxMX0lORCwKK01TR19JRF9FUlJDX05SUkNfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9DTkYsCitNU0dfSURfRVJSQ19OUlJDX1ZJUlRVQUxfQ09OTkVDVEVEX1JFU1VNRV9DTkYsCitNU0dfSURfRVJSQ19OTDFfUkFESU9fTUVBU19DTkYsCitNU0dfSURfRVJSQ19OTDFfUkFESU9fTUVBU19JTkQsCitNU0dfSURfRVJSQ19OTDFfUkFESU9fTUVBU19TQklfSU5ELAorTVNHX0lEX0VSUkNfTkwxX1NGVERfQ05GLAorTVNHX0lEX0VSUkNfTkwxX1NGVERfSU5ELAorTVNHX0lEX05BU19TVl9FUlJDX05SX05PUk1BTF9TRVJWSUNFX0xPU1NfVVBEQVRFX1JFUSwKK01TR19JRF9OTDFfRVJSQ19MVEVfTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX05MMV9FUlJDX0xURV9IUFNfUVVBTElGWV9DRUxMX0lORCwKK01TR19JRF9OQVNfU1ZfRVJSQ19DQVBfVVBEQVRFX1JFUSwKK01TR19JRF9OQVNfU1ZfRVJSQ19CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfUkVRLAorTVNHX0lEX05BU19TVl9FUlJDX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19TVE9QX1JFUSwKK01TR19JRF9FTU1fRVJSQ19CQVJfTFRFX0NFTExfUkVRLAorTVNHX0lEX1NBU0VfRVJSQ19FTkRDX0FDVElWQVRFX1JFUSwKK01TR19JRF9TQVNFX0VSUkNfRU5EQ19ERUFDVElWQVRFX1JFUSwKK01TR19JRF9TQVNFX0VSUkNfU0FfU0lMRU5DRV9DVFJMX1JFUSwKK01TR19JRF9FUlJDX0VSTENVTF9HQU1JTkdfQ0VMTF9JTkZPX05URiwKK01TR19JRF9FUlJDX05MMU1PQl9HQU1JTkdfQ0VMTF9JTkZPX05URiwKK01TR19JRF9OQVNfU1ZfRVJSQ19SRUdOX1JFU1VMVF9JTkQsCitNU0dfSURfTlJSQ19FUlJDX0NFTExfUkVKX0lORCwKK01TR19JRF9MNENfRVJSQ19TRVRfUExNTl9TVE9SRURfRlJFUV9SRVEsCitNU0dfSURfRVJSQ19FTlBEQ1BfUkxDX0NBUEFfUkVTX0FDS19JTkQsCitNU0dfSURfQU5ZX0VSUkNfQ0VMTF9SRUpfSU5ELAorTVNHX0lEX0w0Q19FUlJDX1NFVF9TSUdOQUxfUkVQT1JUSU5HX0NSSVRFUklBX1JFUSwKK01TR19JRF9MNENfRVJSQ19JTVNfQ0NfQ0FMTF9QUk9HUkVTU19JTkQsCitNU0dfSURfTkFTX1NWX0VSUkNfQU5ZX1NFQVJDSF9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9FWEVWVF9SQ1ZfRU5ELAorTVNHX0lEX0lORVZUX0JFR0lOLAorTVNHX0lEX0VSUkNfU1BWX1JDTV9JTklUX1JFUSwKK01TR19JRF9FUlJDX1NQVl9SQ01fSU5JVF9DTkYsCitNU0dfSURfRVJSQ19TUFZfUkNNX1JBVF9CQU5EX1JFUSwKK01TR19JRF9FUlJDX1NQVl9SQ01fUkFUX0JBTkRfQ05GLAorTVNHX0lEX0VSUkNfU1BWX1JDTV9VU0lNX1JFUSwKK01TR19JRF9FUlJDX1NQVl9SQ01fVVNJTV9DTkYsCitNU0dfSURfRVJSQ19BTllfUkNNX0NPTlRFWFRfV1JJVEVfSU5ELAorTVNHX0lEX0VSUkNfQU5ZX1NQVl9DSEFOR0VfU1RBVEVfUkVRLAorTVNHX0lEX0VSUkNfQU5ZX1NQVl9DSEFOR0VfU1RBVEVfQ05GLAorTVNHX0lEX0VSUkNfU1BWX1JDTV9QQVJBTV9SRVEsCitNU0dfSURfRVJSQ19TUFZfUkNNX1BBUkFNX0NORiwKK01TR19JRF9FUlJDX1NQVl9DRUxfUEFSQU1fUkVRLAorTVNHX0lEX0VSUkNfU1BWX0NFTF9QQVJBTV9DTkYsCitNU0dfSURfRVJSQ19TUFZfQ09OTl9LRVlfVVBEVF9SRVEsCitNU0dfSURfRVJSQ19TUFZfQ09OTl9LRVlfVVBEVF9DTkYsCitNU0dfSURfRVJSQ19TUFZfQ09OTl9NQk1TX1NFUlZTRVNTX1JFUSwKK01TR19JRF9FUlJDX1NQVl9DT05OX01CTVNfU0VSVlNFU1NfQ05GLAorTVNHX0lEX0VSUkNfU1BWX0NPTk5fVEVTVF9SRVEsCitNU0dfSURfRVJSQ19TUFZfQ09OTl9URVNUX0NORiwKK01TR19JRF9FUlJDX1NQVl9BTllfTUJNU19FVkVOVF9JTkQsCitNU0dfSURfRVJSQ19BTllfU1BWX01CTVNfRVZFTlRfSU5ELAorTVNHX0lEX0VSUkNfU1BWX0NPTk5fU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRVJSQ19TUFZfQU5ZX1NUQllfUkVRLAorTVNHX0lEX0VSUkNfU1BWX0FOWV9TVEJZX0NORiwKK01TR19JRF9FUlJDX1NQVl9BTllfU1RBTkRCWV9DTVBMX0lORCwKK01TR19JRF9FUlJDX1NQVl9BTllfUkFUX0NIQU5HRV9SRVEsCitNU0dfSURfRVJSQ19TUFZfQU5ZX1JBVF9DSEFOR0VfQ05GLAorTVNHX0lEX0VSUkNfQU5ZX1NQVl9SQVRfQ0hBTkdFX0lORCwKK01TR19JRF9FUlJDX0FOWV9TUFZfUkFUX0NIQU5HRV9SRVMsCitNU0dfSURfRVJSQ19TUFZfQ09OTl9SQVRfQ0hBTkdFX0FCT1JUX1JFUSwKK01TR19JRF9FUlJDX1NQVl9DT05OX1JBVF9DSEFOR0VfQUJPUlRfQ05GLAorTVNHX0lEX0VSUkNfQ09OTl9DSE1fSVJBVF9UT19MVEVfQUJPUlRfSU5ELAorTVNHX0lEX0VSUkNfU1BWX0FOWV9GTElHSFRfTU9ERV9SRVEsCitNU0dfSURfRVJSQ19TUFZfQU5ZX0ZMSUdIVF9NT0RFX0NORiwKK01TR19JRF9FUlJDX1NQVl9BTllfSVJUT0xURV9TVUNDRVNTX0lORCwKK01TR19JRF9FUlJDX1NQVl9DT05OX1NFUlZJQ0VfUkVTX09DQ1VQWV9JTkQsCitNU0dfSURfRVJSQ19TUFZfQU5ZX0dFTUlOSV9TVVNQRU5EX1JFUSwKK01TR19JRF9FUlJDX1NQVl9BTllfR0VNSU5JX1NVU1BFTkRfQ05GLAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfUkVTVU1FX1JFUSwKK01TR19JRF9FUlJDX1NQVl9BTllfR0VNSU5JX1JFU1VNRV9DTkYsCitNU0dfSURfRVJSQ19TUFZfQU5ZX0dFTUlOSV9SRVNVTUVfQ09NUExFVEVfSU5ELAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfVklSVFVBTF9TVVNQRU5EX1JFUSwKK01TR19JRF9FUlJDX1NQVl9BTllfR0VNSU5JX1ZJUlRVQUxfU1VTUEVORF9DTkYsCitNU0dfSURfRVJSQ19TUFZfQU5ZX0dFTUlOSV9WSVJUVUFMX1NVU1BFTkRfQ09NUExFVEVfSU5ELAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfVklSVFVBTF9SRVNVTUVfUkVRLAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfQUJPUlRfUkVRLAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfQUJPUlRfQ05GLAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfQUJPUlRfQ09NUExFVEVfSU5ELAorTVNHX0lEX0VSUkNfU1BWX0FOWV9HRU1JTklfVklSVFVBTF9NT0RFX1VQREFURV9SRVEsCitNU0dfSURfRVJSQ19TUFZfQU5ZX0dFTUlOSV9WSVJUVUFMX01PREVfVVBEQVRFX0NORiwKK01TR19JRF9FUlJDX1NQVl9BTllfTVNQTV9BU19TRVNTSU9OX1JFU1VMVF9JTkQsCitNU0dfSURfRVJSQ19TUFZfUkNNX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsCitNU0dfSURfRVJSQ19TUFZfUkNNX0RVUExFWF9NT0RFX0NIQU5HRV9DTkYsCitNU0dfSURfRVJSQ19TUFZfQU5ZX05BU19DQVBBQklMSVRZX0NIQU5HRV9SRVEsCitNU0dfSURfRVJSQ19TUFZfQU5ZX05BU19DQVBBQklMSVRZX0NIQU5HRV9DTkYsCitNU0dfSURfRVJSQ19TUFZfQU5ZX1NUQVRFX0NIQU5HRV9JTkQsCitNU0dfSURfRVJSQ19DRUxfU1lTX0JDQ0hfQUNUX1JFUSwKK01TR19JRF9FUlJDX0NFTF9TWVNfQkNDSF9BQ1RfQ05GLAorTVNHX0lEX0VSUkNfQ0VMX1NZU19CQ0NIX0RFQUNUX0lORCwKK01TR19JRF9FUlJDX1NZU19DRUxfQkNDSF9SQ1ZEX0lORCwKK01TR19JRF9FUlJDX0NFTF9TWVNfREJfVVBEVF9JTkQsCitNU0dfSURfRVJSQ19DRUxfU1lTX1NPRlRfSURYX0NIR19JTkQsCitNU0dfSURfRVJSQ19DRUxfU1lTX1BXU19BQ1RfSU5ELAorTVNHX0lEX0VSUkNfQ0VMX1NZU19QV1NfREVBQ1RfSU5ELAorTVNHX0lEX0VSUkNfU1lTX0NFTF9QV1NfUkNWRF9JTkQsCitNU0dfSURfRVJSQ19TWVNfQ0VMX0JDQ0hfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19DRUxfU1lTX0NMRUFSX0RFRElDQVRFRF9TSUIsCitNU0dfSURfRVJSQ19DRUxfQ09OTl9JRExFX0lORCwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX0lETEVfUlNQLAorTVNHX0lEX0VSUkNfQ09OTl9DRUxfUlJDX0NPTk5FQ1RFRF9SRVEsCitNU0dfSURfRVJSQ19DT05OX0NFTF9SUkNfQ09OTkVDVEVEX0NORiwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX0lETEVfUkVRLAorTVNHX0lEX0VSUkNfQ0VMX0NPTk5fQ0hfU1RBVFVTX0lORCwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX1JFRVNUX1JFUSwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX1JFRVNUX0NORiwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX0JDQ0hfQ1RSTF9GSU5JU0hfSU5ELAorTVNHX0lEX0VSUkNfQ09OTl9DRUxfSE9fVVBEQVRFX0NFTExfSU5ELAorTVNHX0lEX0VSUkNfQ09OTl9DRUxfSE9fU1VDQ0VTU19JTkQsCitNU0dfSURfRVJSQ19DRUxfQ09OTl9VUERUX01JQl9JTkQsCitNU0dfSURfRVJSQ19DRUxfQ09OTl9VUERUX1NJQl9JTkQsCitNU0dfSURfRVJSQ19DT05OX0NFTF9DTkNUX05HX0lORCwKK01TR19JRF9FUlJDX0NFTF9DT05OX0NFTExfTk9fU1VJVEFCTEVfSU5ELAorTVNHX0lEX0VSUkNfQ09OTl9DRUxfUkVFU1RfQ01QTF9SRVEsCitNU0dfSURfRVJSQ19DT05OX0NFTF9SRUVTVF9DTVBMX0NORiwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX0VTVF9KREdfUkVRLAorTVNHX0lEX0VSUkNfQ09OTl9DRUxfRVNUX0pER19DTkYsCitNU0dfSURfRVJSQ19DT05OX0NFTF9DQ09fUkVTVUxUX0lORCwKK01TR19JRF9FUlJDX0NPTk5fQ0VMX01CTVNfU0NFTExfUkVRLAorTVNHX0lEX0VSUkNfQ09OTl9DRUxfTUJNU19TQ0VMTF9DTkYsCitNU0dfSURfRVJSQ19DT05OX0NFTF9IT19GQUlMX1NSQ0hfQ0VMTF9SRVEsCitNU0dfSURfRVJSQ19DT05OX0NFTF9IT19GQUlMX1NSQ0hfQ0VMTF9DTkYsCitNU0dfSURfRVJSQ19BTllfQ0VMX01PRElGWV9DRUxMX1JFU0VMX1BSSU9SSVRZX0lORCwKK01TR19JRF9FUlJDX0NPTk5fTU9CX0VTVEZBSUxfUkVQT1JUX1JFUSwKK01TR19JRF9FUlJDX0NPTk5fTU9CX0VTVEZBSUxfUkVQT1JUX0NORiwKK01TR19JRF9FUlJDX0NPTk5fTU9CX1dMQU5fTE9TVF9JTkQsCitNU0dfSURfRVJSQ19DT05OX01PQl9OUl9TVEFUVVNfTlRGLAorTVNHX0lEX0VSUkNfQ0VMX0NPTk5fSVJDQ09fQUJPUlRfRVNUX0lORCwKK01TR19JRF9FUlJDX0NFTF9DT05OX1NUQVRFX1VOU1lOQ19JTkQsCitNU0dfSURfRVJSQ19DRUxfTU9CX0tDRUxMU19SRVEsCitNU0dfSURfRVJSQ19DRUxfTU9CX0tDRUxMU19DTkYsCitNU0dfSURfRVJSQ19NT0JfQ0VMX1JFU0VMX0lORCwKK01TR19JRF9FUlJDX01PQl9DRUxfT09TX0lORCwKK01TR19JRF9FUlJDX01PQl9DRUxfRUFSTFlfT09TX0lORCwKK01TR19JRF9FUlJDX0NFTF9NT0JfQ0VMTF9SRUpfSU5ELAorTVNHX0lEX0VSUkNfQ0VMX01PQl9DRUxMX1JKQ1RfQ0xSX0lORCwKK01TR19JRF9FUlJDX0NFTF9NT0JfU0VSVkNFTExfTE9XX1BSSU9SSVRZX1NUQVRVU19VUERBVEVfTlRGLAorTVNHX0lEX0VSUkNfTU9CX0NFTF9SRVNUX0xJU1RfSU5ELAorTVNHX0lEX0VSUkNfTU9CX0NFTF9ORUVEX0lSX0NIQU5HRV9TVEFUVVNfSU5ELAorTVNHX0lEX0VSUkNfQ0VMX01PQl9VUERBVEVfQ0FVU0VfSU5ELAorTVNHX0lEX0VSUkNfUkNNX01PQl9VU0lNX0lORCwKK01TR19JRF9FUlJDX01PQl9DRUxfU0lfTUVBU19JTkQsCitNU0dfSURfRVJSQ19BTllfTU9CX01FQVNfUFJFX0NUUkxfUkVRLAorTVNHX0lEX0VSUkNfQU5ZX01PQl9NRUFTX1BSRV9DVFJMX0NORiwKK01TR19JRF9FUlJDX0FOWV9NT0JfTUVBU19QT1NUX0NUUkxfUkVRLAorTVNHX0lEX0VSUkNfQU5ZX01PQl9NRUFTX1BPU1RfQ1RSTF9DTkYsCitNU0dfSURfRVJSQ19BTllfTU9CX09URE9BX1BSRV9DVFJMX1JFUSwKK01TR19JRF9FUlJDX0FOWV9NT0JfT1RET0FfUFJFX0NUUkxfQ05GLAorTVNHX0lEX0VSUkNfQU5ZX01PQl9PVERPQV9QT1NUX0NUUkxfUkVRLAorTVNHX0lEX0VSUkNfQU5ZX01PQl9PVERPQV9QT1NUX0NUUkxfQ05GLAorTVNHX0lEX0VSUkNfTU9CX0NPTk5fR0FQX0lOVEVSTkFMX0NIR19JTkQsCitNU0dfSURfRVJSQ19NT0JfQ09OTl9HQVBfSU5URVJOQUxfQ0hHX1JTUCwKK01TR19JRF9FUlJDX0NFTF9NT0JfTUVBU19SRVEsCitNU0dfSURfRVJSQ19DRUxfTU9CX01FQVNfQ05GLAorTVNHX0lEX0VSUkNfTU9CX0NFTF9SUFRfQ0dJX1JFUSwKK01TR19JRF9FUlJDX01PQl9DRUxfUlBUX0NHSV9DTkYsCitNU0dfSURfRVJSQ19NT0JfQ0VMX09URE9BX1JFRl9DRUxMX1JFUSwKK01TR19JRF9FUlJDX01PQl9DRUxfT1RET0FfUkVGX0NFTExfQ05GLAorTVNHX0lEX0VSUkNfQ0VMX01PQl9DU0dfU1RBVFVTX0lORCwKK01TR19JRF9FUlJDX0NFTF9NT0JfRU1FUkdFTkNZX1NUQVRVU19JTkQsCitNU0dfSURfRVJSQ19BTllfTU9CX0lSX01FQVNfQ1RSTF9SRVEsCitNU0dfSURfRVJSQ19DRUxfTU9CX0lSX1JFRElSRUNUX1RPX0xURV9JTkQsCitNU0dfSURfRVJSQ19DRUxfTU9CX01CTVNfU0NFTExfU0VBUkNIX1JFUSwKK01TR19JRF9FUlJDX0NFTF9NT0JfTUJNU19TQ0VMTF9TRUFSQ0hfQ05GLAorTVNHX0lEX0VSUkNfQ0VMX01PQl9NQk1TX1NDRUxMX1NFQVJDSF9JTkQsCitNU0dfSURfRVJSQ19DSE1fTU9CX0xXQV9DRkdfSU5ELAorTVNHX0lEX0VSUkNfTENFTF9DRUxfUEFHSU5HX0lORCwKK01TR19JRF9FUlJDX0FOWV9DSE1fQ0hfQ1RSTF9SRVEsCitNU0dfSURfRVJSQ19BTllfQ0hNX0NIX0NUUkxfQ05GLAorTVNHX0lEX0VSUkNfQ0hNX0NPTk5fTDFfQ1RSTElOR19JTkQsCitNU0dfSURfRVJSQ19DSE1fQ09OTl9STEZfSU5ELAorTVNHX0lEX0VSUkNfQ0hNX1NZU19CQ0NIX0RMX1NZTkNfRkFJTF9JTkQsCitNU0dfSURfRVJSQ19DT05OX0NITV9MUEJLX1JFUSwKK01TR19JRF9FUlJDX0NPTk5fQ0hNX0xQQktfQ05GLAorTVNHX0lEX0VSUkNfQ09OTl9BTllfU1VTX1JFUSwKK01TR19JRF9FUlJDX0NPTk5fQU5ZX1NVU19DTkYsCitNU0dfSURfRVJSQ19DT05OX0FOWV9SU01fUkVRLAorTVNHX0lEX0VSUkNfQ09OTl9BTllfUlNNX0NORiwKK01TR19JRF9FUlJDX0FOWV9DT05OX1JFRVNUX0lORCwKK01TR19JRF9FUlJDX1RJTUVSX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfVElNRVJfU1RBUlRfSU5ELAorTVNHX0lEX0VSUkNfVElNRVJfU1RPUF9JTkQsCitNU0dfSURfRVJSQ19SQ01fQ09OTl9QV1NfQ0FQQV9VUERUX0lORCwKK01TR19JRF9FUlJDX1JDTV9BTllfQ1NHX1dISVRFTElTVF9VUERBVEVfSU5ELAorTVNHX0lEX0VSUkNfUkNNX0FOWV9BQ0NfVVBEQVRFX0lORCwKK01TR19JRF9FUlJDX1JDTV9BTllfRElTQUJMRV9CMzlfSU5ELAorTVNHX0lEX0VSUkNfUkNNX0FOWV9FTkFCTEVfQjM5X0lORCwKK01TR19JRF9FUlJDX1JDTV9DRUxfU1RBUlRfSFNSX1NOSUZGRVIsCitNU0dfSURfRVJSQ19SQ01fQ0VMX1NUT1BfSFNSX1NOSUZGRVIsCitNU0dfSURfRVJSQ19SQ01fTENFTF9VU0lNX1JFUSwKK01TR19JRF9FUlJDX1JDTV9MQ0VMX1NUTVNJX1VQREFURV9SRVEsCitNU0dfSURfRVJSQ19NT0RfR0xPQkFMX1ZBUiwKK01TR19JRF9FUlJDX0dFVF9WQVJfQUREUiwKK01TR19JRF9FUlJDX1JFVFVSTl9WQVJfQUREUiwKK01TR19JRF9FUlJDX0NIS19ETF9EQ0NIX01TR19JRV9JTkQsCitNU0dfSURfRVJSQ19DSEtfRExfQ0NDSF9NU0dfSUVfSU5ELAorTVNHX0lEX0VSUkNfQ0hLX01DQ0hfTVNHX0lFX0lORCwKK01TR19JRF9FUlJDX0JDQ0hfU0lCX1BUUiwKK01TR19JRF9FUlJDX0xTWVNfTk9QRENDSF9EQVRBLAorTVNHX0lEX0VSUkNfTFNZU19TWVNfQkNDSF9JTkQsCitNU0dfSURfRVJSQ19MU1lTX1NZU19TSV9JTkQsCitNU0dfSURfRVJSQ19MU1lTX1NZU19CQ0NIX0FTTjFfREVDX0VSUiwKK01TR19JRF9FUlJDX0xTWVNfU1lTX0JDQ0hfVU5ERUZJTkUsCitNU0dfSURfRVJSQ19MU1lTX1NZU19OT1BEQ0NIX0lORCwKK01TR19JRF9FUlJDX01JQl9EQVRBLAorTVNHX0lEX0VSUkNfU0lCMV9EQVRBLAorTVNHX0lEX0VSUkNfU0lCMl9EQVRBLAorTVNHX0lEX0VSUkNfU0lCM19EQVRBLAorTVNHX0lEX0VSUkNfU0lCNF9EQVRBLAorTVNHX0lEX0VSUkNfU0lCNF9DU0dfREFUQSwKK01TR19JRF9FUlJDX1NJQjVfREFUQSwKK01TR19JRF9FUlJDX1NJQjZfREFUQSwKK01TR19JRF9FUlJDX1NJQjdfREFUQSwKK01TR19JRF9FUlJDX1NJQjhfREFUQSwKK01TR19JRF9FUlJDX1NJQjlfREFUQSwKK01TR19JRF9FUlJDX1NJQjEwX0RBVEEsCitNU0dfSURfRVJSQ19TSUIxMV9EQVRBLAorTVNHX0lEX0VSUkNfU0lCMTJfREFUQSwKK01TR19JRF9FUlJDX1NJQjEzX0RBVEEsCitNU0dfSURfRVJSQ19TSUIxNF9EQVRBLAorTVNHX0lEX0VSUkNfU0lCMTVfREFUQSwKK01TR19JRF9FUlJDX1NJQjE2X0RBVEEsCitNU0dfSURfRVJSQ19TSUIxN19EQVRBLAorTVNHX0lEX0VSUkNfU0lCMjRfREFUQSwKK01TR19JRF9FUlJDX1NZU19TVFNfVEJMLAorTVNHX0lEX0VSUkNfU1lTX0JDQ0hfVEJMX0NUUkxfSU5GLAorTVNHX0lEX0VSUkNfU1lTX1BXU19SRUNFUFRJT05fVEJMLAorTVNHX0lEX0VSUkNfU1lTX1NUT1JFRF9JTkYsCitNU0dfSURfRVJSQ19TWVNfRExJU1RfSEVBRF9JTkYsCitNU0dfSURfRVJSQ19OVk1fVEJMLAorTVNHX0lEX0VSUkNfU0lNX0lORk8sCitNU0dfSURfRVJSQ19VRV9DQVBBX01OR19UQkwsCitNU0dfSURfRVJSQ19QV1NfU0VUVElOR19UQkwsCitNU0dfSURfRVJSQ19TUFZfVEJMLAorTVNHX0lEX0VSUkNfQ0hNX0NUUkxfVEJMLAorTVNHX0lEX0VSUkNfQ0hNX0wxX1RBQkxFLAorTVNHX0lEX0VSUkNfQ0hNX0wyX1RBQkxFLAorTVNHX0lEX0VSUkNfTUJNU19DT05GSUcsCitNU0dfSURfRVJSQ19GSU5HRVJQUklOVF9SRUNPUkQsCitNU0dfSURfRVJSQ19MRUFSTkVEX01DQ19SRUNPUkQsCitNU0dfSURfRVJSQ19TVE9SRURfQ0VMTF9JTkYsCitNU0dfSURfRVJSQ19TVE9SRURfQ0FSUl9EQVRBLAorTVNHX0lEX0VSUkNfUkNNX1RFU1QsCitNU0dfSURfRVJSQ19NUlNfQVBJX1JFU1VMVCwKK01TR19JRF9FUlJDX0NITV9BUElfUkVTVUxULAorTVNHX0lEX0VSUkNfU1BWX0FQSV9SRVNVTFQsCitNU0dfSURfRVJSQ19DT01NT05fQVBJX1JFU1VMVCwKK01TR19JRF9FUlJDX0NPTk5fTEVBVkVfQ09OTkVDVEVEX01PREVfSU5ELAorTVNHX0lEX0VSUkNfTU9CX0NPTk5fRkFLRV9JUkNDT19HQ0VMTF9JTkQsCitNU0dfSURfRVJSQ19NUlVfVEFCTEUsCitNU0dfSURfRVJSQ19NQk1TX1RCTCwKK01TR19JRF9FUlJDX1NQVl9BTllfQzJLX1BPV0VSX09OX0lORCwKK01TR19JRF9FUlJDX1NQVl9BTllfQzJLX1BPV0VSX09GRl9JTkQsCitNU0dfSURfRVJSQ19SQ01fVUVfRVVUUkFfQ0FQX0lORk8sCitNU0dfSURfRVJSQ19SQ01fVUVfQ0FQQUJJTElUWV9FTlFVSVJZX0ZST01fTlIsCitNU0dfSURfRVJSQ19SQ01fVUVfQ0FfQ09NQl9JTkZPLAorTVNHX0lEX0VSUkNfUkNNX1VFX1BSRV9DQV9DT01CX0lORk8sCitNU0dfSURfRVJSQ19TWVNfQ0VMX0RFRElDQVRFRF9TSUIxX0lORCwKK01TR19JRF9FUlJDX1NQVl9DRUxfUlNJTV9SRVNVTUVfQ01QTF9JTkQsCitNU0dfSURfRVJSQ19DSE1fTFdBX0NPTkZJR1VSQVRJT04sCitNU0dfSURfRVJSQ19BTllfQ0FSUlNfVVBEQVRFX0lORCwKK01TR19JRF9FUlJDX1NQVl9DT05OX1ZJUlRVQUxfQ09OTkVDVEVEX1NVU1BFTkRfUkVRLAorTVNHX0lEX0VSUkNfU1BWX0NPTk5fVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9DTkYsCitNU0dfSURfRVJSQ19TUFZfQ09OTl9WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfUkVRLAorTVNHX0lEX0VSUkNfU1BWX0NPTk5fVklSVFVBTF9DT05ORUNURURfUkVTVU1FX0NORiwKK01TR19JRF9FUlJDX0NPTk5fQ05DTF9DT05fUkVRLAorTVNHX0lEX0VSUkNfQ09OTl9DTkNMX0NPTl9DTkYsCitNU0dfSURfRVJSQ19DT05OX0NPTl9SRUxfSU5ELAorTVNHX0lEX0VSUkNfQ09OTl9DT05fUkVFU1RfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1QzMDBfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVDMwMV9FWFBSX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9UMzAyX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1QzMDNfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVDMwNF9FWFBSX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9UMzA1X0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1QzMTFfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVFJBRVJSX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0FGUl9USU1FUl9FWFBSX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9ORlJfVElNRVJfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVFZBTElEX1JBRVJSX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1RVRUlORk9fRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVFJFTF9FWFBSX0lORCwKK01TR19JRF9FUlJDX0VWVEhfRVZUSF9STENfQUNLX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1RTVEFfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVDMwNl9FWFBSX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9UMzQwX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX0VEREFfUVVFUllfVFhfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19DT05OX01CTVNfVVBEVF9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVFVFSU5GT19FU1RGQUlMX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1QzNTFfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVE1PQklMX0hJU1RfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fVFZDX1ZBTElEX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1JFRVNUX1JFQ09ORklHX1BST0NURUNUX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfQ09OTl9DT05fR0VNSU5JX0FCT1JUX0lORCwKK01TR19JRF9FUlJDX0VWVEhfQ09OTl9UTVBTX0NIX1BST1RFQ1RfUkVMX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfRVZUSF9DT05OX1QzNDJfRVhQUl9JTkQsCitNU0dfSURfRVJSQ19FVlRIX0NPTk5fREJSX1FVRVJZX0VYUFJfSU5ELAorTVNHX0lEX0VSUkNfUkNNX0FQSV9SRVNVTFQsCitNU0dfSURfRVJSQ19SQ01fQVBJX0NIS19DQV9TUEVDSUZJQ19DQVBBX0lORk8sCitNU0dfSURfRVJSQ19BTllfVVRfQ0hFQ0ssCitNU0dfSURfRVJSQ19DT05OX1JDTV9QUk9DRURVUkVfT0NDVVJfSU5ELAorTVNHX0lEX0VSUkNfUkNNX01SRENfTFRFX1NUQU5EQUxPTkVfQkNfTElTVCwKK01TR19JRF9JTkVWVF9FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRVJSQ19DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX0VSUkNfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZXNtX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9lc21fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjRkZTlmCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZXNtX21zZ2lkLmgKQEAgLTAsMCArMSw0MjEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBlc21fc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVEFUQUtBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTFRFIE5BUyBFU00gcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDMgMDQgMjAyMCBtaWtlLmx1CisgKiBbTU9MWTAwNTAyODY0XSBbTVQ2ODczXVtNYXJnYXV4XVtNUDJdW1NRQ11bSUNEXSBWR1NNL0VTTSBJQ0QgcGFyYW1ldGVyIGluY29ycmVjdAorICogCQorICogCVtJQ0QgQ29tcG9uZW50XS4KKyAqCisgKiAxMiAwNCAyMDE5IGJvLWh1bi5jaGVuCisgKiBbTU9MWTAwNDYyOTc3XSBbTVQ2ODg1XVtQZXRydXNdW01QMV1bSU9EVF1bQ1RDXVtGVF1bU0FdWzVHIEZUXVtDaGluYV1bU2hlbnpoZW5dW0h1YXdlaV1bT3BlcmF0b3IgRlRdIE1vZGVtIHdhcm5pbmc6IFsxXVszNDFdIGVzbV9yYXRfbWFuYWdlci5jICMxNjIzOyAodGltZXN0YW1wOiAyNTM2MjA1MCkKKyAqIAkKKyAqIAkuVk1PTFkgU1dSRAorICoKKyAqIDA3IDI1IDIwMTkgcG95aW5nLmNodWFuZworICogW01PTFkwMDQyMzIwMF0gW1ZNT0xZXSBMNCBQUyBHZW45My9HZW45NSBDUiBzeW5jIHRvIEdlbjk3CisgKiAJCisgKiAJLSBbU1dSRF0gTDQgaW50ZXJmYWNlIC4KKyAqCisgKiAwNCAxOSAyMDE5IG1pa2UubHUKKyAqIFtNT0xZMDAzOTk5OTNdIGludGVyd29ya2luZyB3aXRoTjI2IGZlYXR1cmVzCisgKiAJKFNXUkQtRG9tYWluIGZpbGUpCisgKgorICogMDMgMjYgMjAxOSBtaWtlLmx1CisgKiBbTU9MWTAwMzkzNDU2XSBbR2VuOTddW1ZNT0xZXSA0NUcgSW50ZXJSQVQgJiBpbnRlclN5c3RlbSBmZWF0dXJlCisgKiAJCisgKiAJLgorICoKKyAqIDAyIDE4IDIwMTkgbWlrZS5sdQorICogW01PTFkwMDM2NTAwN10gW0dlbjk3XVtOV1NJTV1bNEddW1RDXzZfMl8yXzVdIFtLQUxdW1VFXSBBc3NlcnQgZmFpbDogcHJvdG9jb2wvbHRlX3NlYy9lbmFzL2VzbS9lc21fZXZlbnRfbW5nLmMgNTk1IC0gTkFTCisgKiAJCisgKiAJW1JlbGF5IFZETSBWb2ljZSBTdGF0dXMgUmVxXS4KKyAqCisgKiAwMiAxNSAyMDE5IG1pa2UubHUKKyAqIFtNT0xZMDAzNjE1NzZdIFRTMjQuMzAxIFIxNS40IEFsaWdtZW50CisgKiAJCisgKiAJVmVyaWZ5IGlucHV0IGFyZ3VtZW50cyB0byBJQ0QgQVBJLi4KKyAqCisgKiAwOCAxNyAyMDE4IG1pa2UubHUKKyAqIFtNT0xZMDAzNDY3MjldIFZNT0xZX0NCciBwYXRjaCBiYWNrIHRvIFZNT0xZIFRSVU5LCisgKiAJCisgKiAJVk1PTFlfQ0JyIHBhdGNoIGJhY2sgdG8gVk1PTFkuCisgKgorICogMDcgMTcgMjAxOCB0b25na3VuLnpoYW5nCisgKiBbTU9MWTAwMzM4MjA1XSBbRUlHRVJdW01UMzk2N11bUkRJVF1bRlRdW1RERF1bQ01DQ11bSFpdW1RETF1bVm9MVEUtRlQtMDAxXVsxLjEuMV0gY2FsbCBrZWVwaW5nIHRpbWUgaXMgZGlmZmVyZW50IGJldHdlZW4gdHdvIERVVFtGT0NVU10KKyAqIAkKKyAqIAlbQUxQUzAzOTU5MTc2XVtFU00gMXMgdGltZXJdIHRvIHByb3RlY3QgdGhlIGRlZGljYXRlZCBiZWFyZXIgcmVsZWFzZSBhZnRlciBjYWxsIGVuZC4KKyAqCisgKiAwNiAwNSAyMDE4IHl1LWhzaW4ubGluCisgKiBbTU9MWTAwMzI1MTAxXSBbVU1PTFlFXVtNVDY3NjFdW01lcmxvdF1bTzFdW01QM11bTVRCRl1bSFFdWzRHTU1dW0xhYl1bRXJpY3Nzb25dW0ZhdGFsIGVycm9yKHRhc2spXSBlcnJfY29kZTE6MHgwMDAwMDMwNSBlcnJfY29kZTI6MHg4ODg4MDJEQSBlcnJfY29kZTM6MHhDQ0NDQ0NDQworICogW2ludGVyZmFjZV0gaXNfZW1lcmdlbmN5X2JlYXJlciwgZW51bSwgYW5kIG1zZyBzdHJ1Y3QgZm9yIGVzbV9yYXRkbV9hY19iYXJfYWxsZXZpYXRlX3JlcTsKKyAqCisgKiAwNSAzMSAyMDE4IHJlbmh1YW5nLmxpdQorICogW01PTFkwMDMzMDA3M10gW0dlbjk1XSBFU00gVVQgVGltZXIgRXhwaXJlIEltbWVkaWF0ZWx5CisgKiBBZGQgTVNHX0lEX0VTTV9VVF9USU1FUl9FWFBJUllfSU1NRURJQVRFTFkKKyAqCisgKiAwNSAxNSAyMDE4IHJlbmh1YW5nLmxpdQorICogW01PTFkwMDMyNjAxNF0gW0dlbjk1XVtNU1BNXSBTVyBjaGFuZ2VzIGNoZWNrIGluIFVNT0xZRQorICogQWRkIEVTTSBNU1BNIGhhbmRsaW5nCisgKgorICogMDIgMTIgMjAxOCB5dS1oc2luLmxpbgorICogW01PTFkwMDMwNzMyOV0gW1VNT0xZRV1bVm9sdW50ZWVyIFBhdGNoXVtJTVNdRHVhbCBJTVMgcmVnaXN0cmF0aW9uIGVuaGFjZW1lbnQKKyAqIG1zZ2lkIGZvciBnZW1pbmlfZmFpbHVyZV9zdGFydCBhbmQgZW5kCisgKgorICogMTIgMDggMjAxNyB5dS1oc2luLmxpbgorICogW01PTFkwMDI5NDg5NF0gW0FUVF1bUm5TXVtMVEUtQlRSLTEtODkwOV0jMzA6IEZBSUwgLSBFTUVSR0VOQ1kgUEROIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBvdmVyIFdMQU4gaXMgcGVyZm9ybWVkLgorICogW0ludGVyZmFjZV1BZGQgRVNNIEVNTSBpbnRlcmZhY2UgTVNHX0lEX0VTTV9FTU1fSU1TX1JFR19TVEFUVVNfVVBEQVRFX0lORC4KKyAqCisgKiAxMSAwOSAyMDE2IHZlcmEueWVoCisgKiBbTU9MWTAwMTg1OTA3XSBbTVQ2MjkzXSBbRU5BU10gVU1PTFkgbWVyZ2UgdG8gVU1PTFlBCisgKiBbRVNNXVtyZS1hcmNoXSBpbnRlcmZhY2UgY2hhbmdlIGZvciBfX1JFTkFNRV9VUkdFX1RPX0VTVF9fLgorICogCTEpIERlZmluZSBuZXcgbXNnIEFUVEFDSF9ORUVERURfR0VUX0VTTV9NU0dfSU5EIHRvIHJlcGxhY2UgVVJHRV9UT19FU1RfSU5EL1VSR0VfVE9fRU1DX0lORAorICogCTIpIFJlcGxhY2UgRVNUX1JFUSBhcyBBVFRBQ0hfTkVFREVEX0dFVF9FU01fTVNHX1JTUAorICoKKyAqIDA5IDI2IDIwMTYgdmVyYS55ZWgKKyAqIFtNT0xZMDAyMDUxMTZdIFs2MjkzXVtFU01dW1RGVExJQl0gbmV3IGZlYXR1cmUvcmUtYXJjaCBpdGVtIHBvcnRpbmcgdG8gVU1PTFlBIHRydW5rCisgKiBbRVNNXVtPQV0gUFMuREVWIHByb3RpbmcgdG8gVU1PTFlBLlRydW5rLgorICogCTEuIHdsYW4gb2ZmbG9hZCBJRUkvaW50ZXJmYWNlL2VudW0vc3RydWN0dXJlCisgKiAJMi4gaUxNIHJlbmFtZSBmb3IgR0VNSU5JX3N1c3BlbmQvcmVzdW1lCisgKiAJMy4gTFRFIFFDSSBkZWZhdWx0IHZhbHVlCisgKgorICogMDYgMjcgMjAxNiB2ZXJhLnllaAorICogW01PTFkwMDE4NTkwN10gW01UNjI5M10gW0VOQVNdIFVNT0xZIG1lcmdlIHRvIFVNT0xZQQorICogW0VTTV1bT0FdIHByb3RpbmcgZnJvbSBVTU9MWSBUcnVuayB1cCB0byBNT0xZMDAxODA3MjkoQ0wyNDEyNjQxKS4KKyAqCisgKiAwOSAyMyAyMDE1IHRjLmNoYW5nCisgKiBbTU9MWTAwMTQxMTMwXSBbRVNNXSBlbGVtZW50IHNpemUgcmVkdWN0aW9uLgorICoKKyAqIDA5IDA4IDIwMTUgdGMuY2hhbmcKKyAqIFtNT0xZMDAxMzk2MTJdIEFUJlQgcmVxdWlyZW1lbnQgLSA8Q0RSLURBTS0yMTIwPiBhbmQgPENEUi1EQU0tMjEzMD4uCisgKgorICogMDggMTggMjAxNSBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTIxMDA3XSBWWl9SRVFfTFRFREFUQVJFVFJZXzc3NDMgdG8gNjI5MQorICogCUludGVncmF0ZWQgQ0wgMTQ2MzMzNCB0byBVTU9MWS4gVnpXIGZpeDogcmVtb3ZlIHVudXNlZCBtZXNzYWdlIFBBTV9FU01fVDM0MDJfU1RBUlRfSU5ELgorICoKKyAqIDA3IDE2IDIwMTUgbWF0dGkubW9pc2FuZW4KKyAqIFtNT0xZMDAxMjEwMDddIFZaX1JFUV9MVEVEQVRBUkVUUllfNzc0MyB0byA2MjkxCisgKiAJVnpXIGZpeDogcmVtb3ZlIHVudXNlZCBtZXNzYWdlIFBBTV9FU01fVDM0MDJfU1RBUlRfSU5ECisgKgorICogMDYgMTggMjAxNSBwYW51LnBlaXNhCisgKiBbTU9MWTAwMTIyNDg3XSBFTU0sIEVTTSAmIFBBTSBtb2R1bGUgVnpXIGZlYXR1cmUgcG9ydGluZyBmcm9tIDYyOTAgdG8gNjI5MQorICogCVNXUkQgcGFydCwgY2hhbmdlIGhhdmUgZGVwZW5kZW5jeSB0byBMVEVfU0VDIHBhcnRzLgorICoKKyAqIDA2IDE3IDIwMTUgbWF0dGkubW9pc2FuZW4KKyAqIFZaX1JFUV9MVEVEQVRBUkVUUllfNzc4MiB0byBVTU9MWV9ERVZfVnhXLCBTV1JEIHBhcnQKKyAqCisgKiAwNiAxNyAyMDE1IHRlZW11LnBhcnRhbmVuCisgKiBbVlpfUkVRX0xURURBVEFSRVRSWV83NzM2XSBGcm9tIE1vbHkgdG8gVU1PTFkgQ2JyIDEvMiAoU1dSRCkuCisgKgorICogMDYgMTQgMjAxNSBtaWthLmthaWtrb25lbgorICogW1ZaX1JFUV9MVEVEQVRBUkVUUllfNzc4OV0gVGhyb3R0bGluZyBzdGF0ZSBvZiBhbiBhdHRhY2ggUEROIC0gUEFNIGltcGxlbWVudGF0aW9uIGFuZCBuZXcgbWVzc2FnZSBJRCdzLgorICoKKyAqIDA2IDEzIDIwMTUgbWlrYS5rYWlra29uZW4KKyAqIFtWWl9SRVFfTFRFREFUQVJFVFJZXzc3ODVdIFByZXBhcmF0aW9uOiBWelcgc3BlY2lmYyB1dGlsaXR5IGZ1bmN0aW9ucyBhbmQgaW50ZXJmYWNlIHVwZGF0ZXMKKyAqCisgKiAwNCAxNiAyMDE1IGNhcmxzb24ubGluCisgKiBbTU9MWTAwMDkxNzY5XSBbR0VNSU5JXSBUcmlnZ2VyIFRBVS9TUiBhZnRlciBHRU1JTkkgcmVzdW1lCisgKiBBZGQgaXRlcmZhY2UgKE9BIERvbWFpbikKKyAqCisgKiAwMiAyMyAyMDE1IGJvYi5jaGlhbmcKKyAqIFtNT0xZMDAwOTY2MDddIFN5bmMgQzJLIENSCisgKiAuCisgKgorICogMDIgMTMgMjAxNSBjYXJsc29uLmxpbgorICogW01PTFkwMDA5MTgyMl0gUkFURE0gcmVvcmdhbml6YXRpb24KKyAqIFJBVERNIG1lcmdlIExUTSwgU00gYW5kIEVTTSByZWxhdGVkIGludGVyZmFjZSBjaGVja2luCisgKgorICogMTEgMTIgMjAxNCBjYXJsc29uLmxpbgorICogW01PTFkwMDA4NDE2NV0gW1VNT0xZXVtSMTBdW1IxMV0gTkFTIGNoZWNrLWluIGZyb20gNjI5MV9ERVYgdG8gVU1PTFkgVHJ1bmsKKyAqIChTeW5jIGZyb20gTVQ2MjkxX0RFViB1cHRvIENMIDg2OTg1NSkKKyAqCisgKiAxMSAxMSAyMDE0IGNhcmxzb24ubGluCisgKiBbTU9MWTAwMDc4MjY0XSBbVU1PTFldW1IxMF1bUjExXSBOQVMgY2hlY2staW4gZnJvbSBDQnIgdG8gNjI5MV9ERVYKKyAqIFN5bmMgTVRDIENCciB0byBDTCA4NjMzNzgKKyAqCisgKiAxMCAyNCAyMDE0IGpvZS5jaGFuZworICogW01PTFkwMDA4MTU3OF0gW0syXVs4NDMwXVtFTUMgSVRdW0Fzc2VydF0gZXNtX3Nlc3Npb25fbW5nLmMgbGluZToyNjAyCisgKiBbRVNNXSBBZGQgbXNnaWQgZm9yIGVtZXJnZW5jeSBjYWxsIHByZWZlcmVuY2Ugc2V0dGluZworICoKKyAqIDEwIDE1IDIwMTQgY2FybHNvbi5saW4KKyAqIFtNT0xZMDAwNzgyNjRdIFtVTU9MWV1bUjEwXVtSMTFdIE5BUyBjaGVjay1pbiBmcm9tIENCciB0byA2MjkxX0RFVgorICogPHNhdmVkIGJ5IFBlcmZvcmNlPgorICoKKyAqIDA5IDEwIDIwMTQgY2FybHNvbi5saW4KKyAqIFtNT0xZMDAwNzgyNjRdIFtVTU9MWV1bUjEwXVtSMTFdIE5BUyBjaGVjay1pbiBmcm9tIENCciB0byA2MjkxX0RFVgorICogPHNhdmVkIGJ5IFBlcmZvcmNlPgorICoKKyAqIDA4IDE1IDIwMTQgcm95LmxpbgorICogW01PTFkwMDA3NTU0N10gWzRHIEdlbWluaV0gR2VtaW5pIFN1c3BlbmQvUmVzdW1lIGludGVyZmFjZSBmb3IgZmFzdCBTSU0xIFVMIGRhdGEgcmVzdW1lCisgKiBbRVNNXSBBZGQgR0VNSU5JIHN1c3BlbmQvcmVzdW1lIHJlbGF0ZWQgbXNnIGlkCisgKgorICogMDYgMDQgMjAxNCBjYXJsc29uLmxpbgorICogW01PTFkwMDA2NzcxMF0gW0VTTV0gU3luYyBsYXRlc3QgRVNNIGNvZGUgdG8gVEs2MjkxX0RFVgorICogPHNhdmVkIGJ5IFBlcmZvcmNlPgorICoKKyAqIDAyIDE3IDIwMTQgcm95LmxpbgorICogW01PTFkwMDA1NTM0MV0gW01QMSBQb3N0IE1QIFBhdGNoXVtNVDYyOTBFMl1bTFRFIGF0dGFjaCBQRE5dIFVFIGRvZXNuJ3QgcGVyZm9ybSBMVEUgYXR0YWNoIGR1ZSB0byBUQ00gY21kIGNvbmZsaWN0CisgKiBBZGQgRVZBTF9FU01fRVBTX0FUVEFDSF9ORUVERURfUkVKX1JTUCBtc2cgaWQuCisgKgorICogMDEgMjEgMjAxNCB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIFtNT0xZMDAwNTQ0NzVdIFNHTFRFIG9wdGlvbiByZW5hbWUKKyAqIC4KKyAqCisgKiAwMSAxMyAyMDE0IGpvZS5jaGFuZworICogW01PTFkwMDA1MzQyM10gW01UNjI5MF9WT0xURV0gVm9MVEUgZGV2ZWxvcG1lbnQgbWVyZ2UgYmFjayB0byBNT0xZCisgKiBbRVNNXSBNU0dJRCBjaGVjay1pbgorICoKKyAqIDAxIDEzIDIwMTQgYWxsZW4ua2VoCisgKiBbTU9MWTAwMDUzMzI4XSBbTVQ2MjkwRTJdW1ZvTFRFXSBWb0xURSBkZXZlbG9wbWVudCBtZXJnZSBiYWNrIHRvIFRSVU5LLgorICogCUFkZCBtZXNzYWdlIGlkcyAmIFNBUCBpZHMKKyAqCisgKiAxMCAxOCAyMDEzIGpvZS5jaGFuZworICogW01PTFkwMDA0MTU5NV0gW01UNjI5MEUxXVtNTURTX0RDXSBNTURDIGZlYXR1cmUgcGF0Y2ggYmFjayB0byBNT0xZIHRydW5rCisgKiBbRVNNXSBNZXJnZSBmcm9tIE1NREMgcHJlLWJ1aWxkIENCcgorICoKKyAqIDEwIDE2IDIwMTMgam9lLmNoYW5nCisgKiBbTU9MWTAwMDQxMjgwXSBbTVQ2MjkwRTFdW01NRFNfRENdWzgyTFRFdjFdW0wrR10gZXNtIGFzc2VydDogZXNtX3Nlc3Npb25fbW5nLmMgNDYwCisgKiBDaGVjayBpbiBtaXNzaW5nIHBhdGNoIGZvciBlc21fbXNnaWQuaAorICoKKyAqIDA3IDI0IDIwMTMgam9lLmNoYW5nCisgKiBbTU9MWTAwMDMxMDIwXSBbTU1EU19EQ10gTWVyZ2UgTU1EQyBpbnRlcmZhY2UgdG8gTU9MWQorICogY2hlY2sgaW4gZXNtX21zZ2lkLmgKKyAqCisgKiAwNiAwNiAyMDEzIGNoZXdlbi53dQorICogW01PTFkwMDAyNTI2Nl0gRVNNIEVNIHN1cHBvcnQKKyAqIEVTTSBFTSBEZXZlbG9wbWVudC4KKyAqCisgKiAxMSAwNyAyMDEyIHJveS5saW4KKyAqIFtNT0xZMDAwMDUzMjJdIFRBVEFLQSBtZXJnZSB0byBNT0xZCisgKiBBZGQgRVNNIHJlbGF0ZWQgaW50ZXJmYWNlKG1zZ2lkLCBzdHJ1Y3QsIGVudW0pLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0VTTV9TQVBfSAorI2RlZmluZSBfRVNNX1NBUF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FU01fQ09ERV9CRUdJTiApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFU00gKEVWQUwgdG8gRVNNKQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvLyBBbGwgRVZBTCBNU0dfSUQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIEVTTQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFU00gKEw0QyB0byBFU00pCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FU01fTDRDMkVTTV9CRUdJTiwKK01TR19JRF9MNENfRVNNX1ZETV9JTVNfVk9JQ0VfU1RBVFVTX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRVNNIChFVENNIHRvIEVTTSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VTTV9UQ00yRVNNX0JFR0lOLAorTVNHX0lEX0VTTVJFR19QRE5fQ09OTl9FU1RfUkVRLAorTVNHX0lEX0VWQUxfRVNNX1BETl9DT05OX0VTVF9SRVEgPSBNU0dfSURfRVNNUkVHX1BETl9DT05OX0VTVF9SRVEsCitNU0dfSURfRVNNUkVHX0JFQVJFUl9SU0NfQUxMT0NfUkVRLAorTVNHX0lEX0VWQUxfRVNNX0JFQVJFUl9SU0NfQUxMT0NfUkVRID0gTVNHX0lEX0VTTVJFR19CRUFSRVJfUlNDX0FMTE9DX1JFUSwKK01TR19JRF9FU01SRUdfQkVBUkVSX1JTQ19NT0RfUkVRLAorTVNHX0lEX0VWQUxfRVNNX0JFQVJFUl9SU0NfTU9EX1JFUSA9IE1TR19JRF9FU01SRUdfQkVBUkVSX1JTQ19NT0RfUkVRLAorTVNHX0lEX0VTTVJFR19FUFNCX0RFQUNUX1JFUSwKK01TR19JRF9FVkFMX0VTTV9FUFNCX0RFQUNUX1JFUSA9IE1TR19JRF9FU01SRUdfRVBTQl9ERUFDVF9SRVEsCitNU0dfSURfRVNNUkVHX1BETl9DT05OX0VTVF9SU1AsCitNU0dfSURfRVZBTF9FU01fUEROX0NPTk5fRVNUX1JTUCA9IE1TR19JRF9FU01SRUdfUEROX0NPTk5fRVNUX1JTUCwKK01TR19JRF9FU01SRUdfUEROX0NPTk5fVVBEQVRFX1JTUCwKK01TR19JRF9FVkFMX0VTTV9QRE5fQ09OTl9VUERBVEVfUlNQID0gTVNHX0lEX0VTTVJFR19QRE5fQ09OTl9VUERBVEVfUlNQLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFU00gKFBBTSB0byBFU00pCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FU01SRUdfRFVBTF9QUklPUklUWV9DT05GSUdfUkVRLAorTVNHX0lEX1BBTV9FU01fQVZBSUxBQkxFX0FQTl9JTkZPX1JFUSwKK01TR19JRF9QQU1fRVNNX0lBX0FQTl9DSEFOR0VfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFU00gKEVNTSB0byBFU00pCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FU01fRU1NMkVTTV9CRUdJTiwKKy8vWzYyOTMgcmUtYXJjaF0gX19SRU5BTUVfVVJHRV9UT19FU1RfXworLy9NU0dfSURfRVNNX0VNTV9VUkdFX1RPX0VTVF9JTkQsCitNU0dfSURfRVNNX0VNTV9BVFRBQ0hfTkVFREVEX0dFVF9FU01fTVNHX0lORCwKK01TR19JRF9FU01fRU1NX0RFUkVHX0lORCwKK01TR19JRF9FU01fRU1NX0dFVF9FU01fQ0FVU0VfSU5ELAorTVNHX0lEX0VTTV9FTU1fR0VUX0VQU0JfU1RBVFVTX0lORCwKK01TR19JRF9FU01fRU1NX1VQREFURV9FUFNCX1NUQVRVU19JTkQsCitNU0dfSURfRVNNX0VNTV9EQVRBX1NVU1BFTkRfSU5ELAorTVNHX0lEX0VTTV9FTU1fREFUQV9SRVNVTUVfSU5ELAorTVNHX0lEX0VTTV9FTU1fRVBTQkVBUkVSX0RBVEFfSU5ELAorTVNHX0lEX0VTTV9FTU1fREFUQV9JTkQsCitNU0dfSURfRVNNX0VNTV9EQVRBX1NFTkRfSU5ELAorTVNHX0lEX0VTTV9FTU1fREFUQV9DTkYsCitNU0dfSURfRVNNX0VNTV9DT05OX1JFTEVBU0VfSU5ELAorTVNHX0lEX0VTTV9FTU1fUkVFU1RfUkVKLAorTVNHX0lEX0VTTV9FTU1fQUJPUlRfQ05GLAorTVNHX0lEX0VTTV9FTU1fUVVFUllfVUxfREFUQV9TVEFUVVNfSU5ELAorTVNHX0lEX0VTTV9FTU1fR0VNSU5JX1NVU1BFTkRfQU5EX05PX0NFTExfSU5ELAorTVNHX0lEX0VTTV9FTU1fR0VNSU5JX1JFU1VNRV9BTkRfV0FJVF9DRUxMX1RPX1BST0NFRURfSU5ELAorTVNHX0lEX0VTTV9FTU1fQUNfQkFSX0FMTEVWSUFURV9JTkQsCisKKy8vIERlc3RpbmF0aW9uOiBFU00gKEVNTSB0byBFU00pIChGb3IgTU1EQyB1c2UpCisvLyBEZXN0aW5hdGlvbjogRVNNIChFTU0gdG8gRVNNKSAoRm9yIElNUyB1c2UpCitNU0dfSURfRVNNX0VNTV9FTUNfQVRUQUNIX1JFSl9JTkQsCisvL1s2MjkzIHJlLWFyY2hdIF9fUkVOQU1FX1VSR0VfVE9fRVNUX18KKy8vTVNHX0lEX0VTTV9FTU1fVVJHRV9UT19FTUNfRVNUX0lORCwKK01TR19JRF9FU01fRU1NX0VNQ19EQVRBX0ZBSUxfSU5ELAorTVNHX0lEX0VTTV9FTU1fRU5URVJfRU1DX0FUVEFDSF9JTkQsCitNU0dfSURfRVNNX0VNTV9TVE9QX1QzMzk2X0lORCwKKworLyoqKioqKioqKioqKiAoRU1NIC0+IEVTTTogRm9yIFZ6VyB1c2FnZSkgKioqKioqKioqKioqLworTVNHX0lEX0VTTV9FTU1fVDM0MDJfU1RPUF9JTkQsICAvLyBfX1ZaV19fIF9fVlpXXzNfXworTVNHX0lEX0VTTV9FTU1fU1RPUF9QRE5fVEhST1RUX1RJTUVSX0lORCwgLy8gX19WWldfXyBfX1ZaV18xMF9fCitNU0dfSURfRVNNX0VNTV9DRUxMX0lORk9fSU5ELCAgLy8gX19WWldfXyBfX1ZaV180X18KKworLyoqKioqKioqKioqKiAoRU1NIC0+IEVTTTogRm9yIEFUJlQgdXNhZ2UpICoqKioqKioqKioqKi8KK01TR19JRF9FU01fRU1NX1QzNDAyX0NIQU5HRV9JTkQsIC8vIF9fQVRuVF9fCitNU0dfSURfRVNNX0VNTV9JTVNfUkVHX1NUQVRVU19VUERBVEVfSU5ELCAvLyBfX0FUblRfXyBXSUZJIGNhbGxpbmcKKworCitNU0dfSURfRVNNX0VTTV9EQVRBX0NORiwgLy8gX181R19pUkFUX18sIEVxdWl2YWxlbnQgdG8gRVNNX0VNTV9EQVRBX0NORiwgc2VuZCBiYWNrIHRvIEVTTSBpdHNlbGYgd2hlbiByZWNlaXZpbmcgRVNNX0VNTV9EQVRBX0NORihzdWNjZXNzKSBmb3IgYSBFUFNCIGZvciB0aGUgMXN0IHRpbWUuCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVTTSAoTFRNL1JBVERNIHRvIEVTTSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogUkFURE0gLT4gRVNNICovCitNU0dfSURfRVNNX1JBVERNMkVTTV9CRUdJTiwKK01TR19JRF9FU01fTFRNMkVTTV9CRUdJTiA9IE1TR19JRF9FU01fUkFURE0yRVNNX0JFR0lOLAorTVNHX0lEX0VTTV9SQVRETV9JRExFX0xFQVZFX0lORCwKK01TR19JRF9FU01fTFRNX0lETEVfTEVBVkVfSU5EID0gTVNHX0lEX0VTTV9SQVRETV9JRExFX0xFQVZFX0lORCwKK01TR19JRF9FU01fUkFURE1fUVVFUllfVUxfREFUQV9TVEFUVVNfQ05GLAorTVNHX0lEX0VTTV9MVE1fUVVFUllfVUxfREFUQV9TVEFUVVNfQ05GID0gTVNHX0lEX0VTTV9SQVRETV9RVUVSWV9VTF9EQVRBX1NUQVRVU19DTkYsCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRVNNIChTTSB0byBFU00pCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FU01fU00yRVNNX0JFR0lOLAorTVNHX0lEX1NNX0VTTV9JUkFUX0lORk9fVFJBTlNGRVJfUkVRLAorTVNHX0lEX0VTTV9TTV9JUkFUX0lORk9fVFJBTlNGRVJfQ05GLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVTTSAoVkdTTSB0byBFU00pCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFZHU00gLT4gRVNNICovCitNU0dfSURfVkdTTV9FU01fQ09OVEVYVF9UUkFOU0ZFUl9SRVFfTlRGLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVTTSAoRVNNIGludGVybmFsIHVzZSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VTTV9NT0RfR0xPQkFMX1ZBUl9SRVEsCitNU0dfSURfRVNNX1NUQVRVU19SRVBPUlRfSU5ELAorTVNHX0lEX0VTTV9TVEFUVVNfUkVQT1JUX1JTUCwKK01TR19JRF9FU01fU0VUX0VNQ19ET01BSU5fUFJFRkVSRU5DRV9SRVEsCitNU0dfSURfRVNNX1VUX1RJTUVSX0VYUElSWV9JTU1FRElBVEVMWSwKKworTVNHX0lEX0VTTV9VVF9DQUxMX01PRF9BUEksCitNU0dfSURfRVNNX1VUX1NFVF9GQUtFX1NNSUNfQ09OVEVYVCwgLy8gU2V0IGNvbnRleHQgZm9yIGZha2UgU01JQyBBUEkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRVNNIChGb3IgRU0gdXNlKQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK01TR19JRF9FU01fRU5BQkxFX0VNX0lORk9fSU5EX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogTklMIChGb3IgRVNNIFVUIENoZWNraW5nIEdWIHVzZSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitNU0dfSURfRVNNX0VQU0JDX0NIRUNLX0dWLAorCitNU0dfSURfRVNNX1BUX0NIRUNLX0dWLAorCitNU0dfSURfRVNNX0RQQ19DSEVDS19HViwKK01TR19JRF9FU01fRFBDX0NIRUNLX0NFUlRBSU5fRUJJX0RSQl9HViwKKworTVNHX0lEX0VTTV9JTVNfQ0hFQ0tfR1YsCisKK01TR19JRF9FU01fUkFUX0NIRUNLX0dWLAorCitNU0dfSURfRVNNX01JU0NfQ0hFQ0tfR1YsCisKK01TR19JRF9FU01fQUNUSVZBVEVfREVGQVVMVF9FUFNfQkVBUkVSX0NPTlRFWFRfUkVKRUNUX0NIRUNLX0dWLAorTVNHX0lEX0VTTV9BQ1RJVkFURV9ERURJQ0FURURfRVBTX0JFQVJFUl9DT05URVhUX1JFSkVDVF9DSEVDS19HViwKK01TR19JRF9FU01fUEROX0NPTk5FQ1RJVklUWV9SRVFVRVNUX0NIRUNLX0dWLAorTVNHX0lEX0VTTV9QRE5fRElTQ09OTkVDVF9SRVFVRVNUX0NIRUNLX0dWLAorTVNHX0lEX0VTTV9CRUFSRVJfUkVTT1VSQ0VfQUxMT0NBVElPTl9SRVFVRVNUX0NIRUNLX0dWLAorTVNHX0lEX0VTTV9CRUFSRVJfUkVTT1VSQ0VfTU9ESUZJQ0FUSU9OX1JFUVVFU1RfQ0hFQ0tfR1YsCitNU0dfSURfRVNNX0VTTV9JTkZPUk1BVElPTl9SRVNQT05TRV9DSEVDS19HViwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogREhMIChFU00gRUxUIExvZyBEZWJ1ZyBNZXNzYWdlKQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK01TR19JRF9FU01fTE9HX0VTTV9FVkVOVF9FUlJfU1RTLCAvLyBmb3IgbG9nZ2luZyBOVyBBaXIgTWVzc2FnZTogZXNtX2V2ZW50X2Vycl9zdHNfc3RydWN0CitNU0dfSURfRVNNX0xPR19FU01fRVZFTlRfRVNNX01TRywgLy8gZm9yIGxvZ2dpbmcgTlcgQWlyIE1lc3NhZ2U6IGVzbV9ldmVudF9lc21fbXNnX3N0cnVjdAorTVNHX0lEX0VTTV9MT0dfVEZUX0lORk8sCitNU0dfSURfRVNNX0xPR19UQ01FU01fUENPLAorTVNHX0lEX0VTTV9MT0dfSUNEX0VTTV9JTkZPLAorTVNHX0lEX0VTTV9MT0dfNUdfQ09ORklHX09QVElPTl9MSVNULAorTVNHX0lEX0VTTV9MT0dfQVJHU19PRl9TTUlDX0FQSSwgLy8gZm9yIGxvZ2dpbiBpbi9vdXQgYXJncyB0byBTTUlDIEFQSSBjYWxsCitNU0dfSURfRVNNX0xPR19QVUJMSUNfQVBJXzVHNF9QUkVDSEVDSywgLy8gZm9yIGxvZ2dpbmcgdGhlIG91dHB1dCBvZiBlc21fcHVibGljX2FwaV9mb3Jfc21pY181ZzRfcHJlY2hlY2sKK01TR19JRF9FU01fTE9HX0lDRF9FU01fVElNRVJfU1RBUlQsCitNU0dfSURfRVNNX0xPR19JQ0RfRVNNX1RJTUVSX0VYUElSWSwKK01TR19JRF9FU01fTE9HX0lDRF9FU01fRkFJTFVSRV9FVkVOVF9DQVVTRSwKK01TR19JRF9FU01fTE9HX0lDRF9FU01fT1RBX0VWRU5ULAorTVNHX0lEX0VTTV9DT0RFX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9FU01fQ09ERV9UQUlMICkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ldGNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2V0Y19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZTFjODMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ldGNfbXNnaWQuaApAQCAtMCwwICsxLDE1MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGV0Y19tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMVEUgRVRDIChldm9sdmVkIHRlc3QgY29udHJvbCkgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDggMTQgMjAyMCBqZXJyeS1raXJrLnlhbmcKKyAqIFtNT0xZMDA1NDY2NzFdIFtTQ0ldW0NNQ0NdW0Fucml0c3UgSW9EVF1bTVQ2ODc1XVtNYXJnYXV4XVtNQkpdW1BDVF1bU0FdW040MV1bOS4xLjUuMS4zYV01R01NX0RlcmVnaXN0aW9uX3JlcXVlc3SlvKRVPworICogW1IzLk1QXVtTV1JEXSBNU0dfSUQgZm9yIE5TU0FJIGRlbGV0ZSBmdW5jdGlvbi4KKyAqCisgKiAwNiAxMiAyMDE5IGplcnJ5LWtpcmsueWFuZworICogW01PTFkwMDQwODMxMV0gW01UNjI5N11bUENUIElPRFRdW1NBIEZ1bGxTdGFja11bU3RhclBvaW50XVtQQ1QgNy4xLjIuMi4xXSB1bmtub3duIG1lc3NhZ2UKKyAqIAkKKyAqIAlbRVRDXVtWR01NXSBBZGQgRVRDIGhhbmRsaW5nIC0gU1dSRCBwYXJ0LgorICoKKyAqIDA2IDA1IDIwMTkgamVycnkta2lyay55YW5nCisgKiBbTU9MWTAwNDA4MzExXSBbTVQ2Mjk3XVtQQ1QgSU9EVF1bU0EgRnVsbFN0YWNrXVtTdGFyUG9pbnRdW1BDVCA3LjEuMi4yLjFdIHVua25vd24gbWVzc2FnZQorICogCQorICogCVtFVENdW1ZHTU1dIEFkZCBFVEMgaGFuZGxpbmcgLSBTV1JEIHBhcnQuCisgKgorICogMDEgMDcgMjAxOSBlc2tvLm9pa2FyaW5lbgorICogW01PTFkwMDMxMTY4MV0gWzYyOTddW05SUkNdIE1BSU4gbW9kdWxlIGNoYW5nZXMKKyAqIAlOUiBkb21haW4gcGFydCBmb3IgdGVzdCBsb29wIEVUQy1OUlJDIElGIGNoYW5nZXMKKyAqCisgKiAwMyAwOSAyMDE1IHljLmNoZW4KKyAqIFtNT0xZMDAwOTgxNzddIFs2MjkxXSBNRFQgY2hlY2sgaW4gdG8gVU1PTFkgVFJVTksKKyAqCisgKiAxMSAxMCAyMDE0IHljLmNoZW4KKyAqIFtNT0xZMDAwNzQ1MTBdIFtFVENdIG1vZGUgQiBhbmQgbW9kZSBDIHJldmlzZQorICoKKyAqIDAzIDI4IDIwMTQgamluZ2hhbi53YW5nCisgKiBbTU9MWTAwMDYwOTg4XSBbTFBQIENQXSBMUFAgY29kZSBjaGVjay1pbiBmb3IgQS1HTlNTIGFuZCBlQ0lEIGZlYXR1cmUKKyAqIENoZWNrIGluIExQUCBDUCBpbnRlcmZhY2VzICYgY2FwYWJpbGl0eSBmb3IgRU1NIChPQSBkb21haW4pCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfRVRDX01TR0lEX0gKKyNkZWZpbmUgX0VUQ19NU0dJRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FVENfQ09ERV9CRUdJTiApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVEMgKFVQQ00gdG8gRVRDKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VUQ19VUENNX1RFU1RNT0RFX0NORiAgICAgICAgICAgICAgPSBNU0dfSURfRVRDX0NPREVfQkVHSU4sCitNU0dfSURfRVRDX1VQQ01fVEVTVExPT1BfQ05GLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBVUENNIChFVEMgdG8gVVBDTSkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FVENfVVBDTV9URVNUTU9ERV9SRVEsCitNU0dfSURfRVRDX1VQQ01fVEVTVExPT1BfUkVRLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVUQyAoRU1NIHRvIEVUQykgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FVENfRU1NX1RFU1RNT0RFX0NORiwKK01TR19JRF9FVENfRU1NX1RFU1RMT09QX0NORiwKK01TR19JRF9FVENfRU1NX01CTVNfUEFDS0VUX0NPVU5URVJfQ05GLAorTVNHX0lEX0VUQ19FTU1fREFUQV9JTkQsCitNU0dfSURfRVRDX0VNTV9ERVRBQ0hfSU5ELAorTVNHX0lEX0VUQ19FTU1fUkVMRUFTRV9JTkQsCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NIChFVEMgdG8gRU1NKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VUQ19FTU1fVEVTVE1PREVfUkVRLAorTVNHX0lEX0VUQ19FTU1fVEVTVExPT1BfUkVRLAorTVNHX0lEX0VUQ19FTU1fTUJNU19QQUNLRVRfQ09VTlRFUl9SRVEsCitNU0dfSURfRVRDX0VNTV9EQVRBX1JFUSwKK01TR19JRF9FVENfRU1NX05XX1JFU0VUX1VFX1NUT1JFRF9QT1NfSU5GT19JTkQsIC8vIGZvciBMUFAKK01TR19JRF9FVENfRU1NX1VQREFURV9VRV9MT0NBVElPTl9JTkZPUk1BVElPTl9SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVUQyAoVkdNTSB0byBFVEMpIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvL01TR19JRF9FVENfVkdNTV9URVNUTU9ERV9DTkYsCisvL01TR19JRF9FVENfVkdNTV9URVNUTE9PUF9DTkYsCitNU0dfSURfRVRDX1ZHTU1fREFUQV9JTkQsCitNU0dfSURfRVRDX1ZHTU1fREVUQUNIX0lORCwKK01TR19JRF9FVENfVkdNTV9SRUxFQVNFX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRU1NIChFVEMgdG8gVkdNTSkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8vTVNHX0lEX0VUQ19WR01NX1RFU1RNT0RFX1JFUSwKKy8vTVNHX0lEX0VUQ19WR01NX1RFU1RMT09QX1JFUSwKK01TR19JRF9FVENfVkdNTV9EQVRBX1JFUSwKK01TR19JRF9FVENfVkdNTV9OU1NBSV9ERUxFVEVfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVEMgKE5SUkMgdG8gRVRDKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VUQ19OUlJDX1RFU1RMT09QX0NORiwKKworTVNHX0lEX0VUQ19DT0RFX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9FVENfQ09ERV9UQUlMICkKKworI2VuZGlmIApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvZXZhbF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZXZhbF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwNTY1NTkKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ldmFsX21zZ2lkLmgKQEAgLTAsMCArMSwxMDU1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgZXZhbF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMVEUgTkFTIEVWQUwgKEVWTkFTIEFkYXB0YXRpb24gTGF5ZXIpIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDEyIDE2IDIwMjEgcmFoYW10dWxsYS5tdWxsYQorICogW01PTFkwMDc3NDE2MV0gW210MjczNV1bQ1MgZUNhbGxdW05HIGVDYWxsXVtwYXRjaCBiYWNrXSBlY2FsbCBwYXRjaCBiYWNrIGZyb20gTlIxNS5SMy5NRDcwMC5NUC5FQ0FsbC5ERVYKKyAqIE1ENzAwLk1QCisgKgorICogMDMgMTcgMjAyMSBzdy55ZWgKKyAqIFtNT0xZMDA1ODUyOTldIEZUOkxBOk1YOjI6RjpOMTpOMSAtIE1VVCBpcyBub3QgcmVjZWl2aW5nIHRoZSBjb21tYW5kcyB2aWEgT1RBCisgKiAJCisgKiAJTVRfU01TX09WRVJfSU1TX1NUQVRVU19SRVEoaW50ZXJmYWNlKS4KKyAqCisgKiAwMyAxMSAyMDIxIHN3LnllaAorICogW01PTFkwMDU4NTI5OV0gRlQ6TEE6TVg6MjpGOk4xOk4xIC0gTVVUIGlzIG5vdCByZWNlaXZpbmcgdGhlIGNvbW1hbmRzIHZpYSBPVEEKKyAqIAkKKyAqIAlNVF9TTVNfT1ZFUl9JTVNfU1RBVFVTX1JFUShpbnRlcmZhY2UpLgorICoKKyAqIDEwIDIyIDIwMjAgY2hlbmd5dS5jaGVuCisgKiBbTU9MWTAwNTgyMTYxXSBFTU3gRD9ERE0/P2ludGVybmV0IFBETiBmb3IgZ2FyYmFnZSBwYWdpbmcgZmVhdHVyZQorICogCVtPQV0gRU1NIGdhcmJhZ2UgcGFnaW5nCisgKgorICogMTAgMjEgMjAyMCBjaGktbHVuLnd1CisgKiBbTU9MWTAwNTMxNTcxXSBbc2VsZl01MDOxvD8/P6v5P8mspMYKKyAqCisgKiAwOSAxOCAyMDIwIGNoZW5neXUuY2hlbgorICogW01PTFkwMDU3MDI4N10gW0dlbjk3XSBWelcgVF9WelcgYW5kIFRfZXBzX2ZhbGxiYWNrIHRpbWVyIEltcGxlbWVudGF0aW9uCisgKiBbTlIxNS5SMy5NUF1bSW4gVEMxMCBWbGlzdF1bT3V0IG9mIFQ3MDAgVmxpc3RdCisgKgorICogCQorICogCUVXU1AwMDAwMjEzMjY0CisgKgorICogCVJlcG9ydCBETDI1NlFBTSBhbmQgTUlNTyA0eDQgaW5mb3JtYXRpb24gdG8gdXBwZXIgbGF5ZXIgZm9yIGljb24gZGlzcGxheQorICoKKyAqIDAxIDE1IDIwMjEgc3cueWVoCisgKiBbTU9MWTAwNTg1Mjk5XSBGVDpMQTpNWDoyOkY6TjE6TjEgLSBNVVQgaXMgbm90IHJlY2VpdmluZyB0aGUgY29tbWFuZHMgdmlhIE9UQQorICogCQorICogCU1UX1NNU19PVkVSX0lNU19TVEFUVVNfUkVRKGludGVyZmFjZSkgZm9yIFBSRUNIRUNLSU5ERVYKKyAqCisgKiAxMCAyMiAyMDIwIGNoZW5neXUuY2hlbgorICogW01PTFkwMDU4MjE2MV0gRU1N4EQ/RERNPz9pbnRlcm5ldCBQRE4gZm9yIGdhcmJhZ2UgcGFnaW5nIGZlYXR1cmUKKyAqIFtPQV0gRU1NIEdhcmJhZ2UgUGFnaW5nCisgKgorICogMDcgMzAgMjAyMCBjaGVuZ3l1LmNoZW4KKyAqIFtNT0xZMDA1NDU1MDJdIFtNVDY4NTNdW01vdXRvbl1bTVA2XVtSM11bUTBdW1NRQ11bQ2hpbmFdW1NoYW5naGFpXVtDVSBGVF1bTlNBXVtNRFNUXVtTV0lGVF1tdGtyaWxkOkFUIGNvbW1hbmQgcGVuZGluZyB0b28gbG9uZy4gYXNzZXJ0ISEhIEFUIGNtZDogRVBTQ09ORklHCisgKiBbT0FdW0VNTV0gSGFuZGxlIHBlbmRpbmcgZXZlbnQgYXMgTldTRUwgZGlzY2FyZCB0aGUgcmVjZWliZWQgY2VsbCBpbmZvIGZyb20gRU1NCisgKgorICogMDUgMTkgMjAyMCBjaGVuZ3l1LmNoZW4KKyAqIFtNT0xZMDA1MjQyMTZdIFtHZW45N11bVlpXXVtFMkVdIENvZGUgc3luYyByZXF1ZXN0IGZyb20gR2VuOTMgdG8gR2VuOTcKKyAqIFtPQV1bU0lQQ0kgQ0JyXVtSMy5NUF0gRUNCTSByZS1hcmNoIG9uIEdlbjk3CisgKgorICogMDUgMDcgMjAyMCBzdGFubGV5LnN1CisgKiBbTU9MWTAwNTExMTk5XSAoVk1PTFkpW0EyMSBOQV1bTVRLXSBQbGVhc2UgaW1wbGVtZW50IHRoZSBmZWF0dXJlIGZvciBJUENfTkVUX05FVFdPUktfU0NBTgorICogW0NPREUgU1lOQ11JUENfTkVUX05FVFdPUktfU0NBTiAoU1dSRCwgTlIxNS5SMy5NUCkKKyAqCisgKiAwMyAxNiAyMDIwIG1pbmcuc2hlbgorICogW01PTFkwMDUwNDE0Nl0gWzVHLUFdWzVHIE1vZGVtt3NmZWF0dXJlXcmspMY1R7G1pEqxsajuCisgKiAJCisgKiAJLSBDRUwKKyAqCisgKiAwMiAyNCAyMDIwIHJleC5saQorICogW01PTFkwMDUwMDE2MF0gW29udGltXVtNb3RvXVtNMzkwMS1QXVtidWddW0VLQkFMSS0xOTUxXU9yYW5nZSBTSzpEVVQgZmFsbCBiYWNrcyB0byAzRyB3aGVuIHJlZ2lzdGVyZWQgb250byBWb1dpRkksIGNhbm5vdCByZWNvdmVyIHRvIDRHCisgKiBTeW5jIE1PTFkwMDQzNDkwMgorICoKKyAqIDAyIDA3IDIwMjAgY2hlbmd5dS5jaGVuCisgKiBbTU9MWTAwNDg2ODYwXSAyNzUyOTI0oUehaTE5MTY1oWqhaT+lfrOhP6XOoWqhaT8/pf0/oWqhabLEpFSk6KFqoWmyebJ5pGqnQD+harJ5snmkaqdAP7TlPz+1e6SkoUGlWD+tq7dzP7G1CisgKiBbT0FdW0ZlYXR1cmUgRXh0ZW5zaW9uXSBMb2NhbCByZWxlYXNlIFJSQyBjb25uZWN0aW9uIGJ5IERMIGRhdGEgdHlwZQorICogCTEuIERlbGV0ZSBjb2RlIHJlbGF0ZWQgdG8gU0JQX0VNTV9OT19ETF9EQVRBX1JFTEVBU0VfUEFHSU5HX1NFTUFQSE9SRSAoUmVsZWFzZSBSUkMgY29ubmVjdGlvbiBkaXJlY3RseSBhZnRlciBEUkIgaXMgZXN0YWJsaXNoZWQgYnV0IGhhdmVuJ3QgcmVjZWl2ZWQgYW55IERMIGRhdGEgZm9yIDEwMG1zKQorICogCTIuIEFwcGx5ICJMb2NhbCBSZWxlYXNlIFJSQyBjb25uZWN0aW9uIGJ5IERMIGRhdGEgdHlwZSIgdG8gTVNQTV9FTU1fVEFVX0RSQgorICogCTMuIENvbXBpbGUgc29tZSBkdXBsaWNhdGUgY29kZSwgbWVyZ2UgdGhlbSBpbnRvICBhIGNvbW1vbiBmdW5jdGlvbgorICogCTQuIFJlbmFtZSB0aGUgb3JpZ2luYWwgc3RydWN0dXJlIG9mIHRoZSBmZWF0dXJlIChMb2NhbCByZWxlYXNlIFJSQyBjb25uZWN0aW9uIGJ5IERMIGRhdGEgdHlwZSksIG1ha2UgaXQgYSBjb21tb24gZnVuY3Rpb24gdG8gcmVxdWVzdCBVUENNIHdoZW5ldmVyIERSQiBpcyBlc3RhYmxpc2hlZCBhbmQgdGhlIGNvbm5lY3Rpb24gc2hvdWxkIGJlIHJlbGVhc2VkIEFTQVAKKyAqIAk1LiBEdWUgdG8gVkMgZ3VhcmQgdGltZXIgaXMgc2V0IGFzIDE1IHNlY29uZHMgaW4gR2VuOTcsIHNraXAgYWRkaXRpb25hbCBjaGVjayBkZXNpZ25lZCBmb3IgdGhlIGNhc2UgcmVnYXJkaW5nIFZDIGd1YXJkIHRpbWVyIGFzIDNzCisgKgorICogMDEgMjAgMjAyMCBjaGVuZ3l1LmNoZW4KKyAqIFtNT0xZMDA0NzQ2MjNdIFtWTU9MWV1bSHVhd2VpXVtNJkpdW01UNjc2NS9NVDY3NjFdP6RfpUQ/pFc/qVKlT0FUK0VBQ01Uqro/rmm73ahECisgKiBbSHVhd2VpIFBhdGNoIHRvIFZNT0xZXVtPQV0gQUxQUzA0MjIzNjk2CisgKgorICogMTIgMDYgMjAxOSBjaHVuLXl1LmNoaWVuCisgKiBbTU9MWTAwNDY0MjIyXSBPU1REIGZ1bmN0aW9uIGxvY2F0aW9uIG9mIGNhbGxlZSBpbiBMNEIgZml4ZWQKKyAqIAkKKyAqIAlbQ29kZSBTeW5jXVtBVCtFQ0FDT01CXSBjb21wbGV0ZSB0aGUgZGVzaWduIGZyb20gTDQgdG8gRVJSQyAtIGludGVyZmFjZQorICoKKyAqIDEyIDA1IDIwMTkgeW91cnUuY2hlbgorICogW01PTFkwMDQ2MjY0Nl0gW0dlbjk3XVtDb2RlIFN5bmNdIExHIGNvZGUgc3luYyBmcm9tIFZNT0xZLjEwMDEuREVWIHRvIFZNT0xZLlRSVU5LCisgKiBbT0FdZml4IGJ1aWxkIGVycm9yCisgKgorICogMTIgMDUgMjAxOSB5b3VydS5jaGVuCisgKiBbTU9MWTAwNDYyNjQ2XSBbR2VuOTddW0NvZGUgU3luY10gTEcgY29kZSBzeW5jIGZyb20gVk1PTFkuMTAwMS5ERVYgdG8gVk1PTFkuVFJVTksKKyAqIFtPQV1wb3J0aW5nIENMIDg0NzM1NzEgOltNT0xZMDA0MTQ1ODFdIFtFTU0gcGFydF1bR0FUSU5HXVtNVDY3NzFdW1N5bHZpYV1bUDBdW1IzXVtJT1RdW0phcGFuXVtLRERJXVtWb1dpRmldW1ByZS1UZXN0XVtTVC0yMi4yXSBVRSBzaGFsbCBub3QgZG8gSU5JVElBTCBBVFRBQ0ggb2YgSU1TIG9uIExURSB3aGlsZSBJTVMgcmVnaXN0ZXJlZCBvbiBXaUZpCisgKgorICogMTIgMDUgMjAxOSBjaGVuZ3l1LmNoZW4KKyAqIFtNT0xZMDA0NDY4NjFdIFtHZW45N11bQ29kZSBTeW5jXSBbQjE5MDQxNC04MTldpP2qzD/Eo7TlPz+1e6VkP6FBykk/qbU/NDUwICg/sWClWD+hQanOP6TppmimuM5gPykgQWNjb3JkaW5nIHRvIGRhdGEgdHlwZSB0byByZWxlYXNlIEhQUyBmb3IgcGFnaW5nCisgKgorICogMTIgMDMgMjAxOSBjaGVuZ3l1LmNoZW4KKyAqIFtNT0xZMDA0NTY2MDBdIFtHZW45N10gTlIgTWFwIEZlYXR1cmUKKyAqIFtFTU1dW09BXSBQTE1OX1NFQVJDSF9JTkQgbWVzc2FnZSByb3V0aW5nIHJlLWFyY2gKKyAqCisgKiAwOSAwNiAyMDE5IGNoZW5neXUuY2hlbgorICogW01PTFkwMDQzODQyN10gW0dlbjk3XVtVU19ERVZdW1RNT11bMjAxOVEyXSBUTU9VU18yMDE5UTJfR0lELU1UUlJFUS0yNDU5MDMKKyAqIFtPQV1bVE1PXSA4MDAwNjY1OSwgODAwNjUzNywgOTEyNzA0NAorICoKKyAqIDA3IDI5IDIwMTkgY2h1bi15dS5jaGllbgorICogW01PTFkwMDQyNDU5MV0gW0NvZGUgU3luY11bSU5URVJGQUNFXVtVU19ERVZdW1RNT11bMjAxOVEyXSBUTU9VU18yMDE5UTJfR0lELU1UUlJFUS0yNDU5MDMKKyAqCisgKiAwNyAyNSAyMDE5IHlvdXJ1LmNoZW4KKyAqIFtNT0xZMDA0MjMyMDBdIFtWTU9MWV1bRDIvTDQvTkFTXSBHZW45My9HZW45NSBDUiBzeW5jIHRvIEdlbjk3CisgKiBbT0FdW1ZNT0xZXVtDb2RlU3luY10gSUFBUE46IE1PTFkwMDM3MTY0MShDTDo2OTc3ODU2LCA2OTc3ODU4KQorICogCTg3MzgwNTAsODczNjYzOSw4NzM2Mzk4LDg3Mzc4NjYsODczNjYzNyw4NzM3MDk5LDg3MzY1NTQsODczNjQzNyw4NzM2NzQzLDg3MzY3MTkKKyAqCisgKiAwNyAyNCAyMDE5IG5vcm1hbi5jaGFuZworICogW01PTFkwMDQyNDM5Nl0gW0NPREUgU1lOQ10gP6pBP6RVpVyv08mspMakp7dqykm1prKkCisgKiAuCisgKgorICogMDcgMjQgMjAxOSBrZWl0aC54dQorICogW01PTFkwMDQyMzE5N10gW0dlbjk3XVtIZWFkZXIgUGFydF1SZXN1bWUgZGF0YSBzZXJ2aWNlIGFzYXAgYWZ0ZXIgcGVlciBTSU0gaGFzIHJlY2VpdmVkIE1UIFNNUworICogW01PTFkwMDQyMzE5Nl0gW0dlbjk3XVtJbnRlcmZhY2UgUGFydF1SZXN1bWUgZGF0YSBzZXJ2aWNlIGFzYXAgYWZ0ZXIgcGVlciBTSU0gaGFzIHJlY2VpdmVkIE1UIFNNUworICoKKyAqIDEyIDE0IDIwMTgga2F5LmxpbgorICogW01PTFkwMDM3MTY0MV0gW0dlbjk1XVtSZS1hcmNoXSBJQUFQTiBjaGFuZ2UgZmxvdyAtIGhlYWRlciBwYXJ0CisgKiAJCisgKiAJLkVWQUwgbXNnIGlkCisgKgorICogMDIgMTggMjAxOSBtaWtlLmx1CisgKiBbTU9MWTAwMzY1MDA3XSBbR2VuOTddW05XU0lNXVs0R11bVENfNl8yXzJfNV0gW0tBTF1bVUVdIEFzc2VydCBmYWlsOiBwcm90b2NvbC9sdGVfc2VjL2VuYXMvZXNtL2VzbV9ldmVudF9tbmcuYyA1OTUgLSBOQVMKKyAqIAkKKyAqIAlbUmVsYXkgVkRNIFZvaWNlIFN0YXR1cyBSZXFdLgorICoKKyAqIDEwIDI0IDIwMTggY2hpbnRlLmNoZW4KKyAqIFtNT0xZMDAzNjA1NTddIFtWTU9MWV1bQ09ERV9TWU5DXSBVTU9MWSBjb2RlIHN5bmMgdG8gVk1PTFkKKyAqIC4KKyAqCisgKiAxMCAyNCAyMDE4IGNoaW50ZS5jaGVuCisgKiBbTU9MWTAwMzYwNTU3XSBbVk1PTFldW0NPREVfU1lOQ10gVU1PTFkgY29kZSBzeW5jIHRvIFZNT0xZCisgKiAuCisgKgorICogMDggMTcgMjAxOCBqYW1lcy1jaGktanUuY2hhbmcKKyAqIFtNT0xZMDAzMDYxNDhdIFtOQVNdIHBhbmd1IGdpYW50IENSCisgKiBpbnRlcmZhY2UKKyAqCisgKiAwNiAyMSAyMDE4IGt1YW4taHVhLmxpbgorICogW01PTFkwMDMzMzk1M10gW0dlbjkzXVtNUDNdW1JEIElUXVtWU0lNIDMuMF0gTW9kZW0gRUUgYWZ0ZXIgcnNpbSBlbmFibGVzIChlcnJjX2Nvbm5fbWFpbikKKyAqIAkKKyAqIAlbQUtBIFNJTSBmb3IgTCtMXSBBZGQgbXNnaWQuCisgKgorICogMDYgMjEgMjAxOCBrdWFuLWh1YS5saW4KKyAqIFtNT0xZMDAzMzM5NTNdIFtHZW45M11bTVAzXVtSRCBJVF1bVlNJTSAzLjBdIE1vZGVtIEVFIGFmdGVyIHJzaW0gZW5hYmxlcyAoZXJyY19jb25uX21haW4pCisgKiAJCisgKiAJW0FLQSBTSU0gZm9yIEwrTF0gQWRkIG1zZ2lkLgorICoKKyAqIDA2IDE0IDIwMTggemFueWEucGVuZworICogW01PTFkwMDMzMTkzM10gW0xSMTMuUjBdW1RlbGVwaG9ueSBQUE1dW01lcmxvdF1bVEMxNjNdVDE6IG5ldHdvcmsgcmVnaXN0cmF0aW9uIHRpbWUgaXMgd29yc2UgdGhhbiByZWYgcGhvbmUgYW5kIG5vdCBzdGFibGUKKyAqIAkKKyAqIAkuCisgKgorICogMDYgMTEgMjAxOCBvdHRvLmxpdQorICogW01PTFkwMDMxNjE0N10gW1VNT0xZRV0gUkNNIHBhdGNoIHN5bmMKKyAqIAkKKyAqIAkuCisgKgorICogMDYgMDEgMjAxOCBwcmFzYWQuaHVnYXIKKyAqIFtNT0xZMDAzMzAzMjFdIFtDT0RFIFNZTkNdIFtDVjdBIFNQUl1bUHJvdG9jb2xdIEFQSSBmb3IgY29udHJvbGxpbmcgTFRFIFRERC9GREQgVE05IHNlcGFyYXRlbHkuCisgKiBOZXcgQVQgY29tbWFuZCB0byBlbmFibGUvZGlzYWJsZSB0aGUgVEREL0ZERCBUTTkgc2VwYXJhdGVseS4KKyAqCisgKiAwMyAyOCAyMDE4IGtlbGx5LmxvCisgKiBbTU9MWTAwMzE2NTcxXSBbOTUgZmVhdHVyZV0gbm9uLTNncHAgTlcgcG9saWNpZXMKKyAqIAkKKyAqIAlpbnRlcmZhY2UKKyAqCisgKiAwMSAxNiAyMDE4IGlhbi15dy5jaGVuCisgKiBbTU9MWTAwMzAyMTA5XSBbTVQ2NzYzXVtCaWFuY29dW04xXVtJbmRpYSBGVF1bQ2hlbm5haV1bV1cgRlRdW1JDT01dW1RBVEEgRE9DT01PXVtUQ19NVEtfUDFfNEdfR2VtaW5pXzEzXSBbTVAxLjVdIERVVCBsb25nIFNNUyB0byBzaW0yIGZhaWxzIChjb21tb24gaW50ZXJmYWNlIHBhcnQpCisgKiAgU01TL0VWQUwKKyAqCisgKiAwMSAwNCAyMDE4IHphbnlhLnBlbmcKKyAqIFtNT0xZMDAyOTg4MzBdIFtNVDY3NjNdW1IzXWltcGxlbWVudCBiYWNrb2ZmLXRpbWUgcmVwb3J0IGZvciBUMzM5NiAmIFQzMzQ2CisgKiAJCisgKiAJLgorICoKKyAqIDEyIDExIDIwMTcgbW9ydG9uLmxpbgorICogW01PTFkwMDI5NTA3N10gW0dlbjkzXVtFUlJDXVtSQ01dIExURSBzdXBwb3J0IGJhbmQgYW5kIENBIGNvbWJpbmF0aW9uIGN1c3RvbWl6YXRpb24gcmUtYXJjaAorICogQ29tbW9uIElGIGFuZCBNUlMgcGFydCAoTFIxMkEuUjMuTVApIChOb3QgaW4gVi1MaXN0KQorICoKKyAqIDEyIDAxIDIwMTcgcG8taHVuZy5saW4KKyAqIFtNT0xZMDAyOTIyOTFdIFtMUjEyQS5SMy5NUF0gQ2hhbmdlIElNRUlTViBkdXJpbmcgUkYgT0ZGIHN0YXRlCisgKiByZWxheSBJTUVJU1YgdG8gRU1NL01NCisgKgorICogMTEgMjkgMjAxNyBsdWNpZW4ubGkKKyAqIFtNT0xZMDAyOTAzNjFdIDIwMzYwNCBpPz9paT8/fj8/aT8/T2k/P2ppPz9pPz8/aT8/R2k/P2QxaT8/aT8/PzRHaT8/Qmk/P2QyP2k/P0g0R2k/P24/P2k/P2QyP2k/P3VpPz9uaT8/aT8/aT9BokdpPz9pPz8/P2k/P3tpPz9pPz9bTDRDXVsuc3JjXQorICogW1IzXVtMNENdIEFUK0VNUk8gLSBnYW1pbmcgb3B0aW1pemF0aW9uCisgKgorICogMTEgMjggMjAxNyBjaGllbi1saS5jaG91CisgKiBbTU9MWTAwMjkyMDgyXSBbR2VuOTNdW1RNT10gMkcgZGlzYWJsZSB3aXRoIGVjYyBlbmFibGUKKyAqIER1bW15IGNoZWNrLWluIGZvciBhdXRvLXN5bmMKKyAqCisgKiAxMSAyOCAyMDE3IGNoaWVuLWxpLmNob3UKKyAqIFtNT0xZMDAyOTIwODJdIFtHZW45M11bVE1PXSAyRyBkaXNhYmxlIHdpdGggZWNjIGVuYWJsZQorICogMkcgZGlzYWJsZSAoTldTRUwgaW50ZXJmYWNlIGFuZCBTQlAgcGFydCkKKyAqCisgKiAxMSAyOCAyMDE3IHphbnlhLnBlbmcKKyAqIFtNT0xZMDAyODc5NzFdIFJCIHRlc3QgbW9kZV9FVEMgcGFydAorICogCQorICogCS4KKyAqCisgKiAxMSAyMSAyMDE3IGt1YW4td2VpLmNoZW4KKyAqIFtNT0xZMDAyODk1ODBdIFtMNC1FVkFMIGludGVyZmFjZV0gZXh0ZW5kIEFUK0VJUkVHOi4uLiw8aW1zX3JhdD4gZXh0ZW5kIEFUK0VWSVZTOi4uLiw8cmF0PgorICogW0xSMTJBLlIzLk1QXQorICogCUw0LUVWQUwgbXNnaWQgYW5kIHN0cnVjdHVyZToKKyAqIAlleHRlbmQgQVQrRUlSRUc6Li4uLDxpbXNfcmF0PgorICogCWV4dGVuZCBBVCtFVklWUzouLi4sPHJhdD4KKyAqCisgKiAxMSAxNiAyMDE3IGt1YW4taHVhLmxpbgorICogW01PTFkwMDI4OTk0NV0gW0xSMTJBLlIyLk1QXSBMK0wgTmV3IEZlYXR1cmU6IE9jY3VweSBIUFMgZm9yIElNUyBSRS1SRUcgKEVNTS1Db21tb24gaW50ZXJmYWNlKQorICogCQorICogCUVWQUwvRU1NIG1zZyBpZC4KKyAqCisgKiAxMSAwNiAyMDE3IGhhcnJ5LmNoYW5nCisgKiBbTU9MWTAwMjg3NzYxXSBbQ0RNQS1sZXNzXVtHZW45Ml0gU25pZmYgZmVhdHVyZSBjaGFuZ2UgZm9yIEVSUkNfQ0VMCisgKiAuCisgKgorICogMTEgMDIgMjAxNyBtb3JuaW5nLmxlZQorICogW01PTFkwMDI4NjI4Ml0gW0dlbjkzXVtOZXR3b3JrIFNlYXJjaCtDRE1BLWxlc3MrcGxtbi1sb3NzIE9wdGltaXphdGlvbl0gQ29kZSBtZXJnZSBmcm9tIExSMTIgdG8gTFIxMkEuUjMKKyAqIAkKKyAqIAkuCisgKgorICogMDggMjkgMjAxNyBoYXJyeS5jaGFuZworICogW01PTFkwMDI3NDE2N10gW0NvcHkgTU9MWTAwMjYyMTcxXVtDRE1BLWxlc3NdW0xSMTJdIG1haW4gQ1IKKyAqIE5XU0VMIHBhcnQKKyAqCisgKiAwOCAyNCAyMDE3IGtlbGx5LmxvCisgKiBbTU9MWTAwMjczMzk1XSBbQmlhbmNvXVtOMV1bTVRLIEZUXVtTUkxURV1bQ1QgNk0gQ11bU0hdW1JhbmRvbV1BUE4gcHJvdG9jb2wgY2hhbmdpbmcgaXNzdWUoVFJVTksgJiBSMikKKyAqIAkKKyAqIAlpYV9hcG5fY2hhbmdlIChpbnRlcmZhY2UpIChPQSkKKyAqCisgKiAwOCAxNyAyMDE3IG1vcm5pbmcubGVlCisgKiBbTU9MWTAwMjcxMjI3XSBbVU1PTFlBXSBbUm9zZV1bVmluc29uXVtOMV1UaGUgRUNDIGNhbGwgd2lsbCBjYW4ndCBiZSBkaWFsIG91dCBzdWNjZXNzLig1LzUpCisgKiAJCisgKiAJLgorICoKKyAqIDA3IDAzIDIwMTcgbW9ybmluZy5sZWUKKyAqIFtNT0xZMDAyNjEyMDhdIFtDb3B5IE1PTFkwMDIwMDU5M11NdWx0aXBsZS1QUyBNUDUKKyAqIAkKKyAqIAkuCisgKgorICogMDYgMjcgMjAxNyBtb3JuaW5nLmxlZQorICogW01PTFkwMDI1OTU5OV0gW0NvcHkgTU9MWTAwMTk1MTk2XWNhdXNlICMxOCBmcm9tIEVNTSB0byBjaGFuZ2UgVUUgbW9kZSBmaXJzdAorICogCQorICogCS4KKyAqCisgKiAwNCAyNiAyMDE3IG1vcm5pbmcubGVlCisgKiBbTU9MWTAwMjQ1MTcxXSBbQ29weSBNT0xZMDAyMjQzNDNdVk9MVEVpPz9VaT8/UWk/P3NpPz9pPz8/aT8/aT8/R1NNaT8/Wj9pPz9pPz9FP2k/P0FpPz9pPz8/aT8/XjRHPz9pPz9pPz9IRD8/aT8/QWk/P3U/P2k/P1U/U2k/P2k/PworICogCQorICogCS4KKyAqCisgKiAwNCAwNSAyMDE3IG1vcm5pbmcubGVlCisgKiBbTU9MWTAwMjEwOTg2XSBbNjI5M10gTWVyZ2UgYmFjayBmcm9tIFVNT0xZIHRvIFVNT0xZQQorICogCQorICogCS4KKyAqCisgKiAwNCAwNSAyMDE3IGhvbmcueXUKKyAqIFtNT0xZMDAyMzkzMDhdIFtHZW45M10gTDQgTTMgY2hlY2sgaW4KKyAqIG1lcmdlIEw0Qk5XIGFuZCBMNEJQV1IgTTMKKyAqCisgKiAwNCAwNSAyMDE3IGFsbGVuLmtlaAorICogW01PTFkwMDE5NTc3NV0gW01UNjI5M10gW0VOQVNdIGZlYXR1cmUgJiByZS1hcmNoIGRldmVsb3BtZW50CisgKiAJCisgKiAJLmFkZCBDMksgcmVsYXRlZCBtZXNzYWdlIGlkcworICoKKyAqIDAzIDI3IDIwMTcgYWxsZW4ua2VoCisgKiBbTU9MWTAwMTk1Nzc1XSBbTVQ2MjkzXSBbRU5BU10gZmVhdHVyZSAmIHJlLWFyY2ggZGV2ZWxvcG1lbnQKKyAqIAkKKyAqIAkuYWRkIFItU0lNIG1lc3NhZ2UgaWRzCisgKgorICogMDIgMjEgMjAxNyBrZWxseS5sbworICogW01PTFkwMDIwMzk1M10gW01UNjI5M11bRU1NXSBjaGVjay1pbiBVTU9MWUEKKyAqIAkKKyAqIAlyZW1vdmUgdW51c2VkIGVtbSBtc2cgKE9BIHBhcnQpCisgKgorICogMDIgMTMgMjAxNyBtb3JuaW5nLmxlZQorICogW01PTFkwMDIyODkyNF0gW2NvcHkgTU9MWTAwMjI0NTk2XVtMUjEyXVtDTUNDXUtlZXBpbmcgSU1TIHJlZ2lzdGVyZWQgc3RhdGUgZm9yIE1UIENTRkIKKyAqIAkKKyAqIAkuCisgKgorICogMDIgMDkgMjAxNyBtb3JuaW5nLmxlZQorICogW01PTFkwMDIyODM3NV0gW2NvcHkgTU9MWTAwMjIwMTEzXVs2MjkyXVtHZW1pbmldW0xHK1dHXSBTQlBfQ1NGQl9EVVBMRVhfQ0hHX0ZPUl9MR19NT0RFIC8gU0JQX0RVUExFWF9NT0RFX0NIR19BRlRFUl9DU0ZCIC8gQVQrRVRXTU9ERSAtRVZBTCBwYXJ0CisgKiAJCisgKiAJLgorICoKKyAqIDAxIDA1IDIwMTcgemFueWEucGVuZworICogW01PTFkwMDIwNTA5NF0gW01UNjI5M10gW0VOQVNdIFVNT0xZQS5QUy5ERVYgbWVyZ2UgdG8gVU1PTFlBLlRSVU5LIChbRVZBTElGXSBhZGQgSU1TIFNDTSBJTkZPIENORikKKyAqIAkKKyAqIAkuCisgKgorICogMTEgMTEgMjAxNiBkYW5ueS5rdW8KKyAqIFtNT0xZMDAyMTI5MjJdIE5ldyBGZWF0dXJlIFVMNjRRQU0gc3dpdGNoZXIKKyAqIC4KKyAqCisgKiAxMSAwMyAyMDE2IGRhbm55Lmt1bworICogW01PTFkwMDE5MzMwMF0gUG9ydGluZyBvZiBOVyBCQU5EIEluZm8gZnJvbSBMUjkgdG8gTFIxMSBUQzAxCisgKiAuCisgKgorICogMTEgMDMgMjAxNiBkYW5ueS5rdW8KKyAqIAkKKyAqIAkuCisgKgorICogW01PTFkwMDE1OTgwMV0gW0s3XSBSZXF1ZXN0IHRoZSBVUkMgZm9yIHJlcG9ydGluZyB0aGUgcnJjIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBmYWlsdXJlCisgKiAJCisgKiAJLgorICoKKyAqIDExIDAzIDIwMTYgZGFubnkua3VvCisgKiAuY2hlY2staW4gZm9yIE1PTFkwMDA5MzIwNgorICoKKyAqIDEwIDE4IDIwMTYgYmVuamFtaW4ua3VvCisgKiBbTU9MWTAwMjA1NTkxXSBbNjI5M11bRVZBTF0gZGV2ZWxvcG1lbnQKKyAqIHN5bmMgZm9yIE1PTFkwMDE5Mzg2NS4KKyAqCisgKgorICogMDkgMjYgMjAxNiBqb2UuY2hhbmcKKyAqIFtNT0xZMDAyMDUyNDRdIFs2MjkzXSBQUy5ERVYgbWVyZ2UgYmFjayB0byBVTU9MWUEgdHJ1bmsKKyAqIG1zZ2lkIHBhcnQKKyAqCisgKiAwOSAyNiAyMDE2IHNoLnllaAorICogW01PTFkwMDIwNTA4Ml0gRU1NX1JFRyBtZXJnZSBmcm9tIFVNT0xZQS1QUy1ERVYgdG8gVU1PTFlBCisgKiAuCisgKgorICogMDkgMjYgMjAxNiBhbGxlbi5rZWgKKyAqIFtNT0xZMDAyMDQ5NjddIFtNVDYyOTNdIFtFTkFTXSBVTU9MWUEuUFMuREVWIG1lcmdlIHRvIFVNT0xZQS5UUlVOSworICogLlBTLkRFViBtZXJnZSBPQSBkb21haW4KKyAqCisgKiAwNyAyNyAyMDE2IGFsbGVuLmtlaAorICogW01PTFkwMDE5MzYxN10gW01UNjI5M10gW0VOQVNdIENCciBtZXJnZSB0byBVTU9MWUEuUFMuREVWCisgKiAuQ0JyIG1lcmdlIHRvIFVNT0xZQS5QUy5ERVYgKE9BIGRvbWFpbikKKyAqIDA4IDIyIDIwMTYgc2hpaC1jaGUuY2hvdQorICogW01PTFkwMDE4Nzk1M10gQVQrRUNNU0lEPTxuPiB0byBjbGVhciBHVVRJL1AtVE1TSQorICogLgorICoKKyAqIDA3IDI2IDIwMTYgam9lLmNoYW5nCisgKiBbTU9MWTAwMTkzNDI5XSBbVU1PTFlBXSA5MyBDQnIgcGF0Y2ggYmFjayB0byBQUy5ERVYKKyAqIE1lcmdlIEVWQUwgYW5kIEVNTSBtc2dpZAorICoKKyAqIDA3IDI1IDIwMTYgc2gueWVoCisgKiBbTU9MWTAwMTkxODY0XSBbVU1PTEEgUFMgREVWXSBFTU1fUkVHIG1lcmdlIGZyb20gVU1PTFkKKyAqIC5tZXJnZSBmcm9tIFBTRDUgQ0JyIHRvIERFViwgZW1tIGFuZCBldmFsIG1lc3NhZ2UgaWQsIGFkZCB3YWl0X2VtY19wZG5fc3RhdHVzIGluIHVwZGF0ZV9lcGxtbl9zdHJ1Y3QKKyAqCisgKiAwNyAxOSAyMDE2IHNoLnllaAorICogW01PTFkwMDE5MTg2NF0gW1VNT0xBIFBTIERFVl0gRU1NX1JFRyBtZXJnZSBmcm9tIFVNT0xZCisgKiAuc3luYyBNT0xZMTgzNTU5IENMMjUyNjgzMiwgdXAgdG8gIzUzIHZlcnNpb24gYnkgVU1PTFkKKyAqCisgKiAwNiAyNCAyMDE2IHphbnlhLnBlbmcKKyAqIFtNT0xZMDAxODU5MDddIFtNVDYyOTNdIFtFTkFTXSBVTU9MWSBtZXJnZSB0byBVTU9MWUEKKyAqIAkKKyAqIAkuCisgKgorICogMDYgMTQgMjAxNiBpdnkud2FuZworICogW01PTFkwMDE2NTIzNl0gW1BIMV9WWlddW0ZMRF1bUmFkaW9fUHJvdG9jb2xdIFZaX1JFUV9MVEVEQVRBXzM3ODIxIEF1dG9ub21vdXMgR2FwcworICogLgorICoKKyAqIDA2IDA4IDIwMTYgYmFydC5saWFuZworICogW01PTFkwMDE2OTI0MF0gW1BIMV9WWlddW1JhZGlvX1Byb3RvY29sXVtVTlNPTF0gTFRFIE5FVFdPUksgSU5GT1JNQVRJT04KKyAqCisgKiAwNSAyNyAyMDE2IGplcnJ5LXloLmNoYW5nCisgKiBbTU9MWTAwMTcwNzk5XSBbUEgxX1ZaV11bam9pbnQtY2FtcF1bUmFkaW9fUHJvdG9jb2xdW2hWb0xURV0gVEMgMi4yLjkuMyBmYWlsOiBhdCBzdGVwMTMsIFRBVSB0aW1lb3V0CisgKiBPQSBkb21haW4gSW50ZXJmYWNlIGNoZWNrIGluCisgKgorICogMDUgMTcgMjAxNiBtYXJrLm5nCisgKiBbTU9MWTAwMTc5MDIzXSBBbGxvd2FibGUgUmVnaXN0cmF0aW9uIEFyZWEgTGlzdCBGZWF0dXJlIFYyIENoZWNrIEluCisgKiBBUkFMIDIuMCBpbnRlcmZhY2UKKyAqCisgKiAwNCAyNiAyMDE2IHNoZXJyeS5rdW8KKyAqIFtNT0xZMDAxNzU5MjVdIHN5bmMgTFIxMSB0byBVTU9MWQorICogLgorICoKKyAqIDA0IDI2IDIwMTYgdGltLmh1YW5nCisgKiBbTU9MWTAwMTY3NDUwXSBbUEgxX1ZaV11bam9pbnQtY2FtcF1bUmFkaW9dW2hWb0xURV1bQmxvY2tpbmddIFRDIDIuMS4xMC4yIC0gQXQgc3RlcDUsIGluIHRoZSBUQVUgUmVxdWVzdCBtZXNzYWdlLCB0aGVyZSBpcyBub3QgIlVFIHJhZGlvIGNhcGFiaWxpdHkgaW5mb3JtYXRpb24gdXBkYXRlIG5lZWRlZCIgZmllbGQKKyAqIC4KKyAqCisgKiAwNCAyNiAyMDE2IG1pbmcuc2hlbgorICogW01PTFkwMDE1MDIxMV0gW1Z6V11bVlpfUkVRX0xURU1NT18zODY5NV0gTFRFIFNjYW5uaW5nIEVuaGFuY2VtZW50CisgKiAuCisgKgorICogMDMgMDkgMjAxNiBzYWJyaW5hLmhzdQorICogW01PTFkwMDE1NTgwMV0gW0NBXSBFbmFibGUvRGlzYWJsZSBDQSBieSBBVCtFQ0FTVyAoRVJSQykKKyAqIG1lcmdlIFVNT0xZIHZlcnNpb24KKyAqCisgKiAwMyAwMyAyMDE2IGplcnJ5LXloLmNoYW5nCisgKiBbRU1NXSBtZXJnZSBNT0xZMDAxNTI3NTcgYW5kIE1PTFkwMDE1Mjc2NCAobm9uLUxURSkKKyAqCisgKiAwMiAxNSAyMDE2IGt1bi1saW4ud3UKKyAqIFtNT0xZMDAxNDQ5MDFdIFtFUlJDXSBiQ1NGQiBmZWF0dXJlIGNoZWNrLWluIGZvciBUTU8tVVMKKyAqCisgKiAwMSAyNSAyMDE2IHljLmNoZW4KKyAqIFtNT0xZMDAxNDYzMjddIFtWelddIGhWb0xURSBpbXBsZW1lbnRhdGlvbiAobm9uLUxURSkKKyAqCisgKiAwMSAxMyAyMDE2IGhvbmcueXUKKyAqIFtNT0xZMDAxNTYyMjldIFtNVDYyOTJdIENvZGUgc3luYyBmcm9tIE1UNjI5MTogQXVEUlgKKyAqIFtFVkFMXSBwYXRjaCBNT0xZMDAwOTc3NTAgdG8gVU1PTFkKKyAqCisgKiAxMiAxMSAyMDE1IG1pa2Eua2Fpa2tvbmVuCisgKiBbTU9MWTAwMTQ1NDUxXSBbUjEyXVtDUjE5NjJdIEhhbmRsaW5nIG9mIFNDTSBhdCBOQVMgbGF5ZXIgLSBFVkFMIC0gRU1NIGludGVyZmFjZSBNU0cgSURzCisgKgorICogMTEgMjMgMjAxNSBqZXJyeS15aC5jaGFuZworICogW01PTFkwMDE1MDA5Nl0gW0phZGUtTV1bU3BpcmVudF1bSVJdVEMtTFRFSVJMQUItRENNUC0wOTAwMyBGQUlMCisgKiBBZGQgaGFuZGxpbmcgZm9yIEdMT0JBTF9NT0RFX0NIQU5HRV9TVEFSVF9SRVEoaW50ZXJmYWNlIGNoZWNrIGluIE9BIGRvbWFpbikKKyAqCisgKiAxMSAxNyAyMDE1IHljLmNoZW4KKyAqIFtNT0xZMDAxNDk0NDVdIFtVTU9MWV0gU3luYyBEb0NvTW8gTU9MWSBDUiB0byByZWxhdGVkIGJyYW5jaCAoTU9MWTAwMTIzNjc3KShub24tTFRFKQorICoKKyAqIDEwIDI2IDIwMTUgeWluZ2Z1aS5odW5nCisgKiBbTU9MWTAwMTQxMTM0XSBbQ29weSBDUl1bUG9ydGluZyB0byBMUjExXVtUTU9dW0lNU10gYkNTRkIgLSBMNCBFUkxRLCBFUkxNIGNoYW5nZXMgKHdpdGhvdXQgc3dpdGNoKQorICogCQorICogCS4KKyAqCisgKiAxMCAxOSAyMDE1IHljLmNoZW4KKyAqIFtNT0xZMDAxNDU3MDhdIFtKYWRlLUxdW1NSTFRFXVtDVCBPTSA2TV1bTFRFIElPVF1bRlRdW1NIXVtBTFVdW1JhbmRvbV0/WXxiM0dVQVg/P1BTTUNTPz8KKyAqIAkuCisgKgorICogMTAgMDggMjAxNSBhbGxlbi5oc3UKKyAqIFtNT0xZMDAxMzM0NDBdIFtFUlJDXVtSQ01dQ29uZmlndXJhYmxlIENBIGNvbWJpbmF0aW9uCisgKiBhZGQgTFRFIENBIGJhbmQgc2V0dGluZ3MgZmVhdHVyZSByZWxhdGVkIGludGVyZmFjZS4KKyAqCisgKiAxMCAwNyAyMDE1IHljLmNoZW4KKyAqIFtNT0xZMDAxNDE0MTddIFtKYWRlLUxdW1NSTFRFXVtMVEUgSU9UXVtGVF1bU0hdW1pURV1bcmFuZG9tXW1IWj8gRUUsMCwwLDk5LC9kYXRhL2NvcmUvLDEsbW9kZW0sbWQxCisgKiAJLgorICoKKyAqIDEwIDA3IDIwMTUgZG91Zy5zaGloCisgKiBbTU9MWTAwMTQ0MTgxXSBbRVJSQ11bU1BWXSBMUjExIGJ1aWxkIHdhcm5pbmcgc2NhbiBhbmQgZml4IChhbHNvIGxlZ2FjeSBDMksgY29kZSBjbGVhbnVwKQorICogW0NFTF0gcGhhc2Ugb3V0IGVhcmx5IE9PUyBpbmQgZm9yIFNWTFRFIChPQSBkb21haW4pLgorICoKKyAqIDEwIDA1IDIwMTUgcGFudS5wZWlzYQorICogW01PTFkwMDE0MjY1N10gW1Z6V11bVlpfUkVRX2U5MTFfMzAyMDNdIFJBTCBhbmQgTVJVIGNlbGwgYmFuZCBpbmZvIHVwZGF0ZSBpbXBsZW1lbnRhdGlvbiB0byA2MjkxCisgKiAJSW50ZWdyYXRlZCBDTHMgMTY5MDM5NyBhbmQgMTY5MDQyOCBmcm9tIExSMTFfVnpXLgorICoKKyAqIDEwIDAyIDIwMTUgcGFudS5wZWlzYQorICogW01PTFkwMDE0MTIyNF0gW1Z6V11bVlpfUkVRX0xURURBVEFfNjgwMF0gVUUgc3BlY2lmaWMgRFJYIHNldHRpbmcKKyAqIAlJbnRlZ3JhdGVkIENMIDE2NjkwMzMgZnJvbSBMUjExX1Z6VyBDQnIuCisgKgorICogMTAgMDIgMjAxNSBob25nLnl1CisgKiBbTU9MWTAwMTM5NDgyXSBbVnpXXSBbVlpfUkVRX0xURURBVEFfNjgwMF0gRHluYW1pYyBVRSBzcGVjaWZpYyBEUlggc2V0dGluZworICogW1Z6V10gVUUgc3BlY2lmaWMgRFJYCisgKgorICogMDkgMzAgMjAxNSBtYXJrby5ha3NlbGluCisgKiBbTU9MWTAwMTQyNjU3XVtWelddW1ZaX1JFUV9lOTExXzMwMjAzXSBBZGQgbmV3IG1lc3NhZ2UgSURzIGZvciBSQUwgYW5kIE1SVSBjZWxsIGJhbmQgaW5mbyB1cGRhdGluZyBpbnRvIEVNTSAtIEVWQUwgLSBOV1NFTCBpbnRlcmZhY2VzLgorICogCS4KKyAqCisgKiAwOSAyNSAyMDE1IGphbWVzLWNoaS1qdS5jaGFuZworICogW01PTFkwMDE0MzE1Nl0gW01UNjc1NV1bRTFdW0dDRl1bQW5pdGVdWzNHXVtGRERdW0NTR11bNi4zLjEuMV0gVGVzdCBGYWlsCisgKiAuCisgKgorICogMDkgMjIgMjAxNSB0ZWVtdS5wYXJ0YW5lbgorICogW1ZaX1JFUV9MVEVEQVRBXzY4MDBdIFVFIFNwZWNpZmljIERSWCBzZXR0aW5nLiBTV1JEIHBhcnQuCisgKgorICogMDggMjcgMjAxNSBib2IuY2hpYW5nCisgKiBbTU9MWTAwMTM4MjgxXSBbRU1NXSBTeW5jIE1PTFkgQ1IgdG8gMjAxNS8wOC8yMAorICogOiBDT05OIC0gTU9MWTAwMTI5ODAzCisgKgorICogMDggMjcgMjAxNSBib2IuY2hpYW5nCisgKiBbTU9MWTAwMTM5Mzg1XSBbSkFERV1bU1JMVEVdW2luSG91c2VJVF1bTGFiIFNwaXJlbnRdW1RDLUxURUlSTEFCLVNDTVAtMDMwMDZdIE1vaWJsZSBmYWlsZWQgdG8gcmVnaXN0ZXJlZCBpbiBnc20gbmV0d29yayEKKyAqIDogUkVHL0VWQUwgLSBpbmZvcm0gTldTRUwgd2hlbiBTSU0gcmVtb3ZhbCBoYW5kbGluZyBpcyBjb21wbGV0ZWQKKyAqCisgKiAwNyAyMCAyMDE1IGFsbGVuLmtlaAorICogW01PTFkwMDEyOTgwM10gW0RlbmFsaV1bQVRUXVtWb0xURV1bQW5yaXRzdSBDQVRdIFRDIExURS1CVFItMS04MjIwICgtODI0OCkgT24gYSB2b2ljZSBjYWxsIHRoZSBEZXRhY2ggcHJvY2VkdXJlIGFmdGVyIHRoZSBJU0lNIHJlZnJlc2ggc2hvdWxkIG9ubHkgYmUgc3RhcnRlZCB3aGVuIHJldHVybmVkIHRvIElkbGUgc3RhdGUKKyAqIC5hZGQgTVNHX0lEX0VWQUxfRU1NX0NPTk5FQ1RJT05fSU5GT19JTkQKKyAqCisgKiAwNyAxOCAyMDE1IGNvb3Blci5saW4KKyAqIFtNT0xZMDAwOTA1MzJdIFtNVDYyOTFdIENoYW5nZSBGZWF0dXJlIENoZWNrLWluCisgKiBVcGxpbmsgRGF0YSBTaGFwaW5nCisgKgorICogMDcgMTcgMjAxNSBzaGloLWNoZS5jaG91CisgKiBbTU9MWTAwMTI5NzIwXSBbVnpXXVtNZXJnZSB0byBVTU9MWV0gUG9ydGluZyBSQUMgcGFydCBmcm9tIE1PTFkgdG8gVU1PTFkKKyAqIC4KKyAqCisgKiAwNyAwMyAyMDE1IHRpbS5odWFuZworICogW01PTFkwMDEyNTg0NV0gW0pBREVdIFNSTFRFIHJlbGF0ZWQgZGVzaWduCisgKiAuCisgKgorICogMDYgMTggMjAxNSBqZXJyeS15aC5jaGFuZworICogW01PTFkwMDEyMjA0OF0gWzY3OTVdIFJlcXVlc3QgbmV3IGZlYXR1cmUgdG8gaW1wcm92ZSByZWdpc3RyYXRpb24gdGltZSBvZiByb2FtaW5nIGNhc2UKKyAqIC4KKyAqCisgKiAwNiAxOCAyMDE1IHBhbnUucGVpc2EKKyAqIFtNT0xZMDAxMjI0ODddIEVNTSwgRVNNICYgUEFNIG1vZHVsZSBWelcgZmVhdHVyZSBwb3J0aW5nIGZyb20gNjI5MCB0byA2MjkxCisgKiAJU1dSRCBwYXJ0LCBjaGFuZ2UgaGF2ZSBkZXBlbmRlbmN5IHRvIExURV9TRUMgcGFydHMuCisgKgorICogMDYgMTYgMjAxNSB0aW0uaHVhbmcKKyAqIFtNT0xZMDAwODM0MzldIFtNVVNFXSBJTVMgRGV2ZWxvcG1lbnQgZm9yIHJlcXVpcm1lbnQgMS0xNSAtIGdldCB0aGUgaW5mb3JtYXRpb24gb2YgTU8gRGF0YSBCYXJyaW5nIGFuZCBTU0FDIGJhcnJpbmcKKyAqIC4KKyAqCisgKiAwNiAxNiAyMDE1IGt1YW4td2VpLmNoZW4KKyAqIFtNT0xZMDAxMTUzNzhdIFNTIGNvZGUgcmV2aXNlCisgKiBtZXJnZSBmcm9tIE1PTFkgdG8gVU1PTFkKKyAqCisgKiAwNiAxMCAyMDE1IHRlZW11LnBhcnRhbmVuCisgKiBbVlpfUkVRX0xURURBVEFSRVRSWV83NzMzXSBUaHJvdHRsaW5nIHRpbWVyIHJlbGF0ZWQgbmV3IG1lc3NhZ2UgaWRlbnRpZmllcnMsIGVudW1lcmF0aW9ucyBhbmQgc3RydWN0dXJlcyBmb3IgRU1NIC0gTldTRUwgY29tbXVuaWNhdGlvbgorICoKKyAqIDA1IDI5IDIwMTUgeWUueXVhbgorICogW01PTFkwMDExNjkzMl0gW1VNT0xZXSBbTkFTXWNvbXBpbGUgb3B0aW9uIG1vZGlmeQorICogLgorICoKKyAqIDA1IDI5IDIwMTUgc2hpaC1jaGUuY2hvdQorICogW01PTFkwMDExNzE5MF0gUExNTiBMaXN0IGluIENPTk5FQ1RFRCBNb2RlCisgKiBSQUMgcGFydAorICoKKyAqIDA1IDI5IDIwMTUga3VuLWxpbi53dQorICogW01PTFkwMDExNzE5MF0gUExNTiBMaXN0IGluIENPTk5FQ1RFRCBNb2RlCisgKgorICogMDUgMjkgMjAxNSBrdW4tbGluLnd1CisgKiBbTU9MWTAwMTE1NjE3XSBbNjI5MV0gRHluYW1pYyBTSU0gc3dpdGNoIHdpdGhvdXQgbW9kZW0gcmVzZXQKKyAqCisgKiAwNSAyNiAyMDE1IGNodW4tZmFuLnRzYWkKKyAqIFtNT0xZMDAwOTcwOThdIFs2MjkxXVtDT05OXSBDb2RlIFN5bmMgZnJvbSBNT0xZIHRvIFVNT0xZCisgKiBNT0xZMDAwOTc1MDIKKyAqCisgKiAwNSAwNyAyMDE1IGNvb3Blci5saW4KKyAqIFtNT0xZMDAwOTA1MzJdIFtNVDYyOTFdIENoYW5nZSBGZWF0dXJlIENoZWNrLWluCisgKiBSZXBvcnQgQ0EgSW5mbyB0byBzdXBwb3J0IDRHIFBsdXMgSWNvbgorICoKKyAqIDA1IDA2IDIwMTUga3Vhbi13ZWkuY2hlbgorICogW01PTFkwMDA5ODAxOV0gW1Z6V11bTWVyZ2UgdG8gTU9MWV0gTVJVIHJldmlzZSAvIE1SVSBBVCBjb21tYW5kCisgKiBhZGQgQVQrVlpXTVJVQywgQVQrVlpXTVJVRQorICoKKyAqIDA0IDIzIDIwMTUgbWFyay5jaHVuZworICogW01PTFkwMDA5NTM3OF0gQW1hem9uIFJlcXVpcmVtZW50CisgKiAJLgorICoKKyAqIDA0IDIxIDIwMTUgZWR3aW4ubGl1CisgKiBbTU9MWTAwMDkxNzc0XSBbVnpXXVtNZXJnZSB0byBNT0xZXSBDbGVhciBHVVRJIHdoZW4gZG9pbmcgZmFjdG9yeSByZXNldAorICogCS4KKyAqCisgKiAwNCAxNiAyMDE1IHRpbS5odWFuZworICogW01PTFkwMDEwNzgwMV0gTkFTIDYyOTEgREVWCisgKiAuCisgKgorICogMDQgMTYgMjAxNSBqYW1lcy1jaGktanUuY2hhbmcKKyAqIFtNT0xZMDAwNzgyNjRdIFtVTU9MWV1bUjEwXVtSMTFdIE5BUyBjaGVjay1pbiBmcm9tIENCciB0byA2MjkxX0RFVgorICogCS4KKyAqCisgKiAwMiAyMyAyMDE1IGJvYi5jaGlhbmcKKyAqIFtNT0xZMDAwOTY2MDddIFN5bmMgQzJLIENSCisgKiAuCisgKgorICogMDIgMDUgMjAxNSBtb3J0b24ubGluCisgKiBbTU9MWTAwMDg0Njk1XSBbNjI5MV0gQ29kZSBtZXJnZWQgZnJvbSBNT0xZIHRvIFVNT0xZIFRSVU5LCisgKiBbNjI5MV1bRVJSQ11bU1BWXSBDb2RlIHN5bmMgZnJvbSBNT0xZIChXMTUuMDYpCisgKgorICogMTIgMTcgMjAxNCBqYW1lcy1jaGktanUuY2hhbmcKKyAqIFtNT0xZMDAwNzgyNjRdIFtVTU9MWV1bUjEwXVtSMTFdIE5BUyBjaGVjay1pbiBmcm9tIENCciB0byA2MjkxX0RFVgorICogCS4KKyAqCisgKiAxMSAxMiAyMDE0IHlpbmd3ZWkuaHVhbmcKKyAqIFtNT0xZMDAwNzM5MzJdIFtNVDYyOTFfREVWXSBFRERBIGltcGxlbWVudGF0aW9uIC0tIGludGVyZmFjZSBwYXJ0LgkuCisgKgorICogMTEgMTIgMjAxNCBjYXJsc29uLmxpbgorICogW01PTFkwMDA4NDE2NV0gW1VNT0xZXVtSMTBdW1IxMV0gTkFTIGNoZWNrLWluIGZyb20gNjI5MV9ERVYgdG8gVU1PTFkgVHJ1bmsKKyAqIChTeW5jIGZyb20gTVQ2MjkxX0RFViB1cHRvIENMIDg2OTg1NSkKKyAqCisgKiAxMSAxMCAyMDE0IHJvYmVydC53dQorICogW01PTFkwMDA4Mzg3NF0gW1VNT0xZXVtSMTBdW1IxMV0gRU1NIE1UQyBzeW5jIGNvZGUgZnJvbSA2MjkxX0RFViB0byBVTU9MWSB0cnVuaworICoKKyAqIDA3IDA3IDIwMTQgYmVuamFtaW4ua3VvCisgKiBbTU9MWTAwMDcxNDU5XSBBZGQgTW9iaWxpdHkgTWFuYWdlbWVudCBmb3IgSU1TIFZvaWNlIFRlcm1pbmF0aW9uCisgKiBNTUlWVDJNT0xZCisgKgorICogMDcgMDIgMjAxNCBzaGFvd3UuaHVhbmcKKyAqIFtNT0xZMDAwNzA4MjRdIFs0RyBHZW1pbmldW0ZUXVtCSl1bQ1NGQiB0ZXN0XVtjYXNlNS4xLjFdW1NJTTEgQ01DQytTSU0yIENNQ0NdWzRHLDNHLDJHodGiRmk/P2k/P0Wh02k/P08/aT8/STNpPz9dCisgKiAuCisgKgorICogMDYgMTMgMjAxNCBhYXJvbi5saXUKKyAqIFtNT0xZMDAwNjc1NTldIFtNVDY1OTJMVEVdW0NTRkJdW1NpbmdsZSBVU0lNXVtDTUNDIEZUXVtjYXNlNS4xLjFdWzRHLDNHLDJHaT8/YD8/aT8/aT8/aT8/aT8/Pz9dCisgKiAuRVZBTCBpbnRlcmZhY2UgcGFydC4KKyAqCisgKiAwNSAxNiAyMDE0IGx0LmNoYW5nCisgKiBbTU9MWTAwMDY1NjU4XSBbc2dsdGUgZHNkc11wcyBkZXRhY2ggYW5kIGF0dGFjaCByZWRlc2lnbgorICogLmNoZWNrIGluIGFjdHZpZSBzaW0gaW5mbyByZXEgaW50ZXJmYWNlCisgKgorICogMDQgMjMgMjAxNCB0ZWh1YW5nLmxpdQorICogW01PTFkwMDA2MzUzOF0gWzYyOTBFMl1bVm9MVEVdW1ZETV0gU3VwcG9ydCBWb0xURSBHZW1pbmkgYXJjaGl0ZWN0dXJlCisgKiBDaGVjayBpbiBWb0xURStHZW1pbmkgcmVsYXRlZCBpbnRlcmZhY2VzIGZvciBWRE0sIElNU1AsIEw0QywgRVZBTCwgYW5kIEVSUkMKKyAqCisgKiAwNCAwMiAyMDE0IGNvb2tpZS5jaGVuCisgKiBbTU9MWTAwMDYwMDEyXSBBVCtFQ0JNUiB0byByZW1vdmUgbW9kZW0gQ0IgcmVjb3JkcworICogLgorICoKKyAqIDAzIDI4IDIwMTQgamluZ2hhbi53YW5nCisgKiBbTU9MWTAwMDYwOTg4XSBbTFBQIENQXSBMUFAgY29kZSBjaGVjay1pbiBmb3IgQS1HTlNTIGFuZCBlQ0lEIGZlYXR1cmUKKyAqIENoZWNrIGluIExQUCBDUCBpbnRlcmZhY2VzICYgY2FwYWJpbGl0eSBmb3IgRU1NIChPQSBkb21haW4pCisgKgorICogMDMgMDYgMjAxNCBhYXJvbi5saXUKKyAqIFtNT0xZMDAwNTY0ODNdIFtNVDY1ODJMVEVdW1NHTFRFXVtDTUNDIEZUXVtHWl1pPz9iP2k/P2k/PzJHM0dpPz9pPz8/P2k/P2k/P2IzR2k/P0ppPz9JPz8/CisgKiBBZGQgUExNTiBTRUFSQ0ggQWJvcnQgSW50ZXJmYWNlOgorICogMS5NU0dfSURfRVZBTF9FUlJDX1BMTU5fU0VBUkNIX0FCT1JUX1JFUQorICogMi5NU0dfSURfTldTRUxfRVZBTF9QTE1OX1NFQVJDSF9BQk9SVF9SRVEKKyAqCisgKiAwMyAwNiAyMDE0IGpvZS5jaGFuZworICogW01PTFkwMDA1ODQxMl0gW01PTFldIFRGVCB2YWxpZGF0ZSByZXZpc2lvbgorICogW0VTTS9URlRMSUJdIE1vZGlmaWNhdGlvbiBmb3QgIlRGVCB2YWxpZGF0ZSIgYW5kICJQUyBpbml0IGRlYWN0aXZhdGlvbiIKKyAqCisgKiAwMyAwNSAyMDE0IGJlbmphbWluLmt1bworICogW01PTFkwMDA1MDYwMl0gW1NBVF0gc3VwcG9ydCBOZXR3b3JrIFJlamVjdGlvbiBFdmVudAorICogLgorICoKKyAqIDAyIDE3IDIwMTQgYmVuamFtaW4ua3VvCisgKiBbTU9MWTAwMDU1MzQxXSBbTVAxIFBvc3QgTVAgUGF0Y2hdW01UNjI5MEUyXVtMVEUgYXR0YWNoIFBETl0gVUUgZG9lc24ndCBwZXJmb3JtIExURSBhdHRhY2ggZHVlIHRvIFRDTSBjbWQgY29uZmxpY3QKKyAqIE1PTFkKKyAqCisgKiAwMSAyMiAyMDE0IGppbmdoYW4ud2FuZworICogW01PTFkwMDA1NDUxNF0gW0xURSBHZW1pbmldIEZlYXR1cmUgY2hlY2sgaW4gTU9MWSB0cnVuayBmb3IgRU1NIFBMTU5TRUwgYW5kIHJlbGF0ZWQgRU1NIGludGVyZmFjZXMKKyAqCisgKiAwMSAyMSAyMDE0IHdjcHVzZXJfaW50ZWdyYXRvcgorICogW01PTFkwMDA1NDQ3NV0gU0dMVEUgb3B0aW9uIHJlbmFtZQorICogLgorICoKKyAqIDAxIDEzIDIwMTQgYWxsZW4ua2VoCisgKiBbTU9MWTAwMDUzMzI4XSBbTVQ2MjkwRTJdW1ZvTFRFXSBWb0xURSBkZXZlbG9wbWVudCBtZXJnZSBiYWNrIHRvIFRSVU5LLgorICogCUFkZCBtZXNzYWdlIGlkcyAmIFNBUCBpZHMKKyAqCisgKiAxMSAxMyAyMDEzIGFkZWxpbmUuY2hhbmcKKyAqIFtNT0xZMDAwNDYwMjddIFtNVDYyOTBFMV1bTU1EU19EQ10gTU1EQyBmZWF0dXJlIHBhdGNoIGJhY2sgdG8gTU9MWSB0cnVuaworICogLgorICoKKyAqIDEwIDE4IDIwMTMgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMDQxNTk1XSBbTVQ2MjkwRTFdW01NRFNfRENdIE1NREMgZmVhdHVyZSBwYXRjaCBiYWNrIHRvIE1PTFkgdHJ1bmsKKyAqIGludGVncmF0ZSBFQVNfVE9fUEVFUl9JTkZPX0lORC4KKyAqCisgKiAxMCAxOCAyMDEzIGhjLmNodQorICogW01PTFkwMDA0MTQxNF0gW01UNjI5MEUxXVtXV0ZUXVtIS11bM0hLXSBWb2ljZSBkb21haW4gcHJlZmVyZW5jZSBlbmNvZGUgZXJyb3IKKyAqIG1lcmdlIHByZWJ1aWxkIGNiciBiYWNrIHRvIHRydW5rLgorICoKKyAqIDA4IDIzIDIwMTMgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMDM0OTMxXSBbTU1EQ10gY2hhbmdlIEVBU19TVEFURV9JTkQgdG8gVE9fUEVFUl9JTkZPX0lORAorICogLgorICoKKyAqIDA4IDMwIDIwMTMgaGMuY2h1CisgKiBbTU9MWTAwMDM2MDM2XSBbTU1EU19EQ10gQWRkIEVWQUxfRVNNX1BTX1NXSVRDSF9DT01QTEVURV9JTkQgcmVsYXRlZCBoYW5kaW5nCisgKiBbTU1EU19EQ10gQWRkIEVWQUxfRVNNX1BTX1NXSVRDSF9DT01QTEVURV9JTkQgcmVsYXRlZCBoYW5kaW5nLgorICoKKyAqIDA4IDIzIDIwMTMgc2hpaC1jaGllaC5saWFvCisgKiBbTU9MWTAwMDM0OTMxXSBbTU1EQ10gY2hhbmdlIEVBU19TVEFURV9JTkQgdG8gVE9fUEVFUl9JTkZPX0lORAorICogLgorICoKKyAqIDA4IDIzIDIwMTMgaGMuY2h1CisgKiBbTU9MWTAwMDM0NjYzXSBNTURDIFJBQyBjb2RlIGNoZWNrLWluCisgKiByZW1vdmUgdW51c2VkIG1tZGMgcmFjIGNvZGVzCisgKgorICogMDcgMjQgMjAxMyBiZW5qYW1pbi5rdW8KKyAqIFtNT0xZMDAwMzEwMjBdIFtNTURTX0RDXSBNZXJnZSBNTURDIGludGVyZmFjZSB0byBNT0xZCisgKiA8c2F2ZWQgYnkgUGVyZm9yY2U+CisgKgorICogMDQgMDEgMjAxMyBiZW5qYW1pbi5rdW8KKyAqIFtNT0xZMDAwMTE5MzRdIExURSBNTSBJVCBDQnIgbWVyZ2UgdG8gTU9MWQorICogYWRkIF9fTU1EQ19fIGZvciBtZXNzYWdlL3N0cnVjdHVyZS4KKyAqCisgKiAwMyAyNyAyMDEzIGJlbmphbWluLmt1bworICogW01PTFkwMDAxMTkzNF0gTFRFIE1NIElUIENCciBtZXJnZSB0byBNT0xZCisgKiAuCisgKgorICogMDMgMTUgMjAxMyBiZW5qYW1pbi5rdW8KKyAqIFtNT0xZMDAwMTE5MzRdIExURSBNTSBJVCBDQnIgbWVyZ2UgdG8gTU9MWQorICogTU0gSVQgbWVyZ2UgYmFjayB0byBNT0xZLgorICoKKyAqIDAzIDE0IDIwMTMgYmVuamFtaW4ua3VvCisgKiBbTU9MWTAwMDExOTM0XSBMVEUgTU0gSVQgQ0JyIG1lcmdlIHRvIE1PTFkKKyAqIGNvbW1vbiBmaWxlOiBFVkFMIHBhcnQuCisgKgorICogMDEgMjIgMjAxMyBiZW5qYW1pbi5rdW8KKyAqIFtNT0xZMDAwMDkxNjNdIExURSBNdWx0aW1vZGUgbWVyZ2UgYmFjayB0byBNT0xZCisgKgorICogMDEgMjIgMjAxMyBiZW5qYW1pbi5rdW8KKyAqIFtNT0xZMDAwMDkxNjNdIExURSBNdWx0aW1vZGUgbWVyZ2UgYmFjayB0byBNT0xZCisgKgorICogMDEgMjIgMjAxMyBiZW5qYW1pbi5rdW8KKyAqIFtNT0xZMDAwMDkxNjNdIExURSBNdWx0aW1vZGUgbWVyZ2UgYmFjayB0byBNT0xZCisgKiBNT0xZX0NCciB0byBNT0xZLgorICoKKyAqIDExIDA2IDIwMTIgeXUuaHVhbmcKKyAqIFtNT0xZMDAwMDUzMjJdIFRBVEFLQSBtZXJnZSB0byBNT0xZCisgKiBbRVZBTF0gQWRkIEVWQUwgcmVsYXRlZCBpbnRlcmZhY2VzIGFuZCBjb21tb24gc3RydXN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0VWQUxfTVNHSURfSAorI2RlZmluZSBfRVZBTF9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9FVkFMX0NPREVfQkVHSU4gKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVkFMIChMNEMgdG8gRVZBTCkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9MNENfRVZBTF9SQVRfQ0hBTkdFX1JFUSAgICAgICAgICAgICAgPSBNU0dfSURfRVZBTF9DT0RFX0JFR0lOLAorTVNHX0lEX0w0Q19FVkFMX1JBVF9DSEFOR0VfUlNQLAorTVNHX0lEX0w0Q19FVkFMX0VUV1NfU0VUVElOR19SRVEsCitNU0dfSURfTDRDX0VWQUxfR0VUX1NTQUNfUEFSQU1fUkVRLAorCisvKiBkZWZpbmVkIGluIGw0X21zZ2lkLmggZm9yIG1haW50ZW5hbmNlCisgKiBNU0dfSURfTDRDX0VWQUxfQURKVVNUX01FQVNfUkVRLAorICovCisKK01TR19JRF9MNENfRVZBTF9OQlJfQ0VMTF9JTkZPX1NUQVJUX1JFUSwKK01TR19JRF9MNENfRVZBTF9OQlJfQ0VMTF9JTkZPX1NUT1BfUkVRLAorCitNU0dfSURfTDRDX0VWQUxfTFRFX05FSUdIQk9SX0NFTExfSU5GT19SRVEsCisKK01TR19JRF9MNENfRVZBTF9WRE1fVk9JQ0VfU1RBVFVTX1JFUSwKKworCitNU0dfSURfTDRDX0VWQUxfRVJMTV9DT05UUk9MX1JFUSwKKworTVNHX0lEX0w0Q19FVkFMX0VEREFfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0ZBQ1RPUllfUkVTRVRfUkVRLAorTVNHX0lEX0w0Q19FVkFMX01SVV9VUERBVEVfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0xURUNBX0JBTkRfU0VUVElOR19SRVEsCitNU0dfSURfTDRDX0VWQUxfRFJYX1VQREFURV9SRVEsCitNU0dfSURfTDRDX0VWQUxfTFRFQ0FfTU9ERV9TRVRUSU5HX1JFUSwKK01TR19JRF9MNENfRVZBTF9BVURSWF9FTkFCTEVfUkVRLAorTVNHX0lEX0w0Q19FVkFMX09NQURNX1VQREFURV9SRVEsCitNU0dfSURfTDRDX0VWQUxfTU9EVUxBVElPTl9VUERBVEVfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0dVVElfSU5fTlZfQ0xFQVJfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0lNU19DQUxMX1NUQVRVU19SRVEsCitNU0dfSURfTDRDX0VWQUxfSU1TX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0hRX1NFUlZJQ0VfU1RBVFVTX1JFUSwKK01TR19JRF9MNENfRVZBTF9MVEVfVE05X0ZERF9URERfU0VUVElOR19SRVEsCitNU0dfSURfTDRDX0VWQUxfTk9USUZZX1NJTV9TV0lUQ0hfUkZPRkZfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX1JTUCwgLy9UTU8tVVMgR0lELU1UUlJFUS0yNDU5MDMgCitNU0dfSURfTDRDX0VWQUxfQ0FfQkFORF9DT01CX0xJU1RfUkVRLAorTVNHX0lEX0w0Q19FVkFMX0VSUkNfQ0VMTF9SRUpfSU5ELAorLy8gZUNhbGwKK01TR19JRF9MNENfRVZBTF9FQ0FMTF9URVNUX0NBTExfQVRUQUNIX1JFUSwKK01TR19JRF9MNENfRVZBTF9FQ0FMTF9BQk9SVF9URVNUX0NBTExfQVRUQUNIX1JFUSwKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVWQUwgKEVSQUMgdG8gRVZBTCkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FTU1SRUdfSU5JVF9SRVEsCitNU0dfSURfRU1NUkVHX0VNQ19BVFRBQ0hfUkVRLCAvLyBmb3IgSU1TCitNU0dfSURfRU1NUkVHX0VQU19BVFRBQ0hfTkVFREVEX1JFSl9SU1AsCitNU0dfSURfRU1NUkVHX1NFVF9JTVNfVk9JQ0VfQVZBSUxBQklMSVRZX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX0VNTVJFR19TRVRfSU1TX1ZPSUNFX1RFUk1JTkFUSU9OX1JFUSwgLy8gZm9yIElNUworI2lmZGVmIF9fR0VNSU5JX18KK01TR19JRF9FTU1SRUdfREFUQV9BTExPV19SRVEsCisjZW5kaWYKK01TR19JRF9FTU1SRUdfSU1TX1NDTV9JTkZPX1JFUSwgLy8gZm9yIFJFTDEyIGZlYXR1cmUgU0NNCisKKworTVNHX0lEX0VNTVJFR19BQ1RJVkVfU0lNX0lORk9fUkVRLAorTVNHX0lEX0VNTVJFR19TRVRfUEdDSEVDS19SRVEsCitNU0dfSURfRU1NUkVHX0lNU19SRUdfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfRU1NUkVHX0lNU19DQUxMX1JFR19JTkZPX1JFUSwKK01TR19JRF9FTU1SRUdfU0VUX01TX1NWX1JFUSwKK01TR19JRF9FTU1SRUdfUkVKRUNUX0NBVVNFX01BUFBJTkdfUkVRLAorCisvLyBSZW1vdGUgU0lNCitNU0dfSURfRU1NUkVHX1JTSU1fQUtBX1NUQVRVU19SRVEsCitNU0dfSURfRU1NUkVHX1JTSU1fQUtBX1JTSU1fQUNDRVNTX0ZPUl9BVVRIX0RPV05MT0FEX1JFUSwKK01TR19JRF9FTU1SRUdfUlNJTV9BVVRIX0FCT1JUX1JFUSwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRVZBTCAoTldTRUwgdG8gRVZBTCkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OV1NFTF9FVkFMX1NFQVJDSF9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1BMTU5fTElTVF9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1NZU19JTkZPX1VQREFURV9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9SRUdOX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfUExNTl9MSVNUX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1BMTU5fTElTVF9TVE9QX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX0NTR19MSVNUX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX0NTR19MSVNUX1NUT1BfUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfRVFfUExNTl9MSVNUX1VQREFURV9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9IUExNTl9JTkZPX1VQREFURV9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9VRU1PREVfUEFSQU1fVVBEQVRFX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1BMTU5fU0VBUkNIX1BSRUZFUkVOQ0VfVVBEQVRFX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX05XU0VMX0VWQUxfRU1DX0ZQTE1OX0xJU1RfVVBEQVRFX1JFUSwgLy8gZm9yIElNUworTVNHX0lEX05XU0VMX0VWQUxfUkVTVU1FX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX0VVVFJBTl9DQVBfVVBEQVRFX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX0lOVkFMSURfU0lNX1JFQ09WRVJfUkVRLCAgLy8gZm9yIF9fUkVMMTBfXzogdDMyNDUKK01TR19JRF9OV1NFTF9FVkFMX0MyS19JUkFUX0NPTVBMRVRFX1JFUSwgICAgLy8gZm9yIEMySworTVNHX0lEX05XU0VMX0VWQUxfQzJLX05PUk1BTF9TRVJWSUNFX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1BMTU5fU0VBUkNIX0FCT1JUX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1BPV0VSX09OX1BST1RFQ1RJT05fUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfQ0xFQVJfVDMzNDZfRVBMTU5fUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfU0VUX01SVV9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9DTEVBUl9NUlVfUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfQ1NHX0FVVE9fU0VBUkNIX01PREVfUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfQzJLX0ZPUkNFX1RPX0xPQ0FMX0RFVEFDSF9SRVEsIC8vZm9yIEMySyB3aGVuIE9QMTIgcHJvamVjdAorTVNHX0lEX05XU0VMX0VWQUxfR0xPQkFMX01PREVfQ0hBTkdFX1NUQVJUX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX0hWT0xURV9NT0RFX0NIQU5HRV9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9BUkFMX1VQREFURV9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9DTEVBUl9GT1JCSURERU5fVEFfTElTVF9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9DQUxMX1NUQVRVU19JTkQsCitNU0dfSURfTldTRUxfRVZBTF9HTVNTX0lSQVRfU1RBUlRfSU5ELCAvLyBmb3IgQzJLCitNU0dfSURfTldTRUxfRVZBTF9HTVNTX0lSQVRfRklOSVNIX0lORCwgLy8gZm9yIEMySworTVNHX0lEX05XU0VMX0VWQUxfUkFUX0RJU0FCTEVfQ09ORklHX1JFUSwgCitNU0dfSURfTldTRUxfRVZBTF9NQU5VQUxfU0VBUkNIX1NUT1BfUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1NFUlZJQ0VfUkVDT1ZFUllfUk9VTkRfVVBEQVRFX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1NDUkVFTl9PTl9SRVEsCitNU0dfSURfTldTRUxfRVZBTF9TQ1JFRU5fT0ZGX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX0VDQk1fU1RBUlRfUkVRLAorTVNHX0lEX05XU0VMX0VWQUxfRUNCTV9TVE9QX1JFUSwKK01TR19JRF9OV1NFTF9FVkFMX1NFTkRfREFOX1NNU19JTkQsCitNU0dfSURfTldTRUxfRVZBTF9ESVNDQVJEX1NZU19JTkZPX1VQREFURV9SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVWQUwgKFNNUyB0byBFVkFMKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX1NNU19FVkFMX0VTVF9SRVEsCitNU0dfSURfU01TX0VWQUxfVU5JVERBVEFfUkVRLAorTVNHX0lEX1NNU19FVkFMX1NNU19TVEFUVVNfUkVRLAorTVNHX0lEX0lNQ1NNU19FVkFMX01UX1NNU19PVkVSX0lNU19TVEFUVVNfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVkFMIChTTVNBTCB0byBFVkFMKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX1NNU0FMX0VWQUxfQ0JDSF9SRVEsCitNU0dfSURfU01TQUxfRVZBTF9DQl9VUERBVEVfUkVRLAorTVNHX0lEX1NNU0FMX0VWQUxfQ0JfTVNHX1JFTU9WQUxfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVkFMIChFVEMgdG8gRVZBTCkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VWQUxfRVRDX05XX1JFU0VUX1VFX1NUT1JFRF9QT1NfSU5GT19JTkQsIC8vIGZvciBMUFAKK01TR19JRF9FVkFMX0VUQ19MQk1fSU5GT19JTkQsIC8vIGZvciBMNEMKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVkFMIChFTU0gdG8gRVZBTCkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FVkFMX0VNTV9DRUxMX0lORk9fVVBEQVRFX0lORCwKK01TR19JRF9FVkFMX0VNTV9OV19JTkZPX0lORCwKK01TR19JRF9FVkFMX0VNTV9OV19FQ0NfSU5ELAorTVNHX0lEX0VWQUxfRU1NX05PTl8zR1BQX05XX1BPTElDSUVTX0lORCwKK01TR19JRF9FVkFMX0VNTV9SRUdOX1JFU1VMVF9JTkQsCitNU0dfSURfRVZBTF9FTU1fRElTQUJMRV9OV19MT1NTX09QVElNSVpFX0lORCwKK01TR19JRF9FVkFMX0VNTV9QTE1OX0xJU1RfQ05GLAorTVNHX0lEX0VWQUxfRU1NX1BMTU5fTElTVF9TVE9QX0NORiwKK01TR19JRF9FVkFMX0VNTV9DU0dfTElTVF9DTkYsCitNU0dfSURfRVZBTF9FTU1fQ1NHX0xJU1RfU1RPUF9DTkYsCitNU0dfSURfRVZBTF9FTU1fT1VUX09GX1NFUlZJQ0VfSU5ELAorTVNHX0lEX0VWQUxfRU1NX09VVF9PRl9TRVJWSUNFX0ZJTklTSF9JTkQsCitNU0dfSURfRVZBTF9FTU1fUExNTl9MT1NTX0lORCwKK01TR19JRF9FVkFMX0VNTV9DU0ZCX0ZBSUxfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1NNU19FU1RfQ05GLAorTVNHX0lEX0VWQUxfRU1NX1NNU19FU1RfUkVKLAorTVNHX0lEX0VWQUxfRU1NX1NNU19VTklUREFUQV9JTkQsCitNU0dfSURfRVZBTF9FTU1fU01TX0VSUl9JTkQsCitNU0dfSURfRVZBTF9FTU1fTFBQX0RBVEFfQ05GLCAvLyBmb3IgTFBQCitNU0dfSURfRVZBTF9FTU1fTFBQX0RBVEFfSU5ELCAvLyBmb3IgTFBQCitNU0dfSURfRVZBTF9FTU1fTENTX0RBVEFfQ05GLCAvLyBmb3IgTFBQCitNU0dfSURfRVZBTF9FTU1fTENTX0RBVEFfSU5ELCAvLyBmb3IgTFBQCitNU0dfSURfRVZBTF9FTU1fU0lNX0VQU05TQ19JTkZPX0lORCwKK01TR19JRF9FVkFMX0VNTV9TSU1fRVBTTE9DSV9JTkZPX0lORCwKK01TR19JRF9FVkFMX0VNTV9BVVRIRU5USUNBVEVfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1NJR05BTF9BUFBFQVJfSU5ELAorTVNHX0lEX0VWQUxfRU1NX0VNRVJHRU5DWV9TVEFUVVNfVVBEQVRFX0lORCwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRU1NX0VNQ19BVFRBQ0hfQ05GLCAvLyBmb3IgSU1TCitNU0dfSURfRVZBTF9FTU1fRU1DX0RFVEFDSF9JTkQsIC8vIGZvciBJTVMKK01TR19JRF9FVkFMX0VNTV9OV19GRUFUVVJFX1NVUFBPUlRfSU5ELCAvLyBmb3IgSU1TCitNU0dfSURfRVZBTF9FTU1fU1JWQ0NfU1RBVFVTX1VQREFURV9JTkQsIC8vIGZvciBJTVMKK01TR19JRF9FVkFMX0VNTV9OV19SRUpFQ1RfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1QzNDAyX0NIQU5HRV9JTkQsIC8vIF9fUkVMMTBfXzogdDM0MDIKK01TR19JRF9FVkFMX0VNTV9QRVJTSVNURU5UX0VQU0JfUkVMX0lORCwgLy8gX19SRUwxMF9fOiBwZXJzaXN0ZW50IEVQU0IKKy8vTVNHX0lEX0VWQUxfRU1NX0wyQ19UUkFOU0ZFUl9DTkYsICAvLyBmb3IgQzJLCitNU0dfSURfRVZBTF9FTU1fQzJLX0lSQVRfQVRUQUNIX1JFU1VMVF9JTkQsIC8vIGZvciBDMksKK01TR19JRF9FVkFMX0VNTV9SRUxfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1NNU19VTklUREFUQV9DTkYsCitNU0dfSURfRVZBTF9FTU1fU1JfRkFJTFVSRV9JTkQsCitNU0dfSURfRVZBTF9FTU1fVEFVX0ZBSUxVUkVfSU5ELAorTVNHX0lEX0VWQUxfRU1NX0NBQlRTUklfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1NSX1JFSkVDVF9JTkQsCitNU0dfSURfRVZBTF9FTU1fUkFDSF9SRUpFQ1RfSU5ELAorTVNHX0lEX0VWQUxfRU1NX0NPTk5FQ1RJT05fSU5GT19JTkQsCitNU0dfSURfRVZBTF9FTU1fMVhDU0ZCX0NORiwgLy9mb3IgQzJLCitNU0dfSURfRVZBTF9FTU1fMVhDU0ZCX1NUT1BfQ05GLCAvL2ZvciBDMksKK01TR19JRF9FVkFMX0VNTV9CQVJSSU5HX1NUQVRVU19JTkQsCitNU0dfSURfRVZBTF9FTU1fRVNUQUJMSVNITUVOVF9JTkQsCitNU0dfSURfRVZBTF9FTU1fUExNTl9SRVNUUklDVElPTl9DSEFOR0VfSU5ELAorTVNHX0lEX0VWQUxfRU1NX0MyS19DU0ZCX0NORiwgLy9mb3IgQzJLCitNU0dfSURfRVZBTF9FTU1fQzJLX0NTRkJfU1RPUF9DTkYsIC8vZm9yIEMySworTVNHX0lEX0VWQUxfRU1NX0MyS19DU0ZCX1NUQVJUX0lORCwKK01TR19JRF9FVkFMX0VNTV9DMktfQ1NGQl9FU1RfSU5ELAorTVNHX0lEX0VWQUxfRU1NX0MyS19DU0ZCX1NUT1BfSU5ELAorTVNHX0lEX0VWQUxfRU1NX01UX1BBR0VfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1NFTkRfRVNSX0lORCwKK01TR19JRF9FVkFMX0VNTV9JUkFUX0MyTF9TVUNDRVNTX05PVElGWV9JTkQsIC8vZm9yIEMySworTVNHX0lEX0VWQUxfRU1NX1NFQVJDSF9JTlRFUlJVUFRfRVZFTlRfSU5ELAorCitNU0dfSURfRVZBTF9FTU1fU0lNX1JFU0VUX0NPTVBMRVRFX0lORCwKK01TR19JRF9FVkFMX0VNTV9EUlhfVVBEQVRFX0NORiwKK01TR19JRF9FVkFMX0VNTV9EUlhfVVBEQVRFX0lORCwKK01TR19JRF9FVkFMX0VNTV9BQ0RDX1NUQVRVU19VUERBVEVfQ05GLAorTVNHX0lEX0VWQUxfRU1NX1VQREFURV9FTUNfUEROX1NUQVRVU19JTkQsCitNU0dfSURfRVZBTF9FTU1fSU1TX1NDTV9JTkZPX0NORiwgLy9SRUwxMiBmZWF0dXJlIFNDTQorTVNHX0lEX0VWQUxfRU1NX0NMRUFSX0ZPUkJJRERFTl9UQV9ORUVEX1NFQVJDSF9JTkQsCitNU0dfSURfRVZBTF9FTU1fSU1TX0hBTkRPVkVSX05FRURfU0VBUkNIX0lORCwKK01TR19JRF9FVkFMX0VNTV9DRUxMX0JBTkRfSU5GT19VUERBVEVfSU5ELCAgLy8gRm9yIFZ6VyAoVlpfUkVRX2U5MTFfMzAyMDMpCitNU0dfSURfRVZBTF9FTU1fRU1NX01TR19JTkQsICAgICAgICAgICAgICAgIC8vIEZvciBWelcgVm9XaWZpIFRDMy4yCitNU0dfSURfRVZBTF9FTU1fTkVFRF9EVVBMRVhfTU9ERV9DSEdfSU5ELAorTVNHX0lEX0VWQUxfRU1NX1JTSU1fQVVUSF9GSU5JU0hfSU5ELCAgIC8vUi1TSU0KK01TR19JRF9FVkFMX0VNTV9SU0lNX0FCT1JUX0NORiwgLy9SLVNJTQorTVNHX0lEX0VWQUxfRU1NX0dFTkVSQUxfTU9ERU1fQ09ORklHVVJFX1NFVF9DTkYsCitNU0dfSURfRVZBTF9FTU1fTUVfUkVDT05GSUdVUkVfQ05GLAorTVNHX0lEX0VWQUxfRU1NX0RSQl9TRVNTSU9OX1NUQVRVU19OVEYsCitNU0dfSURfRVZBTF9FTU1fQ0FVU0VfSU5GT19JTkQsCisKK01TR19JRF9FVkFMX0VNTV9SU0lNX0FVVEhfQUJPUlRfQ05GLCAvLyBSZW1vdGUgU0lNCisKK01TR19JRF9FVkFMX0VNTV9DU19ET01BSU5fTk9UX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfRVZBTF9FTU1fSUFfQVBOX0NIQU5HRV9JTkQsCitNU0dfSURfRVZBTF9FTU1fQ1NfU0VSVklDRV9OT1RJRklDQVRJT05fSU5ELCAvL1RNTy1VUyBHSUQtTVRSUkVRLTI0NTkwMyAKK01TR19JRF9FVkFMX0VNTV9JQV9BUE5fTk9UX1JFQURZX0lORCwKK01TR19JRF9FVkFMX0VNTV9QQUdJTkdfUFJPVEVDVEVEX1RJTUVSX01BWF9JTkQsCisvLyBlQ2FsbAorTVNHX0lEX0VWQUxfRU1NX0VDQUxMX1RFU1RfQ0FMTF9BVFRBQ0hfQ05GLAorTVNHX0lEX0VWQUxfRU1NX0VDQUxMX0FCT1JUX1RFU1RfQ0FMTF9BVFRBQ0hfQ05GLAorTVNHX0lEX0VWQUxfRU1NX0VDQUxMX1JFR0lTVFJBVElPTl9TVEFURV9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVWQUwgKEVTTSB0byBFVkFMKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VWQUxfRVNNX0VQU19BVFRBQ0hfTkVFREVEX0lORCwKK01TR19JRF9FVkFMX0VTTV9FTUNfQVRUQUNIX0lORCwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRVNNX1NSVkNDX1NUQVRVU19VUERBVEVfSU5ELCAvLyBmb3IgSU1TCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRVZBTCAoRVJSQyB0byBFVkFMKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VWQUxfRVJSQ19DQl9SRUNPTkZJR19JTkQsCitNU0dfSURfRVZBTF9FUlJDX0NCX0dTX0NIQU5HRV9JTkQsCitNU0dfSURfRVZBTF9FUlJDX0NFTExfUE9XRVJfTEVWRUxfSU5ELAorTVNHX0lEX0VWQUxfRVJSQ19SRVBPUlRfU0lHTkFMX0xFVkVMX0lORCwKK01TR19JRF9FVkFMX0VSUkNfQURKVVNUX01FQVNfQ05GLAorTVNHX0lEX0VWQUxfRVJSQ19QV1NfSU5GT1JNQVRJT05fSU5ELAorTVNHX0lEX0VWQUxfRVJSQ19OQlJfQ0VMTF9JTkZPX1NUQVJUX0NORiwKK01TR19JRF9FVkFMX0VSUkNfTkJSX0NFTExfSU5GT19JTkQsCitNU0dfSURfRVZBTF9FUlJDX05CUl9DRUxMX0lORk9fU1RPUF9DTkYsCitNU0dfSURfRVZBTF9FUlJDX0dFVF9TU0FDX1BBUkFNX0NORiwgLy8gZm9yIElNUworTVNHX0lEX0VWQUxfRVJSQ19DT05ORUNURURfRFJCX0lORCwKK01TR19JRF9FVkFMX0VSUkNfVElNRV9JTkZPX0lORCwKKyNpZmRlZiBfX1ZPTFRFX1NVUFBPUlRfXyAKK01TR19JRF9FVkFMX0VSUkNfSU1TX1NZU19JTkZPX0lORCwgLy9fX1RDMDFfXworI2VuZGlmCitNU0dfSURfRVZBTF9FUlJDX0VEREFfQ05GLAorTVNHX0lEX0VWQUxfRVJSQ19MVEVDQV9NT0RFX1NFVFRJTkdfQ05GLAorTVNHX0lEX0VWQUxfRVJSQ19PTUFETV9VUERBVEVfQ05GLAorTVNHX0lEX0VWQUxfRVJSQ19MVEVfVE05X0ZERF9URERfU0VUVElOR19DTkYsCitNU0dfSURfRVZBTF9FUlJDX0NBX0JBTkRfQ09NQl9MSVNUX0NORiwKKworLy8jaWZkZWYgX19WT0xURV9TVVBQT1JUX18gCitNU0dfSURfRVZBTF9FUlJDX1NSVkNDX1NUQVRVU19VUERBVEVfSU5ELCAvLyBmb3IgSU1TCisjaWZkZWYgX19CQ1NGQl9fCitNU0dfSURfRVZBTF9FUlJDX0VSTE1fUkVQT1JUX0lORCwKK01TR19JRF9FVkFMX0VSUkNfRVJMUV9SRVBPUlRfSU5ELAorI2VuZGlmCisvLyNlbmRpZgorCitNU0dfSURfRVZBTF9FUlJDX1NUQVRFX0lORCwKK01TR19JRF9FVkFMX0VSUkNfTVJVX1VQREFURV9DTkYsCisKKy8vI2lmZGVmIF9fTFRFX1IxMV9fCitNU0dfSURfRVZBTF9FUlJDX0NBX0lORk9fSU5ELAorLy8jZW5kaWYKKworTVNHX0lEX0VWQUxfRVJSQ19QQ0VMTF9JTkZPX0lORCwKKworTVNHX0lEX0VWQUxfRVJSQ19FVkRPX1BTX0NPTk5FQ1RJT05fU1RBVFVTX0lORCwKK01TR19JRF9FVkFMX0VSUkNfMVhSVFRfUFNfQ09OTkVDVElPTl9TVEFUVVNfSU5ELAorCitNU0dfSURfRVZBTF9FUlJDX05XX0JBTkRfSU5GT19JTkQsCitNU0dfSURfRVZBTF9FUlJDX09USEVSX1JBVF9TVEFSVF9TRUFSQ0hfSU5ELAorTVNHX0lEX0VWQUxfRVJSQ19TU0FDX1JFU0VMX1JFU1VMVF9JTkQsCitNU0dfSURfRVZBTF9FUlJDX1BMTU5fU0NBTl9JTkQsCitNU0dfSURfRVZBTF9FUlJDX1BIWV9DRkdfSU5GT19JTkQsCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBEZXN0aW5hdGlvbjogRVZBTCAoQ0lTUyB0byBFVkFMKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0NJU1NfRVZBTF9EQVRBX1JFUSwKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVkFMIChDUFNXIHRvIEVWQUwpIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfQzJLX0xURV9DU0ZCX1JFUSwKK01TR19JRF9DMktfTFRFX0NTRkJfU1RPUF9SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVWQUwgKFVQQ00gdG8gRVZBTCkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FVkFMX1VQQ01fU1RBUlRfUkVMRUFTRV9EUkJfU0VTU0lPTl9USU1FUl9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVWQUwgKERETSB0byBFVkFMKSAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0RETV9FVkFMX0lNU19IQU5ET1ZFUl9BVFRBQ0hfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIERlc3RpbmF0aW9uOiBFVkFMIChWRE0gdG8gRVZBTCkgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8vIGVDYWxsCitNU0dfSURfVkRNX0VWQUxfRUNBTExfRU5EX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfRVZBTF9DT0RFX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9FVkFMX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBfRVZBTF9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9leHRfbW9kZW1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2V4dF9tb2RlbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzYjFmMmYKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9leHRfbW9kZW1fbXNnaWQuaApAQCAtMCwwICsxLDEwOSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBleHRfbW9kZW1fc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTUFVSQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIGV4dF9tb2RlbSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyotLS0tLS0tLS0tLS0tIEVYVF9NT0RFTV9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0qLworICAvKiBFWFRfTU9ERU0gPC0tPiBMNEMgKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgTDRDX0VYVF9NU0dJRF9ICisjZGVmaW5lIEw0Q19FWFRfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRVhUX01PREVNX0NPREVfQkVHSU4gKQorICBNU0dfSURfTDRDX0VYVF9NT0RFTV9TRVRVUF9SRVEgPSBNU0dfSURfRVhUX01PREVNX0NPREVfQkVHSU4sCisgIE1TR19JRF9MNENfRVhUX01PREVNX0RJU0NfUkVRLAorICBNU0dfSURfRVhUX01PREVNX0NPREVfRU5EID0gTVNHX0lEX0w0Q19FWFRfTU9ERU1fRElTQ19SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0VYVF9NT0RFTV9DT0RFX1RBSUwgKQorICAvKi0tLS0tLS0tLS0tLS0gRVhUX01PREVNX01TR19DT0RFX0VORC0tLS0tLS0tLS0tLS0tLS0qLworICNlbmRpZiAgLy9MNENfRVhUX01TR0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2Zjc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZmNzX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhhMTg1NgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2Zjc19tc2dpZC5oCkBAIC0wLDAgKzEsNzcgQEAKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBmY3NfbXNnaWQuaAorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIEZDUyAoZmllbGQgY2FwdHVyZSBzeXN0ZW0pIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfRkNTX01TR0lEX0gKKyNkZWZpbmUgX0ZDU19NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GQ1NfQ09ERV9CRUdJTiApIAorLy8gTU9EX0ZDUworTVNHX0lEX0ZDU19QRVJJT0RJQ19UUklHR0VSX1NFTkQsCitNU0dfSURfRkNTX1VTRVJfVFJJR0dFUl9TRU5ELAorTVNHX0lEX0w0Q1JBQ19SRUdfU1RBVEVfSU5EX1RPX0ZDUywKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9GQ1NfQ09ERV9UQUlMICkKKworI2VuZGlmICAvKiBfRkNTX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2dtc3NfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2dtc3NfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTFiZmJmCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvZ21zc19tc2dpZC5oCkBAIC0wLDAgKzEsODA3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGdtc3NfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTldTRUwgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfR01TU19NU0dJRF9IXworI2RlZmluZSBfR01TU19NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEdNU1NfTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0dNU1NfQ09ERV9CRUdJTiApCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIFJBQyBhdCBSQUNfR01TU19TQVAgKi8KKyAgICBNU0dfSURfUkFDX0dNU1NfQVRUQUNIX1JFUSA9IE1TR19JRF9HTVNTX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1JBQ19HTVNTX0RFVEFDSF9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1BMTU5fU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfSU5JVF9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1JGT0ZGX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU0VMX01PREVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19TRVRfUk9BTUlOR19NT0RFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU0VUX1BSRUZFUl9SQVRfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19HRVRfUFJFRkVSX1JBVF9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0VMRVZBVE9SX01PREVfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfUExNTl9MSVNUX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfUExNTl9MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19QTE1OX0xJU1RfQUJPUlRfUkVRLCAvKmZvciBWU0lNKi8KKyAgICBNU0dfSURfUkFDX0dNU1NfQVJBTF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19DU0dfTElTVF9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0NTR19MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19VUERBVEVfVUVNT0RFX1JFUSwgLyogc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IHRoZSBmb2xsb3dpbmcgTVNHX0lEX1JBQ19HTVNTX1VFTU9ERV9QQVJBTV9VUERBVEVfUkVRICovCisgICAgTVNHX0lEX1JBQ19HTVNTX1VFTU9ERV9QQVJBTV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19TVVNQX1JFU1VfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfQUJPUlRfRU1FUkdFTkNZX1BMTU5fU0VBUkNIX1JFUSwKKyAgICAvKiBhZGQgZm9yIDYyOTEgTVRDICovCisgICAgTVNHX0lEX1JBQ19HTVNTX0lNU19DQUxMX0lORk9fUkVRLAorICAgIC8qIGFkZCBmb3IgNjI5MSBNVEMgKi8KKyAgICBNU0dfSURfUkFDX0dNU1NfTU1EQ19SRUNPVkVSWV9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19TRVRfUkVDT1ZFUllfU0VBUkNIX1RJTUVSX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfR0VUX1JFQ09WRVJZX1NFQVJDSF9USU1FUl9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0NVU1RPTV9QTE1OX0xJU1RfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfR0VUX0NVU1RPTV9QTE1OX0xJU1RfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19TRVRfVVRSQU5fVk9JQ0VfRE9NQUlOX1BSRUZFUkVOQ0VfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19EQVRBX1NFUlZJQ0VfU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX01EX1NJTV9DT05GSUdfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19BQ1RJVkVfU0lNX0lORk9fUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19SQVRfQ0hBTkdFX1NVQ0NFU1NfTk9USUZZX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfRFVQTEVYX01PREVfQ0hBTkdFX0ZJTklTSF9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1NFVF9DVF9NT0RFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfRElTQUJMRV9FVVRSQU5fUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19ST0FNSU5HX0RBVEFfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU0VUX1dNX1BPTElDWV9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1NFVF9BVVhfUExNTl9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1NFVF9NUlVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19DTEVBUl9NUlVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19DU0dfQVVUT19TRUFSQ0hfTU9ERV9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0RVUExFWF9NT0RFX1JFUVVJUkVEX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfQ0FMTF9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19TRVRfRklSU1RfQ0FNUF9PTl9QUkVGRVJfUkFUX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfT01BRE1fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfVlpXTVJVX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1NFVF9IVk9MVEVfTU9ERV9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0lOVkFMSURfU0lNX1JFQ09WRVJfUlNQLAorCisvKiBtZXNzYWdlcyBmb3IgVlpXIEVDQyBjYWxsICovCisgICAgTVNHX0lEX1JBQ19HTVNTX0VDQk1fU1RBUlRfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19FQ0JNX1NUT1BfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19FTUNfU0VSVklDRV9TQ0FOX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfRU1DX0JBUl9ORVRXT1JLX1JFUSwKKworICAgIE1TR19JRF9SQUNfR01TU19QTE1OX0xJU1RfU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0ZQTE1OX0FDVElPTl9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX1ZaV19BRE1JTl9BUE5fQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfMVhSVFRfQ0VMTF9MSVNUX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU0NSRUVOX09OX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfTE9DQVRJT05fSU5GT19SRVEsCisKKyAgICBNU0dfSURfUkFDX0dNU1NfU0VUX1RXX01PREVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19WT0xURV9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfR0VUX0xBU1RfUkFUX1NFTEVDVF9JTkRfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19EQVRBX0FMTE9XX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU1VTUEVORF9FR1JFR19VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19ISUdIX1BSSU9fU0VBUkNIX1RJTUVSX0NPTkZJR19SRVEsCisKKy8qIENETUEgbGVzcyAqLworICAgIE1TR19JRF9SQUNfR01TU19BQk9SVF9FTldTRUxfU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfSU1TX1JFR19TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfSU1TX1RJTUVSX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19TRVRfSU1TX1JPQU1JTkdfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU0VUX1BMTU5fQkFSUklOR19USU1FUl9SRVEsCisgICAgTVNHX0lEX1JBQ19HTVNTX0dFVF9QTE1OX0JBUlJJTkdfVElNRVJfUkVRLAorCisvKiBtdGsxMzc4MjogVE1PIGRpYWJsZSAyRyAqLworICAgIE1TR19JRF9SQUNfR01TU19SQVRfRElTQUJMRV9DT05GSUdfUkVRLAorICAgIE1TR19JRF9SQUNfR01TU19QTE1OX1NFQVJDSF9TVE9QX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKKyAgICBNU0dfSURfUkFDX0dNU1NfU0NSRUVOX09GRl9SRVEsCisKKy8qIG1lc3NhZ2VzIGZvciBhbGxvd2VkIE1DQyBsaXN0ICovCisgICAgTVNHX0lEX1JBQ19HTVNTX1NFVF9BTExPV0VEX01DQ19MSVNUX1JFUSwKKworLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBOV1NFTCBhdCBHTVNTX05XU0VMX1NBUCAqLworICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9SRUNPVkVSWV9TRUFSQ0hfVElNRVJfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0dFVF9SRUNPVkVSWV9TRUFSQ0hfVElNRVJfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JGT0ZGX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfUk9BTUlOR19NT0RFX0NORiwgLyogM0cgKi8KKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfUFJFRkVSX1JBVF9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfR0VUX1BSRUZFUl9SQVRfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9SQVRfTU9ERV9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUkFDX1BMTU5fU0VBUkNIX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfUExNTl9MSVNUX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfUExNTl9MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JBQ19DU0dfTElTVF9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUkFDX0NTR19MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BMTU5fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TVVNQRU5EX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUExNTl9MSVNUX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TVVNQX1JFU1VfVVBEQVRFX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfUExNTl9TQ0FOX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9JTVNfU0VSVklDRV9JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUkVTVEFSVF9DTEVBUl9DT0RFXzMzX1BST0NfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0NTX0RPTUFJTl9BVkFJTEFCSUxJVFlfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NVU1BFTkRfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JFU1VNRV9JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfVklSVFVBTF9NT0RFX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9MSU1JVEVEX1ZJUlRVQUxfSURMRV9JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUExNTl9TRUFSQ0hfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX01DQ19TRUFSQ0hfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BMTU5fTElTVF9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUExNTl9MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX09VVF9PRl9TRVJWSUNFX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DTEFTU19SQVRfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NJR05BTF9BUFBFQVJfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0lDX01PRFVMRV9URVNUX0ZJTklTSF9JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRVZFTlRfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0MyS19JUkFUX0FUVEFDSF9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BMTU5fSU5GT19JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfQVVYX1BMTU5fQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9NUlVfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0NMRUFSX01SVV9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRUFSTFlfT09TX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9JUkFUX0MyTF9TVUNDRVNTX05PVElGWV9JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfTk9fQUNUSU9OX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9HRVRfQ1VTVE9NX1BMTU5fTElTVF9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfQ0FNUElOR19JTkZPX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9QTE1OX1JFU1RSSUNUSU9OX0NIQU5HRV9JTkQsIC8vVDM0MDIgb3IgdGhyb3R0aWxuZyB0aW1lciBzdGF0dXMKKyAgICBNU0dfSURfR01TU19OV1NFTF9OVlJBTV9XUklURV9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRVZET19QU19DT05ORUNUSU9OX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfMVhSVFRfUFNfQ09OTkVDVElPTl9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0MyS19DU0ZCX1NUQVJUX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DMktfQ1NGQl9FU1RfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0MyS19DU0ZCX1NUT1BfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0lNU19WT1BTX1NVUFBPUlRfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TWVNfSU5GT19VUERBVEVfSU5ELAorLy8jaWZkZWYgX19LT1JfQ1VTVE9NSVpBVElPTl9fCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUlBMTU5fSU5ELCAgICAvKiBHZXQgUlBMTU4gKi8KKy8vI2VuZGlmCisgICAgLy8gUmVwb3J0aW5nIE5XIGFibm9ybWFsIHJlamVjdCBjYXVzZXMKKyAgICBNU0dfSURfR01TU19OV1NFTF9OV19SRUdfUkVKX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TSU1fUkVBRFlfQ05GLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BMTU5fRk9VTkRfSU5ELAorLy8jaWYgZGVmaW5lZChfX0ZBU1RfUk9BTUlOR19TRUFSQ0hfXykKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfUExNTl9GT1VORF9JTkQsCisvLyNlbmRpZgorICAgIE1TR19JRF9HTVNTX05XU0VMX1RSWV9TV0lUQ0hfUkFUX1JFU1VMVF9JTkQsCisKKworLyogQ0RNQSBsZXNzICovCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0VUX1BMTU5fQkFSUklOR19USU1FUl9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfR0VUX1BMTU5fQkFSUklOR19USU1FUl9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfSU1TX0NBTExfRU5EX1NUQVRVU19JTkQsCisKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfSU5WQUxJRF9TSU1fUkVDT1ZFUl9JTkQsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfV0FJVF9GT1JfSU1TX1JFR19TVEFUVVNfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX0lMTEVHQUxfTUVfSU5ELAorCisvKiBtZXNzYWdlZCByZWNlaXZlZCBmcm9tIE5XU0VMIGZvciByZWxheWluZyAqLworICAgIE1TR19JRF9HTVNTX05XU0VMX0NTU19NQ0NfU0VBUkNIX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DU1NfQ1NfUkVHX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DU1NfUFNfUkVHX0NORiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DU1NfUFNfREVSRUdfQ05GLAorCisvKiBtZXNzYWdlcyBmb3Igdm9pY2Ugc2VsZWN0aW9uICovCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0VSVklDRV9TQ0FOX0NORiwKKworI2lmZGVmIF9fTUJJTV9NU19ORVRXT1JLX0JMQUNLTElTVF9fCisvKiBtZXNzYWdlcyBmb3IgTVMgQkxBQ0sgTElTVCAqLworICAgIE1TR19JRF9HTVNTX05XU0VMX0ZQTE1OX0FDVElPTl9DTkYsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfTldfQkxBQ0tfTElTVF9TVEFURV9JTkQsCisjZW5kaWYKKworLyogbWVzc2FnZXMgZm9yIGFsbG93ZWQgTUNDIGxpc3QgKi8KKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfQUxMT1dFRF9NQ0NfTElTVF9DTkYsCisKKy8qIG1lc3NhZ2VzIGZvciArRUNBTVBVSSAqLworICAgIE1TR19JRF9SQUNfR01TU19DQU1QX1VJX0lORCwKKworLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBDU1MgYXQgR01TU19DU1NfU0FQICovCisgICAgLy9NU0dfSURfR01TU19DU1NfTUNDX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1NZU19BQ1FVSVJFX0NORiwKKyAgICBNU0dfSURfR01TU19DU1NfUkVBRFlfSU5ELAorICAgIE1TR19JRF9HTVNTX0NTU19OT1RfUkVBRFlfSU5ELAorICAgIE1TR19JRF9HTVNTX0NTU19TWVNfTE9TVF9JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1NZU19SRUNPVkVSWV9JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTXzFYX0NPTk5fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfR01TU19DU1NfTU1TU19GSUxFX1VQREFURV9JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1BTX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1BTX0NPTk5fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfR01TU19DU1NfTUNDX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX1NVU1BFTkRfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfR01TU19DU1NfU0lNX1BMTU5fSU5GT19SU1AsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0NBTVBJTkdfSU5GT19JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0NFTExfSU5GT19JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0NTX1NVU1BFTkRfSU5ELAorICAgIE1TR19JRF9HTVNTX0NTU19TRVRfUkFUX01PREVfQ05GLAorICAgIE1TR19JRF9HTVNTX0NTU19DMktfU0VSVklDRV9JTkQsCisgICAgTVNHX0lEX0dNU1NfQ1NTX0lMTEVHQUxfTUVfSU5ELAorICAgIE1TR19JRF9HTVNTX0NTU19FTEVWQVRPUl9NT0RFX0lORCwKKworLyogbWVzc2FnZXMgZnJvbSBDVkFMICovCisgICAgTVNHX0lEX0dNU1NfQ1ZBTF9TRU5EX0RBTl9TTVNfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFTkRfREFOX1NNU19JTkQsCisKKy8qIG1lc3NhZ2VzIGZvciBVVCB0ZXN0ICovCisgICAgTVNHX0lEX0dNU1NfVVRfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfR01TU19VVF9DT05GSUdfUlNQLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JFR19TVEFUVVNfSU5ELAorICAgIE1TR19JRF9HTVNTX0RVTVBfQ09OVEVYVF9JTkQsCisgICAgTVNHX0lEX0dNU1NfRFVNUF9NQ0NfUE9PTF9JTkQsCisgICAgTVNHX0lEX0dNU1NfRFVNUF9NQ0NfTElTVF9JTkQsCisgICAgTVNHX0lEX0dNU1NfRFVNUF9HRU9fQ09OVEVYVF9JTkQsCisgICAgTVNHX0lEX0dNU1NfRFVNUF9HRU9fU1VCX0xJU1RfSU5ELAorICAgIE1TR19JRF9HTVNTX0RVTVBfMjNHNF9TVUNDRVNTX0lORCwKKworLyogbWVzc2FnZXMgZnJvbSBWRE0qLworICAgIE1TR19JRF9WRE1fR01TU19FTUNfU0VSVklDRV9TQ0FOX1JFUSwKKyAgICBNU0dfSURfVkRNX0dNU1NfRU1DX0JBUl9ORVRXT1JLX1JFUSwKKyAgICBNU0dfSURfVkRNX0dNU1NfU0VSVklDRV9TQ0FOX1JFUSwKKyAgICBNU0dfSURfVkRNX0dNU1NfRUNCTV9NT0RFX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfVkRNX0dNU1NfRUNCTV9NT0RFX1NUT1BfUkVRLAorCisvKiBtZXNzYWdlcyBmcm9tIE5SUkMgKi8KKyAgICBNU0dfSURfR01TU19OUlJDX05SX0FWQUlMX1VQREFURV9JTkQsCisKKy8qIG1lc3NhZ2VzIHRvIEFOWSAqLworICAgIE1TR19JRF9HTVNTX05SX0FWQUlMX1VQREFURV9SRVEsCisKKy8qIG1lc3NhZ2VzIGZyb20gR01TUyAqLworICAgIE1TR19JRF9HTVNTX1dPUkxEX1BIT05FX0VWRU5UX0lORCwKKyAgICBNU0dfSURfR01TU19QUklNQVJZX1NJTV9EVVBMRVhfTU9ERV9DSEFOR0VfSU5ELAorICAgIE1TR19JRF9HTVNTX0RVUExFWF9NT0RFX1NXSVRDSF9RVUVSWV9SRVEsCisgICAgTVNHX0lEX0dNU1NfRFVQTEVYX01PREVfU1dJVENIX1FVRVJZX0NORiwKKworICAgIE1TR19JRF9HTVNTX0NPREVfRU5EID0gTVNHX0lEX0dNU1NfRFVQTEVYX01PREVfU1dJVENIX1FVRVJZX0NORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfR01TU19DT0RFX1RBSUwgKQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBHTVNTX01TR19DT0RFX0VORC0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2VuZGlmIC8vIF9HTVNTX01TR0lEX0hfCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hhbF9sMV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaGFsX2wxX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNmZDIwNAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hhbF9sMV9tc2dpZC5oCkBAIC0wLDAgKzEsMTAxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiBoYWxfbDFfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgR1NNX1NvZnR3YXJlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgMkcgTGF5ZXIgMSBhbmQgUHJvdG9jb2wgU3RhY2sgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24gZm9yIE1NSS9NaWRkbGV3YXJlCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfSEFMX0wxX01TR0lEX0gKKyNkZWZpbmUgX0hBTF9MMV9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9IQUxfTDFfQ09ERV9CRUdJTiApCisjaWYgZGVmaW5lZChfX0wxX0dQU19SRUZfVElNRV9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19MMV9HUFNfQVVUT19USU1JTkdfU1lOQ19TVVBQT1JUX18pCisvKiBTaGloeWFvLCBhZGQgaXQgdG8gc3VwcG9ydCBHUFMgdGltZSBzeW5jIHByb2NlZHVyZSovCitNU0dfSURfSEFMX0wxX0dQU19USU1FX1NZTkNfUkVRID0gTVNHX0lEX0hBTF9MMV9DT0RFX0JFR0lOLAorTVNHX0lEX0hBTF9MMV9HUFNfVElNRV9TWU5DX0lORCwKKyNlbmRpZgorTU9EVUxFX01TR19FTkQoIE1TR19JRF9IQUxfTDFfQ09ERV9UQUlMICkKKworI2VuZGlmICAvL19IQUxfTDFfTVNHSURfSAorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9oYXBsdXNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hhcGx1c19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxYWJmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9oYXBsdXNfbXNnaWQuaApAQCAtMCwwICsxLDIwNyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiBoYXBsdXNfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAga2F0bGEKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBhaXIgY29udHJvbGxlciByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfSEFMUExVU19NU0dJRF9ICisjZGVmaW5lIF9IQUxQTFVTX01TR0lEX0gKKworLyogUmVxdWVzdCBmb3IgYWlyIGNvbnRyb2xsZXIgKi8KKyNpZiBkZWZpbmVkIChfX1VFX1NJTVVMQVRPUl9fKQorTU9EVUxFX01TR19CRUdJTihNU0dfSURfSEFQTFVTX01TR19DT0RFX0JFR0lOKQorTVNHX0lEX0hBX1VfTVNHX0NPREVfUkVRX0JFR0lOID0gTVNHX0lEX0hBUExVU19NU0dfQ09ERV9CRUdJTiwKK01TR19JRF9IQV9VX0ZJTkRfUFNDSF9SRVEsCitNU0dfSURfSEFfVV9GSU5EX1NTQ0hfUkVRLAorTVNHX0lEX0hBX1VfRklORF9DUElDSF9SRVEsCitNU0dfSURfSEFfVV9GSU5EX1BDQ1BDSF9SRVEsCitNU0dfSURfSEFfVV9GSU5EX1BJQ0hfUkVRLAorTVNHX0lEX0hBX1VfRU5VTV9ETF9QQVRIU19SRVEsCitNU0dfSURfSEFfVV9FTlVNX0RMX1BBVEhTX0JZX1BTQ19SRVEsCitNU0dfSURfSEFfVV9DQVJSSUVSX1JTU0lfUkVRLAorTVNHX0lEX0hBX1VfRklORF9TQ0NQQ0hfUkVRLAorTVNHX0lEX0hBX1VfRklORF9ETERQQ0hfUkVRLAorTVNHX0lEX0hBX1VfU0VORF9VTERQQ0hfUkVRLAorTVNHX0lEX0hBX1VfRklORF9BSUNIX1JFUSwKK01TR19JRF9IQV9VX1NFTkRfUFJBQ0hfUkVRLCAKK01TR19JRF9IQV9VX0ZJTkRfSFNTQ0NIX1JFUSwKK01TR19JRF9IQV9VX0ZJTkRfSFNQRFNDSF9SRVEsCitNU0dfSURfSEFfVV9TRU5EX0hTRFBDQ0hfUkVRLAorTVNHX0lEX0hBX1VfU0VORF9FRENIX1JFUSwKK01TR19JRF9IQV9VX0ZJTkRfRUhJQ0hfUkVRLAorTVNHX0lEX0hBX1VfRklORF9FUkdDSF9SRVEsCitNU0dfSURfSEFfVV9GSU5EX0VBR0NIX1JFUSwKK01TR19JRF9IQV9VX0ZJTkRfRkRQQ0hfUkVRLAorTVNHX0lEX0hBX1VfVElNRV9DT05TVU1FX0lORk9fUkVRLAorCitNU0dfSURfSEFfVV9GSU5EX1BTQ0hfQ05GID0gTVNHX0lEX0hBUExVU19NU0dfQ09ERV9CRUdJTiArIDEwMSwKK01TR19JRF9IQV9VX0ZJTkRfU1NDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0NQSUNIX0NORiwKK01TR19JRF9IQV9VX0ZJTkRfUENDUENIX0NORiwKK01TR19JRF9IQV9VX0ZJTkRfUElDSF9DTkYsCitNU0dfSURfSEFfVV9FTlVNX0RMX1BBVEhTX0NORiwKK01TR19JRF9IQV9VX0VOVU1fRExfUEFUSFNfQllfUFNDX0NORiwKK01TR19JRF9IQV9VX0NBUlJJRVJfUlNTSV9DTkYsCitNU0dfSURfSEFfVV9GSU5EX1NDQ1BDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0RMRFBDSF9DTkYsCitNU0dfSURfSEFfVV9TRU5EX1VMRFBDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0FJQ0hfQ05GLAorTVNHX0lEX0hBX1VfU0VORF9QUkFDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0hTU0NDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0hTUERTQ0hfQ05GLAorTVNHX0lEX0hBX1VfU0VORF9IU0RQQ0NIX0NORiwKK01TR19JRF9IQV9VX1NFTkRfRURDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0VISUNIX0NORiwKK01TR19JRF9IQV9VX0ZJTkRfRVJHQ0hfQ05GLAorTVNHX0lEX0hBX1VfRklORF9FQUdDSF9DTkYsCitNU0dfSURfSEFfVV9GSU5EX0ZEUENIX0NORiwKK01TR19JRF9IQV9VX1RJTUVfQ09OU1VNRV9JTkZPX0NORiwKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX0hBUExVU19NU0dfQ09ERV9UQUlMKQorI2VuZGlmCisKKyNlbmRpZiAgLy9fSEFMUExVU19NU0dJRF9ICisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hscF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaGxwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJhMmM3ZAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hscF9tc2dpZC5oCkBAIC0wLDAgKzEsMjc2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBobHBfbXNnaWQuaAorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBJTE0gbWVzc2dhZSBJRHMgZm9yIEhMUCB0YXNrLgorICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfSExQX01TR19JRF9ICisjZGVmaW5lIF9ITFBfTVNHX0lEX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQ0hMUF9DT0RFX0JFR0lOICkKKworICAgTVNHX0lEX0hMUF9TVEFSVFVQX1NJR05BTCA9IE1TR19JRF9DSExQX0NPREVfQkVHSU4sCisgICBNU0dfSURfSExQX0ZXRF9EQVRBX0lORF9TSUdOQUwsCisgICBNU0dfSURfSExQX1JFVl9EQVRBX0lORF9TSUdOQUwsCisgICBNU0dfSURfSExQX1BQUF9IQV9ERUMwX0NPTVBMRVRFLAorICAgTVNHX0lEX0hMUF9QUFBfSEFfRU5DMF9DT01QTEVURSwKKyAgIE1TR19JRF9ITFBfUFBQX0hBX0RFQzFfQ09NUExFVEUsCisgICBNU0dfSURfSExQX1BQUF9IQV9FTkMxX0NPTVBMRVRFLAorICAgTVNHX0lEX0hMUF9SRVZfREFUQV9ET1JNX1NJR05BTCwKKyAgIE1TR19JRF9ITFBfRldEX1BLVF9EQVRBX0lORF9TSUdOQUwsICAgICAgLyogZm9yIEVIUlBEICovCisKKyAgIE1TR19JRF9ITFBfUkxQX0lETEVfSU5EX01TRywgICAgICAgICAgICAgLyogYWxpYXM6IGlzNzA3NFJscEluYWN0aXZpdHlJbmQgICAgICAgICovCisgICBNU0dfSURfSExQX1JMUF9SRVZfREFUQV9SU1BfTVNHLCAgICAgICAgIC8qIGFsaWFzOiBpczcwNzRSbHBUeENvbXBsZXRlICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9STFBfT1BFTl9GQUlMRURfTVNHLCAgICAgICAgICAvKiAxeCBSTFAgZmFpbCB0byBvcGVuLiAgICAgICAgICAgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfUFBQX0NPTk5FQ1RfUkVRX01TRywgICAgICAgICAgLyogc3RhcnQgUFBQIGNvbm5lY3Rpb24ocykuICAgICAgICAgICAgICovCisgICBNU0dfSURfSExQX1BQUF9SRUxFQVNFX1JFUV9NU0csICAgICAgICAgIC8qIHJlbGVhc2UgUFBQIGNvbm5lY3Rpb24gICAgICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9QUFBfU1RBVFVTX01TRywgICAgICAgICAgICAgICAvKiBpbmRpY2F0ZXMgY2hhbmdlIG9mIFBQUCBzdGF0dXMgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfQU5TV0VSX1JFUV9NU0csICAgICAgICAgICAgICAgLyogVG8gYW5zd2VyIGEgY2lyY3VpdCBzd2l0Y2hlZCBkYXRhIGNhbGwuICovCisgICBNU0dfSURfSExQX1RJTUVSX0VYUElSRURfTVNHLCAgICAgICAgICAgIC8qIGFsaWFzOiBpczcwNzRUaW1lckV4cGlyZWQgICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9TWVRFTV9RVUVSWV9SU1BfTVNHLCAgICAgICAgICAvKiBTeXN0ZW0gcXVlcnkgcmVzcG9uc2UgICAgICAgICAgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfQ09OTkVDVElPTl9JTkRfTVNHLCAgICAgICAgICAgLyogVENIIGNvbm5lY3Rpb24gcmVzcG9uc2UgICAgICAgICAgICAgICovCisgICBNU0dfSURfSExQX0NPTk5FQ1RJT05fUkVMRUFTRURfSU5EX01TRywgIC8qIFRDSCBjb25uZWN0aW9uIHJlbGVhc2VkLiAgICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9DT05ORUNUSU9OX0ZBSUxFRF9JTkRfTVNHLCAgICAvKiBUQ0ggY29ubmVjdGlvbiBmYWlsZWQuICAgICAgICAgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfT09TQV9JTkRfTVNHLCAgICAgICAgICAgICAgICAgLyogSW4vT3V0IG9mIHNlcnZpY2UgaW5kaWNhdG9yICAgICAgICAgICovCisgICBNU0dfSURfSExQX0RPUk1BTlRfUkVDT05ORUNUX1JFUV9NU0csICAgIC8qIHRvIGNvbm5lY3QgVENILiAgICAgICAgICAgICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9QT1dFUl9SRVFfTVNHLCAgICAgICAgICAgICAgICAvKiBmb3IgcG93ZXJpbmcgZG93biBITFAgICAgICAgICAgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfVU1fQVBQX0lOU1RBTkNFX01TRywKKyAgIE1TR19JRF9ITFBfVk9JQ0VfQ0FMTF9SRUxFQVNFX01TRywgICAgICAgLyogcG9zc2libGUgYmFja29mZiB0aW1lciBhY3RpdmlhdGlvbiB1cG9uIGVuZCBvZiB2b2ljZSBjYWxsLiAqLworCisgICBNU0dfSURfSExQX1NPQ0tFVF9DUkVBVEVfTVNHLCAgICAgICAgICAgIC8qIGNyZWF0ZSBhIFRDUC9VRFAgU0FQIGZvciBjbGllbnQuICAgICAqLworICAgTVNHX0lEX0hMUF9TT0NLRVRfQklORF9NU0csICAgICAgICAgICAgICAvKiBiaW5kIGFkZHJlc3MvcG9ydCB0byBhIFNBUCB0aGF0J3MgY3JlYXRlZCBieSBhIHNvY2tldCAgKi8KKyAgIE1TR19JRF9ITFBfU09DS0VUX0NPTk5FQ1RfTVNHLCAgICAgICAgICAgLyogY29ubmVjdCBhIGNyZWF0ZWQgc29ja2V0ICAgICAgICAgICAgICovCisgICBNU0dfSURfSExQX1NPQ0tFVF9DTE9TRV9NU0csICAgICAgICAgICAgIC8qIGNsb3NlIGEgY29ubmVjdGVkIHNvY2tldCAgICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9ET1JNQU5UX1JFUV9NU0csICAgICAgICAgICAgICAvKiBhbGlhczogaXM3MDc0QnJvd3NlckRvcm1hbnRSZXEgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfU09DS0VUX1NFTkRfUkVRX01TRywgICAgICAgICAgLyogcmF3IGRhdGEgdG8gYmUgc2VudCB0aHJvdWdoIFRDUC9VRFAgc29ja2V0cyBhdCByZXZlcnNlIGxpbmsuICovCisgICBNU0dfSURfSExQX1VQQl9TRU5EX0RBVEFfTVNHLCAgICAgICAgICAgIC8qIGFsaWFzOiBpczcwNzRCcm93c2VyU2VuZERhdGFncmFtICAgICAqLworICAgTVNHX0lEX0hMUF9VUEJfUkVDVl9EQVRBX1JTUF9NU0csCisgICBNU0dfSURfSExQX1RDUEJfREFUQV9SRUNWX1JTUF9NU0csCisKKyAgIE1TR19JRF9ITFBfSVBWNl9TT0NLRVRfQ09OTkVDVF9NU0csCisKKyAgIE1TR19JRF9ITFBfT1RBUEFfVVBEQVRFX0lORF9NU0csICAgICAgICAgLyogTm90aWZpY2F0aW9uIGZyb20gUEUgd2hlbiBPVEFQQSBjb21wbGV0ZWQgICovCisgICBNU0dfSURfSExQX1NJRF9OSURfQ0hBTkdFX0lORF9NU0csICAgICAgIC8qIDFYIFNJRC9OSUQgY2hhbmdlIG5vdGlmaWNhdGlvbiAgICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF9QS1RfWk9ORV9JRF9DSEFOR0VfSU5EX01TRywgICAvKiAxWCBQYWNrZXQgWk9ORSBJRCBjaGFuZ2Ugbm90aWZpY2F0aW9uICAgICAgKi8KKyAgIE1TR19JRF9ITFBfU1VCTkVUX0lEX0NIQU5HRV9JTkRfTVNHLCAgICAgLyogRE8gU3VibmV0IElEIGNoYW5nZSBub3RpZmljYXRpb24gICAgICAgICAgICovCisgICBNU0dfSURfSExQX0NPTE9SX0NPREVfQ0hBTkdFX0lORF9NU0csICAgIC8qIERPIENvbG9yQ29kZSBjaGFuZ2Ugbm90aWZpY2F0aW9uICAgICAgICAgICAqLworICAgTVNHX0lEX0hMUF8xWF9NVF9DT05OX0lOX05VTExfSU5EX01TRywgICAvKiAxWCBNVCBDb25uZWN0ZWQgaW4gTlVMTCBzdGF0ZSBub3RpZmljYXRpb24gKi8KKworICAgTVNHX0lEX0hMUF9JQ01QX1BJTkdfUkVRX01TRywKKworICAgTVNHX0lEX0hMUF9NSVBfUlJQX01TRywgICAgICAgICAgICAgICAgICAvKiBhbGlhcyB0byBNSVAgaXM3MDc0IGNhbGxzICAgICAgICAgICAgKi8KKyAgIE1TR19JRF9ITFBfTUlQX0FHRU5UX0FEVl9NU0csICAgICAgICAgICAgLyogYWxpYXMgdG8gTUlQIGlzNzA3NCBjYWxscyAgICAgICAgICAgICovCisgICBNU0dfSURfSExQX01JUF9VTV9QUFBfU1RBVFVTX01TRywgICAgICAgIC8qIGluZGljYXRlIG1ham9yIG1pbGVzdG9uZSBmb3IgTUlQIFBQUCBwcm9ncmVzcy4gKi8KKworICAgTVNHX0lEX0hMUF9BTE1QX0NPTk5fT1BFTkVEX01TRywKKyAgIE1TR19JRF9ITFBfQUxNUF9DT05OX0ZBSUxFRF9NU0csCisgICBNU0dfSURfSExQX0FMTVBfQ09OTl9SRUxFQVNFRF9NU0csCisgICBNU0dfSURfSExQX0FMTVBfQ09OTl9DTE9TRURfTVNHLAorICAgTVNHX0lEX0hMUF9YT0ZGX1JFU1BfUkNWRF9NU0csCisgICBNU0dfSURfSExQX0FDU1RSTV9YT05fUkVTUF9SQ1ZEX01TRywKKworICAgTVNHX0lEX0hMUF9TRVJWSUNFX1NUQVRVU19NU0csICAgICAgICAgICAvKiBTZXJ2aWNlIHN0YXR1cyBmcm9tIFBTVyAoMVgpIG9yIEFMTVAgKERPKSAqLworCisgICAvKiB0ZXN0IG1lc3NhZ2VzIHVzZSBvbmx5LiAqLworICAgTVNHX0lEX0hMUF9URVNUX0JST1dTRVJfQ09OTkVDVF9NU0csCisKKyAgIE1TR19JRF9ITFBfUFVSRV9BQ0tfVEFHX1JBVEVfR0VUX0VUUywKKyAgIE1TR19JRF9ITFBfUFVSRV9BQ0tfVEFHX1JBVEVfU0VUX0VUUywKKworICAgTVNHX0lEX0hMUF9USFJPVFRMSU5HX1RNUl9TVEFUVVNfR0VUX0VUUywKKworICAgTVNHX0lEX0hMUF9WQUxfRE1VVl9TRVRfTVNHLAorICAgTVNHX0lEX0hMUF9QU1dTX0RNVV9LRVlHRU5fUlNQX01TRywKKyAgIE1TR19JRF9ITFBfUFNXU19ETVVfS0VZRU5DX1JTUF9NU0csCisKKyAgIE1TR19JRF9ITFBfU09DS0VUX0xJU1RFTl9NU0csCisgICBNU0dfSURfSExQX1NPQ0tFVF9PUFRJT05fTVNHLAorICAgTVNHX0lEX0hMUF9TT0NLRVRfU0hVVERPV05fTVNHLAorICAgTVNHX0lEX0hMUF9TT0NLRVRfTElOR0VSX01TRywKKworICAgTVNHX0lEX0hMUF9WQUxfQ1RBX1VQREFURV9SRVFfTVNHLAorCisgICBNU0dfSURfSExQX0RPX0lOQUNUSVZJVFlfRVhQUl9NU0csIC8vbnVsbCBtZXNzYWdlCisKKyAgIC8qUFJJKi8KKyAgIE1TR19JRF9ITFBfUEFSTV9TRVRfTVNHLAorICAgTVNHX0lEX0hMUF9QQVJNX0dFVF9NU0csCisgICBNU0dfSURfSExQX0RCTV9HRVRfRVNOX01FSURfUlNQX01TRywKKworICAgTVNHX0lEX0hMUF9ETVVfU0VDVVJFX0RBVEFfQ0hBTkdFRF9NU0csCisgICBNU0dfSURfSExQX1ZBTF9QT1dFUl9DWUNMRV9NU0csCisgICBNU0dfSURfSExQX1ZBTF9GTElHSFRfTU9ERV9NU0csCisKKyAgIE1TR19JRF9ITFBfUFNXX01ETl9VUERBVEVEX01TRywKKyAgIE1TR19JRF9ITFBfVUlNX1NJUF9DSEFQX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9NSVBfTU5IQV9BVVRIX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9NSVBfUlJRX0hBU0hfUlNQX01TRywKKyAgIE1TR19JRF9ITFBfVUlNX01JUF9NTkFBQV9BVVRIX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9BS0FfQVVUSF9SU1BfTVNHLAorICAgTVNHX0lEX0hMUF9VSU1fQUNDRVNTX0NIQVBfUkVTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9PUENfUlNQX01TRywgICAgICAgICAgICAgICAgICAgLyogR2V0IEVGTUUzR1BET1BDICAgICovCisgICBNU0dfSURfSExQX1VJTV9VUERBVEVfM0dQRF9PUENfUlNQX01TRywgICAgICAgICAgICAgICAgLyogVXBkYXRlIEVGTUUzR1BET1BDICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9PUE1fUlNQX01TRywgICAgICAgICAgICAgICAgICAgLyogR2V0IEVGM0dQRE9QTSAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9VUERBVEVfM0dQRF9PUE1fUlNQX01TRywgICAgICAgICAgICAgICAgLyogVXBkYXRlIEVGM0dQRE9QTSAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9TSVBDQVBfUlNQX01TRywgICAgICAgICAgICAgICAgLyogR2V0IEVGU0lQQ0FQICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9NSVBDQVBfUlNQX01TRywgICAgICAgICAgICAgICAgLyogR2V0IEVGTUlQQ0FQICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9TSVBVUFBfUlNQX01TRywgICAgICAgICAgICAgICAgLyogR2V0IEVGU0lQVVBQICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9NSVBVUFBfUlNQX01TRywgICAgICAgICAgICAgICAgLyogR2V0IEVGTUlQVVBQICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9TSVBTUF9SU1BfTVNHLCAgICAgICAgICAgICAgICAgLyogR2V0IEVGU0lQU1AgICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9VUERBVEVfM0dQRF9TSVBTUF9SU1BfTVNHLCAgICAgICAgICAgICAgLyogVXBkYXRlIEVGU0lQU1AgICAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9NSVBTUF9SU1BfTVNHLCAgICAgICAgICAgICAgICAgLyogR2V0IEVGTUlQU1AgICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9VUERBVEVfM0dQRF9NSVBTUF9SU1BfTVNHLCAgICAgICAgICAgICAgLyogVXBkYXRlIEVGTUlQU1AgICAgICovCisgICBNU0dfSURfSExQX1VJTV9HRVRfM0dQRF9TSVBQQVBTU19SU1BfTVNHLCAgICAgICAgICAgICAgLyogR2V0IFNJUFBBUFNTICAgICAgICovCisgICBNU0dfSURfSExQX1VJTV9VUERBVEVfM0dQRF9TSVBQQVBTU19SU1BfTVNHLCAgICAgICAgICAgLyogVXBkYXRlIFNJUFBBUFNTICAgICovCisgICBNU0dfSURfSExQX0RPUk1BTkNZX1RJTUVSU19TRVRfTVNHLAorICAgTVNHX0lEX0hMUF9ET1JFVFJZX1RJTUVSU19TRVRfTVNHLAorCisgICBNU0dfSURfSExQX1VNX1BQUF9SRU5FR09USUFUSU9OX01TRywKKyAgIE1TR19JRF9ITFBfU0VUX05FVFdPUktfT1JfUkVMQVlfTU9ERV9NU0csCisKKyAgIE1TR19JRF9ITFBfVUlNX05PVElGWV9SRUdJU1RFUl9NU0csCisgICBNU0dfSURfSExQX1VJTV9GSUxFX0NIQU5HRURfTVNHLAorICAgTVNHX0lEX0hMUF9VSU1fR0VUX0hSUERDQVBfUlNQX01TRywKKyAgIE1TR19JRF9ITFBfVUlNX0dFVF8zR1BEVVBQRVhUX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9HRVRfVENQQ0ZHX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9HRVRfREdDX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9HRVRfTUlQRkxBR1NfUlNQX01TRywKKyAgIE1TR19JRF9ITFBfVUlNX0dFVF9JUFY2Q0FQX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9HRVRfVVNJTV9GSUxFX0xFTkdUSF9SU1BfTVNHLAorICAgTVNHX0lEX0hMUF9VSU1fR0VUX1VTSU1fVVNUX0RBVEFfUlNQX01TRywKKyAgIE1TR19JRF9ITFBfVUlNX0dFVF9VU0lNX0VTVF9EQVRBX1JTUF9NU0csCisgICBNU0dfSURfSExQX1VJTV9HRVRfVVNJTV9BQ0xfREFUQV9SU1BfTVNHLAorCisKKyAgIE1TR19JRF9JTVNfQVBQX05FVFdLX0NPTk5fUkVRLAorICAgTVNHX0lEX0lNU19BUFBfTkVUV0tfUkVMX1JFUSwgLyogbnVsbCBtc2cgKi8KKyAgIE1TR19JRF9JTVNfQVBQX1NFVFVQX1JFUSwKKyAgIE1TR19JRF9JTVNfQVBQX1JFTF9SRVEsCisKKyAgIE1TR19JRF9JTVNfUFBQX1BETl9DT05OX1NFVF9VUF9SU1AsCisgICBNU0dfSURfSU1TX1BQUF9QRE5fQ09OTl9SRUxfUlNQLAorICAgTVNHX0lEX0lNU19QUFBfUEROX1JFTF9JTkQsCisgICBNU0dfSURfSU1TX0lQVjZfQUREUl9DT05GSUdfUlNQLAorICAgTVNHX0lEX0lNU19DQU1fUFBQX1VNX1NUQVRVU19JTkQsCisgICBNU0dfSURfSU1TX0NBTV9QUFBfUk1fU1RBVFVTX0lORCwKKyAgIE1TR19JRF9JTVNfUU9NX0ZMT1dfUkVRX1JTUCwKKyAgIE1TR19JRF9JTVNfUU9NX0ZMT1dfUkVMX1JTUCwKKyAgIE1TR19JRF9JTVNfUU9NX0ZMT1dfUkVMX0lORCwKKyAgIE1TR19JRF9JTVNfUU9NX0ZMT1dfTlRXS19JTklULAorCisgICBNU0dfSURfSU1TX1JMUF9FSFJQRF9BVFRSSUJVVEVfTVNHLAorICAgTVNHX0lEX0lNU19BUFBfQkVBUkVSX1JFUV9NU0csCisKKyAgIC8qTWVzc2FnZSBJZHMgZm9yIEVBS0EqLworICAgTVNHX0lEX0hMUF9TRUNfQUtBQVVUSF9SU1BfTVNHLAorICAgTVNHX0lEX0hMUF9TRUNfREVSSVZFTUtfUlNQX01TRywKKyAgIE1TR19JRF9ITFBfU0VDX0RFUklWRVJFQVVUSFhLRVlfUlNQX01TRywKKyAgIE1TR19JRF9ITFBfU0VDX0RFUklWRU1TS19SU1BfTVNHLAorICAgTVNHX0lEX0hMUF9TRUNfREVSSVZFTUFDX1JTUF9NU0csCisgICBNU0dfSURfSExQX1NFQ19BRVNDUllQVF9SU1BfTVNHLAorICAgTVNHX0lEX0hMUF9HRVRfVVNJTV9JTVNJX1JTUF9NU0csCisgICBNU0dfSURfSExQX0dFVF9VU0lNX0FEX1JTUF9NU0csCisKKyAgIE1TR19JRF9ITFBfUkNQX1JMUEZMT1dfUFJPVE9DT0xfSU5GT19NU0csCisgICBNU0dfSURfSExQX0ZDUF9STFBST1VURV9DSEFOR0VEX01TRywKKworICAgLyptZXNzYWdlIGJldHdlZW4gQ1NTIGFuZCBITFAqLworICAgTVNHX0lEX0hMUF9ERUZBVUxUX0JFQVJFUl9DT05OX1JFUSwKKyAgIE1TR19JRF9ITFBfQ1NTX05FVFdPUktfUkVMX1JFUSwKKyAgIE1TR19JRF9ITFBfRVBTX0JFQVJFUl9TRVRVUF9SRVEsCisgICBNU0dfSURfSExQX0VQU19CRUFSRVJfRElTQ09OTl9SRVEsCisgICBNU0dfSURfSExQX0RBVEFfQ09OTkVDVElPTl9DTUQsCisgICBNU0dfSURfSExQX0lSQVRfU0VUX0lQVjZBRERSX0NNRCwKKyAgIE1TR19JRF9ITFBfVkFMX1VQREFURV9QRE5fSU5BQ1RJVklUWV9USU1FUl9NU0csCisgICBNU0dfSURfSExQX1ZBTF9QQ01UX1BBUkFfTVNHLAorICAgTVNHX0lEX0hMUF9TRU5EX1BJTkdfTVNHLAorICAgTVNHX0lEX0hMUF9QUFBfUk9VVEVfU0VUX01TRywKKyAgIE1TR19JRF9ITFBfQU5fQVVUSF9BTEdPX1NFVF9NU0csCisKKyAgIC8qIENITFAgLT4gUkFURE0gKi8KKyAgIE1TR19JRF9SQVRETV9DSExQX1VMX0RBVEFfUkVRLAorICAgTVNHX0lEX1JBVERNX0NITFBfVUxfQlVGRkVSX1NUQVRVU19OVEYsCisKKyAgIC8qIFNNUCBuZXcgbWVzc2FnZSBiZWxvdyAqLworICAgTVNHX0lEX0hMUF9BTVBfU1VCTkVUX0NIQU5HRV9JTkRfTVNHLAorICAgTVNHX0lEX0hMUF9DU1NfRE9fQVVUSF9GQUlMX1NMRUVQX1RJTUVfRVhQSVJZX0lORCwKKyAgIE1TR19JRF9ITFBfSURQX1VQREFURV9IT19FSFJQRF9FTkFCTEVfSU5ELAorCisgICAvKlZBTCBQU0RNIC0+IEhMUCovCisgICBNU0dfSURfVkFMX0hMUF9QUFBfQ09OTkVDVF9SRVEsCisgICBNU0dfSURfVkFMX0hMUF9QUFBfRElTQ09OTkVDVF9SRVEsCisgICBNU0dfSURfVkFMX0hMUF9QUFBfVVBEQVRFX1JFUSwKKworICAgTVNHX0lEX1ZBTF9ITFBfRUhSUERfQkVBUkVSX0NPTk5FQ1RfUkVRLAorICAgTVNHX0lEX1ZBTF9ITFBfRUhSUERfQkVBUkVSX0RJU0NPTk5FQ1RfUkVRLAorCisgICBNU0dfSURfVkFMX0hMUF9DT05ORUNUSU9OX0ZBTExCQUNLX0NNRCwgICAvKiBjb21tYW5kIEhMUCB0byBmYWxsIGJhY2sgZnJvbSBlSFJQRCB0byAxeC9IUlBEICovCisgICBNU0dfSURfVkFMX0hMUF9DT05ORUNUSU9OX1NVU1BFTkRfQ01ELCAgIC8qIEhMUF9EQVRBX0NPTk5FQ1RJT05fQ01EICovCisgICBNU0dfSURfVkFMX0hMUF9DT05ORUNUSU9OX1JFU1VNRV9DTUQsCisgICBNU0dfSURfVkFMX0hMUF9DT05ORUNUSU9OX0RJU0FCTEVfQ01ELAorICAgTVNHX0lEX1ZBTF9ITFBfQ09OTkVDVElPTl9SRVNFVF9DTUQsCisKKyAgIE1TR19JRF9WQUxfSExQX0VBUE5TWU5DX0RFRklORV9SRVEsIC8qRUFQTiBpbmZvIGZvciBzcHJpbnQgY2FzZSovCisKKyAgIE1TR19JRF9WQUxfSExQX05FVFdPUktfUkVMX1JFUSwgLyogUmVsZWFzZSBhbGwgZGF0YSBjb25uZWN0aW9ucyBieSBvbmUgbXNnICovCisKKyAgIC8qIFVUIG1lc3NhZ2UgYmVsb3cgKi8KKyAgIE1TR19JRF9ITFBfUFBQX0RBVEFfUkVRX01TRywKKyAgIE1TR19JRF9ITFBfUFBQX0RBVEFfSU5EX01TRywKKyAgIE1TR19JRF9ITFBfSU5JVF9OVlJBTV9SRUFEX01TRywKKyAgIE1TR19JRF9ITFBfVVRfQ09ORklHX1BBUkFNX01TRywKKworICAgTVNHX0lEX0hMUF9JUF9EQVRBX1NFTkRfUkVRX01TRywKKyAgIE1TR19JRF9ITFBfUFNXX1JTVkFTX0FCT1JUX1JFUV9NU0csCisgICBNU0dfSURfSExQX1BTV19DUENfQ09OTkVDVF9JTkRfTVNHLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9DSExQX0NPREVfVEFJTCApCisKKworI2VuZGlmIC8qIF9ITFBfTVNHX0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hzY19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaHNjX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVlMWJhYQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2hzY19tc2dpZC5oCkBAIC0wLDAgKzEsMTYxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworICBGSUxFIE5BTUU6ICBoc2NfbXNnaWQuaAorCisgIERFU0NSSVBUSU9OOgorCisgICAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZlbml0aW9ucyBvZiBhbGwgdGhlIEhTQyBtc2cgaWQncy4KKyAgICAKKyAgSElTVE9SWSAgICAgOiAgICAKKyAgICAxLkZpbGUgQ3JlYXRlIGJ5IGF0bGFzLnh1LCAyMDE2LDIsNAorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfSFNDX01TR19JRF9ICisjZGVmaW5lIF9IU0NfTVNHX0lEX0gKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgQ29tbWFuZCBNZXNzYWdlIElEcywgZm9yIEZDUCB0YXNrLCBmb3IgSFNDX0NNRF9NQUlMQk9YLCBFWEVfTUFJTEJPWF8xX0lECisgICAgIFRoZSBtZXNzYWdlIElEcyBmb3IgY29tcG9uZW50cyBzaGFsbCBhbHNvIGJlIHB1dCBpbiBoZXJlLgorICAgICBTYXR5YTogQWRkIGFsbCB0aGUgUEtUX1NJTSByZWxhdGVkIG1lc3NhZ2VzIGludG8gdGhlIGFyZWEgdGhhdCBpcyBkZWZpbmVkCisgICAgIGJldHdlZW4gI2lmZGVmLyNlbmRpZi4uQ29udGFjdCBtZSwgaWYgeW91IG5lZWQgYW55IGNsYXJpZmljYXRpb25zIS4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9IU0NfQ09ERV9CRUdJTiApCisgICAgTVNHX0lEX0hTQ19NUEFfTVNHSURfU1RBUlQgPSAgTVNHX0lEX0hTQ19DT0RFX0JFR0lOLCAgCisgICAgTVNHX0lEX01QQV9SRl9BTlRFTk5BX1JFUVVFU1RfTVNHLAorICAgIE1TR19JRF9NUEFfUkZfUkVMRUFTRV9JTkRfTVNHLAorICAgIE1TR19JRF9NUEFfUkZfU0hVVE9GRl9SU1BfTVNHLAorICAgIE1TR19JRF9NUEFfUkZfQU5URU5OQV9SRUxFQVNFX1JFUV9NU0csCisgICAgTVNHX0lEX01QQV9SRl9BTlRFTk5BX0FTU0lHTl9NU0csCisgICAgTVNHX0lEX01QQV9SRl9BTlRFTk5BX1JFUVVFU1RfQ0FOQ0VMX01TRywKKyAgICBNU0dfSURfSFNDX01QQV9NU0dJRF9MQVNULCAgICAKKworICAgIE1TR19JRF9IU0NfU1BET19NU0dJRF9TVEFSVCwKKyAgICBNU0dfSURfSFNDX0lEUF9IQU5ET0ZGX0NNRF9NU0csCisgICAgTVNHX0lEX0hTQ19JRFBfV0FLRV9DTURfTVNHLAorICAgIE1TR19JRF9IU0NfSURQX1NMRUVQX0NNRF9NU0csCisgICAgTVNHX0lEX0hTQ19JRFBfU1JDSF9ET05FX01TRywKKyAgICBNU0dfSURfSFNDX1NMRUVQX0FDS19NU0csCisgICAgTVNHX0lEX0hTQ19STUNfTUlOSUFDUV9SRVNVTFRfTVNHLAorICAgIE1TR19JRF9IU0NfSURQX0RJU0FCTEVfRE9fU0xPVFRFRF9NU0csCisgICAgTVNHX0lEX0hTQ19JRFBfRU5BQkxFX0RPX1NMT1RURURfTVNHLAorICAgIE1TR19JRF9IU0NfQ0xLX0NBTF9TVEFSVF9NU0csCisgICAgTVNHX0lEX0hTQ19JRFBfVEhBV19SRVFfTVNHLAorICAgIE1TR19JRF9IU0NfVElNRV9QUk9GSUxFX01TRywKKworICAgIE1TR19JRF9IU0NfU1BET19JTklUX1dBUk1fTVNHLAorICAgIE1TR19JRF9IU0NfUkVTWU5DX0lORF9NU0csCisgICAgTVNHX0lEX0hTQ19ET19SRVNZTkNfREVOSUVEX01TRywKKyAgICBNU0dfSURfSFNDX1dBS0VfSU5EX01TRywKKyAgICBNU0dfSURfSFNDX0ZSRUVaRV9NU0csCisgICAgTVNHX0lEX0hTQ19USEFXX01TRywKKyAgICBNU0dfSURfSFNDX0ZNX1JFU1VMVF9VUERBVEVfTVNHLAorICAgIE1TR19JRF9IU0NfU1BfUkVTWU5DX1JFQ09SRF9NU0csCisgICAgTVNHX0lEX0hTQ19TUERPX01TR0lEX0xBU1QsCisgCisgICAgTVNHX0lEX0hTQ19TUDFYX01TR0lEX1NUQVJULAorICAgIE1TR19JRF9MMURfU0xFRVBfUkRZX01TRywKKyAgICBNU0dfSURfSFNDXzFYX1BSSU9SSVRZX0JPT1NUX01TRywKKyAgICBNU0dfSURfSFNDX0RPX1BSSU9SSVRZX0JPT1NUX01TRywKKyAgICBNU0dfSURfSFNDX1NQMVhfTVNHSURfTEFTVCwKKyAKKyAgICBNU0dfSURfSFNDX0NNRF9NU0dJRF9TVEFSVCwKKyAgICBNU0dfSURfTDFEX09PU0FfUkVRX01TRywKKyAgICBNU0dfSURfTDFEX09PU0FfQ09OVF9NU0csCisgICAgTVNHX0lEX0wxRF9PT1NBX1dBS0VVUF9NU0csCisgICAgTVNHX0lEX0hTQ19DTENfT09TQV9TTEVFUF9DTURfTVNHLAorICAgIE1TR19JRF9IU0NfQ0xDX09PU0FfQ09OVF9DTURfTVNHLAorICAgIE1TR19JRF9IU0NfQ0xDX09PU0FfV0FLRV9DTURfTVNHLAorICAgIE1TR19JRF9IU0NfUk1DX09PU0FfUkRZX01TRywKKyAgICBNU0dfSURfSFNDX0wxRF9PT1NBX1JEWV9NU0csCisgICAgTVNHX0lEX0hTQ19BTFRFUk5BVEVfQUZDX01TRywKKyAgICBNU0dfSURfSFNDX1NFVF9TSERSX1NWRE9fT1BfTU9ERV9NU0csCisgICAgTVNHX0lEX0hTQ19TTEVFUE9WRVJfSU5UX0NPTVBfTVNHLCAKKworICAgIC8qIElSQVQgKi8KKyAgICBNU0dfSURfSFNDX0lOU1BfU1VTUEVORF9TTEVFUF9DTURfTVNHLAorICAgIE1TR19JRF9MTDFBX1JNQ19SQVRfU1RBVFVTX0lORF9NU0csCisgICAgTVNHX0lEX0xMMUFfUk1DX01PREVfU1RBVFVTX0lORF9NU0csCisgICAgTVNHX0lEX0xMMUFfUk1DX0FDVElWRV9NRUFTVVJFX0lORk9fSU5EX01TRywKKyAgICBNU0dfSURfTEwxQV9FVlNUQU5EQllfTUVBU1VSRV9SRVFfTVNHLAorICAgIE1TR19JRF9MTDFBX0VWU1RBTkRCWV9NRUFTX0RPTkVfSU5EX01TRywKKyAgICBNU0dfSURfTEwxQV9FVlNUQU5EQllfR0FQX1NUT1BfQ05GX01TRywKKyAgICBNU0dfSURfTEwxQV9FVlNUQU5EQllfQVVUT19HQVBfRU5EX1JFUV9NU0csCisgICAgTVNHX0lEX0xMMUFfRVZTVEFOREJZX0FVVE9fR0FQX1NUT1BfUkVTX01TRywKKyAgICBNU0dfSURfTEwxQV9FVlNUQU5EQllfQVVUT19HQVBfUkVRX01TRywKKyAgICBNU0dfSURfTEwxQV9FVlNUQU5EQllfQVVUT19HQVBfUkVRX0NBTkNFTF9NU0csCisgICAgTVNHX0lEX0xMMUFfUk1DX1NFVF9SQVRfUkVRX01TRywKKyAgICBNU0dfSURfSFNDX0xMMUFfTVNHSURfTEFTVCwKKyAgICBNU0dfSURfSFNDX0NTU19TVVNQRU5EX1JFU1VNRV9DTURfTVNHLAorICAgIE1TR19JRF9IU0NfQzJLX1NJTV9JTkRFWF9JTkZPX01TRywKKyAgICBNU0dfSURfSFNDX0MyS19NTU9fR0FQX0lORk9fTVNHLAorICAgIE1TR19JRF9IU0NfQzJLX1JUQkFfQ0hBTk5FTF9TVEFUVVNfSU5GT19NU0csCisgICAgTVNHX0lEX0hTQ19DMktfSFNDX01QQV9TVEFUVVNfSU5GT19NU0csCisgICAgTVNHX0lEX0xMMUFfRVZTVEFOREJZX1NQRUNJRklDX0dBUF9SRVFfTVNHLAorCisgICAgTVNHX0lEX0hTQ19DTENfU0lCOF9JTkZPX0NGR19NU0csCisgICAgTVNHX0lEX0hTQ19TSUI4X1RJTUlOR19TWU5DX1JFUSwKKyAgICBNU0dfSURfSFNDX1NJQjhfVElNSU5HX1NZTkNfQ05GLAorICAgIE1TR19JRF9IU0NfU0lCOF9USU1JTkdfU1RBVEVfVElNRVJfRVhQSVJZLAorICAgIE1TR19JRF9IU0NfUkVDT1ZFUl9USU1JTkdfQ05GLAorICAgIE1TR19JRF9MTDFBX0wxRF9NT0RFX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0xMMUFfQ0xDX0xURV9TQ0FOX0MyS19BQ1RJVkVfUEFSQU1TX0lORCwKKyAgICBNU0dfSURfTEwxQV9JRFBfU0lHTkFMX1BST1RFQ1RfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfTEwxQV9QU1dfU0lHTkFMX1BST1RFQ1RfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfSFNDX0lORklOSVRFX1NMRUVQX1JFUV9NU0csICAgIAorICAgIE1TR19JRF9DMktfU0xFRVBfQ1RSTF9NU0csCisgICAgTVNHX0lEX0hTQ19GUkNfU1lOQ19JTkZPX1JFUFRfTVNHLAorICAgIE1TR19JRF9IU0NfQ1NTX1BTRVVET19TRVRfUkFUX0lORCwKKwlNU0dfSURfSFNDX0NTU19TRVRfUkFUX0dBUF9TVE9QX1JFUSwKKyAgICBNU0dfSURfSFNDX0NNRF9NU0dJRF9MQVNULAorCisgICAgTVNHX0lEX0lSUV9UT19ISVNSX1NZU1RJTUUsCisKKyNpZiBkZWZpbmVkKF9fRFlOQU1JQ19DQUNIRV9MT0NLX0NFTlRSQUxfQ09OVFJPTF9TVVBQT1JUX18pCisgICAgTVNHX0lEX1hMMV9EQ0xDX0xPQ0tfVU5MT0NLX0lORCwKKyAgICBNU0dfSURfRVZMMV9EQ0xDX0xPQ0tfVU5MT0NLX0lORCwKKyNlbmRpZgorTU9EVUxFX01TR19FTkQoIE1TR19JRF9IU0NfQ09ERV9UQUlMICkKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2h0dHBfdGxzX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9odHRwX3Rsc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2N2Q1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9odHRwX3Rsc19tc2dpZC5oCkBAIC0wLDAgKzEsMTE0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgaHR0cF90bHNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAgIAorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA5IDE4IDIwMjAgamluZy5jdWkKKyAqIFtNT0xZMDA1NjUyOTVdIFRlbHVzIHJlcXVpcmVtZW50ICBURUxVUy12MTEuMF9Wb0xURS0xMzcgYW5kIFRFTFVTLXYxMS4wX1ZvTFRFLTEzOCBETlMgRmFpbG92ZXIKKyAqIHNwZWNpZnlfaXA6aW50ZXJmYWNlIHBhcnQuCisgKgorICogMDkgMTQgMjAyMCBqaW5nLmN1aQorICogW01PTFkwMDU2NTI5NV0gVGVsdXMgcmVxdWlyZW1lbnQgIFRFTFVTLXYxMS4wX1ZvTFRFLTEzNyBhbmQgVEVMVVMtdjExLjBfVm9MVEUtMTM4IEROUyBGYWlsb3ZlcgorICogc3BlY2lmeSBJUDppbnRlcmZhY2UgcGFydC4KKyAqCisgKiAwOSAwMSAyMDIwIGppbmcuY3VpCisgKiBbTU9MWTAwNTY1Mjk1XSBUZWx1cyByZXF1aXJlbWVudCAgVEVMVVMtdjExLjBfVm9MVEUtMTM3IGFuZCBURUxVUy12MTEuMF9Wb0xURS0xMzggRE5TIEZhaWxvdmVyCisgKiAJCisgKiAJc3BlY2lmeSBpcDppbnRlcmZhY2UgcGFydC4KKyAqIAlFV1NQMDAwMDE0OTg4MAorICoKKyAqIDA1IDIwIDIwMTkgdmlrYXMuc3JpdmFzdGF2YQorICogW01PTFkwMDQwNzQ3OF0gVExTIGNoZWNraW4gdG8gU1VCTUFSSU5FLkRFVgorICogCQorICogCVtNT0xZMDA0MDc0NzhdCVRMUyBTdXBwb3J0CisgKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9IVFRQX1RMU19NU0dJRF9IXworI2RlZmluZSBfSFRUUF9UTFNfTVNHSURfSF8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0hUVFBfVExTX0NPREVfQkVHSU4gKQorCisgICAgICAgIC8qIEFQUCAtPiBIVFRQICovCisgICAgICAgIE1TR19JRF9BUFBfSFRUUF9TRVRfQ0hBTk5FTF9SRVE9TVNHX0lEX0hUVFBfVExTX0NPREVfQkVHSU4sCisgICAgICAgIE1TR19JRF9BUFBfSFRUUF9SRU1PVkVfQ0hBTk5FTF9SRVEsCisgICAgICAgIE1TR19JRF9BUFBfSFRUUF9SRVFVRVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX0NBTkNFTF9SRVFVRVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX1BPU1RfQ09OVEVOVF9SU1AsCisgICAgICAgIE1TR19JRF9BUFBfSFRUUF9SRUFEX0NPTlRFTlRfSU5ELAorICAgICAgICBNU0dfSURfQVBQX0hUVFBfVVNFUk5BTUVfUEFTU1dEX1FVRVJZX1JTUCwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX0NMRUFSX1JFUSwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX0NPTkZJR19SRVEsCisgICAgICAgIE1TR19JRF9BUFBfU09DX05PVElGWV9JTkQsIAorICAgICAgICBNU0dfSURfQVBQX0hUVFBfRk9SQ0VfQ0xPU0VfQ09OTkVDVElPTl9JTkQsCisKKyAgICAgICAgLyogSFRUUCAtPiBBUFAgKi8KKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX1NFVF9DSEFOTkVMX0NORiwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX1JFTU9WRV9DSEFOTkVMX0NORiwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX1JFUVVFU1RfQ05GLAorICAgICAgICBNU0dfSURfQVBQX0hUVFBfQ0FOQ0VMX1JFUVVFU1RfQ05GLAorICAgICAgICBNU0dfSURfQVBQX0hUVFBfUE9TVF9DT05URU5UX0lORCwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX1JFQURfQ09OVEVOVF9SU1AsCisgICAgICAgIE1TR19JRF9BUFBfSFRUUF9VU0VSTkFNRV9QQVNTV0RfUVVFUllfSU5ELAorICAgICAgICBNU0dfSURfQVBQX0hUVFBfQ0xFQVJfQ05GLAorICAgICAgICBNU0dfSURfQVBQX0hUVFBfQ09ORklHX0NORiwKKyAgICAgICAgTVNHX0lEX0FQUF9IVFRQX05PVElGWV9JTkQsCisKKyAgICAgICAgLyogPCBUTFMgU0FQIFN0YXJ0cyA+ICovCisgICAgICAgIE1TR19JRF9BUFBfVExTX05PVElGWV9JTkQsCisgICAgICAgIE1TR19JRF9BUFBfVExTX0FMRVJUX0lORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9IVFRQX1RMU19DT0RFX1RBSUwgKQorI2VuZGlmIC8qIF9IVFRQX1RMU19NU0dJRF9IXyAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvaWRjX21kX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pZGNfbWRfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTZjMjhhCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaWRjX21kX21zZ2lkLmgKQEAgLTAsMCArMSw2OSBAQAorI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfSURDX01EX01TR0lEX0gKKyNkZWZpbmUgX0lEQ19NRF9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9JRENfTURfQ09ERV9CRUdJTiApCisKKworLyogTVNHIEZST00gUlggKi8KK01TR19JRF9FTDFfQ0hfSURDX0ZSRVFfTlRGLAorTVNHX0lEX05MMV9DVFJMX0lEQ19GUkVRX05URiwKK01TR19JRF9FTDFfQ0hfSURDX0ZSQU1FX0NGR19OVEYsCitNU0dfSURfTkwxX0NUUkxfSURDX0ZSQU1FX0NGR19OVEYsCitNU0dfSURfRUwxX0NIX0lEQ19TQ0hfTlRGLAorTVNHX0lEX05MMV9DVFJMX0lEQ19TQ0hfTlRGLAorTVNHX0lEX0VMMV9DSF9JRENfRFJYX0NPTkZJR19OVEYsCitNU0dfSURfTkwxX0NUUkxfSURDX0RSWF9DT05GSUdfTlRGLAorTVNHX0lEX0VMMV9DSF9JRENfSE9fTlRGLAorTVNHX0lEX05MMV9DVFJMX0lEQ19IT19OVEYsCitNU0dfSURfRUwxX0NIX0lEQ19SU1ZBU19TVVNQRU5EX05URiwKK01TR19JRF9OTDFfQ1RSTF9JRENfUlNWQVNfU1VTUEVORF9OVEYsCitNU0dfSURfRUwxX1BIU19JRENfUFNJTV9TV0FQX1JFUSwKK01TR19JRF9OTDFfU0NIRURfSURDX1BTSU1fU1dBUF9SRVEsCitNU0dfSURfRUwxX1BIU19JRENfUFNJTV9TV0FQX1BUTl9VUERUX05URiwKK01TR19JRF9OTDFfU0NIRURfSURDX1BTSU1fU1dBUF9QVE5fVVBEVF9OVEYsCitNU0dfSURfRUwxX1BIU19JRENfUlhfR0FQX1NVU1BfQ05GLAorTVNHX0lEX05MMV9TQ0hFRF9JRENfUlhfR0FQX1NVU1BfQ05GLAorTVNHX0lEX0VMMV9JUlRfSURDX0FDVFZfTlRGLAorTVNHX0lEX05MMV9DVFJMX0lEQ19BQ1RWX05URiwKK01TR19JRF9OTDFfQ1RSTF9JRENfQldQX05URiwKK01TR19JRF9OTDFfU0NIRURfSURDX1NDRUxMX0FDVFZfTlRGLAorCisvKiBNU0cgRlJPTSBUWCAqLworTVNHX0lEX0VMMVRYX0lEQ19TQ0VMTF9BQ1RWX05URiwKK01TR19JRF9OTDFUWF9JRENfUFJPVEVDVF9OVEYsCisKKy8qIE1TRyBGUk9NIE1FQVMgKi8KK01TR19JRF9FTDFfTVBDX0lEQ19NRUFTX09CSkVDVF9OVEYsCitNU0dfSURfTkwxX01QQ19JRENfTUVBU19PQkpFQ1RfTlRGLAorCisvKiBNU0cgRlJPTSBFTUFDICovCitNU0dfSURfRU1BQ19JRENfSURDX1BST1RFQ1RfTlRGLAorCisvKiBNU0cgRlJPTSBFUlJDICovCitNU0dfSURfRVJSQ19JRENfSURDX0NGR19OVEYsCitNU0dfSURfRVJSQ19JRENfSURDX0xURV9QUk9URUNUX05URiwKK01TR19JRF9OQ0NDSV9JRENfV0lGSV9DSEFOTkVMX1dSSVRFX1JFVFJZX0lORCwKK01TR19JRF9OQ0NDSV9JRENfV0lGSV9DSEFOTkVMX1JFQURZX1RPX1JFQURfSU5ELAorTVNHX0lEX05DQ0NJX0lEQ19CVF9DSEFOTkVMX1dSSVRFX1JFVFJZX0lORCwKK01TR19JRF9OQ0NDSV9JRENfQlRfQ0hBTk5FTF9SRUFEWV9UT19SRUFEX0lORCwKKworTVNHX0lEX0lEQ19URE1fTURfU0NIRURfQ01ELAorTVNHX0lEX0lEQ19MVEVfSU5URl9ERVRFQ1RfQ01ELAorTVNHX0lEX0lEQ19OUl9JTlRGX0RFVEVDVF9DTUQsCisKKyNpZiAoZGVmaW5lZChDSElQMTA5OTIpKQorLyogTVNHIEZST00gTDUgKi8KK01TR19JRF9JRENfTlJUQ19TVEFUSUNfQ0ZHX1JFUSwKKyNlbmRpZgorCisjaWYgKChkZWZpbmVkKF9fSURDX0VOQUJMRURfXykpICYmIChkZWZpbmVkIChfX0lEQ19OUlRDX0VOQUJMRV9fKSkpCitNU0dfSURfSURDX05SVENfRFlOQU1JQ19DRkdfUkVRLAorTVNHX0lEX0VMMV9JRENfTlJUQ19UWF9QT1dFUl9CUkVBQ0hfVEhSRVNIT0xEX0lORCwKK01TR19JRF9OTDFfSURDX05SVENfVFhfUE9XRVJfQlJFQUNIX1RIUkVTSE9MRF9JTkQsCisjZW5kaWYKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9JRENfTURfQ09ERV9UQUlMICkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pZGNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2lkY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0N2E0NGEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pZGNfbXNnaWQuaApAQCAtMCwwICsxLDEyMyBAQAorI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfSURDX01TR0lEX0gKKyNkZWZpbmUgX0lEQ19NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9JRENfQ09ERV9CRUdJTiApCisKKyNpZiAhZGVmaW5lZCAoX19JRENfTDFTSU1fXykKKworCisvKioqKiogU1cgTVNHIGZyb20gTUQgdG8gQ09OU1lTICoqKioqLworCitNU0dfSURfSURDX0xURV9ERUZBVUxUX1BBUkFNX0lORCwKK01TR19JRF9JRENfTlJfREVGQVVMVF9QQVJBTV9JTkQsCitNU0dfSURfSURDX0xURV9PUEVSX0ZSRVFfSU5ELAorTVNHX0lEX0lEQ19OUl9PUEVSX0ZSRVFfSU5ELAorTVNHX0lEX0lEQ19MVEVfV0lGSV9VTlNBRkVfRlJFUV9CTVBfSU5ELAorTVNHX0lEX0lEQ19MVEVfV0lGSV9EQkRDX0IwX1VOU0FGRV9GUkVRX0JNUF9JTkQsCitNU0dfSURfSURDX0xURV9XSUZJX0RCRENfQjFfVU5TQUZFX0ZSRVFfQk1QX0lORCwKK01TR19JRF9JRENfTFRFX0JUX1VOU0FGRV9GUkVRX0JNUF9JTkQsCitNU0dfSURfSURDX05SX1dJRklfVU5TQUZFX0ZSRVFfQk1QX0lORCwKK01TR19JRF9JRENfTlJfV0lGSV9EQkRDX0IwX1VOU0FGRV9GUkVRX0JNUF9JTkQsCitNU0dfSURfSURDX05SX1dJRklfREJEQ19CMV9VTlNBRkVfRlJFUV9CTVBfSU5ELAorTVNHX0lEX0lEQ19OUl9CVF9VTlNBRkVfRlJFUV9CTVBfSU5ELAorTVNHX0lEX0lEQ19MVEVfRFJYX1BBVFRFUk5fSU5ELAorTVNHX0lEX0lEQ19OUl9EUlhfUEFUVEVSTl9JTkQsCitNU0dfSURfSURDX01EX0lEQ19SMTFfUEFSQU1fSU5ELAorTVNHX0lEX0lEQ19NRF9TV19NU0dfQUNLX0lORCwKK01TR19JRF9JRENfTFRFX1RSWF9HUk9VUF9JTkQsCitNU0dfSURfSURDX01EX0lEQ19JTkZPX0lORCwgICAgLy8gVGhlIGZpcnN0IFNXIE1TRyBmb3IgaGFuZHNoYWtpbmcsIHRoZSBJRCBtdXN0IGJlIDE3CitNU0dfSURfSURDX05SX1RSWF9HUk9VUF9JTkQsCitNU0dfSURfSURDX01EX1BBVFRFUk5fQ0ZHX0lORCwKKworLyoqKioqIFNXIE1TRyBmcm9tIENPTlNZUyB0byBNRCAqKioqKi8KKworTVNHX0lEX0lEQ19XSUZJX0RFRkFVTFRfUEFSQU1fTlRGLAorTVNHX0lEX0lEQ19CVF9ERUZBVUxUX1BBUkFNX05URiwKK01TR19JRF9JRENfV0lGSV9PUEVSX0ZSRVFfTlRGLAorTVNHX0lEX0lEQ19CVF9PUEVSX0ZSRVFfTlRGLAorTVNHX0lEX0lEQ19DT05TWVNfU0VORF9TV19NU0dfQ05GLAorI2lmICFkZWZpbmVkKENISVAxMDk5MikKK01TR19JRF9JRENfV0lGSV9MQUFfUkVMRUFTRV9OVEYsCisjZWxzZQorLyoqKipIVyBTSUdOQUwtPiBTVyBNU0cgdHJhbnNtaXQgYnkgY2NjaSBwYXRoOiBmcm9tIG1vZGVtIHRvIGNvbnN5cyoqKiovCitNU0dfSURfSURDX0xURV9TVEFURV9JTkQsICAgIC8vaW50ZXJuYWwgbXNnIGlkOjI1CitNU0dfSURfSURDX05SX1NUQVRFX0lORCwKK01TR19JRF9JRENfTFRFX1NDRUxMX0FDVFZfSU5ELAorTVNHX0lEX0lEQ19OUl9TQ0VMTF9BQ1RWX0lORCwKK01TR19JRF9JRENfTURfVFhfQldQX0ZXX0lORCwKK01TR19JRF9JRENfTURfUlhfQldQX0ZXX0lORCwKK01TR19JRF9JRENfTURfVFhfU1VTUF9JTkQsICAgIC8vaW50ZXJuYWwgbXNnIGlkOjMxCisKKy8qKioqSFcgU0lHTkFMLT4gU1cgTVNHIHRyYW5zbWl0IGJ5IGNjY2kgcGF0aDogZnJvbSBjb25zeXMgdG8gbW9kZW0qKioqLworTVNHX0lEX0lEQ19XSUZJX01BWF9QT1dFUl9CQUNLT0ZGX05URiwgICAgLy9pbnRlcm5hbCBtc2cgaWQ6MzIKK01TR19JRF9JRENfV0lGSV9BQ1RWX0JTU19OVEYsCitNU0dfSURfSURDX1dJRklfTEFBX1JFTEVBU0VfTlRGLAorTVNHX0lEX0lEQ19CVF9NQVhfUE9XRVJfQkFDS09GRl9OVEYsCitNU0dfSURfSURDX0NPTlNZU19SRVNFTkRfTlRGLAorTVNHX0lEX0lEQ19DT05TWVNfVERNX05URiwKKworTVNHX0lEX0lEQ19MVEVfSU5UX0RFVEVDVF9JTkQsCitNU0dfSURfSURDX05SX0lOVF9ERVRFQ1RfSU5ELAorI2VuZGlmCisKKyNlbHNlCisKK01TR19JRF9JRENfTFRFX0RFRkFVTFRfUEFSQU1fSU5EX0lMTSwKK01TR19JRF9JRENfTlJfREVGQVVMVF9QQVJBTV9JTkRfSUxNLAorTVNHX0lEX0lEQ19MVEVfT1BFUl9GUkVRX0lORF9JTE0sCitNU0dfSURfSURDX05SX09QRVJfRlJFUV9JTkRfSUxNLAorTVNHX0lEX0lEQ19MVEVfV0lGSV9VTlNBRkVfRlJFUV9CTVBfSU5EX0lMTSwKK01TR19JRF9JRENfTFRFX1dJRklfREJEQ19CMF9VTlNBRkVfRlJFUV9CTVBfSU5EX0lMTSwKK01TR19JRF9JRENfTFRFX1dJRklfREJEQ19CMV9VTlNBRkVfRlJFUV9CTVBfSU5EX0lMTSwKK01TR19JRF9JRENfTFRFX0JUX1VOU0FGRV9GUkVRX0JNUF9JTkRfSUxNLAorTVNHX0lEX0lEQ19OUl9XSUZJX1VOU0FGRV9GUkVRX0JNUF9JTkRfSUxNLAorTVNHX0lEX0lEQ19OUl9XSUZJX0RCRENfQjBfVU5TQUZFX0ZSRVFfQk1QX0lORF9JTE0sCitNU0dfSURfSURDX05SX1dJRklfREJEQ19CMV9VTlNBRkVfRlJFUV9CTVBfSU5EX0lMTSwKK01TR19JRF9JRENfTlJfQlRfVU5TQUZFX0ZSRVFfQk1QX0lORF9JTE0sCitNU0dfSURfSURDX0xURV9EUlhfUEFUVEVSTl9JTkRfSUxNLAorTVNHX0lEX0lEQ19OUl9EUlhfUEFUVEVSTl9JTkRfSUxNLAorTVNHX0lEX0lEQ19NRF9JRENfUjExX1BBUkFNX0lORF9JTE0sCitNU0dfSURfSURDX01EX1NXX01TR19BQ0tfSU5EX0lMTSwKK01TR19JRF9JRENfTFRFX1RSWF9HUk9VUF9JTkRfSUxNLAorTVNHX0lEX0lEQ19NRF9JRENfSU5GT19JTkRfSUxNLCAgICAvLyBUaGUgZmlyc3QgU1cgTVNHIGZvciBoYW5kc2hha2luZywgdGhlIElEIG11c3QgYmUgMTcKK01TR19JRF9JRENfTlJfVFJYX0dST1VQX0lORF9JTE0sCitNU0dfSURfSURDX01EX1BBVFRFUk5fQ0ZHX0lORF9JTE0sCisKKy8qKioqKiBTVyBNU0cgZnJvbSBDT05TWVMgdG8gTUQgKioqKiovCisKK01TR19JRF9JRENfV0lGSV9ERUZBVUxUX1BBUkFNX05URl9JTE0sCitNU0dfSURfSURDX0JUX0RFRkFVTFRfUEFSQU1fTlRGX0lMTSwKK01TR19JRF9JRENfV0lGSV9PUEVSX0ZSRVFfTlRGX0lMTSwKK01TR19JRF9JRENfQlRfT1BFUl9GUkVRX05URl9JTE0sCitNU0dfSURfSURDX0NPTlNZU19TRU5EX1NXX01TR19DTkZfSUxNLAorI2lmICFkZWZpbmVkKENISVAxMDk5MikKK01TR19JRF9JRENfV0lGSV9MQUFfUkVMRUFTRV9OVEZfSUxNLAorI2Vsc2UKKy8qKioqSFcgU0lHTkFMLT4gU1cgTVNHIHRyYW5zbWl0IGJ5IGNjY2kgcGF0aDogZnJvbSBtb2RlbSB0byBjb25zeXMqKioqLworTVNHX0lEX0lEQ19MVEVfU1RBVEVfSU5EX0lMTSwgICAgLy9pbnRlcm5hbCBtc2cgaWQ6MjUKK01TR19JRF9JRENfTlJfU1RBVEVfSU5EX0lMTSwKK01TR19JRF9JRENfTFRFX1NDRUxMX0FDVFZfSU5EX0lMTSwKK01TR19JRF9JRENfTlJfU0NFTExfQUNUVl9JTkRfSUxNLAorTVNHX0lEX0lEQ19NRF9UWF9CV1BfRldfSU5EX0lMTSwKK01TR19JRF9JRENfTURfUlhfQldQX0ZXX0lORF9JTE0sCitNU0dfSURfSURDX01EX1RYX1NVU1BfSU5EX0lMTSwgICAgLy9pbnRlcm5hbCBtc2cgaWQ6MzEKKworLyoqKipIVyBTSUdOQUwtPiBTVyBNU0cgdHJhbnNtaXQgYnkgY2NjaSBwYXRoOiBmcm9tIGNvbnN5cyB0byBtb2RlbSoqKiovCitNU0dfSURfSURDX1dJRklfTUFYX1BPV0VSX0JBQ0tPRkZfTlRGX0lMTSwgICAgLy9pbnRlcm5hbCBtc2cgaWQ6MzIKK01TR19JRF9JRENfV0lGSV9BQ1RWX0JTU19OVEZfSUxNLAorTVNHX0lEX0lEQ19XSUZJX0xBQV9SRUxFQVNFX05URl9JTE0sCitNU0dfSURfSURDX0JUX01BWF9QT1dFUl9CQUNLT0ZGX05URl9JTE0sCitNU0dfSURfSURDX0NPTlNZU19SRVNFTkRfTlRGX0lMTSwKK01TR19JRF9JRENfQ09OU1lTX1RETV9OVEZfSUxNLAorCitNU0dfSURfSURDX0xURV9JTlRfREVURUNUX0lORF9JTE0sCitNU0dfSURfSURDX05SX0lOVF9ERVRFQ1RfSU5EX0lMTSwKKyNlbmRpZgorCisjZW5kaWYKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9JRENfQ09ERV9UQUlMICkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbWNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0Y2NjZTgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbWNfbXNnaWQuaApAQCAtMCwwICsxLDM5MiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGltY19tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0lNQ19NU0dJRF9IXworI2RlZmluZSBfSU1DX01TR0lEX0hfCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNkZWZpbmUgSU1DX0lOX1JBTkdFICg4MDApCisKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0gSU1DX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9JTUNfQ09ERV9CRUdJTiApCisKKyAgLyogeyAqLworICBNU0dfSURfSU1DX0JFR0lOLAorCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgLyogdGhpcyBpcyBmb3Igdm0gZXh0ZXJuYWwgbWVzc2FnZXMgKi8KKyAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICBNU0dfSURfSU1DX0VYX0JFR0lOLAorCisgICAgLyogd2l0aCBpbXMgcHJveHkgKi8KKyAgICBNU0dfSURfQVRQX0lNQ19CRUdJTiwKKyAgICAgIC8qIGluamVjdCAqLyAKKyAgICAgIE1TR19JRF9BVFBfSU1DX0xPT1BfVEVTVF9SU1AsCisKKyAgICAgIE1TR19JRF9BVFBfSU1DX1VFX01PREVfVVBEQVRFX1JFUSwKKyAgICAgIE1TR19JRF9BVFBfSU1DX0lNU1ZPUFNfTk9USUZJQ0FUSU9OX1JFUSwKKyAgICAgIE1TR19JRF9BVFBfSU1DX0NFTExfSU5GT19VUERBVEVfUkVRLAorICAgICAgTVNHX0lEX0FUUF9JTUNfRUlNU0lORk9fUkVRLAorICAgICAgTVNHX0lEX0FUUF9JTUNfUE9XRVJfT0ZGX1JFUSwKKyAgICAgIE1TR19JRF9BVFBfSU1DX09PU19TVEFSVF9SRVEsCisgICAgICBNU0dfSURfQVRQX0lNQ19PT1NfRU5EX1JFUSwKKyAgICAgIE1TR19JRF9BVFBfSU1DX0VNQl9TMV9TVVBQX1JFUSwKKyAgICAgIE1TR19JRF9BVFBfSU1DX0lOVEVSX1JBVF9TVEFUVVNfSU5ELAorICAgICAgTVNHX0lEX0FUUF9JTUNfQVVUT19GQVNUX1JFVFVSTl9JTkQsCisgICAgICBNU0dfSURfQVRQX0lNQ19DU19DQUxMX1NUQVRVU19JTkQsCisgICAgICBNU0dfSURfQVRQX0lNQ19NVF9DU19QQUdJTkdfSU5ELAorICAgICAgTVNHX0lEX0FUUF9JTUNfUkxNX0VWRU5UX0lORCwKKyAgICAgIE1TR19JRF9BVFBfSU1DX0lNU19ERVJFR19SRVEsCisgICAgICBNU0dfSURfQVRQX0lNQ19FTUJfU1VQUE9SVF9SRVEsCisKKyAgICAgIC8qIFVTU0kgKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX1NFTkRfVVNTRF9SRVEsCisKKyAgICAgIC8qIHNzICovCisgICAgICBNU0dfSURfQVRQX0lNQ19TU19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0FUUF9JTUNfU1NfQ09ORkVSRU5DRV9DT05UUk9MX1JFUSwgICAgICAgIAorICAgICAgICBNU0dfSURfQVRQX0lNQ19TU19FQ1RfUkVRLAorICAgICAgICAvKiArRUFQUFJPVkUgKi8KKyAgICAgICAgTVNHX0lEX0FUUF9JTUNfU1NfRkROX0NIRUNLX0NORiwKKyAgICAgIE1TR19JRF9BVFBfSU1DX1NTX0VORCwKKworICAgICAgLyogY2MgKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX0NDX0JFR0lOLAorICAgICAgICAvKiArRUNDVFJMICovCisgICAgICAgIE1TR19JRF9BVFBfSU1DX0NBTExfQ09OVFJPTF9WMl9SRVEsCisgICAgICAgIC8qICtFQVBQUk9WRSAqLworICAgICAgICBNU0dfSURfQVRQX0lNQ19GRE5fRUNDX0NIRUNLX0NORiwKKyAgICAgIE1TR19JRF9BVFBfSU1DX0NDX0VORCwKKworICAgICAgLyogY29uZmlndXJlICovCisgICAgICBNU0dfSURfQVRQX0lNQ19FQ0ZHX1NFVF9SRVEsIC8vIEFUUCAtLT4gSU1DICAgICAgCisgICAgICBNU0dfSURfQVRQX0lNQ19FQ0ZHX0dFVF9SRVEsIC8vIEFUUCAtLT4gSU1DCisgICAgICBNU0dfSURfQVRQX0lNQ19FQ0ZHX1JFU0VUX1JFUSwgLy8gQVRQIC0tPiBJTUMgICAgICAKKyAgICAgIE1TR19JRF9BVFBfSU1DX0VQVlNfU0VUX1JFUSwgLy8gQVRQIC0tPiBJTUMKKyAgICAgIE1TR19JRF9BVFBfSU1DX0VQVlNfR0VUX1JFUSwgLy8gQVRQIC0tPiBJTUMKKyAgICAgIE1TR19JRF9BVFBfSU1DX0VNT0NGR19SRVEsICAgLy8gQVRQLS0+SU1DCisgICAgICAKKyAgICAgIC8qIEFUK0NEVT0wICovCisgICAgICBNU0dfSURfQVRQX0lNQ19RVUVSWV9VUklfVFlQRV9SRVEsCisKKyAgICAgIC8qICtFU1JGQUlMOjxjYXVzZT4gKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX1NFUlZJQ0VfUkVRVUVTVF9GQUlMX1JFUSwKKworICAgICAgLyogdGltZXIgdGVzdGluZyAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfVElNRVJfVEVTVF9SRVEsCisgICAgICBNU0dfSURfQVRQX0lNQ19USU1FUl9URVNUX0NORiwKKworICAgICAgLyogZW1lcmdlbmN5IGFjY2VzcyBpZCwgcmVxdWlyZW1lbnQgZm9yIEFUJlQgKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX1NFVF9FTUVSR0VOQ1lfQUlEX1JFUSwKKworICAgICAgLyogQVQrQ0lTUlZDQyAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfQ0lTUlZDQ19SRVEsCisgICAgICBNU0dfSURfQVRQX0lNQ19DSVNSVkNDX0NORiwKKyAgICAgIAorICAgICAgLyogQVQrRVdGQ1AgKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX1dGQ19QUk9GSUxFX1JFUSwKKworICAgICAgLyogQVQrRUlNU1JDUyAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfUkNTX0ZFQVRVUkVfUkVRLAorICAgICAgTVNHX0lEX0FUUF9JTUNfU1dJVENIX1BSRUZFUl9SQVRfUkVRLAorCisgICAgICAvKiBBVCtFQ01QQ0lEICovCisgICAgICBNU0dfSURfQVRQX0lNQ19DQU1QRURfQ0VMTF9JRF9VUERBVEVfUkVRLAorCisgICAgICAvKiBBVCtFU0lQSEVBREVSICovCisgICAgICBNU0dfSURfQVRQX0lNQ19TSVBfSEVBREVSX1JFUSwKKworICAgICAgLyogUlRUICovCisgICAgICBNU0dfSURfQVRQX0lNQ19SVFRfQ0FQQUJJTElUWV9SRVEsCisgICAgICBNU0dfSURfQVRQX0lNQ19DQ19SVFRfT1BfUkVRLAorICAgICAgCisgICAgICAvKiArQ0lFViAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfQzJLX0VDQk1fU1RBVEVfSU5ELCAvL0FUUCB0byBJTUMKKyAgICAgIAorICAgICAgLyogK0VDMktDSSAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfQzJLXzFYX0NBTExfU1RBVFVTX0lORCwgIC8vQVRQIHRvIElNQworCisgICAgICAvKiArRVRBVUZBSUwgKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX1RBVV9GQUlMX0lORCwKKyAgICAgIC8qICtDRVBTRkJTICovCisgICAgICBNU0dfSURfQVRQX0lNQ19FUFNGQl9JTkQsCisKKyAgICAgIC8qIEFUIENNRCByZWxheSAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfQVRDTURfUkVMQVlfUkVRLAorCisgICAgICAvKiBBVCtFSU1TRVZTICovCisgICAgICBNU0dfSURfQVRQX0lNQ19TRVRfRVZTX1NVUFBPUlRfUkVRLAorCisgICAgICAvKiBBVCtFVlZTICovCisgICAgICBNU0dfSURfQVRQX0lNQ19WT0lDRV9ET01BSU5fU1RBVFVTX0lORCwKKworICAgICAgLyogQVQrRU1VTFRJSU1TPyAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfTUlNU19DQVBBQklMSVRZX1JFUSwKKworICAgICAgLyogQVQrRUNOQ0ZHICovCisgICAgICBNU0dfSURfQVRQX0lNQ19FQ05DRkdfUkVRLAorCisgICAgICAvKiArRU5XICovCisgICAgICBNU0dfSURfQVRQX0lNQ19OV19TRUFSQ0hfU1RBVFVTX0lORCwKKworICAgICAgLyogQVQrRUNGR0RSUCAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfRFVNUF9SVU5USU1FX1BBUkFfUkVRLAorICAgICAgLyogQVQrRUlNU0dFTyAqLworICAgICAgTVNHX0lEX0FUUF9JTUNfRUlNU0dFT19SRVEsCisJICAKKwkgIC8qQVQrQ1NDTSovCisgICAgICBNU0dfSURfSU1DX0FUUF9JTVNfTk9STUFMX1JFR19DU0NNX0NORiwKKyAgICAgIAorICAgICAgLyogQVQrRVZPTFRFU0kgKi8KKyAgICAgIE1TR19JRF9BVFBfSU1DX0VWT0xURVNJX0NPTkZJR19JTkQsCisKKyAgICAgIC8qICtFR01SICovCisgICAgICBNU0dfSURfQVRQX0lNQ19RVUVSWV9JTUVJX1NWTl9DTkYsCSAgCisgICAgTVNHX0lEX0FUUF9JTUNfRU5ELAorCisgICAgLyogd2l0aCB2ZG0gKi8KKyAgICBNU0dfSURfVkRNX0lNQ19CRUdJTiwKKworICAgICAgTVNHX0lEX1ZETV9JTUNfQ0NfQkVHSU4sCisgICAgICAgIE1TR19JRF9WRE1fSU1DX1NSVkNDX1NUQVRVU19VUERBVEVfUkVRLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfTU9fQ0FMTF9SRVEsCisgICAgICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19NT19DQUxMX0RPTUFJTl9DT05GTElDVF9JTkQsCisgICAgICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19NT19DT05GX0NBTExfUkVRLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfTVRfQ0FMTF9QUkVTRU5UX1JTUCwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX01UX0NBTExfQUNDRVBUX1JFUSwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX01UX1ZUX1NQRUNJQUxfQUNDRVBUX1JFUSwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX0ZPUkNFX0hBTkdVUF9SRVEsCisgICAgICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19TRU5EX0RJR0lUX1JFUSwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX1NUQVJUX1NFTkRfRElHSVRfUkVRLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfU1RPUF9TRU5EX0RJR0lUX1JFUSwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX1NFVF9IVk9MVEVfQ0FMTF9ET01BSU5fUkVRLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19FQ0JNX1NUQVJUX0lORCwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfRUNCTV9FTkRfSU5ELAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JU19DU19BTExPV0VEX0NORiwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX1NUS19DQUxMX1JFUSwKKyNpZiBkZWZpbmVkKF9fTkdfRUNBTExfU1VQUE9SVF9fKQorICAgICAgICBNU0dfSURfVkRNX0lNQ19VUERBVEVfTVNEX1JTUCwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU5fQkFORF9NU0RfVFJBTlNGRVJfUlNQLAorI2VuZGlmCisgICAgICBNU0dfSURfVkRNX0lNQ19DQ19FTkQsCisgICAgICAKKyAgICAgIE1TR19JRF9WRE1fSU1DX1NTX0JFR0lOLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfQ0FMTF9SRUxBVEVEX1NTX1JFUSwKKyAgICAgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX0VYVF9FUlJPUl9SRVBPUlRfUkVRLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfSEFOR1VQX0FMTF9SRVEsCisgICAgICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19MSVNUX0NVUlJFTlRfQ0FMTFNfUkVRLAorICAgICAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfQUxMT0NfQ09ORl9DQUxMX1JTUCwKKyAgICAgIE1TR19JRF9WRE1fSU1DX1NTX0VORCwKKworICAgICAgTVNHX0lEX1ZETV9JTUNfTk9STUFMX1NFUlZJQ0VfU0NBTl9SU1AsCisgICAgICBNU0dfSURfVkRNX0lNQ19DMktfMVhfQ0FMTF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9WRE1fSU1DX0VORCwKKworICAgIC8qIHdpdGggbHRlIGNzciAqLworICAgIE1TR19JRF9JTUNfTFRFQ1NSX0JFR0lOLAorICAgICAgTVNHX0lEX0lNQ19MVEVDU1JfTE9PUF9URVNUX1JFUSwKKyAgICAgIE1TR19JRF9JTUNfTFRFQ1NSX0xPT1BfVEVTVF9DTkYsCisgICAgICBNU0dfSURfTFRFQ1NSX01FRElBX05PX0RMUEtULAorICAgICAgTVNHX0lEX0xURUNTUl9NRURJQV9OT19VTFBLVCwKKyAgICAgIE1TR19JRF9MVEVDU1JfTUVESUFfSU5DT01JTkdfRExQS1QsCisgICAgICBNU0dfSURfTFRFQ1NSX01FRElBX0FOQlJfTk9USUZZX0lORCwvKkFOQlIgbm90aWZ5IFVBIGZvciBTSVAgbmVnb3RpYXRpb24qLworICAgICAgTVNHX0lEX0xURUNTUl9NRURJQV9BTkJSX05PVElGWV9SU1AsLypVQSB0ZWxscyBTSVAgbmVnb3RpYXRpb24gYmFzZWQgb24gQU5CUiBmYWlscyovCisgICAgTVNHX0lEX0lNQ19MVEVDU1JfRU5ELAorCisgICAgTVNHX0lEX0lNQ1NNU19JTUNfQkVHSU4sCisgICAgICBNU0dfSURfSU1DU01TX0lNQ19TRU5EX1NNU19SRVEsCisgICAgICBNU0dfSURfSU1DU01TX0lNQ19SRUNWX1NNU19SU1AsCisgICAgICBNU0dfSURfSU1DU01TX0lNQ19TRU5EX0MyS19TTVNfUkVRLAorICAgICAgTVNHX0lEX0lNQ1NNU19JTUNfUkVDVl9DMktfU01TX1JTUCwKKyAgICAgIE1TR19JRF9JTUNTTVNfSU1DX1JFTF9TTVNfUkVRLAorICAgICAgTVNHX0lEX0lNQ1NNU19JTUNfQUJPUlRfU0VORF9TTVNfUkVRLAorICAgICAgTVNHX0lEX0lNQ1NNU19JTUNfQUJPUlRfUkVDVl9TTVNfUkVRLAorICAgICAgTVNHX0lEX0lNQ1NNU19JTUNfU01TX0VNRVJHRU5DWV9SRUdfUkVRLAorICAgIE1TR19JRF9JTUNTTVNfSU1DX0VORCwKKworICAgIC8qIHdpdGggTEJTICovCisgICAgTVNHX0lEX0lNQ19MQlNfQkVHSU4sCisgICAgICBNU0dfSURfSU1DX0xCU19QT1NfSU5ELAorICAgIE1TR19JRF9JTUNfTEJTX0VORCwKKworICAgIC8qIHdpdGggSVdMQU4gKi8KKyAgICBNU0dfSURfSU1DX0lXTEFOX0JFR0lOLAorICAgICAgTVNHX0lEX0lNQ19JV0xBTl9JTVNfQ0ZHX0lORCwKKyAgICAgIE1TR19JRF9JTUNfSVdMQU5fSU1TX0RFUkVHX0lORCwKKyAgICAgIE1TR19JRF9JTUNfSVdMQU5fSU1TX0FWQUlMUkFUX0lORCwKKyAgICAgIE1TR19JRF9JTUNfSVdMQU5fSU1TX0VDQ19IT19SU1AsCisgICAgTVNHX0lEX0lNQ19JV0xBTl9FTkQsCisKKyAgICAvKiB3aXRoIEQyICovCisgICAgTVNHX0lEX0QyX0lNQ19CRUdJTiwKKyAgICAgIE1TR19JRF9EMl9JTUNfSU1TX0RFUkVHX1JFUSwKKyAgICBNU0dfSURfRDJfSU1DX0VORCwKKworICAgIC8qIERTQlAgaW50ZXJuYWwgKi8KKyAgICBNU0dfSURfTDRfSU1DX0JFR0lOLCAgICAKKyAgICAgIE1TR19JRF9JTUNfRFNCUF9SRUNPTkZJR1VSRV9SRVEsCisgICAgICBNU0dfSURfTDRDX0lNQ19SQVRfT1BFUkFUSU9OX0lORCwKKyAgICAgIE1TR19JRF9MNENfSU1DX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX0lORCwKKyAgICAgIE1TR19JRF9MNENfSU1DX0VQU0ZCX0lORCwKKyAgICBNU0dfSURfTDRfSU1DX0VORCwKKworICAgIC8qIHdpdGggVVBDTSAqLworICAgIE1TR19JRF9JTUNfVVBDTV9CRUdJTiwKKyAgICAgIE1TR19JRF9JTUNfVVBDTV9TRVJWSUNFX1JFUVVFU1RfRkFJTF9JTkQsCisgICAgTVNHX0lEX0lNQ19VUENNX0VORCwKKworICAgIC8qIHdpdGggU0RNICovCisgICAgTVNHX0lEX0lNQ19TRE1fQkVHSU4sCisgICAgICBNU0dfSURfU0RNX0lNQ19TQ0JNX1NUQVJUX0lORCwKKyAgICAgIE1TR19JRF9TRE1fSU1DX1NDQk1fU1RPUF9JTkQsCisgICAgTVNHX0lEX0lNQ19TRE1fRU5ELAorCisgICAgLyogd2l0aCBESEwgKi8KKyAgICBNU0dfSURfREhMX0lNQ19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0RITF9JTUNfREJHX0xPR19JTkQsCisgICAgICAgIE1TR19JRF9ESExfSU1DX0VNX0RVTVBfTlZSQU1fSU5ELAorICAgIE1TR19JRF9ESExfSU1DX0VORCwKKworICAgIE1TR19JRF9JTUNfRFVNUF9JTVNfUFJPRklMRV9OVEYsCisKKyAgICAvKiB3aXRoIFhDQVAgKi8KKyAgICBNU0dfSURfWENBUF9JTUNfQkVHSU4sCisgICAgICBNU0dfSURfWENBUF9JTUNfSU1TX0RFUkVHX1JFUSwKKyAgICBNU0dfSURfWENBUF9JTUNfRU5ELAorCisgICAgLyogd2l0aCBTU0RTICovCisgICAgTVNHX0lEX0lNQ19TU0RTX0JFR0lOLAorICAgICAgTVNHX0lEX1NTRFNfSU1DX1VTU0RfQVRDTURfUkVRLAorICAgIE1TR19JRF9JTUNfU1NEU19FTkQsCisKKyAgICAvKiB3aXRoIElNU1VBICovCisgICAgTVNHX0lEX0lNQ19JTVNVQV9CRUdJTiwKKyAgICAgIE1TR19JRF9JTUNfSU1TVUFfRVZPTFRFU0lfQ0FMTF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9JTUNfSU1TVUFfRU5ELAorCisgICAgLyogd2l0aCBJTVNfU1RBQ0sgKi8KKyAgICBNU0dfSURfSU1DX0lNU19TVEFDS19CRUdJTiwKKyAgICAgIE1TR19JRF9SRUdVQV9JTUNfUkVNQUlOX1RJTUVfSU5ELAorICAgIE1TR19JRF9JTUNfSU1TX1NUQUNLX0VORCwKKworCisgIE1TR19JRF9JTUNfRVhfRU5ELAorICAvKiB9ICovCisKKyAgTVNHX0lEX0lNQ19JTl9CRUdJTiwKKworICAgIE1TR19JRF9JTUNfSU1DX0JFR0lOLAorICAgICAgTVNHX0lEX0lNQ19JTUNfSU5KRUNUX0VNX0NGR19JTkQsCisgICAgICBNU0dfSURfSU1DX0lNQ19FWFRRX1dBS0VfUkVRLAorCisgICAgICBNU0dfSURfSU1DX0lNQ19MT09QX1RFU1RfSU5ELAorICAgICAgTVNHX0lEX0lNQ19JTUNfTE9PUF9URVNUX1JTUCwKKworICAgICAgTVNHX0lEX0lNQ19JTUNfU1RBUlRVUF9SRVEsCisKKyAgICAgIC8qIElNUyBJTUMtbWFuYWdlciAqLworICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9EVU1QX0NPTlRFWFRfSU5ELAorICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9FTkQsCisKKyAgICAgIC8qIElNUyBJTUMtUmVnaXN0cmF0aW9uICovCisgICAgICBNU0dfSURfSU1DX0lNQ19NTkdSX1JFR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9SRUdfRVZFTlRfUkVRLAorICAgICAgICBNU0dfSURfSU1DX0lNQ19NTkdSX1JFR19TVEFSVFVQX1JFUSwKKworICAgICAgICBNU0dfSURfSU1DX0lNQ19NTkdSX1JFR19ERVJFR19SRVEsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfUkVHX0RFUkVHX0NORiwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9SRUdfRU1FUkdFTkNZX1JFR19SRVEsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfUkVHX0VNRVJHRU5DWV9SRUdfQ05GLAorICAgICAgICBNU0dfSURfSU1DX0lNQ19NTkdSX1NNU19SRUdfRU1FUkdFTkNZX1JFR19DTkYsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfUkVHX0VNRVJHRU5DWV9ERVJFR19SRVEsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfUkVHX0VNRVJHRU5DWV9ERVJFR19DTkYsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfUkVHX0VNRVJHRU5DWV9DQUxMX1JFSl9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9SRUdfTE9PUF9URVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9SRUdfTE9PUF9URVNUX0NORiwKKyAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfUkVHX0VORCwKKworICAgICAgLyogSU1TIElNQy1DQyAqLworICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9DQ19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9DQ19FVkVOVF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfQ0NfU1RBUlRVUF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfQ0NfQUxMT0NfQ09ORl9DVFhUX1JFUSwgICAgIC8vIHJlbGF0ZWQgdG8gTVNHX0lEX0lNQ19JTUNfTU5HUl9TU19BTExPQ19DT05GX0NUWFRfQ05GCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfQ0NfRlJFRV9DT05GX0NUWFRfUkVRLCAgICAgIC8vIHJlbGF0ZWQgdG8gTVNHX0lEX0lNQ0JfSU1DX1NTX0NSRUFURV9DT05GRVJFTkNFX0NBTExfUlNQLCBOTyBDTkYgb2YgdGhpcyBNU0cKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9DQ19NT19IQU5HVVBfUkVRLCAgICAgICAgICAvLyByZWxhdGVkIHRvIEFUK0NITEQgPSAxeAorCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfQ0NfTE9PUF9URVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9DQ19MT09QX1RFU1RfQ05GLAorICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9DQ19FTkQsCisKKyAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfU01TSVBfQkVHSU4sCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfU01TSVBfTE9PUF9URVNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9TTVNJUF9MT09QX1RFU1RfQ05GLAorICAgICAgTVNHX0lEX0lNQ19JTUNfTU5HUl9TTVNJUF9FTkQsCisKKyAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfU1NfQkVHSU4sCisgICAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfU1NfQUxMT0NfQ09ORl9DVFhUX0NORiwKKyAgICAgIE1TR19JRF9JTUNfSU1DX01OR1JfU1NfRU5ELAorICAgIE1TR19JRF9JTUNfSU1DX0VORCwKKworICBNU0dfSURfSU1DX0lOX0VORCA9IE1TR19JRF9JTUNfSU5fQkVHSU4gKyBJTUNfSU5fUkFOR0UsCisKKyAgTVNHX0lEX0lNQ19FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfSU1DX0NPREVfVEFJTCApCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tIElNQ19NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKworI2VuZGlmIC8qIF9JTUNfTVNHSURfSF8gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltY2JfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltY2JfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWI4ODRjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaW1jYl9tc2dpZC5oCkBAIC0wLDAgKzEsNDY2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgaW1jYl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwMyAyMiAyMDIyIHl1bmctbGlhbmcudHNvdQorICogW01PTFkwMDc4NDQ0MF0gW0ZlYXR1cmVEZXZlbG9wbWVudF1bQUxQU0FSMDYzNTQ5OTldW0dlbjk3Lzk4XVtBVCZUXVt2MjEuM11bQ0RSLUxURS0xNDQ3XVtDRFItSU1TLTEyMTBdIElNUyB2b2ljZSBub3QgYXZhaWxhYmxlIHdoZW4gUEROIHJlamVjdCBjYXN1ZSAyOCwgMzMKKyAqIC5pbWNiIG1zZyBpZAorICoKKyAqIDEyIDE2IDIwMjEgeGluLm5pCisgKiBbTU9MWTAwNzc0MTYxXSBbbXQyNzM1XVtDUyBlQ2FsbF1bTkcgZUNhbGxdW3BhdGNoIGJhY2tdIGVjYWxsIHBhdGNoIGJhY2sgZnJvbSBOUjE1LlIzLk1ENzAwLk1QLkVDQWxsLkRFVgorICogCQorICogCS4KKyAqCisgKiAxMiAwNiAyMDIxIHhpbi5uaQorICogW01PTFkwMDc3NDE2MV0gW210MjczNV1bQ1MgZUNhbGxdW05HIGVDYWxsXVtwYXRjaCBiYWNrXSBlY2FsbCBwYXRjaCBiYWNrIGZyb20gTlIxNS5SMy5NRDcwMC5NUC5FQ0FsbC5ERVYKKyAqIAlTV1JEIGludGVyZmFjZSBQYXJ0LgorICogCS4KKyAqCisgKiAwNSAxOCAyMDIxIG90X2h1aS50dQorICogW01PTFkwMDM4OTAwN10gZUNhbGwgb3ZlciBJTVMgSU1DIGludGVyZmFjZSBwYXJ0CisgKiAJCisgKiAJLgorICoKKyAqIDA4IDI2IDIwMTkgamFuaS5tYW5uaW5lbgorICogW01PTFkwMDQzMzA0MV0gW0dlbjk3XVtFUFNGQl0gSVQgcmVsYXRlZCBpc3N1ZXMKKyAqIAkKKyAqIAlWTU9MWS5BUE9MTE8uU1FDIC0gSU1TIDVHIFZvaWNlIFN1cHBvcnQgQ2hhbmdlcworICoKKyAqIDA4IDE0IDIwMTkgamFuaS5tYW5uaW5lbgorICogW01PTFkwMDQzMTgyNl0gW1ZPTlJdIElNQyBDaGFuZ2VzIGZvciA1RyBWb2ljZSBTdXBwb3J0IC0gU0FQCisgKiAJCisgKiAJVk1PTFkuVi41R1ZPSUNFLkRFViAtIFNBUCAtIFNXUkQKKyAqCisgKiAwMSAwOCAyMDE5IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAzNjcxMjZdIFtHZW45N11bSU1TXSBWb0xURSBwb3J0aW5nCisgKiBBZGRpbmcgSU1TIGludGVyZmFjZXMgdG8gdHJhY2UgZGF0YWJhc2UuCisgKgorICogMTIgMzEgMjAxOCBodWlmZW5nLmppbmcKKyAqIFtNT0xZMDAzNzU2NjBdIFtJTVNdW0dlbjk3IHN1Ym1hcmluZV0gVlRTIGludGVyZmFjZSBkZXZlbG9wbWVudHMKKyAqIHJlbW92ZSBidWlsZCBlcnJvci4KKyAqCisgKiAxMiAyOSAyMDE4IGh1aWZlbmcuamluZworICogW01PTFkwMDM3NTY2MF0gW0lNU11bR2VuOTcgc3VibWFyaW5lXSBWVFMgaW50ZXJmYWNlIGRldmVsb3BtZW50cworICogaW1zX2hpZiBvdmVyIHR0eS4KKyAqCisgKiAxMiAyMSAyMDE4IHN6dS1jaGllaC5jaGl1CisgKiBbTU9MWTAwMzY2ODg0XSBbSU1TXVtHZW45N10gSU1DQiByZWxhdGVkIGRldmVsb3BtZW50cworICogW0dlbjk3XSBUcmFjaW5nLgorICogCTEuIERITCBsb2dnaW5nIGV2ZW50OiBkdW1wIHNpbV9jb250ZXh0CisgKgorICogMTIgMTggMjAxOCBqb2huc29uLmxpdQorICogW01PTFkwMDM3MzA4M10gW0dlbjk3XVtTdWJtYXJpbmVdW0lNQ11QY3NjZiBhZGRyZXNzIGRpc2NvdmVyeSB2aWEgc2ltIGJ5IGltYworICogcGF0Y2ggYmFjayB0byBkZXYuCisgKgorICogMTIgMTEgMjAxOCBqb25pLmh1dHR1bGEKKyAqIFtNT0xZMDAzNzIxMzBdIFtHZW45N11bSU1TXSBNU0dfSUQgY2hhbmdlIGFuZCBzb21lIGJ1ZyBmaXggdG8gcnVuIFVULgorICoKKyAqIDEyIDExIDIwMTggam9uaS5odXR0dWxhCisgKiBbTU9MWTAwMzcyMTMwXSBbR2VuOTddW0lNU10gTVNHX0lEIGNoYW5nZSBhbmQgc29tZSBidWcgZml4IHRvIHJ1biBVVC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfSU1DQl9NU0dJRF9IXworI2RlZmluZSBfSU1DQl9NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0gSU1DQl9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfSU1DQl9DT0RFX0JFR0lOICkKKworICAgIE1TR19JRF9JTUNCX0JFR0lOLAorCisgICAgTVNHX0lEX0lNQ0JfRVhfQkVHSU4sCisKKyAgICAvKiB3aXRoIElNU00gKi8KKyAgICBNU0dfSURfSU1TTV9JTUNCX0JFR0lOLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUEROX0FDVF9QUk9HUkVTU0lOR19OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX1BETl9BQ1RfQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QRE5fQUNUX1JFSl9SU1AsCisKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERURJQ0FURURfQkVBUkVSX0FDVF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfREVESUNBVEVEX0JFQVJFUl9BQ1RfQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERURJQ0FURURfQkVBUkVSX0FDVF9SRUpfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0RFRElDQVRFRF9CRUFSRVJfQUNUX05PVElGWV9SRVEsCisKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERUFDVF9BQ0tfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0RFQUNUX1JFSl9SU1AsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfREVBQ1RfTk9USUZZX1JFUSwKKworICAgICAgICBNU0dfSURfSU1TTV9JTUNCX01PRElGWV9BQ0tfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX01PRElGWV9SRUpfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX01PRElGWV9OT1RJRllfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUEROX0JFQVJFUl9VUERBVEVfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9IQU5ET1ZFUl9TVEFSVF9OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0hBTkRPVkVSX1NUT1BfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9IQU5ET1ZFUl9JUF9SRUFEWV9OT1RJRllfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfVVBEQVRFX0lQVjRfR0xPQkFMX0FERFJfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9VUERBVEVfSVBWNl9HTE9CQUxfQUREUl9OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0lSQVRfV0lUSE9VVF9JUF9DSEFOR0VfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUENPX1VQREFURV9SRVEsCisKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9SRVNFVF9TVUdHRVNUSU9OX1RJTUVSX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9ERUFDVF9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNU01fSU5QVVRfTVNHX1BBUkFfQ0hFQ0tJTkdfRkFJTF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfTU9ESUZZX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9QRE5fQUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QRE5fQUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9ERUFDVF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUENTQ0ZfRElTQ09WRVJZX1ZJQV9TSU1fUkVKX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9BQ0tfUlNQLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX1BDU0NGX0RJU0NPVkVSWV9WSUFfUENPX1JFSl9SU1AsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ0JfUENTQ0ZfRElTQ09WRVJZX1ZJQV9QQ09fQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QQ1NDRl9ESVNDT1ZFUllfUkVKX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9QQ1NDRl9ESVNDT1ZFUllfQUNLX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DQl9JTkRfVElNRVJfQ0FOQ0VMLAorICAgICAgICBNU0dfSURfSU1TTV9JTUNCX0lORF9USU1FUl9TVEFSVCwKKyAgICAgICAgCisgICAgTVNHX0lEX0lNU01fSU1DQl9FTkQsCisKKyAgICAvKiB3aXRoIElNU1ZUICovCisgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQkVHSU4sCisgICAgICAgIC8qIFR5cGU0OiBJTVNWVC1JTUNCIFRWIHsgKi8KKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTE9PUF9URVNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTE9PUF9URVNUX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQ09NTV9FUlJPUiwKKworICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9HRVRfQ0FQX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfR0VUX0NBUF9SU1AsCisKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQ09ORklHX0lOSVRfSU5ELAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9DT05GSUdfVVBEQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfQ09ORklHX0RFSU5JVF9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fUkVRLAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9NT0RJRllfU0VTU0lPTl9DTkYsCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX01PRElGWV9TRVNTSU9OX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fUlNQLAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX0NPTkZJR19JTklULAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9DT05GSUdfVVBEQVRFLAorICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9HRVRfQ0FQX1JFUSwKKworICAgICAgICBNU0dfSURfSU1TVlRfSU1DQl9NT0RfQldfUkVRLAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX0hBTkRPVkVSX1NUQVJUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfSEFORE9WRVJfU1RPUF9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fQ0FOQ0VMX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fQ0FOQ0VMX0NORiwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfTU9ESUZZX1NFU1NJT05fQ0FOQ0VMX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU1ZUX0lNQ0JfRVZFTlRfTE9DQUxfQldfUkVBRFlfSU5ELAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX0NBTExfUFJPR1JFU1NfSU5ELAorCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX1BETl9IQU5ET1ZFUl9CRUdJTl9JTkQsCisgICAgICAgIE1TR19JRF9JTVNWVF9JTUNCX1BETl9IQU5ET1ZFUl9FTkRfSU5ELAorCisgICAgICAgIC8qIH0gVHlwZTQ6IElNU1ZULUlNQ0IgVFYgKi8KKyAgICBNU0dfSURfSU1TVlRfSU1DQl9FTkQsCisKKyAgICAvKiB3aXRoIElNQyAqLworICAgIE1TR19JRF9JTUNCX0lNQ19CRUdJTiwKKworICAgICAgICBNU0dfSURfSU1DQl9JTUNfSVBDX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lQQ19SRVEsCisKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0xPT1BfVEVTVF9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19MT09QX1RFU1RfUlNQLAorCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TRVRfVEVTVF9NT0RFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NFVF9URVNUX01PREVfQ0VMTF9JTkZPX1JFUSwKKworICAgICAgICAvKiBJTVMgU0lNICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9DTkYsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19QQ1NDRl9ESVNDT1ZFUllfVklBX1NJTV9SRUosCisKKyAgICAgICAgLyogV0ZDICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19IQU5ET1ZFUl9TVEFSVF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19IQU5ET1ZFUl9TVE9QX1JFUSwKKworICAgICAgICAvKiBJTVMgUmVnaXN0cmF0aW9uICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRVFfVVBEQVRFX1JUX1NFVFRJTkcsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19JTVNfUkVHX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19SRUdfUkVKX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19ERVJFR19JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19JTVNfUkVHX1NUQVRFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lORF9SRUdfQVVUSF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUdfRU1TX01PREVfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ05GX1JFR19BVVRIX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX09PU19TVEFSVF9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19PT1NfRU5EX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1FVRVJZX1NUQVRFX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1FVRVJZX1NUQVRFX0NORiwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1JBVF9DSEFOR0VfSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfSU1TVk9QU19OT1RJRklDQVRJT05fSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkxNX0VWRU5UX0lORCwKKworICAgICAgICAvKiBWSUxURSAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfVlRfQ09OTkVDVF9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19WVF9DQVBfUVVFUllfSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfVlRfQ0FQX1FVRVJZX1JTUCwKKworICAgICAgICAvKiBTTVMgcmVsYXkgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NNU19CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TRU5EX1NNU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU0VORF9TTVNfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1JFQ1ZfU01TX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUNWX1NNU19DTkYsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVMX1NNU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVDVl9TTVNfRVJST1JfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0FCT1JUX1NFTkRfU01TX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19BQk9SVF9SRUNWX1NNU19JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TTVNfRU5ELAorCisgICAgICAgIC8qIENDIHJlbGF5ICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19DQUxMX1BST0dSRVNTX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19TSVBfQ0FMTF9QUk9HUkVTU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTUVESUFfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01UX0NBTExfQUJPUlRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01UX0NBTExfUFJFU0VOVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTVRfQ0FMTF9QUkVTRU5UX0NORiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NVF9DQUxMX1JJTkdfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0ZPUkNFX0hBTkdVUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTVRfQUNDRVBUX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NVF9BQ0NFUFRfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0hBTkdVUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTU9fSEFOR1VQX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TUlZDQ19TVEFUVVNfVVBEQVRFX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TUlZDQ19DT05URVhUX1RSQU5TRkVSX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQUxMX0NPTlRST0xfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NBTExfQ09OVFJPTF9SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTU9fQ09ORl9DQUxMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NT19DT05GX0NBTExfUlNQLAorCisgICAgICAgICAgICAvKiBWSUxURSAqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX1ZUX0FDVElWRV9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTUVESUFfTU9EX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19WSURFT19DQVBfUkVRLAorCisgICAgICAgICAgICAvKiBTRFAgaW5mbyAqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX01FRElBX05FVywKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19NRURJQV9VUERBVEUsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfTUVESUFfREVMLAorCisgICAgICAgICAgICAvKiBWSUxURSAqLworICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01UX1ZUX1NQRUNJQUxfQUNDRVBUX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NVF9WVF9TUEVDSUFMX0FDQ0VQVF9SU1AsCisJCQkKKwkJCS8qRUNBTEwqLworCQkJTVNHX0lEX0lNQ0JfSU1DX0NDX0VDQUxMX0lOX0JBTkRfTVNEX1RSQU5GRVJfUlNQLAorCQkJTVNHX0lEX0lNQ0JfSU1DX0NDX0VDQUxMX1VQREFURV9NU0RfUlNQLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfRU5ELAorCisgICAgICAgIC8qIFNTIHJlbGF5ICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19TV0lUQ0hfV0FJVElOR19PUl9IT0xESU5HX0FORF9BQ1RJVkVfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX1NXSVRDSF9XQUlUSU5HX09SX0hPTERJTkdfQU5EX0FDVElWRV9SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9XQUlUSU5HX09SX0FMTF9CR19DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9XQUlUSU5HX09SX0FMTF9CR19DQUxMU19SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9BTExfRkdfQU5EX1JFU1VNRV9CR19DQUxMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19SRUxFQVNFX0FMTF9GR19BTkRfUkVTVU1FX0JHX0NBTExfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX1JFTEVBU0VfQUxMX0ZHX0FORF9CR19DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfUkVMRUFTRV9BTExfRkdfQU5EX0JHX0NBTExTX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19FWFBMSUNJVF9DQUxMX1RSQU5TRkVSX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19FWFBMSUNJVF9DQUxMX1RSQU5TRkVSX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DUkVBVEVfQ09ORkVSRU5DRV9DQUxMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DUkVBVEVfQ09ORkVSRU5DRV9DQUxMX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19BVEhfUkVMX0FMTF9DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfQVRIX1JFTF9BTExfQ0FMTFNfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0xJU1RfQ1VSUkVOVF9DQUxMU19JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfTElTVF9DVVJSRU5UX0NBTExTX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19QUk9HUkVTU19OT1RJRllfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX05PX1JUUFBLVF9JTkQsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfTk9fUlRQUEtUX1JTUCwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DT05GRVJFTkNFX0NPTlRST0xfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX1NVQlNDUklCRV9DT05UUk9MX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19DT05GRVJFTkNFX0NPTlRST0xfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0NPTkZFUkVOQ0VfQ09OVFJPTF9SU1AsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTUNfQ0NfSU5DT01JTkdfUlRQUEtUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0VORCwKKworICAgICAgICAvKiBVU1NEICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TRU5EX1VTU0RfSU5ELCAgLy9TZW5kIFVTU0QgUmVxdWVzdCB0byBVQQorICAgICAgICBNU0dfSURfSU1DQl9JTUNfU0VORF9VU1NEX1JTUCwgIC8vU2VuZCBVU1NEJ3MgUmVzcG9uc2UgZnJvbSBVQQorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVDVl9VU1NEX1JFUSwgIC8vVVJDIGZyb20gVUEKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1VTU0RfVVJDX1NUQVRVU19JTkQsIC8vU2VuZCBVUkMgU3RhdHVzIHRvIFVBCisKKyAgICAgICAgLyogQ01DQyBBdXRvIFRlc3QgVG9vbCAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1RBUlRfRUJJX0ZJTFRFUl9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TVE9QX0VCSV9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1RBUlRfQkVBUkVSX0ZJTFRFUl9SRVEsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TVE9QX0JFQVJFUl9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVHX0lQU0VDX0ZMVVNIX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1JFR19JUFNFQ19BRERfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfUkVHX0lQU0VDX0RFTEVURV9SRVEsCisKKyAgICAgICAgLyogTUQgTG93ZXIgTGF5ZXIgRXJyb3IgKFNlcnZpY2UgcmVxdWVzdCBmYWlsZWQsIEFDIEJhcnJlZC4uLmV0YykgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX01EX0xPV0VSX0xBWUVSX0VSUl9JTkQsCisKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1RMVl9QQVJBX1NFVFRJTkdfSU5ELAorCisgICAgICAgIC8qIElNUyBEZWJ1ZyBJbmZvcm1hdGlvbiBJTUNCLT5JTUMqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfSU1TX0RFQlVHX0lORk9fUkVRLAorCisgICAgICAgIC8qIElNUyBEZWJ1ZyBJbmZvcm1hdGlvbiBJTUMtPklNQ0IgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19ERUJVR19JTkZPX0lORCwKKworICAgICAgICAvKiBmb3IgSVNJTSByZWFkIGRhdGEgc2VnbWVudGF0aW9uICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUFEX0lTSU1fTlRGX1JFUSwKKworICAgICAgICAvKiBIYW5kb3ZlciBldmVudCB0byBMVEVDU1IgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0hBTkRPVkVSX0JFR0lOX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0hBTkRPVkVSX0VORF9SRVEsCisKKyAgICAgICAgLyogVFRZICAgSU1DIC0+IElNQ0IgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX1RUWV9FTkFCTEVfSU5ELAorCisgICAgICAgIC8qIFRUWSAgIElNQ0IgLT4gSU1DICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19UVFlfRU5BQkxFX1JTUCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX1RUWV9DQVBBQklMSVRZX1JFUSwKKworICAgICAgICAvKiBGb3IgTFRFQ1NSLCBOT1RJRlkgSU1TIHRoZSBkYXRhIHBsYW4gZXZlbnQuICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19JTVNfTk9USUZZX0lORCwKKworICAgICAgICAvKiBJTUMgdHJpZ2dlciBJTUNCIHJlbGVhc2UgUEROICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUxFQVNFX1BETl9JTkQsCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19SRUxFQVNFX1BETl9SU1AsCisKKyAgICAgICAgLyogRUNUIElNQyAtPiBJTUNCICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19TU19FQ1RfSU5ELCAgLy8gU2VuZCBFQ1QgcmVxdWVzdCB0byBVQQorCisgICAgICAgIC8qIEVDVCBJTUNCIC0+IElNQyAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1NfRUNUX1JTUCwgIC8vIFNlbmQgRUNUIHJlc3BvbnNlIGZyb20gVUEKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX1NTX0VDVF9SRVEsICAvLyBTZW5kIGZpbmFsIEVDVCBVUkMgY29uZmlybWF0aW9uIGZyb20gVUEKKworICAgICAgICAvKiBUTFYgZnJvbSBJTUNCIHRvIElNQyAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfVExWX1BBUkFfU0VUVElOR19SRVEsCisKKyAgICAgICAgLypNTyBDYWxsIERvbWFpbiBDb25mbGljdCBmbG93Ki8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfRE9NQUlOX0NPTkZMSUNUX0lORCwKKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX01PX0NBTExfRE9NQUlOX0NPTkZMSUNUX1JTUCwKKworICAgICAgICAvKiBBVENNRCByZWxheSAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfQVRDTURfUkVMQVlfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTUNfQVRDTURfUkVMQVlfSU5ELAorCisgICAgICAgIC8qIFJUVCAgIElNQyAtPiBJTUNCICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19SVFRfT1BfSU5ELAorCisgICAgICAgIC8qIFJUVCAgIElNQ0IgLT4gSU1DICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19SVFRfT1BfUlNQLAorCisgICAgICAgIC8qIENETUEtbGVzcyBJTUNCLT5JTUMgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0lNU19USU1FUl9TVEFUVVNfSU5ELAorCisgICAgICAgIC8qIFJGIGNvbnRyb2wgbWVzc2FnZSAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU1JVX0lORk9fUkVRLAorCisgICAgICAgIC8qIFBTX0RBVEFfT0ZGIElNQy0+SU1DQiAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfUFNfREFUQV9PRkZfSU5ELAorCisgICAgICAgIC8qIGVWT0xURSBmbG93ICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NRURJQV9BTkJSX05PVElGWV9JTkQsIC8qIElNQyAtPiBJTUNCICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19NRURJQV9BTkJSX05PVElGWV9SU1AsIC8qIElNQ0IgLT4gSU1DICovCisKKyAgICAgICAgLyogVUEgcXVlcnkgQ1Mgc3RhdHVzIGZyb20gSU1DICovCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19DQ19DU19BVkFJTEFCSUxJVFlfUkVRLCAgLyogSU1DQiAtPiBJTUMgKi8KKyAgICAgICAgTVNHX0lEX0lNQ0JfSU1DX0NDX0NTX0FWQUlMQUJJTElUWV9DTkYsICAvKiBJTUMgLT4gSU1DQiAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU01TX0NTX0FWQUlMQUJJTElUWV9SRVEsICAvKiBJTUNCIC0+IElNQyAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNfU01TX0NTX0FWQUlMQUJJTElUWV9DTkYsICAvKiBJTUMgLT4gSU1DQiAqLworCisgICAgICAgIE1TR19JRF9JTUNCX0lNQ19JTVNfUkVTRVRfU1VHR0VTVElPTl9USU1FUl9SRVEsIC8qIElNQ0IgLT4gSU1DICovCisKKyAgICBNU0dfSURfSU1DQl9JTUNfRU5ELAorCisgICAgLyogd2l0aCBOQ0NDSSAqLworICAgIE1TR19JRF9XUkFQX0lNQ0JfSU1DQl9OQ0NDSV9CRUdJTiwKKworICAgICAgICBNU0dfSURfV1JBUF9JTUNCX0lNQ0JfUkVBRFlfVE9fV1JJVEVfSU5ELAorICAgICAgICBNU0dfSURfV1JBUF9JTUNCX0lNQ0JfUkVBRF9ET05FX0lORCwKKyAgICAgICAgTVNHX0lEX1dSQVBfSU1DQl9JTUNCX0NPTU1fRVJST1IsCisKKyAgICBNU0dfSURfV1JBUF9JTUNCX0lNQ0JfTkNDQ0lfRU5ELAorCisgICAgLyogd2l0aCBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0lNQ0JfQkVHSU4sCisKKyAgICAgICAgTVNHX0lEX0FUUF9JTUNCX0lOVEVSX1JBVF9TVEFUVVNfSU5ELAorCisgICAgTVNHX0lEX0FUUF9JTUNCX0VORCwKKworICAgIE1TR19JRF9JTUNCX0VYX0VORCwKKworICAgIE1TR19JRF9JTUNCX0lOX0JFR0lOLAorCisgICAgICAgIC8qIElNQ0IgQ3RybCAqLworICAgICAgICBNU0dfSURfSU1DQl9JTUNCX0JFR0lOLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1DQl9EVU1QX0NPTlRFWFRfSU5ELAorICAgICAgICBNU0dfSURfSU1DQl9JTUNCX0VORCwKKworICAgIE1TR19JRF9JTUNCX0lOX0VORCwKKworICAgIE1TR19JRF9JTUNCX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9JTUNCX0NPREVfVEFJTCApCisKKworI2VuZGlmIC8qIF9JTUNCX01TR0lEX0hfICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbWNzbXNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltY3Ntc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYmRhM2UKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbWNzbXNfbXNnaWQuaApAQCAtMCwwICsxLDI0MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBpbWNzbXNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgaW1jc21zIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfSU1DU01TX01TR0lEX0gKKyNkZWZpbmUgX0lNQ1NNU19NU0dJRF9ICisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLSBNU0dfSURfSU1DU01TX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfSU1DU01TX0NPREVfQkVHSU4gKQorCisgICAgLyogQVRQIGFuZCBJTUNTTVMgKi8KKyAgICBNU0dfSURfQVRQX0lNQ1NNU19TVUJNSVRfQ0hFQ0tfUlNQID0gTVNHX0lEX0lNQ1NNU19DT0RFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfSU1DU01TX0NPTU1BTkRfQ0hFQ0tfUlNQLAorICAgIE1TR19JRF9BVFBfSU1DU01TX1NNTUFfQ0hFQ0tfUlNQLAorICAgIE1TR19JRF9BVFBfSU1DU01TX1NUS19TVUJNSVRfQ0hFQ0tfUlNQLAorICAgIE1TR19JRF9BVFBfSU1DU01TX0lNU19SRUdfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfQVRQX0lNQ1NNU19DRE1BX0xFU1NfQzJLX0RFTElWRVJfUkVQT1JUX0lORCwKKwlNU0dfSURfU0RNX0lNQ1NNU19DTVNTX1NVQk1JVCwgICAgICAgICAvLyBldmVuIHRob3VnaCB0aGlzIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgZnJvbSBTRE0gLCBpdCB3aWxsIGJlIHRyZWF0ZWQgbGlrZSBhIEFUUCBtZXNzYWdlCisgICAgCisKKyAgICAvKiBTRE0gYW5kIElNQ1NNUyAqLworICAgIE1TR19JRF9TRE1fSU1DU01TX1NVQk1JVCwKKyAgICBNU0dfSURfU0RNX0lNQ1NNU19DMktfU1VCTUlULAorICAgIE1TR19JRF9TRE1fSU1DU01TX0MyS19BQ0tOT1dMRURHRSwKKyAgICBNU0dfSURfU0RNX0lNQ1NNU19VVEtfU1VCTUlULAorICAgIE1TR19JRF9TRE1fSU1DU01TX1NUS19TVUJNSVQsCisgICAgTVNHX0lEX1NETV9JTUNTTVNfREVMSVZFUl9SRVBPUlRfQUNLLAorICAgIE1TR19JRF9TRE1fSU1DU01TX0RFTElWRVJfUkVQT1JUX05BQ0ssCisgICAgTVNHX0lEX1NETV9JTUNTTVNfQ09NTUFORCwKKyAgICBNU0dfSURfU0RNX0lNQ1NNU19NRU1fQVZMX05PVElGLAorCU1TR19JRF9TRE1fSU1DU01TX0lTX0NTX0FMTE9XRURfQ05GLAorCisgICAgLyogSU1DU01TIGFuZCAgSU1DICovCisgICAgTVNHX0lEX0lNQ1NNU19JTUNfU0VORF9TTVNfQ05GLAorICAgIE1TR19JRF9JTUNTTVNfSU1DX1JFQ1ZfU01TX0lORCwKKyAgICBNU0dfSURfSU1DU01TX0lNQ19TRU5EX0MyS19TTVNfQ05GLAorICAgIE1TR19JRF9JTUNTTVNfSU1DX1JFQ1ZfQzJLX1NNU19JTkQsCisgICAgTVNHX0lEX0lNQ1NNU19JTUNfUkVDVl9TTVNfRVJST1JfSU5ELAorICAgIE1TR19JRF9JTUNTTVNfSU1DX1NNU19FTUVSR0VOQ1lfUkVHX0NORiwKKworCS8qIF9fVEMwMV9JTVNfU1VQUE9SVF9fICovCisgICAgTVNHX0lEX0FUUF9JTUNTTVNfUkVDVl9NU0dfUkVRLAorCisgICAgLyogSU1DU01TIGFuZCAgSU1TVUEgKi8KKyAgICBNU0dfSURfSU1DU01TX0lNU1VBX1NFTkRfU01TX0NORiwKKyAgICBNU0dfSURfSU1DU01TX0lNU1VBX1JFQ1ZfU01TX0lORCwKKyAgICBNU0dfSURfSU1DU01TX0lNU1VBX1JFQ1ZfU01TX0VSUk9SX0lORCwKKyAgICBNU0dfSURfSU1DU01TX0lNU1VBX0NTX0FWQUlMQUJJTElUWV9JTkQsCisgICAgTVNHX0lEX0lNQ1NNU19JTVNVQV9TRU5EX1NNU19SRVEsCisgICAgTVNHX0lEX0lNQ1NNU19JTVNVQV9SRUNWX1NNU19SU1AsCisgICAgTVNHX0lEX0lNQ1NNU19JTVNVQV9SRUxfU01TX1JFUSwKKyAgICBNU0dfSURfSU1DU01TX0lNU1VBX0NTX0FWQUlMQUJJTElUWV9DTkYsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfSU1DU01TX0NPREVfVEFJTCApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLU1TR19JRF9JTUNTTVNfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjZW5kaWYgIC8qIF9JTUNTTVNfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvaW1zX3N0YWNrX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbXNfc3RhY2tfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDJmNzk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaW1zX3N0YWNrX21zZ2lkLmgKQEAgLTAsMCArMSw0NjQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBpbXNfc3RhY2tfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBWTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogICAKKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwNiAyMSAyMDIyIGthaS1jaGVuZy5jaGl1CisgKiBbTU9MWTAwNzY1MDgxXSBbRmVhdHVyZURldmVsb3BtZW50XVtBTFBTQVIwNjMzNjIzMl0gVE1PVVMgMjJRMSBSZXF1aXJlbWVudCBHYXAgRGV2ZWxvcG1lbnQgLSBVRSBNTyBUaW1lciBGMQorICogCQorICogCS4KKyAqCisgKiAwMSAyOCAyMDIyIHhpbi5uaQorICogW01PTFkwMDYwMzQ4NF0gW0dFTjk1XVtOZXcgRmVhdHVyZV1zaSB0cmFuc2FjdGlvbiBzaG91bGQga2VlcCAzMzBzIGFmdGVyIHNlbmRpbmcgMTh4CisgKiAJCisgKiAJLgorICoKKyAqIDAxIDI1IDIwMjIgeGluLm5pCisgKiBbTU9MWTAwNjAzNDg0XSBbR0VOOTVdW05ldyBGZWF0dXJlXXNpIHRyYW5zYWN0aW9uIHNob3VsZCBrZWVwIDMzMHMgYWZ0ZXIgc2VuZGluZyAxOHgKKyAqIAkKKyAqIAkuCisgKgorICogMDcgMTkgMjAyMSBvdF9odWkudHUKKyAqIFtNT0xZMDA2MDM0ODRdIFtHRU45NV1bTmV3IEZlYXR1cmVdc2kgdHJhbnNhY3Rpb24gc2hvdWxkIGtlZXAgMzMwcyBhZnRlciBzZW5kaW5nIDE4eAorICogCQorICogCS4KKyAqCisgKiAxMSAxNiAyMDIwIHNhbWkuanV0aWxhCisgKiBbTU9MWTAwNTg2MTcyXSBbTVQ2ODkzXVtQZXRydXMtUF1bU1FDXVtSMF1bUjNdW01QNl1bNUddW1NBXVtDVENdW0ZUXVtIYW5nemhvdV1bSHVhd2VpXVtUQy1NRl9JT1RGVC0wNjAwMV1bNUfnqbrpl7Lvvz8/57uI56uv5aeL5ZG8XU1UIGZhaWxlZAorICogLgorICoKKyAqIDExIDA2IDIwMjAgeW9yay5saQorICogW01PTFkwMDU4ODAzNl0g778/PzIwMTMxP5Hvv70/RFZUP5y65rWL4z+R77+9Pz8/hOU/ieM/ke+/vT/vvz8/77+95z+R4z+RQ1QrQ01DQygyRytJTVMp77yM5Li7778/P++/veeUteS/PzJHP5W/778/P+i/h+c/i+S4rT+Ktu+/Pz/vvz8/P4mv778/P++/veenuz+KqFZvTFRF5raI5aSxKDEvMTApCisgKiAJCisgKiAJLgorICoKKyAqIDExIDA2IDIwMjAgeW9yay5saQorICogW01PTFkwMDU4ODAzNl0g778/PzIwMTMxP5Hvv70/RFZUP5y65rWL4z+R77+9Pz8/hOU/ieM/ke+/vT/vvz8/77+95z+R4z+RQ1QrQ01DQygyRytJTVMp77yM5Li7778/P++/veeUteS/PzJHP5W/778/P+i/h+c/i+S4rT+Ktu+/Pz/vvz8/P4mv778/P++/veenuz+KqFZvTFRF5raI5aSxKDEvMTApCisgKiAJCisgKiAJLgorICoKKyAqIDA5IDE4IDIwMjAgdXJpLmNoYW5nCisgKiBbTU9MWTAwNTY5Njk1XSBbVVNfREVWXVtWWlddW01QN10gUC1DU0NGIGhhbmRsaW5nIGZvciBoYW5kb3ZlcgorICogUC1DU0NGIGhhbmRsaW5nIGZvciBJUC9QQ08gY2hhbmdlIC0gaW50ZXJmYWNlIHBhcnQgKFNXUkQpIC0gZGVsZXRlIHVudXNlZCBtc2cKKyAqIAltZXJnZSBJUF9DSEFOR0VfTk9USUZZLCBQQ1NDRl9SRVNUT1JFLCBhbmQgUkVRX1JFUkVHIHRvIENPTkRJVElPTl9DSEFOR0VfTk9USUZZLgorICoKKyAqIDA5IDE4IDIwMjAgdXJpLmNoYW5nCisgKiBbTU9MWTAwNTY5Njk1XSBbVVNfREVWXVtWWlddW01QN10gUC1DU0NGIGhhbmRsaW5nIGZvciBoYW5kb3ZlcgorICogCQorICogCVAtQ1NDRiBoYW5kbGluZyBmb3IgSVAvUENPIGNoYW5nZSAtIGludGVyZmFjZSBwYXJ0IChTV1JEKSAtIGFkZCBtc2cKKyAqIAltZXJnZSBJUF9DSEFOR0VfTk9USUZZLCBQQ1NDRl9SRVNUT1JFLCBhbmQgUkVRX1JFUkVHIHRvIENPTkRJVElPTl9DSEFOR0VfTk9USUZZLgorICoKKyAqIDA4IDI4IDIwMjAgeW9yay5saQorICogW01PTFkwMDU2MjcwOV0gWzVHSFBdW2ZlYXR1cmVdW0RhdGEmQ2FsbF1nYW1lIHNwYWNlIG1vZGUKKyAqIAkKKyAqIAkuCisgKgorICogMDcgMDQgMjAyMCBmcmFuay10aC5jaGVuCisgKiBbTU9MWTAwNTM4MjYxXSBbQmxvY2tpbmddW0NDUDItUDBdW01UNjg4NV1bUGV0cnVzXVtUTU8tVVNdW01QNV1bU1FDXVsyMFEyXVtxMF1bSFFdW0tleXNpZ2h0XVtQcm90b2NvbF9XaS1GaSBDYWxsaW5nXVs2MDQ3NF1bTC1lUERHIC05NzYwMi03XVRoZSBtc2cgZG9lc24ndCBjb250YWluIGhlYWRlciBmaWVsZCBQLUxvY2F0aW9uLU9iamVjdCAtIEVycm9yCisgKiAJCisgKiAJLgorICoKKyAqIDA2IDMwIDIwMjAgeHcud2FuZworICogW01PTFkwMDUzNjcwNF0gW0tEREldW25ldyBmZWF0dXJlXVtSTVNDMDA1NDA1MTddQUNCIHNraXAgZm9yIFNVQlNDUklCRQorICogCQorICogCS4KKyAqCisgKiAwNiAzMCAyMDIwIGZyYW5rLXRoLmNoZW4KKyAqIFtNT0xZMDA1MjYwNjZdIEFMUFMwNTEyMDEzNCBbVENMXVtUb2t5byBMaXRlIFRNT11XRkNdIFRoZSAiUC1MQU5JIFRJTUVTVEFNUCBoZXJlIiBpbiBpbnZpdGUgaXMgbm90IGNvcnJlY3QsIGl0IGlzIGRpc3BsYXkgdGhlIGludml0ZSB0aW1lc3RhbXAuIFRoZSB0aW1lIHJlcG9ydGVkIGlzIG5vdCBpbiBVVEMgb3IgbG9jYWwgdGltZSBmb3IgTFRFLyAzRy8gMkcKKyAqIAkKKyAqIAkuCisgKgorICogMDYgMTUgMjAyMCBmcmFuay10aC5jaGVuCisgKiBbTU9MWTAwNTI2MDY2XSBBTFBTMDUxMjAxMzQgW1RDTF1bVG9reW8gTGl0ZSBUTU9dV0ZDXSBUaGUgIlAtTEFOSSBUSU1FU1RBTVAgaGVyZSIgaW4gaW52aXRlIGlzIG5vdCBjb3JyZWN0LCBpdCBpcyBkaXNwbGF5IHRoZSBpbnZpdGUgdGltZXN0YW1wLiBUaGUgdGltZSByZXBvcnRlZCBpcyBub3QgaW4gVVRDIG9yIGxvY2FsIHRpbWUgZm9yIExURS8gM0cvIDJHCisgKiAJCisgKiAJLgorICoKKyAqIDAzIDI0IDIwMjAgbWFuaWsubWFoYWphbgorICogW01PTFkwMDQ2NDg1NF0gW1NvbnldW1NNMzNdW0lNU11bSklNT0RNMTgtMjg0Nl1bUkFUXVtIdWFpaGUxLjBdW1BDQ1ddIFVFIG5vdCB0byBwZXJmb3JtIElNUyByZS1yZWdpc3RyYXRpb24gYWZ0ZXIgVm93aWZpIEhPIHRvIExURQorICogCQorICogCS4KKyAqCisgKiAwMyAyNCAyMDIwIG1hbmlrLm1haGFqYW4KKyAqIFtNT0xZMDA0NjQ4NTRdIFtTb255XVtTTTMzXVtJTVNdW0pJTU9ETTE4LTI4NDZdW1JBVF1bSHVhaWhlMS4wXVtQQ0NXXSBVRSBub3QgdG8gcGVyZm9ybSBJTVMgcmUtcmVnaXN0cmF0aW9uIGFmdGVyIFZvd2lmaSBITyB0byBMVEUKKyAqIAkKKyAqIAkuCisgKgorICogMDMgMjQgMjAyMCB4dy53YW5nCisgKiBbTU9MWTAwNTA3MDc3XSBbTVQ2NzM5XVtaaW9uXVtRMF1bV1cgRlRdW1R1cmtleV1bSXN0YW5idWxdWzRHTU1dW0lNU11bUmVncmVzc2lvbl1bU1FDIEV4Y2x1ZGVkXVtUdXJrVGVsZWtvbV1bVm9XaUZpXSBUbyBjaGVjayB0aGUgUENOSSByZXF1aXJlbWVudHMsIENlbGwgVGltZSBpcyBzaG93aW5nIDAKKyAqIAkKKyAqIAkuCisgKgorICogMDMgMjMgMjAyMCBtYW5pay5tYWhhamFuCisgKiBbTU9MWTAwNDY0ODU0XSBbU29ueV1bU00zM11bSU1TXVtKSU1PRE0xOC0yODQ2XVtSQVRdW0h1YWloZTEuMF1bUENDV10gVUUgbm90IHRvIHBlcmZvcm0gSU1TIHJlLXJlZ2lzdHJhdGlvbiBhZnRlciBWb3dpZmkgSE8gdG8gTFRFCisgKiAJCisgKiAJLgorICoKKyAqIDAzIDIyIDIwMjAgbWFuaWsubWFoYWphbgorICogW01PTFkwMDQ2NDg1NF0gW1NvbnldW1NNMzNdW0lNU11bSklNT0RNMTgtMjg0Nl1bUkFUXVtIdWFpaGUxLjBdW1BDQ1ddIFVFIG5vdCB0byBwZXJmb3JtIElNUyByZS1yZWdpc3RyYXRpb24gYWZ0ZXIgVm93aWZpIEhPIHRvIExURQorICogCQorICogCS4KKyAqCisgKiAwMiAyNCAyMDIwIG1hbmlrLm1haGFqYW4KKyAqIFtNT0xZMDA0NjQ4NTRdIFtTb255XVtTTTMzXVtJTVNdW0pJTU9ETTE4LTI4NDZdW1JBVF1bSHVhaWhlMS4wXVtQQ0NXXSBVRSBub3QgdG8gcGVyZm9ybSBJTVMgcmUtcmVnaXN0cmF0aW9uIGFmdGVyIFZvd2lmaSBITyB0byBMVEUKKyAqIAkKKyAqIAkuCisgKgorICogMTIgMDYgMjAxOSBjaGVuZ3dlbi5saXUKKyAqIFtNT0xZMDA0NjQyODddIFtWTU9MWV1bR2VuOTddIFVBIEFTU0VSVCBSZW1vdmFsICYgSU1DQi9VQSBzdGF0ZSB1bnN5bmMgaGFuZGxpbmcKKyAqIC4KKyAqCisgKiAxMiAwNSAyMDE5IHh3LndhbmcKKyAqIFtNT0xZMDA0NTg5MzJdIFtHRU45N11bSU1TIFBBVENIIEJBQ0tdW3ZvbHRlX3N0YWNrXSBwYXRjaCBiYWNrIHRvIFZNT0xZCisgKiAJCisgKiAJLgorICogCXBhdGNoIGJhY2sgZnJvbSBDTCA5Nzg5NDEwCisgKiAJaW50ZXJmYWNlIHBhcnQKKyAqCisgKiAxMiAwNCAyMDE5IGZyYW5rLXRoLmNoZW4KKyAqIFtNT0xZMDA0NjMyNDhdIFtUTU9VU10gW0lNU10gMjAyMFEyIFJlcXVpcmVtZW50CisgKiAJCisgKiAJLgorICoKKyAqIDEyIDAyIDIwMTkgeHcud2FuZworICogW01PTFkwMDQ2MjIwMl0gW01UNjc3MV1bU3lsdmlhXVtPMV1bTVAxLjVdW0lPVF1bSmFwYW5dW0tEREldW1BIMy1Wb0xURV0gVEMzLTEwLTYtMyBVRSBzdXBwb3J0ZWQgIkFDQiBTa2lwKDNHUFAgUmVsLjEyKSIgb3Igbm90CisgKiAJCisgKiAJLgorICoKKyAqIDA3IDIzIDIwMTkgZnJhbmstdGguY2hlbgorICogW01PTFkwMDQyNDQ3NF0gW1ZNT0xZXSBUaGUgRFVUIGhhbmdzIHVwIGF1dG9tYXRpY2FsbHkgaW4gVk9XSUZJIGNhbGxpbmcKKyAqIAkKKyAqIAkuCisgKgorICogMDcgMjMgMjAxOSBmcmFuay10aC5jaGVuCisgKiBbTU9MWTAwNDI0NDc0XSBbVk1PTFldIFRoZSBEVVQgaGFuZ3MgdXAgYXV0b21hdGljYWxseSBpbiBWT1dJRkkgY2FsbGluZworICogCQorICogCS4KKyAqCisgKiAwNCAxMiAyMDE5IHlvcmsubGkKKyAqIFtNT0xZMDAzOTg5MDZdIFtTdWJtYXJpbmVdW00xXVtSRElUXVtDVF1bRlRdW1RDLU1GX1ZPTFRFRlQtMDMwMDJdW0NoaW5hXVtTSF1bQVNTRVJUXSBmaWxlOm1jdS9wcm90b2NvbC9pbWMvc3ViX2ltYy9pbWNfY2Mvc3JjL2ltY19jY19tc2doZGxyLmMgbGluZToxMDA0IHdoZW4ga2VlcCBsb25nIFZpbHRlIGNhbGwKKyAqIAkKKyAqIAkuCisgKgorICogMDMgMTMgMjAxOSBjaGVuZ3dlbi5saXUKKyAqIFtNT0xZMDAzODQ1MDFdIFtDZXJ2aW5vIFAwXVtWelddW0VBQl1bMy4zMF1GYWlsIGR1ZSB0byBSRUdJU1RFUiByZXF1ZXN0IHJlY2VpdmVkCisgKiAuCisgKgorICogMDEgMjkgMjAxOSBzenUtY2hpZWguY2hpdQorICogW01PTFkwMDM4MTE5NF0gW1N1Ym1hcmluZV1bTTFdWzFzdENhbGxdIGRlY29kZSBmYWlsIG9uIHRoZSBJTE0gbWVzc2FnZXMgYmV0d2VlbiBJTVNVQS9JTUNCL0lNU19TVEFDSworICogdWEgbmFtaW5nIHJlZmluZS4KKyAqCisgKiAwMSAyMyAyMDE5IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAzODA4NTddIFtTdWJtYXJpbmVdW00xXVsxc3RDYWxsXVtDTUNDXUlNUyByZWdpc3RlciBmYWlsCisgKiBVcGRhdGUgSU1TIFN0YWNrIGludGVyZmFjZSAtIGZsYWcgZmllbGQgdXNhZ2UKKyAqCisgKiAwMSAwOCAyMDE5IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAzNjcxMjZdIFtHZW45N11bSU1TXSBWb0xURSBwb3J0aW5nCisgKiBBZGRpbmcgSU1TIGludGVyZmFjZXMgdG8gdHJhY2UgZGF0YWJhc2UuCisgKgorICogMDEgMDcgMjAxOSBrYXJpLnN1dml2YWFyYQorICogW01PTFkwMDM3MzI4MF0gW0dlbjk3XVtJTVNdW1ZvTFRFIFBvcnRpbmddIENvZGluZy9VVCBQaGFzZSAxCisgKiAJCisgKiAJSU1TIFVBIGFuZCBTdGFjayByYW1wIHVwIG9uIE1EIHNpZGUuCisgKgorPj4+PiBPUklHSU5BTCAvL1VNT0xZRS9ERVYvVU1PTFlFLkdFTjk3LlNVQk1BUklORS5ERVYvbWN1L2ludGVyZmFjZS9zYXAvbWQvaW1zX3N0YWNrX21zZ2lkLmgjMworICogMTIgMjggMjAxOCBodWlmZW5nLmppbmcKKz09PT0gVEhFSVJTIC8vVU1PTFlFL0RFVi9VTU9MWUUuR0VOOTcuU1VCTUFSSU5FLkRFVi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbXNfc3RhY2tfbXNnaWQuaCM0CisgKiAwMSAwNyAyMDE5IGthcmkuc3V2aXZhYXJhCisgKiBbTU9MWTAwMzczMjgwXSBbR2VuOTddW0lNU11bVm9MVEUgUG9ydGluZ10gQ29kaW5nL1VUIFBoYXNlIDEKKyAqIAkKKyAqIAlJTVMgVUEgYW5kIFN0YWNrIHJhbXAgdXAgb24gTUQgc2lkZS4KKyAqCisgKiAxMiAyOCAyMDE4IGh1aWZlbmcuamluZworPT09PSBZT1VSUyAvL3dzX2thcmkuc3V2aXZhYXJhX21vZGVtL1VNT0xZRS9ERVYvVU1PTFlFLlNVQk1BUklORS5NMUlULkRFVi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pbXNfc3RhY2tfbXNnaWQuaAorICogMTIgMjkgMjAxOCBodWlmZW5nLmppbmcKKzw8PDwKKyAqIFtNT0xZMDAzNzU2NjBdIFtJTVNdW0dlbjk3IHN1Ym1hcmluZV0gVlRTIGludGVyZmFjZSBkZXZlbG9wbWVudHMKKyAqIGltc19oaWYgb3ZlciB0dHkuCisgKgorICogMTIgMTQgMjAxOCBtaWthLmxlaW5vbmVuCisgKiBbTU9MWTAwMzY3MTI2XSBbR2VuOTddW0lNU10gVm9MVEUgcG9ydGluZworICogVGltZXJzIC0gZnJhbWV3b3JrIGZvciBVQSBhbmQgU3RhY2sKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfSU1TX1NUQUNLX01TR0lEX0hfCisjZGVmaW5lIF9JTVNfU1RBQ0tfTVNHSURfSF8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tIElNU19TVEFDS19NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfSU1TX1NUQUNLX0NPREVfQkVHSU4gKQorCisgICAgTVNHX0lEX0lNU19TVEFDS19CRUdJTiwKKworICAgIE1TR19JRF9JTVNfU1RBQ0tfRVhfQkVHSU4sCisKKyAgICAgICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgICAgIC8qICBDbGllbnQgLS0+IFZvTFRFIFN0YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgICAgICAgLyogVE8gU0lQVFggKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0NSRUFURV9SRVEsICAgICAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfQ2hhbm5lbF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0RFU1RST1lfUkVRLCAgICAgICAgICAgICAgICAgLyogTi9BICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9DT05ORUNUX1JFUSwgICAgICAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX0Nvbm5lY3Rpb25fSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9ESVNDT05ORUNUX1JFUSwgICAgICAgICAgICAgIC8qIE4vQSAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfU0VORF9TSVBNU0dfUkVRLCAgICAgICAgICAgICAvKiBWb0xURV9TdGFja19TaXBfSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9NRU1fREVCVUdfUkVRLCAgICAgICAgICAgICAgIC8qIFZvTFRFX0RlYnVnX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfU0VUVElOR19SRVEsICAgICAgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9TZXR0aW5nX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0FVVE9fVEVTVElOR19JRF9VUERBVEVfUkVRLCAgLyogVm9MVEVfQXV0b1Rlc3RpbmdfSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9BQk9SVF9TSVBNU0dfUkVRLCAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX1NpcF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFU0VUX1RDUF9SRVEsICAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfQ2hhbm5lbF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1NUQVJUX0tFRVBfQUxJVkVfUkVRLCAgICAgICAgLyogVm9MVEVfU3RhY2tfQ2hhbm5lbF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1NUT1BfS0VFUF9BTElWRV9SRVEsICAgICAgICAgLyogVm9MVEVfU3RhY2tfQ2hhbm5lbF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0NBTExfU0VTU0lPTl9URVJNSU5BVEVEX0lORCwgLyogVm9MVEVfU3RhY2tfU2lwX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfVUFfU1RBVEVfSU5ELCAgICAgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9VQV9TdGF0ZV90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9DQUxMX1NFU1NJT05fU1RBUlRFRF9JTkQsICAgIC8qIFZvTFRFX1N0YWNrX1NpcF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1VQREFURV9SQ1NfU1RBVFVTX1JFUSwgICAgICAgLyogaW50ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9TRU5EX0RVTU1ZX0RBVEFfUkVRLCAgICAgICAgIC8qIFZvTFRFX1N0YWNrX0NoYW5uZWxfSW5mb190ICovCisKKyAgICAgICAgLyogVE8gU0lQVFhfUkVHICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfUkVHX1JFUSwgICAgICAgICAgICAgICAgIC8qIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19SRVJFR19SRVEsICAgICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfUmVnX0l0ZW1fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0RFUkVHX1JFUSwgICAgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9SZWdfSXRlbV90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfTkVUV09SS19DSEFOR0VfUkVRLCAgICAgIC8qIFZvTFRFX0V2ZW50X05ldHdvcmtfQ2hhbmdlX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19VUERBVEVfU0VUVElOR19SRVEsICAgICAgLyogVm9MVEVfRXZlbnRfU2V0dGluZ190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfQUREX0JJTkRfUkVRLCAgICAgICAgICAgIC8qIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19ERUxfQklORF9SRVEsICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfUmVnX0l0ZW1fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0NMRUFSX0JJTkRfUkVRLCAgICAgICAgICAvKiBOL0EgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19BRERfQ0FQQUJJTElUWV9SRVEsICAgICAgLyogVm9MVEVfRXZlbnRfUmVnX0NhcGFiaWxpdHlfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0RFTF9DQVBBQklMSVRZX1JFUSwgICAgICAvKiBWb0xURV9FdmVudF9SZWdfQ2FwYWJpbGl0eV90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfR0VUX1NUQVRFX1JFUSwgICAgICAgICAgIC8qIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19SRVNFVF9SRVEsICAgICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfUmVnX0l0ZW1fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX1JBVF9DSEFOR0VfUkVRLCAgICAgICAgICAvKiBWb0xURV9FdmVudF9SYXRfQ2hhbmdlX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19SRVNUT1JFX1JFUSwgICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfUmVnX0l0ZW1fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHXzNHUFBfUkFUX0NIQU5HRV9SRVEsICAgICAvKiBWb0xURV9FdmVudF8zZ3BwX1JhdF9DaGFuZ2VfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX1FVRVJZX0NBTExfU1RBVEVfQ05GLCAgICAvKiBWb0xURV9FdmVudF9MaXN0X0N1cnJlbnRfQ2FsbF9Ub19TdGFja190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfTURfTE9XRVJfTEFZRVJfRVJSX1JFUSwgIC8qIFZvTFRFX0V2ZW50X01EX0xvd2VyX0xheWVyX0Vycl90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfU0VORF9TVUJTUklCRV9SRVEsICAgICAgIC8qIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19RVUVSWV9JRl9FTV9UU19FWElTVF9SRVEsLyogTi9BICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9HRU9MT0NBVElPTl9SRVFfQ05GLCAgICAgICAgIC8qIFZvTFRFX0V2ZW50X0dlb2xvY2F0aW9uX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX05PVElGWV9JTVNWT1BTX1JFUSwgICAgICAvKiBWb0xURV9FdmVudF9Ob3RpZnlfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX05PVElGWV9TSVBfQkxPQ0tfUkVRLCAgICAvKiBWb0xURV9FdmVudF9Ob3RpZnlfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUFJFU0VOQ0VfVU5QVUJMSVNIX0NORiwgICAgICAvKiBWb0xURV9FdmVudF9QcmVzZW5jZV9VbnB1Ymxpc2hfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0lSQVRfV0lUSE9VVF9JUF9DSEFOR0VfUkVRLCAvKiBWb0xURV9FdmVudF9pUmF0X3dpdGhvdXRfSVBfQ2hhbmdlX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19IQU5ET1ZFUl9JUF9SRUFEWV9OT1RJRlksCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JRl9SRUdfUkVBRFlfUkVRLCAgICAgICAgICAgIC8qIE4vQSAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX05PVElGWV9DT05GX1NVQlNDX1JFUSwgICAvKiBWb0xURV9FdmVudF9Ob3RpZnlfdCAgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19GRjAwSF9VUERBVEVfUkVRLCAgICAgICAgLyogVm9MVEVfRXZlbnRfRkYwMEhfVXBkYXRlX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19FOTExX0UyX1RJTUVPVVRfUkVRLCAgICAgLyogVm9MVEVfRXZlbnRfUmVnX0l0ZW1fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0RJR0lUTElORV9SRVEsICAgICAgICAgICAvKiBWb0xURV9FdmVudF9BVENtZF9SZWxheV90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9MT0dHSU5HX0VWRU5UX05PVElGWV9SRVEsICAgIC8qIFZvTFRFX0V2ZW50X0xvZ2dpbmdfRXZlbnRfTm90aWZ5X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR18zR1BQX09PU19JTkRfUkVRLCAgICAgICAgLyogVm9MVEVfRXZlbnRfM2dwcF9PT1NfSW5kX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19QU19EQVRBX09GRl9SRVEsICAgICAgICAgLyogVm9MVEVfRXZlbnRfUFNfREFUQV9PRkZfUmVxX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19DQUxMX1NUQVRVU19JTkQsICAgICAgICAgLyogVm9MVEVfRXZlbnRfTGlzdF9DdXJyZW50X0NhbGxfVG9fU3RhY2tfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0VYVEVSTkFMX1VBX1NUQVRFLCAgICAgICAvKiBWb0xURV9FdmVudF9FeHRlcm5hbF9VQV9TdGF0ZV90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfVFJJR0VSX1JFUkVHX0lOSVRfREVSRUdfSU5ELCAgIC8qIFZvTFRFX0V2ZW50X1JlZ19UcmlnZXJfUmVyZWdfSW5pdF9EZXJlZ190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9BQ0JfU0tJUF9TVEFSVF9DTkYsICAgICAgICAgIC8qIFZvTFRFX0V2ZW50X0FDQl9Ta2lwX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfQUNCX1NLSVBfRU5EX0NORiwgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9BQ0JfU2tpcF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19BUF9MT0NBVElPTl9SRVEsICAgICAgICAgLyogVm9MVEVfRXZlbnRfQVBfTG9jYXRpb25fc3RhdHVzX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19DT05ESVRJT05fQ0hBTkdFX05PVElGWV9SRVEsICAgIC8qIFZvTFRFX0V2ZW50X0NvbmRpdGlvbl9DaGFuZ2VfTm90aWZ5X3QgKi8KKyAgICAgICAgLyogVGVhcmRvbiBGbG93IGZvciBJTUNCL1JFRyBzdGF0ZSB1bi1zeW5jICovCisgICAgICAgIE1TR19JRF9JTVNVQV9JTVNfU1RBQ0tfVU5FWFBFQ1RFRF9TVEFURV9SRVEsICAgIC8qIGltc3VhX2ltc19zdGFja191bmV4cGVjdGVkX3N0YXRlX3JlcV9zdHJ1Y3QgKi8KKworICAgICAgICAvKiBUTyBTSVBUWF9JUFNFQyAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfSVBTRUNfU0VUVVBfUkVRLCAgICAgICAgICAgICAvKiBWb0xURV9TdGFja19JUFNlY19JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0lQU0VDX0NPTk5FQ1RfUkVRLCAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfSVBTZWNfSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JUFNFQ19ERUxFVEVfUkVRLCAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX0lQU2VjX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfSVBTRUNfQ0xFQVJfUkVRLCAgICAgICAgICAgICAvKiBWb0xURV9TdGFja19JUFNlY19JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0lQU0VDX0NIQU5HRV9UT19SRUdVTEFSX1JFUSwgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfSVBTRUNfUkVGUkVTSF9SRVEsICAgICAgICAgICAvKiBWb0xURV9TdGFja19JUFNlY19JbmZvX3QgKi8KKworCisgICAgICAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworICAgICAgICAvKiAgQ2xpZW50IDwtLSBWb0xURSBTdGFjayAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgICAgICAgIC8qIEZST00gU0lQVFggKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0NSRUFURV9SU1AsICAgICAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0RFU1RST1lfUlNQLCAgICAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0NPTk5FQ1RfUlNQLCAgICAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0RJU0NPTk5FQ1RfUlNQLCAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1NFTkRfU0lQTVNHX1JTUCwgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0lORF9TSVBNU0dfUlNQLCAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfU2lwX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfQUJPUlRfU0lQTVNHX1JTUCwgICAgICAgICAgICAvKiBWb0xURV9TdGFja19SZXN1bHRfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVTRVRfVENQX1JTUCwgICAgICAgICAgICAgICAvKiBWb0xURV9TdGFja19TaXBfSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9TVEFSVF9LRUVQX0FMSVZFX1JTUCwgICAgICAgIC8qIFZvTFRFX1N0YWNrX0NoYW5uZWxfSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9TVE9QX0tFRVBfQUxJVkVfUlNQLCAgICAgICAgIC8qIFZvTFRFX1N0YWNrX0NoYW5uZWxfSW5mb190ICovCisKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0RJU0NPTk5FQ1RfSU5ELCAgICAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19RVUVSWV9JRl9FTV9UU19FWElTVF9SU1AsLyogTUQgVUE6IFZvTFRFX1N0YWNrX1Jlc3VsdF90OyBBUCBVQTogc3RydWN0dXJlIGlzIFZvTFRFX0V2ZW50X0lNU19ISUZfRGF0YSAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfU0VORF9EVU1NWV9EQVRBX1JTUCwgICAgICAgICAvKiBWb0xURV9TdGFja19DaGFubmVsX0luZm9fdCAqLworICAgICAgICBNU0dfSURfU0lQX1NFTlRfVklBX0hEUl9JTkQsICAgICAgICAgICAgICAgICAgICAvKiBjaGFyYWN0ZXIgc3RyaW5nICovCisKKyAgICAgICAgLyogRlJPTSBTSVBUWF9SRUcgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19TVEFURV9JTkQsICAgICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfUmVnX1N0YXRlX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19RVUVSWV9TVEFURV9JTkQsICAgICAgICAgLyogVm9MVEVfRXZlbnRfUXVlcnlfU3RhdGVfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfRU1TX01PREVfSU5ELCAgICAgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9SZWdfRW1zX01vZGVfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX05PVElGWV9ET05FX0lORCwgICAgICAgICAvKiBWb0xURV9FdmVudF9SZWdfTm90aWZ5X0RvbmVfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0NBTkNFTF9TSVBfQkxPQ0tfSU5ELCAgICAvKiBWb0xURV9FdmVudF9Ob3RpZnlfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfUkVHX0RFUkVHX1NUQVJUX0lORCwgICAgICAgICAvKiBWb0xURV9FdmVudF9SZWdfRGVyZWdfU3RhcnRfdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfSUZfUkVHX1JFQURZX1JTUCwgICAgICAgICAgICAvKiBOL0EgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1JFR19OT1RJRllfQ09ORl9TVUJTQ19JTkQsICAgLyogVm9MVEVfRXZlbnRfTm90aWZ5X3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX1NSVV9JTkZPX0lORCwgICAgICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfU1JVX0luZm9fdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfQVRDTURfUkVMQVlfSU5ELCAgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9BVENtZF9SZWxheV90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfUkVMX0FMTF9DQUxMX0lORCwgICAgICAgIC8qIFZvTFRFX0V2ZW50X0NhbGxfUmVsX3QqLworICAgICAgICBNU0dfSURfVk9MVEVfU0lQVFhfQUNCX1NLSVBfU1RBUlRfSU5ELCAgICAgICAgICAvKiBWb0xURV9FdmVudF9BQ0JfU2tpcF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0FDQl9TS0lQX0VORF9JTkQsICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfQUNCX1NraXBfSW5mb190ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9SRUdfVVBEQVRFX1BMQU5JX1RJTUVfSU5ELCAgIC8qIFZvTFRFX0V2ZW50X1VwZGF0ZV9QTEFOSV9UaW1lX3QgKi8KKworICAgICAgICAvKiBGUk9NIFNJUFRYX0lQU0VDICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JUFNFQ19TRVRVUF9SU1AsICAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX1Jlc3VsdF90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JUFNFQ19DT05ORUNUX1JTUCwgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX1Jlc3VsdF90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JUFNFQ19ERUxFVEVfUlNQLCAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX1Jlc3VsdF90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JUFNFQ19DTEVBUl9SU1AsICAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX1Jlc3VsdF90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9TSVBUWF9JUFNFQ19DSEFOR0VfVE9fUkVHVUxBUl9SU1AsIC8qIE1EIFVBOiBWb0xURV9TdGFja19SZXN1bHRfdDsgQVAgVUE6IHN0cnVjdHVyZSBpcyBWb0xURV9FdmVudF9JTVNfSElGX0RhdGEgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUFRYX0lQU0VDX1JFRlJFU0hfUlNQLCAgICAgICAgICAgLyogVm9MVEVfU3RhY2tfUmVzdWx0X3QgKi8KKworICAgICAgICAvKiBJUFNFQyBQT0xJQ1kgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lQU0VDX1BPTElDWV9GTFVTSF9JTkQsICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfSVBTZWNfUG9saWN5X0ZsdXNoX0luZF90ICovCisgICAgICAgIE1TR19JRF9WT0xURV9JUFNFQ19QT0xJQ1lfQUREX0lORCwgICAgICAgICAgICAgIC8qIFZvTFRFX0V2ZW50X0lQU2VjX1BvbGljeV9BZGRfSW5kX3QgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lQU0VDX1BPTElDWV9ERUxFVEVfSU5ELCAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfSVBTZWNfUG9saWN5X0RlbGV0ZV9JbmRfdCAqLworCisgICAgICAgIC8qRm9yIFVBIGluIEFQIHNpZGUqLworICAgICAgICBNU0dfSURfVk9MVEVfU0VORF9UT19JTVNfSElGLCAgICAgICAgICAgICAgICAgICAvKiBWb0xURV9FdmVudF9JTVNfSElGX0RhdGEgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFQ1ZfRlJPTV9JTVNfSElGLCAgICAgICAgICAgICAgICAgLyogVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisKKyAgICAgICAgLyogSU1TIERCRyBpbmZvIGluZGljYXRpb24gKi8KKyAgICAgICAgTVNHX0lEX0lNU19EQkdfRU1fUkVHX0lORk9fSU5ELCAgICAgICAgICAgICAgICAgLyogaW1zX2RiZ19lbV9yZWdfaW5mb19pbmRfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9JTVNfREJHX1NJUF9JTkZPX0lORCwgICAgICAgICAgICAgICAgICAgIC8qIFZvTFRFX0V2ZW50X1JlZ19EYmdfU2lwX0luZm9fdCAqLworICAgICAgICBNU0dfSURfSU1TX0RCR19FTV9SRUdfQUJOT1JNQUxfSU5ELCAgICAgICAgICAgICAvKiBpbXNfZGJnX2VtX3JlZ19hYm5vcm1hbF9pbmRfc3RydWN0ICovCisKKworICAgIE1TR19JRF9JTVNfU1RBQ0tfRVhfRU5ELAorCisgICAgTVNHX0lEX0lNU19TVEFDS19JTl9CRUdJTiwKKworICAgICAgICAvKiBNU0cgRlJPTSBBUFAgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9DUkVBVEVfQ09OTl9SRVEsICAgICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX2NyZWF0ZV9jb25uX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX0RFTEVURV9DT05OX1JFUSwgICAgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfU0VORF9NU0dfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNpcF9tc2dfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9UT1NfUkVRLCAgICAgICAgICAgICAgICAgICAgICAvKiBubyB1c2UgKi8gICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIE1TR19JRF9TSVBfQUJPUlRfTVNHX1JFUSwgICAgICAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9ETlFfUVVFUllfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgLyogbm8gdXNlICovCisgICAgICAgIE1TR19JRF9TSVBfU0VUVVBfSVBTRUNfUkVRLCAgICAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9ERUxFVEVfSVBTRUNfUkVRLCAgICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX0NPTk5FQ1RfSVBTRUNfUkVRLCAgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfUkVGUkVTSF9JUFNFQ19SRVEsICAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9NT0RJRllfVDFfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9UMl9SRVEsICAgICAgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX1Q0X1JFUSwgICAgICAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9DTEVBUl9JUFNFQ19SRVEsICAgICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX0NPTk5FQ1RfVENQX0NMSUVOVF9SRVEsICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfY29ubmVjdF90Y3BfY2xpZW50X3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX1JFQ09SRF9USU1FU1RBTVBfUkVRLCAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfREVMRVRFX0NPTk5fU09DX0ZEX1JFUSwgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9ERUxFVEVfQ09OTl9PQkpfUkVRLCAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX1JFU0VUX1RDUF9DTElFTlRfUkVRLCAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfcmVzZXRfdGNwX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX1NFVFVQX0lQU0VDX0NIQU5HRV9UT19SRUdVTEFSLCAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX0ZfVElNRVJfUkVRLCAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9TVEFSVF9LRUVQX0FMSVZFX1JFUSwgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX1NUT1BfS0VFUF9BTElWRV9SRVEsICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX0FfVElNRVJfUkVRLCAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9NT0RJRllfQl9USU1FUl9SRVEsICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9DX1RJTUVSX1JFUSwgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX0RfVElNRVJfUkVRLCAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9NT0RJRllfRV9USU1FUl9SRVEsICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9HX1RJTUVSX1JFUSwgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX0hfVElNRVJfUkVRLCAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9NT0RJRllfSV9USU1FUl9SRVEsICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9KX1RJTUVSX1JFUSwgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX0tfVElNRVJfUkVRLCAgICAgICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9EQkdfU0VUVElOR19SRVEsICAgICAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX1FVRVJZX0lGX0VNX1RTX0VYSVNULCAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX0JfVElNRVJfU1RPUF9SRVEsICAgICAgICAgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9DSEVDS19SRUdfQ09OVEFDVF9SRVEsICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX05PUk1BTF9DQUxMX0JVRkZFUiwgICAgICAgICAgICAgICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfQ09OTkVDVF9UQ1BfQ0xJRU5UX05PTl9QUk9URUNUX1JFUSwgIC8qIG5vIG5lZWQgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9DT05ORUNUX1RDUF9DTElFTlRfUFJPVEVDVF9SRVEsICAgICAgLyogbm8gbmVlZCAqLworICAgICAgICBNU0dfSURfU0lQX1JFU0VUX1RDUF9DTElFTlRfTk9OX1BST1RFQ1RfUkVRLCAgICAvKiBubyBuZWVkICovCisgICAgICAgIE1TR19JRF9TSVBfUkVTRVRfVENQX0NMSUVOVF9QUk9URUNUX1JFUSwgICAgICAgIC8qIG5vIG5lZWQgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9SRUNPUkRfQ0VMTF9JTkZPX0FHRV9USU1FU1RBTVBfUkVRLCAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9FTUNfQ0lUU19QUk9URUNUX1RJTUVSX1JFUSwgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfRU1DX0NJVFNfU0tJUF9FUlJfSU5fUFJPQ0VFRElORywgICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKworICAgICAgICBNU0dfSURfU0lQX01PRElGWV9TSVRTX1RDUF8yWFhfUkVUUkFOU01JVF9SRVEsICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfTU9ESUZZX05PUk1fQ0lUU19QUk9URUNUX1RJTUVSX1JFUSwgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9TRU5EX0RVTU1ZX0RBVEFfUkVRLCAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworICAgICAgICBNU0dfSURfU0lQX1JFQ09SRF9SRUdJU1RFUkVEX1RJTUVTVEFNUF9SRVEsICAgICAvKiBzaXB0eF9yZXFfc3RydWN0ICovCisgICAgICAgIE1TR19JRF9TSVBfUkVDT1JEX0NFTExfQ0FNUEVEX1RJTUVTVEFNUF9SRVEsICAgIC8qIHNpcHR4X3JlcV9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9OT1JNX1NJVFNfVFJBTlNfVElNRVJfSU5fUFJPQ0VFRElORywKKyAgICAgICAgTVNHX0lEX1NJUF9NT0RJRllfRjFfVElNRVJfUkVRLCAgICAgICAgICAgICAgICAgLyogc2lwdHhfcmVxX3N0cnVjdCAqLworCisgICAgICAgIC8qIE1TRyBUTyBBUFAgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9DUkVBVEVfQ09OTl9SU1AsICAgICAgICAgICAgICAgICAgICAgLyogTUQgVUE6IFZvTFRFX1N0YWNrX1Jlc3VsdF90OyBBUCBVQTogc3RydWN0dXJlIGlzIFZvTFRFX0V2ZW50X0lNU19ISUZfRGF0YSAqLworICAgICAgICBNU0dfSURfU0lQX0RFTEVURV9DT05OX1JTUCwgICAgICAgICAgICAgICAgICAgICAvKiBNRCBVQTogVm9MVEVfU3RhY2tfUmVzdWx0X3Q7IEFQIFVBOiBzdHJ1Y3R1cmUgaXMgVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisgICAgICAgIE1TR19JRF9TSVBfUkVDVl9NU0dfSU5ELAkJICAgICAgICAgICAgICAgIC8qIFZvTFRFX1N0YWNrX1NpcF9JbmZvX3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9ERUxFVEVfQ09OTl9JTkQsICAgICAgICAgICAgICAgICAgICAgLyogTUQgVUE6IFZvTFRFX1N0YWNrX1Jlc3VsdF90OyBBUCBVQTogc3RydWN0dXJlIGlzIFZvTFRFX0V2ZW50X0lNU19ISUZfRGF0YSAqLworICAgICAgICBNU0dfSURfU0lQX1NFVFVQX0lQU0VDX1JTUCwgICAgICAgICAgICAgICAgICAgICAvKiBNRCBVQTogVm9MVEVfU3RhY2tfUmVzdWx0X3Q7IEFQIFVBOiBzdHJ1Y3R1cmUgaXMgVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisgICAgICAgIE1TR19JRF9TSVBfREVMRVRFX0lQU0VDX1JTUCwgICAgICAgICAgICAgICAgICAgIC8qIE1EIFVBOiBWb0xURV9TdGFja19SZXN1bHRfdDsgQVAgVUE6IHN0cnVjdHVyZSBpcyBWb0xURV9FdmVudF9JTVNfSElGX0RhdGEgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9DT05ORUNUX0lQU0VDX1JTUCwgICAgICAgICAgICAgICAgICAgLyogTUQgVUE6IFZvTFRFX1N0YWNrX1Jlc3VsdF90OyBBUCBVQTogc3RydWN0dXJlIGlzIFZvTFRFX0V2ZW50X0lNU19ISUZfRGF0YSAqLworICAgICAgICBNU0dfSURfU0lQX0NMRUFSX0lQU0VDX1JTUCwgICAgICAgICAgICAgICAgICAgICAvKiBNRCBVQTogVm9MVEVfU3RhY2tfUmVzdWx0X3Q7IEFQIFVBOiBzdHJ1Y3R1cmUgaXMgVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisgICAgICAgIE1TR19JRF9TSVBfQUJPUlRfTVNHX1JTUCwgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vIHVzZSAqLworICAgICAgICBNU0dfSURfU0lQX1JFRlJFU0hfSVBTRUNfUlNQLCAgICAgICAgICAgICAgICAgICAvKiBNRCBVQTogVm9MVEVfU3RhY2tfUmVzdWx0X3Q7IEFQIFVBOiBzdHJ1Y3R1cmUgaXMgVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisgICAgICAgIE1TR19JRF9TSVBfREVMRVRFX0NPTk5fU09DX0ZEX1JFUV9SU1AsICAgICAgICAgIC8qIE1EIFVBOiBWb0xURV9TdGFja19SZXN1bHRfdDsgQVAgVUE6IHN0cnVjdHVyZSBpcyBWb0xURV9FdmVudF9JTVNfSElGX0RhdGEgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9ERUxFVEVfQ09OTl9PQkpfUkVRX1JTUCwgICAgICAgICAgICAgLyogc2lwdHhfcmVzcF9zdHJ1Y3QgKi8KKyAgICAgICAgTVNHX0lEX1NJUF9SRVNFVF9UQ1BfQ0xJRU5UX1JFUV9SU1AsICAgICAgICAgICAgLyogTUQgVUE6IFZvTFRFX1N0YWNrX1Jlc3VsdF90OyBBUCBVQTogc3RydWN0dXJlIGlzIFZvTFRFX0V2ZW50X0lNU19ISUZfRGF0YSAqLworICAgICAgICBNU0dfSURfU0lQX0lQU0VDX0NIQU5HRV9UT19SRUdVTEFSX1JFUV9SU1AsICAgICAvKiBNRCBVQTogVm9MVEVfU3RhY2tfUmVzdWx0X3Q7IEFQIFVBOiBzdHJ1Y3R1cmUgaXMgVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisgICAgICAgIE1TR19JRF9TSVBfREJHX1NJUF9JTkZPX0lORCwgICAgICAgICAgICAgICAgICAgIC8qIG5vIHVzZSAqLworICAgICAgICBNU0dfSURfU0lQX1FVRVJZX0lGX0VNX1RTX0VYSVNUX1JTUCwgICAgICAgICAgICAvKiBNRCBVQTogVm9MVEVfU3RhY2tfUmVzdWx0X3Q7IEFQIFVBOiBzdHJ1Y3R1cmUgaXMgVm9MVEVfRXZlbnRfSU1TX0hJRl9EYXRhICovCisKKworICAgIE1TR19JRF9JTVNfU1RBQ0tfSU5fRU5ELAorCisgICAgTVNHX0lEX0lNU19TVEFDS19FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfSU1TX1NUQUNLX0NPREVfVEFJTCApCisKKworI2VuZGlmIC8qIF9JTVNfU1RBQ0tfTVNHSURfSF8gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltc21fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltc21fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWM4NmE1Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaW1zbV9tc2dpZC5oCkBAIC0wLDAgKzEsOTIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZpbGVuYW1lOgorKiAtLS0tLS0tLS0KKyogICBpbXNtX21zZ2lkLmgKKyoKKyogUHJvamVjdDoKKyogLS0tLS0tLS0KKyoKKyoKKyogRGVzY3JpcHRpb246CisqIC0tLS0tLS0tLS0tLQorKgorKgorKiBBdXRob3I6CisqIC0tLS0tLS0KKyoKKyoKKyoKKyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyogJExvZyQKKyoKKyogMDYgMTAgMjAxOSBzYW1lZXIuc2V0aGkKKyogW01PTFkwMDQwNjUyM10gSU1TTSBjaGVja2luIGluIFZNT0xZCisqIAkKKyogCVtNT0xZMDA0MTIyNjZdIElNU00gcGF0Y2hiYWNrIHRvIFZNT0xZIHdpdGggRDIKKyogCQorKiAJLgorKgorKiAwNSAyMCAyMDE5IHNhbWVlci5zZXRoaQorKiBbTU9MWTAwNDA2NTIzXSBJTVNNIGNoZWNraW4gaW4gVk1PTFkKKyogLgorKgorKiAwNSAwOCAyMDE5IG1pa2EubGVpbm9uZW4KKyogW01PTFkwMDQwMjg4MV0gW0dlbjk3XVtTdWJtYXJpbmVdIFN1Ym1hcmluZSBNMSBWTU9MWSBwYXRjaCBiYWNrIC0gSU1TCisqIGltcyBpbnRlcmZhY2UgZmlsZXMKKyoKKyogMDUgMDcgMjAxOSBzYXZ2YXMuY2hvdQorKiBbTU9MWTAwNDAzNDAwXSBbU3VibWFyaW5lXSBNMSB0byBWTU9MWQorKiAuCisqCisqIDExIDI3IDIwMTcgeXRzLmNoZW4KKyogW01PTFkwMDI5MTYxOV0gW1IzXVtWelcgZmVhdHVyZV0gRUlNU1JPQU0gZmxvdyByZWRlc2lnbi4KKyogCQorKiAJLgorKgorKiAwNiAyNCAyMDE3IG1pbmdjaHVuLmNoZW5nCisqIFtNT0xZMDAyNTk0NDVdIFtCaWFuY29dIHN5bmMgY29kZSBmb3JtIExSMTJBLk1QMQorKiBzeW5jIGZyb20gTVAxLgorKgorKiAwNiAxNCAyMDE3IGJlbi5jaGl1CisqIFtNT0xZMDAyNTYzNzRdIFtCaWFuY29dW04xXSAgVm9sdGUgaWNvbiBzaG91bGQgbm90IGFwcGVhciBhbmQgZ28gd2hlbiBjaGFuZ2UgQVBOCisqIFVNT0xZQSAtIElNQy9JTVNNIG5ldyBpbnRlcmZhY2UgZm9yIElNUyBkZXJlZyBhbmQgSU1TIGNhbGwgc3RhdHVzCisqCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfSU1TTV9NU0dJRF9ICisjZGVmaW5lIF9JTVNNX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0lNU01fQ09ERV9CRUdJTiApCisgICAgLy9Gcm9tIHVzZXJzIHRvIElNU00KKyAgICBNU0dfSURfSU1TTV9GUk9NX1VTRVJfQkVHSU4gPSBNU0dfSURfSU1TTV9DT0RFX0JFR0lOLAorICAgICAgICBNU0dfSURfSU1TTV9TRVRfUk9VVEVfRE5TX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DX0lNU19ERVJFR19DTkYsCisgICAgICAgIE1TR19JRF9JTVNNX0lNQ19JTVNfQ0FMTF9TVEFUVVNfSU5ELAorICAgICAgICBNU0dfSURfSU1TTV9JTVNNX0dFVF9WRVJTSU9OX1JFUSwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1DX0lNU19ST0FNSU5HX0lORCwKKworICAgICAgICBNU0dfSURfSU1DQl9JTVNNX0JFR0lOLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9QRE5fQUNUX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNU01fUEROX0RFQUNUX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9JTUNCX0lNU01fQkVBUkVSX0FDVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfSU1DQl9JTVNNX0JFQVJFUl9NT0RfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9CRUFSRVJfREVBQ1RfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0lNQ0JfSU1TTV9QQVJBX0ZBSUxfUkVRLAorICAgICAgICBNU0dfSURfSU1DQl9JTVNNX0VORCwKKworICAgICAgICBNU0dfSURfSU1TTV9JTVNNX0lOVEVSTkFMX0RFQlVHX1JFUSwKKworICAgIE1TR19JRF9JTVNNX0ZST01fVVNFUl9FTkQsCisKKyAgICAvL0lNU00gdG8gVXNlcnMKKyAgICBNU0dfSURfSU1TTV9UT19VU0VSX0JFR0lOLAorICAgICAgICBNU0dfSURfSU1TTV9TRVRfUk9VVEVfRE5TX0NORiwKKyAgICAgICAgTVNHX0lEX0lNU01fV0ZDX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU01fSU1TTV9HRVRfVkVSU0lPTl9DTkYsCisgICAgTVNHX0lEX0lNU01fVE9fVVNFUl9FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfSU1TTV9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX0lNU01fTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvaW1zdWFfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltc3VhX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZhZmM0NAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2ltc3VhX21zZ2lkLmgKQEAgLTAsMCArMSw0OTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBpbXN1YV9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAxMiAxNiAyMDIxIHhpbi5uaQorICogW01PTFkwMDc3NDE2MV0gW210MjczNV1bQ1MgZUNhbGxdW05HIGVDYWxsXVtwYXRjaCBiYWNrXSBlY2FsbCBwYXRjaCBiYWNrIGZyb20gTlIxNS5SMy5NRDcwMC5NUC5FQ0FsbC5ERVYKKyAqIAkKKyAqIAkuCisgKgorICogMDUgMTcgMjAyMSB1cmkuY2hhbmcKKyAqIFtNT0xZMDA2MjQ0MzldIFtUTU9dW0VjaG9sb2NhdGVdIFRNT1VTIDIxUTIgRWNob2xvY2F0ZSBmZWF0dXJlCisgKiBbcGF0Y2ggYmFja11bOTdSMyB0byA5N01ENzAwLk1QXVtUTU9VU11bU1dSRF0gRWNob2xvY2F0ZSAtIFNXUkQgcGFydCAzIChkZXZpZGVkIENMIGZvciBjYXRlZ29yeSkuCisgKgorICogMTEgMTMgMjAyMCBwZW5nLnBhbgorICogW01PTFkwMDU4OTI5OF0gW01UNjg1M11bTW91dG9uXVtWelddW0NDUDJdW0xDXVtIUV1bUm5TXVtFOTExXVsyLjQxXVtVRSBXaXRob3V0IFVJQ0MsIFNJQjEgUFMgOTExIFN1cHBvcnRlZCBhbmQgU0lCMiBFbWVyZ2VuY3kgQ2FsbCBOb3QgQmFycmVkLCBVRSBSZWNlbnRseSBBY3F1aXJlZCBMaXN0IGhhcyBMVEUsIFBTIDkxMSBDYWxsIFVuc3VjY2Vzc2Z1bCwgOTExIGNhbGwgQ29tcGxldGVzIG9uIGF2YWlsYWJsZSBTeXN0ZW0gXTkxMSBjYWxsIG9uIHRoZSBVTVRTIGZhaWwKKyAqIFJlbW92ZSBJTVMgdW51c2VkIG1zZyBpZC4KKyAqCisgKiAxMSAxMyAyMDIwIHBlbmcucGFuCisgKiBbTU9MWTAwNTg5Mjk4XSBbTVQ2ODUzXVtNb3V0b25dW1Z6V11bQ0NQMl1bTENdW0hRXVtSblNdW0U5MTFdWzIuNDFdW1VFIFdpdGhvdXQgVUlDQywgU0lCMSBQUyA5MTEgU3VwcG9ydGVkIGFuZCBTSUIyIEVtZXJnZW5jeSBDYWxsIE5vdCBCYXJyZWQsIFVFIFJlY2VudGx5IEFjcXVpcmVkIExpc3QgaGFzIExURSwgUFMgOTExIENhbGwgVW5zdWNjZXNzZnVsLCA5MTEgY2FsbCBDb21wbGV0ZXMgb24gYXZhaWxhYmxlIFN5c3RlbSBdOTExIGNhbGwgb24gdGhlIFVNVFMgZmFpbAorICogUmVtb3ZlIElNUyB1bnVzZWQgbXNnIGlkLgorICoKKyAqIDA5IDE4IDIwMjAgdXJpLmNoYW5nCisgKiBbTU9MWTAwNTY5Njk1XSBbVVNfREVWXVtWWlddW01QN10gUC1DU0NGIGhhbmRsaW5nIGZvciBoYW5kb3ZlcgorICogUC1DU0NGIGhhbmRsaW5nIGZvciBJUC9QQ08gY2hhbmdlIC0gaW50ZXJmYWNlIHBhcnQgKFNXUkQpIC0gZGVsZXRlIHVudXNlZCBtc2cKKyAqIAltZXJnZSBJUF9DSEFOR0VfTk9USUZZLCBQQ1NDRl9SRVNUT1JFLCBhbmQgUkVRX1JFUkVHIHRvIENPTkRJVElPTl9DSEFOR0VfTk9USUZZLgorICoKKyAqIDA5IDE4IDIwMjAgdXJpLmNoYW5nCisgKiBbTU9MWTAwNTY5Njk1XSBbVVNfREVWXVtWWlddW01QN10gUC1DU0NGIGhhbmRsaW5nIGZvciBoYW5kb3ZlcgorICogCQorICogCVAtQ1NDRiBoYW5kbGluZyBmb3IgSVAvUENPIGNoYW5nZSAtIGludGVyZmFjZSBwYXJ0IChTV1JEKSAtIGFkZCBtc2cKKyAqIAltZXJnZSBJUF9DSEFOR0VfTk9USUZZLCBQQ1NDRl9SRVNUT1JFLCBhbmQgUkVRX1JFUkVHIHRvIENPTkRJVElPTl9DSEFOR0VfTk9USUZZLgorICoKKyAqIDA4IDI4IDIwMjAgamluLmxpYW5nCisgKiBbTU9MWTAwNTYyNzA5XSBbNUdIUF1bZmVhdHVyZV1bRGF0YSZDYWxsXWdhbWUgc3BhY2UgbW9kZQorICogSW50ZXJmYWNlLgorICoKKyAqIDA2IDMwIDIwMjAgeHcud2FuZworICogW01PTFkwMDUzNjcwNF0gW0tEREldW25ldyBmZWF0dXJlXVtSTVNDMDA1NDA1MTddQUNCIHNraXAgZm9yIFNVQlNDUklCRQorICogCQorICogCS4KKyAqCisgKiAwNiAzMCAyMDIwIHRzdW5nLWt1bi5zaGloCisgKiBbTU9MWTAwNTA4OTgzXSBbQ2FsbCBVQV1bVENMXVtUb2t5byBMaXRlIFRNT11bUkNTXVtBbmRyb2lkIFFdQXBwbHkgUkNTIGVucmljaGVkIGNhbGxpbmcgZmVhdHVyZSBwYXRjaCBmb3IgcGxhdGZvcm0gcGFydC4KKyAqIC4KKyAqCisgKiAwNSAwNiAyMDIwIHRoZXJlc2EueWFuZworICogW01PTFkwMDUyMDc4Ml0gW0NIUl1bRU1dIEFkZCBFTV9JTUNfQ0FMTF8zODBfRFJPUF9JTkQgLSBpbnRlcmZhY2UgcGFydAorICogUGF0Y2ggYmFjayBpbnRlcmZhY2UgZm9yIEVNCisgKiAJMS4gbmV0X3R5cGUKKyAqIAkyLiBDQUxMXzM4MF9EUk9QX0lORC4KKyAqCisgKiAwMSAxNCAyMDIwIGppbi5saWFuZworICogW01PTFkwMDQ3NDUzNF0gTW9kZW0/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8KKyAqIAkKKyAqIAkuCisgKgorICogMTIgMDIgMjAxOSB4dy53YW5nCisgKiBbTU9MWTAwNDYyMjAyXSBbTVQ2NzcxXVtTeWx2aWFdW08xXVtNUDEuNV1bSU9UXVtKYXBhbl1bS0RESV1bUEgzLVZvTFRFXSBUQzMtMTAtNi0zIFVFIHN1cHBvcnRlZCAiQUNCIFNraXAoM0dQUCBSZWwuMTIpIiBvciBub3QKKyAqIAkKKyAqIAkuCisgKgorICogMTIgMDIgMjAxOSBzenUtY2hpZWguY2hpdQorICogW01PTFkwMDQ2Mjk2OV0gW1ZNT0xZXVtHZW45N10gSU1DQiBBU1NFUlQgUmVtb3ZhbAorICogCQorICogCS4KKyAqCisgKiAxMSAwNiAyMDE5IGFyaS5zaW1vbmVuCisgKiBbTU9MWTAwNDU3NDA4XSBbTVQ2ODg1XVtQZXRydXNdW01QMV1bU1FDXVtNRFNUXVtTV0lGVF1bVFddW0NIVCtDSFRdWzRHIE1NXVtBU1NFUlRdIGZpbGU6bWN1L3Byb3RvY29sL2ltcy9jb3JlL3NyYy9vcy9hcGlfbWVtLmMgbGluZToxMjIKKyAqIAkKKyAqIAlDbGVhbmVkIHVwIG9sZCBNRU1fREVCVUcgbWVzc2FnZSBJRHMKKyAqCisgKiAwNyAxNyAyMDE5IHNhbWkuanV0aWxhCisgKiBbTU9MWTAwNDIyOTM4XSBbU3VibWFyaW5lXUlNU19EQkdfRU0gbWVzc2FnZXMgbm90IHdvcmtpbmcKKyAqIC4KKyAqCisgKiAwNyAxNyAyMDE5IHRzdW5nLWt1bi5zaGloCisgKiBbTU9MWTAwNDIyODUxXSBbSU1TXVtHZW45N10gW1N1Ym1hcmluZV0gU3VibWFyaW5lIFZNT0xZIFBhdGNoIEJhY2sKKyAqIC4KKyAqCisgKiAwNiAxMiAyMDE5IHNhbWkuanV0aWxhCisgKiBbTU9MWTAwNDEyNzk0XSBNdWx0aXBsZSBQQVUgaGFuZGxlZCB3cm9uZ2x5IC4uIHRlbGVub3IgSHVuZ2FyeQorICogSU1TX0RCRyBtZXNzYWdlcworICoKKyAqCisgKiAwNyAxMSAyMDE5IHRoZXJlc2EueWFuZworICogW01PTFkwMDM1NzM1Nl0gW1VTX0RFVl1bVnpXXVsyMDE4X0pVTl0gQ0FMTC9TTVMgVUEgZGV2CisgKiAJCisgKiAJUGF0Y2ggYmFjayBmcm9tIFNVQk1BUklORSBmb3IgVnp3IDIwMThKdW4uCisgKiAJaW50ZXJmYWNlIHBhcnQgaW4gCisgKiAJTU9MWTAwMzk0ODU4CisgKiAJTU9MWTAwMzkxMTc2CisgKiAJTU9MWTAwMzU3MzU2CisgKiAJTU9MWTAwMzc1NTE3CisgKiAwNSAxMCAyMDE5IHNodS1saW4ueWFuZworICogW01PTFkwMDM1NzM1Nl0gW1VTX0RFVl1bVnpXXVsyMDE4X0pVTl0gQ0FMTC9TTVMgVUEgZGV2CisgKiAKKyAqIFtNT0xZMDAzNTczNTZdIDk3IFN1Ym1hcmluZSBzY29wZSBwYXRjaGVzIHN5bmMgdG8gU3VibWFyaW5lIERFVnMKKyAqIFtNT0xZMDAzNTczNTZdW1VTX0RFVl1bVnpXXVsyMDE4X0pVTl0gQ0FMTC9TTVMgVUEgZGV2CisgKiBbTU9MWTAwMzgyMzk4XVtWWlddW1pURV1bNjc2MV0gQ2xpZW50IEFQSSBwYXRjaCBiYWNrCisgKiBbTU9MWTAwMzg2OTc3XVtVU19ERVZdW1Z6V11bMjAxOF9PQ1RdIENBTExVQSBkZXYKKyAqIFtNT0xZMDAzOTQzNDBdW1VTX0RFVl1bTURNSV0gQ0FMTCBVQSBwYXJ0CisgKiBbTU9MWTAwMzk1Nzg5XVtVU19ERVZdW1ZaV11bUFNUIHRvb2xdIHBob25lIGNvbnRleHQgdXJpCisgKiAKKyAqIDA3IDA0IDIwMTkgbWlrYS5sZWlub25lbgorICogW01PTFkwMDM2NzEyNl0gW0dlbjk3XVtJTVNdIFZvTFRFIHBvcnRpbmcKKyAqIElNUyBVVCBlbmhhbmNlbWVudHMgLSBTV1JECisgKgorICoKKyAqIDAyIDA0IDIwMTkgbWlrYS5sZWlub25lbgorICogW01PTFkwMDM4MzExOF0gW1N1Ym1hcmluZV1bTTFdIG5vIFNJUCB2aWV3ICBpbiBFTFQgbG9nCisgKiBQYXNzaW5nIFNJUCBtZXNzYWdlcyB0byBFTFQgdmlldworICoKKyAqIDAxIDI1IDIwMTkgc3p1LWNoaWVoLmNoaXUKKyAqIFtNT0xZMDAzODExOTRdIFtTdWJtYXJpbmVdW00xXVsxc3RDYWxsXSBkZWNvZGUgZmFpbCBvbiB0aGUgSUxNIG1lc3NhZ2VzIGJldHdlZW4gSU1TVUEvSU1DQi9JTVNfU1RBQ0sKKyAqIGNhbGwgdWEgbmFtaW5nIHJlZmluZS4KKyAqCisgKiAwMSAyMyAyMDE5IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAzODA4NTddIFtTdWJtYXJpbmVdW00xXVsxc3RDYWxsXVtDTUNDXUlNUyByZWdpc3RlciBmYWlsCisgKiBVcGRhdGUgSU1TIFN0YWNrIGludGVyZmFjZSAtIGZsYWcgZmllbGQgdXNhZ2UKKyAqCisgKiAwMSAwOCAyMDE5IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAzNjcxMjZdIFtHZW45N11bSU1TXSBWb0xURSBwb3J0aW5nCisgKiBBZGRpbmcgSU1TIGludGVyZmFjZXMgdG8gdHJhY2UgZGF0YWJhc2UuCisgKgorICoKKyAqIDAxIDAzIDIwMTkgbHlkaWEubGlhbmcKKyAqIFtNT0xZMDAzNzU3MDZdIFtHZW45N11bSU1TXVZvTFRFIFNNUyBwb3J0aW5nCisgKiAJCisgKiAJLXJlbW92ZSBnZW45NyBzbXMgbXNnaWQsIGdldCBmcm9tIElNQ1NNUy4KKyAqCisgKiAxMiAyOSAyMDE4IGx5ZGlhLmxpYW5nCisgKiBbTU9MWTAwMzc1NzA2XSBbR2VuOTddW0lNU11Wb0xURSBTTVMgcG9ydGluZworICoKKyAqIAkuCisgKgorICogMTIgMTQgMjAxOCBtaWthLmxlaW5vbmVuCisgKiBbTU9MWTAwMzY3MTI2XSBbR2VuOTddW0lNU10gVm9MVEUgcG9ydGluZworICogVGltZXJzIC0gZnJhbWV3b3JrIGZvciBVQSBhbmQgU3RhY2sKKyAqCisgKiAxMiAwNCAyMDE4IHBlbmcucGFuCisgKiBbTU9MWTAwMzY5NDYxXSBbR2VuOTddW1N1Ym1hcmluZV1bSU1DU01TXVZvTFRFIFNNUyBQcm9jZWR1cmUgT3B0aW1pemF0aW9uCisgKiByb2xsYmFjayBkdWUgdG8gYnVpbGQgZXJyb3IuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX0lNU1VBX01TR0lEX0hfCisjZGVmaW5lIF9JTVNVQV9NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0gSU1TVUFfTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0lNU1VBX0NPREVfQkVHSU4gKQorCisgICAgTVNHX0lEX0lNU1VBX0JFR0lOLAorCisgICAgTVNHX0lEX0lNU1VBX0VYX0JFR0lOLAorCisgICAgICAgIC8qIFRvIFNlcnZpY2UgKi8KKworICAgICAgICAvKiBTeXN0ZW0gKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9JTklULCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0luaXRfdChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9TSFVURE9XTl9TRVJWSUNFLCAgICAgICAgICAgICAgICAgIC8vIG5vIHBhcmFtZXRlcgorICAgICAgICBNU0dfSURfVk9MVEVfUkVRX0FVVE9fVEVTVElOR19JRF9VUERBVEUsICAgICAgICAgICAgLy8gVm9MVEVfQXV0b1Rlc3RpbmdfSW5mb190CisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfRkVBVFVSRV9TWU5DLCAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9GZWF0dXJlX1N5bmNfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfTE9HR0lOR19FVkVOVF9OT1RJRlksICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9Mb2dnaW5nX0V2ZW50X05vdGlmeV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX0lNU19EQkdfU0VUVElOR19SRVEsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGltc19kYmdfc2V0dGluZ19yZXFfc3RydWN0IChUaGVyZXNhLCBFTSBpcyB1c2luZykKKworICAgICAgICAvKiBTeXN0ZW0gLSBOZXR3b3JrICovCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfTkVUV09SS19DSEFOR0UsICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9OZXR3b3JrX0NoYW5nZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9SQVRfQ0hBTkdFLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JBVF9DaGFuZ2VfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfM0dQUF9SQVRfQ0hBTkdFLCAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF8zZ3BwX1JhdF9DaGFuZ2VfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfUkFESU9fTElOS19NT05JVE9SLCAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SYWRpb19MaW5rX01vbml0b3JfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfSVJBVF9XSVRIT1VUX0lQX0NIQU5HRSwgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9pUmF0X3dpdGhvdXRfSVBfQ2hhbmdlX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfUkVRX0ZGMDBIX1VQREFURSwgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfRkYwMEhfVXBkYXRlX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfUkVRX1JFU0VUX0lNU19SRUdfVEhST1RUTElOR19QQVJBLCAgICAgLy8gVm9MVEVfRXZlbnRfUmVzZXRfSU1TX1JlZ19UaHJvdHRsaW5nX1BhcmFfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfSEFORE9WRVJfU1RBUlRfTk9USUZZLCAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9IYW5kb3Zlcl9TdGFydF9Ob3RpZnlfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfSEFORE9WRVJfU1RPUF9OT1RJRlksICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9IYW5kb3Zlcl9TdG9wX05vdGlmeV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9IQU5ET1ZFUl9JUF9SRUFEWV9OT1RJRlksICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0hhbmRvdmVyX0lQX1JlYWR5X05vdGlmeV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9DT05ESVRJT05fQ0hBTkdFX05PVElGWSwgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0NvbmRpdGlvbl9DaGFuZ2VfTm90aWZ5X3QKKyAgICAgICAgLyogU3lzdGVtIC0gU2V0dGluZyAqLworICAgICAgICBNU0dfSURfVk9MVEVfUkVRX1VQREFURV9SVF9TRVRUSU5HLCAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfU2V0dGluZ190IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9VUERBVEVfU1RfU0VUVElORywgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NldHRpbmdfdAorICAgICAgICAvKiBWaUxURSAqLworICAgICAgICBNU0dfSURfVk9MVEVfUkVRX1ZUX0NBUF9TRVRUSU5HLCAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfVlRfQ2FwX1NldHRpbmdfdCAgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfUkVRX0FUQ01EX1JFTEFZLCAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQVRDbWRfUmVsYXlfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLyogU3lzdGVtIC0gTG93IExheWVyICovCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfTURfTE9XRVJfTEFZRVJfRVJSLCAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9NRF9Mb3dlcl9MYXllcl9FcnJfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfM0dQUF9PT1NfSU5ELCAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF8zZ3BwX09PU19JbmRfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLyogVGVhcmRvbiBGbG93IGZvciBJTUNCL1JFRyBzdGF0ZSB1bi1zeW5jICovCisgICAgICAgIE1TR19JRF9JTVNVQV9JTUNCX1VORVhQRUNURURfU1RBVEVfSU5ELCAgICAgICAgICAgICAvLyBpbXN1YV9pbWNiX3VuZXhwZWN0ZWRfc3RhdGVfaW5kX3QKKworICAgICAgICAvKiBGcm9tIFNlcnZpY2UgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9CT09UVVAsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIHBhcmFtZXRlcgorICAgICAgICBNU0dfSURfVk9MVEVfSU5EX1JFQURZLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm8gcGFyYW1ldGVyIChUaGVyZXNhLCBub3RpZnkgSU1DQiB0aGF0IHZvbHRlIHNlcnZpY2UgaXMgcmVhZHkpCisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUVVFUllfU1RBVEUsICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9RdWVyeV9TdGF0ZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9SRUdfTk9USUZZX0RPTkUsICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19Ob3RpZnlfRG9uZV90CisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfQVRDTURfUkVMQVksICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9BVENtZF9SZWxheV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9SRUdfTk9USUZZX0NPTkZfU1VCU0MsICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X05vdGlmeV90IChUaGVyZXNhLCBSRUcgZmVhdHVyZSAtIHNlbmQgU1VCU0NSSUJFIHRvIFVBKQorICAgICAgICBNU0dfSURfVk9MVEVfSU5EX1RMVl9QQVJBLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfVGx2X1BhcmFfU2V0dGluZ190IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9SRUdfUkVMX0FMTF9DQUxMLCAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0NhbGxfUmVsX3QKKworICAgICAgICAvKiBUbyBSRUcgVUEgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9SRUcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfUkVRX1JFUkVHLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUmVnX0l0ZW1fdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfREVSRUcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9SRUdfU1RBVEUsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9SRUdfQUREX0JJTkQsICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9SRUdfREVMX0JJTkQsICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19JdGVtX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9SRUdfQUREX0NBUEFCSUxJVFksICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19DYXBhYmlsaXR5X3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfUkVRX1JFR19ERUxfQ0FQQUJJTElUWSwgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUmVnX0NhcGFiaWxpdHlfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfUkVHX1JFU0VULCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfUkVHX1JFU1RPUkUsICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9DTkZfUkVHX1FVRVJZX0NBTExfU1RBVEUsICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUkVHX0NBTExfU0VTU0lPTl9URVJNSU5BVEVELCAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfUkVHX1NFTkRfU1VCU0NSSUJFLCAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9DTkZfR0VPTE9DQVRJT05fUkVRLCAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9HZW9sb2NhdGlvbl9JbmZvX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9GUk9NX0ZXS19SRUxBWV9SRVEsICAgICAgICAgICAgICAgIC8vIHJlbGF5IGZyb20gZnJhbWV3b3JrCisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfVUFfU1RBVEUsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9VQV9TdGF0ZV90CisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfUkVHX0U5MTFfRTJfVElNRU9VVCwgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUkVHX0NBTExfU0VTU0lPTl9TVEFSVEVELCAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZWdfSXRlbV90CisgICAgICAgIE1TR19JRF9WT0xURV9SRVFfUFNfREFUQV9PRkYsICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9QU19EQVRBX09GRl9SZXFfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUkVHX0NBTExfU1RBVFVTLCAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9MaXN0X0N1cnJlbnRfQ2FsbF9Ub19TdGFja190CisgICAgICAgIE1TR19JRF9WT0xURV9DTkZfUkVHX0FDQl9TS0lQX1NUQVJULCAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9BQ0JfU2tpcF9JbmZvX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0NORl9SRUdfQUNCX1NLSVBfRU5ELCAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0FDQl9Ta2lwX0luZm9fdAorCisKKyAgICAgICAgLyogRnJvbSBSRUcgVUEgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9SRUdfU1RBVEUsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19TdGF0ZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JTUF9SRUdfU1RBVEUsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19TdGF0ZV90CisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUkVHX0lQU0VDX0ZMVVNILCAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9JUFNlY19Qb2xpY3lfRmx1c2hfSW5kX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfSU5EX1JFR19JUFNFQ19BREQsICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfSVBTZWNfUG9saWN5X0FkZF9JbmRfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUkVHX0lQU0VDX0RFTEVURSwgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9JUFNlY19Qb2xpY3lfRGVsZXRlX0luZF90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9SRUdfRU1TX01PREUsICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlZ19FbXNfTW9kZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9TUlVfSU5GTywgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NSVV9JbmZvX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfSU5EX1JFR19BQ0JfU0tJUF9TVEFSVCwgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQUNCX1NraXBfSW5mb190CisgICAgICAgIE1TR19JRF9WT0xURV9JTkRfUkVHX0FDQl9TS0lQX0VORCwgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9BQ0JfU2tpcF9JbmZvX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9SRUdfVVBEQVRFX1BMQU5JX1RJTUUsICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1VwZGF0ZV9QTEFOSV9UaW1lCisKKworICAgICAgICAvKiBUbyBDYWxsIFVBICovCisKKyAgICAgICAgLyogQ2FsbCAtIHN0YXJ0aW5nICovCisgICAgICAgIE1TR19JRF9WT0xURV9NT19DQUxMX1JFUSwgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9DYWxsX1N0YXJ0X3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTVRfQ0FMTF9QUkVTRU5UX1JTUCwgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTVRfQ2FsbF9Sc3BfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLyogQ2FsbCAtIHByb2dyZXNzICovCisgICAgICAgIE1TR19JRF9WT0xURV9CV19DTkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9CV19BY3RfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9CV19ORUdPLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9CV19BY3RfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9NVF9BQ0NFUFRfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZXFfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9NT19IQU5HVVBfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SZXFfdCwgbWFwIHRvIEFUK0NITEQ9MXguIG11c3QgaGF2ZSBjYWxsIGlkLiAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9SRUZSRVNIX1JFUSwgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9DYWxsX1JlZnJlc2hfdC4gaW50ZXJuYWwgbWVzc2FnZSBmb3IgTkVUV09SS19DSEFOR0Ugd2l0aCByZWZyZXNoIHN0YXRlIChUaGVyZXNhLCBzZXNzaW9uIHJlZnJlc2gpCisgICAgICAgIE1TR19JRF9WT0xURV9MSVNUX0NBTExfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoVGhlcmVzYSwgb2Jzb2xldGVkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01PX0ZPUkNFX0hBTkdVUF9SRVEsICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JlcV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NSVkNDX1NUQVJULCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NSVkNDX0luZm9fdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TUlZDQ19FTkQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9TUlZDQ19JbmZvX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTk9fUlRQUEtUX1JFUSwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUmVxX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTU9fQ09ORl9DQUxMX1JFUSwgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ29uZl9DYWxsX1N0YXJ0X3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTk9USUZZX0lNU1ZPUFNfUkVRLCAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTm90aWZ5X3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfSU5DT01JTkdfUlRQUEtUX1JFUSwgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUmVxX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfSU1TX05PVElGWV9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfSW1zX05vdGlmeV9SZXFfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLypSMTMgQUxUQyovCisgICAgICAgIE1TR19JRF9WT0xURV9BTFRDX0FERFJFU1NfU1RBVFVTX1JFUSwgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9BbHRjX0FkZHJlc3NfUmVxX3QgKGNoZWNrZWQhKQorCisgICAgICAgIC8qIENhbGwgLSBJbnRlcm5hbCAqLworICAgICAgICBNU0dfSURfVk9MVEVfT09TX0hBTkdVUF9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ2FsbF9SZWZyZXNoX3QuIGludGVybmFsIG1lc3NhZ2UgZm9yIE5FVFdPUktfQ0hBTkdFIHdpdGggcmVmcmVzaCBzdGF0ZSAoVGhlcmVzYSwgaW50ZXJuYWwgdXNlKQorICAgICAgICBNU0dfSURfVk9MVEVfT09TX1NUT1BfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ2FsbF9SZWZyZXNoX3QuIGludGVybmFsIG1lc3NhZ2UgZm9yIE5FVFdPUktfQ0hBTkdFIHdpdGggcmVmcmVzaCBzdGF0ZQorICAgICAgICBNU0dfSURfVk9MVEVfUkVMX1NFU1NJT05fUkVRLCAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ2FsbF9SZWxfdC4gaW50ZXJuYWwgbWVzc2FnZSBmb3IgTkVUV09SS19DSEFOR0Ugd2l0aCByZWZyZXNoIHN0YXRlIChUaGVyZXNhLCBpbnRlcm5hbCB1c2UpCisgICAgICAgIE1TR19JRF9WT0xURV9IT0xEX1JFUSwKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1VOSE9MRF9SRVEsCisgICAgICAgIE1TR19JRF9WT0xURV9RVUVVRV9TSVBfTVNHX1JFUSwgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9RdWV1ZV9TSVBfdC4gaW50ZXJuYWwgbWVzc2FnZSBmb3IgcHV0IHRoZSBTSVAgbWVzc2FnZSB0byBtZXNzYWdlIHF1ZXVlLiAoVGhlcmVzYSwgaW50ZXJuYWwgdXNlKQorICAgICAgICBNU0dfSURfVk9MVEVfVFJBTlNGRVJfQUJPUlRfUkVRLCAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTVRfQ2FsbF9BYm9ydF90IChUaGVyZXNhLCBpbnRlcm5hbCB1c2UuIEVDVCkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1RSQU5TRkVSX0ZJTkFMSVpFX1JFUSwgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01lZGlhX01vZF9JbmRfdCAoVGhlcmVzYSwgaW50ZXJuYWwgdXNlLiBFQ1QpCisgICAgICAgIE1TR19JRF9WT0xURV9NT0RfU0VTU0lPTl9JTlRFUk5BTF9DQU5DRUxfUkVRLAorICAgICAgICBNU0dfSURfVk9MVEVfQ0NfQ1NfQVZBSUxBQklMSVRZX0NORiwgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ0NfQ1NfQXZhaWxhYmlsaXR5X2NuZl90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX1JFUSwgICAgICAgICAgIC8vIFZPTFRFX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX1JFUSAoUGF0cmljaywgVE1PVVNfMjAxOVEyX0dJRC1NVFJSRVEtMjQ1OTAzKQorCisgICAgICAgIC8qIFZpTFRFICovCisgICAgICAgIE1TR19JRF9WT0xURV9NT0RfU0VTU0lPTl9SRVEsICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9Nb2RfU2Vzc2lvbl9SZXFfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9NT0RfU0VTU0lPTl9SU1AsICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9Nb2RfU2Vzc2lvbl9Sc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9NVF9WVF9TUEVDSUFMX0FDQ0VQVF9SRVEsICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9NVF9WVF9TcGVjaWFsX0FjY2VwdF9SZXFfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9NT0RfQldfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9Nb2RfQldfUmVxX3QKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01PRF9TRVNTSU9OX0NBTkNFTF9SRVEsICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01vZF9TZXNzaW9uX0NhbmNlbF9SZXFfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLypHVFQqLworICAgICAgICBNU0dfSURfVk9MVEVfVEVYVF9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfVGV4dF9SZXFfdCwgQVQrQ1RNQ0FMTCAoY2hlY2tlZCEpCisKKyAgICAgICAgLyplQ2FsbCovCisgICAgICAgIE1TR19JRF9WT0xURV9FQ0FMTF9JTl9CQU5EX01TRF9UUkFOU0ZFUl9SU1AsICAgICAgICAvLyBWb0xURV9FdmVudF9lY2FsbF9Jbl9CYW5kX01TRF9UcmFuc2Zlcl9Sc3BfdAorICAgICAgICBNU0dfSURfVk9MVEVfRUNBTExfVVBEQVRFX01TRF9SU1AsICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfZWNhbGxfVXBkYXRlX01TRF9Sc3BfdAorCisgICAgICAgIC8qU01TKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NNU19DU19BVkFJTEFCSUxJVFlfQ05GLCAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NNU19DU19BdmFpbGFiaWxpdHlfY25mX3QgKGNoZWNrZWQhKQorCisgICAgICAgIC8qIE11bHRpIENhbGxzIERvbWFpbiBDb25mbGljdCAqLworICAgICAgICBNU0dfSURfVk9MVEVfTU9fQ0FMTF9ET01BSU5fQ09ORkxJQ1RfUkVRLCAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUmVxX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTUVESUFfQU5CUl9JTkQsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTWVkaWFfQW5icl9JbmRfdChBUyB2YWx1ZSBub2l0ZnkgdG8gVUEgQU5CUikgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTUVESUFfQU5CUl9SU1AsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTWVkaWFfQW5icl9Sc3BfdChTSVAgbmVnb3RpYXRpb24gcmVzcG9uc2UpIChjaGVja2VkISkKKworICAgICAgICAvKlJUVCovCisgICAgICAgIE1TR19JRF9WT0xURV9SVFRfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9SVFRfUmVxX3QsIEFUK1JUVENBTEwgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfQVVUT19SVFRfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUlRUX1JlcV90LCBJbnRlcm5hbCBldmVudCAoVGhlcmVzYSwgYWJzb2xldGVkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JUVF9SU1AsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1JUVF9Sc3BfdCwgSW50ZXJuYWwgZXZlbnQgKFRoZXJlc2EsIFJUVCkKKworICAgICAgICAvKkNsaWVudCBBUEkqLworICAgICAgICBNU0dfSURfVk9MVEVfR0VUX0hFQURFUl9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfSGVhZGVyX1JlcV90LCBBVCtFSU1TSEVBREVSCisgICAgICAgIE1TR19JRF9WT0xURV9JTVNfQ0FMTF9NT0RFX1JFUSwgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9DYWxsX01vZGVfUmVxX3QsIEFUK0VJTVNDQUxMTU9ERQorCisgICAgICAgIC8qRW5yaWNoIENhbGxpbmcqLworICAgICAgICBNU0dfSURfVk9MVEVfRUNfQ0FMTF9FWFRSQV9IRUFERVJfUkVRLCAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfRUNfQ2FsbF9FeHRyYV9oZWFkZXJfUmVxX3QsIEFUK0VJTVNDQUksIG1vZGUgMywgdHlwZSAxCisgICAgICAgIE1TR19JRF9WT0xURV9FQ19DQUxMX0xPQ19JTkZPLCAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9FQ19DYWxsX0xvY2F0aW9uX0luZm9fdCwgQVQrRUlNU0NBSSwgbW9kZSAzLCB0eXBlIDIKKworCisgICAgICAgIC8qIEZyb20gQ2FsbCBVQSAqLworCisgICAgICAgIC8qIENhbGwgLSBzdGFydGluZyAqLworICAgICAgICBNU0dfSURfVk9MVEVfQldfSU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQldfUmVxdWlyZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0JXX01PRCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0JXX1VwZGF0ZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0JXX1JFTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0JXX0FjdF90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01UX0NBTExfUFJFU0VOVF9JTkQsICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01UX0NhbGxfSW5kX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTVRfQ0FMTF9BQk9SVF9JTkQsICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTVRfQ2FsbF9BYm9ydF90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01UX0FDQ0VQVF9DTkYsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X0NhbGxfU3RvcF90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01PX0NBTExfQ05GLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01PX0NhbGxfQ25mX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTU9fSEFOR1VQX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ2FsbF9TdG9wX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTU9fQ09ORl9DQUxMX0NORiwgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTU9fQ29uZl9DYWxsX0NuZl90IChjaGVja2VkISkKKyAgICAgICAgLyogQ2FsbCAtIHByb2dyZXNzICovCisgICAgICAgIC8qIENhbGwgLSBjb25uZWN0ICovCisgICAgICAgIC8qIENhbGwgLSBkaXNjb25uZWN0ICovCisgICAgICAgIE1TR19JRF9WT0xURV9DQUxMX1BST0dSRVNTX0lORCwgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9DYWxsX1Byb2dfdCAoY2hlY2tlZCEpCisgICAgICAgIC8qIENhbGwgLSBNZWRpYSAqLworICAgICAgICBNU0dfSURfVk9MVEVfTUVESUFfSU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTWVkaWFJbmZvX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTVRfQ0FMTF9SSU5HX0lORCwgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ2FsbF9SZWZyZXNoX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTElTVF9DQUxMX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTGlzdF9DdXJyZW50X0NhbGxfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TUlZDQ19DQUxMX0NUWFRfVFJBTlNGRVIsICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9MaXN0X1NSVkNDX0NhbGxfQ3R4dF90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NJUF9DQUxMX1BST0dSRVNTX0lORCwgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NJUF9DYWxsX1Byb2dfSW5kX3QgKGNoZWNrZWQhKQorCisgICAgICAgIC8qIFZpTFRFICovCisgICAgICAgIE1TR19JRF9WT0xURV9NRURJQV9NT0RfSU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9NZWRpYV9Nb2RfSW5kX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfVklERU9fQ0FQX0lORCwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfVmlkZW9fQ2FwX0luZF90IChjaGVja2VkISkKKworICAgICAgICAvKiBWT0xURV9NT0RfU0VTU0lPTl9DTkYsIFZPTFRFX01PRF9TRVNTSU9OX0lORCBtb3ZlIHRvIFZvTFRFX0V2ZW50X2Zyb21DYWxsX0ludGVybmFsX2UgKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX01PRF9TRVNTSU9OX0NORiwgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01vZF9TZXNzaW9uX0NuZl90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01PRF9TRVNTSU9OX0lORCwgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01vZF9TZXNzaW9uX0luZF90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01UX1ZUX1NQRUNJQUxfQUNDRVBUX0NORiwgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01UX1ZUX1NwZWNpYWxfQWNjZXB0X0NuZl90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX01PRF9TRVNTSU9OX0NBTkNFTF9DTkYsICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X01vZF9TZXNzaW9uX0NhbmNlbF9DbmZfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9NT0RfU0VTU0lPTl9DQU5DRUxfSU5ELCAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9Nb2RfU2Vzc2lvbl9DYW5jZWxfSW5kX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfTE9DQUxfQldfUkVBRFlfSU5ELCAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfTG9jYWxfQldfUmVhZHlfSW5kX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfQ0NfQ1NfQVZBSUxBQklMSVRZX1JFUSwgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfQ0NfQ1NfQXZhaWxhYmlsaXR5X3JlcV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NNU19DU19BVkFJTEFCSUxJVFlfUkVRLCAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NNU19DU19BdmFpbGFiaWxpdHlfcmVxX3QgKGNoZWNrZWQhKQorCisgICAgICAgIC8qR1RUKi8KKyAgICAgICAgTVNHX0lEX1ZPTFRFX1RFWFRfQ05GLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1RleHRfQ25mX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfVEVYVF9DQVBfSU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfVGV4dF9DYXBfSW5kX3QgKGNoZWNrZWQhKQorCisgICAgICAgIC8qIENETUEtbGVzcyAqLworICAgICAgICBNU0dfSURfVk9MVEVfSU1TX1RJTUVSX1NUQVRVU19JTkQsICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfSU1TX1RpbWVyX1N0YXR1c19JbmRfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLyogTXVsdGkgQ2FsbHMgRG9tYWluIENvbmZsaWN0ICovCisgICAgICAgIE1TR19JRF9WT0xURV9NT19DQUxMX0RPTUFJTl9DT05GTElDVF9DTkYsICAgICAgICAgICAvLyBWb0xURV9FdmVudF9DYWxsX1N0b3BfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLypSVFQqLworICAgICAgICBNU0dfSURfVk9MVEVfUlRUX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfUlRUX0NuZl90IChjaGVja2VkISkKKworCisgICAgICAgIC8qIFRvIFNTIFVBICovCisKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NTX1NXSVRDSF9XQUlUSU5HX09SX0hPTERJTkdfQU5EX0FDVElWRV9SRVEsICAgLy8gVm9MVEVfRXZlbnRfU1NfUmVxX3QsIEFUK0NITEQ9MiAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19SRUxfV0FJVElOR19PUl9IT0xESU5HX0NBTExfUkVRLCAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1JlcV90LCBBVCtDSExEPTAgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfU1NfUkVMX0FMTF9BQ1RJVkVfQ0FMTFNfQU5EX1JFU1VNRV9DQUxMX1JFUSwgICAvLyBWb0xURV9FdmVudF9TU19SZXFfdCwgbWFwIHRvIEFUK0NITEQ9MSAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19SRUxfQUxMX0NBTExTX1JFUSwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1JlcV90LCBBVCtDSExEPTYgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfU1NfQVRIX1JFTF9BTExfQ0FMTFNfUkVRLCAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9TU19SZXFfdCwgQVRIIChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NTX0NSRUFURV9DT05GRVJFTkNFX0NBTExfUkVRLCAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfU1NfQ29uZl9SZXFfdCwgQVQrQ0hMRD0zIChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NTX0VYUExJQ0lUX0NBTExfVFJBTlNGRVJfUkVRLCAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfU1NfUmVxX3QsIEFUK0NITEQ9NCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19DT05GRVJFTkNFX0NPTlRST0xfUkVRLCAgICAgICAgICAgICAgICAgICAgIC8vIEFQIHNpZGUgcmVxdWlyZSB0byBhZGQgc29tZW9uZSB0byB0aGUgY29uZmVyZW5jZS4gVm9MVEVfRXZlbnRfU1NfQ29uZl9Db250cm9sX1JlcV90LiBBVCtFQ09ORiAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19DQUxMX0NPTlRST0xfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX0NhbGxfQ3RybF90LCBBVCtFQ0NUUkwgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfU1NfRUNUX1JFUSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWNlaXZlIFNTIEVDVCBibGluZC9hc3N1cmVkIHJlcXVlc3QgZnJvbSBBUCBzaWRlLiBWb0xURV9FdmVudF9TU19lY3RfUmVxX3QgKGNoZWNrZWQhKQorCisKKyAgICAgICAgLyogRnJvbSBTUyBVQSAqLworCisgICAgICAgIE1TR19JRF9WT0xURV9TU19TV0lUQ0hfV0FJVElOR19PUl9IT0xESU5HX0FORF9BQ1RJVkVfQ05GLCAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19SRUxfV0FJVElOR19PUl9IT0xESU5HX0NBTExfQ05GLCAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19SRUxfQUxMX0FDVElWRV9DQUxMU19BTkRfUkVTVU1FX0NBTExfQ05GLCAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19SRUxfQUxMX0NBTExTX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19BVEhfUkVMX0FMTF9DQUxMU19DTkYsICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19DUkVBVEVfQ09ORkVSRU5DRV9DQUxMX0NORiwgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19FWFBMSUNJVF9DQUxMX1RSQU5TRkVSX0NORiwgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19TVUJTQ1JJQkVfQ09OVFJPTF9JTkQsICAgICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgU1VCU0NSSUJFIGJlZm9yZSwgd2hlbiB3ZSByZWNlaXZlIDIwMCBPSywgc2VuZCBpbmRpY2F0aW9uIHRvIEFQIHNpZGUsIFZvTFRFX0V2ZW50X1NTX1N1Yl9pbmRfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19DT05GRVJFTkNFX0NPTlRST0xfSU5ELCAgICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgUkVGRVIgZm9yIGNvbmZlcmVuY2UgYmVmb3JlLCB3aGVuIHdlIHJlY2VpdmUgTk9USUZZIHJlbGF0ZWQgdG8gdGhlIFJFRkVSLCBzZW5kIGluZGljYXRpb24gdG8gQVAgc2lkZSwgVm9MVEVfRXZlbnRfU1NfQ29uZl9pbmRfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19QUk9HUkVTU19OT1RJRllfSU5ELCAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgU1Mgbm90aWZpY2F0aW9uIHRvIEFQIHNpZGUuIFZvTFRFX0V2ZW50X1NTX05vdGlmeV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1NTX0NPTkZFUkVOQ0VfQ09OVFJPTF9DTkYsICAgICAgICAgICAgICAgICAgICAgLy8gQWZ0ZXIgYWRkIHNvbWVvbmUgdG8gdGhlIGNvbmZlcmVuY2UsIHNlbmQgaW5kaWNhdGlvbiB0byBBUCBzaWRlLCBWb0xURV9FdmVudF9TU19SZXNwX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfU1NfQ0FMTF9DT05UUk9MX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZnRlciBhY3Rpb24gaXMgZG9uZSwgc2VuZCBpbmRpY2F0aW9uIHRvIEFQIHNpZGUsIFZvTFRFX0V2ZW50X1NTX1Jlc3BfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19FQ1RfTk9USUZZX0lORCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgU1Mgbm90aWZpY2F0aW9uIHRvIEFQIHNpZGUuIFZvTFRFX0V2ZW50X1NTX2VjdF9ub3RpZnlfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9TU19FQ1RfQ05GLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNlbmQgU1MgRUNUIGJsaW5kL2Fzc3VyZWQgcmVzcG9uc2UgdG8gQVAgc2lkZS4gVm9MVEVfRXZlbnRfU1NfZWN0X1Jlc3BfdCAoY2hlY2tlZCEpCisKKworICAgICAgICAvKiBUbyBTTVMgVUEgKi8KKworICAgICAgICBNU0dfSURfVk9MVEVfUkVRX1NNU19TRU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfU01TX1NlbmRfTWVzc2FnZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1JFUV9TTVNfUkVMRUFTRSwgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NNU19SZWxlYXNlX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfQ05GX1NNU19SRUNFSVZFRCwgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfU01TX0NvbmZpcm1fdCAoY2hlY2tlZCEpCisKKworICAgICAgICAvKiBGcm9tIFNNUyBVQSAqLworCisgICAgICAgIE1TR19JRF9WT0xURV9SU1BfU01TX1NFTlQsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9TTVNfUmVzdWx0X3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfSU5EX1NNU19SRUNFSVZFRCwgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfU01TX1JlY3ZfTWVzc2FnZV90IChjaGVja2VkISkKKyAgICAgICAgTVNHX0lEX1ZPTFRFX0lORF9TTVNfRVJST1IsICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1NNU19SZXN1bHRfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgLyogVG8gVVNTRCBVQSAqLworCisgICAgICAgIE1TR19JRF9WT0xURV9VU1NEX0NNRF9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9OZXdfVXNzZF9DTURfdCAoY2hlY2tlZCEpCisgICAgICAgIE1TR19JRF9WT0xURV9VU1NEX1VSQ19TVEFUVVNfUkVRLCAgICAgICAgICAgICAgICAgICAvLyBWb0xURV9FdmVudF9Vc3NkX1VyY19TdGF0dXNfUkVRX3QgKGNoZWNrZWQhKQorCisKKyAgICAgICAgLyogRnJvbSBVU1NEIFVBICovCisKKyAgICAgICAgTVNHX0lEX1ZPTFRFX1VTU0RfSU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZvTFRFX0V2ZW50X1Vzc2RfSU5EX3QgKGNoZWNrZWQhKQorICAgICAgICBNU0dfSURfVk9MVEVfVVNTRF9SU1AsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVm9MVEVfRXZlbnRfVXNzZF9SU1BfdCAoY2hlY2tlZCEpCisKKyAgICAgICAgTVNHX0lEX0lNU19EQkdfRU1fU01TX0lORk9fSU5ELAorICAgICAgICBNU0dfSURfSU1TX0RCR19FTV9DQUxMX0lORk9fSU5ELAorICAgICAgICBNU0dfSURfSU1TX0RCR19FTV9TUlZDQ19JTkZPX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU19EQkdfRU1fQ09ORl9JTkZPX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU19EQkdfRU1fQkVBUkVSX0lORk9fSU5ELAorICAgICAgICBNU0dfSURfSU1TX0RCR19FTV9QQ1NDRl9JTkZPX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU19EQkdfRU1fTUVESUFfSU5GT19JTkQsCisgICAgICAgIE1TR19JRF9JTVNfREJHX0VNX0NBTExfRFJPUF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNfREJHX0VNX0lNU19FVkVOVF9JTkZPX0lORCwKKyAgICAgICAgTVNHX0lEX0lNU19EQkdfRU1fQ0FMTF8zODBfRFJPUF9JTkQsCisgICAgICAgIE1TR19JRF9JTVNfREJHX0VNX1RJTUVSX0lORk9fSU5ELAorCisKKyAgICAgICAgLyogRnJvbSBJTUMgKi8KKyAgICAgICAgTVNHX0lEX0lNU1VBX0lNQ19FVk9MVEVTSV9DT05GSUdfSU5ELAorCisgICAgTVNHX0lEX0lNU1VBX0VYX0VORCwKKworICAgIE1TR19JRF9JTVNVQV9JTl9CRUdJTiwKKyAgICBNU0dfSURfSU1TVUFfSU5fRU5ELAorCisgICAgTVNHX0lEX0lNU1VBX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9JTVNVQV9DT0RFX1RBSUwgKQorCisKKyNlbmRpZiAvKiBfSU1TVUFfTVNHSURfSF8gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2l3bGFuX2lwY19tc2dpZF9zb3VyY2UuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2l3bGFuX2lwY19tc2dpZF9zb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGU2ZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvaXdsYW5faXBjX21zZ2lkX3NvdXJjZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBpd2xhbl9pcGNfbXNnaWRfc291cmNlLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVU1PTFlBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgSVdMQU4gcmVsYXRlZCBJUEMgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworTVNHX0lEX0xXWE5fV0lQQ19XTEFOX0xXQV9DT05ORUNUX0lORCwKK01TR19JRF9MV1hOX1dJUENfV0xBTl9MV0FfQ09OTkVDVF9SU1AsCitNU0dfSURfTFdYTl9XSVBDX1dMQU5fTFdBX0RJU0NPTk5FQ1RfSU5ELAorTVNHX0lEX0xXWE5fV0lQQ19XTEFOX0xXQV9ESVNDT05ORUNUX1JTUCwKK01TR19JRF9MV1hOX1dJUENfV0xBTl9MV0FfTE9TVF9SRVEsCitNU0dfSURfTFdYTl9XSVBDX1dMQU5fTUVBU1VSRU1FTlRfSU5ELAorTVNHX0lEX0xXWE5fV0lQQ19XTEFOX01FQVNVUkVNRU5UX1JFUSwKK01TR19JRF9MV1hOX1dJUENfV0xBTl9NRUFTVVJFTUVOVF9TVE9QX0lORCwKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2l3bGFuX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pd2xhbl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjMGI3MTMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9pd2xhbl9tc2dpZC5oCkBAIC0wLDAgKzEsNDM1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBpd2xhbl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKgkgVU1PTFlBIAorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiBUaGlzIG1vZHVsZSBkZWZpbmVzIHRoZSBtZXNzZ2FlIElEcyBmb3IgSVdMQU4uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfSVdMQU5fTVNHX0lEX0gKKyNkZWZpbmUgX0lXTEFOX01TR19JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9JV0xBTl9DT0RFX0JFR0lOICkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgICAgICAgIDwxPiBEZXNpdG5hdGlvbjogSVdMQU4gCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLy8gPDEuMT4gRnJvbSBFUlJDCisgICAgLy8gTFdJCisgICAgTVNHX0lEX0lXTEFOX0VSUkNfTFdJX1NURUVSX1NUQVRVU19JTkQgPSBNU0dfSURfSVdMQU5fQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX1BBUkFNRVRFUl9JTkQsCisKKyAgICAvLyBMV0EKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0xXQV9DT05ORUNUX0lORCwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0xXQV9ESVNDT05ORUNUX0lORCwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX01FQVNVUkVNRU5UX0lORCwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX01FQVNVUkVNRU5UX1NUT1BfSU5ELAorCisvLyA8MS4yPiBGcm9tIFdJUEMKKyAgICAvLyBMV0kKKyAgICBNU0dfSURfQ1NfSVdMQU5fQVNTT0NJQVRFX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fV0xGV19MV0lfQ09ORl9DTkYsCisgICAgTVNHX0lEX0lXTEFOX1dMRldfTFdJX1NUQVJUX1NUT1BfQ05GLAorICAgIE1TR19JRF9JV0xBTl9XTEZXX0xXSV9NRUFTX0lORCwKKyAgICBNU0dfSURfSVdMQU5fV0xGV19NRUFTX0NBUEFfRkFJTF9JTkQsCisgICAgLy8gTFdBCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9NRUFTVVJFTUVOVF9SRVEsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9MV0FfQ09OTkVDVF9SU1AsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9MV0FfRElTQ09OTkVDVF9SU1AsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9MV0FfTE9TVF9SRVEsCisKKy8vIDwxLjM+IFRvIFdJUEMKKyAgICAvLyBMV0EKKyAgICBNU0dfSURfV0lQQ19JV0xBTl9XTEFOX0xXQV9DT05ORUNUX0lORCwKKyAgICBNU0dfSURfV0lQQ19JV0xBTl9XTEFOX0xXQV9ESVNDT05ORUNUX0lORCwKKyAgICBNU0dfSURfV0lQQ19JV0xBTl9XTEFOX01FQVNVUkVNRU5UX0lORCwKKyAgICBNU0dfSURfV0lQQ19JV0xBTl9XTEFOX01FQVNVUkVNRU5UX1NUT1BfSU5ELAorCisvLyA8MS4zPiBGcm9tIEFUUAorICAgIE1TR19JRF9BVFBfSVdMQU5fV0xBTl9DQVBBQklMSVRZX1JFUSwKKyAgICBNU0dfSURfQVRQX0lXTEFOX0lNU0NGR19SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9MNF9JTVNDRkdfUlNQLAorICAgIE1TR19JRF9BVFBfSVdMQU5fTDRfRVhUX0NFTExURUNIX1VSQ1JQVF9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9MNF9WT1BTX1VSQ1JQVF9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9MNF9FQ0VWRFBfVVJDUlBUX1JFUSwKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VTUlZTVEFURV9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FQ05DRkdfUkVRLAorICAgIE1TR19JRF9BVFBfSVdMQU5fRVdJRklFTl9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FV0ZDUFJFRl9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FTE9DQUVOX1JFUSwgICAgCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FSVdMQ0ZHU0VUX1JFUSwKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VJV0xDRkdHRVRfUkVRLCAgICAgICAKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VJTVNHRU9fUkVRLAorICAgIE1TR19JRF9BVFBfSVdMQU5fRUlXTFBJTkdfUkVRLAorICAgIE1TR19JRF9BVFBfSVdMQU5fRVBWU1NFVF9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FUFZTR0VUX1JFUSwKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VJUkFUX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FSU1TUkNTQ09OTl9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FSVdMUExFTl9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9DRVVTX0lORCwKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VGVU5fUkVRLAorICAgIE1TR19JRF9BVFBfSVdMQU5fRUFQTU9ERV9SRVEsCisgICAgTVNHX0lEX0FUUF9JV0xBTl9TSVBfQ0FMTF9QUk9HUkVTU19SRVEsICAgIAorICAgIE1TR19JRF9BVFBfSVdMQU5fRFVNUF9SVU5USU1FX1BBUkFfUkVRLCAvLyBBVCtFQ0ZHRFJQIAorLy8gPDEuND4gRnJvbSBEMlJNCisKKy8vIDwxLjU+IEZyb20gSU1DCisgICAgTVNHX0lEX0lNQ19JV0xBTl9JTVNfQ0FMTF9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9JTUNfSVdMQU5fQ0FMTF9NRURJQV9JTkZPX1JFUSwKKyAgICBNU0dfSURfSU1DX0lXTEFOX01PX0NPTkZJR19JTkQsCisgICAgTVNHX0lEX0lNQ19JV0xBTl9XSUZJX1NFUlZJQ0VfRkFJTF9SRVEsCisgICAgTVNHX0lEX0lNQ19JV0xBTl9SRUdfUkFOX1BSSU9fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfSU1DX0lXTEFOX0lNU19FQ0NfSE9fUkVRLAorCisvLyA8MS42PiBGcm9tIFNETQorCU1TR19JRF9JV0xBTl9TRE1fRUNTQ01fSU5GT19SRVEsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICA8Mj4gRGVzaXRuYXRpb246IFdNT0IKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgTVNHX0lEX1dNT0JfV01PQl9MV0lfU1RBVF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfTFdJX1NURUVSX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9MV0lfUEFSQV9JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfTFdJX1NURUVSX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xBTl9DQVBBQklMSVRZX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9FUlJDX1dMQU5fTFdBX0NPTk5FQ1RfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfTFdYX0VSUkNfV0xBTl9MV0FfQ09OTkVDVF9SU1AsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfRVJSQ19XTEFOX0xXQV9ESVNDT05ORUNUX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9FUlJDX1dMQU5fTFdBX0RJU0NPTk5FQ1RfUlNQLAorICAgIE1TR19JRF9FVkhEX1dNT0JfTFdYX0VSUkNfV0xBTl9NRUFTVVJFTUVOVF9JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfRVJSQ19XTEFOX01FQVNVUkVNRU5UX1NUT1BfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfTFdYX0VSUkNfV0xBTl9NRUFTVVJFTUVOVF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfRVJSQ19XTEFOX0xXQV9MT1NUX1JFUSwKKworICAgIE1TR19JRF9FVkhEX1dNT0JfTFdYX0NTX0FTU09DSUFURV9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xGV19MV0lfQ09ORl9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xGV19MV0lfQ09ORl9DTkYsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xGV19MV0lfU1RBUlRfU1RPUF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xGV19MV0lfU1RBUlRfU1RPUF9DTkYsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xGV19MV0lfTUVBU19JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfV0xGV19NRUFTX0NBUEFfRkFJTF9JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfTFdBRF9XTEFOX01FQVNVUkVNRU5UX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9MV0FEX1dMQU5fTFdBX0NPTk5FQ1RfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfTFdYX0xXQURfV0xBTl9MV0FfQ09OTkVDVF9SU1AsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfTFdBRF9XTEFOX0xXQV9ESVNDT05ORUNUX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9MV0FEX1dMQU5fTFdBX0RJU0NPTk5FQ1RfUlNQLAorICAgIE1TR19JRF9FVkhEX1dNT0JfTFdYX0xXQURfV0xBTl9MV0FfTE9TVF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9MV1hfTFdBRF9XTEFOX01FQVNVUkVNRU5UX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9MV0FEX1dMQU5fTUVBU1VSRU1FTlRfU1RPUF9JTkQsCisKKyAgICBNU0dfSURfRVZIRF9XTU9CX0xXWF9DU19XTEFOX0NBUEFCSUxJVFlfUkVRLAorCisgICAgTVNHX0lEX1dNT0JfTFdYX0xXWF9TVEFUX1JFUSwKKyAgICBNU0dfSURfV01PQl9MV1hfTFdJX1NURUVSX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1RNUl9UT19JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9TSU1fUkVBRFlfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfU0lNX0VSUk9SX0lORCwKKworICAgIC8qRGVzaXRuYXRpb246IFdNT0IgV0FOUyovCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX1RNUl9UT19JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0RBVEFTUlZTVEFURV9JTkZPX1JFUSwgLy9GV0sKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfU0lHTEVWRUxfSU5GT19SRVEsIC8vK0VDU1EKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfVk9QU1JQVF9JTkZPX1JFUSwgLy8rQ0lSRVBJCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX1BDU0NGUElOR19JTkZPX1JFUSwgLy9MVEVDU1IKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV0lGSVNSVlNUQVRFX0lORk9fUkVRLCAvL1dmY0QKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV0lGSVNJR0xWTF9JTkZPX1JFUSwgLy9XZmNECisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0lNU0NGR19SRVEsIC8vQVRQCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0w0X0lNU0NGR19SU1AsIC8vIEFUUAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19XRkNQUkVGX0NGR19SRVEsIC8vQVRQOiBmb3Igd2ZjX3ByZWYgJiB3ZmNfd3ByZWZfZW4KKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV0lGSVVJX0NGR19SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VDU0NNX0lORk9fUkVRLCAvLytFQ1NDTQorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19MNF9WT1BTX1VSQ1JQVF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0w0Qk5XX0FUVEFDSEVEX1JBVF9JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VTUlZTVEFURV9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VDTkNGR19SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VXSUZJRU5fUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FV0ZDUFJFRl9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VMT0NBRU5fUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FSVdMQ0ZHU0VUX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfRUlXTENGR0dFVF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VQVlNTRVRfUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FUFZTR0VUX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfRUlSQVRfU1RBVFVTX1JFUSwKKworICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19XSUZJTU9OX0NGR19JTkQsIC8vIFRvIFdMQworICAgIE1TR19JRF9JUE9MX1dMQ19VUERBVEVfUFJJT1JJVFlfUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FSVdMUExFTl9SRVEsICAgIC8vIEFUK0VJV0xQTEVOCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VJV0xQTF9JTkQsICAgICAgLy8gVVJDK0VJV0xQTAorCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0xURUNTUl9JTkZPX0NGR19SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0xURUNTUl9JTkZPX0NGR19DTkYsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0xURUNTUl9JTkZPX1JQVF9JTkQsCisKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfTFRFQ1NSX0lORk9fUVVFUllfUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19MVEVDU1JfSU5GT19RVUVSWV9DTkYsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0xURUNTUl9JTkZPX1FVRVJZX0lORCwKKworICAgIC8vIEZyb20gV08KKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV09fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV09fRFBEX0NORiwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV09fTU9CSUtFX0lORCwKKworICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FSU1TR0VPX0lORCwgLy8gK0VJTVNHRU8KKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfRUlNU0dFT19SRVEsIC8vIEFUK0VJTVNHRU8KKworICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FV0ZDUlZPVVRfSU5ELCAvLyArRVdGQ1JWT1VUCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VJV0xQSU5HX0lORCwgLy8rRUlXTFBJTkcKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfRUlXTFBJTkdfUkVRLCAvL0FUK0VJV0xQSU5HCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0VJTVNSQ1NDT05OX1JFUSwgLy9BVCtFSU1TUkNTQ09OTgorICAgIAorCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0lNU19FQ0NfSE9fUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19JTVNfQ0FMTF9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19XSUZJX1NFUlZJQ0VfRkFJTF9SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX1JFR19SQU5fUFJJT19VUERBVEVfUkVRLAorCisKKyAgICBNU0dfSURfRVZIRF9XTU9CX01FX0RTQlBfUkVDT05GSUdVUkVfUkVRLAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19MNENfU0VUX1BXTF9USFJIRF9DTkYsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0w0Q19JV0xBTl9QV1JfTEVWRUxfSU5ELCAgICAKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfTDRDX0lNU19TWVNfSU5GT19JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0w0Q19DU0ZCX0ZBSUxfSU5ELAorCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX1NJUF9DQUxMX1BST0dSRVNTX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfQ0FMTF9NRURJQV9JTkZPX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfRFVNUF9SVU5USU1FX1BBUkFfUkVRLCAvLyBBVCtFQ0ZHRFJQIAorICAgIAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19QSE9ORV9TVEFURV9SRVEsICAgICAgIC8vIGZyb20gTDRCUFdSCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX01PX0NPTkZJR19JTkQsICAgICAgICAgLy8gZnJvbSBJTUM6IE1PKE1hbmFnZWQgT2JqZWN0KSBjb25maWcKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfTDRCTldfRk9SQ0VfQkFSX0lORCwKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICA8ND4gRGVzaXRuYXRpb246IEVWSEQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgLyogZnJvbSBXTU9CICovCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0NFTExfU0lHTEVWRUxfVEhSQ0dGX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV0lGSV9TSUdMRVZFTF9USFJDR0ZfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19DQUxMUVVBTElUWV9USFJDR0ZfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19DRUxMUkVHX0lORk9fUVVFUllfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FT1BTX0lORk9fUVVFUllfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19TSUdMRVZFTF9JTkZPX1FVRVJZX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfQ0FMTFFVQUxJVFlfSU5GT19RVUVSWV9JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0FUUF9JTVNDRkdfSU5ELCAgICAgICAgICAgICAvLyBUbyBBVFAKKyAgICAKKyAgICBNU0dfSURfRVZIRF9XU0VNX0VXSUZJUEROQUNUX0lORCwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfRVdJRklFTl9TWU5DUFNfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FV0lGSUFTQ19TWU5DUFNfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FV0lGSVNJR0xWTF9TWU5DUFNfSU5ELAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FSVdMQ0ZHU0VUX0lORCwgLy8gZm9yIEFUIFJTUAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FSVdMQ0ZHR0VUX0lORCwgLy8gZm9yIEFUIFJTUAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FUFZTU0VUX0lORCwgLy8gZm9yIEFUIFJTUAorICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FUFZTR0VUX0lORCwgLy8gZm9yIEFUIFJTUAorCisgICAgTVNHX0lEX0VWSERfV01PQl9NRV9EU0JQX1JFQ09ORklHVVJFX0NORiwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfTDRDX1NFVF9QV0xfVEhSSERfUkVRLCAgICAgLy8gVG8gTDRDCisKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfV09fRFBEX1JFUSwgICAgICAgICAgICAgICAgLy8gVG8gV08KKworICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19QSE9ORV9TVEFURV9DTkYsICAgICAgICAgICAvLyBUbyBMNEJQV1IKKworICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19FQVBNT0RFX1JFUSwKKworICAgIE1TR19JRF9FVkhEX1dNT0JfV0FOU19JTVNfRUNDX0hPX1JTUCwgICAgICAgICAgIC8vIFRvIElNQworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAgICAgICAgPDU+IFVUCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmZGVmIF9fSVdMQU5fVVRfXworICAgIE1TR19JRF9JV0xBTl9XTEZXX0xXSV9DT05GX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fV0xGV19MV0lfU1RBUlRfU1RPUF9SRVEsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9MV0FfQ09OTkVDVF9JTkQsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9MV0FfRElTQ09OTkVDVF9JTkQsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9NRUFTVVJFTUVOVF9JTkQsCisgICAgTVNHX0lEX1dJUENfSVdMQU5fV0xBTl9NRUFTVVJFTUVOVF9TVE9QX0lORCwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX01FQVNVUkVNRU5UX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0xXQV9DT05ORUNUX1JTUCwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0xXQV9ESVNDT05ORUNUX1JTUCwKKyAgICBNU0dfSURfSVdMQU5fRVJSQ19XTEFOX0xXQV9MT1NUX1JFUSwKKyNlbmRpZgorICAgIE1TR19JRF9JV0xBTl9JV0xBTl9DT05GSUdfTFdYX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fSVdMQU5fUVVFUllfTFdYX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fSVdMQU5fUVVFUllfTFdYX0NORiwKKyAgICBNU0dfSURfSVdMQU5fV01PQl9JTE1fSVRfRVhUMklOVF9SRVEsCisgICAgTVNHX0lEX0lXTEFOX1dNT0JfSUxNX0lUX0lOVDJFWFRfUkVRLAorICAgIE1TR19JRF9JV0xBTl9XTU9CX0lMTV9JVF9FWFRfUkVRLCAgICAKKyAgICBNU0dfSURfSVdMQU5fSVdMQU5fVVRfRFNCUF9DQUxMQkFDS19SRVEsCisgICAgTVNHX0lEX0VWSERfV01PQl9VVF9EU0JQX0NBTExCQUNLX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1VUX0NPTkZJR19JTkQsCisgICAgTVNHX0lEX0lXTEFOX0lXTEFOX1VUX01PX1BBUkFfQ0ZHX1JFUSwKKyAgICBNU0dfSURfRVZIRF9XTU9CX1dBTlNfVVRfTU9fUEFSQV9DRkdfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICBJV0xBTiBUSU1FUiBFVkVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgIE1TR19JRF9JV0xBTl9USU1FUl9FVkVOVF9OT05FLAorCisgICAgTVNHX0lEX01BU0ZfVElNRVJfRVZFTlRfVFJUTF9USU1FT1VULAorICAgIE1TR19JRF9NQVNGX1RJTUVSX0VWRU5UX1JBVF9VTlNUQUJMRV9USU1FT1VULAorICAgIE1TR19JRF9NQVNGX1RJTUVSX0VWRU5UX01FQVNfVElNRU9VVCwKKyAgICBNU0dfSURfTUFTRl9USU1FUl9FVkVOVF9FSVdMUElOR19USU1FT1VULAorICAgIE1TR19JRF9NQVNGX1RJTUVSX0VWRU5UX0NBTExfUU9TX0JLT0ZGX1RJTUVPVVQsCisgICAgTVNHX0lEX01BU0ZfVElNRVJfRVZFTlRfUENTQ0ZfQktPRkZfVElNRU9VVCwKKyAgICBNU0dfSURfTUFTRl9USU1FUl9FVkVOVF9DQUxMX1JFQ1ZfSE9fSFlTX1RJTUVPVVQsCisgICAgTVNHX0lEX01BU0ZfVElNRVJfRVZFTlRfUlZPVVRfQUxFUlRfVElNRU9VVCwKKyAgICAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFTRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLy8gTVRUc2FpIFRPRE86IGRlZmluZSBtc2dpZCBmb3IgTUFTRiwgcmUtdXNlIHdhbnMgTVNHIG5vdworLy8gVE9ETzogT25seSB0ZW1wIHNvbHV0aW9uIGZvciBmdW5jdGlvbmFsIFVUCisgICAgTVNHX0lEX0lQT0xfSUNBUF9VVF9SRVEsCisgICAgTVNHX0lEX0lQT0xfSUNBUF9VVF9SU1AsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRU45NyBORVcgTVNHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgTVNHX0lEX0QyUk1fSVdMQU5fUEROX0lORk9fTlRGLAorICAgIE1TR19JRF9NQVNGX1NBX01PREVfTlRGLAorICAgIE1TR19JRF9NQVNGX1BETl9JTkZPX05URiwKKyAgICBNU0dfSURfTUFTRl9FQ0VWRFBfVVJDUlBUX1JFUSwKKyAgICBNU0dfSURfTUFTRl9EQVRBX0lORk9fVVBEQVRFX05URiwKKworICAgIE1TR19JRF9EMlJNX0lXTEFOX1BETl9BQ0NTRUxfUkVRLAorICAgIE1TR19JRF9EMlJNX0lXTEFOX1BETl9BQ0NTRUxfSU5ELAorICAgIE1TR19JRF9EMlJNX0lXTEFOX1BETl9BQ0NTRUxfUlNQLAorICAgIE1TR19JRF9EMlJNX0lXTEFOX1BETl9BQ0NTRUxfRVZFTlRfSU5ELAorICAgIE1TR19JRF9EMlJNX0lXTEFOX1dVSU9GRl9JTkQsCisKKyAgICBNU0dfSURfRVZIRF9NQVNGX1BETl9BQ0NTRUxfUkVRLAorICAgIE1TR19JRF9FVkhEX01BU0ZfUEROX0FDQ1NFTF9JTkQsCisgICAgTVNHX0lEX0VWSERfTUFTRl9QRE5fQUNDU0VMX1JTUCwKKyAgICBNU0dfSURfRVZIRF9NQVNGX1BETl9BQ0NTRUxfRVZFTlRfSU5ELAorCisgICAgTVNHX0lEX0lXTEFOX04zQU5TX04zX1BSSU9SSVRZX1NVQlNDUklCRV9SRVEsCisgICAgTVNHX0lEX0lXTEFOX04zQU5TX04zX1BSSU9SSVRZX1NVQlNDUklCRV9DTkYsCisgICAgTVNHX0lEX0lXTEFOX04zQU5TX04zX1BSSU9SSVRZX1VOU1VCU0NSSUJFX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fTjNBTlNfTjNfUFJJT1JJVFlfVU5TVUJTQ1JJQkVfQ05GLAorCisgICAgTVNHX0lEX0lXTEFOX04zQU5TX04zX1BSSU9SSVRZX0FDUVVJUkVfTlRGLAorICAgIE1TR19JRF9JV0xBTl9OM0FOU19OM19QUklPUklUWV9QUk9DRVNTX0lORCwKKyAgICBNU0dfSURfSVdMQU5fTjNBTlNfTjNfUFJJT1JJVFlfUFJPQ0VTU19SU1AsCisKKyAgICBNU0dfSURfRVZIRF9NQVNGX04zX1BSSU9SSVRZX0FDUVVJUkVfTlRGLAorICAgIE1TR19JRF9FVkhEX01BU0ZfTjNfUFJJT1JJVFlfUFJPQ0VTU19JTkQsCisgICAgTVNHX0lEX0VWSERfTUFTRl9OM19QUklPUklUWV9QUk9DRVNTX1JTUCwKKworICAgIE1TR19JRF9JTUNfSVdMQU5fSU1TX0NBUF9JTkZPX0lORCwKKyAgICBNU0dfSURfRVZIRF9NQVNGX0lNU19DQVBfSU5GT19JTkQsCisKKyAgICBNU0dfSURfSU1DX0lXTEFOX1NSVkNDX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9NQVNGX1NSVkNDX1NUQVRVU19SRVEsCisKKyAgICBNU0dfSURfSU1DX0lXTEFOX0lNU19DQ19TRVRfSFZPTFRFX0NBTExfRE9NQUlOX1JFUSwKKyAgICBNU0dfSURfTUFTRl9JTVNfQ0NfU0VUX0hWT0xURV9DQUxMX0RPTUFJTl9SRVEsCisKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VWT0RBVEFfUkVRLAorICAgIE1TR19JRF9NQVNGX0VWT0RBVEFfUkVRLAorCisgICAgLyogUG9ydGluZyBmcm9tIEFUUF9JTUMgKi8KKyAgICBNU0dfSURfQVRQX0lXTEFOX0VJTVNJTkZPX1JFUSwKKyAgICBNU0dfSURfTUFTRl9FSU1TSU5GT19SRVEsCisKKyAgICBNU0dfSURfQVRQX0lXTEFOX0VDMktSRUdfUkVRLAorICAgIE1TR19JRF9NQVNGX0VDMktSRUdfUkVRLAorCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FQzJLQ0VMTF9SRVEsCisgICAgTVNHX0lEX01BU0ZfRUMyS0NFTExfUkVRLAorCisgICAgTVNHX0lEX0FUUF9JV0xBTl9FQUZSX0lORCwKKyAgICBNU0dfSURfTUFTRl9FQUZSX0lORCwKKworICAgIE1TR19JRF9BVFBfSVdMQU5fRUNNUENJRF9SRVEsCisgICAgTVNHX0lEX01BU0ZfRUNNUENJRF9SRVEsCisKKyAgICBNU0dfSURfQVRQX0lXTEFOX01UX0NTX1BBR0lOR19JTkQsCisgICAgTVNHX0lEX01BU0ZfTVRfQ1NfUEFHSU5HX0lORCwKKworICAgIE1TR19JRF9BVFBfSVdMQU5fQ1NfQ0FMTF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9NQVNGX0NTX0NBTExfU1RBVFVTX0lORCwKKworICAgIE1TR19JRF9BVFBfSVdMQU5fU0lNX0lOVkFMSURfUkVRLAorICAgIE1TR19JRF9NQVNGX1NJTV9JTlZBTElEX1JFUSwKKworICAgIE1TR19JRF9BVFBfSVdMQU5fT09TX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfTUFTRl9PT1NfU1RBUlRfUkVRLAorCisgICAgTVNHX0lEX0FUUF9JV0xBTl9PT1NfRU5EX1JFUSwKKyAgICBNU0dfSURfTUFTRl9PT1NfRU5EX1JFUSwKKworICAgIE1TR19JRF9JV0xBTl9EU0JQX1JFQ09ORklHVVJFX0lORCwKKyAgICBNU0dfSURfTUFTRl9EU0JQX1JFQ09ORklHVVJFX0lORCwKKworICAgIC8qIEZyb20gSW50Q3RybCAqLworICAgIE1TR19JRF9NQVNGX0RBVEFfSU5GT19VUERBVEVfSU5ELAorCisgICAgLyogRnJvbSBXTEMgKi8KKyAgICBNU0dfSURfTUFTRl9XSUZJX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTUFTRl9FV0lGSVJTU0lUSFJfUkVRLAorICAgIAorICAgIC8qIFRvIElNQyAqLworICAgIE1TR19JRF9JTUNfSVdMQU5fSU1TX1JPQU1JTkdfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfTUFTRl9JTVNfUk9BTUlOR19TVEFUVVNfSU5ELAorICAgIAorICAgIC8qIFRvIEw0IC8gZnJvbSBMNCAqLworICAgIE1TR19JRF9NQVNGX1FVRVJZX0NFTlRSSUNfVFlQRV9SRVEsICAgIC8vIEFUK0NFVVM/CisgICAgTVNHX0lEX01BU0ZfQ0VOVFJJQ19UWVBFX0lORCwgICAgICAgICAgLy8gK0NFVVM6CisJCisJLyogRnJvbSBBVFAgKi8KKyAgICBNU0dfSURfQVRQX0lXTEFOX0NTRkJfRkFJTF9JTkQsCisgICAgTVNHX0lEX0VWSERfV01PQl9XQU5TX0NTRkJfRkFJTF9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNU0cgRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0lXTEFOX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fSVdMQU5fTVNHX0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2wxX2V4dF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFfZXh0X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVjYTNkOQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2wxX2V4dF9tc2dpZC5oCkBAIC0wLDAgKzEsNzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqIGwxX2V4dF9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBHU01fU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICAyRyBMYXllciAxIGFuZCBQcm90b2NvbCBTdGFjayhFeGNsdWRlIFJSKSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9MMV9FWFRfU0FQX0gKKyNkZWZpbmUgX0wxX0VYVF9TQVBfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTDFfRVhUX0NPREVfQkVHSU4gKQorLypGb3IgY2hlY2tpbmcgY2FsaWJyYXRpb24gZGF0YSBkb3dubGluayBzdGF0dXMqLworTVNHX0lEX0w0Q0wxX1FVRVJZX0NBTF9EQVRBX0RMX1NUQVRVU19SRVEgPSBNU0dfSURfTDFfRVhUX0NPREVfQkVHSU4sCitNU0dfSURfTDRDTDFfUVVFUllfQ0FMX0RBVEFfRExfU1RBVFVTX0NORiwKKy8vI2lmIElTXzJHX1RBU19TVVBQT1JUCisvL01TR19JRF9FTV9HU01fVEFTX0lORk9fSU5ELAorLy8jZW5kaWYKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDFfRVhUX0NPREVfVEFJTCApCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sMV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTk5YWM0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFfbXNnaWQuaApAQCAtMCwwICsxLDcyMSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiBsMV9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNYXVpX1NvZnR3YXJlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTGF5ZXIgMSBhbmQgUHJvdG9jb2wgU3RhY2sgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBMMV9NU0dJRF9ICisjZGVmaW5lIEwxX01TR0lEX0gKKworLyogTm90ZSB0aGF0IEdQUlMgUkVRIHNob3VsZCBiZWZvcmUgR1NNIENORi9JTkQsIEdTTSBzaG91bGQgYmVmb3JlIAorICAgR1BSUyBmb3IgTVBBTCdzIHJlcXVpcmVtZW50ISEhIFRoYXQgaXMsIGFsbCBSRVEgZmlyc3QgYW5kIEdTTSAKKyAgIGJlZm9yZSBHUFJTLCBhbmQgdGhlbiBhbGwgQ05GL0lORCB0b2dldGhlciB3aXRoIEdTTSBiZWZvcmUgR1BSUyAqLyAKKworLyogUmVxdWVzdCBmb3IgR1NNICovCisKK01PRFVMRV9NU0dfQkVHSU4oIEwxX01TR19DT0RFX0JFR0lOICkKK01TR19JRF9NUEhDX1BPV0VSX1NDQU5fUkVRID0gTDFfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfTVBIQ19NQU5VU0VMX1BXUlNDQU5fUkVRLAorTVNHX0lEX01QSENfTUFOVVNFTF9QV1JTQ0FOX1NUT1BfUkVRLAorTVNHX0lEX01QSENfQlNJQ19TWU5DX1JFUSwKK01TR19JRF9NUEhDX1NQRUNJRklDX1NZTkNfUkVRLAorTVNHX0lEX01QSENfU0VSVl9CQ0NIX01PTklUT1JfUkVRLAorTVNHX0lEX01QSENfSURMRV9DQ0NIX1NUQVJUX1JFUSwKK01TR19JRF9NUEhDX0NDQ0hfVVBEQVRFX1JFUSwKK01TR19JRF9NUEhDX1BBR0VfTU9ERV9DSEFOR0VfUkVRLAorTVNHX0lEX01QSENfU01BUlRfUEFHRV9TVEFSVF9SRVEsCitNU0dfSURfTVBIQ19SQU5ET01fQUNDRVNTX1JFUSwKK01TR19JRF9NUEhDX1JBQ0hfQUJPUlRfUkVRLAorTVNHX0lEX01QSENfSU1NRURfQVNTSUdOX1JFUSwKK01TR19JRF9NUEhDX0NIQU5ORUxfQVNTSUdOX1JFUSwKK01TR19JRF9NUEhDX0NIQU5ORUxfUkVMRUFTRV9SRVEsCitNU0dfSURfTVBIQ19IQU5ET1ZFUl9SRVEsCitNU0dfSURfTVBIQ19IQU5ET1ZFUl9BQ0NFU1NfU1RPUF9SRVEsCitNU0dfSURfTVBIQ19DSEFOTkVMX1JFQ09OTkVDVF9SRVEsCitNU0dfSURfTVBIQ19GUkVRVUVOQ1lfUkVERUZJTklUSU9OX1JFUSwKK01TR19JRF9NUEhDX0NIQU5ORUxfTU9ERV9NT0RJRllfUkVRLAorTVNHX0lEX01QSENfQ0lQSEVSSU5HX01PREVfQ09NTUFORF9SRVEsCitNU0dfSURfTVBIQ19DTE9TRV9UQ0hfTE9PUF9SRVEsCitNU0dfSURfTVBIQ19PUEVOX1RDSF9MT09QX1JFUSwKK01TR19JRF9NUEhDX0RBSV9URVNUX1JFUSwKK01TR19JRF9NUEhDX1BPV0VSX0NMQVNTX1JFUSwKK01TR19JRF9NUEhDX0NFTExfT1BUSU9OX1VQREFURV9SRVEsCitNU0dfSURfTVBIQ19FWFRFTkRFRF9NRUFTX1JFUSwKK01TR19JRF9NUEhDX05FSUdIQk9SX01FQVNfUkVRLAorTVNHX0lEX01QSENfTkVJR0hCT1JfQlNJQ19TVEFSVF9SRVEsCitNU0dfSURfTVBIQ19ORUlHSEJPUl9CU0lDX1NUT1BfUkVRLAorTVNHX0lEX01QSENfTkVJR0hCT1JfU1lTX0lORk9fUkVBRF9SRVEsCitNU0dfSURfTVBIQ19ORUlHSEJPUl9TWVNfSU5GT19TVE9QX1JFUSwKK01TR19JRF9NUEhDX0NFTExfQlNJQ19TVEFSVF9SRVEsCitNU0dfSURfTVBIQ19DRUxMX0JTSUNfU1RPUF9SRVEsCitNU0dfSURfTVBIQ19DRUxMX1NZU19JTkZPX1JFQURfUkVRLAorTVNHX0lEX01QSENfQ0VMTF9TWVNfSU5GT19TVE9QX1JFUSwKKyNpZmRlZiBfX0dFTUlOSV9fCitNU0dfSURfTVBIQ19DRUxMX1NZU19JTkZPX1BSSV9BREpVU1RfUkVRLAorI2VuZGlmIC8qIGVuZCBvZiBfX0dFTUlOSV9fICovCitNU0dfSURfTVBIQ19DQkNIX0NPTkZJR19SRVEsCitNU0dfSURfTVBIQ19DQkNIX1NUQVJUX1JFUSwKK01TR19JRF9NUEhDX0NCQ0hfU1RPUF9SRVEsCitNU0dfSURfTVBIQ19DQkNIX1NLSVBfUkVRLAorTVNHX0lEX01QSENfQkxJTkRfSEFORE9WRVJfQlNJQ19SRVEsCitNU0dfSURfTVBIQ19ERUFDVElWQVRFX1JFUSwKK01TR19JRF9NUEhDX1NJTV9SRUFEWV9OT1RJRllfUkVRLAorTVNHX0lEX01QSENfQ0VMTF9TRUxFQ1RJT05fSU5JVF9SRVEsCisKKworI2lmZGVmIF9fUFNfU0VSVklDRV9fCisvKiBSZXF1ZXN0IGZvciBHUFJTICovCitNU0dfSURfTVBIUF9ET1dOTElOS19TSU5HTEVfQkxPQ0tfUkVRLAorTVNHX0lEX01QSFBfSU5URVJGRVJFTkNFX01FQVNfUkVRLAorTVNHX0lEX01QSFBfUEFDS0VUX0lETEVfQ0NDSF9TVEFSVF9SRVEsCisjaWZkZWYgX19STVBfUFJFU0VOVF9fCitNU0dfSURfTVBIUF9ORUlHSEJPUl9QQkNDSF9TVEFSVF9SRVEsCitNU0dfSURfTVBIUF9ORUlHSEJPUl9QQkNDSF9TVE9QX1JFUSwKK01TR19JRF9NUEhQX1BBQ0tFVF9DQ0NIX0NPTkZJR19SRVEsCitNU0dfSURfTVBIUF9QQUNLRVRfSURMRV9QQ0NDSF9TVEFSVF9SRVEsCitNU0dfSURfTVBIUF9QQUNLRVRfUEFHRV9NT0RFX1VQREFURV9SRVEsCitNU0dfSURfTVBIUF9QQUNLRVRfUkFORE9NX0FDQ0VTU19SRVEsCitNU0dfSURfTVBIUF9QUkFDSF9BQk9SVF9SRVEsCitNU0dfSURfTVBIUF9QQkNDSF9TVEFSVF9SRVEsCitNU0dfSURfTVBIUF9QQkNDSF9TVE9QX1JFUSwKK01TR19JRF9NUEhQX1BDQ0NIX0NPTkZJR19SRVEsCisjZW5kaWYgLyogZW5kIG9mIF9fUk1QX1BSRVNFTlRfXyovCitNU0dfSURfTVBIUF9QQUNLRVRfRE9XTkxJTktfQVNTSUdOTUVOVF9SRVEsCisjaWZkZWYgX19QS1RfRVhUX01FQVNfXworTVNHX0lEX01QSFBfUEFDS0VUX0VYVEVOREVEX01FQVNfUkVRLCAKKyNlbmRpZiAvKl9fUEtUX0VYVF9NRUFTX18qLworTVNHX0lEX01QSFBfUEFDS0VUX05DX01FQVNfU1RBUlRfUkVRLAorTVNHX0lEX01QSFBfUEFDS0VUX05DX01FQVNfU1RPUF9SRVEsCitNU0dfSURfTVBIUF9QQUNLRVRfUERDSF9SRUxFQVNFX1JFUSwKK01TR19JRF9NUEhQX1BBQ0tFVF9VTkFTU0lHTk1FTlRfUkVRLAorTVNHX0lEX01QSFBfUEFDS0VUX1VQTElOS19BU1NJR05NRU5UX1JFUSwKK01TR19JRF9NUEhQX1BBQ0tFVF9USU1FU0xPVF9SRUNPTkZJR1VSRV9SRVEsCitNU0dfSURfTVBIUF9QRENIX0ZBSUxfUkVDT05ORUNUX1JFUSwKK01TR19JRF9NUEhQX1BPTExfUkVTUE9OU0VfUkVRLAorTVNHX0lEX01QSFBfUE9XRVJfQ09OVFJPTF9VUERBVEVfUkVRLAorTVNHX0lEX01QSFBfUkVQRUFUX0FMTE9DQVRJT05fUkVRLAorTVNHX0lEX01QSFBfVElNSU5HX0FEVkFOQ0VfVVBEQVRFX1JFUSwKK01TR19JRF9NUEhQX1VQTElOS19TSU5HTEVfQkxPQ0tfUkVRLAorI2lmZGVmIF9fTU9OSVRPUl9QQUdFX0RVUklOR19UUkFOU0ZFUl9fCitNU0dfSURfTVBIUF9NT05JVE9SX1BBR0VfSU5fUFRNX1NUQVJUX1JFUSwKK01TR19JRF9NUEhQX01PTklUT1JfUEFHRV9JTl9QVE1fU1RPUF9SRVEsCisjZW5kaWYgLyogZW5kIG9mIF9fTU9OSVRPUl9QQUdFX0RVUklOR19UUkFOU0ZFUl9fICovCisjaWZkZWYgX19QU19IT19fCitNU0dfSURfTVBIUF9QU19IQU5ET1ZFUl9SRVEsCitNU0dfSURfTVBIUF9QU19IQU5ET1ZFUl9SRUNPTk5FQ1RfUkVRLAorTVNHX0lEX01QSFBfQkxJTkRfUFNfSEFORE9WRVJfQlNJQ19SRVEsCisjZW5kaWYgLyogZW5kIG9mIF9fUFNfSE9fXyAqLworTVNHX0lEX01QSFBfUFNfU0VTU0lPTl9TVEFUVVNfVVBEQVRFX1JFUSwKKyNlbmRpZiAgLyogX19QU19TRVJWSUNFX18gKi8gCisKK01TR19JRF9NUEhDX0FDVElWRV9SRVEsCisKKyNpZiBkZWZpbmVkKF9fVU1UU19SQVRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKK01TR19JRF9NUEhNX1NUQU5EQllfUkVRLAorTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fTUVBU19TVEFSVF9SRVEsCitNU0dfSURfTVBITV9TVEFOREJZX0dTTV9NRUFTX1NUT1BfUkVRLAorI2lmIGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX1BSSU9fTUVBU19TVEFSVF9SRVEsCitNU0dfSURfTVBITV9TVEFOREJZX0dTTV9QUklPX01FQVNfU1RPUF9SRVEsCisjZW5kaWYgLyogZGVmaW5lZChfXzIzR19QUklfUkVTRUxfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKSAqLworTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fQlNJQ19SRUFEX1JFUSwKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX0JTSUNfU1RPUF9SRVEsCitNU0dfSURfTVBITV9TVEFOREJZX0NFTExfQlNJQ19SRVNfUkVRLAorTVNHX0lEX01QSE1fSU5URVJfUkFUX0hBTkRPVkVSX1JFUSwKKyNpZiAwCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgLyogMCAqLworI2lmZGVmIF9fTFRFX1JBVF9fCitNU0dfSURfTVBITV9TVEFOREJZX0dTTV9SRVBPUlRfQ0dJX1BXUlNDQU5fUkVRLAorTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9QV1JTQ0FOX1NUT1BfUkVRLAorTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9CU0lDX1NUQVJUX1JFUSwKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX1JFUE9SVF9DR0lfQlNJQ19TVE9QX1JFUSwKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX1JFUE9SVF9DR0lfU1lTX0lORk9fU1RBUlRfUkVRLAorTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9TWVNfSU5GT19TVE9QX1JFUSwKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX1JFUE9SVF9TUlZDQ19CU0lDX1NUQVJUX1JFUSwKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX1JFUE9SVF9TUlZDQ19CU0lDX1NUT1BfUkVRLAorCisjZW5kaWYgLyogX19MVEVfUkFUX18gKi8KKworI2lmZGVmIF9fQ1NHX1NVUFBPUlRfTldfQ1RSTF9fCitNU0dfSURfTVBITV9BVVRPX0dBUF9TVEFSVF9SRVEsCitNU0dfSURfTVBITV9BVVRPX0dBUF9TVE9QX1JFUSwKKyNlbmRpZiAvKiBfX0NTR19TVVBQT1JUX05XX0NUUkxfXyAqLworI2VuZGlmIC8qIGRlZmluZWQoX19VTVRTX1JBVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKSAqLworCitNU0dfSURfTVBITV9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorI2lmZGVmIF9fRUdQUlNfTU9ERV9fCitNU0dfSURfTVBIUF9FR1BSU19MT09QX1JFUSwKK01TR19JRF9NUEhQX1VQREFURV9JUl9SRVNFVF9SRVEsCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19HRU1JTklfXykgfHwgZGVmaW5lZChfX1NHTFRFX18pCitNU0dfSURfTVBIQ19TSU1fU1RBVFVTX1VQREFURV9SRVEsCisjZW5kaWYgLyplbmQgb2YgX19HRU1JTklfXyB8fCBfX1NHTFRFX18gKi8KKworI2lmZGVmIF9fR0VNSU5JX18KKworLyogU2hpaHlhbywgZ2VtaW5pIDIuMCBkZXZlbG9wbWVudCAqLworTVNHX0lEX01QSENfUE9XRVJfU0NBTl9TVE9QX1JFUSwKK01TR19JRF9NUEhDX1ZJUlRVQUxfU1VTUEVORF9SRVEsCitNU0dfSURfTVBIQ19SRVNVTUVfUkVRLCAvKiBpdCBpcyBzZW50IGZyb20gTVBBTCB0byBMMSAqLworTVNHX0lEX01QSENfQ0hBTk5FTF9QUk9URUNUX1NUQVJUX1JFUSwKK01TR19JRF9NUEhDX0NIQU5ORUxfUFJPVEVDVF9TVE9QX1JFUSwKKworI2VuZGlmIC8qZW5kIG9mIF9fR0VNSU5JX18qLworCisvKiBhZGQgZm9yIFUzRyAqLworTVNHX0lEX01QSENfUEFHSU5HX1BBUkFNX0FTU0lHTl9SRVEsCisKKy8qIENvbmZpcm1hdGlvbiAmIEluZGljYXRpb24gZm9yIEdTTSAqLworCitNU0dfSURfTVBIQ19QT1dFUl9TQ0FOX0NORiwKK01TR19JRF9MMV9DTkZfQ09ERV9CRUdJTiA9IE1TR19JRF9NUEhDX1BPV0VSX1NDQU5fQ05GLAorTVNHX0lEX01QSENfTUFOVVNFTF9QV1JTQ0FOX0NORiwKK01TR19JRF9NUEhDX0JTSUNfU1lOQ19DTkYsCitNU0dfSURfTVBIQ19VTklUREFUQV9JTkQsCitNU0dfSURfTVBIQ19SQU5ET01fQUNDRVNTX0NORiwKK01TR19JRF9NUEhDX0lNTUVEX0FTU0lHTl9DTkYsCitNU0dfSURfTVBIQ19DSEFOTkVMX0FTU0lHTl9DTkYsCitNU0dfSURfTVBIQ19DSEFOTkVMX1JFTEVBU0VfQ05GLAorTVNHX0lEX01QSENfSEFORE9WRVJfQ05GLAorTVNHX0lEX01QSENfSEFORE9WRVJfQUNDRVNTX1NUQVJUX0lORCwKK01TR19JRF9NUEhDX0hBTkRPVkVSX0NPTk5FQ1RFRF9JTkQsCitNU0dfSURfTVBIQ19IQU5ET1ZFUl9BQ0NFU1NfU1RPUF9DTkYsCitNU0dfSURfTVBIQ19DSEFOTkVMX1JFQ09OTkVDVF9DTkYsCitNU0dfSURfTVBIQ19GUkVRVUVOQ1lfUkVERUZJTklUSU9OX0NORiwKK01TR19JRF9NUEhDX0NIQU5ORUxfTU9ERV9NT0RJRllfQ05GLAorTVNHX0lEX01QSENfQ0lQSEVSSU5HX01PREVfQ09NTUFORF9DTkYsCitNU0dfSURfTVBIQ19DTE9TRV9UQ0hfTE9PUF9DTkYsCitNU0dfSURfTVBIQ19PUEVOX1RDSF9MT09QX0NORiwKK01TR19JRF9NUEhDX0VYVEVOREVEX01FQVNfSU5ELAorTVNHX0lEX01QSENfQkxPQ0tfUVVBTElUWV9JTkQsCitNU0dfSURfTVBIQ19TRVJWX0lETEVfTUVBU19JTkQsCitNU0dfSURfTVBIQ19TRVJWX0RFRElfTUVBU19JTkQsCitNU0dfSURfTVBIQ19ORUlHSEJPUl9NRUFTX0lORCwKK01TR19JRF9NUEhDX05FSUdIQk9SX0JTSUNfSU5ELAorTVNHX0lEX01QSENfQ0VMTF9CU0lDX0lORCwKK01TR19JRF9NUEhDX0JMSU5EX0hBTkRPVkVSX0JTSUNfSU5ELAorTVNHX0lEX01QSENfQ0VMTF9TRUxFQ1RJT05fSU5JVF9DTkYsCitNU0dfSURfTVBIQ19BQ1RJVkVfQ05GLAorTVNHX0lEX01QSENfREVBQ1RJVkFURV9DTkYsCitNU0dfSURfR0lTRV9NUEFMX0VOVEVSX0lETEVfSU5ELAorCisKKyNpZmRlZiBfX1BTX1NFUlZJQ0VfXworLyogQ29uZmlybWF0aW9uICYgSW5kaWNhdGlvbiBmb3IgR1BSUyAqLworTVNHX0lEX01QSFBfRE9XTkxJTktfU0lOR0xFX0JMT0NLX0NORiwKK01TR19JRF9NUEhQX0lOVEVSRkVSRU5DRV9NRUFTX0lORCwKK01TR19JRF9NUEhQX1BBQ0tFVF9CTE9DS19RVUFMSVRZX0lORCwKK01TR19JRF9NUEhQX1BBQ0tFVF9EQVRBX0lORCwKK01TR19JRF9NUEhQX1BBQ0tFVF9ET1dOTElOS19BU1NJR05NRU5UX0NORiwKKyNpZmRlZiBfX1BLVF9FWFRfTUVBU19fCitNU0dfSURfTVBIUF9QQUNLRVRfRVhURU5ERURfTUVBU19JTkQsCisjZW5kaWYgLypfX1BLVF9FWFRfTUVBU19fKi8KK01TR19JRF9NUEhQX1BBQ0tFVF9OQ19NRUFTX0lORCwKKyNpZmRlZiBfX1JNUF9QUkVTRU5UX18KK01TR19JRF9NUEhQX1BBQ0tFVF9SQU5ET01fQUNDRVNTX0NORiwKKyNlbmRpZiAvKiBlbmQgb2YgX19STVBfUFJFU0VOVF9fKi8KK01TR19JRF9NUEhQX1BBQ0tFVF9TRVJWX01FQVNfSU5ELAorTVNHX0lEX01QSFBfUEFDS0VUX1VOQVNTSUdOTUVOVF9DTkYsCitNU0dfSURfTVBIUF9QQUNLRVRfVVBMSU5LX0FTU0lHTk1FTlRfQ05GLAorTVNHX0lEX01QSFBfUEFDS0VUX1RJTUVTTE9UX1JFQ09ORklHVVJFX0NORiwKKyNpZm5kZWYgX19NVEtfVEFSR0VUX18KK01TR19JRF9NUEhQX1BLVF9VMV9JTkQsCitNU0dfSURfTVBIUF9QS1RfVTJfSU5ELAorTVNHX0lEX01QSFBfUEFDS0VUX0RPV05MSU5LX0lORCwKKyNlbmRpZgorTVNHX0lEX01QSFBfUERDSF9GQUlMX1JFQ09OTkVDVF9DTkYsCitNU0dfSURfTVBIUF9QT0xMX1JFU1BPTlNFX0NORiwKK01TR19JRF9NUEhQX1JFUEVBVF9BTExPQ0FUSU9OX0lORCwKKyNpZmRlZiBfX1BTX0hPX18KK01TR19JRF9NUEhQX1BTX0hBTkRPVkVSX0NORiwKK01TR19JRF9NUEhQX1BTX0hBTkRPVkVSX1JFQ09OTkVDVF9DTkYsCitNU0dfSURfTVBIUF9CTElORF9QU19IQU5ET1ZFUl9CU0lDX0lORCwKKyNlbmRpZiAvKiBlbmQgb2YgX19QU19IT19fICovCitNU0dfSURfTVBIUF9VUExJTktfU0lOR0xFX0JMT0NLX0NORiwKKyNlbmRpZiAgLyogX19QU19TRVJWSUNFX18gKi8gICAKKyNpZmRlZiBfX0VHUFJTX01PREVfXworTVNHX0lEX01QSFBfRUdQUlNfTE9PUF9DTkYsCisjZW5kaWYKKworI2lmZGVmIF9fR0VNSU5JX18KKworLyogU2hpaHlhbywgZ2VtaW5pIDIuMCBkZXZlbG9wbWVudC4gKi8KK01TR19JRF9NUEhDX1ZJUlRVQUxfU1VTUEVORF9DTkYsCisKKyNlbmRpZiAvKmVuZCBvZiBfX0dFTUlOSV9fKi8KK01TR19JRF9NUEhDX1NQRUNJRklDX1NZTkNfQ05GLAorCitNU0dfSURfTDFfQ05GX0NPREVfRU5ELCAvKiBNdXN0IG5vdCBpbmNsdWRlIDNHIG1zZyBzaW5jZSAzRyBtc2cgdXNlIGFub3RoZXIgZnVuY3Rpb24gdGFibGUgKi8KKworI2lmIGRlZmluZWQoX19VTVRTX1JBVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKSAKK01TR19JRF9NUEhNX1NUQU5EQllfQ05GLAorTVNHX0lEX01QSE1fTDFfQ05GX0NPREVfQkVHSU4gPSBNU0dfSURfTVBITV9TVEFOREJZX0NORiwKK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX01FQVNfSU5ELAorI2lmIGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgfHwgZGVmaW5lZCAoX19MVEVfUkFUX18pCitNU0dfSURfTVBITV9TVEFOREJZX0dTTV9QUklPX01FQVNfSU5ELAorI2VuZGlmIC8qZGVmaW5lZChfXzIzR19QUklfUkVTRUxfU1VQUE9SVF9fKSB8fCBkZWZpbmVkIChfX0xURV9SQVRfXykgKi8KKworTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fQlNJQ19JTkQsCitNU0dfSURfTVBITV9JTlRFUl9SQVRfSEFORE9WRVJfQ05GLAorCisjaWZkZWYgX19MVEVfUkFUX18KK01TR19JRF9NUEhNX1NUQU5EQllfR1NNX1JFUE9SVF9DR0lfUFdSU0NBTl9DTkYsCitNU0dfSURfTVBITV9TVEFOREJZX0dTTV9SRVBPUlRfQ0dJX0JTSUNfSU5ELAorI2VuZGlmIC8qIF9fTFRFX1JBVF9fICovCisKKyNpZmRlZiBfX0NTR19TVVBQT1JUX05XX0NUUkxfXworTVNHX0lEX01QSE1fQVVUT19HQVBfU1RBUlRfQ05GLAorTVNHX0lEX01QSE1fQVVUT19HQVBfU1RPUF9DTkYsCisjZW5kaWYgLyogX19DU0dfU1VQUE9SVF9OV19DVFJMX18gKi8KKworTVNHX0lEX01QSE1fRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKK01TR19JRF9NUEhNX0wxX0NORl9DT0RFX0VORCwKKworI2lmZGVmIF9fTFRFX1JBVF9fCisJTVNHX0lEX01QSE1fU1RBTkRCWV9HU01fUkVQT1JUX1NSVkNDX0JTSUNfSU5ELAorI2VuZGlmIC8qIF9fTFRFX1JBVF9fICovCisKKyNpZmRlZiBfX0dFTUlOSV9fCitNU0dfSURfTVBIQ19BTFRfTDFfR1NNX0dBUF9TRVJWSUNFX1VQREFURV9SRVEsCitNU0dfSURfTVBIQ19BTFRfTDFfR1NNX0dBUF9SRVNVTUVfUkVRLAorI2VuZGlmIC8qIF9fR0VNSU5JX18gKi8KKyNlbmRpZiAvKiBkZWZpbmVkKF9fVU1UU19SQVRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykgKi8KKworLyogQWRkIGZvciBjb21tLiBiZXR3ZWVuIEdMMSBhbmQgR0wxX1BDT1JFICovCitNU0dfSURfTVBIQ19NUEFMX1NEQ0NIX0RPV05MSU5LLAorTVNHX0lEX01QSENfTVBBTF9TQUNDSF9ET1dOTElOSywKK01TR19JRF9NUEhDX01QQUxfRkFDQ0hfRE9XTkxJTkssCisjaWZkZWYgX19QU19TRVJWSUNFX18gICAKK01TR19JRF9NUEhQX01QQUxfUEFDS0VUX0RPV05MSU5LLAorI2VuZGlmCitNU0dfSURfTVBIQ19SQVRDTV9SQV9VUExJTktUSUNLLAorTVNHX0lEX01QSENfUkFUQ01fUkFfRE9XTkxJTktUSUNLLAorTVNHX0lEX01QSENfUkFUQ01fUkFfQUNUSVZBVEVfUkVRLAorTVNHX0lEX01QSENfUkFUQ01fUkFfQUNUSVZBVEVfQ05GLAorTVNHX0lEX01QSENfUkFUQ01fUkFfREVBQ1RJVkFURV9SRVEsCitNU0dfSURfTVBIQ19SQVRDTV9SQV9ERUFDVElWQVRFX0NORiwKK01TR19JRF9NUEhDX1JBVENNX1JBX1BVVFVQTElOS0RBVEEsCitNU0dfSURfTVBIQ19SQVRDTV9SQV9HRVRET1dOTElOS0RBVEEsCisjaWZkZWYgTDFBX1NJTQorTVNHX0lEX0wxQ19MMUFfUkVQT1JULAorI2lmbmRlZiBfX0dFTUlOSV9fIC8qIFRvIHJ1biBXR18wLCBHV18wIHNjcmlwdHMgaW4gRHVhbF9Nb2RlIGVudmlyb25tZW50Ki8KK01TR19JRF9NUEhDX1NJTTJfUlNWQVNfTDFfU1VTUEVORF9SRVEsCitNU0dfSURfTVBIQ19TSU0yX1ZJUlRVQUxfU1VTUEVORF9SRVEsCitNU0dfSURfTVBIQ19TSU0yX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX1JTVkFTX0wxX1NVU1BFTkRfQ05GLAorI2lmIGRlZmluZWQoX19UQzEwX18pICYmIGRlZmluZWQoX19UQzEwX0lQQ19DRE1BX1NVUFBPUlRfXykKKyAgIE1TR19JRF9MMURfRU1fVFhfUkZQRF9JTkZPX01TRywKKyNlbmRpZgorTVNHX0lEX01QSENfVklSVFVBTF9TVVNQRU5EX0NORiwKKyNlbmRpZiAvKiBlbmQgb2YgX19HRU1JTklfXyovICAgCisjZW5kaWYKKworLyogVG8gYnlwYXNzIFNHTFRFIGJ1aWxkIGVycm9yLCB0aGVzZSBtZXNzYWdlcyB3aWxsIGJlIG5ldmVyIHNlbnQgaW4gU0dMVEUgd2l0aG91dCBEU0RTICovCisjaWYgIWRlZmluZWQoX19HRU1JTklfXykgJiYgZGVmaW5lZChfX1NHTFRFX18pCitNU0dfSURfUlNWQVNfTDFfU1VTUEVORF9SRVEsCitNU0dfSURfUlNWQVNfTDFfU1VTUEVORF9DTkYsCitNU0dfSURfUlNWQVNfTDFfUkVTVU1FX1JFUSwKK01TR19JRF9NUEhDX0FMVF9MMV9HU01fR0FQX1NFUlZJQ0VfVVBEQVRFX1JFUSwKK01TR19JRF9NUEhDX0FMVF9MMV9HU01fR0FQX1JFU1VNRV9SRVEsCitNU0dfSURfTVBIQ19DRUxMX1NZU19JTkZPX1BSSV9BREpVU1RfUkVRLAorTVNHX0lEX01QSENfUE9XRVJfU0NBTl9TVE9QX1JFUSwKK01TR19JRF9NUEhDX1ZJUlRVQUxfU1VTUEVORF9SRVEsCitNU0dfSURfTVBIQ19SRVNVTUVfUkVRLAorTVNHX0lEX01QSENfQ0hBTk5FTF9QUk9URUNUX1NUQVJUX1JFUSwKK01TR19JRF9NUEhDX0NIQU5ORUxfUFJPVEVDVF9TVE9QX1JFUSwKK01TR19JRF9NUEhDX1ZJUlRVQUxfU1VTUEVORF9DTkYsCisjZW5kaWYKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDFfQ09ERV9UQUlMICkKKworI2VuZGlmIC8vTDFfTVNHSURfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFkX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sMWRfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDZmYTNjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFkX21zZ2lkLmgKQEAgLTAsMCArMSwyODggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgIEZJTEUgTkFNRTogIGwxZF9tc2dpZC5oCisKKyAgREVTQ1JJUFRJT046CisKKyAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmVuaXRpb25zIG9mIGFsbCB0aGUgUk1DIG1zZyBpZCdzLgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfTDFEX01TR0lEX0hfCisjZGVmaW5lIF9MMURfTVNHSURfSF8KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9MMURfTURNX0NPREVfQkVHSU4pCisKKyAgICAgICAgTVNHX0lEX0wxRF9NU0dJRF9TVEFSVCAgICAgICAgPSAgTVNHX0lEX0wxRF9NRE1fQ09ERV9CRUdJTiwgIAorLyogMCovICBNU0dfSURfTDFEX0FDQ0VTU19BQk9SVF9NU0cgICA9ICBNU0dfSURfTDFEX01TR0lEX1NUQVJULAorICAgICAgICBNU0dfSURfTDFEX0FDQ0VTU19TSUdfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0JDQ0hfU1RBUlRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0JDQ0hfU1RPUF9NU0csCisgICAgICAgIE1TR19JRF9MMURfQ0FORF9GUkVRX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9DQU5EX0ZSRVFfU1RBUlRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0NTQ0hfU1RPUF9NU0csCisgICAgICAgIE1TR19JRF9MMURfQ0ZTX1NFTkRfUkVRVUVTVF9NU0csCisvKiBBKi8gIE1TR19JRF9MMURfRkNDQ0hfU1RBUlRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0ZEU0NIX0FDUV9JTkRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0ZTQ0hfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0NGU19UVU5FX1BMTFNfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0lETEVfU0VUU19MSVNUX1VQREFURV9NU0csCisgICAgICAgIE1TR19JRF9MMURfTE9OR19DT0RFX0NIQU5HRV9NU0csCisgICAgICAgIE1TR19JRF9MMURfUEFHSU5HX0NIQU5fU1RBUlRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1BBR0lOR19DSEFOX1NUT1BfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1BJTE9UX0FDUV9TVEFSVF9NU0csCisvKjE0Ki8gIE1TR19JRF9MMURfUFJFQU1CTEVfT0ZGX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9QUkVBTUJMRV9PTl9NU0csCisgICAgICAgIE1TR19JRF9MMURfUkVTRVRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1JFU09VUkNFX0FMTE9DX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SRVNPVVJDRV9ERUFMTE9DX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SRVNPVVJDRV9SRVFfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0NGU19SRVNUT1JFX1BMTFNfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1JFVkVSU0VfUE9XRVJfU0VUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SWF9QT1dFUl9NU0csCisvKjFFKi8gIE1TR19JRF9MMURfU0VBUkNIX1BBUk1TX1VQREFURV9NU0csCisgICAgICAgIE1TR19JRF9MMURfU0VBUkNIX1JTTFRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1NFUlZJQ0VfQ09ORklHX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9TRVJWSUNFX0NPTkZJR19OTl9NU0csCisgICAgICAgIE1TR19JRF9MMURfU0VUU19MSVNUX1VQREFURV9NU0csCisgICAgICAgIE1TR19JRF9MMURfU0xPVFRFRF9NT0RFX0RJU0FCTEVfTVNHLCAgLyogTDFEX1NMT1RURURfTU9ERV9ESVNBQkxFX01TRywgKi8KKyAgICAgICAgTVNHX0lEX0wxRF9TTE9UVEVEX01PREVfUEFSQU1TX01TRywgIC8qIEwxRF9TTE9UVEVEX01PREVfUEFSQU1TX01TRywgKi8KKyAgICAgICAgTVNHX0lEX0wxRF9TTEVFUF9NU0csICAvKiBMMURfU0xFRVBfTVNHLCAqLworICAgICAgICBNU0dfSURfTDFEX1dBS0VVUF9NU0csICAvKiBMMURfV0FLRVVQX01TRywgKi8KKy8qMjgqLyAgTVNHX0lEX0wxRF9TTE9UVEVEX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9TWU5DX0FDUV9TVEFSVF9NU0csCisgICAgICAgIE1TR19JRF9MMURfVElNSU5HX0NIQU5HRV9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFJBRkZJQ19DSEFOX0hBUkRfSEFORE9GRl9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFJBRkZJQ19DSEFOX1BXUl9TVEVQX01TRywgLyogb2Jzb2xldGUsIGtlcHQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIDQuMCBiZWNhdXNlIG9mICJFVFMgTGl0ZSIgaXNzdWVzICovCisgICAgICAgIE1TR19JRF9MMURfVFJBRkZJQ19DSEFOX1NPRlRfSEFORE9GRl9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFJBRkZJQ19DSEFOX1NUQVJUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UUkFGRklDX0NIQU5fU1RPUF9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFJBTlNNSVRURVJfQ09OVFJPTF9NU0csCisvKjMyKi8gIE1TR19JRF9MMURfRk9SX1BPV0VSX0NPTlRST0xfUEFSQU1TX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9PVVRFUkxPT1BfUkVRX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9GUENfUkVQX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UU1RfRElBR19NT05JVE9SX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UU1RfR0VUX1BIT05FX1NUQVRFX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9JRExFX0RJRkZfRlJFUV9TRUFSQ0hfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0FDQ0VTU19QUk9CRV9DT01QTEVURV9NU0csCisgICAgICAgIE1TR19JRF9MMURfR0VUX1BTX0lORk9fUlNQX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UU1RfVFhfQ0RNQV9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFNUX1RYX0FHQ19DVFJMX01TRywKKy8qM0MqLyAgTVNHX0lEX0wxRF9SU0NIX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9GUENfQ0FMX0ZBQ1RPUl9NU0csCisgICAgICAgIE1TR19JRF9MMURfR0VUX1ZBTF9JTkZPX1JTUF9NU0csCisgICAgICAgIE1TR19JRF9MMURfR0VUX0RTUFZfSU5GT19SU1BfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0FGTFRfU0VBUkNIX1JTTFRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0FGTFRfRFNQX1NFQVJDSF9USU1FT1VUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9QT1NfQUZMVF9TRUFSQ0hfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1BPU19BRkxUX0FCT1JUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9EU01fTURNX1JTVF9BQ0tfTVNHLAorLyo0NiovICBNU0dfSURfTDFEX1JYX1BPV0VSX1JFUV9NU0csCisgICAgICAgIE1TR19JRF9MMURfU1lOQ19DSEFOX01TR19SRUNEX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9JTklUX01TRywKKyAgICAgICAgCisgICAgICAgIE1TR19JRF9MMURfREVBQ1RJVkVfUkVRX01TRywKKworICAgICAgICBNU0dfSURfTDFEX1RTVF9ERUJVR19GSUxURVJfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0lETEVfUFJJT1JJVFlfU0VUX1VQREFURV9NU0csCisgICAgICAgIE1TR19JRF9MMURfUFVGX1BST0JFX0FCT1JUX01TRywKKy8qNTEqLyAgTVNHX0lEX0wxRF9QVUZfUFJPQkVfU0VORF9NU0csCisgICAgICAgIE1TR19JRF9MMURfTVBBX1JFTEVBU0VfSU5EX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9HUFNfSU5JVF9HUFNfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0dQU19DT05UX0NETUFfUkVRX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9HUFNfTjFfR09PRF9GUkFNRVNfRk9VTkRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0dQU19QU01NX1NFTlRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0dQU19TV0lUQ0hJTkdfSEFORE9GRl9DT01QTEVURV9NU0csCisvKjVCKi8gIE1TR19JRF9MMURfR1BTX0dPT0RfRlJBTUVTX1RNUl9FWFBfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0dQU19YTUlUX1RNUl9FWFBfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0dQU19IQU5ET0ZGX0lORF9UTVJfRVhQX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9HUFNfRU5EX0dQU19SRVFfTVNHLCAgICAgICAgCisgICAgICAgIE1TR19JRF9MMURfQUZMVF9USU1JTkdfUlNQX01TRywgICAgICAgIAorICAgICAgICBNU0dfSURfTDFEX1RTVF9JRExFX0RJRkZfRlJFUV9TUkNIX01PREVfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1RTVF9JR05PUkVfUkVTRVRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0ZTQ0hfQ09ORklHX1VQREFURV9NU0csCisgICAgICAgIE1TR19JRF9MMURfUlNDSF9DT05GSUdfVVBEQVRFX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9TUkNIX1JFU1VMVF9DT01QTEVURV9NU0csICAvKiBMMURfU1JDSF9SRVNVTFRfQ09NUExFVEVfTVNHLCAqLworICAgICAgICBNU0dfSURfTDFEX01QQV9SRUxFQVNFX0lOSVRfQ05GX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9NQVhfVFhfUE9XRVJfTElNSVRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1ZBTF8xWF9EQVRfQ0ZHX1JFUV9NU0csCisgICAgICAgIE1TR19JRF9MMURfQUNDRVNTX0lOX1BST0dSRVNTX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9HRVRfREVCVUdfU0NSTl9JTkZPX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SU0NIX1BPV0VSX1NFVF9NU0csCisKKyAgICAgICAgLyoKKyAgICAgICAgICogQWxsIG1zZyBpZHMgdGhhdCBhcmUgdGhlIHNhbWUgYXMgdGhvc2Ugb24gNC4wIGFyZSBsaXN0ZWQgYWJvdmUuCisgICAgICAgICAqIE5ldyBtc2cgaWRzIGZvciA2Lnggc2hvdWxkIGJlIGxpc3RlZCBiZWxvdy4KKyAgICAgICAgICovCisgICAgICAgIE1TR19JRF9MMURfVEVTVF8xWF9BRkxUX0NNRF9NU0csCisgICAgICAgIE1TR19JRF9MMURfUERDSF9QQVJBTVNfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0FDS0NRSUNIX1JBVEVfQ0hBTkdFX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9QT1dFUl9TQVZJTkdTX0RFTEFZX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9BTFRfUElMT1RfQUNRX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9NUEFfUkZfUFJFRU1QVF9SRVFfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0RTTV9SRl9SRUxFQVNFX1JTUF9NU0csCisgICAgICAgIE1TR19JRF9MMURfUFNXX1JGX1JFTEVBU0VfUkVRX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9CQU5EX1NVUFBPUlRfUVVFUllfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0lSQVRfVFhfUFdSX1JFUSwKKyAgICAgICAgTVNHX0lEX0wxRF9SWF9UWF9QT1dFUl9JTkZPX1JFU1BfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1RTVF9UUkFOU01JVF9OU1RfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1RTVF9OU1RfVFJBRkZJQ19PTl9NU0csCisgICAgICAgIE1TR19JRF9MMURfU1dJVENIX1BBX0ZPUl9BQ0NFU1MsCisgICAgICAgIE1TR19JRF9MMURfUkFESU9fQ09ORklHX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9ESVZFUlNJVFlfRU5BQkxFX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UU1RfTlNUX0VORF9NU0csCisgICAgICAgIE1TR19JRF9MMURfREZTX0VDSU9fVEhSRVNIX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UWF9BQ0tfTkFLX01TRywKKyNpZmRlZiAgTVRLX0RFVl9FTkdJTkVFUl9NT0RFCisgICAgICAgIE1TR19JRF9MMURfUkZfVFNUX1BPV0VSX0NPTlRST0xfTVNHLAorI2VuZGlmCisgICAgICAgIE1TR19JRF9MMURfUFJFQlVSU1RfQ0FMSUJfRU5EX01TRywKKworI2lmIGRlZmluZWQgKE1US19ERVZfQzJLX0lSQVQpICYmIGRlZmluZWQgKE1US19ERVZfQzJLX1NSTFRFX0wxKQorICAgICAgICBNU0dfSURfTDFEX1BST1RFQ1RfQU5URU5OQV9TVEFSVF9NU0csCisgICAgICAgIE1TR19JRF9MMURfUFJPVEVDVF9BTlRFTk5BX1NUT1BfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1NFVF9SQVRfU1RBVFVTX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SVEJBX1JGX1JFU0VSVkVfRU5EX0lORF9NU0csCisgICAgICAgIE1TR19JRF9MMURfU0VBUkNIX1NUQVRVU19NU0csCisgICAgICAgIE1TR19JRF9MMURfVFNUX05TVF9TVEFSVF9NU0csCisgICAgICAgIE1TR19JRF9MMURfVEVTVF8xWF9DRlNfQ01EX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9URVNUXzFYX0RGU19DTURfTVNHLAorICNpZmRlZiBNVEtfQ0JQX1NZTkNfT1BUSU1JWkUgCisgICAgICAgIE1TR19JRF9MMURfVEVTVF8xWF9JQ1NfT1BUSU1JWkVfTVNHLAorICNlbmRpZgorICAgICAgICBNU0dfSURfTDFEX1NDSF9FQk5UX01TRywKKyNlbmRpZgorCisgICAgICAgIE1TR19JRF9MMURfVEVTVF9BREFQVElWRV9SWF9DTURfTVNHLAorICAgICAgICAKKyAgICAgICAgTVNHX0lEX0wxRF9UU1RfUlhfUFdSX1JFUV9NU0csCisKKyNpZmRlZiBNVEtfR1BTX1NZTkNfREVWCisgICAgICAgIE1TR19JRF9MMURfR1BTX1BFUklPRF9TWU5DX0NNRCwKKyAgICAgICAgTVNHX0lEX0wxRF9HUFNfUEVSSU9EX1NZTkNfU1RPUF9DTUQsCisjZW5kaWYgICAgIAorICAgICAgICBNU0dfSURfTDFEX1RBU19GT1JDRV9BTlRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX01ETV9TVEFSVFVQX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9USU1FX0NIR19TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfRlJBTUVfU0VUX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9BQ0NFU1NfUFJFQU1CTEVfU0lHTkFMLAorICAgICAgICBNU0dfSURfTDFEX0VOQUJMRV9SRVZfVFhfU0lHTkFMLAorICAgICAgICBNU0dfSURfTDFEX1NWQ19DRkdfU0lHX1RYX09OX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9SU0NIX0xNRF9TVE9QX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9SRl9UVU5FX0NPTVBMRVRFX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9TRVJWSUNFX0NPTkZJR19TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfU0VSVklDRV9DT05GSUdfTk5fU0lHTkFMLAorICAgICAgICBNU0dfSURfTDFEX0hBUkRfSEFORE9GRl9TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfU09GVF9IQU5ET0ZGX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9SU0NIX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9SU0NIX0RJU0FCTEVfU0lHTkFMLAorICAgICAgICBNU0dfSURfTDFEX0hPX1BSRUFNQkxFX09GRl9TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfUE9XRVJfQ09OVFJPTF9QQVJBTVNfU0lHTkFMLAorICAgICAgICBNU0dfSURfTDFEX0ZTQ0hfU0lHTkFMLAorICAgICAgICBNU0dfSURfTDFEX0ZTQ0hfRElTQUJMRV9TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfTE9OR19DT0RFX0NIQU5HRV9TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfUkFESU9fQ09ORklHX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9GU0NIX0JVUlNUX0VORF9TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfU1BBR0VfU0VBUkNIRVJfVElNRU9VVF9TSUdOQUwsCisgICAgICAgIE1TR19JRF9MMURfU1VCQ0hBTl9HQUlOX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9MTURfUkxQX1NUT1BfUkVRX1NJR05BTCwKKyAgICAgICAgTVNHX0lEX0wxRF9UWENSUF9DUkNfUlBUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9MQ19TQ1JBTV9SRUFEX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9NUEFfQVNTSUdOX0lORF9NU0csICAvKmZyb20gZnJhbWUgdGljayovCisgICAgICAgIE1TR19JRF9MTURfTDFEX1JFVl9EQVRBX1JFUV9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFhfQlJQX0RPTkVfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0VTUl9QUk9URUNUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9BRkxUX0dSQU5UX0lORF9NU0csCisgICAgICAgIE1TR19JRF9MMURfQ0ZTX0dSQU5UX0lORF9NU0csICAgICAgCisgICAgICAgIE1TR19JRF9MMURfSUNTX1JGX0VOT1VHSF9JTkRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1NZTkNfQ0hOTF9BQ1RJT05fVElNRV9NU0csCisgICAgICAgIE1TR19JRF9MMURfU1lOQ19DSE5MX0dSQU5UX0lORF9NU0csCisgICAgICAgIE1TR19JRF9MMURfUlRCX0NITkxfSU5EX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9NTUFGQ19OQklGX1JYX09OX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9NTUFGQ19OQklGX1JYX09GRl9NU0csCisgICAgICAgIE1TR19JRF9MMURfTU1BRkNfTkJJRl9GT0VfVVBEQVRFX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9TQ0hfT0JGX1JEWV9JTkRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1NDSF9ET05FX1JEWV9JTkRfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1RTVF9WT0lDRV9HQVRFX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9GTF9CUlBfUVVBTElUWV9NU0csCisgICAgICAgIE1TR19JRF9MMURfVE1HX1RSS19ET05FX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SRVNZTkNfREVOSUVEX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SRVNZTkNfQUNDRVBUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9TUEFHRV9JTklUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9DTEtfQ0FMX0RPTkVfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1JBS0VfRERMX1JFUV9NU0csCisgICAgICAgIE1TR19JRF9MMURfU0xUX1RYQ1JQX0NSQ19QQVNTX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9SRl9PRkZfQ05GX01TRywKKyAgICAgICAgTVNHX0lEX0NTU19MMURfUlNTSV9TQ0FOX1JFUV9NU0csICAgICAgCisgICAgICAgIE1TR19JRF9DU1NfTDFEX1JTU0lfU0NBTl9BQk9SVF9SRVFfTVNHLAorICAgICAgICBNU0dfSURfTDFEX0lDU19SU1NJX1NDQU5fUkVQT1JUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UU1RfRlNDSF9DRkdfTVNHLAorICAgICAgICBNU0dfSURfTDFEX1RSQU5TTUlUX1NUQVRVU19PTl9NU0csCisgICAgICAgIE1TR19JRF9MMURfVFJBTlNNSVRfU1RBVFVTX09GRl9NU0csCisgICAgICAgIE1TR19JRF9MMURfRU1fU1RBVFVTX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfTDFEX0VNX01FQVNfSU5GT19NU0csCisgICAgICAgIE1TR19JRF9MMURfRU1fTUFJTl9SWEFHQ19JTkZPX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9FTV9ESVZfUlhBR0NfSU5GT19NU0csCisgICAgICAgIE1TR19JRF9MMURfRU1fVFhfUEFUSF9JTkZPX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9FTV9UWF9BR0NfSU5GT19NU0csCisgICAgICAgIE1TR19JRF9MMURfRU1fQUZDX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfTDFEX0VNX1JBS0VfSU5GT19NU0csCisgICAgICAgIE1TR19JRF9MMURfRU1fQ1JDX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfTDFEX0VNX01NQUZDX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfTDFEX0VNX1RNR19MT09QX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfTDFEX0dQU19GUkFNRV9TWU5DX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfRUxUX0wxRF9URVNUXzFYX0FGQ19DRkdfTVNHLAorICAgICAgICBNU0dfSURfRUxUX0wxRF9SUENfQ05UX0NNRF9NU0csCisgICAgICAgIE1TR19JRF9MMURfUlBDX1JFUE9SVF9NU0csCisjaWZkZWYgX19FTV9NQVhfVFhfUE9XRVJfU1VQUE9SVF9fCisgICAgICAgIE1TR19JRF9MMURfVkFMX01BWF9UWF9QV1JfU0VUX01TRywKKyNlbmRpZgorICAgICAgICBNU0dfSURfTDFEX1NMVF9QQUdJTkdfT1BUX01TRywKKyAgICAgICAgTVNHX0lEX0wxRF9UTUdfQ0hHX0lORk9fTVNHLAorICAgICAgICBNU0dfSURfTDFEX05VTV9DTURfTVNHX1NJRywKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9MMURfTURNX0NPREVfVEFJTCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBGaWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFlZHBzX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sMWVkcHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmM5YzRjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFlZHBzX21zZ2lkLmgKQEAgLTAsMCArMSwyOTIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBNb2RpZmljYXRpb24gTm90aWNlOgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgTWVkaWFUZWsgSW5jLiBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBsMWVkcHNfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVEFUQUtBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTFRFIER1bW15IFByb3RvY29sIFN0YWNrLCBTQVAgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisjaWZuZGVmIF9MMUVEUFNfU0FQX0gKKyNkZWZpbmUgX0wxRURQU19TQVBfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTDFFRFBTX0NPREVfQkVHSU4gKQorCitNU0dfSURfTDFFRFBTX05PQ0hfQ1NSXzAxID0gTVNHX0lEX0wxRURQU19DT0RFX0JFR0lOICwKK01TR19JRF9MMUVEUFNfTk9DSF9DU1JfMDIsCitNU0dfSURfTDFFRFBTX05PQ0hfQ1NSXzAzLAorTVNHX0lEX0wxRURQU19OT0NIX0NTUl8wNCwKK01TR19JRF9MMUVEUFNfTk9DSF9DU1JfMDUsCitNU0dfSURfTDFFRFBTX05PQ0hfQ1NSXzA2LAorTVNHX0lEX0wxRURQU19OT0NIX0NTUl8wNywKK01TR19JRF9MMUVEUFNfTk9DSF9DU1JfMDgsCitNU0dfSURfTDFFRFBTX05PQ0hfQ1NSXzA5LAorTVNHX0lEX0wxRURQU19OT0NIX0NTUl8xMCwKK01TR19JRF9MMUVEUFNfTk9DSF9DU1JfMTEsCitNU0dfSURfTDFFRFBTX05PQ0hfU0NTXzAxLAorTVNHX0lEX0wxRURQU19OT0NIX1JFU0VUXzAxLAorTVNHX0lEX0wxRURQU19JRExFX0NTUl8wMSwKK01TR19JRF9MMUVEUFNfSURMRV9DU1JfMDIsCitNU0dfSURfTDFFRFBTX0lETEVfQkNDSF8wMSwKK01TR19JRF9MMUVEUFNfSURMRV9CQ0NIXzAxXzUsCitNU0dfSURfTDFFRFBTX0lETEVfQkNDSF8wMV8xMCwKK01TR19JRF9MMUVEUFNfSURMRV9CQ0NIXzAyLAorTVNHX0lEX0wxRURQU19JRExFX0JDQ0hfMDMsCitNU0dfSURfTDFFRFBTX0lETEVfQkNDSF8wNCwKK01TR19JRF9MMUVEUFNfSURMRV9QQ0hfMDEsCitNU0dfSURfTDFFRFBTX0lETEVfUENIXzAyLAorTVNHX0lEX0wxRURQU19JRExFX1BDSF8wMywKK01TR19JRF9MMUVEUFNfSURMRV9QQ0hfVEREXzAxLAorTVNHX0lEX0wxRURQU19JRExFX1BDSF9URERfMDIsCitNU0dfSURfTDFFRFBTX0lETEVfUFdTXzAxLAorTVNHX0lEX0wxRURQU19JRExFX0NFTExfUkVTRUxfMDEsCitNU0dfSURfTDFFRFBTX0lETEVfQ0VMTF9SRVNFTF8wMiwKK01TR19JRF9MMUVEUFNfSURMRV9DRUxMX1JFU0VMXzAzLAorTVNHX0lEX0wxRURQU19JRExFX0NFTExfUkVTRUxfMDQsCitNU0dfSURfTDFFRFBTX0lETEVfUExNTl9MSVNUXzAxLAorTVNHX0lEX0wxRURQU19JRExFX1BMTU5fTElTVF8wMiwKK01TR19JRF9MMUVEUFNfSURMRV9PT1NfMDEsCitNU0dfSURfTDFFRFBTX0lETEVfT09TXzAyLAorTVNHX0lEX0wxRURQU19JRExFX09PU18wMywKK01TR19JRF9MMUVEUFNfSURMRV9PT1NfMDQsCitNU0dfSURfTDFFRFBTX0lETEVfU0NIX1JBXzAxLAorTVNHX0lEX0wxRURQU19JRExFX1NDSF9SQV8wMiwKK01TR19JRF9MMUVEUFNfSURMRV9TQ0hfUkFfMDJfNSwKK01TR19JRF9MMUVEUFNfSURMRV9TQ0hfUkFfMDJfMTAsCitNU0dfSURfTDFFRFBTX0lETEVfU0NIX1JBXzAzLAorTVNHX0lEX0wxRURQU19JRExFX1NDSF9SQV8wNCwKK01TR19JRF9MMUVEUFNfSURMRV9TQ0hfUkFfMDUsCitNU0dfSURfTDFFRFBTX0lETEVfU0NIX1JBXzA2LAorTVNHX0lEX0wxRURQU19JRExFX1NDSF9SQV8wNywKK01TR19JRF9MMUVEUFNfSURMRV9TQ0hfUkFfMDgsCitNU0dfSURfTDFFRFBTX0lETEVfU0NIX0NPTk5fRVNUXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfVFBDXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfVFBDXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfVFBDXzAzLAorTVNHX0lEX0wxRURQU19TQ0hfVFBDXzA0LAorTVNHX0lEX0wxRURQU19TQ0hfVFBDXzA1LAorTVNHX0lEX0wxRURQU19TQ0hfVFBDXzA2LAorTVNHX0lEX0wxRURQU19TQ0hfVFhfMDEsCitNU0dfSURfTDFFRFBTX1NDSF9UWF8wMiwKK01TR19JRF9MMUVEUFNfU0NIX1RYXzAzLAorTVNHX0lEX0wxRURQU19TQ0hfVFhfMDQsCitNU0dfSURfTDFFRFBTX1NDSF9UWF8wNSwKK01TR19JRF9MMUVEUFNfU0NIX1RYXzA2LAorTVNHX0lEX0wxRURQU19TQ0hfVFJYXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfVFJYXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfVFJYX0dBUCwKK01TR19JRF9MMUVEUFNfU0NIX1BDXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfUENRSV8wMSwKK01TR19JRF9MMUVEUFNfU0NIX0FDUUlfMDEsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl8wMSwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfMDMsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl8wNCwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSXzA1LAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfMDYsCitNU0dfSURfTDFFRFBTX1NDSF9TWU5DX0hBTkRPVkVSXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfSU5UUkFIT18wMSwKK01TR19JRF9MMUVEUFNfU0NIX1JFRElSRUNUSU9OXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfUkVESVJFQ1RJT05fMDIsCitNU0dfSURfTDFFRFBTX1NDSF9SRURJUkVDVElPTl8wMywKK01TR19JRF9MMUVEUFNfU0NIX1JFRElSRUNUSU9OXzA0LAorTVNHX0lEX0wxRURQU19TQ0hfQ1NHXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfQ1NHXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfU0lfTU9ESUZZXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfUFdTXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfUEFHX0dBUF8wMSwKK01TR19JRF9MMUVEUFNfU0NIX0NPTk5fUkVFU1RfMDEsCitNU0dfSURfTDFFRFBTX1NDSF9DT05OX1JFRVNUXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfQ09OTl9SRUVTVF8wMywKK01TR19JRF9MMUVEUFNfU0NIX0NPTk5fUkVFU1RfMDQsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDEsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDIsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDMsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDQsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDUsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDYsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDcsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fMDgsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fRFJYXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfUkxNX0RSWF8wMiwKK01TR19JRF9MMUVEUFNfU0NIX1JMTV9EUlhfMDMsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fRFJYXzA0LAorTVNHX0lEX0wxRURQU19TQ0hfRFJYX1RSQU5TXzAxLAorTVNHX0lEX0wxRURQU19CQ0NIX01FQVNVUkVNRU5UXzAxLAorTVNHX0lEX0wxRURQU19CQ0NIX01FQVNVUkVNRU5UXzAyLAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzAxLAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzAyLAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzAzLAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzA0LAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzA1LAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzA2LAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzA3LAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzA4LAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzA5LAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzEwLAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzExLAorTVNHX0lEX0wxRURQU19JRExFX01FQVNVUkVNRU5UXzEyLAorTVNHX0lEX0wxRURQU19JRExFX1NDSF9NRUFTVVJFTUVOVF8wMSwKK01TR19JRF9MMUVEUFNfSURMRV9TQ0hfTUVBU1VSRU1FTlRfMDIsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF8wMSwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfMDMsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF8wNCwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UXzA1LAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfMDYsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF8wNywKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UXzA4LAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfMDksCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF8xMCwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UXzExLAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfMTIsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8wMSwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfQ0FfMDMsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8wNCwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzA1LAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfQ0FfMDYsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8wNywKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzA4LAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfQ0FfMDksCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8xMCwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzExLAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfQ0FfMTIsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8xMywKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzE0LAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfQ0FfMTUsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8xNiwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzE3LAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU1VSRU1FTlRfQ0FfMTgsCitNU0dfSURfTDFFRFBTX1NDSF9NRUFTVVJFTUVOVF9DQV8xOSwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNVUkVNRU5UX0NBXzIwLAorTVNHX0lEX0wxRURQU19TQ0hfTUVBU19FSUNJQ18wMSwKK01TR19JRF9MMUVEUFNfU0NIX01FQVNfRUlDSUNfMDIsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fRUlDSUNfMDEsCitNU0dfSURfTDFFRFBTX1NDSF9STE1fRUlDSUNfMDIsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8wMSwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMDMsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8wNCwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzA1LAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMDYsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8wNywKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzA4LAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMDksCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8xMCwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzExLAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMTIsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8xMywKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzE0LAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMTUsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8xNiwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzE3LAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMTgsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8xOSwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzIwLAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMjEsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8yMiwKK01TR19JRF9MMUVEUFNfU0NIX0hBTkRPVkVSX0NBXzIzLAorTVNHX0lEX0wxRURQU19TQ0hfSEFORE9WRVJfQ0FfMjQsCitNU0dfSURfTDFFRFBTX1NDSF9IQU5ET1ZFUl9DQV8yNSwKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wMSwKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wMiwKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wMywKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wNCwKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wNSwKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wNiwKK01TR19JRF9MMUVEUFNfU0NIX1RSWF9DQV8wNywKK01TR19JRF9MMUVEUFNfU0NIX1RSWF8wMywKK01TR19JRF9MMUVEUFNfU0NIX1RSWF8wNCwKK01TR19JRF9MMUVEUFNfSURMRV9QV1NfMDIsCitNU0dfSURfTDFFRFBTX0lETEVfUFdTXzAzLAorTVNHX0lEX0wxRURQU19TQ0hfUFdTXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfUFdTXzAzLAorTVNHX0lEX0wxRURQU19TQ0hfVFhfU0lNVUxUXzAxLAorTVNHX0lEX0wxRURQU19TQ0hfVFhfU0lNVUxUXzAyLAorTVNHX0lEX0wxRURQU19TQ0hfVFhfUkFUWVBFMV8wMSwKK01TR19JRF9MMUVEUFNfU0NIX1RYX1JBVFlQRTFfMDIsCitNU0dfSURfTDFFRFBTX0lETEVfTUJNU19NQ0NIXzAxLAorTVNHX0lEX0wxRURQU19JRExFX01CTVNfTUNDSF8wMiwKK01TR19JRF9MMUVEUFNfU0NIX01CTVNfTUNDSF8wMSwKK01TR19JRF9MMUVEUFNfU0NIX01CTVNfTUNDSF8wMiwKK01TR19JRF9MMUVEUFNfM0RMMVVMX0JBU0lDXzAxLAorTVNHX0lEX0wxRURQU18zREwxVUxfRkREX0JBU0lDLAorTVNHX0lEX0wxRURQU18zREwxVUxfVEREX0JBU0lDLAorTVNHX0lEX0wxRURQU18yREwxVUxfQkFTSUNfMDEsCitNU0dfSURfTDFFRFBTXzJETDFVTF9CQVNJQ18wMiwKK01TR19JRF9MMUVEUFNfNERMMVVMX0ZERF9CQVNJQ18yMywKK01TR19JRF9MMUVEUFNfNERMMVVMX0ZERF9CQVNJQ18yNCwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18wNSwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18wNiwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18wNywKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18wOCwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18wOSwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18xMCwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18xMSwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18xMiwKK01TR19JRF9MMUVEUFNfMkRMMlVMX0ZERF9CQVNJQ18xMywKK01TR19JRF9MMUVEUFNfMkRMMlVMX1RERF9CQVNJQ18wNSwKK01TR19JRF9MMUVEUFNfMkRMMlVMX1RERF9CQVNJQ18wNiwKK01TR19JRF9MMUVEUFNfMkRMMlVMX1RERF9CQVNJQ18wOCwKK01TR19JRF9MMUVEUFNfMkRMMlVMX1RERF9CQVNJQ18wOSwKK01TR19JRF9MMUVEUFNfMkRMMlVMX1RERF9CQVNJQ18xMCwKK01TR19JRF9MMUVEUFNfMkRMMlVMX1RERF9CQVNJQ18xMSwKK01TR19JRF9MMUVEUFNfM0RMMlVMX0ZERF9CQVNJQ18xNCwKK01TR19JRF9MMUVEUFNfM0RMMlVMX0ZERF9CQVNJQ18xNSwKK01TR19JRF9MMUVEUFNfM0RMMlVMX1RERF9GRERfQkFTSUNfMTQsCitNU0dfSURfTDFFRFBTXzNETDJVTF9URERfRkREX0JBU0lDXzE1LAorCisvL2FkZCBNU0cgSUQgQmVmb3JlIHRoaXMgbGluZQorTVNHX0lEX0wxRURQU19DT01NT05fUEFSQU1TX1NFVFVQLAorTVNHX0lEX0wxRURQU19TVEFSVF9SVU5fTDFTX0NBU0UsCisKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9MMUVEUFNfQ09ERV9UQUlMKQorI2VuZGlmIC8qIF9MMUVEUFNfU0FQX0ggKi8KKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFoaXNyX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sMWhpc3JfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDE4ODFkCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFoaXNyX21zZ2lkLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogbDFoaXNyX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMYXllciAxIEhJU1IgYW5kIFByb3RvY29sIFN0YWNrIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgTDFISVNSX01TR0lEX0gKKyNkZWZpbmUgTDFISVNSX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfTDFISVNSX0NPREVfQkVHSU4pCitNU0dfSURfTDFUQVNLX1dBS0VVUCwKK01TR19JRF9DUllTVEFMX1RIRVJNQUxfQ0hBTkdFX05PVElGWSwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9MMUhJU1JfQ09ERV9UQUlMKQorCisjZW5kaWYgIC8vTDFISVNSX01TR0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2wxbWlzY19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDFtaXNjX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU5NjUwNAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2wxbWlzY19tc2dpZC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0wxTUlTQ19NU0dJRF9ICisjZGVmaW5lIF9MMU1TSUNfTVNHSURfSAorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MMU1JU0NfQ09ERV9CRUdJTiApCisKKyAgICAvL0w1SU8gPC0gVEFTQVIKKyAgICBNU0dfSURfTDVfVEFfUkFOR0VfQkVHSU4sIAorICAgICAgICBNU0dfSURfTDVJT19UQVNBUl9DT05UUk9MX1JFUSA9IE1TR19JRF9MNV9UQV9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1SU9fVEFTQVJfQ09OVFJPTF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1RBU0FSX0FMR09fU1RBVFVTX1FVRVJZX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fVEFTQVJfQUxHT19TVEFUVVNfUVVFUllfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19UQVNBUl9JTkZPX1FVRVJZX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fVEFTQVJfSU5GT19RVUVSWV9DTkYsCisgICAgTVNHX0lEX0w1X1RBX1JBTkdFX0VORCwKKworICAgIC8vVEFTQVIgPC0tPiBNTVJGCisgICAgTVNHX0lEX1RBU0FSX01NUkZfUkFOR0VfQkVHSU4sIAorICAgIAlNU0dfSURfTDFNTVJGX1RBX1NBUl9JTkZPX1FVRVJZX1JFUSwKKyAgICAJTVNHX0lEX0w1TU1SRl9UQV9TQVJfSU5GT19RVUVSWV9DTkYsCisgICAgCU1TR19JRF9MMU1NUkZfVEFfU0FSX0FWR19QT1dFUl9SRVBPUlRfUkVRLAorICAgIAlNU0dfSURfTDVNTVJGX1RBX1NBUl9EUFJfU1RBVFVTX0NPTlRST0wsCisgICAgICAgIC8vTVNHX0lEX1RBU0FSX01NUkYKKyAgICBNU0dfSURfVEFTQVJfTU1SRl9SQU5HRV9FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDFNSVNDX0NPREVfVEFJTCApCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sMXRzdF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDF0c3RfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2MxZmRhCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDF0c3RfbXNnaWQuaApAQCAtMCwwICsxLDc2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgTW9kaWZpY2F0aW9uIE5vdGljZToKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IE1lZGlhVGVrIEluYy4gYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBsMXRzdF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1UNjI5MQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIEdMMVRTVCB0YXNrIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBMMVRTVF9NU0dJRF9ICisjZGVmaW5lIEwxVFNUX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0dMMVRTVF9DT0RFX0JFR0lOICkKK01TR19JRF9HTDFUU1RfVE9fRlQgPSBNU0dfSURfR0wxVFNUX0NPREVfQkVHSU4sCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0dMMVRTVF9DT0RFX1RBSUwgKQorCisjZW5kaWYgLy9MMVRTVF9NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sNF9pcGNfbXNnaWRfc291cmNlLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sNF9pcGNfbXNnaWRfc291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTczY2IyMQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2w0X2lwY19tc2dpZF9zb3VyY2UuaApAQCAtMCwwICsxLDQ5IEBACisvL2JlbG93IGFyZSBBR1BTIG1lc3NhZ2VzIGZvciBJUEMKK01TR19JRF9NTUlfQUdQU19CRUdJTl9OVUxMLAorTVNHX0lEX01NSV9TU19NVExSX0JFR0lOX0lORF9OVUxMID0gTVNHX0lEX01NSV9BR1BTX0JFR0lOX05VTEwsCitNU0dfSURfTU1JX1NTX01UTFJfQkVHSU5fUkVTX1JFUV9OVUxMLAorTVNHX0lEX01NSV9TU19NVExSX0JFR0lOX1JFU19SU1BfTlVMTCwKK01TR19JRF9NTUlfU1NfQUVSUV9CRUdJTl9JTkRfTlVMTCwKK01TR19JRF9NTUlfU1NfQUVSUV9CRUdJTl9SRVNfUkVRX05VTEwsCitNU0dfSURfTU1JX1NTX0FFUlFfQkVHSU5fUkVTX1JTUF9OVUxMLAorTVNHX0lEX01NSV9TU19BRVJQX0JFR0lOX1JFUV9OVUxMLAorTVNHX0lEX01NSV9TU19BRVJQX0JFR0lOX1JTUF9OVUxMLAorTVNHX0lEX01NSV9TU19BRVJQX0VORF9SRVFfTlVMTCwKK01TR19JRF9NTUlfU1NfQUVSUF9FTkRfUlNQX05VTEwsCitNU0dfSURfTU1JX1NTX0FFQ0xfQkVHSU5fSU5EX05VTEwsCitNU0dfSURfTU1JX1NTX0FFQ0xfQkVHSU5fUkVTX1JFUV9OVUxMLAorTVNHX0lEX01NSV9TU19BRUNMX0JFR0lOX1JFU19SU1BfTlVMTCwKK01TR19JRF9NTUlfU1NfTU9MUl9CRUdJTl9SRVFfTlVMTCwKK01TR19JRF9NTUlfU1NfTU9MUl9CRUdJTl9SU1BfTlVMTCwKK01TR19JRF9NTUlfU1NfTU9MUl9FTkRfUkVRX05VTEwsCitNU0dfSURfTU1JX1NTX01PTFJfRU5EX1JTUF9OVUxMLAorTVNHX0lEX01NSV9BR1BTX0VOQUJMRV9ESVNBQkxFX1JFUV9OVUxMLAorTVNHX0lEX01NSV9BR1BTX0VOQUJMRV9ESVNBQkxFX1JTUF9OVUxMLAorTVNHX0lEX01NSV9BR1BTX0tFWV9VUERBVEVfUkVRX05VTEwsCitNU0dfSURfTU1JX0FHUFNfS0VZX1VQREFURV9SU1BfTlVMTCwKK01TR19JRF9NTUlfQUdQU19ORVdfS0VZX05FRURFRF9JTkRfTlVMTCwKK01TR19JRF9NTUlfQUdQU19SRVNFVF9QT1NJVElPTklOR19JTkRfTlVMTCwKK01TR19JRF9NTUlfQUdQU19DUF9TVEFSVF9JTkRfTlVMTCwKK01TR19JRF9NTUlfQUdQU19DUF9FTkRfSU5EX05VTEwsCitNU0dfSURfTU1JX0FHUFNfQ1BfQUJPUlRfUkVRX05VTEwsCitNU0dfSURfTU1JX0FHUFNfQ1BfQUJPUlRfUlNQX05VTEwsCitNU0dfSURfTU1JX0FHUFNfRU5EX05VTEwgPSBNU0dfSURfTU1JX0FHUFNfQ1BfQUJPUlRfUlNQX05VTEwsCitNU0dfSURfTU1JX05CUl9CRUdJTl9OVUxMLAorTVNHX0lEX0w0Q19OQlJfQ0VMTF9JTkZPX1JFR19SRVFfTlVMTCA9IE1TR19JRF9NTUlfTkJSX0JFR0lOX05VTEwsCitNU0dfSURfTDRDX05CUl9DRUxMX0lORk9fUkVHX0NORl9OVUxMLAorTVNHX0lEX0w0Q19OQlJfQ0VMTF9JTkZPX0RFUkVHX1JFUV9OVUxMLAorTVNHX0lEX0w0Q19OQlJfQ0VMTF9JTkZPX0RFUkVHX0NORl9OVUxMLAorTVNHX0lEX0w0Q19OQlJfQ0VMTF9JTkZPX0lORF9OVUxMLAorTVNHX0lEX01NSV9OQlJfRU5EX05VTEwgPSBNU0dfSURfTDRDX05CUl9DRUxMX0lORk9fSU5EX05VTEwsCisvL2JlbG93IGFyZSBmb3IgQUdQUyBhdXRvIHRlc3QKK01TR19JRF9BR1BTX0FVVE9fVEVTVF9JTkRfTlVMTCwKK01TR19JRF9BR1BTX0NQX1VQX1NUQVRVU19JTkRfTlVMTCwKK01TR19JRF9BR1BTX01PTFJfU1RBUlRfSU5EX05VTEwsCitNU0dfSURfQUdQU19NT0xSX1NUT1BfSU5EX05VTEwsCitNU0dfSURfQUdQU19NVExSX1JFU1BPTlNFX0lORF9OVUxMLAorTVNHX0lEX0RIQ1BfTUJDSV9JUF9DT05GSUdfUkVRLAorTVNHX0lEX0RIQ1BfTUJDSV9JUF9DT05GSUdfUlNQLAorTVNHX0lEX0RIQ1BfTUJDSV9JUF9DT05GSUdfSU5ELAorLypiZWxvdyBpcyBmb3IgR1BTIGRlc2Vuc2UqLworTVNHX0lEX0w0Q19SRl9JTkZPX0lORCwKK01TR19JRF9MNENfUkZfSU5GT19SRVEsCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sNF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDRfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDlhM2MzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDRfbXNnaWQuaApAQCAtMCwwICsxLDE3NzMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBsNC5zYXAKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTUFVSQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIGw0IHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKgorKiAgVGhpcyBwcm9kdWN0IGhhcyBiZWVuIGRldmVsb3BlZCB1c2luZyBhIHByb3RvY29sIHN0YWNrCisqICBkZXZlbG9wZWQgYnkgU2Fza2VuIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIExpbWl0ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTDRfTVNHSURfSAorI2RlZmluZSBfTDRfTVNHSURfSAorCisKKy8qLS0tLS0tLS0tLS0tLS0tTDRfTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIC8qLS0tLS0tLS0tLS0tLS0tIEw0Q19JTlRFUk5BTF9DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKiBmb3IgbXNnIGZyb20gTDQgdGFzayB0byBMNEMgKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MNENfSU5URVJOQUxfQ09ERV9CRUdJTiApCisgICAgTVNHX1RBR19MNENfRklSU1RfQ05GX01TRyA9IE1TR19JRF9MNENfSU5URVJOQUxfQ09ERV9CRUdJTiwKKyAgICAjZGVmaW5lIEw0Q19SRVEoTVNHLCBIRExSKQorICAgICNkZWZpbmUgTDRDX0NORihNU0csIEhETFIpICBNU0csCisgICAgI2RlZmluZSBMNENfSU5EKE1TRywgSERMUikKKyAgICAgICAgI2luY2x1ZGUgImw0Y19tc2dfaGRscl9kZWZzLmgiCisgICAgI3VuZGVmIEw0Q19SRVEKKyAgICAjdW5kZWYgTDRDX0NORgorICAgICN1bmRlZiBMNENfSU5ECisgICAgTVNHX1RBR19MNENfTEFTVF9DTkZfTVNHLAorCisgICAgTVNHX1RBR19MNENfRklSU1RfSU5EX01TRywKKyAgICAjZGVmaW5lIEw0Q19SRVEoTVNHLCBIRExSKQorICAgICNkZWZpbmUgTDRDX0NORihNU0csIEhETFIpCisgICAgI2RlZmluZSBMNENfSU5EKE1TRywgSERMUikgIE1TRywKKyAgICAgICAgI2luY2x1ZGUgImw0Y19tc2dfaGRscl9kZWZzLmgiCisgICAgI3VuZGVmIEw0Q19SRVEKKyAgICAjdW5kZWYgTDRDX0NORgorICAgICN1bmRlZiBMNENfSU5ECisgICAgTVNHX1RBR19MNENfTEFTVF9JTkRfTVNHLAorCisgICAgTVNHX1RBR19MNENfRklSU1RfUkVRX01TRywKKyAgICAjZGVmaW5lIEw0Q19SRVEoTVNHLCBIRExSKSAgTVNHLAorICAgICNkZWZpbmUgTDRDX0NORihNU0csIEhETFIpCisgICAgI2RlZmluZSBMNENfSU5EKE1TRywgSERMUikKKyAgICAgICAgI2luY2x1ZGUgImw0Y19tc2dfaGRscl9kZWZzLmgiCisgICAgI3VuZGVmIEw0Q19SRVEKKyAgICAjdW5kZWYgTDRDX0NORgorICAgICN1bmRlZiBMNENfSU5ECisgICAgTVNHX1RBR19MNENfTEFTVF9SRVFfTVNHLAorCisgICAgTVNHX0lEX0w0Q19DT0RFX0VORCA9IE1TR19UQUdfTDRDX0xBU1RfUkVRX01TRywKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDRDX0lOVEVSTkFMX0NPREVfVEFJTCApCisgICAgLyotLS0tLS0tLS0tLS0tLS0gTDRDX0lOVEVSTkFMX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLyotLS0tLS0tLS0tLS0tLS0gTDRDX0VYVEVSTkFMX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIC8qIGZvciBtc2cgZnJvbSBub24tTDQgdGFzayB0byBMNEMgKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MNENfRVhURVJOQUxfQ09ERV9CRUdJTiApCisKKyAgICAvLyBJTUMgLT4gTDRDCisgICAgTVNHX0lEX0w0Q19JTUNfTVNHX0JFR0lOID0gTVNHX0lEX0w0Q19FWFRFUk5BTF9DT0RFX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRDX0lNQ19DU19TRVJWSUNFX05PVElGSUNBVElPTl9SU1AsCisgICAgTVNHX0lEX0w0Q19JTUNfTVNHX0VORCA9IE1TR19JRF9MNENfSU1DX01TR19CRUdJTiArIDUwLAorCisgICAgLy8gVkRNIC0+IEw0QworICAgIE1TR19JRF9WRE1fTDRDX0ZETl9FQ0NfQ0hFQ0tfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX01TR19CRUdJTiA9IE1TR19JRF9WRE1fTDRDX0ZETl9FQ0NfQ0hFQ0tfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX01PX0NBTExfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0VNRVJHX0NBTExfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX1NUS19DQUxMX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19NVF9DQUxMX1BSRVNFTlRfUlNQLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX01UX0NBTExfQUNDRVBUX1JFUSwgLy8rNQorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0hBTkdVUF9BTExfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0ZPUkNFX0hBTkdVUF9SRVEsCisgICAgTVNHX0lEX1ZETV9MNENfQ1NfQ0NfQ0FMTF9SRUxBVEVEX1NTX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19FWFRfRVJST1JfUkVQT1JUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19TRU5EX0RJR0lUX1JFUSwgLy8rMTAKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19TVEFSVF9TRU5EX0RJR0lUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19TVE9QX1NFTkRfRElHSVRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0xJU1RfQ1VSUkVOVF9DQUxMU19SRVEsCisgICAgTVNHX0lEX1ZETV9MNENfQ1NfQ0NfRU1FUkdfU0VSVl9DQVRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0xJU1RfQ1VSUkVOVF9DQUxMU19FWFRfUkVRLCAvLysxNQorICAgIE1TR19JRF9WRE1fTDRDX0dFVF9TU0FDX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19TUlZDQ19DT05URVhUX1RSQU5TRkVSX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19JTVNfQ0FMTF9TQ01fUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0lNU19DQUxMX1BST0dSRVNTX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19HTVNTX1NFVF9IVk9MVEVfTU9ERV9SRVEsIC8vKzIwCisgICAgTVNHX0lEX1ZETV9MNENfRU1DU19SRVEsCisgICAgTVNHX0lEX1ZETV9MNENfVUFDX1BBUkFNX0NIRUNLX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Q19VQUNfUEFSQU1fQ0hFQ0tfQUJPUlRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX05SX0lNU19DQUxMX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX1ZETV9MNENfRVJSQ19DRUxMX1JFSl9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfRU1FUkdFTkNZX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9WRE1fTDRDX0VNRVJHRU5DWV9TRVJWSUNFX0ZBTExCQUNLX1JFUSwgLy8rMjUKKyAgICBNU0dfSURfVkRNX0w0Q19JTVNfQ0NfQ0FMTF9QUk9HUkVTU19JTkQsIC8vcmVsYXkgSU1TIGNhbGwgK0VDUEkgcHJvZ3Jlc3MgdG8gTDRDCisgICAgTVNHX0lEX1ZETV9MNENfRUNBTExfVEVTVF9DQUxMX0FUVEFDSF9SRVEsCisgICAgTVNHX0lEX1ZETV9MNENfRUNBTExfQUJPUlRfVEVTVF9DQUxMX0FUVEFDSF9SRVEsCisjaWYgZGVmaW5lZChfX0VDQUxMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX05HX0VDQUxMX1NVUFBPUlRfXykKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19DRUNBTExfUkVRLAorI2VuZGlmCisgICAgTVNHX0lEX1ZETV9MNENfTVNHX0VORCA9IE1TR19JRF9WRE1fTDRDX01TR19CRUdJTiArIDUwLAorCisgICAgLy8gQVRQIC0+IEw0QworICAgIE1TR19JRF9BVFBfTDRDX0NTRkJfUEFHRV9SRVEsCisgICAgTVNHX0lEX0FUUF9MNENfQ0FMTF9IQU5ET1ZFUl9JTkQsCisKKyAgICAvLyBTRE0gLT4gTDRDCisgICAgTVNHX0lEX1NETV9MNENfSU1TX05PUk1BTF9TTVNfVUFDX1JFUSwKKyAgICBNU0dfSURfU0RNX0w0Q19NU0dfQkVHSU4gPSBNU0dfSURfU0RNX0w0Q19JTVNfTk9STUFMX1NNU19VQUNfUkVRLAorICAgIE1TR19JRF9TRE1fTDRDX0lNU19TVEtfU01TX1VBQ19SRVEsCisgICAgTVNHX0lEX1NETV9MNENfSU1TX0NNU1NfU01TX1VBQ19SRVEsCisgICAgTVNHX0lEX1NETV9MNENfSU1TX0MyS19TTVNfVUFDX1JFUSwKKyAgICBNU0dfSURfU0RNX0w0Q19JTVNfVVRLX1NNU19VQUNfUkVRLAorICAgIE1TR19JRF9TRE1fTDRDX05SX0lNU19TTVNfU1RBVFVTX1JFUSwgLy8rNQorICAgIE1TR19JRF9TRE1fTDRDX0VNRVJHRU5DWV9TRVJWSUNFX1JFUSwKKyAgICBNU0dfSURfU0RNX0w0Q19FTUVSR0VOQ1lfU0VSVklDRV9GQUxMQkFDS19SRVEsCisgICAgTVNHX0lEX1NETV9MNENfRU1UU19SRVEsCisgICAgTVNHX0lEX1NETV9MNENfTVNHX0VORCA9IE1TR19JRF9TRE1fTDRDX01TR19CRUdJTiArIDUwLAorCisgICAgLy8gU1NEUyAtPiBMNEMKKyAgICBNU0dfSURfU1NEU19MNENfRkROX0NIRUNLX1JFUSwKKyAgICBNU0dfSURfU1NEU19MNENfTVNHX0JFR0lOID0gTVNHX0lEX1NTRFNfTDRDX0ZETl9DSEVDS19SRVEsCisgICAgTVNHX0lEX1NTRFNfTDRDX1NUS19JTVNfVVNTRF9DT05GSUdfUkVRLAorICAgIE1TR19JRF9TU0RTX0w0Q19TVEtfSU1TX1VTU0RfUkVTLAorICAgIE1TR19JRF9TU0RTX0w0Q19TVEtfQ1NfVVNTRF9SRVEsCisgICAgTVNHX0lEX1NTRFNfTDRDX1NUS1NTX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX1NTRFNfTDRDX1NUS1NTX1JFUywKKyAgICBNU0dfSURfU1NEU19MNENfU1RLU1NfQ1NfUkVRLAorICAgIE1TR19JRF9TU0RTX0w0Q19NU0dfRU5EID0gTVNHX0lEX1NTRFNfTDRDX01TR19CRUdJTiArIDMwLAorCisgICAgLy8gRERNIC0+IEw0QworICAgIE1TR19JRF9ERE1fTDRDX01TR19CRUdJTiwKKyAgICBNU0dfSURfRERNX0w0Q19VRV9VU0FHRV9TRVRUSU5HX1JFUSA9IE1TR19JRF9ERE1fTDRDX01TR19CRUdJTiwKKyAgICBNU0dfSURfRERNX0w0Q19VRV9VU0FHRV9TRVRUSU5HX0NORiwKKyAgICBNU0dfSURfRERNX0w0Q19NU0dfRU5ELAorCisjaWZkZWYgX19MNV9TVVBQT1JUX18KKyAgICAvL0w1IC0+IEw0QworICAgIE1TR19JRF9MNV9MNENfQ0VMTF9MSVNUX1JFUSwKKyAgICBNU0dfSURfTDVfTDRDX01TR19CRUdJTiA9IE1TR19JRF9MNV9MNENfQ0VMTF9MSVNUX1JFUSwKKyAgICBNU0dfSURfTDVfTDRDX0NFTExfTElTVF9DTkYsCisgICAgTVNHX0lEX0w1X0w0Q19TRVRfTldfQkxBQ0tfTElTVF9SRVEsCisgICAgTVNHX0lEX0w1X0w0Q19TRVRfTldfQkxBQ0tfTElTVF9DTkYsCisgICAgTVNHX0lEX0w1X0w0Q19HRVRfTldfQkxBQ0tfTElTVF9SRVEsCisgICAgTVNHX0lEX0w1X0w0Q19HRVRfTldfQkxBQ0tfTElTVF9DTkYsCisgICAgTVNHX0lEX0w1X0w0Q19OV19CTEFDS19MSVNUX1NUQVRFX0lORCwKKyAgICBNU0dfSURfTDVfTDRDX0w1VVJGX1JBRElPX09OX0lORCwKKyAgICBNU0dfSURfTDVfTDRDX0NFTExfUFdSX1NSWExFVl9JTkQsCisgICAgTVNHX0lEX0w1X0w0Q19TRVRfQUxMT1dFRF9NQ0NfTElTVF9SRVEsCisgICAgTVNHX0lEX0w1X0w0Q19TRVRfQUxMT1dFRF9NQ0NfTElTVF9DTkYsCisgICAgTVNHX0lEX0w1X0w0Q19HRVRfUkZfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDVfTDRDX0dFVF9SRl9TVEFUVVNfQ05GLAorICAgIE1TR19JRF9MNV9MNENfR0VUX05TU0FJX1JFUSwKKyAgICBNU0dfSURfTDVfTDRDX0dFVF9OU1NBSV9DTkYsCisgICAgTVNHX0lEX0w1X0w0Q19TRVRfTlNTQUlfUkVRLAorICAgIE1TR19JRF9MNV9MNENfU0VUX05TU0FJX0NORiwKKyAgICBNU0dfSURfTDVfTDRDX1NFVF9QUkVGX05TU0FJX1JFUSwKKyAgICBNU0dfSURfTDVfTDRDX1NFVF9QUkVGX05TU0FJX0NORiwKKyAgICBNU0dfSURfTDVfTDRDX1ZHTU1fTldfUEFSQU1TX0lORCwKKyAgICBNU0dfSURfTDVfTDRDX01TR19FTkQsCisjZW5kaWYKKyAgICAvLyBETUYgLT4gTDRDCisgICAgTVNHX0lEX01UX0RNRl9MNENfQ1VTVE9NX0NPTkZJR19SRVEsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDRDX0VYVEVSTkFMX0NPREVfVEFJTCApCisgICAgLyotLS0tLS0tLS0tLS0tLS0gTDRDX0VYVEVSTkFMX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLUw0QVBTX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTDRBUFNfQ09ERV9CRUdJTiApCisKKyAgICBNU0dfSURfRERNX0w0QVBTX01TR19CRUdJTiwKKyAgICAgICAgLyogRERNIC0+IEw0QVBTICovCisgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfTVNHX0ZST01fRERNX0JFR0lOLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR0RDT05UX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dEU0NPTlRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR1RGVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHUVJFUV9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHUU1JTl9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHRVFSRVFfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR0VRTUlOX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dFUU5FR19SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHQUNUX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dDTU9EX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dQQUREUl9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHQVVUT19SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHQU5TX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dFUkVQX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dDT05UUkRQX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dTQ09OVFJEUF9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHVEZUUkRQX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dFUU9TX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dFUU9TUkRQX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dERUxfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR0FVVEhfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FQ05DRkdfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR0RDT05UX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfVlpXQVBORVRNUl9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX1ZaV0FQTkVfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR1BBVV9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHQUNUX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dTREFUQV9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0FDVFRFU1RfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19QU0JFQVJFUl9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHRkJfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR0RFTFBGX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRUdMTktQRl9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHUENPUkRQX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRUdQQ09fUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR0RBVEFfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR0xEX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRURBTExPV19SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0xURV9BVFRBQ0hfUEROX0RFRklORV9ORUVERURfUlNQLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19TRVRfRUlNU1JPQU1fQ09ORklHX1ZBTFVFX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ01EX05PVF9ZRVRfU1VQUE9SVF9SRVEsIC8qIE9ubHkgZm9yIFVUICovCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VBUE5TWU5DX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRVZaV0FQRkNJQV9SRVEsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHR1JOVFJTUFRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR1BDQVBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DNUdRT1NfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DNUdRT1NSRFBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19JQV9BUE5fQ0hBTkdFX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfU0VUX0RFRkFVTFRfU0lNX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0xBRE5fUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19OT1RJRllfUEROX1RZUEVfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19VUERBVEVfQ0lEX01BUFBJTkdfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FU0NPTlRJTkRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19OV19BUFBMSUVEX0NBQ0hFX0RBVEFfTk9USUZZLAorICAgICAgICBNU0dfSURfRERNX0w0QVBTX01TR19GUk9NX0RETV9FTkQsCisKKyAgICAgICAgLyogRERNIDwtIEw0QVBTICovCisgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfTVNHX0ZST01fTDRBUFNfQkVHSU4sCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NNRF9DTkYsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHRVZfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR0RDT05UX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dEU0NPTlRfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR1RGVF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHUVJFUV9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHUU1JTl9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHRVFSRVFfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR0VRTUlOX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dFUU5FR19JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHQUNUX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dQQUREUl9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHQVVUT19JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHRVJFUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHQ09OVFJEUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHU0NPTlRSRFBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DR1RGVFJEUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHRVFPU19JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHRVFPU1JEUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NHREVMX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dBVVRIX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfUFNCRUFSRVJfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR0ZCX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRUdERUxQRl9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHTE5LUEZfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR1BDT1JEUF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHUENPX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQ0dEQVRBX0NORiwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRUdMRF9DTkYsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHRVZfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19MVEVfQVRUQUNIX05FRURFRF9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0xURV9BVFRBQ0hfUEROX0RFRklORV9ORUVERURfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19MVEVfQVRUQUNIX1BETl9BQ1RJVkFURV9TVUNDRVNTX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfTFRFX0FUVEFDSF9QRE5fQUNUSVZBVEVfRkFJTFVSRV9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX1ZaV0FQTkVfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19WWldBUE5FVE1SX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfUEROX01PRElGWV9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VBUE5TWU5DX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfRVZaV0FQRkNJQV9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VHR1JOVFJTUFRfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19FR1BDQVBfVEVTVF9NT0RFX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfQkFDS09GRl9USU1FUl9TVEFUVVNfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DNUdRT1NfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DNUdRT1NSRFBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0RETV9MNEFQU19DTEFETl9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0NMQUROVV9JTkQsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX05PVElGWV9QRE5fVFlQRV9DTkYsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX1VQREFURV9DSURfTUFQUElOR19DTkYsCisgICAgICAgICAgICBNU0dfSURfRERNX0w0QVBTX0VTQ09OVElORF9JTkQsCisgICAgICAgIE1TR19JRF9ERE1fTDRBUFNfTVNHX0ZST01fTDRBUFNfRU5ELAorCisgICAgICAgIC8qIEw0QVBTIDwtIFRDTSAqLworICAgICAgICBNU0dfSURfTDRBUFNfVENNX01TR19GUk9NX1RDTV9CRUdJTiwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19UQ01fVVBEQVRFX0NJRF9NQVBQSU5HX0NORiwKKyAgICAgICAgTVNHX0lEX0w0QVBTX1RDTV9NU0dfRlJPTV9UQ01fRU5ELAorICAgIE1TR19JRF9ERE1fTDRBUFNfTVNHX0VORCwKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS1MNEFQU19DT0RFX1RBSUwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDRBUFNfQ09ERV9UQUlMICkKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS1MNEJQRE5fQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MNEJQRE5fQ09ERV9CRUdJTiApCisKKyAgICBNU0dfSURfTDRBUFNfTDRCUEROX01TR19CRUdJTiwKKyAgICAgICAgLyogTDRBUFMgLT4gTDRCUEROICovCisgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTVNHX0ZST01fTDRBUFNfQkVHSU4sCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHRENPTlRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0RTQ09OVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHVEZUX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dRUkVRX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dRTUlOX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dFUVJFUV9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHRVFNSU5fUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VRTkVHX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dBQ1RfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0NNT0RfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR1BBRERSX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dBVVRPX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dBTlNfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VSRVBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0NPTlRSRFBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR1NDT05UUkRQX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dURlRSRFBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VRT1NfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VRT1NSRFBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0RFTF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHQVVUSF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VDTkNGR19SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHRENPTlRfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9WWldBUE5FVE1SX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fVlpXQVBORV9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHUEFVX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdBQ1RfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR1NEQVRBX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQUNUVEVTVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX1BTQkVBUkVSX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdGQl9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHREVMUEZfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FR0xOS1BGX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdQQ09SRFBfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FR1BDT19SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHREFUQV9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHTERfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FREFMTE9XX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTFRFX0FUVEFDSF9QRE5fREVGSU5FX05FRURFRF9SU1AsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX1NFVF9FSU1TUk9BTV9DT05GSUdfVkFMVUVfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DTURfTk9UX1lFVF9TVVBQT1JUX1JFUSwgLyogT25seSBmb3IgVVQgKi8KKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUFQTlNZTkNfUkVRLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FVlpXQVBGQ0lBX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdHUk5UUlNQVF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHUENBUF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0M1R1FPU19SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0M1R1FPU1JEUF9SRVEsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX1NFVF9ERUZBVUxUX1NJTV9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NMQUROX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTk9USUZZX1BETl9UWVBFX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRVNDT05USU5EX1JFUSwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTldfQVBQTElFRF9DQUNIRV9EQVRBX05PVElGWSwKKyAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9NU0dfRlJPTV9MNEFQU19FTkQsCisKKyAgICAgICAgLyogTDRCUEROIC0+IEw0QVBTICovCisgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTVNHX0ZST01fTDRCUEROX0JFR0lOLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DTURfQ05GLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VWX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dEQ09OVF9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHRFNDT05UX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dURlRfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR1FSRVFfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR1FNSU5fSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VRUkVRX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dFUU1JTl9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHRVFORUdfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0FDVF9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHUEFERFJfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0FVVE9fSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VSRVBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0NPTlRSRFBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR1NDT05UUkRQX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0dURlRSRFBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VRT1NfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0VRT1NSRFBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DR0RFTF9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHQVVUSF9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX1BTQkVBUkVSX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdGQl9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHREVMUEZfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FR0xOS1BGX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdQQ09SRFBfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FR1BDT19JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0NHREFUQV9DTkYsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VHTERfQ05GLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FR0VWX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTFRFX0FUVEFDSF9ORUVERURfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9MVEVfQVRUQUNIX1BETl9ERUZJTkVfTkVFREVEX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fTFRFX0FUVEFDSF9QRE5fQUNUSVZBVEVfU1VDQ0VTU19JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0xURV9BVFRBQ0hfUEROX0FDVElWQVRFX0ZBSUxVUkVfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9WWldBUE5FX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fVlpXQVBORVRNUl9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX1BETl9NT0RJRllfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FQVBOU1lOQ19JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0VWWldBUEZDSUFfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FR0dSTlRSU1BUX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fRUdQQ0FQX1RFU1RfTU9ERV9JTkQsCisgICAgICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX0JBQ0tPRkZfVElNRVJfU1RBVFVTX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQzVHUU9TX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQzVHUU9TUkRQX0lORCwKKyAgICAgICAgICAgIE1TR19JRF9MNEFQU19MNEJQRE5fQ0xBRE5fSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9DTEFETlVfSU5ELAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9OT1RJRllfUEROX1RZUEVfQ05GLAorICAgICAgICAgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9FU0NPTlRJTkRfSU5ELAorICAgICAgICBNU0dfSURfTDRBUFNfTDRCUEROX01TR19GUk9NX0w0QlBETl9FTkQsCisgICAgTVNHX0lEX0w0QVBTX0w0QlBETl9NU0dfRU5ELAorCisgICAgTVNHX0lEX0RETV9MNEJOV19NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9ERE1fTDRCTldfQVRUQUNIRURfUkFUX0lORCwKKyAgICAgICAgTVNHX0lEX0RETV9MNEJOV19SRVNUQVJUX0NMRUFSX0NPREVfMzNfUFJPQ19JTkQsCisgICAgICAgIE1TR19JRF9ERE1fTDRCTldfUFNfVFlQRV9DT05GSUdfUkVRLAorICAgICAgICBNU0dfSURfRERNX0w0Qk5XX1BTX1RZUEVfQ09ORklHX0NORiwKKyAgICAgICAgTVNHX0lEX0RETV9MNEJOV19QU19SRUFUVEFDSF9DT05GSUdfUkVRLAorICAgICAgICBNU0dfSURfRERNX0w0Qk5XX0lNU19QRE5fUkVKX0lORCwKKyAgICAgICAgTVNHX0lEX0RETV9MNEJOV19QU19FVkVOVF9SRVBPUlRfSU5ELAorICAgICAgICBNU0dfSURfRERNX0w0Qk5XX1QzNDAyX1NUT1BfSU5ELAorICAgIE1TR19JRF9ERE1fTDRCTldfTVNHX0VORCwKKworICAgIE1TR19JRF9OM0FOU19MNEJOV19NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9OM0FOU19MNEJOV19BVFRBQ0hFRF9SQVRfSU5ELAorICAgIE1TR19JRF9OM0FOU19MNEJOV19NU0dfRU5ELAorCisgICAgTVNHX0lEX1dPX0w0Qk5XX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX1dPX0w0Qk5XX0FUVEFDSEVEX1JBVF9JTkQsCisgICAgTVNHX0lEX1dPX0w0Qk5XX01TR19FTkQsCisKKyAgICBNU0dfSURfSU1TTV9MNEJOV19NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9JTVNNX0w0Qk5XX0FUVEFDSEVEX1JBVF9JTkQsCisgICAgTVNHX0lEX0lNU01fTDRCTldfTVNHX0VORCwKKworICAgIE1TR19JRF9JV0xBTl9MNEJOV19NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9JV0xBTl9MNEJOV19BVFRBQ0hFRF9SQVRfSU5ELAorICAgICAgICBNU0dfSURfSVdMQU5fTDRCTldfRk9SQ0VfQkFSX0lORCwKKyAgICBNU0dfSURfSVdMQU5fTDRCTldfTVNHX0VORCwKKworICAgIE1TR19JRF9MNEJQRE5fTDRCX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNEJOV19BVFRBQ0hFRF9SQVRfSU5ELAorICAgIE1TR19JRF9MNEJQRE5fTDRCX01TR19FTkQsCisKKyAgICBNU0dfSURfVkRNX0w0Ql9NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9WRE1fTDRCTldfQVRUQUNIRURfUkFUX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Ql9NU0dfRU5ELAorCisgICAgTVNHX0lEX1NTRFNfTDRCX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX1NTRFNfTDRCTldfQVRUQUNIRURfUkFUX0lORCwKKyAgICBNU0dfSURfU1NEU19MNEJfTVNHX0VORCwKKworICAgIE1TR19JRF9MNEJOV19MNENfTVNHX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRCTldfTDRDX0FDVElWRV9SQVRfSU5ELAorICAgICAgICBNU0dfSURfTDRCTldfTDRDX1NVU1BFTkRfRUdSRUdfVVBEQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0w0Qk5XX0w0Q19TVVNQRU5EX0VHUkVHX1VQREFURV9DTkYsCisgICAgICAgIE1TR19JRF9MNEJOV19MNENfUkVTVEFSVF9DTEVBUl9DT0RFXzMzX1BST0NfSU5ELAorICAgICAgICBNU0dfSURfTDRCTldfTDRDX1NJTV9MT0NLX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0Qk5XX0w0Q19TSU1fTE9DS19DTkYsCisgICAgICAgIE1TR19JRF9MNEJOV19MNENfUFNfVFlQRV9DT05GSUdfQ05GLAorICAgICAgICBNU0dfSURfTDRCTldfTDRDX0lMTEVHQUxfTUVfSU5ELAorICAgICAgICBNU0dfSURfTDRCTldfTDRDX1JFR19TVEFURV9JTkQsCisgICAgICAgIE1TR19JRF9MNEJOV19MNENfSU1TX1BETl9SRUpfSU5ELAorICAgICAgICBNU0dfSURfTDRCTldfTDRDX1BTX0VWRU5UX1JFUE9SVF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJOV19MNENfVDM0MDJfU1RPUF9JTkQsCisgICAgTVNHX0lEX0w0Qk5XX0w0Q19NU0dfRU5ELAorCisgICAgTVNHX0lEX0w0QlBXUl9MNENfTVNHX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRCUFdSX0w0Q19PUDAxX0xPQ0tfQ05GLAorICAgICAgICBNU0dfSURfTDRCUFdSX0w0Q19TRVJWSUNFX01PREVfQ05GLAorICAgICAgICBNU0dfSURfTDRCUFdSX0w0Q19TRVJWSUNFX01PREVfSU5ELAorICAgICAgICBNU0dfSURfTDRCUFdSX0w0Q19SQVRfQ0hBTkdFX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBXUl9MNENfQVVUT19TVEFSVFVQX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBXUl9MNENfNUdPUFRfU0VUX0NORiwKKyAgICBNU0dfSURfTDRCUFdSX0w0Q19NU0dfRU5ELAorCisgICAgTVNHX0lEX0w0QlNCUF9MNENfTVNHX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRCU0JQX0w0Q19EVVBMRVhfTU9ERV9DSEFOR0VfRklOSVNIX0lORCwKKyAgICBNU0dfSURfTDRCU0JQX0w0Q19NU0dfRU5ELAorCisgICAgTVNHX0lEX0w0Q19QU19VVF9NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9MNENfUFNfVVRfUkVTVUxUX09LLAorICAgIE1TR19JRF9MNENfUFNfVVRfTVNHX0VORCwKKworICAgIE1TR19JRF9MNEJQRE5fTDRDX01TR19GUk9NX0w0QlBETl9CRUdJTiwKKyAgICAvKiBMNEJQRE4gdG8gTDRDIEFUIGNvbW1hbmQgUHJpbWl0aXZlICovCisgICAgI2RlZmluZSBMNENfUFNfUkVRKE1TRywgSERMUjEsIEhETFIyLCBIRExSMywgSERMUjQpICBNU0csCisgICAgICAgICNpbmNsdWRlICJsNGNfcHNfbXNnX2hkbHJfZGVmcy5oIgorICAgICN1bmRlZiAgTDRDX1BTX1JFUQorCisgICAgLyogTDRCUEROIHRvIEw0QyBOb24tQVQgY29tbWFuZCBQcmltaXRpdmUgKi8KKyAgICBNU0dfSURfTDRCUEROX0w0Q19QRE5fUkVWSVZFX1JFUSwKKyAgICBNU0dfSURfTDRCUEROX0w0Q19MVEVfQVRUQUNIX1BETl9ERUZJTkVfTkVFREVEX1JTUCwKKyAgICBNU0dfSURfTDRCUEROX0w0Q19TRVRfRUlNU1JPQU1fQ09ORklHX1ZBTFVFX1JFUSwKKyAgICBNU0dfSURfTDRCUEROX0w0Q19TRVRfREVGQVVMVF9TSU1fSU5ELAorICAgIE1TR19JRF9MNEJQRE5fTDRDX05XX0FQUExJRURfQ0FDSEVfREFUQV9OT1RJRlksCisKKyAgICBNU0dfSURfTDRCUEROX0w0Q19NU0dfRlJPTV9MNEJQRE5fRU5ELAorCisgICAgTVNHX0lEX0w0QlBETl9MNENfTVNHX0ZST01fTDRDX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DTURfQ05GLAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0VWX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfQ0dEQ09OVF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0NHRFNDT05UX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfQ0dURlRfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR1FSRVFfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR1FNSU5fSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0VRUkVRX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfQ0dFUU1JTl9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0NHRVFORUdfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0FDVF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0NHUEFERFJfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0FVVE9fSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0VSRVBfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0NPTlRSRFBfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR1NDT05UUkRQX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfQ0dURlRSRFBfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0VRT1NfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0VRT1NSRFBfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DR0RFTF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0NHQVVUSF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX1BTQkVBUkVSX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfRUdGQl9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0VHREVMUEZfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19FR0xOS1BGX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfRUdQQ09SRFBfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19FR1BDT19JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX1JBVF9TRUxFQ1RfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19HTVNTX1NUT1BfU0VBUkNIX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfUEROX1JFVklWRV9DTkYsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX1BETl9SRVZJVkVfQUJPUlRfQ05GLAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19MVEVfQVRUQUNIX05FRURFRF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0xURV9BVFRBQ0hfUEROX0RFRklORV9ORUVERURfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19WWldBUE5FX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfVlpXQVBORVRNUl9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0xURV9BVFRBQ0hfUEROX0FDVElWQVRFX1NVQ0NFU1NfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19MVEVfQVRUQUNIX1BETl9BQ1RJVkFURV9GQUlMVVJFX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfRUFQTlNZTkNfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19FVlpXQVBGQ0lBX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9MNENfRUdHUk5UUlNQVF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0NNRF9OT1RfWUVUX1NVUFBPUlRfSU5ELCAvKiBPbmx5IGZvciBVVCAqLworICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DNUdRT1NfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DNUdRT1NSRFBfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0w0Q19DTEFETl9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0NMQUROVV9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fTDRDX0VTQ09OVElORF9JTkQsCisgICAgTVNHX0lEX0w0QlBETl9MNENfTVNHX0ZST01fTDRDX0VORCwKKworICAgIE1TR19JRF9MNEJQRE5fVENNX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9UQ01fQkVBUkVSX0FDVF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fVENNX0JFQVJFUl9ERUFDVF9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fVENNX1BGX1VQREFURV9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fVENNX1BDT19SRFBfVVBEQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9UQ01fNDVHX0lSQVRfQkVBUkVSX1VQREFURV9JTkQsCisgICAgTVNHX0lEX0w0QlBETl9UQ01fTVNHX0VORCwKKworICAgIC8qIE5vdGU6IE1TR19JRCB3aXRoIE1EMyBhcmUgbGlzdGVkIGluIG1kM19tc2dpZC5oICovCisKKyAgICAvKiBGb3IgbG9nZ2luZyAqLworICAgIE1TR19JRF9MNEJQRE5fTE9HX0NJRCwKKyAgICBNU0dfSURfTDRCUEROX0xPR19DSURfUkRQLAorICAgIE1TR19JRF9MNEJQRE5fTE9HX0xFSVNJTSwKKworICAgIE1TR19JRF9MNEJQRE5fTVNHX0RVTU1ZLAorICAgIE1TR19JRF9MNEJQRE5fQ09ERV9FTkQgPSBNU0dfSURfTDRCUEROX01TR19EVU1NWSwKKworICAgIC8qIFRlbXBvcmFyaWx5IGxvY2F0ZWQgYXQgdGhlIHRhaWwgb2YgTDRCUEROKi8KKyAgICBNU0dfSURfRERNX0w0Qk5XX0VEQUxMT1dfUkVRLAorICAgIE1TR19JRF9ERE1fTDRCTldfRURBTExPV19DTkYsCisKKyAgICBNU0dfSURfVE1DX0w0QlBXUl9CQVRURVJZX1NUQVRVU19JTkQsCisKKyAgICBNU0dfSURfU0FTRV9MNENfVkdfT1BUSU9OX0NIRUNLX0lORCwKKyAgICBNU0dfSURfU0FTRV9MNENfVkdfT1BUSU9OX1VQREFURV9DTkYsCisgICAgTVNHX0lEX1NBU0VfTDRDX0lNU19SRUdfU1RBVFVTX1VQREFURV9JTkQsCisgICAgTVNHX0lEX1NBU0VfTDRDX0lNU19DT05GSUdfSU5ELAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLUw0QlBETl9DT0RFX1RBSUwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDRCUEROX0NPREVfVEFJTCApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tUkFUX1RDTV9DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JBVF9UQ01fQ09ERV9CRUdJTiApCisgICAgICAgTVNHX0lEX0w0Q1RDTV9SQVRfQ0hBTkdFX1NUQVJUX1JFUSA9IE1TR19JRF9SQVRfVENNX0NPREVfQkVHSU4sCisgICAgICAgTVNHX0lEX0w0Q1RDTV9SQVRfQ0hBTkdFX0ZJTklTSF9SRVEsCisgICAgICAgTVNHX0lEX1RDTV9SQVRfQ0hBTkdFX0NPTVBMRVRFX0lORCwKKworICAgICAgIE1TR19JRF9UQ01fUkFUX1RDTV9JTklUX0RFQUNUSVZBVEVfQ09OVEVYVF9JTkQsCisgICAgICAgTVNHX0lEX1RDTV9SQVRfVENNX0lOSVRfTU9ESUZZX0NPTlRFWFRfSU5ELAorICAgICAgIE1TR19JRF9UQ01fUkFUX1RDTV9DT05URVhUX1RSQU5TRkVSX0NPTVBMRVRFX0lORCwKKyAgICAgICBNU0dfSURfUkFUX1RDTV9QUklOVF9FTUJFRERFRF9TRUNfQUNUSVZBVEVfSU5EX01TRywKKyAgICAgICBNU0dfSURfUkFUX1RDTV9QUklOVF9FTUJFRERFRF9ERUFDVElWQVRFX0lORF9NU0csCisgICAgICAgTVNHX0lEX1JBVF9UQ01fUFJJTlRfRU1CRURERURfTU9ESUZZX0lORF9NU0csCisgICAgICAgTVNHX0lEX1JBVF9UQ01fUFJJTlRfQ09OVEVYVF9HViwKKworICAgICAgIE1TR19JRF9SQVRfVENNX0NPREVfRU5ELAorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS1SQVRfVENNX0NPREVfVEFJTC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9SQVRfVENNX0NPREVfVEFJTCApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLSBUQ01fTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1RDTV9DT0RFX0JFR0lOICkKKworICAgIC8qIFByb2Nlc3NlZCBieSB0Y21fYXRfaGFuZGxlci5jLiAqLworICAgIE1TR19JRF9UQ01fQVRfTVNHX0JFR0lOLAorICAgICAgICAvKiBCb290dXAuICovCisgICAgICAgIE1TR19JRF9MNENUQ01fU1RBUlRfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9TVEFSVF9DTkYsCisgICAgICAgIC8qIFNldCBpdGVtcyBmb3IgUERQIGFuZCBRT1MuICovCisgICAgICAgIE1TR19JRF9MNENUQ01fVU5ERUZJTkVfUERQX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9QUklfUERQX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9TRUNfUERQX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9RT1NfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fU0VUX0VRT1NfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fU0VUX0VQU19RT1NfSU5GT19SRVEsIC8qIF9fTFRFX1JBVF9fICovCisgICAgICAgIE1TR19JRF9MNENUQ01fU0VUX1ZHUU9TX0lORk9fUkVRLAorCisgICAgICAgIC8qIFNldCBpdGVtcyBmb3Igb3RoZXJzLiAqLworICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9URlRfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fU0VUX1BQUF9BVVRIX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9DR0FVVEhfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fRU5URVJfREFUQV9NT0RFX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9MRUFWRV9EQVRBX01PREVfUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9NVUxUSVBMRV9QRE5fSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fU0VUX1NQRUNJRklDX0NPTlRFWFRfUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9FWFRFTkRFRF9QRFBfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fU1lOQ19BUE5fSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fQ0VMTFVMQVJfTkVUV09SS19DT05GSUdfUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9USElTX0lTX0FOX0lOVkFMSURfQVBOX05PVElGWV9SRVEsIC8vIGRlcHJlY2F0ZWQKKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9TRVRfRUdQQ09fUkVRLAorCisgICAgICAgIC8qIF9fTUVESUFURUtfU01BUlRfUU9TX18gKi8KKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9TRVRfTVNRX01PREVfUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9NU1FfRU5UUllfUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX0RBVEFfQUxMT1dfUkVRLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9FSU1TUk9BTV9DT05GSUdfVkFMVUVfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9MQUROX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfVENNX0FUX01TR19FTkQsCisKKyAgICAvKiBQcm9jZXNzZWQgYnkgQk9USCBVR1RDTSBhbmQgRVRDTSAqLworICAgIE1TR19JRF9UQ01fQ09NTU9OX0ZTTV9NU0dfQkVHSU4sCisgICAgICAgIC8qIEZyb20gTDRDLiAqLworICAgICAgICBNU0dfSURfVENNX1BEUF9BQ1RJVkFURV9SRVEsCisgICAgICAgIE1TR19JRF9UQ01fUERQX0RFQUNUSVZBVEVfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BEUF9NT0RJRllfUkVRLAorICAgICAgICAvKiBGcm9tIFBQUC4gKi8KKyAgICAgICAgTVNHX0lEX1RBRl9FWFRfUERQX0FDVElWQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX1RBRl9FWFRfUERQX0RFQUNUSVZBVEVfSU5ELAorICAgICAgICBNU0dfSURfVEFGX0xJTktfRlJFRV9JTkQsCisgICAgTVNHX0lEX1RDTV9DT01NT05fRlNNX01TR19FTkQsCisKKyAgICAvKiBGb3IgUEFNIG1lc3NhZ2UgaGFuZGxlZCBieSBDT01NT04gVENNICovCisgICAgTVNHX0lEX1RDTV9GUk9NX1BBTV9NU0dfQkVHSU4sCisgICAgICAgIC8qIFBBTSAtPiBUQ00gKi8KKyAgICAgICAgTVNHX0lEX1RDTV9VU01fQ09OVEVYVF9VUERBVEVfSU5ELAorICAgICAgICBNU0dfSURfUEFNX0JBQ0tPRkZfVElNRVJfUkVQT1JUX0lORCwKKyAgICBNU0dfSURfVENNX0ZST01fUEFNX01TR19FTkQsCisKKyAgICAvKiBQcm9jZXNzZWQgYnkgVUdUQ00uICovCisgICAgTVNHX0lEX1RDTV9VR1RDTV9NU0dfQkVHSU4sCisgICAgICAgIC8qIEFDVC4gKi8KKyAgICAgICAgTVNHX0lEX1NNUkVHX1BEUF9BQ1RJVkFURV9DTkYsCisgICAgICAgIE1TR19JRF9TTVJFR19QRFBfQUNUSVZBVEVfUkVKLAorICAgICAgICBNU0dfSURfU01SRUdfUERQX0FDVElWQVRFX1NFQ19DTkYsCisgICAgICAgIE1TR19JRF9TTVJFR19QRFBfQUNUSVZBVEVfU0VDX1JFSiwKKyAgICAgICAgLyogTVQgQUNULiAqLworICAgICAgICBNU0dfSURfU01SRUdfUERQX0FDVElWQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX1NNUkVHX1BEUF9BQ1RJVkFURV9TRUNfSU5ELAorICAgICAgICBNU0dfSURfVENNX1BEUF9BQ1RJVkFURV9SRUpfUlNQLAorICAgICAgICBNU0dfSURfVENNX1RJTUVSX0VYUElSWSwKKyAgICAgICAgLyogREVBQ1QuICovCisgICAgICAgIE1TR19JRF9TTVJFR19QRFBfREVBQ1RJVkFURV9JTkQsCisgICAgICAgIE1TR19JRF9TTVJFR19QRFBfREVBQ1RJVkFURV9DTkYsCisgICAgICAgIC8qIE1PRElGWS4gKi8KKyAgICAgICAgTVNHX0lEX1NNUkVHX1BEUF9NT0RJRllfSU5ELAorICAgICAgICBNU0dfSURfU01SRUdfUERQX01PRElGWV9DTkYsCisgICAgICAgIE1TR19JRF9TTVJFR19QRFBfTU9ESUZZX1JFSiwKKyAgICAgICAgLyogX19MVEVfUkFUX18gKi8KKyAgICAgICAgTVNHX0lEX1NNUkVHX1JBVF9DSEFOR0VfQ09NUExFVEVfSU5ELAorICAgICAgICBNU0dfSURfU01SRUdfUFNfQ0hBTkdFX0NPTVBMRVRFX0lORCwKKyAgICAgICAgLyogX19IU0RQQV9TVVBQT1JUX18gKi8KKyAgICAgICAgTVNHX0lEX1RDTV9SQVRETV9QU19CRUFSRVJfQ0FQQUJJTElUWV9JTkQsCisgICAgICAgIC8qIDNHIFBEUCBwcmVzZXJ2YXRpb24uICovCisgICAgICAgIE1TR19JRF9TTVJFR19QRFBfUFJFU0VSVkVfSU5ELAorICAgICAgICBNU0dfSURfU01SRUdfUERQX1JFRVNUQUJMSVNIX0lORCwKKyAgICAgICAgLyogMkcgQ1Mgc3VzcGVuZCBQUyAoLT4gTU9EX1BQUCkgKi8KKyAgICAgICAgTVNHX0lEX1NNUkVHX1BTX1NVU1BFTkRfSU5ELAorICAgICAgICBNU0dfSURfU01SRUdfUFNfUkVTVU1FX0lORCwKKyAgICBNU0dfSURfVENNX1VHVENNX01TR19FTkQsCisKKyAgICAvKiBQcm9jZXNzZWQgYnkgRVRDTSAqLworICAgIE1TR19JRF9UQ01fRVRDTV9NU0dfQkVHSU4sCisgICAgICAgIC8qIEZyb20gTDRDICovCisgICAgICAgIE1TR19JRF9MNENfVENNX0VQU19BVFRBQ0hfUkVRLAorICAgICAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRGVzdGluYXRpb246IEVTTSB0byBFVENNCisgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgICAgICBNU0dfSURfRVNNUkVHX1BETl9DT05OX0VTVF9SRUosCisgICAgICAgIE1TR19JRF9FVkFMX0VTTV9QRE5fQ09OTl9FU1RfUkVKID0gTVNHX0lEX0VTTVJFR19QRE5fQ09OTl9FU1RfUkVKLAorICAgICAgICBNU0dfSURfRVNNUkVHX0JFQVJFUl9SU0NfQUxMT0NfUkVKLAorICAgICAgICBNU0dfSURfRVZBTF9FU01fQkVBUkVSX1JTQ19BTExPQ19SRUogPSBNU0dfSURfRVNNUkVHX0JFQVJFUl9SU0NfQUxMT0NfUkVKLAorICAgICAgICBNU0dfSURfRVNNUkVHX0JFQVJFUl9SU0NfTU9EX1JFSiwKKyAgICAgICAgTVNHX0lEX0VWQUxfRVNNX0JFQVJFUl9SU0NfTU9EX1JFSiA9IE1TR19JRF9FU01SRUdfQkVBUkVSX1JTQ19NT0RfUkVKLAorICAgICAgICBNU0dfSURfRVNNUkVHX0VQU0JfREVBQ1RfUkVKLAorICAgICAgICBNU0dfSURfRVZBTF9FU01fRVBTQl9ERUFDVF9SRUogPSBNU0dfSURfRVNNUkVHX0VQU0JfREVBQ1RfUkVKLAorICAgICAgICBNU0dfSURfRVNNUkVHX1BETl9DT05OX0VTVF9JTkQsCisgICAgICAgIE1TR19JRF9FVkFMX0VTTV9QRE5fQ09OTl9FU1RfSU5EID0gTVNHX0lEX0VTTVJFR19QRE5fQ09OTl9FU1RfSU5ELAorICAgICAgICBNU0dfSURfRVNNUkVHX1BETl9DT05OX1VQREFURV9JTkQsCisgICAgICAgIE1TR19JRF9FVkFMX0VTTV9QRE5fQ09OTl9VUERBVEVfSU5EID0gTVNHX0lEX0VTTVJFR19QRE5fQ09OTl9VUERBVEVfSU5ELAorICAgICAgICBNU0dfSURfRVNNUkVHX0VQU0JfREVBQ1RfSU5ELAorICAgICAgICBNU0dfSURfRVZBTF9FU01fRVBTQl9ERUFDVF9JTkQgPSBNU0dfSURfRVNNUkVHX0VQU0JfREVBQ1RfSU5ELAorICAgICAgICBNU0dfSURfRVNNUkVHX1JBVF9DSEFOR0VfQ09NUExFVEVfSU5ELAorICAgICAgICBNU0dfSURfRVZBTF9FU01fUkFUX0NIQU5HRV9DT01QTEVURV9JTkQgPSBNU0dfSURfRVNNUkVHX1JBVF9DSEFOR0VfQ09NUExFVEVfSU5ELAorCisgICAgICAgIE1TR19JRF9UQUZfRVhUX0VOVEVSX0RBVEFfTU9ERV9SRVEsIC8qIFBQUCBEaWFsLXVwICovCisgICAgICAgIE1TR19JRF9FVENNX0VNX0RVTVBfUERQX0NPTlRFWFRfSU5ELCAvKiBFVENNIEVNIG1zZyAqLworCisgICAgICAgIE1TR19JRF9FU01SRUdfUFNfSU5JVF9CRUFSRVJfREVBQ1RfSU5ELAorICAgICAgICBNU0dfSURfRVZBTF9FU01fUFNfSU5JVF9CRUFSRVJfREVBQ1RfSU5EID0gTVNHX0lEX0VTTVJFR19QU19JTklUX0JFQVJFUl9ERUFDVF9JTkQsCisgICAgICAgIE1TR19JRF9FU01SRUdfNUc0X0NPTlRFWFRfVFJBTlNGRVJfSU5ELAorCisgICAgTVNHX0lEX1RDTV9FVENNX01TR19FTkQsCisKKyAgICAvKiBQcm9jZXNzZWQgYnkgVkdUQ00uICovCisgICAgTVNHX0lEX1RDTV9WR1RDTV9NU0dfQkVHSU4sCisgICAgICAgIC8qIEVTVCAqLworICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9FU1RfQ05GLAorICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9FU1RfUkVKLAorICAgICAgICAvKiBNT0RJRlkgKi8KKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fUERVX1NFU1NJT05fTU9EX0NORiwKKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fUERVX1NFU1NJT05fTU9EX0lORCwKKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fUERVX1NFU1NJT05fTU9EX1JFSiwKKyAgICAgICAgLyogUkVMRUFTRSAqLworICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9SRUxfQ05GLAorICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9SRUxfUkVKLAorICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9SRUxfSU5ELAorICAgICAgICAvKiBJbnRlcndvcmtpbmcgKi8KKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fNEc1X0NPTlRFWFRfVFJBTlNGRVJSRURfSU5ELAorICAgIE1TR19JRF9UQ01fVkdUQ01fTVNHX0VORCwKKworICAgIC8qIEw0QVBTIC0+IFRDTSAqLworICAgIE1TR19JRF9MNEFQU19UQ01fTVNHX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRBUFNfVENNX0lBX0FQTl9DSEFOR0VfUkVRLAorICAgICAgICBNU0dfSURfTDRBUFNfVENNX1VQREFURV9DSURfTUFQUElOR19SRVEsCisgICAgTVNHX0lEX0w0QVBTX1RDTV9NU0dfRU5ELAorCisgICAgLyogX19BQ0xfU1VQUE9SVF9fICovCisgICAgTVNHX0lEX1RDTV9BQ0xfTVNHX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRDVENNX1NFVF9BQ0xfTU9ERV9SRVEsCisgICAgICAgIE1TR19JRF9MNENUQ01fR0VUX0FDTF9FTlRSSUVTX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9TRVRfQUNMX0VOVFJZX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9BRERfQUNMX0VOVFJZX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9ERUxfQUNMX0VOVFJZX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0Q1RDTV9MRUFWRV9BQ0xfTUVOVV9SRVEsCisgICAgTVNHX0lEX1RDTV9BQ0xfTVNHX0VORCwKKworICAgIC8qIF9fVENNX1VUX18gKi8KKyAgICBNU0dfSURfVENNX1VUX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fR0VUX1BSSV9QRFBfSU5GTywKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fUVVFUllfTkVHX1FPU19JTkZPLAorICAgICAgICBNU0dfSURfVENNX1VUX0NIRUNLX0NBTExCQUNLX0w0Q1RDTV9HRVRfU0VDX1BEUF9JTkZPLAorICAgICAgICBNU0dfSURfVENNX1VUX0NIRUNLX0NBTExCQUNLX1RDTV9XUklURV9URlQsCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX1NFVF9URlRfSU5GTywKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fR0VUX1RGVF9JTkZPLAorICAgICAgICBNU0dfSURfVENNX1VUX0NIRUNLX0NBTExCQUNLX0w0Q1RDTV9HRVRfUU9TX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0dFVF9DT05GSUdfT1BUSU9OX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0dFVF9FUU9TX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0VOQ09ERV9TRFVfU0laRSwKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fREVDT0RFX1NEVV9TSVpFLAorICAgICAgICBNU0dfSURfVENNX1VUX0NIRUNLX0NBTExCQUNLX0w0Q1RDTV9FTkNPREVfQklUX1JBVEUsCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0RFQ09ERV9CSVRfUkFURSwKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fRU5DT0RFX1RSQU5TRkVSX0RFTEFZLAorICAgICAgICBNU0dfSURfVENNX1VUX0NIRUNLX0NBTExCQUNLX0w0Q1RDTV9ERUNPREVfVFJBTlNGRVJfREVMQVksCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0dFVF9QRFBfQUREUiwKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fR0VUX0NPTlRFWFRfU1RBVEUsCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0dFVF9FTVBUWV9HUFJTX1BST0YsCisgICAgICAgIE1TR19JRF9UQ01fVVRfQ0hFQ0tfQ0FMTEJBQ0tfTDRDVENNX0dFVF9QUFBfQVVUSCwKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fQ01VWF9QT1JUX1RPX0NJRCwKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9DSEVDS19DQUxMQkFDS19MNENUQ01fR0VUX0JFQVJFUl9DQVBBQklMSVRZLAorICAgICAgICBNU0dfSURfVENNX1VUX0NIRUNLX0NBTExCQUNLX0NIRUNLX1BEUF9DT05URVhUX0VYSVNUX09SX0RVUklOR19BQ1RJVkFUSU5HX0ZVTkMsCisgICAgICAgIE1TR19JRF9UQ01fVVRfUkVTVUxUX09LLAorICAgICAgICBNU0dfSURfVENNX1VUX0w0Q1RDTV9HRVRfUFJJX1BEUF9SRFBfSU5GTywKKyAgICAgICAgTVNHX0lEX1RDTV9VVF9MNENUQ01fR0VUX1NFQ19QRFBfUkRQX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfTDRDVENNX0dFVF9QUklfUERQX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfTDRDVENNX0dFVF9TRUNfUERQX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfTDRDVENNX0dFVF9OV19BUFBMSUVEX1BEUF9JTkZPLAorICAgICAgICBNU0dfSURfVENNX1VUX0w0Q1RDTV9HRVRfU0lCX0lORk8sCisgICAgICAgIE1TR19JRF9UQ01fVVRfRVRDTV9DSURfR0VUX1BDT19SRVNVTFQsCisgICAgICAgIE1TR19JRF9UQ01fVVRfUElDX0NPTlRFWFRfRFVNUCwKKyAgICBNU0dfSURfVENNX1VUX01TR19FTkQsCisKKyAgICAvKiBfX0RTQlBfTVNHIF9fICovCisgICAgTVNHX0lEX1RDTV9EU0JQX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX1RDTV9EU0JQX1JFQ09ORklHVVJFX0lORCwKKyAgICBNU0dfSURfVENNX0RTQlBfTVNHX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9UQ01fQ09ERV9UQUlMICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLSBUQ01fTVNHX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLUNTTV9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9DU01fQ09ERV9CRUdJTikKKyAgICBNU0dfSURfTU5DQ19TRVRVUF9JTkQgPSBNU0dfSURfQ1NNX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX01OQ0NfU0VUVVBfQ05GLAorICAgIE1TR19JRF9NTkNDX1NFVFVQX0NPTVBMX0lORCwKKyAgICBNU0dfSURfTU5DQ19SRUpfSU5ELAorICAgIE1TR19JRF9NTkNDX0NBTExfUFJPQ19JTkQsCisgICAgTVNHX0lEX01OQ0NfUFJPR1JFU1NfSU5ELAorICAgIE1TR19JRF9NTkNDX0FMRVJUX0lORCwKKyAgICBNU0dfSURfTU5DQ19OT1RJRllfSU5ELAorICAgIE1TR19JRF9NTkNDX0RJU0NfSU5ELAorICAgIE1TR19JRF9NTkNDX1JFTF9JTkQsCisgICAgTVNHX0lEX01OQ0NfUkVMX0NORiwKKyAgICBNU0dfSURfTU5DQ19GQUNJTElUWV9JTkQsCisgICAgTVNHX0lEX01OQ0NfU1RBUlRfRFRNRl9DTkYsCisgICAgTVNHX0lEX01OQ0NfU1RPUF9EVE1GX0NORiwKKyAgICBNU0dfSURfTU5DQ19NT0RJRllfSU5ELAorICAgIE1TR19JRF9NTkNDX01PRElGWV9DTkYsCisgICAgTVNHX0lEX01OQ0NfU1lOQ19JTkQsCisgICAgTVNHX0lEX01OQ0NfUkFUX0lORCwKKyAgICBNU0dfSURfTU5DQ19IT0xEX0NORiwKKyAgICBNU0dfSURfTU5DQ19SRVRSSUVWRV9DTkYsCisgICAgTVNHX0lEX01OQ0NfVVNFUl9JTkZPX0lORCwKKyAgICBNU0dfSURfTU5DQ19DT05HRVNUSU9OX0NUUkxfSU5ELAorICAgIE1TR19JRF9NTkNDX0NDQlNfRVNUX0lORCwKKyAgICBNU0dfSURfTU5DQ19DQ0JTX1JFQ0FMTF9JTkQsCisgICAgTVNHX0lEX01OQ0NfQU9DX0lORCwKKyAgICBNU0dfSURfTU5DQ19TSUdfQ09OX1JFRVNUX0lORCwKKyAgICBNU0dfSURfTU5DQ19TSUdfQ09OX1JFRVNUX0NORiwKKyAgICBNU0dfSURfTU5DQ19TUlZDQ19UUkFOU0ZFUl9DTkYsCisgICAgTVNHX0lEX01OQ0NfUExNTl9JTkZPX0lORCwKKworICAgIE1TR19JRF9MNENDU01fQ0NfU1RBUlRVUF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19BQ01fUkVTRVRfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfQUNNTUFYX1NFVF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19MQVNUX0NDTV9SRVNFVF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19DQUxMX0RFRkxFQ1RJT05fUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfQ1JTU19SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19DQUxMX0FDQ0VQVF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19DQUxMX0RJU0NfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfQ0FMTF9NT0RJRllfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfQ0FMTF9TRVRVUF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19BVVRPX0RUTUZfU1RBUlRfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfRU1FUkdFTkNZX0NBTExfU0VUVVBfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfU1RBUlRfRFRNRl9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19TVE9QX0RUTUZfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfU0FUX1NFVFVQX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0NDX1NBVF9TRU5EX0RUTUZfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfU0FUX0FCT1JUX0RUTUZfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfU0VUX0NTRF9QUk9GX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0NDX1VQREFURV9BTFNfUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0NfVUFSVF9UUkFOU0ZFUl9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19DQUxMX1BSRVNFTlRfUlNQLCAvKiBfX0FVVE9fQ0FMTF9SRUpFQ1RJT05fXyAqLworICAgIE1TR19JRF9MNENDU01fQ0NfQUJPUlRfQ0FMTF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19SRUxfQ09NUF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DQ19TUlZDQ19UUkFOU0ZFUl9SRVEsCisKKyAgICBNU0dfSURfU0FUX0NBTExfQ1RSTF9CWV9TSU1fQ05GLAorCisgICAgTVNHX0lEX0NTTV9URFRfQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9DU01fVERUX0RFQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9DU01fVERUX0VTQ19PTl9JTkQsCisgICAgTVNHX0lEX0NTTV9URFRfRElTQ19JTkQsCisgICAgTVNHX0lEX0NTTV9MMlJfQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9DU01fTDJSX0RFQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9DU01fTDJSX1hJRF9JTkQsCisgICAgTVNHX0lEX0NTTV9MMlJfRElTQ19JTkQsCisgICAgTVNHX0lEX0NTTV9MMlJfRVNDX09OX0lORCwKKworICAgIE1TR19JRF9DU01fVDMwX0FDVElWQVRFX0NORiwKKyAgICBNU0dfSURfQ1NNX1QzMF9ERUFDVElWQVRFX0NORiwKKyAgICBNU0dfSURfQ1NNX1QzMF9GQVhfUkFURV9DTkYsCisgICAgTVNHX0lEX0NTTV9UMzBfRElTQ19JTkQsCisKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfU1RBUlRVUF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DSVNTX1NTX1BBUlNFX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfQ0ZfQkVHSU5fUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19DV19CRUdJTl9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DSVNTX0NCX0JFR0lOX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfRU1MUFBfQkVHSU5fUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19DTElfQkVHSU5fUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19DQ0JTX0JFR0lOX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfUFVTU1JfQkVHSU5fUkVRLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19DQl9GQUNfUkVTLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19VU1NSX0ZBQ19SRVMsCisgICAgTVNHX0lEX0w0Q0NTTV9DSVNTX1VTU05fRkFDX1JFUywKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfRU5EX1JFUywKKyAgICBNU0dfSURfTU5TU19CRUdJTl9JTkQsCisgICAgTVNHX0lEX01OU1NfRkFDX0lORCwKKyAgICBNU0dfSURfTU5TU19FTkRfSU5ELAorICAgIE1TR19JRF9TQVRfU1NfQ1RSTF9CWV9TSU1fQ05GLAorICAgIC8vU1NBR1BTCisgICAgTVNHX0lEX0w0Q0NTTV9DSVNTX01UTFJfRU5EX1JTUCwKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfQUVSUV9FTkRfUlNQLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19BRVJQX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfQUVSUF9GQUNfUkVTLAorICAgIE1TR19JRF9MNENDU01fQ0lTU19BRVJQX0VORF9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DSVNTX0FFQ0xfRU5EX1JTUCwKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfTU9MUl9SRVEsCisgICAgTVNHX0lEX0w0Q0NTTV9DSVNTX01PTFJfRkFDX1JFUywKKyAgICBNU0dfSURfTDRDQ1NNX0NJU1NfTU9MUl9FTkRfUkVRLAorCisKKyAgICBNU0dfSURfTDRDQ1NNX0lNU19DQUxMX1BST0dSRVNTX1JFUSwKKyAgICBNU0dfSURfTDRDQ1NNX0lNU19DQUxMX1NUQVRVU19JTkQsCisKKyAgICBNU0dfSURfQ1NNX1RJTUVSX0VYUElSWSwKKyAgICBNU0dfSURfQ1NNX0NPREVfRU5ELAorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS1DU01fTVNHX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTU9EVUxFX01TR19FTkQoTVNHX0lEX0NTTV9DT0RFX1RBSUwpCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLSBTTVNBTF9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TTVNBTF9DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfTDRDU01TQUxfSU5JVF9SRVEgPSBNU0dfSURfU01TQUxfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfTDRDU01TQUxfREVfSU5JVF9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX0RFTEVURV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX0RFX1BFUlNPTkFMSVpBVElPTl9BQ0ssCisgICAgTVNHX0lEX0w0Q1NNU0FMX1JFQURfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9XUklURV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX1NFTkRfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9TRU5EX1NNTUFfUkVRLCAgICAvLyB0cmlnZXIgYnkgTU1JCisgICAgTVNHX0lEX0w0Q1NNU0FMX1NFTkRfRlJPTV9TVE9SQUdFX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfU0VORF9ERUxJVkVSX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX1NFTkRfQUJPUlQsCisgICAgTVNHX0lEX0w0Q1NNU0FMX1NFVF9QQVJBTUVURVJfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9TRVRfQ09NTU9OX1BBUkFfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9TRVRfUFJPRklMRV9QQVJBX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfU0FUX1NFTkRfUkVRLCAvKiBTQVQgTU8gU01TICovCisgICAgTVNHX0lEX0w0Q1NNU0FMX1NUQVJUVVBfUkVBRF9ORVhUX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfRkROX0NIRUNLX1JTUCwKKyAgICBNU0dfSURfTDRDU01TQUxfU01TX0RFUEVSU09OQUxJWkFUSU9OX1JTUCwKKyAgICBNU0dfSURfTDRDU01TQUxfQ09QWV9NU0dfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9TRVRfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfR0VUX01BSUxCT1hfTlVNX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfSU5JVF9NRV9TTVNfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9TRVRfTVNHX1dBSVRJTkdfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9TWU5DX01TR19TVE9SQUdFX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfUkVBRF9SQVdfREFUQV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX1dSSVRFX1JBV19EQVRBX1JFUSwKKworICAgIC8qIF9fSU1TX1NVUFBPUlRfXyAqLworICAgIE1TR19JRF9MNENTTVNBTF9JTVNfU0VORF9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX0lNU19TRU5EX1NNTUFfUkVRLAorICAgIE1TR19JRF9MNENTTVNBTF9JTVNfU0VORF9TTU1BX1JFU1VMVF9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX0lNU19TTVNfREVMSVZFUl9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX0lNU19TTVNfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfSU1TX1NFTkRfRlJPTV9TVE9SQUdFX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfSU1TX1VQREFURV9NU0dCT1hfUkVRLAorCisgICAgLyogTVNHUyBGUk9NIFNNUyAqLworICAgIE1TR19JRF9TTVNfREVMSVZFUiwKKyAgICBNU0dfSURfU01TX1NVQk1JVF9SRVBPUlRfQUNLLAorICAgIE1TR19JRF9TTVNfU1VCTUlUX1JFUE9SVF9OQUNLLAorICAgIE1TR19JRF9TTVNfU1RBVFVTX1JFUE9SVCwKKyAgICBNU0dfSURfU01TX1NVQk1JVF9BQk9SVF9DTkYsCisgICAgTVNHX0lEX1NNU19NRU1fQVZMX05PVElGX0NORiwKKyAgICBNU0dfSURfU01TX01PUkVfTVNHX1NFTkRfSU5ELAorICAgIE1TR19JRF9TTVNfTVRfRklOQUxfQUNLX0lORCwKKyAgICBNU0dfSURfU01TQUxfVFNUX0RFTElWRVIsCisgICAgTVNHX0lEX1NNU0FMX1RTVF9JTVNfREVMSVZFUiwKKworICAgIC8qIE1TR1MgRlJPTSBTSU0gLS0gZm9yIFNBVCAqLworICAgIE1TR19JRF9TQVRfU01TX0RMX0NORiwKKyAgICBNU0dfSURfU0FUX0NCX0RMX0NORiwKKyAgICBNU0dfSURfU0FUX1NFTkRfU01TX0NUUkxfQllfU0lNX0NORiwKKworICAgIE1TR19JRF9MNENTTVNBTF9DQkNIX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfQ0JfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfSFpfQ0JfQUNUX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfQ0JfU0VSVklDRV9CWV9QTE1OX1JFUSwKKworICAgIE1TR19JRF9TTVNBTF9BU19DQl9QQUdFX0lORCwKKyAgICBNU0dfSURfU01TQUxfQVNfQ0JfR1NfQ0hBTkdFX0lORCwKKworICAgIE1TR19JRF9TTVNBTF9SQVRDTV9DQl9EQVRBX0lORCwKKyAgICBNU0dfSURfU01TQUxfUkFUQ01fQ0JfUkVDT05GSUdfSU5ELAorICAgIE1TR19JRF9TTVNBTF9SQVRDTV9DQl9HU19DSEFOR0VfSU5ELAorICAgIE1TR19JRF9TTVNBTF9SQVRDTV9DQl9EVVBfREVUX1RJTUVSX1NUT1BfSU5ELAorCisgICAgLyogTVNHUyBGUk9NIEw0QyAtLSBmb3IgaW50ZXJSQVQqLworICAgIE1TR19JRF9MNENTTVNBTF9SQVRfQ0hBTkdFX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfUkFUX0NIQU5HRV9GSU5JU0hfUkVRLAorCisgICAgLyogTVNHUyBGUk9NIEVWQUwgLS0gZm9yIFNNU0FMICovCisgICAgTVNHX0lEX1NNU0FMX0VWQUxfQ0JfREFUQV9JTkQsCisgICAgTVNHX0lEX1NNU0FMX0VWQUxfQ0JfUkVDT05GSUdfSU5ELAorICAgIE1TR19JRF9TTVNBTF9FVkFMX0NCX0dTX0NIQU5HRV9JTkQsCisKKyAgICAvKiBNU0dzIGZyb20gTlJSQyAqLworICAgIE1TR19JRF9TTVNBTF9OUlJDX0NCX0RBVEFfSU5ELAorICAgIE1TR19JRF9TTVNBTF9OUlJDX0NCX1JFQ09ORklHX0lORCwKKworICAgIC8qIE1TR1MgRlJPTSBQSEIgKi8KKyAgICBNU0dfSURfUEhCU01TQUxfR0VUX0VYVDFfTlVNX1JFUSwKKyAgICBNU0dfSURfUEhCU01TQUxfR0VUX0VYVDFfTlVNX0NORiwKKworICAgIC8qIE1TR1MgRlJPTSBTT0MgKi8KKyAgICBNU0dfSURfU01TQUxfU09DX1JFR19QT1JUX1JFUSwKKworICAgIE1TR19JRF9TTVNBTF9UUjJfRVhQSVJFX0lORCwKKworICAgIE1TR19JRF9MNENTTVNBTF9DQl9NU0dfUkVNT1ZBTF9SRVEsCisgICAgTVNHX0lEX0w0Q1NNU0FMX1VQREFURV9TTVNfT1ZFUl9TR1NfQ0ZHX1JFUSwKKyAgICBNU0dfSURfTDRDU01TQUxfQ09ORklHX0NCX0ZPUl9EVVBMRVhfTU9ERV9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gQVRQICovCisgICAgTVNHX0lEX0FUUF9TTVNBTF9DNUdTTVNfUkVRLAorCisKKyAgICBNU0dfSURfU01TQUxfSU1DU01TX0lNU19NVF9TTVNfRU5EX0lORCwKKyAgICBNU0dfSURfTDRDU01TQUxfU01TX0VORF9JTkQsCisKKyAgICBNU0dfSURfTDRDU01TQUxfRU1UU01TX1JFUSwKKworICAgIE1TR19JRF9TTVNBTF9DT0RFX0VORCwKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLSBTTVNBTF9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9TTVNBTF9DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfU01VX0NPREVfQkVHSU4gKQorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tU01VX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX0w0Q1NNVV9TVEFSVF9SRVEgPSBNU0dfSURfU01VX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0w0Q1NNVV9BUFBfU1RBUlRfUkVRLAorICAgIE1TR19JRF9MNENTTVVfU0VDVVJJVFlfUkVRLAorICAgIE1TR19JRF9MNENTTVVfQVBQX1NFQ1VSSVRZX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1NFVF9QRVJTT05BTElaQVRJT05fUkVRLCAvKiBTTUwgKi8KKyAgICBNU0dfSURfTDRDU01VX0dFVF9TSEFSRURfS0VZX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1VQREFURV9TTEJfUkVRLAorICAgIE1TR19JRF9MNENTTVVfUkVTRVRfU0xCX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX0dFVF9TTEJfVkVSU0lPTl9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9HRVRfU0lNX0xPQ0tfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1VQREFURV9OV19USU1FX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1NNTF9TVEFUVVNfUkVRLCAvKiBTTUwgKi8KKyAgICBNU0dfSURfTDRDU01VX1BMTU5fU0VMX1dSSVRFX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1NJTV9BQ0NFU1NfUkVRLAorICAgIE1TR19JRF9MNENTTVVfUFVDVF9XUklURV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9QVUNUX1JFQURfUkVRLAorICAgIE1TR19JRF9MNENTTVVfQ1NQX1JFQURfUkVRLAorICAgIE1TR19JRF9MNENTTVVfU01TX0RFUEVSU09OQUxJWkFUSU9OX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX0RJQUxfTU9ERV9SRVEsCisgICAgTVNHX0lEX1VJTV9TSU1fUElOX1NZTkNfSU5ELAorICAgIE1TR19JRF9TTVVfRFVNUF9TTUxfQ09OVEVYVF9JTkQsCisgICAgTVNHX0lEX0w0Q1NNVV9VVF9TRVRfTk9OQ0VfUkVRLAorICAgIE1TR19JRF9MNENTTVVfVVRfU0lHX1ZFUklGWV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9TTF9VUERBVEVfQkxPQl9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9TTF9VUERBVEVfQkxPQl9DTkYsCisgICAgTVNHX0lEX0w0Q1NNVV9TTF9HRVRfU0lNX0xPQ0tfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1NMX0dFVF9TSU1fTE9DS19TVEFUVVNfQ05GLAorICAgIE1TR19JRF9MNENTTVVfVVBEQVRFX0dCTE9CX0xPQ0tfUlVMRV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9VUERBVEVfR0JMT0JfTE9DS19SVUxFX0NORiwKKyAgICBNU0dfSURfTDRDU01VX1VQREFURV9HQkxPQl9EQVRBX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1VQREFURV9HQkxPQl9EQVRBX0NORiwKKyAgICBNU0dfSURfTDRDU01VX0dCTE9CX0RFVl9MT0NLX1ZFUklGWV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9HQkxPQl9ERVZfTE9DS19WRVJJRllfQ05GLAorICAgIE1TR19JRF9MNENTTVVfVVBEQVRFX0dCTE9CX0RFVl9MT0NLX0FMR09fUkVRLAorICAgIE1TR19JRF9MNENTTVVfVVBEQVRFX0dCTE9CX0RFVl9MT0NLX0FMR09fQ05GLAorICAgIE1TR19JRF9MNENTTVVfVVBEQVRFX0dCTE9CX0lNRUlfUkVRLAorICAgIE1TR19JRF9MNENTTVVfVVBEQVRFX0dCTE9CX0lNRUlfQ05GLAorICAgIE1TR19JRF9MNENTTVVfR0VUX0dCTE9CX0RFVl9MT0NLX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9HRVRfR0JMT0JfREVWX0xPQ0tfU1RBVFVTX0NORiwKKyNpZmRlZiBfX0NVU1RfU01MX1JVTEVfXworICAgIE1TR19JRF9MNENTTVVfVVBEQVRFX0dCTE9CX0NVU1RfUlVMRV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9VUERBVEVfR0JMT0JfQ1VTVF9SVUxFX0NORiwKKyNlbmRpZgorICAgIE1TR19JRF9MNENTTVVfU01MX0dFVF9MT0NLX0NPREVTX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1NNTF9HRVRfTE9DS19DT0RFU19DTkYsCisgICAgTVNHX0lEX0w0Q1NNVV9TRVRfQ1VTVE9NX1BFUlNPTkFMSVpBVElPTl9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9TRVRfQ1VTVE9NX1BFUlNPTkFMSVpBVElPTl9DTkYsCisgICAgTVNHX0lEX1NNVV9VVF9EWU5BTUlDX1NJTU1FTE9DS19SRVEsCisgICAgTVNHX0lEX1NNVV9VVF9EWU5BTUlDX1NJTU1FTE9DS19DTkYsCisjaWZkZWYgX19DQVJSSUVSX1JFU1RSSUNUSU9OX18KKyAgICBNU0dfSURfTDRDU01VX1NFVF9DQVJSSUVSX1JFU1RSSUNUSU9OX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX0NBUlJJRVJfUkVTVFJJQ1RJT05fU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1NFVF9DUlJTVF9TRUNVUkVfREFUQV9SRVEsCisjZW5kaWYgLyogX19DQVJSSUVSX1JFU1RSSUNUSU9OX18gKi8KKyAgICBNU0dfSURfTDRDU01VX1ZaV19SU1VfSU5JVElBVEVfUkVRLAorICAgIE1TR19JRF9MNENTTVVfVlpXX1JTVV9SRVNQT05TRV9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9WWldfUlNVX0RFTEFZX1RJTUVSX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1ZaV19SU1VfREFUQV9SRVNFVF9SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9PUDEyOV9VUERBVEVfU0lNTE9DS19TRVRUSU5HX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX09QMTI5X0dFVF9TSU1MT0NLX0RBVEFfUkVRLAorICAgIE1TR19JRF9MNENTTVVfR0VUX01PREVNX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9HRVRfQVBJX1ZFUlNJT05fUkVRLAorICAgIE1TR19JRF9MNENTTVVfVE1PX1JTVV9DUkVBVEVfVU5MT0NLX01TR19SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9UTU9fUlNVX1BST0NFU1NfTVNHX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX1RNT19SU1VfR0VUX1NNTF9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9MNENTTVVfVE1PX1JTVV9HRVRfUkVHX01TR19SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9UTU9fUlNVX0dFVF9BREFQVEVSX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9UTU9fUlNVX1VQREFURV9CTE9CX1JFUSwKKyAgICBNU0dfSURfTDRDU01VX0dFTkVSQVRFX0hDS19SRVEsCisgICAgTVNHX0lEX0w0Q1NNVV9HRU5FUkFURV9IQ0tfQ05GLAorCisjaWZkZWYgX19NQklNX01TX05FVFdPUktfQkxBQ0tMSVNUX18KKyAgICBNU0dfSURfTDRDU01VX1NFVF9OV19CTEFDS19MSVNUX1JFUSwKKyNlbmRpZgorCisgICAgTVNHX0lEX1NNVV9DT0RFX0VORCwKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVNNVV9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9TTVVfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1VFTV9DT0RFX0JFR0lOICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVVFTV9NU0dfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9EUlZVRU1fQVVESU9fUExBWV9GSU5JU0hfSU5EID0gTVNHX0lEX1VFTV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9EUlZVRU1fS0VZUEFEX0lORCwKKyAgICBNU0dfSURfRFJWVUVNX1BPV0VSX09OX0lORCwKKyAgICBNU0dfSURfRFJWVUVNX1BNSUNfSU5ELAorICAgIE1TR19JRF9EUlZVRU1fR1BJT19ERVRFQ1RfSU5ELAorICAgIE1TR19JRF9EUlZVRU1fUlRDX1BFUklPRF9JTkQsCisgICAgTVNHX0lEX0RSVlVFTV9VU0JERVRFQ1RfSU5ELAorICAgIE1TR19JRF9EUlZVRU1fQ0NDSV9FTV9SRVFfSU5ELAorICAgIE1TR19JRF9MNENVRU1fQVVESU9fUExBWV9CWV9OQU1FX1JFUSwKKyAgICBNU0dfSURfTDRDVUVNX0FVRElPX1NUT1BfQllfTkFNRV9SRVEsCisgICAgTVNHX0lEX0w0Q1VFTV9BVURJT19QTEFZX0JZX1NUUklOR19SRVEsCisgICAgTVNHX0lEX0w0Q1VFTV9BVURJT19TVE9QX0JZX1NUUklOR19SRVEsCisgICAgTVNHX0lEX0w0Q1VFTV9TVEFSVFVQX1JFUSwKKyAgICBNU0dfSURfTDRDVUVNX1NFVF9BVURJT19QUk9GSUxFX1JFUSwKKyAgICBNU0dfSURfTDRDVUVNX1NFVF9BVURJT19QQVJBTV9SRVEsCisgICAgTVNHX0lEX0w0Q1VFTV9TRVRfSFdfTEVWRUxfUkVRLAorICAgIE1TR19JRF9VRU1fQ09ERV9FTkQgPSBNU0dfSURfTDRDVUVNX1NFVF9IV19MRVZFTF9SRVEsCisKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9VRU1fQ09ERV9UQUlMICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVVFTV9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUkFDX0NPREVfQkVHSU4gKQorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tUkFDX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLSovCisgICBNU0dfSURfTDRDUkFDX0FDVF9SRVEgPSBNU0dfSURfUkFDX0NPREVfQkVHSU4sCisgICBNU0dfSURfTDRDUkFDX1JFR19SRVEsCisgICBNU0dfSURfTDRDUkFDX1BTX1JFR19SRVEsCisgICBNU0dfSURfTDRDUkFDX0RFUkVHX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfUExNTl9MSVNUX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfQ0xBU1NfQ0hBTkdFX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfQUJPUlRfTElTVF9SRVEsCisgICBNU0dfSURfTDRDUkFDX1JGT0ZGX1JFUSwgLyogUmlwcGxlICovCisgICBNU0dfSURfTDRDUkFDX1NJTV9TVEFUVVNfVVBEQVRFX1JFUSwgLy9fX0dFTUlOSV9fCisgICBNU0dfSURfTDRDUkFDX1NFVF9ST0FNSU5HX01PREVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19QTE1OX1NFQVJDSF9SRVEgLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfUkFUX01PREVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19QTE1OX0xJU1RfU1RPUF9SRVEsCisgICBNU0dfSURfTDRDUkFDX1NFVF9QUkVGRVJfUkFUX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfR0VUX1BSRUZFUl9SQVRfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19FTkRfUFNfREFUQV9TRVNTSU9OX1JFUSAsIC8vbXRrMDI0NzU6IGZvciBGYXN0IERvcm1hbmN5CisgICBNU0dfSURfTDRDUkFDX0NTR19MSVNUX1JFUSwgLy9tdGswMjQ3NTogZm9yIFJlbDggQ1NHIGZlYXR1cmUKKyAgIE1TR19JRF9MNENSQUNfQ1NHX0xJU1RfU1RPUF9SRVEsIC8vbXRrMDI0NzU6IGZvciBSZWw4IENTRyBmZWF0dXJlCisgICBNU0dfSURfTDRDUkFDX1NVU1BfUkVTVV9VUERBVEVfUkVRLCAvL210azAzNjQzOiBmb3IgQ1QgbmV0d29yayBzZWxlY3Rpb24gcmVxdWlyZW1lbnQKKyAgIE1TR19JRF9MNENSQUNfQUJPUlRfRU1FUkdFTkNZX1BMTU5fU0VBUkNIX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfQ1VTVE9NX1BMTU5fTElTVF9VUERBVEVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19HRVRfQ1VTVE9NX1BMTU5fTElTVF9SRVEsCisgICAvL0FkZCBmb3IgTFRFIG11bHRpbW9kZQorICAgTVNHX0lEX0w0Q1JBQ19DU0ZCX1BBR0VfQ09ORklHX1JFUSwKKyAgIE1TR19JRF9HTU1SRUdfQ1NGQl9QQUdFX0lORCwKKyAgIE1TR19JRF9MNENSQUNfQ1NGQl9QQUdFX1JTUCwKKyAgIC8vRW5kIG9mIExURSBtdWx0aW1vZGUKKworICAgLyogTFRFIG11bHRpbW9kZSBmb3IgVUUgbW9kZSAqLworICAgTVNHX0lEX0w0Q1JBQ19TRVRfU01TX1BSRUZFUkVOQ0VfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfVk9JQ0VfRE9NQUlOX1BSRUZFUkVOQ0VfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfVUVfVVNBR0VfU0VUVElOR19SRVEsCisgICBNU0dfSURfTDRDUkFDX1NFVF9VRV9NT0RFX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX0lNU19WT0lDRV9BVkFJTEFCSUxJVFlfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfSU1TX1NNU19BVkFJTEFCSUxJVFlfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19JTVNfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19JTVNfQ09ORklHX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfSU1TX1JFR19TVEFSVF9SRVEsCisgICBNU0dfSURfTDRDUkFDX1NJTV9SRUFEWV9JTkQsCisgICBNU0dfSURfTDRDUkFDX1NJTV9FUlJPUl9JTkQsCisgICBNU0dfSURfTDRDUkFDX1NFVF9NTV9JTVNfVk9JQ0VfVEVSTUlOQVRJT05fUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfU01TX09WRVJfU0dTX1JFUSwKKyAgIC8qIGVuZCBvZiBMVEUgbXVsdGltb2RlIGZvciBVRSBtb2RlICovCisKKyAgIE1TR19JRF9MNENSQUNfU0VUX1JFQ09WRVJZX1NFQVJDSF9USU1FUl9SRVEsCisgICBNU0dfSURfTDRDUkFDX0dFVF9SRUNPVkVSWV9TRUFSQ0hfVElNRVJfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19EVVBMRVhfTU9ERV9SRVFVSVJFRF9SRVEsCisKKyAgIE1TR19JRF9SQUNfR01TU19TRVRfUkVDT1ZFUllfU0VBUkNIX1RJTUVSX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19HRVRfUkVDT1ZFUllfU0VBUkNIX1RJTUVSX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19EVVBMRVhfTU9ERV9SRVFVSVJFRF9DTkYsCisKKyAgIE1TR19JRF9MNENSQUNfRVBTX0FUVEFDSF9ORUVERURfUkVKX1JTUCwKKyAgIC8qIGFkZCBmb3IgNjI5MSBNVEMgKi8KKyAgIE1TR19JRF9MNENSQUNfSU1TX0NBTExfSU5GT19SRVEsCisgICAvKiBhZGQgZm9yIDYyOTEgTVRDICovCisKKyAgIE1TR19JRF9MNENSQUNfSU1TX1NDTV9SRVEsCisgICBNU0dfSURfTDRDUkFDX0dFVF9MQVNUX1JBVF9TRUxFQ1RfSU5EX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX1BHQ0hFQ0tfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfUEdDSEVDS0VYVF9SRVEsCisgICBNU0dfSURfTDRDUkFDX1ZPTFRFX1NUQVRVU19VUERBVEVfUkVRLAorCisgICBNU0dfSURfTDRDUkFDX01NRENfUkVDT1ZFUllfU0VBUkNIX1JFUSwKKworICAgTVNHX0lEX0w0Q1JBQ19BQ1RJVkVfU0lNX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX0NUX01PREVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19DTEVBUl9NUlVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfTVJVX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX0FVWF9QTE1OX1JFUSwKKworICAgLy8gZm9yIFNPTlkgcmVxdWlyZW1lbnQsIG5vdCByZS1lbmFibGUgRS1VVFJBTiBhZnRlciBDR0FUVD0wCisgICBNU0dfSURfTDRDUkFDX0RJU0FCTEVfRVVUUkFOX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX1JPQU1JTkdfREFUQV9DT05GSUdfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfSFZPTFRFX01PREVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19FTUNfU0VTU0lPTl9TVEFSVF9SRVEsCisgICBNU0dfSURfTDRDUkFDX0VNQ19TRVNTSU9OX1NUT1BfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19PTUFETV9VUERBVEVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19QVE1TSV9DTEVBUl9SRVEsCisgICBNU0dfSURfTDRDUkFDX0xPQ0lfQ0xFQVJfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ181R1NMT0NJX0NMRUFSX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfREFUQV9BTExPV19SRVEsCisgICBNU0dfSURfTDRDUkFDX1ZaV19BRE1JTl9BUE5fU0VUVElOR19OT1RJRllfUkVRLAorICNpZmRlZiBfX0dFTUlOSV9fCisgICBNU0dfSURfTDRDUkFDX1JTSU1fQVVUSF9BQk9SVF9SRVEsCisgI2VuZGlmCisKKyAgIC8qIGFkZCBmb3IgTlNTQUkgbmV0d29yayBzbGljaW5nICovCisgICBNU0dfSURfTDRDUkFDX0dFVF9OU1NBSV9SRVEsCisgICBNU0dfSURfTDRDUkFDX1NFVF9OU1NBSV9SRVEsCisgICBNU0dfSURfTDRDUkFDX1NFVF9QUkVGX05TU0FJX1JFUSwKKyAgIC8qIGVuZCBvZiBOU1NBSSBuZXR3b3JrIHNsaWNpbmcgKi8KKyNpZiBkZWZpbmVkKF9fRUNBTExfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTkdfRUNBTExfU1VQUE9SVF9fKQorICAgTVNHX0lEX0w0Q1JBQ19TRVRfVElNRVJfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19FQ0FMTF9SRUdJU1RSQVRJT05fU1RBVEVfSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfRUNBTExfUkVHSVNUUkFUSU9OX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX0VDQUxMX1JFR0lTVFJBVElPTl9DTkYsCisjZW5kaWYKKyAgIE1TR19JRF9MNENSQUNfU1VTUEVORF9FR1JFR19VUERBVEVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19FTUVSR0VOQ1lfU0VSVklDRV9SRVEsCisgICBNU0dfSURfTDRDUkFDX0VNRVJHRU5DWV9TRVJWSUNFX0ZBTExCQUNLX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfSU1TX1BETl9BQ1RJVkFUSU9OX1JFUSwKKyAgIE1TR19JRF9HTU1SRUdfUExNTl9MSVNUX0lORCwgLy9ub3QgdXNlZAorICAgTVNHX0lEX0dNTVJFR19OV19JTkZPX0lORCwKKyAgIE1TR19JRF9HTU1SRUdfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9HTU1SRUdfQ0VMTF9JTkZPX1VQREFURV9JTkQsCisgICBNU0dfSURfR01NUkVHX1BTX1NFUlZJQ0VfSU5GT19JTkQsIC8qIEZvciBHUFJTIE1NSSBpbmZvcm1hdGlvbi4gKi8KKyAgIE1TR19JRF9HTU1SRUdfQ0lQSEVSX0lORCwKKyAjaWZkZWYgX19HRU1JTklfXworICAgTVNHX0lEX0dNTVJFR19SU0lNX0FVVEhfQUJPUlRfQ05GLAorICAgTVNHX0lEX0dNTVJFR19BVVRIX0ZJTklTSF9JTkQsCisgICBNU0dfSURfR01NUkVHX1ZJUlRVQUxfTU9ERV9JTkQsCisgI2VuZGlmCisgICBNU0dfSURfR01NUkVHX0RFRElDQVRFRF9NT0RFX0lORCwgLyogQ0hfTGlhbmcgMjAwNS8wNS8zMSBIb21lem9uZSBmZWF0dXJlICovCisgICBNU0dfSURfR01NUkVHX1NFQVJDSF9OT1JNQUxfRklOSVNIX0lORCwgLy9fX0dFTUlOSV9fIG5vdCB1c2VkCisjaWYgZGVmaW5lZChfX0dFTUlOSV9fKSAgIC8qIGZvciBSQUMyIEdFTUlOSSAqLworICAgTVNHX0lEX0dNTVJFR19QT1dFUk9OX1NFQVJDSF9GSU5JU0hfSU5ELCAvL19fR0VNSU5JX18gKE1PTlpBKQorI2VuZGlmCisgICBNU0dfSURfR01NUkVHX1JSX1NFUlZJQ0VfU1RBVFVTX0lORCwgIC8vX19HRU1JTklfXyAsMjAwODAyMTcKKyAgIE1TR19JRF9HTU1SRUdfU1VTUEVORF9TVEFUVVNfSU5ELCAgLy9fX0dFTUlOSV9fICwyMDA4MDIxNworICAgLyogM0cgKi8KKyAgIE1TR19JRF9HTU1SRUdfU0VUX1JPQU1JTkdfTU9ERV9DTkYsCisgICBNU0dfSURfR01NUkVHX1NVU1BfUkVTVV9VUERBVEVfQ05GLAorICAgTVNHX0lEX0dNTVJFR19TRVRfUFJFRkVSX1JBVF9DTkYsCisgICBNU0dfSURfR01NUkVHX1BMTU5fTElTVF9DTkYsIC8qIGZvciBNT05aQSAqLworICAgTVNHX0lEX0dNTVJFR19QTE1OX0xJU1RfU1RPUF9DTkYsIC8qIGZvciBNT05aQSAqLworICAgTVNHX0lEX0dNTVJFR19DU0dfTElTVF9DTkYsCisgICBNU0dfSURfR01NUkVHX0NTR19MSVNUX1NUT1BfQ05GLAorICAgTVNHX0lEX0dNTVJFR19CQU5EX1NFTF9DTkYsCisgICBNU0dfSURfR01NUkVHX0VORF9QU19EQVRBX1NFU1NJT05fQ05GLCAvL210azAyNDc1OiBmb3IgRmFzdCBEb3JtYW5jeQorICAgTVNHX0lEX0dNTVJFR19OV19FQ0NfSU5ELCAgLyogX19SRUw1X18gKi8KKyAgIE1TR19JRF9HTU1SRUdfTldfUkVKRUNUX0lORCwKKyAgIE1TR19JRF9HTU1SRUdfTldfRkVBVFVSRV9JTkQsCisgICBNU0dfSURfR01NUkVHX05PTl8zR1BQX05XX1BPTElDSUVTX0lORCwKKworICAgTVNHX0lEX01NSUFTX0NFTExfUE9XRVJfTEVWRUxfSU5ELAorICAgTVNHX0lEX01NSUFTX1BLVF9UUkFOU0ZFUl9NT0RFX0lORCwgLypCeXJvbjogMjAwNS8wNi8wNy86IHNlbmQgdGhlIHBrdCB0cmFuc2ZlciBtb2RlIGluZGljYXRpb24gdG8gUkFDKi8KKyAgIE1TR19JRF9HTU1SRUdfRU5EX1BTX0RBVEFfU0VTU0lPTl9JTkQsIC8vbXRrODAzNzA6IGZvciBGT1AgcmVxdWVzdCBGYXN0IERvcm1hbmN5CisjaWZkZWYgX19MVEVfUkFUX18KKyAgICBNU0dfSURfRU1NUkVHX0RJU0FCTEVfTldfTE9TU19PUFRJTUlaRV9JTkQsCisgICAgTVNHX0lEX0VNTVJFR19DRUxMX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX05XX0lORk9fSU5ELAorICAgIE1TR19JRF9FTU1SRUdfRVBTX0FUVEFDSF9ORUVERURfSU5ELAorICAgIE1TR19JRF9FTU1SRUdfTldfRUNDX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX05PTl8zR1BQX05XX1BPTElDSUVTX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX1BFRVJfUkVKRUNUX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX0VNQ19BVFRBQ0hfSU5ELAorICAgIE1TR19JRF9FTU1SRUdfRU1DX0FUVEFDSF9DTkYsCisgICAgTVNHX0lEX0VNTVJFR19FTUNfREVUQUNIX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX05XX0ZFQVRVUkVfSU5ELAorICAgIE1TR19JRF9FTU1SRUdfTldfUkVKRUNUX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX0NTX0RPTUFJTl9OT1RfQVZBSUxBQkxFX0lORCwKKyAgICBNU0dfSURfRU1NUkVHX0lNU19TQ01fSU5GT19DTkYsCisjaWZkZWYgX19HRU1JTklfXworICAgIE1TR19JRF9FTU1SRUdfUlNJTV9BVVRIX0ZJTklTSF9JTkQsCisgICAgTVNHX0lEX0VNTVJFR19SU0lNX0FVVEhfQUJPUlRfQ05GLAorI2VuZGlmIC8qIF9fR0VNSU5JX18gKi8KKyNlbmRpZiAvKiBfX0xURV9SQVRfXyAqLworCisgICBNU0dfSURfUkFDX0dNU1NfU0VUX1JPQU1JTkdfTU9ERV9DTkYsIC8qIDNHICovCisgICBNU0dfSURfUkFDX0dNU1NfU0VUX1BSRUZFUl9SQVRfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX1BMTU5fU0VBUkNIX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19QTE1OX0xJU1RfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX1BMTU5fTElTVF9TVE9QX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19DU0dfTElTVF9DTkYsCisgICBNU0dfSURfUkFDX0dNU1NfQ1NHX0xJU1RfU1RPUF9DTkYsCisgICBNU0dfSURfUkFDX0dNU1NfUExNTl9TVEFUVVNfSU5ELAorICAgTVNHX0lEX1JBQ19HTVNTX1NVU1BFTkRfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19QTE1OX0xJU1RfSU5ELAorICAgTVNHX0lEX1JBQ19HTVNTX1NVU1BfUkVTVV9VUERBVEVfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX0dFVF9DVVNUT01fUExNTl9MSVNUX0NORiwKKworICAgTVNHX0lEX1JBQ19HTVNTX0lNU19TRVJWSUNFX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19SRVNUQVJUX0NMRUFSX0NPREVfMzNfUFJPQ19JTkQsCisgICBNU0dfSURfUkFDX0dNU1NfQ1NfRE9NQUlOX0FWQUlMQUJJTElUWV9JTkQsCisgICBNU0dfSURfUkFDX0dNU1NfUkVQT1JURURfUkFUX0NIQU5HRV9JTkQsCisgICBNU0dfSURfTDRDUkFDX01EX1NJTV9DT05GSUdfUkVRLAorICAgTVNHX0lEX1JBQ19HTVNTX1JBVF9TRUxFQ1RfSU5ELAorICAgTVNHX0lEX1JBQ19HTVNTX0FUVEFDSF9SRVNVTFRfSU5ELAorICAgTVNHX0lEX1JBQ19HTVNTX0RVUExFWF9NT0RFX0NIQU5HRV9JTkQsCisgICBNU0dfSURfTDRDUkFDX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsCisgICBNU0dfSURfUkFDX0dNU1NfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKKyAgIE1TR19JRF9FTU1SRUdfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKKyAgIE1TR19JRF9HTU1SRUdfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKKworICAgTVNHX0lEX1JBQ19HTVNTX1JQTE1OX0lORCwgICAgLyogR2V0IFJQTE1OICovCisKKyAgIE1TR19JRF9SQUNfR01TU19TRVRfQ1RfTU9ERV9DTkYsCisgICBNU0dfSURfUkFDX0dNU1NfQUNUSVZFX1NJTV9JTkZPX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19DMktfREVUQUNIX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19TRVRfV01fUE9MSUNZX0NORiwKKyAgIE1TR19JRF9MNENSQUNfU0VUX1dNX1BPTElDWV9SRVEsCisgICBNU0dfSURfUkFDX0dNU1NfU0VUX0FVWF9QTE1OX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19TRVRfTVJVX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19DTEVBUl9NUlVfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX0VNQ19TRVJWSUNFX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19TVE9QX1NFQVJDSF9JTkQsCisgICBNU0dfSURfUkFDX0dNU1NfQzJLX1NFUlZJQ0VfSU5ELAorICAgTVNHX0lEX1JBQ19HTVNTXzFYX0NPTk5fU1RBVFVTX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19TRVRfSFZPTFRFX01PREVfQ05GLAorICAgTVNHX0lEX0w0Q1JBQ19WWldNUlVfVVBEQVRFX1JFUSwKKyAgIE1TR19JRF9SQUNfR01TU19WWldNUlVfVVBEQVRFX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU18xWFJUVF9DRUxMX0xJU1RfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX0dFVF9QUkVGRVJfUkFUX0NORiwKKworICAgTVNHX0lEX0w0Q1JBQ19HTVNTX1NFVF9UV19NT0RFX1JFUSwKKyAgIE1TR19JRF9SQUNfR01TU19DMktfU0lMRU5UX1JFRElBTF9JTkQsCisgICBNU0dfSURfUkFDX0dNU1NfVFJZX1NXSVRDSF9SQVRfUkVTVUxUX0lORCwKKworLy8jaWZkZWYgX19MVEVfUjExX18KKyAgIE1TR19JRF9FVkFMX1JBQ19DQV9JTkZPX0lORCwKKyAgIE1TR19JRF9FVkFMX1JBQ19NVF9QQUdFX0lORCwKKyAgIE1TR19JRF9FVkFMX1JBQ19TRU5EX0VTUl9JTkQsCisvLyNlbmRpZgorICAgTVNHX0lEX0w0Q1JBQ19DQUxMX1NUQVRVU19SRVEsCisgICBNU0dfSURfTDRDUkFDX0NTR19BVVRPX1NFQVJDSF9NT0RFX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX0ZJUlNUX0NBTVBfT05fUFJFRkVSX1JBVF9SRVEsCisgICBNU0dfSURfTDRDUkFDX0RVUExFWF9NT0RFX0NIQU5HRV9GSU5JU0hfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19OV19SRUdfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19SRUdfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19PTUFETV9VUERBVEVfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX0MyS19DRUxMX0lORk9fSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19BUkFMX1VQREFURV9SRVEsCisgICBNU0dfSURfTDRDUkFDX1NDUkVFTl9PTl9SRVEsCisgICBNU0dfSURfR01NUkVHX1BBQ0tFVF9QQUdJTkdfSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19QQUNLRVRfUEFHSU5HX0lORCwKKy8vI2lmIGRlZmluZWQoX19GQVNUX1JPQU1JTkdfU0VBUkNIX18pCisgICBNU0dfSURfUkFDX0dNU1NfUExNTl9GT1VORF9JTkQsCisvLyNlbmRpZgorICAgTVNHX0lEX0w0Q1JBQ19DU19WT0lDRV9DQUxMX1BST1RFQ1RJT05fUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19DQU1QRURfQ0VMTF9JTkZPX0lORCwKKyAgIE1TR19JRF9MNENSQUNfUlJDX0NPTk5fUkVMX0lORCwKKyAgIE1TR19JRF9HTU1SRUdfUlJDX0NPTk5fUkVMX0NBVVNFX0lORCwKKworICAgTVNHX0lEX0w0Q1JBQ19JTVNfREVSRUdfU1RBUlRfUkVRLAorICAgTVNHX0lEX1JBQ19HTVNTX0MyS19DU0ZCX1NUQVJUX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19IVk9MVEVfTU9ERV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19EQVRBX1NFUlZJQ0VfU1RBVFVTX1VQREFURV9SRVEsCisgICBNU0dfSURfUkFDX0dNU1NfSU5WQUxJRF9TSU1fUkVDT1ZFUl9JTkQsCisKKyAgIC8qIGFkZCBmb3IgQ1QzRyBnbG9iYWwgbW9kZSBhdHRhY2ggKi8KKyAgIE1TR19JRF9MNENSQUNfQ1QzR19JTlNFUlRFRF9JTkQsCisgICBNU0dfSURfTDRDUkFDX0NBX0lORk9fSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19SRVNFVF9PVEFfQ1RYVF9SRVEsCisgICBNU0dfSURfUkFDX0dNU1NfU1VTUEVORF9FR1JFR19VUERBVEVfSU5ELAorICAgTVNHX0lEX1JBQ19HTVNTX1NVU1BFTkRfRUdSRUdfVVBEQVRFX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19NQU5VQUxfU0VBUkNIX05PVF9BTExPV19JTkQsCisgICAvKm10azEzNzgyOiBbTU9MWTAwMjY3NjM5XSBwb3J0aW5nIGZyb20gTFIxMSB0byBVTU9MWUEqLworICAgTVNHX0lEX1JBQ19HTVNTX1dBSVRfRk9SX0lNU19SRUdfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9SQUNfR01TU19HRVRfTEFTVF9SQVRfU0VMRUNUX0lORF9DTkYsCisgICAvL0NETUEgbGVzcyBwb3J0aW5nCisgICBNU0dfSURfTDRDUkFDX0lNU19USU1FUl9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgIE1TR19JRF9SQUNfR01TU19JTVNfQ0FMTF9FTkRfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9MNENSQUNfQUJPUlRfRU5XU0VMX1NFQVJDSF9SRVEsCisgICBNU0dfSURfTDRDUkFDX0lNU19FVkVOVF9VUERBVEVfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfSU1TX1JPQU1JTkdfQ09ORklHX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfR01TU19TRVRfUExNTl9CQVJSSU5HX1RJTUVSX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfR01TU19HRVRfUExNTl9CQVJSSU5HX1RJTUVSX1JFUSwKKyAgIE1TR19JRF9SQUNfR01TU19TRVRfUExNTl9CQVJSSU5HX1RJTUVSX0NORiwKKyAgIE1TR19JRF9SQUNfR01TU19HRVRfUExNTl9CQVJSSU5HX1RJTUVSX0NORiwKKyNpZmRlZiBfX0dFTUlOSV9fCisgICBNU0dfSURfTDRDUkFDX1JTSU1fU0VUX1BTX09OTFlfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19SU0lNX0FLQV9TVEFUVVNfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19SU0lNX0FLQV9SU0lNX0FDQ0VTU19GT1JfQVVUSF9ET1dOTE9BRF9SRVEsCisgICBNU0dfSURfTDRDX1JBVERNX1JTSU1fQUtBX1JTSU1fQUNDRVNTX0ZPUl9BVVRIX0RPV05MT0FEX1JFUSwKKyAgIE1TR19JRF9MNENfUkFURE1fUlNJTV9BVVRIX0FCT1JUX1JFUSwKKyNlbmRpZgorICAgLypUTU8gZGlzYWJsZSAyRyovCisgICBNU0dfSURfTDRDUkFDX1JBVF9ESVNBQkxFX0NPTkZJR19SRVEsCisgICBNU0dfSURfTDRDUkFDX1NFVF9NU19TVl9SRVEsCisKKyAgIE1TR19JRF9MNENSQUNfRlBMTU5fQUNUSU9OX1JFUSwKKyAgIC8vIFJlcG9ydGluZyBOVyBhYm5vcm1hbCByZWplY3QgY2F1c2VzCisgICBNU0dfSURfUkFDX0dNU1NfTldfUkVHX1JFSl9JTkQsCisgICBNU0dfSURfTDRDUkFDX0NFTExVTEFSX05FVFdPUktfQ09ORklHX1JFUSwKKyAgIE1TR19JRF9HTU1SRUdfQ1NGQl9SRVNVTFRfSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19WR19PUFRJT05fVVBEQVRFX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfVUFDX1BBUkFNX0NIRUNLX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfTlJfSU1TX1NFUlZJQ0VfU1RBVFVTX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfVUFDX0FCT1JUX1JFUSwKKyAgIE1TR19JRF9SQUNfR01TU19JTExFR0FMX01FX0lORCwKKworICAgLyogUkFDIC0+IFZETSAqLworICAgTVNHX0lEX1ZETV9SQUNfTldfRkVBVFVSRV9JTkQsCisKKyAgIE1TR19JRF9MNENSQUNfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0NSRUVOX09GRl9SRVEsCisKKyAgIC8qIFJBQyA8LS0+IFZHTU0gKi8KKyAgIE1TR19JRF9SQUNfVkdNTV9JTklUX0NORiwgLy8gYWNjb3JkaW5nIHRvIEdlbjk3IGNvZGluZyBjb252ZW50aW9uLCBNc2dJRC9TdHJ1Y3QgZGVmaW5lZCBhdCBTZXJ2aWNlIHByb3ZpZGVyCisgICBNU0dfSURfUkFDX1ZHTU1fTldfSU5GT19JTkQsCisgICBNU0dfSURfUkFDX1ZHTU1fTldfRkVBVFVSRV9TVVBQT1JUX0lORCwKKyAgIE1TR19JRF9SQUNfVkdNTV9OV19FQ0NfSU5ELAorICAgTVNHX0lEX1JBQ19WR01NX05XX1JFSkVDVF9JTkQsCisgICBNU0dfSURfUkFDX1ZHTU1fSU1TX1VBQ19DTkYsCisgICBNU0dfSURfUkFDX1ZHTU1fSU1TX1VBQ19BTExFVklBVElPTl9JTkQsCisgICBNU0dfSURfUkFDX1ZHTU1fSU1TX0NPTkZJR19JTkQsCisgICBNU0dfSURfUkFDX1ZHTU1fRU1FUkdFTkNZX1NFUlZJQ0VfQ05GLAorICAgTVNHX0lEX1JBQ19WR01NX0VNRVJHRU5DWV9TRVJWSUNFX0lORCwKKyAgIE1TR19JRF9SQUNfVkdNTV9FTUVSR0VOQ1lfU0VSVklDRV9GQUxMQkFDS19DTkYsCisgICBNU0dfSURfUkFDX1ZHTU1fQ0VMTF9JTkZPX1VQREFURV9JTkQsCisgICBNU0dfSURfUkFDX1ZHTU1fR0VUX05TU0FJX0NORiwKKyAgIE1TR19JRF9SQUNfVkdNTV9TRVRfTlNTQUlfQ05GLAorICAgTVNHX0lEX1JBQ19WR01NX1NFVF9QUkVGX05TU0FJX0NORiwKKyAgIE1TR19JRF9SQUNfVkdNTV9QUk9DX0ZBSUxVUkVfSU5ELAorICAgTVNHX0lEX1JBQ19WR01NX05XX1BBUkFNU19JTkQsCisKKyAgIE1TR19JRF9MNENSQUNfVVNFUl9TRUxFQ1RFRF9NQUlOX1BTX1JFUSwKKyNpZmRlZiBfX05HX0VDQUxMX1NVUFBPUlRfXworICAgTVNHX0lEX0VNTV9TRVRfVElNRVJfUkVRLAorI2VuZGlmCisKKyAgIE1TR19JRF9MNENSQUNfVkdNTV9OV19QQVJBTVNfSU5ELAorCisgICBNU0dfSURfTDRDUkFDX0NBVVNFX0lORk9fSU5ELAorICAgTVNHX0lEX0dNTVJFR19DQVVTRV9JTkZPX0lORCwKKyAgIE1TR19JRF9FTU1SRUdfQ0FVU0VfSU5GT19JTkQsCisKKyAgIE1TR19JRF9MNENSQUNfSElHSF9QUklPX1NFQVJDSF9USU1FUl9DT05GSUdfUkVRLAorICAgTVNHX0lEX0w0Q1JBQ19TRVRfU0FWRV9SQUNfUFJFRkVSRU5DRV9SRVEsCisgICBNU0dfSURfTDRDUkFDX1NFVF9TQVZFX1JBQ19QUkVGRVJFTkNFX0NORiwKKyAgIE1TR19JRF9MNENSQUNfUExNTl9MSVNUX0FCT1JUX1JFUSwKKyAgIE1TR19JRF9SQUNfR01TU19QTE1OX1NDQU5fSU5ELAorICAgTVNHX0lEX0w0Q1JBQ19QTE1OX1NDQU5fSU5ELAorCisgICBNU0dfSURfR01NUkVHX0dQUlNfVFJBRkZJQ19DSEFOTkVMX1NUQVRVU19JTkQsCisKKyAgIE1TR19JRF9MNENSQUNfQVNfUExNTl9TRUFSQ0hfUkVQT1JUX0lORCwKKyNpZmRlZiBfX01CSU1fTVNfTkVUV09SS19CTEFDS0xJU1RfXworICAgTVNHX0lEX1JBQ19HTVNTX0ZQTE1OX0FDVElPTl9DTkYsCisgICBNU0dfSURfUkFDX0dNU1NfTldfQkxBQ0tfTElTVF9TVEFURV9JTkQsCisjZW5kaWYKKworI2lmIGRlZmluZWQoX19FQ0FMTF9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19OR19FQ0FMTF9TVVBQT1JUX18pCisgICBNU0dfSURfR01NUkVHX1NFVF9FQ0FMTF9SRUdJU1RSQVRJT05fQ05GLAorICAgTVNHX0lEX0dNTVJFR19FQ0FMTF9SRUdJU1RSQVRJT05fU1RBVEVfSU5ELAorI2VuZGlmCisgICBNU0dfSURfTDRDUkFDX1NFVF9BTExPV0VEX01DQ19MSVNUX1JFUSwKKyAgIE1TR19JRF9MNENSQUNfU0VUX0FMTE9XRURfTUNDX0xJU1RfQ05GLAorICAgTVNHX0lEX1JBQ19HTVNTX1NFVF9BTExPV0VEX01DQ19MSVNUX0NORiwKKworICAgTVNHX0lEX1JBQ19DT0RFX01BWCwvL25vdCB1c2VkLCBvbmx5IGZvciBNU0dfSURfUkFDX0NPREVfRU5EIHJlZmVyZW5jZQorICAgTVNHX0lEX1JBQ19DT0RFX0VORCA9IE1TR19JRF9SQUNfQ09ERV9NQVgtMSwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUkFDX0NPREVfVEFJTCApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVJBQ19NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tVVNBVF9NU0dfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLSovCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1VU0FUX01TR19DT0RFX0VORCAtLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVBIQl9NU0dfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1BIQl9DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfTDRDUEhCX1NUQVJUVVBfUkVRID0gTVNHX0lEX1BIQl9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9MNENQSEJfUkVBRF9SRVEsCisgICAgTVNHX0lEX0w0Q1BIQl9BRERfUkVRLAorICAgIE1TR19JRF9MNENQSEJfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTDRDUEhCX0RFTEVURV9SRVEsCisgICAgTVNHX0lEX0w0Q1BIQl9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9MNENQSEJfQVBQUk9WRV9SRVEsCisgICAgTVNHX0lEX0w0Q1BIQl9XUklURV9SRVEsCisgICAgTVNHX0lEX0w0Q1BIQl9VUERBVEVfTldfRUNDX1JFUSwgLy9tdGswMTYxNl8wNzA5MDU6IGZvciBSNSBFQ0MgY2F0ZWdvcnkKKyAgICBNU0dfSURfTDRDUEhCX1dSSVRFX1VTSU1fUkVRLAorICAgIE1TR19JRF9MNENQSEJfUkVBRF9VU0lNX1JFUSwKKyAgICBNU0dfSURfTDRDUEhCX0RFTEVURV9VU0lNX1JFUSwKKyAgICBNU0dfSURfTDRDUEhCX0NIRUNLX1dSSVRFX1VTSU1fRU5UUllfUkVRLAorCisgICAgTVNHX0lEX1BIQl9DT0RFX0VORCwKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVBIQl9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9QSEJfQ09ERV9UQUlMICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUFUQ0lfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAvL1JNTUlfVVQgLS0tCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQVRDSV9DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfQVRDSV9VVF9STU1JX0lOUFVUX1NUUklORyA9IE1TR19JRF9BVENJX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0FUQ0lfVVRfUk1NSV9PVVRQVVRfU1RSSU5HLAorICAgIE1TR19JRF9BVENJX1VUX1JNTUlfSU5QVVRfRVhQQU5ERURfQVRfU1RSSU5HLAorICAgIE1TR19JRF9BVENJX1VUX0NIRUNLX0w0Q19DT05URVhUX0lORk8sCisgICAgLy8tLS0gUk1NSV9VVAorICAgIE1TR19JRF9BVENJX1RIRVJNQUxfRVZFTlRfUkVQT1JUX0lORCwgLy9mb3IgdGhlcm1hbF9wcm90ZWN0aW9uCisgICAgTVNHX0lEX0FUQ0lfVVRfVUFSVF9JTlBVVF9JTkQsCisgICAgTVNHX0lEX0FUQ0lfTUQzX1BXUk9GRl9ET05FX0lORCwKKyAgICBNU0dfSURfTDRCX0FUQ0lfVEFSR0VUX1JFU0VUX0lORCwKKyAgICBNU0dfSURfTDRCX0FUQ0lfQVRfQ01EX1JFUSwKKyAgICBNU0dfSURfTDRCUFdSX0FUQ0lfRVBPRl9SRVEsCisKKyAgICBNU0dfSURfQVRDSV9DT0RFX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfQVRDSV9DT0RFX1RBSUwgKQorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tQVRDSV9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRU5HX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLSovCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1FTkdfTVNHX0NPREVfRU5EIC0tLS0tLS0tLS0tLS0tLS0tKi8KKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfTUJDSV9DT0RFX0JFR0lOKQorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTUJDSV9NU0dfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9VUFNfTUJDSV9DT01NQU5EX1JFUSA9IE1TR19JRF9NQkNJX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1VQU19NQkNJX0NPTU1BTkRfUlNQLAorICAgIE1TR19JRF9VUFNfTUJDSV9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9VUFNfTUJDSV9MT09QQkFDS19TVEFSVF9JTkQsCisgICAgTVNHX0lEX1VQU19NQkNJX0xPT1BCQUNLX1NUT1BfSU5ELAorICAgIE1TR19JRF9NQkNJX0NPREVfRU5ELAorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTUJDSV9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTUJDSV9DT0RFX1RBSUwgKQorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9QU19DT0RFX0JFR0lOICkKKyAgIC8qLS0tLS0tLS0tLUFTX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLSovCisgICBNU0dfSURfTDRDUFNfTkJSX0NFTExfSU5GT19TVEFSVF9SRVEgPSBNU0dfSURfUFNfQ09ERV9CRUdJTiwKKyAgIE1TR19JRF9MNENQU19OQlJfQ0VMTF9JTkZPX1NUT1BfUkVRLAorCisgICAjaWYgZGVmaW5lZChfX0FUX1JSQ19UUkFDRV9TVVBQT1JUX18pCisgICBNU0dfSURfTDRDQVNfU0VUX1JSQ19QRUVSX1RSQUNFX1JFUSwKKyAgIE1TR19JRF9MNENBU19SUkNfUEVFUl9UUkFDRV9JTkQsCisgICAjZW5kaWYKKworICAgI2lmIGRlZmluZWQoX19FVFdTX1NVUFBPUlRfXykKKyAgIE1TR19JRF9MNENBU19FVFdTX1NFVFRJTkdfUkVRLAorICAgTVNHX0lEX0w0Q0FTX0VUV1NfSU5GT1JNQVRJT05fSU5ELAorICAgI2VuZGlmCisKKyAgIE1TR19JRF9MNENfRVZBTF9FVFdTX0lORk9STUFUSU9OX0lORCwKKyAgIE1TR19JRF9MNENfTlJSQ19FVFdTX0lORk9STUFUSU9OX0lORCwKKworICAgTVNHX0lEX0w0Q19FVkFMX0FESlVTVF9NRUFTX1JFUSwKKyAgIE1TR19JRF9MNENfRVZBTF9BREpVU1RfTUVBU19DTkYsCisKKyAgIE1TR19JRF9MNENfRVZBTF9FRERBX0NORiwKKworICAgLy8gcmUtdXNhZ2UgNEcgTFBQIENQIG1lc3NhZ2UgdG8gcmVzZXQgTENTIHBvcyBpbmZvIGR1cmluZyBTVVBMIHRlc3RpbmcKKyAgIE1TR19JRF9MNENfRVZBTF9OV19SRVNFVF9VRV9TVE9SRURfUE9TX0lORk9fSU5ELAorCisgICAvLyBUbyBub3RpZnkgdGhlIEVSUkMgc3RhdGUKKyAgIE1TR19JRF9MNENfRVZBTF9FUlJDX1NUQVRFX0lORCwKKworICAgLy8gQzJLIDFYQ1NGQgorICAgTVNHX0lEX0w0Q19FVkFMX0MyS19DU0ZCX1JFUSwKKyAgIE1TR19JRF9MNENfRVZBTF9DMktfQ1NGQl9DTkYsCisgICBNU0dfSURfTDRDX0VWQUxfQzJLX0NTRkJfU1RPUF9SRVEsCisgICBNU0dfSURfTDRDX0VWQUxfQzJLX0NTRkJfU1RPUF9DTkYsCisKKyAgIE1TR19JRF9MNENBU19TRVRfUExNTl9MSVNUX1BSRUZFUkVOQ0VfUkVRLAorCisgICBNU0dfSURfTDRDQVNfU0VUX0hTUEFfUFJFRkVSRU5DRV9SRVEsIC8vbXRrMDIyODUsIGhzcGFfbW1pCisKKyAgIE1TR19JRF9MNENBU19TRVRfUFJFRkVSX1JBVF9SRVEsCisgICAgTVNHX0lEX0w0Q0FTX0NTR19BVVRPX1NFQVJDSF9SRVEsCisKKyAgIE1TR19JRF9MNENBU19CQVJfQ0VMTF9DT05UUk9MX1JFUSwKKworICAgTVNHX0lEX0w0Q0FTX0JBUl9DRUxMX0NPTlRST0xfQ05GLAorCisgICBNU0dfSURfTDRDQVNfSU1TX0NPTkZJR19JTkQsCisgICBNU0dfSURfTDRDQVNfSU1TX0NBTExfSU5GT19JTkQsCisKKyAgIC8vYWdwc191cF9jcF9jb25mbGljdAorICAgTVNHX0lEX0w0Q19MQ1NQX0FHUFNfQ1BfU1RBUlRfSU5ELAorICAgTVNHX0lEX0w0Q19MQ1NQX0FHUFNfQ1BfRU5EX0lORCwKKyAgIE1TR19JRF9MNENfTENTUF9BR1BTX0NQX0FCT1JUX1JFUSwKKworICAgTVNHX0lEX0w0Q19SQVRDTV9BR1BTX1JFU0VUX1BPU0lUSU9OSU5HX0lORCwKKyAgIE1TR19JRF9MNENQU19NRUFTX0lORk9fUkVRLAorICAgTVNHX0lEX0w0Q1BTX01FQVNfSU5GT19DTkYsCisgICBNU0dfSURfTDRDUFNfUkZfSU5GT19JTkQsCisgICBNU0dfSURfTDRDX1JSQ0VfUlJDX1NUQVRFX0lORCwKKyAgIE1TR19JRF9MNENfUlJDRV9QQ0hfVFhSWF9JTkQsCisgICBNU0dfSURfTDRDX01FX1JFQ09ORklHVVJFX1JFUSwKKyAgIE1TR19JRF9MNENfTUVfUkVDT05GSUdVUkVfQ05GLAorICAgTVNHX0lEX0w0Q19SUk1fUlJNU19TVEFURV9JTkQsCisgICBNU0dfSURfTDRDX0VWQUxfRFJYX1VQREFURV9DTkYsCisgICBNU0dfSURfTDRDX0VWQUxfRFJYX1VQREFURV9JTkQsCisgICBNU0dfSURfTDRDX0VWQUxfU1JfRkFJTFVSRV9JTkQsCisgICBNU0dfSURfTDRDX0VWQUxfVEFVX0ZBSUxVUkVfSU5ELAorICAgTVNHX0lEX0w0Q19FVkFMX1NSX1JFSkVDVF9JTkQsCisgICBNU0dfSURfTDRDX0VWQUxfUkFDSF9SRUpFQ1RfSU5ELAorICAgTVNHX0lEX0w0Q19DRUxMX1BPV0VSX1RIUkVTSE9MRF9DT05GSUdfQ05GLAorICAgTVNHX0lEX0w0Q19NRV9WT0xURV9SRUNPTkZJR1VSRV9SRVEsCisgICBNU0dfSURfTDRDX01FX1ZPTFRFX1JFQ09ORklHVVJFX0NORiwKKyAgIE1TR19JRF9MNENBU19DQ19FUlJPUl9JTkQsCisgICBNU0dfSURfTDRDX0VSUkNfV0xBTl9MV0FfQ09OTkVDVF9SRVEsCisgICBNU0dfSURfTDRDX0VSUkNfV0xBTl9MV0FfRElTQ09OTkVDVF9SRVEsCisgICBNU0dfSURfTDRDX0VSUkNfV0xBTl9NRUFTVVJFTUVOVF9SRVEsCisgICBNU0dfSURfTDRDX0VSUkNfV0xBTl9NRUFTVVJFTUVOVF9TVE9QX1JFUSwKKyAgIE1TR19JRF9MNENfTlJSQ19DRUxMX1BPV0VSX1RIUkVTSE9MRF9DT05GSUdfQ05GLAorICAgTVNHX0lEX0w0Q19OUlJDX0NVU1RPTV9CQVJfTElTVF9DTkYsCisgICBNU0dfSURfTDRDX05SUkNfQ1VTVE9NX0JBUl9MSVNUX0NMRUFSX05URiwKKyAgIE1TR19JRF9MNENfRVZBTF9QQ0VMTF9JTkZPX0lORCwKKyAgIE1TR19JRF9MNENfRVJSQ19DVVNUT01fQkFSX0xJU1RfQ05GLAorICAgTVNHX0lEX0w0Q19FUlJDX0NVU1RPTV9CQVJfTElTVF9DTEVBUl9OVEYsCisKKyAgIC8vIFRvIG5vdGlmeSB0aGUgUlJDIENvbm5lY3Rpb24gRXN0YWJsaXNobWVudCBmYWlsdXJlIGNhdXNlCisgICBNU0dfSURfTDRDX0VWQUxfRVNUQUJMSVNITUVOVF9JTkQsCisKKyAgIE1TR19JRF9MNENfTUVfSU1TX1JFQ09ORklHVVJFX1JFUSwKKyAgIE1TR19JRF9MNENfTUVfSU1TX1JFQ09ORklHVVJFX0NORiwKKyAgIE1TR19JRF9MNENQU19OV19CQU5EX0lORk9fU1RBUlRfUkVRLAorICAgTVNHX0lEX0w0Q1BTX05XX0JBTkRfSU5GT19TVE9QX1JFUSwKKyAgIE1TR19JRF9MNENQU19OV19CQU5EX0lORk9fSU5ELAorICAgTVNHX0lEX0w0Q0FTX1NJQjE5X0lORk9fSU5ELAorICAgTVNHX0lEX0w0Q0FTX1JSX0FQQ19DVFJMX0lORk9fUkVRLAorICAgTVNHX0lEX0w0Q0FTX1JSX0FQQ19DVFJMX0lORk9fQ05GLAorICAgTVNHX0lEX0w0Q1BTX0dTTV9CQVJfQ09OVFJPTF9SRVEsCisgICBNU0dfSURfTDRDVUFTX1NFVF9SQUNIX1RFU1RfTU9ERV9SRVEsCisgICBNU0dfSURfTDRDX1JSTV9QU0VVRE9fQlNfREVURUNUX0lORCwKKyAgIE1TR19JRF9MNENBU19SUl9QU0VVRE9fQlNfUVVFUllfUkVRLAorICAgTVNHX0lEX0w0Q0FTX1JSX1BTRVVET19CU19RVUVSWV9DTkYsCisgICBNU0dfSURfTDRDX01FX0RTQlBfUkVDT05GSUdVUkVfUkVRLAorICAgTVNHX0lEX0w0Q19NRV9EU0JQX1JFQ09ORklHVVJFX0NORiwKKyAgIE1TR19JRF9MNENfU0JQX0RTQlBfUkVDT05GSUdVUkVfUkVRLAorICAgTVNHX0lEX0w0Q19TQlBfRFNCUF9SRUNPTkZJR1VSRV9DTkYsCisgICBNU0dfSURfTDRDX0NDX0RTQlBfUkVDT05GSUdVUkVfSU5ELAorCisgICAvLyBOb3RpZnkgSVBDb3JlIFBMTU4gTElTVCBjdXJyZW50IGFjdGlvbiBpbiBvcmRlciB0byBzdXNwZW5kL3Jlc3VtZSBUeCB0cmFmZmljIGluIGRhdGEgcGxhbmUKKyAgIE1TR19JRF9MNENfSVBDT1JFX1VMX1RIUk9UVExFX1JFUSwKKworICAgTVNHX0lEX0w0Q19QSEJfVVRfUkVRLAorCisgICBNU0dfSURfTDRDQVNfQ0VMTF9QT1dFUl9USFJFU0hPTERfQ09ORklHX1JFUSwKKworI2lmZGVmIF9fVEM3X19DU19fU1VQUE9SVF9fCisgICBNU0dfSURfTDRDVUFTX0NTX1NUQVRVU19SRVEsCisjZW5kaWYKKworI2lmZGVmIF9fR0VNSU5JX18KKyAgIE1TR19JRF9MNENfQUtBX1JFU09VUkNFX1JFTEVBU0VfUkVRLAorI2VuZGlmCisgICAgTVNHX0lEX0RETV9FVkFMX0NBQlRTUklfSU5ELAorICAgIE1TR19JRF9ERE1fRVZBTF9QQUdJTkdfUFJPVEVDVEVEX1RJTUVSX01BWF9JTkQsCisgICAgTVNHX0lEX0w0Q19TTVNfRFNCUF9SRUNPTkZJR1VSRV9JTkQsCisgICAgTVNHX0lEX0w0Q19JTUNTTVNfRFNCUF9SRUNPTkZJR1VSRV9JTkQsCisgICAgTVNHX0lEX0w0Q19TTVNBTF9EU0JQX1JFQ09ORklHVVJFX0lORCwKKyAgICBNU0dfSURfTDRDX0VWQUxfRVJSQ19TU0FDX1JFU0VMX1JFU1VMVF9JTkQsCisgICAgTVNHX0lEX0w0Q19FTlBEQ1BfREFUQV9VU0FHRV9OVEYsCisgICAgTVNHX0lEX0w0Q19FVkFMX0NTX1NFUlZJQ0VfTk9USUZJQ0FUSU9OX0lORCwKKyAgICBNU0dfSURfTDRDX0VWQUxfQ1NGQl9GQUlMX0lORCwKKyNpZmRlZiBfX05HX0VDQUxMX1NVUFBPUlRfXworICAgIE1TR19JRF9MNENfRVZBTF9FQ0FMTF9SRUdJU1RSQVRJT05fU1RBVEVfSU5ELAorI2VuZGlmCisKKyAgICAvLyBUbyB1cGRhdGUgUkxDIGxhdGVuY3kKKyAgICBNU0dfSURfTDRDX05STENVTF9MQVRFTkNZX1VQREFURV9JTkQsCisgICAgTVNHX0lEX0w0Q19FUkxDVUxfTEFURU5DWV9VUERBVEVfSU5ELAorICAgIE1TR19JRF9MNENfUlJNX0NIQU5ORUxfUEFSQU1fSU5ELAorICAgIE1TR19JRF9MNENfUlJDX0NVUl9GUkVRX0lORCwKKyAgICBNU0dfSURfTDRDQVNfU0VUX1BPV0VSX1RIUkVTSE9MRF9DT05GSUdfQ09NTU9OX1JFUSwKKyAgICBNU0dfSURfTDRDX0hWT0xURV9NT0RFX1NXSVRDSF9JTkQsCisgICAgTVNHX0lEX0w0Q19FVkFMX01PRElGWV9CN19CMzhfSU5fVVNBX1JFUSwKKyAgICBNU0dfSURfTDRDX0VWQUxfTU9ESUZZX0I3X0IzOF9JTl9VU0FfQ05GLAorICAgIE1TR19JRF9MNENBU19TRVRfV0NETUFfU0VDVVJJVFlfTU9ERV9QQVJBTV9SRVEsCisgICAgTVNHX0lEX0w0Q0FTX1NFVF9XQ0RNQV9TRUNVUklUWV9NT0RFX1BBUkFNX0NORiwKKyAgICBNU0dfSURfTDRDQVNfR0VUX1dDRE1BX1NFQ1VSSVRZX01PREVfUEFSQU1fUkVRLAorICAgIE1TR19JRF9MNENBU19HRVRfV0NETUFfU0VDVVJJVFlfTU9ERV9QQVJBTV9DTkYsCisgICAgTVNHX0lEX0w0Q19BVENJX0RTQlBfUkVDT05GSUdVUkVfSU5ELAorCisgICAgTVNHX0lEX0w0Q1BTX1NFVF9TSUdOQUxfUkVQT1JUSU5HX0NSSVRFUklBX1JFUSwKKworICAgIE1TR19JRF9MNENQU19HQVNfUkVQT1JUX1NJR05BTF9MRVZFTF9JTkQsCisgICAgTVNHX0lEX0w0Q1BTX1VBU19SRVBPUlRfU0lHTkFMX0xFVkVMX0lORCwKKyAgICBNU0dfSURfTDRDX0VWQUxfUkVQT1JUX1NJR05BTF9MRVZFTF9JTkQsCisgICAgTVNHX0lEX0w0Q19OUlJDX1JFUE9SVF9TSUdOQUxfTEVWRUxfSU5ELAorCU1TR19JRF9MNENfRFNCUF9TRVRUSU5HX0lORk9fSU5ELAorICAgIE1TR19JRF9MNENSQUNfTldfRUNDX0VFTkxfSU5ELAorICBNU0dfSURfUFNfQ09ERV9FTkQsCisKKyAgLyotLS0tLS0tLS0tQVNfTVNHX0NPREVfRU5EIC0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUFNfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1ZNTUlfQ09ERV9CRUdJTiApCisgICAvKi0tLS0tLS0tLS1WTU1JX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgIE1TR19JRF9MNFZNTUlfQVRfUkVTUE9OU0VfSU5EID0gTVNHX0lEX1ZNTUlfQ09ERV9CRUdJTiwKKyAgIE1TR19JRF9MNFZNTUlfRVRTX1JFU1BPTlNFX0lORCwKKyAgIE1TR19JRF9WTU1JX0NPREVfRU5ELAorICAgLyotLS0tLS0tLS0tVk1NSV9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9WTU1JX0NPREVfVEFJTCApCisKKyNpZiAwIC8vbW92ZSB0byBBVFAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTUJNU0FMX0NPREVfQkVHSU4gKQorICBNU0dfSURfTUJNU0FMX0VSUkNfTUJNU19TRVJWSUNFX1NUQVRVU19JTkQgPSBNU0dfSURfTUJNU0FMX0NPREVfQkVHSU4sCisgIE1TR19JRF9NQk1TQUxfRVJSQ19NQk1TX1NJQjE1X0lORCwKKyAgTVNHX0lEX01CTVNBTF9FUlJDX01CTVNfU0lCMTZfSU5ELAorICBNU0dfSURfTUJNU0FMX0VSUkNfTUJNU19DT05GSUdfSU5GT19JTkQsCisgIE1TR19JRF9NQk1TQUxfRVJSQ19NQk1TX1NFUlZTRVNTX1NUQVRVU19JTkQsCisgIE1TR19JRF9NQk1TQUxfSU5URVJOQUxfSU5ELAorICBNU0dfSURfTUJNU0FMX0VSUkNfTUJNU19JTkZPX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTUJNU0FMX0NPREVfVEFJTCApCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MNEMyS19DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfQzJLX0w0Q19NRFNUQVRVU19VUERBVEVfSU5EID0gTVNHX0lEX0w0QzJLX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0w0Q19DMktfUFdST0ZGX1NUQVJUX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDRDMktfQ09ERV9UQUlMICkKKworICAgLyotLS0tLS0tLS0tLS0tLS1MNF9NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjZW5kaWYgIC8vX0w0X01TR0lESUQuSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDRiX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sNGJfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTQ2MzU5Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDRiX21zZ2lkLmgKQEAgLTAsMCArMSwzNTIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICBsNGJfbXNnaWQuaAorICoKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIGw0YiByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTDRCX01TR0lEX0gKKyNkZWZpbmUgX0w0Ql9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MNEJfQ09ERV9CRUdJTiApCisgICAgLyogQVRQIC0tPiBMNEIgKi8KKyAgICBNU0dfSURfQVRQX0w0Ql9SQU5HRV9CRUdJTiA9IE1TR19JRF9MNEJfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfQVRQX0w0Ql9BVF9DTURfUkVRLAorICAgIE1TR19JRF9BVFBfTDRCX1JBTkdFX0VORCwKKworICAgIC8qIEFUQ0kgLS0+IEw0QiAqLworICAgIC8qIGJlbG93IHBhdHRlcm4gd2lsbCBjYXVzZSBNRCBjb2RlZ2VuIGNhbid0IHJlY29nbml6ZSB0aGUgbG9jYWwgcGFyYW1ldGVyIHN0cnVjdHVyZSBmb3IgCisgICAgICAgTVNHX0lEX0w0Ql9BVENJX0FUX0NNRF9DTkYsIHdoaWNoIGlzIGw0Yl9hdGNpX2F0X2NtZF9jbmZfc3RydWN0IAorICAgICAgIE1TR19JRF9UQUcsCisgICAgICAgTVNHX0lEID0gTVNHX0lEX1RBRywgCisgICAgKi8KKyAgICAgICAKKyAgICAvL01TR19JRF9MNEJfQVRDSV9SQU5HRV9CRUdJTiwKKyAgICAvL01TR19JRF9MNEJfQVRDSV9BVF9DTURfQ05GID0gTVNHX0lEX0w0Ql9BVENJX1JBTkdFX0JFR0lOLAorICAgIAorICAgIC8qICBzbyBJIHVzZSBiZWxvdyBwYXR0ZXJuOiAKKyAgICBNU0dfSUQsIAorICAgIE1TR19JRF9UQUcgPSBNU0dfSUQgCisgICAgKi8KKyAgICBNU0dfSURfTDRCX0FUQ0lfQVRfQ01EX0NORiwgTVNHX0lEX0w0Ql9BVENJX1JBTkdFX0JFR0lOID0gTVNHX0lEX0w0Ql9BVENJX0FUX0NNRF9DTkYsCisgICAgTVNHX0lEX0w0Ql9BVENJX0FUX1VSQ19JTkQsCisgICAgTVNHX0lEX0w0Ql9BVENJX1JBTkdFX0VORCA9IE1TR19JRF9MNEJfQVRDSV9BVF9VUkNfSU5ELAorCisgICAgLyogQ1ZBTCAtLT4gTDRCICovCisgICAgLyogZGVmaW5lZCBpbiBtZDFfbXNnaWQuaCAqLworCisgICAgLyogTDRCWFhYIC0tPiBMNEIgKi8KKyAgICBNU0dfSURfTDRCX0ZPUldBUkRfQVRfVVJDX0lORCwKKworICAgIC8vQVQgUmVxdWVzdCBmb3IgTFdURyBvciBDMksgcHJvdG9jb2wgc3RhY2sKKyAgICBNU0dfSURfTDRCX0w0QkdST1VQX0lORF9CRUdJTiwKKyAgICAjZGVmaW5lIEw0Ql9BVENJX0FUKEVOVU1fSUQsSU5EX01TRyxBVF9FTkNPREVfRlVOQ19QVFIsUlNQX01TRyxSU1BfTVNHX0ZVTkNfUFRSKSBJTkRfTVNHLAorICAgICNkZWZpbmUgTDRCX0NWQUxfQVQoRU5VTV9JRCxJTkRfTVNHLEFUX0VOQ09ERV9GVU5DX1BUUixSU1BfTVNHLFJTUF9NU0dfRlVOQ19QVFIpIElORF9NU0csCisgICAgICAgICNpbmNsdWRlICJsNGJfYXRfcmVxdWVzdC5kZWYiCisgICAgI3VuZGVmIEw0Ql9BVENJX0FUCisgICAgI3VuZGVmIEw0Ql9DVkFMX0FUCisgICAgTVNHX0lEX0w0Ql9MNEJHUk9VUF9JTkRfRU5ELAorCisgICAgLy9BVCBjb25maXJtIGZyb20gTDRCWFhYCisgICAgTVNHX0lEX0w0Ql9MNEJHUk9VUF9DTkZfQkVHSU4sCisgICAgI2RlZmluZSBMNEJfQVRfQ01EKEVOVU1fSUQsQVRfUFJFRklYLENNRF9NT0RFLERFU1QsRk9SV0FSRF9NU0csRk9SV0FSRF9NU0dfRlVOQ19QVFIsQ05GUk1fTVNHLEFUX1JTUF9GVU5DX1BUUikgQ05GUk1fTVNHLAorICAgICNkZWZpbmUgTDRCX0ZPUldBUkRfVE9fQVRDSV9DTUQoRU5VTV9JRCxBVF9QUkVGSVgsQ01EX01PREUpCisgICAgI2RlZmluZSBMNEJfRk9SV0FSRF9UT19DVkFMX0NNRChFTlVNX0lELEFUX1BSRUZJWCxDTURfTU9ERSkKKyAgICAgICAgI2luY2x1ZGUgImw0Yl9hdF9jbWQuZGVmIgorICAgICN1bmRlZiBMNEJfQVRfQ01ECisgICAgI3VuZGVmIEw0Ql9GT1JXQVJEX1RPX0FUQ0lfQ01ECisgICAgI3VuZGVmIEw0Ql9GT1JXQVJEX1RPX0NWQUxfQ01ECisgICAgTVNHX0lEX0w0Ql9MNEJHUk9VUF9DTkZfRU5ELAorCisgICAgLyogTDRCIC0tPiBMNEJYWFggKi8KKyAgICAvLyBBVCBVUkMgZm9yd2FyZCB0byBMNEJYWFgKKyAgICBNU0dfSURfTDRCX0w0QkdST1VQX1VSQ19SRVFfQkVHSU4sCisgICAgI2RlZmluZSBMNEJfVVJDKEVOVU1fSUQsVVJDX1BSRUZJWCxVUkNfU1JDLFdIRVRIRVJfU0VORF9UT19BUCxERVNULEZPUldBUkRfTVNHLEZPUldBUkRfTVNHX0ZVTkNfUFRSKSBGT1JXQVJEX01TRywKKyAgICAgICAgI2luY2x1ZGUgImw0Yl9hdF91cmMuZGVmIgorICAgICN1bmRlZiBMNEJfVVJDCisgICAgTVNHX0lEX0w0Ql9MNEJHUk9VUF9VUkNfUkVRX0VORCwKKyAgICAKKyAgICAvLyBBVCBDTUQgZm9yd2FyZCB0byBMNEJYWFgKKyAgICBNU0dfSURfTDRCX0w0QkdST1VQX1JFUV9CRUdJTiwKKyAgICAjZGVmaW5lIEw0Ql9BVF9DTUQoRU5VTV9JRCxBVF9QUkVGSVgsQ01EX01PREUsREVTVCxGT1JXQVJEX01TRyxGT1JXQVJEX01TR19GVU5DX1BUUixDTkZSTV9NU0csQVRfUlNQX0ZVTkNfUFRSKSBGT1JXQVJEX01TRywKKyAgICAjZGVmaW5lIEw0Ql9GT1JXQVJEX1RPX0FUQ0lfQ01EKEVOVU1fSUQsQVRfUFJFRklYLENNRF9NT0RFKQorICAgICNkZWZpbmUgTDRCX0ZPUldBUkRfVE9fQ1ZBTF9DTUQoRU5VTV9JRCxBVF9QUkVGSVgsQ01EX01PREUpCisgICAgICAgICNpbmNsdWRlICJsNGJfYXRfY21kLmRlZiIKKyAgICAjdW5kZWYgTDRCX0FUX0NNRAorICAgICN1bmRlZiBMNEJfRk9SV0FSRF9UT19BVENJX0NNRAorICAgICN1bmRlZiBMNEJfRk9SV0FSRF9UT19DVkFMX0NNRAorICAgIE1TR19JRF9MNEJfTDRCR1JPVVBfUkVRX0VORCwKKworICAgIC8vQVQgUmVzcG9uc2UgZnJvbSBMV1RHIG9yIEMySyBwcm90b2NvbCBzdGFjaworICAgIE1TR19JRF9MNEJfTDRCR1JPVVBfUlNQX0JFR0lOLAorICAgICNkZWZpbmUgTDRCX0FUQ0lfQVQoRU5VTV9JRCxJTkRfTVNHLEFUX0VOQ09ERV9GVU5DX1BUUixSU1BfTVNHLFJTUF9NU0dfRlVOQ19QVFIpIFJTUF9NU0csCisgICAgI2RlZmluZSBMNEJfQ1ZBTF9BVChFTlVNX0lELElORF9NU0csQVRfRU5DT0RFX0ZVTkNfUFRSLFJTUF9NU0csUlNQX01TR19GVU5DX1BUUikgUlNQX01TRywKKyAgICAgICAgI2luY2x1ZGUgImw0Yl9hdF9yZXF1ZXN0LmRlZiIKKyAgICAjdW5kZWYgTDRCX0FUQ0lfQVQKKyAgICAjdW5kZWYgTDRCX0NWQUxfQVQKKyAgICBNU0dfSURfTDRCX0w0QkdST1VQX1JTUF9FTkQsCisKKworICAgIC8vIFZETS9MNEJDQyBpbnRlcmZhY2UKKyAgICBNU0dfSURfVkRNX0w0Ql9SRVFfQkVHSU4sCisgICAgTVNHX0lEX1ZETV9MNEJfQ1NfQ0NfRU1FUkdfQ0FMTF9SRVEsCisgICAgTVNHX0lEX1ZETV9MNEJfQ1NfQ0NfU1RLX0NBTExfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0NTX0NDX01UX0NBTExfUFJFU0VOVF9SU1AsCisgICAgTVNHX0lEX1ZETV9MNEJfQ1NfQ0NfTVRfQ0FMTF9BQ0NFUFRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0NTX0NDX0hBTkdVUF9BTExfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0NTX0NDX0ZPUkNFX0hBTkdVUF9SRVEsCisgICAgTVNHX0lEX1ZETV9MNEJfQ1NfQ0NfQ0FMTF9SRUxBVEVEX1NTX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DU19DQ19FWFRfRVJST1JfUkVQT1JUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DU19DQ19TRU5EX0RJR0lUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DU19DQ19TVEFSVF9TRU5EX0RJR0lUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DU19DQ19TVE9QX1NFTkRfRElHSVRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0NTX0NDX0xJU1RfQ1VSUkVOVF9DQUxMU19SRVEsCisgICAgTVNHX0lEX1ZETV9MNEJfQ1NfQ0NfRU1FUkdfU0VSVl9DQVRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0NTX0NDX0xJU1RfQ1VSUkVOVF9DQUxMU19FWFRfUkVRLAorI2lmIGRlZmluZWQoX19FQ0FMTF9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19OR19FQ0FMTF9TVVBQT1JUX18pICAKKyAgICBNU0dfSURfVkRNX0w0Ql9DU19DQ19FQ0FMTF9SRVEsCisjZW5kaWYKKworICAgIC8qQzJLIE1TRyBiZWdpbiovCisgICAgLyogQ1ZBTCAtLT4gTDRCICovCisgICAgTVNHX0lEX0w0Ql9DVkFMX0FUX0NNRF9DTkYsIE1TR19JRF9MNEJfQ1ZBTF9SQU5HRV9CRUdJTiA9IE1TR19JRF9MNEJfQ1ZBTF9BVF9DTURfQ05GLAorICAgIE1TR19JRF9MNEJfQ1ZBTF9BVF9VUkNfSU5ELAorICAgIE1TR19JRF9MNEJfQ1ZBTF9SQU5HRV9FTkQgPSBNU0dfSURfTDRCX0NWQUxfQVRfVVJDX0lORCwKKworICAgIE1TR19JRF9WRE1fTDRCX0MyS19DQ19NT19DQUxMX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfRU1FUkdfQ0FMTF9SRVEsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX1NUS19DQUxMX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfTVRfQ0FMTF9QUkVTRU5UX1JTUCwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfTVRfQ0FMTF9BQ0NFUFRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0MyS19DQ19IQU5HVVBfQUxMX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfRk9SQ0VfSEFOR1VQX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfQ0FMTF9SRUxBVEVEX1NTX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfRVhUX0VSUk9SX1JFUE9SVF9SRVEsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX1NFTkRfRElHSVRfUkVRLAorICAgIE1TR19JRF9WRE1fTDRCX0MyS19DQ19TVEFSVF9TRU5EX0RJR0lUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfU1RPUF9TRU5EX0RJR0lUX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfTElTVF9DVVJSRU5UX0NBTExTX1JFUSwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfRU1FUkdfU0VSVl9DQVRfUkVRLAorICAgIC8qQzJLIE1TRyBlbmQqLworCisgICAgLypMNEIgU0FUIE1TRyBiZWdpbiovCisgICAgTVNHX0lEX1ZETV9MNEJfU05EX1NUS19DQUxMX1RSX1JFUSwKKyAgICAvKkw0QiBTQVQgTVNHIGVuZCovCisgICAgCisgICAgTVNHX0lEX1ZETV9MNEJfUkVRX0VORCwKKworCisgICAgLypMNEIgPC0+IEw0QlNBVCovCisgICAgTVNHX0lEX0w0Ql9MNEJTQVRfQkVHSU4sCisgICAgICBNU0dfSURfTDRCX0w0QlNBVF9WRE1fU1RLQ0FMTF9UUl9SRVEsCisgICAgICBNU0dfSURfTDRCX0w0QlNBVF9WRE1fU1RLQ0FMTF9UUl9DTkYsCisgICAgTVNHX0lEX0w0Ql9MNEJTQVRfRU5ELAorCisKKyAgICAvKkFUUC0+TDRCTlcqLworICAgIE1TR19JRF9BVFBfTDRCTldfQkVHSU4sCisgICAgTVNHX0lEX0FUUF9MNEJOV19TSU1fTE9DS19SRVEsCisgICAgTVNHX0lEX0FUUF9MNEJOV19FTkQsCisKKyAgICAvKkFUUC0+TDRCU0JQKi8KKyAgICBNU0dfSURfQVRQX0w0QlNCUF9CRUdJTiwKKyAgICBNU0dfSURfQVRQX0w0QlNCUF9BVF9DSF9MT0NLX0NORiwKKyAgICBNU0dfSURfQVRQX0w0QlNCUF9BVF9DSF9VTkxPQ0tfQ05GLAorICAgIE1TR19JRF9BVFBfTDRCU0JQX0VNQ19TRVNTSU9OX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfQVRQX0w0QlNCUF9FTUNfU0VTU0lPTl9TVE9QX1JFUSwKKyAgICBNU0dfSURfQVRQX0w0QlNCUF9FU0JQX0NPTkZMSUNUX0lORCwKKyAgICBNU0dfSURfQVRQX0w0QlNCUF9FTkQsCisKKworICAgIC8qTDRCUFdSPC0+TDRCU0JQKi8KKyAgICBNU0dfSURfTDRCUFdSX0w0QlNCUF9CRUdJTiwKKyAgICBNU0dfSURfTDRCUFdSX0w0QlNCUF9SRl9SRVEsCisgICAgTVNHX0lEX0w0QlBXUl9MNEJTQlBfUkZfQ05GLAorICAgIE1TR19JRF9MNEJQV1JfTDRCU0JQX1BIT05FX1NUQVRFX0NIQU5HRV9FTkRfSU5EICwKKyAgICBNU0dfSURfTDRCUFdSX0w0QlNCUF9FTkQsCisKKyAKKyAgICAvKkFUUC0+TDRCUFdSKi8KKyAgICBNU0dfSURfQVRQX0w0QlBXUl9FRlVOX1JFUSwKKyAgICBNU0dfSURfQVRQX0w0QlBXUl9DRlVOX1JFUSwKKyAgICBNU0dfSURfQVRQX0w0QlBXUl9FUE9GX1JFUSwKKworICAgIE1TR19JRF9BVFBfTDRCUFdSX0dFVF9OUl9QU19SRVEsCisgICAgTVNHX0lEX0FUUF9MNEJQV1JfU0VUX05SX1BTX1JFUSwKKworICAgIE1TR19JRF9MNEJQV1JfTDRCTldfUkFUX1RZUEVfU1dJVENIX1JFUSwKKyAgICBNU0dfSURfTDRCUFdSX0w0Qk5XX1JBVF9UWVBFX1NXSVRDSF9DTkYsCisKKyAgICAvKkFUQ0kgLT4gTDRiUFdSKi8KKyAgICBNU0dfSURfTDRCUFdSX0FUQ0lfRVBPRl9DTkYsCisKKyAgICAvKkw0QlNCUCBJbnRlcmZhY2VzKi8KKyAgICBNU0dfSURfTDRCU0JQX01FX1JFQ09ORklHVVJFX05PVF9PQ0NVUl9SRVEsCisJCisJLypMNUlPLT5MNEJTQlAqLworICAgIE1TR19JRF9MNUlPX0w0QlNCUF9BVF9DSF9MT0NLX0NORiwKKyAgICBNU0dfSURfTDVJT19MNEJTQlBfQVRfQ0hfVU5MT0NLX0NORiwKKworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0w0Ql9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8qIF9MNEJfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbDVfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2w1X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZiM2U4YwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2w1X21zZ2lkLmgKQEAgLTAsMCArMSw4MDAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0w1X01TR0lEX0gKKyNkZWZpbmUgX0w1X01TR0lEX0gKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTDVfQ09ERV9CRUdJTiApCisgICAgLyogTDVVIC0tPiBMNUlPICovCisgICAgTVNHX0lEX0w1SU9fQVRfQ01EX0NORiwgLy9BVFAgcmVzcG9uZHMKKyAgICBNU0dfSURfTDVJT19BVF9VUkNfSU5ELCAvL3VyYyByZXBvcnQKKyAgICBNU0dfSURfTDVJT19UQVJHRVRfUkVTRVRfSU5ELCAgICAgLy8gQVRQIHJlcXVlc3RzIEw1SU8gdG8gcmVzZXQgbW9kZW0KKyAgICBNU0dfSURfTDVJT19GTFVTSF9VQVJUX1FVRVVFX0lORCwKKyAgICBNU0dfSURfTDVVX1RYX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0w1VV9DRUxMX1VQREFURV9JTkQsCisgICAgTVNHX0lEX0w1VV9FVVJDQUxMT1dfQ05GLAorICAgIE1TR19JRF9MNVVfRUwyX0lQX1VMX0lORCwKKyAgICBNU0dfSURfTDVVX0VMMl9JUF9ETF9JTkQsCisgICAgTVNHX0lEX0w1VV9FTDJfTUFDX1VMX0lORCwKKyAgICBNU0dfSURfTDVVX0VMMl9NQUNfRExfSU5ELAorICAgIE1TR19JRF9MNVVfRUwyX1BEQ1BfVUxfSU5ELAorICAgIE1TR19JRF9MNVVfRUwyX1BEQ1BfRExfSU5ELAorICAgIE1TR19JRF9MNVVfTkwyX01BQ19VTF9JTkQsCisgICAgTVNHX0lEX0w1VV9OTDJfTUFDX0RMX0lORCwKKyAgICBNU0dfSURfTDVVX05MMl9QRENQX1VMX0lORCwKKyAgICBNU0dfSURfTDVVX05MMl9QRENQX0RMX0lORCwKKworICAgIC8vRnJvbSBMNUlPCisgICAgTVNHX0lEX0w1SU9fU0VUX0ZJTFRFUl9SRVEsCisgICAgTVNHX0lEX0w1SU9fUkVTRVRfRklMVEVSX1JFUSwKKyAgICAvL1RvIEw1SU8KKyAgICBNU0dfSURfTDVJT19TRVRfRklMVEVSX0NORiwKKyAgICBNU0dfSURfTDVJT19SRVNFVF9GSUxURVJfQ05GLAorCisgICAgLy9Gb3IgVVQKKyAgICBNU0dfSURfTDVJT19VVF9NSVBDX1RFU1RfSU5ELAorICAgIE1TR19JRF9MNUlPX1VUX01JUENfVEVTVF9DTUQsCisgICAgTVNHX0lEX0w1SU9fVVRfVUFSVF9SVFJfSU5ELAorICAgIE1TR19JRF9MNUlPX1VUX1VBUlRfUlRXX0lORCwKKyAgICBNU0dfSURfTDVJT19VVF9BVF9DTURfUkVRLAorICAgIE1TR19JRF9MNUlPX1VUX0FUX0NNRF9DTkYsCisgICAgTVNHX0lEX0w1SU9fVVRfSU9fQ09OVEVYVF9SRVEsCisgICAgTVNHX0lEX0w1SU9fVFNUX0FUX1JFU1BPTlNFX0lORCwgLy90byByZXBsYWNlIE1TR19JRF9MNENUU1RfQVRfUkVTUE9OU0VfSU5ECisgICAgTVNHX0lEX0w1SU9fVVRfVVJDX1JFUE9SVF9NT0RFX0lORCwKKworICAgIC8qTDV1c2VyLS0gZGVmaW5lLUNORi0tPiBMNUlPKi8KKyAgICBNU0dfSURfTDVJT19VU0VSX0RFRklORV9DTkZfUkFOR0VfQkVHSU4sCisKKyAgICAgICAgLypMNVVTV0lUQ0gqLworICAgIE1TR19JRF9MNUlPX1VTV0lUQ0hfQ05GX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fU1dJVENIX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fV1BfU1dJVENIX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1dJVENIX1NJTV9NQVBQSU5HX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NXSVRDSF9TSU1fTUFQUElOR19TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TV0lUQ0hfTVVMVElfU0lNX0NPTkZJR19DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NXSVRDSF9MT0NLX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1dJVENIX1VOTE9DS19DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NXSVRDSF9SRVNUUklDVF9DQVJEX1RZUEVfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1dJVENIX1JFU1RSSUNUX0NBUkRfVFlQRV9HRVRfQ05GLCAgCQkKKyAgICBNU0dfSURfTDVJT19VU1dJVENIX0NORl9SQU5HRV9FTkQsCisKKyAgICAgICAgLypMNVVTUyovCisgICAgTVNHX0lEX0w1VVNTX0w1SU9fTVNHX0ZST01fTDVVU1NfQkVHSU4sCisgICAgICAgIE1TR19JRF9MNUlPX0FUX1NTX0VDVVNEX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fQVRfU1NfQ05GLAorICAgICAgICBNU0dfSURfTDVVU1NfU0VUX0NMSVJfQ05GLAorICAgICAgICBNU0dfSURfTDVVU1NfQVRQX1NFVF9DTElSX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0VDVVNEX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0FUUF9FQ1VTRF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0FUX1NTX0NMSVJfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19BVF9TU19FQ1VTRF9JTkQsCisgICAgICAgIE1TR19JRF9MNVVTU19TRVRfQ0xJUF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTU19BVFBfU0VUX0NMSVBfQ05GLAorICAgICAgICBNU0dfSURfTDVVU1NfUVVFUllfQ0xJUF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTU19BVFBfUVVFUllfQ0xJUF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTU19TRVRfU1VQUF9TVkNfTk9USUZJQ0FUSU9OX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0FUUF9TRVRfU1VQUF9TVkNfTk9USUZJQ0FUSU9OX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0NIQU5HRV9CQVJSSU5HX1BBU1NXT1JEX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0FUUF9DSEFOR0VfQkFSUklOR19QQVNTV09SRF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTU19HRVRfQ09MUF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTU19BVFBfR0VUX0NPTFBfQ05GLAorICAgICAgICBNU0dfSURfTDVVU1NfU0VUX0NPTFBfQ05GLAorICAgICAgICBNU0dfSURfTDVVU1NfQVRQX1NFVF9DT0xQX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0dFVF9DT0xSX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0FUUF9HRVRfQ09MUl9DTkYsCisgICAgTVNHX0lEX0w1VVNTX0w1SU9fTVNHX0ZST01fTDVVU1NfRU5ELAorCisgICAgICAgLypMNVVSRiovCisgICAgTVNHX0lEX0w1SU9fUkZfQ05GX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfTDVJT19SRl9DTkYsCisgICAgTVNHX0lEX0w1SU9fUkZfQ05GX1JBTkdFX0VORCwKKworICAgICAgICAvKkw1VVNJTSovCisgICAgTVNHX0lEX0w1SU9fU0lNX0NORl9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1BJTl9QUk9URUNUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1ZFUklGWV9QSU5fQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fQ0hBTkdFX1BJTl9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9VTkJMT0NLX1BJTl9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSU5fSU5GT19HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUElOX0xJU1RfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0lDQ0lEX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0lNU0lfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fTVNJU0ROX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1NUQVRFX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1NUQVRVU19DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9BVFJfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fT1BFTl9DSEFOTkVMX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0NMT1NFX0NIQU5ORUxfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUkVTVFJJQ1RFRF9BUERVX0FDQ0VTU19DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9HRU5FUkFMX0FQRFVfQUNDRVNTX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0xPTkdfQVBEVV9SRUFEX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0xPTkdfQVBEVV9XUklURV9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9URVJNSU5BTF9DQVBBQklMSVRZX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9URVJNSU5BTF9DQVBBQklMSVRZX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9SRVNFVF9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUkVTRVRfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0FQUF9MSVNUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0ZJTEVfU1RBVFVTX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSU5fRVhURU5USU9OX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSU5fRVhURU5USU9OX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9HU01fQVVUSEVOVElDQVRFX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0VYVF9BVVRIRU5USUNBVEVfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fQlRTQVBfQ09OTkVDVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9CVFNBUF9ESVNDT05ORUNUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0JUU0FQX1BPV0VSX09OX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0JUU0FQX1BPV0VSX09GRl9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9CVFNBUF9SRVNFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9CVFNBUF9BUERVX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1BIWVNJQ0FMX1NMT1RTX01BUFBJTkdfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1BIWVNJQ0FMX1NMT1RTX01BUFBJTkdfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1BPV0VSX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9FWFRFTkRFRF9HRU5FUklDX0FQRFVfQUNDRVNTX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1VJQ0NfRklMRV9BQ0NFU1NfUkVDT1JEX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1VJQ0NfRklMRV9BQ0NFU1NfQklOQVJZX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0VVSUNDX1NMT1RTX1NUQVRVU19HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fRkFDSUxJVFlfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0ZBQ0lMSVRZX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSU5fQ09VTlRfUVVFUllfQ05GLAorICAgIE1TR19JRF9MNUlPX1NJTV9DTkZfUkFOR0VfRU5ELAorCisgICAgICAgICAvKkw1VVNZUyovCisgICAgTVNHX0lEX0w1SU9fU1lTX0NORl9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1lTX0lORk9fR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1lTX1NBUl9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TWVNfU0FSX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTWVNfQ09OTkVDVElWSVRZX1NUQVRJU1RJQ1NfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19TWVNfUVVFUllfU0JQX0NORiwKKyAgICBNU0dfSURfTDVJT19TWVNfQ05GX1JBTkdFX0VORCwKKworICAgICAgICAvKkw1VVhYWCxwbGVhc2UgYWRkIGNuZiB0byBMNUlPIGhlcmUqLworCisgICAgTVNHX0lEX0w1SU9fVVNFUl9ERUZJTkVfQ05GX1JBTkdFX0VORCwKKworICAgIC8vTDVVSU8gdG8gTDVVU1MKKyAgICBNU0dfSURfTDVJT19MNVVTU19NU0dfRlJPTV9MNUlPX0JFR0lOLAorICAgICAgICBNU0dfSURfTDVVU1NfRUNVU0RfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19BVF9TU19SRVEsCisgICAgICAgIE1TR19JRF9MNVVTU19TRVRfQ0xJUl9SRVEsCisgICAgICAgIE1TR19JRF9MNVVTU19TRVRfQ0xJUF9SRVEsCisgICAgICAgIE1TR19JRF9MNVVTU19RVUVSWV9DTElQX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VVNTX1NFVF9TVVBQX1NWQ19OT1RJRklDQVRJT05fUkVRLAorICAgICAgICBNU0dfSURfTDVVU1NfQ0hBTkdFX0JBUlJJTkdfUEFTU1dPUkRfUkVRLAorICAgICAgICBNU0dfSURfTDVVU1NfR0VUX0NPTFBfUkVRLAorICAgICAgICBNU0dfSURfTDVVU1NfU0VUX0NPTFBfUkVRLAorICAgICAgICBNU0dfSURfTDVVU1NfR0VUX0NPTFJfUkVRLAorICAgIE1TR19JRF9MNUlPX0w1VVNTX01TR19GUk9NX0w1SU9fRU5ELAorCisgICAgTVNHX0lEX0w1SU9fTDVVQ0FUX01TR19GUk9NX0w1SU9fQkVHSU4sCisgICAgICAgIE1TR19JRF9MNUlPX0FUX0NBVF9TVEtfTk9USUZZX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VUNBVF9TRVRfUEFDX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDVVQ0FUX0dFVF9QQUNfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNVVDQVRfU0VORF9UUl9SRVEsCisgICAgICAgIE1TR19JRF9MNVVDQVRfU0VORF9FTlZFTE9QX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VUNBVF9HRVRfRU5WRUxPUF9JTkZPX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VUNBVF9TRU5EX0JJUENPTkZfUkVRLAorICAgIE1TR19JRF9MNUlPX0w1VUNBVF9NU0dfRlJPTV9MNUlPX0VORCwKKworICAgIE1TR19JRF9MNVVfTDVVQ0FUX01TR19GUk9NX0xPV0xBWUVSX0JFR0lOLAorICAgICAgICBNU0dfSURfTDVVX0w1VUNBVF9VUkNfU1RLX05PVElGWV9SRVEsCisgICAgICAgIE1TR19JRF9MNVVDQVRfU0lNX1JFRlJFU0hfUkVTVUxUX05URiwKKyAgICBNU0dfSURfTDVVX0w1VUNBVF9NU0dfRlJPTV9MT1dMQVlFUl9FTkQsCisKKworICAgIE1TR19JRF9MNVVDQVRfTDVJT19NU0dfRlJPTV9MNVVDQVRfQkVHSU4sCisgICAgICAgIE1TR19JRF9MNVVDQVRfU0VUX1BBQ19JTkZPX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VUNBVF9HRVRfUEFDX0lORk9fQ05GLAorICAgICAgICBNU0dfSURfTDVVQ0FUX1NFTkRfVFJfQ05GLAorICAgICAgICBNU0dfSURfTDVVQ0FUX1NFTkRfRU5WRUxPUF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVDQVRfR0VUX0VOVkVMT1BfSU5GT19DTkYsCisgICAgICAgIE1TR19JRF9MNVVDQVRfUEFDX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VUNBVF9TSU1fUkVGUkVTSF9SRVNVTFRfSU5ELAorICAgICAgICBNU0dfSURfTDVVQ0FUX1NFTkRfQklQQ09ORl9DTkYsCisgICAgTVNHX0lEX0w1VUNBVF9MNUlPX01TR19GUk9NX0w1VUNBVF9FTkQsCisKKyAgICAgICAgLypMNUlPLT5MNVVTV0lUSCovCisgICAgTVNHX0lEX0w1SU9fVVNXSVRDSF9NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9TV0lUQ0hfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19XUF9TV0lUQ0hfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TV0lUQ0hfU0lNX01BUFBJTkdfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1dJVENIX1NJTV9NQVBQSU5HX1NFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NXSVRDSF9NVUxUSV9TSU1fQ09ORklHX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1dJVENIX0xPQ0tfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TV0lUQ0hfVU5MT0NLX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1dJVENIX1JFU1RSSUNUX0NBUkRfVFlQRV9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TV0lUQ0hfUkVTVFJJQ1RfQ0FSRF9UWVBFX0dFVF9SRVEsICAgCQkKKyAgICBNU0dfSURfTDVJT19VU1dJVENIX01TR19FTkQsCisKKyAgICAgICAgLypMNUlPLT5MNVVSRiAqLworICAgIE1TR19JRF9MNUlPX0w1VVJGX01TR19CRUdJTiwKKyAgICBNU0dfSURfTDVJT19SRl9SRVEsCisgICAgTVNHX0lEX0w1SU9fTDVVUkZfTVNHX0VORCwKKworICAgIE1TR19JRF9MNVVOV19NU0dfQkVHSU4sCisgICAgICAgIC8qIEw1SU8gLT4gTDVVTlcgKi8KKyAgICAgICAgTVNHX0lEX0w1SU9fQVRfRVJFR19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0FUX0VHUkVHX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU0VUX1BTX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU0VUX1BTX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX1BTX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX1BTX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUFNfU1RBVEVfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SRUdJU1RFUl9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SRUdJU1RFUl9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SRUdJU1RFUl9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SRUdJU1RFUl9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19QTE1OX0xJU1RfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUExNTl9MSVNUX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1NJR05BTF9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19TSUdOQUxfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU0lHTkFMX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1NJR05BTF9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19IT01FX1BST1ZJREVSX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0hPTUVfUFJPVklERVJfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfSE9NRV9QUk9WSURFUl9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19IT01FX1BST1ZJREVSX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1BSRUZFUlJFRF9QUk9WSURFUl9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19QUkVGRVJSRURfUFJPVklERVJfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUFJFRkVSUkVEX1BST1ZJREVSX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1BSRUZFUlJFRF9QUk9WSURFUl9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SRUdJU1RFUl9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1NJR05BTF9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1JBRElPX1NUQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfSUFfU1RBVFVTX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0lBX1NUQVRVU19HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19JQV9TVEFUVVNfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19OSVRaX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX05JVFpfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfTklUWl9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0lETEVfSElOVF9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19JRExFX0hJTlRfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfSURMRV9ISU5UX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0lETEVfSElOVF9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19CQVNFX1NUQVRJT05TX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0JBU0VfU1RBVElPTlNfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfTE9DQVRJT05fSU5GT19HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19MT0NBVElPTl9JTkZPX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0xPQ0FUSU9OX0lORk9fSU5ELAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SQVRfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUkFUX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0NTX1NUQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ1NfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ1NfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfTlJfT1BUSU9OX1NFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX05SX09QVElPTl9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19SQVRfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUkFUX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0JBTkRfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQkFORF9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19CQU5EX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0JBTkRfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ0hBTk5FTF9MT0NLX1NFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0NIQU5ORUxfTE9DS19TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19DSEFOTkVMX0xPQ0tfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ0hBTk5FTF9MT0NLX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0NTQ09OX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQUJPUlRfUExNTl9TRUFSQ0hfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19BQk9SVF9QTE1OX1NFQVJDSF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVOV19SQVRfU1dJVENIX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VU5XX1JBVF9TV0lUQ0hfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19QT0xfQ0FQQUJJTElUWV9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19QT0xfQ0FQQUJJTElUWV9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19QUkVGRVJfUkFUX1NFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1BSRUZFUl9SQVRfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUFJFRkVSUkVEX1BST1ZJREVSX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfWFJFR19JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1hSRUdfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfWFJFR19HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19MVEVfQ0FSUklFUl9BR0dSRUdBVElPTl9TV0lUQ0hfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfTFRFX0NBUlJJRVJfQUdHUkVHQVRJT05fU1dJVENIX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1BTX0NTX1JFR0lTVFJBVElPTl9TVEFURV9ST0FNSU5HX1RZUEVfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUFNfQ1NfUkVHSVNUUkFUSU9OX1NUQVRFX1JPQU1JTkdfVFlQRV9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19MVEVfQ0FSUklFUl9BR0dSRUdBVElPTl9TV0lUQ0hfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfTFRFX0NBUlJJRVJfQUdHUkVHQVRJT05fU1dJVENIX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0JMQUNLX0xJU1RfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQkxBQ0tfTElTVF9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19CTEFDS19MSVNUX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0JMQUNLX0xJU1RfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQkxBQ0tfTElTVF9TVEFURV9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0NFTExfTUVBU1VSRU1FTlRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19DRUxMX01FQVNVUkVNRU5UX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ0VMTF9CQU5EX1dISVRFX0xJU1RfTE9DS19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0NFTExfQkFORF9XSElURV9MSVNUX0xPQ0tfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19HRVRfQ0VMTF9CQU5EX0JBTkRXSURUSF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0dFVF9DRUxMX0JBTkRfQkFORFdJRFRIX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUFJPVklERVJfTkFNRV9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19QUk9WSURFUl9OQU1FX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX05SX09QVElPTl9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19OUl9PUFRJT05fR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU1JYTEVWX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1NSWExFVl9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19MVEVfTlJfQ0FJTkZPX0lORCwJCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1VSQ19FTkFCTEVfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfVVJDX0VOQUJMRV9TRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19ST0FNSU5HX01PREVfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUk9BTUlOR19NT0RFX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1JPQU1JTkdfTU9ERV9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19ST0FNSU5HX01PREVfR0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfRUNFTExfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19DSUVWX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUFNCRUFSRVJfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19FR01TU19JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0VPTlNfSU5ELAkJCisgICAgICAgIE1TR19JRF9MNVVfTDVVTldfTU9ERV9TV0lUQ0hfUkVRLAorICAgICAgICBNU0dfSURfTDVVX0w1VU5XX01PREVfU1dJVENIX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfUkZfU1RBVFVTX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1JGX1NUQVRVU19HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19DU0NPTl9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19DU0NPTl9HRVRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19TRVRfVFVXX1RJTUVSX0xFTkdUSF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1NFVF9UVVdfVElNRVJfTEVOR1RIX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX1RVV19USU1FUl9MRU5HVEhfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19HRVRfVFVXX1RJTUVSX0xFTkdUSF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0dFVF81R1VXX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19HRVRfNUdVV19JTkZPX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfTlJVV19JTkZPX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU0VUX0FMTE9XRURfTUNDX0xJU1RfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19TRVRfQUxMT1dFRF9NQ0NfTElTVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0VUWFBXUl9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0VUWFBXUlNUVVNfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19OV19QQVJBTVNfVVBEQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX05XX1BBUkFNU19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0dFVF9OV19QQVJBTVNfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19TRVRfUFJFRl9OU1NBSV9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX1NFVF9QUkVGX05TU0FJX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU0VUX05TU0FJX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfU0VUX05TU0FJX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX05TU0FJX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX05TU0FJX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VU5XX1BTX1NUQVRFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ0FDSEVfRU5EQ19DT05ORUNUX01PREVfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfQ0FDSEVfRU5EQ19DT05ORUNUX01PREVfU0VUX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fTDVVTldfR0VUX0xBVEVTVF9DQV9NRUFTVVJFTUVOVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0w1VU5XX0dFVF9MQVRFU1RfQ0FfTUVBU1VSRU1FTlRfQ05GLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19HRVRfQ1VSUkVOVF9DRUxMX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfTDVJT19MNVVOV19HRVRfQ1VSUkVOVF9DRUxMX0lORk9fQ05GLAorICAgIE1TR19JRF9MNVVOV19NU0dfRU5ELAorCisgICAgICAgIC8qTVNHX0lEX0w1SU8tPkw1VVNJTSovCisgICAgTVNHX0lEX0w1SU9fVVNJTV9NU0dfQkVHSU4sCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSU5fUFJPVEVDVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9WRVJJRllfUElOX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0NIQU5HRV9QSU5fUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fVU5CTE9DS19QSU5fUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUElOX0lORk9fR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1BJTl9MSVNUX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9JQ0NJRF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9JTVNJX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX01TSVNETl9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9TVEFURV9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9TVEFUVVNfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fQVRSX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX09QRU5fQ0hBTk5FTF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9DTE9TRV9DSEFOTkVMX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1JFU1RSSUNURURfQVBEVV9BQ0NFU1NfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fR0VORVJBTF9BUERVX0FDQ0VTU19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9MT05HX0FQRFVfUkVBRF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9MT05HX0FQRFVfV1JJVEVfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fVEVSTUlOQUxfQ0FQQUJJTElUWV9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fVEVSTUlOQUxfQ0FQQUJJTElUWV9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUkVTRVRfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1JFU0VUX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9BUFBfTElTVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9GSUxFX1NUQVRVU19HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUElOX0VYVEVOVElPTl9HRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUElOX0VYVEVOVElPTl9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fR1NNX0FVVEhFTlRJQ0FURV9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9FWFRfQVVUSEVOVElDQVRFX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0JUU0FQX0NPTk5FQ1RfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fQlRTQVBfRElTQ09OTkVDVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9CVFNBUF9QT1dFUl9PTl9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9CVFNBUF9QT1dFUl9PRkZfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fQlRTQVBfUkVTRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fQlRTQVBfQVBEVV9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSFlTSUNBTF9TTE9UU19NQVBQSU5HX1NFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QSFlTSUNBTF9TTE9UU19NQVBQSU5HX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9QT1dFUl9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fRVhURU5ERURfR0VORVJJQ19BUERVX0FDQ0VTU19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9VSUNDX0ZJTEVfQUNDRVNTX1JFQ09SRF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9VSUNDX0ZJTEVfQUNDRVNTX0JJTkFSWV9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9FVUlDQ19TTE9UU19TVEFUVVNfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX0ZBQ0lMSVRZX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9GQUNJTElUWV9TRVRfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fUElOX0NPVU5UX1FVRVJZX1JFUSwgICAgICAgIAorICAgICAgICBNU0dfSURfTDVJT19VU0lNX01TR19FTkQsCisKKyAgICAgICAgLypNU0dfSURfTDVJTy0+TDVVU1lTKi8KKyAgICBNU0dfSURfTDVJT19VU1lTX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1SU9fU1lTX0lORk9fR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VVNZU19FSU5EX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVNZU19FU0JQSURfSU5ELAorICAgICAgICBNU0dfSURfTDVVU1lTX0NJRVZfSU5ELAorICAgICAgICBNU0dfSURfTDVVU1lTX0VJTVNHRU9fSU5ELAorICAgICAgICBNU0dfSURfTDVJT19TWVNfU0FSX0dFVF9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NZU19TQVJfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VVNZU19DT05ORUNUSVZJVFlfU1RBVElTVElDU19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX1NZU19RVUVSWV9TQlBfUkVRLAorICAgIE1TR19JRF9MNUlPX1VTWVNfTVNHX0VORCwKKworICAgIE1TR19JRF9MNVVTTVNfTVNHX0JFR0lOLAorICAgICAgICAvKiBMNUlPIC0+IEw1VVNNUyAqLworICAgICAgICBNU0dfSURfTDVVU01TX0NPTkZJR19SRVEsCisgICAgICAgIE1TR19JRF9MNVVTTVNfQ09ORklHX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNNU19DT05GSUdfSU5ELAorICAgICAgICBNU0dfSURfTDVVU01TX1NFTkRfUkVRLAorICAgICAgICBNU0dfSURfTDVVU01TX1NFTkRfQ05GLAorICAgICAgICBNU0dfSURfTDVVU01TX1JFQURfUkVRLAorICAgICAgICBNU0dfSURfTDVVU01TX1JFQURfQ05GLAorICAgICAgICBNU0dfSURfTDVVU01TX05FV19TTVNfSU5ELAorICAgICAgICBNU0dfSURfTDVVU01TX05FV19TTVNfQ01ELAorICAgICAgICBNU0dfSURfTDVVU01TX05FV19TTVNfUlNQLAorICAgICAgICBNU0dfSURfTDVVU01TX05FV19TVEFUVVNfUkVQT1JUX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVNNU19ORVdfU1RBVFVTX1JFUE9SVF9DTUQsCisgICAgICAgIE1TR19JRF9MNVVTTVNfTkVXX1NUQVRVU19SRVBPUlRfUlNQLAorICAgICAgICBNU0dfSURfTDVVU01TX05FV19DQk1fSU5ELAorICAgICAgICBNU0dfSURfTDVVU01TX0RFTEVURV9SRVEsCisgICAgICAgIE1TR19JRF9MNVVTTVNfREVMRVRFX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNNU19XUklURV9SRVEsCisgICAgICAgIE1TR19JRF9MNVVTTVNfV1JJVEVfQ05GLAorICAgICAgICBNU0dfSURfTDVVU01TX1NUT1JFX1NUQVRVU19SRVEsCisgICAgICAgIE1TR19JRF9MNVVTTVNfU1RPUkVfU1RBVFVTX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVNNU19TVE9SRV9TVEFUVVNfSU5ELAorICAgICAgICBNU0dfSURfTDVVU01TX0M1R1VTTVNfSU5ELAorICAgICAgICBNU0dfSURfTDVVU01TX1NDQk1fUkVRLAorICAgICAgICBNU0dfSURfTDVVU01TX1NDQk1fQ05GLAorICAgICAgICBNU0dfSURfTDVVU01TX1NDQk1fSU5ELAorICAgICAgICAvKiBMNVVTTVMgLT4gTDVVU01TICovCisgICAgICAgIE1TR19JRF9MNVVTTVNfSEFORExFX05FWFRfTlRGLAorICAgICAgICBNU0dfSURfTDVVU01TX0VJTkRfVVJDLAorICAgICAgICBNU0dfSURfTDVVU01TX0NJRVZfVVJDLAorICAgICAgICBNU0dfSURfTDVVU01TX0NNVF9VUkMsCisgICAgICAgIE1TR19JRF9MNVVTTVNfQ01USV9VUkMsCisgICAgICAgIE1TR19JRF9MNVVTTVNfRVRXU19VUkMsCisgICAgICAgIE1TR19JRF9MNVVTTVNfQ0JNX1VSQywKKyAgICAgICAgTVNHX0lEX0w1VVNNU19DRFNfVVJDLAorICAgICAgICBNU0dfSURfTDVVU01TX0M1R1VTTVNfVVJDLAorICAgICAgICBNU0dfSURfTDVVU01TX0VDMktDTVRfVVJDLAorICAgIE1TR19JRF9MNVVTTVNfTVNHX0VORCwKKworICAgIE1TR19JRF9MNVVfTVNHX0JFR0lOLAorICAgICAgICAvKiBMNUlPIC0+IEw1VSAqLworICAgICAgICBNU0dfSURfTDVJT19BVF9DTURfUkVRLAorICAgICAgICBNU0dfSURfTDVVX0VVUkNBTExPV19SRVEsCisKKyAgICAgICAgLyogQVRQIC0+IEw1VSAqLworICAgICAgICBNU0dfSURfTDVVX0FUUF9BVF9DTURfQ05GLAorICAgICAgICBNU0dfSURfTDVVX0FUUF9BVF9VUkNfSU5ELAorICAgICAgICAvKiBMNEMgTDVVKi8KKyAgICAgICAgTVNHX0lEX0w1VV9DT05GSUdfRFNCUF9SRUNPTkZJR19JTkQsCisgICAgICAgIE1TR19JRF9MNVVfRFVNUF9DSEFOTkVMX0lORCwKKyAgICBNU0dfSURfTDVVX01TR19FTkQsCisKKyAgICBNU0dfSURfQVRQX01TR19CRUdJTiwKKyAgICAgICAgLyogTDVVIC0+IEFUUCAqLworICAgICAgICBNU0dfSURfTDVVX0FUUF9BVF9DTURfUkVRLAorICAgIE1TR19JRF9BVFBfTVNHX0VORCwKKworICAgIE1TR19JRF9MNVVfTDVVU1NfTVNHX0ZST01fTDVJT19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1VVNTX0FUX0NNRF9DTkYsCisgICAgICAgIE1TR19JRF9MNVVTU19VU1NEX0NNRF9JTkQsCisgICAgICAgIE1TR19JRF9MNVVTU19FQ01DQ1NTX0lORCwKKyAgICBNU0dfSURfTDVVX0w1VVNTX01TR19GUk9NX0w1SU9fRU5ELAorCisgICAgTVNHX0lEX0w1SU9fTDVVUEROX01TR19GUk9NX0w1SU9fQkVHSU4sCisgICAgICAgIE1TR19JRF9MNVVQRE5fQUNUX0RBVEFfQ0FMTF9SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fREVBQ1RfREFUQV9DQUxMX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9HRVRfREFUQV9DQUxMX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9TRVRfSUFfUkVRLAorICAgICAgICBNU0dfSURfTDVVUEROX0dFVF9JQV9SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fU0VUX0FQTl9SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fR0VUX0FQTl9SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fREVMX0FQTl9SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fR0VUX1BDT19SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fU0VUX1BDT19SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fU0VUX1BBQ0tFVF9GSUxURVJfUkVRLAorICAgICAgICBNU0dfSURfTDVVUEROX0dFVF9QQUNLRVRfRklMVEVSX1JFUSwKKwkJTVNHX0lEX0w1VVBETl9HRVRfREFUQV9DQUxMX0xJU1RfUkVRLAorCQlNU0dfSURfTDVVUEROX0dFVF9NRF9BUE5fUkVRLAorCQlNU0dfSURfTDVVUEROX1NFVF9QUk9GSUxFX1NUQVRVU19SRVEsCisJCU1TR19JRF9MNVVQRE5fU0VUX0RBVEFfQUxMT1dfUkVRLAorCQlNU0dfSURfTDVVUEROX0FCT1JUX0RBVEFfQ0FMTF9SRVEsCisJCU1TR19JRF9MNVVQRE5fR0VUX0NBTExfSU5GT19SRVEsCisJCU1TR19JRF9MNVVQRE5fR0VUX0RJU0FCTEVEX0FQTl9SRVEsCisJCU1TR19JRF9MNVVQRE5fR0VUX1VSU1BfUk9VVEVfUFJPRklMRV9SRVEsCisJCU1TR19JRF9MNVVQRE5fU0VUX1VSU1BfUFJFQ09ORl9VRV9QT0xJQ1lfUkVRLAorCQlNU0dfSURfTDVVUEROX0dFVF9VUlNQX1VFX1BPTElDWV9SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fR0VUX1FPU19SRVEsCisgICAgICAgIE1TR19JRF9MNVVQRE5fR0VUXzVHUU9TX1JFUSwKKwkJTVNHX0lEX0w1VVBETl9HRVRfTlNTQUlfUkVRLAorICAgICAgICBNU0dfSURfTDVVUEROX0RBVEFfUkVUUllfVElNRVJfUkVRLAorICAgIE1TR19JRF9MNUlPX0w1VVBETl9NU0dfRlJPTV9MNUlPX0VORCwKKworICAgIE1TR19JRF9MNUlPX0w1VVBETl9NU0dfRlJPTV9MT1dMQVlFUl9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9BQ1RfREFUQV9DQUxMX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9BQ1RfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9NRF9BQ1RfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9ERUFDVF9EQVRBX0NBTExfQ05GLAorICAgICAgICBNU0dfSURfTDVVUEROX0RFQUNUX0RBVEFfQ0FMTF9JTkQsCisgICAgICAgIE1TR19JRF9MNVVQRE5fTURfREVBQ1RfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9NT0RfREFUQV9DQUxMX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9HRVRfREFUQV9DQUxMX0lORCwKKwkJTVNHX0lEX0w1VVBETl9BUE5fQ0hHX0lORCwKKwkJTVNHX0lEX0w1VVBETl9WWldfQVBOX0NIR19JTkQsCisJCU1TR19JRF9MNVVQRE5fRUlXTFBMX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9FS0FMSVZFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9FRFJFVFJZX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9HRVRfREFUQV9DQUxMX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9TRVRfSUFfQ05GLAorICAgICAgICBNU0dfSURfTDVVUEROX0dFVF9JQV9DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fU0VUX0FQTl9DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fR0VUX0FQTl9DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fREVMX0FQTl9DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fR0VUX1BDT19DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fU0VUX1BDT19DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fTU9EX1BDT19JTkQsCisgICAgICAgIE1TR19JRF9MNVVQRE5fU0VUX1BBQ0tFVF9GSUxURVJfQ05GLAorICAgICAgICBNU0dfSURfTDVVUEROX0dFVF9QQUNLRVRfRklMVEVSX0NORiwKKwkJTVNHX0lEX0w1VVBETl9HRVRfREFUQV9DQUxMX0xJU1RfQ05GLAorCQlNU0dfSURfTDVVUEROX0dFVF9NRF9BUE5fQ05GLAorCSAgICBNU0dfSURfTDVVUEROX1NFVF9QUk9GSUxFX1NUQVRVU19DTkYsCisJCU1TR19JRF9MNVVQRE5fU0VUX0RBVEFfQUxMT1dfQ05GLAorCQlNU0dfSURfTDVVUEROX0FCT1JUX0RBVEFfQ0FMTF9DTkYsCisJCU1TR19JRF9MNVVQRE5fR0VUX0NBTExfSU5GT19DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fRFVQX0FDVF9EQVRBX0NBTExfSU5ELAorICAgICAgICBNU0dfSURfTDVVUEROX0RVUF9ERUFDVF9EQVRBX0NBTExfSU5ELAorCQlNU0dfSURfTDVVUEROX0dFVF9ESVNBQkxFRF9BUE5fQ05GLAorCQlNU0dfSURfTDVVUEROX0dFVF9VUlNQX1JPVVRFX1BST0ZJTEVfQ05GLAorCQlNU0dfSURfTDVVUEROX1NFVF9VUlNQX1BSRUNPTkZfVUVfUE9MSUNZX0NORiwKKwkJTVNHX0lEX0w1VVBETl9HRVRfVVJTUF9VRV9QT0xJQ1lfQ05GLAorCQlNU0dfSURfTDVVUEROX1VSU1BfUkVFVkFMX0lORCwKKwkJTVNHX0lEX0w1VVBETl9VUlNQX1VFX1BPTElDWV9DSEdfSU5ELAorICAgICAgICBNU0dfSURfTDVVUEROX0dFVF9RT1NfQ05GLAorICAgICAgICBNU0dfSURfTDVVUEROX0dFVF81R1FPU19DTkYsCisJCU1TR19JRF9MNVVQRE5fUEFDS0VUX1dBS0VfVVBfSU5ELAorCQlNU0dfSURfTDVVUEROX0dFVF9OU1NBSV9DTkYsCisgICAgICAgIE1TR19JRF9MNVVQRE5fREFUQV9SRVRSWV9USU1FUl9DTkYsCisgICAgTVNHX0lEX0w1SU9fTDVVUEROX01TR19GUk9NX0xPV0xBWUVSX0VORCwKKworICAgIE1TR19JRF9MNUlPX0w1VUNDX1JFUV9NU0dfQkVHSU4sCisgICAgICAgIC8qIElPLT5DQyAqLworICAgICAgICBNU0dfSURfTDVJT19DQ19ESUFMX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfSEFOR1VQX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQU5TV0VSX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfR0VUX0NBTExfU1RBVFVTX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfU1NfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19DQ19DT05GRVJFTkNFX0RJQUxfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19DQ19DT05GRVJFTkNFX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfR0VUX0NPTkZFUkVOQ0VfSU5GT19SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0RUTUZfUkVRLAorICAgICAgICBNU0dfSURfTDVJT19DQ19HRVRfRklOSVNIX1JFQVNPTl9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0VYSVRfRUNCTV9SRVEsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0ZMSUdIVF9NT0RFX0VDQ19TRVNTSU9OX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfRUNDX0xJU1RfU0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfRUNDX0xJU1RfR0VUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfSVZTX09ORUtFWV9FQ0FMTF9SRVEsCisgICAgTVNHX0lEX0w1SU9fTDVVQ0NfUkVRX01TR19FTkQsCisKKyAgICBNU0dfSURfTDVJT19MNVVDQ19DTkZfTVNHX0JFR0lOLAorICAgICAgICAvKiBDQy0+SU8gKi8KKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfRElBTF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0hBTkdVUF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0FOU1dFUl9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0dFVF9DQUxMX1NUQVRVU19DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX1NTX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQ09ORkVSRU5DRV9ESUFMX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQ09ORkVSRU5DRV9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0dFVF9DT05GRVJFTkNFX0lORk9fQ05GLAorICAgICAgICBNU0dfSURfTDVJT19DQ19EVE1GX0NORiwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfR0VUX0ZJTklTSF9SRUFTT05fQ05GLAorICAgICAgICBNU0dfSURfTDVJT19DQ19FWElUX0VDQk1fQ05GLAorICAgICAgICBNU0dfSURfTDVJT19DQ19GTElHSFRfTU9ERV9FQ0NfU0VTU0lPTl9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0VDQ19MSVNUX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0VDQ19MSVNUX0dFVF9DTkYsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0lWU19PTkVLRVlfRUNBTExfQ05GLAorICAgIE1TR19JRF9MNUlPX0w1VUNDX0NORl9NU0dfRU5ELAorCisgICAgTVNHX0lEX0w1SU9fTDVVQ0NfQ01EX01TR19CRUdJTiwKKyAgICAgICAgLyogQ0MtPklPICovCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0FQUFJPVkVfSU5DT01JTkdfQ01ELAorICAgIE1TR19JRF9MNUlPX0w1VUNDX0NNRF9NU0dfRU5ELAorCisgICAgTVNHX0lEX0w1SU9fTDVVQ0NfUlNQX01TR19CRUdJTiwKKyAgICAgICAgLyogSU8tPkNDICovCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0FQUFJPVkVfSU5DT01JTkdfUlNQLAorICAgIE1TR19JRF9MNUlPX0w1VUNDX1JTUF9NU0dfRU5ELAorCisgICAgTVNHX0lEX0w1SU9fTDVVQ0NfSU5EX01TR19CRUdJTiwKKyAgICAgICAgLyogQ0MtPklPICovCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0NBTExfU1RBVFVTX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQ0FMTF9FVkVOVF9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0NBTExfTU9ERV9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0NBTExfU0lQX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQ0FMTF9DT05GRVJFTkNFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQ0FMTF9JTVNfRVZFTlRfUEFDS0FHRV9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX0NDX0NBTExfU1NfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19DQ19FQ0NfTElTVF9DSEFOR0VfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19DQ19FQ0JNX01PREVfQ0hBTkdFX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fQ0NfQ1JTU19JTkQsCisgICAgTVNHX0lEX0w1SU9fTDVVQ0NfSU5EX01TR19FTkQsCisKKyAgICBNU0dfSURfTDVfVEhFUk1BTF9TVEFURV9JTkZPX0lORCwKKworICAgIE1TR19JRF9MNV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9TRVRfUkVRLAorICAgIE1TR19JRF9MNV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9TRVRfQ05GLAorICAgIE1TR19JRF9MNV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9HRVRfUkVRLAorICAgIE1TR19JRF9MNV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9HRVRfQ05GLAorICAgIE1TR19JRF9MNUlPX0w0QlNCUF9BVF9DSF9MT0NLX1JFUSwKKyAgICBNU0dfSURfTDVJT19MNEJTQlBfQVRfQ0hfVU5MT0NLX1JFUSwKKwlNU0dfSURfTDVJT19MNEJTQlBfU0JQX0lEX0NIQU5HRV9JTkQsCisKKyAgICBNU0dfSURfTDVVX0w1VUlNU19JTkRfQkVHSU4sCisgICAgICAgIE1TR19JRF9MNVVfTDVVSU1TX0NJUkVHVV9JTkQsCisgICAgICAgIE1TR19JRF9MNVVfTDVVSU1TX0VXRkNfSU5ELAorICAgICAgICBNU0dfSURfTDVVX0w1VUlNU19FSU1TUkVHVVJJX0lORCwKKyAgICAgICAgTVNHX0lEX0w1VV9MNVVJTVNfRUlNU1JFR1JFU1BfSU5ELAorICAgIE1TR19JRF9MNVVfTDVVSU1TX0lORF9FTkQsCisKKyAgICBNU0dfSURfTDVVSU1TX0lORF9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1VUlNU19DSVJFR1VfSU5ELAorICAgICAgICBNU0dfSURfTDVVSU1TX0VXRkNfSU5ELAorICAgICAgICBNU0dfSURfTDVVSU1TX0VJTVNSRUdVUklfSU5ELAorICAgICAgICBNU0dfSURfTDVVSU1TX0VJTVNSRUdSRVNQX0lORCwKKyAgICBNU0dfSURfTDVVSU1TX0lORF9FTkQsCisKKyAgICBNU0dfSURfTDVJT19MNVVJTVNfUkVRX01TR19CRUdJTiwKKyAgICAgICAgLyogSU8tPklNUyAqLworICAgICAgICBNU0dfSURfTDVVSU1TX0dFVF9TVEFURV9SRVEsCisJICAgIE1TR19JRF9MNVVJTVNfU0VUX0VJTVNDRkdfUkVRLAorICAgIE1TR19JRF9MNUlPX0w1VUlNU19SRVFfTVNHX0VORCwKKworICAgIE1TR19JRF9MNUlPX0w1VUlNU19DTkZfTVNHX0JFR0lOLAorICAgICAgICAvKiBJTVMtPklPICovCisgICAgICAgIE1TR19JRF9MNVVJTVNfR0VUX1NUQVRFX0NORiwKKwkJTVNHX0lEX0w1VUlNU19TRVRfRUlNU0NGR19DTkYsCisgICAgTVNHX0lEX0w1SU9fTDVVSU1TX0NORl9NU0dfRU5ELAorCisgICAgLyogTDVVU0lNIElORCAqLworICAgIE1TR19JRF9MNUlPX0w1VVNJTV9JTkRfTVNHX0JFR0lOLAorICAgICAgICBNU0dfSURfTDVJT19TSU1fU1RBVEVfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19TSU1fU1RBVFVTX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1NUQVRVU19DSEFOR0VfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19TSU1fSUNDSURfSU5ELAorICAgICAgICBNU0dfSURfTDVJT19TSU1fRVVJQ0NfU0xPVFNfU1RBVFVTX0lORCwKKyAgICAgICAgTVNHX0lEX0w1SU9fU0lNX1BIWVNJQ0FMX1NMT1RTX01BUFBJTkdfRE9ORV9JTkQsCisgICAgICAgIE1TR19JRF9MNUlPX1NJTV9DU0lNX0lNU0lfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfTDVJT19MNVVTSU1fSU5EX01TR19FTkQsCisgICAgCisgICAgLyogTDVVU1dJVENIIElORCAqLworICAgIE1TR19JRF9MNVVTV0lUQ0hfSU5EX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w1VVNXSVRDSF9TSU1fU1dJVENIX1NUQVRFX0lORCwKKyAgICBNU0dfSURfTDVVU1dJVENIX0lORF9NU0dfRU5ELAorCisgICAgTVNHX0lEX0w1SU9fTDVJT19NSVBDX1NFTkRfRFVNUCwKKyAgICBNU0dfSURfTDVJT19MNUlPX01JUENfUkVDVl9EVU1QLAorICAgIE1TR19JRF9MNUlPX0w1SU9fTUJDSV9TRU5EX0RVTVAsCisgICAgTVNHX0lEX0w1SU9fTDVJT19NQkNJX1JFQ1ZfRFVNUCwKKyAgICBNU0dfSURfTDVJT19MNUlPX0hBTkRMRV9ORVhUX0FUX05URiwKKyAgICBNU0dfSURfTDVJT19MNUlPX0hBTkRMRV9ORVhUX01CQ0lfTlRGLAorICAgIE1TR19JRF9MNUlPX0w1SU9fSEFORExFX05FWFRfTUlQQ19OVEYsCisKKyNpZiBkZWZpbmVkKENISVAxMDk5MikKKyAgICAvKiBJREMtPkw1ICovCisgICAgTVNHX0lEX0lEQ19OUlRDX1NUQVRJQ19DRkdfQ05GLAorICAgIE1TR19JRF9JRENfTlJUQ19TVEFUSUNfQ0ZHX0lORCwKKyNlbmRpZgorCisjaWYgKChkZWZpbmVkKF9fSURDX0VOQUJMRURfXykpICYmIChkZWZpbmVkIChfX0lEQ19OUlRDX0VOQUJMRV9fKSkpCisgICAgLyogSURDLT5MNSAqLworICAgIE1TR19JRF9MNV9JRENfTlJUQ19EWU5BTUlDX0lORk9fU0VUX0NORiwKKyAgICBNU0dfSURfTDVfSURDX05SVENfRFlOQU1JQ19DRkdfUVVFUllfQ05GLAorICAgIE1TR19JRF9MNV9JRENfTlJUQ19EWU5BTUlDX0NGR19JTkQsCisgICAgTVNHX0lEX0w1X0lEQ19OUlRDX0RZTkFNSUNfSU5GT19TRVRfUkVRLAorICAgIE1TR19JRF9MNV9JRENfTlJUQ19EWU5BTUlDX0NGR19RVUVSWV9SRVEsCisjZW5kaWYKKyAgICAgICAgLyogTDVBVEggLT4gTDVVUEROKi8KKyAgICBNU0dfSURfTDVBVEhfTDVVUEROX01TR19GUk9NX0w1SU9fQkVHSU4sCisgICAgICAgIE1TR19JRF9MNVVQRE5fRUlBQVBOX1JFUSwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9TRVRfRUdEQVRBX1JFUSwKKwkJTVNHX0lEX0w1VVBETl9WWldBUE5FX1JFUSwKKwkJTVNHX0lEX0w1VVBETl9WWldBUE5FVE1SX1JFUSwKKyAgICBNU0dfSURfTDVBVEhfTDVVUEROX01TR19GUk9NX0w1SU9fRU5ELAorCisgICAgICAgIC8qIEw1VVBETiAtPiBMNUFUSCovCisgICAgTVNHX0lEX0w1QVRIX0w1VVBETl9NU0dfRlJPTV9MNVVQRE5fQkVHSU4sCisgICAgICAgIE1TR19JRF9MNVVQRE5fRUlBQVBOX0NORiwKKyAgICAgICAgTVNHX0lEX0w1VVBETl9TRVRfRUdEQVRBX0NORiwKKwkJTVNHX0lEX0w1VVBETl9WWldBUE5FX0NORiwKKwkJTVNHX0lEX0w1VVBETl9WWldBUE5FVE1SX0NORiwKKyAgICBNU0dfSURfTDVBVEhfTDVVUEROX01TR19GUk9NX0w1VVBETl9FTkQsCisKK01TR19JRF9MNVVFQ0FMTF9SRVFfTVNHX0JFR0lOLAorICAgIC8qIEw1SU8gLT4gTDVVRUNBTEwgKi8KKyAgICBNU0dfSURfTDVVRUNBTExfSVZTX1VQREFURV9NU0RfUkVRLAorICAgIE1TR19JRF9MNVVFQ0FMTF9JVlNfUkVTRVRfUkVRLAorICAgIE1TR19JRF9MNVVFQ0FMTF9JVlNfU0VUX1RFU1RfQUREUl9SRVEsCisgICAgTVNHX0lEX0w1VUVDQUxMX0lWU19TRVRfUkVDT05GX0FERFJfUkVRLAorICAgIE1TR19JRF9MNVVFQ0FMTF9JVlNfU0VUX0FERFJfUFJJX1JFUSwKKyAgICBNU0dfSURfTDVVRUNBTExfSVZTX0dFVF9TSU1fSU5GT19SRVEsCitNU0dfSURfTDVVRUNBTExfUkVRX01TR19FTkQsCisKK01TR19JRF9MNVVFQ0FMTF9OVEZfTVNHX0JFR0lOLAorICAgIC8qIEw1SU8gLT4gTDVVRUNBTEwgKi8KKyAgICBNU0dfSURfTDVVRUNBTExfTVNEX0lOVEVSTkFMX05URiwKKyAgICBNU0dfSURfTDVVRUNBTExfRUNBTExfRkFJTF9OVEYsCisgICAgLyogTDVVRUNBTEwgLT4gTDVVRUNBTEwgKi8KKyAgICBNU0dfSURfTDVVRUNBTExfRlVOQ19JTklUX0RPTkVfTlRGLAorTVNHX0lEX0w1VUVDQUxMX05URl9NU0dfRU5ELAorCitNU0dfSURfTDVVRUNBTExfQ05GX01TR19CRUdJTiwKKyAgICAvKiBMNVVFQ0FMTCAtPiBMNUlPICovCisgICAgTVNHX0lEX0w1VUVDQUxMX0lWU19VUERBVEVfTVNEX0NORiwKKyAgICBNU0dfSURfTDVVRUNBTExfSVZTX1JFU0VUX0NORiwKKyAgICBNU0dfSURfTDVVRUNBTExfSVZTX1NFVF9URVNUX0FERFJfQ05GLAorICAgIE1TR19JRF9MNVVFQ0FMTF9JVlNfU0VUX1JFQ09ORl9BRERSX0NORiwKKyAgICBNU0dfSURfTDVVRUNBTExfSVZTX1NFVF9BRERSX1BSSV9DTkYsCisgICAgTVNHX0lEX0w1VUVDQUxMX0lWU19HRVRfU0lNX0lORk9fQ05GLAorTVNHX0lEX0w1VUVDQUxMX0NORl9NU0dfRU5ELAorCitNU0dfSURfTDVVRUNBTExfSU5EX01TR19CRUdJTiwKKyAgICAvKiBMNVVFQ0FMTCAtPiBMNUlPICovCisgICAgTVNHX0lEX0w1VUVDQUxMX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0w1VUVDQUxMX0NBTExfU1RBVFVTX0lORCwKKyAgICAvKiBMMVNQIC0+IEw1VUVDQUxMICovCisgICAgTVNHX0lEX0w1VUVDQUxMX0wxU1BfRUNBTExfU1RBVFVTX0lORCwKKyAgICAvKiBMNVUgLT4gTDVVRUNBTEwgKi8KKyAgICBNU0dfSURfTDVVRUNBTExfQ0VDTl9VUkMsCisgICAgTVNHX0lEX0w1VUVDQUxMX0VFQ1JFR1NfVVJDLAorTVNHX0lEX0w1VUVDQUxMX0lORF9NU0dfRU5ELAorCisJCS8qIFVTQiBNQklNIC0+IEw1SU8qLworICAgIE1TR19JRF9NQklNX0w1SU9fTUJDSV9NU0dfRlJPTV9NQklNX0JFR0lOLAorICAgICAgICBNU0dfSURfTUJJTV9MNUlPX01CQ0lfQ09NTUFORF9SRVEsCisgICAgICAgIE1TR19JRF9NQklNX0w1SU9fTUJDSV9SRVNFVF9GVU5DVElPTl9JTkQsCisgICAgICAgIE1TR19JRF9VU0JfTDVJT19ESVNDT05ORUNUX0lORCwKKyAgICAgICAgTVNHX0lEX1VTQl9MNUlPX1JFTU9URV9XQUtFVVBfSU5ELAorICAgIE1TR19JRF9NQklNX0w1SU9fTUJDSV9NU0dfRlJPTV9NQklNX0VORCwKKworICAgICAgICAvKiBMNUlPIC0+IFVTQiBNQklNKi8KKyAgICBNU0dfSURfTUJJTV9MNUlPX01CQ0lfTVNHX0ZST01fTDVJT19CRUdJTiwKKyAgICAgICAgTVNHX0lEX01CSU1fTDVJT19NQkNJX0NPTU1BTkRfQ05GLAorICAgICAgICBNU0dfSURfTUJJTV9MNUlPX01CQ0lfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfTUJJTV9MNUlPX01CQ0lfTVNHX0ZST01fTDVJT19FTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTDVfQ09ERV9UQUlMICkKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xhc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbGFzX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U5Mjc3MAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xhc19tc2dpZC5oCkBAIC0wLDAgKzEsMjExIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTQKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgbGFzX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFAtY29yZSBhbmQgTDEtY29yZSBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDYgMDYgMjAxOCBuYWxpbi5jaG92YXRpYQorICogW01PTFkwMDMyNzk0MV0gVU1PTFlFOiBHZW1pbmk6IENoYW5nZSBoYW5kbGluZyBvZiBNU0dfSURfUlNWQVNfR0FTX1NVU1BFTkRfU0VSVklDRV9SRVEvQ05GCisgKiAJCisgKiAJLnN1c3BlbmQgcjAKKyAqCisgKiAwNiAwNiAyMDE4IG5hbGluLmNob3ZhdGlhCisgKiBbTU9MWTAwMzI3OTQxXSBVTU9MWUU6IEdlbWluaTogQ2hhbmdlIGhhbmRsaW5nIG9mIE1TR19JRF9SU1ZBU19HQVNfU1VTUEVORF9TRVJWSUNFX1JFUS9DTkYKKyAqIC5zdXNwZW5kIHIwCisgKgorICogMDggMDkgMjAxNiBtYXJ1Y28udHUKKyAqIFtNT0xZMDAxOTYwNjVdIFtNVDYyOTNdW2ZvbGRlciBzdHJ1Y3R1cmVdIE1vdmUgRUwxL0VMMiBmaWxlcyBmcm9tIExURSBkb21haW4gdG8gU1dSRCBkb21haW4KKyAqIFtMQ0VMIHJlLWFyY2hdKENPTkZJRyBmaWxlcykgKE9BIGRvbWFpbikKKyAqIAkxLm1vZGlmeSBTQVAgZmlsZSAKKyAqIAkyLkFkZCBuZXcgbWVzc2FnZSBmb3IgZGhsL21jZGRsbAorICogCTMuZGlzYWJsZSBMQ0VMIGluIGxhc19jcmVhdGUuYworICogCTQuY2hlY2sgaW4gZWwxL2VycmMvbGFzX21zZ2lkLmgKKyAqIAk1LlJlbW92ZSBsYXMvbGNlbCBwYXRoIGFuZCBhZGQgZXJyYy9sY2VsIHBhdGggaW4gbHRlX2RlZi5tYWsKKyAqCisgKiAwNyAyNyAyMDE2IGp1aS1jaGloLmNoaW4KKyAqIFtNT0xZMDAxOTM2MThdIFs2MjkzXVtMTU9CIFJlbW92ZWxdIENvZGUgTWVyZ2UgZnJvbSBDQnIgdG8gVU1PTFlBIFRSVU5LIGFuZCBVTU9MWUEgUFMgREVWCisgKiAJCisgKiAJTE1PQiByZW1vdmFsIChPQSkKKyAqCisgKiAwNiAyNyAyMDE2IGp1aS1jaGloLmNoaW4KKyAqIFtNT0xZMDAxODM2NDJdIG5ldyB0YXNrIEVMMV9NUEMgZGVmaW5pdGlvbiBmb3IgNjI5MworICogCQorICogCS4KKyAqCisgKiAwMyAxMSAyMDE2IHlpLWhhbi5jaHVuZworICogW01PTFkwMDE2MjQ2MV0gpmJBbmRyb2lkPz8/TW9kZW0/P0xvZ6q6u92oRAorICoKKyAqIDA4IDA2IDIwMTUgY2xhdWQubGkKKyAqIFtNT0xZMDAxMjU2MTJdIFtQUzFdWzkxcGx1c10gY29yZSBjaGFuZ2UgbW9kaWZpY2F0aW9uCisgKiBbUFMxXVs5MStdbm8gbmVlZCB0byBzZXQgbW9kdWxlIGlkIGZvciBMQVMgZHVyaW5nIG1vZGUgc3dpdGNoCisgKgorICogMDcgMjMgMjAxNSBoZW5yeS5sYWkKKyAqIFtNT0xZMDAwOTI1MDhdIFtNVDYyOTFdW0xURS1DMktdIEFTIEludGVyIFJBVCBmZWF0dXJlCisgKiAuCisgKgorICogMDcgMTcgMjAxNSBkb3VnLnNoaWgKKyAqIFtNT0xZMDAxMjY5MzZdIFtUSzYyOTFFMV1bNEcgRkREXVtBVEVdWzg4MjBdWzFdW0wxQ09SRV0gQXNzZXJ0IGZhaWw6IGxjZWxfcGFnaW5nLmMgODcxIC0gTEFTX1BDTworICogW0xDRUxdIGFkZCBVVCBtZXNzYWdlIGlkIGZvciBMMV9MSVNSIHByZWVtcHQgc2ltdWxhdGlvbi4KKyAqCisgKiAwNiAxNiAyMDE1IGhlbnJ5LmxhaQorICogW01PTFkwMDExMzA4Ml0gW01UNjI5MV0gRVJSQyBDRUwgZGV2ZWxvcG1lbnQKKyAqIC4KKyAqCisgKiAwNiAwMSAyMDE1IGhlbnJ5LmxhaQorICogW01PTFkwMDA5MjUwOF0gW01UNjI5MV1bTFRFLUMyS10gQVMgSW50ZXIgUkFUIGZlYXR1cmUKKyAqIC4KKyAqCisgKiAwNCAyOSAyMDE1IGNlbi5jaGVuCisgKiBbTU9MWTAwMTA5MDQ3XSBbVU1PTFldW25ldyBmZWF0dXJlXSBQaWNoIGZhbHNlIGFsYXJtIE9wdGltaXphdGlvbi4KKyAqIExSUkNFICYgUlJDRSBjb2RlIGNoYW5nZSBmb3IgUGFnaW5nIE9QVC4KKyAqCisgKiAwNCAyOCAyMDE1IGdlb3JnZS5jaGFuZworICogW01PTFkwMDEwOTcxNF0gWzYyOTFdIE1PQiBNRFQgY2hlY2sgaW4gdG8gVU1PTFkgVFJVTksKKyAqIAkuCisgKgorICogMDQgMTYgMjAxNSBnZW9yZ2UuY2hhbmcKKyAqIFtNT0xZMDAxMDc4NzBdIFs2MjkxXSBMQVMgVUJJTiBwaGFzZSAyIGNoZWNrIGluIHRvIFVNT0xZIFRSVU5LCisgKiAuCisgKgorICogMDMgMTEgMjAxNSB5ZW5jaGloLnlhbmcKKyAqIFtNT0xZMDAwOTg0NzNdIFtMTUVNRS9MTU9CL0w0Q10gUG93ZXIgQ29uc3VtcHRpb24gRW5oYW5jZW1lbnQgZm9yIFNpZ25hbCBCYXIgUmVwb3J0aW5nCisgKiAuCisgKgorICogMDEgMjcgMjAxNSBkb25ncWluZy5xaQorICogW01PTFkwMDA4NzQ5MV0gW1VNT0xZXVtURERdW1VBU11bU0xDRS9SUkNFL01FTUVdc3luYyBVLUJpbiBDQnIgdG8gVU1PTFkgVFJVTkNLLgorICogLlJlbmFtZSBNU0dfSUQgdG8gTVNHX0lEX1RERC4KKyAqCisgKiAwMSAyNiAyMDE1IHllbmNoaWgueWFuZworICogW01PTFkwMDA4NDI1Nl0gW01FTUVdIHN5bmMgTVQ2MjkxIHRvIFVNT0xZCisgKiBSZW5hbWUgTVNHX0lEIHRvIE1TR19JRF9GREQuCisgKgorICogMDEgMTYgMjAxNSBkYXZpZC5uaXUKKyAqIFtNT0xZMDAwODc5MzRdIFtNVDYyOTFdW0xQUCBPVERPQSBEZXZlbG9wbWVudF0gSW50ZXItZnJlcSBSU1REIG1lYXN1cmVtZW50IGluZGljYXRpb24KKyAqIC4KKyAqCisgKiAxMCAxNiAyMDE0IGRhdmlkLm5pdQorICogW01PTFkwMDA4MDIxMV0gW01UNjI5MV9ERVZdW01UNjI5MV9VRVNJTV9ERVZdIENoZWNrIGluIGxvdyBwb3dlciB0byBNVDYyOTFfREVWLCBNVDYyOTFfVUVTSU1fREVWCisgKiAuCisgKgorICogMDkgMjUgMjAxNCBoZW5yeS5sYWkKKyAqIFtNT0xZMDAwNzkwNzFdW01UNjI5MV1bVTRHXSBMb3cgUG93ZXIgTW9kaWZpY2F0aW9uIGZvciBDRUwgUGFnaW5nLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTEFTX01TR0lEX0gKKyNkZWZpbmUgX0xBU19NU0dJRF9ICisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0xBU19DT0RFX0JFR0lOICkKKworTVNHX0lEX0xBU19NRVNTQUdFX0JFR0lOID0gTVNHX0lEX0xBU19DT0RFX0JFR0lOLAorLyogTU9CIHRvIExNT0IgKi8KK01TR19JRF9NT0JfTE1PQl9DT05GSUdfUkVRLAorTVNHX0lEX01PQl9MTU9CX1JBRElPX01FQVNVUkVfUkVRLAorTVNHX0lEX01PQl9MTU9CX0NFTExfUkVKX0lORk9fSU5ELAorTVNHX0lEX01PQl9MTU9CX1BSSU9SSVRZX0lORk9fSU5ELAorTVNHX0lEX01PQl9MTU9CX09PU19TQ1NJX0lORk9fQ05GLAorTVNHX0lEX01PQl9MTU9CX0NPTkZJR19VQ0VMTF9NRUFTX0NORiwKK01TR19JRF9NT0JfTE1PQl9DT05GSUdfVUNFTExfUFJJT19NRUFTX0NORiwKK01TR19JRF9NT0JfTE1PQl9VQVNfTFRFX01FQVNVUkVNRU5UX1JFUSwKK01TR19JRF9NT0JfTE1PQl9DT05GSUdfR0NFTExfTUVBU19DTkYsCitNU0dfSURfTU9CX0xNT0JfQ09ORklHX0dDRUxMX1BSSU9fTUVBU19DTkYsCitNU0dfSURfTU9CX0xNT0JfR0FTX0xURV9NRUFTVVJFTUVOVF9SRVEsCitNU0dfSURfTU9CX0xNT0JfQ09ORklHX0NDRUxMX01FQVNfQ05GLAorTVNHX0lEX01PQl9MTU9CX0NPTkZJR19DQ0VMTF9QUklPX01FQVNfQ05GLAorTVNHX0lEX01PQl9MTU9CX0NBU19MVEVfTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX01PQl9MTU9CX0NBU19MVEVfSFBTX1FVQUxJRllfQ0VMTF9JTkQsCitNU0dfSURfTU9CX0xNT0JfSVJfTUVBU19DVFJMX1JFUSwKK01TR19JRF9NT0JfTE1PQl9BREpVU1RfTUVBU19SRVEsCitNU0dfSURfTU9CX0xNT0JfU1lOQ0hfU1RBVFVTX1JFUSwKK01TR19JRF9NT0JfTE1PQl9UU1RfSU5KRUNUX1NZTkNIX1JFUSwKK01TR19JRF9NT0JfTE1PQl9OQlJfQ0VMTF9JTkZPX1NUQVJUX1JFUSwKK01TR19JRF9NT0JfTE1PQl9OQlJfQ0VMTF9JTkZPX1NUT1BfUkVRLAorTVNHX0lEX01PQl9MTU9CX0VNX1VQREFURV9SRVEsCitNU0dfSURfTU9CX0xNT0JfTUVBU19MT0dHSU5HX1JFUSwKK01TR19JRF9NT0JfTE1PQl9FU1RGQUlMX1JFUE9SVF9SRVEsCisvKiBFTDEgdG8gTEFTICovCisjaWZkZWYgX19MQVNfTU9CX18KK01TR19JRF9FUlJDX0VMMU1QQ19QUlNfR0FQX0lORCwKKyNlbmRpZiAvKiBfX0xBU19NT0JfXyAqLworLyogRVJSQyB0byBMQVMgKi8KKy8qIE1QQUwgdG8gR0lTRSovCitNU0dfSURfTVBBTF9HSVNFX1NUQU5EQllfR1NNX01FQVNfUkVRLAorTVNHX0lEX01QQUxfR0lTRV9TVEFOREJZX0dTTV9QUklPX01FQVNfUkVRLAorLyogUlJNIHRvIEdJU0UqLworTVNHX0lEX1JSTV9HSVNFX1NFVF9DT05URVhUX1JFUSwKK01TR19JRF9SUk1fR0lTRV9HRVRfR0NFTExfTUVBU19SRVEsCisKKworTVNHX0lEX1RERF9MVVJSX0RVTVBfQ09OVEVYVCwKK01TR19JRF9URERfTE1FTUVfRFVNUF9DT05URVhULAorTVNHX0lEX1RERF9MTUVNRV9VVF9TRVRfQ09OVEVYVCwKK01TR19JRF9URERfTE1FTUVfVVRfU0VUX1NITSwKK01TR19JRF9URERfTFJSQ0VfTFVSTENfVE1fREFUQV9JTkQsLypMVVJMQyB0byBMUlJDRSovCisKK01TR19JRF9GRERfTFVSUl9EVU1QX0NPTlRFWFQsCitNU0dfSURfRkREX0xNRU1FX0RVTVBfQ09OVEVYVCwKK01TR19JRF9GRERfTE1FTUVfVVRfU0VUX0NPTlRFWFQsCitNU0dfSURfRkREX0xNRU1FX1VUX1NFVF9TSE0sCisKK01TR19JRF9MNENfTEFTX0NFTExfUE9XRVJfTUVBU19PTk9GRl9SRVEsCitNU0dfSURfTDRDX0xBU19DRUxMX1BPV0VSX01FQVNfT05PRkZfQ05GLAorCisvKiBNUEFMIHRvIEdJU0UqLworTVNHX0lEX01QQUxfR0lTRV9TVVNQRU5EX1JFUSwKKworTVNHX0lEX0xBU19OT05fVVNFRF9NRVNTQUdFX0VORCwKK01TR19JRF9MQVNfQ09ERV9FTkQgPSBNU0dfSURfTEFTX05PTl9VU0VEX01FU1NBR0VfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9MQVNfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9MQVNfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbGVjX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sZWNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2FhNDBhCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbGVjX21zZ2lkLmgKQEAgLTAsMCArMSwyNDMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgIEZJTEUgTkFNRTogIGxlY19tc2dpZC5oCisKKyAgREVTQ1JJUFRJT046CisKKyAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmVuaXRpb25zIG9mIGFsbCB0aGUgTEVDIG1zZyBpZCdzLgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaWZuZGVmIF9MRUNfTVNHSURfSF8KKyNkZWZpbmUgX0xFQ19NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisKKyN1bmRlZiBNU0dJRF9TRVQKKyN1bmRlZiBNU0dJRF9ORVhUCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MRUNfQ09ERV9CRUdJTiApCisgICAgLyogZnJvbSBQU1cgKi8KKyAgICBNU0dfSURfTEVDX0dQU19ERVZJQ0VfUE9XRVJfT05fUkVRX01TRyA9IE1TR19JRF9MRUNfQ09ERV9CRUdJTiswLCAgLyogVHVybiBvbiB0aGUgR1BTIERldmljZSAqLworICAgIE1TR19JRF9MRUNfUFNFVURPUkFOR0VfTVNNVF9SRVFfTVNHLAorICAgIE1TR19JRF9MRUNfU0VTU0lPTl9FTkRfUkVRX01TRywKKyAgICBNU0dfSURfTEVDXzM2QklUX05XS19DRE1BX1RJTUVfTVNHLCAgLyogTEVDIHJlcXVlc3RlZCBTeXN0ZW0gdGltZSBhbmQgUFNXIHJlc3BvbnNlICovCisgICAgTVNHX0lEX0xFQ19TRU5TSVRJVklUWV9BU1NJU1RfTVNHLCAgLyogTm90IHVzZWQgd2l0aCBHTlM3NTYwICovCisgICAgTVNHX0lEX0xFQ19QU1dfR1BTX0VQSF9NU0csICAvKk1TLUJhc2VkIE1TRyovCisgICAgTVNHX0lEX0xFQ19QU1dfR1BTX0FMTV9NU0csCisgICAgTVNHX0lEX0xFQ19QU1dfTE9DX1JFU1BfTVNHLAorCisgICAgLypNUy1CYXNlZCAgICBmcm9tIEVUUyovCisgICAgTVNHX0lEX0xFQ19HUFNfTVNfQkFTRURfTVNHLAorICAgIE1TR19JRF9MRUNfR1BTX01TX0JBU0VEX0dFVEFTU0lTVF9NU0csCisKKyAgICAvKiBmcm9tIEwxRCAqLworICAgIE1TR19JRF9MRUNfR1BTX0lOSVRfR1BTX0FDS19NU0csCisgICAgTVNHX0lEX0xFQ19HUFNfRU5EX0dQU19BQ0tfTVNHLAorICAgIE1TR19JRF9MRUNfR1BTX0NPTlRfR1BTX01TRywgLyogTm90IHVzZWQgKi8KKyAgICBNU0dfSURfTEVDX0dQU19IV19FTkFCTEVfTVNHLCAvKiBOb3QgdXNlZCAqLworICAgIE1TR19JRF9MRUNfR1BTX1JFRl9GUkVRX0FESl9NU0csIC8qIFRvIFNldCBvciBhZGp1c3QgQ2xvY2sgRnJlcXVlY255ICovCisKKyAgICAvKiBmcm9tIElPUCAqLworICAgIE1TR19JRF9MRUNfR1BTX1JYX0RBVEFfTVNHLAorCisgICAgLyogZnJvbSBEQk0gKi8KKyAgICBNU0dfSURfTEVDX0RCTV9SRUFEX0JMS19SU1BfTVNHLAorICAgIE1TR19JRF9MRUNfREJNX1dSSVRFX0JMS19SU1BfTVNHLAorCisgICAgLyogZnJvbSBWQUwgKi8KKyAgICBNU0dfSURfTEVDX0dQU19SRVNFVF9BU1NJU1RfTVNHLCAvKiBQTFRTIC9GaWVsZCBUZXN0IFB1cnBvc2UgKi8KKyNpZiAwCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKKyAgICBNU0dfSURfTEVDX0NBTExfQkFDS19NU0csCisgICAgTVNHX0lEX0xFQ19BUE1PREVfTVNHLAorICAgIE1TR19JRF9MRUNfVEVTVE1PREVfTVNHLAorICAgIE1TR19JRF9MRUNfVVNFUk1PREVfTVNHLAorICAgIE1TR19JRF9MRUNfTk1FQV9DRkdfU0VUX0VUUywKKyAgICBNU0dfSURfTEVDX05NRUFfQ0ZHX0dFVF9FVFMsCisgICAgTVNHX0lEX0xFQ19QU1dfUkVTVEFSVF9NU0csCisgICAgTVNHX0lEX0xFQ19HRVRfUkZfQkFORF9NU0csCisgICAgTVNHX0lEX0xFQ19QU1dfQ0RNQV9TWVNURU1fUlNQX01TRywKKyAgICBNU0dfSURfTEVDX1ZBTF9GQUNUT1JZX0dFVF9SRl9DTk9fTVNHLAorICAgIE1TR19JRF9MRUNfVkFMX0ZBQ1RPUllfU1RPUF9SRl9DTk9fTVNHLAorICAgIE1TR19JRF9MRUNfTFRFX1RSTl9NU0csCisjaWYgMCAgICAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAgICAgICAgCisgICAgTVNHX0lEX0xFQ19TTEVFUF9USU1FX01TRywKKworICAgIE1TR19JRF9MRUNfR1BTX1BHUFNfT05fT0ZGX01TRywKKyNpZiAwICAgIAorLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmICAgIAorICAgIE1TR19JRF9MRUNfUFNXX0NFTExfSU5GT01BVElPTl9NU0csCisjaWYgMCAgICAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAgICAKKyAgICBNU0dfSURfTEVDX0FQX0dQU19MT0NfUkVTUF9NU0csCisgICAgTVNHX0lEX0xFQ19GSVhfVElNRV9NU0csCisgICAgTVNHX0lEX0xFQ19BUF9HUFNfQUFfQVNTSVNUX1JFUV9NU0csCisgICAgTVNHX0lEX0xFQ19BUF9HUFNfUU9TX1JFUV9NU0csCisKKyAgICBNU0dfSURfTEVDX1ZBTF9BUF9HUFNfU1RBUlRfQUNLLAorICAgIE1TR19JRF9MRUNfQVBGX1JFQURZX01TRywKKworICAgIE1TR19JRF9MRUNfQVBfR1BTX1BSRUNJU0VfVElNRV9BSURJTkdfUkVRX01TRywKKyAgICBNU0dfSURfTEVDX0FQX0dQU19GUkVRVUVOQ1lfQUlESU5HX1JFUV9NU0csCisgICAgTVNHX0lEX0xFQ19BUF9HUFNfUFNFVURPUkFOR0VfTVNNVF9SU1BfTVNHLAorICAgIE1TR19JRF9MRUNfQVBfR1BTX1JFRkVSRU5DRV9MT0NBVElPTl9BSURJTkdfUkVRX01TRywKKyAgICBNU0dfSURfTEVDX1ZBTF9DUF9HUFNfU1RPUF9BQ0ssCisjaWYgMCAgICAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAgICAKKyAgICBNU0dfSURfTEVDX0dQU19SRUFEWV9NU0csCisjaWYgMCAgICAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAgICAKKyAgICBNU0dfSURfTEVDX1BTV19SRUFEWV9NU0csCisjaWYgMCAgICAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAgICAKKyAgICBNU0dfSURfTEVDX0FQX0dQU19BU1NJU1RfRklOSVNIX01TRywKKyAgICBNU0dfSURfTEVDX0FQX0dQU19TVE9QX0FDS19NU0csCisgICAgTVNHX0lEX0xFQ19DVVNUT01FUl9TRVRUSU5HX01TRywKKyNpZiAwICAgIAorLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmICAgIAorI2lmZGVmIE1US19HUFNfU1lOQ19ERVYKKyAgICBNU0dfSURfTEVDX0FQX0dQU19QRVJJT0RfU1lOQ19SRVEsCisgICAgTVNHX0lEX0xFQ19BUF9HUFNfUEVSSU9EX1NZTkNfU1RPUF9SRVEsCisgICAgTVNHX0lEX0xFQ19MMURfR1BTX1RJTUVfSU5ELAorICAgIE1TR19JRF9MRUNfQVBfREVMRVRFX0FTU0lUX0RBVEFfQ05GLAorI2VuZGlmCisgICAgTVNHX0lEX0xFQ19TVEFSVFVQX1NJR05BTCwKKyAgIC8vIE1TR19JRF9MRUNfUlVOX0dQU19MSUJSQVJZX1NJR05BTCwKKyAgICAvL01TR19JRF9MRUNfUlVOX1BBVENIX1NJR05BTCwKKyAgICBNU0dfSURfTEVDX0FQX0dQU19TVl9WQUxJRF9SRVEsCisgICAgTVNHX0lEX0xFQ19OVU1fTVNHU19JRCwKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX0xFQ19DT0RFX1RBSUwpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRW5kIG9mIEZpbGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2VuZGlmCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sbDFfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xsMV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlYmVlMWMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sbDFfbXNnaWQuaApAQCAtMCwwICsxLDI0NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiBsbDFfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgV0NETUFfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMYXllciAxIGFuZCBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFJlcXVlc3QgZm9yIExMMSAqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBMTDFfTVNHSURfSAorI2RlZmluZSBMTDFfTVNHSURfSAorCisjaWZkZWYgX1Rlc3RfSGRyX09uX1BDCitlbnVtIHsKKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTEwxX01TR19DT0RFX0JFR0lOICkKKy8qIEJFR0lOOmpha2U6IDIwMDUxMjI2LCBmb3IgTEwxIGltcGxlbWVudCwgc2VuZC9yZWNlaXZlIE1TRyB0by9mb3JtIEdTTSBMMSAqLworTVNHX0lEX01QSERfR1NNX0dBUF9TRVJWSUNFX1JFUSA9IE1TR19JRF9MTDFfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfTVBIRF9HU01fVElDS19JTkQsCitNU0dfSURfTVBIRF9HU01fR0FQX1BBVFRFUk5fSU5ELAorTVNHX0lEX01QSERfR1NNX0dBUF9TVE9QX1JFUSwKK01TR19JRF9NUEhEX0dTTV9HQVBfU1RPUF9DTkYsCitNU0dfSURfTVBIRF9HU01fU0NfTU9ERV9JTkQsIC8qTVRLIEwxIG9ubHksIHRvIGluZm9ybSAzRyBMMSBjdXJyZW50bHkgMkcgU0MgbW9kZSovCitNU0dfSURfTVBIRF9VTVRTX0dBUF9TRVJWSUNFX1JFUSwKK01TR19JRF9NUEhEX1VNVFNfUEFSQU1fTk9USUZZX0lORCwKKyNpZiAwIC8qUG9wMjAwOTAzMTAgZm9yIGxvdyBwd3IgaW1wcm92ZW1lbnQgaW4gMkcgc3RhbmRieSBtb2RlKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorTVNHX0lEX01QSERfVU1UU19HQVBfU1RPUF9SRVEsCitNU0dfSURfTVBIRF9VTVRTX0dBUF9TVE9QX0NORiwKKyNpZmRlZiBfX1VNVFNfVEREMTI4X01PREVfXworTVNHX0lEX01QSERfVU1UU19GQUNIX0xPQ0tfUkVRLCAKK01TR19JRF9NUEhEX1VNVFNfRkFDSF9VTkxPQ0tfUkVRLCAKK01TR19JRF9NUEhEX1VNVFNfRkFDSF9MT0NLX0NORiwKKyNlbmRpZiAvKl9fVU1UU19UREQxMjhfTU9ERV9fKi8KKyNpZmRlZiBfX1VNVFNfRkREX01PREVfXworTVNHX0lEX01QSERfVU1UU19GTU9fTE9DS19SRVEsIC8qTVRLIEwxIG9ubHksIHRvIGluZm9ybSAyRyBMMSBob2xkIEZNTyBmb3IgUkFDSCovCitNU0dfSURfTVBIRF9VTVRTX0ZNT19VTkxPQ0tfUkVRLCAvKk1USyBMMSBvbmx5LCB0byBpbmZvcm0gMkcgTDEgcmVzdW1lIEZNTyovCitNU0dfSURfTVBIRF9VTVRTX0ZNT19MT0NLX0NORiwKKyNlbmRpZiAvKl9fVU1UU19GRERfTU9ERV9fKi8KK01TR19JRF9NUEhEX0dTTV9QTV9ET05FX0lORCwvKlBvcGNhZmEgMjAwOTAyMDcgbG93IHB3ciBpbXByb3ZlbWVudCBpbiAyRyBzdGFuZGJ5IG1vZGUqLworTVNHX0lEX01QSERfSVJBVF9TWU5DX1JFQURZX0lORCwKK01TR19JRF9NUEhEX0lSQVRfU1lOQ19DT01QTEVURV9JTkQsCitNU0dfSURfTVBIRF9JUkFUX1NZTkNfQ05GLAorTVNHX0lEX01QSERfSVJBVF9VTVRTX1RJTUlOR19DSEFOR0VfSU5ELAorTVNHX0lEX01QSERfSVJBVF9TWU5DX1JFUSwKK01TR19JRF9NUEhEX0lSQVRfU1lOQ19JTkQsICAvKiBTWVksIDNHIHdha2UgdXAgdG8gbm90aWZ5IDJHIGRvIHRpbWluZyBzeW5jLiB3aGVuIDJHIGluIGNvbm5lY3Rpb24gbW9kZSAqLworTVNHX0lEX01QSERfR1NNX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTVBIRF9HU01fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfTVBIRF9VTVRTX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTVBIRF9VTVRTX0dBUF9BVkFJTEFCTEVfSU5ELAorTVNHX0lEX01QSERfRFVBTF9NT0RFX1BSSU1JVElWRV9FTkQsCisvKgorI2lmZGVmIF9fVU1UU19GRERfTU9ERV9fCisjaWZkZWYgX19NVEtfVUwxX0ZERF9fCitNU0dfSURfTVBIRF9VTVRTX0dBUF9QQVRURVJOX1BDSF9JTkQsCitNU0dfSURfTVBIRF9VTVRTX0dBUF9QQVRURVJOX0ZBQ0hfSU5ELAorTVNHX0lEX01QSERfVU1UU19HQVBfUEFUVEVSTl9EQ0hfSU5ELAorI2Vsc2UKK01TR19JRF9NUEhEX1VNVFNfR0FQX1BBVFRFUk5fSU5ELAorI2VuZGlmCisjZW5kaWYKKyovIAorCisvLyNpZmRlZiBfX1VNVFNfVEREMTI4X01PREVfXworTVNHX0lEX01QSERfVU1UU19HQVBfUEFUVEVSTl9QQ0hfSU5ELAorTVNHX0lEX01QSERfVU1UU19HQVBfUEFUVEVSTl9GQUNIX0lORCwKK01TR19JRF9NUEhEX1VNVFNfR0FQX1BBVFRFUk5fRENIX0lORCwKK01TR19JRF9NUEhEX1VNVFNfR0FQX1BBVFRFUk5fSFNQQV9JTkQsCisvLyNlbmRpZiAvKl9fVU1UU19UREQxMjhfTU9ERV9fKi8KK01TR19JRF9NUEhEX1VNVFNfTU9ERV9JTkQsIC8qIE1USyBMMSBvbmx5LCB0byBpbmZvcm0gMkcgTDEgdGhlIGN1cnJlbnQgM0cgbW9kZSAqLworTVNHX0lEX01QSERfVU1UU19DRUxMX01FQVNfRE9ORV9JTkQsIC8qIE1hcnVjbzIwMDkwMTIwLCBhZGQgbmV3IGludGVyZmFjZShVTDFBLT5MTDEtPkwxQS0+TDFDKSBmb3IgRE0gbG93IHBvd2VyIG9wdGltaXplICovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0xMMV9NU0dfQ09ERV9UQUlMICkKKworLyogRU5EICovCisjaWZkZWYgX1Rlc3RfSGRyX09uX1BDCit9OworI2VuZGlmCisKKyNlbmRpZiAvL0xMMV9NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sbGNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xsY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjOWY1ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sbGNfbXNnaWQuaApAQCAtMCwwICsxLDE3NSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBsbGMuc2FwCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMTEMgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBMTENfTVNHSURfSAorI2RlZmluZSBMTENfTVNHSURfSAorCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tTExDIG1lc3NhZ2VzLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MTENfQ09ERV9CRUdJTiApCisJTVNHX0lEX0xMU01TX1VOSVREQVRBX1JFUSA9IE1TR19JRF9MTENfQ09ERV9CRUdJTiwKKwlNU0dfSURfTExUT01fVU5JVERBVEFfUkVRLAorCU1TR19JRF9MTEdNTV9VTklUREFUQV9SRVEsCisJTVNHX0lEX0xMR01NX0FTU0lHTl9SRVEsCisJTVNHX0lEX0xMR01NX1RSSUdHRVJfUkVRLAorCU1TR19JRF9MTEdNTV9TVVNQRU5EX1JFUSwKKwlNU0dfSURfTExHTU1fUkVTVU1FX1JFUSwKKwlNU0dfSURfTExTTkRfVU5JVERBVEFfUkVRLAorCU1TR19JRF9MTFNORF9EQVRBX1JFUSwKKwlNU0dfSURfTExTTkRfWElEX1JFUSwKKwlNU0dfSURfTExTTkRfWElEX1JFUywKKwlNU0dfSURfTExTTkRfRVNUQUJMSVNIX1JFUSwKKwlNU0dfSURfTExTTkRfRVNUQUJMSVNIX1JFUywKKwlNU0dfSURfTExTTkRfUkVMRUFTRV9SRVEsCisJTVNHX0lEX0xMU05EX0NSRUFURV9SRUdfUkVRLAorCU1TR19JRF9MTFNORF9TQVBJX01FTV9YSUQsCisJTVNHX0lEX0xMU05EX1JOUl9TVE9QLAorCU1TR19JRF9HUlJfREFUQV9JTkQsCisJTVNHX0lEX0dSUl9VTklUREFUQV9JTkQsCisJTVNHX0lEX0dSUl9TVEFUVVNfSU5ELAorCU1TR19JRF9HUlJfRkxVU0hfQ05GLAorCisJLyogM0cgc3BlY2lmaWMgbWVzc2FnZXMgKi8KKwlNU0dfSURfUkFUQ01fTExDX0FTU0lHTl9SRVEsCisJTVNHX0lEX1JBVENNX0xMQ19SRVNVTUVfUkVRLAorCU1TR19JRF9SQVRDTV9MTENfU1VTUEVORF9SRVEsCisJTVNHX0lEX1JBVENNX0xMQ19UUklHR0VSX1JFUSwKKwlNU0dfSURfUkFUQ01fTExDX1VOSVREQVRBX1JFUSwKKwkvKiBFbmQgb2YgM0cgc3BlY2lmaWMgbWVzc2FnZXMgKi8KKworCisjaWZkZWYgX19HQ1VfRFZUX18KKyAgICBNU0dfSURfR0NVX0RWVF9TVEFSVF9JTkQsCisgICAgTVNHX0lEX0dDVV9EVlRfRU5EX1JTUCwKKyNlbmRpZgorCisJTVNHX0lEX1NBUElfTUVNX0ZMT1dfT05fUkVRLAorCU1TR19JRF9STENfTExDX0ZMT1dfQ09OVFJPTF9PRkYsCisJTVNHX0lEX0xMX1RJTUVSX0VYUElSWSwKKwlNU0dfSURfTExfQ0lQSEVSX1JTUCwKKwlNU0dfSURfTExfREVDSVBIRVJfUlNQLAorCU1TR19JRF9STENfTExDX1JOUl9UUklHR0VSLAorCU1TR19JRF9MTFNORF9TQVBJX0FDVF9SRVEsCisJTVNHX0lEX0dSUl9DSUJVRkZfQVZBSUxfSU5ELAorCU1TR19JRF9BU19OQVNfREFUQV9DTkYsCisJTVNHX0lEX0xMU05EX0ZMVVNIX1JFUSwKKwlNU0dfSURfTExTTkRfU0FQSV9ERUFDVF9SRVEsCisJTVNHX0lEX0xMQ19DT0RFX0VORCA9IE1TR19JRF9MTFNORF9TQVBJX0RFQUNUX1JFUSwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTExDX0NPREVfVEFJTCApCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBMTENfTVNHX0NPREVfRU5EIC0tLS0tLS0tLS0tLS0tLS0tKi8KKyNlbmRpZiAvL0xMQ19NU0dJRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sbWRfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xtZF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMDM1YTQKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9sbWRfbXNnaWQuaApAQCAtMCwwICsxLDIwNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfTE1EX01TR19JRF9ICisjZGVmaW5lIF9MTURfTVNHX0lEX0gKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIAorKiBGSUxFIE5BTUUgICA6bG1kX21zZ2lkLmggCisqCisqIERFU0NSSVBUSU9OIDoKKyoKKyogICAgIAorKgorKiBISVNUT1JZICAgICA6CisqICAgICBTZWUgTG9nIGF0IGVuZCBvZiBmaWxlCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluY2x1ZGUgRmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTE1EX0NPREVfQkVHSU4gKQorCisgICAgLyogUFNXJ3MgY29tbWFuZHMgZm9yIGNhbGwgcHJvY2Vzc2luZyovCisgICAgTVNHX0lEX0xNRF9BQ0NFU1NfUFJPQkVfQUJPUlRfTVNHID0gTVNHX0lEX0xNRF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9MTURfVFJBRkZJQ19DSEFOX1NUQVJUX01TRywKKyAgICBNU0dfSURfTE1EX1RSQUZGSUNfQ0hBTl9TVE9QX01TRywKKyAgICBNU0dfSURfTE1EX1JFU0VUX01TRywKKworICAgIC8qIFNlcnZpY2UgQ29uZmlndXJhdGlvbiAqLworICAgIE1TR19JRF9MTURfU0VSVklDRV9DT05GSUdVUkFUSU9OX01TRywKKyAgICBNU0dfSURfTE1EX1NFUlZJQ0VfQ09ORklHX05OX01TRywKKyAgICBNU0dfSURfTE1EX1NFUlZJQ0VfT1BUSU9OX0NPTlRST0xfTVNHLAorICAgIE1TR19JRF9MTURfQ09OVkVSU0FUSU9OX1NVQlNUQVRFX0NPTk5fTVNHLAorICAgIE1TR19JRF9MTURfQ09OVkVSU0FUSU9OX1NVQlNUQVRFX0RJU0NfTVNHLAorICAgIE1TR19JRF9MTURfTE9PUEJBQ0tfU0VSVklDRV9PUFRJT05fTVNHLAorICAgIE1TR19JRF9MTURfQVVESU9fU1NPX0NPTk5FQ1RfUlNQX01TRywKKyAgICBNU0dfSURfTE1EX0FVRElPX1NTT19ESVNDT05OX1JTUF9NU0csCisKKyAgICAvKiBNYXJrb3YvVERTTyBzdXBwb3J0ICovCisgICAgTVNHX0lEX0xNRF9DTEVBUl9NQVJLT1ZfU1RBVFNfTVNHLCAgIAorICAgIE1TR19JRF9MTURfTUFSS09WX1NFUlZJQ0VfT1BUSU9OX01TRywgICAgIAorCisgICAgLyogUG93ZXIgY29udHJvbCBtZXNzYWdlICovCisgICAgTVNHX0lEX0xNRF9QV1JfQ1RMX1BBUk1TX01TRywKKyAKKyAgIC8qIEF1ZGlvIEFHQyBhbmQgSGFuZHNmcmVlIG1lc3NhZ2VzICovCisgICAgTVNHX0lEX0xNRF9TUENIX0RBVEFfRU5DX0FHQ19NU0csCisgICAgTVNHX0lEX0xNRF9TUENIX0RBVEFfRU5DX0hGUkVFX01TRywKKyAgICBNU0dfSURfTE1EX1NQQ0hfREFUQV9ERUNfSEZSRUVfTVNHLAorCisgICAgLyogVm9pY2UgQWN0aXZpdHkgKi8KKyAgICAvKiBEZWJ1ZyAqLworI2lmZGVmIE1US19DQlBfRU5DUllQVF9WT0lDRQorICAgIE1TR19JRF9MTURfVk9JQ0VfRU5DUllQVF9ESVNBQkxFX1NQQ0hfREFUQV9NU0csCisgICAgTVNHX0lEX0xNRF9WT0lDRV9FTkNSWVBUX0VOQUJMRV9TUENIX0RBVEFfTVNHLAorI2VuZGlmCisKKworICAgIC8qIEZvciBEYXRhIHNlcnZpY2VzLiAqLworICAgIE1TR19JRF9MTURfUkxQX1JFVl9GVU5ESUNBVEVEX0RBVEFfUkVRX01TRywKKyAgICBNU0dfSURfTE1EX1JMUF9SRVZfU0NIX0RBVEFfUkVRX01TRywKKyAgICAvKiBEYXRhIHNlcnZpY2VzOiAgRndkIFNDSCBhbmQgU0NDSCBBY2sgUmVzcG9uc2UgTXNnICovCisgICAgTVNHX0lEX0xNRF9TQ0NIX0ZXRF9EQVRBX1JTUF9NU0csCisKKyAgIC8qIFRoZSBURFNPIFRYIGRhdGEgbXNnICovIAorICAgIE1TR19JRF9MTURfRkNIX1JFVl9URFNPX0RBVEFfTVNHLAorICAgIE1TR19JRF9MTURfU0NIX1JFVl9URFNPX0RBVEFfTVNHLCAgCisgICAgICAgICAgICAgICAgICAgCisgICAgLyogU0NIIHNldHVwIG1lc3NhZ2VzICovCisgICAgTVNHX0lEX0xNRF9GU0NIX01TRywKKyAgICBNU0dfSURfTE1EX1JTQ0hfTVNHLAorICAgIE1TR19JRF9MTURfRlNDSF9CVVJTVF9FTkRfTVNHLAorICAgIE1TR19JRF9MTURfUlNDSF9TVE9QX01TRywKKyAgICBNU0dfSURfTE1EX0ZTQ0hfUERVX09SREVSX0NUUkxfTVNHLAorCisgICAgLyogRm9yd2FyZCBjaGFubmVsIG1lc3NhZ2VzKi8KKyAgICBNU0dfSURfTE1EX0wxRF9GV0RfREFUQV9JTkRfTVNHLAorCisgICAgLyogUmV2ZXJzZSBjaGFubmVsIG1lc3NhZ2VzICovCisgICAgTVNHX0lEX0xNRF9SRVZFUlNFX0FDQ0VTU19TSUdfTVNHLAorICAgIE1TR19JRF9MTURfRUFDSF9TSUdfTVNHLAorICAgIE1TR19JRF9MTURfUkVWRVJTRV9UUkFGRklDX1NJR19NU0csCisgICAgTVNHX0lEX0xNRF9UUkFOU01JVFRFUl9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9MTURfQ09VTlRFUl9TVVNQRU5EX01TRywKKworICAgIC8qIEZvciBEaWFnbm9zdGljIE1vbml0b3Igc3VwcG9ydCAqLworICAgIC8qIFZvaWNlIHF1YWxpdHkgbXV0aW5nICovCisKKworICAgIC8qIFJlc291cmNlIENvbnRyb2w6IEZDSCBhbmQgRENDSCBvbmx5ICovCisgICAgTVNHX0lEX0xNRF9SRVNPVVJDRV9VUERBVEVfTVNHLAorICAgIAorICAgIC8qIFNpbSBNZXNzYWdlICovCisgICAgTVNHX0lEX0xNRF9TSU1fTVNHLAorCisgICAgLyogU3RhdGlzdGljcyBjb3VudGVyIHJldHJpZXZlIGFuZCBzZXQgbWVzc2FnZSAqLworICAgIE1TR19JRF9MTURfR0VUX1NUQVRfQ05UX01TRywKKyAgICBNU0dfSURfTE1EX1NFVF9TVEFUX0NOVF9NU0csCisgICAgTVNHX0lEX0xNRF9SRVNFVF9TVEFUX0NOVF9NU0csCisgICAgTVNHX0lEX0xNRF9TRVRfRkVSX1NUQVRTX05VTV9GUkFNRVNfTVNHLAorCisgICAgLyogRGVidWcgU2NyZWVuIEluZm8gbWVzc2FnZSAqLworICAgIE1TR19JRF9MTURfR0VUX0RFQlVHX1NDUk5fSU5GT19NU0csCisKKyAgICAvKiBTcGVlY2ggUm91dGluZyBEaXNhYmxlIE1lc3NhZ2UgKi8KKyAgICBNU0dfSURfTE1EX1NQRUVDSF9ESVNBQkxFX01TRywKKyAgICAvKiBJbnN0cnVjdCBMTUQgdG8gc3RvcCByZXF1ZXN0aW5nIGRhdGEgZnJvbSBSTFAgYnV0IGNvbnRpbnVlCisgICAgICogc3VibWl0dGluZyBSLVNjaCBUeCBkYXRhIHRvIERTUG0uCisgICAgICovCisgICAgTVNHX0lEX0xNRF9STFBfU1RPUF9SRVFfTVNHLAorICAgIAorICAgIE1TR19JRF9MTURfQ0xFQVJfRldEX1NDSF9EVFhfU1RBVFNfTVNHLAorICAgIE1TR19JRF9MTURfU1BFRUNIX0xPT1BCQUNLX01PREVfTVNHLAorICAgIAorICAgIE1TR19JRF9MTURfVFhfU1BDSF9NU0csCisgICAgTVNHX0lEX0xNRF9UWF9MT09QQkFDS19NU0csCisgICAgTVNHX0lEX0xNRF9UWF9NQVJLT1ZfTVNHLAorICAgIE1TR19JRF9MTURfVFhfVERTT19NU0csCisKKworICAgIC8qIHNpZ25hbCBJRCBmcm9tIC4uLiB0byAuLi4gKi8KKyAgICBNU0dfSURfTE1EX0ZPUldBUkRfQ0hBTl9TSUcsCisgICAgTVNHX0lEX0xNRF9SRVZFUlNFX0NIQU5fU0lHLAorICAgIE1TR19JRF9MTURfU1RBUlRVUF9TSUdOQUwsCisgICAgTVNHX0lEX0xNRF8yME1TX1NUUk9CRV9TSUcsCisgICAgTVNHX0lEX0xNRF9GV0RfQ0hBTl9TSUdOQUxfU1VQLAorICAgIE1TR19JRF9MTURfU1RBUlRfU0VSVklDRV9DT05GSUdfU0lHLAorICAgIE1TR19JRF9MTURfU1RBUlRfTk5fU0VSVklDRV9DT05GSUdfU0lHLAorICAgIE1TR19JRF9MTURfU0VSVklDRV9PUFRJT05fQ09OVFJPTF9TSUcsCisgICAgTVNHX0lEX0xNRF9SRVZFUlNFX1NJR05BTElOR19UWEVEX1NJRywKKyAgICBNU0dfSURfTE1EX1VOVVNFRF9TSUcsCisgICAgTVNHX0lEX0xNRF9SRVZFUlNFX1NDSDBfU1RPUF9TSUcsCisgICAgTVNHX0lEX0xNRF9SRVZFUlNFX1NDSDFfT05fU0lHLAorICAgIE1TR19JRF9MTURfUkVWRVJTRV9TQ0gxX1NUT1BfU0lHLAorICAgIE1TR19JRF9MTURfRk9SV0FSRF9TQ0gwX09OX1NJRywKKyAgICBNU0dfSURfTE1EX0ZPUldBUkRfU0NIMV9TVE9QX1NJRywKKyAgICBNU0dfSURfTE1EX0ZPUldBUkRfU0NIMV9PTl9TSUcsCisgICAgTVNHX0lEX0xNRF9BQ0NFU1NfUFJPQkVfQ09NUExFVEVfU0lHLAorICAgIE1TR19JRF9MTURfUkVTT1VSQ0VfVVBEQVRFX1NJRywKKyAgICBNU0dfSURfTE1EX0ZXRF9ISUdIU1BFRURfREFUQV9TSUcsCisgICAgTVNHX0lEX0xNRF9NVVhQRFVfVElNRU9VVF9TSUcsCisgICAgTVNHX0lEX0xNRF9SRVZfRFRYX0RVUkFUSU9OX0VYUElSRSwKKyAgICBNU0dfSURfSVBDX0RTVl9TRU5EX0FVRElPX0NIQU5fUUxUWV9NU0csLypUT0RPIGZvciA5MyovCisgICAgTVNHX0lEX0lQQ19EU1ZfU0VORF9BVURJT19TUENIX1JPVVRJTkdfTVNHLAorICAgIE1TR19JRF9JUENfRFNWX1NFTkRfQVVESU9fU1NPX0NPTk5FQ1RfTVNHLAorICAgIE1TR19JRF9JUENfRFNWX1NFTkRfQVVESU9fU1NPX0NUUkxfUEFSQU1TX01TRywKKyAgICBNU0dfSURfSVBDX0RTVl9TRU5EX0FVRElPX1NTT19ESVNDT05ORUNUX01TRywKKyAgICBNU0dfSURfSVBDX0RTVl9TRVRfTUlDX1ZPSUNFX0VOQ19NQVhfUkFURV9NU0csCisgICAgTVNHX0lEX0lQQ19EU1ZfU0VORF9TUEtSX1ZPSUNFX0ZXRF9DSF9QQ0tUX0RBVEFfTVNHLAorICAgIE1TR19JRF9TRFJWX1NTT19DT05OX0RPTkVfTVNHLAorICAgIE1TR19JRF9TRFJWX1NTT19ESVNDT05OX0RPTkVfTVNHLAorICAgIE1TR19JRF9DQUFMX1NTT19DT05OX1JTUF9NU0csCisgICAgTVNHX0lEX0NBQUxfU1NPX0RJU0NPTk5fUlNQX01TRywKKyAgICBNU0dfSURfQ0FBTF9TUEhfREFUQV9VTF9NU0csCisgICAgCisgICAgLyogQWRkZWQgbWVzc2FnZXMgZm9yIE1US19QTFRfT05fUENfVVQgKi8KKyAgICBNU0dfSURfVVRfTE1EX0ZXRF9EQVRBX0lORF9NU0csCisgICAgTVNHX0lEX1VUX0xNRF9SRVZfREFUQV9SRVFfTVNHLAorICAgIE1TR19JRF9VVF9MTURfRUZVU0VfQ0hFQ0tfTVNHLAorCisKKyAgICBNU0dfSURfTE1EX05VTV9DTURfTVNHX0lEUywKKyAgICAKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTE1EX0NPREVfVEFJTCApCisKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xtZHNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xtZHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGExZjNhCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbG1kc19tc2dpZC5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGVuYW1lOgorKiAtLS0tLS0tLS0KKyogbG1kc19tc2dpZC5oIAorKgorKiBQcm9qZWN0OgorKiAtLS0tLS0tLQorKiBDMksKKyoKKyogRGVzY3JpcHRpb246IAorKiAtLS0tLS0tLS0tLS0KKyogVGhpcyBtb2R1bGUgZGVmaW5lcyB0aGUgUkxQIElMTSBtZXNzZ2FlIElEcyBmb3IgdGhlIDF4UlRUIFByb3RvY29sIFN0YWNrCisqCisqIEF1dGhvcjoKKyogLS0tLS0tLQorICogLS0tLS0tLQorKgorKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKiAgICAgICAgICAgICBISVNUT1JZCisqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqCisqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9MTURTX01TR19JRF9ICisjZGVmaW5lIF9MTURTX01TR19JRF9ICisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluY2x1ZGUgRmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgR2xvYmFsIERlZmluZXMgYW5kIE1hY3JvcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0xNRFNfQ09ERV9CRUdJTiApCisKKyAgICBNU0dfSURfTE1EX1NfVERTT19DT05ORUNUX01TRyA9IE1TR19JRF9MTURTX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0xNRF9TX1REU09fQ09OVFJPTF9NU0csCisgICAgTVNHX0lEX0xNRF9TX1REU09fREFUQV9NU0csCisgICAgTVNHX0lEX0xNRF9TX1REU09fRElTQ09OTkVDVF9NU0csCisgICAgTVNHX0lEX0xNRF9TX1REU09fQ0xFQVJfU1RBVFNfTVNHLAorICAgIE1TR19JRF9MTURfU19URFNPX1JBTkRPTV9OVU1CRVJfQ0FMQ19NU0csCisKKworICAgIC8qIHNpZ25hbCBJRCBmcm9tIC4uLiB0byAuLi4gKi8KKyAgICBNU0dfSURfTE1EX1NfU1RBUlRVUF9TSUdOQUwsCisgICAgTVNHX0lEX0xNRF9TXzIwTVNfU1RST0JFX1NJRywKKyAgICBNU0dfSURfTE1EX1NfVk1FTV9TVFJPQkVfU0lHLAorICAgIAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9MTURTX0NPREVfVEFJTCApCisKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xwcF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbHBwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQzNWYwOAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL2xwcF9tc2dpZC5oCkBAIC0wLDAgKzEsMzM1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEzCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgIGxwcF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgIExURSBwcm9qZWN0CisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgTFRFIFBvc2l0aW9uaW5nIFByb3RvY29sIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogJExvZyQKKyAqCisgKiAxMSAxMCAyMDIwIGppZS15dS53YW5nCisgKiBbTU9MWTAwNTg5MTgyXSBbR2VuOTddW01QN11bTWVtb3J5IHJlZHVjdGlvbl0gU3RhZ2UgViAtIExURSBQT1MgcHJlZW1wdCBMVEUvTlIgSEFSUSBidWZmZXIKKyAqIAkKKyAqIAlbSW50ZXJmYWNlXVtMUFBdLgorICoKKyAqIDExIDI5IDIwMTkgamllLXl1LndhbmcKKyAqIFtNT0xZMDA0NjE5NDddIFtMUFBdIFBhdGNoIGJhY2sgZnJvbSAxMDAxLkRFViB0byBWTU9MWQorICogW1NXUkRdIExQUCBwYXRjaCBiYWNrCisgKgorICogMDcgMjQgMjAxOSBhbGxlbi5rZWgKKyAqIFtNT0xZMDA0MjMyMTZdIFtNVDYyOTddW1ZHTU1dIG1lc3NhZ2UgaWQgb3duZXJzaGlwIHJlLWdyb3VwaW5nCisgKiAubW92ZSBzb21lIG1lc3NhZ2UgaWQgdG8gdmdtbV9tc2dpZC5oCisgKgorICogMDYgMjAgMjAxOSBqaWUteXUud2FuZworICogW01PTFkwMDQxNTIwNV0gW0FHUFNdIFtMQlNdIE5SIE5laWdoYm9yIGNlbGwgaW5mb3JtYXRpb24gZm9yIFNVUEwKKyAqIFtPQV1bTEJTXSBTVVBMIE5iciBDZWxsIEludGVyZmFjZS4KKyAqCisgKiAwNiAxMiAyMDE5IGppZS15dS53YW5nCisgKiBbTU9MWTAwNDEzMTY4XSBbTFBQXSBJbnRlciBSQVQgT1RET0EgbW9kaWZpY2F0aW9uIGZvciBhZGRpbmcgTlJSQyBJTkQKKyAqIFtPQV1bTFBQXSBJbnRlclJBVCBPVERPQSBpbnRlcmZhY2UgY2hhbmdlIGZvciBOUlJDLgorICoKKyAqIDAzIDI4IDIwMTkgamllLXl1LndhbmcKKyAqIFtNT0xZMDAzOTQ4ODFdIFtMUFBdIEludGVyIFJBVCBPVERPQSBtb2RpZmljYXRpb24KKyAqIFtMUFBdIEludGVyUkFUIE9URE9BIGludGVyZmFjZS4KKyAqCisgKiAxMSAyOSAyMDE4IHJvbGFuZC5saQorICogW01PTFkwMDM2MzIwNF0gW0dlbjk3XSBOUiBwb3NpdGlvbmluZyBpbnRlcmZhY2UgY2hlY2staW4KKyAqIFtMUFBdIDVHIHBvc2l0aW9uaW5nIGludGVyZmFjZS4KKyAqCisgKiAwOSAyMCAyMDE3IGppZS15dS53YW5nCisgKiBbTU9MWTAwMjc4MzY2XSBMUFAgT1RET0EgbmV3IHByb2NlZHVyZSBhcmNoaXRlY3R1cmUgZGV2ZWxvcG1lbnQKKyAqIFtVTU9MWUFdIEdlbjkzIE9URE9BIHJlZmVjdG9yaW5nLgorICoKKyAqIDA3IDA3IDIwMTcgamllLXl1LndhbmcKKyAqIFtNT0xZMDAyNjE4MjddIFtVTU9ZTEFdIExQUGUgZGV2ZWxvcG1lbnQKKyAqIFtMUFBdIExQUGUgY29kZSBjaGFuZ2UgY2hlY2staW4uCisgKgorICogMDYgMjcgMjAxNiBqaWUteXUud2FuZworICogW01PTFkwMDE4MzY0Ml0gbmV3IHRhc2sgRUwxX01QQyBkZWZpbml0aW9uIGZvciA2MjkzCisgKiAoTFBQKSBVTU9MWUEgTWVzc2FnZUlEIGNoYW5nZS4KKyAqCisgKiAwMSAxMyAyMDE1IHJvbGFuZC5saQorICogW01PTFkwMDA5MjE5M10gW1VNT0xZXVtMUFBdTFBQIFIxMFIxMSBmZWF0dXJlIGNoZWNraW4KKyAqIAkuCisgKgorICogMDggMjIgMjAxNCBkb3VnLnNoaWgKKyAqIFtNT0xZMDAwNzU5OTddIFtMUFBdIE9URE9BIFJFU0VUX1VFX1NUT1JFRF9QT1NfSU5GTyBmbG93IGVuaGFuY2VtZW50IG92ZXIgQ1AgYW5kIFVQCisgKiAuCisgKgorICogMDggMDQgMjAxNCBkb3VnLnNoaWgKKyAqIFtNT0xZMDAwNzM5OTBdIFtMUFAgQ1BdIExQUCBjb2RlIGNoZWNrLWluIGZvciBPVERPQSBmZWF0dXJlCisgKiAuCisgKgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTFBQX01TR0lEX0gKKyNkZWZpbmUgX0xQUF9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MUFBfQ09ERV9CRUdJTiApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtPiBMQlMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTFBQIC0+IExCUyAqLworTVNHX0lEX0xQUF9MQlNfU0VTU0lPTl9TVEFSVF9JTkQgPSBNU0dfSURfTFBQX0NPREVfQkVHSU4sCitNU0dfSURfTFBQX0xCU19TRVNTSU9OX0VORF9JTkQsCitNU0dfSURfTFBQX0xCU19QT1NfTUVUSE9EX0lORCwKKy8vRm9yIExQUGUsIG1vdmUgdG8gZ3BzX21zZ2lkLmgKKworLyogTEJTIC0+IExQUCAqLworTVNHX0lEX0xQUF9MQlNfU0VTU0lPTl9FTkRfUkVRLAorTVNHX0lEX0xQUF9MQlNfQ0FQQUJJTElUWV9VUERBVEVfUkVRLAorTVNHX0lEX0xQUF9MQlNfUkVTRVRfVUVfU1RPUkVEX1BPU19JTkZPX1JFUSwKKworTVNHX0lEX0xQUF9MQlNfRVhUX1dMQU5fQ0FQQUJJTElUWV9JTkQsCitNU0dfSURfTFBQX0xCU19FWFRfQlRfQ0FQQUJJTElUWV9JTkQsCitNU0dfSURfTFBQX0xCU19FWFRfU0VOU09SX0NBUEFCSUxJVFlfSU5ELAorTVNHX0lEX0xQUF9MQlNfRVhUX05FVFdPUktfQ0FQQUJJTElUWV9JTkQsCitNU0dfSURfTFBQX0xCU19FWFRfSVBBRERSRVNTX0NBUEFCSUxJVFlfSU5ELAorCitNU0dfSURfTFBQX0xCU19FWFRfV0xBTl9QT1NfQVNTSVNUX0RBVEFfUkVRVUVTVF9JTkQsCitNU0dfSURfTFBQX0xCU19FWFRfQlRfUE9TX0FTU0lTVF9EQVRBX1JFUVVFU1RfSU5ELAorTVNHX0lEX0xQUF9MQlNfRVhUX1NFTlNPUl9QT1NfQVNTSVNUX0RBVEFfUkVRVUVTVF9JTkQsCisKK01TR19JRF9MUFBfTEJTX0VYVF9XTEFOX01FQVNfUVVFUllfQ05GLAorTVNHX0lEX0xQUF9MQlNfRVhUX0JUX01FQVNfUVVFUllfQ05GLAorTVNHX0lEX0xQUF9MQlNfRVhUX1NFTlNPUl9NRUFTX1FVRVJZX0NORiwKK01TR19JRF9MUFBfTEJTX0VYVF9ORVRXT1JLX01FQVNfUVVFUllfQ05GLAorTVNHX0lEX0xQUF9MQlNfRVhUX0lQQUREUkVTU19NRUFTX1FVRVJZX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBMUFAgPC0+IEVSUkMgKEVMMSkKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTFBQIC0+IEVSUkMgKi8KKy8vbW92ZSB0byBlcnJjX21zZ2lkLmgKKworLyogTFBQIC0+IEVMMSAqLworLy9tb3ZlIHRvIGVsMV9tc2dpZC5oCisKKy8qIEVSUkMgLT4gTFBQICovCitNU0dfSURfTFBQX0VSUkNfRUNJRF9NRUFTX0NORiwKK01TR19JRF9MUFBfRVJSQ19JUkFUX0VDSURfTUVBU19DTkYsCitNU0dfSURfTFBQX0VSUkNfU1JCX1NUQVRVU19JTkQsCitNU0dfSURfTFBQX0VSUkNfT1RET0FfTUVBU19DTkYsCisKKy8qIEVMMSAtPiBMUFAgKi8KK01TR19JRF9MUFBfRUwxTVBDX09URE9BX01FQVNfQ05GLAorTVNHX0lEX0xQUF9FTDFNUENfT1RET0FfQVNTSVNUX0RBVEFfQ05GLAorTVNHX0lEX0xQUF9FTDFNUENfT1RET0FfQURESVRJT05BTF9BU1NJU1RfREFUQV9JTkQsCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBMUFAgPC0+IEdOU1MgVGFzaworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBkZWZpbmVkIGluIGdwc19tc2dpZC5oICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtPiBFTU0gdmlhIEVWQUwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTFBQIC0+IEVNTSAoRVZBTCkgKi8KK01TR19JRF9MUFBfRVZBTF9EQVRBX1JFUSwKKworLyogRU1NIChFVkFMKSAtPiBMUFAgKi8KK01TR19JRF9MUFBfRVZBTF9EQVRBX0lORCwKK01TR19JRF9MUFBfRVZBTF9EQVRBX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBFVEMgLT4gTFBQIHZpYSBFVkFMCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEVUQyAoRVZBTCkgLT4gTFBQICovCitNU0dfSURfRVZBTF9MUFBfTldfUkVTRVRfVUVfU1RPUkVEX1BPU19JTkZPX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBFVEMgLT4gTFBQCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIEVUQyAtPiBMUFAgKi8KK01TR19JRF9FVENfTFBQX05XX1JFU0VUX1VFX1NUT1JFRF9QT1NfSU5GT19JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIChTV0lQKSAgPC0+IFNVUEwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTFBQIChTV0lQKSAtPiBTVVBMICovCitNU0dfSURfTFBQX1NVUExfUERVX0RBVEFfUkVRLAorCisvKiBTVVBMIC0+IExQUCAoU1dJUCkgKi8KK01TR19JRF9MUFBfU1VQTF9QRFVfREFUQV9JTkQsCitNU0dfSURfTFBQX1NVUExfUERVX0RBVEFfQ05GLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIExQUCA8LT4gTFBQIChTV0lQKSB2aWEgTEJTCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIExQUCAoU1dJUCkgLT4gTFBQICovCitNU0dfSURfTFBQX1BFRVJfT1RET0FfTUVBU19SRVEsCitNU0dfSURfTFBQX1BFRVJfT1RET0FfQVNTSVNUX0RBVEFfUkVRLAorTVNHX0lEX0xQUF9QRUVSX09URE9BX01FQVNfQUJPUlRfUkVRLAorTVNHX0lEX0xQUF9QRUVSX0VDSURfTUVBU19SRVEsCitNU0dfSURfTFBQX1BFRVJfRUNJRF9NRUFTX0FCT1JUX1JFUSwKK01TR19JRF9MUFBfUEVFUl9FVVRSQU5fQkFORF9VUERBVEVfUkVRLAorTVNHX0lEX0xQUF9QRUVSX09URE9BX1JFU0VUX1VFX1NUT1JFRF9QT1NfUkVRLAorCisvKiBMUFAgLT4gTFBQIChTV0lQKSAqLworTVNHX0lEX0xQUF9QRUVSX09URE9BX01FQVNfQ05GLAorTVNHX0lEX0xQUF9QRUVSX09URE9BX0FTU0lTVF9EQVRBX0NORiwKK01TR19JRF9MUFBfUEVFUl9PVERPQV9BRERJVElPTkFMX0FTU0lTVF9EQVRBX1JFUSwKK01TR19JRF9MUFBfUEVFUl9FQ0lEX01FQVNfQ05GLAorTVNHX0lEX0xQUF9QRUVSX0VVVFJBTl9CQU5EX1VQREFURV9DTkYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtPiBMUFBfRVhUCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIExQUCAtPiBMUFBfRVhUICovCitNU0dfSURfTFBQX0xQUEVfRVBEVV9EQVRBX0lORCwKK01TR19JRF9MUFBfTFBQRV9FUERVX0RBVEFfQ05GLAorTVNHX0lEX0xQUF9MUFBFX0VQRFVfREFUQV9OVEYsCitNU0dfSURfTFBQX0xQUEVfU1RBVFVTX1NZTkNfSU5ELAorCitNU0dfSURfTFBQX0xQUEVfV0xBTl9DQVBBQklMSVRZX0lORCwKK01TR19JRF9MUFBfTFBQRV9CVF9DQVBBQklMSVRZX0lORCwKK01TR19JRF9MUFBfTFBQRV9TRU5TT1JfQ0FQQUJJTElUWV9JTkQsCitNU0dfSURfTFBQX0xQUEVfTkVUV09SS19DQVBBQklMSVRZX0lORCwKK01TR19JRF9MUFBfTFBQRV9JUEFERFJFU1NfQ0FQQUJJTElUWV9JTkQsCisKK01TR19JRF9MUFBfTFBQRV9XTEFOX1BPU19BU1NJU1RfREFUQV9SRVFVRVNUX0lORCwKK01TR19JRF9MUFBfTFBQRV9CVF9QT1NfQVNTSVNUX0RBVEFfUkVRVUVTVF9JTkQsCitNU0dfSURfTFBQX0xQUEVfU0VOU09SX1BPU19BU1NJU1RfREFUQV9SRVFVRVNUX0lORCwKK01TR19JRF9MUFBfTFBQRV9IQV9BR05TU19QT1NfQVNTSVNUX0RBVEFfUkVRVUVTVF9JTkQsCitNU0dfSURfTFBQX0xQUEVfUE1US19ET05FX0lORCwKKworTVNHX0lEX0xQUF9MUFBFX1dMQU5fTUVBU19RVUVSWV9DTkYsCitNU0dfSURfTFBQX0xQUEVfQlRfTUVBU19RVUVSWV9DTkYsCitNU0dfSURfTFBQX0xQUEVfU0VOU09SX01FQVNfUVVFUllfQ05GLAorTVNHX0lEX0xQUF9MUFBFX05FVFdPUktfTUVBU19RVUVSWV9DTkYsCitNU0dfSURfTFBQX0xQUEVfSVBBRERSRVNTX01FQVNfUVVFUllfQ05GLAorCitNU0dfSURfTFBQX0xQUEVfR05TU19QT1NfSU5ELAorTVNHX0lEX0xQUF9MUFBFX0dOU1NfTUVBU19JTkQsCitNU0dfSURfTFBQX0xQUEVfQUJPUlRfSU5ELAorTVNHX0lEX0xQUF9MUFBFX0VSUk9SX0lORCwKKworCisvKiBMUFBfRVhUIC0+IExQUCAqLworTVNHX0lEX0xQUF9MUFBFX0VQRFVfREFUQV9SRVEsCitNU0dfSURfTFBQX0xQUEVfRVBEVV9EQVRBX1JTUCwKKworTVNHX0lEX0xQUF9MUFBFX1dMQU5fUE9TX0FTU0lTVF9EQVRBX1BST1ZJREVfSU5ELAorTVNHX0lEX0xQUF9MUFBFX0JUX1BPU19BU1NJU1RfREFUQV9QUk9WSURFX0lORCwKK01TR19JRF9MUFBfTFBQRV9TRU5TT1JfUE9TX0FTU0lTVF9EQVRBX1BST1ZJREVfSU5ELAorTVNHX0lEX0xQUF9MUFBFX0hBX0FHTlNTX1BPU19BU1NJU1RfREFUQV9QUk9WSURFX0lORCwKKworTVNHX0lEX0xQUF9MUFBFX1dMQU5fTUVBU19RVUVSWV9SRVEsCitNU0dfSURfTFBQX0xQUEVfQlRfTUVBU19RVUVSWV9SRVEsCitNU0dfSURfTFBQX0xQUEVfU0VOU09SX01FQVNfUVVFUllfUkVRLAorTVNHX0lEX0xQUF9MUFBFX05FVFdPUktfTUVBU19RVUVSWV9SRVEsCitNU0dfSURfTFBQX0xQUEVfSVBBRERSRVNTX01FQVNfUVVFUllfUkVRLAorCitNU0dfSURfTFBQX0xQUEVfV0xBTl9TVEFSVF9JTkQsCitNU0dfSURfTFBQX0xQUEVfQlRfU1RBUlRfSU5ELAorTVNHX0lEX0xQUF9MUFBFX1NFTlNPUl9TVEFSVF9JTkQsCitNU0dfSURfTFBQX0xQUEVfTkVUV09SS19TVEFSVF9JTkQsCisKK01TR19JRF9MUFBfTFBQRV9XTEFOX1NUT1BfSU5ELAorTVNHX0lEX0xQUF9MUFBFX0JUX1NUT1BfSU5ELAorTVNHX0lEX0xQUF9MUFBFX1NFTlNPUl9TVE9QX0lORCwKK01TR19JRF9MUFBfTFBQRV9ORVRXT1JLX1NUT1BfSU5ELAorCitNU0dfSURfTFBQX0xQUEVfQUJPUlRfUlNQLAorTVNHX0lEX0xQUF9MUFBFX0VSUk9SX1JTUCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBMQlMgPC0+IExQUF9FWFQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTEJTIC0+IExQUF9FWFQgKi8KK01TR19JRF9MQ1NQX0dOU1NfSEFfQVNTSVNUX0NORiwKK01TR19JRF9MQ1NQX0dOU1NfSEFfQVNTSVNUX0RBVEFfUkVRVUVTVF9JTkQsCitNU0dfSURfTFBQRV9MQlNfR05TU19BU1NJU1RfREFUQV9SU1AsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtPiBMUFBfQURBUFRFUgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBMUFAtPkxQUF9BU19BZGFwdGVyICovCitNU0dfSURfTFBQX0FTX0FEQVBURVJfT1RET0FfQVNTSVNUX0RBVEFfUkVRLAorTVNHX0lEX0xQUF9BU19BREFQVEVSX09URE9BX0FTU0lTVF9EQVRBX0NMRUFSX05URiwKK01TR19JRF9MUFBfQVNfQURBUFRFUl9PVERPQV9NRUFTX1JFUSwKK01TR19JRF9MUFBfQVNfQURBUFRFUl9PVERPQV9NRUFTX0FCT1JUX1JFUSwKKy8qIExQUF9BU19BZGFwdGVyLT5MUFAgKi8KK01TR19JRF9MUFBfQVNfQURBUFRFUl9PVERPQV9BU1NJU1RfREFUQV9DTkYsCitNU0dfSURfTFBQX0FTX0FEQVBURVJfT1RET0FfQURESVRJT05BTF9BU1NJU1RfREFUQV9SRVEsCitNU0dfSURfTFBQX0FTX0FEQVBURVJfT1RET0FfTUVBU19DTkYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtPiBWR01NIAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBMUFAgLT4gVkdNTSAgKi8KKy8vbW92ZSB0byB2Z21tX21zZ2lkLmgKKworLyogRU1NIChFVkFMKSAtPiBMUFAgKi8KK01TR19JRF9MUFBfVkdNTV9EQVRBX0lORCwKK01TR19JRF9MUFBfVkdNTV9EQVRBX0NORiwgCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtIE5SUkMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTlJSQyAgLT4gTFBQICAgKi8KK01TR19JRF9MUFBfTlJSQ19PVERPQV9NRUFTX0lORCwKK01TR19JRF9MUFBfTlJSQ19PVERPQV9NRUFTX0NORiwKKyAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTFBQIDwtIFNBU0UKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTlJSQyAgLT4gTFBQICAgKi8KK01TR19JRF9MUFBfU0FTRV9TVEFSVF9PVERPQV9NRUFTX0NORiwKKworCitNU0dfSURfTFBQX0NPREVfRU5ELAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0xQUF9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX0xQUF9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tbGwxX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tbGwxX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NkYjNkYgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL21sbDFfbXNnaWQuaApAQCAtMCwwICsxLDI1OCBAQAorI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTUxMMV9NU0dfSAorI2RlZmluZSBfTUxMMV9NU0dfSAorCisjaWZkZWYgX1Rlc3RfSGRyX09uX1BDCitlbnVtIHsKKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTUxMMV9NU0dfQ09ERV9CRUdJTiApCisKK01TR19JRF9MTDFfR0wxX1NZTkNfUkVRID0gTVNHX0lEX01MTDFfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfR0wxX0xMMV9TWU5DX0NORiwKK01TR19JRF9HTDFfTEwxX1JBVF9TVEFUVVNfSU5ELAorTVNHX0lEX0dMMV9MTDFfTU9ERV9TVEFUVVNfSU5ELAorTVNHX0lEX0xMMV9HTDFfTU9ERV9TVEFUVVNfVVBEQVRFX0lORCwKK01TR19JRF9HTDFfTEwxX0FDVElWRV9NRUFTVVJFX1NUQVRVU19JTkQsCitNU0dfSURfR0wxX0xMMV9NRUFTVVJFX1JFUSwKK01TR19JRF9HTDFfTEwxX1NUQU5EQllfTUVBU1VSRV9ET05FX0lORCwKK01TR19JRF9MTDFfR0wxX0dBUF9TRVJWSUNFX1JFUSwKK01TR19JRF9HTDFfTEwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfR0wxX0dBUF9TVE9QX0NORiwKK01TR19JRF9MTDFfR0wxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9HTDFfTEwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9HTDFfTEwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9MTDFfR0wxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9MTDFfR0wxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9HTDFfTEwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9HTDFfTEwxX0dBUF9SRVNVTUVfSU5ELAorTVNHX0lEX0xMMV9HTDFfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfR0wxX0xMMV9BVVRPX0dBUF9SRVEsCitNU0dfSURfTEwxX0dMMV9BVVRPX0dBUF9DTkYsCitNU0dfSURfTEwxX0dMMV9BVVRPX0dBUF9JTkQsCitNU0dfSURfR0wxX0xMMV9BVVRPX0dBUF9SRVMsCitNU0dfSURfR0wxX0xMMV9BVVRPX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfR0wxX0FVVE9fR0FQX1NUT1BfSU5ELAorTVNHX0lEX0dMMV9MTDFfQVVUT19HQVBfU1RPUF9SRVMsCitNU0dfSURfTEwxX0dMMV9BVVRPX0dBUF9TVE9QX0NORiwKK01TR19JRF9HTDFfTEwxX0FVVE9fR0FQX0VORF9JTkQsCitNU0dfSURfTEwxX0dMMV9BVVRPX0dBUF9FTkRfSU5ELAorTVNHX0lEX0dMMV9MTDFfQVVUT19HQVBfQVZBSUxBQkxFX0lORCwKK01TR19JRF9MTDFfR0wxX0FVVE9fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfR0wxX0xMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX0dMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX0dMMV9HQVBfTk9USUZZX0lORCwKK01TR19JRF9HTDFfTEwxX0dBUF9QQVRURVJOX0lORCwKKworTVNHX0lEX0xMMV9VTDFfU1lOQ19SRVEsCitNU0dfSURfVUwxX0xMMV9TWU5DX0NORiwKK01TR19JRF9VTDFfTEwxX1JBVF9TVEFUVVNfSU5ELAorTVNHX0lEX1VMMV9MTDFfTU9ERV9TVEFUVVNfSU5ELAorTVNHX0lEX0xMMV9VTDFfTU9ERV9TVEFUVVNfVVBEQVRFX0lORCwKK01TR19JRF9VTDFfTEwxX0FDVElWRV9NRUFTVVJFX1NUQVRVU19JTkQsCitNU0dfSURfVUwxX0xMMV9NRUFTVVJFX1JFUSwKK01TR19JRF9VTDFfTEwxX1NUQU5EQllfTUVBU1VSRV9ET05FX0lORCwKK01TR19JRF9MTDFfVUwxX0dBUF9TRVJWSUNFX1JFUSwKK01TR19JRF9VTDFfTEwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfVUwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9MTDFfVUwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9VTDFfTEwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9VTDFfTEwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9MTDFfVUwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9MTDFfVUwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9VTDFfTEwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9VTDFfTEwxX0dBUF9SRVNVTUVfSU5ELAorTVNHX0lEX0xMMV9VTDFfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfVUwxX0xMMV9BVVRPX0dBUF9SRVEsCitNU0dfSURfTEwxX1VMMV9BVVRPX0dBUF9DTkYsCitNU0dfSURfTEwxX1VMMV9BVVRPX0dBUF9JTkQsCitNU0dfSURfVUwxX0xMMV9BVVRPX0dBUF9SRVMsCitNU0dfSURfVUwxX0xMMV9BVVRPX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfVUwxX0FVVE9fR0FQX1NUT1BfSU5ELAorTVNHX0lEX1VMMV9MTDFfQVVUT19HQVBfU1RPUF9SRVMsCitNU0dfSURfTEwxX1VMMV9BVVRPX0dBUF9TVE9QX0NORiwKK01TR19JRF9VTDFfTEwxX0FVVE9fR0FQX0VORF9JTkQsCitNU0dfSURfTEwxX1VMMV9BVVRPX0dBUF9FTkRfSU5ELAorTVNHX0lEX1VMMV9MTDFfQVVUT19HQVBfQVZBSUxBQkxFX0lORCwKK01TR19JRF9MTDFfVUwxX0FVVE9fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfVUwxX0xMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX1VMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX1VMMV9HQVBfTk9USUZZX0lORCwKK01TR19JRF9VTDFfTEwxX0dBUF9QQVRURVJOX0lORCwKK01TR19JRF9MTDFfVUwxX1NQRUNJRklDX0dBUF9JTkQsCitNU0dfSURfTEwxX1VMMV9HQVBfU1RBVFVTX0lORCwKKworTVNHX0lEX0xMMV9UTDFfU1lOQ19SRVEsCitNU0dfSURfVEwxX0xMMV9TWU5DX0NORiwKK01TR19JRF9UTDFfTEwxX1JBVF9TVEFUVVNfSU5ELAorTVNHX0lEX1RMMV9MTDFfTU9ERV9TVEFUVVNfSU5ELAorTVNHX0lEX0xMMV9UTDFfTU9ERV9TVEFUVVNfVVBEQVRFX0lORCwKK01TR19JRF9UTDFfTEwxX0FDVElWRV9NRUFTVVJFX1NUQVRVU19JTkQsCitNU0dfSURfVEwxX0xMMV9NRUFTVVJFX1JFUSwKK01TR19JRF9UTDFfTEwxX1NUQU5EQllfTUVBU1VSRV9ET05FX0lORCwKK01TR19JRF9MTDFfVEwxX0dBUF9TRVJWSUNFX1JFUSwKK01TR19JRF9UTDFfTEwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfVEwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9MTDFfVEwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9UTDFfTEwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9UTDFfTEwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9MTDFfVEwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9MTDFfVEwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9UTDFfTEwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9UTDFfTEwxX0dBUF9SRVNVTUVfSU5ELAorTVNHX0lEX0xMMV9UTDFfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfVEwxX0xMMV9BVVRPX0dBUF9SRVEsCitNU0dfSURfTEwxX1RMMV9BVVRPX0dBUF9DTkYsCitNU0dfSURfTEwxX1RMMV9BVVRPX0dBUF9JTkQsCitNU0dfSURfVEwxX0xMMV9BVVRPX0dBUF9SRVMsCitNU0dfSURfVEwxX0xMMV9BVVRPX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfVEwxX0FVVE9fR0FQX1NUT1BfSU5ELAorTVNHX0lEX1RMMV9MTDFfQVVUT19HQVBfU1RPUF9SRVMsCitNU0dfSURfTEwxX1RMMV9BVVRPX0dBUF9TVE9QX0NORiwKK01TR19JRF9UTDFfTEwxX0FVVE9fR0FQX0VORF9JTkQsCitNU0dfSURfTEwxX1RMMV9BVVRPX0dBUF9FTkRfSU5ELAorTVNHX0lEX1RMMV9MTDFfQVVUT19HQVBfQVZBSUxBQkxFX0lORCwKK01TR19JRF9MTDFfVEwxX0FVVE9fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfVEwxX0xMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX1RMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX1RMMV9HQVBfTk9USUZZX0lORCwKK01TR19JRF9UTDFfTEwxX0dBUF9QQVRURVJOX0lORCwKKworTVNHX0lEX0xMMV9FTDFfU1lOQ19SRVEsCitNU0dfSURfRUwxX0xMMV9TWU5DX0NORiwKK01TR19JRF9FTDFfTEwxX1JBVF9TVEFUVVNfSU5ELAorTVNHX0lEX0VMMV9MTDFfTU9ERV9TVEFUVVNfSU5ELAorTVNHX0lEX0xMMV9FTDFfTU9ERV9TVEFUVVNfVVBEQVRFX0lORCwKK01TR19JRF9FTDFfTEwxX0FDVElWRV9NRUFTVVJFX1NUQVRVU19JTkQsCitNU0dfSURfRUwxX0xMMV9NRUFTVVJFX1JFUSwKK01TR19JRF9FTDFfTEwxX1NUQU5EQllfTUVBU1VSRV9ET05FX0lORCwKK01TR19JRF9MTDFfRUwxX0dBUF9TRVJWSUNFX1JFUSwKK01TR19JRF9FTDFfTEwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfRUwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9MTDFfRUwxX0dBUF9TVE9QX1JFUSwKK01TR19JRF9FTDFfTEwxX0dBUF9TVE9QX0NORiwKK01TR19JRF9FTDFfTEwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9MTDFfRUwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9MTDFfRUwxX0dBUF9TVVNQRU5EX1JFUSwKK01TR19JRF9FTDFfTEwxX0dBUF9TVVNQRU5EX0NORiwKK01TR19JRF9FTDFfTEwxX0dBUF9SRVNVTUVfSU5ELAorTVNHX0lEX0xMMV9FTDFfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfRUwxX0xMMV9BVVRPX0dBUF9SRVEsCitNU0dfSURfTEwxX0VMMV9BVVRPX0dBUF9DTkYsCitNU0dfSURfTEwxX0VMMV9BVVRPX0dBUF9JTkQsCitNU0dfSURfRUwxX0xMMV9BVVRPX0dBUF9SRVMsCitNU0dfSURfRUwxX0xMMV9BVVRPX0dBUF9TVE9QX1JFUSwKK01TR19JRF9MTDFfRUwxX0FVVE9fR0FQX1NUT1BfSU5ELAorTVNHX0lEX0VMMV9MTDFfQVVUT19HQVBfU1RPUF9SRVMsCitNU0dfSURfTEwxX0VMMV9BVVRPX0dBUF9TVE9QX0NORiwKK01TR19JRF9FTDFfTEwxX0FVVE9fR0FQX0VORF9JTkQsCitNU0dfSURfTEwxX0VMMV9BVVRPX0dBUF9FTkRfSU5ELAorTVNHX0lEX0VMMV9MTDFfQVVUT19HQVBfQVZBSUxBQkxFX0lORCwKK01TR19JRF9MTDFfRUwxX0FVVE9fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfRUwxX0xMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX0VMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX0VMMV9HQVBfTk9USUZZX0lORCwKK01TR19JRF9FTDFfTEwxX1RJTUlOR19VUERBVEVfSU5ELAorI2lmIChDVVJfR0VOID49IE1EX0dFTjk1KQorTVNHX0lEX0xMMV9FTDFfUlBHX0dBUF9OT1RJRllfSU5ELAorI2VuZGlmCitNU0dfSURfRUwxX0xMMV9HQVBfUEFUVEVSTl9JTkQsCitNU0dfSURfTEwxX0VMMV9DMktfVElNRV9JTkZPX1JFUSwKK01TR19JRF9FTDFfTEwxX0MyS19USU1FX0lORk9fQ05GLAorTVNHX0lEX0xMMV9FTDFfR0FQX1NUQVRVU19JTkQsCisKKyNpZmRlZiBfX0VMMV9JVF9fCitNU0dfSURfTUxMMV9JUlRfU1lOQ19UTVIsCitNU0dfSURfTUxMMV9FWFBBTkRfUEVSSU9EX1RNUiwKKyNlbmRpZiAvKl9fRUwxX0lUX18qLworCitNU0dfSURfQ0wxX0xMMV9SQVRfU1RBVFVTX0lORCwKK01TR19JRF9DTDFfTEwxX01PREVfU1RBVFVTX0lORCwKK01TR19JRF9MTDFfQ0wxX01PREVfU1RBVFVTX1VQREFURV9JTkQsCitNU0dfSURfQ0wxX0xMMV9BQ1RJVkVfTUVBU1VSRV9TVEFUVVNfSU5ELAorTVNHX0lEX0NMMV9MTDFfTUVBU1VSRV9SRVEsCitNU0dfSURfQ0wxX0xMMV9TVEFOREJZX01FQVNVUkVfRE9ORV9JTkQsCitNU0dfSURfTEwxX0NMMV9HQVBfU0VSVklDRV9SRVEsCitNU0dfSURfQ0wxX0xMMV9HQVBfU1RPUF9SRVEsCitNU0dfSURfTEwxX0NMMV9HQVBfU1RPUF9DTkYsCitNU0dfSURfTEwxX0NMMV9HQVBfU1RPUF9SRVEsCitNU0dfSURfQ0wxX0xMMV9HQVBfU1RPUF9DTkYsCitNU0dfSURfTEwxX0NMMV9HQVBfU1VTUEVORF9SRVEsCitNU0dfSURfQ0wxX0xMMV9HQVBfU1VTUEVORF9DTkYsCitNU0dfSURfTEwxX0NMMV9HQVBfUkVTVU1FX0lORCwKK01TR19JRF9DTDFfTEwxX0FVVE9fR0FQX1JFUSwKK01TR19JRF9MTDFfQ0wxX0FVVE9fR0FQX0NORiwKK01TR19JRF9MTDFfQ0wxX0FVVE9fR0FQX0lORCwKK01TR19JRF9DTDFfTEwxX0FVVE9fR0FQX1JFUywKK01TR19JRF9MTDFfQ0wxX0FVVE9fR0FQX1NUT1BfSU5ELAorTVNHX0lEX0NMMV9MTDFfQVVUT19HQVBfU1RPUF9SRVMsCitNU0dfSURfQ0wxX0xMMV9BVVRPX0dBUF9FTkRfSU5ELAorTVNHX0lEX0xMMV9DTDFfQVVUT19HQVBfRU5EX0lORCwKK01TR19JRF9MTDFfQ0wxX0FVVE9fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX0NMMV9BVVRPX0dBUF9VTkFWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX0NMMV9HQVBfTk9USUZZX0lORCwKK01TR19JRF9DTDFfTEwxX0dBUF9QQVRURVJOX0lORCwKK01TR19JRF9DTDFfTEwxX1NJQjhfVElNSU5HX1NZTkNfUkVRLAorTVNHX0lEX0xMMV9DTDFfU0lCOF9USU1JTkdfU1lOQ19DTkYsCitNU0dfSURfQ0wxX0xMMV9TUEVDSUZJQ19HQVBfSU5ELAorCitNU0dfSURfTEwxX05MMV9TWU5DX1JFUSwKK01TR19JRF9OTDFfTEwxX1NZTkNfQ05GLAorTVNHX0lEX05MMV9MTDFfUkFUX1NUQVRVU19JTkQsCitNU0dfSURfTkwxX0xMMV9NT0RFX1NUQVRVU19JTkQsCitNU0dfSURfTEwxX05MMV9NT0RFX1NUQVRVU19VUERBVEVfSU5ELAorTVNHX0lEX05MMV9MTDFfQUNUSVZFX01FQVNVUkVfU1RBVFVTX0lORCwKK01TR19JRF9OTDFfTEwxX01FQVNVUkVfUkVRLAorTVNHX0lEX05MMV9MTDFfU1RBTkRCWV9NRUFTVVJFX0RPTkVfSU5ELAorTVNHX0lEX0xMMV9OTDFfR0FQX1NFUlZJQ0VfUkVRLAorTVNHX0lEX05MMV9MTDFfR0FQX1NUT1BfUkVRLAorTVNHX0lEX0xMMV9OTDFfR0FQX1NUT1BfQ05GLAorTVNHX0lEX0xMMV9OTDFfR0FQX1NUT1BfUkVRLAorTVNHX0lEX05MMV9MTDFfR0FQX1NUT1BfQ05GLAorTVNHX0lEX05MMV9MTDFfR0FQX1NVU1BFTkRfUkVRLAorTVNHX0lEX0xMMV9OTDFfR0FQX1NVU1BFTkRfQ05GLAorTVNHX0lEX0xMMV9OTDFfR0FQX1NVU1BFTkRfUkVRLAorTVNHX0lEX05MMV9MTDFfR0FQX1NVU1BFTkRfQ05GLAorTVNHX0lEX05MMV9MTDFfR0FQX1JFU1VNRV9JTkQsCitNU0dfSURfTEwxX05MMV9HQVBfUkVTVU1FX0lORCwKK01TR19JRF9MTDFfTkwxX0dBUF9OT1RJRllfSU5ELAorTVNHX0lEX05MMV9MTDFfR0FQX1BBVFRFUk5fSU5ELAorTVNHX0lEX05MMV9MTDFfQVVUT19HQVBfUkVRLAorTVNHX0lEX0xMMV9OTDFfQVVUT19HQVBfQ05GLAorTVNHX0lEX0xMMV9OTDFfQVVUT19HQVBfSU5ELAorTVNHX0lEX05MMV9MTDFfQVVUT19HQVBfUkVTLAorTVNHX0lEX05MMV9MTDFfQVVUT19HQVBfU1RPUF9SRVEsCitNU0dfSURfTEwxX05MMV9BVVRPX0dBUF9TVE9QX0lORCwKK01TR19JRF9OTDFfTEwxX0FVVE9fR0FQX1NUT1BfUkVTLAorTVNHX0lEX0xMMV9OTDFfQVVUT19HQVBfU1RPUF9DTkYsCitNU0dfSURfTkwxX0xMMV9BVVRPX0dBUF9FTkRfSU5ELAorTVNHX0lEX0xMMV9OTDFfQVVUT19HQVBfRU5EX0lORCwKK01TR19JRF9OTDFfTEwxX0FVVE9fR0FQX0FWQUlMQUJMRV9JTkQsCitNU0dfSURfTEwxX05MMV9BVVRPX0dBUF9BVkFJTEFCTEVfSU5ELAorTVNHX0lEX05MMV9MTDFfQVVUT19HQVBfVU5BVkFJTEFCTEVfSU5ELAorTVNHX0lEX0xMMV9OTDFfQVVUT19HQVBfVU5BVkFJTEFCTEVfSU5ELAorTVNHX0lEX05MMV9MTDFfR0VUX0xURV9USU1JTkdfSU5GT19SRVEsCitNU0dfSURfTEwxX05MMV9HRVRfTFRFX1RJTUlOR19JTkZPX0NORiwKKworCisvKiBbRU5EQ10gKi8KK01TR19JRF9OTDFfTEwxX0VORENfU1RBVFVTX0lORCwgLy8gaW5mb3JtIE1MTDEgRU4tREMgT04vT0ZGIGFuZCBjdXJyZW50IE5SIGNlbGwgdGltZS9GUkMuCitNU0dfSURfTEwxX05MMV9FTkRDX0dBUF9DT05GSUdfSU5ELCAvLyBMTDEgaW5mb3JtIE5MMSB0aGUgTFRFIGdhcCBzdGFydCB0aW1lLCBOUiB0aW1lLCBGUkMsIGdhcCBwZXJpb2QKK01TR19JRF9FTDFfTEwxX0VORENfR0FQX0NPTkZJR19JTkQsIC8vIEVMMSBpbmZvcm0gTEwxIHRoZSBMVEUgZ2FwIHN0YXJ0IHRpbWUsIE5SIHRpbWUsIEZSQywgZ2FwIHBlcmlvZAorTVNHX0lEX0xMMV9OTDFfRU5EQ19BVVRPX0dBUF9SRVEsCitNU0dfSURfTEwxX05MMV9FTkRDX0FVVE9fR0FQX0VORF9JTkQsCitNU0dfSURfTkwxX0xMMV9FTkRDX0FVVE9fR0FQX0NORiwKK01TR19JRF9FTDFfTEwxX0VORENfQVVUT19HQVBfUkVRLAorTVNHX0lEX0VMMV9MTDFfRU5EQ19BVVRPX0dBUF9FTkRfSU5ELAorCisvKiBpbnRlci1SQVQgUlNURCAqLworTVNHX0lEX05MMV9MTDFfR0FQX0NPTkZJR19JTkQsIC8vIE5MMSBpbmZvcm0gTEwxIHRoZSBnYXAgY29uZmlnCitNU0dfSURfTEwxX0VMMV9HQVBfQ09ORklHX0lORCwgLy8gTEwxIGluZm9ybSBFTDEgdGhlIE5SIGdhcCBzdGFydCB0aW1lLCBnYXAgY29uZmlnCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTUxMMV9NU0dfQ09ERV9UQUlMICkKKworI2lmZGVmIF9UZXN0X0hkcl9Pbl9QQworCX07CisjZW5kaWYKKyNlbmRpZiAvKl9NTEwxX01TR19IKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL21tX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZjlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tbV9tc2dpZC5oCkBAIC0wLDAgKzEsNzQ3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1tLnNhcAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTU0gcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oKQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTU1fTVNHX0gKKyNkZWZpbmUgX01NX01TR19ICisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTU1fTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0qLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTU1fQ09ERV9CRUdJTiApCisvKiBtZXNhZ2UgcmVjZWl2ZWQgZnJvbSBUSU1FUiBhdCBNTVRJTUVSIFNBUCAqLworLypUQkQqLworCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIENDIGF0IE1NQ0Mgc2FwICovCisgICAgTVNHX0lEX01NQ0NfUFJPTVBUX1JFSiA9IE1TR19JRF9NTV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9NTUNDX1BST01QVF9SU1AsCisgICAgTVNHX0lEX01NQ0NfUkVMX1JFUSwKKyAgICBNU0dfSURfTU1DQ19FU1RfUkVRLAorICAgIE1TR19JRF9NTUNDX1JFRVNUX1JFUSwKKyAgICBNU0dfSURfTU1DQ19EQVRBX1JFUSwKKyAgICBNU0dfSURfTU1DQ19TVEFSVF9DQUxMX1JFUSwKKyAgICBNU0dfSURfTU1DQ19BQk9SVF9DQUxMX1JFUSwKKyAgICBNU0dfSURfTU1DQ19TUlZDQ19FU1RfUkVRLAorICAgIE1TR19JRF9NTUNDX1NSVkNDX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTU1DQ19TRVRVUF9DTkYsCisgICAgTVNHX0lEX01NQ0NfU0VUVVBfQ09NUExfSU5ELAorCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIFNTIGF0IE1NU1Mgc2FwICovCisgICAgTVNHX0lEX01NU1NfRVNUX1JFUSwKKyAgICBNU0dfSURfTU1TU19EQVRBX1JFUSwKKyAgICBNU0dfSURfTU1TU19SRUxfUkVRLAorI2lmZGVmIF9fTFRFX1JBVF9fICAgIAorICAgIE1TR19JRF9NTVNTX0VBRlJfUkVRLAorI2VuZGlmICAgIAorLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBTTVMgYXQgTU1TTVMgc2FwKi8KKyAgICBNU0dfSURfTU1TTVNfUkVMX1JFUSwKKyAgICBNU0dfSURfTU1TTVNfREFUQV9SRVEsCisgICAgTVNHX0lEX01NU01TX0VTVF9SRVEsCisgICAgTVNHX0lEX0dNTVJFR19DU19WT0lDRV9DQUxMX1BST1RFQ1RJT05fUkVRLAorLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBSQUMgYXQgR01NUkVHICBzYXAgKi8KKyAgICAvL01TR19JRF9HTU1SRUdfUExNTl9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9HTU1SRUdfSU5JVF9SRVEsCisgICAgLy9NU0dfSURfR01NUkVHX1NFTF9NT0RFX1JFUSwKKyAgICBNU0dfSURfR01NUkVHX1JGT0ZGX1JFUSwKKyAgICBNU0dfSURfR01NUkVHX1NFVF9ST0FNSU5HX01PREVfUkVRLAorICAgIC8vTVNHX0lEX0dNTVJFR19TRVRfUFJFRkVSX1JBVF9SRVEsCisgICAgLy9NU0dfSURfR01NUkVHX1BMTU5fTElTVF9SRVEsCisgICAgLy9NU0dfSURfR01NUkVHX1BMTU5fTElTVF9TVE9QX1JFUSwKKyAgICAvL01TR19JRF9HTU1SRUdfQ1NHX0xJU1RfUkVRLAorICAgIC8vTVNHX0lEX0dNTVJFR19DU0dfTElTVF9TVE9QX1JFUSwKKyAgICBNU0dfSURfR01NUkVHX1NFVF9HUFJTX1RSQU5TRkVSX1BSRUZFUkVOQ0VfUkVRLAorICAgIE1TR19JRF9HTU1SRUdfU0VUX1BSRUZFUlJFRF9CQU5EX1JFUSwgICAvKiBtdGswMjQ3NTogZm9yIHNldCBiYW5kIHdpdGhvdXQgcmVib290Ki8KKyAgICBNU0dfSURfR01NUkVHX0VORF9QU19EQVRBX1NFU1NJT05fUkVRLCAvL210azAyNDc1OiBmb3IgRmFzdCBEb3JtYW5jeQorICAgIE1TR19JRF9HTU1SRUdfQUNUSVZFX1NJTV9JTkZPX1JFUSwgIC8vZm9yIERTRFMgLHBzIG9uIHdoaWNoIHNpbQorICAgIE1TR19JRF9HTU1SRUdfU0VUX0lNU19WT0lDRV9URVJNSU5BVElPTl9SRVEsCisgICAgTVNHX0lEX0dNTVJFR19TRVRfSU1TX1ZPSUNFX0FWQUlMQUJJTElUWV9SRVEsCisjaWYgZGVmaW5lZCAoX19HRU1JTklfXykKKyAgICBNU0dfSURfR01NUkVHX1NJTV9TVEFUVVNfVVBEQVRFX1JFUSwKKyNlbmRpZgorI2lmZGVmIF9fTFRFX1JBVF9fCisgICAgTVNHX0lEX0dNTVJFR19DU0ZCX1BBR0VfUlNQLAorI2VuZGlmCisgICAgTVNHX0lEX0dNTVJFR19TRVRfUEdDSEVDS19SRVEsCisgICAgTVNHX0lEX0dNTVJFR19EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9HTU1SRUdfQVJBTF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9HTU1SRUdfREFUQV9BTExPV19SRVEsCisjaWZkZWYgX19HRU1JTklfXworICAgIE1TR19JRF9HTU1SRUdfUlNJTV9BVVRIX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTU1fUkFUQ01fUlNJTV9EQVRBX0FCT1JUX0NORiwKKyAgICBNU0dfSURfR01NUkVHX1JTSU1fQUtBX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX0dNTVJFR19SU0lNX0FLQV9SU0lNX0FDQ0VTU19GT1JfQVVUSF9ET1dOTE9BRF9SRVEsCisjZW5kaWYgLyogX19HRU1JTklfXyAqLworICAgIE1TR19JRF9HTU1SRUdfUFRNU0lfQ0xFQVJfUkVRLAorICAgIE1TR19JRF9HTU1SRUdfTE9DSV9DTEVBUl9SRVEsCisgICAgTVNHX0lEX0dNTVJFR19FTEVWQVRPUl9NT0RFX1JFUSwKKworLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBFTU0gYXQgTU1fRU1NIHNhcCAqLworICAgIE1TR19JRF9NTV9FTU1fSU5JVF9OQVNfQ1RYVF9JTkQsCisgICAgTVNHX0lEX01NX0VNTV9FTU1fVVBEQVRFX1JFR0lTVFJBVElPTl9JTkQsCisgICAgTVNHX0lEX01NX0VNTV9FTU1fVVBEQVRFX0RFUkVHSVNUUkFUSU9OX0lORCwKKyAgICBNU0dfSURfTU1fRU1NX0NTRkJfQ05GLAorICAgIE1TR19JRF9NTV9FTU1fQ1NGQl9QQUdFX0lORCwKKyAgICBNU0dfSURfTU1fRU1NX0lTUl9VUERBVEVfSU5ELAorI2lmIDAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorICAgIE1TR19JRF9FTU1fTU1fTkFTX0NUWFRfVFJBTlNGRVJfUkVRLAorI2lmIGRlZmluZWQgKF9fU0dMVEVfXykKKyAgICBNU0dfSURfTU1fRU1NX1BFRVJfTFJfSEFORExFX1BSRVBBUkFUSU9OX0NORiwKKyAgICBNU0dfSURfTU1fRU1NX1BFRVJfTFJfUkVTVUxUX0lORCwKKyAgICAvKmZyb20gMkcgTU0gdG8gM0cgTU0sIG9yIGZyb20gM0cgTU0gdG8gMkcgTU0qLworICAgIE1TR19JRF9NTV9NTV9QRUVSX0xSX0hBTkRMRV9QUkVQQVJBVElPTl9SRVEsCisgICAgTVNHX0lEX01NX01NX1BFRVJfTFJfSEFORExFX1BSRVBBUkFUSU9OX0NORiwKKyAgICBNU0dfSURfTU1fTU1fUEVFUl9MUl9SRVNVTFRfSU5ELAorI2VuZGlmCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIE5XU0VMIGF0IE5XU0VMX01NIHNhcCAqLworICAgIE1TR19JRF9OV1NFTF9NTV9QTE1OX0xJU1RfUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9QTE1OX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX0NTR19MSVNUX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fQ1NHX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX0NFTExfR0xPQkFMX0lERU5USVRZX0lORk9fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fU1lTX0lORk9fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fUkVHTl9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fSFBMTU5fSU5GT19VUERBVEVfUkVRLAorICAgIC8qIDI0LjAwOCBDUiMgMjEwOSBTdGFydCAqLworICAgIE1TR19JRF9OV1NFTF9NTV9NQU5VQUxfTU9ERV9VUERBVEVfUkVRLAorICAgIC8qIDI0LjAwOCBDUiMgMjEwOSBFbmQgKi8KKyAgICAvKiAjaWZkZWYgX19MVEVfUkFUX18gKi8KKyAgICBNU0dfSURfTldTRUxfTU1fU0VBUkNIX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9FVVRSQU5fQ0FQX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX0VVVFJBTl9DQVBfQUJPUlRfUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9WT0lDRV9QUkVGRVJfVUVfVVNBR0VfVVBEQVRFX1JFUSwKKyAgICAvKiAjZW5kaWYgKi8KKyAgICBNU0dfSURfTldTRUxfTU1fSU5WQUxJRF9TSU1fUkVDT1ZFUl9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX0NMRUFSX0ZQTE1OR1BSU19JTkZPX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fU0VUX01SVV9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX0NMRUFSX01SVV9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX0FSQUxfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fQ1NHX0FVVE9fU0VBUkNIX01PREVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9HTE9CQUxfTU9ERV9DSEFOR0VfU1RBUlRfUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9DMktfRk9SQ0VfVE9fTE9DQUxfREVUQUNIX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fQzJLX05PUk1BTF9TRVJWSUNFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fRU1DX0ZPUkJJRERFTl9OV19MSVNUX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05XU0VMX01NX1BMTU5fTElTVF9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fTkVFRF9EVVBMRVhfTU9ERV9DSEdfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fQ0xFQVJfRk9SQklEREVOX0xBSV9MSVNUX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fUkFUX0RJU0FCTEVfQ09ORklHX1JFUSwKKworLyogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFNJTSBHTU1fU0lNX1NBUCAqLworLypUQkQqLworCisvKiBtZXNzYWdlIHJlY2VpdmVkIGZyb20gU01TIEdNTV9TTVNfU0FQKi8KKyAgICBNU0dfSURfR01NU01TX0VTVF9SRVEsCisgICAgTVNHX0lEX0dNTVNNU19VTklUREFUQV9SRVEsCisKKy8qIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBTTSBHTU1fU01fU0FQICovCisgICAgTVNHX0lEX0dNTVNNX1VOSVREQVRBX1JFUSwKKyAgICBNU0dfSURfR01NU01fTlNBUElfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfR01NU01fRFVBTF9QUklPUklUWV9DT05GSUdfUkVRLAorICAgIE1TR19JRF9HTU1TTV9BVFRBQ0hfUkVRLAorICAgIE1TR19JRF9HTU1TTV9FU1RfUkVRLAorICAgIE1TR19JRF9HTU1TTV9JU1JfREVBQ1RJVkFURV9SRVEsICAvLyBfX0xURV9SQVRfXyAgICBJU1IgRGVhY3RpdmF0ZQorI2lmZGVmIF9fR0VNSU5JX18KKyAgICBNU0dfSURfR01NU01fU0VTU0lPTl9CRUdJTl9SRVEsCisgICAgTVNHX0lEX0dNTVNNX1NFU1NJT05fRU5EX1JFUSwKKyNlbmRpZgorICAgIE1TR19JRF9HTU1TTV9FVkVOVF9SRVBPUlRfUkVRLAorLyogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFJBQk0gYXQgR01NX1JBQk1fU0FQKi8KKy8qVEJEKi8KKworLyogbWVzc2FnZSByZWNlaXZlZCBmcm9tIFNJTSBhdCBNTV9TSU1fU0FQKi8KKy8qVEJEKi8KKworLyogVGVtcG9yYXJpbHkgQWRkZWQgdGhlIFRDIE1TR19JRHMgaGVyZSAqLworLypUQkQqLworCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIFJBVERNIGF0IE1NX1JBVERNX1NBUCAqLworICAgIE1TR19JRF9NTV9SQVRETV9TRVFVRU5DRV9DTkYsCisgICAgTVNHX0lEX01NX1JBVERNX1JFRVNUQUJMSVNIX1JBQl9JTkQsCisgICAgTVNHX0lEX01NX1JBVERNX1NFTkRfVVNFUl9EQVRBX0lORCwKKyAgICBNU0dfSURfTU1fUkFURE1fUkFCX1JFTEVBU0VfSU5ELAorCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIFJBVENNIGF0IE1NX1JBVENNX1NBUCAqLworICAgIE1TR19JRF9NTV9SQVRDTV9JTklUX0NORiwKKyAgICBNU0dfSURfTU1fUkFUQ01fUkZPRkZfQ05GLAorICAgIE1TR19JRF9NTV9SQVRDTV9QTE1OX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX01NX1JBVENNX1NFVF9JTUVJX1JFUSwKKyAgICBNU0dfSURfTU1fUkFUQ01fQ0VMTF9HTE9CQUxfSURFTlRJVFlfSU5GT19JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX1BMTU5fTE9TU19JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX09VVF9PRl9TRVJWSUNFX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fUExNTl9MSVNUX0NORiwKKyAgICBNU0dfSURfTU1fUkFUQ01fUExNTl9MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9NTV9SQVRDTV9DU0dfTElTVF9DTkYsCisgICAgTVNHX0lEX01NX1JBVENNX0NTR19MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9NTV9SQVRDTV9DRUxMX0NIQU5HRV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX0NFTExfQ0hBTkdFX0ZJTklTSF9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX1BBR0VfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9TWU5DX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fU0VDVVJJVFlfTU9ERV9DT01QTEVURV9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX1NFQ1VSSVRZX01PREVfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fQ09OTl9FU1RfQ05GLAorICAgIE1TR19JRF9NTV9SQVRDTV9DT05OX0VTVF9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX0NPTk5fUkVMX0NORiwKKyAgICBNU0dfSURfTU1fUkFUQ01fQ09OTl9SRUxfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9DT05OX0xPU1NfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9DT05OX0FCT1JUX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fUkVBRFlfVElNRVJfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fQ1NfREFUQV9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX1BTX0RBVEFfQ05GLAorICAgIE1TR19JRF9NTV9SQVRDTV9QU19EQVRBX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fUkVTRVRfS0VZU19JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX1QzMTIyX1RJTUVPVVRfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9DQ09fQUNUSVZBVElPTl9USU1FX1RJTUVPVVRfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9FTkRfUFNfREFUQV9TRVNTSU9OX0NORiwgIC8qIE1BVUlfMDI4NTI0NDIsIF9fTk9fUFNEQVRBX1NFTkRfU0NSSV9fICovCisgICAgTVNHX0lEX01NX1JBVENNX1NFUlZJQ0VfQUNDRVBUX05PVElGWV9SRVEsCisjaWZkZWYgX19HRU1JTklfXworICAgIE1TR19JRF9NTV9SQVRDTV9TVVNQRU5EX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fUkVTVU1FX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fVklSVFVBTF9NT0RFX0lORCwgICAgCisjZW5kaWYKKyAgICBNU0dfSURfTU1fUkFUQ01fQ1NfU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX01NX1JBVENNX0xDU19QUk9DX1NUQVJUX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fTENTX1BST0NfRU5EX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fTExDX1BTSE9fSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9QU19IT19TVUNDRVNTX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fU0lHTkFMX0FQUEVBUl9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX0xPQ0FMX1JFTEVBU0VfSU5ELCAvKiBzb2x2ZSBsb2NhbCByZWxlYXNlIHN0YXR1cyBhc3luY2hyb25pemF0aW9uIGJldHdlZW4gVUUgYW5kIE5XICovCisgICAgLy9BZGQgZm9yIExURSBtdWx0aW1vZGUKKyAgICBNU0dfSURfTU1fUkFUQ01fREVBQ1RJVkFURV9DTkYsCisgICAgTVNHX0lEX01NX1JBVENNX0VVVFJBTl9DQVBfVVBEQVRFX0NORiwKKyAgICAvL0VuZCBvZiBMVEUgbXVsdGltb2RlCisgICAgTVNHX0lEX01NX1JBVENNX1JSQ19TVEFURV9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX0lETEVfT1VUX09GX1NFUlZJQ0VfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9TVEFSVF9URVNUX01PREVfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9TVE9QX1RFU1RfTU9ERV9JTkQsCisgICAgTVNHX0lEX01NX1JBVENNX0RVUExFWF9NT0RFX0NIQU5HRV9DTkYsCisgICAgTVNHX0lEX01NX1JBVENNX1NFVF9NUlVfQ05GLAorICAgIE1TR19JRF9NTV9SQVRDTV9QTE1OX0ZPVU5EX0lORCwKKyAgICBNU0dfSURfTU1fUkFUQ01fQ0FMTF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9NTV9SQVRDTV9DU19EQVRBX0NORiwKKyAgICBNU0dfSURfR01NUkVHX1NFVF9NU19TVl9SRVEsIAorICAgIE1TR19JRF9NTV9SQVRDTV9SUkNFX1JFTEVBU0VfUFJPQ0VTU0VEX0lORCwKKyAgICBNU0dfSURfR01NUkVHX0NFTExVTEFSX05FVFdPUktfQ09ORklHX1JFUSwJCisgICAgTVNHX0lEX05XU0VMX01NX01BTlVBTF9TRUFSQ0hfU1RPUF9SRVEsCisJTVNHX0lEX0dNTVJFR19DU0ZCX1BBR0VfQ09ORklHX1JFUSwKKwlNU0dfSURfTU1fRU1NX0NTRkJfUkVTVUxUX0lORCwKKyAgICBNU0dfSURfR01NU01fUFNfQ09OTkVDVElPTl9SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfTU1fUkFUQ01fRk9SQ0VfQ09OTl9SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTU1fU0VSVklDRV9SRUNPVkVSWV9ST1VORF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9JTkFDVElWRV9NT0RFX0NPTkZJR1VSQVRJT05fUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9TQ1JFRU5fT05fUkVRLAorICAgIE1TR19JRF9OV1NFTF9NTV9TQ1JFRU5fT0ZGX1JFUSwKKyAgICBNU0dfSURfR01NUkVHX0xURV9OT1JNQUxfU0VSVklDRV9MT1NTX1VQREFURV9SRVEsCisJTVNHX0lEX01NX1JBVENNX0VORF9QU19EQVRBX1NFU1NJT05fSU5ELAorCU1TR19JRF9NTV9SQVRDTV9QTE1OX1NDQU5fSU5ELAorI2lmIGRlZmluZWQoX19FQ0FMTF9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19OR19FQ0FMTF9TVVBQT1JUX18pCisgICAgTVNHX0lEX0dNTVJFR19TRVRfVElNRVJfUkVRLAorICAgIE1TR19JRF9HTU1SRUdfU0VUX0VDQUxMX1JFR0lTVFJBVElPTl9SRVEsCisjZW5kaWYKKwlNU0dfSURfTldTRUxfTU1fUExNTl9JTkZPX1VQREFURV9SRVEsCisgICAgTVNHX0lEX01NX0NPREVfRU5EID0gIE1TR19JRF9OV1NFTF9NTV9QTE1OX0lORk9fVVBEQVRFX1JFUSwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTU1fQ09ERV9UQUlMICkKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNTV9NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNlbmRpZiAgLy9fTU1fTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL21tcmZfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL21tcmZfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTMwMjA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbW1yZl9tc2dpZC5oCkBAIC0wLDAgKzEsMTYxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1tcmZfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBUSzYyOTEKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBNTUwxIFJGIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgTU1SRl9NU0dJRF9ICisjZGVmaW5lIE1NUkZfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTU1SRl9DT0RFX0JFR0lOICkKK01TR19JRF9NTVJGX1BPQ18yR19SRVEgPSBNU0dfSURfTU1SRl9DT0RFX0JFR0lOLAorTVNHX0lEX01NUkZfUE9DXzNHRkREX1JFUSwKK01TR19JRF9NTVJGX1BPQ18zR1RERF9SRVEsCitNU0dfSURfTU1SRl9QT0NfTFRFX1JFUSwKK01TR19JRF9NTVJGX1BPQ19DMktfUkVRLAorTVNHX0lEX01NUkZfTlZSQU1fUkVBRF9SRVEsCitNU0dfSURfTU1SRl9OVlJBTV9XUklURV9SRVEsCitNU0dfSURfTU1SRl9VUERBVEVfUlVOVElNRV9SRVEsCitNU0dfSURfTU1SRl9VUERBVEVfUlVOVElNRV9DTkYsCitNU0dfSURfTU1SRlRTVF9SRVEsCitNU0dfSURfTU1SRlRTVF9DTkYsCitNU0dfSURfTU1SRl9URU1QRVJBVFVSRV9SRVEsCitNU0dfSURfTU1SRl9SRUdVTEFSX1RSQUNFX1JFUSwKK01TR19JRF9NTVJGX0JPT1RVUF9SRkNfUkVRLAorTVNHX0lEX01NUkZfQk9PVFVQX1JGQ19DTkYsCitNU0dfSURfTU1SRl9SRkRfSU5JVF9ET05FX0NORiwKK01TR19JRF9MNENfTU1SRl9CT09UVVBfUkZDX0lORk9fUkVRLAorTVNHX0lEX0w0Q19NTVJGX0JPT1RVUF9SRkNfSU5GT19DTkYsCitNU0dfSURfTU1UU1RfSU5GT1JNX0NBTF9EQVRBX0RMX1NUQVRVUywKK01TR19JRF9NTVJGVFNUX1dBS0VVUCwKKy8vU2NyaXB0IHRlc3QgbWVzc2FnZXMKK01TR19JRF9NTVJGX1NDUklQVF9URVNUX0lOSVRfSU5ELAorTVNHX0lEX01NUkZfU0NSSVBUX1RFU1RfU1RBUlRfSU5ELAorTVNHX0lEX01NUkZfU0NSSVBUX1RFU1RfRVhFQ19JTkQsCitNU0dfSURfTU1SRl9TQ1JJUFRfVEVTVF9GSU5JU0hfSU5ELAorTVNHX0lEX01NUkZfU0NSSVBUX1RFU1RfRU5EX0lORCwKK01TR19JRF9MNENfTU1SRl9HRVRfUkZfU1RBVFVTX1JFUSwKK01TR19JRF9MNENfTU1SRl9HRVRfUkZfU1RBVFVTX0NORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTU1SRl9DT0RFX1RBSUwgKQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbW1yZl9wY29yZV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbW1yZl9wY29yZV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZTMzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tbXJmX3Bjb3JlX21zZ2lkLmgKQEAgLTAsMCArMSw3NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBtbXJmX3Bjb3JlX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVEs2MjkxCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTU1MMSBSRiByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIE1NUkZfUENPUkVfTVNHSURfSAorI2RlZmluZSBNTVJGX1BDT1JFX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX01NUkZfUENPUkVfQ09ERV9CRUdJTiApCitNU0dfSURfTU1SRl9QQ09SRV9NTVRTVF9SRVEgPSBNU0dfSURfTU1SRl9QQ09SRV9DT0RFX0JFR0lOLCAvL1RlbXAgYWRkLCBjYW4gbW9kaWZ5IGl0IGlmIG5lZWRlZAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9NTVJGX1BDT1JFX0NPREVfVEFJTCApCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tcnNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL21yc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5NThhMWUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9tcnNfbXNnaWQuaApAQCAtMCwwICsxLDIxNiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA3CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgbXJzX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTXVsdGltb2RlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVGhpcyBmaWxlIGlzIGludGVuZHMgZm9yIE1SUyBTQVAgZGVmaW5pdGlvbi4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTVJTX01TR19ICisjZGVmaW5lIF9NUlNfTVNHX0gKKworI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXwordHlwZWRlZiBlbnVtIHsKKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTVJTX0NPREVfQkVHSU4gKQorCitNU0dfSURfTVJTX0FTX0NTR19XSElURV9MSVNUX1VQREFURV9JTkQgPSBNU0dfSURfTVJTX0NPREVfQkVHSU4sCitNU0dfSURfTVJTX0xPV0VSX0xBWUVSX0FWQUlMQUJJTElUWV9VUERBVEVfSU5ELCAKK01TR19JRF9NUlNfR0FTX0xPV0VSX0xBWUVSX0FWQUlMQUJJTElUWV9VUERBVEVfUkVRLAorTVNHX0lEX01SU19VQVNfTE9XRVJfTEFZRVJfQVZBSUxBQklMSVRZX1VQREFURV9SRVEsCitNU0dfSURfTVJTX0VBU19MT1dFUl9MQVlFUl9BVkFJTEFCSUxJVFlfVVBEQVRFX1JFUSwKK01TR19JRF9NUlNfR0FTX0JBTkRfU0VUVElOR19VUERBVEVfSU5ELAorTVNHX0lEX01SU19VQVNfQkFORF9TRVRUSU5HX1VQREFURV9JTkQsCitNU0dfSURfTVJTX0VBU19CQU5EX1NFVFRJTkdfVVBEQVRFX0lORCwKKworTVNHX0lEX01SU19VQVNfQUREX0JMQUNLX0NFTExfSU5ELAorTVNHX0lEX01SU19HQVNfQUREX0JMQUNLX0NFTExfSU5ELAorTVNHX0lEX01SU19VQVNfQ0xFQVJfQkxBQ0tfQ0VMTF9JTkQsCitNU0dfSURfTVJTX0dBU19DTEVBUl9CTEFDS19DRUxMX0lORCwKKworTVNHX0lEX01SU19FQVNfQkFORF9DVFJMX0lORCwKK01TR19JRF9NUlNfQ0FTX09DQ1VQWV9MTEFfUkVRLAorTVNHX0lEX01SU19DQVNfUkVMRUFTRV9MTEFfUkVRLAorTVNHX0lEX01SU19DQVNfR0VUX0xMQV9PQ0NVUFlfUkFUX1JFUSwKK01TR19JRF9SQUNfTVJTX0lOSVRfUkVRLAorTVNHX0lEX1JBQ19NUlNfSU5JVF9DTkYsCitNU0dfSURfUkFDX01SU19NRF9TSU1fQ09ORklHX1JFUSwKK01TR19JRF9NUlNfRUFTX1NCUF9SRUNPTkZJR19SRVEsCitNU0dfSURfTVJTX0VBU19TQlBfUkVDT05GSUdfQ05GLAorTVNHX0lEX01SU19VQVNfVU1UU19IT19JTkZPX1JTUCwKKyNpZmRlZiBfX0dFTUlOSV9MVEVfXworTVNHX0lEX01SU19FQVNfU0lNX1NXSVRDSF9SRVEsCitNU0dfSURfTVJTX0VBU19TSU1fU1dJVENIX0NORiwKKyNlbmRpZi8qX19HRU1JTklfTFRFX18qLworTVNHX0lEX01SU19OUlJDX1NCUF9SRUNPTkZJR19SRVEsCitNU0dfSURfTVJTX05SUkNfU0JQX1JFQ09ORklHX0NORiwKKworTVNHX0lEX01SU19EVU1QX0JBTkRfUVVFUllfSU5ELAorTVNHX0lEX01SU19FQVNfU1JDSF9JTkZPX0JBTkRfSU5ELAorTVNHX0lEX01SU19FQVNfU1JDSF9JTkZPX0ZSRVFfSU5ELAorTVNHX0lEX01SU19FQVNfU1JDSF9JTkZPX0NFTExfSU5ELAorTVNHX0lEX01SU19BUkZDTl9QUkVESUNUX1VUSUxfVVRfUkVTVUxUX0lORCwKK01TR19JRF9NUlNfQVJGQ05fUFJFRElDVF9VVElMX0NPTkZJRywKK01TR19JRF9NUlNfTUNDX0FJX1JFU1VMVF9JTkQsCitNU0dfSURfTVJTX1VBU19UUklHR0VSX1NZTkNfVVBfUkVRLAorTVNHX0lEX01SU19VQVNfVFJJR0dFUl9VTkxPQ0tfUkVRLAorTVNHX0lEX01SU19MNENfQ0FQQUJJTElUWV9VUERBVEVfSU5ELAorTVNHX0lEX01SU19EVU1QX1ZHX1JPQU1JTkdfQ09ORklHX0lORCwKK01TR19JRF9NUlNfRFVNUF9SQVRfQ0FQQUJJTElUWV9DT05GSUdfSU5ELAorCitNU0dfSURfTVJTX0NPREVfRU5EID0gTVNHX0lEX01SU19EVU1QX1JBVF9DQVBBQklMSVRZX0NPTkZJR19JTkQsCisKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9NUlNfQ09ERV9UQUlMICkKKworI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXworfTsKKyNlbmRpZgorCisjZW5kaWYgICAvL19NUlNfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL21zcG1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL21zcG1fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWNmOGQzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbXNwbV9tc2dpZC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgCisjaWZuZGVmIE1TUE1fTVNHSURfSAorI2RlZmluZSBNU1BNX01TR0lEX0gKKyAKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisgCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgTUFDUk9TICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgIFRZUEUgREVGSU5JVElPTlMgJiBFTlVNUyAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX01TUE1fQ09ERV9CRUdJTikKKworICAgIE1TR19JRF9NU1BNX1NFU1NJT05fU1RBUlRfTlRGID0gTVNHX0lEX01TUE1fQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfTVNQTV9TRVNTSU9OX0VORF9OVEYsCisgICAgTVNHX0lEX01TUE1fQVNfU0VTU0lPTl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX01TUE1fQVNfU0VTU0lPTl9TVEFSVF9DTkYsCisgICAgTVNHX0lEX01TUE1fQVNfU0VTU0lPTl9FTkRfTlRGLAorICAgIE1TR19JRF9NU1BNX1JGX09XTkVSX1BSSU9SSVRZX0NIQU5HRV9OVEYsCisgICAgTVNHX0lEX01TUE1fUkZfT1dORVJfQ0hBTkdFX05URiwKKyAgICBNU0dfSURfTVNQTV9DT05URVhUX0RVTVAsCisgICAgTVNHX0lEX01TUE1fQVNfTEVBVkVfVkNfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX01TUE1fU0VTU0lPTl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX01TUE1fU0VTU0lPTl9TVEFSVF9DTkYsCisgICAgTVNHX0lEX01TUE1fUFJFX0dFTUlOSV9BQk9SVF9JTkQsCisgICAgTVNHX0lEX01TUE1fWEwxX0RSX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX01TUE1fQ09ERV9FTkQgPSBNU0dfSURfTVNQTV9YTDFfRFJfU1RBVFVTX0lORCwKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX01TUE1fQ09ERV9UQUlMKSAKKyAKKyNlbmRpZiAvKiBNU1BNX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL210Zl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbXRmX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVlZGU1NgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL210Zl9tc2dpZC5oCkBAIC0wLDAgKzEsMTE0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLS0tLQorICogICBtdGZfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBpZGVudGl0aWVzIG9mIHRoZSBtZXNzYWdlcyByZWNlaXZlZCBieSBNVEYuCisgKiAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDYgMTcgMjAyMiBiaW5na2luZy5saQorICogW01PTFkwMDc3ODc3NV0gTlItPk5Sus1OUi0+TFRFx9C7u9PFu6/C8bXjtbzI6004MAorICoKKyAqIDEwIDE4IDIwMjEgb3RfbXVoYW1tZWQucmFmeQorICogW01PTFkwMDU3MjE3N10gQmFyIGNlbGw/Pz8/CisgKiAJCisgKiAJLgorICoKKyAqIDEyIDA5IDIwMTkgaWFuLXl3LmNoZW4KKyAqIFtNT0xZMDA0NjMzMzddIKFpNUctTEihaiBIdm9sdGUgZmVhdHVyZSA/1XWuST+73ahEIChGb2xsb3dpbmcgQUxQUzA0NzY2OTAwKQorICogIC4KKyAqCisgKiAwOCAwOSAyMDE5IGRhbm55Lmt1bworICogW01PTFkwMDQzMDQ2N10gW0dlbjk3XSBETUYgcGF0Y2ggYmFjayB0byBHZW45NworICogCQorICogCS4KKyAqCisgKiAwNyAxMyAyMDE4IGVkd2luLmxpdQorICogW01PTFkwMDMzMzM5OF0gW0dlbjkzXSBEaWFnbm9zdGljIE1hbmFnZXIgRnJhbWV3b3JrIGRldmVsb3BtZW50CisgKiAJCisgKiAJLgorICoKKyAqIC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgTVRGX01TR0lEX0gKKyNkZWZpbmUgTVRGX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX01URl9DT0RFX0JFR0lOICkKKworCitNU0dfSURfTVRfQ0lRX01FVFJJQ19JTkQsCisKK01TR19JRF9NVF9DSVFfTFQwMV9JTkQsCitNU0dfSURfRk9SX0ZSQU1FV09SS19URVNUXzEsCitNU0dfSURfRU1fRVVUUkFfUlJDX01FU1NBR0VfU19JTkQsCitNU0dfSURfRU1fRVVUUkFfUlJDX01FU1NBR0VfTV9JTkQsCitNU0dfSURfRU1fRVVUUkFfUlJDX01FU1NBR0VfTF9JTkQsCisKK01TR19JRF9ESExfTVRfUEVFUl9UUkFDRV9JTkQsCitNU0dfSURfREhMX01UX0lDRF9JTkQsCisKK01TR19JRF9BVFBfTVRfRE1GX0NNRF9SRVEsCitNU0dfSURfQVRQX01UX0RNRl9XSUZJQVNDX1JFUSwKK01TR19JRF9FUlJDX01UX0RNRl9DVVNUT01fQkFSX0lORCwKK01TR19JRF9BVFBfTVRfRE1GX0VDUElfSU5ELAorCitNU0dfSURfTDRDX01UX1NDUkVFTl9TVEFURV9JTkQsCitNU0dfSURfTVRfRE1GX0w0Q19DVVNUT01fQ09ORklHX0NORiwKKworCitNU0dfSURfTkwxTU9CX01UX0RNRl9DVVNUT01fRU5IX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTVRGX0NPREVfVEFJTCApCisKKworI2VuZGlmIC8vIFNETV9NU0dJRF9ICisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL24zYW5zX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9uM2Fuc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4OGFjYjIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9uM2Fuc19tc2dpZC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgTjNBTlNfTVNHSURfSAorI2RlZmluZSBOM0FOU19NU0dJRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9OM0FOU19DT0RFX0JFR0lOICkKKworICAgIE1TR19JRF9OM0VQQ19OM0FOU19TRUFSQ0hfU1RBUlRfTlRGID0gTVNHX0lEX04zQU5TX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX04zRVBDX04zQU5TX1NFQVJDSF9TVE9QX05URiwKKyAgICAKKyAgICBNU0dfSURfTjNFUENfTjNBTlNfTk9ERV9RVUVSWV9SRVEsCisgICAgTVNHX0lEX04zRVBDX04zQU5TX05PREVfUVVFUllfQ05GLAorCisgICAgTVNHX0lEX04zRVBDX04zQU5TX05PREVfSU5GT19VUERBVEVfTlRGLAorICAgIE1TR19JRF9OM0VQQ19OM0FOU19QTE1OX0lORk9fVVBEQVRFX05URiwKKworICAgIE1TR19JRF9BVFBfTjNBTlNfRUlNU0dFT19SRVEsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTjNBTlNfQ09ERV9UQUlMICkKKworI2VuZGlmICAvLyBOM0FOU19NU0dJRF9ICisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL24zY2ZfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL24zY2ZfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDk1ZTY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbjNjZl9tc2dpZC5oCkBAIC0wLDAgKzEsNDIgQEAKKyNpZm5kZWYgX04zQ0ZfTVNHX0lEX0gKKyNkZWZpbmUgX04zQ0ZfTVNHX0lEX0gKKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX04zQ0ZfQ09ERV9CRUdJTiApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgPDE+IERlc2l0bmF0aW9uOiBOM0NGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvLyBGcm9tIFVUCisgICAgTVNHX0lEX04zQ0ZfVVRfUFJJTlRfQUxMX1JFUSA9IE1TR19JRF9OM0NGX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX04zQ0ZfVVRfUFJJTlRfSUtFX1JFUSwKKyAgICBNU0dfSURfTjNDRl9VVF9EU0JQX0NBTExCQUNLX1JFUSwKKyAgICBNU0dfSURfTjNDRl9VVF9TRVRfSUtFX1JFS0VZX1JFUSwKKworLy8gRnJvbSBBVFAKKyAgICBNU0dfSURfQVRQX04zQ0ZfRU4zQ0ZHU0VUX1JFUSwKKyAgICBNU0dfSURfQVRQX04zQ0ZfRU4zQ0ZHR0VUX1JFUSwKKyAgICBNU0dfSURfQVRQX04zQ0ZfRFVNUF9SVU5USU1FX1BBUkFfUkVRLAorICAgIE1TR19JRF9BVFBfTjNDRl9FUFZTX1NFVF9SRVEsCisKKy8vIEZyb20gU0JQIC8gRFNCUAorICAgIE1TR19JRF9OM0NGX0RTQlBfUkVDT05GSUdVUkVfSU5ELAorCisvLyBGcm9tIFNJTQorICAgIE1TR19JRF9TSU1fTjNDRl9SRUFEWV9JTkQsICAgIC8vIChwaGFzZSBvdXQpCisgICAgTVNHX0lEX1NJTV9OM0NGX0VSUk9SX0lORCwgICAgLy8gKHBoYXNlIG91dCkKKworLy8gRnJvbSBOM0NGIHNlbGYKKyAgICBNU0dfSURfTjNDRl9ESExfRVZFTlRfTlRGLAorICAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICA8Mj4gRGVzaXRuYXRpb246IE90aGVyIG1vZHVsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8vIFRvIEFUUCBkZWZpbmVkIGluIC4vaW50ZXJmYWNlL3NhcC9tZC9hdHBfbXNnaWQuaAorICAgLyoKKyAgIE1TR19JRF9BVFBfTjNDRl9FTjNDRkdTRVRfSU5ELAorICAgKi8KKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9OM0NGX0NPREVfVEFJTCApCisjZW5kaWYgIC8vX04zQ0ZfTVNHX0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL24zZXBjX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9uM2VwY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhZDkxNzgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9uM2VwY19tc2dpZC5oCkBAIC0wLDAgKzEsMTU0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIE4zRVBDX01TR0lEX0gKKyNkZWZpbmUgTjNFUENfTVNHSURfSAorCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTjNFUENfQ09ERV9CRUdJTiApCisKKyAgICAvLyBGcm9tIERTQlAKKyAgICBNU0dfSURfTjNFUENfRFNCUF9SRUNPTkZJR1VSRV9JTkQgPSBNU0dfSURfTjNFUENfQ09ERV9CRUdJTiwKKworICAgIC8vIEZyb20gQVRQCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FV0lGSUFTQ19SRVEsCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FV0lGSUFERFJfUkVRLAorICAgIE1TR19JRF9BVFBfTjNFUENfRVdJRklOQVRUX1JFUSwKKyAgICBNU0dfSURfQVRQX04zRVBDX0VXSUZJRU5fUkVRLAorICAgIE1TR19JRF9BVFBfTjNFUENfRUlNU0dFT19SRVEsCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FUFZTU0VUX1JFUSwKKyAgICBNU0dfSURfQVRQX04zRVBDX0VOM0VQQ0NGR1NFVF9SRVEsCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FTjNFUENDRkdHRVRfUkVRLAorICAgIE1TR19JRF9BVFBfTjNFUENfRUVQREdfUkVRLAorICAgIE1TR19JRF9BVFBfTjNFUENfRUNGR0RSUF9SRVEsCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FSUZDT05GSUdfUkVRLAorICAgIE1TR19JRF9BVFBfTjNFUENfRVBPRl9SRVEsCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FTjNFUENURVNUX1JFUSwKKyAgICBNU0dfSURfQVRQX04zRVBDX0VJTVNDRkdfUkVRLAorICAgIE1TR19JRF9BVFBfTjNFUENfRU5BUFRSQ09ORklHX1JFUSwKKyAgICBNU0dfSURfQVRQX04zRVBDX0VOQVBUUl9SRVEsCisgICAgTVNHX0lEX0FUUF9OM0VQQ19FU0NSRUVOU1RBVEVfUkVRLAorCisgICAgLy8gRDJSTQorICAgIE1TR19JRF9EMlJNX04zRVBER19TVEFSVCwKKworICAgIE1TR19JRF9EMlJNX04zRVBDX0FDVF9EQVRBX0NBTExfUkVRLCAKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19BQ1RfREFUQV9DQUxMX0NORiwKKworICAgIE1TR19JRF9EMlJNX04zRVBDX0RFQUNUX0RBVEFfQ0FMTF9SRVEsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfREVBQ1RfREFUQV9DQUxMX0NORiwKKworICAgIE1TR19JRF9EMlJNX04zRVBDX0FCT1JUX0RBVEFfQ0FMTF9SRVEsIAorICAgIE1TR19JRF9EMlJNX04zRVBDX0FCT1JUX0RBVEFfQ0FMTF9DTkYsIAorICAgIAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9EQVRBX0NBTExfTElTVF9SRVEsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfR0VUX0RBVEFfQ0FMTF9MSVNUX0NORiwKKyAgICAKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfRFlOQU1JQ19QQVJBTV9SRVEsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfR0VUX0RZTkFNSUNfUEFSQU1fQ05GLAorICAgIAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9QRFBfQUREUkVTU19SRVEsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfR0VUX1BEUF9BRERSRVNTX0NORiwKKyAgICAKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19QRE5fSE9fTk9USUZZX1JFUSwKKyAgICAKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfU0VDT05EQVJZX0RZTkFNSUNfUEFSQU1fUkVRLAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9TRUNPTkRBUllfRFlOQU1JQ19QQVJBTV9DTkYsCisKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfUU9TX1JFUSwKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfUU9TX0NORiwKKworICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9URlRfUkVRLAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9URlRfQ05GLAorICAgIAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9QQUNLRVRfRklMVEVSX1JFUSwKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfUEFDS0VUX0ZJTFRFUl9DTkYsCisgICAgCisgICAgTVNHX0lEX0QyUk1fTjNFUENfU0VUX1BBQ0tFVF9GSUxURVJfUkVRLAorICAgIE1TR19JRF9EMlJNX04zRVBDX1NFVF9QQUNLRVRfRklMVEVSX0NORiwKKyAgICAKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19NT0RJRllfREFUQV9DQUxMX1JFUSwKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19NT0RJRllfREFUQV9DQUxMX0NORiwKKyAgICAKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfUkVUUllUTVJfUkVRLAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9SRVRSWVRNUl9DTkYsCisKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19TRVRfUkVUUllUTVJfUkVRLAorICAgIE1TR19JRF9EMlJNX04zRVBDX1NFVF9SRVRSWVRNUl9DTkYsCisgICAKKworICAgIE1TR19JRF9OM0VQQ19EMlJNX0dFVF9FUERHX0lORk9fQ05GLAorICAgIE1TR19JRF9OM0VQQ19EMlJNX0dFVF9FUERHX0lORk9fSU5ELAorCisgICAgTVNHX0lEX0QyUk1fTjNFUENfUEROX0JJTkRfUkVRLAorICAgIE1TR19JRF9EMlJNX04zRVBDX1BETl9VTkJJTkRfUkVRLAorCisgICAgTVNHX0lEX0QyUk1fTjNFUENfUEROX0RJU0NPTk5fSU5ELAorCisgICAgTVNHX0lEX0QyUk1fTjNFUENfR0VUX0RBVEFfQ0FMTF9MSVNUX0lORCwKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfRFlOQU1JQ19QQVJBTV9JTkQsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfR0VUX1BEUF9BRERSRVNTX0lORCwKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19HRVRfU0VDT05EQVJZX0RZTkFNSUNfUEFSQU1fSU5ELAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9RT1NfSU5ELAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9URlRfSU5ELAorICAgIE1TR19JRF9EMlJNX04zRVBDX0dFVF9QQUNLRVRfRklMVEVSX0lORCwKKyAgICBNU0dfSURfRDJSTV9OM0VQQ19QSU5HX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfTU9ESUZZX0RBVEFfQ0FMTF9JTkQsCisgICAgTVNHX0lEX0QyUk1fTjNFUENfUlNUX1JFVFJZVE1SX0lORCwKKworICAgIE1TR19JRF9OM0VQQ19EMlJNX0dFVF9FUERHX0lORk9fUkVRLAorCisgICAgTVNHX0lEX0QyUk1fTjNFUENfUEROX0JJTkRfQ05GLAorICAgIE1TR19JRF9EMlJNX04zRVBDX1BETl9VTkJJTkRfQ05GLAorCisgICAgLy8gRnJvbSBJV0xBTgorICAgIE1TR19JRF9JV0xBTl9OM0VQQ19EUERfUkVRLAorCisgICAgLy8gVG8gSVdMQU4KKyAgICBNU0dfSURfSVdMQU5fTjNFUENfRFBEX0NORiwKKyAgICBNU0dfSURfSVdMQU5fTjNFUENfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfSVdMQU5fTjNFUENfTU9CSUtFX0lORCwKKworICAgIC8vIFRvIGludGVybmFsIG1vZHVsZQorICAgIE1TR19JRF9OM0VQQ19BRFBUX1BFTkRJTkdfTjNFUENNU0dfUkVRLAorICAgIE1TR19JRF9OM0VQQ19BRFBUX0lLRV9ERUNSWVBUX0lORk9fSU5ELAorICAgIE1TR19JRF9OM0VQQ19BRFBUX0VTUF9ERUNSWVBUX0lORk9fSU5ELAorICAgIE1TR19JRF9OM0VQQ19BRFBUX0NGR19JTkZPX0lORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9OM0VQQ19DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vIE4zRVBDX01TR0lEX0gKKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbjNzYW1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL24zc2FtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTliNDllOAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL24zc2FtX21zZ2lkLmgKQEAgLTAsMCArMSwyMTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG4zc2FtX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVk1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIG1vZHVsZSBkZWZpbmVzIHRoZSBtZXNzZ2FlIElEcyBmb3IgTjNTQU0uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfTjNTQU1fTVNHX0lEX0gKKyNkZWZpbmUgX04zU0FNX01TR19JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9OM1NBTV9DT0RFX0JFR0lOICkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgICAgICAgIEVYVCBJTkJPVU5EIE1TRworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfRVhUX1NBTU5HX0JFR0lOID0gTVNHX0lEX04zU0FNX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX04zRVBDX04zU0FNX0lLRV9TQV9FU1RfUkVRLAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9JS0VfU0FfREVMX1JFUSwKKyAgICBNU0dfSURfTjNFUENfTjNTQU1fQUJPUlRfUkVRLAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9GT1JDRV9EUERfUkVRLAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9JS0VfU0FfVVBEQVRFX05XX0RFVl9SRVEsCisKKyAgICBNU0dfSURfTjNTQU1fRUFQX0VBUF9ERUNPREVfQ05GLAorICAgIE1TR19JRF9OM1NBTV9FQVBfTVNLX0dFVF9DTkYsCisgICAgTVNHX0lEX0VYVF9TQU1OR19FTkQsCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgICAgTVNHX0lEX0VYVF9DRVJUX0FEQVBUX0JFR0lOLAorICAgIE1TR19JRF9FWFRfQ0VSVF9BREFQVF9FTkQsCisKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfRVhUX0NJUEhFUl9XUkFQX0JFR0lOLAorICAgIE1TR19JRF9FWFRfQ0lQSEVSX1dSQVBfRU5ELAorCisKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfRVhUX0lLRV9FTkNBUF9CRUdJTiwKKyAgICBNU0dfSURfRVhUX0lLRV9FTkNBUF9FTkQsCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgICAgTVNHX0lEX0VYVF9OV19BREFQVF9CRUdJTiwKKyAgICBNU0dfSURfRVhUX05XX0FEQVBUX0VORCwKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfRVhUX0VBUF9QUk9YWV9CRUdJTiwKKyAgICBNU0dfSURfRVhUX0VBUF9QUk9YWV9FTkQsCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgIE1TR19JRF9FWFRfRFBfQ1RSTF9CRUdJTiwKKyAgICBNU0dfSURfRVhUX0RQX0NUUkxfRU5ELAorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgICAgICAgIEVYVCBPVVRCT1VORCBNU0cKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgTVNHX0lEX04zRVBDX04zU0FNX0lLRV9TQV9FU1RfQ05GLAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9JS0VfU0FfRVNUX1JFSiwKKyAgICBNU0dfSURfTjNFUENfTjNTQU1fSUtFX1NBX0RFTF9DTkYsCisgICAgTVNHX0lEX04zRVBDX04zU0FNX0lLRV9TQV9ERUxfSU5ELAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9QQ1NDRl9VUERBVEVfSU5ELAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9ETlNfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTjNFUENfTjNTQU1fQUJPUlRfQ05GLAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9GT1JDRV9EUERfQ05GLAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9OM0dQUF9PT1NfSU5ELAorICAgIE1TR19JRF9OM0VQQ19OM1NBTV9NT0JJS0VfRU5BQkxFX0lORCwKKyAgICBNU0dfSURfTjNFUENfTjNTQU1fSUtFX1NBX1VQREFURV9OV19ERVZfQ05GLAorCisgICAgTVNHX0lEX04zU0FNX0VBUF9FQVBfREVDT0RFX1JFUSwKKyAgICBNU0dfSURfTjNTQU1fRUFQX01TS19HRVRfUkVRLAorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgICAgICAgIElOVCBNU0csIFNPUlQgQlkgRFNUIE1PRAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICBNU0dfSURfSU5UX1NBTU5HX0JFR0lOLAorICAgIE1TR19JRF9TQU1HUl9FTkNBUF9NRVNTQUdFX0VOQ09ERV9DTkYsCisgICAgTVNHX0lEX1NBTUdSX0VOQ0FQX01FU1NBR0VfREVDT0RFX0NORiwKKyAgICBNU0dfSURfU0FNR1JfRU5DQVBfUEFSQU1fU0VUX0NORiwKKyAgICBNU0dfSURfU0FNR1JfRU5DQVBfUEFSQU1fVU5TRVRfQ05GLAorICAgIE1TR19JRF9TQU1OR19DSVBIRVJfV1JBUF9JS0VfR0VOX1BVQkxJQ19LRVlfTlRGLCAvL2tleSBtYXQKKyAgICBNU0dfSURfU0FNTkdfQ0lQSEVSX1dSQVBfSUtFX0dFTl9TSEFSRV9TRUNSRVRfTlRGLAorICAgIE1TR19JRF9TQU1OR19DSVBIRVJfV1JBUF9JS0VfS0VZX0RFUklWRV9OVEYsCisgICAgTVNHX0lEX1NBTU5HX0NJUEhFUl9XUkFQX0NISUxEX0dFTl9QVUJMSUNfS0VZX05URiwKKyAgICBNU0dfSURfU0FNTkdfQ0lQSEVSX1dSQVBfQ0hJTERfR0VOX1NIQVJFX1NFQ1JFVF9OVEYsCisgICAgTVNHX0lEX1NBTU5HX0NJUEhFUl9XUkFQX0NISUxEX0tFWV9ERVJJVkVfTlRGLAorICAgIE1TR19JRF9TQU1OR19DRVJUX0FEQVBUX0NFUlRfSEFTSF9JTkQsCisgICAgTVNHX0lEX1NBTU5HX0NFUlRfQURBUFRfQ0VSVF9HRVRfQ05GLAorICAgIE1TR19JRF9TQU1OR19DRVJUX0FEQVBUX0NFUlRfVkVSSUZZX0NORiwKKyAgICBNU0dfSURfU0FNTkdfQ0VSVF9BREFQVF9DRVJUX1VSTF9WRVJJRllfQ05GLAorICAgIE1TR19JRF9TQU1OR19FQVBfUFJPWFlfU1RBUlRfQ09OVkVSU0FUSU9OX0NORiwKKyAgICBNU0dfSURfU0FNTkdfRUFQX1BST1hZX1NUT1BfQ09OVkVSU0FUSU9OX0NORiwKKyAgICBNU0dfSURfU0FNTkdfRUFQX1BST1hZX0hBTkRMRV9EQVRBX0NORiwKKyAgICBNU0dfSURfU0FNTkdfTldfQURBUFRfU0VUVVBfSUtFX1BBVEhfTlRGLAorICAgIE1TR19JRF9TQU1OR19OV19BREFQVF9TRVRVUF9FU1BfUEFUSF9OVEYsCisgICAgTVNHX0lEX1NBTU5HX05XX0FEQVBUX0NPTk5fU1RBVFVTX0NIQU5HRV9OVEYsCisgICAgTVNHX0lEX1NBTU5HX0RQX0NUUkxfSU5TVEFMTF9JTkQsCisgICAgTVNHX0lEX1NBTU5HX0RQX0NUUkxfQUNUSVZBVEVfSU5ELAorICAgIE1TR19JRF9TQU1OR19EUF9DVFJMX1VOSU5TVEFMTF9JTkQsCisgICAgTVNHX0lEX1NBTU5HX0RQX0NUUkxfREVBQ1RJVkFURV9JTkQsCisgICAgTVNHX0lEX1NBTU5HX0RQX0NUUkxfRVhQSVJFRF9JTkQsCisgICAgTVNHX0lEX1NBTU5HX0RQX0NUUkxfU1BJX1JFQURZX0lORCwKKyAgICBNU0dfSURfSU5UX1NBTU5HX0VORCwKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworICAgIE1TR19JRF9JTlRfQ0VSVF9BREFQVF9CRUdJTiwKKyAgICBNU0dfSURfU0FNTkdfQ0VSVF9BREFQVF9DRVJUX0dFVF9SRVEsCisgICAgTVNHX0lEX1NBTU5HX0NFUlRfQURBUFRfQ0VSVF9WRVJJRllfUkVRLAorICAgIE1TR19JRF9TQU1OR19DRVJUX0FEQVBUX0NFUlRfVVJMX1ZFUklGWV9SRVEsCisgICAgTVNHX0lEX0lOVF9DRVJUX0FEQVBUX0VORCwKKworICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworICAgIE1TR19JRF9JTlRfQ0lQSEVSX1dSQVBfQkVHSU4sCisKKyAgICBNU0dfSURfSU5UX0NJUEhFUl9XUkFQX0VORCwKKworICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworICAgIE1TR19JRF9JTlRfSUtFX0VOQ0FQX0JFR0lOLAorICAgIE1TR19JRF9TQU1HUl9FTkNBUF9NRVNTQUdFX0VOQ09ERV9SRVEsCisgICAgTVNHX0lEX1NBTUdSX0VOQ0FQX01FU1NBR0VfREVDT0RFX1JFUSwKKyAgICBNU0dfSURfU0FNR1JfRU5DQVBfUEFSQU1fU0VUX1JFUSwKKyAgICBNU0dfSURfU0FNR1JfRU5DQVBfUEFSQU1fVU5TRVRfUkVRLAorICAgIE1TR19JRF9JTlRfSUtFX0VOQ0FQX0VORCwKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfSU5UX05XX0FEQVBUX0JFR0lOLAorICAgIE1TR19JRF9JTlRfTldfQURBUFRfRU5ELAorCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgICAgTVNHX0lEX0lOVF9FQVBfUFJPWFlfQkVHSU4sCisgICAgTVNHX0lEX1NBTU5HX0VBUF9QUk9YWV9TVEFSVF9DT05WRVJTQVRJT05fUkVRLAorICAgIE1TR19JRF9TQU1OR19FQVBfUFJPWFlfU1RPUF9DT05WRVJTQVRJT05fUkVRLAorICAgIE1TR19JRF9TQU1OR19FQVBfUFJPWFlfSEFORExFX0RBVEFfUkVRLAorICAgIE1TR19JRF9JTlRfRUFQX1BST1hZX0VORCwKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfSU5UX0RQX0NUUkxfQkVHSU4sCisgICAgTVNHX0lEX0lOVF9EUF9DVFJMX0VORCwKKworICAgIE1TR19JRF9JTlRfUFJJTUlUSVZFX0xPR19CRUdJTiwKKyAgICBNU0dfSURfSUtFVjJfSUtFX1NBX0FERF9OVEYsCisgICAgTVNHX0lEX0lOVF9QUklNSVRJVkVfTE9HX0VORCwKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAgICAgICAgVVQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAgICBNU0dfSURfTjNTQU1fVVRfVElNRVIsCisgICAgTVNHX0lEX04zU0FNX1VUX01FTU9SWSwKKworICAgIE1TR19JRF9OM1NBTV9VVF9JS0VfVUxfTVNHLAorICAgIE1TR19JRF9OM1NBTV9VVF9JS0VfRExfTVNHLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNU0cgRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX04zU0FNX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fTjNTQU1fTVNHX0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL25hc19zdl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbmFzX3N2X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY1YTg5ZgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL25hc19zdl9tc2dpZC5oCkBAIC0wLDAgKzEsNDM0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorI2lmbmRlZiBfTkFTX1NWX01TR19ICisjZGVmaW5lIF9OQVNfU1ZfTVNHX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU5BU19TVl9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTkFTX1NWX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9USEVfTkFTX1NWX0RVTVBfQ09NTU9OX0NPTlRFWFRfSU5EPSBNU0dfSURfTkFTX1NWX0NPREVfQkVHSU4sCisgICAgLyogUkFDPD5TViAqLworICAgIC8qIFJBQyBndWFyYW50ZWUgc2VuZCBvdXQgYWxsIE5BUyBpbml0IHRoZW4gaW5mb3JtIE5BU19TViAqLworICAgIE1TR19JRF9SQUNfTkFTX1NWX0lOSVRfUkVRLAorICAgIE1TR19JRF9SQUNfTkFTX1NWX0FUVEFDSF9SRVEsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfREVUQUNIX1JFUSwKKyAgICBNU0dfSURfUkFDX05BU19TVl9TRVRfUkFUX01PREVfUkVRLAorICAgIE1TR19JRF9SQUNfTkFTX1NWX1NFVF9SQVRfTU9ERV9DTkYsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfRFVQTEVYX01PREVfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfUkFDX05BU19TVl9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLAorICAgIE1TR19JRF9SQUNfTkFTX1NWX0FUVEFDSF9DTkYsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfREVUQUNIX0lORCwKKyAgICBNU0dfSURfUkFDX05BU19TVl9BVFRBQ0hfREVUQUNIX1JFU1VMVF9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfUkZPRkZfUkVRLAorICAgIE1TR19JRF9SQUNfTkFTX1NWX1JGT0ZGX0NORiwKKyAgICBNU0dfSURfUkFDX05BU19TVl9SQVRfQ0hBTkdFX1NUQVJUX0lORCwKKyAgICBNU0dfSURfUkFDX05BU19TVl9SQVRfQ0hBTkdFX0ZJTklTSF9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfVVBEQVRFX0FDVElWRV9SQVRfSU5ELAorICAgIE1TR19JRF9SQUNfTkFTX1NWX0VWRU5UX1VQREFURV9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfRVBTX0FUVEFDSF9ORUVERURfUkVKX1JTUCwKKyAgICBNU0dfSURfUkFDX05BU19TVl9FUFNfQVRUQUNIX05FRURFRF9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfRU1DX0FUVEFDSF9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfRU1DX0FUVEFDSF9SRVEsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfRU1NX05XX0ZFQVRVUkVfU1VQUE9SVF9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfVkdfT1BUSU9OX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfVUVNT0RFX1BBUkFNX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfTlJSQ19TVEFURV9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfSU1TX1JFR19TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFDX05BU19TVl9DQUxMX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfQ0FQX1VQREFURV9JTkQsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfSU1TX1BETl9BQ1RJVkFUSU9OX1JFUSwKKyAgICBNU0dfSURfUkFDX05BU19TVl9OUl9OT1JNQUxfU0VSVklDRV9MT1NTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBQ19OQVNfU1ZfVDM0MDJfU1RPUF9JTkQsCisJTVNHX0lEX1JBQ19OQVNfU1ZfQVNfUExNTl9TRUFSQ0hfUkVQT1JUX0lORCwKKworCisgICAgLyogUkFUX1RDTSA8PiBTViAqLworICAgIE1TR19JRF9SQVRfVENNX05BU19TVl9CRUdJTiA9IE1TR19JRF9OQVNfU1ZfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9SQVRfVENNX05BU19TVl9BQ1RJVkVfTkFTX1VQREFURV9JTkQsIC8qIHRvIGJlIHJlbW92ZWQgKi8KKyAgICBNU0dfSURfUkFUX1RDTV9OQVNfU1ZfRVZFTlRfVVBEQVRFX0lORCwKKworICAgIC8qIFNNSUMgPD4gU1YgKi8KKyAgICBNU0dfSURfTkFTX1NWX1NNSUNfQk9PVF9VUF9JTklUX05BU19VUERBVEVfSU5ELCAvKiBuZXcgKi8KKworICAgIC8qIFNWPD5BTlkqLworICAgIE1TR19JRF9OQVNfU1ZfQU5ZX0JFR0lOID0gTVNHX0lEX1JBVF9UQ01fTkFTX1NWX0JFR0lOICsgNTAsCisgICAgTVNHX0lEX05BU19TVl9BTllfQVRUQUNIX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9ERVRBQ0hfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfQU5ZX0VWRU5UX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9BTllfRVZFTlRfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9SRk9GRl9SRVEsCisgICAgTVNHX0lEX05BU19TVl9BTllfUkZPRkZfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfQU5ZX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9BTllfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9SQVRfQ0hBTkdFX1NUQVJUX0lORCwgLyogeFNNIGNoYW5nZSB0byBTTUlDICovCisgICAgTVNHX0lEX05BU19TVl9BTllfUkFUX0NIQU5HRV9GSU5JU0hfSU5ELCAvKiB4U00gY2hhbmdlIHRvIFNNSUMgKi8KKyAgICBNU0dfSURfTkFTX1NWX0FOWV9TUlZDQ19TVEFUVVNfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9QTE1OX0ZPVU5EX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9SRUdOX1JFU1VMVF9JTkQsCisgICAgTVNHX0lEX05BU19TVl9BTllfRVBMTU5fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9TRUFSQ0hfU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9BTllfQlJPQURDQVNUX1JFR05fUkVTVUxUX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9CUk9BRENBU1RfVElNRVJfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9PUEVSQVRJT05fQUxMT1dfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfQU5ZX09QRVJBVElPTl9BTExPV19DTkYsCisgICAgTVNHX0lEX05BU19TVl9BTllfTUFOSVBVTEFURV9DT05ORUNUSU9OX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9PUEVSQVRJT05fQUxMT1dfTk9fQUNUSU9OX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9NTV9DQVBfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9WR19PUFRJT05fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9CUk9BRENBU1RfREVUQUNIX1JFUVVJUkVEX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9ESVNBQkxFX0lORk9fVVBEQVRFX05URiwKKyAgICBNU0dfSURfTkFTX1NWX0FOWV9HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9TRVRfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfQU5ZX0dFTkVSQUxfTU9ERU1fQ09ORklHVVJFX1NFVF9DTkYsCisKKyAgICAvKiBTVjw+R01TUyAqLworICAgIE1TR19JRF9OQVNfU1ZfR01TU19CRUdJTiA9IE1TR19JRF9OQVNfU1ZfQU5ZX0JFR0lOICsgMjAwLAorICAgIE1TR19JRF9OQVNfU1ZfR01TU19TRVRfUkFUX01PREVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfR01TU19TRVRfUkFUX01PREVfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfR01TU19DMktfREVBQ1RJVkFURV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9HTVNTX1VFTU9ERV9QQVJBTV9VUERBVEVfUkVRLAorCisgICAgLyogU1Y8Pk5XU0VMICovCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9CRUdJTiA9IE1TR19JRF9OQVNfU1ZfR01TU19CRUdJTiArIDUwLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfU1lTX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BMTU5fU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BMTU5fU0VBUkNIX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BMTU5fU0VBUkNIX0NORiwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0NTU19DU19SRUdfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NTX0NTX1JFR19DTkYsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9DU1NfUFNfUkVHX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0NTU19QU19SRUdfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NTX01DQ19TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NTX01DQ19TRUFSQ0hfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfTk9fQUNUSU9OX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0NBUEFCSUxJVFlfUVVFUllfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ0FQQUJJTElUWV9RVUVSWV9DTkYsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9FTkRDX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BMTU5fTElTVF9SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9QTE1OX0xJU1RfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfUExNTl9MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfUExNTl9MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfUExNTl9TQ0FOX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0NBUEFCSUxJVFlfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BPV0VSX1NDQU5fUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfUE9XRVJfU0NBTl9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9QT1dFUl9TQ0FOX0NORiwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BMTU5fQkFORF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9DU1NfUFNfREVSRUdfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NTX1BTX0RFUkVHX0NORiwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0RJU1BMQVlfU0VBUkNIX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9QTE1OX0ZPVU5EX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX05SX1BMTU5fTE9TU19JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9DSEVDS19BQ1RJVkVfUkFUX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1NOSUZGRVJfU1RBUlRfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfU05JRkZFUl9TVE9QX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1NJR05BTF9BUFBFQVJfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfUkVHTl9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfRVBMTU5fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX05SUkNfRVFfUExNTl9MSVNUX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9FTU1fVVBEQVRFX1BBUkFNX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1VFTU9ERV9QQVJBTV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfVkdNTV9UMzUwMl9DSEFOR0VfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfVkdNTV9TWVNfSU5GT19VUERBVEVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NHX0xJU1RfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NHX0xJU1RfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQ1NHX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9DU0dfTElTVF9TVE9QX0NORiwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1NFQVJDSF9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX05SUkNfUkVHTl9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1ZHTU1fUkVHTl9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1ZHTU1fSU5WQUxJRF9TSU1fUkVDT1ZFUl9SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9TT1JfT1BMTU5fTElTVF9VUERBVEVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfU09SX09QTE1OX0xJU1RfVVBEQVRFX1JTUCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1NPUl9TRUNVUkVfUEFDS0VUX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1NPUl9TRUNVUkVfUEFDS0VUX1JTUCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0dFTUlOSV9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfU1RBUlRfUFJFRElDVF9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfU1RBUlRfU0VBUkNIX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQkFDS0dST1VORF9CQU5EX0xFQVJOSU5HX1NUT1BfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfQkFDS0dST1VORF9CQU5EX0xFQVJOSU5HX1NUT1BfQ05GLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfU1VTUEVORF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9SRVNVTUVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfVklSVFVBTF9SRVNVTUVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfTElNSVRFRF9WSVJUVUFMX1JFU1VNRV9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9MSU1JVEVEX1ZJUlRVQUxfUkVTVU1FX1JTUCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1NMVF9FTkRDX1NVQ0NFU1NfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfVklSVFVBTF9TVVNQRU5EX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX01BTlVBTF9NT0RFX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9IUExNTl9JTkZPX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9DQU5DRUxfUExNTl9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfTU1fUExNTl9MSVNUX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0VSUkNfUExNTl9MSVNUX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX05SUkNfUExNTl9MSVNUX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX05SUkNfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX05SUkNfU0VSVklDRV9SRUNPVkVSWV9ST1VORF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfTlJSQ19TQ1JFRU5fT05fUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfTlJSQ19TQ1JFRU5fT0ZGX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1ZHU01fUEVSU0lTVEVOVF9QRFVfU0VTU0lPTl9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9WR1NNX01BWF9QRFVfRVNUX1RJTUVPVVRfUkVBQ0hFRF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9WR01NX0MyS19GT1JDRV9UT19MT0NBTF9ERVRBQ0hfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfVkdNTV9HTE9CQUxfTU9ERV9DSEFOR0VfU1RBUlRfUkVRLAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfVkdNTV9QTE1OX1JFU1RSSUNUSU9OX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9OUlJDX1BMTU5fU0VBUkNIX1BSRUZFUkVOQ0VfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1ZHTU1fQ0VMTF9CQU5EX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1ZHTU1fRU1FUkdFTkNZX1NUQVRVU19VUERBVEVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OQVNfU1ZfRElTQUJMRV9JTkZPX1VQREFURV9OVEYsCisgICAgTVNHX0lEX05XU0VMX05BU19TVl9WR01NX1BFUk1BTkVOVF9JTlZBTElEX0NBVVNFX1JFQ09WRVJfSU5ELCAgICAKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX0NPTlRJTlVPVVNfSVJBVF9GQUlMVVJFX0lORCwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1BMTU5fTElTVF9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTldTRUxfTkFTX1NWX1ZHTU1fTjFfUkVFTkFCTEVfQ0xFQVJfRk9SQklEREVOX1RBX0xJU1RfUkVRLAorCU1TR19JRF9OV1NFTF9OQVNfU1ZfQVNfUExNTl9TRUFSQ0hfUkVQT1JUX0lORCwKKworICAgIC8qIFNWPD5FVkFMICovCisgICAgLyogU1Y8PkVNTSAqLworICAgIE1TR19JRF9OQVNfU1ZfRU1NX0JFR0lOID0gTVNHX0lEX05XU0VMX05BU19TVl9CRUdJTiArIDI1MCwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9TRVRfUkFUX01PREVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1NFVF9SQVRfTU9ERV9DTkYsCisgICAgTVNHX0lEX05BU19TVl9FTU1fU0lNX1JFU0VUX0NPTVBMRVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9CUk9BRENBU1RfREVUQUNIX1JFUVVJUkVEX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9QTE1OX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9FTU1fUExNTl9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1BMTU5fU0VBUkNIX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9TWVNfSU5GT19VUERBVEVfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX0RFQUNUSVZBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX0RFQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX05PX0FDVElPTl9JTkQsCisgICAgTVNHX0lEX05BU19TVl9FTU1fREVUQUNIX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9BVFRBQ0hfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX05BU19DVFhUX1RSQU5TRkVSX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9OQVNfQ1RYVF9UUkFOU0ZFUl9DTkYsCisgICAgTVNHX0lEX05BU19TVl9FTU1fQVNfUEFSQU1fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9FTUNfQVRUQUNIX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9QTE1OX0xJU1RfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1BMTU5fTElTVF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9FTU1fUExNTl9MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1BMTU5fTElTVF9TVE9QX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9OV19GRUFUVVJFX1NVUFBPUlRfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1JFTF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9FTU1fVVBEQVRFX1BBUkFNX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9DU0dfTElTVF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9FTU1fQ1NHX0xJU1RfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX0NTR19MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX0NTR19MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX0JST0FEQ0FTVF9SRUdOX1JFU1VMVF9JTkQsCisgICAgTVNHX0lEX05BU19TVl9FTU1fQlJPQURDQVNUX1RJTUVSX1NUQVRVU19JTkQsICAgIAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1NFVF9BQ1RJVkVfUkFUX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX0VNTV9BU19QQVJBTV9OT1RJRllfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRU1NX1QzNDAyX1NUT1BfSU5ELAorCisgICAgLyogU1Y8PkVSUkMgKi8KKyAgICBNU0dfSURfTkFTX1NWX0VSUkNfQkVHSU4gPSBNU0dfSURfTkFTX1NWX0VNTV9CRUdJTiArIDIwMCwKKyAgICBNU0dfSURfTkFTX1NWX0VSUkNfUkFUX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9FUlJDX1JBVF9DSEFOR0VfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRVJSQ19DQVBfVVBEQVRFX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX0VSUkNfUExNTl9CQU5EX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0VSUkNfQ0hFQ0tfQUNUSVZFX1JBVF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9FUlJDX1BPV0VSX1NDQU5fQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRVJSQ19TRVRfQUNUSVZFX1JBVF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9FUlJDX1NJR05BTF9BUFBFQVJfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRVJSQ19TUlZDQ19TVEFUVVNfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0VSUkNfU1RBUlRfUFJFRElDVF9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRVJSQ19CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfRVJSQ19CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfU1RPUF9DTkYsCisgICAgCisKKyAgICAvKiBTVjw+RVNNICovCisgICAgTVNHX0lEX05BU19TVl9FU01fQkVHSU4gPSBNU0dfSURfTkFTX1NWX0VSUkNfQkVHSU4gKyA1MCwKKyAgICBNU0dfSURfTkFTX1NWX0VTTV9BU19QQVJBTV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfRVNNX0VQU19BVFRBQ0hfTkVFREVEX1JFSl9SU1AsCisgICAgTVNHX0lEX05BU19TVl9FU01fRVBTX0FUVEFDSF9ORUVERURfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfRVNNX0VNQ19BVFRBQ0hfSU5ELAorCisKKyAgICAvKiBTVjw+TU0gKi8KKyAgICBNU0dfSURfTkFTX1NWX01NX0JFR0lOID0gTVNHX0lEX05BU19TVl9FU01fQkVHSU4gKyA1MCwKKyAgICBNU0dfSURfTkFTX1NWX01NX1NFVF9SQVRfTU9ERV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9NTV9TRVRfUkFUX01PREVfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTU1fU0lNX0lORk9fUkVTRVRfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfTU1fUExNTl9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTU1fUExNTl9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfTU1fUExNTl9TRUFSQ0hfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTU1fREVBQ1RJVkFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9NTV9ERUFDVElWQVRFX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX01NX05PX0FDVElPTl9JTkQsCisgICAgTVNHX0lEX05BU19TVl9NTV9ERVRBQ0hfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfTU1fQVRUQUNIX0NORiwKKworCisgICAgTVNHX0lEX05BU19TVl9NTV9OQVNfQ1RYVF9UUkFOU0ZFUl9SRVEsCisgICAgTVNHX0lEX05BU19TVl9NTV9OQVNfQ1RYVF9UUkFOU0ZFUl9DTkYsCisgICAgTVNHX0lEX05BU19TVl9NTV9BU19QQVJBTV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTU1fUExNTl9MSVNUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX01NX1BMTU5fTElTVF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9NTV9QTE1OX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9NTV9QTE1OX0xJU1RfU1RPUF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9NTV9DU0dfTElTVF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9NTV9DU0dfTElTVF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9NTV9DU0dfTElTVF9TVE9QX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX01NX0NTR19MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTU1fQlJPQURDQVNUX1JFR05fUkVTVUxUX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX01NX0JST0FEQ0FTVF9USU1FUl9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfTU1fUExNTl9MSVNUX0FCT1JUX1JFUSwKKyAgICAvKiBTVjw+U00gKi8KKworICAgIC8qIFNWPD5SQVRDTSAqLworICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fQkVHSU4gPSBNU0dfSURfTkFTX1NWX01NX0JFR0lOICsgMTAwLAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fU0VUX1JBVF9NT0RFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1JBVENNX1NFVF9SQVRfTU9ERV9DTkYsCisgICAgTVNHX0lEX05BU19TVl9SQVRDTV9SQVRfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1JBVENNX1JBVF9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fUkFUX0NIQU5HRV9SU1AsCisgICAgTVNHX0lEX05BU19TVl9SQVRDTV9SQVRfQ0hBTkdFX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX1JBVENNX1NZU19JTkZPX1VQREFURV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9SQVRDTV9QTE1OX0JBTkRfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fQ0VMTF9DSEFOR0VfRklOSVNIX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1JBVENNX0NBUF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fQ0FQX1VQREFURV9DTkYsCisgICAgTVNHX0lEX05BU19TVl9SQVRDTV9TTklGRkVSX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1JBVENNX1NOSUZGRVJfU1RPUF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9SQVRDTV9DSEVDS19BQ1RJVkVfUkFUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1JBVENNX0NIRUNLX0FDVElWRV9SQVRfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fU0VUX0FDVElWRV9SQVRfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fU0VUX0FDVElWRV9SQVRfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfUkFUQ01fU0lHTkFMX0FQUEVBUl9JTkQsCisgICAgTVNHX0lEX05BU19TVl9SQVRDTV9OUl9OT1JNQUxfU0VSVklDRV9MT1NTX1VQREFURV9SRVEsCisKKyAgICAvKiBTVjw+UEFNICovCisKKyAgICAvKiBTVjw+QzJLICovCisgICAgTVNHX0lEX05BU19TVl9DU1NfQkVHSU4gPSBNU0dfSURfTkFTX1NWX1JBVENNX0JFR0lOICsgMTAwLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX0RFQUNUSVZBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX0RFQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX1BTX1JFR19SRVEsCisgICAgTVNHX0lEX05BU19TVl9DU1NfUFNfUkVHX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX0NTU19DU19SRUdfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX0NTX1JFR19DTkYsCisgICAgTVNHX0lEX05BU19TVl9DU1NfTUNDX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9DU1NfTUNDX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9DU1NfUFNfREVSRUdfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX0NIRUNLX0FDVElWRV9SQVRfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX0NIRUNLX0FDVElWRV9SQVRfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfQ1NTX1NFVF9BQ1RJVkVfUkFUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX0NTU19TRVRfQUNUSVZFX1JBVF9DTkYsCisKKyAgICAvKiBTVjw+UkFURE0gKi8KKyAgICBNU0dfSURfTkFTX1NWX1JBVERNX0JFR0lOID0gTVNHX0lEX05BU19TVl9DU1NfQkVHSU4gKyAxMDAsCisgICAgTVNHX0lEX05BU19TVl9SQVRETV9SQVRfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1JBVERNX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9SQVRETV9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLAorCisgICAgLyogU1Y8Pk5SUkMgKi8KKyAgICBNU0dfSURfTkFTX1NWX05SUkNfQkVHSU4gPSBNU0dfSURfTkFTX1NWX1JBVERNX0JFR0lOICsgMTAwLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19JTklUX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU0VUX1JBVF9NT0RFX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUkZPRkZfQ05GLAorCisgICAgTVNHX0lEX05BU19TVl9OUlJDX0RFQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19QTE1OX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1BMTU5fTElTVF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1BMTU5fTElTVF9TVE9QX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU1lTX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUExNTl9MT1NTX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUkFUX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1JBVF9DSEFOR0VfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19DQVBfVVBEQVRFX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUE9XRVJfU0NBTl9JTkQsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1BPV0VSX1NDQU5fQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19DSEVDS19BQ1RJVkVfUkFUX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU0VUX0FDVElWRV9SQVRfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19TSUdOQUxfQVBQRUFSX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfQ1NHX0xJU1RfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19DU0dfTElTVF9TVE9QX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUExNTl9CQU5EX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU0xUX0VORENfU1VDQ0VTU19JTkQsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1NUQVJUX1BSRURJQ1RfU0VBUkNIX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfTlJSQ19TVEFURV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19DTkYsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19TVE9QX0NORiwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfT1VUX09GX1NFUlZJQ0VfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19QTE1OX1NDQU5fSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19DT05USU5VT1VTX0lSQVRfRkFJTFVSRV9JTkQsCisKKyAgICAvKiBTVjw+VkdNTSAqLworICAgIC8vIFNWLT5WR01NIG1lc3NhZ2UgaWRzIGFyZSBkZWZpbmVkIGluIHZnbW1fbXNnaWQuaAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9CRUdJTiA9IE1TR19JRF9OQVNfU1ZfTlJSQ19CRUdJTiArIDEwMCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fUExNTl9TRUFSQ0hfQUxMT1dFRF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9WR01NX1BMTU5fTE9TU19JTkQsICAgIAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9TRVRfUkFUX01PREVfQ05GLAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9OQVNfQ1RYVF9UUkFOU0ZFUl9DTkYsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0RFVEFDSF9JTkQsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0FUVEFDSF9DTkYsCisgICAgTVNHX0lEX05BU19TVl9WR01NX1NJTV9JTkZPX1JFU0VUX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fVDM1MDJfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fUkVHTl9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9QTE1OX1JFU1RSSUNUSU9OX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0VWRU5UX1VQREFURV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0VQTE1OX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fU09SX09QTE1OX0xJU1RfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fQlJPQURDQVNUX1JFR05fUkVTVUxUX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fQlJPQURDQVNUX1RJTUVSX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0NFTExfQkFORF9JTkZPX1VQREFURV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0VNRVJHRU5DWV9TVEFUVVNfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fUEVSTUFORU5UX0lOVkFMSURfQ0FVU0VfUkVDT1ZFUl9JTkQsICAgICAgICAKKworICAgIC8qIFNWPD5WR1NNICovCisgICAgTVNHX0lEX05BU19TVl9WR1NNX1BFUlNJU1RFTlRfUERVX1NFU1NJT05fSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfVkdTTV9NQVhfUERVX0VTVF9USU1FT1VUX1JFQUNIRURfSU5ELAorCisgICAgLyogU1Y8PlJTVkFTICovCisgICAgTVNHX0lEX1JTVkFTX05BU19TVl9CRUdJTiA9IE1TR19JRF9OQVNfU1ZfVkdNTV9CRUdJTiArIDEwMCwKKyAgICBNU0dfSURfUlNWQVNfTkFTX1NWX1NVU1BFTkRfSU5ELAorICAgIE1TR19JRF9SU1ZBU19OQVNfU1ZfUkVTVU1FX0lORCwKKyAgICBNU0dfSURfUlNWQVNfTkFTX1NWX1ZJUlRVQUxfUkVTVU1FX0lORCwKKyAgICBNU0dfSURfUlNWQVNfTkFTX1NWX0xJTUlURURfVklSVFVBTF9SRVNVTUVfSU5ELAorICAgIE1TR19JRF9SU1ZBU19OQVNfU1ZfTElNSVRFRF9WSVJUVUFMX1JFU1VNRV9SU1AsCisgICAgTVNHX0lEX1JTVkFTX05BU19TVl9WSVJUVUFMX1NVU1BFTkRfSU5ELAorCisgICAgLyogU1Y8PlNWICovCisgICAgTVNHX0lEX05BU19TVl9SRUdfU1RBVFVTX01FRVRJTkdfRU5EX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0dPVE9fTkVYVF9BQ1RJT05fSU5ELAorICAgIE1TR19JRF9OQVNfU1ZfQ0hFQ0tfQ0FQX1VQREFURV9JTkQsCisgICAgTVNHX0lEX05BU19TVl9DSEVDS19MT0NBTF9SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfTkFTX1NWX0NIRUNLX1RSSUNLX1JFTEVBU0VfSU5ELAorCisgICAgTVNHX0lEX05BU19TVl9DT0RFX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9OQVNfU1ZfQ09ERV9UQUlMICkKKyNlbmRpZgorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBOQVNfU1ZfTVNHX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbmwxX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ubDFfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzQzNTM5Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbmwxX21zZ2lkLmgKQEAgLTAsMCArMSw2MDIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIE1vZGlmaWNhdGlvbiBOb3RpY2U6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBtb2RpZmllZCBieSBNZWRpYVRlayBJbmMuIGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIERveHlnZW5lIGhlYWRlciAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCisgKgorICogQGZpbGUgICAgICAgbmwxX21zZ2lkLmgKKyAqIEBicmllZiAgICAgIE5MMSBwdWJpYyBoZWFkZXIgZmlsZS4KKyAqIEBkZXRhaWxzICAgIFRoZSBwdWJsaWMgaW50ZXJmYWNlcyBwcm92aWRlZCBieSBOTDEgTU9EVUxFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuCisgKiAgICAgICAgICAgICBEb24ndCBwdXQgYW55IG1vZHVsZSBpbnRlcm5hbCBpbmZvcm1hdGlvbiBoZXJlISAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbgorICogICAgICAgICAgICAgTm9uLU5MMSBtb2R1bGVzIGNhbiBvbmx5IGFjY2VzcyBOTDEgTU9EVUxFIHRocm91Z2ggdGhvc2UgaW50ZXJmYWNlcyBkZWNsYXJlZCBoZXJlLiAgXG4KKyAqICAgICAgICAgICAgIFBsZWFzZSBtYWtlIHN1cmUgdXNlcnMgY2FuIGJ1aWxkIHBhc3Mgdy9vIGluY2x1ZGluZyBvdGhlciBoZWFkZXIgZmlsZXMuICAgICAgICAgICAgIFxuCisgKiAgICAgICAgICAgICBUaGlzIGZpbGUgc2hhbGwgYmUgaW5jbHVkZWQgYnkgIm5sMV9wdWJsaWMuaCIuCisgKiBAYWRkdG9ncm91cCBOTDEKKyAqIEB7CisgKi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fTkwxX01TR0lEX0hfXworI2RlZmluZSBfX05MMV9NU0dJRF9IX18KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgI2luY2x1ZGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorLy8vLy8vLy8vLyBFbmQgI2luY2x1ZGUgLy8vLy8vLy8vLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAjZGVmaW5lCisqICAtIEFsbCBjaGFycyBhcmUgImNhcGl0YWwiLgorKiAgLSBVc2UgIk5MMV8iIG9yIG1vZHVsZSBuYW1lIChlLmcuLCAiUlhfIikgYXMgcHJlZml4LgorKiAgLSBFbmNsb3NlZCBieSAiKCApIiB0byBhdm9pZCBhbWJpZ3VpdHkuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX05MMV9NU0dfQ09ERV9CRUdJTiApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTlJSQyAtIE5MMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OUlJDX05MMV9NU0dfU1RBUlQgICAgICAgICAgICA9IE1TR19JRF9OTDFfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfTlJSQ19OTDFfQ09OTkVDVEVEX0NPTkZJR19SRVEsLyogTmVlZHMgZml4ZWQgbWVzc2FnZSBJRCB2YWx1ZSBmb3IgRUxUIGRlY29kaW5nIHRvIHdvcmssIHNvIHBsZWFzZSBrZWVwIGFzIGZpcnN0IE5MMSBtZXNzYWdlIElEICovCitNU0dfSURfTlJSQ19OTDFfU0VUX1JBVF9SRVEsCitNU0dfSURfTlJSQ19OTDFfUE9XRVJfU0NBTl9SRVEsCitNU0dfSURfTlJSQ19OTDFfQ09OVElOVU9VU19DQVJSSUVSX1NFQVJDSF9SRVEsCitNU0dfSURfTlJSQ19OTDFfQkNDSF9SRVEsCitNU0dfSURfTlJSQ19OTDFfQkFDS0dST1VORF9QT1dFUl9TQ0FOX1JFUSwKK01TR19JRF9OUlJDX05MMV9CQUNLR1JPVU5EX0NPTlRJTlVPVVNfQ0FSUklFUl9TRUFSQ0hfUkVRLAorTVNHX0lEX05SUkNfTkwxX0NFTExfREVURUNUX1dJVEhfQVVUT19HQVBfTkVFREVEX1JTUCwKK01TR19JRF9OUlJDX05MMV9CQUNLR1JPVU5EX0JDQ0hfUkVRLAorTVNHX0lEX05SUkNfTkwxX0lETEVfQ09ORklHX1JFUSwKK01TR19JRF9OUlJDX05MMV9DT05ORUNURURfQ09ORklHX1BBUlRJQUxfUkVRLAorTVNHX0lEX05SUkNfTkwxX0NPTk5FQ1RFRF9DT05GSUdfSU5ESVJFQ1RfREFUQV9SRVEsCitNU0dfSURfTlJSQ19OTDFfREVBQ1RJVkFURV9SRVEsCitNU0dfSURfTlJSQ19OTDFfUkFORE9NX0FDQ0VTU19SRVEsCitNU0dfSURfTlJSQ19OTDFfU0NHX0ZBSUxfTUVBU19SRVBPUlRfUkVRLAorTVNHX0lEX05SUkNfTkwxX1JFRElSRUNUX01FQVNfUkVRLAorTVNHX0lEX05SUkNfTkwxX1JFRVNUQUJMSVNIX01FQVNfUkVRLAorTVNHX0lEX05SUkNfTkwxX0NIQU5ORUxfUFJPQ1RFQ1RfU1RBUlRfUkVRLAorTVNHX0lEX05SUkNfTkwxX0NIQU5ORUxfUFJPQ1RFQ1RfU1RPUF9SRVEsCitNU0dfSURfTlJSQ19OTDFfQ0hBTk5FTF9QUk9URUNUX1NUQVJUX1JFUSwKK01TR19JRF9OUlJDX05MMV9DSEFOTkVMX1BST1RFQ1RfU1RPUF9SRVEsCitNU0dfSURfTlJSQ19OTDFfVklSVFVBTF9NT0RFX1JFUSwKK01TR19JRF9OUlJDX05MMV9MRUFWRV9WQ19TVUNDRVNTX0lORCwKK01TR19JRF9OUlJDX05MMV9TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfUkVRLAorTVNHX0lEX05SUkNfTkwxX0dFVF9TRVJWX01FQVNfUkVTVUxUX1JFUSwKK01TR19JRF9OUlJDX05MMV9BVVRPX0dBUF9PTl9SRVEsCitNU0dfSURfTlJSQ19OTDFfQVVUT19HQVBfT0ZGX1JFUSwKK01TR19JRF9OUlJDX05MMV9TUEVDSUZJQ19NRUFTX1JFU1VMVF9SRVEsCitNU0dfSURfTlJSQ19OTDFfQ0VMTF9JTkZPX1NUQVJUX1JFUSwKK01TR19JRF9OUlJDX05MMV9DRUxMX0lORk9fU1RPUF9SRVEsCitNU0dfSURfTlJSQ19OTDFfRU5IQU5DRU1FTlRfTlRGLAorTVNHX0lEX05SUkNfTkwxX1NZTkNfQ09OTkVDVElPTl9TVEFUVVNfUkVRLAorTVNHX0lEX05SUkNfTkwxX0hBTkRPVkVSX0VWRU5UX1JFUSwKK01TR19JRF9OUlJDX05MMV9FTkhBTkNFTUVOVF9RVUVSWV9SRVEsCitNU0dfSURfTlJSQ19OTDFfU0lCOV9GUkFNRV9TWU5DX1JFUSwKK01TR19JRF9OUlJDX05MMV9WT05SX1NUQVRVU19SRVEsCitNU0dfSURfTlJSQ19OTDFfUkVQT1JUX0NHSV9SRVEsCitNU0dfSURfTlJSQ19OTDFfRFNQX1NOSUZGRVJfUkVRLAorTVNHX0lEX05SUkNfTkwxX0dFTUlOSV9NT0RFX1VQREFURV9SRVEsCitNU0dfSURfTlJSQ19OTDFfQ0VMTF9QT1dFUl9USFJFU0hPTERfQ09ORklHX05URiwKK01TR19JRF9OUlJDX05MMV9DT05OX0JBUl9MSVNUX0NUUkxfUkVRLAorTVNHX0lEX05SUkNfTkwxX1BMTU5fU1RBVFVTX1VQREFURV9OVEYsCitNU0dfSURfTlJSQ19OTDFfU0FfU0lMRU5DRV9DVFJMX1JFUSwKK01TR19JRF9OUlJDX05MMV9HRU1JTklfU0hBUkVfUkVRLAorTVNHX0lEX05SUkNfTkwxX01PQl9OVlJBTV9QQVJBX1VQREFURV9SRVEsCitNU0dfSURfTkwxX05SUkNfRFZGU19DT05UUk9MX01TRywKK01TR19JRF9OUlJDX05MMV9IU1RfRU5IQU5DRV9DT05GSUdfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5NQUMgLSBOTDEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfTk1BQ19OTDFfU1JfUkVRLAorTVNHX0lEX05NQUNfTkwxX01BQ19SRVNFVF9SRVEsCitNU0dfSURfTk1BQ19OTDFfRExfSEFSUV9SRVNFVF9SRVEsCitNU0dfSURfTk1BQ19OTDFfSE9TVF9EQVRBX1JFUSwKK01TR19JRF9OTUFDX05MMV9USEVSTUFMX0NUUkxfTlRGLAorTVNHX0lEX05NQUNfTkwxX01BQ19TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfUkVRLAorTVNHX0lEX05NQUNfTkwxX0JVQ0tFVF9FWElTVF9EQVRBX1JTUCwKK01TR19JRF9OTUFDX05MMV9CVUNLRVRfU1RBVFVTX1VQREFURV9SU1AsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRVJSQyAtIE5MMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9FUlJDX05MMV9SQURJT19NRUFTX1JFUSwKK01TR19JRF9FUlJDX05MMV9TRlREX1JFUSwKK01TR19JRF9FUlJDX05MMV9TRlREX1JTUCwKK01TR19JRF9FUlJDX05MMV9IUFNfUVVBTElGWV9DRUxMX05URiwKK01TR19JRF9FUlJDX05MMV9IU1JfQ0VMTF9GT1VORF9SRVEsCitNU0dfSURfTkwxX0VSUkNfTFRFX01FQVNVUkVNRU5UX0NORiwKK01TR19JRF9OTDFfRVJSQ19MVEVfTUVBU1VSRU1FTlRfSU5ELAorTVNHX0lEX0VSUkNfTkwxX0xURV9JTkZPX05URiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBFTDEgLSBOTDEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfRUwxX05MMV9FTkRDX0dBUF9DVFJMX0NORiwKK01TR19JRF9FTDFfTkwxX01NTDFfRU5EQ19QUkVfREJfUkVBRFlfSU5ELAorTVNHX0lEX0VMMV9OTDFfU0ZURF9USU1JTkdfQ05GLAorTVNHX0lEX0VMMV9OTDFfRk9SQ0VfR0FQX1JTUCwKK01TR19JRF9FTDFfTkwxX1NQRUNJRklDX0RMX0NITkdfTlRGLAorTVNHX0lEX0VMMV9OTDFfU1BFQ0lGSUNfRExfQ0hOR19BQk9SVF9OVEYsCitNU0dfSURfRUwxX05MMV9VRENfQ09ORklHX1VQREFURV9OVEYsCitNU0dfSURfRUwxX05MMV9VTkxPQ0tfTFRFX1JGREJfTlRGLAorTVNHX0lEX0VMMV9OTDFfVU5MT0NLX1NNX05URiwgLy90byBiZSByZW1vdmVkCitNU0dfSURfRUwxX05MMV9TQV9SRkRCX0NSRUFURV9OVEYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgRUwxTVBDIC0gTkwxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0VMMU1QQ19OTDFfTFRFX1BPU19OVEYsICAgLypfX0VMMV9MUFBfSU5URVJfUkFUX1JTVERfU1VQUE9SVF9fKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5MMUNTTSAtIE5MMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OTDFDU01fTkwxX0NTUl9DVFJMX05URiwKK01TR19JRF9OTDFDU01fTkwxX0NTUl9SRUxFQVNFX0RPTkVfTlRGLAorTVNHX0lEX05MMUNTTV9OTDFfUlJNX0hBTkRMSU5HX1NUQVJUX05URiwKK01TR19JRF9OTDFDU01fTkwxX1JSTV9NRUFTVVJFX0RPTkVfTlRGLAorTVNHX0lEX05MMUNTTV9OTDFfU0ZURF9USU1JTkdfQ0FMX05URiwKK01TR19JRF9OTDFDU01fTkwxX1NQRUNJRklDX0NFTExfU0VBUkNIX05URiwKK01TR19JRF9OTDFDU01fTkwxX1JFRElSRUNUX0RPTkVfTlRGLAorTVNHX0lEX05MMUNTTV9OTDFfUkVFU1RBQkxJU0hfRE9ORV9OVEYsCitNU0dfSURfTkwxQ1NNX05MMV9TUEVDSUZJQ19NRUFTX1JFU1VMVF9DTkYsCitNU0dfSURfTkwxQ1NNX05MMV9DU1JfQVVUT19HQVBfRU5EX05URiwKK01TR19JRF9OTDFDU01fTkwxX0JBQ0tHUk9VTkRfQ0VMTF9ERVRFQ1RfTlRGLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1QgTU9ERSAtIE5MMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OTDFfTkwxX05PUk1BTF9NT0RFX1JFTEVBU0VfUkVRLCAvLyB0ZW1wIHVzZS4gRmluYWxseSBzb2x1dGlvbjogTDQgcnVuIFJTVkFTIFNVU1BFTkQgZmxvdy4KK01TR19JRF9OTDFfTkwxX05PUk1BTF9NT0RFX1JFTEVBU0VfQ05GLCAvLyB0ZW1wIHVzZS4gRmluYWxseSBzb2x1dGlvbjogTDQgcnVuIFJTVkFTIFNVU1BFTkQgZmxvdy4KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBMSVNSIC0gTkwxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX05MMVNDSEVEX05MMV9UR19NQVBQSU5HX0NORiwKK01TR19JRF9OTDFTQ0hFRF9OTDFfVEdfQUNUX0NORiwKK01TR19JRF9OTDFTQ0hFRF9OTDFfVEdfREVBQ1RfQ05GLAorTVNHX0lEX05MMVNDSEVEX05MMV9DVFJMX0NORiwKK01TR19JRF9OTDFTQ0hFRF9OTDFfQk1fQ05GLAorTVNHX0lEX05MMVNDSEVEX05MMV9CTV9JTkRfQ05GLAorTVNHX0lEX05MMVNDSEVEX05MMV9ETF9DSE5HX0NORiwKK01TR19JRF9OTDFTQ0hFRF9OTDFfRkFTVF9ETF9DSE5HX0NORiwKK01TR19JRF9OTDFTQ0hFRF9OTDFfUlJDX0NPTkZJR19DTkYsCitNU0dfSURfTkwxU0NIRURfTkwxX1NFVF9SQVRfQ05GLAorTVNHX0lEX05MMVNDSEVEX05MMV9NSUJfUlBULAorTVNHX0lEX05MMVNDSEVEX05MMV9BQk9SVF9SUFQsCitNU0dfSURfTkwxU0NIRURfTkwxX1BEU0NIX1JQVCwKK01TR19JRF9OTDFTQ0hFRF9OTDFfUEFHSU5HX1NIT1JUX01FU1NBR0VfSU5ELAorTVNHX0lEX05MMVNDSEVEX05MMV9GSVJTVF9QQUdJTkdfT0NDQVNJT05fSU5ELAorTVNHX0lEX05MMVNDSEVEX05MMV9JUkFUX0RMX0NITkdfRE9ORV9JTkQsCitNU0dfSURfTkwxU0NIRURfTkwxX1ZJUlRVQUxfTU9ERV9DTkYsCitNU0dfSURfU1RMSVNSX05MMV9SWF9NRUFTX1JQVCwKK01TR19JRF9TVExJU1JfTkwxX0NUUkxfQk1fQ1NJX0JFQU1fUlNSUF9SUFQsCitNU0dfSURfU1RMSVNSX05MMUNUUkxfRENJX1RDSV9TVEFURV9JTkQsCitNU0dfSURfTkwxU0NIRURfTkwxX0JXUF9DSE5HX0lORCwKK01TR19JRF9OTUFDX1NUTElTUl9OTDFfVENJX1NUQVRFX0lORCwKK01TR19JRF9OTDFMSVNSX05MMV9CVUZGRVJfT1JHQU5JWkVfSU5ELAorTVNHX0lEX1NUTElTUl9OTDFfQldQX0FCT1JUX0NORiwKK01TR19JRF9TVExJU1JfTkwxQ1RSTF9TQ0hFRF9USUNLX05URiwKK01TR19JRF9TVExJU1JfTkwxQ1RSTF9TTEVFUF9OVEYsCitNU0dfSURfU1RMSVNSX05MMUNUUkxfV0FLRV9VUF9OVEYsCitNU0dfSURfU1RMSVNSX05MMUNUUkxfRFJYX1NXSVRDSF9OVEYsCitNU0dfSURfU1RMSVNSX05MMUNUUkxfTElGX0NITkdfSU5ELAorTVNHX0lEX1NUTElTUl9OTDFDVFJMX1NDRUxMX1NUQVRVU19OVEYsCitNU0dfSURfU1RMSVNSX05MMV9NRUFTX0dBUF9QQVRURVJOX0RPTkVfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFfTUVUQV9QUk9DX0RPTkVfSU5ELCAgIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX1NUTElTUl9OTDFfTUVUQV9UQVNLX1dBS0VfSU5ELCAgIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX1NUTElTUl9OTDFfTUVUQV9DUk5USV9QRFNDSF9SUFQsIC8vZm9yIFRTVE0gdXNlCitNU0dfSURfU1RMSVNSX05MMV9NRVRBX1JTUlBfUlNTSV9SUFQsICAgLy9mb3IgVFNUTSB1c2UKK01TR19JRF9TVExJU1JfTkwxX01FVEFfU0NIX09GRl9JTkQsCitNU0dfSURfU1RMSVNSX05MMV9NRVRBX1NDRUxMX1BST0NfSU5ELCAgIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX05MMV9OTDFfRU1fSU5JVF9JTkQsCitNU0dfSURfTkwxX05MMV9FTV9ERUlOSVRfSU5ELAorTVNHX0lEX05MMV9OTDFfRU1fVU5TWU5DX05SVF9VUERUX0lORCwKK01TR19JRF9TVExJU1JfTkwxX0VNX1JTU0lfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFfVFNUTV9SU1NJX05URiwKK01TR19JRF9OTDFSWEdOU1NfTkwxX1NZTkNfQ05GLAorTVNHX0lEX05MMVNDSEVEX05MMV9SWF9DQVBUVVJFX1NUQVJULAorTVNHX0lEX05MMVNDSEVEX05MMV9SWF9DQVBUVVJFX1NUT1AsCitNU0dfSURfU1RMSVNSX05MMV9CV1BfTUFDX1JFU0VUX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBOTDFUWCAtIE5MMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OTDFUWF9OTDFfU1JfQ05GLAorTVNHX0lEX05MMVRYX05MMV9TUl9WQ19SRVEsCitNU0dfSURfTkwxVFhfTkwxX1NSX0lOVkFMSURfR1JBTlRfSU5ELAorTVNHX0lEX05MMVRYX05MMV9SQV9DTkYsCitNU0dfSURfTkwxVFhfTkwxX1JBX0JFQU1fTlRGLAorTVNHX0lEX05MMVRYX05MMV9SQV9PRF9SRVEsCitNU0dfSURfTkwxVFhfTkwxX1RYX1NUT1BfQ05GLAorTVNHX0lEX05MMVRYX05MMV9UWF9TVE9QX0JZX1ZDX0NORiwKK01TR19JRF9OTDFUWF9OTDFfVUxfU1lOQ19JTkQsCitNU0dfSURfTkwxVFhfTkwxX0ZPUkNFX0RSWF9PTl9SRVEsCitNU0dfSURfTkwxVFhfTkwxX0JGRF9USU1FT1VUX05URiwKK01TR19JRF9OTDFUWF9OTDFfQkZSX1JFUSwKK01TR19JRF9OTDFUWF9OTDFfQkZSX0NGR19DSE5HX05URiwKK01TR19JRF9OTDFfTkwxX0NUUkxfQk1fQkZEX1RJTUVPVVQsCitNU0dfSURfTkwxX05MMV9DVFJMX0JNX0JGUl9OVEYsCitNU0dfSURfTkwxVFhfTkwxX0FVVE9fR0FQX1NFVF9DTkYsCitNU0dfSURfTkwxVFhfU0NIRURfUlhfUkZfU0VMRUNUX05URiwKK01TR19JRF9OTDFUWF9OTDFUQVNfQ01EX0lORCwKK01TR19JRF9OTDFUWF9OTDFUQVNfUlJDX0lORCwKK01TR19JRF9OTDFUWF9OTDFUQVNfVElDS19JTkQsCitNU0dfSURfTkwxVFhfTkwxVEFTX1NDRUxMX0lORCwKK01TR19JRF9OTDFUWF9OTDFHTlNTX1RBX1VQREFURV9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTElTUiAtIE5MMUNTTQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9TVExJU1JfTkwxQ1NNX1BTX1JFU1VMVF9OVEYsCitNU0dfSURfU1RMSVNSX05MMUNTTV9FTV9SU1NJX05URiwKK01TR19JRF9TVExJU1JfTkwxQ1NNX0NTX1JFU1VMVF9OVEYsCitNU0dfSURfU1RMSVNSX05MMUNTTV9DTV9SRVNVTFRfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFDU01fQ01fUEJDX1JFU1VMVF9OVEYsCitNU0dfSURfU1RMSVNSX05MMUNTTV9NUENfUEJDSF9SRVNVTFRfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFDU01fU0NIRURfVElDS19OVEYsCitNU0dfSURfU1RMSVNSX05MMUNTTV9SUk1fTVNHX1NUQVJUICAgICAgICAgICAgICAgICAgICA9IE1TR19JRF9TVExJU1JfTkwxQ1NNX1NDSEVEX1RJQ0tfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFDU01fQ01EX0NPTkZMSUNUX0lORCwKK01TR19JRF9TVExJU1JfTkwxQ1NNX1NTQl9TTVRDX0FCT1JUX0lORCwKK01TR19JRF9TVExJU1JfTkwxQ1NNX0NNRF9QRVJfQ0NfQ09ORkxJQ1RfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFDU01fU0NFTExfREVURUNUSU9OX05URiwKK01TR19JRF9TVExJU1JfTkwxQ1NNX1NDRUxMX1NUQVRVU19OVEYsCitNU0dfSURfU1RMSVNSX05MMUNTTV9DU1JfQUJPUlRfTlRGLAorTVNHX0lEX1NUTElTUl9OTDFDU01fUEJDSF9SRl9DTE9TRV9OVEYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTlJSQyAtIE5MMUNTTQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OTDFNUENfTVBDX01TR19TVEFSVCwKK01TR19JRF9OTDFfQ1NNX0NUUkxfQ09NTUFORF9ERVFFVUVfUkVRLAorTVNHX0lEX05MMV9DU01fQ1RSTF9DT01NQU5EX0RFUUVVRV9DTkYsCitNU0dfSURfTkwxX0NUUkxfQ1NNX0NPTU1BTkRfUFJFUEFSRV9SRVEsCitNU0dfSURfTkwxX0NUUkxfQ1NNX0NPTU1BTkRfUFJFUEFSRV9DTkYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTkwxIC0gTkwxQ1NNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX05MMV9OTDFDU01fQ1NSX1NUQVJUX0NORiwKK01TR19JRF9OTDFfTkwxQ1NNX0NTUl9TVE9QX0NORiwKK01TR19JRF9OTDFfTkwxQ1NNX0NTUl9TVE9QX0NIS19SRVEsCitNU0dfSURfTkwxX05MMUNTTV9DU1JfU1RPUF9DSEtfQ05GLAorTVNHX0lEX05MMV9OTDFDU01fQ1NSX0NPTkZJR19VUERBVEVfTlRGLAorTVNHX0lEX05MMV9OTDFDU01fUlJNX0NPTkZJR19OVEYsCitNU0dfSURfTkwxX05MMUNTTV9SUk1fTVNHX1NUQVJUICAgICAgICAgICAgICAgICAgICA9IE1TR19JRF9OTDFfTkwxQ1NNX1JSTV9DT05GSUdfTlRGLAorTVNHX0lEX05MMV9OTDFDU01fUlhfUEJDSF9SRVNVTFRfTlRGLAorTVNHX0lEX05MMV9OTDFDU01fUlJNX0dBUF9OT1RJRllfTlRGLAorTVNHX0lEX05MMV9OTDFDU01fUlJNX0VORENfR0FQX0NPTkZJR19OVEYsCitNU0dfSURfTkwxX05MMUNTTV9SUk1fSVJBVF9NT0RFX1NUQVRVU19OVEYsCitNU0dfSURfTkwxX05MMUNTTV9TQ0VMTF9TVEFUVVNfTlRGLAorTVNHX0lEX05MMV9OTDFDU01fUlNWQVNfU1VTUEVORF9JTkQsCitNU0dfSURfTkwxX05MMUNTTV9SU1ZBU19SRVNVTUVfSU5ELAorTVNHX0lEX05MMV9OTDFDU01fU1BFQ0lGSUNfTUVBU19SRVNVTFRfUkVRLAorTVNHX0lEX05MMV9OTDFDU01fREVBQ1RJVkFURV9OVEYsCitNU0dfSURfTkwxX05MMUNTTV9SUk1fRENJX0JBRF9RVUFMSVRZX05URiwKK01TR19JRF9OTDFfTkwxQ1NNX0dFTUlOSV9TSEFSRV9OVEYsCitNU0dfSURfTkwxX05MMUNTTV9TRVRfUkFUX1JFUV9OVEYsCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBOTDFNT0IgLSBOTDFDU00KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfTkwxTU9CX05MMUNTTV9TU0JfUlJNX1BPTElDWV9OVEYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTkwxTU9CIC0gTkwxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX05MMU1PQl9OTDFfSURMRV9SUk1fTUVBU19DTkYsCitNU0dfSURfTkwxTU9CX05MMV9DT05ORUNUX1JSTV9NRUFTX0NORiwKK01TR19JRF9OTDFNT0JfTkwxX0RFQUNUSVZBVEVfQ05GLAorTVNHX0lEX05MMU1PQl9OTDFfTUVBU19FVkVOVF9OQlJfQTNBNV9OVEYsCitNU0dfSURfTkwxTU9CX05MMV9HRU1JTklfR0FQX1NUQVRVU19DSEdfQ05GLAorTVNHX0lEX05MMU1PQl9OTDFfU1lOQ19DT05ORUNUSU9OX1NUQVRVU19DTkYsCitNU0dfSURfTkwxTU9CX05MMV9DRUxMX0lORk9fSU5ELAorTVNHX0lEX05MMU1PQl9OTDFfVk9OUl9TVEFUVVNfQ05GLAorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTkwxIC0gTkwxTU9CCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX05MMV9OTDFNT0JfSURMRV9SUk1fTUVBU19SRVEsCitNU0dfSURfTkwxX05MMU1PQl9DT05ORUNUX1JSTV9NRUFTX1JFUSwKK01TR19JRF9OTDFfTkwxTU9CX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX05MMV9OTDFNT0JfRU5URVJfU0VBUkNISU5HX1NUQVRFX05URiwKK01TR19JRF9OTDFfTkwxTU9CX1JTVkFTX1NVU1BFTkRfTlRGLAorTVNHX0lEX05MMV9OTDFNT0JfVklSVFVBTF9NT0RFX05URiwKK01TR19JRF9OTDFfTkwxTU9CX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9OVEYsCitNU0dfSURfTkwxX05MMU1PQl9HRU1JTklfR0FQX1NUQVRVU19DSEdfUkVRLAorTVNHX0lEX05MMV9OTDFNT0JfU1lOQ19DT05ORUNUSU9OX1NUQVRVU19SRVEsCitNU0dfSURfTkwxX05MMU1PQl9DRUxMX0lORk9fU1RBUlRfUkVRLAorTVNHX0lEX05MMV9OTDFNT0JfQ0VMTF9JTkZPX1NUT1BfUkVRLAorTVNHX0lEX05MMV9OTDFNT0JfVk9OUl9TVEFUVVNfUkVRLAorTVNHX0lEX05MMV9OTDFNT0JfTFRFX0hTVF9JTkZPX05URiwKK01TR19JRF9OTDFfTkwxTU9CX1NBX1NJTEVOQ0VfQ1RSTF9OVEYsCitNU0dfSURfTkwxX05MMU1PQl9IQU5ET1ZFUl9FVkVOVF9OVEYsCitNU0dfSURfTkwxX05MMU1PQl9HRU1JTklfU0hBUkVfTlRGLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5MMUNTTSAtIE5MMU1PQgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OTDFDU01fTkwxTU9CX1NTQl9JTlRSQV9NRUFTX1JFU1VMVF9OVEYsCitNU0dfSURfTkwxQ1NNX05MMU1PQl9TU0JfSU5URVJfTUVBU19SRVNVTFRfTlRGLAorTVNHX0lEX05MMUNTTV9OTDFNT0JfU0JJX1VQREFURV9OVEYsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBUTUMgPC0+IE5MMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9UTUNfTkwxX1NFU1NJT05fQkVHSU5fTlRGLAorTVNHX0lEX1RNQ19OTDFfU0VTU0lPTl9FTkRfTlRGLAorCisKKy8vVEVNUCBmb3IgYnVpbGQgcGFzcworLy8gVE9ETzogbW92ZSB0byBkZXN0aW5hdGlvbiBtb2R1bGUgZmlsZS4KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgTkwxIC0gb3RoZXJzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX05SUkNfTkwxX0JDQ0hfQ05GLAorTVNHX0lEX05SUkNfTkwxX0JDQ0hfSU5ELAorTVNHX0lEX05SUkNfTkwxX0JBQ0tHUk9VTkRfQkNDSF9JTkQsCitNU0dfSURfTlJSQ19OTDFfQkFDS0dST1VORF9CQ0NIX0NORiwKKworTVNHX0lEX05SUkNfTkwxX0NPTlRJTlVPVVNfQ0FSUklFUl9TRUFSQ0hfSU5ELAorTVNHX0lEX05SUkNfTkwxX0NPTlRJTlVPVVNfQ0FSUklFUl9TRUFSQ0hfQ05GLAorTVNHX0lEX05SUkNfTkwxX0JBQ0tHUk9VTkRfQ09OVElOVU9VU19DQVJSSUVSX1NFQVJDSF9JTkQsCitNU0dfSURfTlJSQ19OTDFfQkFDS0dST1VORF9DT05USU5VT1VTX0NBUlJJRVJfU0VBUkNIX0NORiwKK01TR19JRF9OUlJDX05MMV9QT1dFUl9TQ0FOX0lORCwKK01TR19JRF9OUlJDX05MMV9QT1dFUl9TQ0FOX0NORiwKK01TR19JRF9OUlJDX05MMV9CQUNLR1JPVU5EX1BPV0VSX1NDQU5fSU5ELAorTVNHX0lEX05SUkNfTkwxX0JBQ0tHUk9VTkRfUE9XRVJfU0NBTl9DTkYsCitNU0dfSURfTlJSQ19OTDFfVklSVFVBTF9NT0RFX0NORiwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogTkwxIDwtPiBNTQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9NTV9OTDFfSFRQX01PREVfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5MMSAtIG90aGVycworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9OTDFfTkwxX1NDSEVEX01BQ19SRVNFVF9SRVEsCitNU0dfSURfTkwxX05MMV9TQ0hFRF9DVFJMX1JFUSwKK01TR19JRF9OTDFfTkwxX1NDSEVEX0NUUkxfQk1fUkVRLAorTVNHX0lEX05MMV9OTDFfU0NIRURfQ1RSTF9CTV9CRUFNX0lORF9SRVEsCitNU0dfSURfTkwxX05MMV9TQ0hFRF9DVFJMX0lORCwKK01TR19JRF9OTDFfTkwxX0ZBU1RfRExfQ0hOR19SRVEsCitNU0dfSURfTkwxX05MMV9ETF9DSE5HX1JFUSwKK01TR19JRF9OTDFfTkwxX1JSQ19DT05GSUdfUkVRLAorTVNHX0lEX05MMV9OTDFfU0VUX1JBVF9SRVEsCitNU0dfSURfTkwxX05MMV9TRVRfUk5USV9WQUxVRSwKK01TR19JRF9OTDFfTkwxX1NFVF9TTE1fU1NCX1BBUkFNLAorTVNHX0lEX05MMV9OTDFfQ1JOVElfT0ZGX05URiwKK01TR19JRF9OTDFfTkwxX0NSTlRJX09OX05URiwKK01TR19JRF9OTDFfTkwxX1NDSEVEX1JMTV9JTkQsCitNU0dfSURfTkwxX05MMV9UU1RfTUVUQV9JTkQsCitNU0dfSURfTkwxX05MMV9NRVRBX1NDRUxMX1VOU1lOQ19OUlRfVVBEVF9JTkQsIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX05MMV9OTDFfTUVUQV9TQ0VMTF9TWU5DX0RMQ0hOR19JTkQsIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX05MMV9OTDFfTUVUQV9TQ0VMTF9TWU5DX05SVF9VUERUX0lORCwgLy8gZm9yIFRTVE0gdXNlCitNU0dfSURfTkwxX05MMV9NRVRBX1NDRUxMX0NTUl9JTkQsIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX05MMV9OTDFfTUVUQV9VTlNZTkNfTlJUX1VQRFRfSU5ELCAvLyBmb3IgVFNUTSB1c2UKK01TR19JRF9OTDFfTkwxX01FVEFfU1lOQ19ETENITkdfSU5ELCAvLyBmb3IgVFNUTSB1c2UKK01TR19JRF9OTDFfTkwxX01FVEFfU1lOQ19OUlRfVVBEVF9JTkQsIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX05MMV9OTDFfTUVUQV9GT1JDRV9OUlRfVVBEVF9JTkQsIC8vIGZvciBUU1RNIHVzZQorTVNHX0lEX05MMV9OTDFfTUVUQV9TQ0hfT0ZGX0lORCwgLy8gZm9yIFRTVE0gdXNlCitNU0dfSURfTkwxX05MMV9NRVRBX1BDRUxMX1JFTEVBU0VfSU5ELCAvLyBmb3IgVFNUTSB1c2UKK01TR19JRF9OTDFfTkwxX01FVEFfTlJPTUFMX0lOSVRfSU5ELCAvLyBmb3IgVFNUTSB1c2UKK01TR19JRF9OTDFfTkwxX0VNX0xURV9FTkRDX1JGX1NDQU5fU1RBUlRfUkVRLAorTVNHX0lEX05MMV9OTDFfRU1fTFRFX0VORENfUkZfU0NBTl9TVEFSVF9DTkYsCitNU0dfSURfTkwxX05MMV9FTV9TSU0xX0xURV9FTkRDX1JGX1NDQU5fU1RBUlRfUkVRLAorTVNHX0lEX05MMV9OTDFfRU1fU0lNMV9MVEVfRU5EQ19SRl9TQ0FOX1NUQVJUX0NORiwKK01TR19JRF9OTDFfTkwxX0VNX1NJTTJfTFRFX0VORENfUkZfU0NBTl9TVEFSVF9SRVEsCitNU0dfSURfTkwxX05MMV9FTV9TSU0yX0xURV9FTkRDX1JGX1NDQU5fU1RBUlRfQ05GLAorTVNHX0lEX05MMV9OTDFfRU1fTFRFX0VORENfUkZfU0NBTl9TVE9QX1JFUSwKK01TR19JRF9OTDFfTkwxX0VNX0xURV9FTkRDX1JGX1NDQU5fU1RPUF9DTkYsCitNU0dfSURfTkwxX05MMV9FTV9MVEVfRU5EQ19SRl9TQ0FOX1RSSUdHRVJfU1RBUlRfUkVRLAorTVNHX0lEX05MMV9OTDFfRU1fTFRFX0VORENfUkZfU0NBTl9UUklHR0VSX1NUQVJUX0NORiwKK01TR19JRF9OTDFfTkwxX0VNX0xURV9FTkRDX1JGX1NDQU5fVFJJR0dFUl9TVE9QX1JFUSwKK01TR19JRF9OTDFfTkwxX0VNX0xURV9FTkRDX1JGX1NDQU5fVFJJR0dFUl9TVE9QX0NORiwKK01TR19JRF9OTDFfTkwxX0VNX1NJTTFfTFRFX0VORENfUkZfU0NBTl9UUklHR0VSX1NUQVJUX1JFUSwKK01TR19JRF9OTDFfTkwxX0VNX1NJTTFfTFRFX0VORENfUkZfU0NBTl9UUklHR0VSX1NUQVJUX0NORiwKK01TR19JRF9OTDFfTkwxX0VNX1NJTTJfTFRFX0VORENfUkZfU0NBTl9UUklHR0VSX1NUQVJUX1JFUSwKK01TR19JRF9OTDFfTkwxX0VNX1NJTTJfTFRFX0VORENfUkZfU0NBTl9UUklHR0VSX1NUQVJUX0NORiwKK01TR19JRF9OTDFfTkwxX0VNX0VORENfVU5TWU5DX05SVF9VUERBVEUsCitNU0dfSURfTkwxX05MMV9NRVRBX1JFU0VUX1RTVE1fSU5ELCAvLyBmb3IgVFNUTSB1c2UKK01TR19JRF9OTDFfTkwxX0lSVF9HQVBfTk9USUZZX0lORCwKK01TR19JRF9OTDFfTkwxX0NTTV9NT0RFX0lORCwKK01TR19JRF9OTDFfTkwxX1BIWVRFU1RfSU5ELAorTVNHX0lEX05MMV9OTDFfQ1RSTF9SWF9NRUFTX1JTTFRfSU5ELAorTVNHX0lEX05MMV9OTDFfQ1RSTF9CTV9CRklfTlRGLCAvLyBmb3IgTkwxIGludGVybmFsIHVzZQorTVNHX0lEX05MMV9OTDFfQ1RSTF9CTV9CRlJfTU9OSVRPUl9TVEFSVF9OVEYsIC8vIGZvciBOTDEgaW50ZXJuYWwgdXNlCitNU0dfSURfTkwxX05MMV9SQU5ET01fQUNDRVNTX0FCT1JUX1JFUSwKK01TR19JRF9OTDFfTkwxX1NDSEVEX1ZJUlRVQUxfTU9ERV9SRVEsCitNU0dfSURfTkwxX05MMV9SRkRCX0xPQ0tfQVZBSUxBQkxFX0lORCwKK01TR19JRF9OTDFfTkwxX0NUUkxfUkxNX0ZPUkNFX01PREVfTlRGLAorTVNHX0lEX05MMV9OTDFfVVRBU19EQVRfSU5BQ1RJVkVfUkVRLAorTVNHX0lEX05MMV9OTDFfUEVFUl9TSU1fUEFHSU5HX1NIQVJJTkdfTlRGLAorTVNHX0lEX05MMV9OTDFfUEVFUl9TSU1fQ0FNUElOR19MT1NUX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBOSSBUZXN0U3RhbmQgVG9vbCA8LT4gTkwxLU1BSU4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX01MMVNfTkwxX01MMVNfVEVTVF9NT0RFX1JFUSwKK01TR19JRF9NTDFTX05MMV9NU0dfU1RBUlQgICAgICAgICAgICAgICAgICAgICA9IE1TR19JRF9NTDFTX05MMV9NTDFTX1RFU1RfTU9ERV9SRVEsCitNU0dfSURfTUwxU19OTDFfTUwxU19URVNUX01PREVfQ05GLAorTVNHX0lEX01MMVNfTkwxX1NJTVVMQVRFX1JBX1BST0NFRFVSRV9SRVEsCitNU0dfSURfTUwxU19OTDFfVEJTX01JU01BVENIX0ZPUkNFX05FV1RYX1JFUSwKK01TR19JRF9NTDFTX05MMV9GSVhFRF9TRk5fTlRGLAorTVNHX0lEX01MMVNfTkwxX0NTSUZfTl9MMV9PTkxZX01PREVfVUxfR1JBTlRfQ01ELAorTVNHX0lEX01MMVNfTkwxX01TR19FTkQsCitNU0dfSURfTUwxU19OTDFfUEhZVEVTVF9DRkdfUkVRLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5MMSA8LT4gRlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfTkwxX1RPX0ZULAorTVNHX0lEX05MMVRBU0tfV0FLRVVQLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5MMSA8LT4gTkwxSUNECisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX05MMV9OTDFJQ0RfUlJDX1JQVCwKK01TR19JRF9OTDFfTkwxSUNEX1JSQ19TQ0VMTF9SUFQsCitNU0dfSURfTkwxX05MMUlDRF9QV1JfQ1RSTF9SUFQsCitNU0dfSURfTkwxX05MMUlDRF9QV1JfSEVBRFJPT01fUlBULAorTVNHX0lEX05MMV9OTDFJQ0RfQUdDX1JTU0lfUlBULAorTVNHX0lEX05MMV9OTDFJQ0RfRE1SU19TTlJfUlBULAorTVNHX0lEX05MMV9OTDFJQ0RfVVRBU19DT01NT05fUlBULAorTVNHX0lEX05MMV9OTDFJQ0RfVVRBU19DQ19SUFQsCitNU0dfSURfTkwxX05MMUlDRF9CV1BfQ0hHX1JQVCwKK01TR19JRF9OTDFfTkwxSUNEX0JXUF9DSEdfU0NFTExfUlBULAorTVNHX0lEX05MMV9OTDFJQ0RfU0lNX0NIR19SUFQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBOTDEgPC0+IERDTEMoRHluYW1pYyBDYWNoZSBMb2NrIENvbnRyb2wpCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZiBkZWZpbmVkKF9fRFlOQU1JQ19DQUNIRV9MT0NLX0NFTlRSQUxfQ09OVFJPTF9TVVBQT1JUX18pCitNU0dfSURfTkwxX0RDTENfTE9DS19VTkxPQ0tfSU5ELAorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBPVEhFUiA8LT4gTkwxSUNECisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX0NTSUZfTkwxSUNEX0VNSV9SRUFEX1JFUSwKK01TR19JRF9TVExJU1JfTkwxSUNEX1RJQ0tfSU5ELAorTVNHX0lEX0w0Q19OTDFJQ0RfUkZQRF9TRVRfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5MMSA8LT4gTU9ERU0gSURDCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmIGRlZmluZWQoX19JRENfRU5BQkxFRF9fKQorTVNHX0lEX0lEQ19OTDFUWF9NQVhfUFdSX0lORCwKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIE5STEMgLSBOTDEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfTlJMQ1VMX05MMV9MQ1BSX1BBUkFNX1JTUCwKK01TR19JRF9OUkxDVUxfTkwxX0dBTUlOR19DRUxMX0lORk9fTlRGLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAgICAgICAgICAgICAgICAgR05TU19UQyAtPiBOTDEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfR05TU19UQ19OTDFfU1lOQ19SRVEsCitNU0dfSURfR05TU19UQ19OTDFfVElNRV9JTkZPX1JTUCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgICAgICAgICAgICAgICAgIFNBU0UgLT4gTkwxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX1NBU0VfTkwxX0xURV9QT1NfU1RBUlRfUkVRLCAvLyBzdG9wIFNDSCB0byBtYWtlIEJSUCBub3QgYWNjZXNzIEhBUlEgYnVmZmVyIGFueW1vcmUKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogeEwxU0lNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmZGVmIF9fWEwxU0lNX18KK01TR19JRF9OUlJDX05MMV9BRERJVElPTkFMX0RMX0JXUCwKK01TR19JRF9OUlJDX05MMV9BRERJVElPTkFMX1VMX0JXUCwKK01TR19JRF9OUlJDX05MMV9NRUFTX09CSkVDVCwKK01TR19JRF9OUlJDX05MMV9OWlBfQ1NJX1JTX1JFU09VUkNFLAorTVNHX0lEX05SUkNfTkwxX05aUF9DU0lfUlNfUkVTT1VSQ0VfU0VULAorTVNHX0lEX05SUkNfTkwxX0NTSV9TU0JfUkVTT1VSQ0VfU0VULAorTVNHX0lEX05SUkNfTkwxX0NTSV9SRVNPVVJDRV9DT05GSUcsCitNU0dfSURfTlJSQ19OTDFfQ1NJX1JFUE9SVF9DT05GSUcsCitNU0dfSURfTlJSQ19OTDFfQ1NJX0FQRVJJT0RJQ19UUklHR0VSX1NUQVRFLAorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIExvZ2dpbmcKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfTkwxX1BEU0NIX0JVRkZFUiwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9OTDFfTVNHX0NPREVfVEFJTCApCisKKy8vLy8vLy8vLy8gRW5kICNkZWZpbmUgLy8vLy8vLy8vLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICB0eXBlZGVmCisqICAtIGVudW0KKyogICAgIC0gVXNlIG1vZHVsZSBuYW1lIChlLmcuLCAiUlhfIikgYXMgcHJlZml4LgorKiAgICAgLSBBZGQgcG9zdGZpeCB3aXRoICJfRSIKKyogICAgIC0gRWxlbWVudCBOYW1pbmcKKyogICAgICAgIC0gQWxsIGNoYXJzIGFyZSAiY2FwaXRhbCIuCisqICAgICAgICAtIFdvcmRzIGFyZSBzZXBhcmF0ZWQgYnkgdW5kZXJsaW5lICJfIi4KKyogICAgICAgIC0gVXNlIGVudW0gbmFtZSBhcyBwcmVmaXggKHJlbW92ZSAiX0UiKS4KKyogIC0gc3RydWN0CisqICAgICAtIFVzZSBtb2R1bGUgbmFtZSAoZS5nLiwgIlJYXyIpIGFzIHByZWZpeC4KKyogICAgIC0gQWRkIHBvc3RmaXggd2l0aCAiX1QiLgorKiAgICAgLSBFbGVtZW50IE5hbWluZworKiAgICAgICAgLSBBbGwgY2hhcnMgYXJlICJsb3dlcmNhc2UiLgorKiAgICAgICAgLSBXb3JkcyBhcmUgc2VwYXJhdGVkIGJ5IHVuZGVybGluZSAiXyIuCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLy8vLy8vLy8vIEVuZCB0eXBlZGVmIC8vLy8vLy8vLy8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgRXh0ZXJuIEdsb2JhbCBEYXRhIChvbmx5IGNvbnN0IGlzIGFsbG93ZWQpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLy8vLy8vLy8vIEVuZCBFeHRlcm4gR2xvYmFsIERhdGEgLy8vLy8vLy8vLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBNb2R1bGUgUHVibGljIEludGVyZmFjZSBGdW5jdGlvbnMgImluc2lkZSIgTkwxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKKyAqIEBicmllZiAgICAgICAgIE4vQQorICogQGRldGFpbHMgICAgICAgTi9BCisgKiBAcGFyYW1baW5dICAgICBOL0EKKyAqIEBwYXJhbVtvdXRdICAgIE4vQQorICogQHBhcmFtW2luLG91dF0gTi9BCisgKiBAcmV0dXJuICAgICAgICBOL0EKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCisgKiBAYnJpZWYgICAgICAgICBOL0EKKyAqIEBkZXRhaWxzICAgICAgIE4vQQorICogQHBhcmFtW2luXSAgICAgTi9BCisgKiBAcGFyYW1bb3V0XSAgICBOL0EKKyAqIEBwYXJhbVtpbixvdXRdIE4vQQorICogQHJldHVybiAgICAgICAgTi9BCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLy8vLy8vLy8vIEVuZCBNb2R1bGUgUHVibGljIEludGVyZmFjZSBGdW5jdGlvbnMgImluc2lkZSIgTkwxIC8vLy8vLy8vLy8KKworCisjZW5kaWYgLyogI2RlZmluZSBfX05MMV9NU0dJRF9IX18gKi8KKworLyogRG94eWdlbmUgZW5kIG9mIGRlZmdyb3VwIGhlYWRlciEhISAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKkB9Ki8KKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbmwxYl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbmwxYl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MDgxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ubDFiX21zZ2lkLmgKQEAgLTAsMCArMSw3MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgbmwxYl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgTjVHIGFkYXB0b3IKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIE5MMUIgbWVzc2FnZSBpZCBkZWZpbml0aW9ucworICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIE5MMUJfTVNHSURfSAorI2RlZmluZSBOTDFCX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX05MMUJfQ09ERV9CRUdJTiApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworTVNHX0lEX041R19USUNLX0lORCAgICAgICAgICAgICAgICA9IE1TR19JRF9OTDFCX0NPREVfQkVHSU4sCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9OTDFCX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBOTDFCX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL25sMl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbmwyX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRlMTA3OAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL25sMl9tc2dpZC5oCkBAIC0wLDAgKzEsMjA2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX05MMl9NU0dJRF9ICisjZGVmaW5lIF9OTDJfTVNHSURfSAorI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX05MMl9DT0RFX0JFR0lOICkKK01TR19JRF9OTDJfTVNHX0lEX1NUQVJUID0gTVNHX0lEX05MMl9DT0RFX0JFR0lOLAorICAgIC8qIE1TR3MgZnJvbSBOUlJDICh1cHBlciBsYXllcikgKi8KKyAgICBNU0dfSURfTlJSQ19OUkxDRExfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OUkxDVUxfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OUkxDVUxfU1JCMV9BQ0tfUkVRLAorICAgIE1TR19JRF9OUlJDX05NQUNfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OTUFDX1JFU0VUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OTUFDX0NDQ0hfREFUQV9SRVEsCisgICAgTVNHX0lEX05SUkNfTlJMQ1VMX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9SRVEsCisgICAgTVNHX0lEX05SUkNfTlJMQ0RMX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9SRVEsCisgICAgTVNHX0lEX05SUkNfTk1BQ19TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfUkVRLAorICAgIE1TR19JRF9OUlJDX05STENETF9SRUNPTkZJR19XSVRIX1NZTkNfQ09NUExFVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX05NQUNfRFNQX1NOSUZGRVJfUkVRLAorICAgIE1TR19JRF9OUlJDX05STENETF9TUkIxX1JMQ19DVFJMX1BEVV9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gTkwxIChsb3dlciBsYXllcikgKi8KKyAgICBNU0dfSURfTk1BQ19OTDFfTUFDX1JFU0VUX0NORiwKKyAgICBNU0dfSURfTk1BQ19OTDFfSEFSUV9DTE9TRV9JTkQsCisgICAgTVNHX0lEX05NQUNfTkwxX0RMX0hBUlFfQ0xPU0VfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9TUFNfU1RBUlRfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9TUFNfRU5EX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfVUxfVE9UQUxfVEJfU0laRV9JTkQsCisgICAgTVNHX0lEX05MMlBPV19OTDFfTDJDT1BST19QT1dFUl9PTl9JTkQsCisgICAgTVNHX0lEX05MMlBPV19OTDFfTDJDT1BST19QT1dFUl9PRkZfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9SQV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX05NQUNfTkwxX1JBX0ZJTklTSF9JTkQsCisgICAgTVNHX0lEX05NQUNfTkwxX1JBX0lDRF9JTkZPX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfVElNRVJfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfRFJYX0lDRF9JTkZPX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfVElNSU5HX0FEVkFOQ0VfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9DQV9JTkQsCisgICAgTVNHX0lEX05NQUNfTkwxX1NSX1RSSUdHRVJFRF9JTkQsCisgICAgTVNHX0lEX05NQUNfTkwxX1BfU0lfVEJfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9TRVJWSU5HX0NFTExfSU5GT19JTkQsCisgICAgTVNHX0lEX05NQUNfTkwxX0xFQVZFX0dFTUlOSV9HQVBfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9NQUNfU1dJVENIX1ZJUlRVQUxfQ09OTkVDVEVEX0NORiwKKyAgICBNU0dfSURfTk1BQ19OTDFfUEhZX0NPTkZJR19JTkZPX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfREVGRU5TRV9HQVBfQUNUSU9OX0lORCwgICAgCisgICAgTVNHX0lEX05NQUNfTkwxX1JBX0NPTVBMRVRFX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfU1JfTUFYX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfU1JfVFhfSU5ELAorICAgIE1TR19JRF9OTUFDX05MMV9MRUFWRV9JRENfR0FQX0lORCwKKyAgICBNU0dfSURfTk1BQ19OTDFfUEFHSU5HX0dBUF9JTkQsCisgICAgTVNHX0lEX05STENETF9OTDFfSURDX0dBUF9JTkQsCisKKyAgICAvKiBOT1RFOiBNU0dzIGZyb20gTk1BQyB0byBOTDEgYXJlIGluIG5sMV9tc2dpZC5oICovCisKKyAgICAvKiBNU0dzIGZyb20gTk1BQyB0byBOTUFDLiAqLworICAgIE1TR19JRF9OTUFDX05PUk1BTF9QUklPX0RMX0RBVEFfSU5ELAorICAgIE1TR19JRF9OTUFDX0hJR0hfUFJJT19ETF9EQVRBX0lORCwKKyAgICBNU0dfSURfTk1BQ0RMX0hBUlFfTElGRVRJTUVfTU9OSVRPUl9FWFBJUkVfTlRGLAorICAgIE1TR19JRF9OTUFDX1NUT1BfREFUQV9JTkFDVF9USU1FUl9SRVEsCisgICAgTVNHX0lEX05NQUNfRk9SQ0VfQ0xPU0VfSEFSUV9OVEYsCisgICAgTVNHX0lEX05NQUNfUkVUWF9CU1JfVElNRVJfRVhQSVJFX05URiwKKyAgICBNU0dfSURfTk1BQ19JQ0RfRVJSX0xDSURfTlRGLAorICAgIE1TR19JRF9OTUFDX0RZTl9GRUFUX1NSX1JFUSwKKworICAgIC8qIE1TR3MgZnJvbSBOTUFDIHRvIEVOUERDUC4gKi8KKyAgICBNU0dfSURfRU5QRENQX05NQUNfRFVQX0FDVF9ERUFDVF9JTkQsCisKKyAgICAvKiBNU0dzIGZyb20gTk1BQyB0byBOUkxDLVVMLiAqLworICAgIE1TR19JRF9OUkxDVUxfTk1BQ19NQUNfUkVTRVRfSU5ELAorICAgIE1TR19JRF9OUkxDVUxfTk1BQ19IQVJRX0NMT1NFX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBOTUFDIHRvIE5STEMtREwuICovCisgICAgTVNHX0lEX05STENETF9OTUFDX0dFTUlOSV9HQVBfSU5GT19JTkQsCisJCisgICAgLyogTVNHcyBmcm9tIE5STEMtVUwgdG8gTk1BQy4gKi8KKyAgICBNU0dfSURfTlJMQ1VMX05NQUNfTUFDX1JFU0VUX1JTUCwKKyAgICBNU0dfSURfTlJMQ1VMX05NQUNfUkVUWF9CU1JfVFJJR0dFUl9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gTkwyVFhSTEMgdG8gTlJMQ1VMIHRhc2sgKi8KKyAgICBNU0dfSURfTlJMQ1VMX05MMlRYUkxDX1BPU1RfUFJPQ0VTU19JTkQsCisKKyAgICAvKiBNU0dzIGZyb20gTkwyVFhNQUMgdG8gTk1BQ0RMIHRhc2sgKi8KKyAgICBNU0dfSURfTlJNQUNNVVhfTk1BQ0RMX1NUQVJUX0RBVEFfSU5BQ1RfVElNRVJfSU5ELAorICAgIAorICAgIC8qIE1TR3MgZnJvbSBjb3BybyBsaXNyIHRvIE5STENVTCB0YXNrICovCisgICAgTVNHX0lEX05STENVTF9OUkxDVUxfUkVUWF9DSVBIRVJfRE9ORV9JTkQsCisKKyAgICAvKiBNU0dzIGZyb20gTlJMQ1VMIHRvIE5STENETCAqLworICAgIE1TR19JRF9OUkxDVUxfTlJMQ0RMX0ZSRUVfU1RBVFVTX1BEVV9SRVEsCisgICAgTVNHX0lEX05STENVTF9OUkxDRExfU1JCMV9BQ0tfUkVRLAorICAgIE1TR19JRF9OUkxDVUxfTlJMQ0RMX1NFTkRfU1RBVFVTX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBOUkxDREwgdG8gTlJMQ0RMICovCisgICAgTVNHX0lEX05STENETF9OUkxDRExfUE9TVF9PRkZfREVMSVZFUl9JTkQsCisgICAgTVNHX0lEX05STENETF9OUkxDRExfUE9TVF9EUk9QX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBOUkxDREwgdG8gTlJMQ1VMICovCisgICAgTVNHX0lEX05STENETF9OUkxDVUxfUkNWX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX05STENETF9OUkxDVUxfU1JCMV9BQ0tfQ05GLAorCisgICAgLyogTVNHcyBmcm9tIE5STEMgdG8gTk1BQyAqLworICAgIE1TR19JRF9OUkxDX05NQUNfQlNSX1RSSUdHRVJfUkVRLAorICAgIAorICAgIC8qIE1TR3MgZnJvbSBFTUFDIHRvIE5NQUMgKi8KKyAgICBNU0dfSURfRU1BQ19OTUFDX1BSRURJQ1RfU1JfUkVRLCAgICAKKworICAgIC8qIE1TR3MgZnJvbSBFTlBEQ1AgdG8gTk1BQyAqLworICAgIE1TR19JRF9FTlBEQ1BfTk1BQ19CU1JfVFJJR0dFUl9SRVEsCisKKworICAgIC8qIE1TR3MgdG8gRU5QRENQICovCisgICAgTVNHX0lEX05QRENQX0RQQ09QUk9fREVDSVBIRVJfRE9ORV9JTkQsCisgICAgTVNHX0lEX05QRENQX05STENfRExfREFUQV9JTkQsCisgICAgTVNHX0lEX05SX0wyX1JMQ19ETF9EQVRBX0lORCA9IE1TR19JRF9OUERDUF9OUkxDX0RMX0RBVEFfSU5ELAorICAgIE1TR19JRF9FTlBEQ1BfTlJMQ0RMX1ZSQl9WQV9OT19SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfRU5QRENQX05STENETF9JRENfR0FQX0JFR0lOX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBFTkwySUNEICovCisgICAgTVNHX0lEX0VOTDJJQ0RfTk1BQ19DVFJMX05URiwKKyAgICBNU0dfSURfRU5MMklDRF9OTUFDX1RJTUVSX0VYUElSWV9OVEYsCisgICAgTVNHX0lEX0VOTDJJQ0RfTlJMQ0RMX0NUUkxfTlRGLAorICAgIE1TR19JRF9FTkwySUNEX05STENETF9USU1FUl9FWFBJUllfTlRGLAorICAgIE1TR19JRF9FTkwySUNEX05STENVTF9DVFJMX05URiwKKyAgICBNU0dfSURfRU5MMklDRF9OUkxDVUxfVElNRVJfRVhQSVJZX05URiwKKyAgICBNU0dfSURfSUNEX05NQUNfUkVRVUVTVF9MT0dfTlRGLAorICAgIAorICAgIC8qIE1TR3MgdG8gTlJMQ1VMICovCisgICAgTVNHX0lEX05STENVTF9TSU1VTEFURV9USU1FUl9FWFBJUlksCisgICAgTVNHX0lEX05STENVTF9TSU1VTEFURV9FTkwySUNEX1RJTUVSX0VYUElSWSwKKworICAgIC8qIE1TR3MgZnJvbSBNTDFTICovCisgICAgTVNHX0lEX01MMVNfTk1BQ19NTDFTX1RFU1RfTU9ERV9SRVEsCisgICAgTVNHX0lEX01MMVNfTk1BQ19DQ0NIX0RBVEFfUkVRLAorICAgIE1TR19JRF9NTDFTX05NQUNfRExfREFUQV9ESVNDQVJEX1JFUSwKKyAgICBNU0dfSURfTUwxU19OTUFDX01BQ19QRFVfRk9SX1JBUl9SRVEsCisgICAgTVNHX0lEX01MMVNfTk1BQ19NQUNfQ0VfVFJJR0dFUl9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gTkwyIFVzZXIgdG8gTkwyUE9XLiAqLworICAgIE1TR19JRF9OTDJQT1dfVVNFUl9MMkNPUFJPX1BPV0VSX09OX1JFUSwKKyAgICBNU0dfSURfTkwyUE9XX1VTRVJfTDJDT1BST19QT1dFUl9PRkZfUkVRLAorCisgICAgLyogTVNHcyBmcm9tIFRNQyB0byBOTUFDICovCisgICAgTVNHX0lEX1RNQ19OTUFDX1RIRVJNQUxfQ09OVFJPTF9SRVEsCisgICAgTVNHX0lEX1RNQ19OTUFDX1NFU1NJT05fQkVHSU5fTlRGLAorICAgIE1TR19JRF9UTUNfTk1BQ19TRVNTSU9OX0VORF9OVEYsCisKKyAgICAvKiBNU0dzIGZyb20gSVBDb3JlIHRvIEVOUERDUCAqLworCU1TR19JRF9JUENPUkVfRU5QRENQX1VMX1NVU1BFTkRfTlRGLAorCU1TR19JRF9JUENPUkVfRU5QRENQX1VMX0FDVElWRV9OVEYsCisKKyAgICAvKiBNU0dzIGZyb20gVVBDTSB0byBOTUFDICovICAgIAorICAgIE1TR19JRF9VUENNX05NQUNfUkJSUV9SRVEsCisgICAgTVNHX0lEX1VQQ01fTk1BQ19UQUdfREFUQV9BUlJJVkFMX1JFUSwKKyAgICBNU0dfSURfVVBDTV9OTUFDX0lOVEVSTkVUX0RJU0NPTk5FQ1RfUkVRLAorICAgIAorICAgLyogTVNHcyBmcm9tIEVOTDIgU0VDICovCisgICAgTVNHX0lEX0VOTDJfTlJMQ0RMX1ZSQl9WQV9TSE9SVEFHRV9OVEYsCisgICAgTVNHX0lEX0VOTDJfTlJMQ1VMX1ZSQl9WQV9TSE9SVEFHRV9OVEYsCisgICAgTVNHX0lEX0VOTDJfTk1BQ0RMX1ZSQl9WQV9TSE9SVEFHRV9OVEYsCisgICAgTVNHX0lEX0VOTDJfTlJMQ0RMX1ZSQl9WQV9OT19SRUxFQVNFX05URiwKKyAgICBNU0dfSURfRU5MMl9OUkxDVUxfVlJCX1ZBX05PX1JFTEVBU0VfTlRGLAorICAgIE1TR19JRF9FTkwyX05MMlBPV19WUkJfVkFfTk9fUkVMRUFTRV9OVEYsCisKKyAgICAvKiBNU0dzIGZyb20gc3BlZWNoIGRyaXZlciB0byBOTUFDICovCisgICAgTVNHX0lEX01FRF9OTUFDX1ZPTlJfVElNSU5HX0lORk9fUkVRLAorCisgICAgLyogTVNHcyBmcm9tIFJTVkFTIHRvIE5NQUMgKi8KKyAgICBNU0dfSURfUlNWQVNfTk1BQ19TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19OTUFDX1JFU1VNRV9TRVJWSUNFX1JFUSwKKworICAgIE1TR19JRF9OTDJfTVNHX0lEX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTkwyX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBOTDJfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvbnJyY19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbnJyY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNTU4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ucnJjX21zZ2lkLmgKQEAgLTAsMCArMSw3MzYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxOAorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIE5SUkNfTVNHSURfSAorI2RlZmluZSBOUlJDX01TR0lEX0gKKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX05SUkNfQ09ERV9CRUdJTiApCitNU0dfSURfTlJSQ19NU0dfSURfU1RBUlQgPSBNU0dfSURfTlJSQ19DT0RFX0JFR0lOLAorCisgICAgLyogTVNHcyBmcm9tIDJHIFJSICovCisgICAgTVNHX0lEX1JSX05SUkNfRVZBTFVBVEVfTlJDRUxMX1JFUSwKKyAgICBNU0dfSURfUlJfTlJSQ19FVkFMVUFURV9OUkNFTExfU1RPUF9SRVEsCisgICAgTVNHX0lEX1JSX05SUkNfQUNUSVZBVEVfTlJDRUxMX1JFUSwKKyAgICBNU0dfSURfUlJfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9TVEFSVF9SRVEsCisgICAgTVNHX0lEX1JSX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfU1RPUF9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gM0cgUlJDICovCisgICAgTVNHX0lEX1JSQ19OUlJDX0VWQUxVQVRFX05SQ0VMTF9SRVEsCisgICAgTVNHX0lEX1JSQ19OUlJDX0VWQUxVQVRFX05SQ0VMTF9TVE9QX1JFUSwKKyAgICBNU0dfSURfUlJDX05SUkNfQUNUSVZBVEVfTlJDRUxMX1JFUSwKKyAgICBNU0dfSURfUlJDX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfU1RBUlRfUkVRLAorICAgIE1TR19JRF9SUkNfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9TVE9QX1JFUSwKKworICAgIC8qIE1TR3MgZnJvbSBFUlJDICAqLworICAgIE1TR19JRF9FUlJDX05SUkNfSUVfQ0hFQ0tfUkVRLAorICAgIE1TR19JRF9FUlJDX05SUkNfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfRVJSQ19OUlJDX0NPTkZJR19DT05USU5VRV9SRVEsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfRVJSQ19OUlJDX1JFTEVBU0VfUkVRLAorICAgIE1TR19JRF9OUlJDX0VSUkNfUERDUF9DT05GSUdfQ05GLAorICAgIE1TR19JRF9OUlJDX0VSUkNfUERDUF9TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfQ05GLAorICAgIE1TR19JRF9FUlJDX05SUkNfUkJfUkVWRVJUX0ZPUkdFVF9SRVEsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19RT1NfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfRVJSQ19OUlJDX1NSQjFfU0VDX0FDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19FUlJDX0NPTUJJTkVEX0lFX0NIRUNLX0ZBSUxVUkVfSU5ELAorICAgIE1TR19JRF9FUlJDX05SUkNfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9FUlJDX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfU1RBUlRfUkVRLAorICAgIE1TR19JRF9FUlJDX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfU1RPUF9SRVEsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19FVkFMVUFURV9OUkNFTExfUkVRLAorICAgIE1TR19JRF9FUlJDX05SUkNfRVZBTFVBVEVfTlJDRUxMX1NUT1BfUkVRLAorICAgIE1TR19JRF9OUlJDX0VSUkNfRVZBTFVBVEVfRUNFTExfQ05GLAorICAgIE1TR19JRF9OUlJDX0VSUkNfRVZBTFVBVEVfRUNFTExfU1RPUF9DTkYsCisgICAgTVNHX0lEX05SUkNfRVJSQ19BQ1RJVkFURV9FQ0VMTF9DTkYsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19JTlRFUl9SQVRfRlJFUV9VUERBVEVfSU5ELAorICAgIE1TR19JRF9OUlJDX0VSUkNfUkVQT1JUX0NHSV9DTkYsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19SRVBPUlRfQ0dJX1JFUSwKKyAgICBNU0dfSURfTlJSQ19FUlJDX0NHSV9DT05GTElDVF9KVURHRV9DTkYsCisgICAgTVNHX0lEX05SUkNfRVJSQ19BVVRPX0dBUF9PTl9DTkYsCisgICAgTVNHX0lEX05SUkNfRVJSQ19BVVRPX0dBUF9PRkZfQ05GLAorICAgIE1TR19JRF9OUlJDX0VSUkNfQVVUT19HQVBfT0ZGX0lORCwKKyAgICBNU0dfSURfRVJSQ19OUlJDX0hBTkRPVkVSX05SQ0VMTF9SRVEsCisgICAgTVNHX0lEX0VSUkNfTlJSQ19BQk9SVF9IQU5ET1ZFUl9OUkNFTExfUkVRLAorICAgIE1TR19JRF9OUlJDX0VSUkNfSEFORE9WRVJfRUNFTExfQ05GLAorICAgIE1TR19JRF9OUlJDX0VSUkNfT1RET0FfTUVBU19JTkQsCisgICAgTVNHX0lEX05SUkNfRVJSQ19PVERPQV9NRUFTX0NORiwKKyAgICBNU0dfSURfTlJSQ19FUlJDX09URE9BX0FVVE9fR0FQX09GRl9JTkQsCisgICAgTVNHX0lEX05SUkNfRVJSQ19QUlNfR0FQX0lORCwKKyAgICBNU0dfSURfRVJSQ19OUlJDX0RTUF9TTklGRkVSX1JFUSwKKyAgICBNU0dfSURfRVJSQ19OUlJDX0RTUF9TTklGRkVSX0NORiwKKworICAgIC8qIE1TR3MgZnJvbSBOTDEgICovCisgICAgTVNHX0lEX05SUkNfTkwxX0NPTk5FQ1RFRF9DT05GSUdfQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9JRExFX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX1BVQ0NIX1NSU19SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfTlJSQ19OTDFfTUVBU19SRVBPUlRfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9TQ0dfRkFJTF9NRUFTX1JFUE9SVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX1JMRl9JTkQsCisgICAgTVNHX0lEX05SUkNfTkwxX1JBTkRPTV9BQ0NFU1NfQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9SQU5ET01fQUNDRVNTX0lORCwKKyAgICBNU0dfSURfTlJSQ19OTDFfREVBQ1RJVkFURV9DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX1NFVF9SQVRfQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9SRVNFTEVDVElPTl9ORUVERURfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9DQU1QSU5HX0xPU1RfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9FQVJMWV9DQU1QSU5HX0xPU1RfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9CQUNLR1JPVU5EX1BCQ0hfTUVBU19SRVNVTFRfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9QQkNIX01FQVNfUkVTVUxUX0lORCwKKyAgICBNU0dfSURfTlJSQ19OTDFfUEFHSU5HX0lORCwKKyAgICBNU0dfSURfTlJSQ19OTDFfQkNDSF9NT0RfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9QV1NfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9SRURJUkVDVF9NRUFTX0lORCwKKyAgICBNU0dfSURfTlJSQ19OTDFfUkVESVJFQ1RfTUVBU19DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX1JFRVNUQUJMSVNIX01FQVNfSU5ELAorICAgIE1TR19JRF9OUlJDX05MMV9SRUVTVEFCTElTSF9NRUFTX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTDFfQ0VMTF9QT1dFUl9MRVZFTF9JTkQsCisgICAgTVNHX0lEX05SUkNfTkwxX0dFVF9TRVJWX01FQVNfUkVTVUxUX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTDFfQVVUT19HQVBfT05fQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9BVVRPX0dBUF9PRkZfQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9TUEVDSUZJQ19NRUFTX1JFU1VMVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX0NFTExfSU5GT19JTkQsCisgICAgTVNHX0lEX05SUkNfTkwxX1NZTkNfQ09OTkVDVElPTl9TVEFUVVNfQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9IQU5ET1ZFUl9FVkVOVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX1NJQjlfRlJBTUVfU1lOQ19DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX0VOSEFOQ0VNRU5UX1FVRVJZX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTDFfVk9OUl9TVEFUVVNfQ05GLAorICAgIE1TR19JRF9OUlJDX05MMV9DRUxMX0RFVEVDVF9XSVRIX0FVVE9fR0FQX05FRURFRF9JTkQsCisgICAgTVNHX0lEX05SUkNfTkwxX1NBX1NJTEVOQ0VfQ1RSTF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkwxX0RTUF9TTklGRkVSX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTDFfR0VNSU5JX01PREVfVVBEQVRFX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTDFfR0VNSU5JX1NIQVJFX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTDFfQ09OTl9CQVJfTElTVF9DVFJMX0NORiwKKwlNU0dfSURfTlJSQ19OTDFfQ1VTVE9NX0JBUl9MSVNUX0NMRUFSX05URiwKKworICAgIC8qIE1TR3MgZnJvbSBOTUFDICAqLworICAgIE1TR19JRF9OUlJDX05NQUNfQ09ORklHX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTUFDX1JFU0VUX0NORiwKKyAgICBNU0dfSURfTlJSQ19OTUFDX0NDQ0hfREFUQV9JTkQsCisgICAgTVNHX0lEX05SUkNfTk1BQ19EQVRBX0lOQUNUSVZJVFlfVElNRVJfRVhQSVJFRF9JTkQsCisgICAgTVNHX0lEX05SUkNfTk1BQ19TV0lUQ0hfVklSVFVBTF9DT05ORUNURURfQ05GLAorICAgIE1TR19JRF9OUlJDX05NQUNfRFNQX1NOSUZGRVJfQ05GLAorCisgICAgLyogTVNHcyBmcm9tIE5STENETCAobG93ZXIgbGF5ZXIpICovCisgICAgTVNHX0lEX05SUkNfTlJMQ0RMX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfTlJMQ0RMX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9DTkYsCisKKyAgICAvKiBNU0dzIGZyb20gTlJMQ1VMIChsb3dlciBsYXllcikgKi8KKyAgICBNU0dfSURfTlJSQ19OUkxDVUxfQ09ORklHX0NORiwKKyAgICBNU0dfSURfTlJSQ19OUkxDVUxfUFJPQkxFTV9JTkQsCisgICAgTVNHX0lEX05SUkNfTlJMQ1VMX1NXSVRDSF9WSVJUVUFMX0NPTk5FQ1RFRF9DTkYsCisgICAgTVNHX0lEX05SUkNfTlJMQ1VMX1NSQjFfQUNLX0NORiwKKworICAgIC8qIE1TR3MgZnJvbSBFTlBEQ1AgICovCisgICAgTVNHX0lEX05SUkNfRU5QRENQX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfRU5QRENQX0RDQ0hfREFUQV9DTkYsCisgICAgTVNHX0lEX05SUkNfRU5QRENQX0RDQ0hfREFUQV9JTkQsCisgICAgTVNHX0lEX05SUkNfRU5QRENQX0NOVElORk9fQ05GLAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9URVNUX0NORiwKKyAgICBNU0dfSURfTlJSQ19FTlBEQ1BfU1dJVENIX1ZJUlRVQUxfQ09OTkVDVEVEX0NORiwKKyAgICBNU0dfSURfTlJSQ19FTlBEQ1BfQ1VUX0NFTExfSU5ELAorICAgIE1TR19JRF9OUlJDX0VOUERDUF9ERVRFQ1RJT05fVElNRVJfM19USU1FT1VUX0lORCwKKyAgICBNU0dfSURfTlJSQ19FTlBEQ1BfREVURUNUSU9OX1RJTUVSXzRfVElNRU9VVF9JTkQsCisKKyAgICAvKiBNU0dzIGZyb20gTkFTX1NWICAqLworICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19JTklUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU0VUX1JBVF9NT0RFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUkZPRkZfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19ERUFDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfUExNTl9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19QTE1OX0xJU1RfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19QTE1OX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1BMTU5fTElTVF9BQk9SVF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1JBVF9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19SQVRfQ0hBTkdFX1JTUCwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfQ0hFQ0tfQUNUSVZFX1JBVF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1NFVF9BQ1RJVkVfUkFUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU05JRkZFUl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1NOSUZGRVJfU1RPUF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX05BU19SRUdOX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19FUV9QTE1OX0xJU1RfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfQ1NHX0xJU1RfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19DQVBfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfQ1NHX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1BPV0VSX1NDQU5fUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19FTUNfRk9SQklEREVOX05XX0xJU1RfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfSFBMTU5fSU5GT19VUERBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19DRUxMX0NBTVBFRF9IQU5ETEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfTlJSQ19CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfU1RPUF9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX0lOQUNUSVZFX01PREVfQ09ORklHVVJBVElPTl9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1NFUlZJQ0VfUkVDT1ZFUllfUk9VTkRfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU0NSRUVOX09OX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX05SUkNfU0NSRUVOX09GRl9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX1NFQVJDSF9QUkVGRVJFTkNFX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9OUlJDX0NBTExfU1RBVFVTX1JFUSwKKworICAgIC8qIE1TR3MgZnJvbSBWR01NICovCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19JTklUX1JFUSwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0lERU5USVRZX1VQREFURV9SRVEsIC8vIFRPRE86IFJlbW92ZQorICAgIE1TR19JRF9WR01NX05SUkNfTkFTX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0tFWV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9WR01NX05SUkNfRlRBSV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9WR01NX05SUkNfVUFDX0NIRUNLX1JFUSwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0VTVEFCTElTSF9SRVEsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfVkdNTV9OUlJDX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19GQUxMQkFDS19SU1AsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19OV19BQ0NFU1NfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0RBVEFfUkVRLAorICAgIE1TR19JRF9WR01NX05SUkNfRU1FUkdFTkNZX1NUQVRVU19ORUVERURfUlNQLAorICAgIE1TR19JRF9WR01NX05SUkNfU1lOQ19DT05ORUNUSU9OX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19EQVRBX0FCT1JUX1JFUSwgIC8vIHRvIGNsZWFyIE5SUkMgZW5xdWV1ZWQgZGF0YV9yZXEgZHVyaW5nIHZpcnR1YWwgY29ubmVjdGVkIHBlcmlvZAorICAgIE1TR19JRF9WR01NX05SUkNfUFJPQ19SRVNVTFRfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfVkdNTV9OUlJDX01SVV9PVVRfT0ZfU1lOQ19SRVEsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19DQVBBQklMSVRZX0NIQU5HRV9SU1AsCisKKyAgICAvKiBNU0dzIGZyb20gTUwxUyAqLworICAgIE1TR19JRF9NTDFTX05SUkNfTUwxU19URVNUX01PREVfUkVRLAorCisgICAgLyogTVNHcyBmcm9tIFNNU0FMICovCisgICAgTVNHX0lEX1NNU0FMX05SUkNfQ0JDSF9SRVEsICAgICAgICAgICAgIC8qIFBXUzogdXBkYXRlIGlzX2Nic19yZXF1aXJlZCA9IHRydWUvZmFsc2UgKi8KKyAgICBNU0dfSURfU01TQUxfTlJSQ19DQl9VUERBVEVfUkVRLCAgICAgICAgLyogUFdTOiB1cGRhdGUgY2JtaS9jYm1pZC9jYm1pci9kY3MvaXNfYWxsX2xhbmd1YWdlX29uICovCisgICAgTVNHX0lEX1NNU0FMX05SUkNfQ0JfTVNHX1JFTU9WQUxfUkVRLCAgIC8qIFBXUzogbXNnaWQsIHNlcmlhbF9udW0gKi8KKworICAgIC8qIE1TR3MgZnJvbSBMNEMgKi8KKyAgICBNU0dfSURfTDRDX05SUkNfRVRXU19TRVRUSU5HX1JFUSwgICAgICAgLyogUFdTOiB1cGRhdGUgaXNfZXR3c19uZWVkZWQsIGlzX2V0d3NfdGVzdGluZ19vbiAqLworICAgIE1TR19JRF9MNENfTlJSQ19TQ0dfRVZFTlRfQ09ORklHX1JFUSwgICAvKiBEZXRlY3QgdGhlIHNjZW5hcmlvIGZvciBTQ0cgZmFpbHVyZSBvciBTQ0cgcmVsZWFzZSBmcm9tIE5XICovCisgICAgTVNHX0lEX0w0Q19OUlJDX0lNU19DT05GSUdfUkVRLCAgICAgICAgIC8qIEluZm9ybSBWb05SIGNhcGFiaWxpdHkgKi8KKyAgICBNU0dfSURfTDRDX05SUkNfSU1TX0NBTExfU1RBVFVTX1JFUSwgICAgLyogSW5mb3JtIFZvTlIgY2FsbCBzdGF0dXMgKi8KKyAgICBNU0dfSURfTDRDX05SUkNfU0VUX1BMTU5fU1RPUkVEX0ZSRVFfUkVRLCAvKiBTZXQgc3RvcmVkIGZyZXEgaW5mbyBmb3IgU0VBUkNIICovCisgICAgTVNHX0lEX0w0Q19OUlJDX0NBX0JBTkRfQ09NQl9MSVNUX1JFUSwKKyAgICBNU0dfSURfTDRDX05SUkNfQ0VMTF9QT1dFUl9USFJFU0hPTERfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTDRDX05SUkNfQ1VTVE9NX0JBUl9MSVNUX1JFUSwKKworICAgIC8qIE1TR3MgZnJvbSBTQVNFICovCisgICAgTVNHX0lEX1NBU0VfTlJSQ19FTkRDX0FDVElWQVRFX1JFUSwgICAgICAgICAgICAgICAgICAgIC8qIGVuYWJsZSBFTkRDICovCisgICAgTVNHX0lEX1NBU0VfTlJSQ19FTkRDX0RFQUNUSVZBVEVfUkVRLCAgICAgICAgICAgICAgICAgIC8qIGRpc2FibGUgRU5EQyAqLworICAgIE1TR19JRF9TQVNFX05SUkNfU0FfU0lMRU5DRV9DVFJMX1JFUSwgICAgICAgICAgICAgICAgICAvKiBjb25maWd1cmUgU0FfU2lsZW5jZSBtb2RlLCBhbmQvb3IgZW5oYW5jZW1lbnQgYml0bWFwICovCisKKyAgICAvKiBNU0dzIGZyb20gRVRDICovCisgICAgTVNHX0lEX0VUQ19OUlJDX1RFU1RMT09QX1JFUSwKKworICAgIC8qIE1TR3MgZnJvbSBMUFAgKi8KKyAgICBNU0dfSURfTFBQX05SUkNfT1RET0FfTUVBU19SRVEsCisgICAgTVNHX0lEX0xQUF9OUlJDX09URE9BX01FQVNfQUJPUlRfUkVRLAorCisgICAgLyogTVNHcyBmcm9tIFRNQyAqLworICAgIE1TR19JRF9UTUNfTlJSQ19BU1NJU1RBTkNFX0lORk9fU0VORF9SRVEsCisgICAgTVNHX0lEX05SUkNfVE1DX05PX09WRVJIRUFUSU5HX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBHTlNTX1RDIChpbiB0YXNrIExCUykgKi8KKyAgICBNU0dfSURfR05TU19UQ19OUlJDX1JFQURfVElNRV9TSUJfUkVRLAorICAgIAorICAgIC8qIE1TR3MgaW4gTlJSQyAgKi8KKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19JRV9DSEVDS19SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9TQ0dfSUVfQ0hFQ0tfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fU0NHX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9TQ0dfQ09ORklHX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19SRUxFQVNFX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19RT1NfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19RT1NfVVBEQVRFX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19JTlRFR1JJVFlfRkFJTF9IQU5ETEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fU0NHX1ZDX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fU0NHX1ZDX1NVU1BFTkRfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fU0NHX1ZDX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9TQ0dfVkNfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX1NDR19EU1BfU05JRkZFUl9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9TQ0dfRFNQX1NOSUZGRVJfQ05GLAorCisgICAgLyogTUFJTi1JRExFICovCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0RFQUNUSVZBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9ERUFDVElWQVRFX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUExNTl9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9QTE1OX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1BPV0VSX1NDQU5fUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9QT1dFUl9TQ0FOX0lORCwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUE9XRVJfU0NBTl9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0NBTVBJTkdfTE9TVF9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX09PU19TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9PT1NfU0VBUkNIX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfTkFTX1JFR05fU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1JFU0VMRUNUSU9OX05FRURFRF9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1JFU0VMRUNUSU9OX05FRURFRF9SU1AsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1JFU0VMRUNUSU9OX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUkVTRUxFQ1RJT05fQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9SQVRfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUkFUX0NIQU5HRV9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0lSX1NVQ0NFU1NfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9JUl9GQUlMRURfU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfSVJfRkFJTEVEX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0NPTk5fUkVMRUFTRV9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9DT05OX1JFTEVBU0VfU0VBUkNIX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfQ09OTl9SRUxFQVNFX1NFQVJDSF9TVEFSVF9MMV9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9MTEFfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfVUVfSURfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9VRV9JRF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9GVEFJX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1NUT1JFX1NJX0VYUElSRURfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9TWVNfSU5GT19VUERBVEVfSU5ELAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9SQV9GT1JCSURERU5fUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9SQV9GT1JCSURERU5fQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9SQV9BTExPV0VEX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUkFfQUxMT1dFRF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0NPTk5fRVNUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfQ09OTl9FU1RfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9HRU1JTklfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0dFTUlOSV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfR0VNSU5JX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0dFTUlOSV9SRVNVTUVfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9HRU1JTklfUkVTVU1FX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfR0VNSU5JX1ZJUlRVQUxfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0dFTUlOSV9WSVJUVUFMX1NVU1BFTkRfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9HRU1JTklfVklSVFVBTF9TVVNQRU5EX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfR0VNSU5JX1ZJUlRVQUxfUkVTVU1FX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfVVNFX1RFTVBfUU9GRlNFVF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1VTRV9URU1QX1FPRkZTRVRfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9FTUNfRk9SQklEREVOX05XX0xJU1RfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUFJJT1JJVFlfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfUlJDX0lOQUNUSVZFX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX1JSQ19JTkFDVElWRV9DT05GSUdfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9QQUdJTkdfSU5ELAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9TMV9NT0RFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfR0VNSU5JX1ZJUlRVQUxfTU9ERV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fSURMRV9HRU1JTklfVklSVFVBTF9NT0RFX1VQREFURV9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9JRExFX0NPTk5fRVNUX1JBX0ZBSUxfSEFORExFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfR0VNSU5JX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfR0VNSU5JX0FCT1JUX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfQ1VTVE9NX0JBUl9MSVNUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0lETEVfQ1VTVE9NX0JBUl9MSVNUX0NORiwKKworICAgIC8qIElETEUtQ09ORklHICovCisgICAgTVNHX0lEX05SUkNfSURMRV9DT05GSUdfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX0NPTkZJR19DT05GSUdfQ05GLAorICAgIE1TR19JRF9OUlJDX0lETEVfQ09ORklHX01BQ19SRVNFVF9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9DT05GSUdfTUFDX1JFU0VUX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX0NPTkZJR19ERUFDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX0NPTkZJR19ERUFDVElWQVRFX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX0NPTkZJR19HRU1JTklfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9DT05GSUdfR0VNSU5JX1NVU1BFTkRfQ05GLAorCisgICAgLyogSURMRS1JRExFICovCisgICAgTVNHX0lEX05SUkNfSURMRV9JRExFX1NJQl9NT0RfUFdTX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX0lETEVfUFdTX05PTl9FU1NFTlRJQUxfU0lCX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX0lETEVfUFdTX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX0lETEVfU0lCX01PRF9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9JRExFX05PTl9FU1NFTlRJQUxfU0lCX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX0lETEVfRVhDTFVERV9MSVNUX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9JRExFX1NJQl9FVkVOVF9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9JRExFX1VQREFURV9DT05GSUdfUkVRLAorCQorICAgIC8qIElETEUtTUVBUyAqLworICAgIE1TR19JRF9OUlJDX0lETEVfTUVBU19QTE1OX1NUQVRVU19VUERBVEVfSU5ELAorCQkJCisgICAgLy9TQ0cgVVQgdXNhZ2UKKyAgICBNU0dfSURfTlJSQ19TQ0dfVVRfU0VUX0NPTlRFWFQsCisgICAgTVNHX0lEX05SUkNfU0NHX1VUX0lOSkVDVF9DT05GSUdfUkVRLAorICAgIE1TR19JRF9OUlJDX1NDR19VVF9JTkpFQ1RfSUVfQ0hFQ0tfUkVRLAorCisgICAgLyogU0NHLUNPTkZJRyAqLworICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19TQ0dfQ09ORklHX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19DT05USU5VRV9SRVEsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19DT05USU5VRV9DTkYsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfTlJSQ19TQ0dfQ09ORklHX1NVU1BFTkRfQ05GLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfUkVMRUFTRV9SRVEsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19SRUxFQVNFX0NORiwKKyAgICBNU0dfSURfTlJSQ19TQ0dfQ09ORklHX1BVQ0NIX1NSU19SRUxfUkVRLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfUFVDQ0hfU1JTX1JFTF9DTkYsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19RT1NfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19TQ0dfQ09ORklHX1FPU19VUERBVEVfQ05GLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfU1JCMV9TRUNfQUNUSVZBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfU1JCMV9TRUNfQUNUSVZBVEVfQ05GLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfVkNfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19WQ19TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19TQ0dfQ09ORklHX1ZDX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05SUkNfU0NHX0NPTkZJR19WQ19SRVNVTUVfQ05GLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfRFNQX1NOSUZGRVJfUkVRLAorICAgIE1TR19JRF9OUlJDX1NDR19DT05GSUdfRFNQX1NOSUZGRVJfQ05GLAorCisgICAgLyogU0NHLU1FQVMgKi8KKyAgICBNU0dfSURfTlJSQ19TQ0dfTUVBU19DT05GSUdfUkVRLAorICAgIE1TR19JRF9OUlJDX1NDR19NRUFTX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfU0NHX01FQVNfUkVMRUFTRV9SRVEsCisgICAgTVNHX0lEX05SUkNfU0NHX01FQVNfUkVMRUFTRV9DTkYsCisgICAgTVNHX0lEX05SUkNfU0NHX01FQVNfR0VUX1NDR19GQUlMX01FQVNfUkVQT1JUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19TQ0dfTUVBU19HRVRfU0NHX0ZBSUxfTUVBU19SRVBPUlRfQ05GLAorICAgIE1TR19JRF9OUlJDX1NDR19NRUFTX1JFUE9SVF9JTkQsCisgICAgTVNHX0lEX05SUkNfU0NHX01FQVNfRU5EQ19BQ1RJVkFURV9SRVEsCisgICAgTVNHX0lEX05SUkNfU0NHX01FQVNfRU5EQ19ERUFDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19TQ0dfTUVBU19WQ19TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfTlJSQ19TQ0dfTUVBU19WQ19TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19TQ0dfTUVBU19WQ19SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX1NDR19NRUFTX1ZDX1JFU1VNRV9DTkYsCisKKyAgICBNU0dfSURfTlJSQ19DT05GSUdfTUVBU19NT0RJRllfSU5ELAorICAgIE1TR19JRF9OUlJDX0NPTkZJR19NRUFTX01PRElGWV9SU1AsCisKKyAgICBNU0dfSURfTlJSQ19NRUFTX0NPTkZJR19ET05FX0lORCwKKworICAgIC8qIE1BSU4tQkFDS0dST1VORCAqLworICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9QQVVTRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX1BBVVNFX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfUFJPQ0VFRF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX1BMTU5fTElTVF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX1BMTU5fTElTVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX1BMTU5fTElTVF9TVE9QX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfUExNTl9MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9QTE1OX0xJU1RfQUJPUlRfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9SU1NJX1NOSUZGRVJfU1RBUlRfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9SU1NJX1NOSUZGRVJfU1RPUF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX1JTU0lfU05JRkZFUl9TVE9QX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfTExBX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0JBQ0tHUk9VTkRfU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfQkFDS0dST1VORF9TRUFSQ0hfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9HRU1JTklfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0dFTUlOSV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfR0VNSU5JX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0dFTUlOSV9SRVNVTUVfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9HRU1JTklfUkVTVU1FX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfR0VNSU5JX1ZJUlRVQUxfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0dFTUlOSV9WSVJUVUFMX1NVU1BFTkRfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9HRU1JTklfVklSVFVBTF9TVVNQRU5EX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfR0VNSU5JX1ZJUlRVQUxfUkVTVU1FX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfR0VNSU5JX1ZJUlRVQUxfTU9ERV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9HRU1JTklfVklSVFVBTF9NT0RFX1VQREFURV9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19DTkYsICAgIAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9CQUNLR1JPVU5EX0JBTkRfTEVBUk5JTkdfU1RPUF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9CQUNLR1JPVU5EX0JBQ0tHUk9VTkRfQkFORF9MRUFSTklOR19TVE9QX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfTlJfQVZBSUxfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0JBQ0tHUk9VTkRfU0VSVklDRV9SRUNPVkVSWV9ST1VORF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9TQ1JFRU5fT05fUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fQkFDS0dST1VORF9TQ1JFRU5fT0ZGX1JFUSwKKworICAgIC8qIElETEUtU0VBUkNIICovCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfQ0VMTF9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0VBUkNIX0NFTExfU0VBUkNIX0lORCwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9DRUxMX1NFQVJDSF9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfUkVTRVRfU0VBUkNIX1JFU1VMVF9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfUE9XRVJfU0NBTl9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfUE9XRVJfU0NBTl9JTkQsCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfUE9XRVJfU0NBTl9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfR0VNSU5JX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0VBUkNIX0dFTUlOSV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfUkVTVU1FX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfUkVTVU1FX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfVklSVFVBTF9TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfVklSVFVBTF9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfVklSVFVBTF9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0VBUkNIX0dFTUlOSV9WSVJUVUFMX1NVU1BFTkRfQ09NUExFVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0VBUkNIX0dFTUlOSV9WSVJUVUFMX01PREVfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9HRU1JTklfVklSVFVBTF9NT0RFX1VQREFURV9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TRUFSQ0hfR0VNSU5JX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NFQVJDSF9DT05OX1JFTEVBU0VfU0VBUkNIX1NUQVJUX0wxX1NFQVJDSF9JTkQsCisgICAgCisgICAgLyogQkFDS0dST1VORC1TRUFSQ0ggKi8KKyAgICBNU0dfSURfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9DRUxMX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfQ0VMTF9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OUlJDX0JBQ0tHUk9VTkRfU0VBUkNIX0NFTExfU0VBUkNIX0NORiwKKyAgICBNU0dfSURfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9TTklGRkVSX1JFUSwKKyAgICBNU0dfSURfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9TTklGRkVSX0lORCwKKyAgICBNU0dfSURfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9TTklGRkVSX0NORiwKKworICAgIC8qIE5DT05OLVNFQVJDSCAqLworICAgIE1TR19JRF9OUlJDX05DT05OX1NFQVJDSF9DRUxMX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fU0VBUkNIX0NFTExfU0VBUkNIX0lORCwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TRUFSQ0hfQ0VMTF9TRUFSQ0hfQ05GLAorCisgICAgLyogTkNPTk4tTUVBUyAqLworICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fTUVBU19SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX1JFTEVBU0VfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfUkVQT1JUX0lORCwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX0xPQ0FUSU9OX01FQVNVUkVNRU5UX0lORCwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX1ZDX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfVkNfU1VTUEVORF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fTUVBU19WQ19SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfVkNfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfU1VTUEVORF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fTUVBU19SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX1NZTkNfQ09OTkVDVElPTl9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfU1lOQ19DT05ORUNUSU9OX1NUQVRVU19DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fTUVBU19DVVNUT01fQkFSX0xJU1RfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX01FQVNfQ1VTVE9NX0JBUl9MSVNUX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9NRUFTX0NVU1RPTV9CQVJfTElTVF9DTEVBUl9OVEYsCisKKyAgICAvKiBNRUFTLU5DT05OICovCisgICAgTVNHX0lEX05SUkNfTUVBU19OQ09OTl9OUl9SRVBPUlRfQ0dJX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NRUFTX05DT05OX05SX1JFUE9SVF9DR0lfQ05GLAorICAgIE1TR19JRF9OUlJDX01FQVNfTkNPTk5fRVVUUkFfUkVQT1JUX0NHSV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUVBU19OQ09OTl9FVVRSQV9SRVBPUlRfQ0dJX0NORiwKKworICAgIC8qIE1TR3MgaW4gTlJSQzpTSSovCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9DT0xMRUNUX1NJX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0NPTExFQ1RfU0lfSU5ELAorICAgIE1TR19JRF9OUlJDX0lETEVfU0lfQ09MTEVDVF9TSV9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9TVE9SRV9TSV9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9TVE9SRV9TSV9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9CQ0NIX1RZUEVfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0JDQ0hfVFlQRV9DSEFOR0VfQ05GLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0lfUFdTX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX1BXU19DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9SRUZSRVNIX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0lfU1VTUEVORF9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0lfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0RFTF9QV1NfRFVQTElDQVRFX1JFUSwgLyogYnkgZ3Nfc2NvcGUgKi8KKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0dFTUlOSV9TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0dFTUlOSV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0dFTUlOSV9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0lfR0VNSU5JX1JFU1VNRV9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9HRU1JTklfUkVTVU1FX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0dFTUlOSV9WSVJUVUFMX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX0lETEVfU0lfR0VNSU5JX1ZJUlRVQUxfU1VTUEVORF9DTkYsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9HRU1JTklfVklSVFVBTF9TVVNQRU5EX0NPTVBMRVRFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19JRExFX1NJX0dFTUlOSV9WSVJUVUFMX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9HRU1JTklfVklSVFVBTF9NT0RFX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05SUkNfSURMRV9TSV9HRU1JTklfVklSVFVBTF9NT0RFX1VQREFURV9DTkYsCisKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9DT0xMRUNUX1NJX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9DT0xMRUNUX1NJX0lORCwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9DT0xMRUNUX1NJX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9TVE9SRV9TSV9SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fU0lfU1RPUkVfU0lfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX0JDQ0hfVFlQRV9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX0JDQ0hfVFlQRV9DSEFOR0VfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX1BXU19SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fU0lfUFdTX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9SRUZSRVNIX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX1JFU1VNRV9DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fU0lfREVMX1BXU19EVVBMSUNBVEVfUkVRLCAvKiBieSBnc19zY29wZSAqLworICAgIE1TR19JRF9OUlJDX05DT05OX1NJX0RFRElDQVRFRF9TSV9IQU5ETEVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX0RFRElDQVRFRF9TSV9IQU5ETEVfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX1JFU0VUX1NJX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9TSV9SRVNFVF9TSV9DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fU0lfR0VNSU5JX1ZJUlRVQUxfTU9ERV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX1NJX0dFTUlOSV9WSVJUVUFMX01PREVfVVBEQVRFX0NORiwKKyAgIAorICAgIC8qIFNJLVNJICovCisgICAgTVNHX0lEX05SUkNfU0lfU0lfU0hBUkVEX0JDQ0hfSU5ELCAvKiBHRU1JTkkgU0kgcmV1c2UgKi8KKworICAgIC8qIE1BSU4tU0kgKi8KKyAgICBNU0dfSURfTlJSQ19NQUlOX1NJX1NUT1JFX1NJX0VYUElSRV9JTkQsCisKKyAgICAvKiBNQUlOLU5DT05OICovCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9TVE9SRV9TSV9FWFBJUkVEX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1NZU19JTkZPX1VQREFURV9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9FU1RBQkxJU0hfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fRVNUQUJMSVNIX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1NVQ0NFU1NfSU5ELAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fU1VDQ0VTU19SU1AsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9FU1RBQkxJU0hfQUJPUlRfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fRVNUQUJMSVNIX0FCT1JUX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1BEVV9IQU5ETEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fUERVX0hBTkRMRV9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1JFTEVBU0VfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fUkVMRUFTRV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0lOVEVHUklUWV9GQUlMX0hBTkRMRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9TRVJWSU5HX0NFTExfSU5ELAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fSE9fRlJPTV9OUl9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9IT19GUk9NX05SX1JTUCwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0hPX1RPX05SX0lFX0NIRUNLX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0hPX1RPX05SX0lFX0NIRUNLX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0hPX1RPX05SX0lFX0NIRUNLX0NMRUFOX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0hPX1RPX05SX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0hPX1RPX05SX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9SRVNVTUVfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fUkVTVU1FX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1JFU1VNRV9BQk9SVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9IT19TVUNDRVNTX0lORCwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0NFTExfU0VBUkNIX05FRURFRF9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9DRUxMX1NFQVJDSF9ORUVERURfUlNQLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fQ0VMTF9TRUFSQ0hfUkVBRFlfSU5ELAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fUkVfRVNUX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9SRV9FU1RfU0VBUkNIX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX1ZDX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fVkNfU1VTUEVORF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9WQ19SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fVkNfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0ZBS0VfQTJfU0VOVF9JTkQsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9TTUFSVF9JRExFX0NPTkZJR19VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fRFNQX1NOSUZGRVJfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fRFNQX1NOSUZGRVJfQ05GLAorICAgIE1TR19JRF9OUlJDX01BSU5fTkNPTk5fQ1VTVE9NX0JBUl9MSVNUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX05DT05OX0NVU1RPTV9CQVJfTElTVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTUFJTl9OQ09OTl9DVVNUT01fQkFSX0xJU1RfQ0xFQVJfTlRGLAorCisgICAgLyogTkNPTk4tQ09ORklHICovCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX0VTVF9BQk9SVF9SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX0VTVF9BQk9SVF9DTkYsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX1JFTEVBU0VfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRUxFQVNFX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfU0VDVVJJVFlfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfU0VDVVJJVFlfQ09ORklHX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfSE9fUkVWRVJUX0ZPUkdFVF9SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX0hPX1JFVkVSVF9GT1JHRVRfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19IT19SRVZFUlRfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19IT19SRVZFUlRfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRV9FU1RfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRV9FU1RfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19QVUNDSF9TUlNfUkVMRUFTRV9SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX1BVQ0NIX1NSU19SRUxFQVNFX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX1NVU1BFTkRfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRVNVTUVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRVNVTUVfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRVNVTUVfQUJPUlRfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19SRVNVTUVfQUJPUlRfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19MRUFWRV9SUkNfSU5BQ1RJVkVfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19MRUFWRV9SUkNfSU5BQ1RJVkVfQ05GLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19VU0VSX1BMQU5FX1JFU09VUkNFU19JTkQsCisgICAgTVNHX0lEX05SUkNfTkNPTk5fQ09ORklHX1ZDX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19WQ19TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfVkNfUkVTVU1FX1JFUSwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfVkNfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfTlJSQ19OQ09OTl9DT05GSUdfRFNQX1NOSUZGRVJfUkVRLAorICAgIE1TR19JRF9OUlJDX05DT05OX0NPTkZJR19EU1BfU05JRkZFUl9DTkYsCisKKyAgICAvKiBNQUlOLUNPTkZJRyAqLworICAgIE1TR19JRF9OUlJDX01BSU5fQ09ORklHX0lDRF9JTkZPX0lORCwKKyAgICBNU0dfSURfTlJSQ19NQUlOX0NPTkZJR19HRU1JTklfTU9ERV9VUERBVEVfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fQ09ORklHX0dFTUlOSV9NT0RFX1VQREFURV9DTkYsCisKKyAgICAvKiBNQUlOLU1BSU4gKi8KKyAgICBNU0dfSURfTlJSQ19NQUlOX01BSU5fUERVX1JSQ19SRUNPTkZJR1VSQVRJT05fUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTUFJTl9DT05OX1JFTF9TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9OUlJDX01BSU5fTUFJTl9HRU1JTklfU1VTUEVORF9DT01QTEVURV9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9NQUlOX0RTUF9TTklGRkVSX1JFUSwKKyAgICBNU0dfSURfTlJSQ19NQUlOX01BSU5fVk9OUl9FQVJMWV9DT05OX1JFTF9SRVEsCisgICAgTVNHX0lEX05SUkNfTUFJTl9NQUlOX05HUkFOX0NBUF9DSEFOR0VfSU5ELAorCisgICAgLyogVGltZXIgZXhwaXJ5IGluZGljYXRpb25zICovCisgICAgTVNHX0lEX05SUkNfVDMwMF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1QzMDFfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19UMzAyX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfVDMwNF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1QzMTBfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19UMzExX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfVDMyMF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1QzMjVfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19USU1FUl9TVE9SRURfU0lfRVhQSVJFRF9JTkQsICAgICAgLyogU0k6IGZvciBzdG9yZWQgU0kgdmFsaWRpdHkgKi8KKyAgICBNU0dfSURfTlJSQ19USU1FUl9CQ0NIX1BST1RFQ1RJT05fRVhQSVJZX0lORCwgLyogU0k6IGZvciBOTDEgQkNDSCByZWN2IHByb2NlZHVyZSAqLworICAgIE1TR19JRF9OUlJDX1RJTUVSX1BXU19XQVJOSU5HX01TR19TRUdfRVhQSVJZX0lORCwgLyogU0k6IGZvciBQV1MgbXNnLiBzZWcuIHdhdGNoZG9nICovCisgICAgTVNHX0lEX05SUkNfVElNRVJfUFdTX1JDVkRfSU5EX1dBVENIRE9HX0VYUElSWV9JTkQsIC8qIFNJOiBmb3IgUFdTIHJlY3YgcHJvY2VkdXJlICovCisgICAgTVNHX0lEX05SUkNfVElNRVJfUFdTX1BSSU9fV0FUQ0hET0dfRVhQSVJZX0lORCwgLyogU0k6IGZvciBmaXJzdCBQV1MgcHJpb3JpdGl6YXRpb24gKi8KKyAgICBNU0dfSURfTlJSQ19USU1FUl9TRUFSQ0hfUFJPQ0VEVVJFX0VYUElSWV9JTkQsIC8qIFNFQVJDSDogUHJvdGVjdCB0aW1lciBmb3IgU2VhcmNoIHByb2NlZHVyZSAqLworICAgIE1TR19JRF9OUlJDX1RJTUVSX1NFQVJDSF9BVVRPX0dBUF9TRUFSQ0hfRVhQSVJZX0lORCwgLyogU0VBUkNIOiBQcm90ZWN0IHRpbWVyIGZvciBBdXRvIEdhcCBTZWFyY2ggcHJvY2VkdXJlICovCisgICAgTVNHX0lEX05SUkNfVElNRVJfQkdfQkNDSF9QUk9URUNUSU9OX0VYUElSWV9JTkQsIC8qIEJHOiBmb3IgTkwxIEJDQ0ggcmVjdiBwcm9jZWR1cmUgKi8KKyAgICBNU0dfSURfTlJSQ19USU1FUl9CR19CR1NSQ0hfU0xFRVBfRVhQSVJZX0lORCwgLyogQkc6IGZvciBndWFyZGluZyBmdWxsIHNlYXJjaCBpbnRlcnZhbCBvZiBCR1NSQ0ggcHJvY2VkdXJlKi8KKyAgICBNU0dfSURfTlJSQ19USU1FUl9TTklGRkVSX0VYQ0xVREVfRlJFUV9FWFBJUllfSU5ELCAvKiBCRzogU25pZmZlciB0aW1lciB0byByZW1vdmUgZXhjbHVkZSBmcmVxICovCisgICAgTVNHX0lEX05SUkNfVElNRVJfU05JRkZFUl9JTlRFUlZBTF9FWFBJUllfSU5ELCAvKiBCRzogU25pZmZlciB0aW1lciB0byBjb21tYW5kIFNFQVJDSC9OTDEgc25pZmZlciBhZnRlciB0aGlzIGludGVydmFsICovCisgICAgTVNHX0lEX05SUkNfVElNRVJfSURMRV9FWENMVURFX05SX0ZSRVFfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19USU1FUl9JRExFX0VYQ0xVREVfTlJfQ0VMTF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX0lETEVfRVhDTFVERV9MVEVfRlJFUV9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX0lETEVfRVhDTFVERV9MVEVfQ0VMTF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX0lETEVfSVJfUkVESVJFQ1RfVElNRVJfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19USU1FUl9JRExFX1NFQVJDSF9QRVJJT0RfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19USU1FUl9JRExFX1NJX01PRF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX0lETEVfVEVNUF9RT0ZGU0VUX0NFTExfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19USU1FUl9JRExFX1RFTVBfUU9GRlNFVF9FUk1fQ0VMTF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX0lETEVfT0RTSV9SQV9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX0lETEVfUkVBRF9USU1FX1NJQjlfRVhQSVJFRF9JTkQsCisgICAgTVNHX0lEX05SUkNfVElNRVJfQ09OTl9SRUxfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19USU1FUl9DT05OX1NJX01PRF9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1QzMDRfVkNfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19UMzkwX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfTUVBU19SQ0dJX1QzMjFfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19NRUFTX1JDR0lfV0FJVF9DSEFOR0VfTU9ERV9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1RJTUVSX1JDR0lfUFJPVEVDVElPTl9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1QzMTlfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19UMzgwX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfTlJDQ19GRUFUVVJFX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfTF9MTk9QVF9GRUFUVVJFX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfTl9OT1BUX0ZFQVRVUkVfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19HRU1JTklfRkVBVFVSRV9FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1QzNDJfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19UMzQ1X0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfU0NHX0ZBSUxVUkVfQkFSX0VORENfRVhQSVJZX0lORCwKKyAgICBNU0dfSURfTlJSQ19TQ0dfUkVMRUFTRV9CQVJfRU5EQ19FWFBJUllfSU5ELAorICAgIE1TR19JRF9OUlJDX1ZDX1ZBTElEX0VYUElSWV9JTkQsCisgICAgTVNHX0lEX05SUkNfVk9OUl9FQVJMWV9DT05OX1JFTF9FWFBJUllfSU5ELAorCisgICAgLyogUlNWQU4gYW5kIE5SUkMgbWVzc2FnZSovCisgICAgTVNHX0lEX1JTVkFOX05SUkNfRlJFUVVFTkNZX1NDQU5fQUNDRVBUX0lORCwKKyAgICBNU0dfSURfUlNWQU5fTlJSQ19GUkVRVUVOQ1lfU0NBTl9QUkVFTVBUX0lORCwKKworICAgIC8qIFJTVkFTIG1lc3NhZ2UgKi8KKyAgICBNU0dfSURfUlNWQVNfTlJSQ19TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19OUlJDX1JFU1VNRV9TRVJWSUNFX1JFUSwKKyAgICBNU0dfSURfUlNWQVNfTlJSQ19BQk9SVF9TRVJWSUNFX1JFUSwKKyAgICBNU0dfSURfUlNWQVNfTlJSQ19BQk9SVF9TRVJWSUNFX0NPTVBMRVRFX0lORCwKKyAgICBNU0dfSURfUlNWQVNfTlJSQ19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX1JTVkFTX05SUkNfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfQ09NUExFVEVfSU5ELAorICAgIE1TR19JRF9SU1ZBU19OUlJDX1ZJUlRVQUxfUkVTVU1FX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19OUlJDX1ZJUlRVQUxfQ09OTkVDVEVEX1NVU1BFTkRfUkVRLAorICAgIE1TR19JRF9SU1ZBU19OUlJDX1ZJUlRVQUxfQ09OTkVDVEVEX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX1JTVkFTX05SUkNfVklSVFVBTF9NT0RFX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JTVkFTX05SUkNfR0VNSU5JX01PREVfVVBEQVRFX1JFUSwKKworICAgIC8qIExURUNTUiBtZXNzYWdlICovCisgICAgTVNHX0lEX05SUkNfTFRFQ1NSX0RFTEFZX0JVREdFVF9SRVBPUlRfSU5ELAorCisgICAgLyogTlJSQyBNQUlOIEludGVybmFsIFVzZSBtZXNzYWdlICovCisgICAgTVNHX0lEX05SUkNfTUFJTl9VRV9DQVBfQkNfTElTVF9JTkQsCisgICAgCisgICAgLyogTlJSQyBTRUFSQ0ggSW50ZXJuYWwgVXNlIG1lc3NhZ2UgKi8KKyAgICBNU0dfSURfTlJSQ19TRUFSQ0hfRFVNUF9DT05URVhUX0lORCwKKyAgICBNU0dfSURfTlJSQ19TRUFSQ0hfRFVNUF9DQVJSSUVSX0NPTlRST0xfSU5GT19JTkQsCisKK01TR19JRF9OUlJDX01TR19JRF9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX05SUkNfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIE5SUkNfTVNHSURfSCAqLworCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ud3NlbF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbndzZWxfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTAyZTRlCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvbndzZWxfbXNnaWQuaApAQCAtMCwwICsxLDI3NiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE5CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBud3NlbC5zYXAKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVk1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBOV1NFTCByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1NX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9OV1NFTF9DT0RFX0JFR0lOICkKKy8qIG1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gR01TUyBhdCBHTVNTX05XU0VMX1NBUCAqLworICAgIE1TR19JRF9HTVNTX05XU0VMX0FUVEFDSF9SRVEgPSBNU0dfSURfTldTRUxfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfR01TU19OV1NFTF9ERVRBQ0hfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JBQ19QTE1OX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUkFDX1BMTU5fU0VBUkNIX1NUT1BfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0lOSVRfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JGT0ZGX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TRUxfTU9ERV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0VUX1JPQU1JTkdfTU9ERV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0VUX1BSRUZFUl9SQVRfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0dFVF9QUkVGRVJfUkFUX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9FTEVWQVRPUl9NT0RFX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfUExNTl9MSVNUX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfUExNTl9MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JBQ19QTE1OX0xJU1RfQUJPUlRfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JBQ19DU0dfTElTVF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUkFDX0NTR19MSVNUX1NUT1BfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9SQVRfTU9ERV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfVVBEQVRFX1VFTU9ERV9SRVEsIC8qIHNob3VsZCBiZSByZXBsYWNlZCBieSB0aGUgZm9sbG93aW5nIE1TR19JRF9HTVNTX05XU0VMX1VFTU9ERV9QQVJBTV9VUERBVEVfUkVRICovCisgICAgTVNHX0lEX0dNU1NfTldTRUxfVUVNT0RFX1BBUkFNX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU1VTUF9SRVNVX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfQUJPUlRfRU1FUkdFTkNZX1BMTU5fU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9BQk9SVF9FTldTRUxfU0VBUkNIX1JFUSwKKyAgICAvKiBhZGQgZm9yIDYyOTEgTVRDICovCisgICAgTVNHX0lEX0dNU1NfTldTRUxfSU1TX0NBTExfSU5GT19SRVEsCisgICAgLyogYWRkIGZvciA2MjkxIE1UQyAqLworICAgIE1TR19JRF9HTVNTX05XU0VMX01NRENfUkVDT1ZFUllfU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfUkVDT1ZFUllfU0VBUkNIX1RJTUVSX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9HRVRfUkVDT1ZFUllfU0VBUkNIX1RJTUVSX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DVVNUT01fUExNTl9MSVNUX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfR0VUX0NVU1RPTV9QTE1OX0xJU1RfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9VVFJBTl9WT0lDRV9ET01BSU5fUFJFRkVSRU5DRV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfREFUQV9TRVJWSUNFX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BMTU5fU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9NQ0NfU0VBUkNIX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9QTE1OX0xJU1RfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BMTU5fTElTVF9TVE9QX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SRVNFVF9TRUFSQ0hfUkVTVUxUX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9HTVNTX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NJTV9SRUFEWV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0lNX0VSUk9SX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9BUkFMX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfTk9fU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfQzJLX0lSQVRfQ09NUExFVEVfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX05WUkFNX1dSSVRFX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DMktfTk9STUFMX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1BSSU9fQ0xBU1NfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9BQ1RJVkVfU0lNX0lORk9fUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0RJU0FCTEVfRVVUUkFOX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9ST0FNSU5HX0RBVEFfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9BVVhfUExNTl9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0VUX01SVV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfQ0xFQVJfTVJVX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DU0dfQVVUT19TRUFSQ0hfTU9ERV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUkFUX0NIQU5HRV9TVUNDRVNTX05PVElGWV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfR0xPQkFMX01PREVfQ0hBTkdFX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9QTE1OX0lORk9fUlNQLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9GSVJTVF9DQU1QX09OX1BSRUZFUl9SQVRfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0hWT0xURV9NT0RFX0NIQU5HRV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRU1DX0JBUl9ORVRXT1JLX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SQUNfSU5WQUxJRF9TSU1fUkVDT1ZFUl9SU1AsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfUFJJTUFSWV9TSU1fRFVQTEVYX01PREVfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9ERUFDVElWQVRFX0xJTUlUX1NFUlZfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0xJTUlUX1NFUlZfU1JDSF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfQ0FMTF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9HTVNTX05XU0VMX1JBVF9ESVNBQkxFX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU05JRkZFUl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU05JRkZFUl9TVE9QX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9EQVRBX0FMTE9XX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9JTkFDVElWRV9NT0RFX0NPTkZJR1VSQVRJT05fUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX1NFUlZJQ0VfUkVDT1ZFUllfUk9VTkRfVVBEQVRFX1JFUSwKKworLyogbWVzc2FnZXMgZm9yIHJlbGF5aW5nIHRvIE5BUyBTViovCisgICAgTVNHX0lEX0dNU1NfTldTRUxfQ1NTX01DQ19TRUFSQ0hfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0NTU19DU19SRUdfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0NTU19QU19SRUdfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0NTU19QU19ERVJFR19SRVEsCisKKy8qIG1lc3NhZ2VzIGZvciBWWlcgRUNDIGNhbGwgKi8KKyAgICBNU0dfSURfR01TU19OV1NFTF9FTUNfU0VTU0lPTl9TVEFSVF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRU1DX1NFU1NJT05fU1RPUF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRUNCTV9TVEFSVF9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRUNCTV9TVE9QX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9DMktfRU1DX0xPQ0FMX0RFVEFDSF9SRVEsCisKKyAgICBNU0dfSURfR01TU19OV1NFTF9QTE1OX0xJU1RfU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfTU9ERV9TV0lUQ0hfTVRfQ1NGQl9TVUNDRVNTX0lORCwKKworICAgIE1TR19JRF9HTVNTX05XU0VMX1NDUkVFTl9PTl9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfU0NSRUVOX09GRl9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfVk9MVEVfU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0dNU1NfTldTRUxfR01TU19JUkFUX1NUQVJUX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9HTVNTX0lSQVRfRklOSVNIX0lORCwKKyAgICBNU0dfSURfR01TU19OV1NFTF9QT1dFUl9PTl9QUk9URUNUSU9OX1JFUSwKKworICAgIE1TR19JRF9HTVNTX05XU0VMX1NFVF9QTE1OX0JBUlJJTkdfVElNRVJfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0dFVF9QTE1OX0JBUlJJTkdfVElNRVJfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX0lNU19USU1FUl9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfSU1TX1JPQU1JTkdfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9JTVNfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorCisgICAgTVNHX0lEX0dNU1NfTldTRUxfRlBMTU5fQUNUSU9OX1JFUSwKKyAgICBNU0dfSURfR01TU19OV1NFTF9SRUdOX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9HTVNTX05XU0VMX01TUExfU0VBUkNIX0VYSEFVU1RFRCwKKworLyogbWVzc2FnZXMgZm9yIGFsbG93ZWQgTUNDIGxpc3QgKi8KKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVRfQUxMT1dFRF9NQ0NfTElTVF9SRVEsCisKKy8qIG1lc3NhZ2VzIGZvciB2b2ljZSBzZWxlY3Rpb24gKi8KKyAgICBNU0dfSURfR01TU19OV1NFTF9TRVJWSUNFX1NDQU5fUkVRLAorCisvKiBtZXNzYWdlcyBmb3IgK0VDQU1QVUkgKi8KKyAgICBNU0dfSURfR01TU19OV1NFTF9DQU1QX1VJX0lORCwKKworLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBNTSBhdCBOV1NFTF9NTV9TQVAgKi8KKyAgICBNU0dfSURfTldTRUxfTU1fUExNTl9MT1NTX0lORCwKKyAgICBNU0dfSURfTldTRUxfTU1fT1VUX09GX1NFUlZJQ0VfSU5ELAorICAgIE1TR19JRF9OV1NFTF9NTV9DU0dfTElTVF9DTkYsCisgICAgTVNHX0lEX05XU0VMX01NX0NTR19MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9OV1NFTF9NTV9SRVNVTUVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9NTV9TVVNQRU5EX0lORCwKKyAgICBNU0dfSURfTldTRUxfTU1fVklSVFVBTF9NT0RFX0lORCwKKyAgICBNU0dfSURfTldTRUxfTU1fUkVHTl9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9OV1NFTF9NTV9FVkVOVF9JTkQsCisgICAgLyogI2lmZGVmIF9fTFRFX1JBVF9fICovCisgICAgTVNHX0lEX05XU0VMX01NX0VVVFJBTl9DQVBfVVBEQVRFX0NORiwKKyAgICAvKiAjZW5kaWYgKi8KKyAgICBNU0dfSURfTldTRUxfTU1fQ0VMTF9HTE9CQUxfSURFTlRJVFlfSU5GT19JTkQsCisgICAgTVNHX0lEX05XU0VMX01NX1BMTU5fRk9VTkRfSU5ELAorICAgIE1TR19JRF9OV1NFTF9NTV9QTE1OX1NDQU5fSU5ELAorICAgIE1TR19JRF9OV1NFTF9NTV9DRUxMX0JBTkRfSU5GT19VUERBVEVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9NTV9TRVRfTVJVX0NORiwKKyAgICBNU0dfSURfTldTRUxfTU1fTU9ERV9TV0lUQ0hfTVRfQ1NGQl9TVUNDRVNTX0lORCwKKyAgICBNU0dfSURfTldTRUxfTU1fQ0FMTF9TVEFUVVNfSU5ELAorCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIE1NIGF0IE5XU0VMX0VWQUxfU0FQICovCisgICAgTVNHX0lEX05XU0VMX0VWQUxfUExNTl9MT1NTX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9PVVRfT0ZfU0VSVklDRV9JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfUExNTl9MSVNUX0NORiwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9QTE1OX0xJU1RfU1RPUF9DTkYsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfQ1NHX0xJU1RfQ05GLAorICAgIE1TR19JRF9OV1NFTF9FVkFMX0NTR19MSVNUX1NUT1BfQ05GLAorICAgIE1TR19JRF9OV1NFTF9FVkFMX1JFR05fUkVTVUxUX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9TSUdOQUxfQVBQRUFSX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9UMzQwMl9DSEFOR0VfSU5ELCAgLy8gX19SRUwxMF9fOiB0MzQwMgorICAgIE1TR19JRF9OV1NFTF9FVkFMX1BFUlNJU1RFTlRfRVBTQl9SRUxfSU5ELCAgLy8gX19SRUwxMF9fOiBwZXJzaXN0ZW50IEVQU0IKKyAgICBNU0dfSURfTldTRUxfRVZBTF9QTE1OX1JFU1RSSUNUSU9OX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfRU1FUkdFTkNZX1NUQVRVU19VUERBVEVfSU5ELCAvLyBmb3IgSU1TCisgICAgTVNHX0lEX05XU0VMX0VWQUxfT09TX1NFQVJDSF9JTkQsIC8vIGZvciBHTVNTIEMySworICAgIE1TR19JRF9OV1NFTF9FVkFMX1BMTU5fRk9VTkRfSU5ELAorICAgIE1TR19JRF9OV1NFTF9FVkFMX1BMTU5fU0NBTl9JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfQ0VMTF9CQU5EX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9TRVRfTVJVX0NORiwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9JUkFUX0MyTF9TVUNDRVNTX05PVElGWV9JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfU0VBUkNIX0lOVEVSUlVQVF9FVkVOVF9JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfRVZET19QU19DT05ORUNUSU9OX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfMVhSVFRfUFNfQ09OTkVDVElPTl9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9OV1NFTF9FVkFMX0MyS19DU0ZCX1NUQVJUX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9DMktfQ1NGQl9FU1RfSU5ELAorICAgIE1TR19JRF9OV1NFTF9FVkFMX0MyS19DU0ZCX1NUT1BfSU5ELAorICAgIE1TR19JRF9OV1NFTF9FVkFMX05FRURfRFVQTEVYX01PREVfQ0hHX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9DTEVBUl9GT1JCSURERU5fVEFfTkVFRF9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OV1NFTF9FVkFMX09USEVSX1JBVF9TVEFSVF9TRUFSQ0hfSU5ELAorICAgIE1TR19JRF9OV1NFTF9FVkFMX1VQREFURV9FTUNfUEROX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfSUFfQVBOX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX05XU0VMX0VWQUxfSU1TX0hBTkRPVkVSX05FRURfU0VBUkNIX0lORCwKKyAgICBNU0dfSURfTldTRUxfRVZBTF9JQV9BUE5fTk9UX1JFQURZX0lORCwKKy8qIG1lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBTSU0gYXQgTU1fU0lNX1NBUCovCisKKy8qIG1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gTldTRUwgYXQgTldTRUxfTldTRUxfU0FQICovCisgICAgTVNHX0lEX05XU0VMX05XU0VMX0NPTlRFWFRfRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX1NFQVJDSF9MSVNUX0RVTVBfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OV1NFTF9TQlBfRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX1NJTV9EQVRBX1RSQUNFX0lORCwKKyAgICBNU0dfSURfTldTRUxfTldTRUxfSVJBVF9SU1NJX1NFQVJDSF9NQU5BR0VSX0RVTVBfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OV1NFTF9CR19CQU5EX0xFQVJOSU5HX01BTkFHRVJfRFVNUF9JTkQsCisgICAgLy8jaWZkZWYgX19TRU5TSVRJVkVfREFUQV9NT1NBSUNfXworICAgIE1TR19JRF9OV1NFTF9OV1NFTF9OQVNfU1ZfU1lTX0lORk9fRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX0lOSVRfUkVRX0RVTVBfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OV1NFTF9TSU1fUkVBRFlfRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX0dNU1NfUExNTl9TRUFSQ0hfUkVRX0RVTVBfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OV1NFTF9FVkFMX1NZU19JTkZPX1VQREFURV9SRVFfRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX01NX1NZU19JTkZPX1VQREFURV9SRVFfRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX05BU19TVl9WR01NX1NZU19JTkZPX1VQREFURV9SRVFfRFVNUF9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX01NX0NFTExfR0xPQkFMX0lERU5USVRZX0lORk9fVVBEQVRFX1JFUV9EVU1QX0lORCwKKyAgICBNU0dfSURfTldTRUxfTldTRUxfR01TU19SQUNfUExNTl9TRUFSQ0hfQ05GX0RVTVBfSU5ELAorICAgIC8vI2VuZGlmCisgICAgTVNHX0lEX05XU0VMX05XU0VMX1BMTU5fTElTVF9VUERBVEVfSU5ELAorCisvKlRCRCovCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIFJBVENNIGF0IE5XU0VMX1JBVENNX1NBUCAqLworICAgIE1TR19JRF9OV1NFTF9SQVRDTV9DRUxMX0NIQU5HRV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX05XU0VMX1JBVENNX0NFTExfQ0hBTkdFX0ZJTklTSF9JTkQsCisgICAgTVNHX0lEX05XU0VMX1JBVENNX1NJR05BTF9BUFBFQVJfSU5ELAorCisgICAgTVNHX0lEX05XU0VMX05XU0VMX0lOSkVDVF9TRUFSQ0hfTElTVF9JTkQsCisvKiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIFBBTSBhdCBOV1NFTF9QQU1fU0FQICovCisgICAgTVNHX0lEX05XU0VMX1BBTV9USFJPVFRMSU5HX0FQTl9VUERBVEVfSU5ELAorICAgIE1TR19JRF9OV1NFTF9QQU1fUEROX0FWQUlMQUJJTElUWV9VUERBVEVfUkVRLAorLyogbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBERE0gYXQgRERNX05XU0VMX1NBUCAqLworICAgIE1TR19JRF9OV1NFTF9VVF9JTkpFQ1RfSU5ELAorICAgIE1TR19JRF9OV1NFTF9VVF9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9OV1NFTF9OV1NFTF9MRUFWRV9SRUoxM19FVVRSQU5fRElTQUJMRV9BUkVBX0lORCwKKyAgICBNU0dfSURfTldTRUxfTldTRUxfTEVBVkVfUkVKMTVfRVVUUkFOX0RJU0FCTEVfQVJFQV9JTkQsCisgICAgTVNHX0lEX05XU0VMX05XU0VMX0dQU19EQVRBX1ZBTElEX0lORCwKKyAgICBNU0dfSURfTldTRUxfTldTRUxfRkFSX0RJU1RBTkNFX0lORCwKKyAgICBNU0dfSURfRERNX05XU0VMX0VVVFJBTl9ESVNBQkxFX0NIRUNLX1JTUCwKKyAgICBNU0dfSURfTldTRUxfQ09ERV9FTkQgPSBNU0dfSURfRERNX05XU0VMX0VVVFJBTl9ESVNBQkxFX0NIRUNLX1JTUCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9OV1NFTF9DT0RFX1RBSUwgKQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNTV9NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wMnBfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3AycF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlYTA1YzIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wMnBfbXNnaWQuaApAQCAtMCwwICsxLDkyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHAycC5zYXAKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTUFVSQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFAyUCByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogCQkJCUhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyoKKyogIFRoaXMgcHJvZHVjdCBoYXMgYmVlbiBkZXZlbG9wZWQgdXNpbmcgYSBwcm90b2NvbCBzdGFjaworKiAgZGV2ZWxvcGVkIGJ5IFNhc2tlbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBMaW1pdGVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9QMlBfTVNHX0gKKyNkZWZpbmUgX1AyUF9NU0dfSAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFAyUCBtZXNzYWdlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUDJQX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9QMlBfVkwxX1RJQ0tfSU5EID0gTVNHX0lEX1AyUF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9QMlBfU0VORF9VTF9EQVRBX0lORCwKKyAgICBNU0dfSURfUDJQX0NPREVfRU5EID0gTVNHX0lEX1AyUF9TRU5EX1VMX0RBVEFfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9QMlBfQ09ERV9UQUlMICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFAyUF9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworCisjZW5kaWYgIC8vX1AyUF9NU0dfSApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BhbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcGFtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1MGE5ZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BhbV9tc2dpZC5oCkBAIC0wLDAgKzEsMjY0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICAKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBQQU0gcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAKKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogCQkJCUhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9QQU1fTVNHX0gKKyNkZWZpbmUgX1BBTV9NU0dfSAorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0gUEFNX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9QQU1fQ09ERV9CRUdJTiApCitNU0dfSURfUEFNX01TR19JRF9TVEFSVCA9IE1TR19JRF9QQU1fQ09ERV9CRUdJTiwKKworICAgIE1TR19JRF9QQU1fUFJPQ0VTU19CWV9DT05URVhUX01BSU5fU1RBUlQsCisgICAgICAgIE1TR19JRF9OV1NFTF9QQU1fRVFfUExNTl9MSVNUX1VQREFURV9JTkQsCisgICAgICAgIE1TR19JRF9UQ01fUEFNX1NUQVJUX1JFUSwKKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fQVRUQUNIX0NPTlRFWFRfREVGSU5FRF9OT1RJRllfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9DRUxMVUxBUl9ORVRXT1JLX0NPTkZJR19SRVEsCisgICAgICAgIE1TR19JRF9UQ01fUEFNX0lBX0FQTl9DSEFOR0VfUkVRLCAKKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fU0VUX1ZaV19BUE5fVEFCTEVfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9HRVRfVlpXX0FQTl9UQUJMRV9SRVEsCisgICAgICAgIE1TR19JRF9UQ01fUEFNX1NFVF9WWldfUEFSQU1TX1JFUSwKKyAgICAgICAgTVNHX0lEX1RDTV9QQU1fR0VUX1ZaV19QQVJBTVNfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9HRVRfQVBOX0JMT0NLSU5HX1RJTUVSX0xFTkdUSF9SRVEsCisKKyAgICAgICAgLyogTVNHcyBmcm9tIFNNL0VTTSAqLworICAgICAgICBNU0dfSURfUEFNX1NUT1BfQUxMX1QzMzk2X0lORCwKKyAgICAgICAgTVNHX0lEX1BBTV9QRFBfU1lOQ0VEX0lORCwKKyAgICAgICAgCisgICAgICAgIC8qIE1TR3MgZnJvbSBFU00gKi8KKyAgICAgICAgTVNHX0lEX1BBTV9FU01fVDM0MDJfU1RPUF9JTkQsCisgICAgICAgIE1TR19JRF9QQU1fRVNNX1NUT1BfQUxMX1BETl9USFJPVFRfVElNRVJfSU5ELAorICAgICAgICBNU0dfSURfUEFNX0VTTV9DT05OX0VTVF9JTkQsCisgICAgICAgIE1TR19JRF9QQU1fRVNNX1QzNDAyX0NIQU5HRV9JTkQsIC8vIF9fQVRuVF9fCisKKyAgICAgICAgLyogTVNHcyBmb3IgbG9nZ2luZyAqLworICAgICAgICBNU0dfSURfUEFNX0xPR19QSUIsIAorICAgICAgICBNU0dfSURfUEFNX0xPR19TTUlCLAorICAgICAgICBNU0dfSURfUEFNX0xPR19TTUlCX1ZaVywKKyAgICAgICAgTVNHX0lEX1BBTV9MT0dfU01JQl9WWldfNUcsCisgICAgICAgIE1TR19JRF9QQU1fTE9HX0FQSV9JU19ISUdIX1BSSU9SSVRZX0FDQ0VTUywKKworICAgICAgICAvKiBNU0dzIGZvciBVU00gY29udGV4dCBjaGVja2luZyAqLworICAgICAgICBNU0dfSURfVVNNX0NIRUNLX0dWLAorCisgICAgICAgIE1TR19JRF9UQ01fUEFNX0VWRU5UX05PVElGWV9SRVEsCisKKyAgICAgICAgLyogTVNHcyBmcm9tIFZHU00gKi8KKyAgICAgICAgTVNHX0lEX1BBTV9WR1NNX1NUT1BfQ09OR0VTVElPTl9USU1FUlNfSU5ELAorCisgICAgICAgIC8qIE1TR3MgZnJvbSBOQVMtU1YgKi8KKyAgICAgICAgTVNHX0lEX05BU19TVl9QQU1fUkZPRkZfTlRGLAorICAgICAgICAKKyAgICBNU0dfSURfUEFNX1BST0NFU1NfQllfQ09OVEVYVF9NQUlOX0VORCwKKworCisgICAgLyogTVNHcyBmb3IgVkdTTSAqLworICAgIE1TR19JRF9QQU1fUFJPQ0VTU19CWV9TTV9QUk9DRVNTX01BSU5fU1RBUlQgPSBNU0dfSURfUEFNX1BST0NFU1NfQllfQ09OVEVYVF9NQUlOX0VORCsxLAorICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9FU1RfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9NT0RfUkVRLAorICAgICAgICBNU0dfSURfVENNX1BBTV9QRFVfU0VTU0lPTl9SRUxfUkVRLAorICAgICAgICBNU0dfSURfUEFNX1ZHU01fUERVX1NFU1NJT05fRVNUX0NORiwgLy9URU1QCisgICAgICAgIE1TR19JRF9QQU1fVkdTTV9QRFVfU0VTU0lPTl9FU1RfUkVKLCAvL1RFTVAKKyAgICAgICAgTVNHX0lEX1BBTV9WR1NNX1BEVV9TRVNTSU9OX01PRF9DTkYsIC8vVEVNUAorICAgICAgICBNU0dfSURfUEFNX1ZHU01fUERVX1NFU1NJT05fTU9EX0lORCwgLy9URU1QCisgICAgICAgIE1TR19JRF9QQU1fVkdTTV9QRFVfU0VTU0lPTl9NT0RfUkVKLCAvL1RFTVAKKyAgICAgICAgTVNHX0lEX1BBTV9WR1NNX1BEVV9TRVNTSU9OX1JFTF9DTkYsIC8vVEVNUAorICAgICAgICBNU0dfSURfUEFNX1ZHU01fUERVX1NFU1NJT05fUkVMX1JFSiwgLy9URU1QCisgICAgICAgIE1TR19JRF9QQU1fVkdTTV9QRFVfU0VTU0lPTl9SRUxfSU5ELCAvL1RFTVAKKyAgICAgICAgTVNHX0lEX1BBTV9WR1NNX0xBRE5fSU5GT19VUERBVEVfSU5ELAorICAgICAgICBNU0dfSURfUEFNX1ZHU01fNEc1X0NPTlRFWFRfVFJBTlNGRVJSRURfSU5ELAorICAgICAgICBNU0dfSURfUEFNX1ZHU01fTEFETl9JTk9VVF9DSEFOR0VfSU5ELAorICAgIE1TR19JRF9QQU1fUFJPQ0VTU19CWV9TTV9QUk9DRVNTX01BSU5fRU5ELAorCitNU0dfSURfUEFNX01TR19JRF9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1BBTV9DT0RFX1RBSUwgKQorLyotLS0tLS0tLS0tLS0tLS0tLS0tIFBBTV9NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNlbmRpZiAgLyogX1BBTV9NU0dfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvcGVyZl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcGVyZl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjM2U2MjgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wZXJmX21zZ2lkLmgKQEAgLTAsMCArMSw2NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1BFUkZfTVNHSURfSF8KKyNkZWZpbmUgX1BFUkZfTVNHSURfSF8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1BFUkZfQ09ERV9CRUdJTiApCisKKyAgICBNU0dfSURfUFJPVE9DT0xfRVhDRVBUSU9OX1JFQ09WRVJZLAorICAgIE1TR19JRF9QRVJGX0w0QlBXUl9GTElHSFRfTU9ERV9SRUNPVkVSWV9SRVEsCisgICAgTVNHX0lEX1BFUkZfTDRCUFdSX0ZMSUdIVF9NT0RFX1JFQ09WRVJZX0NORiwKKyAgICBNU0dfSURfUEVSRl9FTU1fTFRFX0xPQ0FMX1JFTEVBU0VfUkVDT1ZFUllfUkVRLAorICAgIE1TR19JRF9QRVJGX0VNTV9MVEVfTE9DQUxfUkVMRUFTRV9SRUNPVkVSWV9DTkYsCisgICAgLy9NU0dfSURfUEVSRl9FUlJDX1JFRVNUQUJMSVNITUVOVF9SRUNPVkVSWV9SRVEsCisgICAgTVNHX0lEX1BFUkZfRVJSQ19SRUVTVEFCTElTSE1FTlRfUkVDT1ZFUllfQ05GLAorICAgIC8vU3RhcnQgTlIgTVNHCisgICAgTVNHX0lEX0VSTV9FUlJPUl9JTkQsCisgICAgTVNHX0lEX0VSTV9OUlJDX0NFTExfSU5GT19JTkQsIAorICAgIE1TR19JRF9FUk1fTlJSQ19FUlJPUl9SRUNPVkVSWV9JTkQsCisgICAgTVNHX0lEX0VSTV9OUlJDX0VSUk9SX1JFQ09WRVJZX1JFUSwKKyAgICBNU0dfSURfRVJNX05SUkNfRVJST1JfUkVDT1ZFUllfQ05GLCAKKyAgICBNU0dfSURfRVJNX1ZHTU1fRVJST1JfUkVDT1ZFUllfUkVRLAorICAgIE1TR19JRF9FUk1fVkdNTV9FUlJPUl9SRUNPVkVSWV9DTkYsIAorICAgIE1TR19JRF9FUk1fTlJSQ19QRU5BTFRZX1JFUSwgCisgICAgTVNHX0lEX0VSTV9OUlJDX1BFTkFMVFlfQ05GLAorICAgIE1TR19JRF9FUk1fTlJSQ19CQVJSSU5HX0lORk9fVVBEQVRFX1JFUSwKKyAgICAvL0VuZCBOUiBNU0cgICAgCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUEVSRl9DT0RFX1RBSUwgKQorCisjZW5kaWYgLy8gfiAjaWZuZGVmIF9QRVJGX01TR0lEX0hfClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHBwX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wcHBfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTk4MzUyCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHBwX21zZ2lkLmgKQEAgLTAsMCArMSwyMDYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgcHBwLnNhcAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgUFBQIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAJCQkJSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfUFBQX01TR19ICisjZGVmaW5lIF9QUFBfTVNHX0gKKworCS8qLS0tLS0tLS0tLS0tLS0gUFBQX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9QUFBfQ09ERV9CRUdJTiApCisJLyotLS0tLS0tLS0tLS0tLSBQUFAgZm9yIEdQUlMgbWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKwkvKiBtc2cgZnJvbSBMNEMgKi8KKworCU1TR19UQUdfUFBQX0ZJUlNUX0dQUlNfTVNHID0gTVNHX0lEX1BQUF9DT0RFX0JFR0lOLAorCU1TR19JRF9MNENQUFBfQUNUSVZBVEVfUkVRID0gTVNHX1RBR19QUFBfRklSU1RfR1BSU19NU0csCisJTVNHX0lEX0w0Q1BQUF9ERUFDVElWQVRFX1JFUSwKKwlNU0dfSURfTDRDUFBQX1JFU1VNRV9SRVEsCisJTVNHX0lEX0w0Q1BQUF9QUFBUWVBFUERQX1VBUlRfVFJBTlNGRVJfSU5ELCAvLyBQUFAgVHlwZSBQRFAgRGlhbHVwIEZlYXR1cmUKKwlNU0dfSURfTDRDUFBQX0lQVjRWNl9GQUxMQkFDS19SU1AsICAgICAgICAgIC8vX19JUFY0VjZfXworCisgICAgLyogbXNnIGZyb20gVENNICovCisJTVNHX0lEX1RBRl9FWFRfUERQX0FDVElWQVRFX0FDS19SU1AsCisgIAlNU0dfSURfVEFGX0VYVF9QRFBfQUNUSVZBVEVfUkVKX1JTUCwKKyAgCU1TR19JRF9UQUZfRVhUX1BEUF9ERUFDVElWQVRFX0FDS19SU1AsCisgIAlNU0dfSURfVEFGX0VYVF9QRFBfREVBQ1RJVkFURV9SRVEsCisgIAlNU0dfSURfVEFGX0RBVEFfUkVRLAorICAJTVNHX0lEX1RBRl9FWFRfVVBEQVRFX1BEUF9BRERSX1JFUSwKKyAgCU1TR19JRF9UQUZfRVhUX1BEUF9TRVRfSVBfQU5EX0ROU19JTkZPX0NORiwKKwkvL210azA0MTIxCisJLyogUFBQIERpYWwtdXAgKi8KKwlNU0dfSURfVEFGX0VYVF9FTlRFUl9EQVRBX01PREVfQ05GLAorCisJLyogbXNnIHRvIHNlbGYoUFBQKSAqLworCU1TR19JRF9QUFBfRkxDX0RBVEFfUkVTVU1FX0lORCwKKwlNU0dfSURfUFBQX1NUQVRVU19SRVBPUlRfSU5ELAorCU1TR19JRF9QUFBfUFJPQ0VTU19QS1RfSU5ELAorCisgICAgICAgTVNHX0lEX1RBRl9QU19TVVNQRU5EX0lORCwKKyAgICAgICBNU0dfSURfVEFGX1BTX1JFU1VNRV9JTkQsCisJTVNHX1RBR19QUFBfTEFTVF9HUFJTX01TRyA9IE1TR19JRF9UQUZfUFNfUkVTVU1FX0lORCwKKworCQorCS8qLS0tLS0tLS0tLS0tLS0gUFBQIGZvciBDU0QgbWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKwkvKiBtc2cgZnJvbSBMNEMgKi8KKwlNU0dfVEFHX1BQUF9GSVJTVF9DU0RfTVNHLAorCU1TR19JRF9MNENQUFBfQ1NEX0FDVElWQVRFX1JFUSA9IE1TR19UQUdfUFBQX0ZJUlNUX0NTRF9NU0csCisJTVNHX0lEX0w0Q1BQUF9DU0RfREVBQ1RJVkFURV9SRVEsCisJCisJLyogbXNnIGZyb20gVENQSVAgKi8KKwlNU0dfSURfVENQSVBfUFBQX0RBVEFfUkVRLAorCU1TR19JRF9TT0NfUFBQX0RMX1NSUERVX1JFU1VNRSwKKwkKKwkvKiBtc2cgZnJvbSBDU0QgKi8KKwlNU0dfSURfRkxDX1BQUF9VTF9BUFBEVV9SRVNVTUUsCisJTVNHX0lEX1BQUF9URFRfREFUQV9JTkQsCisKKyNpZmRlZiBfX1BQUF9VVF9fIAorICAgICAgICBNU0dfSURfUFBQX1RTVF9EQVRBX1JFUSwKKyNlbmRpZiAvKiB+IF9fUFBQX1VUX18gKi8KKwlNU0dfSURfUFBQX0wyUl9EQVRBX0lORCwJCQorCQkKKwlNU0dfVEFHX1BQUF9MQVNUX0NTRF9NU0cgPSBNU0dfSURfUFBQX0wyUl9EQVRBX0lORCwKKworICAgICAgIC8qLS0tLS0tLS0tLS0tLSBFWFQgTU9ERU0gcmVsYXRlZCBtZXNzYWdlcyAtLS0tLS0tLS0tLS0tLS0tKi8KKyAgICAgICBNU0dfVEFHX1BQUF9GSVJTVF9FWFRfTU9ERU1fTVNHLCAgCisgICAgICAgLyogRVhUX01PREVNIDwtLT4gUFBQICovCisgICAgICAgTVNHX0lEX1BQUF9FWFRfTU9ERU1fREFUQV9SRVEgPSBNU0dfVEFHX1BQUF9GSVJTVF9FWFRfTU9ERU1fTVNHLAorICAgICAgIE1TR19JRF9QUFBfRVhUX01PREVNX0RBVEFfSU5ELAorICAgICAgIE1TR19JRF9FWFRfTU9ERU1fUFBQX0FDVElWQVRFX1JFUSwKKyAgICAgICBNU0dfSURfRVhUX01PREVNX1BQUF9BQ1RJVkFURV9DTkYsCisgICAgICAgTVNHX0lEX0VYVF9NT0RFTV9QUFBfREVBQ1RJVkFURV9SRVEsCisgICAgICAgTVNHX0lEX0VYVF9NT0RFTV9QUFBfREVBQ1RJVkFURV9DTkYsCisgICAgICAgTVNHX0lEX0VYVF9NT0RFTV9QUFBfREVBQ1RJVkFURV9JTkQsCisKKyAgICAgICBNU0dfVEFHX1BQUF9MQVNUX0VYVF9NT0RFTV9NU0cgPSBNU0dfSURfRVhUX01PREVNX1BQUF9ERUFDVElWQVRFX0lORCwKKworICAgICAgIE1TR19JRF9QUFBfQ09ERV9FTkQgPSBNU0dfVEFHX1BQUF9MQVNUX0VYVF9NT0RFTV9NU0csCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1BQUF9DT0RFX1RBSUwgKQorCQorCS8qLS0tLS0tLS0tLS0tLS0tIFBQUF9NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNlbmRpZiAvL19QUFBfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BzX3B1YmxpY19sNF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHNfcHVibGljX2w0X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgzMDM4OQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BzX3B1YmxpY19sNF9tc2dpZC5oCkBAIC0wLDAgKzEsMTQ2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDYKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgcHNfcHVibGljX2w0X3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIGZpbGUgaXMgdGhlIGNvbW1vbiBwdWJsaWMgU0FQIGZvciBwcm90b2NvbCBzdGFjay4KKyAqCisgKiBBdXRob3I6IERhbm55IEt1bworICogLS0tLS0tLQorICogICAKKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9QU19QVUJfTDRfTVNHX0gKKyNkZWZpbmUgX1BTX1BVQl9MNF9NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTDRfUFVCTElDX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9HQVRJX0RBVEFfSU5EID0gTVNHX0lEX0w0X1BVQkxJQ19DT0RFX0JFR0lOLCAgCisgICAgTVNHX0lEX0dBVElfREFUQV9SU1AsCisgICAgTVNHX0lEX0dBVElfREFUQV9SRVEsCisgICAgTVNHX0lEX0dBVElfREFUQV9DTkYsCisgICAgTVNHX0lEX0dBVElfUlRXX0lORCwKKyAgICBNU0dfSURfR0FUSV9DVFJMX1JFUSwKKyAgICBNU0dfSURfR0FUSV9DVFJMX0NORiwKKyAgICBNU0dfSURfR0FUSV9TV0lUQ0hfTU9ERV9SRVEsCisgICAgTVNHX0lEX0dBVElfU1dJVENIX01PREVfQ05GLAorICAgIE1TR19JRF9BVENJRFRfRk9SQ0VfVFJBTlNGRVJfUkVRLAorICAgIE1TR19JRF9BVENJRFRfRk9SQ0VfVFJBTlNGRVJfQ05GLAorICAgIE1TR19JRF9NTUlfQVRDSV9NQVNURVJfU0lNX0NIQU5HRV9SRVEsICAgICAgCisgICAgTVNHX0lEX01NSV9BVENJX01BU1RFUl9TSU1fQ0hBTkdFX0NORiwgICAgCisgICAgTVNHX0lEX1JNTUlfUkVHSVNURVJfQ0hBTk5FTF9SRVEsCisgICAgTVNHX0lEX1JNTUlfUkVHSVNURVJfQ0hBTk5FTF9DTkYsCisgICAgTVNHX0lEX1JNTUlfRVhFX0FUX1JFUSwKKyAgICBNU0dfSURfUk1NSV9FWEVfQVRfQ05GLAorICAgIE1TR19JRF9STU1JX1JFU1BPTlNFX0FUX0lORCwKKyAgICBNU0dfSURfUk1NSV9VUkNfQVRfSU5ELAorICAgIE1TR19JRF9MNENfRU5EX1BTX0RBVEFfU0VOU1NJT05fUkVRLAorICAgIE1TR19JRF9STU1JX0xPQ0tfQVRfQ01EX1JFUSwKKyAgICBNU0dfSURfUk1NSV9MT0NLX0FUX0NNRF9DTkYsCisgICAgTVNHX0lEX0w0Q19OQlJfQ0VMTF9JTkZPX1JFR19SRVEsICAgICAgIAorICAgIE1TR19JRF9MNENfTkJSX0NFTExfSU5GT19SRUdfQ05GLAorICAgIE1TR19JRF9MNENfTkJSX0NFTExfSU5GT19ERVJFR19SRVEsICAgIAorICAgIE1TR19JRF9MNENfTkJSX0NFTExfSU5GT19ERVJFR19DTkYsCisgICAgTVNHX0lEX0w0Q19OQlJfQ0VMTF9JTkZPX0lORCwKKyAgICBNU0dfSURfR0FTX0RBVEFfSU5ELAorICAgIE1TR19JRF9HQVNfREFUQV9SRVEsCisgICAgTVNHX0lEX0w0Q19NQVhfVFhfUFdSX1JFRF9SRVEsCisgICAgTVNHX0lEX0w0Q19SRUdJT05BTF9QSE9ORV9NT0RFX1JFUSwKKyAgICBNU0dfSURfTDRDX01FQVNfSU5GT19SRVEsIC8vZm9yIFRoZXJtYWwKKyAgICBNU0dfSURfTDRDX0FTU0VSVF9CWVBBU1NfVFJBQ0VfSU5ELAorICAgIC8vTVNHX0lEX0w0Q1RTVF9BVF9SRVNQT05TRV9JTkQsCisgICAgTVNHX0lEX0w0Q19VU0JfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX0w0Q19VU0JfUkVTVU1FX1JFUSwKKyAgICAvKm5vdCB1c2UKKyAgICBNU0dfSURfQUdQU19FTkFCTEVfRElTQUJMRV9SU1AsCisgICAgTVNHX0lEX0FHUFNfS0VZX1VQREFURV9SU1AsCisgICAgTVNHX0lEX0FHUFNfTkVXX0tFWV9ORUVERURfSU5ELCovCisgICAgLypiZWxvdyBhcmUgZm9yIEFHUFMgYXV0byB0ZXN0CisgICAgTVNHX0lEX0FHUFNfQVVUT19URVNUX0lORCwKKyAgICBNU0dfSURfQUdQU19DUF9VUF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9BR1BTX01PTFJfU1RBUlRfSU5ELAorICAgIE1TR19JRF9BR1BTX01PTFJfU1RPUF9JTkQsCisgICAgTVNHX0lEX0FHUFNfTVRMUl9SRVNQT05TRV9JTkQsKi8KKyAgICBNU0dfSURfTEJTQVBfREFUQV9SRUNWX0lORCwKKyAgICBNU0dfSURfTEJTQVBfREFUQV9TRU5EX1JFUSwKKyAgICBNU0dfSURfTDRDX0lOSkVDVF9TQlBfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfRlRfRU5URVJfRkFDVE9SWV9NT0RFX1JFUSwKKyAgICBNU0dfSURfRlRfRU5URVJfRkFDVE9SWV9NT0RFX0NORiwKKyAgICBNU0dfSURfRlRfRU5URVJfTk9STUFMX01PREVfUkVRLAorICAgIE1TR19JRF9GVF9FTlRFUl9OT1JNQUxfTU9ERV9DTkYsCisgICAgTVNHX0lEX0w0Q19FTlRFUl9GQUNUT1JZX01PREVfUkVRLAorICAgIE1TR19JRF9MNENfRU5URVJfRkFDVE9SWV9NT0RFX0NORiwKKyAgICBNU0dfSURfTDRDX0VOVEVSX05PUk1BTF9NT0RFX1JFUSwKKyAgICBNU0dfSURfTDRDX0VOVEVSX05PUk1BTF9NT0RFX0NORiwKKyAgICBNU0dfSURfUkFDX0RVTVBfQ09OVEVYVF9JTkQsCisgICAgTVNHX0lEX1JBQ19VVF9VUERBVEVfQ09OVEVYVF9SRVEsCisgICAgTVNHX0lEX0w0Q19EVU1QX0NPTlRFWFRfSU5ELAorICAgIE1TR19JRF9JV0xBTl9MNENfU0VUX1BXTF9USFJIRF9SRVEsCisgICAgTVNHX0lEX0lXTEFOX0w0Q19TRVRfUFdMX1RIUkhEX0NORiwKKyAgICBNU0dfSURfTDRDX0lXTEFOX1BXUl9MRVZFTF9JTkQsCisgICAgTVNHX0lEX0lXTEFOX0w0Q19JTVNfU1lTX0lORk9fSU5ELAorICAgIE1TR19JRF9JV0xBTl9MNENfSU1TX0NBUF9JTkQsCisgICAgTVNHX0lEX0lXTEFOX0w0Q19DU0ZCX0ZBSUxfSU5ELAorICAgIE1TR19JRF9MNENfR0VORVJBTF9NT0RFTV9DT05GSUdVUkVfU0VUX1JFUSwKKyAgICBNU0dfSURfTDRDX0dFTkVSQUxfTU9ERU1fQ09ORklHVVJFX1NFVF9DTkYsCisgICAgTVNHX0lEX0w0Q19HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9RVUVSWV9SRVEsCisgICAgTVNHX0lEX0w0Q19HRU5FUkFMX01PREVNX0NPTkZJR1VSRV9RVUVSWV9DTkYsCisgICAgTVNHX0lEX0w0Qk5XX0FUVEFDSEVEX1JBVF9JTkQsCisgICAgTVNHX0lEX0w0QlBXUl9QSE9ORV9TVEFURV9SRVEsCisgICAgTVNHX0lEX0w0QlBXUl9QSE9ORV9TVEFURV9DTkYsCisgICAgTVNHX0lEX0w0QlBXUl9NVF9QSE9ORV9TVEFURV9JTkQsCisgICAgTVNHX0lEX0w0QlBXUl9QSE9ORV9TVEFURV9GSU5JU0hFRF9JTkQsCisgICAgTVNHX0lEX0w0Q19VVF9TRVRfUkFDX1JBVF9NT0RFX0NPTlRFWFRfSU5ELAorICAgIE1TR19JRF9PU1REX0FQX0NPUkVfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRCUFdSX0FQX0NPUkVfU1RBVFVTX1JFUSwKKyAgICBNU0dfSURfTDRDX0VPTlNfU0lNX0RBVEFfUkVRLAorICAgIE1TR19JRF9MNENfRU9OU19TSU1fREFUQV9DTkYsCisJTVNHX0lEX0w0Q19QVUJMSUNfU0lHTkFMX0lORk9fSU5ELAorICAgIE1TR19JRF9MNF9QVUJMSUNfQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0w0X1BVQkxJQ19DT0RFX1RBSUwgKQorCisjZW5kaWYgLy9fUFNfUFVCX0w0X01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wc19wdWJsaWNfc3VwbF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHNfcHVibGljX3N1cGxfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWI5NjNjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHNfcHVibGljX3N1cGxfbXNnaWQuaApAQCAtMCwwICsxLDEyNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHN1cGxfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBpcyB0aGUgY29tbW9uIHB1YmxpYyBTQVAgZm9yIHByb3RvY29sIHN0YWNrLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqICAgCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfUFNfUFVCX1NVUExfTVNHX0gKKyNkZWZpbmUgX1BTX1BVQl9TVVBMX01TR19ICisKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDxHUk9VUCBNZXNzYWdlcyA+CisgKgorICogU1VQTF9MQ1NQIFNBUCBwcmltaXRpdmVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyB0eXBlZGVmIGVudW17CisgI2VuZGlmCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUFNfUFVCTElDX1NVUExfTVNHX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9TVVBMX01NSV9QVVNIX1JFUSA9IE1TR19JRF9QU19QVUJMSUNfU1VQTF9NU0dfQ09ERV9CRUdJTiwgLyogTU1JIHVzZXMgdGhpcyBtZXNzYWdlIHRvIG5vdGlmeSBTVVBMIGEgaW5jb21pbmcgcHVzaCAoU1VQTCBJTklUKS4gSWYgdGhlIHB1c2ggY29udGFpbnMgY29ycmVjdCBTVVBMIElOSVQsIFNVUEwgd2lsbCB1c2UgdGhpcyBtZXNzYWdlIHRvIG5vdGlmeSB0aGUgc3RhcnQgb2YgYSBTVVBMIHNlc3Npb24uIERpcmVjdGlvbjogTU1JLT4gU1VQTFxuIExvY2FsIHBhcmFtZXRlcjogc3VwbF9tbWlfcHVzaF9yZXFfc3RydWN0LiBQZWVyIGJ1ZmZlcjogTm9uZS4gKi8KKyAgICBNU0dfSURfU1VQTF9NTUlfU1RBVFVTX0lORCwgLyogU1VQTCB1c2VzIHRoaXMgbWVzc2FnZSB0byBub3RpZnkgTU1JIHRoZSBuZXcgc3RhdHVzLiAqLworICAgIE1TR19JRF9TVVBMX01NSV9TVEFUVVNfUlNQLCAvKiBNTUkgdXNlcyB0aGlzIG1lc3NhZ2UgdG8gbm90aWZ5IFNVUEwgdGhlIHJlc3VsdCBvZiBTVEFUVVNfSU5ELiAqLworICAgIE1TR19JRF9TVVBMX01NSV9OT1RJRllfSU5ELCAvKiBTVVBMIHVzZXMgdGhpcyBtZXNzYWdlIHRvIG5vdGlmeSBhbiBub3RpZmljYXRpb24gb3IgdmVyaWZpY2F0aW9uIGNvbWluZy4gKi8KKyAgICBNU0dfSURfU1VQTF9NTUlfTk9USUZZX1JTUCwgLyogTU1JIHVzZXMgdGhpcyBtZXNzYWdlIHRvIG5vdGlmeSB0aGUgcmVzcG9uc2Ugb2YgYW4gbm90aWZpY2F0aW9uIG9yIHZlcmlmaWNhdGlvbi4gKi8gCisgICAgTVNHX0lEX1NVUExfTU1JX1NUQVJUX1JFUSwgIC8qIE1NSSB1c2VzIHRoaXMgbWVzc2FnZSB0byByZXF1ZXN0IHN0YXJ0aW5nIGEgU1VQTCBTRVQgaW5pdGlhdGVkIHNlc3Npb24uICovCisgICAgTVNHX0lEX1NVUExfTU1JX0FCT1JUX1JFUSwgIC8qIE1NSSB1c2VzIHRoaXMgbWVzc2FnZSB0byByZXF1ZXN0IGFib3J0aW5nIGEgU1VQTCBTRVQgaW5pdGlhdGVkIHNlc3Npb24uICovCisgICAgTVNHX0lEX1NVUExfTU1JX0FCT1JUX0NORiwgIC8qIFNVUEwgdXNlcyB0aGlzIG1lc3NhZ2UgdG8gbm90aWZ5IHRoZSByZXN1bHQgb2YgYWJvcnRpbmcuICovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1BTX1BVQkxJQ19TVVBMX01TR19DT0RFX1RBSUwgKQorCisjaWZkZWYgX19CVUlMRF9ET01fXworfSBzYXBfc3VwbF9tbWlfZW51bTsKKyNlbmRpZgorCisjZW5kaWYgLy9fUFNfUFVCX1NVUExfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BzX3B1YmxpY192dF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHNfcHVibGljX3Z0X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwNDY4YgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BzX3B1YmxpY192dF9tc2dpZC5oCkBAIC0wLDAgKzEsMTU0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHBzX3B1YmxpY192dF9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT05aQQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgVlQgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24gKHB1YmxpYykKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyBQdWJsaWMKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gTU1JCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9QU19QVUJMSUNfVlRfTVNHX0NPREVfQkVHSU4gKQorTVNHX0lEX01NSV9WVF9TVEFSVF9DT1VOVEVSX0lORCA9IE1TR19JRF9QU19QVUJMSUNfVlRfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfTU1JX1ZUX1VJSSwKKworLy8gTUVECitNU0dfSURfTUVESUFfVkNBTExfQ0hBTk5FTF9TVEFUVVNfSU5ELAorTVNHX0lEX01FRElBX1ZDQUxMX1ZJREVPX1JFUExFTklTSF9EQVRBX1JFQURZX0lORCwKK01TR19JRF9NRURJQV9WVF9BREpVU1RfVklERU9fUVVBTElUWV9JTkQsCitNU0dfSURfTUVESUFfVlRfU1dJVENIX1ZJREVPX1NJWkUsCitNU0dfSURfTUVEX1ZUX1ZJREVPX01JU0NfQ01ELAorTVNHX0lEX01FRF9WVF9GQVNUX1VQREFURV9SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1BTX1BVQkxJQ19WVF9NU0dfQ09ERV9UQUlMICkKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BzZG1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3BzZG1fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjUyNjVjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHNkbV9tc2dpZC5oCkBAIC0wLDAgKzEsMTIyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHBzZG1fbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgUFNETSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyoKKyogIFRoaXMgcHJvZHVjdCBoYXMgYmVlbiBkZXZlbG9wZWQgdXNpbmcgYSBwcm90b2NvbCBzdGFjaworKiAgZGV2ZWxvcGVkIGJ5IFNhc2tlbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBMaW1pdGVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9QU0RNX01TR0lEX0gKKyNkZWZpbmUgX1BTRE1fTVNHSURfSAorCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX1BTRE1fQ09ERV9CRUdJTikKKworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1BTRE1fQ09ERV9UQUlMICkJCisKKyNlbmRpZiAgLy9fUFNETV9NU0dJRElELkgKKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHN3X21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wc3dfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjAwZGYxCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHN3X21zZ2lkLmgKQEAgLTAsMCArMSw1NDAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX1BTV19NU0dfSURfSAorI2RlZmluZSBfUFNXX01TR19JRF9ICisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBGSUxFIE5BTUUgICA6cHN3X21zZ2lkLmgKKyoKKyogREVTQ1JJUFRJT04gOgorKgorKgorKgorKiBISVNUT1JZICAgICA6CisqICAgICBTZWUgTG9nIGF0IGVuZCBvZiBmaWxlCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEluY2x1ZGUgRmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQ1BTV19DT0RFX0JFR0lOICkKKyAgICAgICAvKiBmcm9tIG11bHRpcGxlIHNvdXJjZXMgKi8KKyAgICAgICBNU0dfSURfUFNXX0NNRF9TVEFUVVNfTVNHID0gTVNHX0lEX0NQU1dfQ09ERV9CRUdJTiArIDAsCisKKyAgICAgICAvKiBmcm9tIEwxRCAqLworICAgICAgIE1TR19JRF9QU1dfUE1STV9SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ0FORF9GUkVRX1RJTUVTX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NBTkRfRlJFUV9NRUFTVVJFTUVOVFNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0NBTl9NRUFTVVJFTUVOVFNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSURMRV9IQU5ET0ZGX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NUQVJUX0NGX01FQVNVUkVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRU5EX0NGX01FQVNVUkVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSU5JVElBTF9BQ1FfUkVQT1JUX01TRywKKworICAgICAgIE1TR19JRF9QU1dfU0VUX0lETEVfSE9fUEFSQU1FVEVSU19NU0csCisKKyAgICAgICBNU0dfSURfUFNXX09VVEVSX0xPT1BfUkVQT1JUX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfUFNfSU5GT19NU0csCisgICAgICAgTVNHX0lEX1BTV19MMURfQUNDRVNTX1BSRUFNQkxFX0NPTVBMRVRFX01TRywKKyAgICAgICBNU0dfSURfUFNXX0wxRF9BQ0NFU1NfQ09NUExFVEVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTDFEX0FDQ0VTU19QUk9CRV9DT01QTEVURV9NU0csCisgICAgICAgTVNHX0lEX1BTV19PT1NBX1dBS0VVUF9JTkRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTDFEX1JTU0lfUlBUX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NUQVRVU19SRVFVRVNUX1JTU0lfUlNQX01TRywKKyAgICAgICBNU0dfSURfUFNXX0wxRF9ERUFDVElWRV9DTkZfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTDFEX09PU0FfQ05GX01TRywKKyAgICAgICBNU0dfSURfUFNXX0wxRF9SQUtFX0RETF9DTkZfTVNHLAorCSAgIE1TR19JRF9QU1dfTDFEX0FDQ0VTU19QUkVBTUJMRV9ERUxBWV9NU0csCisKKyAgICAgICAvKiBmcm9tIExNRCAqLworICAgICAgIE1TR19JRF9QU1dfRk9SV0FSRF9TWU5DX0NIQU5fRlJBTUVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRk9SV0FSRF9QQUdFX0NIQU5fRlJBTUVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRk9SV0FSRF9CQ0NIX0ZSQU1FX01TRywKKyAgICAgICBNU0dfSURfUFNXX0ZPUldBUkRfRkNDQ0hfRlJBTUVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRFNDSF9DSEFOX0ZSQU1FX01TRywKKyAgICAgICBNU0dfSURfUFNXX1JFVkVSU0VfU1RBVElTVElDU19QQVJNU19NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVJWSUNFX09QVElPTl9DT05UUk9MX1JFU1BfTVNHLAorICAgICAgIE1TR19JRF9QU1dfUlNDSF9SRUxfSU5EX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NUQVRfQ05UX01TRywKKyAgICAgICBNU0dfSURfUFNXX0ZPUldBUkRfUEFHRV9DSEFOX01TRywKKyAgICAgICBNU0dfSURfUFNXX0ZPUldBUkRfRkNDQ0hfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRk9SV0FSRF9CQ0NIX01TRywKKyAgICAgICBNU0dfSURfUFNXX0ZPUldBUkRfU1lOQ19DSEFOX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RTQ0hfQ0hBTl9NU0csCisKKyAgICAgICAvKiBmcm9tIE1NSSAqLworICAgICAgIE1TR19JRF9QU1dfUE9XRVJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ0FMTF9JTklUSUFURV9NU0csCisgICAgICAgTVNHX0lEX1BTV19DQUxMX0lOSVRJQVRFX1dJVEhfSU5GT19SRUNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfR0VUX1BSTF9JTkZPX01TRywKKyAgICAgICBNU0dfSURfUFNXX0U5MTFfTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19DQUxMX0FOU1dFUl9NU0csCisgICAgICAgTVNHX0lEX1BTV19DQUxMX0hBTkdVUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRU5EX0NPTlRfRFRNRl9PTl9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRU5EX0NPTlRfRFRNRl9PRkZfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VORF9CVVJTVF9EVE1GX01TRywKKyAgICAgICBNU0dfSURfUFNXX0hPT0tGTEFTSF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfUFJJVkFDWV9NT0RFX01TRywKKworICAgICAgIE1TR19JRF9QU1dfU0VUX1JFVFJJRVZBQkxFX1BBUkFNRVRFUiwKKyAgICAgICBNU0dfSURfUFNXX0dFVF9SRVRSSUVWQUJMRV9QQVJBTUVURVIsCisgICAgICAgTVNHX0lEX1BTV19JTkpFQ1RfSEFORE9GRl9NU0csCisKKyAgICAgICBNU0dfSURfUFNXX0dFVF9GVUxMX1NZU19USU1FX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NFVF9TSUxFTlRfUkVUUllfTVNHLAorICAgICAgIE1TR19JRF9QU1dfR0VUX1NJTEVOVF9SRVRSWV9TVEFUVVNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VUX01PQl9QUkVWX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NFVF9DVVNUT01fRkVBVFVSRV9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfUFJMX0VOQUJMRV9NU0csCisKKyAgICAgICAvKiBmcm9tIFZBTCAtIFNNUyByZWxhdGVkICovCisgICAgICAgTVNHX0lEX1BTV19TTVNfVU5LTk9XTl9DT05ORUNUX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19VTktOT1dOX0RJU0NPTk5FQ1RfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX1VOS05PV05fUEFSTVNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX1BSRUZfU1JWX09QVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfQ09OTkVDVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfRElTQ09OTkVDVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfQkNBU1RfQ09OTkVDVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfQkNBU1RfRElTQ09OTkVDVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfQkNBU1RfUEFSTVNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX1NVQk1JVF9QQVJNU19NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfU1VCTUlUX0RBVEFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX0NBTkNFTF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfQUNLX1BBUk1TX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19BQ0tfREFUQV9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfVEVSTUlOQUxfU1RBVFVTX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19USU1FUl9FWFBJUkVEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19DQVVTRV9DT0RFX1NUQVRVU19NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfUkVUWF9BTU9VTlRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX0NBVVNFX0NPREVfU0VUX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19SRVBMWV9UTF9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVElNRVJfRVhQSVJFRF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfUFJFRl9SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX1JFTF9SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX1RYX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfUkVTRU5EX1RJTUVSX0VYUElSRURfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX01NU19USU1FUl9FWFBJUkVEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19NT1JFTF9USU1FUl9FWFBJUkVEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19UTEFDS19SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX1JFVFJZX1BFUklPRF9USU1FUl9FWFBJUkVEX01TRywKKworICAgICAgIE1TR19JRF9QU1dfSU1TX1NNU19SRUFEWV9NU0csCisgICAgICAgTVNHX0lEX1BTV19JTVNfU01TX1JTUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19JTVNfU01TX05PVElGWV9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfTVVMVElfU01TX01PREVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU01TX0JST0FEQ0FTVF9FWFBFQ1RFRF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfTVRfREFUQV9CVVJTVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19WQUxfUFJFRl9WT0lDRV9TRVJWSUNFT1BUSU9OX1NFVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19WQUxfUkVHX1JFU1VNRSwKKyAgICAgICBNU0dfSURfUFNXX1NNU19DQlNfSU5GT19DRkcsCisgICAgICAgTVNHX0lEX1BTV19WQUxfU0VUX1NPX1NVUFBPUlRfTVNHLAorCisjaWZkZWYgTVRLX0NCUF9FTkNSWVBUX1ZPSUNFCisgICAgICAgTVNHX0lEX1BTV19WQUxfRU5DUllQVF9WT0lDRV9SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVkFMX1NFVF9LU19LRVlfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX1ZBTF9DTEVBUl9URU1QX0tFWV9SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVkFMX0NBTkNFTF9DSVBIRVJfU01TX1NFTkRfUkVRX01TRywKKyNlbmRpZgorCisgICAgICAgLyogZnJvbSBEQk0gKi8KKyAgICAgICBNU0dfSURfUFNXX0RCTV9EQVRBX05BTV9NU0csCisgICAgICAgTVNHX0lEX1BTV19EQk1fREFUQV9OQU1fV1JJVEVfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RCTV9EQVRBX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RCTV9EQVRBX1dSSVRFX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19EQk1fRkxVU0hfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RCTV9EQVRBX1BSTF9NU0csCisgICAgICAgTVNHX0lEX1BTV19EQk1fREFUQV9QUkxfV1JJVEVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfREJNX0RBVEFfTVNfQ0FQX0RCX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RCTV9EQVRBX01TX0NBUF9EQl9XUklURV9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfREJNX0RBVEFfTUlTQ19NU0csCisgICAgICAgTVNHX0lEX1BTV19OVk1fQ0hBTkdFRF9CWV9FVFNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTkFNX1VOTE9DS19BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfREJNX0RBVEFfTUlTQ19XUklURV9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfREJNX1NFQ1VSRV9EQVRBX1dSSVRFX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19EQk1fU0VDVVJFX0RBVEFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfR0VUX05BTV9NU0csCisgICAgICAgTVNHX0lEX1BTV19OQU1fQ0hBTkdFRF9NU0csCisgICAgICAgTVNHX0lEX1BTV19EQk1fSU5JVF9NU0csCisKKyAgICAgICAvKiBmcm9tIFItVUlNICovCisgICAgICAgTVNHX0lEX1BTV19VSU1fR0VUX05BTV9EQVRBX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9HRVRfVUlNX01FSURfRkVBVFVSRV9NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fVVBEQVRFX05BTV9EQVRBX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9TVE9SRV9FU05fTVNHLAorICAgICAgIE1TR19JRF9QU1dfVUlNX0RBVEFfUFJMX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9CU19DSEFMTEVOR0VfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9DT05GSVJNX1NTRF9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVUlNX1JVTl9DQVZFX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fR0VORVJBVEVfS0VZX1ZQTV9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVUlNX1NUQVRVU19OT1RJRllfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVUlNX0RBVEFfT1RBRkVBVFVSRV9NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fTVNfS0VZX1JFUVVFU1RfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9LRVlfR0VORVJBVElPTl9SRVFVRVNUX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fQ09NTUlUX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fVkFMSURBVEVfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9DT05GSUdVUkFUSU9OX1JFUVVFU1RfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9ET1dOTE9BRF9SRVFVRVNUX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fU1NQUl9DT05GSUdVUkFUSU9OX1JFUVVFU1RfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9TU1BSX0RPV05MT0FEX1JFUVVFU1RfQUNLX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9PVEFQQV9SRVFVRVNUX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19VSU1fVVBEQVRFX0JJTkFSWV9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVUlNX09UQV9SVU5fQ0FWRV9BQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVUlNX1NUT1JFX01FQ09ORklHX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9TTVNfQ0FQX01TRywKKyAgICAgICAvKiBmcm9tIFJMUCAqLworICAgICAgIE1TR19JRF9QU1dfREFUQV9CVUZGRVJfU1RBVFVTX01TRywKKworICAgICAgIC8qIGZyb20gZXRzIG9yIGdlbmVyaWMgUFMgaW50ZXJmYWNlcyAqLworICAgICAgIE1TR19JRF9QU1dfQUNDRVNTX1NJR05BTF9FVFNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVEVTVF9NT0RFX1RJTUVSU19VU0VEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VOSVRfVEVTVF9SRVZFUlNFX1NJR19NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfSVJBVF9QQVJBTV9NU0csCisKKyAgICAgICBNU0dfSURfUFNXX0VOR0lORV9URVNUX01PREVfTVNHLAorI2lmIGRlZmluZWQgKF9fVEMxMF9fKSAmJiBkZWZpbmVkIChfX1RDMTBfSVBDX0NETUFfU1VQUE9SVF9fKQorICAgICAgIE1TR19JRF9QU1dfRU5HSU5FX1RFU1RfTU9ERV9HRVRfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0dFVF9TRVJWSUNFX0NPTkZJR19SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VUX1NFUlZJQ0VfQ09ORklHX1JFUV9NU0csCisjZW5kaWYKKyAgICAgICBNU0dfSURfUFNXX1NUQVRVU19SRVFVRVNUX01TRywKKyAgICAgICBNU0dfSURfUFNXX1BIT05FX1NUQVRFX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lOSVRfTkFNX05PVF9QUk9WSVNJT05FRF9NU0csCisgICAgICAgTVNHX0lEX1BTV19JTklUX05BTV9BTFJFQURZX1BST1ZJU0lPTkVEX01TRywKKworICAgICAgIE1TR19JRF9QU1dfSU5JVF9NU19DQVBfREJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSFNQRF9BQ1RJVkVfQ09OVFJPTF9IT0xEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1JTQ0hfUkVRVUVTVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfUF9SRVZfSU5fVVNFX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NMRUFSX01SVV9NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfQUNUSVZFX05BTV9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRUxFQ1RfQUNUSVZFX05BTV9NU0csCisgICAgICAgTVNHX0lEX1BTV19GT1JDRV9BTkFMT0dfTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19FTlRFUl9BS0VZX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NFVF9BQ0NFU1NfSE9fUEFSQU1FVEVSU19NU0csCisgICAgICAgTVNHX0lEX1BTV19ERUJVR19TQ1JFRU5fSU5GT19SRVFVRVNULAorICAgICAgIE1TR19JRF9QU1dfREVCVUdfUElMT1RfU1RSRU5HVEhfSU5GT19SRVFVRVNULAorICAgICAgIE1TR19JRF9QU1dfREVCVUdfU0NSTl9MTURfUlNQX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RFQlVHX1NDUk5fTDFEX1JTUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfR1BTX0RFQlVHX0lORk9fTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VUX01PQklMRV9JRF9NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfTU9CSUxFX0lEX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NMMVRTVF9TRVRfTU9CSUxFX0lEX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NMMVRTVF9HRVRfTU9CSUxFX0lEX01TRywKKworICAgICAgIE1TR19JRF9QU1dfT1RUU19USU1FUl9TSU1VTEFUSU9OLAorICAgICAgIE1TR19JRF9QU1dfSExXX01JUF9LRVlTX1VQREFURV9NU0csCisgICAgICAgTVNHX0lEX1BTV19SRUFEX1JBV19JTVNJX01TRywKKyAgICAgICBNU0dfSURfUFNXX1dSSVRFX1JBV19JTVNJX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NMT1RURURfVkVUT19NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfTUlQX1BBU1NXT1JEX01TRywKKyAgICAgICBNU0dfSURfUFNXX0dFVF9NSVBfS0VZU19NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfU0lQX1BBU1NXT1JEX01TRywKKyAgICAgICBNU0dfSURfUFNXX0dFVF9TSVBfUEFTU1dPUkRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VUX1NQQ19NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfU1BDX01TRywKKyAgICAgICBNU0dfSURfUFNXX0dFVF9TU0RfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSU5JVF9TRUNVUkVfREJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfR0VUX0NQX0JDX1RPX0NETUFfQkNfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQkFORF9TVVBQT1JURURfUVVFUllfUlNQX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NFVF9GTFlfTU9ERV9FTkFCTEVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRU5BQkxFX1BSTF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfUEFSTV9NU0csCisgICAgICAgTVNHX0lEX1BTV19HRVRfUEFSTV9NU0csCisgICAgICAgTVNHX0lEX1BTV19XUklURV9SQVdfTUROX01TRywKKyAgICAgICBNU0dfSURfUFNXX1RBX1RJTUVSX0VYUElSRURfTVNHLAorICAgICAgIE1TR19JRF9QU1dfREFUQV9DQUxMX0FOU1dFUl9NU0csCisgICAgICAgTVNHX0lEX1BTV19VSUNDX0ZBQ1RPUllfTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19WQUxfUElMT1RfUFdSX0FDS19NU0csCisKKyAgICAgICBNU0dfSURfUFNXX0RTX0NBTExfUkVMX01TRywKKyAgICAgICBNU0dfSURfUFNXX1BTX0NBTExfUkVMX01TRywKKyAgICAgICBNU0dfSURfUFNXX0xTX0NBTExfUkVMX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RTX0VOQUJMRV9NU0csCisgICAgICAgTVNHX0lEX1BTV19QU19ET1JNQU5UX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19EQVRBX1BSRUZfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX1ZTX1BSRUZfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0xTX1BSRUZfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX1ZTX1NXSVRDSF9TT19NU0csCisgICAgICAgTVNHX0lEX1BTV19WU19EU19QUkVBUkFOR19NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfU0VSVklDRV9DT05GSUdfTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VUX1BLWklEX0hZU1RFUl9UTVJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSU5JVF9QU1dfTUlTQ19EQl9NU0csCisgICAgICAgTVNHX0lEX1BTV19DVVNUT01fTE9DS19GRUFUVVJFX1JFRywKKyAgICAgICBNU0dfSURfUFNXX0NVU1RPTV9MT0NLX1RSSUdHRVIsCisgICAgICAgTVNHX0lEX1BTV19QU19TVVNQRU5EX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19QU19SRVNVTUVfUkVRX01TRywKKworICAgICAgIC8qIFN5c3RlbSBTZWxlY3Rpb24gTWVzc2FnZXMgKi8KKyAgICAgICBNU0dfSURfUFNXX0NTU19TRUxFQ1RfUlNQX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTU19WQUxJREFURV9SU1BfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NTX1NZU19BQ1FfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTU19BQ1FfQUJPUlRfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTU19PT1NBX1NMRUVQX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19DU1NfT09TQV9DT05UX1NMRUVQX1JFUV9NU0csLyp1c2VkIGZvciBjb250aW51b3VzIHNsZWVwIGNtZCBhZnRlciBPT1NBIHRpbWVyIGV4cGlyZWQqLworICAgICAgIE1TR19JRF9QU1dfQ1NTX09PU0FfV0FLRVVQX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19DU1NfQ09OTl9TVEFSVF9DTkZfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NTX09UQVNQX1NDQU5fRklOSVNIRURfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NTX0lORElDQVRFX0lOX1NFUlZJQ0VfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTk9USUZZX1NSVl9TVEFUVVNfVE9fVVBQRVJfTEFZRVJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NTX0VORF9FOTExX0NBTExfUkVRX01TRywKKworICAgICAgIE1TR19JRF9QU1dfQ1NTX1ZBTF9TWU5DX1JTUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19TRVRfTE9TVF9TQ0FOX1BJTkdfRlJFUVVFTkNZX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lSQVRfTUNDX1JFUSwKKyAgICAgICBNU0dfSURfUFNXX0lSQVRfQ1VSX1NZU19NRUFTX1JFUSwKKyAgICAgICBNU0dfSURfUFNXX0lSQVRfUkFUX1NJR19NT05fUkVRLAorICAgICAgIE1TR19JRF9QU1dfSVJBVF8xWF9SRUdfUkVRLAorCisgICAgICAgLyogT1RBU1AgSVM2ODMgKi8KKyAgICAgICBNU0dfSURfUFNXX09UQVNQX1JDVkRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfT1RBU1BfUkVMX01TRywKKyAgICAgICBNU0dfSURfUFNXX09UQVNQX1RYX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19PVEFTUF9TT19QUkVGX01TRywKKyAgICAgICBNU0dfSURfUFNXX0VYUF9NT0RfTVNfUkVTVUxUX01TRywKKyAgICAgICBNU0dfSURfUFNXX0VYUF9NT0RfQlNfUkVTVUxUX01TRywKKyAgICAgICBNU0dfSURfUFNXX0ZJTExfU1NQUl9SU1BfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSU9UQV9JUzY4M19NU0csCisgICAgICAgTVNHX0lEX1BTV19JT1RBX1BSTF9NU0csCisgICAgICAgTVNHX0lEX1BTV19PVEFfU1BMX1VOTE9DS19GQUlMX01TRywKKyAgICAgICBNU0dfSURfUFNXX09UQV9TRVRfUE9XRVJfVVBfTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19WRVJJRllfU1BDX01TRywKKworICAgICAgIC8qIElTODAxIExvY2F0aW9uIFNlcnZpY2VzICovCisgICAgICAgTVNHX0lEX1BTV19QT1NfQUZMVF9QUE1fUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX1BPU19BRkxUX01FQVNVUkVNRU5UU19NU0csCisgICAgICAgTVNHX0lEX1BTV19QT1NfQUZMVF9BQ0tfQUJPUlRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfUE9TX0FGTFRfQUJPUlRfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX1RDUEJfUkVWX0RBVEFfUkVTUF9JTkZPX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX1RDUEJfRldEX0RBVEFfUkVTUF9JTkZPX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX1NFU1NJT05fU1RBUlRfTVNHICwKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX1RDUF9DT05OX1NUQVRVU19NU0csCisgICAgICAgTVNHX0lEX1BTV19JUzgwMV9SRVNFVF9BU1NJU1RfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTE9DX1NUQVJUX01PREVfU0VUX01TRywKKyAgICAgICBNU0dfSURfUFNXX0xPQ19GSVhfTU9ERV9HRVRfTVNHLAorCisgICAgICAgTVNHX0lEX1BTV19JUzgwMV9NU19DQU5DRUxfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX1BPU19SRUpFQ1RfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSVM4MDFfRVBIX0FMTV9USU1FX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX01TU19ET05FX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX0FGTFRfSU5GT19HRVRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTE9DX1BSRUZfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX1BERV9TRVNTSU9OX0FCT1JUX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19QREVfUFNFVURPUkFOR0VfTVNNVF9SU1BfTVNHLAorICAgICAgIE1TR19JRF9QU1dfUERFX1NFU1NJT05fRU5EX1JTUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19QREVfR1BTX0lOT1BfTVNHLAorICAgICAgIE1TR19JRF9QU1dfR1BTX0VOQUJMRV9SRVBPUlRTX01TRywKKyAgICAgICBNU0dfSURfUFNXX1RFU1RfTE9DX1BERE1fTVNHLAorICAgICAgIE1TR19JRF9QU1dfVEVTVF9QT1dFUl9DT05UUk9MX01TRywKKyAgICAgICBNU0dfSURfUFNXX0wxRF9BTFRFUk5BVEVfUElMT1RTX01TRywKKyAgICAgICBNU0dfSURfUFNXX0xPQ0FUSU9OX1NWQ19DRkdfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSVM4MDFfUkVTVEFSVF9GSVhfTVNHLAorICAgICAgIC8qTVMtQmFzZWQqLworICAgICAgIE1TR19JRF9QU1dfQVNTSVNUX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19HUFNfTk1FQV9TVFJFQU1fTVNHLAorICAgICAgIE1TR19JRF9QU1dfSVM4MDFfTk1FQV9TRVRUSU5HX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX01QQ19DT05OX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX0dFVF9TRUNUT1JfSU5GT19NU0csCisgICAgICAgTVNHX0lEX1BTV19MT0NfU1RBVEVfQ0hBTkdFX0VUU19URVNUX0NNRCwKKyAgICAgICBNU0dfSURfUFNXX0lTODAxX1BQTV9USU1FUl9FWFBfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSVM4MDFfU0VTU19USU1FUl9FWFBfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSVM4MDFfUFJNX1RJTUVSX0VYUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19JUzgwMV9QUkVGX1JFU1BfUVVBTF9USU1FUl9FWFBfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSVM4MDFfT1VUX1JFUV9USU1FUl9FWFBfTVNHLAorICAgICAgIC8qKioqTVMtQmFzZWQqKioqKioqKiovCisgICAgICAgLypGcm9tIExFQyovCisgICAgICAgTVNHX0lEX1BTV19MRUNfTE9DX1JTUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19HUFNfUkVBRFlfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0dQU19SRUFEWV9NU0csCisgICAgICAgTVNHX0lEX1BTV19HUFNfU0lYVFlfVElNRVJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfR0VUX1RSQU5TTUlUX0lORk9fTVNHLAorICAgICAgIE1TR19JRF9QU1dfU0VUX1RSQU5TTUlUX0lORk9fTVNHLAorICAgICAgIE1TR19JRF9QU1dfU1lTVEVNX1JFQURZX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19JUzgwMV9DVVNUT01FUl9TRVRUSU5HX01TRywKKyAgICAgICBNU0dfSURfUFNXX0xFQ19TRVNTSU9OX0VORF9SU1BfTVNHLAorCisgICAgICAgLyogQU1QUyByZWxhdGVkIG1lc3NhZ2UgSUQncyAqLworICAgICAgIE1TR19JRF9QU1dfQU1QU19CQl9JTkRfVFhfU1RBVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX0JCX0lORF9DSEFOX0ZPUk1BVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX0JCX0lORF9TQVRfQ0NfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQU1QU19CQl9JTkRfRk9DQ19EQVRBX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfQkJfSU5EX0ZWQ19EQVRBX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfUkVMQVlfUkFESU9fVFVORV9TVEFUX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfUkVMQVlfUkFESU9fRlNVX0xPQ0tfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQU1QU19SRUxBWV9SQURJT19SU1NJX1ZBTF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX1JFTEFZX1JBRElPX0NBUlJJRVJfU1RBVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX1JFTEFZX1JBRElPX1BPV0VSX0xWTF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX1JFTEFZX1JBRElPX0FGQ19DT01QTEVURV9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX0NQX1JRX0VOQUJMRV9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX0NQX1JRX1BPV0VSX0RPV05fTVNHLAorICAgICAgIE1TR19JRF9QU1dfQU1QU19DUF9SUV9DQUxMX0lOSVRJQVRFX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfQ1BfUlFfQ0FMTF9BTlNXRVJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQU1QU19DUF9SUV9DQUxMX0hBTkdVUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX0FVRElPX1ZPSUNFX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfUkVBRF9EQVRBX0FDS19NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX1BPV0VSX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfV0JJT1NfSU5JVF9DT01QTEVURV9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTVBTX1NFVF9SU1NJX1RIX01TRywKKyAgICAgICBNU0dfSURfUFNXX0FNUFNfV09SRF9TWU5DX1JTUF9NU0csCisKKyAgICAgICBNU0dfSURfUFNXX0dQU19GUkFNRV9TWU5DX0RPTkVfTVNHLAorICAgICAgIE1TR19JRF9QU0VfTEVDX0NETUFfU1lTVEVNX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19VU0VSTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19URVNUTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19MVEVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTlNUX1BPV0VSVVBfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTlNUX1RDSF9GRVJfQ0ZHX01TRywKKyAgICAgICBNU0dfSURfUFNXX05TVF9UWF9QV1JfTUVBU19DRkdfTVNHLAorICAgICAgIE1TR19JRF9QU1dfTlNUX1JYX1BXUl9NRUFTX0NGR19NU0csCisgICAgICAgTVNHX0lEX1BTV19OU1RfVFJBTlNNSVRfVENIX01TRywKKyAgICAgICBNU0dfSURfUFNXX05TVF9FWElUX1RFU1RfTU9ERV9NU0csCisgICAgICAgTVNHX0lEX1BTV19OU1RfTElTVF9TRVRfTVNHLAorCisgICAgICAgTVNHX0lEX1BTV19OU1RfUlhfUFdSX1JFUV9NU0csCisgICAgICAgTVNHX0lEX0wxRF9OU1RfUlhfUFdSX0NORl9NU0csCisgICAgICAgTVNHX0lEX1BTV19OU1RfVFhfUFdSX0xFVkVMX1NFVF9NU0csCisKKyAgICAgICBNU0dfSURfUFNXX1NFVF9FTUVSR0VOQ1lfQ0FSRF9JTklUX01TRywKKyAgICAgICBNU0dfSURfUFNXX01BTlVBTF9BVk9JRF9ORVRXT1JLX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTRkJfQ0RNQTIwMDBQQVJNX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTRkJfU0lCOF9QQVJNX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTRkJfR0NTTkFfRExfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NGQl9NRUFTX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19DU0ZCX1JFRElSRUNUX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTRkJfSE9fRVVUUkFfUFJFUF9NU0csCisgICAgICAgTVNHX0lEX1BTV19DU0ZCX01PQkZST01fRVVUUkFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NGQl9TRVJWSUNFX1JFSkVDVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19BTlRFTk5BX0NGR19NU0csCisgICAgICAgTVNHX0lEX1BTV19DU0ZCX0dFVF9TVEFUVVNfTVNHLAorCisgICAgICAgTVNHX0lEX1BTV19ITFBfRE9STUFOVF9DTkZfTVNHLAorICAgICAgIE1TR19JRF9QU1dfSExQX0RSU19VUERBVEVfSU5EX01TRywKKworICAgICAgIE1TR19JRF9QU1dfQ1NTX1JTVkFTX1NVU1BFTkRfQ05GX01TRywKKyAgICAgICBNU0dfSURfUFNXX0NTU19SU1ZBU19ET19WUlRMX1NVU1BfQ05GX01TRywKKyAgICAgICBNU0dfSURfUFNXX1JTVkFTX1ZJUlRVQUxfU1VTUEVORF9SRVFfTVNHLAorICAgICAgIE1TR19JRF9QU1dfUlNWQVNfUkVTVU1FX1JFUV9NU0csCisgICAgICAgTVNHX0lEX1BTV19SU1ZBU19PQ0NVUFlfSU5EX01TRywKKworICAgICAgIE1TR19JRF9SU1ZBU19DQVNfU1VTUEVORF9TRVJWSUNFX1JFUSwKKyAgICAgICBNU0dfSURfUlNWQVNfQ0FTX1JFU1VNRV9TRVJWSUNFX1JFUSwKKyAgICAgICBNU0dfSURfUlNWQVNfQ0FTX0FCT1JUX1NFUlZJQ0VfUkVRLAorICAgICAgIE1TR19JRF9SU1ZBU19DQVNfQUJPUlRfU0VSVklDRV9DT01QTEVURV9JTkQsCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9SRVEsCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9DT01QTEVURV9JTkQsCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19WSVJUVUFMX1JFU1VNRV9TRVJWSUNFX1JFUSwKKyAgICAgICBNU0dfSURfQzJLX0xURV9DU0ZCX0NORiwKKyAgICAgICBNU0dfSURfQzJLX0xURV9DU0ZCX1NUT1BfQ05GLAorCisgICAgICAgTVNHX0lEX1BTV19JRFBfUlNWQVNfU0VSVklDRV9PQ0NVUFlfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0lEUF9SU1ZBU19TRVJWSUNFX1JFTEVBU0VfUkVRX01TRywKKyAgICAgICBNU0dfSURfUFNXX0MyS19SU1ZBU19PQ0NVUFlfSU5EX01TRywKKyAgICAgICBNU0dfSURfUFNXX0MyS19TSU1fSU5ERVhfTVNHLAorCisgICAgICAgTVNHX0lEX1BTV19TRU5EX1NNU19DT05GSVJNX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NFTkRfU0JQX0NPTkZJR19NU0csCisgICAgICAgTVNHX0lEX1BTV19TTVNfV0FJVF9MM0FDS19USU1FUl9FWFBJUkVEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NNU19XQUlUX1JTUF9USU1FUl9FWFBJUkVEX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NUQVJUVVBfU0lHTkFMLAorICAgICAgIE1TR19JRF9QU1dfU1RBUlRVUF9TSUdOQUwyLAorICAgICAgIE1TR19JRF9QU1dfVUlNX1JTUF9USU1FT1VUX01TRywKKyAgICAgICBNU0dfSURfUFNXX1VJTV9PVEFfUlNQX1RJTUVPVVRfTVNHLAorICAgICAgIC8qIFBTVyBVVCAqLworICAgICAgIE1TR19JRF9SU1ZBU19DQVNfT0NDVVBZX1NFUlZJQ0VfUkVRLAorICAgICAgIE1TR19JRF9SU1ZBU19DQVNfUkVMRUFTRV9TRVJWSUNFX1JFUSwKKyAgICAgICBNU0dfSURfUlNWQVNfQ0FTX1RSQU5TRkVSX1NFUlZJQ0VfUkVRLAorCisgICAgICAgLyogU0xUIG1zZyAqLworICAgICAgIE1TR19JRF9QU1dfTDFEX1NMVF9UWF9WRVJJRllfSU5EX01TRywKKyAgICAgICBNU0dfSURfUFNXXzFYX1NMVF9WRVJJRllfUkVTVUxUX01TRywKKyAgICAgICBNU0dfSURfUFNXX0RPX1NMVF9WRVJJRllfUkVTVUxUX01TRywKKworI2lmICFkZWZpbmVkKF9fR0VNSU5JX18pCisgICAgICAgLyogRml4IGJ1aWxkIGVycm9yIHdoZW4gR01JTkkgZGlzYWJsZWQsIGFzIGluIEwxUyBsb2FkICovCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19BQk9SVF9TRVJWSUNFX0NORiwKKyAgICAgICBNU0dfSURfUlNWQVNfQ0FTX1NVU1BFTkRfU0VSVklDRV9DTkYsCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9DTkYsCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19SRVNVTUVfU0VSVklDRV9DTkYsCisgICAgICAgTVNHX0lEX1JTVkFTX0NBU19WSVJUVUFMX1JFU1VNRV9TRVJWSUNFX0NORiwKKyAgICAgICBNU0dfSURfUlNWQVNfQ0FTX1BST1RFQ1RfQ1NfU0VSVklDRV9SRVEsCisgICAgICAgTVNHX0lEX0NTU19SU1ZBQ19GUkVRVUVOQ1lfU0NBTl9TVEFSVF9SRVEsCisgICAgICAgTVNHX0lEX0NTU19SU1ZBQ19GUkVRVUVOQ1lfU0NBTl9NT0RJRllfUkVRLAorICAgICAgIE1TR19JRF9DU1NfUlNWQUNfRlJFUVVFTkNZX1NDQU5fU1RPUF9SRVEsCisjZW5kaWYKKworCSAgIC8qIE9UQSBVVCAqLworCSAgIE1TR19JRF9QU1dfT1RBU1BQQV9DT05OX0lORF9NU0csCisJICAgTVNHX0lEX1BTV19PVEFTUFBBX09SSUdfSU5EX01TRywKKwkgICBNU0dfSURfUFNXX09UQVNQUEFfRElTQ09OTl9JTkRfTVNHLAorCSAgIE1TR19JRF9QU1dfT1RBU1BQQV9NU0dfQ09ORklSTV9JTkRfTVNHLAorCSAgIE1TR19JRF9QU1dfT1RBU1BQQV9SRUNWX01TR19JTkRfTVNHLAorCSAgIE1TR19JRF9QU1dfT1RBU1BQQV9TRU5EX01TR19SRVFfTVNHLAorCisgICAgICAgLyogbmV3IG1lc3NhZ2UgaWQgaW4gOTMqLworICAgICAgIE1TR19JRF9QU1dfTDFEX0lOSVRfQ05GX01TRywKKyAgICAgICBNU0dfSURfUFNXX1NUT1BfUFNDX0RPUk1BTlRfVElNRVJfTVNHLAorICAgICAgIE1TR19JRF9QU1dfRk9SQ0VfVE9fRU5URVJfRE9STUFOVF9NU0csCisgICAgICAgTVNHX0lEX1BTV19ITFBfUlNWQVNfQUJPUlRfQ05GX01TRywKKyAgICAgICBNU0dfSURfUFNXX1ZBTF9TRVRfRERUTV9NU0csCisKKyNpZmRlZiBNVEtfUExUX09OX1BDX1VUCisJICAgTVNHX0lEX1BTV19TQ0NfSU5EX01TRywKKwkgICBNU0dfSURfUFNXX1NDQ19SRVFfTVNHLAorCSAgIE1TR19JRF9TQ0NfVVRfRFVNTVlfUkVRLAorCSAgIE1TR19JRF9TQ0NfVVRfRFVNTVlfQ05GLAorI2VuZGlmCisgICAgICAgTVNHX0lEX1BTV19WQUxfRkxJR0hUX01PREVfTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NTX0ZPUkNFX1BPV0VSX0RPV05fTVNHLAorICAgICAgIE1TR19JRF9QU1dfQ1NTX0RFQUNfSU5ELAorICAgICAgIE1TR19JRF9QU1dfVFNUX0lOSkVDVF9TVFJJTkcsCisJICAgTVNHX0lEX1BTV19TRVRfR1BTX0ZMT1dfTVNHLAorICAgICAgIE1TR19JRF9QU1dfUEtaX0hZU1RTX0FDVElWRV9JTkQsCisgICAgICAgTVNHX0lEX1BTV19SRVNFVF9ISE9fU1RBUlRfTVNHLAorICAgICAgIE1TR19JRF9QU1dfVkFMX1JFUE9SVF9NT0RFX0xXR19NU0csCisgICAgICAgTVNHX0lEX1BTV19MT0NBTF9SRUxFQVNFX01TRywKKyNpZmRlZiBNVEtfUExUX09OX1BDCisgICAgICAgTVNHX0lEX1BTV19FRlVTRV9NT0RFX0ZFQVRVUkVfTVNHLAorI2VuZGlmCisgICAgICAgTVNHX0lEX0NTU19DUFNXX1JPQU1JTkdfSU5ELAorICAgICAgIE1TR19JRF9QU1dfTlVNX01TR19JRFMsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfQ1BTV19DT0RFX1RBSUwgKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHN3c19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcHN3c19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMDBiNzIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9wc3dzX21zZ2lkLmgKQEAgLTAsMCArMSw5MyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZpbGVuYW1lOgorKiAtLS0tLS0tLS0KKyogcHN3c19tc2dpZC5oIAorKgorKiBQcm9qZWN0OgorKiAtLS0tLS0tLQorKiBDMksKKyoKKyogRGVzY3JpcHRpb246IAorKiAtLS0tLS0tLS0tLS0KKyogVGhpcyBtb2R1bGUgZGVmaW5lcyB0aGUgUFNXX1MgSUxNIG1lc3NnYWUgSURzIGZvciB0aGUgMXhSVFQgUHJvdG9jb2wgU3RhY2sKKyoKKyogQXV0aG9yOgorKiAtLS0tLS0tCisgKiAtLS0tLS0tCisqCisqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisqICAgICAgICAgICAgIEhJU1RPUlkKKyogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyoKKyoKKyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX1BTV1NfTVNHX0lEX0gKKyNkZWZpbmUgX1BTV1NfTVNHX0lEX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBHbG9iYWwgRGVmaW5lcyBhbmQgTWFjcm9zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQ1BTV1NfQ09ERV9CRUdJTiApCisKKyAgICBNU0dfSURfUFNXX1NfTU9EX0VYUF9NU1JFUV9NU0cgPSBNU0dfSURfQ1BTV1NfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfUFNXX1NfTU9EX0VYUF9LUkVRX01TRywKKyAgICBNU0dfSURfRE9fREhLRVBfQ0FMX1JFUV9NU0csCisgICAgTVNHX0lEX1BTV19TX0hMUF9ETVVfS0VZR0VOX1JFUV9NU0csCisgICAgTVNHX0lEX1BTV19TX0hMUF9ETVVfS0VZRU5DX1JFUV9NU0csCisgICAgTVNHX0lEX1BTV19TX0RCTV9EQVRBX05BTV9NU0csCisgICAgTVNHX0lEX1BTV19TX05VTV9NU0dfSURTLAorICAgIAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9DUFNXU19DT0RFX1RBSUwgKQorCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9yYXRjbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcmF0Y21fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGYxYTNiCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcmF0Y21fbXNnaWQuaApAQCAtMCwwICsxLDMyNyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHJhdGNtX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTlpBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9SQVRDTV9NU0dfSAorI2RlZmluZSBfUkFUQ01fTVNHX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JBVENNX0NPREVfQkVHSU4gKQorLy9VREMKK01TR19JRF9SQVRDTV9SUkNFX0NPTk5fRVNUX0NORiA9IE1TR19JRF9SQVRDTV9DT0RFX0JFR0lOLAorTVNHX0lEX1JBVENNX1JSQ0VfQ09OTl9SRUxfQ05GLAorTVNHX0lEX1JBVENNX1JSQ0VfQ09OTl9SRUxfSU5ELAorTVNHX0lEX1JBVENNX1JSQ0VfUkVMRUFTRV9QUk9DRVNTRURfSU5ELCAvKiBGb3IgdGhlIGNhc2Ugd2hlcmUgbm8gQ04gRE9tYWluIGV4aXN0aW5nIGFuZCBSUkMgQ29ubmVjdGlvbiBzdGlsbCBleGlzdGluZyovCitNU0dfSURfUkFUQ01fUlJDRV9EQVRBX1RSQU5TRkVSX0lORCwKK01TR19JRF9SQVRDTV9SUkNFX0RBVEFfVFJBTlNGRVJfQ05GLAorTVNHX0lEX1JBVENNX1JSQ0VfU0VDVVJJVFlfTU9ERV9DT01QTEVURV9JTkQsCitNU0dfSURfUkFUQ01fUlJDRV9TRUNVUklUWV9NT0RFX0NIQU5HRV9JTkQsCitNU0dfSURfUkFUQ01fUlJDRV9DT05OX0xPU1NfSU5ELAorTVNHX0lEX1JBVENNX1JSQ0VfUkVTRVRfS0VZU19JTkQsCitNU0dfSURfUkFUQ01fUlJDRV9SQl9SRV9FU1RBQkxJU0hNRU5UX0lORCwKK01TR19JRF9SQVRDTV9SUkNFX0VORF9QU19EQVRBX1NFU1NJT05fQ05GLCAgLyogTUFVSV8wMjg1MjQ0MiwgX19OT19QU0RBVEFfU0VORF9TQ1JJX18gKi8KKy8vVU5UCitNU0dfSURfUkFUQ01fUlJDRV9QQUdFX0lORCwKK01TR19JRF9SQVRDTV9SUkNFX0xPQ0FMX1JFTEVBU0VfSU5ELCAvKiBzb2x2ZSBsb2NhbCByZWxlYXNlIHN0YXR1cyBhc3luY2hyb25pemF0aW9uIGJldHdlZW4gVUUgYW5kIE5XICovCitNU0dfSURfUkFUQ01fUlJDRV9SUkNfU1RBVEVfSU5ELAorLy9VR0MKK01TR19JRF9SQVRDTV9VQVNfU1lTX0lORk9fSU5ELAorTVNHX0lEX1JBVENNX1VBU19DRUxMX0dMT0JBTF9JREVOVElUWV9JTkZPX0lORCwKK01TR19JRF9SQVRDTV9VQVNfVVBEQVRFX0NBUEFCSUxJVFlfSU5ELAorTVNHX0lEX1JBVENNX1VBU19QTE1OX0JBTkRfSU5ELAorTVNHX0lEX1JBVENNX0NTQ0VfSU5JVF9DTkYsCitNU0dfSURfUkFUQ01fQ1NDRV9QTE1OX1NFQVJDSF9DTkYsCitNU0dfSURfUkFUQ01fQ1NDRV9QTE1OX0xPU1NfSU5ELAorTVNHX0lEX1JBVENNX0NTRV9QTE1OX0xJU1RfQ05GLAorTVNHX0lEX1JBVENNX0NTRV9QTE1OX0xJU1RfVVBEQVRFX0lORCwKK01TR19JRF9SQVRDTV9DU0VfUExNTl9MSVNUX1NUT1BfQ05GLCAKK01TR19JRF9SQVRDTV9DU0VfQ1NHX0xJU1RfQ05GLAorTVNHX0lEX1JBVENNX0NTRV9DU0dfTElTVF9TVE9QX0NORiwKK01TR19JRF9SQVRDTV9DU0NFX1JSQ19ERUFDVElWQVRFX0NORiwKK01TR19JRF9SQUNfVUFTX0NFTExfUE9XRVJfTEVWRUxfSU5ELAorTVNHX0lEX1JBVENNX1JSQ0VfQ0VMTF9DSEFOR0VfU1RBUlRfSU5ELAorTVNHX0lEX1JBVENNX1JSQ0VfQ0VMTF9DSEFOR0VfRklOSVNIX0lORCwKK01TR19JRF9SQVRDTV9DU0NFX1NUQVJUX1RJTUVSX09VVF9PRl9TRVJWSUNFX0lORCwKK01TR19JRF9SQVRDTV9DU0NFX1JGT05fQ05GLAorTVNHX0lEX1JBVENNX0NTQ0VfUkZPRkZfQ05GLAorI2lmIDAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorTVNHX0lEX1JBVENNX0NTQ0VfU0VUX1JBVF9NT0RFX0NORiwKK01TR19JRF9SQVRDTV9DU0NFX0lETEVfT1VUX09GX1NFUlZJQ0VfSU5ELCAvKiBfX09PU19FQVJMWV9JTkRfXyAqLworTVNHX0lEX1JBVENNX0NTRV9QTE1OX0ZPVU5EX0lORCwKK01TR19JRF9SQVRDTV9VQVNfUExNTl9TRUFSQ0hfQllfU1RPUkVEX0lORk9fTk9UX0ZPVU5EX0lORCwKK01TR19JRF9SQVRDTV9DU0NFX1NFVF9NUlVfQ05GLAorCisvL1NMQ0UKK01TR19JRF9SQVRDTV9TTENFX01PTklUT1JJTkdfQ0xPU0VfTE9PUF9DTkYsCitNU0dfSURfUkFUQ01fU0xDRV9NT05JVE9SSU5HX0NMT1NFX0xPT1BfSU5ELAorTVNHX0lEX1JBVENNX1NMQ0VfUkFCX0VTVEFCTElTSE1FTlRfSU5ELAorTVNHX0lEX1JBVENNX1NMQ0VfUkFCX01PRElGWV9JTkQsCitNU0dfSURfUkFUQ01fU0xDRV9SQUJfUkVMRUFTRV9JTkQsCitNU0dfSURfUkFUQ01fU0xDRV9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLAorCisvKiBSQVRDTSAtIExMQyAqLworTVNHX0lEX1JBVENNX0xMQ19TVEFUVVNfSU5ELAorTVNHX0lEX1JBVENNX0xMQ19VTklUREFUQV9JTkQsCitNU0dfSURfUkFUQ01fTExDX0FTX05BU19EQVRBX0NORiwKKworLyogUkFUQ00gLSBVUkxDICovCitNU0dfSURfUkFUQ01fVVJMQ19VVEVTVF9PUEVOX0xPT1BfQ05GLAorTVNHX0lEX1JBVENNX1VSTENfVVRFU1RfQ0xPU0VfTE9PUF9NMV9DTkYsCitNU0dfSURfUkFUQ01fVVJMQ19VVEVTVF9DTE9TRV9MT09QX00yX0NORiwKK01TR19JRF9SQVRDTV9VUkxDX1VURVNUX0NMT1NFX0xPT1BfTTRfQ05GLAorCisvKiBSQVRDTSAtIEJNQyAqLworTVNHX0lEX1JBVENNX0JNQ19EQVRBX0lORCwKK01TR19JRF9SQVRDTV9CTUNfQ0JfR1NfQ0hBTkdFX0lORCwgLy9NQVVJXzAxOTk1ODc0CisKK01TR19JRF9SQVRDTV9VQVNfU0lHTkFMX0FQUEVBUl9JTkQsCitNU0dfSURfUkFUQ01fVUFTX0NIRUNLX0FDVElWRV9SQVRfQ05GLAorTVNHX0lEX1JBVENNX1VBU19TRVRfQUNUSVZFX1JBVF9DTkYsCisKKy8qIFJBVENNIC0gR0FTICovCitNU0dfSURfUkFUQ01fR0FTX0NFTExfQ0hBTkdFX1NUQVJUX0lORCwKK01TR19JRF9SQVRDTV9HQVNfQ0VMTF9DSEFOR0VfRklOSVNIX0lORCwKK01TR19JRF9SQVRDTV9HQVNfQ09OTl9BQk9SVF9JTkQsCitNU0dfSURfUkFUQ01fR0FTX0NPTk5fTE9TU19JTkQsCitNU0dfSURfUkFUQ01fR0FTX0NPTk5fRVNUX0NORiwKK01TR19JRF9SQVRDTV9HQVNfQ09OTl9FU1RfSU5ELAorTVNHX0lEX1JBVENNX0dBU19DT05OX1JFTF9DTkYsCitNU0dfSURfUkFUQ01fR0FTX0NPTk5fUkVMX0lORCwKK01TR19JRF9SQVRDTV9HQVNfREFUQV9DTkYsCitNU0dfSURfUkFUQ01fR0FTX0RBVEFfSU5ELAorTVNHX0lEX1JBVENNX0dBU19ERUFDVElWQVRFX0NORiwKK01TR19JRF9SQVRDTV9HQVNfSU5JVF9DTkYsCitNU0dfSURfUkFUQ01fR0FTX1BMTU5fTElTVF9DTkYsCitNU0dfSURfUkFUQ01fR0FTX1BMTU5fTElTVF9TVE9QX0NORiwKK01TR19JRF9SQVRDTV9HQVNfUExNTl9MT1NTX0lORCwKK01TR19JRF9SQVRDTV9HQVNfUEFHRV9JTkQsCitNU0dfSURfUkFUQ01fR0FTX1BMTU5fU0VBUkNIX0NORiwKK01TR19JRF9SQVRDTV9HQVNfUkVBRFlfVElNRVJfVVBEQVRFX0lORCwKK01TR19JRF9SQVRDTV9HQVNfUkZPRkZfQ05GLAorTVNHX0lEX1JBVENNX0dBU19SRk9OX0NORiwKK01TR19JRF9SQVRDTV9HQVNfU0VUX1JBVF9NT0RFX0NORiwKK01TR19JRF9SQVRDTV9HQVNfU1RPUF9URVNUX01PREVfSU5ELAorTVNHX0lEX1JBVENNX0dBU19TWU5DX0lORCwKK01TR19JRF9SQVRDTV9HQVNfU1lTX0lORk9fSU5ELAorTVNHX0lEX1JBVENNX0dBU19DRUxMX0dMT0JBTF9JREVOVElUWV9JTkZPX0lORCwKK01TR19JRF9SQVRDTV9HQVNfUFNfSE9fU1VDQ0VTU19JTkQsCitNU0dfSURfUkFUQ01fR0FTX0NCX1BBR0VfSU5ELAorTVNHX0lEX1JBVENNX0dBU19UMzEyMl9USU1FT1VUX0lORCwKKy8qQnlyb246IDIwMDcvMDUvMDg6IEFkZCBmb3Igbm90aWZ5IE1NIENDTyBhY3RpdmF0aW9uIHRpbWUgdGltZXIgdGltZW91dCB0aGF0IGNhbiBkbyBhY2Nlc3Mgbm93Ki8KK01TR19JRF9SQVRDTV9HQVNfQ0NPX0FDVElWQVRJT05fVElNRV9USU1FT1VUX0lORCwKK01TR19JRF9SQVRDTV9HQVNfQ0JfR1NfQ0hBTkdFX0lORCwKKyNpZiAwCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgCitNU0dfSURfUkFUQ01fR0FTX0lETEVfT1VUX09GX1NFUlZJQ0VfSU5ELCAvKiBfX09PU19FQVJMWV9JTkRfXyAqLworTVNHX0lEX1JBVENNX0dBU19QTE1OX1NFQVJDSF9CWV9TVE9SRURfSU5GT19OT1RfRk9VTkRfSU5ELAorLy9NU0dfSURfUkFUQ01fR0FTX0RVUExFWF9NT0RFX0NIQU5HRV9DTkYsCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX1JBVENNX0dBU19SU0lNX0RBVEFfQUJPUlRfQ05GLAorTVNHX0lEX1JBVENNX0dBU19TVVNQRU5EX0lORCwKK01TR19JRF9SQVRDTV9HQVNfUkVTVU1FX0lORCwgLy9NQVVJXzAyODc3MTkxCitNU0dfSURfUkFUQ01fR0FTX1ZJUlRVQUxfTU9ERV9JTkQsICAvKiBNQVVJXzAyODY1NjkzICovCitNU0dfSURfTU1fUkFUQ01fU0lNX1NUQVRVU19VUERBVEVfUkVRLCAKK01TR19JRF9NTV9SQVRDTV9SU0lNX0RBVEFfQUJPUlRfUkVRLAorTVNHX0lEX01NX1JBVENNX05PX0lSX1NJR19QUk9DX1JFUSwKK01TR19JRF9NTV9SQVRDTV9VQVNfVklSVFVBTF9NT0RFX0lORCwKKyNlbmRpZiAvKiBfX0dFTUlOSV9fICovCitNU0dfSURfUkFUQ01fR0FTX1BMTU5fRk9VTkRfSU5ELAorTVNHX0lEX1JBVENNX0dBU19QTE1OX0JBTkRfSU5ELAorCisvKlNuaWZmZXIgcmVsYXRlZCBtZXNzYWdlcyovCitNU0dfSURfUkFUQ01fR0FTX1NJR05BTF9BUFBFQVJfSU5ELAorTVNHX0lEX1JBVENNX0dBU19DSEVDS19BQ1RJVkVfUkFUX0NORiwKK01TR19JRF9SQVRDTV9HQVNfU0VUX0FDVElWRV9SQVRfQ05GLAorCisvKiBSQVRDTSAtIFJSTFAgKi8KKy8qIF9fQUdQU19DT05UUk9MX1BMQU5FX18gKi8KK01TR19JRF9SQVRDTV9SUkxQX0xDU19QUk9DX1NUQVJUX0lORCwKK01TR19JRF9SQVRDTV9SUkxQX0xDU19QUk9DX0VORF9JTkQsCitNU0dfSURfUkFUQ01fR0FTX0FHUFNfUkVTRVRfUE9TSVRJT05JTkdfSU5ELAorLyogX19BR1BTX0NPTlRST0xfUExBTkVfXyAqLworCisvKiBSQVRDTSAtIFVBR1BTX0NQICovCitNU0dfSURfUkFUQ01fVUFHUFNfQ1BfTENTX1BST0NfU1RBUlRfSU5ELCAvL19fVUFHUFNfQ1BfU1VQUE9SVF9fCitNU0dfSURfUkFUQ01fVUFHUFNfQ1BfTENTX1BST0NfRU5EX0lORCwKKworLyogU01TQUwgLT4gUkFUQ00gKi8KK01TR19JRF9TTVNBTF9SQVRDTV9DQkNIX1JFUSwKK01TR19JRF9TTVNBTF9SQVRDTV9DQl9VUERBVEVfUkVRLAorCisvKiBSQVRETSAtPiBSQVRDTSAqLworTVNHX0lEX1JBVENNX1JBVERNX1JBVF9DSEFOR0VfQ05GLAorCisvKiBOV1NFTCAtPiBSQVRDTSAqLworTVNHX0lEX05XU0VMX1JBVENNX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX05XU0VMX1JBVENNX1JQTE1OX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorCisvKiBNTSAtPiBSQVRDTSAqLworTVNHX0lEX01NX1JBVENNX1NFVF9SQVRfTU9ERV9SRVEsCitNU0dfSURfTU1fUkFUQ01fSU5JVF9SRVEsCitNU0dfSURfTU1fUkFUQ01fU0lNX0lORk9fUkVTRVRfUkVRLAorTVNHX0lEX01NX1JBVENNX1JGT0ZGX1JFUSwKK01TR19JRF9NTV9SQVRDTV9QTE1OX1NFQVJDSF9SRVEsCitNU0dfSURfTU1fUkFUQ01fSFBMTU5fSU5GT19VUERBVEVfUkVRLAorTVNHX0lEX01NX1JBVENNX0FERF9GT1JCSURERU5fTEFfUkVRLAorTVNHX0lEX01NX1JBVENNX0RFTF9GT1JCSURERU5fTEFfUkVRLAorTVNHX0lEX01NX1JBVENNX1BMTU5fTElTVF9SRVEsCitNU0dfSURfTU1fUkFUQ01fUExNTl9MSVNUX1NUT1BfUkVRLAorTVNHX0lEX01NX1JBVENNX1VQREFURV9BTExPV0VEX0NTR19MSVNUX1JFUSwKK01TR19JRF9NTV9SQVRDTV9DU0dfTElTVF9SRVEsCitNU0dfSURfTU1fUkFUQ01fQ1NHX0xJU1RfU1RPUF9SRVEsCitNU0dfSURfTU1fUkFUQ01fVExMSV9BU1NJR05fUkVRLAorTVNHX0lEX01NX1JBVENNX1BBR0lOR19QQVJBTV9BU1NJR05fUkVRLAorTVNHX0lEX01NX1JBVENNX1NFQ1VSSVRZX01PREVfUkVRLAorTVNHX0lEX01NX1JBVENNX0NPTk5fRVNUX1JFUSwKK01TR19JRF9NTV9SQVRDTV9DT05OX0FCT1JUX1JFUSwgCitNU0dfSURfTU1fUkFUQ01fQ09OTl9SRUxfUkVRLAorTVNHX0lEX01NX1JBVENNX1JFR05fU1RBVFVTX1VQREFURV9SRVEsCisjaWZkZWYgX19VTVRTX1JBVF9fCitNU0dfSURfTU1fUkFUQ01fU1RPUF9URVNUX01PREVfUkVRLAorI2VuZGlmCitNU0dfSURfTU1fUkFUQ01fQ0VMTF9VUERBVEVEX1JFUSwKK01TR19JRF9NTV9SQVRDTV9DQl9MT0NfVVBEQVRFX1JFUSwgLyogTUFVSV8wMzEwMTg3OCwgW1NpbHZlciBDbGFtXVtDVl1bU2lsdmVyQ2xhbS05NF1QcmUtQ1YtQ01BUzogR1BSUyBmYWlsZWQgZHVlIHRvIHRpbWVvdXQgKi8KK01TR19JRF9NTV9SQVRDTV9SRUFEWV9USU1FUl9VUERBVEVfUkVRLAorTVNHX0lEX01NX1JBVENNX1NFUlZJQ0VfQ0hBTkdFX1JFUSwKK01TR19JRF9NTV9SQVRDTV9DU19EQVRBX1JFUSwKK01TR19JRF9NTV9SQVRDTV9QU19EQVRBX1JFUSwKK01TR19JRF9NTV9SQVRDTV9MTENfQVNTSUdOX1JFUSwKK01TR19JRF9NTV9SQVRDTV9MTENfUkVTVU1FX1JFUSwKK01TR19JRF9NTV9SQVRDTV9MTENfU1VTUEVORF9SRVEsCitNU0dfSURfTU1fUkFUQ01fTExDX1RSSUdHRVJfUkVRLAorCisKK01TR19JRF9NTV9SQVRDTV9TRVRfR1BSU19UUkFOU0ZFUl9QUkVGRVJFTkNFX1JFUSwgLy9fX01PTklUT1JfUEFHRV9EVVJJTkdfVFJBTlNGRVJfXyAKK01TR19JRF9NTV9SQVRDTV9TRVRfUFJFRkVSUkVEX0JBTkRfUkVRLCAgIC8qIE1BVUlfMDE5NzI5MjAsIF9fRFlOQU1JQ19CQU5EX1NFTF9fICovCitNU0dfSURfTU1fUkFUQ01fRU5EX1BTX0RBVEFfU0VTU0lPTl9SRVEsICAvKiBNQVVJXzAyODUyNDQyLCBfX05PX1BTREFUQV9TRU5EX1NDUklfXyAqLworTVNHX0lEX01NX1JBVENNX1JFU0VUX0NTX0RBVEFfUVVFVUVfUkVRLAorCisvL0FkZCBmb3IgTFRFIG11bHRpbW9kZTogX19MVEVfUkFUX18KK01TR19JRF9NTV9SQVRDTV9ERUFDVElWQVRFX1JFUSwKK01TR19JRF9NTV9SQVRDTV9FVVRSQU5fQ0FQX1VQREFURV9SRVEsCitNU0dfSURfTU1fUkFUQ01fUkFUX0NIQU5HRV9SRVEsCitNU0dfSURfTU1fUkFUQ01fUkFUX0NIQU5HRV9SU1AsCitNU0dfSURfTU1fUkFUQ01fUEFHRV9SRVEsCisKKyNpZiBkZWZpbmVkKF9fTFRFX1JBVF9fKSAmJiAoZGVmaW5lZChfX0dTTV9SQVRfXykgfHwgZGVmaW5lZChfX1VNVFNfUkFUX18pKSAgLyogZHVhbCBvciBtdWx0aSBtb2RlIGluY2x1ZGluZyBMVEUgKi8KKy8vI2lmIChkZWZpbmVkKF9fT1AwMV9fKSkgJiYgKCFkZWZpbmVkKF9fU0dMVEVfXykpCitNU0dfSURfTU1fUkFUQ01fUExNTl9TRUFSQ0hfQUJPUlRfUkVRLAorLy8jZW5kaWYKKyNlbmRpZgorCitNU0dfSURfTU1fUkFUQ01fU0VUX1BHQ0hFQ0tfUkVRLAorTVNHX0lEX01NX1JBVENNX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsCitNU0dfSURfTU1fUkFUQ01fU0VUX01SVV9SRVEsCitNU0dfSURfTU1fUkFUQ01fQ0xFQVJfTVJVX1JFUSwKK01TR19JRF9NTV9SQVRDTV9FTUNfRk9SQklEREVOX05XX0xJU1RfVVBEQVRFX1JFUSwKK01TR19JRF9NTV9SQVRDTV9DU0dfQVVUT19TRUFSQ0hfTU9ERV9SRVEsCitNU0dfSURfTU1fUkFUQ01fUExNTl9MSVNUX1NUQVRVU19VUERBVEVfUkVRLAorTVNHX0lEX01NX1JBVENNX0NBQ0hFRF9TWVNfSU5GT19SRVEsCitNU0dfSURfTU1fUkFUQ01fRUxFVkFUT1JfTU9ERV9SRVEsCisKKyNpZiBkZWZpbmVkKF9fTFRFX1JBVF9fKQorTVNHX0lEX01NX1JBVENNX0NTRkJfUEFHRV9DT05GSUdfUkVRLAorI2VuZGlmCisKKworLyogUkFUQ00gLSBHQVMgKi8KK01TR19JRF9SQVRDTV9HQVNfUkFUX0NIQU5HRV9JTkQsCitNU0dfSURfUkFUQ01fR0FTX1JBVF9DSEFOR0VfQ05GLAorTVNHX0lEX1JBVENNX0dBU19DQVBfVVBEQVRFX0NORiwKK01TR19JRF9SQVRDTV9HQVNfU0VUX01SVV9DTkYsCisKKy8qIFJBVENNIC0gVUFTICovCitNU0dfSURfUkFUQ01fVUFTX1JBVF9DSEFOR0VfSU5ELAorTVNHX0lEX1JBVENNX1VBU19SQVRfQ0hBTkdFX0NORiwKK01TR19JRF9SQVRDTV9DU0NFX0NBUF9VUERBVEVfQ05GLAorLy9FbmQgb2YgTFRFIG11bHRpbW9kZTogX19MVEVfUkFUX18KKworLyogUkFUQ00gLSBVTDIgKi8KK01TR19JRF9SQVRDTV9VTDJfRFVQTEVYX01PREVfQ0hBTkdFX0NORiwKKworLyogUkFUQ00gLSBVTDJEICovCitNU0dfSURfUkFUQ01fVUwyRF9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLAorCitNU0dfSURfTU1fUkFUQ01fU1RBUlRfVEVTVF9NT0RFX1JFUSwKKy8vI2lmZGVmIF9fVU1UU19UREQxMjhfTU9ERV9fCitNU0dfSURfTU1fUkFUQ01fRk9SQ0VfUkVMX1JFUSwgICAvKkZvciBUREQgY2FsbCBjbGVhcmluZyBvcHRpbWl6YXRpb24qLworTVNHX0lEX05XU0VMX1JBVENNX1BMTU5fTE9TU19JTkZPX1VQREFURV9SRVEsCisvLyNlbmRpZgorTVNHX0lEX01NX1JBVENNX0FSQUxfVVBEQVRFX1JFUSwKK01TR19JRF9TTVNBTF9SQVRDTV9DQl9NU0dfUkVNT1ZBTF9SRVEsCitNU0dfSURfTU1fUkFUQ01fUkFUX0RJU0FCTEVfQ09ORklHX1JFUSwKK01TR19JRF9NTV9SQVRDTV9TRVRfSU1FSV9TVl9SRVEsCitNU0dfSURfTU1fUkFUQ01fUlNJTV9BVVRIX0RPV05MT0FEX1JFUSwKK01TR19JRF9NTV9SQVRDTV9TRVJWSUNFX1JFQ09WRVJZX1JPVU5EX1VQREFURV9SRVEsCitNU0dfSURfTU1fUkFUQ01fSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKK01TR19JRF9NTV9SQVRDTV9TQ1JFRU5fT05fUkVRLAorTVNHX0lEX01NX1JBVENNX1NDUkVFTl9PRkZfUkVRLAorTVNHX0lEX01NX1JBVENNX0xURV9OT1JNQUxfU0VSVklDRV9MT1NTX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9FTkRfUFNfREFUQV9TRVNTSU9OX0lORCwKK01TR19JRF9NTV9SQVRDTV9OT19DQ19EQVRBX0RFVEVDVF9JTkQsCitNU0dfSURfTU1fUkFUQ01fREFUQV9BTExPV19SRVEsCitNU0dfSURfTU1fUkFUQ01fUExNTl9MSVNUX0FCT1JUX1JFUSwKK01TR19JRF9SQVRDTV9HQVNfUExNTl9TQ0FOX0lORCwKK01TR19JRF9SQVRDTV9DU0VfUExNTl9TQ0FOX0lORCwKK01TR19JRF9NTV9SQVRDTV9QTE1OX0lORk9fVVBEQVRFX1JFUSwKK01TR19JRF9SQVRDTV9HQVNfQ0JfRFVQX0RFVF9USU1FUl9TVE9QX0lORCwKK01TR19JRF9SQVRDTV9CTUNfQ0JfRFVQX0RFVF9USU1FUl9TVE9QX0lORCwKK01TR19JRF9SQVRDTV9DT0RFX0VORCA9IE1TR19JRF9SQVRDTV9CTUNfQ0JfRFVQX0RFVF9USU1FUl9TVE9QX0lORCwKKworLy9NU0dfSURfUkFUQ01fQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JBVENNX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fUkFUQ01fTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3JhdGRtX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9yYXRkbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZTdmMGUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9yYXRkbV9tc2dpZC5oCkBAIC0wLDAgKzEsNDkwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgcmF0ZG1fc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9OWkEKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyoKKyogIFRoaXMgcHJvZHVjdCBoYXMgYmVlbiBkZXZlbG9wZWQgdXNpbmcgYSBwcm90b2NvbCBzdGFjaworKiAgZGV2ZWxvcGVkIGJ5IFNhc2tlbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBMaW1pdGVkLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9SQVRETV9NU0dfSAorI2RlZmluZSBfUkFURE1fTVNHX0gKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfUkFURE1fQ09ERV9CRUdJTikKKworLyogVENNIC0+IFJBVERNICovCitNU0dfSURfVENNX1JBVERNX0RBVEFfUkVRID0gTVNHX0lEX1JBVERNX0NPREVfQkVHSU4sCitNU0dfSURfVENNX1JBVERNX0NPTkZJR19SRVEsCitNU0dfSURfVENNX1JBVERNX0RFQ09ORklHX1JFUSwKK01TR19JRF9UQ01fUkFURE1fRU5URVJfREFUQV9NT0RFX1JFUSwKK01TR19JRF9UQ01fUkFURE1fUVVFUllfUFNfU1RBVElTVElDU19SRVEsCitNU0dfSURfVENNX1JBVERNX1JFU0VUX1BTX1NUQVRJU1RJQ1NfUkVRLAorTVNHX0lEX1RDTV9SQVRETV9EQVRBX0FMTE9XX1JFUSwKKworLyogQ01VWCAtPiBSQVRETSAqLworTVNHX0lEX0NNVVhfUkFURE1fREFUQV9BQ1RJVkFURV9SU1AsCitNU0dfSURfQ01VWF9SQVRETV9EQVRBX0RFQUNUSVZBVEVfUlNQLAorCisvKiBQUyAtIFJBVERNICovCitNU0dfSURfUFNfREFUQV9SRVEsCitNU0dfSURfUFNfREFUQV9JTkQsCitNU0dfSURfUFNfRFNDUl9EQVRBX0lORCwKKworLyogUkFURE0gU0hBUSBVVCBVc2FnZSAqLworTVNHX0lEX1JBVERNX1NIQVFfUFJJTlRfQ1NfUV9FTEVNRU5ULAorTVNHX0lEX1JBVERNX1NIQVFfUFJJTlRfUFNfUV9FTEVNRU5ULAorCisvKiBSQVRETSBUU1QgTG9nIFVMIGRhdGEgdXNhZ2UqLworTVNHX0lEX1JBVERNX0xPR19TSEFRX1VMX0VMRU1FTlQsCisKKy8qIEVTTSAtPiBSQVRETSAqLworTVNHX0lEX0VTTV9SQVRETV9FUFNCX0lOSVRfUkVRLAorTVNHX0lEX0VTTV9MVE1fRVBTQl9JTklUX1JFUSA9IE1TR19JRF9FU01fUkFURE1fRVBTQl9JTklUX1JFUSwKK01TR19JRF9FU01fUkFURE1fRVBTQl9BQ1RfUkVRLAorTVNHX0lEX0VTTV9MVE1fRVBTQl9BQ1RfUkVRID0gTVNHX0lEX0VTTV9SQVRETV9FUFNCX0FDVF9SRVEsCitNU0dfSURfRVNNX1JBVERNX0VQU0JfREVBQ1RfUkVRLAorTVNHX0lEX0VTTV9MVE1fRVBTQl9ERUFDVF9SRVEgPSBNU0dfSURfRVNNX1JBVERNX0VQU0JfREVBQ1RfUkVRLAorTVNHX0lEX0VTTV9SQVRETV9FUFNCX01PRElGWV9SRVEsCitNU0dfSURfRVNNX0xUTV9FUFNCX01PRElGWV9SRVEgPSBNU0dfSURfRVNNX1JBVERNX0VQU0JfTU9ESUZZX1JFUSwKK01TR19JRF9FU01fUkFURE1fSURMRV9FTlRFUl9SRVEsCitNU0dfSURfRVNNX0xUTV9JRExFX0VOVEVSX1JFUSA9IE1TR19JRF9FU01fUkFURE1fSURMRV9FTlRFUl9SRVEsCitNU0dfSURfRVNNX1JBVERNX0lETEVfTEVBVkVfUkVRLAorTVNHX0lEX0VTTV9MVE1fSURMRV9MRUFWRV9SRVEgPSBNU0dfSURfRVNNX1JBVERNX0lETEVfTEVBVkVfUkVRLAorTVNHX0lEX0VTTV9SQVRETV9JRExFX0xFQVZFX1JFSiwKK01TR19JRF9FU01fTFRNX0lETEVfTEVBVkVfUkVKID0gTVNHX0lEX0VTTV9SQVRETV9JRExFX0xFQVZFX1JFSiwKK01TR19JRF9FU01fUkFURE1fVUxfU1VTUEVORF9SRVEsCitNU0dfSURfRVNNX0xUTV9VTF9TVVNQRU5EX1JFUSA9IE1TR19JRF9FU01fUkFURE1fVUxfU1VTUEVORF9SRVEsCitNU0dfSURfRVNNX1JBVERNX1VMX1JFU1VNRV9SRVEsCitNU0dfSURfRVNNX0xUTV9VTF9SRVNVTUVfUkVRID0gTVNHX0lEX0VTTV9SQVRETV9VTF9SRVNVTUVfUkVRLAorTVNHX0lEX0VTTV9SQVRETV9HRU1JTklfU1VTUEVORF9SRVEsCitNU0dfSURfRVNNX0xUTV9HRU1JTklfU1VTUEVORF9SRVEgPSBNU0dfSURfRVNNX1JBVERNX0dFTUlOSV9TVVNQRU5EX1JFUSwKK01TR19JRF9FU01fUkFURE1fR0VNSU5JX1JFU1VNRV9SRVEsCitNU0dfSURfRVNNX0xUTV9HRU1JTklfUkVTVU1FX1JFUSA9IE1TR19JRF9FU01fUkFURE1fR0VNSU5JX1JFU1VNRV9SRVEsCitNU0dfSURfRVNNX1JBVERNX1FVRVJZX1VMX0RBVEFfU1RBVFVTX1JFUSwKK01TR19JRF9FU01fTFRNX1FVRVJZX1VMX0RBVEFfU1RBVFVTX1JFUSA9IE1TR19JRF9FU01fUkFURE1fUVVFUllfVUxfREFUQV9TVEFUVVNfUkVRLAorTVNHX0lEX0VTTV9SQVRETV9BQ19CQVJfQUxMRVZJQVRFX1JFUSwKK01TR19JRF9FU01fTFRNX0FDX0JBUl9BTExFVklBVEVfUkVRID0gTVNHX0lEX0VTTV9SQVRETV9BQ19CQVJfQUxMRVZJQVRFX1JFUSwKK01TR19JRF9FU01fUkFURE1fNUc0X0NPTlRFWFRfVFJBTlNGRVJfUkVRLAorCisvKiBTTSAtPiBSQVRETSAqLworTVNHX0lEX1NNX1JBVERNX1JBQl9BQ1RJVkFURV9SU1AsCitNU0dfSURfU01fUkFURE1fQUNUSVZBVEVfUkVRLAorTVNHX0lEX1NNX1JBVERNX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX1NNX1JBVERNX01PRElGWV9SRVEsCitNU0dfSURfU01fUkFURE1fQUxMT1dfRExfUEFDS0VUX0lORCwgLy8gTFRFIG11bHRpbW9kZQorLy9NU0dfSURfU01fUkFURE1fVVBEQVRFX01BWF9UUkFGRklDX0NMQVNTX1JFUSwgLy8gTFRFIG11bHRpbW9kZSA0RzIzIElSX1RZUEVfU0VBUkNIIGludGVyUkFUCisKKy8qIFZHU00gLT4gUkFURE0gKi8KK01TR19JRF9WR1NNX1JBVERNX1BEVVNfSU5JVF9SRVEsCitNU0dfSURfVkdTTV9SQVRETV9QRFVTX0ZMT1dfRVNUX1JFUSwKK01TR19JRF9WR1NNX1JBVERNX1BEVVNfRkxPV19NT0RfUkVRLAorTVNHX0lEX1ZHU01fUkFURE1fUERVU19GTE9XX1JFTF9SRVEsCitNU0dfSURfVkdTTV9SQVRETV80RzVfQ09OVEVYVF9UUkFOU0ZFUl9SRVEsCisKKy8qIFNNSUMgLT4gUkFURE0gKi8KK01TR19JRF9TTUlDX1JBVERNX04yNl9DQVBBQklMSVRZX1VQREFURV9SRVEsCisKKy8qIE1NIC0+IFJBVERNICovCitNU0dfSURfTU1fUkFURE1fUkVFU1RBQkxJU0hfUkFCX1JTUCwKK01TR19JRF9NTV9SQVRETV9TRVFVRU5DRV9SRVEsCitNU0dfSURfTU1fUkFURE1fU0VORF9VU0VSX0RBVEFfUlNQLAorTVNHX0lEX01NX1JBVERNX1JFRVNUQUJMSVNIX1JBQl9SRUFEWV9JTkQsCitNU0dfSURfTU1fUkFURE1fU0VSVklDRV9QUk9DX0lORCwKKworLyogVkdNTSAtPiBSQVRETSAqLworTVNHX0lEX1ZHTU1fUkFURE1fUkVFU1RBQkxJU0hfQ09OTl9SU1AsCitNU0dfSURfVkdNTV9SQVRETV9RVUVSWV9VTF9EQVRBX1NUQVRVU19SRVEsCitNU0dfSURfVkdNTV9SQVRETV9VTF9TVVNQRU5EX1JFUSwKK01TR19JRF9WR01NX1JBVERNX1VMX1JFU1VNRV9SRVEsCitNU0dfSURfVkdNTV9SQVRETV9HRU1JTklfU1VTUEVORF9SRVEsCitNU0dfSURfVkdNTV9SQVRETV9HRU1JTklfUkVTVU1FX1JFUSwKKworLyogVkdNTSA8LSBSQVRETSAqLworLy9tb3ZlIHRvIHZnbW1fbXNnaWQuaAorCisKKy8qIE5XU0VMLT4gUkFURE0gKi8KK01TR19JRF9OV1NFTF9SQVRETV9SQVRfQ0hBTkdFX1JFUSwKK01TR19JRF9OV1NFTF9SQVRETV9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorCisvKiBSQVRDTSAtPiBSQVRETSAqLworTVNHX0lEX1JBVENNX1JBVERNX1JFR0FJTl9DT1ZFUkFHRV9SRVEsCisKKy8qIFJBQk0gLT4gUkFURE0gKi8KK01TR19JRF9SQVRETV9SQUJNX0FDVElWQVRFX0NORiwKK01TR19JRF9SQVRETV9SQUJNX0FDVElWQVRFX0lORCwKK01TR19JRF9SQVRETV9SQUJNX0RFQUNUSVZBVEVfQ05GLAorTVNHX0lEX1JBVERNX1JBQk1fREVBQ1RJVkFURV9JTkQsCitNU0dfSURfUkFURE1fUkFCTV9NT0RJRllfQ05GLAorTVNHX0lEX1JBVERNX1JBQk1fUkVFU1RBQkxJU0hfSU5ELAorTVNHX0lEX1JBVERNX1JBQk1fREFUQV9DTkYsCitNU0dfSURfUkFURE1fUkFCTV9EQVRBX0lORCwKK01TR19JRF9SQVRETV9SQUJNX1NVU1BFTkRfREFUQV9QTEFORV9JTkQsCitNU0dfSURfUkFURE1fUkFCTV9SRVNVTUVfREFUQV9QTEFORV9JTkQsCitNU0dfSURfUkFURE1fUkFCTV9QRENQX1JFTE9DX0lORCwKK01TR19JRF9SQVRETV9SQUJNX1JFVFJBTlNNSVRfSU5ELAorTVNHX0lEX1JBVERNX1JBQk1fUkJfQ09ORklHX0lORCwKK01TR19JRF9SQVRETV9SQUJNX1JBQl9SRUxFQVNFX0lORCwKK01TR19JRF9SQVRETV9SQUJNX1JBQl9DQVBBQklMSVRZX0lORCwKKy8vTVNHX0lEX1JBVERNX1JBQk1fQ09ORklHX0NORiwKKy8vTVNHX0lEX1JBVERNX1JBQk1fUVVFUllfU1RBVElTVElDU19SU1AsCisvL01TR19JRF9SQVRETV9SQUJNX1JFU0VUX1NUQVRJU1RJQ1NfUlNQLAorLy9NU0dfSURfUkFURE1fUkFCTV9TVEFUSVNUSUNTX0lORCwKKy8vTVNHX0lEX1JBVERNX1JBQk1fU0VUX1NUQVRJU1RJQ1NfQ05GLAorTVNHX0lEX1JBVERNX1BEQ1BfUkVTRVRfU1RBVElTVElDU19SU1AsCitNU0dfSURfUkFURE1fUkFCTV9SQVRfUkVBRFlfSU5ELAorCisvKiBVUkxDIC0+IFJBVERNICovCitNU0dfSURfUkFURE1fVVJMQ19ERUFDVElWQVRFX1BTX1JBQl9DTkYsCisKKy8qIFNORENQIC0gUkFURE0gKi8KK01TR19JRF9SQVRETV9TTkRDUF9EQVRBX0lORCwKK01TR19JRF9SQVRETV9TTkRDUF9EQVRBX0NORiwKK01TR19JRF9SQVRETV9TTkRDUF9BQ1RJVkFURV9DTkYsCitNU0dfSURfUkFURE1fU05EQ1BfTU9ESUZZX0NORiwKK01TR19JRF9SQVRETV9TTkRDUF9ERUFDVElWQVRFX0NORiwKK01TR19JRF9SQVRETV9TTkRDUF9TVEFUVVNfSU5ELAorTVNHX0lEX1JBVERNX1NORENQX1NVU1BFTkRfREFUQV9QTEFORV9JTkQsCitNU0dfSURfUkFURE1fU05EQ1BfUkVTVU1FX0RBVEFfUExBTkVfSU5ELAorTVNHX0lEX1JBVERNX1NORENQX0ZMVVNIX0lORCwKK01TR19JRF9SQVRETV9TTkRDUF9UUkFOU01JVF9JTkQsCitNU0dfSURfUkFURE1fU05EQ1BfU0VRVUVOQ0VfQ05GLAorTVNHX0lEX1JBVERNX1NORENQX1JFU0VUX05QRFVfU0VRX0lORCwKK01TR19JRF9SQVRETV9TTkRDUF9SQVRfUkVBRFlfSU5ELAorCisvKiBFUERDUCAtPiBSQVRETSAqLworTVNHX0lEX1JBVERNX0VQRENQX1VMX0RBVEFfUkVESVJfSU5ELAorTVNHX0lEX1JBVERNX0VQRENQX0RBVEFfSU5ELAorTVNHX0lEX1JBVERNX0VQRENQX1RFU1RMT09QX0lORCwKKworLyogUkFURE0gLT4gRVBEQ1AgKi8KK01TR19JRF9SQVRETV9FUERDUF9EQVRBX1JFUSwKK01TR19JRF9SQVRETV9FUERDUF9ETF9QQVRIX1NXSVRDSF9SRVEsCitNU0dfSURfUkFURE1fRVBEQ1BfQklORF9OVEYsCitNU0dfSURfUkFURE1fRVBEQ1BfVU5CSU5EX05URiwKK01TR19JRF9SQVRETV9FUERDUF9URVNUTE9PUF9SU1AsCitNU0dfSURfUkFURE1fRVBEQ1BfQkVBUkVSX0FDVF9OVEYsCitNU0dfSURfUkFURE1fRVBEQ1BfQkVBUkVSX0RFQUNUX05URiwKKworLyogRU5QRENQIC0+IFJBVERNICovCitNU0dfSURfUkFURE1fRU5QRENQX1VMX0RBVEFfUkVESVJfSU5ELAorTVNHX0lEX1JBVERNX0VOUERDUF9EQVRBX0lORCwKK01TR19JRF9SQVRETV9FTlBEQ1BfVEVTVExPT1BfSU5ELAorTVNHX0lEX1JBVERNX0VOUERDUF9QRFVfU0VTU0lPTl9SQl9TVEFUVVNfSU5ELAorTVNHX0lEX1JBVERNX0VOUERDUF9BR0dSRUdBVEVEX0xPR19JTkQsCitNU0dfSURfUkFURE1fRU5QRENQX1ZDT05OX0xFQVZFX1RPX0NPTk5fSU5ELAorTVNHX0lEX1JBVERNX0VOUERDUF9JRExFX0xFQVZFX0lORCwKK01TR19JRF9SQVRETV9FTlBEQ1BfREFUQV9JTkRfUkVTVU1FX1JFUSwKKworLyogUkFURE0gLT4gRU5QRENQICovCitNU0dfSURfUkFURE1fU0RBUF9EQVRBX1JFUSwKK01TR19JRF9SQVRETV9FTlBEQ1BfREFUQV9SRVEgPSBNU0dfSURfUkFURE1fU0RBUF9EQVRBX1JFUSwKK01TR19JRF9SQVRETV9FTlBEQ1BfRExfUEFUSF9TV0lUQ0hfUkVRLAorTVNHX0lEX1JBVERNX0VOUERDUF9URVNUTE9PUF9SU1AsCitNU0dfSURfUkFURE1fRU5QRENQXzVRSV9VUERBVEVfUkVRLAorTVNHX0lEX1JBVERNX0VOUERDUF9WQ09OTl9MRUFWRV9UT19DT05OX1JTUCwKK01TR19JRF9SQVRETV9FTlBEQ1BfU0lUX0ZVTExfUkVRLAorTVNHX0lEX1JBVERNX0VOUERDUF9EQVRBX0RJU0NfUkVRLAorCisvKiBSQVRETSAtPiBSQVRETSAqLworTVNHX0lEX1JBVERNX1JBVERNX1ZBX1NIT1JUQUdFX0lORCwKK01TR19JRF9SQVRETV9BU19CRUFSRVJfREVBQ1RfSU5ELAorCisvKiBMVEUgKi8KK01TR19JRF9SQVRETV9VVF9NVUxUSU1PREVfVUdfREFUQV9JTkRfQ0IsCitNU0dfSURfUkFURE1fVVRfTVVMVElNT0RFX0xURV9EQVRBX0lORF9DQiwKK01TR19JRF9SQVRETV9VVF9NVUxUSU1PREVfTFRFX01UQ0hfREFUQV9JTkRfQ0IsCitNU0dfSURfUkFURE1fVVRfTVVMVElNT0RFX0hPT0tfVUxfREVTVF9DQiwKK01TR19JRF9SQVRETV9VVF9NVUxUSU1PREVfVUdfUkVBRFlfSU5EX0NCLAorTVNHX0lEX1JBVERNX1VUX01VTFRJTU9ERV9GT1JXQVJEX0ZST01fVUdfREFUQV9DQiwKK01TR19JRF9SQVRETV9VVF9NVUxUSU1PREVfRk9SV0FSRF9GUk9NX0xURV9EQVRBX0NCLAorCisvKiBSQVRETSAtPiBSQVRETSAqLworTVNHX0lEX1JBVERNX1BTX0RTQ1JfREFUQV85M19JTkQsCisvKiBGTEMoUkFURE0pIC0+IFJBVERNICovCitNU0dfSURfUkFURE1fRkxDX05QRFVfRExfQ0IsCisKKy8qIEw0QyAtPiBSQVRETSAqLworTVNHX0lEX0w0Q19SQVRETV9JTVNfQ0FMTF9TVEFUVVMsCisKKy8qIENWQUwgLT4gUkFURE0gKi8KK01TR19JRF9DVkFMX1JBVERNX0FDVElWQVRFX1JFUSwKK01TR19JRF9DVkFMX1JBVERNX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX0NWQUxfUkFURE1fU0VUX1JBVF9NT0RFX1JFUSwKKworLyogQ0hMUCAtPiBSQVRETSAqLworTVNHX0lEX1JBVERNX0NITFBfRExfREFUQV9JTkQsCitNU0dfSURfUkFURE1fQ0hMUF9EQVRBX1NUQVRVU19JTkQsCisKKy8qIFVULCBVUENNIC0+IFJBVERNICovCitNU0dfSURfUkFURE1fVVRfVVBDTV9VTF9EQVRBX1JFUSwKK01TR19JRF9SQVRETV9VVF9DMktfRkxDMl9SRVZfQlVGX1NUQVRVU19JTkQsCisKKy8qIFJBVERNIC0+IFJBVERNICovCitNU0dfSURfUkFURE1fUFJPQ0VTU19UWF9RVUVVRV9JTkQsCisKKy8qIFJBVENNIC0+IFJBVERNICovCitNU0dfSURfUkFUQ01fUkFURE1fVklSVFVBTF9NT0RFX0lORCwKK01TR19JRF9SQVRETV9DT0RFX0VORCA9IE1TR19JRF9SQVRDTV9SQVRETV9WSVJUVUFMX01PREVfSU5ELAorTU9EVUxFX01TR19FTkQoTVNHX0lEX1JBVERNX0NPREVfVEFJTCkKKworI2VuZGlmIC8vX1JBVERNX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ybHBfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3JscF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwYzMzOGIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ybHBfbXNnaWQuaApAQCAtMCwwICsxLDExNyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogRmlsZW5hbWU6CisqIC0tLS0tLS0tLQorKiBybHBfbXNnaWQuaCAKKyoKKyogUHJvamVjdDoKKyogLS0tLS0tLS0KKyogQzJLCisqCisqIERlc2NyaXB0aW9uOiAKKyogLS0tLS0tLS0tLS0tCisqIFRoaXMgbW9kdWxlIGRlZmluZXMgdGhlIFJMUCBJTE0gbWVzc2dhZSBJRHMgZm9yIHRoZSAxeFJUVCBQcm90b2NvbCBTdGFjaworKgorKiBBdXRob3I6CisqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyoKKyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyogICAgICAgICAgICAgSElTVE9SWQorKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKgorKgorKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfUkxQX01TR19JRF9ICisjZGVmaW5lIF9STFBfTVNHX0lEX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9DWFJMUF9DT0RFX0JFR0lOICkKKworICAgIE1TR19JRF9STFBfUFNXX0lOSVRfQ0ZHX01TRyA9IE1TR19JRF9DWFJMUF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9STFBfUFNXX0JMT0JfQ0ZHX01TRywKKyAgICBNU0dfSURfUkxQX09QRU5fTVNHLAorICAgIE1TR19JRF9STFBfQ0xPU0VfTVNHLAorICAgIE1TR19JRF9STFBfTE1EX0ZXRF9GVU5ESUNBVEVEX0RBVEFfSU5EX01TRywKKyAgICBNU0dfSURfUkxQX0xNRF9GV0RfU0NIX0RBVEFfSU5EX01TRywKKyAgICBNU0dfSURfUkxQX0xNRF9GV0RfUERDSF9EQVRBX0lORF9NU0csCisgICAgTVNHX0lEX1JMUF9MTURfUkVWX0RBVEFfQVZBSUxfSU5EX01TRywKKyAgICBNU0dfSURfUkxQX1JFVl9EQVRBX1JFUV9NU0csCisgICAgTVNHX0lEX1JMUF9ITFdfRldEX0RBVEFfQUNLX01TRywKKyAgICBNU0dfSURfUkxQX1JFSU5TVEFURV9SQVRFX01TRywKKyAgICBNU0dfSURfUkxQX1JBVEVfQ09OVFJPTF9NU0csIC8qIGZyb20gUFMgKi8KKyAgICBNU0dfSURfUkxQX0RDQ0hfUkVWX0RBVEFfUkVRX01TRywgICAKKyAgICBNU0dfSURfUkxQX0lOQUNUX1RNT19SRVFfTVNHLCAgICAgCisKKyAgICBNU0dfSURfUkxQX0VUU19SRVNFVF9TVEFUX0NGR19NU0csCisgICAgTVNHX0lEX1JMUF9FVFNfUEVFS19SWFFfU1RBVF9DRkdfTVNHLAorICAgIE1TR19JRF9STFBfRVRTX1BFRUtfRlJBTUVfU1RBVF9DRkdfTVNHLAorICAgIE1TR19JRF9STFBfRVRTX05VTV9GUkFNRV9QRVJfVVBQRVJfTEFZRVJfSU5EX0NGR19NU0csCisKKyAgICBNU0dfSURfUkxQX1JFU0VUX1NUQVRfTVNHLAorICAgIE1TR19JRF9STFBfUkVTRVRfRlJBTUVfQ09VTlRfTVNHLAorICAgIE1TR19JRF9STFBfUEVFS19GUkFNRV9TVEFUX01TRywKKyAgICAKKyAgICBNU0dfSURfUkxQX0RJU0FCTEVfTVNHLAorICAgIE1TR19JRF9STFBfUVVFUllfU1RBVF9NU0csCisgIAorICAgIC8qIElEIGZyb20gLi4uIHRvIC4uLiAqLworICAgIE1TR19JRF9STFBfU1RBUlRVUF9TSUdOQUwsCisgICAgTVNHX0lEX1JMUF9SRVZfREFUQV9SRVFfU0lHTkFMLAorICAgIE1TR19JRF9STFBfUkVWX0RBVEFfUkVRMl9TSUdOQUwsCisKKyAgICAvKiBBZGRlZCBtZXNzYWdlcyBmb3IgTVRLX1BMVF9PTl9QQ19VVCAqLworICAgIE1TR19JRF9VVF9STFBfTE1EX0ZXRF9GVU5ESUNBVEVEX0RBVEFfSU5EX01TRywgCisgICAgTVNHX0lEX1VUX1JMUF9MTURfRldEX1NDSF9EQVRBX0lORF9NU0csCisgICAgTVNHX0lEX1VUX1JMUF9TRVRfTUFYX0VMRU1FTlRfTVNHLAorICAgIAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9DWFJMUF9DT0RFX1RBSUwgKQorCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9ycl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcnJfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTdlMDI2Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcnJfbXNnaWQuaApAQCAtMCwwICsxLDEyMzkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgcnIuc2FwCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIFJSIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAJCQkJSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfUlJfTVNHX0gKKyNkZWZpbmUgX1JSX01TR19ICisKKworCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSTENfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUkxDX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9HUlJfREFUQV9SRVEgPSBNU0dfSURfUkxDX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0dSUl9VTklUREFUQV9SRVEsCisgICAgTVNHX0lEX0dSUl9GTFVTSF9SRVEsCisgICAgTVNHX0lEX01BQ19STENfVUxfQ09OX0lORCwKKyNpZm5kZWYgX19NVEtfVEFSR0VUX18KKyAgICBNU0dfSURfTUFDX1JMQ19EQVRBX1JFUSwKKyAgICBNU0dfSURfTUFDX1RJTUVSX0VWRU5UX0lORCwKKyAgICBNU0dfSURfTUFDX05FWFRfT1VUR09JTkdfUlJCUF9JTkQsCisjZW5kaWYKKyAgICBNU0dfSURfTUFDX1JMQ19BQ0tfSU5ELAorICAgIE1TR19JRF9NQUNfUkxDX1NXSVRDSF9UT19ETCwKKyAgICBNU0dfSURfTUFDX1JMQ19SRUFEWV9JTkQsCisgICAgTVNHX0lEX01BQ19STENfUERDSF9SRUxfSU5ELAorCisgICAgTVNHX0lEX1JBVENNX0dBU19SRUFEWV9USU1FUl9VUERBVEVfUkVRLAorICAKKyAgICBNU0dfSURfTUFDX1JMQ19SRUxfQ05GLAorICAgIE1TR19JRF9SQVRDTV9HQVNfQ0VMTF9VUERBVEVEX1JFUSwKKyAgICBNU0dfSURfTUFDX1JMQ19BQ0NFU1NfUkVKRUNUX0lORCwKKyAgICBNU0dfSURfTUFDX1JMQ19QU19DT05GX1RJTUVSX1VQREFURV9SRVEsCisKKyAgICBNU0dfSURfTUFDX1JMQ19TV0lUQ0hfVE9fVUwsCisgICAgTVNHX0lEX1JMQ19ETF9DT0RFX0JFR0lOID0gTVNHX0lEX01BQ19STENfU1dJVENIX1RPX1VMLAorICAgIE1TR19JRF9NQUNfUkxDX0RMX0NPTl9JTkQsCisKKyNpZm5kZWYgX19NVEtfVEFSR0VUX18KKyAgICBNU0dfSURfTUFDX1JMQ19ETF9EQVRBX0lORCwKKyAgICBNU0dfSURfTUFDX1JMQ19BQ0tfUkVRLAorI2VuZGlmCisKKyAgICBNU0dfSURfUkVBU01fUkxDX1JFQVNNX0RPTkVfSU5ELAorCisgICAgTVNHX0lEX1JBVENNX0dBU19TVEFSVF9URVNUX01PREVfUkVRLCAgICAKKworICAgIE1TR19JRF9NQUNfUkxDX1RCRl9SRUxfSU5ELAorICAgIE1TR19JRF9STENfQ09NTU9OX0NPREVfQkVHSU4gPSBNU0dfSURfTUFDX1JMQ19UQkZfUkVMX0lORCwKKyAgICBNU0dfSURfUkxDX0NPREVfRU5EID0gTVNHX0lEX01BQ19STENfVEJGX1JFTF9JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JMQ19DT0RFX1RBSUwgKQorICAgIAorTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JSTV9DT01NT05fQ09ERV9CRUdJTiApCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSUk1fTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisgICAgTVNHX0lEX1NJTV9SUl9SRUFEWV9JTkQgPSBNU0dfSURfUlJNX0NPTU1PTl9DT0RFX0JFR0lOLAorICAgIC8vTVNHX0lEX1JBVENNX0dBU19EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfU0VUX01SVV9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19DTEVBUl9NUlVfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfQUREX0ZPUkJJRERFTl9MQV9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19ERUFDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX0RFTF9GT1JCSURERU5fTEFfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfRVFfUExNTl9MSVNUX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19JTklUX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1BBR0lOR19QQVJBTV9BU1NJR05fUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfUkVHTl9TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1JQTE1OX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfUkZPRkZfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfUkZPTl9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19TRVRfUkFUX01PREVfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfU0VUX0lNRUlfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfU0lNX0lORk9fUkVTRVRfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfVExMSV9BU1NJR05fUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfSFBMTU5fSU5GT19VUERBVEVfUkVRLCAvL210azAyNDc1OiBNQVVJXzAyNDU2OTY0CisgICAgTVNHX0lEX1JBVENNX0dBU19TRVRfUFJFRkVSUkVEX0JBTkRfUkVRLAorI2lmZGVmIF9fTU9OSVRPUl9QQUdFX0RVUklOR19UUkFOU0ZFUl9fCisgICAgTVNHX0lEX1JBVENNX0dBU19TRVRfR1BSU19UUkFOU0ZFUl9QUkVGRVJFTkNFX1JFUSwKKyNlbmRpZiAvKiBfX01PTklUT1JfUEFHRV9EVVJJTkdfVFJBTlNGRVJfXyAqLworCisjaWZkZWYgX19HRU1JTklfXworICAgIE1TR19JRF9SQVRDTV9HQVNfU0lNX1NUQVRVU19VUERBVEVfUkVRLAorCisjaWYgZGVmaW5lZChfX1VNVFNfUkFUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pCisgICAgTVNHX0lEX1JBVENNX0dBU19OT19JUl9TSUdfUFJPQ19SRVEsCisjZW5kaWYvKiBkZWZpbmVkKF9fVU1UU19SQVRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykgKi8KKworI2lmZGVmIF9fTFRFX1JBVF9fCisgICAgTVNHX0lEX1JBVENNX0dBU19DU19TVEFUVVNfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX0NDT19TVUNDRVNTX0ZPUkNFRF9CWV9OQVNfUkVRLAorI2VuZGlmLyogX19MVEVfUkFUX18gKi8KKyNlbmRpZgorCisgICAgTVNHX0lEX01QQUxfUlJfRU5URVJfSURMRV9JTkQsCisKKyNpZiBkZWZpbmVkKF9fTFRFX1JBVF9fKSB8fCBkZWZpbmVkKF9fTlJfUkFUX18pCisJTVNHX0lEX1JBVENNX0dBU19SQVRfQ0hBTkdFX1JTUCwKKyNlbmRpZiAvKiBkZWZpbmVkKF9fTFRFX1JBVF9fKSB8fCBkZWZpbmVkKF9fTlJfUkFUX18pICovCisKKyNpZmRlZiBfX0xURV9SQVRfXworICAgIE1TR19JRF9SQVRDTV9HQVNfUkFUX0NIQU5HRV9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19QQUdFX1JFUSwKKyNlbmRpZiAvKiBfX0xURV9SQVRfXyAqLworICAgIE1TR19JRF9SQVRDTV9HQVNfQ0FQX1VQREFURV9SRVEsIAorCisgICAgTVNHX0lEX1JBVENNX0dBU19DQUxMX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX1JBVENNX0dBU19FTUNfRk9SQklEREVOX05XX0xJU1RfVVBEQVRFX1JFUSwKKyAgICAKKyAgICBNU0dfSURfUkFUQ01fR0FTX0FSQUxfVVBEQVRFX1JFUSwKKyAgICAKKyAgICAvL01TR19JRF9NUEFMX1JSX0RVUExFWF9NT0RFX0NIQU5HRV9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfU0VUX1JBVF9TRVJWSUNFX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9CU0lDX1NZTkNfQ05GLAorICAgIE1TR19JRF9NUEFMX1JSX05FSUdIQk9SX0JTSUNfSU5ELAorICAgIE1TR19JRF9NUEFMX1JSX0NFTExfQlNJQ19JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfREFUQV9JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfQ0VMTF9TRUxFQ1RJT05fSU5JVF9DTkYsCisgICAgCisjaWZkZWYgX19HRU1JTklfXworICAgIE1TR19JRF9SU1ZBU19HQVNfU1VTUEVORF9TRVJWSUNFX1JFUSwKKyAgICBNU0dfSURfUlNWQVNfR0FTX1JFU1VNRV9TRVJWSUNFX1JFUSwKKworICAgIC8qIEFkZCBmb3IgX19HRU1JTklfXyAqLworICAgIE1TR19JRF9SU1ZBU19HQVNfQUJPUlRfU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX1JTVkFTX0dBU19BQk9SVF9TRVJWSUNFX0NPTVBMRVRFX0lORCwKKworICAgIC8qIGZvciAgR2VtaW5pIDIuMCAqLworICAgIE1TR19JRF9SU1ZBU19HQVNfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorICAgIE1TR19JRF9SU1ZBU19HQVNfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfQ09NUExFVEVfSU5ELAorICAgIE1TR19JRF9SU1ZBU19HQVNfVklSVFVBTF9SRVNVTUVfU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX01QQUxfUlJfVklSVFVBTF9TVVNQRU5EX0NORiwKKworI2lmZGVmIF9fQURBUFRJVkVfUEFHSU5HX1BFUklPRF9JTl9VTkFDS19NT0RFX18KKyAgICBNU0dfSURfUlJfUFJSX0FESlVTVF9QQUdJTkdfUEVSSU9EX0lORCwKKyNlbmRpZiAvKiBfX0FEQVBUSVZFX1BBR0lOR19QRVJJT0RfSU5fVU5BQ0tfTU9ERV9fICovCisKKyAgICAvKiBmb3Igc2hhcmUgcG93ZXIgc2NhbiAqLworICAgIE1TR19JRF9SUl9QUlJfUkZfUkVTVUxUX05PVElGWV9SRVEsCisjZW5kaWYKKworICAgIC8qIFRoaXMgcHJpbWl0aXZlIGlzIHVzZWQgdG8gdmVyaWZ5IGxhcmdlIHN0cnVjdHVyZXMgb3IgdmFyaWFibGVzIGluIGNvbnRleHQgZm9yIFVUIGNoZWNrLgorICAgICAgIFNpbmNlIHZlcmlmeSBHViB1dGlsaXR5IGluIE1TQyBpcyBzdWl0YWJsZSBmb3IgYSBmZXcgaXRlbXMsIGFuZCB3ZSBkbyBub3Qgd3JhcCBvcHRpb24gCisgICAgICAgVU5JVF9URVNUIGZvciBjb252ZW5pZW5jZS4gKi8KKyAgICBNU0dfSURfUlJNX1ZFUklGWV9HVl9GT1JfVVQsCisKKyAgICAvKiBBZGQgZm9yIEdJU0UgdG8gUlJNICovCisgICAgTVNHX0lEX0dJU0VfUlJNX0dFVF9HQ0VMTF9NRUFTX0NORiwKKyAgICBNU0dfSURfR0lTRV9SUk1fU1lOQ19DT05URVhUX0lORCwKKworICAgIE1TR19JRF9SU1ZBU19HQVNfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX1JTVkFTX0dBU19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfUlNJTV9EQVRBX0FCT1JUX1JFUSwKKworICAgIE1TR19JRF9HSVNFX1JSTV9TVVNQRU5EX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9TUEVDSUZJQ19TWU5DX0NORiwKKworICAgIE1TR19JRF9SQVRDTV9HQVNfQ0hFQ0tfQUNUSVZFX1JBVF9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19TRVRfQUNUSVZFX1JBVF9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19TTklGRkVSX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1NOSUZGRVJfU1RPUF9SRVEsCisJTVNHX0lEX1JBVENNX0dBU19FTEVWQVRPUl9NT0RFX1JFUSwKKworICAgIC8qVGhlc2UgbXNncyBhcmUgdG8gc2F2ZSBwb3dlciBkdXJpbmcgU05JRkZFUiAtIE9QUE8gcmVxdWlyZW1lbnQqLworICAgIE1TR19JRF9SQVRDTV9HQVNfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1NDUkVFTl9PTl9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19TQ1JFRU5fT0ZGX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1NFUlZJQ0VfUkVDT1ZFUllfUk9VTkRfVVBEQVRFX1JFUSwgIAorICAgIE1TR19JRF9DQ19HQVNfQ0FMTF9GQUlMVVJFX0lORCwKKyAgICBNU0dfSURfUkFUQ01fR0FTX0RBVEFfQUxMT1dfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfQ1NGQl9QQUdFX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19MVEVfTk9STUFMX1NFUlZJQ0VfTE9TU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9DQ19HQVNfQ0FMTF9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9SQVRDTV9HQVNfTlJfTk9STUFMX1NFUlZJQ0VfTE9TU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQVRDTV9HQVNfUExNTl9JTkZPX1VQREFURV9SRVEsCisgICAgLyogUGxlYXNlIGFkZCBhbnkgbmV3IG1lc3NhZ2UgSUQgYWJvdmUgdGhpcyBvbmx5ICovCisgICAgTVNHX0lEX1JSTV9DT01NT05fTk9OX1VTRURfTUVTU0FHRSwKKyAgICBNU0dfSURfUlJNX0NPTU1PTl9DT0RFX0VORCA9IE1TR19JRF9SUk1fQ09NTU9OX05PTl9VU0VEX01FU1NBR0UsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUlJNX0NPTU1PTl9DT0RFX1RBSUwgKQorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSQ1NfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JDU19DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfUkFUQ01fR0FTX1BMTU5fTElTVF9SRVEgPSBNU0dfSURfUkNTX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1JBVENNX0dBU19QTE1OX0xJU1RfU1RPUF9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19QTE1OX1NFQVJDSF9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19QTE1OX0xPU1NfSU5GT19VUERBVEVfUkVRLAorCisgICAgTVNHX0lEX01QQUxfUlJfU0VBUkNIX1JGX0NORiwKKyAgICAKKyNpZiAoZGVmaW5lZChfX1VNVFNfUkFUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pKSAmJiBkZWZpbmVkKF9fR0VNSU5JX18pCisgICAgTVNHX0lEX1JTVkFHX0dBU19GUkVRVUVOQ1lfU0NBTl9TVEFSVF9DTkYsCisgICAgTVNHX0lEX1JTVkFHX0dBU19GUkVRVUVOQ1lfU0NBTl9TVE9QX0NORiwKKyAgICBNU0dfSURfUlNWQUdfR0FTX0ZSRVFVRU5DWV9TQ0FOX1BSRUVNUFRfSU5ELAorICAgIE1TR19JRF9SU1ZBR19HQVNfRlJFUVVFTkNZX1NDQU5fQUNDRVBUX0lORCwKKyNlbmRpZiAvKiAoZGVmaW5lZChfX1VNVFNfUkFUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pKSYmZGVmaW5lZChfX0dFTUlOSV9fKSAqLworCU1TR19JRF9SQVRDTV9HQVNfUExNTl9MSVNUX0FCT1JUX1JFUSwKKyAgICAKKyAgICAvKiBQbGVhc2UgYWRkIGFueSBuZXcgbWVzc2FnZSBJRCBhYm92ZSB0aGlzIG9ubHkgKi8KKyAgICBNU0dfSURfUkNTX0NPTU1PTl9OT05fVVNFRF9NRVNTQUdFLAorICAgIE1TR19JRF9SQ1NfQ09ERV9FTkQgPSBNU0dfSURfUkNTX0NPTU1PTl9OT05fVVNFRF9NRVNTQUdFLAorICAgIAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9SQ1NfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JNUENfQ09ERV9CRUdJTiApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUk1QQ19NU0dfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyAgICBNU0dfSURfUkFUQ01fR0FTX0NPTk5fRVNUX1JFUSA9IE1TR19JRF9STVBDX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1JBVENNX0dBU19DT05OX1JFTF9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19DT05OX0FCT1JUX1JFUSwgLypaWTogYWRkIGZvciB1c2VyIG1vIGFib3J0IHJlcXVlc3QqLworICAgIE1TR19JRF9SQVRDTV9HQVNfREFUQV9SRVEsCisgICAgTVNHX0lEX1JBVENNX0dBU19TRUNVUklUWV9NT0RFX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1NFUlZJQ0VfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX0NCQ0hfUkVRLCAgICAgICAgICAgCisgICAgTVNHX0lEX1JBVENNX0dBU19DQl9VUERBVEVfUkVRLCAKKyAgICBNU0dfSURfUkFUQ01fR0FTX0NCX01TR19SRU1PVkFMX1JFUSwKKworI2lmZGVmIF9fQUdQU19DT05UUk9MX1BMQU5FX18KKyAgICBNU0dfSURfUlJMUF9HQVNfREFUQV9SRVEsCisjZWxzZQorICAgIC8qIE5VTEwgKi8KKyNlbmRpZgorCisgICAgTVNHX0lEX01BQ19STVBDX0NUUkxfTVNHX0lORCwKKyAgICBNU0dfSURfTUFDX1JNUENfUEtUX0FDQ0VTU19SRVEsCisgICAgTVNHX0lEX01BQ19STVBDX0FDQ0VTU19SRVNVTFRfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19FTlRFUl9JRExFX1JFUSwKKyAgICAKKyAgICBNU0dfSURfTUFDX1JNUENfRExfQVNTSUdOX1JFU1VMVF9JTkQsCisgICAgTVNHX0lEX01BQ19STVBDX1RCRl9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19DVFJMX01TR19DTkYsCisgICAgTVNHX0lEX01BQ19STVBDX1BTX0hBTkRPVkVSX01TR19JTkQsCisgICAgTVNHX0lEX01BQ19STVBDX1BTX0hBTkRPVkVSX0NPTk5FQ1RfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19QU19IQU5ET1ZFUl9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19QU19IQU5ET1ZFUl9SRUNPTk5FQ1RfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19QU19IQU5ET1ZFUl9SU1BfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19QQUNLRVRfQVBQTElDQVRJT05fSU5GT19NU0dfSU5ELAorICAgIE1TR19JRF9STENfUk1QQ19SRVNFTF9SRVEsCisgICAgTVNHX0lEX1JMQ19STVBDX01TX1NUQVRFX0NIQU5HRV9JTkQsCisjaWZkZWYgX19BREFQVElWRV9QQUdJTkdfUEVSSU9EX0lOX1VOQUNLX01PREVfXworICAgIE1TR19JRF9STENfUk1QQ19BREpVU1RfUEFHSU5HX1BFUklPRF9JTkQsCisjZW5kaWYKKyAgICBNU0dfSURfTVBBTF9SUl9ORUlHSEJPUl9NRUFTX0lORCwKKyAgICBNU0dfSURfTVBBTF9SUl9OQ19NRUFTVVJFTUVOVF9JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfRVhURU5ERURfTUVBU19JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfU0VSVl9JRExFX01FQVNfSU5ELAorICAgIE1TR19JRF9NUEFMX1JSX1NFUlZfREVESV9NRUFTX0lORCwKKyAgICAKKyNpZmRlZiBfX1BLVF9FWFRfTUVBU19fCisgICAgTVNHX0lEX01QQUxfUlJfUEtUX0VYVF9NRUFTVVJFTUVOVF9JTkQsCisjZW5kaWYgLypfX1BLVF9FWFRfTUVBU19fKi8KKworI2lmZGVmIF9fR0VNSU5JX18KKyAgICBNU0dfSURfTVBBTF9SUl9TVVNQRU5EX1BST0NfRklOSVNIX0lORCwKKyNlbmRpZiAvKl9fR0VNSU5JX18gKi8KKworI2lmbmRlZiBfX1BTX0wxX0RDX0FSQ0hfXworICAgIC8qIEFsdGhvdWdoIGl0IGlzIGEgbWVzc2FnZSBmb3IgVVQgb25seSwgYnV0IG1jZGRsbCBidWlsZCBmbG93IGRvIG5vdCByZWNvZ25pemUgX19NVEtfVEFSR0VUX18sIHNvIHRoaXMgCisgICAgICAgbWVzc2FnZSBzaG91bGQgYmUgYnVpbHQgaW50byBib3RoIHRhcmdldC9Nb0RJUywgb3RoZXJ3aXNlIGl0IHdvdWxkIGNhdXNlIE1TR19JRCBzaGlmdCBwcm9ibGVtLiAqLworICAgIE1TR19JRF9NUEFMX1JSX0RFVEVDVF9QQUdJTkdfQkxPQ0tfQ0FMTEJBQ0tfUkVRLAorI2VuZGlmIC8qICFfX1BTX0wxX0RDX0FSQ0hfXyAqLworCisgICAgTVNHX0lEX01QQUxfUlJfUkFDSF9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfSEFORE9WRVJfRkFJTF9JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfSEFORE9WRVJfU1VDQ0VTU19JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfSEFORE9WRVJfQ09OTkVDVF9JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfREVESUNBVEVEX0NIQU5ORUxfQ09OTkVDVF9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfREVESUNBVEVEX0NIQU5ORUxfRElTQ09OTkVDVF9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfREVESUNBVEVEX0NIQU5ORUxfUkVDT05ORUNUX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9GUkVRVUVOQ1lfUkVERUZJTklUSU9OX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9DSEFOTkVMX01PREVfTU9ESUZZX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9DSVBIRVJJTkdfTU9ERV9DT01NQU5EX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9DTE9TRV9UQ0hfTE9PUF9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfT1BFTl9UQ0hfTE9PUF9DTkYsCisgICAgTVNHX0lEX1JNUF9NU0dfQ09ERV9FTkQgPSBNU0dfSURfTVBBTF9SUl9PUEVOX1RDSF9MT09QX0NORiwKKyAgCisgICAgTVNHX0lEX0xBUERNX1JSX0VTVEJfQ09ORiwKKyAgICBNU0dfSURfTEFQRE1fUlJfRVNUQl9JTkQsCisgICAgTVNHX0lEX0xBUERNX1JSX1JFTF9JTkQsCisgICAgTVNHX0lEX0xBUERNX1JSX1JFTF9DT05GLAorICAgIE1TR19JRF9MQVBETV9SUl9TVVNfQ09ORiwKKyAgICBNU0dfSURfTEFQRE1fUlJfUkVTVU1FX0NPTkYsCisgICAgTVNHX0lEX0xBUERNX1JSX1JFQ09OX0NPTkYsCisgICAgTVNHX0lEX0xBUERNX1JSX0RBVEFfSU5ELAorICAgIE1TR19JRF9MQVBETV9SUl9VTklUREFUQV9JTkQsCisgICAgTVNHX0lEX0xBUERNX1JSX0VSUk9SX0lORCwKKyAgICAKKyNpZiBkZWZpbmVkKF9fVU1UU19SQVRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKKyAgICBNU0dfSURfTEFQRE1fUlJfSU5URVJfUkFUX0VTVF9DTkYsCisjZW5kaWYgLyogZGVmaW5lZChfX1VNVFNfUkFUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pICovCisKKyAgICBNU0dfSURfTEFQRE1fUlJfREFUQV9DT05GLAorICAgIE1TR19JRF9STVBDX0NPREVfRU5EID0gTVNHX0lEX0xBUERNX1JSX0RBVEFfQ09ORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUk1QQ19DT0RFX1RBSUwgKQorICAKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9SUk1fTVBBTF9NTV9DT0RFX0JFR0lOICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0gTVNHX0lEX1JSTV9NUEFMX01NX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgCisjaWYgZGVmaW5lZChfX1VNVFNfUkFUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pCisgICAgTVNHX0lEX01QQUxfUlJfU1RBTkRCWV9HU01fTUVBU19JTkQgPSBNU0dfSURfUlJNX01QQUxfTU1fQ09ERV9CRUdJTiwKKyNpZiBkZWZpbmVkKF9fMjNHX1BSSV9SRVNFTF9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pCisgICAgTVNHX0lEX01QQUxfUlJfU1RBTkRCWV9HU01fUFJJT19NRUFTX0lORCwgLyogUjggUEJDUiAqLworI2VuZGlmIC8qIGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykgKi8KKyAgICBNU0dfSURfTVBBTF9SUl9TVEFOREJZX0dTTV9CU0lDX0lORCwKKyNpZmRlZiBfX0xURV9SQVRfXyAgICAKKyAgICBNU0dfSURfTVBBTF9SUl9TVEFOREJZX0dTTV9SRVBPUlRfQ0dJX1NFQVJDSF9SRl9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9CU0lDX0lORCwKKyNlbmRpZiAvKiBfX0xURV9SQVRfXyAqLyAgICAKKyAgICBNU0dfSURfTVBBTF9SUl9JTlRFUl9SQVRfSEFORE9WRVJfQ05GLCAgCisgICAgTVNHX0lEX1JSTV9NUEFMX01NX0NPREVfRU5EID0gTVNHX0lEX01QQUxfUlJfSU5URVJfUkFUX0hBTkRPVkVSX0NORiwKKyNlbmRpZiAvKiBkZWZpbmVkKF9fVU1UU19SQVRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykgKi8KKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9SUk1fTVBBTF9NTV9DT0RFX1RBSUwpCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9NQUNfQ09ERV9CRUdJTiApCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNQUNfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9STENfTUFDX1JFU19SRVEgPSBNU0dfSURfTUFDX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1JMQ19NQUNfVEJGX1JFTF9SRVEsCisgICAgTVNHX0lEX1JMQ19NQUNfVUxfREFUQV9JTkQsCisgICAgTVNHX0lEX1JMQ19NQUNfQUNLX1JFUywKKy8qIEV2ZWx5biAyMDA5MDQxNTogTWVyZ2UgUjYgKi8KKyAgICBNU0dfSURfUk1QQ19NQUNfQ1RSTF9NU0dfUkVRLAorICAgIE1TR19JRF9STVBDX01BQ19DVFJMX01TR19ERUxFVEVfUkVRLAorICAgIE1TR19JRF9STVBDX01BQ19VTF9BU1NJR05fSU5ELAorICAgIE1TR19JRF9STVBDX01BQ19ETF9BU1NJR05fSU5ELAorICAgIE1TR19JRF9STVBDX01BQ19TVVNQRU5EX1RCRl9SRVEsCisgICAgTVNHX0lEX1JNUENfTUFDX1JFU1VNRV9UQkZfUkVRLAorICAgIE1TR19JRF9STVBDX01BQ19TSV9JTkZPX1JFQURZX0lORCwKKy8vICBFdmVseW4gQWRkIGZvciBQUyBIQU5ET1ZFUgorICAgIE1TR19JRF9STVBDX01BQ19QU19IQU5ET1ZFUl9SRVEsCisgICAgTVNHX0lEX1JNUENfTUFDX1BTX0hBTkRPVkVSX0VSUk9SX1JTUCwKKyAgICBNU0dfSURfTVBBTF9SUl9QU19IQU5ET1ZFUl9DTkYsCisgICAgTVNHX0lEX01QQUxfUlJfUFNfSEFORE9WRVJfUkVDT05ORUNUX0NORiwKKyAgICAKKworICAgIE1TR19JRF9NUEFMX1JSX1RSQU5TRkVSX0RBVEFfSU5ELAorICAgIE1TR19JRF9NUEFMX1JSX0VHUFJTX1RSQU5TRkVSX0RBVEFfSU5ELAorICAgIE1TR19JRF9NUEFMX1JSX1JFQURZX1RPX1NFTkRfSU5ELAorICAgIE1TR19JRF9NUEFMX1JSX1BEVENIX0RJU0NPTk5fQ05GLAorICAgIE1TR19JRF9NUEFMX1JSX0NDQ0hfUlJCUF9DTkYsCisgIAorI2lmICBkZWZpbmVkKF9fTVRLX1RBUkdFVF9fKSAmJiAoIWRlZmluZWQoX19NQUNfU0hPV19UUkFOU19EQVRBX18pKQorICAgIC8qIE5VTEwgKi8KKyNlbHNlCisgICAgTVNHX0lEX1JNUENfTUFDX0NFTExfU1RBVFVTX0lORCwgCisjZW5kaWYKKworI2lmICghZGVmaW5lZChfX01US19UQVJHRVRfXykpICYmIChkZWZpbmVkIChfX0dFUkFOX1JUVElfXykgfHwgZGVmaW5lZChfX0dFUkFOX0ZBTlJfXykpCisgICAgTVNHX0lEX01QQUxfUlJfVFJBTlNGRVJfREFUQV9OT1RJQ0VfSU5ELAorI2VuZGlmCisKKyAgICBNU0dfSURfTUFDX01BQ19UUkFOU19EQVRBX0lORCwKKyNpZiBkZWZpbmVkKF9fUFNfTDFfRENfQVJDSF9fKSAmJiAoIWRlZmluZWQoX19NVEtfVEFSR0VUX18pKQorICAgIE1TR19JRF9NQUNfTUFDX1JSQlBfRk5fSU5ELAorI2VuZGlmCisKKyAgICBNU0dfSURfTVBBTF9SUl9FR1BSU19MT09QX0NORiwKKyAgICBNU0dfSURfTVBBTF9SUl9QRFRDSF9DT05ORUNUX0lORCwKKyAgICAKKyAgICBNU0dfSURfTUFDX1JNUENfQ09NTU9OX0NPREVfQkVHSU4gPSBNU0dfSURfTVBBTF9SUl9QRFRDSF9DT05ORUNUX0lORCwKKyAgICBNU0dfSURfTVBBTF9SUl9JTlRfTUVBU1VSRU1FTlRfSU5ELAorICAgIE1TR19JRF9NQUNfUk1QQ19DT01NT05fQ09ERV9FTkQgPSBNU0dfSURfTVBBTF9SUl9JTlRfTUVBU1VSRU1FTlRfSU5ELAorICAgIAorICAgIE1TR19JRF9NQUNfQ09ERV9FTkQgPSBNU0dfSURfTUFDX1JNUENfQ09NTU9OX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9NQUNfQ09ERV9UQUlMICkKKyAgCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTEFQRE1fQ09ERV9CRUdJTiApCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIExBUERNX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9SUl9MQVBETV9EQVRBX1JFUSA9IE1TR19JRF9MQVBETV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9SUl9MQVBETV9VTklUREFUQV9SRVEsCisjaWZkZWYgX19BR1BTX0NPTlRST0xfUExBTkVfXworICAgIE1TR19JRF9SUl9MQVBETV9BUFBfREFUQV9SRVEsCisgICAgTVNHX0lEX1JSX0xBUERNX0NMRUFSX0FQUF9RVUVVRV9SRVEsCisjZWxzZQorICAgIC8qIE5VTEwgKi8KKyNlbmRpZiAgICAKKyAgICBNU0dfSURfUlJfTEFQRE1fRVNUQl9SRVEsCisgICAgTVNHX0lEX1JSX0xBUERNX1NVU19SRVEsCisgICAgTVNHX0lEX1JSX0xBUERNX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX1JSX0xBUERNX1JFQ09OX1JFUSwKKyAgICBNU0dfSURfUlJfTEFQRE1fUkVMX1JFUSwKKyAgICBNU0dfSURfUlJfTEFQRE1fTURMX1JFTF9SRVEsCisgICAgTVNHX0lEX1JSX0xBUERNX0NFTExfT1BUSU9OX1VQREFURV9SRVEsCisgICAgTVNHX0lEX0xBUERNX1VMX0RBVEFfUkVRLAorICAgIE1TR19JRF9MQVBETV9ETF9BTkRfVUxfSU5ELAorCisgICAgTVNHX0lEX1JSX0xBUERNX0lOVEVSX1JBVF9FU1RfUkVRLAorICAgIE1TR19JRF9MQVBETV9DT0RFX0VORCA9IE1TR19JRF9SUl9MQVBETV9JTlRFUl9SQVRfRVNUX1JFUSwKKworICAgIE1TR19JRF9SUl9NUEFMX0RFRElDQVRFRF9EQVRBX1JFUSwKKyAgICBNU0dfSURfTVBBTF9SUl9ERURJQ0FURURfREFUQV9JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfREVESUNBVEVEX1JFQURZX1RPX1NFTkRfSU5ELAorICAgIE1TR19JRF9NUEFMX1JSX0RFRElDQVRFRF9EQVRBX0NBTExCQUNLX0lORCwKKyAgICBNU0dfSURfTVBBTF9SUl9ERURJQ0FURURfUkVBRFlfVE9fU0VORF9DQUxMQkFDS19JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0xBUERNX0NPREVfVEFJTCApICAgIAorICAKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9SRUFTTV9DT0RFX0JFR0lOICkKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUkVBU01fTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX1JMQ19SRUFTTV9CRUdJTl9SRUFTTV9JTkQgPSBNU0dfSURfUkVBU01fQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfUkxDX1JFQVNNX1RCRl9SRUxfSU5ELAorICAgIE1TR19JRF9GTENfUkVBU01fUkVTVU1FX1JFUSwKKyAgICBNU0dfSURfUkVBU01fQ09ERV9FTkQgPSBNU0dfSURfRkxDX1JFQVNNX1JFU1VNRV9SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JFQVNNX0NPREVfVEFJTCApCisgIAorTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX01QQUxfQ09ERV9CRUdJTiApCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNUEFMX01TR19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9SUl9NUEFMX1NFQVJDSF9SRl9SRVEgPSBNU0dfSURfTVBBTF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9SUl9NUEFMX1JFUV9DT0RFX0JFR0lOID0gTVNHX0lEX1JSX01QQUxfU0VBUkNIX1JGX1JFUSwgLypNYXJ1Y28yMDA4MDkwNCwgYWRkIGZvciBjb3VudCBNUEFMX05VTV9VTF9NU0dTKi8KKyAgICBNU0dfSURfUlJfTVBBTF9TRUFSQ0hfUkZfU1RPUF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfQlNJQ19TWU5DX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9TUEVDSUZJQ19TWU5DX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9TRVJWX0JDQ0hfTU9OSVRPUl9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfQ0NDSF9NT05JVE9SX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9QQUdFX01PREVfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9SQUNIX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9TVE9QX1JBQ0hfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0RFRElDQVRFRF9DSEFOTkVMX0NPTk5FQ1RfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0RFRElDQVRFRF9DSEFOTkVMX0RJU0NPTk5FQ1RfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0hBTkRPVkVSX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9IQU5ET1ZFUl9TVE9QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9ERURJQ0FURURfQ0hBTk5FTF9SRUNPTk5FQ1RfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0ZSRVFVRU5DWV9SRURFRklOSVRJT05fUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NIQU5ORUxfTU9ERV9NT0RJRllfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NJUEhFUklOR19NT0RFX0NPTU1BTkRfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NMT1NFX1RDSF9MT09QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9PUEVOX1RDSF9MT09QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9EQUlfVEVTVF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfUE9XRVJfQ0xBU1NfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NFTExfT1BUSU9OX1VQREFURV9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfRVhURU5ERURfTUVBU19SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfTkVJR0hCT1JfTUVBU19SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfTkVJR0hCT1JfQlNJQ19TVEFSVF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfTkVJR0hCT1JfQlNJQ19TVE9QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9ORUlHSEJPUl9TWVNfSU5GT19SRUFEX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9ORUlHSEJPUl9TWVNfSU5GT19TVE9QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9DRUxMX0JTSUNfU1RBUlRfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NFTExfQlNJQ19TVE9QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9DRUxMX1NZU19JTkZPX1JFQURfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NFTExfU1lTX0lORk9fU1RPUF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfU0VUX0dJU0VfQ09OVEVYVF9SRVEsCisgICAgTVNHX0lEX0dJU0VfTVBBTF9TWU5DX0NPTlRFWFRfVE9fUlJNX0lORCwKKyNpZm5kZWYgX19NVEtfVEFSR0VUX18KKyAgICBNU0dfSURfUlJfTVBBTF9GTFVTSF9SRVEsIC8qZm9yIE1UQkYgVVQqLworI2lmZGVmIF9fUFNfTDFfRENfQVJDSF9fCisgICAgTVNHX0lEX01QQUxfRENfREVCVUdfSU5ELCAvKiBmb3IgREMgZGVidWcgVTEgVTIgKi8KKyAgICBNU0dfSURfTVBBTF9EQ19ERUJVR19NSU5fUlJCUF9JTkQsIC8qIGZvciBEQyBkZWJ1ZyB1cGRhdGUgbWluIHJyYnAgKi8KKyNlbmRpZgorI2VuZGlmCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDQkNIIG1zZ2NvZGVzIC0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfUlJfTVBBTF9DQkNIX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfQ0JDSF9TVEFSVF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfQ0JDSF9TVE9QX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9DQkNIX1NLSVBfUkVRLAorICAgIAorI2lmIGRlZmluZWQoX19HRU1JTklfXykKKyAgICBNU0dfSURfUlJfTVBBTF9TSU1fU1RBVFVTX1VQREFURV9SRVEsCisjZW5kaWYKKyAgICAgIAorI2lmZGVmIF9fR0VNSU5JX18gCisgICAgTVNHX0lEX1JSX01QQUxfU1VTUEVORF9QUk9DX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9SRVNVTUVfUkVRLAorICAgIC8qIFByaW1pdGl2ZSB0byBhZGp1c3QgcHJvcml0eSAqLworICAgIE1TR19JRF9SUl9NUEFMX0NFTExfU1lTX0lORk9fUFJJX0FESlVTVF9SRVEsCisgICAgLyogYWRkIGZvciBHZW1pbmkgMi4wICovCisgICAgTVNHX0lEX1JSX01QQUxfVklSVFVBTF9TVVNQRU5EX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9WSVJUVUFMX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfQ0hBTk5FTF9QUk9URUNUX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9DSEFOTkVMX1BST1RFQ1RfU1RPUF9SRVEsCisjZW5kaWYgLyogZW5kIG9mIF9fR0VNSU5JX18gKi8KKworICAgIE1TR19JRF9SUl9NUEFMX1NJTV9SRUFEWV9OT1RJRllfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX1NFVF9SQVRfU0VSVklDRV9SRVEsCisgICAvLyBNU0dfSURfUlJfTVBBTF9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NFTExfU0VMRUNUSU9OX0lOSVRfUkVRLCAKKyAgICBNU0dfSURfVDMxMjRfRVhQSVJZLAorCisgICAgTVNHX0lEX1JSX01QQUxfU01BUlRfUEFHRV9TVEFSVF9SRVEsCisKKyNpZmRlZiBfX1BTX1NFUlZJQ0VfXworI2lmZGVmIF9fTU9OSVRPUl9QQUdFX0RVUklOR19UUkFOU0ZFUl9fCisgICBNU0dfSURfUlJfTVBBTF9NT05JVE9SX1BBR0VfSU5fUFRNX1NUQVJUX1JFUSwKKyAgIE1TR19JRF9SUl9NUEFMX01PTklUT1JfUEFHRV9JTl9QVE1fU1RPUF9SRVEsCisjZW5kaWYgLyogZW5kIG9mIF9fTU9OSVRPUl9QQUdFX0RVUklOR19UUkFOU0ZFUl9fKi8KKyAgICBNU0dfSURfUlJfTVBBTF9OQ19NRUFTVVJFTUVOVF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfU1RPUF9OQ19NRUFTVVJFTUVOVF9SRVEsCisjaWZkZWYgX19QS1RfRVhUX01FQVNfXworICAgIE1TR19JRF9SUl9NUEFMX1BLVF9FWFRfTUVBU1VSRU1FTlRfUkVRLAorI2VuZGlmIC8qX19QS1RfRVhUX01FQVNfXyovICAgIAorICAgIE1TR19JRF9SUl9NUEFMX1BEVENIX0NPTk5FQ1RfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX1JSQlBfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0NUUkxfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0RBVEFfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX1BLVF9USU1JTkdfQURWX1BXUl9DVFJMX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9QRENIX1JFTEVBU0VfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX1BEVENIX0RJU0NPTk5fUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX1BEQ0hfQVNTSUdOTUVOVF9SRVEsCisjZW5kaWYgLyogZW5kIG9mIF9fUFNfU0VSVklDRV9fICovCisKKyNpZmRlZiBfX0VHUFJTX01PREVfXworICAgIE1TR19JRF9SUl9NUEFMX1VQREFURV9JUl9SRVNFVF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfRUdQUlNfTE9PUF9SRVEsCisjZW5kaWYgLyogX19FR1BSU19NT0RFX18gKi8gICAgCisKKworLypNYXJ1Y28yMDA4MDkwNCwgYWRkIGZvciBjb3VudCBNUEFMX05VTV9VTF9NU0dTKi8KKy8qTXVzdCBub3QgaW5jbHVkZSAzRyBtc2cgc2luY2UgM0cgbXNnIHVzZSBhbm90aGVyIGZ1bmN0aW9uIHRhYmxlICovCisgICAgTVNHX0lEX1JSX01QQUxfUkVRX0NPREVfRU5ELCAKKworI2lmIGRlZmluZWQoX19VTVRTX1JBVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKQorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUlItTVBBTCBpbnRlcmZhY2UgZm9yIE11bHRpLW1vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9SUl9NUEFMX1NUQU5EQllfR1NNX01FQVNfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX0lOVEVSX1JBVF9SRVFfQ09ERV9CRUdJTiA9IE1TR19JRF9SUl9NUEFMX1NUQU5EQllfR1NNX01FQVNfUkVRLAorI2lmIGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKKyAgICBNU0dfSURfUlJfTVBBTF9TVEFOREJZX0dTTV9QUklPX01FQVNfUkVRLAorI2VuZGlmIC8qIGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykgKi8KKyAgICBNU0dfSURfUlJfTVBBTF9TVEFOREJZX0dTTV9CU0lDX1JFQURfUkVRLAorICAgIE1TR19JRF9SUl9NUEFMX1NUQU5EQllfR1NNX0JTSUNfU1RPUF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfSU5URVJfUkFUX0hBTkRPVkVSX1JFUSwKKyNpZmRlZiBfX0xURV9SQVRfXyAgICAKKyAgICBNU0dfSURfUlJfTVBBTF9TVEFOREJZX0dTTV9SRVBPUlRfQ0dJX1NFQVJDSF9SRl9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9TRUFSQ0hfUkZfU1RPUF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9CU0lDX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9TVEFOREJZX0dTTV9SRVBPUlRfQ0dJX0JTSUNfU1RPUF9SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfU1RBTkRCWV9HU01fUkVQT1JUX0NHSV9TWVNfSU5GT19SRUFEX1JFUSwKKyAgICBNU0dfSURfUlJfTVBBTF9TVEFOREJZX0dTTV9SRVBPUlRfQ0dJX1NZU19JTkZPX1NUT1BfUkVRLAorI2VuZGlmIC8qIF9fTFRFX1JBVF9fICovICAgIAorICAgIE1TR19JRF9SUl9NUEFMX1NUQU5EQllfQ0VMTF9CU0lDX1JFU19SRVEsCisgICAgTVNHX0lEX1JSX01QQUxfSU5URVJfUkFUX1JFUV9DT0RFX0VORCwKKyNlbmRpZiAvKiBkZWZpbmVkKF9fVU1UU19SQVRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykgKi8KKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1QQUwgVVQgKE1QQUwtTDEpLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZm5kZWYgX19NVEtfVEFSR0VUX18KKyAgICBNU0dfSURfTVBIQ19QSFlfSU5GT19DSEVDS19SRVEsCisgICAgTVNHX0lEX01QSENfVVRfVUxfREFUQV9SRVEsCisgICAgTVNHX0lEX01QSENfVVRfRExfREFUQV9JTkQsCisgICAgTVNHX0lEX01QQUxfUlJfVVRfVUxfREFUQV9SRVEsCisgICAgTVNHX0lEX01QQUxfUlJfVVRfRExfREFUQV9JTkQsCisvLyNpZm5kZWYgX19QU19MMV9EQ19BUkNIX18KKyAgICBNU0dfSURfUlJfTVBBTF9ERVRFQ1RfUEFHSU5HX0JMT0NLX1JFU1VMVF9DTkYsCisvLyNlbmRpZiAvKiAhX19QU19MMV9EQ19BUkNIX18gKi8KKyNlbmRpZiAvKiBfX01US19UQVJHRVRfXyAqLworCisgICAgTVNHX0lEX01QQUxfQ09ERV9FTkQsICAgCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFQR1NfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaWZkZWYgX19BR1BTX0NPTlRST0xfUExBTkVfXworICAgIE1TR19JRF9HQVNfUlJMUF9EQVRBX0lORCwKKyAgICBNU0dfSURfUlJMUF9HQVNfREFUQV9DTkYsCisgICAgTVNHX0lEX0dBU19SUkxQX0FCT1JUX0lORCwKKyAgICBNU0dfSURfR0FTX1JSTFBfRklSU1RfU0VHTUVOVF9JTkQsCisgICAgTVNHX0lEX0dBU19SUkxQX1NFR01FTlRfRElTQ0FSRF9JTkQsCisjZW5kaWYgLyogX19BR1BTX0NPTlRST0xfUExBTkVfXyAqLworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX01QQUxfQ09ERV9UQUlMICkgCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GRERfR0FTX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9SQVRDTV9HQVNfUExNTl9MSVNUX1NUQVRVU19VUERBVEVfUkVRID0gTVNHX0lEX0ZERF9HQVNfQ09ERV9CRUdJTiwKKyAgICAvKiBuZXcgQVQgY29tbWFuZCAoQVQlUEdDSEVDSykgKi8KKyAgICBNU0dfSURfUkFUQ01fR0FTX1NFVF9QR0NIRUNLX1JFUSwKKyAgICBNU0dfSURfUkFUQ01fR0FTX1JTSU1fQVVUSF9ET1dOTE9BRF9SRVEsCisgICAgTVNHX0lEX0ZERF9HQVNfQ09ERV9FTkQgPSBNU0dfSURfUkFUQ01fR0FTX1JTSU1fQVVUSF9ET1dOTE9BRF9SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9HQVNfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1RERF9HQVNfQ09ERV9CRUdJTiApCisgICBNU0dfSURfRklSU1RfVEREX0dBU19NU0dfVE9fQkVfUkVQTEFDRUQgPSBNU0dfSURfVEREX0dBU19DT0RFX0JFR0lOLAorICAgTVNHX0lEX1RERF9HQVNfQ09ERV9FTkQgPSBNU0dfSURfRklSU1RfVEREX0dBU19NU0dfVE9fQkVfUkVQTEFDRUQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9HQVNfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JSX1NNUF9CRUdJTiApCisgICAgTVNHX0lEX1JSX1NNUF9HTDFfQ0FMTEJBQ0tfU1RBUlQgPSBNU0dfSURfUlJfU01QX0JFR0lOLAorICAgIE1TR19JRF9SUl9TTVBfQ09ERV9FTkQgPSBNU0dfSURfUlJfU01QX0dMMV9DQUxMQkFDS19TVEFSVCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUlJfU01QX1RBSUwgKQorCisjZW5kaWYgLy9fUlJfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3JzdmFfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3JzdmFfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmY4YzliCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvcnN2YV9tc2dpZC5oCkBAIC0wLDAgKzEsNTM2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDcKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUEFSVFMgT0YgVEhJUyBGSUxFIEFSRSBBVVRPR0VORVJBVEVECisgKiBETyBOT1QgRURJVCBFWENFUFQgQkVUV0VFTiBMSU5FUyBNQVJLRUQgIUJFR0lOIE1BTlVBTCBDT0RFIGFuZCAhRU5EIE1BTlVBTCBDT0RFCisgKiAgICAgICAgICAgICAgIEFzc2lnbm1lbnQgOgorICogICAgICAgICAgICAgICBDT05GSURFTlRJQUwKKyAqICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDUsIFViaU5ldGljcyBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIENhbWJyaWRnZSBUZWNobm9sb2d5IENlbnRyZQorICogICAgICAgICAgICAgICBNZWxib3VybiBSb3lzdG9uCisgKiAgICAgICAgICAgICAgIEhlcnRzIFNHOCA2RFAgVUsKKyAqICAgICAgICAgICAgICAgVGVsOiArNDQgMTc2MyAyNjIyMjIKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIUJFR0lOIE1BTlVBTCBDT0RFISAoSEVBREVSUykKKyAqCisgKiBDT01QT05FTlQ6ICAgIChJbnNlcnQgQ29tcG9uZW50IE5hbWUpCisgKiBNT0RVTEU6ICAgICAgICRSQ1NmaWxlOiByc3ZhX3NhcC5oLHYgJAorICogVkVSU0lPTjogICAgICAkUmV2aXNpb246IDEuMCAkCisgKiBEQVRFRDogICAgICAgICREYXRlOiAyMDA5LzA2LzEyIDE0OjIyOjI5ICQKKyAqIEFVVEhPUjoKKyAqIERFU0NSSVBUSU9OOiAgQ2hlY2sgSGVhZGVyIGZvciBmdWxsIGRlc2NyaXB0aW9uCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAhRU5EIE1BTlVBTCBDT0RFISAoSEVBREVSUykgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfUlNWQV9NU0dfSAorI2RlZmluZSBfUlNWQV9NU0dfSAorCisjaWYgZGVmaW5lZChfX0dFTUlOSV9fKSAKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JTVkFTX0NPREVfQkVHSU4gKQorLy8gUlNWQVMKK01TR19JRF9NU1BNX1JTVkFTX0dFTUlOSV9TVEFURV9BU1NJR05fUkVRID0gTVNHX0lEX1JTVkFTX0NPREVfQkVHSU4sCitNU0dfSURfTVNQTV9SU1ZBU19HRU1JTklfU1RBVEVfQVNTSUdOX0NORiwKKworTVNHX0lEX1JTVkFTX0wxX1NVU1BFTkRfUkVRLAorTVNHX0lEX1JTVkFTX0wxX1NVU1BFTkRfQ05GLAorI2lmIDAgLyogbW92ZSB0byB1bDFfc2FwLmggKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorTVNHX0lEX1JTVkFTX0VMMV9TVVNQRU5EX1JFUSwKK01TR19JRF9SU1ZBU19FTDFfU1VTUEVORF9DTkYsCitNU0dfSURfUlNWQVNfTkwxX1NVU1BFTkRfUkVRLAorTVNHX0lEX1JTVkFTX05MMV9TVVNQRU5EX0NORiwKK01TR19JRF9SU1ZBU19OTUFDX1NVU1BFTkRfU0VSVklDRV9DTkYsCisKK01TR19JRF9SU1ZBU19MTDFfU1VTUEVORF9JTkQsCisKKy8qIENMMV9SU1ZBU19TQVAgKi8KK01TR19JRF9SU1ZBU19DTDFfTEwxX1NVU1BFTkRfSU5ELAorCitNU0dfSURfUlNWQVNfTDFfUkVTVU1FX1JFUSwKKyNpZiAwIC8qIG1vdmUgdG8gdWwxX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01TR19JRF9SU1ZBU19FTDFfUkVTVU1FX1JFUSwKK01TR19JRF9SU1ZBU19OTDFfUkVTVU1FX1JFUSwKKworTVNHX0lEX1JTVkFTX0xMMV9SRVNVTUVfSU5ELAorCitNU0dfSURfUlNWQVNfTDFfUkVTVU1FX0NORiwKKyNpZiAwIC8qIG1vdmUgdG8gdWwxX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01TR19JRF9SU1ZBU19FTDFfUkVTVU1FX0NORiwKK01TR19JRF9SU1ZBU19OTDFfUkVTVU1FX0NORiwKKworTVNHX0lEX1JTVkFTX05NQUNfUkVTVU1FX1NFUlZJQ0VfQ05GLAorCisvKiBDTDFfUlNWQVNfU0FQICovCitNU0dfSURfUlNWQVNfQ0wxX0xMMV9SRVNVTUVfSU5ELAorTVNHX0lEX1JTVkFTX0NMMV9MTDFfVklSVFVBTF9SRVNVTUVfSU5ELAorCisjaWYgMCAvKiBtb3ZlIHRvIHJyX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgLyogMCAqLworTVNHX0lEX1JTVkFTX1VBU19TVVNQRU5EX1NFUlZJQ0VfUkVRLAorTVNHX0lEX1JTVkFTX1VMMl9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorTVNHX0lEX1JTVkFTX1VMMkRfU1VTUEVORF9TRVJWSUNFX1JFUSwKKyNpZiAwIC8qIG1vdmUgdG8gZXJyY19tc2dpZC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01TR19JRF9SU1ZBU19MQVNfU1VTUEVORF9TRVJWSUNFX1JFUSwKKworTVNHX0lEX1JTVkFTX0w0Q19TVVNQRU5EX1NFUlZJQ0VfSU5ELAorCitNU0dfSURfUlNWQVNfR0FTX1NVU1BFTkRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfVUFTX1NVU1BFTkRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfRUFTX1NVU1BFTkRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfTlJSQ19TVVNQRU5EX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX0xBU19TVVNQRU5EX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX0NBU19TVVNQRU5EX1NFUlZJQ0VfQ05GLAorCitNU0dfSURfUlNWQVNfTVJTX1NVU1BFTkRfU0VSVklDRV9DT01QTEVURV9JTkQsCisKKyNpZiAwIC8qIG1vdmUgdG8gcnJfc2FwLmggKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAvKiAwICovCitNU0dfSURfUlNWQVNfVUFTX1JFU1VNRV9TRVJWSUNFX1JFUSwKKyNpZiAwIC8qIG1vdmUgdG8gZXJyY19tc2dpZC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgCisKK01TR19JRF9SU1ZBU19VTDJfUkVTVU1FX1NFUlZJQ0VfUkVRLAorTVNHX0lEX1JTVkFTX1VMMkRfUkVTVU1FX1NFUlZJQ0VfUkVRLAorCitNU0dfSURfUlNWQVNfTEFTX1JFU1VNRV9TRVJWSUNFX1JFUSwKKworTVNHX0lEX1JTVkFTX0w0Q19SRVNVTUVfU0VSVklDRV9JTkQsCisKK01TR19JRF9SU1ZBU19HQVNfUkVTVU1FX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX1VBU19SRVNVTUVfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfRUFTX1JFU1VNRV9TRVJWSUNFX0NORiwKK01TR19JRF9SU1ZBU19MQVNfUkVTVU1FX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX05SUkNfUkVTVU1FX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX0NBU19SRVNVTUVfU0VSVklDRV9DTkYsCisKKworI2lmIDAgLyogbW92ZSB0byBycl9zYXAuaCAqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmIC8qIDAgKi8KK01TR19JRF9SU1ZBU19HQVNfQUJPUlRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfVUFTX0FCT1JUX1NFUlZJQ0VfUkVRLAorTVNHX0lEX1JTVkFTX1VBU19BQk9SVF9TRVJWSUNFX0NORiwKKyNpZiAwIC8qIG1vdmUgdG8gZXJyY19tc2dpZC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01TR19JRF9SU1ZBU19FQVNfQUJPUlRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfTlJSQ19BQk9SVF9TRVJWSUNFX0NORiwKK01TR19JRF9SU1ZBU19DQVNfQUJPUlRfU0VSVklDRV9DTkYsCisKK01TR19JRF9SU1ZBU19MNENfQUJPUlRfU0VSVklDRV9JTkQsCisKKyNpZiAwIC8qIG1vdmUgdG8gcnJfc2FwLmggKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZiAvKiAwICovCitNU0dfSURfUlNWQVNfVUFTX0FCT1JUX1NFUlZJQ0VfQ09NUExFVEVfSU5ELAorI2lmIDAgLyogbW92ZSB0byBlcnJjX21zZ2lkLmggKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorCitNU0dfSURfUlNWQVNfTDRDX0FCT1JUX1NFUlZJQ0VfQ09NUExFVEVfSU5ELAorCisKKworI2lmIDAgLyogbW92ZSB0byBycl9zYXAuaCAqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmIC8qIDAgKi8KK01TR19JRF9SU1ZBU19VQVNfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfUkVRLAorI2lmIDAgLyogbW92ZSB0byBlcnJjX21zZ2lkLmggKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorTVNHX0lEX1JTVkFTX0xBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9SRVEsCitNU0dfSURfUlNWQVNfR0FTX1ZJUlRVQUxfU1VTUEVORF9TRVJWSUNFX0NORiwKK01TR19JRF9SU1ZBU19VQVNfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX0VBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfTlJSQ19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfTEFTX1ZJUlRVQUxfU1VTUEVORF9TRVJWSUNFX0NORiwKK01TR19JRF9SU1ZBU19DQVNfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfQ05GLAorCisjaWYgMCAvKiBtb3ZlIHRvIHJyX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgLyogMCAqLworTVNHX0lEX1JTVkFTX1VBU19WSVJUVUFMX1NVU1BFTkRfU0VSVklDRV9DT01QTEVURV9JTkQsCisjaWYgMCAvKiBtb3ZlIHRvIGVycmNfbXNnaWQuaCAqLworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmCisjaWYgMCAvKiBtb3ZlIHRvIHJyX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgLyogMCAqLworTVNHX0lEX1JTVkFTX1VBU19WSVJUVUFMX1JFU1VNRV9TRVJWSUNFX1JFUSwKKyNpZiAwIC8qIG1vdmUgdG8gZXJyY19tc2dpZC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKKworTVNHX0lEX1JTVkFTX0xBU19WSVJUVUFMX1JFU1VNRV9TRVJWSUNFX1JFUSwKKworTVNHX0lEX1JTVkFTX0wxX1ZJUlRVQUxfUkVTVU1FX1JFUSwKKyNpZiAwIC8qIG1vdmUgdG8gdWwxX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01TR19JRF9SU1ZBU19FTDFfVklSVFVBTF9SRVNVTUVfUkVRLAorTVNHX0lEX1JTVkFTX05MMV9WSVJUVUFMX1JFU1VNRV9SRVEsCisKK01TR19JRF9SU1ZBU19MTDFfVklSVFVBTF9SRVNVTUVfSU5ELAorCitNU0dfSURfUlNWQVNfR0FTX1ZJUlRVQUxfUkVTVU1FX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX1VBU19WSVJUVUFMX1JFU1VNRV9TRVJWSUNFX0NORiwKK01TR19JRF9SU1ZBU19FQVNfVklSVFVBTF9SRVNVTUVfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfTEFTX1ZJUlRVQUxfUkVTVU1FX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX05SUkNfVklSVFVBTF9SRVNVTUVfU0VSVklDRV9DTkYsCitNU0dfSURfUlNWQVNfQ0FTX1ZJUlRVQUxfUkVTVU1FX1NFUlZJQ0VfQ05GLAorTVNHX0lEX1JTVkFTX0wxX1ZJUlRVQUxfUkVTVU1FX0NORiwKKyNpZiAwIC8qIG1vdmUgdG8gdWwxX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKK01TR19JRF9SU1ZBU19FTDFfVklSVFVBTF9SRVNVTUVfQ05GLAorTVNHX0lEX1JTVkFTX05MMV9WSVJUVUFMX1JFU1VNRV9DTkYsCisKKworTVNHX0lEX1JTVkFTX01PTklUT1JfUEVFUl9QQ0hfU1dJVENIX1JFUSwKKworCisKK01TR19JRF9SU1ZBU19BU19QUkVGRVJFTkNFX01PREVfUkVRLAorCisKKy8qIGlmZGVmIF9fU0lOR0xFX0FQX0RVQUxfTU9ERU1fXyAqLworTVNHX0lEX1JTVkFTX1NJTV9TVEFUVVNfQ09ORklHX1JFUSwKKy8qIGVuZGlmIF9fU0lOR0xFX0FQX0RVQUxfTU9ERU1fXyAqLworCisvKiAjaWYgZGVmaW5lZChfX0VUV1NfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKSAqLworTVNHX0lEX1JTVkFTX0FTX1VQREFURV9FVFdTX1BSSU9SSVRZX1JFUSwKKy8qIGVuZGlmIF9fRVRXU19TVVBQT1JUX18gfHwgX19MVEVfUkFUX18gKi8KKworTVNHX0lEX1JTVkFTX0ZBU1RfTU9ERV9TV0lUQ0hfUkVRLAorTVNHX0lEX1JTVkFTX0ZBU1RfTU9ERV9TV0lUQ0hfQ05GLAorCisvKiBpZmRlZiBVTklUX1RFU1QgKi8KK01TR19JRF9SU1ZBU19BU19VUERBVEVfRVRXU19QUklPUklUWV9DTkYsIC8qIG9ubHkgZm9yIFVUICovCisvKiBlbmRpZiBVTklUX1RFU1QgKi8KKworTVNHX0lEX1JTVkFTX01PREVfU1dJVENIX1NUQVJUX1JFUSwKK01TR19JRF9SU1ZBU19NT0RFX1NXSVRDSF9TVEFSVF9DTkYsCitNU0dfSURfUlNWQVNfTU9ERV9TV0lUQ0hfRklOSVNIX1JFUSwKK01TR19JRF9SU1ZBU19NT0RFX1NXSVRDSF9GSU5JU0hfQ05GLAorCisvKiBpZmRlZiBVTklUX1RFU1QgKi8KK01TR19JRF9SU1ZBU19VVF9SRVNVTFRfSU5ELCAvKiBvbmx5IGZvciBVVCAqLworLyogZW5kaWYgVU5JVF9URVNUICovCisKKworTVNHX0lEX1JBQ19SU1ZBU19TRVRfUkFUX01PREVfUkVRLAorCitNU0dfSURfUlNWQVNfVUFTX1ZJUlRVQUxfQ09OTkVDVEVEX1NVU1BFTkRfUkVRLAorTVNHX0lEX1JTVkFTX1VBU19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfUkVRLAorTVNHX0lEX1JTVkFTX0VBU19WSVJUVUFMX0NPTk5FQ1RFRF9TVVNQRU5EX0NORiwKK01TR19JRF9SU1ZBU19FQVNfVklSVFVBTF9DT05ORUNURURfUkVTVU1FX0NORiwKK01TR19JRF9SU1ZBU19VQVNfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9DTkYsCitNU0dfSURfUlNWQVNfVUFTX1ZJUlRVQUxfQ09OTkVDVEVEX1JFU1VNRV9DTkYsCitNU0dfSURfUlNWQVNfR0FTX1ZJUlRVQUxfQ09OTkVDVEVEX1NVU1BFTkRfQ05GLAorTVNHX0lEX1JTVkFTX0dBU19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfQ05GLAorTVNHX0lEX1JTVkFTX05SUkNfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9DTkYsCitNU0dfSURfUlNWQVNfTlJSQ19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfQ05GLAorCisKK01TR19JRF9SU1ZBU19FQVNfVklSVFVBTF9NT0RFX1VQREFURV9DTkYsCitNU0dfSURfUlNWQVNfTlJSQ19WSVJUVUFMX01PREVfVVBEQVRFX0NORiwKK01TR19JRF9SU1ZBU19OUlJDX0dFTUlOSV9NT0RFX1VQREFURV9DTkYsCisKKworTVNHX0lEX1JTVkFTX05PTl9VU0VEX01FU1NBR0UsCitNU0dfSURfUlNWQVNfQ09ERV9FTkQgPSBNU0dfSURfUlNWQVNfTk9OX1VTRURfTUVTU0FHRSwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9SU1ZBU19DT0RFX1RBSUwgKQorCisjaWYgZGVmaW5lZChfX1VNVFNfUkFUX18pCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9SU1ZBS19DT0RFX0JFR0lOICkKKy8vIFJTVkFLCitNU0dfSURfUlNWQV9SRVNfUkVTRVJWRV9SRVEgPSBNU0dfSURfUlNWQUtfQ09ERV9CRUdJTiwKK01TR19JRF9SU1ZBX1JFU19NT0RJRllfUkVRLAorTVNHX0lEX1JTVkFfUkVTX1JFTEVBU0VfUkVRLAorTVNHX0lEX1JTVkFfUkVTX1JFU0VSVkVfQ05GLAorTVNHX0lEX1JTVkFfUkVTX01PRElGWV9DTkYsCitNU0dfSURfUlNWQV9SRVNfUkVTRVJWRV9BQ0NFUFRfSU5ELAorTVNHX0lEX1JTVkFfUkVTX1JFU0VSVkVfUFJFRU1QVF9JTkQsCitNU0dfSURfTVNQTV9SU1ZBS19TVE9QX0FMTF9GUkVRX1NDQU5fUkVRLAorTVNHX0lEX01TUE1fUlNWQUtfU1RPUF9BTExfRlJFUV9TQ0FOX0NORiwKK01TR19JRF9NU1BNX1JTVkFLX1JFU1VNRV9BTExfRlJFUV9TQ0FOX1JFUSwKK01TR19JRF9NU1BNX1JTVkFLX1JFU1VNRV9BTExfRlJFUV9TQ0FOX0NORiwKK01TR19JRF9SU1ZBS19DT0RFX0VORCA9IE1TR19JRF9NU1BNX1JTVkFLX1JFU1VNRV9BTExfRlJFUV9TQ0FOX0NORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUlNWQUtfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JTVkFVX0NPREVfQkVHSU4gKQorLy8gUlNWQVUKK01TR19JRF9SU1ZBU19SU1ZBVV9TVVNQRU5EX1NFUlZJQ0VfUkVRID0gTVNHX0lEX1JTVkFVX0NPREVfQkVHSU4sCitNU0dfSURfUlNWQVNfUlNWQVVfUkVTVU1FX1NFUlZJQ0VfUkVRLAorTVNHX0lEX1JTVkFVX0NPREVfRU5EID0gTVNHX0lEX1JTVkFTX1JTVkFVX1JFU1VNRV9TRVJWSUNFX1JFUSwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUlNWQVVfQ09ERV9UQUlMICkKKworLy8gUlNWQUcKKyNpZmRlZiAgX19HU01fUkFUX18KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9SU1ZBR19DT0RFX0JFR0lOICkKK01TR19JRF9HQVNfUlNWQUdfRlJFUVVFTkNZX1NDQU5fU1RBUlRfUkVRICA9IE1TR19JRF9SU1ZBR19DT0RFX0JFR0lOLAorTVNHX0lEX0dBU19SU1ZBR19GUkVRVUVOQ1lfU0NBTl9TVE9QX1JFUSwKK01TR19JRF9SU1ZBR19DT0RFX0VORCA9IE1TR19JRF9HQVNfUlNWQUdfRlJFUVVFTkNZX1NDQU5fU1RPUF9SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JTVkFHX0NPREVfVEFJTCApCisjZW5kaWYgLyogX19HU01fUkFUX18gKi8KKworLy8gUlNWQUUKKyNpZmRlZiBfX0xURV9SQVRfXworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JTVkFFX0NPREVfQkVHSU4gKQorTVNHX0lEX0VBU19SU1ZBRV9GUkVRVUVOQ1lfU0NBTl9TVEFSVF9SRVEgID0gTVNHX0lEX1JTVkFFX0NPREVfQkVHSU4sCitNU0dfSURfRUFTX1JTVkFFX0ZSRVFVRU5DWV9TQ0FOX1NUT1BfUkVRLAorTVNHX0lEX0VBU19SU1ZBRV9GUkVRVUVOQ1lfU0NBTl9NT0RJRllfUkVRLAorTVNHX0lEX1JTVkFFX0NPREVfRU5EID0gTVNHX0lEX0VBU19SU1ZBRV9GUkVRVUVOQ1lfU0NBTl9NT0RJRllfUkVRLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JTVkFFX0NPREVfVEFJTCApCisjZW5kaWYgLyogX19MVEVfUkFUX18gKi8KKworLy8gUlNWQU4KKyNpZmRlZiBfX05SX1JBVF9fCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUlNWQU5fQ09ERV9CRUdJTiApCitNU0dfSURfTlJSQ19SU1ZBTl9GUkVRVUVOQ1lfU0NBTl9TVEFSVF9SRVEgID0gTVNHX0lEX1JTVkFOX0NPREVfQkVHSU4sCitNU0dfSURfTlJSQ19SU1ZBTl9GUkVRVUVOQ1lfU0NBTl9TVE9QX1JFUSwKK01TR19JRF9OUlJDX1JTVkFOX0ZSRVFVRU5DWV9TQ0FOX01PRElGWV9SRVEsCitNU0dfSURfUlNWQU5fQ09ERV9FTkQgPSBNU0dfSURfTlJSQ19SU1ZBTl9GUkVRVUVOQ1lfU0NBTl9NT0RJRllfUkVRLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1JTVkFOX0NPREVfVEFJTCApCisjZW5kaWYgLyogX19OUl9SQVRfXyAqLworCisKKyNpZiBkZWZpbmVkKF9fQ0RNQTIwMDBfUkFUX18pIHx8IGRlZmluZWQoX19DMktfUkFUX18pCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUlNWQUNfQ09ERV9CRUdJTiApCitNU0dfSURfQ1NTX1JTVkFDX0ZSRVFVRU5DWV9TQ0FOX1NUQVJUX1JFUSAgPSBNU0dfSURfUlNWQUNfQ09ERV9CRUdJTiwKK01TR19JRF9DU1NfUlNWQUNfRlJFUVVFTkNZX1NDQU5fTU9ESUZZX1JFUSwKK01TR19JRF9DU1NfUlNWQUNfRlJFUVVFTkNZX1NDQU5fU1RPUF9SRVEsCitNU0dfSURfUlNWQUNfQ09ERV9FTkQgPSBNU0dfSURfQ1NTX1JTVkFDX0ZSRVFVRU5DWV9TQ0FOX1NUT1BfUkVRLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9SU1ZBQ19DT0RFX1RBSUwgKQorI2VuZGlmIC8qIF9fQ0RNQTIwMDBfUkFUX18gfHwgX19DMktfUkFUX18gKi8KKworI2VuZGlmIC8qIF9fVU1UU19SQVRfXyAqLworCisjZW5kaWYgLyogX19HRU1JTklfXyAqLworI2VuZGlmICAvL19SU1ZBX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zYXNlX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zYXNlX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAyZjVlMAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Nhc2VfbXNnaWQuaApAQCAtMCwwICsxLDE0NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBzYXNlX21zZ2lkLmgKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBTQVNFIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9TQVNFX01TR0lEX0gKKyNkZWZpbmUgX1NBU0VfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfU0FTRV9DT0RFX0JFR0lOICkgCisvLyBOUlJDIC0+IFNBU0UKK01TR19JRF9TQVNFX05SUkNfU0NHX0VWRU5UX0lORCwKK01TR19JRF9TQVNFX05SUkNfQ09OTkVDVElPTl9SRUxFQVNFX0lORCwKK01TR19JRF9TQVNFX05SUkNfU0NHX0lORk9fSU5ELAorTVNHX0lEX1NBU0VfTlJSQ19FTkRDX0RFQUNUSVZBVEVfQ05GLAorLy8gVE1DIC0+IFNBU0UKK01TR19JRF9TQVNFX1RNQ19VRV9TVEFUVVNfSU5ELAorLy8gUXVlcnkgSW5mb3JtYXRpb24KK01TR19JRF9TQVNFX0dFVF9JTkZPX1JFUSwKK01TR19JRF9TQVNFX0dFVF9JTkZPX0NORiwKKy8vIElNQyAtPiBTQVNFCitNU0dfSURfQVRQX1NBU0VfSU1TX1JFR19TVEFUVVNfSU5ELAorLy8gSU1DIC0+IFNBU0UsIElNUyBjYWxsIHN0YXR1cworTVNHX0lEX1NBU0VfSU1DX0lNU19DQUxMX1NUQVRVU19JTkQsCisvLyBTQVNFIC0+IGlXTEFOCitNU0dfSURfU0FTRV9JV0xBTl9TQV9NT0RFX05URiwKKy8vIGdlbmVyYWwgdmcgb3B0aW9uIGNvbnRyb2wgQVBJCitNU0dfSURfU0FTRV9WR19PUFRJT05fQ09OVFJPTF9SRVEsCitNU0dfSURfU0FTRV9WR19PUFRJT05fQ09OVFJPTF9DTkYsCisvL0xQUCAtPiBTQVNFCitNU0dfSURfTFBQX1NBU0VfU1RBUlRfT1RET0FfTUVBU19SRVEsCitNU0dfSURfTFBQX1NBU0VfU1RPUF9PVERPQV9NRUFTX1JFUSwKKy8vTkwxIC0+IFNBU0UKK01TR19JRF9TQVNFX05MMV9MVEVfUE9TX1NUQVJUX0NORiwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9TQVNFX0NPREVfVEFJTCApCisjZW5kaWYgIC8qIF9TQVNFX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NkbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvc2RtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJmYTljZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NkbV9tc2dpZC5oCkBAIC0wLDAgKzEsMzE3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLS0tLQorICogICBzZG1fbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBpZGVudGl0aWVzIG9mIHRoZSBtZXNzYWdlcyByZWNlaXZlZCBieSBTRE0uCisgKiAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDkgMTggMjAyMCBjaGVuLXdlaS5sYW4KKyAqIFtNT0xZMDA1NjgwODddIFtHZW45N10gU3VwcG9ydCA1ZyB0OTExCisgKiAJCisgKiAJLgorICoKKyAqIDA5IDExIDIwMjAgY2hlbi13ZWkubGFuCisgKiBbTU9MWTAwNTY4MDg3XSBbR2VuOTddIFN1cHBvcnQgNWcgdDkxMQorICogW1NXUkRddDkxMQorICoKKyAqIDA3IDI3IDIwMjAgeXVsb25nLmNoYW5nCisgKiBbTU9MWTAwNTQ5NDc4XSBbR2VuOTddW0hFMy4wXU4zR1BQIG9mZmxvYWQgb3ZlciBkYXRhIGZlYXR1cmUKKyAqIFZvRGF0YSBTRE0gcGFydCBSRCBkb21haW4KKyAqCisgKiAwNSAyMCAyMDIwIGNoZW4td2VpLmxhbgorICogW01PTFkwMDUyMzU5Ml0gU3VwcG9ydCBmb3IgTVQgU01TIGluIDNHUFAyIGZvcm1hdCBvdmVyIElNUyBkb21haW4gaW4gQ0RNQSBsZXNzIHByb2plY3QuCisgKiAzZ3BwMiBzbXMgaW4gY2RtYSBsZXNzIHByb2plY3QKKyAqCisgKiAwMyAyNSAyMDIwIGNoZW4td2VpLmxhbgorICogW01PTFkwMDQ5OTc3M10gW0ZUQUFdW0NOWV1bTURTVF1bU1dJRlRdW01UNjg3M11bTWFyZ2F1eF1bUTBdW01QMl1bU1FDXVtOU0FdW0NoaW5hXVtTaGFuZ2hhaV1bU3RhdGljXVtTSU0xOkNVXVtTSU0yOlZlcml6b25dRXh0ZXJuZWwgKEVFKSwwLDAsOTksL2RhdGEvdmVuZG9yL2NvcmUvLDEsbW9kZW0sW0ZhdGFsIGVycm9yKGJ1ZildIGVycl9jb2RlMToweDAwMDAwODIzIGVycl9jb2RlMjoweDAwMDAwMTAwIGVycl9jb2RlMzoweENDQ0NDQ0NDIE1EIE9mZmVuZGVyOk5BUworICogSU1TIE1UIFNNUyBFTkQKKyAqCisgKiAwMiAwNyAyMDIwIGNoZW4td2VpLmxhbgorICogW01PTFkwMDQ5ODgyN10gW05lZWQgUGF0Y2hdIFtTYW5pdHkgRmFpbF0gRmFpbGVkIFNNUyBzZW5kaW5nIG9uICBMVEUgLyBVTVRTIC8gR1NNIG1vZGUuCisgKiBuYXMgcmVnaXN0ZXIgc3RhdHVzCisgKgorICogMDggMjYgMjAxOSBjaGVuLXdlaS5sYW4KKyAqIFtNT0xZMDA0MzMwNDFdIFtHZW45N11bRVBTRkJdIElUIHJlbGF0ZWQgaXNzdWVzCisgKiAJCisgKiAJdWFjCisgKgorICogMDggMDggMjAxOSBjaGVuLXdlaS5sYW4KKyAqIFtNT0xZMDA0Mjc2NzldIFtHZW45N10gU01TIHRvIDkxMSBhbmQgU0NCTSBmZWF0dXJlCisgKiBbc2NibV1bT0FdaW50ZXJmYWNlCisgKgorICogMDQgMjQgMjAxOSBpYW4teXcuY2hlbgorICogW01PTFkwMDQwMTEzMV0gW0dlbjk3XSBwb3J0aW5nIGZyb20gOTUKKyAqIAkKKyAqIAlbcG9ydGluZyBmcm9tIFVNT0xZRV1bdG9fMjAxODEyMzBdCisgKiAJU0RNIHBhcnQKKyAqIAkoU1dSRCkKKyAqCisgKiAwNCAyNCAyMDE5IGlhbi15dy5jaGVuCisgKiBbTU9MWTAwNDAxMTMxXSBbR2VuOTddIHBvcnRpbmcgZnJvbSA5NQorICogCQorICogCVtwb3J0aW5nIGZyb20gVU1PTFlFXVt0b18yMDE4MTIzMF0KKyAqIAlTRE0gcGFydAorICogCShTV1JEKQorICoKKyAqIDAzIDEyIDIwMTkgaWFuLXl3LmNoZW4KKyAqIFtNT0xZMDAzOTAyNDBdIFtHZW45N10gU01TIGZlYXR1cmVzIGFuZCByZXZpc2UKKyAqICAuCisgKgorICogMDQgMDUgMjAxNyBoc3VhbmNoYW5nLmNoZW4KKyAqIFtNT0xZMDAyMzc0MTFdIFs2MjkzXVtQcmVJVF0gVVRLL1NUSyBTTVMgRmxvdyBNZXJnZQorICogCQorICogCS4gaW50ZXJmYWNlCisgKgorICogMDQgMDUgMjAxNyBoc3VhbmNoYW5nLmNoZW4KKyAqIFtNT0xZMDAyMzIwMzJdIFtTRE1dIFtNVCBTTVMgQVQgTWVyZ2VdIG1lcmdlICtDTVQvK0VJTVNDTVQgYW5kICtDRFMvK0VJTVNDRFMKKyAqIAkKKyAqIAkuIEFUUCBhbmQgaW50ZXJmYWNlCisgKgorICogMDQgMDUgMjAxNyBoc3VhbmNoYW5nLmNoZW4KKyAqIFtNT0xZMDAyMjkxODJdIFtNVDYyOTNdIEVJTVNDRkcgZm9yIFNETSAoU0RNIHJlcGxhY2UgV0ZDIGVuYWJsZSB0byB2b3dpZmkgZW5hYmxlKQorICogLgorICoKKyAqIDAzIDI0IDIwMTcgaHN1YW5jaGFuZy5jaGVuCisgKiBbTU9MWTAwMjI4NDA3XSBbU0RNXSBJbnRlcm5hbCBSZS1hcmNoCisgKiAuIGFkZCArRUNGR1NFVC8rRUNGR0dFVCBmb3IgU0RNIFByb2ZpbGUKKyAqCisgKiAwMyAyMCAyMDE3IGhzdWFuY2hhbmcuY2hlbgorICogW01PTFkwMDIyODQwN10gW1NETV0gSW50ZXJuYWwgUmUtYXJjaAorICogLiBbU0RNIFJlLWFyY2gjOF0gYWRkIFNDTSBmb3IgQ01TUyBTTVMKKyAqCisgKiAwMSAxMSAyMDE3IGhzdWFuY2hhbmcuY2hlbgorICogW01PTFkwMDIyMDUxMF0gWzkzIFBSRUlUX0RFVl1bVU1PTFlBXSBSZW5hbWUgSU1TUCBpbnRlcmZhY2UvY29udGV4dC9BUEkgdG8gQVRQIGFuZCByZW9yZyBmb2xkZXIgbGF5b3V0CisgKiAJCisgKiAJLiBTRE0gcGFydAorICoKKyAqIDEwIDMxIDIwMTYgaHN1YW5jaGFuZy5jaGVuCisgKiBbTU9MWTAwMjA4ODIxXSBbU0RNXSBVTU9MWSB0byBVTU9MWUEgc3luYworICogCQorICogCS5bVU1PTFkgdG8gVU1PTFlBXSBbTU9MWTAwMjA0MzA4XSBbPz9dW0phZGVdW0NUXVtWb0xURV1TRE0gd2lsbCBub3Qgc2VsZWN0IENTIGRvbWFpbiBmb3IgU01TIHdoZW4gQ1MgaXMgdW5yZWdpc3RlcmVkIGluIExURQorICoKKyAqIDEwIDMxIDIwMTYgaHN1YW5jaGFuZy5jaGVuCisgKiBbTU9MWTAwMjA4ODIxXSBbU0RNXSBVTU9MWSB0byBVTU9MWUEgc3luYworICogLiBSb2xsYmFjayBbTU9MWTAwMjA0MzA4XVs/P11bSmFkZV1bQ1RdW1ZvTFRFXVNETSB3aWxsIG5vdCBzZWxlY3QgQ1MgZG9tYWluIGZvciBTTVMgd2hlbiBDUyBpcyB1bnJlZ2lzdGVyZWQgaW4gTFRFCisgKgorICogMDkgMjYgMjAxNiBoc3VhbmNoYW5nLmNoZW4KKyAqIFtNT0xZMDAyMDUxMDddIFtTRE1dIENyb3NzIGNvcmUgaW50ZWdyYXRpb24gbWVyZ2UgYmFjayB0byBVTU9MWUEKKyAqIAkKKyAqIAkuCisgKgorICogMDkgMjYgMjAxNiBoc3VhbmNoYW5nLmNoZW4KKyAqIFtNT0xZMDAyMDM4OTRdIFtTRE1dIFVNT0xZQS5QUy5ERVYgbWVyZ2UgYmFjayBVTU9MWUEKKyAqIAkKKyAqIAkuCisgKgorICogMDMgMTUgMjAxNiBpYW4teXcuY2hlbgorICogW01PTFkwMDE2OTAxNV0gW0NPUFkgQ1JdW1Z6V11bTVQ2NzM1XVtQcmUtTENdW0FUIGNvbW1hbmRdWzIuNTFdICBjYXNlIGZhaWwgYXQgQVQrQ01TUz0xLCBzaG93cyBlcnJvcgorICogU0RNIHBhcnQKKyAqCisgKiAwMyAwMiAyMDE2IGlhbi15dy5jaGVuCisgKiBbTU9MWTAwMTYzODk0XSBbU01TXVtUQzAxXSAzR1BQMiBTTVMgb3ZlciBJTVMKKyAqIFtNVC9QUCBkb3dubG9hZC9TVEtdIGludGVyZmFjZQorICoKKyAqIDAzIDAyIDIwMTYgaWFuLXl3LmNoZW4KKyAqIFtNT0xZMDAxNjM4OTRdIFtTTVNdW1RDMDFdIDNHUFAyIFNNUyBvdmVyIElNUworICogIFtNT10gaW50ZXJmYWNlcworICoKKyAqIDAzIDAxIDIwMTYgaWFuLXl3LmNoZW4KKyAqIFtNT0xZMDAxNDc0NTRdIFZaVyAzR1BQMiBTTVMgb3ZlciBJTVMKKyAqICBTRE0gYW5kIGludGVyZmFjZXMKKyAqCisgKiAwOSAxOCAyMDE1IG1pa2EubGVpbm9uZW4KKyAqIFtNT0xZMDAxNDEzNjRdIFtXV0ZUXVtNVDY3NTVdW0phZGVdW0VVXVtUZWxlZm9uaWNhXVtWb0xURV1bR2VybWFueV1bRlRdIFNNUyBtdXN0IGJlIHNlbnQgb3ZlciBTR3MgaW4gVGVsZWZvbmljYSBHZXJtYW55IG5ldHdvcmtzCisgKiAJSW50ZWdyYXRpb24gY2hhbmdlIGZvciBVTU9MWSBUUlVOSy4KKyAqIAlEeW5hbWljIGZyYW1ld29yayBpbXBsZW1lbnRlZCB0byBjb25maWd1cmUgTU8gU01TIGRvbWFpbiBwcmVmZXJlbmNlcyBpbiA0RyBwZXIgb3BlcmF0b3IgY291bnRyeSB2YXJpYW50LgorICogCVJldmlldyBTRE06IGh0dHA6Ly9tdGtzYXAyMDo4MDgwL2dvP3BhZ2U9UmV2aWV3RGlzcGxheSZyZXZpZXdpZD0yMTM3MzkKKyAqIAlSZXZpZXcgSU1TUDogaHR0cDovL210a3NhcDIwOjgwODAvZ28/cGFnZT1SZXZpZXdEaXNwbGF5JnJldmlld2lkPTIxMzc0OAorICoKKyAqIDA3IDMwIDIwMTUgY2hpbnRlLmNoZW4KKyAqIFtNT0xZMDAxMzI4MzRdIFtDT1BZX0NSXVtUTU9dW0VNXSBFbmFibGUvRGlzYWJsZSBTTVMgb3ZlciBTR3MgdGhyb3VnaCBFTSBmb3IgVE1PIHJlcXVpcmVtZW50IDU4MDcxCisgKiAuCisgKgorICogMDcgMDkgMjAxNSBuaWNrLndhbmcKKyAqIFtNT0xZMDAxMjcwMDldIFdGQyBQYXRjaCBiYWNrIHRvIFVNT0xZLSBpbnRlcmZhY2UgcGFydAorICogLm1vbHkgd2ZjIGludGVyZmFjZSBwYXRjaAorICoKKyAqIDA3IDA5IDIwMTUgbmljay53YW5nCisgKiBbTU9MWTAwMTI3MDA5XSBXRkMgUGF0Y2ggYmFjayB0byBVTU9MWS0gaW50ZXJmYWNlIHBhcnQKKyAqIAkuamFkZSBpbnRlcmZhY2Ugc3luYworICoKKyAqIDA1IDA4IDIwMTUgY2hpbnRlLmNoZW4KKyAqIFtNT0xZMDAxMTA5MTldIFtTQVRdIFN1cHBvcnQgU1RLIFNNUyBvdmVyIElQCisgKiAuCisgKgorICogMTEgMjIgMjAxMyBjaGludGUuY2hlbgorICogW01PTFkwMDA0NzQ2MF0gW01UNjU4MkxURV1bSU1TXVtWb0xURV1bQmFzaWMgSVRdW0lUMy0wNDVdIE1lbW9yeSBzdGF0dXMgcmVwb3J0aW5nIHJlLWVuYWJsZSBvZiBTTVNvSVAKKyAqIC4KKyAqCisgKiAwOSAzMCAyMDEzIGNoaW50ZS5jaGVuCisgKiBbTU9MWTAwMDM4OTY2XSBbNjI5MEUxXVtWb0xURV1bSVRdW0JyaW5nVXBdIFVuYWJsZSB0byBjb21wbGV0ZSBSQVQgbW9kZSBjb25maWcKKyAqIC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBTRE1fTVNHSURfSAorI2RlZmluZSBTRE1fTVNHSURfSAorCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TRE1fQ09ERV9CRUdJTiApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQVRQIC0+IFNETQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfU0RNX0FUUF9DTURfU0VORF9TTVNfSU5EICAgICAgICAgICAgICAgICAgICA9IE1TR19JRF9TRE1fQ09ERV9CRUdJTiwKK01TR19JRF9TRE1fQVRQX0NNRF9TRU5EX0RFTElWRVJfUkVQT1JUX0lORCwKK01TR19JRF9TRE1fQVRQX0NNRF9TRU5EX01FTV9BVkxfTk9USUZfSU5ELAorTVNHX0lEX1NETV9BVFBfQ01EX1dGQ19QUk9GSUxFX0lORCwKK01TR19JRF9TRE1fQVRQX0NNRF9XRkNfU1dJVENIX0lORCwKK01TR19JRF9TRE1fQVRQX0NTX1NNU19TVUJNSVRfUkVQT1JUX0FDSywKK01TR19JRF9TRE1fQVRQX0NTX1NNU19TVUJNSVRfUkVQT1JUX05BQ0ssCitNU0dfSURfU0RNX0FUUF9DTURfU1RLX1NNU19JTkQsCitNU0dfSURfU0RNX0FUUF9TVEtfU01TX1FVRVJZX0NORiwKK01TR19JRF9TRE1fQVRQX0NTX1NUS19TTVNfQ05GLAorTVNHX0lEX1NETV9BVFBfSU1TSV9HRVRfQ05GLAorCitNU0dfSURfU0RNX0FUUF9DTURfU0VORF9DT01NQU5EX0lORCwKK01TR19JRF9TRE1fQVRQX1NNU19PVkVSX0lQX0NPTkZJR19JTkQsCitNU0dfSURfU0RNX0FUUF9JTVNfUkVHX1NUQVRVU19JTkQsCitNU0dfSURfU0RNX0FUUF9TTVNfT1ZFUl9TR1NfQ09ORklHX0lORCwKK01TR19JRF9TRE1fQVRQX0NNRF9TRU5EX0MyS19TTVNfSU5ELAorTVNHX0lEX1NETV9BVFBfQ01EX1NFTkRfQzJLX0FDS05PV0xFREdFX0lORCwKK01TR19JRF9TRE1fQVRQX0NNRF9TRU5EX0NNU1NfSU5ELAorTVNHX0lEX1NETV9BVFBfQ01TU19JTVNfQ05GLAorTVNHX0lEX1NETV9BVFBfQ01TU19DU19DTkYsCitNU0dfSURfU0RNX0FUUF9VUERBVEVfTVNHX0JPWF9DTkYsCitNU0dfSURfU0RNX0FUUF9DTURfU0VORF9TTVNfREVMSVZFUl9JTkQsCitNU0dfSURfU0RNX0FUUF9DTURfU0VORF9DMktfU01TX0RFTElWRVJfSU5ELAorTVNHX0lEX1NETV9BVFBfQ01EX1NFTkRfU1RBVFVTX1JFUE9SVF9JTkQsCitNU0dfSURfU0RNX0FUUF9DTURfRUlNU0NGR19JTkQsCitNU0dfSURfU0RNX0FUUF9DTURfRVZPREFUQV9JTkQsCitNU0dfSURfU0RNX0FUUF9JTVNfTk9STUFMX1NNU19TTUFSVF9DT05HRVNUSU9OX1NUQVJUX0NORiwKK01TR19JRF9TRE1fQVRQX0lNU19TVEtfU01TX1NNQVJUX0NPTkdFU1RJT05fU1RBUlRfQ05GLAorTVNHX0lEX1NETV9BVFBfSU1TX0NNU1NfU01TX1NNQVJUX0NPTkdFU1RJT05fU1RBUlRfQ05GLAorTVNHX0lEX1NETV9BVFBfSU1TX0MyS19TTVNfU01BUlRfQ09OR0VTVElPTl9TVEFSVF9DTkYsCitNU0dfSURfU0RNX0FUUF9JTVNfVVRLX1NNU19TTUFSVF9DT05HRVNUSU9OX1NUQVJUX0NORiwKK01TR19JRF9TRE1fQVRQX0lNU19TTVNfU01BUlRfQ09OR0VTVElPTl9TVE9QX0NORiwKK01TR19JRF9TRE1fQVRQX0VDRkdfU0VUX1JFUSwKK01TR19JRF9TRE1fQVRQX0VDRkdfR0VUX1JFUSwKK01TR19JRF9TRE1fQVRQX0NNRF9FWElUX1NDQk1fSU5ELAorTVNHX0lEX1NETV9BVFBfRkROX0VDQ19DSEVDS19DTkYsCitNU0dfSURfU0RNX0FUUF9DRUxMX0lORk9fVVBEQVRFX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBJTUNTTVMgLT4gU0RNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9TRE1fSU1DU01TX1NVQk1JVF9SRVBPUlRfQUNLLAorTVNHX0lEX1NETV9JTUNTTVNfU1VCTUlUX1JFUE9SVF9OQUNLLAorTVNHX0lEX1NETV9JTUNTTVNfU1RLX1NVQk1JVF9SRVBPUlRfQUNLLAorTVNHX0lEX1NETV9JTUNTTVNfU1RLX1NVQk1JVF9SRVBPUlRfTkFDSywKK01TR19JRF9TRE1fSU1DU01TX0RFTElWRVIsCitNU0dfSURfU0RNX0lNQ1NNU19DMktfU1VCTUlUX1JFUE9SVF9BQ0ssCitNU0dfSURfU0RNX0lNQ1NNU19DMktfU1VCTUlUX1JFUE9SVF9OQUNLLAorTVNHX0lEX1NETV9JTUNTTVNfVVRLX1NVQk1JVF9SRVBPUlRfQUNLLAorTVNHX0lEX1NETV9JTUNTTVNfVVRLX1NVQk1JVF9SRVBPUlRfTkFDSywKK01TR19JRF9TRE1fSU1DU01TX0MyS19ERUxJVkVSLAorTVNHX0lEX1NETV9JTUNTTVNfQ0RNQV9MRVNTX0MyS19ERUxJVkVSLAorTVNHX0lEX1NETV9JTUNTTVNfU1RBVFVTX1JFUE9SVCwKK01TR19JRF9TRE1fSU1DU01TX0NNU1NfU1VCTUlUX1JFUE9SVF9BQ0ssCitNU0dfSURfU0RNX0lNQ1NNU19DTVNTX1NVQk1JVF9SRVBPUlRfTkFDSywKK01TR19JRF9TRE1fSU1DU01TX01FTV9BVkxfTk9USUZfQ05GLAorTVNHX0lEX1NETV9JTUNTTVNfUkNWX01TR19JTkQsCitNU0dfSURfU0RNX0lNQ1NNU19JU19DU19BTExPV0VEX1JFUSwKK01TR19JRF9TRE1fSU1DU01TX0lNU19NVF9TTVNfRU5EX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBDVkFMIC0+IFNETQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfU0RNX0NWQUxfQzJLX1NNU19TRU5EX0NORiwKK01TR19JRF9TRE1fQ1ZBTF9DMktfU01TX0lORCwKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBWRE0gIC0+IFNETQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfU0RNX1ZETV9FWElUX1NDQk1fSU5ELAorTVNHX0lEX1NETV9VVF9DT05GSUcsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICAgICAgICAgICBEZWJ1ZyBwdXJwb3NlIAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01TR19JRF9TRE1fRFVNUF9OVlJBTV9SQVdfREFUQV9JTkQsCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgU01TIC0+IFNETQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNU0dfSURfU0RNX1NNU19TVEFUVVNfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgIEw0QyAtPiBTRE0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTVNHX0lEX1NETV9MNENfSU1TX05PUk1BTF9TTVNfVUFDX0NORiwKK01TR19JRF9TRE1fTDRDX0lNU19TVEtfU01TX1VBQ19DTkYsCitNU0dfSURfU0RNX0w0Q19JTVNfQ01TU19TTVNfVUFDX0NORiwKK01TR19JRF9TRE1fTDRDX0lNU19DMktfU01TX1VBQ19DTkYsCitNU0dfSURfU0RNX0w0Q19JTVNfVVRLX1NNU19VQUNfQ05GLAorTVNHX0lEX1NETV9MNENfSU1TX1VBQ19BTExFVklBVElPTl9JTkQsCitNU0dfSURfU0RNX0w0Q19QU19BVFRBQ0hFRF9SQVRfSU5ELAorTVNHX0lEX1NETV9MNENfQ1NfQVRUQUNIRURfUkFUX0lORCwKK01TR19JRF9TRE1fTDRDX0VNRVJHRU5DWV9TRVJWSUNFX0NORiwKK01TR19JRF9TRE1fTDRDX0VNRVJHRU5DWV9TRVJWSUNFX0lORCwKK01TR19JRF9TRE1fTDRDX0VNRVJHRU5DWV9TRVJWSUNFX0ZBTExCQUNLX0NORiwKK01TR19JRF9TRE1fTDRDX05XX0ZFQVRVUkVfSU5ELAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1NETV9DT0RFX1RBSUwgKQorCisKKyNlbmRpZiAvLyBTRE1fTVNHSURfSAorCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zaW1fcHNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NpbV9wc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMGY2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zaW1fcHNfbXNnaWQuaApAQCAtMCwwICsxLDM2OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHNpbV9wc19zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgU0FQIHByb3ZpZGVkIGJ5IFNJTSB0YXNrIGFuZCBvdXRzaWRlLVBTIHRhc2sgdXNlcyBhbHNvCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfU0lNX1BTX01TR19ICisjZGVmaW5lIF9TSU1fUFNfTVNHX0gKKworICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1NU0dfSURfU0lNX1BTX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tKi8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1NJTV9QU19DT0RFX0JFR0lOICkKKyAgIE1TR19JRF9HTU1TSU1fR1NNX0FMR09fUkVRID0gTVNHX0lEX1NJTV9QU19DT0RFX0JFR0lOLAorICAgTVNHX0lEX1NJTV9TVEFSVF9SRVEsCisgICBNU0dfSURfU0lNX1NUQVJUX0NORiwKKyAgIE1TR19JRF9TSU1fRVJST1JfSU5ELAorICAgLypbTUFVSV8wMjM1NjQ1M10gMjAxMTAxMjMgbXRrMDE2MTI6IHNpbV9zbXVfZXJyb3JfaW5kIGlzIHJlbW92ZWQgZHVlIHRvIG5vIG5lZWQgYWZ0ZXIgTUFVSV8wMTgxNTkzNSovCisgICBNU0dfSURfU0lNX01NSV9SRUFEWV9JTkQsCisgICBNU0dfSURfU0lNX01NSV9TRUNVUklUWV9JTkQsIC8qIDIwMDMwNjA5LENQSFMgKi8KKyAgIE1TR19JRF9TSU1fTU1SUl9SRUFEWV9JTkQsIC8qIDIwMDMwODIzLEJPT1RVUCAqLworICAgTVNHX0lEX1NJTV9NTV9SRUFEWV9JTkQsCisgICBNU0dfSURfU0lNX1BBTV9SRUFEWV9JTkQsICAvKl9fTVRDX1NVUFBPUlRfXyAqLworICAgTVNHX0lEX1NJTV9SRUFEX1JFUSwKKyAgIE1TR19JRF9TSU1fUkVBRF9DTkYsCisgICBNU0dfSURfU0lNX1dSSVRFX1JFUSwKKyAgIE1TR19JRF9TSU1fV1JJVEVfQ05GLAorICAgTVNHX0lEX1NJTV9JTkNSRUFTRV9SRVEsCisgICBNU0dfSURfU0lNX0lOQ1JFQVNFX0NORiwKKyAgIE1TR19JRF9TSU1fU0VDVVJJVFlfUkVRLAorICAgTVNHX0lEX1NJTV9TRUNVUklUWV9DTkYsCisgICBNU0dfSURfU0lNX0ZJTEVfSU5GT19SRVEsCisgICBNU0dfSURfU0lNX0ZJTEVfSU5GT19DTkYsCisgICBNU0dfSURfU0lNX0RJQUxfTU9ERV9SRVEsCisgICBNU0dfSURfU0lNX0RJQUxfTU9ERV9DTkYsCisgICBNU0dfSURfU0lNX1NUQVRVU19SRVEsCisgICBNU0dfSURfU0lNX1NUQVRVU19DTkYsCisgICBNU0dfSURfU0lNX1BPV0VST0ZGX1JFUSwKKyAgIE1TR19JRF9TSU1fUE9XRVJPRkZfQ05GLAorICAgTVNHX0lEX1NJTV9FUlJPUl9URVNUX1JFUSwKKyAgIE1TR19JRF9TSU1fUkVBRF9QTE1OX1JFUSwKKyAgIE1TR19JRF9TSU1fUkVBRF9QTE1OX0NORiwKKyAgIE1TR19JRF9TSU1fV1JJVEVfUExNTl9SRVEsCisgICBNU0dfSURfU0lNX1dSSVRFX1BMTU5fQ05GLAorICAgTVNHX0lEX1NJTV9BQ0xfTU9ERV9SRVEsCisgICBNU0dfSURfU0lNX0FDTF9NT0RFX0NORiwKKyAgIE1TR19JRF9TQVRfUkVBRFlfUkVRLAorICAgTVNHX0lEX1NJTV9TVEFUVVNfVVBEQVRFX0lORCwgICAgICAgIC8vIG10azAxNDg4CisgICAvKm10azgwNDIwOiByZW1vdmUgTDRDX1ZFUklGWV9QSU5fUkVTVUxUX0lORCovCisgICBNU0dfSURfTDRDX1NJTV9HRVRfR1NNQ0RNQV9EVUFMU0lNX0lORk9fUkVRLAorICAgTVNHX0lEX0w0Q19TSU1fR0VUX0dTTUNETUFfRFVBTFNJTV9JTkZPX0NORiwKKyAgIE1TR19JRF9MNENfU0lNX1NFVF9HU01DRE1BX0RVQUxTSU1fTU9ERV9SRVEsCisgICBNU0dfSURfTDRDX1NJTV9TRVRfR1NNQ0RNQV9EVUFMU0lNX01PREVfQ05GLAorICAgTVNHX0lEX0w0Q19TSU1fU0VUX1ZTSU1fTU9ERV9SRVEsCisgICBNU0dfSURfTDRDX1NJTV9TRVRfVlNJTV9NT0RFX0NORiwKKyAgIE1TR19JRF9VU0lNX1VSUl9SRUFEWV9JTkQsCisgICBNU0dfSURfVVNJTV9VUERBVEVfTkVUUEFSX1JFUSwgLyptdGswMTYxMjogW01BVUlfMDI1NzU4NjBdKi8KKyAgIE1TR19JRF9VU0lNX1VQREFURV9ORVRQQVJfQ05GLCAvKm10azAxNjEyOiBbTUFVSV8wMjU3NTg2MF0qLworICAgLyogW01BVUlfMDMwNTgyODJdIG10azgwNDIwOiBtb3ZlIGF1dGhlbnRpY2F0ZV9yZXEvY25mIHRvIHB1YmxpYyBzYXAgKi8KKyAgIE1TR19JRF9TQVRfUFJPQUNUSVZFX0NNRF9JTkQsCisgICBNU0dfSURfU0FUX01PUkVfVElNRV9SRVMsICAgICAgICAgLyogUEggMjAwNTA0MTQgY3V0IG9mZiBpbmZpbml0ZSBsb29wICovCisgICBNU0dfSURfU0FUX0NBTExfQ1RSTF9CWV9TSU1fUkVRLAorICAgTVNHX0lEX1NBVF9TU19DVFJMX0JZX1NJTV9SRVEsCisgICBNU0dfSURfU0FUX1NFTkRfU01TX0NUUkxfQllfU0lNX1JFUSwKKyAgIE1TR19JRF9TQVRfU01TX0RMX1JFUSwKKyAgIE1TR19JRF9TQVRfQ0JfRExfUkVRLAorICAgTVNHX0lEX1NBVF9FVkRMX01UX0NBTExfUkVRLAorICAgTVNHX0lEX1NBVF9FVkRMX0NBTExfQ09OTkVDVF9SRVEsCisgICBNU0dfSURfU0FUX0VWRExfQ0FMTF9ESVNDT05ORUNUX1JFUSwKKyAgIE1TR19JRF9TQVRfRVZETF9VU0VSX0FDVElWSVRZX1JFUSwKKyAgIE1TR19JRF9TQVRfRVZETF9IQ0lfQ09OTkVDVElWSVRZX1JFUSwgLy9fX1NBVENNX18KKyAgIE1TR19JRF9TQVRfRVZETF9DQVJEX1JFQURFUl9TVEFUVVNfUkVRLAorICAgTVNHX0lEX1NBVF9FVkRMX0FDQ0VTU19URUNITk9MT0dZX0NIQU5HRV9SRVEsICAgICAgLyogbXRrMDE0ODggKi8KKyAgIE1TR19JRF9TQVRfU0VORF9TTVNfUkVTLAorICAgTVNHX0lEX1NBVF9TRU5EX1NTX1JFUywKKyAgIE1TR19JRF9TQVRfU0VORF9VU1NEX1JFUywKKyAgIE1TR19JRF9TQVRfU0VUVVBfQ0FMTF9SRVMsCisgICBNU0dfSURfU0FUX1JVTl9BVF9DT01NQU5EX1JFUywKKyAgIE1TR19JRF9TQVRfU0VORF9EVE1GX1JFUywKKyAgIE1TR19JRF9TQVRfQUNUSVZBVEVfUkVTLCAvLyBfX1NBVENMX18KKyAgIE1TR19JRF9TQVRfRklMRV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX1NBVF9GSUxFX0NIQU5HRV9SRVMsCisgICBNU0dfSURfU0FUX0lNRUlfSU5GT19SRVEsCisgICBNU0dfSURfU0FUX0lNRUlfSU5GT19DTkYsCisgICBNU0dfSURfU0FUX0xPQ0FUSU9OX0lORk9fSU5ELAorICAgTVNHX0lEX1NBVF9QUk9WSURFX0xPQ0FUSU9OX0lORk9fSU5ELAorICAgTVNHX0lEX1NBVF9USU1FX1pPTkVfQ05GLAorICAgTVNHX0lEX1NBVF9USU1FX1pPTkVfSU5ELAorICAgTVNHX0lEX1NBVF9DVVJSRU5UX1RJTUVfUkVRLAorICAgTVNHX0lEX1NBVF9DVVJSRU5UX1RJTUVfQ05GLAorICAgTVNHX0lEX1NBVF9NRV9TVEFUVVNfUkVRLAorICAgTVNHX0lEX1NBVF9NRV9TVEFUVVNfQ05GLAorICAgTVNHX0lEX1NBVF9OTVJfUkVRLAorICAgTVNHX0lEX1NBVF9OTVJfQ05GLAorICAgTVNHX0lEX1NBVF9MQU5HVUFHRV9SRVEsCisgICBNU0dfSURfU0FUX0xBTkdVQUdFX0NORiwKKyAgIE1TR19JRF9TQVRfVElNSU5HX0FEVkFOQ0VfSU5ELAorICAgTVNHX0lEX1NBVF9BQ0NFU1NfVEVDSE5PTE9HWV9DSEFOR0VfSU5ELCAgICAgLyogbXRrMDE0ODggKi8KKyAgIE1TR19JRF9TQVRfQ0FMTF9TVEFUVVNfSU5ELAorICAgTVNHX0lEX1NBVF9QUk9GSUxFX0RPV05MT0FEX1JFUSwKKyAgIE1TR19JRF9TQVRfUFJPRklMRV9ET1dOTE9BRF9DTkYsCisgICBNU0dfSURfU0FUX1RFUk1JTkFMX1JTUCwKKyAgIE1TR19JRF9TQVRfTU9SRVRJTUVfSU5ELAorICAgTVNHX0lEX1NBVF9QT0xMX0lOVEVSVkFMX0lORCwKKyAgIE1TR19JRF9TQVRfRU5WRUxPUEVfUkVRLAorICAgTVNHX0lEX1NBVF9FTlZFTE9QRV9DTkYsCisgICBNU0dfSURfU0FUX1JFRlJFU0hfSU5ELAorICAgTVNHX0lEX1NBVF9QT0xMSU5HX09GRl9JTkQsCisgICBNU0dfSURfU0FUX1BST1ZJREVfTE9DQUxfSU5GT19JTkQsCisgICBNU0dfSURfU0FUX1NFVFVQX0VWRU5UX0xJU1RfSU5ELAorICAgTVNHX0lEX1NBVF9BQ1RJVkFURV9JTkQsIC8vX19TQVRDTF9fCisgICBNU0dfSURfU0FUX0NPTlRBQ1RMRVNTX1NUQVRFX0NIQU5HRURfSU5ELCAvL19fU0FUQ1JfXworICAgTVNHX0lEX1NBVF9DT05UQUNUTEVTU19TVEFURV9DSEFOR0VEX1JFUywgLy9fX1NBVENSX18KKyAgIE1TR19JRF9TQVRfVElNRVJfTUFOQUdFTUVOVF9JTkQsCisgICBNU0dfSURfU0FUX09QRU5fQ0hBTk5FTF9JTkQsCisgICBNU0dfSURfU0FUX0NMT1NFX0NIQU5ORUxfSU5ELAorICAgTVNHX0lEX1NBVF9TRU5EX0RBVEFfSU5ELAorICAgTVNHX0lEX1NBVF9SRUNWX0RBVEFfSU5ELAorICAgTVNHX0lEX1NBVF9DSF9TVEFUVVNfSU5ELAorICAgTVNHX0lEX1NBVF9OV19TRUFSQ0hfTU9ERV9JTkQsICAvKm10azAyMzc0IDIwMDkwNTEzIGFkZCBmb3IgcHJvdmlkZSBsb2NhbCBpbmZvIHdpdGggbncgc2VhcmNoIG1vZGUqLworICAgTVNHX0lEX1NBVF9QUk9WSURFX05XX1NFQVJDSF9NT0RFX0lORCwKKyAgIE1TR19JRF9TSU1fSU1FSV9MT0NLX1ZFUklGSUVEX0lORCwgLyptdGswMjM3NCAyMDA5MDkxNCB1c2VkIHRvIGluZGljYXRlIFNNVSB3aGV0aGVyIGltZWkgbG9jayB2ZXJpZmllZCovCisgICBNU0dfSURfU0lNX08yX1BSRVBBSURfU0lNX0lORCwgLyptdGswMTYxMjogW01BVUlfMDIwMTQ1NzhdIHdpc2UgZGV0ZWN0IE8yIHByZXBheSBTSU0qLworICAgLy9NU0dfSURfU0lNX0NTSU1fUkVRLCAvKm10azAxNjEyOiBNQVVJXzAwNDc5NDM0IF9fQ1NJTV9fKi8KKyAgIC8vTVNHX0lEX1NJTV9DU0lNX0NORiwKKyAgIC8qIE1BVUlfMDMwODIzOTEgKi8KKyAgIE1TR19JRF9TSU1fQVBEVV9BQ0NFU1NfUkVRLAorICAgTVNHX0lEX1NJTV9BUERVX0FDQ0VTU19DTkYsCisgICBNU0dfSURfU0lNX01BTkFHRV9DSEFOTkVMX1JFUSwKKyAgIE1TR19JRF9TSU1fTUFOQUdFX0NIQU5ORUxfQ05GLAorICAgTVNHX0lEX1NJTV9DQUxMX0RJU0NPTk5FQ1RfSU5ELCAvKm10azAxNjEyOiBbTUFVSV8wMjU3NDAwMV0qLworICAgTVNHX0lEX1NJTV9QTFVHX09VVF9JTkQsICAgIC8qIG10azgwNDIwOiBTSU0gaG90IHN3YXAgKi8KKyAgIE1TR19JRF9TSU1fUExVR19JTl9JTkQsCisgICBNU0dfSURfU0lNX1NFQVJDSF9SRUNPUkRfUkVRLCAvKiBNQVVJXzAyOTUzMTU0ICovCisgICBNU0dfSURfU0lNX1NFQVJDSF9SRUNPUkRfQ05GLAorICAgTVNHX0lEX1NJTV9TWU5DX1BPTExfVElNRVJfSU5ELCAvKm10azAxNjEyOiBbTUFVSV8wMzAyMDE1Ml0gc3luYyBwb2xsaW5nIHRpbWVyKi8KKyAgIE1TR19JRF9TSU1fUkVDT1ZFUllfRU5IQU5DRU1FTlRfU1dJVENIX1JFUSwKKyAgIE1TR19JRF9TSU1fUkVDT1ZFUllfRU5IQU5DRU1FTlRfU1dJVENIX0NORiwKKyAgIE1TR19JRF9TSU1fTldTRUxfUkVBRFlfSU5ELAorICAgTVNHX0lEX1NJTV9HTVNTX1JFQURZX0lORCwKKyAgIE1TR19JRF9TSU1fRU1NX1JFQURZX0lORCwKKyAgIE1TR19JRF9TSU1fTkFTX1NWX1JFQURZX0lORCwKKyAgIE1TR19JRF9TSU1fVEVSTUlOQUxfQ0FQQUJJTElUWV9TRVRUSU5HX1JFUSwKKyAgIE1TR19JRF9TSU1fVEVSTUlOQUxfQ0FQQUJJTElUWV9TRVRUSU5HX0NORiwKKyAgIE1TR19JRF9TSU1fQVBQX1NUQVJUX1JFUSwKKyAgIE1TR19JRF9TSU1fQVBQX1NUQVJUX0NORiwKKyAgIE1TR19JRF9TSU1fQVBQX0VSUk9SX0lORCwKKyAgIE1TR19JRF9TSU1fQVBQX1JFQURZX0lORCwKKyAgIE1TR19JRF9TSU1fQVBQX1JFQURfUkVRLAorICAgTVNHX0lEX1NJTV9BUFBfUkVBRF9DTkYsCisgICBNU0dfSURfU0lNX0FQUF9XUklURV9SRVEsCisgICBNU0dfSURfU0lNX0FQUF9XUklURV9DTkYsCisgICBNU0dfSURfU0lNX0FQUF9TRUNVUklUWV9SRVEsCisgICBNU0dfSURfU0lNX0FQUF9TRUNVUklUWV9DTkYsCisgICBNU0dfSURfU0lNX0FQUF9GSUxFX0lORk9fUkVRLAorICAgTVNHX0lEX1NJTV9BUFBfRklMRV9JTkZPX0NORiwKKyAgIE1TR19JRF9TSU1fUkVBRF9JTVNJX0lDQ0lEX1JFUSwKKyAgIE1TR19JRF9TSU1fUkVBRF9JTVNJX0lDQ0lEX0NORiwKKyAgIE1TR19JRF9TSU1fSU5UU0lNX0FDQ0VTU19SRVEsCisgICBNU0dfSURfU0lNX0lOVFNJTV9BQ0NFU1NfQ05GLAorICAgTVNHX0lEX1NJTV9JTlRTSU1fTk9USUZZX0lORCwKKyAgIE1TR19JRF9TSU1fSU5UU0lNX1NFQ1VSSVRZX0lORCwKKyAgIE1TR19JRF9TSU1fSU5UU0lNX0RJQUxfTU9ERV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX1NJTV9NRFNUQVRVU19VUERBVEVfUkVRLAorICAgTVNHX0lEX1NBVF9OV19SRUpFQ1RfSU5ELAorICAgTVNHX0lEX1NBVF9QRFBfU1RBVFVTX0lORCwKKyAgIE1TR19JRF9TQVRfTUVNRV9OTVJfUkVRLAorICAgTVNHX0lEX1NBVF9NRU1FX05NUl9DTkYsCisgICBNU0dfSURfU0FUX0VBU19OTVJfQ05GLAorICAgTVNHX0lEX1NBVF9QUk9GSUxFX0FDVElWQVRFX1JFUSwKKyAgIE1TR19JRF9TQVRfUFJPRklMRV9XUklURV9SRVEsCisgICBNU0dfSURfU0lNX1NFTkRfU1RBVFVTX1RPX1VJTV9SRVEsCisgICBNU0dfSURfU0FUX1NFVF9DVF9NT0RFX1JFUSwKKyAgIE1TR19JRF9TQVRfUExNTl9JTkZPX0lORCwKKyAgIE1TR19JRF9TQVRfU01TX1JFRlJFU0hfUEVSTUlTU0lPTl9DTkYsCisgICBNU0dfSURfU0lNX1NFVF9BUFZTSU1fTU9ERV9SRVEsCisgICBNU0dfSURfU0lNX1NFVF9BUFZTSU1fTU9ERV9DTkYsCisgICBNU0dfSURfU0lNX1JTQV9SRVNFVF9JTkQsCisgICBNU0dfSURfU0lNX1JTQV9BVFJfUkVRLAorICAgTVNHX0lEX1NJTV9SU0FfQVRSX0NORiwKKyAgIE1TR19JRF9TSU1fUlNBX0FQRFVfSU5ELAorICAgTVNHX0lEX1NJTV9SU0FfQVBEVV9SU1BfUkVRLAorICAgTVNHX0lEX1NJTV9SU0FfQVBEVV9SU1BfQ05GLAorICAgTVNHX0lEX1NJTV9SU0FfSE9UX1BMVUdfT1VUX1JFUSwKKyAgIE1TR19JRF9TSU1fUlNBX0hPVF9QTFVHX09VVF9DTkYsCisgICBNU0dfSURfU0lNX1JTQV9IT1RfUExVR19JTl9SRVEsCisgICBNU0dfSURfU0lNX1JTQV9IT1RfUExVR19JTl9DTkYsCisgICBNU0dfSURfU0lNX1JTQV9QT1dFUl9ET1dOX0lORCwKKyAgIE1TR19JRF9TQVRfRVZBTF9DT05ORUNUSU9OX0lORk9fSU5ELAorICAgTVNHX0lEX1NBVF9NTV9DT05ORUNUSU9OX0lORk9fSU5ELAorICAgTVNHX0lEX0dNU1NfU0lNX0NTU19SRUFEWV9JTkQsCisgICBNU0dfSURfTDRDX1NJTV9TRVRfVlNJTV9QUk9GSUxFX1JFUSwKKyAgIE1TR19JRF9MNENfU0lNX1NFVF9WU0lNX1BST0ZJTEVfQ05GLAorICAgTVNHX0lEX0w0Q19TSU1fU0VUX1ZTSU1fRklMRV9SRVEsCisgICBNU0dfSURfTDRDX1NJTV9TRVRfVlNJTV9GSUxFX0NORiwKKyAgIE1TR19JRF9MNENfU0lNX0dFVF9WU0lNX1JTQV9QVUJLRVlfUkVRLAorICAgTVNHX0lEX0w0Q19TSU1fR0VUX1ZTSU1fUlNBX1BVQktFWV9DTkYsCisgICBNU0dfSURfTDRDX1NJTV9WU0lNX0tJX01PREVfUkVRLAorICAgTVNHX0lEX0w0Q19TSU1fVlNJTV9LSV9NT0RFX0NORiwKKyAgIE1TR19JRF9MNENfU0lNX1NFVF9WU0lNX0tJX1JFUSwKKyAgIE1TR19JRF9MNENfU0lNX1NFVF9WU0lNX0tJX0NORiwKKyAgIE1TR19JRF9LRVlHRU5fU0lNX1JFQURZX0lORCwKKyAgIE1TR19JRF9WU0lNX0VSUk9SX0lORCwKKyAgIE1TR19JRF9TQVRfUkFUX01PREVfSU5ELAorICAgTVNHX0lEX1NJTV9SRUFEX0RJUl9SRVEsCisgICBNU0dfSURfU0lNX1JFQURfRElSX0NORiwKKyAgIE1TR19JRF9OV1NFTF9TQVRfU1VTUEVORF9TVEFUVVNfSU5ELAorICAgTVNHX0lEX05XU0VMX1NBVF9TVVNQX1JFU1VfVVBEQVRFX1JFUSwKKyAgIE1TR19JRF9OV1NFTF9TQVRfU1VTUF9SRVNVX1VQREFURV9DTkYsCisgICBNU0dfSURfU0FUX1JBVF9TRUxFQ1RfSU5ELAorICAgTVNHX0lEX1NBVF9NU0lTRE5fSU5GT19JTkQsCisgICBNU0dfSURfVUlNX1NJTV9BUERVX0FDQ0VTU19SRVEsCisgICBNU0dfSURfVUlNX1NJTV9SRVNFVF9JTkQsCisgICBNU0dfSURfVUlNX1NJTV9TRUNVUklUWV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX1VJTV9TSU1fQVVUSEVOVElDQVRFX1JFUSwKKyAgIE1TR19JRF9VSU1fU0FUX1RFUk1JTkFMX1JTUF9SRVEsCisgICBNU0dfSURfVUlNX1NBVF9FTlZFTE9QRV9SRVEsCisgICBNU0dfSURfVUlNX1NBVF9GSUxFX0NIQU5HRV9SRVMsCisgICBNU0dfSURfVUlNX1NJTV9SRUFEX1JFUSwKKyAgIE1TR19JRF9CVF9VSU1fU0lNX1JFU0VUX1JFUSwKKyAgIE1TR19JRF9CVF9VSU1fU0lNX1BPV0VSX09GRl9SRVEsCisgICBNU0dfSURfQlRfVUlNX1NJTV9QT1dFUl9PTl9SRVEsCisgICBNU0dfSURfVUlNX1BSTF9SRUFEX0ZJTklTSF9JTkQsCisgICBNU0dfSURfVUlNX1NJTV9DMktfQkFUQ0hfRklMRV9SRUFEX1JFUSwKKyAgIE1TR19JRF9TSU1fU0VUX1JFR0lTVFJBVElPTl9NT0RFX1JFUSwKKyAgIE1TR19JRF9TQVRfU0VUX1JBVF9NT0RFX1JFUSwKKyAgIE1TR19JRF9TQVRfU0VUX1JBVF9NT0RFX0NORiwKKyAgIE1TR19JRF9OQVNfU1ZfU0lNX0NTX1NUS19ET01BSU5fSU5ELAorICAgTVNHX0lEX1NBVF9MNEJTQVRfU0VUX1NBVF9SVUxFX0lORCwKKyAgIE1TR19JRF9TSU1fTDRCU0JQX1JFQURZX0lORCwKKyAgIE1TR19JRF9TSU1fSVdMQU5fUkVBRFlfSU5ELAorICAgTVNHX0lEX1NJTV9EVU1QX0NPTlRFWFRfSU5ELAorICAgTVNHX0lEX1NJTV9DVDNHX0lOU0VSVEVEX0lORCwKKyAgIE1TR19JRF9TSU1fTU1fQ09ORklHVVJFX0FTX0ZPUl9EVVBMRVhfTU9ERV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX1NJTV9EVVBMRVhfTU9ERV9SRVEsCisgICBNU0dfSURfU0lNX09QMjBfQVBfU0lNTE9DS19SRVEsCisgICBNU0dfSURfU0lNX0FQX1NJTVBPV0VSX1JFUSwKKyAgIE1TR19JRF9TQVRfTDRCU0lNX1NFVF9SQVRfTU9ERV9JTkQsCisgICBNU0dfSURfU0lNX1JTQV9TSU1fUExVR19JTl9JTkQsCisgICBNU0dfSURfU0lNX1JTQV9TSU1fUExVR19PVVRfSU5ELAorICAgTVNHX0lEX1NJTV9TV0lUQ0hfU1RBUlRfUkVRLAorICAgTVNHX0lEX1NJTV9TV0lUQ0hfU1RBUlRfQ05GLAorICAgTVNHX0lEX1NJTV9DQUNIRV9VUERBVEVfSU5ELAorICAgTVNHX0lEX1NJTV9EVU1QX1JFU0VUX0NPTlRFWFRfSU5ELAorICAgTVNHX0lEX1NJTV9EVVBMRVhfTU9ERV9DTkYsCisgICBNU0dfSURfU0lNX0VWRU5UX0lORCwKKyAgIE1TR19JRF9TSU1fR01TU19DT05GSUdVUkVfQVNfRk9SX0RVUExFWF9NT0RFX0NIQU5HRV9JTkQsCisgICBNU0dfSURfU0lNX0FVVEhfRklOSVNIX0lORCwKKyAgIE1TR19JRF9TSU1fQVVUSF9GSU5JU0hfUlNQLAorICAgTVNHX0lEX0dNU1NfU0lNX1JPQU1JTkdfU1RBVEVfSU5ELAorICAgTVNHX0lEX1NBVF9FVkRMX0lNU19SRUdfSU5ELAorICAgTVNHX0lEX1NJTV9NU0dfUkVESVJFQ1RfSU5ELAorICAgTVNHX0lEX1NJTV9IT1RfU1dBUF9QT0xMX1RJTUVSX1JPTExCQUNLX0lORCwKKyAgIE1TR19JRF9TQVRfRk9SQ0VfVUlDQ19SRVNFVF9JTkQsCisgICBNU0dfSURfU0FUX0RNX1NFU1NJT05fU1RBVFVTX0lORCwKKyAgIE1TR19JRF9TSU1fVVRfQ0FQRFVfSU5ELAorICAgTVNHX0lEX1NJTV9VVF9SQVBEVV9SU1AsCisgICBNU0dfSURfU0lNX1VUX1NFVF9DT05GSUdfQklOX1JFUSwKKyAgIE1TR19JRF9TSU1fVVRfQ09ORklHX0lORCwKKyAgIE1TR19JRF9TSU1fVVRfQUJPUlRfUkVRLAorICAgTVNHX0lEX1NJTV9EVU1QX1VUX0NPTlRFWFRfSU5ELAorICAgTVNHX0lEX1NJTV9BUF9TSU1QT1dFUl9DTkYsCisgICBNU0dfSURfU0lNX0RETV9SRUFEWV9JTkQsCisgICBNU0dfSURfU0lNX0w1VVNJTV9SRUFEWV9JTkQsCisgICBNU0dfSURfU0lNX1ZHTU1fUkVBRFlfSU5ELAorICAgTVNHX0lEX1NJTV9HRVRfSURFTlRJVFlfUkVRLAorICAgTVNHX0lEX1NJTV9HRVRfSURFTlRJVFlfQ05GLAorICAgTVNHX0lEX1NBVF9JTkpFQ1RfUFJPQUNUSVZFX0NNRF9JTkQsCisgICBNU0dfSURfU0FUX05BU19TVl9TT1JfU0VDVVJFX1BBQ0tFVF9JTkQsCisgICBNU0dfSURfU0FUX05BU19TVl9TT1JfU0VDVVJFX1BBQ0tFVF9SU1AsCisgICBNU0dfSURfU0FUX1ZHTU1fU0VDVVJFX1BBQ0tFVF9JTkQsCisgICBNU0dfSURfU0FUX1ZHTU1fU0VDVVJFX1BBQ0tFVF9SU1AsCisjaWZuZGVmIF9fU0lNX0FDQ0VTU19JTlRFR1JBVElPTl9fCisgICBNU0dfSURfU0lNX0VYVEVOREVEX0FQRFVfQUNDRVNTX1JFUSwKKyAgIE1TR19JRF9TSU1fRVhURU5ERURfQVBEVV9BQ0NFU1NfQ05GLAorI2VuZGlmCisgICBNU0dfSURfU0lNX0ZBS0VfSURfUkVRLAorICAgTVNHX0lEX1NJTV9BUERVX1JFU19CTE9DS19JTkQsCisgICBNU0dfSURfU0lNX0lDQ0lEX1JFQURZX0lORCwKKyAgIE1TR19JRF9MNENfU0lNX1ZTSU1fVVBEQVRFX1BBUkFNX1JFUSwKKyAgIE1TR19JRF9MNENfU0lNX1ZTSU1fVVBEQVRFX1BBUkFNX0NORiwKKyAgIE1TR19JRF9TQVRfRUJJUF9JTkQsCisgICBNU0dfSURfU0lNX1NJTU1FX0xPQ0tFRF9JTkQsCisgICBNU0dfSURfU0lNRFJWX0RFQlVHX0JVRkZFUl9JTkQsCisgICBNU0dfSURfTDRDX1NJTV9FQ0NfU0VTU0lPTl9JTkQsCisgICBNU0dfSURfU0lNX1RSQVlfUExVR19PVVRfSU5ELAorICAgTVNHX0lEX1NBVF9URVJNSU5BTF9SU1BfUkVTLCAgICAvLyBfX1RDMTBfXyAmJiBfX0lQQ19BREFQVEVSX18KKyAgIE1TR19JRF9TQVRfUkVGUkVTSF9WT1RJTkdfUkVTLCAgLy8gX19UQzEwX18gJiYgX19JUENfQURBUFRFUl9fCisgICBNU0dfSURfU0lNX0lOVEVSTkFMX0NSSVRJQ0FMX1JFQ09WRVJZX0lORCwKKyAgIE1TR19JRF9TSU1fSE9UX1NXQVBfUE9MTF9TVEFSVF9JTkQsCisgICBNU0dfSURfU0lNX1BFRVJfUExVR19PVVRfSU5ELAorICAgTVNHX0lEX1NJTV9WR1NNX1JFQURZX0lORCwKKyAgIE1TR19JRF9TSU1fSU5BQ1RJVkVfU0lNX1BPV0VSX09OX0lORCwKKyAgIE1TR19JRF9TSU1fSU5BQ1RJVkVfU0lNX1BMVUdfSU5fSU5ELAorICAgTVNHX0lEX0w0QlNJTV9FU0xPVFNJTkZPX0RBVEFfSU5ELAorI2lmZGVmIF9fU0lNX1BBU1NfVEhST1VHSF9fCisgICBNU0dfSURfU0lNX1BBU1NfVEhST1VHSF9JTkQsCisjZW5kaWYKKyAgIE1TR19JRF9TSU1fQkVSVExWX1JFVFJJRVZFX0RBVEFfUkVRLAorICAgTVNHX0lEX1NJTV9CRVJUTFZfUkVUUklFVkVfREFUQV9DTkYsCisgICBNU0dfSURfU0lNX0JFUlRMVl9TRVRfREFUQV9SRVEsICAgCisgICBNU0dfSURfU0lNX0JFUlRMVl9TRVRfREFUQV9DTkYsCisgICBNU0dfSURfU0FUX0VWRExfREFUQV9DT05ORUNUX0lORCwKKworICAgLyogQWRkIGFib3ZlIHRoaXMgbGluZSAqLworICAgTVNHX0lEX1NJTV9QU19DT0RFX01BWCwgIC8vbm90IHVzZWQsIG9ubHkgZm9yIE1TR19JRF9TSU1fUFNfQ09ERV9FTkQgcmVmZXJlbmNlCisgICBNU0dfSURfU0lNX1BTX0NPREVfRU5EID0gTVNHX0lEX1NJTV9QU19DT0RFX01BWC0xLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9TSU1fUFNfQ09ERV9UQUlMICkKKworICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1TSU1fTVNHX0NPREVfRU5EIC0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2VuZGlmICAvL19TSU1fUFNfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NpbV9wdWJsaWNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NpbV9wdWJsaWNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTk1NDAxCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvc2ltX3B1YmxpY19tc2dpZC5oCkBAIC0wLDAgKzEsMTA0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHNpbV9wdWJsaWNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgU0FQIHByb3ZpZGVkIGJ5IFNJTSB0YXNrIGFuZCBvdXRzaWRlLVBTIHRhc2sgdXNlcyBhbHNvCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1NJTV9QVUJfTVNHX0gKKyNkZWZpbmUgX1NJTV9QVUJfTVNHX0gKKworICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1NU0dfSURfU0lNX1BVQkxJQ19DT0RFX0JFR0lOIC0tLS0tLS0tLS0tLS0tLSovCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfU0lNX1BVQkxJQ19DT0RFX0JFR0lOICkKKyAgIE1TR19JRF9TSU1fUkVBRFlfSU5EID0gTVNHX0lEX1NJTV9QVUJMSUNfQ09ERV9CRUdJTiwgICAKKyAgIE1TR19JRF9TSU1fUkVTRVRfUkVRLCAgCisgICBNU0dfSURfU0lNX1JFU0VUX0NORiwgIAorICAgTVNHX0lEX0JUX1NJTV9DT05ORUNUX1JFUSwgLyptdGswMTYxMjogIFtNQVVJXzAyMDIzNTQ1XSBCVF9TSU1fUHJvZmlsZSBmb3IgTUFVSSBhbmQgRFVNQSovCisgICBNU0dfSURfQlRfU0lNX0NPTk5FQ1RfQ05GLAorICAgTVNHX0lEX0JUX1NJTV9SRVNFVF9SRVEsCisgICBNU0dfSURfQlRfU0lNX1JFU0VUX0NORiwKKyAgIE1TR19JRF9CVF9TSU1fQVBEVV9SRVEsCisgICBNU0dfSURfQlRfU0lNX0FQRFVfQ05GLAorICAgTVNHX0lEX0JUX1NJTV9ESVNDT05ORUNUX1JFUSwKKyAgIE1TR19JRF9CVF9TSU1fRElTQ09OTkVDVF9DTkYsCisgICBNU0dfSURfQlRfU0lNX1BPV0VSX09GRl9SRVEsCisgICBNU0dfSURfQlRfU0lNX1BPV0VSX09GRl9DTkYsCisgICBNU0dfSURfQlRfU0lNX1BPV0VSX09OX1JFUSwKKyAgIE1TR19JRF9CVF9TSU1fUE9XRVJfT05fQ05GLAorICAgTVNHX0lEX1NJTV9BVVRIRU5USUNBVEVfUkVRLAorICAgTVNHX0lEX1NJTV9BVVRIRU5USUNBVEVfQ05GLAorICAgTVNHX0lEX1NJTV9RVUVSWV9JTkZPX1JFUSwKKyAgIE1TR19JRF9TSU1fUVVFUllfSU5GT19DTkYsICAgCisgICBNU0dfSURfU0lNX0FDQ0VTU19FWFRNRF9JTkQsCisgICBNU0dfSURfU0lNX0FDQ0VTU19FWFRNRF9SRVMsCisgICBNU0dfSURfU0lNX0VYVE1EX05PVElGWV9SRVEsCisgICBNU0dfSURfU0lNX0VYVE1EX05PVElGWV9DTkYsCisgICBNU0dfSURfU0lNX0FQUF9BVVRIRU5USUNBVEVfUkVRLAorICAgTVNHX0lEX1NJTV9BUFBfQVVUSEVOVElDQVRFX0NORiwKKyAgIE1TR19JRF9TSU1fRFNCUF9SRUNPTkZJR1VSRV9JTkQsCisgICBNU0dfSURfU0lNX1JFU1RSSUNUX0NBUkRfVFlQRV9SRVEsCisgICBNU0dfSURfU0lNX1JFU1RSSUNUX0NBUkRfVFlQRV9DTkYsCisgICBNU0dfSURfU0lNX1BVQkxJQ19DT0RFX0VORCA9IE1TR19JRF9TSU1fRFNCUF9SRUNPTkZJR1VSRV9JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1NJTV9QVUJMSUNfQ09ERV9UQUlMICkKKworICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1NU0dfSURfU0lNX1BVQkxJQ19DT0RFX0VORCAtLS0tLS0tLS0tLS0tLS0tLSovCisKKyNlbmRpZiAgLy9fU0lNX1BVQl9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvc2ltbW5ncl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvc2ltbW5ncl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMjhiZmMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zaW1tbmdyX21zZ2lkLmgKQEAgLTAsMCArMSw3MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmlsZW5hbWU6CisqIC0tLS0tLS0tLQorKiAgIHNpbW1uZ3JfbXNnaWQuaAorKgorKiBQcm9qZWN0OgorKiAtLS0tLS0tLQorKgorKgorKiBEZXNjcmlwdGlvbjoKKyogLS0tLS0tLS0tLS0tCisqCisqCisqIEF1dGhvcjoKKyogLS0tLS0tLQorICogLS0tLS0tLQorKgorKgorKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKiAkTG9nJAorKgorKiAwNiAxNSAyMDE3IHJvbmcud2FuZworKiBbTU9MWTAwMjUxNDY5XSBbVU1PTFldIFtBZGQgTW9kdWxlXSBzc2RzLgorKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1NJTU1OR1JfTVNHSURfSAorI2RlZmluZSBfU0lNTU5HUl9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TSU1NTkdSX0NPREVfQkVHSU4gKQorICAgIC8vRnJvbSB1c2VycyB0byBTSU1NTkdSCisgICAgTVNHX0lEX1NJTU1OR1JfRlJPTV9VU0VSX0JFR0lOID0gTVNHX0lEX1NJTU1OR1JfQ09ERV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX1NJTU1OR1JfUVVFUllfU0lNX0lORk9fUkVRLAorICAgICAgICBNU0dfSURfU0lNTU5HUl9XUklURV9TSU1fRUZfUkVRLAorICAgICAgICBNU0dfSURfU0lNTU5HUl9TSU1fQUtBX1JFUSAgLAorICAgICAgICBNU0dfSURfU0lNTU5HUl9TSU1fR0JBX0FVVEhfUkVRICwKKyAgICAgICAgTVNHX0lEX1NJTU1OR1JfU0lNX1NUQVRFX0NIRUNLX1JFUSAsCisgICAgICAgIE1TR19JRF9TSU1NTkdSX1NJTV9JTlNFUlRfQ0hFQ0tfUkVRICwKKyAgICAgICAgTVNHX0lEX1NJTU1OR1JfU0lNX1RZUEVfQ0hFQ0tfUkVRICwKKyAgICBNU0dfSURfU0lNTU5HUl9GUk9NX1VTRVJfRU5ELAorCisgICAgLy9TSU1NTkdSIHRvIFVzZXJzCisgICAgTVNHX0lEX1NJTU1OR1JfVE9fVVNFUl9CRUdJTiwKKyAgICAgICAgLy9SZXNwb25zZQorICAgICAgICBNU0dfSURfU0lNTU5HUl9RVUVSWV9TSU1fSU5GT19DTkYsCisgICAgICAgIE1TR19JRF9TSU1NTkdSX1dSSVRFX1NJTV9FRl9DTkYsCisgICAgICAgIE1TR19JRF9TSU1NTkdSX1NJTV9BS0FfQ05GICAsCisgICAgICAgIE1TR19JRF9TSU1NTkdSX1NJTV9HQkFfQVVUSF9DTkYgLAorICAgICAgICBNU0dfSURfU0lNTU5HUl9TSU1fU1RBVEVfQ0hFQ0tfQ05GICwKKyAgICAgICAgTVNHX0lEX1NJTU1OR1JfU0lNX0lOU0VSVF9DSEVDS19DTkYgLAorICAgICAgICBNU0dfSURfU0lNTU5HUl9TSU1fVFlQRV9DSEVDS19DTkYgLAorICAgICAgICAvL05vdGlmaWNhdGlvbgorICAgICAgICBNU0dfSURfU0lNTU5HUl9TSU1fU1RBVEVfSU5EICwKKyAgICAgICAgTVNHX0lEX1NJTU1OR1JfU0lNX0lOU0VSVF9JTkQgLAorICAgICAgICBNU0dfSURfU0lNTU5HUl9VU0lNX0RFVEVDVEVEX0lORCAsCisgICAgICAgIE1TR19JRF9TSU1NTkdSX0lTSU1fQ0hfSU5EICwKKyAgICBNU0dfSURfU0lNTU5HUl9UT19VU0VSX0VORCwKKworICAgIC8vQVRQIHRvIFNJTU1OR1IKKyAgICBNU0dfSURfU0lNTU5HUl9BVFBfRlJPTV9BVFBfQkVHSU4sCisgICAgICAgIE1TR19JRF9BVFBfU0lNTU5HUl9DTUVFX1NFVF9DTkYsCisgICAgICAgIE1TR19JRF9BVFBfU0lNTU5HUl9DUElOX1FVRVJZX0NORiwKKyAgICAgICAgTVNHX0lEX0FUUF9TSU1NTkdSX0VTSU1TX1FVRVJZX0NORiwKKyAgICAgICAgTVNHX0lEX0FUUF9TSU1NTkdSX0lNRUlfUVVFUllfQ05GLAorICAgICAgICBNU0dfSURfQVRQX1NJTU1OR1JfRVNJTUFQUF9RVUVSWV9DTkYsCisgICAgTVNHX0lEX1NJTU1OR1JfQVRQX0ZST01fQVRQX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfU0lNTU5HUl9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX1NJTU1OR1JfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvc21fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBiMzc0MwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NtX21zZ2lkLmgKQEAgLTAsMCArMSwyOTQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgc20uc2FwCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBTTSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogCQkJCUhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKgorKiAgVGhpcyBwcm9kdWN0IGhhcyBiZWVuIGRldmVsb3BlZCB1c2luZyBhIHByb3RvY29sIHN0YWNrCisqICBkZXZlbG9wZWQgYnkgU2Fza2VuIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIExpbWl0ZWQuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1NNX01TR19ICisjZGVmaW5lIF9TTV9NU0dfSAorCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tIFNNX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1NNX0NPREVfQkVHSU4gKQorCU1TR19JRF9TTVJFR19QRFBfQUNUSVZBVEVfUkVRID0gTVNHX0lEX1NNX0NPREVfQkVHSU4sCisJTVNHX0lEX1NNUkVHX1BEUF9ERUFDVElWQVRFX1JFUSwKKwlNU0dfSURfU01SRUdfUERQX01PRElGWV9SRVEsCisJTVNHX0lEX1NNUkVHX1BEUF9BQ1RJVkFURV9TRUNfUkVRLAorCU1TR19JRF9TTV9SQVRETV9BQ1RJVkFURV9DTkYsCisJTVNHX0lEX1NNX1JBVERNX01PRElGWV9DTkYsCisJTVNHX0lEX1NNX1JBVERNX0RFQUNUSVZBVEVfQ05GLAorCU1TR19JRF9TTV9SQVRETV9TVEFUVVNfSU5ELAorCU1TR19JRF9TTV9OU0FQSV9NU0dfQ09ERV9FTkQgPSBNU0dfSURfU01fUkFURE1fU1RBVFVTX0lORCwKKworCS8qIENhcmxzb24gTGluIDIwMTItMDQtMTcgTFRFIE11bHRpTW9kZSAqLworCisgICAgICAgIE1TR19JRF9FU01fU01fSVJBVF9JTkZPX1RSQU5TRkVSX1JFUSwgLyogRVNNLT5TTSA6IDRHMjMgY29udGV4dCB0cmFuc2ZlciByZXEgKi8KKyAgICAgICAgTVNHX0lEX1NNX0VTTV9JUkFUX0lORk9fVFJBTlNGRVJfQ05GLCAvKiBFU00tPlNNIDogMjNHNCBjb250ZXh0IHRyYW5zZmVyIGNuZiAqLworCisJTVNHX0lEX0dNTVNNX1JBVF9DSEFOR0VfSU5ELCAvLyAoMjNHNCBzdGFydCkKKwlNU0dfSURfTDRDU01fUkFUX0NIQU5HRV9SU1AsIC8vICgyM0c0IGZpbmlzaCkKKwlNU0dfSURfR01NU01fUkFUX0NIQU5HRV9DTkYsIC8vICg0RzIzIGZpbmlzaCkgbm90ZTogbmVlZCB0d28gc3RhZ2UgQ05GIGlmIElSQ0NPCisJTVNHX0lEX0w0Q1NNX1JBVF9DSEFOR0VfUkVRLCAvLyAoNEcyMyBzdGFydCkKKwlNU0dfSURfU01fRVNNX0VQU0JfQ09OVEVYVF9UUkFOU0ZFUl9JTkQsIC8vIDRHMjMgc3VjY2VzcyBjb250ZXh0IHRyYW5zZmVyOiBFU00gLS0+IFNNCisJTVNHX0lEX0VTTV9TTV9JUkFUX0lORk9fVFJBTlNGRVJfUkVRX0ZPUl9TTV9VVCwgLy8gdG8gdmVyaWZ5IGZ1bmN0aW9uOiBzbV9pcmF0X2xvY2FsX2FjdGl2YXRlX2x0ZV90cmFuc2ZlcnJlZF9jb250ZXh0KCkKKwkvL01TR19JRF9TTV9FU01fRVBTQl9DT05URVhUX1RSQU5TRkVSX1JTUCwgLy8gNEcyMyBzdWNjZXNzIGNvbnRleHQgdHJhbnNmZXI6IFNNIC0tPiBFU00KKwlNU0dfSURfU01fRVNNX1NUQU5EQllfT05fT0xEX1JBVF9JTkQsIC8vIDRHMjMgc3VjY2VzcyBjb250ZXh0IHRyYW5zZmVyIDogRVNNIC0tPiBTTQorCS8vTVNHX0lEX1NNX0VTTV9QRFBfQ09OVEVYVF9UUkFOU0ZFUl9SRVEsIC8vIDIzRzQgc3VjY2VzcyBjb250ZXh0IHRyYW5zZmVyOiBTTSAtLT4gRVNNCisJTVNHX0lEX1NNX0VTTV9QRFBfQ09OVEVYVF9UUkFOU0ZFUl9DTkYsIC8vIDIzRzQgc3VjY2VzcyBjb250ZXh0IHRyYW5zZmVyIDogRVNNIC0tPiBTTQorCS8vTVNHX0lEX1NNX0VTTV9TVEFOREJZX09OX09MRF9SQVRfUkVRLCAvLyAyM0c0IHN1Y2Nlc3MgY29udGV4dCB0cmFuc2ZlcjogU00gLS0+IEVTTQorCisJTVNHX0lEX1NNX1RSQUNFX1NNUkVHX1BEUF9BQ1RJVkFURV9SRVEsIC8vIHByaW50IHN0cnVjdHVyZSB0byB0cmFjZQorCU1TR19JRF9TTV9UUkFDRV9TTVJFR19QRFBfQUNUSVZBVEVfU0VDX1JFUSwgLy8gcHJpbnQgc3RydWN0dXJlIHRvIHRyYWNlCisJTVNHX0lEX1NNUkVHX0FMTE9XX0RMX1BBQ0tFVF9JTkQsCisJCisgICAgICAgIC8qSHVpZmVuZzogUFMgU3d0aWNoIG1zZyovCisgICAgICAgIE1TR19JRF9HTU1TTV9QU19TV0lUQ0hfQ09OVEVYVF9UUkFOU0ZFUl9JTkQsCisgICAgICAgIE1TR19JRF9MNENfU01fUFNfU1dJVENIX0NPTlRFWFRfVFJBTlNGRVJfUlNQLAorICAgICAgICBNU0dfSURfR01NU01fUFNfU1dJVENIX0NPTlRFWFRfVFJBTlNGRVJfQ05GLAorICAgICAgICBNU0dfSURfTDRDX1NNX1BTX1NXSVRDSF9DT05URVhUX1RSQU5TRkVSX1JFUSwKKyAgICAgICAgTVNHX0lEX1NNX1BTX1NXSVRDSF9QRFBfQ09OVEVYVF9UUkFOU0ZFUl9SRVEsCisgICAgICAgIE1TR19JRF9TTV9QU19TV0lUQ0hfUERQX0NPTlRFWFRfVFJBTlNGRVJfQ05GLAorICAgICAgICBNU0dfSURfU01fUFNfU1dJVENIX1NUQU5EQllfT05fT0xEX1JBVF9SRVEsCisKKyAgICAgIC8qIEplZmYgV3UgMjAwNy0wMy0wMzogUkFURE0gLT4gU00gKi8KKyAgICAgIE1TR19JRF9TTV9SQVRETV9SQUJfQUNUSVZBVEVfQ05GLAorICAgICAgTVNHX0lEX1NNX1JBVERNX1JBQl9BQ1RJVkFURV9JTkQsCisgICAgICBNU0dfSURfU01fUkFURE1fUkFCX0RFQUNUSVZBVEVfSU5ELAorCisgICAgLyogU00gQ29yZSA8LT4gU00gQ29ubiAqLworICAgIE1TR19JRF9TTV9DT05OX1NFTkRfUkVRLAorICAgIE1TR19JRF9TTV9DT05OX1NFTkRfQ05GLAorICAgIE1TR19JRF9TTV9DT05OX0FCT1JUX1JFUSwKKyAgICBNU0dfSURfU01fQ09OTl9BQk9SVF9DTkYsCisgICAgTVNHX0lEX1NNX0NPTk5fQUJPUlRfRkFJTCwKKyAgICBNU0dfSURfU01fQ09OTl9TRU5EX0ZBSUwsCisgICAgTVNHX0lEX1NNX0NPTk5fRVJSX0lORCwKKyAgICBNU0dfSURfU01fQ09OTl9ERVRBQ0hfSU5ELAorICAgIE1TR19JRF9TTV9DT05OX0NBTkNFTF9OT1RJRlksCisgICAgTVNHX0lEX1NNX0NPTk5fSVJBVF9TWU5DX1NUQVRFX05PVElGWSwKKyAgICBNU0dfSURfU01fQ09OTl9TVE9QX0FMTF9DT05OX1RJTUVSX05PVElGWSwKKworICAgIC8qIFNNIFVUIHVzYWdlICovCisgICAgTVNHX0lEX1NNX0NPUkVfVVRfVElNRVJfRVhQSVJZX0lNTUVESUNBVEVMWSwKKyAgICBNU0dfSURfU01fQ09OTl9VVF9USU1FUl9FWFBJUllfSU1NRURJQ0FURUxZLAorICAgIE1TR19JRF9TTV9DT05OX1VUX0NIRUNLX0dWLAorICAgIE1TR19JRF9TTV9DT1JFX1VUX0NIRUNLX0dWLAorICAgIE1TR19JRF9TTV9VVF9GUklFTkRMWV9VTklUREFUQV9JTkQsCisgICAgCisJLyogM0csIE1NIC0+IFNNICovCQorCU1TR19JRF9HTU1TTV9BVFRBQ0hfQ05GLAorCU1TR19JRF9HTU1TTV9BVFRBQ0hfUkVKLAorCU1TR19JRF9HTU1TTV9ERVRBQ0hfSU5ELAorCU1TR19JRF9HTU1TTV9FU1RfQ05GLAorCU1TR19JRF9HTU1TTV9FU1RfUkVKLAorCU1TR19JRF9HTU1TTV9FUlJfSU5ELAorCU1TR19JRF9HTU1TTV9VTklUREFUQV9DTkYsCisKKwlNU0dfSURfR01NU01fVU5JVERBVEFfSU5ELAorCU1TR19JRF9HTU1TTV9TVVNQRU5EX1JFUSwKKwlNU0dfSURfR01NU01fUkVTVU1FX1JFUSwKKwlNU0dfSURfR01NU01fTlNBUElfU1RBVFVTX0lORCwgLy9fX1JFTDRfXworCU1TR19JRF9HTU1TTV9SQVRfSU5ELCAvLyBXaGVuIDRHMjMgaXJhdF90eXBlPT1JUl9UWVBFX1NFQVJDSCwgU00gbmVlZCB0byBxdWV1ZSBFU00gdHJhbnNmZXJyZWQgY29udGV4dCB1bnRpbCByZWNlaXZpbmcgR01NU01fUkFUX0lORC4gU00gb25seSBuZWVkIHRvIHByb2Nlc3MgdGhpcyBtZXNzYWdlIHdoZW4gX19MVEVfUkFUX18gaXMgb24gYmVjYXVzZSB0aGlzIG1lc3NhZ2UgaXMgb25seSB1c2VkIHdoZW4gNEcyMyBJUl9UWVBFX1NFQVJDSCBpbnRlclJBVAorCU1TR19JRF9TTVJFR19QRFBfQUNUSVZBVEVfUkVKX1JTUCwKKwlNU0dfSURfU01SRUdfUERQX0FDVElWQVRFX1NFQ19SRUpfUlNQLAorICAgIE1TR19JRF9TTVJFR19EVUFMX1BSSU9SSVRZX0NPTkZJR19SRVEsCisJCisJTVNHX0lEX1NNX1RFU1RfU01fQ0FMQ1VMQVRFX0hPV19NQU5ZX1BEUF9BUkVfVVNFRCwgLy8gVVQgdXNlZAorCU1TR19JRF9HTU1TTV9DRUxMX0lORk9fVVBEQVRFX0lORCwgLyogZXJpY2EgMjAwNTEyMjk6IGZvciBlZ3BycyAqLworICAgIE1TR19JRF9TTV9EU0JQX1JFQ09ORklHVVJFX0lORCwKKyNpZmRlZiBfX0dFTUlOSV9fCisJTVNHX0lEX0dNTVNNX1JTSU1fQUtBX1JTSU1fQUNDRVNTX0ZPUl9BVVRIX0RPV05MT0FEX1JFUSwKKwlNU0dfSURfR01NU01fVklSVFVBTF9NT0RFX0lORCwKKwlNU0dfSURfU01fQ09ERV9FTkQgPSBNU0dfSURfR01NU01fVklSVFVBTF9NT0RFX0lORCwKKyNlbHNlCisJTVNHX0lEX1NNX0NPREVfRU5EID0gTVNHX0lEX1NNX0RTQlBfUkVDT05GSUdVUkVfSU5ELAorI2VuZGlmIC8qX19HRU1JTklfXyovCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfU01fQ09ERV9UQUlMICkKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0gU01fTVNHX0NPREVfRU5ELS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjZW5kaWYgIC8vX1NNX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zbWljX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zbWljX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhY2RiMgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NtaWNfbXNnaWQuaApAQCAtMCwwICsxLDczIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisjaWZuZGVmIF9TTUlDX01TR19ICisjZGVmaW5lIF9TTUlDX01TR19ICisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1TTUlDX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TTUlDX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9TTUlDX01TR19JRF9TVEFSVCA9IE1TR19JRF9TTUlDX0NPREVfQkVHSU4sICAKKworICAgIC8qIE5BU19TViAqLworICAgIAorICAgIAorICAgIC8qIFRDTSAqLworICAgIE1TR19JRF9UQ01fU01JQ181R19VRV9JTkZPX0RFRklORV9SRVEsCisgICAgCisgICAgLyogU00vRVNNICovCisgICAgTVNHX0lEX1NNSUNfQUNUSVZFX1NNX0NIQU5HRV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX1NNSUNfQUNUSVZFX1NNX0NIQU5HRV9GSU5JU0hfSU5ELAorICAgIAorICAgIC8qIEVTTSAqLworICAgIE1TR19JRF9TTUlDX0VTTV9BQ1RJVkVfUkFUX0lORCwKKyAgICBNU0dfSURfU01JQ19FU01fQVNfUEFSQV9VUERBVEVfTlRGX1JFUSwKKworICAgIC8qIFZHU00gLyBSQVRfVENNIC8gUkFURE0gKi8KKyAgICBNU0dfSURfU01JQ19BQ1RJVkVfU01fQ0hBTkdFX0lORCwKKyAgICAKKyAgICAvKiBERUJVRyAqLworICAgIE1TR19JRF9TTUlDX0RFQlVHX0FTU0VSVF9IQVBQRU5FRCwKKyAgICBNU0dfSURfU01JQ19ERUJVR19EVU1QX0NPTU1PTl9JTkZPLAorICAgIE1TR19JRF9TTUlDX0RFQlVHX0RVTVBfNEdfSU5GTywKKyAgICBNU0dfSURfU01JQ19ERUJVR19EVU1QXzVHX0lORk8sCisgICAgTVNHX0lEX1NNSUNfREVCVUdfRlVOQ1RJT05fQ0FMTCwKKyAgICAKKyAgICBNU0dfSURfU01JQ19DT0RFX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9TTUlDX0NPREVfVEFJTCApCisjZW5kaWYKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU01JQ19NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zbXNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Ntc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYmUyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zbXNfbXNnaWQuaApAQCAtMCwwICsxLDI2NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBzbXMuc2FwCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBTTVMgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfU01TX01TR19ICisjZGVmaW5lIF9TTVNfTVNHX0gKKworCS8qLS0tLS0tLS0tLS0tLS0tLS0tLSBTTVNfTVNHX0NPREVfQkVHSU4tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TTVNfQ09ERV9CRUdJTiApCisJTVNHX0lEX0dNTVNNU19SRUdfU1RBVEVfSU5EID0gTVNHX0lEX1NNU19DT0RFX0JFR0lOLAorCU1TR19JRF9MTFNNU19VTklUREFUQV9JTkQsCisJTVNHX0lEX01NU01TX0VTVF9JTkQsCisJTVNHX0lEX01NU01TX0VTVF9DTkYsCisJTVNHX0lEX01NU01TX0RBVEFfSU5ELAorCU1TR19JRF9NTVNNU19SRUxfSU5ELAorCU1TR19JRF9NTVNNU19FUlJfSU5ELAorCU1TR19JRF9NTVNNU19FU1RfUkVKLAorCU1TR19JRF9TTVNfVElNRVJfRVhQSVJZLAorCU1TR19JRF9NTVNNU19FU1RfSU5UUiwKKwlNU0dfSURfR01NU01TX1JBVV9TVEFURV9JTkQsCisgICAgTVNHX0lEX0dNTVNNU19DTl9ET01BSU5fU1RBVEVfSU5ELC8vQWRkZWQgZm9yIFNLVCBPcGVyYXRvciBLT1IgUkVRIElEIDogMjk5LDMyOAorCS8qIDNHICovCisJTVNHX0lEX0dNTVNNU19FU1RfQ05GLAorCU1TR19JRF9HTU1TTVNfRVNUX1JFSiwKKwlNU0dfSURfR01NU01TX0VSUl9JTkQsCisJTVNHX0lEX0dNTVNNU19VTklUREFUQV9JTkQsCisKKwkvKiBMVEUgKi8KKwlNU0dfSURfU01TX0VWQUxfRVNUX0NORiwKKwlNU0dfSURfU01TX0VWQUxfRVNUX1JFSiwKKwlNU0dfSURfU01TX0VWQUxfVU5JVERBVEFfSU5ELAorCU1TR19JRF9TTVNfRVZBTF9FUlJfSU5ELAorCU1TR19JRF9TTVNfRU1NX1JFR19TVEFUVVNfSU5ELAorCisgICAgLyogNUcgKi8KKyAgICBNU0dfSURfU01TX1ZHTU1fRVNUX0NORiwKKwlNU0dfSURfU01TX1ZHTU1fRVNUX1JFSiwKKwlNU0dfSURfU01TX1ZHTU1fREFUQV9JTkQsCisJTVNHX0lEX1NNU19WR01NX0VSUl9JTkQsCisJTVNHX0lEX1NNU19WR01NX1JFR19TVEFUVVNfSU5ELAorCU1TR19JRF9TTVNfVkdNTV9TVEFUVVNfSU5ELAorCisJLypNU0dTX0ZST01fU01TQUwqLworCU1TR19JRF9TTVNfU1VCTUlULAorCU1TR19JRF9TTVNfU1VCTUlUX0FCT1JULAorCU1TR19JRF9TTVNfQ09NTUFORCwKKwlNU0dfSURfU01TX0NPTU1BTkRfQUJPUlQsCisJTVNHX0lEX1NNU19ERUxJVkVSX1JFUE9SVF9BQ0ssCisJTVNHX0lEX1NNU19ERUxJVkVSX1JFUE9SVF9OQUNLLAorCU1TR19JRF9TTVNfU0VSVklDRV9SRVEsCisJTVNHX0lEX1NNU19NT1JFX01TR19TRU5EX1JFUSwKKwlNU0dfSURfU01TX1RSWV9ORVhUX0JFQVJFUl9SRVEsCisJTVNHX0lEX1NNU19NRU1fQVZMX05PVElGLAorCU1TR19JRF9NTVNNU19TWU5DX0lORCwvL0FkZCB0byBFbmhhbmNlIHBlcmZvcm1hbmNlIGR1cmluZyBoYW5kb3ZlciAKKwlNU0dfSURfTU1TTVNfUkFUX0lORCwKKwlNU0dfSURfU0FUX1NNU19SRUZSRVNIX1BFUk1JU1NJT05fUkVRLAorCU1TR19JRF9TTVNfRU5BQkxFX1NNU19PVkVSX1NHU19JTkQsCisgICAgTVNHX0lEX1NNU19FVkFMX1JFTF9JTkQsCisgICAgTVNHX0lEX1NNU19FVkFMX1VOSVREQVRBX0NORiwKKwlNU0dfSURfU01TX1NFVF9TVFVCX0lORCwvL01USzA4NTA1IGFkZGVkIGZvciBLVCBvcGVyYXRvciBpbiBrb3JlYQorCU1TR19JRF9MNENTTVNfQ1NfQ0FMTF9TVEFUVVNfUkVRLAorCU1TR19JRF9TTVNfUkVTRVRfSU5ELAorCU1TR19JRF9MNENTTVNfQ0FMTF9ET01BSU5fSU5ELAorCisJLy8gZnJvbSBBVFAKKyAgICBNU0dfSURfQVRQX1NNU19TVEFUVVNfUkVRLAorICAgIC8qTVNHUyBXSVRIIElNQ1NNUyovCisgICAgTVNHX0lEX1NNU19JTUNTTVNfTVRfTE9OR19TTVNfSU5GT19JTkQsLy9JTUNTTVMgdG8gU01TCisgICAgTVNHX0lEX0lNQ1NNU19TTVNfTVRfTE9OR19TTVNfSU5GT19JTkQsLy9TTVMgdG8gSU1DU01TCisJTVNHX0lEX1NNU19EVU1QX0NPTlRFWFRfSU5ELAorCU1TR19JRF9TTVNfQ09ERV9FTkQgPSBNU0dfSURfU01TX0RVTVBfQ09OVEVYVF9JTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfU01TX0NPREVfVEFJTCApCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tIFNNU19NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2VuZGlmICAvL19TTVNfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NuZGNwX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zbmRjcF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwMjFmMzEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zbmRjcF9tc2dpZC5oCkBAIC0wLDAgKzEsMTk1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHNuZGNwLnNhcAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgU05EQ1AgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIAkJCQlISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqCisqICBUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGV2ZWxvcGVkIHVzaW5nIGEgcHJvdG9jb2wgc3RhY2sKKyogIGRldmVsb3BlZCBieSBTYXNrZW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgTGltaXRlZC4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfU05EQ1BfTVNHX0gKKyNkZWZpbmUgX1NORENQX01TR19ICisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVNORF9NU0dfQ09ERV9CRUdJTiAtLS0tLS0tLS0tLS0tLS0qLworICAgIC8qTm90IHZlcmlmeSB5ZXQuKi8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1NORF9DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfU05fREFUQV9SRVEgPSBNU0dfSURfU05EX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1NOX1VOSVREQVRBX1JFUSwKKyAgICBNU0dfSURfU05fWElEX1JFUSwKKworICAgIC8qIFJvYmVydCBjb21tZW50IHN0YXJ0ICAqLworICAgIC8qIERvbid0IG1vZGlmeSBmb2xsb3dpbmcgbWVzc2FnZSBzZXF1ZW5jZS4gKi8KKyAgICAvKiBTTkRDUCBjaGVja3Mgc2FwaSBpbiBzbmRfbWFpbigpIGZ1bmN0aW9uLiAqLworICAgIE1TR19JRF9MTFNORF9VTklUREFUQV9JTkQsCisgICAgTVNHX0lEX0xMU05EX1hJRF9JTkQsCisgICAgTVNHX0lEX0xMU05EX1hJRF9DTkYsCisgICAgTVNHX0lEX0xMU05EX0RBVEFfSU5ELAorICAgIE1TR19JRF9MTFNORF9EQVRBX0NORiwKKyAgICBNU0dfSURfTExTTkRfRVNUQUJMSVNIX0lORCwKKyAgICBNU0dfSURfTExTTkRfRVNUQUJMSVNIX0NORiwKKyAgICBNU0dfSURfTExTTkRfUkVMRUFTRV9JTkQsCisgICAgTVNHX0lEX0xMU05EX1JFTEVBU0VfQ05GLAorICAgIE1TR19JRF9MTFNORF9TVEFUVVNfSU5ELAorICAgIC8qIFJvYmVydCBjb21tZW50IGVuZCAgKi8KKworICAgIE1TR19JRF9MTFNORF9SRVNFVF9JTkQsCisgICAgTVNHX0lEX0xMU05EX1QxMDBfUkVTRVRfSU5ELCAvKiBFcmljIEhzaWVoOiBmb3IgUFNITyAqLworICAgIE1TR19JRF9TTkRDUF9MTENfUkFUX0xFQVZFX1JFUSwgLyogRXJpYyBIc2llaDogZm9yIE1TR19JRF9SQVRETV9TTkRDUF9SQVRfTEVBVkVfUkVRIGhhbmRsaW5nLCBSQVRETS1yZWZhY3RvciAqLworICAgIE1TR19JRF9MTFNORF9GTFVTSF9DTkYsCisKKyAgICBNU0dfSURfU05TTV9BQ1RJVkFURV9JTkQsCisgICAgTVNHX0lEX1NOU01fREVBQ1RJVkFURV9JTkQsCisgICAgTVNHX0lEX1NOU01fTU9ESUZZX0lORCwKKyAgICBNU0dfSURfU05TTV9TRVFVRU5DRV9JTkQsCisgICAgTVNHX0lEX1NOU01fQ0VMTF9JTkZPX1VQREFURV9JTkQsIC8qIGVyaWNhIDIwMDUxMjI5OiBmb3IgZWdwcnMgKi8KKworICAgIE1TR19JRF9TTkRfRkxDX1NVU1BFTkRfUkVTVU1FLAorICAgIE1TR19JRF9TTkRfQUNUSVZBVEVfSU5ELAorICAgIE1TR19JRF9TTkRfQUNUSVZBVEVfUlNQLAorICAgIE1TR19JRF9TTkRfREVBQ1RJVkFURV9JTkQsCisgICAgTVNHX0lEX1NORF9ERUFDVElWQVRFX1JTUCwKKyAgICBNU0dfSURfU05EX01PRElGWV9FU1QsCisgICAgTVNHX0lEX1NORF9NT0RJRllfRVNUX1JTUCwKKyAgICBNU0dfSURfU05EX01PRElGWV9SRUwsCisgICAgTVNHX0lEX1NORF9NT0RJRllfUkVMX1JTUCwKKyAgICBNU0dfSURfU05EX1VOSVREQVRBX0lORCwKKyAgICBNU0dfSURfU05EX1VOSVREQVRBX1RYX1JFUSwKKyAgICBNU0dfSURfU05EX0RBVEFfSU5ELAorICAgIE1TR19JRF9TTkRfREFUQV9UWF9SRVEsCisgICAgTVNHX0lEX1NORF9SRVNFVF9JTkQsCisgICAgTVNHX0lEX1NORF9EQVRBX0VSUk9SLAorICAgIE1TR19JRF9TTkRfQ09NUFJFU1NfUlNQLAorICAgIE1TR19JRF9TTkRfREVDT01QUkVTU19SU1AsCisgICAgTVNHX0lEX1NORF9GTENfREFUQV9SRVNVTUVfUFBQLAorCisgICAgLyogSmVmZiBXdSAyMDA3LTAzLTAzOiBSQVRETSAtPiBTTkRDUCAqLworICAgIE1TR19JRF9SQVRETV9TTkRDUF9BQ1RJVkFURV9SRVEsCisgICAgTVNHX0lEX1JBVERNX1NORENQX0RBVEFfUkVRLAorICAgIE1TR19JRF9SQVRETV9TTkRDUF9NT0RJRllfUkVRLAorICAgIE1TR19JRF9SQVRETV9TTkRDUF9ERUFDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfUkFURE1fU05EQ1BfU0VRVUVOQ0VfUkVRLAorICAgIE1TR19JRF9SQVRETV9TTkRDUF9SQVRfRU5URVJfUkVRLAorICAgIE1TR19JRF9SQVRETV9TTkRDUF9SQVRfTEVBVkVfUkVRLAorCisgICAgTVNHX0lEX1NPQ19TTkRfRExfU1JQRFVfUkVTVU1FLAorICAgIE1TR19JRF9TTkRfTlBEVV9JTlFVRVVFX0lORCwgLy9lcmljYSAyMDA2MDMyMAorICAgIE1TR19JRF9TTkRfQ09ERV9FTkQgPSBNU0dfSURfU05EX05QRFVfSU5RVUVVRV9JTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfU05EX0NPREVfVEFJTCApCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVNORF9NU0dfQ09ERV9FTkQgLS0tLS0tLS0tLS0tLS0tLS0qLworCisjZW5kaWYgIC8vX1NORENQX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zc2RzX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zc2RzX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI3MDUzOQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3NzZHNfbXNnaWQuaApAQCAtMCwwICsxLDE1OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHNzZHNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAgIAorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA0IDIxIDIwMjIgcGFudS5wZWlzYQorICogW01PTFkwMDc4MTU5Ml0g44CQU1RSNOOAkTI2OTg0MDU6IOOAkDIxMkEx44CR44CQREXjgJHjgJBPTeOAkeOAkEZU44CR44CQVm9kYWZvbmXjgJHjgJBTQSBVU1NE44CR44CQ6L+Q6JCl5ZWG6YCB5rWL44CRRFVUIHJ1biBVU1NEIGZhaWwgdW5kZXIgU0EgNUcKKyAqIAkKKyAqIEVSQVQgQ29uZmlndXJhdGlvbiBhbmQgTWVzc2FnZSBJRCdzLgorICoKKyAqIDAxIDA2IDIwMjAgeGlhb3Rpbmcud2FuZworICogW01PTFkwMDQ2OTEzNV0gW0dlbjk3XVtTQVRdIFNUS1NTIG92ZXIgWENBUC4KKyAqCisgKiAxMiAwMiAyMDE5IHhpYW90aW5nLndhbmcKKyAqIFtNT0xZMDA0MzgwNzBdIFtHZW45N11bSU1TXSBTVEtDQUxMIGFuZCBTVEtVU1NEIG92ZXIgSU1TW1NTRFMgY29tbW9uIGZpbGVdLgorICoKKyAqIDEwIDI1IDIwMTkgeGlhb3Rpbmcud2FuZworICogW01PTFkwMDQ1NDUyNF0gW1Jvc2VdW1BldHJ1c11CU1ArXVtRMF1UaGUgRFVUIHdpbGwgaGF2ZSBub3QgcHVwIHVwIEZETiB0b2FzdCAiWW91ciBwaG9uZSBhcHAncyBmaXhlZCBkaWFsaW5nIG51bWJlciBzZXR0aW5nIGlzIHR1cm5lZCBvbi5BcyBhIHJlc3VsdCxzb21lIGNhbGwtcmVsYXRlZCBmZWF0dXJlcyBhcmVuJ3Qgd29ya2luZyIoNS81KS4KKyAqCisgKiAwOSAyNSAyMDE5IHRpbmd3ZW4uY2hlbgorICogW01PTFkwMDQzODA3MF0gW0dlbjk3XVtJTVNdIFNUS0NBTEwgYW5kIFNUS1VTU0Qgb3ZlciBJTVMgKFNXUkQpCisgKiAgICAgLSBTVEtVU1NEIG92ZXIgSU1TLCBTSU0vTDQgcGFydAorICogICAgIC0gU2hvdyBNTUkgaW5mbyB0byB1c2VyIGluIGRlZmF1bHQKKyAqCisgKiAwNCAyNiAyMDE5IHlhLmxpCisgKiBbTU9MWTAwMzk4NTY2XSBbTVQ2Mjk3XVtTU0RTXXBhdGNoIGJhY2sgVU1PTFlFJ3MgbW9kaWZpY2F0aW9ucyB0byBWTU9MWSBicmFuY2gKKyAqIAkKKyAqIAkuCisgKgorICogMDYgMTQgMjAxOCBjcy5odWFuZworICogW01PTFkwMDMzMzA1OF0gW1hDQVBdIFhDQVAgY2hlY2staW4KKyAqIGludGVyZmFjZQorICoKKyAqIDAzIDMwIDIwMTggeWEubGkKKyAqIFtNT0xZMDAzMTMxMDBdIFtSb3NlXVtDZXJ2aW5vXVtPMV1bQlNQK11UaGUgZGV2aWNlIHdpbGwgcG9wdXAgIk5ldHdvcmsgb3IgU0lNIGNhcmQgZXJyb3IiLig1LzUpLVNBUCBwYXJ0CisgKiAJCisgKiAJLgorICoKKyAqIDExIDI5IDIwMTcgeGlhb3Rpbmcud2FuZworICogW01PTFkwMDI5MjI0NV0gW1NTRFNdcGF0Y2ggYmFjayBSMiBtb2RpZmNhdGlvbiB0byBSMyBicmFuY2guCisgKgorICogMTEgMjkgMjAxNyB4aWFvdGluZy53YW5nCisgKiBbTU9MWTAwMjkyMjQ1XSBbU1NEU11wYXRjaCBiYWNrIFIyIG1vZGlmY2F0aW9uIHRvIFIzIGJyYW5jaC4KKyAqCisgKiAxMSAyOSAyMDE3IHhpYW90aW5nLndhbmcKKyAqIFtNT0xZMDAyOTIyNDVdIFtTU0RTXXBhdGNoIGJhY2sgUjIgbW9kaWZjYXRpb24gdG8gUjMgYnJhbmNoLgorICoKKyAqIDExIDI5IDIwMTcgeGlhb3Rpbmcud2FuZworICogW01PTFkwMDI5MjI0NV0gW1NTRFNdcGF0Y2ggYmFjayBSMiBtb2RpZmNhdGlvbiB0byBSMyBicmFuY2gKKyAqIC4KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfU1NEU19NU0dJRF9IXworI2RlZmluZSBfU1NEU19NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfU1NEU19DT0RFX0JFR0lOICkKKworICAgICAgICAvKkFUUCAtPiBTU0RTKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX1NTX0FUQ01EX1JFUT1NU0dfSURfU1NEU19DT0RFX0JFR0lOLCAgICAgICAvKlNTIGF0Y21kIHJlcXVlc3QqLyAgICAKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VHQkFfQVRDTURfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlRyaWdnZXIgR0JBKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VDTkNGR19BVENNRF9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAvKkZvciBtb2JpbGUgZGF0YS9yb2FtaW5nIGRhdGEgc2V0dGluZyovICAgICAgICAKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VTUlZTVEFURV9BVENNRF9SRVEsICAgICAgICAgICAgICAgICAgICAgICAvKkZvciBkYXRhIHJvYW1pbmcgdHlwZSovICAgICAgICAKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VDRkdTRVRfQVRDTURfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAvKkZvciBDVCB2b2x0ZSBzZXR0aW5nKi8gICAgICAgICAgCisKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX1NTX1VSQ19SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlVSQyByZXF1ZXN0Ki8gICAKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0NJUkVHVV9VUkNfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKlVSQzogSU1TIHJlZ2lzdGVyZWQgc3RhdGUqLyAgICAgICAgCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19YVUlfSU5GT19SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypYVUkgaW5mb3JtYXRpb24gcmVxdWVzdCovCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19JTVNfUkVHX1NUQVRVU19SRVEsICAgICAgICAgICAgICAgICAgICAgICAgLypJTVMgcmVnaXN0cmF0aW9uIHN0YXR1cyovCisgICAgICAgIE1TR19JRF9BVFBfU1NEU19QU19SRUdfU1RBVFVTX1JFUSwKKworICAgICAgICBNU0dfSURfQVRQX1NTRFNfU1NfQVRDTURfUkVESVJFQ1RfQ05GLCAgCisgICAgICAgIE1TR19JRF9TU0RTX0RTQlBfUkVDT05GSUdVUkVfSU5ELAorICAgICAgICAKKyAgICAgICAgLypBVFAgLT4gU1NEUyAoVVNTRCkqLworICAgICAgICBNU0dfSURfQVRQX1NTRFNfVVNTRF9BVENNRF9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAgLypVU1NEIGF0Y21kIHJlcXVlc3QqLyAgICAgICAgICAKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX1VTU0RfQVRDTURfUkVESVJFQ1RfQ05GLCAKKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX1VTU0RfQVRDTURfUkVESVJFQ1RfSU5ELAorICAgICAgICBNU0dfSURfQVRQX1NTRFNfU1RLVVNTRF9BVENNRF9SRVEsCisgICAgICAgIAorICAgICAgICBNU0dfSURfQVRQX1NTRFNfU1RLU1NfQVRDTURfUkVRLAorCisgICAgICAgIE1TR19JRF9TU0RTX05PVElGWV9PVEhFUl9TSU1fUkVMX1BETl9DT05OX0lORCwKKyAgICAgICAgTVNHX0lEX1NTRFNfTk9USUZZX09USEVSX1NJTV9SRUxfUEROX0NPTk5fUlNQLAorICAgICAgICBNU0dfSURfQVRQX1NTRFNfRVJBVF9RVUVSWV9DTkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgLypTU0RTIHJlY2VpdmUgK0VSQVQsIE9LKi8KKyAgICAgICAgTVNHX0lEX0FUUF9TU0RTX0VSQVRfU0VUX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qU1NEUyByZWNlaXZlIE9LKi8KKyAgICAKKyAgICAgICAgLypYQ0FQIC0+IFNTRFMgKi8KKyAgICAgICAgTVNHX0lEX1NTRFNfWENBUF9TU19JTklUX0lORCwKKyAgICAgICAgTVNHX0lEX1NTRFNfWENBUF9TU19BVENNRF9DTkYsCisgICAgICAgIE1TR19JRF9TU0RTX1hDQVBfU1NfQ1NGQl9TVEFSVF9DTkYsCisgICAgICAgIE1TR19JRF9TU0RTX1hDQVBfU1RLU1NfQ05GLAorCisgICAgICAgIC8qSU1DIC0+IFNTRFMgKi8KKyAgICAgICAgTVNHX0lEX1NTRFNfSU1DX1VTU0RfQVRDTURfQ05GLAorICAgICAgICBNU0dfSURfU1NEU19JTUNfVVNTRF9BVENNRF9JTkQsCisKKyAgICAgICAgLypMNEMgLT4gU1NEUyAqLworICAgICAgICBNU0dfSURfU1NEU19MNENfRkROX0NIRUNLX0NORiwKKyAgICAgICAgTVNHX0lEX1NTRFNfTDRDX05XX0ZFQVRVUkVfSU5ELAorICAgICAgICBNU0dfSURfU1NEU19MNENfU1RLX0lNU19VU1NEX0NPTkZJR19DTkYsCisgICAgICAgIE1TR19JRF9TU0RTX0w0Q19TVEtfQ1NfVVNTRF9FTkRfSU5ELAorICAgICAgICBNU0dfSURfU1NEU19MNENfU1RLU1NfQ09ORklHX0NORiwKKyAgICAgICAgTVNHX0lEX1NTRFNfTDRDX1NUS1NTX0NTX0VORF9JTkQsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfU1NEU19DT0RFX1RBSUwgKQorI2VuZGlmIC8qIF9TU0RTX01TR0lEX0hfICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zdHViX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zdHViX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FmOTRhMgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3N0dWJfbXNnaWQuaApAQCAtMCwwICsxLDEzOCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKKyAgRklMRSBOQU1FOiAgc3R1Yl9tc2dpZC5oCisKKyAgREVTQ1JJUFRJT046CisKKyAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmVuaXRpb25zIG9mIGFsbCB0aGUgU1RVQiBtc2cgaWQncy4KKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX1NUVUJfTVNHSURfSF8KKyNkZWZpbmUgX1NUVUJfTVNHSURfSF8KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjdW5kZWYgTVNHSURfU0VUCisjdW5kZWYgTVNHSURfTkVYVAorCisjZGVmaW5lIE1TR0lEX1NFVChuYW1lLCB2YWwpIE1TR19JRF8jI25hbWUgPSB2YWwKKyNkZWZpbmUgTVNHSURfTkVYVChuYW1lKSBNU0dfSURfIyNuYW1lCisKKworCisvKiBNZXNzYWdlcyBoYW5kbGVkIGJ5IFNUVUIgdGFzaworCisqLworTU9EVUxFX01TR19CRUdJTihNU0dfSURfU1RVQl9DT0RFX0JFR0lOKQorCisKKyAgICAvKiBTVFVCIHNlZ21lbnQgKi8KKyAgICBNU0dJRF9TRVQoQ0JTX1JBVF9NT0RFX1NUQVRVU19JTkQgLCBNU0dfSURfU1RVQl9DT0RFX0JFR0lOKSwKKyAgICBNU0dJRF9ORVhUKENCU19DSEFOTkVMX0NPTkZJR19JTkQpLAorICAgIE1TR0lEX05FWFQoRUwxX1JBVF9NT0RFX1NUQVRVU19JTkQpLAorICAgIE1TR0lEX05FWFQoRUwxX0FDVElWRV9NRUFTVVJFX0lORk9fSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVMMV9TVEFOREJZX01FQVNVUkVfUkVRKSwKKyAgICBNU0dJRF9ORVhUKEVMMV9BVVRPX0dBUF9BVkFJTEFCTEVfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVMMV9BVVRPX0dBUF9GQUlMKSwgIAorICAgIE1TR0lEX05FWFQoRUwxX1NUT1BfR0FQX0lORCksCisgICAgTVNHSURfTkVYVChFTDFfU1VTUEVORF9HQVBfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVMMV9SRVNVTUVfR0FQX0lORCksCisgICAgTVNHSURfTkVYVChFTDFfTU1PX0dBUF9MRU5HVEhfSU5EKSwKKyAgICBNU0dJRF9ORVhUKFNUVUJfTEwxQV9STUNfUkFUX1NUQVRVU19JTkRfTVNHKSwKKyAgICBNU0dJRF9ORVhUKFNUVUJfTEwxQV9JRFBfU0lHTkFMX1BST1RFQ1RfU1RBVFVTX0lORCksCisgICAgTVNHSURfTkVYVChTVFVCX0xMMUFfUFNXX1NJR05BTF9QUk9URUNUX1NUQVRVU19JTkQpLAorICAgIE1TR0lEX05FWFQoRVZET19BQ1RJVkVfTU9ERV9TVEFUVVNfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVMMV9TVEFOREJZX1NSQ0lQVF9NRUFTX1JFUE9SVCksCisgICAgTVNHSURfTkVYVChMTDFTVFVCX0NCU19DSEFOTkVMX05PVElGWV9JTkQpLAorICAgIE1TR0lEX05FWFQoRVZET19BQ1RJVkVfR0FQX09GRkVSKSwKKyAgICBNU0dJRF9ORVhUKEVWRE9fQUNUSVZFX0dBUF9TVE9QX1JFUSksCisgICAgTVNHSURfTkVYVChFVkRPX1NMRUVQX0lORCksCisgICAgTVNHSURfTkVYVChFVkRPX1dBS0VVUF9JTkQpLAorICAgIE1TR0lEX05FWFQoUlRUX1NMRUVQX0lORCksCisgICAgTVNHSURfTkVYVChSVFRfV0FLRVVQX0lORCksCisgICAgTVNHSURfTkVYVChMVEVfQUNUSVZFX0dBUF9TVE9QX0lORF9DSEVDSyksCisgICAgTVNHSURfTkVYVChFVkRPX0FDVElWRV9TTFRfUENIX0RFTklFRCksCisgICAgTVNHSURfTkVYVChFVkRPX1JUQl9ERU5ZX0lORCksCisgICAgTVNHSURfTkVYVChFVkRPX1JUQl9QUkVNUFRfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVWRE9fUlRCX1JFU1VNRV9JTkQpLAorICAgIE1TR0lEX05FWFQoRVZET19IU0NfUFJFTVBUX0lORCksCisgICAgTVNHSURfTkVYVChFVkRPX0hTQ19SRVNVTUVfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVWRE9fQ0VMTF9TV0lUSF9JTkQpLAorICAgIE1TR0lEX05FWFQoRVZET19JQ1NfSU5JVEFDUV9SRUdDSEFORUxfV0lUSF9BRkNfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVWRE9fSUNTX0lOSVRBQ1FfUkVHQ0hBTkVMX1dJVEhPVVRfQUZDX0lORCksCisgICAgTVNHSURfTkVYVChFVkRPX0NHSV9BQ1FfU1RBUlRfSU5EKSwKKyAgICBNU0dJRF9ORVhUKEVWRE9fTVBTUl9TVEFSVF9JTkQpLAorICAgIE1TR0lEX05FWFQoRVZET19NUFNSX0VORF9JTkQpLAorICAgIE1TR0lEX05FWFQoU1RVQl9IU0NfU0lCOF9USU1JTkdfQ09ORklHX1JFUSksCisgICAgTVNHSURfTkVYVChTVFVCX0hTQ19TSUI4X1RJTUlOR19TWU5DX1JFUSksCisgICAgTVNHSURfTkVYVChTVFVCX0hTQ19TSUI4X1RJTUlOR19TWU5DX0NORiksCisKKyAgICBNU0dJRF9ORVhUKE1TR19DTDFfRlJfVVRfVFJJRyksCisgICAgTVNHSURfTkVYVChGUl9VVF9DQVNFX1BBU1NfUkVQT1JUKSwKKyAgICBNU0dJRF9ORVhUKENMMV9OV1NJTV9VVF9URVNUX1RSSUcpLAorICAgIE1TR0lEX05FWFQoQ0wxX05XU0lNX1VUX1RFU1RfUkVQT1JUKSwKKworICAgIE1TR0lEX05FWFQoRVZTVEFOREJZX1NDUklQVF9DRUxMX01FQVNfUkVRKSwKKyAgICBNU0dJRF9ORVhUKEVWU1RBTkRCWV9TQ1JJUFRfQUNRX0NHSV9SRVEpLAorICAgIE1TR0lEX05FWFQoWEwxX1NDUklQVF9MMURfVEVTVF9DQVNFX01TRyksCisKKyAgICBNU0dJRF9ORVhUKENMMV9VVF9UUklHKSwKKyAgICBNU0dJRF9ORVhUKENMMV9VVF9STFRfUlBUKSwKKyAgICBNU0dJRF9ORVhUKEwxX0lUX1NURVBfUEFTUyksICAgIAorICAgIE1TR0lEX05FWFQoTDFfSVRfMVhTWU5DX1BBU1MpLAorICAgIE1TR0lEX05FWFQoTDFfSVRfQUNDRVNTX01FQVNfUEFTUyksCisgICAgTVNHSURfTkVYVChMMV9JVF9QQ0hfUkVDX1BBU1MpLAorICAgIE1TR0lEX05FWFQoTDFfSVRfSURMRV9NRUFTX1BBU1MpLAorICAgIE1TR0lEX05FWFQoTDFfSVRfVFJBRkZJQ19NRUFTX1BBU1MpLAorICAgIE1TR0lEX05FWFQoTDFfSVRfSURMRV9ERlNfUEFTUyksCisgICAgTVNHSURfTkVYVChMMV9JVF9NSU5JX0FDUV9QQVNTKSwKKyAgICBNU0dJRF9ORVhUKEwxX0lUX0RGU19NRUFTX0RPTkUpLCAgICAKKyAgICBNU0dJRF9ORVhUKExMMUFfU0NSSVBUX0xURV9TQ0FOX0MyS19BQ1RJVkVfUEFSQU1TX0lORCksCisgICAgTVNHSURfTkVYVChMTDFBX1NDUklQVF9QU19NTU9fU0lHTkFMX1BST1RFQ1RfSU5EKSwKKyAgICBNU0dJRF9ORVhUKExMMVNUVUJfU0NSSVBUX1JTVkFTX1NVU1BFTkRfUkVTVU1FX0lORCksCitNT0RVTEVfTVNHX0VORChNU0dfSURfU1RVQl9DT0RFX1RBSUwpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBGaWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvc3VwbF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvc3VwbF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MTJmNWMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC9zdXBsX21zZ2lkLmgKQEAgLTAsMCArMSwxNTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHN1cGxfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBpcyBkZWZpbmVzIFNBUCBmb3IgU1VQTCByZWxhdGVkIHNlcnZpY2UuCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAJCQkJSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9TVVBMX01TR19ICisjZGVmaW5lIF9TVVBMX01TR19ICisKKyNpZiAwIC8qIGZvciBIQUwgKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNpZmRlZiBfX0JVSUxEX0RPTV9fCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisgI2VuZGlmCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjaWZkZWYgX19CVUlMRF9ET01fXworLyogdW5kZXIgY29uc3RydWN0aW9uICEqLworI2VuZGlmCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYgLyogaWYgMCBmb3IgSEFMICovCisKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDxHUk9VUCBNZXNzYWdlcyA+CisgKgorICogU1VQTF9MQ1NQIFNBUCBwcmltaXRpdmVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyB0eXBlZGVmIGVudW17CisjZW5kaWYKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TVVBMX01TR19DT0RFX0JFR0lOICkKKyAgICBNU0dfSURfU1VQTF9MQ1NQX0RBVEFfSU5EID0gTVNHX0lEX1NVUExfTVNHX0NPREVfQkVHSU4sIC8qIFNVUEwgdXNlcyB0aGlzIG1lc3NhZ2UgdG8gbm90aWZ5IExDU1AgbW9kdWxlcyBpbmNvbWluZyBkYXRhLiAqLworICAgIE1TR19JRF9TVVBMX0xDU1BfREFUQV9SU1AsIC8qIExDU1AgbW9kdWxlcyB1c2UgdGhpcyBtZXNzYWdlIHRvIG5vdGlmeSBTVVBMIHRoZSByZXN1bHQgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgaW5jb21pbmcgZGF0YSAqLworICAgIE1TR19JRF9TVVBMX0xDU1BfREFUQV9SRVEsIC8qIExDU1AgbW9kdWxlcyB1c2UgdGhpcyBtZXNzYWdlIHRvIGFzayBTVVBMIHRvIHNlbmQgdGhlIHJlcXVlc3QgdG8gc2VydmVyLiAqLworICAgIE1TR19JRF9TVVBMX0xDU1BfREFUQV9DTkYsIC8qIFNVUEwgdXNlcyB0aGlzIG1lc3NhZ2UgdG8gbm90aWZ5IExDU1AgbW9kdWxlcyB0aGUgcmVzdWx0IG9mIHNlbmRpbmcgcmVxdWVzdC4gKi8KKyAgICBNU0dfSURfTENTUF9TVEFSVF9SRVEsCisgICAgTVNHX0lEX0xDU1BfRU5EX1JFUSwKKyAgICBNU0dfSURfU1VQTF9MQ1NQX0FCT1JUX1JFUSwKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCit9IHNhcF9zdXBsX2xjc3BfZW51bTsKKyNlbmRpZgorCisgICAgLyogSW50ZXJuYWwgTWVzc2FnZXMgKi8KKyAgICBNU0dfSURfU1VQTF9DT05OX1NFTkRfUkVRLAorICAgIE1TR19JRF9TVVBMX0NPTk5fU0VORF9DTkYsCisgICAgTVNHX0lEX1NVUExfQ09OTl9SRUNWX0lORCwKKyAgICBNU0dfSURfU1VQTF9DT05OX0ZBSUxfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9TVVBMX01TR19DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX1NVUExfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3RmdGxpYl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdGZ0bGliX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlmOGRkYQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3RmdGxpYl9tc2dpZC5oCkBAIC0wLDAgKzEsMzUzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgdGZ0bGliX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRGVCBsaWJyYXJ5IHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA4IDEyIDIwMjAgdGVyZW5jZS5rdW8KKyAqIFtNT0xZMDA1NTczMThdIFtNVDY4NzVdW01hcmdhdXhdW1EwXVtSM11bTVA2XVtTUUNdW0ludGVybmFsXVtXVyBGVF1bQ2hpbmFdW1F1emhvdV1bNUdNTV1bTURTVF1bU1dJRlRdW1NdW0NNQ0MrSW52YWxpZF1bRXJyb3IgdGltZXM6MV1TeXN0ZW0gQVBJIER1bXAsMTE2NSwyOSw5OSwvZGF0YS92ZW5kb3IvY29yZS8sMSwsbXRrcmlsZDpBVCBjb21tYW5kIHBlbmRpbmcgdG9vIGxvbmcuIGFzc2VydCEhISBBVCBjbWQ6IEVBUE5BQ1QudGltZXI6IDkwMDAwMG1zCisgKiAuIEFkZCBtZXNzYWdlIGZvciB0aGUgbmV3IGFwaSB3aGljaCBjb25zdHJ1Y3RzIGNvbnRleHQgZm9yIGRlZmF1bHQgYmVhcmVyIHdvIHRmdC4KKyAqCisgKiAwNCAxNSAyMDIwIHRlcmVuY2Uua3VvCisgKiBbTU9MWTAwNTA4MjQxXSBNZW1vcnkgcmVkdWN0aW9uIC0gbDQgcHMgY2lkIHJlZHVjdGlvbiBhbmQgcmVkdWNlIG1heGltdW0gbnVtYmVyIG9mIHN1cHBvcnQgZmxvdworICogLiBBZGQgcHJpbWl0aXZlIHRyYWNlcyBmb3IgcGR1IHNlc3Npb24vIGJlYXJlciBpbmZvIHN0YXRpc3RpY3MuCisgKgorICogMDQgMDYgMjAyMCB0ZXJlbmNlLmt1bworICogW01PTFkwMDUwODI0MV0gTWVtb3J5IHJlZHVjdGlvbiAtIGw0IHBzIGNpZCByZWR1Y3Rpb24gYW5kIHJlZHVjZSBtYXhpbXVtIG51bWJlciBvZiBzdXBwb3J0IGZsb3cKKyAqIC4gQWRkIHByaW1pdGl2ZSB0cmFjZXMgdG8gcmVjb3JkIGN1cnJlbnQgYXBwbGllZCBxci8gdGZ0IHN0YXR1cyBmb3IgYW5hbHlzaXMuCisgKgorICogMDkgMTkgMjAxOSB0ZXJlbmNlLmt1bworICogW01PTFkwMDQ0MTEwN10gW0dlbjk3XSBVU0lSIGFuZCByZWxhdGVkIGNoYW5nZXMKKyAqIC4gVVNJUiBzdXBwb3J0IGluIHRmdGxpYi4KKyAqCisgKiAwOSAwNCAyMDE5IHRlcmVuY2Uua3VvCisgKiBbTU9MWTAwNDM0NzU0XSBVcGdyYWRlIENHVEZUIHRvIHN1cHBvcnQgNUdDCisgKiAJCisgKiAuIFVwZGF0ZSB0ZnRsaWJfbXNnaWQuaAorICoKKyAqIDAzIDI2IDIwMTkgamVmZmVyeS5jaGVuCisgKiBbTU9MWTAwMzkzNDU2XSBbR2VuOTddW1ZNT0xZXSA0NUcgSW50ZXJSQVQgJiBpbnRlclN5c3RlbSBmZWF0dXJlCisgKiAJCisgKiAJKFNXUkQpIFNBUCBwYXJ0LgorICoKKyAqIDEyIDE0IDIwMTggamVmZmVyeS5jaGVuCisgKiBbTU9MWTAwMzcyNjM1XSBbVk1PTFldIEw0L1RDTS9URlRMSUIvVkdTTSBwaGFzZTIgY2hlY2staW4KKyAqIAkKKyAqIAlbVEZUTElCXSBwaGFzZTIgY2hlY2staW4uCisgKgorICogMTAgMTkgMjAxNiByZW5odWFuZy5saXUKKyAqIFtNT0xZMDAyMDMyNjBdIFtURlRMSUJdIExvZ2dpbmcgbWVjaGFuaXNtIHJlZmluZW1lbnQKKyAqIDkzIFRGVExJQiByZS1hcmNoIDQKKyAqCisgKiAxMCAxNiAyMDE2IHJlbmh1YW5nLmxpdQorICogW01PTFkwMDIwNTAzNV1bVEZUTElCXSBNZW1vcnkgbWFuYWdlbWVudCBpbiBURlQgaW50ZXJuYWwKKyAqCisgKiAwOSAyNiAyMDE2IHZlcmEueWVoCisgKiBbTU9MWTAwMjA1MTE2XSBbNjI5M11bRVNNXVtURlRMSUJdIG5ldyBmZWF0dXJlL3JlLWFyY2ggaXRlbSBwb3J0aW5nIHRvIFVNT0xZQSB0cnVuaworICogW1RGVExJQl1bT0FdIFBTLkRFViBwb3J0aW5nIHRvIFVNT0xZQS5UcnVuay4KKyAqIAkxLiBURlRMSUIgVVQgZW5oYW5jZW1lbnQKKyAqIAkyLiBVTF9QRl9DSEVDSworICoKKyAqIDExIDE4IDIwMTMgam9lLmNoYW5nCisgKiBbTU9MWTAwMDQ1MDMzXSBbTU9MWV1bU01dW0VTTV1bVENNXVtURlRdW0N1c3RvbV0gTlJTUENBKE5JU1BDQSkgTmV0d29yayBSZXF1ZXN0ZWQvSW5pdGlhdGVkIFNlY29uZGFyeSBQRFAgQ29udGV4dCBBY3RpdmF0aW9uCisgKiBDaGVjay1pbiBURlRMSUIgcGFydAorICoKKyAqIDEwIDMxIDIwMTMgam9lLmNoYW5nCisgKiBbTU9MWTAwMDQ0NDIzXSBbTVQ2MjkwXSBOZXcgVEZUIEFUIGNvbW1hbmQgZGV2ZWxvcG1lbnQgbWVyZ2UgYmFjayB0byBNT0xZCisgKiBjaGVjayBpbiBURlRMSUIgcmVsYXRlZCBjaGFuZ2UKKyAqCisgKiAwNiAxMCAyMDEzIGpvZS5jaGFuZworICogW01PTFkwMDAyNTI4Nl0gW01UNzIwOF1bTlctVUUgU0lNXSBbVEMgMTAuOC4xXSBBVCtDR0NNT0QgRXJyb3IgZHVlIHRvIFRGVCBjb21wb3NlIGlzc3VlCisgKiBURlRMSUIgbW9kaWZpY2F0aW9uIGZvciBBVCtDR1RGVCBpbnRlcnByZXRhdGlvbiAoc3VwcG9ydCBib3RoIGRpZmZlcmVuY2Ugc2V0ICYgZnVsbCBzZXQpCisgKgorICogMDUgMjcgMjAxMyBqb2UuY2hhbmcKKyAqIFtNT0xZMDAwMjM3ODldIFtNVDYyOTBdW1RGVExJQl0gTmV3IGFyY2hpdGVjdHVyZSAmIEVNIHN1cHBvcnQKKyAqIFRGVExJQiBwYXJ0IGNoZWNrLWluCisgKgorICogMTEgMDcgMjAxMiBqb2UuY2hhbmcKKyAqIFtNT0xZMDAwMDUzMjJdIFRBVEFLQSBtZXJnZSB0byBNT0xZCisgKiBbSm9lXSBURlRMSUIgcGFydCBpcyBjaGVjayBpbiBkb25lLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgVEZUTElCX01TR0lEX0hfCisjZGVmaW5lIFRGVExJQl9NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisvKi0tLS0tLS0tLS0tLS0tLVRGVExJQl9NU0dfQ09ERV9CRUdJTi0tLS0tLS0tLS0tLS0tLSovCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9URlRMSUJfQ09ERV9CRUdJTiApCisKK01TR19JRF9URlRMSUJfTVNHX0JFR0lOID0gTVNHX0lEX1RGVExJQl9DT0RFX0JFR0lOLAorCisvLyNpZmRlZiBfX1RGVExJQl9VVF9fCisKK01TR19JRF9URlRMSUJfVEZUX0RFQ09ERSwKK01TR19JRF9URlRMSUJfVEZUX0VOQ09ERSwKK01TR19JRF9URlRMSUJfVEZUX1ZBTElEQVRFLAorTVNHX0lEX1RGVExJQl9URlRfRElSX0VYVFJBQ1QsCisKK01TR19JRF9URlRMSUJfU0VUX0FQUExJRURfVEZULAorTVNHX0lEX1RGVExJQl9DT01QT1NFX1RGVF9UT19OVywKK01TR19JRF9URlRMSUJfREVMX1RGVCwKK01TR19JRF9URlRMSUJfREVMX0FMTF9URlQsCisKK01TR19JRF9URlRMSUJfR0VUX1VTRVJfREVGSU5FRF9URlQsCitNU0dfSURfVEZUTElCX0dFVF9BUFBMSUVEX1RGVCwKK01TR19JRF9URlRMSUJfR0VUX0FQUExJRURfUVIsCitNU0dfSURfVEZUTElCX1NFVF9VU0VSX0RFRklORURfVEZULAorCitNU0dfSURfVEZUTElCX1NFVF9VU1JfREVMUEYsCitNU0dfSURfVEZUTElCX0dFVF9VU1JfREVMUEYsCitNU0dfSURfVEZUTElCX0NMRUFSX1VTUl9ERUxQRiwKKworTVNHX0lEX1RGVExJQl9TRVRfVVNSX0xOS1BGLAorTVNHX0lEX1RGVExJQl9HRVRfVVNSX0xOS1BGLAorTVNHX0lEX1RGVExJQl9DTEVBUl9VU1JfTE5LUEYsCisKK01TR19JRF9URlRMSUJfREVGSU5FX0VQU0JfQ09OVEVYVCwKK01TR19JRF9URlRMSUJfQUNUX0VQU0JfQ09OVEVYVCwKKworTVNHX0lEX1RGVExJQl9DT01QT1NFX0FORF9FTkNPREVfUVJTX1RPX05XLAorTVNHX0lEX1RGVExJQl9DT01QT1NFX0FORF9FTkNPREVfREVBQ1RfUVJfTElTVF9UT19OVywKK01TR19JRF9URlRMSUJfU0VUX0NJRF9GT1JfQVBQTElFRF9RUiwKK01TR19JRF9URlRMSUJfU0VUX0NJRF9GT1JfQVBQTElFRF9URlQsCitNU0dfSURfVEZUTElCX1FSU19QUkVDSEVDSywKK01TR19JRF9URlRMSUJfUVJfREVDT0RFLAorTVNHX0lEX1RGVExJQl9TRVRfQVBQTElFRF9RUiwKK01TR19JRF9URlRMSUJfUlFPU19TRVRfQVBQTElFRF9RUiwKK01TR19JRF9URlRMSUJfUVJfR0VUX1BGX0FDVF9MSVNULAorTVNHX0lEX1RGVExJQl9URlRfR0VUX1BGX0FDVF9MSVNULAorTVNHX0lEX1RGVExJQl9RRl9IQVNfQU5ZX1JVTEUsCitNU0dfSURfVEZUTElCX0RFTF9BUFBMSUVEX1RGVF9PUl9RUiwKK01TR19JRF9URlRMSUJfU0VUX0FQUExJRURfVEZUX0JZX0VCSSwKK01TR19JRF9URlRMSUJfVVBEQVRFX0RFQUNUX1FSX0xJU1RfVE9fREVMX1FGLAorTVNHX0lEX1RGVExJQl9HRU5FUklDX0FQSV9SRVEsCitNU0dfSURfVEZUTElCX1JRT1NfU0VUX1RJTUVSLAorTVNHX0lEX1RGVExJQl9JUEZDX1JRT1NfRU5BQkxFLAorTVNHX0lEX1RGVExJQl9VU0lSX0hBTkRMRSwKK01TR19JRF9URlRMSUJfUlFPU19HRVRfUlVMRSwKK01TR19JRF9URlRMSUJfQ09OU1RSVUNUX0NPTlRFWFRfRk9SX0RFRkFVTFRfQkVBUkVSX1dPX1RGVCwKKworLy8jZW5kaWYgLy8gX19URlRMSUJfVVRfXworCisKKy8vIC0tPiBFWEVDX1JFU1VMVCBNU0cKK01TR19JRF9URlRMSUJfVEZUX0RFQ09ERV9FWEVDX1JFU1VMVCwKK01TR19JRF9URlRMSUJfVEZUX0VOQ09ERV9FWEVDX1JFU1VMVCwKK01TR19JRF9URlRMSUJfUVJTX0VOQ09ERV9FWEVDX1JFU1VMVCwKKworTVNHX0lEX1RGVExJQl9TRVRfQVBQTElFRF9URlRfRVhFQ19SRVNVTFQsCitNU0dfSURfVEZUTElCX1NFVF9BUFBMSUVEX1FSX0VYRUNfUkVTVUxULAorTVNHX0lEX1RGVExJQl9SUU9TX1NFVF9BUFBMSUVEX1FSX0VYRUNfUkVTVUxULAorTVNHX0lEX1RGVExJQl9DT01QT1NFX1RGVF9UT19OV19FWEVDX1JFU1VMVCwKKworTVNHX0lEX1RGVExJQl9DVVJSRU5UX1RGVF9DT05URVhUX1NUQVRVUywKK01TR19JRF9URlRMSUJfUERVX1NFU1NJT05fSU5GTywKK01TR19JRF9URlRMSUJfQkVBUkVSX0lORk8sCisKK01TR19JRF9URlRMSUJfU0VUX1VTRVJfREVGSU5FRF9URlRfRVhFQ19SRVNVTFQsCisKK01TR19JRF9URlRMSUJfUEZfQU5EX01FTV9BTExPQ19VUERBVEVfU1RBVFVTLAorCitNU0dfSURfVEZUTElCX0dFTkVSSUNfRVhFQ19SRVNVTFQsCitNU0dfSURfVEZUTElCX1FGX0hBU19BTllfUlVMRV9FWEVDX1JFU1VMVCwKK01TR19JRF9URlRMSUJfVVBEQVRFX0RFQUNUX1FSX0xJU1RfVE9fREVMX1FGX0VYRUNfUkVTVUxULAorTVNHX0lEX1RGVExJQl9HRVRfQVBQTElFRF9URlRfUVJfRVhFQ19SRVNVTFQsCitNU0dfSURfVEZUTElCX0dFVF9ERUZJTkVEX1RGVF9RUl9FWEVDX1JFU1VMVCwKK01TR19JRF9URlRMSUJfU0VUX0NJRF9GT1JfQVBQTElFRF9RUl9FWEVDX1JFU1VMVCwKK01TR19JRF9URlRMSUJfU0VUX0NJRF9GT1JfQVBQTElFRF9URlRfRVhFQ19SRVNVTFQsCitNU0dfSURfVEZUTElCX1JRT1NfU0VUX1RJTUVSX0VYRUNfUkVTVUxULAorTVNHX0lEX1RGVExJQl9SUU9TX0FERF9SVUxFX0VYRUNfUkVTVUxULAorTVNHX0lEX1RGVExJQl9DT05TVFJVQ1RfQ09OVEVYVF9GT1JfREVGQVVMVF9CRUFSRVJfV09fVEZUX0VYRUNfUkVTVUxULAorLy8gPC0tIEVYRUNfUkVTVUxUIE1TRworCisKK01TR19JRF9URlRMSUJfUlFPU19BRERfUlVMRV9JTkQsCitNU0dfSURfVEZUTElCX1JRT1NfREVMX1JVTEVTX0lORCwKKworTVNHX0lEX1RGVExJQl9ERUJVR19USU1FUl9TVEFSVEVELAorTVNHX0lEX1RGVExJQl9ERUJVR19USU1FUl9TVE9QUEVELAorTVNHX0lEX1RGVExJQl9ERUJVR19USU1FUl9FWFBJUkVELAorCisvKiBTZXQgVEZUTElCIGNvbnRleHQgbWVzc2FnZSBpZCAqLworCitNU0dfSURfVEZUTElCX1NFVF9NVEtfQVBfU1RBVFVTX1JFUSwKKworTVNHX0lEX1RGVExJQl9FTkFCTEVfUFJJTV9MT0dfUkVRLAorCisvKiBFTSBtZXNzYWdlIGlkICovCisKK01TR19JRF9URlRMSUJfRU5BQkxFX0VNX0lORk9fUkVRLAorCitNU0dfSURfRU1fVEZUTElCX0FQUExJRURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0VCSTVfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJNl9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkk3X0FQUExJRURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0VCSThfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJOV9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxMF9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxMV9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxMl9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxM19BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxNF9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxNV9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorCisKK01TR19JRF9FTV9URlRMSUJfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQwX1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfQ0lEMV9VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0NJRDJfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQzX1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfQ0lENF9VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0NJRDVfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ2X1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfQ0lEN19VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0NJRDhfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ5X1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfQ0lEMTBfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQxMV9VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCisKKworTVNHX0lEX0VNX1RGVExJQl9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJNV9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJNl9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJN19OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJOF9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJOV9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJMTBfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0VCSTExX05XX0FTU0lHTkVEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxMl9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfRUJJMTNfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfRU1fVEZUTElCX0VCSTE0X05XX0FTU0lHTkVEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9FQkkxNV9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKKworCitNU0dfSURfRU1fVEZUTElCX1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQwX1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQxX1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQyX1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQzX1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ0X1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ1X1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ2X1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ3X1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ4X1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQ5X1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX0VNX1RGVExJQl9DSUQxMF9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9FTV9URlRMSUJfQ0lEMTFfVUVfQ09NUE9TRURfVEFEX1VQREFURV9JTkQsCisKKworTVNHX0lEX1RGVExJQl9BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9FQkk1X0FQUExJRURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTZfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJN19BUFBMSUVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9FQkk4X0FQUExJRURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTlfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTBfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTFfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTJfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTNfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTRfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTVfQVBQTElFRF9URlRfVVBEQVRFX0lORCwKKworCitNU0dfSURfVEZUTElCX1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEMF9VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0NJRDFfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9DSUQyX1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEM19VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0NJRDRfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9DSUQ1X1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lENl9VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0NJRDdfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9DSUQ4X1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEOV9VU0VSX0RFRklORURfVEZUX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0NJRDEwX1VTRVJfREVGSU5FRF9URlRfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEMTFfVVNFUl9ERUZJTkVEX1RGVF9VUERBVEVfSU5ELAorCisKK01TR19JRF9URlRMSUJfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTVfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTZfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTdfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSThfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTlfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTEwX05XX0FTU0lHTkVEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9FQkkxMV9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTJfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0VCSTEzX05XX0FTU0lHTkVEX1RBRF9VUERBVEVfSU5ELAorTVNHX0lEX1RGVExJQl9FQkkxNF9OV19BU1NJR05FRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfRUJJMTVfTldfQVNTSUdORURfVEFEX1VQREFURV9JTkQsCisKKworTVNHX0lEX1RGVExJQl9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEMF9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEMV9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEMl9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEM19VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lENF9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lENV9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lENl9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEN19VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEOF9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEOV9VRV9DT01QT1NFRF9UQURfVVBEQVRFX0lORCwKK01TR19JRF9URlRMSUJfQ0lEMTBfVUVfQ09NUE9TRURfVEFEX1VQREFURV9JTkQsCitNU0dfSURfVEZUTElCX0NJRDExX1VFX0NPTVBPU0VEX1RBRF9VUERBVEVfSU5ELAorCisKK01TR19JRF9URlRMSUJfTVNHX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9URlRMSUJfQ09ERV9UQUlMICkKKworCisjZW5kaWYgLyogVEZUTElCX01TR0lEX0hfICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC90bDFfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3RsMV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1NzBhZjAKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC90bDFfbXNnaWQuaApAQCAtMCwwICsxLDQ4NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA5CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICB0bDFfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICAgCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAkTG9nJAorICoKKyAqIDEwIDMxIDIwMTggeXVoaHdhbmcueXUKKyAqIFtNT0xZMDAzNjE0NzhdIFtHZW45N10gR2VtaW5pIENvbXBpbGUgT3B0aW9uIENsZWFuIFVwCisgKiAuCisgKgorICogMDggMTQgMjAxOCB5dWhod2FuZy55dQorICogW01PTFkwMDM0NTg2MF0gW1JTVkFTXSBHRU45Ny5ERVYgbWVyZ2UgdG8gVk1PTFkKKyAqIC4KKyAqCisgKiAwNiAyMCAyMDE4IGNydXplLnl1CisgKiBbTU9MWTAwMjg1Njk4XSBbOTMvOTUgcmUtYXJjaF1bVEwxXSBNb2RpZnkgdGwxIGNvZGUgYW5kIGZvbGRlciBmb3IgOTMvOTUgY28tY29kZWJhc2UKKyAqIAkKKyAqIAkuCisgKgorICogMTEgMTcgMjAxNyBjcnV6ZS55dQorICogW01PTFkwMDI4ODY3MV0gW01UNjI5NV1bTU1MMSBEQ0xDXSBEeW5hbWljIGNhY2hlIGxvY2sgY2VudHJhbCBjb250cm9sIGRldmVsb3BtZW50CisgKiAJCisgKiAJLgorICoKKyAqIDEwIDIyIDIwMTUgeXVubG9uZy5saQorICogW01PTFkwMDEzOTc1MF0gW01UNjc1NV1bVEREXQorICogLmFkZCB0bDFfbDFhZHRfZW50ZXJfdGRkX21vZGVfaW5kCisgKgorICogMDggMDQgMjAxNSB5dW5sb25nLmxpCisgKiBbTU9MWTAwMTM1MzEwXSBbVEs2MjkxXVtFMUVWQl0gW0FEVF1hZGQgYWR0IGZlYXR1cmUKKyAqIAkuYWRkIGFkdCBmZWF0dXJlCisgKgorICogMDQgMjkgMjAxNSByb25nLnlhbmcKKyAqIFtNT0xZMDAxMDkwNDddIFtVTU9MWV1bbmV3IGZlYXR1cmVdIFBpY2ggZmFsc2UgYWxhcm0gT3B0aW1pemF0aW9uCisgKiAuCisgKgorICogMDQgMTYgMjAxNSBjaHVhbnNoZW5nLnpoYW5nCisgKiBbTU9MWTAwMDk3NjIwXSBbVEs2MjkxXVtVQmluXSBUTDEgUGxhdGZvcm0gUGF0Y2gKKyAqIFRMMTogVWJpbiBQaGFzZTIgY29kZSBtZXJnZS4KKyAqCisgKiAwMSAwNyAyMDE1IG1hcmNvLnpoYW5nCisgKiBbTU9MWTAwMDg2OTUwXSBVTU9MWSBUTDEgTUFJTlRBSU4KKyAqIC4KKyAqCisgKiAwMSAwNSAyMDE1IG1hcmNvLnpoYW5nCisgKiBbTU9MWTAwMDg2OTUwXSBVTU9MWSBUTDEgTUFJTlRBSU4KKyAqIAkuCisgKgorICogMDEgMDUgMjAxNSBtYXJjby56aGFuZworICogW01PTFkwMDA4Njk1MF0gVU1PTFkgVEwxIE1BSU5UQUlOCisgKiAJLgorICoKKyAqIDEyIDI5IDIwMTQgbWFyY28uemhhbmcKKyAqIFtNT0xZMDAwODY5NTBdIFVNT0xZIFRMMSBNQUlOVEFJTgorICogCW1zZyBpZCBmcmVmaXguCisgKgorICogMDEgMjEgMjAxNCB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIFtNT0xZMDAwNTQ0NzVdIFNHTFRFIG9wdGlvbiByZW5hbWUKKyAqIC4KKyAqCisgKiAxMSAxMyAyMDEzIHNob3V6aHUuemhhbmcKKyAqIFtNT0xZMDAwNDUwNjldIFtUTDFDXVtWb2x1bnRlZXIgUGF0Y2hdIFN0YW5kYnkgTWVhc3VyZW1lbnQgRlNDUyBvcHQKKyAqIENoZWNrIGluIE1NREMgQmFuZDMgQmFuZDM5IGNvLWV4aXN0IGZlYXR1cmUuCisgKgorICogMDQgMDkgMjAxMyBhc3QwMDAyOQorICogW01PTFkwMDAxMzM3N10gW1RERDEyOF1bRVNMXVtNT0xZXWNoZWNrLWluIEVTTCBjb2RlLgorICogZm9yIEVTTAorICoKKyAqIDA0IDAxIDIwMTMgc2hvdXpodS56aGFuZworICogW01PTFkwMDAxMzI0OV0gTU0gVEwxIENvZGUgY2hlY2sgaW4KKyAqIFtUTDFdIE1lcmdlIGxhc3RlcyBXUjggKyBSOSArIE1NIGNvZGUgdG8gTU9MWS4uCisgKgorICogMDMgMDEgMjAxMyBzaHVuLmxpdQorICogW01PTFkwMDAxMTE4Ml0gTVQ2NTcyLzY1ODI6IFJGIFRYIHRlc3QgZmVhdHVyZSBjaGVjayBpbiBNT0xZIG1haW4KKyAqIEVNIHR4IHRlc3QgdGwxIHBhcnQuCisgKiAKKyAqIDA5IDI0IDIwMTIgeGlhb3l1bi5tYW8KKyAqIFtNT0xZMDAwMDQwNjldIFtNT0xZXVRERF9SOV9ERVYgUGF0Y2ggYmFjayB0byBNT0xZCisgKiBURERfUjlfREVWIHBhdGNoIGJhY2sgdG8gTU9MWQorICoKKyAqIDA1IDI0IDIwMTIgd2NwdXNlcl9pbnRlZ3JhdG9yCisgKiByZW1vdmVkIQorICogUWluZ2h1YSBZdSBjaGVjayBpbiBnbG9iYWwgZW51bSAoTVNHICYgU0FQKSBhdCBtb2RlbV9kZXYuCisgKgorICogMDUgMjQgMjAxMiB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIHJlbW92ZWQhCisgKiBRaW5naHVhIFl1IGNoZWNrIGluIGdsb2JhbCBlbnVtIChNU0cgJiBTQVApIGF0IG1vZGVtX2Rldi4KKyAqCisgKiAwNSAyNCAyMDEyIHdjcHVzZXJfaW50ZWdyYXRvcgorICogcmVtb3ZlZCEKKyAqIFFpbmdodWEgWXUgY2hlY2sgaW4gZ2xvYmFsIGVudW0gKE1TRyAmIFNBUCkgYXQgbW9kZW1fZGV2LgorICoKKyAqIDA1IDAzIDIwMTIgd2NwdXNlcl9pbnRlZ3JhdG9yCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDAzIDIxIDIwMTIgc2h1eWFuZy55aW4KKyAqIHJlbW92ZWQhCisgKiAuCisgKgorICogMDMgMDIgMjAxMiBzaHV5YW5nLnlpbgorICogcmVtb3ZlZCEKKyAqIC4KKyAqIChUTDEgU0FQKQorICoKKyAqIDEyIDA2IDIwMTEgc2h1eWFuZy55aW4KKyAqIHJlbW92ZWQhCisgKiAuCisgKgorICogMTEgMjEgMjAxMSBzaHV5YW5nLnlpbgorICogCisgKiByZW1vdmVkIQorICoKKyAqIDExIDE0IDIwMTEgc2hpLmRvbmcKKyAqIHJlbW92ZWQhCisgKiBUTDEgY29kZSBpbnRlcmZhY2UgZnRhIG1lcmdlIGluIE1BVUkuCisgKgorICogMDkgMDcgMjAxMSBzaHV5YW5nLnlpbgorICogCisgKiByZW1vdmVkIQorICogPHNhdmVkIGJ5IFBlcmZvcmNlPgorICoKKyAqIDA0IDE5IDIwMTEgeGlucWl1LndhbmcKKyAqIHJlbW92ZWQhCisgKiBtZXJnZSBjb2RlIGZyb20gZGFpbHkgTE9BRCB0byBNQVVJIDEwQS4KKyAqCisgKiAxMiAwMSAyMDEwIHBvcGNhZmEuc2hpaAorICogcmVtb3ZlZCEKKyAqIC4KKyAqCisgKiAxMSAwNCAyMDEwIHhpbnFpdS53YW5nCisgKiByZW1vdmVkIQorICogMS4gQWRkIHVsX21hY19ldmVudCB0byBjcGh5X2RjaF9zZXR1cC9tb2RpZnkvcmVsZWFzZV9yZXEKKyAqIDIuIEFkZCB0d28gdGlja3MgYW5kIHN0cnVjdHMgZm9yIG1hYy10bDEgaW50ZXJmYWNlLgorICogMy4gQWRkIHR3byBzaW11bGF0aW9uIHN0cnVjdHMgYWNjb3JkaW5nIHRvIE1BQydzIHJlcXVlc2V0LgorICoKKyAqIDExIDAzIDIwMTAgeGlucWl1LndhbmcKKyAqIHJlbW92ZWQhCisgKiAxLlNMQ0UtVEwxIFNBUCBNb2RpZnkgZm9yIFI3CisgKiAyLiBNQUMtVEwxIFNBUCBNb2RpZnkgZm9yIFVQQQorICoKKyAqIDA4IDI0IDIwMTAgcG9wY2FmYS5zaGloCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogMS5BZGQgTVNHX0lEX1BIWV9FTkRfRURDSF9UWF9JTkQKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIAorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogMS5BZGQgTVNHX0lEX0NQSFlfRURDSF9TRVRVUC9NT0RJRlkvUkVMRUFTRV9SRVEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIDEuRGVsZXRlIHByZS1kZWNsYXJlIGNoZWNrIG9mIF9fVU1UU19UREQxMjhfTU9ERV9fCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiAxLkFkZCBwcmUtZGVjbGFyZSBjaGVjayBvZiBfX1VNVFNfVEREMTI4X01PREVfXworICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiAKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIFJlbmFtZSB0aGUgbXNnIGNvZGUgYmVnaW4gZnJvbSBVTDEgdG8gVEwxCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiBSZW5hbWUgX19VTVRTX1RERDEyOF9SQVRfXyB0byBfX1VNVFNfVEREMTI4X01PREVfXworICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogYWRkIGxvZyBzZWN0aW9uIGZvciB0bDFpbnRlcmZhY2UgaGVhZGVyIGZpbGVzCisgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1RMMV9NU0dfSAorI2RlZmluZSBfVEwxX01TR19ICisKKyNpZiBkZWZpbmVkKF9fVU1UU19SQVRfXykgJiYgZGVmaW5lZChfX1VNVFNfVEREMTI4X01PREVfXykKKy8qIFJlcXVlc3QgZm9yIENQSFkgKi8KKyNpZmRlZiBfVGVzdF9IZHJfT25fUEMKK2VudW0geworI2VuZGlmCisKKyNpbmNsdWRlICJlbV9tc2dpZC5oIgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEwxX01TR19DT0RFX0JFR0lOICkKKy8qIFJFTEVBU0UgUkVRIHNob3VsZCBiZSBwdXQgYmVmb3JlIFNFVFVQL01PRElGWSBSRVEgKi8KKy8qIE1TR19JRF9URERfQ1BIWV9CQ0hfUkVMRUFTRV9SRVEgdG8gTVNHX0lEX1RERF9DUEhZX0RDSF9NT0RJRllfUkVRIG11c3QgYmUgY29udGludW91cyAqLworTVNHX0lEX1RERF9UTDFfTVNHX0NPREVfUkVRX0JFR0lOID0gTVNHX0lEX1RMMV9NU0dfQ09ERV9CRUdJTiwKK01TR19JRF9URERfQ1BIWV9CQ0hfUkVMRUFTRV9SRVEsCitNU0dfSURfVEREX0NQSFlfQkNIX01PRElGWV9SRVEsCitNU0dfSURfVEREX0NQSFlfQkNIX1NFVFVQX1JFUSwKK01TR19JRF9URERfQ1BIWV9QQ0hfUkVMRUFTRV9SRVEsCitNU0dfSURfVEREX0NQSFlfUENIX1NFVFVQX1JFUSwKK01TR19JRF9URERfQ1BIWV9QQ0hfTU9ESUZZX1JFUSwKK01TR19JRF9URERfQ1BIWV9GQUNIX1JFTEVBU0VfUkVRLAorTVNHX0lEX1RERF9DUEhZX0ZBQ0hfU0VUVVBfUkVRLAorLypNU0dfSURfQ1BIWV9GQUNIX01PRElGWV9SRVEsKi8gICAgLypNU0dfSURfQ1BIWV9GQUNIX01PRElGWV9SRVEgaXMgbm90IHVzZWQgaW4gVEREMTI4ICovCitNU0dfSURfVEREX0NQSFlfUkFDSF9SRUxFQVNFX1JFUSwKK01TR19JRF9URERfQ1BIWV9SQUNIX1NFVFVQX1JFUSwKK01TR19JRF9URERfQ1BIWV9EQ0hfUkVMRUFTRV9SRVEsCitNU0dfSURfVEREX0NQSFlfRENIX1NFVFVQX1JFUSwKK01TR19JRF9URERfQ1BIWV9EQ0hfTU9ESUZZX1JFUSwKK01TR19JRF9URERfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9SRVEsCitNU0dfSURfVEREX0NQSFlfRlJFUVVFTkNZX1NDQU5fQ09OVElOVUVfUkVRLAorTVNHX0lEX1RERF9DUEhZX0ZSRVFVRU5DWV9TQ0FOX1NVU1BFTkRfUkVRLAorLypNU0dfSURfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9TVE9QX1JFUSwqLyAgLypNU0dfSURfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9TVE9QX1JFUSBpcyBub3QgdXNlZCBpbiBUREQxMjggKi8KK01TR19JRF9URERfQ1BIWV9SU1NJX1NOSUZGRVJfU1RBUlRfUkVRLCAgICAgICAgICAvKmtlZXAgdGhlaXIgc3BhY2UgZm9yIGZ1dHVyZSB1c2UgKi8KK01TR19JRF9URERfQ1BIWV9SU1NJX1NOSUZGRVJfU1RPUF9SRVEsICAgICAgICAgIC8qa2VlcCB0aGVpciBzcGFjZSBmb3IgZnV0dXJlIHVzZSAqLworTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0NPTkZJR19DRUxMX1JFUSwKKworTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0lOVEVSTkFMX0NPTkZJR19SRVEsCitNU0dfSURfVEREX0NQSFlfTUVBU1VSRU1FTlRfSU5URVJOQUxfU1RPUF9SRVEsCitNU0dfSURfVEREX0NQSFlfTUVBU1VSRU1FTlRfSU5URVJOQUxfUkVTVUxUX1JFUSwKK01TR19JRF9URERfQ1BIWV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9SRVEsCitNU0dfSURfVEREX0NQSFlfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfU1RPUF9SRVEsCitNU0dfSURfVEREX0NQSFlfUkVTRVRfUkVRLAorTVNHX0lEX1RERF9DUEhZX0RVUExFWF9NT0RFX0NIQU5HRV9SRVEsCitNU0dfSURfVEREX0NQSFlfUkZfT05fUkVRLAorTVNHX0lEX1RERF9DUEhZX1JGX09GRl9SRVEsCitNU0dfSURfVEREX0NQSFlfU0VUX0FDVElWRV9SQVRfUkVRLAorCitNU0dfSURfVEREX0NQSFlfSFNEU0NIX1NFVFVQX1JFUSwKK01TR19JRF9URERfQ1BIWV9IU0RTQ0hfTU9ESUZZX1JFUSwKK01TR19JRF9URERfQ1BIWV9IU0RTQ0hfUkVMRUFTRV9SRVEsCisKKyNpZmRlZiBfX0hTVVBBX1NVUFBPUlRfXworTVNHX0lEX1RERF9DUEhZX0VEQ0hfU0VUVVBfUkVRLAorTVNHX0lEX1RERF9DUEhZX0VEQ0hfTU9ESUZZX1JFUSwKK01TR19JRF9URERfQ1BIWV9FRENIX1JFTEVBU0VfUkVRLAorI2lmZGVmIF9fU0lNVUxBVElPTl9QU19UTDFfQk9USF9fCitNU0dfSURfVEREX0NQSFlfU0lNVUxBVEVfRFBBX09OTFlfU1VCX0ZSQU1FX0VOVFJZX1JFUSwgLypCeSBzdWItZnJhbWUuIHRsMWRhdGFfYXN0X21zZ2lkLmggaGFzIHRoZSBzYW1lIGRlZiBmb3IgZHNwIHJlc3AgbG9nZ2luZy4qLworTVNHX0lEX1RERF9DUEhZX1NJTVVMQVRFX1VQQV9PTkxZX1NVQl9GUkFNRV9FTlRSWV9SRVEsIC8qQnkgc3ViLWZyYW1lKi8KKyNlbmRpZiAvKl9fU0lNVUxBVElPTl9QU19UTDFfQk9USF9fKi8KKyNlbmRpZgorCisvLyNpZiBkZWZpbmVkKCBfX1VNVFNfUjlfXyApICYmIGRlZmluZWQgKCBfX0FTVDMwMDJfXyApCitNU0dfSURfVEREX0NQSFlfTUVBU1VSRU1FTlRfQ09ORklHX0RNT19SRVEsCisvLyNlbmRpZgorTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0NPTkZJR19JRExFX0lOVEVSVkFMX1JFUSwJLypJbnRlcmZhY2UgZm9yIGlkbGUgaW50ZXJ2YWwqLworCitNU0dfSURfVEREX0NQSFlfTVNHX0NPTlRBSU5FUl9SRVEsCitNU0dfSURfVEREX0NQSFlfQUJPUlRfUkVRLAorTVNHX0lEX1RERF9DUEhZX0FCT1JUX0JDSF9TRVRVUF9SRVEsCisKKworLyogUmVxdWVzdCBmcm9tIFBIWSAqLworTVNHX0lEX1RERF9QSFlfUkFDSF9EQVRBX1JFUSwKKworTVNHX0lEX1RERF9SU1ZBU19UTDFfU1VTUEVORF9SRVEsCitNU0dfSURfVEREX1JTVkFTX1RMMV9SRVNVTUVfUkVRLAorCitNU0dfSURfVEREX1BIWV9BQ0NFU1NfUkVRLAorTVNHX0lEX0w0Q1RMMV9FTV9UU1RfQ09OVFJPTF9SRVEsCisKK01TR19JRF9URERfVEwxX01TR19DT0RFX1JFUV9FTkQsCisKKy8qTVNHX0lEX1VMMUNfVUwxQV9VUkVQT1JULAorTVNHX0lEX1VMMURfVUwxQ19VUkVQT1JULCovCisKKy8qIENvbmZpcm0gJiBJbmRpY2F0aW9uIGZvciBDUEhZICovCitNU0dfSURfVEREX0NQSFlfQkNIX1NFVFVQX0NORiwKK01TR19JRF9URERfQ1BIWV9CQ0hfU0VUVVBfSU5ELAorTVNHX0lEX1RERF9DUEhZX0JDSF9NT0RJRllfQ05GLAorTVNHX0lEX1RERF9DUEhZX0JDSF9NT0RJRllfSU5ELAorTVNHX0lEX1RERF9DUEhZX0JDSF9SRUxFQVNFX0NORiwKK01TR19JRF9URERfQ1BIWV9CQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfVEREX0NQSFlfU0ZOX0lORCwKKworCitNU0dfSURfVEREX0NQSFlfVDMxMl9FWFBJUllfSU5ELAorTVNHX0lEX1RERF9DUEhZX0RMX0lOSVRfU1lOQ19JTkQsCitNU0dfSURfVEREX0NQSFlfUkxfRkFJTFVSRV9JTkQsCisKK01TR19JRF9URERfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9DTkYsCitNU0dfSURfVEREX0NQSFlfRlJFUVVFTkNZX1NDQU5fSU5ELAorTVNHX0lEX1RERF9DUEhZX0ZSRVFVRU5DWV9TQ0FOX0NPTlRJTlVFX0NORiwKK01TR19JRF9URERfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9TVVNQRU5EX0NORiwKK01TR19JRF9URERfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9TVVNQRU5EX0lORCwKKworTVNHX0lEX1RERF9DUEhZX1JTU0lfU05JRkZFUl9TVEFSVF9DTkYsIAorTVNHX0lEX1RERF9DUEhZX1JTU0lfU05JRkZFUl9TVE9QX0NORiwgIAorTVNHX0lEX1RERF9DUEhZX1JTU0lfU05JRkZFUl9TSUdOQUxfQVBQRUFSX0lORCwgIAorTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0NPTkZJR19DRUxMX0NORiwKK01TR19JRF9URERfQ1BIWV9NRUFTVVJFTUVOVF9DRUxMX0lORCwKKworTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0lOVEVSTkFMX0NPTkZJR19DTkYsCitNU0dfSURfVEREX0NQSFlfTUVBU1VSRU1FTlRfSU5URVJOQUxfRVZFTlRfSU5ELAorTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0lOVEVSTkFMX1BFUklPRElDX0lORCwKK01TR19JRF9URERfQ1BIWV9NRUFTVVJFTUVOVF9JTlRFUk5BTF9SRVNVTFRfSU5ELAorTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0lOVEVSTkFMX1NUT1BfQ05GLAorCitNU0dfSURfVEREX0NQSFlfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfSU5ELAorTVNHX0lEX1RERF9DUEhZX1NQRUNJRklDX0NFTExfU0VBUkNIX1NUT1BfSU5ELAorTVNHX0lEX1RERF9DUEhZX1JFU0VUX0NORiwKK01TR19JRF9URERfQ1BIWV9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLAorTVNHX0lEX1RERF9DUEhZX1JGX09OX0NORiwKK01TR19JRF9URERfQ1BIWV9SRl9PRkZfQ05GLAorTVNHX0lEX1RERF9DUEhZX1NFVF9BQ1RJVkVfUkFUX0NORiwKKworTVNHX0lEX1RERF9DUEhZX01TR19DT05UQUlORVJfQ05GLAorTVNHX0lEX1RERF9DUEhZX01TR19DT05UQUlORVJfSU5ELAorTVNHX0lEX1RERF9DUEhZX0FCT1JUX0NORiwKK01TR19JRF9URERfQ1BIWV9UWF9TVEFUVVNfSU5ELAorI2lmZGVmIF9fVEREX0RNX0dBUF9PUFRJTUlaQVRJT05fXworTVNHX0lEX1RERF9DUEhZX0dTTV9HQVBfU1RBVFVTX0lORCwKKyNlbmRpZgorLyogQ29uZmlybSAmIEluZGljYXRpb24gZm9yIFBIWSAqLworTVNHX0lEX1RERF9QSFlfUENIX1NFVFVQX0lORCwKKy8qTVNHX0lEX1BIWV9QQ0hfTU9ESUZZX0lORCwqLyAgLyogTVNHX0lEX1BIWV9QQ0hfTU9ESUZZX0lORCBpcyBub3QgdXNlZCBpbiBUREQxMjggKi8KK01TR19JRF9URERfUEhZX1BDSF9SRUxFQVNFX0lORCwKK01TR19JRF9URERfUEhZX0ZBQ0hfU0VUVVBfSU5ELAorLypNU0dfSURfUEhZX0ZBQ0hfTU9ESUZZX0lORCwqLyAvKiBNU0dfSURfUEhZX0ZBQ0hfTU9ESUZZX0lORCBpcyBub3QgdXNlZCBpbiBUREQxMjggKi8KK01TR19JRF9URERfUEhZX0ZBQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfVEREX1BIWV9SQUNIX1NFVFVQX0lORCwKK01TR19JRF9URERfUEhZX1JBQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfVEREX1BIWV9EQ0hfU0VUVVBfSU5ELAorTVNHX0lEX1RERF9QSFlfRENIX01PRElGWV9JTkQsCitNU0dfSURfVEREX1BIWV9EQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfVEREX1BIWV9DT05GSUdfQUJPUlRfSU5ELAorTVNHX0lEX1RERF9QSFlfRExfSU5JVF9TWU5DX0lORCwKK01TR19JRF9URERfUEhZX0JDSF9EQVRBX0lORCwKKy8qc3BlY2lhbGx5IGZvciBwY2ggZGF0YSBmcm9tIFBIWSB0byBMVU1BQyovCitNU0dfSURfVEREX1BIWV9QQ0hfREFUQV9JTkQsIAorTVNHX0lEX1RERF9QSFlfREFUQV9JTkQsCitNU0dfSURfVEREX1BIWV9BQ0NFU1NfSU5ELAorTVNHX0lEX1RERF9QSFlfUE9TVF9UWF9JTkQsCitNU0dfSURfVEREX1BIWV9FTkRfRENIX1RYX0lORCwKK01TR19JRF9URERfUEhZX0hTRFNDSF9EQVRBX0lORCwKKworI2lmZGVmIF9fSFNVUEFfU1VQUE9SVF9fCitNU0dfSURfVEREX1BIWV9FTkRfRURDSF9UWF9JTkQsCisjZW5kaWYKKworTVNHX0lEX1RERF9DUEhZX01FQVNVUkVNRU5UX0NPTkZJR19JRExFX0lOVEVSVkFMX0NORiwJLypJbnRlcmZhY2UgZm9yIGlkbGUgaW50ZXJ2YWwqLworCisvKk5ldy1BZGRlZCBtZXNzYWdlIGZvciBIU1BBKyAqLworCisvKk1TR19JRF9DUEhZX1VMU1lOQ19PUkRFUl9JTkQsKi8KK01TR19JRF9URERfUEhZX0VSVUNDSF9BQ0NFU1NfSU5ELAorTVNHX0lEX1RERF9QSFlfQ0VEQ0hfU0VUVVBfSU5ELAorTVNHX0lEX1RERF9QSFlfQ0VEQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfVEREX1BIWV9DRURDSF9NT0RJRllfSU5ELAorTVNHX0lEX1RERF9QSFlfQ0VEQ0hfVEVSTUlOQVRJT05fSU5ELAorTVNHX0lEX1RERF9QSFlfQ0VEQ0hfVEVSTUlOQVRJT05fUkVRLAorCisvKk5ldy1BZGRlZCBtZXNzYWdlIGZvciBIU1BBKyAqLworCisvKj09PT09PT09PT0gVU1BQyBVVCBTSU1VTEFURSBNRVNTQUdFICAgPT09PT09PT09PSovCisvLyNpZmRlZiAgX19NTlRfVVRfVU1BQ19BTE9ORV9XSVRIT1VUX0wxX18gIC8qIFVNQUMgVVQgKi8KK01TR19JRF9URERfUEhZX1NJTVVMQVRFX0RDSF9VTF9DQ1RSQ0hfVEFTSywgCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0NUUkNIX0hJU1IsCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0NUUkNIX0hJU1JfUlNQLAorCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0NUUkNIX0xJU1IsCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0NUUkNIX0xJU1JfUlNQLAorCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0FMTEJBQ0tfQ0NUUkNILCAKK01TR19JRF9URERfUEhZX1NJTVVMQVRFX0RDSF9VTF9DQUxMQkFDS19DQ1RSQ0hfUlNQLAorTVNHX0lEX1RERF9QSFlfU0lNVUxBVEVfRENIX1VMX0NBTExCQUNLX1BPV0VSLAorTVNHX0lEX1RERF9QSFlfU0lNVUxBVEVfRU5EX0RDSF9UWF9JTkQsIAorCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9VTUFDX1VMX0RDSF9USUNLLAorTVNHX0lEX1RERF9QSFlfU0lNVUxBVEVfVU1BQ19VTF9EQ0hfVElDS19FTkQsCisjaWZkZWYgX19IU1VQQV9TVVBQT1JUX18KK01TR19JRF9URERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVElDS18xLAorTVNHX0lEX1RERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9USUNLXzFfUlNQLAorTVNHX0lEX1RERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9USUNLXzIsCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1RJQ0tfMl9SU1AsCitNU0dfSURfVEREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1RJQ0tfMywKK01TR19JRF9URERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVElDS180LAorTVNHX0lEX1RERF9QSFlfU0lNVUxBVEVfSU5WT0tFX1VMX0lORk9STV9FRENIX01BQywKKy8vTVNHX0lEX1BIWV9TSU1VTEFURV9FTkRfRURDSF9UWF9JTkQsCisjZW5kaWYKKy8vI2VuZGlmICAvKiBfX01OVF9VVF9VTUFDX0FMT05FX1dJVEhPVVRfTDFfXyAqLworLyo9PT09PT09PT09IEVORCBVTUFDIFVUIFNJTVVMQVRFIE1FU1NBR0UgICA9PT09PT09PT09Ki8KKworTVNHX0lEX1RERF9DUEhZX01TR19DT05UQUlORVJfUkVRX1VOUEFDSywKK01TR19JRF9URERfQ1BIWV9DSEFOTkVMX1FVQUxJVFlfU1RBVFVTX0lORCwKKworTVNHX0lEX1RERF9SU1ZBU19UTDFfU1VTUEVORF9DTkYsCitNU0dfSURfVEREX1JTVkFTX1RMMV9SRVNVTUVfQ05GLAorCisKK01TR19JRF9URERfQ1BIWV9DSEFOTkVMX1BSSU9SSVRZX0FESlVTVE1FTlRfUkVRLAorTVNHX0lEX1RERF9VUlJfVEwxX1NXSVRDSF9HRU1JTklfTU9ERV9SRVEsCitNU0dfSURfVEREX1JTVkFTX1RMMV9WSVJUVUFMX1JFU1VNRV9SRVEsCitNU0dfSURfVEREX1JTVkFTX1RMMV9WSVJUVUFMX1JFU1VNRV9DTkYsCitNU0dfSURfVEREX1BIWV9DSEFOTkVMX1BSSU9SSVRZX0FESlVTVE1FTlRfUkVRLAorCisKKy8vbW92ZSB0aGlzIG1lYXNzYWdlIHRvIEw0CisvLyNpZiAxLy9fX1RERF9UWF9QV1JfUkVEVUNFX18KKy8vTVNHX0lEX1RERF9UTDFfVU1UU19NQVhfVFhfUFdSX1JFRF9SRVEsCisvLyNlbmRpZgorCisvKkFEVCBUZXN0IHN0YXJ0Ki8KKyNpZiBkZWZpbmVkIChfX01NTDFfQURUX0VOQUJMRV9fKQorTVNHX0lEX1RERF9UTDFfTDFBRFRfRU5URVJfQ09OTkVDVEVEX1JFUSwKK01TR19JRF9URERfVEwxX0wxQURUX0VOVEVSX0NPTk5FQ1RFRF9DTkYsCisKK01TR19JRF9URERfVEwxX0wxQURUX0xFQVZFX0NPTk5FQ1RFRF9SRVEsCitNU0dfSURfVEREX1RMMV9MMUFEVF9MRUFWRV9DT05ORUNURURfQ05GLAorCitNU0dfSURfVEREX1RMMV9MMUFEVF9FTlRFUl9URERfTU9ERV9SRVEsCitNU0dfSURfVEREX1RMMV9MMUFEVF9FTlRFUl9URERfTU9ERV9DTkYsCitNU0dfSURfVEREX1RMMV9MMUFEVF9FTlRFUl9URERfTU9ERV9JTkQsCisjZW5kaWYKKy8qQURUIFRlc3QgZW5kKi8KKyNpZiBkZWZpbmVkKF9fRFlOQU1JQ19DQUNIRV9MT0NLX0NFTlRSQUxfQ09OVFJPTF9TVVBQT1JUX18pCitNU0dfSURfVEwxX0RDTENfTE9DS19VTkxPQ0tfSU5ELAorI2VuZGlmCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVEwxX01TR19DT0RFX1RBSUwgKQorCisjaWZkZWYgX1Rlc3RfSGRyX09uX1BDCit9OworI2VuZGlmCisjZW5kaWYKKworI2VuZGlmICAvL19UTDFfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3RsMWRhdGFfYXN0X21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC90bDFkYXRhX2FzdF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MTU4NDAKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC90bDFkYXRhX2FzdF9tc2dpZC5oCkBAIC0wLDAgKzEsNDUwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDkKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgIHRsMWRhdGFfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICAgCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAkTG9nJAorICoKKyAqIDExIDIwIDIwMTkgeGlhb2NoaS56aGFuZworICogW01PTFkwMDQ1Njk5Nl0gVEFTINDo0qrU9rzTU07K/cG/CisgKiAJCisgKiAJLgorICoKKyAqIDEwIDMxIDIwMTggeGlhb2NoaS56aGFuZworICogW01PTFkwMDM2MTQ3OF0gW0dlbjk3XSBHZW1pbmkgQ29tcGlsZSBPcHRpb24gQ2xlYW4gVXAKKyAqIAkKKyAqIAkuCisgKgorICogMDEgMjEgMjAxNiBxaWFubGkubGkKKyAqIFtNT0xZMDAxNDMzNjddIMfrxsC5wMrWu/q2y82ouf3E2tbDuaSzzMSjyr2y6b+0obDLq8zsz9/H0Lu717TMrKGxtcTQ6Mfzv8nQ0NDUCisgKiAJCisgKiAJLgorICoKKyAqIDAxIDE0IDIwMTYgeWFuaGFpLnh1YW4KKyAqIFtNT0xZMDAxNTk3MzRdIFRYIHBvd2VyIGRldGVjdG9yIHN1cHBvcnQgb24gSmFkZQorICogLgorICoKKyAqIDEwIDE4IDIwMTUgY2h1YW5zaGVuZy56aGFuZworICogW01PTFkwMDE0NTY3N10gWzkxK11bVEwxXSBQbGF0Zm9ybSBwYXRjaCBjaGVjayBpbgorICogKDEpIExSMTEgdW50aWwgcGF0Y2ggQ0wxNzQ1MzA5IG1lcmdlIHRvIFVNT0xZOworICogKDIpIDkxKyBmb3IgTUlQUzogbDFjb3JlLT5fX1NNUF9BUkNIX18gbW9kaWZ5LCBhbmQgYnVpbGQgZXJyb3IgY2xyOworICogKDMpIFRMMSBJUlEgY29kZSBwYXJ0IG1vZGlmeQorICoKKyAqIDA3IDI4IDIwMTUgY2h1YW5zaGVuZy56aGFuZworICogW01PTFkwMDEzMjc3MV0gW01UNjc1NV1bVEREM0ddW1NMVF0gRGV2CisgKiBKYWRlOiBURFNDRE1BIFNMVCBjb2RlIGNoZWNrIGluLgorICoKKyAqIDA3IDEzIDIwMTUgcWlhbmxpLmxpCisgKiBbTU9MWTAwMTE0MDkxXSBbTVQ2NzU1XVtCUklOR1VQX0ZJUlNUQ0FMTF1bVEFTIGZlYXR1cmVdIEFkZCBURERfVEFTIGZlYXR1cmUKKyAqIAkuCisgKgorICogMDQgMTcgMjAxNSBtYXJjby56aGFuZworICogW01PTFkwMDA5NjA1M10gW1RERF0gUnggcmVwb3J0IGZvciB0ZXN0IChuZWVkIHR1cm4gb24gX19URFNfUlhfVEVTVF9TVVBQT1JUX18pCisgKiAJLgorICoKKyAqIDAxIDA1IDIwMTUgbWFyY28uemhhbmcKKyAqIFtNT0xZMDAwODY5NTBdIFVNT0xZIFRMMSBNQUlOVEFJTgorICogCS4KKyAqCisgKiAxMiAyOSAyMDE0IG1hcmNvLnpoYW5nCisgKiBbTU9MWTAwMDg2OTUwXSBVTU9MWSBUTDEgTUFJTlRBSU4KKyAqIAltc2cgaWQgZnJlZml4LgorICoKKyAqIDEyIDE3IDIwMTMgc2hvdXpodS56aGFuZworICogW01PTFkwMDA1MDY1M10gW1RMMV1bQ2hlY2sgaW5dUmVtb3ZlIFRMMSBNQ1UgbmVlZGxlc3MgY29tcGlsZSBvcHRpb24KKyAqIC4KKyAqCisgKiAwOSAxNyAyMDEzIHNob3V6aHUuemhhbmcKKyAqIFtNT0xZMDAwMzgxOTldIFtDaGVjayBpbl1bUmVtb3ZlIENvbXBpbGUgT3B0aW9uXVJlbW92ZSBfX1VNVFNfVEREMTI4X1NOSUZGRVJfXworICogcmVtb3ZlIFNuaWZmZXIgQ29tcGlsZSBvcHRpb24uCisgKgorICogMDcgMTYgMjAxMyB4aWFveXVuLm1hbworICogW01PTFkwMDAyODc0Nl0gW01UNjI5MEUxXVtNTSBMTDFdW0dUTF0gUkYgY29uZmxpY3Qgd2hlbiA0RyBnaXZlcyBnYXAgcGF0dGVybiB0byBkbyBURFMgTUVBUworICogLgorICoKKyAqIDA1IDMwIDIwMTMgYXN0MDAwMzMKKyAqIFtNT0xZMDAwMjQyODVdIFtNVDY1NzJdW0NNQ0MgQ2FzZSAgRlRdW0xDQV9HRU1JTkldW0JlaWppbmddW1JlZ3Jlc3Npb24tN3RoIHRpbWVdW0M2LjMgv6iy2zHLq1BEULrNv6iy2zLT79L0sqK3oiBdOHRoXzExOjM4OjM0X9TdyrHO3reovdPNqF/I/dSqzvfHxQorICogLgorICoKKyAqIDA1IDE1IDIwMTMgeGlhb3l1bi5tYW8KKyAqIFtNT0xZMDAwMDc3MzddIFtXUjhdW1VNQUNdM0cgc3BlZWNoIFVMIGRlbGF5IGltcHJvdmUgcGhhc2UgMgorICogLnJlbW92ZSBfX1BSRVBBUkVfVFhfQUhFQURfXworICoKKyAqIDA0IDI2IDIwMTMgeGlhb3l1bi5tYW8KKyAqIFtNT0xZMDAwMjA5MTVdIENoZWNrIGluIEF1dG9ub21vdXMgZ2FwIGNvZGUKKyAqIC4KKyAqCisgKiAwNCAwOSAyMDEzIGFzdDAwMDI5CisgKiBbTU9MWTAwMDEzMzc3XSBbVEREMTI4XVtFU0xdW01PTFldY2hlY2staW4gRVNMIGNvZGUuCisgKiBmb3IgRVNMCisgKgorICogMDQgMDEgMjAxMyBzaG91emh1LnpoYW5nCisgKiBbTU9MWTAwMDEzMjQ5XSBNTSBUTDEgQ29kZSBjaGVjayBpbgorICogW1RMMV0gTWVyZ2UgbGFzdGVzIFdSOCArIFI5ICsgTU0gY29kZSB0byBNT0xZLi4KKyAqCisgKiAwMyAwMSAyMDEzIHNodW4ubGl1CisgKiBbTU9MWTAwMDExMTgyXSBNVDY1NzIvNjU4MjogUkYgVFggdGVzdCBmZWF0dXJlIGNoZWNrIGluIE1PTFkgbWFpbgorICogRU0gdHggdGVzdCB0bDEgcGFydC4KKyAqIAorICogMDkgMjQgMjAxMiB4aWFveXVuLm1hbworICogW01PTFkwMDAwNDA2OV0gW01PTFldVEREX1I5X0RFViBQYXRjaCBiYWNrIHRvIE1PTFkKKyAqIFRERF9SOV9ERVYgcGF0Y2ggYmFjayB0byBNT0xZCisgKiAKKyAqIDA5IDExIDIwMTIgeGlhb3l1bi5tYW8KKyAqIFtNT0xZMDAwMDI3NjZdIHdhcm5pbmcgcmVtb3ZhbAorICogLgorICogcmVtb3ZlIF9fVU1BQ19EQ0hfTElTUl9fCisgKgorICogMDUgMjQgMjAxMiB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIHJlbW92ZWQhCisgKiBRaW5naHVhIFl1IGNoZWNrIGluIGdsb2JhbCBlbnVtIChNU0cgJiBTQVApIGF0IG1vZGVtX2Rldi4KKyAqCisgKiAwNSAyNCAyMDEyIHdjcHVzZXJfaW50ZWdyYXRvcgorICogcmVtb3ZlZCEKKyAqIFFpbmdodWEgWXUgY2hlY2sgaW4gZ2xvYmFsIGVudW0gKE1TRyAmIFNBUCkgYXQgbW9kZW1fZGV2LgorICoKKyAqIDA1IDI0IDIwMTIgd2NwdXNlcl9pbnRlZ3JhdG9yCisgKiByZW1vdmVkIQorICogUWluZ2h1YSBZdSBjaGVjayBpbiBnbG9iYWwgZW51bSAoTVNHICYgU0FQKSBhdCBtb2RlbV9kZXYuCisgKgorICogMDUgMDMgMjAxMiB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIHJlbW92ZWQhCisgKiAuCisgKgorICogMDMgMDkgMjAxMiBzaG91emh1LnpoYW5nCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDAyIDI0IDIwMTIgc2hvdXpodS56aGFuZworICogcmVtb3ZlZCEKKyAqIENoZWNrIGluIFRMMSBTbmlmZmVyIGNvZGUgdG8gTUFVSS4KKyAqCisgKiAxMiAyNiAyMDExIHNodXlhbmcueWluCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDExIDE0IDIwMTEgc2hpLmRvbmcKKyAqIHJlbW92ZWQhCisgKiBUTDEgY29kZSBpbnRlcmZhY2UgZnRhIG1lcmdlIGluIE1BVUkuCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiAKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIAorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiBSZW5hbWUgdGhlIG1zZyBjb2RlIGJlZ2luIGZyb20gVUwxIHRvIFRMMQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogUmVuYW1lIF9fVU1UU19UREQxMjhfUkFUX18gdG8gX19VTVRTX1RERDEyOF9NT0RFX18KKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIGFkZCBsb2cgc2VjdGlvbiBmb3IgdGwxaW50ZXJmYWNlIGhlYWRlciBmaWxlcworICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9UTDFEQVRBX01TR19ICisjZGVmaW5lIF9UTDFEQVRBX01TR19ICisKKy8qIExJU1IgLT4gVEFTSyAqLworCisjaWZkZWYgX19CVUlMRF9ET01fXworZW51bXsKKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEwxREFUQV9BU1RfTVNHX0NPREVfQkVHSU4gKQorTVNHX0lEX1RMMURBVEFfQVNUX1JFU0VUX0NORiA9IE1TR19JRF9UTDFEQVRBX0FTVF9NU0dfQ09ERV9CRUdJTiwKKworLy9SRiBDYWxpYnJhdGlvbiBiZWdpbgorTVNHX0lEX1RMMURBVEFfQVNUX1JGQ0FMX1JFU0VUX0NORiwKK01TR19JRF9UTDFEQVRBX0FTVF9SRkNBTF9DU19JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfUkZDQUxfQUJCUkVHX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9GSENfRklOSVNIX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9PVENBTF9JTkQsCisvL1JGIENhbGlicmF0aW9uIGVuZAorTVNHX0lEX1RMMURBVEFfQVNUX1NFVF9BQ1RJVkVfUkFUX0NORiwKKy8vU3VzcGVuZCBtb2RlIHJlbGF0ZWQgbXNnIGJlZ2luCitNU0dfSURfVEwxREFUQV9BU1RfU1VTUEVORF9ET05FX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9SRVNVTUVfRE9ORV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NZTkNfU1VTUEVORF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfUkZfU1VTUEVORF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfUkFUX1NVU1BFTkRfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0NPTlRBSU5FUl9TVVNQRU5EX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9GU19TVVNQRU5EX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9TTklGRkVSX1NVU1BFTkRfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0JDSF9TVVNQRU5EX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9QQ0hfU1VTUEVORF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfTUVBU19TVVNQRU5EX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9CQ0hfQ1NfU1VTUEVORF9JTkQsCisvL1N1c3BlbmQgbW9kZSByZWxhdGVkIG1zZyBlbmQKK01TR19JRF9UTDFEQVRBX0FTVF9GUkVRVUVOQ1lfU0NBTl9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfRlJFUVVFTkNZX1NDQU5fU1VTUEVORF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfQ0VMTF9TRUFSQ0hfSU5ELAorCisvLyBTbmlmZmVyIGJlZ2luCitNU0dfSURfVEwxREFUQV9BU1RfU05JRkZFUl9USU1FT1VUX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9TTklGRkVSX1NFVFVQX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9TTklGRkVSX05PX1NJR05BTF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfU05JRkZFUl9TSUdOQUxfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX1NOSUZGRVJfUkVMRUFTRV9JTkQsCisvLyBTbmlmZmVyIGVuZAorCitNU0dfSURfVEwxREFUQV9BU1RfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX1NQRUNJRklDX0NFTExfU0VBUkNIX1NUT1BfSU5ELAorCitNU0dfSURfVEwxREFUQV9BU1RfTVNHX0NPTlRBSU5FUl9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfQUJPUlRfQ05GLAorCitNU0dfSURfVEwxREFUQV9BU1RfQkNIX1NFVFVQX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9CQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfU0ZOX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9CQ0hfQ1NfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0JDSF9DU19TRVRVUF9JTkQsCisKK01TR19JRF9UTDFEQVRBX0FTVF9QQ0hfU0VUVVBfSU5ELCAgICAgICAgICAgICAgICAgIAorTVNHX0lEX1RMMURBVEFfQVNUX1BDSF9SRUxFQVNFX0lORCwgICAgCisKK01TR19JRF9UTDFEQVRBX0FTVF9GQUNIX1NFVFVQX0lORCwgICAgICAgICAgICAgICAgICAKK01TR19JRF9UTDFEQVRBX0FTVF9GQUNIX1JFTEVBU0VfSU5ELAorCitNU0dfSURfVEwxREFUQV9BU1RfUkFDSF9TRVRVUF9JTkQsICAgICAgICAgICAgICAgICAgCitNU0dfSURfVEwxREFUQV9BU1RfUkFDSF9SRUxFQVNFX0lORCwgICAKKworCitNU0dfSURfVEwxREFUQV9BU1RfUE9TVF9UWF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfQUNDRVNTX0lORCwKKworCitNU0dfSURfVEwxREFUQV9BU1RfVUxfRENIX1NFVFVQX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9VTF9EQ0hfUkVMRUFTRV9JTkQsCisKK01TR19JRF9UTDFEQVRBX0FTVF9ETF9EQ0hfU0VUVVBfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0RMX0RDSF9SRUxFQVNFX0lORCwKKworCitNU0dfSURfVEwxREFUQV9BU1RfVFhfU1RBVFVTX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9UMzEyX0VYUElSWV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfRExfSU5JVF9TWU5DX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9STF9GQUlMVVJFX0lORCwKKworCitNU0dfSURfVEwxREFUQV9BU1RfSFNEU0NIX1NFVFVQX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9IU0RTQ0hfUkVMRUFTRV9JTkQsCisKKyNpZmRlZiBfX0hTVVBBX1NVUFBPUlRfXworTVNHX0lEX1RMMURBVEFfQVNUX0VEQ0hfU0VUVVBfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0VEQ0hfUkVMRUFTRV9JTkQsCisjZW5kaWYKK01TR19JRF9UTDFEQVRBX0FTVF9NRUFTX1NFVFVQX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9NRUFTX1JFTEVBU0VfSU5ELAorCitNU0dfSURfVEwxREFUQV9BU1RfTUVBU19SU0NQX0lOVFJBX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9NRUFTX1JTQ1BfSU5URVJfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX01FQVNfSVNDUF9JTkQsCisKK01TR19JRF9UTDFEQVRBX0FTVF9NRUFTX0lOVEVSTkFMX1NFVFVQX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9NRUFTX0lOVEVSTkFMX1JFTEVBU0VfSU5ELAorCitNU0dfSURfVEwxREFUQV9BU1RfTUVBU19JTlRFUk5BTF9FVkVOVF9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfTUVBU19JTlRFUk5BTF9QRVJJT0RJQ19JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfTUVBU19JTlRFUk5BTF9SRVNVTFRfSU5ELAorCisvL0BDTVcKK01TR19JRF9UTDFEQVRBX0FTVF9CQ0hfREFUQV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfREFUQV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfSFNEU0NIX0RBVEFfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX1BSRVBBUkVfREFUQV9SRVEsCitNU0dfSURfVEwxREFUQV9BU1RfR0VUX0RBVEFfUkVRLAorCitNU0dfSURfVEwxREFUQV9BU1RfSFNEU0NIX1NFVFVQX0RBVEFfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0hTRFNDSF9SRUxFQVNFX0RBVEFfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0hTRFNDSF9NT0RJRllfREFUQV9JTkQsCisKKy8vI2lmZGVmIF9fVU1BQ19EQ0hfTElTUl9fCitNU0dfSURfVEwxREFUQV9BU1RfSU5GT1JNX0RDSF9NQUNfSU5ELAorLy8jZW5kaWYKKworTVNHX0lEX1RMMURBVEFfQVNUX0lORk9STV9NQUNfQ1NSX0lORCwKKworI2lmZGVmIF9fSFNVUEFfU1VQUE9SVF9fCitNU0dfSURfVEwxREFUQV9BU1RfSU5GT1JNX0VEQ0hfTUFDX0lORCwKKyNlbmRpZgorCitNU0dfSURfVEwxREFUQV9BU1RfTUVBU19ETU9fU0VUVVBfSU5ELAorCisKK01TR19JRF9UTDFEQVRBX0FTVF9VRV9TVEFURV9JTkQsCisKKworTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9TRVJWSUNFX0lORCwKKworCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NZTkNfUkFUX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfU1lOQ19USU1FT1VUX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfU1lOQ19DRUxMX0NIQU5HRV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NZTkNfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9TWU5DX1RMMV9DTkYsCisKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfQ0FMQ19QUk9WSURFX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfQ0FMQ19DQU5DRUxfSU5ELAorCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1JFTEVBU0VfSU5ELAorCitNU0dfSURfVEwxREFUQV9BU1RfRkFDSF9HQVBfTE9DS19JTkQsCisKKy8qIEBkbXMgKi8KK01TR19JRF9UTDFEQVRBX0FTVF9ETVNfTUVBU19ET05FX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9UTDFDX0dBUF9QQVRURVJOX1NUT1AsCitNU0dfSURfVEwxREFUQV9BU1RfVEwxQ19HQVBfUEFUVEVSTl9GSU5JU0gsCisjaWZkZWYgVEwxX1RFU1RDQVNFCitNU0dfSURfVEwxREFUQV9BU1RfTDFDQVNFX1RFU1RfQ01EX0lORCwKKyNlbmRpZgorTVNHX0lEX1RMMURBVEFfQVNUX1RJTUlOR19TWU5DX1RMMV9DTkYsCitNU0dfSURfVEwxREFUQV9BU1RfQVVUT19HQVBfU1VTUEVORF9ET05FX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9BVVRPX0dBUF9TVEFSVF9DTkYsCitNU0dfSURfVEwxREFUQV9BU1RfVFJBQ0VfSU5ELAorCisjaWZkZWYgX19UTDFfVFNUX0xPR19EU1BfUkVTUF9fCitNU0dfSURfQ1BIWV9TSU1VTEFURV9EUEFfT05MWV9TVUJfRlJBTUVfRU5UUllfUkVRLCAvKkJ5IHN1Yi1mcmFtZSovCitNU0dfSURfQ1BIWV9TSU1VTEFURV9VUEFfT05MWV9TVUJfRlJBTUVfRU5UUllfUkVRLCAvKkJ5IHN1Yi1mcmFtZSovCQorI2VuZGlmCisKK01TR19JRF9UTDFEQVRBX0FTVF9DSEFOTkVMX1FVQUxJVFlfU1RBVFVTX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9SWF9QT1dFUl9URVNUX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9UWF9QT1dFUl9URVNUX0lORCwKKyNpZmRlZiBfX1JGX1NDQU5fRk9SX0RFU0VOU0VfVEVTVF9fCitNU0dfSURfVEwxREFUQV9BU1RfUkZfU0NBTl9URVNUX0lORCwKKyNlbmRpZgorTVNHX0lEX1RMMURBVEFfQVNUX0ZPUkNFX1RYX0FOVF9DTkYsCisvKiBGb3IgTGlzdCBNb2RlKi8KK01TR19JRF9MSVNUX01PREVfR0VUUkVTX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9FTV9URERfTDFfVEFTX0lORk9fSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX05VTSwKKworLyogTEwxIC0+IFRBU0sgKi8KKworCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NFUlZJQ0VfU1RBUlRfVU1UU19QTV9PTkxZLAorTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9TRVJWSUNFX1NUQVJUX1VNVFNfQUxMLAorTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9TRVJWSUNFX1NUT1BfVU1UUywKKworCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NZTkNfR0wxX0NORl9TVUNDRVNTLAorTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9TWU5DX0dMMV9DTkZfRkFJTFVSRSwKKworTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9DVFJMX0dTTV9QTV9ET05FX0lORCwKKworTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9DVFJMX1NUT1BfR0FQX0NPTkZJUk0sCisKK01TR19JRF9UTDFEQVRBX0FTVF9GQUNIX0dBUF9MT0NLX0NORiwKKworTVNHX0lEX1RMMURBVEFfQVNUX0dTTV9TWU5DX1NUQVJULAorCitNU0dfSURfVEwxREFUQV9BU1RfRE1TX1RJTV9BREpfQ0xFQVJfQ05GLAorLyogQGRtcyAqLworCitNU0dfSURfVEwxREFUQV9BU1RfR1NNX0dBUF9BVkFJQUJMRV9JTkQsCitNU0dfSURfVEwxREFUQV9BU1RfR1NNX0dBUF9VTkFWQUlBQkxFX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9UTDFBX0dBUF9QQVRURVJOX1NFVCwKKworCisvKiBUQVNLIC0+IFRBU0sgKi8KKworLyogQGRtcyAqLworCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NFUlZJQ0VfRlNfUkVRLAorTVNHX0lEX1RMMURBVEFfQVNUX0dBUF9TRVJWSUNFX0ZTX1NUT1AsCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX1NFUlZJQ0VfQkNIX1JFUSwKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfU0VSVklDRV9CQ0hfU1RPUCwKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfU0VSVklDRV9NRUFTX1JFUSwKK01TR19JRF9UTDFEQVRBX0FTVF9HQVBfU0VSVklDRV9NRUFTX1NUT1AsCisKKyNpZiBkZWZpbmVkKCBfX0dFTUlOSV9fICkgJiYgZGVmaW5lZCAoIF9fVU1UU19SQVRfXyApCitNU0dfSURfVEwxREFUQV9BU1RfUEVFUl8yR19PUEVOX1JFUSwKK01TR19JRF9UTDFEQVRBX0FTVF9QRUVSXzJHX0NMT1NFX1JFUSwKK01TR19JRF9UTDFEQVRBX0FTVF9QRUVSXzJHX09QRU5fQ05GLAorI2VuZGlmCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX1RMMURBVEFfQVNUX0NIQU5ORUxfUFJJT1JJVFlfQURKVVNUTUVOVF9DTkYsCisjZW5kaWYKKy8qIFRMMUMgLT4gVEw0QyAqLworTVNHX0lEX1RMMURBVEFfQVNUX1RJTUlOR19TWU5DX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9USU1JTkdfU1lOQ19TVVNQRU5EX0lORCwKK01TR19JRF9UTDFEQVRBX0FTVF9UTDFBX0dBUF9TVE9QX1JFUSwKK01TR19JRF9UTDFEQVRBX0FTVF9NTVNfVElNX0FESl9DTEVBUl9DTkYsCitNU0dfSURfVEwxREFUQV9BU1RfR0FQX01NU19TVVNQRU5EX0RPTkVfSU5ELAorTVNHX0lEX1RMMURBVEFfQVNUX0FVVE9fR0FQX1NUQVJULAorTVNHX0lEX1RMMURBVEFfQVNUX0FVVE9fR0FQX1JFTEVBU0UsCitNU0dfSURfVEwxREFUQV9BU1RfQVVUT19HQVBfU1RPUF9DTkYsCitNU0dfSURfVEwxREFUQV9BU1RfQVVUT19HQVBfRklOSVNILAorTVNHX0lEX1RMMURBVEFfQVNUX1RMMUNfQVVUT19HQVBfUEFUVEVSTl9TVE9QLAorTVNHX0lEX1RMMURBVEFfQVNUX01NU19BVVRPX0dBUF9USU1fQURKX0NMRUFSX0NORiwKK01TR19JRF9MNENUTDFfRU1fVFNUX0NPTlRST0xfQ05GLAorTVNHX0lEX1RERFNMVF9SRVNFVF9SRVEsCitNU0dfSURfVEREU0xUX1JFU0VUX0NORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVEwxREFUQV9BU1RfTVNHX0NPREVfVEFJTCApCisKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCit9OworI2VuZGlmCisKKyNlbmRpZiAgLy9fVEwxREFUQV9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdGwxZnRhX2FzdF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdGwxZnRhX2FzdF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NjkwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC90bDFmdGFfYXN0X21zZ2lkLmgKQEAgLTAsMCArMSwxMTcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiB0bDFmdF9hc3Rfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgQXN0cm9hbnV0CisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVEwxX0ZUIFNBUAorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1RMMUZUQV9NU0dfSAorI2RlZmluZSBfVEwxRlRBX01TR19ICisKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCitlbnVteworI2VuZGlmCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9UTDFGVEFfQVNUX01TR19DT0RFX0JFR0lOICkKKy8qIEZUQSAtPiBMMSBUQVNLICovCitNU0dfSURfUkZDQUxfUkVTRVRfUkVRID0gTVNHX0lEX1RMMUZUQV9BU1RfTVNHX0NPREVfQkVHSU4sCisKK01TR19JRF9SRkNBTF9DU19SRVEsCisKK01TR19JRF9SRkNBTF9EQ0hfUkVRLAorCitNU0dfSURfUkZDQUxfRENIX1JFTF9SRVEsCisKK01TR19JRF9SRkNBTF9HRVRJTkZPX1JFUSwKKworTVNHX0lEX1JGQ0FMX01PREVNX1NXSVRDSF9SRVEsCisKK01TR19JRF9SRkNBTF9BQkJSRUdfUkVRLAorCitNU0dfSURfTlNGVF9TRVRfUEFSQV9SRVEsCisKK01TR19JRF9SRlRFU1RfUlhUWF9SRVEsCisKK01TR19JRF9GSENfU1RBUlRfUkVRLAorCitNU0dfSURfRkhDX1NUQVJUX0VYX1JFUSwKKworLyogTDEgVEFTSyAtPiBGVEEgKi8KK01TR19JRF9SRkNBTF9SRVNFVF9DTkYsCisKK01TR19JRF9SRkNBTF9DU19JTkQsCisKK01TR19JRF9SRkNBTF9EQ0hfQ05GLAorCitNU0dfSURfUkZDQUxfRENIX1JFTF9DTkYsCisKK01TR19JRF9SRkNBTF9HRVRJTkZPX0NORiwKKworTVNHX0lEX1JGQ0FMX01PREVNX1NXSVRDSF9DTkYsCisKK01TR19JRF9SRkNBTF9BQkJSRUdfSU5ELAorCitNU0dfSURfTlNGVF9TRVRfUEFSQV9DTkYsCisKK01TR19JRF9SRlRFU1RfUlhUWF9DTkYsCisKK01TR19JRF9GSENfU1RBUlRfQ05GLAorCitNU0dfSURfRkhDX0ZJTklTSF9JTkQsCisKK01TR19JRF9GSENfRklOSVNIX0VYX0lORCwKKworTVNHX0lEX1NMVF9URVNUX1JFUSwKKworTVNHX0lEX0xJU1RfTU9ERV9SRVEsCisKK01TR19JRF9MSVNUX01PREVfQ05GLAorCitNU0dfSURfQ1BIWV9MSVNUX0dFVF9SRVMsCisKK01TR19JRF9UTDFURVNUX0lOSVRfUkVRLAorTVNHX0lEX1RMMVRFU1RfVUxfUEFSQU1fUkVRLAorTVNHX0lEX1RMMVRFU1RfVUxfSU5GT19JTkQsCitNU0dfSURfQ1BIWV9SRkNBTF9HRVRSU1NJX0NGR19SRVEsCitNU0dfSURfQ1BIWV9SRkNBTF9HRVRSU1NJX0NGR19DTkYsCisKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCit9OworI2VuZGlmCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RMMUZUQV9BU1RfTVNHX0NPREVfVEFJTCApCisKKyNlbmRpZiAgIC8vX1RMMUZUQV9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWFzX2dhc19nZW1pbmlfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Vhc19nYXNfZ2VtaW5pX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY4NjBiMAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Vhc19nYXNfZ2VtaW5pX21zZ2lkLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB1YXNfZ2FzX2dlbWluaV9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBHRU1JTkkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2c6JAorICoKKyAqIDA2IDA4IDIwMTIgcWluZ2h1YS55dQorICogcmVtb3ZlZCEKKyAqIDEpIGNvbmZpcm0gYWxsIF9tc2dpZC5oIGlzIHNhbWUgYXMgb2xkIChleGNsdWRlIGZvbGQgLi4vZGVsZXRlLyk7CisgKiAyKSBmaXggcmFuZ2UgZXJyb3IgaW4gbW9kdWxlX21zZ19yYW5nZS5oLgorICoKKyAqIDA1IDI0IDIwMTIgd2NwdXNlcl9pbnRlZ3JhdG9yCisgKiByZW1vdmVkIQorICogUWluZ2h1YSBZdSBjaGVjayBpbiBnbG9iYWwgZW51bSAoTVNHICYgU0FQKSBhdCBtb2RlbV9kZXYuCisgKgorICogMDUgMjQgMjAxMiB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIHJlbW92ZWQhCisgKiBRaW5naHVhIFl1IGNoZWNrIGluIGdsb2JhbCBlbnVtIChNU0cgJiBTQVApIGF0IG1vZGVtX2Rldi4KKyAqCisgKiAwNSAyNCAyMDEyIHdjcHVzZXJfaW50ZWdyYXRvcgorICogcmVtb3ZlZCEKKyAqIFFpbmdodWEgWXUgY2hlY2sgaW4gZ2xvYmFsIGVudW0gKE1TRyAmIFNBUCkgYXQgbW9kZW1fZGV2LgorICoKKyAqIDAxIDEzIDIwMTIgaWoubGlhbworICogcmVtb3ZlZCEKKyAqIC4KKyAqCisgKiAxMiAwNyAyMDEwIG1hcnVjby50dQorICogcmVtb3ZlZCEKKyAqIC4KKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIGFkZCB0byBzb3VyY2UgY29udHJvbCByZWN1cnNlbHkKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIAorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogYWRkIHRvIHNvdXJjZSBjb250cm9sIHJlY3Vyc2VseQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiAKKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9VQVNfR0FTX0dFTUlOSV9NU0dfSAorI2RlZmluZSBfVUFTX0dBU19HRU1JTklfTVNHX0gKKworI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXwordHlwZWRlZiBlbnVtIHsKKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfR0VNSU5JX1VBU19DT0RFX0JFR0lOICkKKy8vTVNHX0lEX0dFTUlOSV9VQVNfQ09ERV9CRUdJTiwKK01TR19JRF9HQVNfVUFTX1NVU1BFTkRfU0VSVklDRV9SRVEgPSBNU0dfSURfR0VNSU5JX1VBU19DT0RFX0JFR0lOLAorTVNHX0lEX0dBU19VQVNfUkVTVU1FX1NFUlZJQ0VfUkVRLAorTVNHX0lEX0dFTUlOSV9VQVNfQ09ERV9FTkQgPSBNU0dfSURfR0FTX1VBU19SRVNVTUVfU0VSVklDRV9SRVEsIAorLy9NU0dfSURfR0VNSU5JX1VBU19DT0RFX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfR0VNSU5JX1VBU19DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfR0VNSU5JX0dBU19DT0RFX0JFR0lOICkKKy8vTVNHX0lEX0dFTUlOSV9HQVNfQ09ERV9CRUdJTiwKK01TR19JRF9VQVNfR0FTX1NVU1BFTkRfU0VSVklDRV9SRVEgPSBNU0dfSURfR0VNSU5JX0dBU19DT0RFX0JFR0lOLAorTVNHX0lEX1VBU19HQVNfUkVTVU1FX1NFUlZJQ0VfUkVRLAorTVNHX0lEX0dFTUlOSV9HQVNfQ09ERV9FTkQgPSBNU0dfSURfVUFTX0dBU19SRVNVTUVfU0VSVklDRV9SRVEsCisvL01TR19JRF9HRU1JTklfR0FTX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9HRU1JTklfR0FTX0NPREVfVEFJTCApCisKKyNpZmRlZiBfX1NPVVJDRV9JTlNJR0hUX1BBUlNFX18KK307CisjZW5kaWYKKworI2VuZGlmICAvL19VQVNfR0FTX0dFTUlOSV9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWFzX2dhc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWFzX2dhc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5NWQwMTMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91YXNfZ2FzX21zZ2lkLmgKQEAgLTAsMCArMSw0NDkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB1YXNfZ2FzX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTlpBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfVUFTX0dBU19NU0dfSAorI2RlZmluZSBfVUFTX0dBU19NU0dfSAorCisjaWYgZGVmaW5lZChfX1VNVFNfUkFUX18pJiYgIWRlZmluZWQgKF9fTDFfU1RBTkRBTE9ORV9fKQorI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXwordHlwZWRlZiBlbnVtIHsKKyNlbmRpZgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRE1fQ1NDRV9DT0RFX0JFR0lOICkKKy8vIE1TR19JRF9ETV9DU0NFX0NPREVfQkVHSU4KK01TR19JRF9HQVNfVUFTX0VWQUxVQVRFX1VDRUxMX1JFUSA9IE1TR19JRF9ETV9DU0NFX0NPREVfQkVHSU4sCitNU0dfSURfR0FTX1VBU19BQ1RJVkFURV9VQ0VMTF9SRVEsIAorI2lmZGVmIF9fQ01DQ18yM0dfUElOR1BPTkdfUkVTVFJBSU5fXworTVNHX0lEX0dBU19VQVNfUkVTRUxfUkVTVFJBSU5fU1RBVFVTX0lORCwKKyNlbmRpZgorTVNHX0lEX0dBU19VQVNfTE9XRVJfTEFZRVJfQVZBSUxBQklMSVRZX1JFUSwgCisjaWYgZGVmaW5lZChfXzNHX0NTR19TVVBQT1JUX18pIC8qfHwgZGVmaW5lZChfX0xURV9SQVRfXykqLworTVNHX0lEX0dBU19VQVNfU0VBUkNIX0NTR19VQ0VMTF9SRVEsCitNU0dfSURfR0FTX1VBU19FVkFMVUFURV9DU0dfVUNFTExfUkVRLAorI2VuZGlmCitNU0dfSURfVUFTX0dBU19CVUlMRF9GSU5HRVJQUklOVF9DTkYsIC8qIENTRyBmaW5nZXJwcmludCAqLworCisKKy8qIEVBUyB0byBVQVMgcmVsZXZhbnQgbWVzc2FnZXMgKi8KKyNpZmRlZiBfX0xURV9SQVRfXworI2lmZGVmIF9fM0dfQ1NHX1NVUFBPUlRfXworTVNHX0lEX0VBU19VQVNfU0VBUkNIX0NTR19VQ0VMTF9SRVEsICAvKiA0RzMgQXV0by1DU0ctU2VhcmNoICovCitNU0dfSURfRUFTX1VBU19FVkFMVUFURV9DU0dfVUNFTExfUkVRLAorI2VuZGlmCitNU0dfSURfRUFTX1VBU19SRVBPUlRfQ0dJX1JFUSwgICAgICAgIC8qIDRHMyBDR0ktQ29sbGVjdGlvbiAqLworTVNHX0lEX0VBU19VQVNfRVZBTFVBVEVfVUNFTExfUkVRLCAgICAvKiA0RzMgQ2VsbCBFdmFsdWF0aW9uICovCitNU0dfSURfRUFTX1VBU19FVkFMVUFURV9VQ0VMTF9TVE9QX1JFUSwKK01TR19JRF9VQVNfRUFTX1NFQVJDSF9DU0dfRUNFTExfQ05GLCAgLyogM0c0IEF1dG8tQ1NHLVNlYXJjaCAqLworTVNHX0lEX1VBU19FQVNfRVZBTFVBVEVfQ1NHX0VDRUxMX0NORiwKK01TR19JRF9FQVNfVUFTX0JBQ0tHUk9VTkRfU0VBUkNIX0ZPVU5EX0lORCwgIC8qIDNHNCBCYWNrZ3JvdW5kIFNlYXJjaCAqLworTVNHX0lEX1VBU19FQVNfQlVJTERfRklOR0VSUFJJTlRfQ05GLC8qM0c0IEZJTkdFUlBSSU5UKi8KK01TR19JRF9FQVNfVUFTX0JVSUxEX0ZJTkdFUlBSSU5UX1JFUSwvKjRHMyBGSU5HRVJQUklOVCovCitNU0dfSURfRUFTX1VBU19BQk9SVF9GSU5HRVJQUklOVF9JTkQsLyo0RzMgRklOR0VSUFJJTlQqLworTVNHX0lEX0VBU19VQVNfSFNSX0NFTExfRk9VTkRfSU5ELCAvKkhTUiBTbmlmZmVyKi8KKyNlbmRpZiAvKiBfX0xURV9SQVRfXyAqLworCitNU0dfSURfR0FTX1VBU19FVkFMVUFURV9VQ0VMTF9TVE9QX1JFUSwKK01TR19JRF9VQVNfRUFTX0JBQ0tHUk9VTkRfU0VBUkNIX1NUQVJUX0NORiwgLyogM0c0IEJhY2tncm91bmQgU2VhcmNoIHN0YXJ0IGNvbmZpcm0qLworTVNHX0lEX0RNX0NTQ0VfQ09ERV9FTkQgPSBNU0dfSURfVUFTX0VBU19CQUNLR1JPVU5EX1NFQVJDSF9TVEFSVF9DTkYsIAorLy8gTVNHX0lEX0RNX0NTQ0VfQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0RNX0NTQ0VfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1VBU19HQVNfQ09ERV9CRUdJTiApCisvL01TR19JRF9VQVNfR0FTX0NPREVfQkVHSU4sCitNU0dfSURfVUFTX0dBU19DT05GSUdfR0NFTExfTUVBU19SRVEgPSBNU0dfSURfVUFTX0dBU19DT0RFX0JFR0lOLAorI2lmIGRlZmluZWQoX19MVEVfUkFUX18pIHx8IGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykKK01TR19JRF9VQVNfR0FTX0NPTkZJR19HQ0VMTF9QUklPX01FQVNfUkVRLAorTVNHX0lEX0ZERF9HQVNfVUFTX0NPTkZJR19VQ0VMTF9QUklPX01FQVNfQ05GLAorTVNHX0lEX1RERF9HQVNfVUFTX0NPTkZJR19VQ0VMTF9QUklPX01FQVNfQ05GLAorI2VuZGlmIC8qIGRlZmluZWQoX19MVEVfUkFUX18pIHx8IGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgKi8KK01TR19JRF9VQVNfR0FTX0VWQUxVQVRFX0dDRUxMX1JFUSwKK01TR19JRF9VQVNfR0FTX0FDVElWQVRFX0dDRUxMX1JFUSwKK01TR19JRF9VQVNfR0FTX0VWQUxVQVRFX0dDRUxMX1NUT1BfUkVRLAorTVNHX0lEX1VBU19HQVNfSEFORE9WRVJfR0NFTExfUkVRLCAgCitNU0dfSURfVUFTX0dBU19IT19BQ1RJVkFURV9HQ0VMTF9SRVEsCitNU0dfSURfVUFTX0dBU19BQk9SVF9IT19HQ0VMTF9SRVEsCitNU0dfSURfRkREX0dBU19VQVNfQ09ORklHX1VDRUxMX01FQVNfQ05GLAorTVNHX0lEX0ZERF9HQVNfVUFTX1VDRUxMX01FQVNfSU5ELAorTVNHX0lEX1RERF9HQVNfVUFTX0NPTkZJR19VQ0VMTF9NRUFTX0NORiwKK01TR19JRF9URERfR0FTX1VBU19VQ0VMTF9NRUFTX0lORCwKK01TR19JRF9HQVNfVUFTX0VWQUxVQVRFX1VDRUxMX0NORiwKK01TR19JRF9HQVNfVUFTX0FDVElWQVRFX1VDRUxMX0NORiwKK01TR19JRF9HQVNfVUFTX0VWQUxVQVRFX1VDRUxMX1NUT1BfQ05GLAorTVNHX0lEX0dBU19VQVNfVUNFTExfQ0hBTkdFX0NPTVBMRVRFX0lORCwKK01TR19JRF9HQVNfVUFTX0hBTkRPVkVSX1VDRUxMX0NORiwKK01TR19JRF9HQVNfVUFTX0hPX0FDVElWQVRFX1VDRUxMX0NORiwKKyNpZmRlZiBfX0NNQ0NfMjNHX1BJTkdQT05HX1JFU1RSQUlOX18KK01TR19JRF9HQVNfVUFTX1ZJUlRVQUxfQ0VMTF9SRVNFTF9JTkQsCisjZW5kaWYKKyNpZmRlZiBfX0NNQ0NfU1REX0ZSX18KK01TR19JRF9HQVNfVUFTX1NURF9GUl9JTkZPX0lORCwKKyNlbmRpZgorTVNHX0lEX0dBU19VQVNfU0VBUkNIX0NTR19VQ0VMTF9DTkYsCitNU0dfSURfR0FTX1VBU19FVkFMVUFURV9DU0dfVUNFTExfQ05GLAorCisjaWZkZWYgX19VTVRTX0ZERF9NT0RFX18KKyNpZiBkZWZpbmVkKF9fTFRFX1JBVF9fKSB8fCBkZWZpbmVkKF9fM0dfQ1NHX1NVUFBPUlRfXykKK01TR19JRF9VQVNfR0FTX0JVSUxEX0ZJTkdFUlBSSU5UX1JFUSwgLyogQ1NHIGZpbmdlcnByaW50ICovCitNU0dfSURfVUFTX0dBU19BQk9SVF9GSU5HRVJQUklOVF9JTkQsIC8qIENTRyBmaW5nZXJwcmludCAqLworI2VuZGlmIC8qIGRlZmluZWQoX19MVEVfUkFUX18pIHx8IGRlZmluZWQoX18zR19DU0dfU1VQUE9SVF9fKSAqLworI2VuZGlmIC8qIF9fVU1UU19GRERfTU9ERV9fICovCisKK01TR19JRF9HQVNfVUFTX0NFTExfUkVTRUxFQ1RJT05fUEFSQU1TX0lORCwKK01TR19JRF9VQVNfR0FTX0NPREVfRU5EID0gTVNHX0lEX0dBU19VQVNfQ0VMTF9SRVNFTEVDVElPTl9QQVJBTVNfSU5ELAorLy9NU0dfSURfVUFTX0dBU19DT0RFX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVUFTX0dBU19DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRUFTX0dBU19DT0RFX0JFR0lOICkKKy8qIEVBUyB0byBHQVMgcmVsZXZhbnQgbWVzc2FnZXMgKi8KK01TR19JRF9FQVNfR0FTX0NPTkZJR19HQ0VMTF9NRUFTX1JFUSA9ICBNU0dfSURfRUFTX0dBU19DT0RFX0JFR0lOLCAgLyogNEcyIElSIE1lYXN1cmVtZW50ICovCitNU0dfSURfRUFTX0dBU19DT05GSUdfR0NFTExfUFJJT19NRUFTX1JFUSwKK01TR19JRF9HQVNfRUFTX0xURV9NRUFTVVJFTUVOVF9JTkQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMkc0IElSIE1lYXN1cmVtZW50ICovCitNU0dfSURfR0FTX0VBU19MVEVfTUVBU1VSRU1FTlRfQ05GLAorTVNHX0lEX0VBU19HQVNfUkVQT1JUX0NHSV9SRVEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA0RzIgQ0dJIENvbGxlY3Rpb24gKi8KK01TR19JRF9FQVNfR0FTX0VWQUxVQVRFX0dDRUxMX1JFUSwKK01TR19JRF9FQVNfR0FTX0VWQUxVQVRFX0dDRUxMX1NUT1BfUkVRLAorTVNHX0lEX0VBU19HQVNfQUNUSVZBVEVfR0NFTExfUkVRLAorTVNHX0lEX0VBU19HQVNfSEFORE9WRVJfR0NFTExfUkVRLAorTVNHX0lEX0VBU19HQVNfSE9fQUNUSVZBVEVfR0NFTExfUkVRLAorTVNHX0lEX0VBU19HQVNfQUJPUlRfSE9fR0NFTExfUkVRLAorTVNHX0lEX0dBU19FQVNfRVZBTFVBVEVfRUNFTExfQ05GLAorTVNHX0lEX0dBU19FQVNfRVZBTFVBVEVfRUNFTExfU1RPUF9DTkYsCitNU0dfSURfR0FTX0VBU19BQ1RJVkFURV9FQ0VMTF9DTkYsCitNU0dfSURfR0FTX0VBU19TRUFSQ0hfQ1NHX0VDRUxMX0NORiwKKy8qIF9fNEdfQkFDS0dST1VORF9TRUFSQ0hfXyBiZWdpbiovCitNU0dfSURfRUFTX0dBU19CQUNLR1JPVU5EX1NFQVJDSF9GT1VORF9JTkQsICAvKiAyRzQgQmFja2dyb3VuZCBTZWFyY2ggKi8KKy8qIF9fNEdfQkFDS0dST1VORF9TRUFSQ0hfXyBlbmQqLworTVNHX0lEX0dBU19FQVNfRVZBTFVBVEVfQ1NHX0VDRUxMX0NORiwKKyNpZiBkZWZpbmVkKF9fTFRFX1JBVF9fKSB8fCBkZWZpbmVkKF9fM0dfQ1NHX1NVUFBPUlRfXykKK01TR19JRF9FQVNfR0FTX0JVSUxEX0ZJTkdFUlBSSU5UX1JFUSwgLyogNEcyIEZJTkdFUlBSSU5UICovCitNU0dfSURfRUFTX0dBU19BQk9SVF9GSU5HRVJQUklOVF9JTkQsIC8qIDRHMiBGSU5HRVJQUklOVCAqLworI2VuZGlmIC8qIGRlZmluZWQoX19MVEVfUkFUX18pIHx8IGRlZmluZWQoX18zR19DU0dfU1VQUE9SVF9fKSAqLworTVNHX0lEX0VBU19HQVNfSFNSX0NFTExfRk9VTkRfSU5ELCAgLyogSFNSIHNuaWZmZXIgc2VhcmNoICovCitNU0dfSURfR0FTX0VBU19CQUNLR1JPVU5EX1NFQVJDSF9TVEFSVF9DTkYsIC8qIDJHNCBCYWNrZ3JvdW5kIFNlYXJjaCBzdGFydCBjb25maXJtKi8KK01TR19JRF9FQVNfR0FTX0NPREVfRU5EID0gTVNHX0lEX0dBU19FQVNfQkFDS0dST1VORF9TRUFSQ0hfU1RBUlRfQ05GLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9FQVNfR0FTX0NPREVfVEFJTCApCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9ETV9NRU1FX0NPREVfQkVHSU4gKQorLy9NU0dfSURfRE1fTUVNRV9DT0RFX0JFR0lOLAorTVNHX0lEX1VBU19HQVNfQ09ORklHX0dDRUxMX01FQVNfQ05GID0gTVNHX0lEX0RNX01FTUVfQ09ERV9CRUdJTiwKKyNpZiBkZWZpbmVkKF9fTFRFX1JBVF9fKSB8fCBkZWZpbmVkKF9fMjNHX1BSSV9SRVNFTF9TVVBQT1JUX18pCitNU0dfSURfVUFTX0dBU19DT05GSUdfR0NFTExfUFJJT19NRUFTX0NORiwKK01TR19JRF9GRERfR0FTX1VBU19DT05GSUdfVUNFTExfUFJJT19NRUFTX1JFUSwKK01TR19JRF9URERfR0FTX1VBU19DT05GSUdfVUNFTExfUFJJT19NRUFTX1JFUSwKKyNlbmRpZiAvKiBkZWZpbmVkKF9fTFRFX1JBVF9fKSB8fCBkZWZpbmVkKF9fMjNHX1BSSV9SRVNFTF9TVVBQT1JUX18pICovCitNU0dfSURfVUFTX0dBU19HQ0VMTF9NRUFTX0lORCwKK01TR19JRF9VQVNfR0FTX0dDRUxMX0JTSUNfSU5ELAorTVNHX0lEX0ZERF9HQVNfVUFTX0NPTkZJR19VQ0VMTF9NRUFTX1JFUSwKK01TR19JRF9URERfR0FTX1VBU19DT05GSUdfVUNFTExfTUVBU19SRVEsCisKKy8qIEVBUyB0byBNRU1FICovCitNU0dfSURfVUFTX0VBU19MVEVfTUVBU1VSRU1FTlRfQ05GLAorTVNHX0lEX1VBU19FQVNfTFRFX01FQVNVUkVNRU5UX0lORCwKK01TR19JRF9FQVNfRkREX1VBU19DT05GSUdfVUNFTExfUFJJT19NRUFTX1JFUSwKK01TR19JRF9FQVNfRkREX1VBU19DT05GSUdfVUNFTExfTUVBU19SRVEsCitNU0dfSURfRUFTX1RERF9VQVNfQ09ORklHX1VDRUxMX1BSSU9fTUVBU19SRVEsCitNU0dfSURfRUFTX1RERF9VQVNfQ09ORklHX1VDRUxMX01FQVNfUkVRLAorTVNHX0lEX0RNX01FTUVfQ09ERV9FTkQgPSBNU0dfSURfRUFTX1RERF9VQVNfQ09ORklHX1VDRUxMX01FQVNfUkVRLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9ETV9NRU1FX0NPREVfVEFJTCApCisKKy8vTVNHX0lEX0RNX1JSQ0VfQ09ERV9CRUdJTiwKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9ETV9SUkNFX0NPREVfQkVHSU4gKQorTVNHX0lEX1VBU19HQVNfSE9fQUNUSVZBVEVfR0NFTExfQ05GID0gTVNHX0lEX0RNX1JSQ0VfQ09ERV9CRUdJTiwKK01TR19JRF9VQVNfR0FTX0hBTkRPVkVSX0dDRUxMX0NORiwKK01TR19JRF9HQVNfVUFTX0hBTkRPVkVSX1VDRUxMX1JFUSwgIAorTVNHX0lEX0dBU19VQVNfSE9fQUNUSVZBVEVfVUNFTExfUkVRLAorTVNHX0lEX0dBU19VQVNfQUJPUlRfSE9fVUNFTExfUkVRLAorTVNHX0lEX1VBU19HQVNfRVZBTFVBVEVfR0NFTExfQ05GLAorTVNHX0lEX1VBU19HQVNfQUNUSVZBVEVfR0NFTExfQ05GLAorTVNHX0lEX1VBU19HQVNfRVZBTFVBVEVfR0NFTExfU1RPUF9DTkYsCitNU0dfSURfVUFTX0dBU19HQ0VMTF9DSEFOR0VfQ09NUExFVEVfSU5ELAorI2lmZGVmIF9fTFRFX1JBVF9fCisvKiBFQVMgLT4gVUFTIElSSE8gcGFydCAqLworTVNHX0lEX0VBU19VQVNfSEFORE9WRVJfVUNFTExfUkVRLAorTVNHX0lEX1VBU19FQVNfSEFORE9WRVJfRUNFTExfQ05GLAorTVNHX0lEX1VBU19FQVNfSE9fQUNUSVZBVEVfRUNFTExfQ05GLAorTVNHX0lEX0VBU19VQVNfQUJPUlRfSE9fVUNFTExfUkVRLAorLyogRUFTIC0+IFVBUyBJUkNSLCBSZWRpcmVjdGlvbiBwYXJ0ICovCitNU0dfSURfVUFTX0VBU19FVkFMVUFURV9FQ0VMTF9DTkYsCitNU0dfSURfVUFTX0VBU19FVkFMVUFURV9FQ0VMTF9TVE9QX0NORiwKK01TR19JRF9VQVNfRUFTX0FDVElWQVRFX0VDRUxMX0NORiwKK01TR19JRF9ETV9SUkNFX0NPREVfRU5EID0gTVNHX0lEX1VBU19FQVNfQUNUSVZBVEVfRUNFTExfQ05GLAorI2Vsc2UKK01TR19JRF9ETV9SUkNFX0NPREVfRU5EID0gTVNHX0lEX1VBU19HQVNfR0NFTExfQ0hBTkdFX0NPTVBMRVRFX0lORCwKKyNlbmRpZgorTU9EVUxFX01TR19FTkQoIE1TR19JRF9ETV9SUkNFX0NPREVfVEFJTCApCisvL01TR19JRF9ETV9SUkNFX0NPREVfRU5ELAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQVNfTE9HX0NPREVfQkVHSU4gKQorLy9NU0dfSURfQVNfTE9HX0NPREVfQkVHSU4KKyNpZmRlZiBfX0xURV9SQVRfXworTVNHX0lEX1VBU19FQVNfQUNUSVZBVEVfRUNFTExfUkVRID0gTVNHX0lEX0FTX0xPR19DT0RFX0JFR0lOLAorTVNHX0lEX0dBU19FQVNfQUNUSVZBVEVfRUNFTExfUkVRLAorTVNHX0lEX0VBU19HQVNfR0NFTExfQ0hBTkdFX0NPTVBMRVRFX0lORCwKK01TR19JRF9HQVNfRUFTX0VDRUxMX0NIQU5HRV9DT01QTEVURV9JTkQsCitNU0dfSURfRUFTX1VBU19BQ1RJVkFURV9VQ0VMTF9SRVEsCitNU0dfSURfQVNfTE9HX0NPREVfRU5EID0gTVNHX0lEX0VBU19VQVNfQUNUSVZBVEVfVUNFTExfUkVRLAorI2VuZGlmCisvLyBNU0dfSURfQVNfTE9HX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9BU19MT0dfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1JSX05SUkNfQ09ERV9CRUdJTiApCitNU0dfSURfUlJfTlJSQ19CQUNLR1JPVU5EX1NFQVJDSF9TVEFSVF9DTkYgPSBNU0dfSURfUlJfTlJSQ19DT0RFX0JFR0lOLAorTVNHX0lEX1JSX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfRk9VTkRfSU5ELCAgCitNU0dfSURfUlJfTlJSQ19FVkFMVUFURV9OUkNFTExfQ05GLCAKK01TR19JRF9SUl9OUlJDX0VWQUxVQVRFX05SQ0VMTF9TVE9QX0NORiwKK01TR19JRF9SUl9OUlJDX0FDVElWQVRFX05SQ0VMTF9DTkYsCisKKy8qIFBsZWFzZSBhZGQgYW55IG5ldyBtZXNzYWdlIElEIGFib3ZlIHRoaXMgb25seSAqLworTVNHX0lEX1JSX05SUkNfTk9UX1VTRURfTVNHLAorTVNHX0lEX1JSX05SUkNfQ09ERV9FTkQgPSBNU0dfSURfUlJfTlJSQ19OT1RfVVNFRF9NU0csCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUlJfTlJSQ19DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfUlJDX05SUkNfQ09ERV9CRUdJTiApCitNU0dfSURfUlJDX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfU1RBUlRfQ05GID0gTVNHX0lEX1JSQ19OUlJDX0NPREVfQkVHSU4sCitNU0dfSURfUlJDX05SUkNfQkFDS0dST1VORF9TRUFSQ0hfRk9VTkRfSU5ELCAgCitNU0dfSURfUlJDX05SUkNfRVZBTFVBVEVfTlJDRUxMX0NORiwgCitNU0dfSURfUlJDX05SUkNfRVZBTFVBVEVfTlJDRUxMX1NUT1BfQ05GLAorTVNHX0lEX1JSQ19OUlJDX0FDVElWQVRFX05SQ0VMTF9DTkYsCisKKy8qIFBsZWFzZSBhZGQgYW55IG5ldyBtZXNzYWdlIElEIGFib3ZlIHRoaXMgb25seSAqLworTVNHX0lEX1JSQ19OUlJDX05PVF9VU0VEX01TRywKK01TR19JRF9SUkNfTlJSQ19DT0RFX0VORCA9IE1TR19JRF9SUkNfTlJSQ19OT1RfVVNFRF9NU0csCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUlJDX05SUkNfQ09ERV9UQUlMICkKKworCisjaW5jbHVkZSAiZXJyY19tc2dpZC5oIgorI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXworfTsKKyNlbmRpZgorCisjZW5kaWYKKyNlbmRpZiAgIC8vX1VBU19HQVNfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VkcHNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VkcHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTEwNjI0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWRwc19tc2dpZC5oCkBAIC0wLDAgKzEsNTgxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDEKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBkcHNfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgV0NETUEKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBEdW1teSBQcm90b2NvbCBTdGFjaywgU0FQIGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9VRFBTX01TR19ICisjZGVmaW5lIF9VRFBTX01TR19ICisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX1VEUFNfQ09ERV9CRUdJTikKK01TR19JRF9VRFBTX1VNVFNfVEVTVF9TVE9QX1JFUSA9IE1TR19JRF9VRFBTX0NPREVfQkVHSU4sCitNU0dfSURfVURQU19VTVRTX1RFU1RfU1RPUDJfUkVRLAorTVNHX0lEX1VEUFNfSU5JVElBTF9DRUxMX1NFQVJDSCwKK01TR19JRF9VRFBTX1NGTl9SRUFEX1NJQl9MSVNURU4sCitNU0dfSURfVURQU19QQUdJTkdfUkVTUE9OU0UsCitNU0dfSURfVURQU19UQVJHRVRfQ0VMTF9TRUFSQ0gsCitNU0dfSURfVURQU19QQ0hfUkVBRElOR19PTl9TVFREX0NFTEwsIC8qIEk1ID0gTVBTMihDU0QpIGFuZCBCU0MxKENTRCkgKi8KK01TR19JRF9VRFBTX1BDSF9SRUNFSVZFLCAgLyogSTYgKFJlcXVlc3RlZCBieSBDU0QpICovCitNU0dfSURfVURQU19SRUNVUlNJVkVfVENTX0lOX1BDSCwgLyogSTggPSBDUzYoQ1NEKSBhbmQgQ1M3KENTRCkgKi8KK01TR19JRF9VRFBTX1JFQ1VSU0lWRV9JQ1NfSU5fTlVMTCwgLyogSTkgPSBDUzEoQ1NEKSAqLworTVNHX0lEX1VEUFNfVUwxRF9DU19URVNULCAvKiBJMTAgPSBNVEsgVUwxIGludGVybmFsIENTIHRlc3RpbmcgKFVMMUQgcmVxdWVzdCkgKi8KK01TR19JRF9VRFBTX1JFQ1VSU0lWRV9JUFNfSU5fTlVMTCwgLyogSTExID0gSVBTKENTRCkgKi8KK01TR19JRF9VRFBTX1BDSF9NRUFTVVJFTUVOVF84OTYwLCAvKiBJMTIgKDNHIFNsZWVwIE1vZGUgVGVzdGluZykgKi8KK01TR19JRF9VRFBTX0NPTlRJTlVBTF9JQ1MsIC8qIEkxMzogY29udGludWFsIElDUyAqLworCitNU0dfSURfVURQU19VTF9PUEVOX0xPT1BfUFdSX0NUUkwsCitNU0dfSURfVURQU19UWF9PTl9PRkZfVElNRV9NQVNLLAorTVNHX0lEX1VEUFNfUlhfQUNLX09OX0FJQ0gsCitNU0dfSURfVURQU19SWF9OT19BQ0tfT05fQUlDSCwKK01TR19JRF9VRFBTX1JYX05BQ0tfT05fQUlDSCwKK01TR19JRF9VRFBTX0JFU1RfRUZGT1JUX0ZPUl9QUkFDSCwgLyogQTYgPSBBQ0gxKENTRCkgKi8KK01TR19JRF9VRFBTX1JFQ1VSU0lWRV9UQ1NfSU5fRkFDSCwgLyogQTcgPSBDUzUoQ1NEKSAqLworTVNHX0lEX1VEUFNfRkFDSF9QRVJGT1JNQU5DRSwgLyogQTggKi8KKworTVNHX0lEX1VEUFNfVUxfSU5ORVJfTE9PUF9QV1JfQ1RSTCwKK01TR19JRF9VRFBTX09VVF9PRl9TWU5DX0hBTkRMSU5HLAorTVNHX0lEX1VEUFNfQ0hBTkdFX09GX1RGQywKK01TR19JRF9VRFBTX1VMX0NPTVBSRVNTRURfTU9ERSwKK01TR19JRF9VRFBTX1BFRl9JTl9TVEFUSUNfQ0gsCitNU0dfSURfVURQU19QRUZfSU5fRkFESU5HX0NILAorTVNHX0lEX1VEUFNfUEVGX0lOX01PVklOR19DSCwKK01TR19JRF9VRFBTX1BFRl9JTl9CSVJUSF9ERUFUSF9DSCwKK01TR19JRF9VRFBTX1BFRl9JTl9UWF9ESVZfTU9ERSwKK01TR19JRF9VRFBTX0RMX1BXUl9DVFJMX0NPTlNUX0JMRVIsCitNU0dfSURfVURQU19QRUZfSU5fRExfQ09NUFJFU1NFRF9NT0RFLAorTVNHX0lEX1VEUFNfUEVGX09GX0JURkQsCitNU0dfSURfVURQU19QRUZfSU5fU0hPLAorTVNHX0lEX1VEUFNfUEVGX09GX1RQQ19DT01CSU5JTkcsCitNU0dfSURfVURQU19QRUZfSU5fU1NEVF9QV1JfQ1RSTCwKK01TR19JRF9VRFBTX0FDVElWRV9TRVRfVVBEQVRFX0RFTEFZLAorTVNHX0lEX1VEUFNfVFhfVElNSU5HX0lOX1NITywKK01TR19JRF9VRFBTX0lOVFJBX0ZSRVFfVFJISE9fREVMQVksCitNU0dfSURfVURQU19JTlRFUl9GUkVRX1RSSEhPX0RFTEFZLAorTVNHX0lEX1VEUFNfUlJDX1JFRVNUQUJfREVMQVksCitNU0dfSURfVURQU19JTlRFUl9GUkVRX1RNSEhPLCAvKiBDRDIxICovCitNU0dfSURfVURQU19JTlRFUl9GUkVRX1RSSEhPX1JFVkVSVCwgLyogQ0QyMiAqLworTVNHX0lEX1VEUFNfSU5URVJfRlJFUV9UTUhIT19SRVZFUlQsIC8qIENEMjMgKi8KK01TR19JRF9VRFBTX0FCT1JUX0VOVEVSX0RDSCwgLyogQ0QyNCAqLworTVNHX0lEX1VEUFNfUkVDVVJTSVZFX1RDU19JTl9EQ0gsIC8qIENEMjUgPSBDUzIoQ1NEKSxDUzMoQ1NEKSxDUzQoQ1NEKSAqLworTVNHX0lEX1VEUFNfVU5LTk9XTl9TRk5fREVDT0RJTkdfSU5fRENILCAvKiBDRDI2ID0gQkNIMShDU0QpICovCisKK01TR19JRF9VRFBTX1RQQ19DT01CSU5JTkdfUkVMSUFCTEVfVEVTVCwgLyogQ0QyOCA9IFVQQzEoQ1NEKSwgVVBDMihDU0QpLCBVUEMzKENTRCksIFVQQzQoQ1NEKSBhbmQgRERDMyhDU0QpICovCitNU0dfSURfVURQU19TSVJfTUVBU19JTl9EQ0hfV0lUSF9UWFREX0NNLCAvKiBDRDMxID0gRFBDNyhDU0QpIGFuZCBEUEM4KENTRCkgKi8KK01TR19JRF9VRFBTX0RMUENfVEVTVF9XSU5EX1VQX0RPV04sIC8qIENEMzIgPSBEUEM0NChDU0QpIGFuZCBEUEM0NShDU0QpICovCitNU0dfSURfVURQU19QRUZfT0ZfVFJDSF9SRUNPTkZJRywgLyogQ0QzMyA9IERQQzQ2KENTRCkgKi8KK01TR19JRF9VRFBTX0RMUENfRk9SX0RJRkZfVEYsIC8qIENEMzQgPSBEUEM0NyhDU0QpICovCitNU0dfSURfVURQU19ETFBDX0ZPUl9CVEZEX0RVQUxfVEYsIC8qIENEMzUgPSBEUEM2OChDU0QpICovCitNU0dfSURfVURQU19ETFBDX0ZPUl9URkNJX0RVQUxfVEYsIC8qIENEMzYgPSBEUEM2OShDU0QpICovCitNU0dfSURfVURQU19ETFBDX1RFU1RfSU5JVElBTF9DT05WRVJHRU5DRSwgLyogQ0QzNyA9IEREQzQoQ1NEKSAqLworTVNHX0lEX1VEUFNfVUxQQ19GT1JfVFhfQUdDX1RFU1QsIC8qIENEMzggPSBVUEM3fjE4KENTRCkgKi8KK01TR19JRF9VRFBTX0JFUl9URVNUX0lOX0RDSF9NT0RFLCAvKiBDRDM5IChTQS9DUyByZXF1ZXN0KSAqLworTVNHX0lEX1VEUFNfU0FEQ0hfVFRJX0VJR0hUWSwgLyogQ0Q0MCAoUjk5KSBTdGFuZC1BbG9uZSBEQ0ggVFRJPTgwbXMgKi8KK01TR19JRF9VRFBTX1NBRENIX1RUSV9FSUdIVFlfV0lUSF9DTSwgLyogQ0Q0MSAoUjk5KSBTdGFuZC1BbG9uZSBEQ0ggVFRJPTgwbXMgd2l0aCBDTSAqLworCitNU0dfSURfVURQU19BVVRPX1JFQ09ORklHLC8qIENENTAsIEJ5IEFsYmVydCBmb3IgYXV0byByZS1jb25maWcgKi8KK01TR19JRF9VRFBTX0RDSF9GQUNIX1RSQU5TSVQsIC8qIENENTEsIEJ5IEFtaWRhICovCitNU0dfSURfVURQU19EUEFTX1NMMSwKK01TR19JRF9VRFBTX0RQQVNfU0wyLAorTVNHX0lEX1VEUFNfRFBBU19TTDMsCitNU0dfSURfVURQU19EUEFTX1NMNCwKK01TR19JRF9VRFBTX0RQQVNfU0w1LAorTVNHX0lEX1VEUFNfRFBBU19TTDYsCitNU0dfSURfVURQU19EUEFTX1NMNywKK01TR19JRF9VRFBTX0RQQVNfU0w4LAorTVNHX0lEX1VEUFNfRFBBU19TTDksCitNU0dfSURfVURQU19EUEFTX1NMMTAsCitNU0dfSURfVURQU19EUEFTX1NMMTEsCitNU0dfSURfVURQU19EUEFTX1NMMTIsCitNU0dfSURfVURQU19EUEFTX1NMMTMsCitNU0dfSURfVURQU19EUEFTX0ZERF9URVNUX1NMMSwKK01TR19JRF9VRFBTX0RQQVNfRkREX1RFU1RfU0wyLAorTVNHX0lEX1VEUFNfRFBBU19DQzEsCitNU0dfSURfVURQU19EUEFTX0NDMiwKK01TR19JRF9VRFBTX0RQQVNfQ0MzLAorTVNHX0lEX1VEUFNfRFBBU19DQzQsCitNU0dfSURfVURQU19EUEFTX0NDNSwKK01TR19JRF9VRFBTX0RQQVNfQ0M2LAorTVNHX0lEX1VEUFNfRFBBU19UR1BTMSwKK01TR19JRF9VRFBTX0RQQVNfVEdQUzIsCitNU0dfSURfVURQU19EUEFTX01FQVMxLAorTVNHX0lEX1VEUFNfRFBBU19NRUFTMiwKK01TR19JRF9VRFBTX0RQQVNfTUVBUzMsCitNU0dfSURfVURQU19EUEFTX09DSUMxLAorTVNHX0lEX1VEUFNfRFBBU19PQ0lDMiwKK01TR19JRF9VRFBTX0RQQVMwMl9PQ0lDLAorTVNHX0lEX1VEUFNfRFBBUzA4XzEsCitNU0dfSURfVURQU19EUEFGMDEsCitNU0dfSURfVURQU19EUEFGMDIsCitNU0dfSURfVURQU19EUEFGMDMsCitNU0dfSURfVURQU19EUEFGMDQsCitNU0dfSURfVURQU19EUEFGMDcsCitNU0dfSURfVURQU19EUEFGMDgsCitNU0dfSURfVURQU19EUEFGMDksCitNU0dfSURfVURQU19EUEFGMTAsCitNU0dfSURfVURQU19EUEFGMTEsCitNU0dfSURfVURQU19EUEFGMTFfMSwKK01TR19JRF9VRFBTX0RQQUYxMiwgCitNU0dfSURfVURQU19EUEFGMTMsIAorTVNHX0lEX1VEUFNfRFBBRjE0LCAKK01TR19JRF9VRFBTX0RQQUYxNSwgCitNU0dfSURfVURQU19SNl9DTjAxXzEsCitNU0dfSURfVURQU19SNl9DTjAxXzIsCitNU0dfSURfVURQU19SNl9DTjAyXzEsCitNU0dfSURfVURQU19SNl9DTjAyXzIsCitNU0dfSURfVURQU19SNl9DTjAzXzEsCitNU0dfSURfVURQU19SNl9DTjAzXzIsCitNU0dfSURfVURQU19SNl9DTjA0XzEsCitNU0dfSURfVURQU19SNl9DTjA0XzIsCitNU0dfSURfVURQU19SNl9DTjA1XzEsCitNU0dfSURfVURQU19SNl9DTjA1XzIsCitNU0dfSURfVURQU19SNl9DTjA2XzEsCitNU0dfSURfVURQU19SNl9DTjA2XzIsCitNU0dfSURfVURQU19SNl9DTjA3XzEsCitNU0dfSURfVURQU19SNl9DTjA3XzIsCitNU0dfSURfVURQU19SNl9DTjA4XzEsCitNU0dfSURfVURQU19SNl9DTjA4XzIsCitNU0dfSURfVURQU19SNl9DTjA5XzEsCitNU0dfSURfVURQU19SNl9DTjA5XzIsCitNU0dfSURfVURQU19SNl9DTjEwXzEsCitNU0dfSURfVURQU19SNl9DTjEwXzIsCitNU0dfSURfVURQU19SNl9DTjExXzEsCitNU0dfSURfVURQU19SNl9DTjExXzIsCitNU0dfSURfVURQU19SNl9DTjEyXzEsCitNU0dfSURfVURQU19SNl9DTjEyXzIsCitNU0dfSURfVURQU19SNl9DTjEzXzEsCitNU0dfSURfVURQU19SNl9DTjEzXzIsCitNU0dfSURfVURQU19SNl9DTjE0XzEsCitNU0dfSURfVURQU19SNl9DTjE0XzIsCitNU0dfSURfVURQU19SNl9DTjE1XzEsCitNU0dfSURfVURQU19SNl9DTjE1XzIsCitNU0dfSURfVURQU19SNl9DTjE2LAorTVNHX0lEX1VEUFNfUjZfQ04xN18xLAorTVNHX0lEX1VEUFNfUjZfQ04xN18yLAorTVNHX0lEX1VEUFNfUjZfQ04xOF8xLAorTVNHX0lEX1VEUFNfUjZfQ04xOF8yLAorTVNHX0lEX1VEUFNfUjZfQ04xOV8xLAorTVNHX0lEX1VEUFNfUjZfQ04xOV8yLAorTVNHX0lEX1VEUFNfUjZfQ04yMCwKK01TR19JRF9VRFBTX1I2X0NOMjEsCitNU0dfSURfVURQU19SNl9DTjIyLAorTVNHX0lEX1VEUFNfUjZfQ045MF8xLAorTVNHX0lEX1VEUFNfUjZfQ045MF8yLAorTVNHX0lEX1VEUFNfUjZfQ045MV8xLAorTVNHX0lEX1VEUFNfUjZfQ045MV8yLAorTVNHX0lEX1VEUFNfUjZfUFcwMV8xLAorTVNHX0lEX1VEUFNfUjZfUFcwMV8yLAorTVNHX0lEX1VEUFNfUjZfUFcwMiwKK01TR19JRF9VRFBTX1I2X1BXMDMsCitNU0dfSURfVURQU19SNl9QVzA0LAorTVNHX0lEX1VEUFNfUjZfUFcwNSwKK01TR19JRF9VRFBTX1I2X1BXMDZfMSwKK01TR19JRF9VRFBTX1I2X1BXMDZfMiwKK01TR19JRF9VRFBTX1I2X1BXMDZfMywKK01TR19JRF9VRFBTX1I2X1BXMDdfMSwKK01TR19JRF9VRFBTX1I2X1BXMDdfMiwKK01TR19JRF9VRFBTX1I2X1BXMDdfMywKK01TR19JRF9VRFBTX1I2X1BXMDhfMSwKK01TR19JRF9VRFBTX1I2X1BXMDhfMiwKK01TR19JRF9VRFBTX1I2X1BXMDhfMywKK01TR19JRF9VRFBTX1I2X0NNMDFfMSwKK01TR19JRF9VRFBTX1I2X0NNMDFfMiwKK01TR19JRF9VRFBTX1I2X0NNMDJfMSwKK01TR19JRF9VRFBTX1I2X0NNMDJfMiwKK01TR19JRF9VRFBTX1I2X0NNMDNfMSwKK01TR19JRF9VRFBTX1I2X0NNMDNfMiwKK01TR19JRF9VRFBTX1I2X0NNMDQsCitNU0dfSURfVURQU19SNl9DTTA1XzEsCitNU0dfSURfVURQU19SNl9DTTA1XzIsCitNU0dfSURfVURQU19SNl9ISTAxXzEsCitNU0dfSURfVURQU19SNl9ISTAxXzIsCitNU0dfSURfVURQU19SNl9ISTAyXzEsCitNU0dfSURfVURQU19SNl9ISTAyXzIsCitNU0dfSURfVURQU19SNl9ISTAzXzEsCitNU0dfSURfVURQU19SNl9ISTAzXzIsCitNU0dfSURfVURQU19SNl9ISTA0XzEsCitNU0dfSURfVURQU19SNl9ISTA0XzIsCitNU0dfSURfVURQU19SNl9SRzAxXzEsCitNU0dfSURfVURQU19SNl9SRzAxXzIsCitNU0dfSURfVURQU19SNl9SRzAyLAorTVNHX0lEX1VEUFNfUjZfUkcwM18xLAorTVNHX0lEX1VEUFNfUjZfUkcwM18yLAorTVNHX0lEX1VEUFNfUjZfUkcwNF8xLAorTVNHX0lEX1VEUFNfUjZfUkcwNF8yLAorTVNHX0lEX1VEUFNfUjZfQUcwMV8xLAorTVNHX0lEX1VEUFNfUjZfQUcwMV8yLAorTVNHX0lEX1VEUFNfUjZfQUcwMl8xLAorTVNHX0lEX1VEUFNfUjZfQUcwMl8yLAorTVNHX0lEX1VEUFNfUjZfQUcwM18xLAorTVNHX0lEX1VEUFNfUjZfQUcwM18yLAorTVNHX0lEX1VEUFNfUjZfVEYwMV8xLAorTVNHX0lEX1VEUFNfUjZfVEYwMV8yLAorTVNHX0lEX1VEUFNfUjZfVEYwMl8xLAorTVNHX0lEX1VEUFNfUjZfVEYwMl8yLAorTVNHX0lEX1VEUFNfUjZfQ0QwMV8xLAorTVNHX0lEX1VEUFNfUjZfQ1NEX0hJMDFfMSwKK01TR19JRF9VRFBTX1I2X0NTRF9ISTAxXzIsCitNU0dfSURfVURQU19SNl9DU0RfSEkwMl8xLAorTVNHX0lEX1VEUFNfUjZfQ1NEX0hJMDJfMiwKK01TR19JRF9VRFBTX1I2X0NTRF9ISTAzXzEsCitNU0dfSURfVURQU19SNl9DU0RfSEkwM18yLAorTVNHX0lEX1VEUFNfUjZfQ1NEX0hJMDRfMSwKK01TR19JRF9VRFBTX1I2X0NTRF9ISTA0XzIsCitNU0dfSURfVURQU19SNl9DU0RfUkcwMV8xLAorTVNHX0lEX1VEUFNfUjZfQ1NEX1JHMDFfMiwKK01TR19JRF9VRFBTX1I2X0NTRF9SRzAyLAorTVNHX0lEX1VEUFNfUjZfQ1NEX1JHMDNfMSwKK01TR19JRF9VRFBTX1I2X0NTRF9SRzAzXzIsCitNU0dfSURfVURQU19SNl9DU0RfUkcwNF8xLAorTVNHX0lEX1VEUFNfUjZfQ1NEX1JHMDRfMiwKK01TR19JRF9VRFBTX1I2X0NTRF9BRzAxXzEsCitNU0dfSURfVURQU19SNl9DU0RfQUcwMV8yLAorTVNHX0lEX1VEUFNfUjZfQ1NEX0FHMDJfMSwKK01TR19JRF9VRFBTX1I2X0NTRF9BRzAyXzIsCitNU0dfSURfVURQU19SNl9DU0RfUFcwMiwKK01TR19JRF9VRFBTX1I2X0NTRF9QVzAzLAorTVNHX0lEX1VEUFNfUjZfQUdMMDFfMSwKK01TR19JRF9VRFBTX1I2X0FHTDAxXzIsCitNU0dfSURfVURQU19SNl9BR0wwMl8xLAorTVNHX0lEX1VEUFNfUjZfQUdMMDJfMiwKK01TR19JRF9VRFBTX1I2X0FHTF9ISTAxXzFfQUNLLAorTVNHX0lEX1VEUFNfUjZfQUdMX0hJMDFfMV9GQUxTRV9BQ0ssCitNU0dfSURfVURQU19SNl9BR0xfSEkwMV8yX0FDSywKK01TR19JRF9VRFBTX1I2X0FHTF9ISTAxXzJfRkFMU0VfQUNLLAorTVNHX0lEX1VEUFNfUjZfQUdMX0FHMDFfMSwKK01TR19JRF9VRFBTX1I2X0FHTF9BRzAxXzIsCitNU0dfSURfVURQU19SNl9NRTAxXzEsCitNU0dfSURfVURQU19SNl9NRTAxXzIsCitNU0dfSURfVURQU19SNl9NRTAyXzEsCitNU0dfSURfVURQU19SNl9NRTAyXzIsCitNU0dfSURfVURQU19SNl9NRTAyXzMsCitNU0dfSURfVURQU19SNl9NRTAzXzEsCitNU0dfSURfVURQU19SNl9NRTAzXzIsCitNU0dfSURfVURQU19SNl9NRTAzXzMsCisvLyBfX1VNVFNfUjdfXworTVNHX0lEX1VEUFNfUjdfSFNEUEFfMDEsCitNU0dfSURfVURQU19SN19IU0RQQV8wMiwKK01TR19JRF9VRFBTX1I3X0hTRFBBXzAzLAorTVNHX0lEX1VEUFNfUjdfSFNEUEFfMDQsCitNU0dfSURfVURQU19SN19IU0RQQV8wNSwKK01TR19JRF9VRFBTX1I3X0hTRFBBXzA2LAorTVNHX0lEX1VEUFNfUjdfSFNEUEFfMDcsCitNU0dfSURfVURQU19SN19IU0RQQV8wOCwKK01TR19JRF9VRFBTX1I3X0NQQ18wMSwKK01TR19JRF9VRFBTX1I3X0NQQ18wMiwKK01TR19JRF9VRFBTX1I3X0NQQ18wMywKK01TR19JRF9VRFBTX1I3X0NQQ18wNCwKK01TR19JRF9VRFBTX1I3X0NQQ18wNSwKK01TR19JRF9VRFBTX1I3X0NQQ18wNiwKK01TR19JRF9VRFBTX1I3X0NQQ18wNywKK01TR19JRF9VRFBTX1I3X0NQQ18wOCwKK01TR19JRF9VRFBTX1I3X0NQQ18wOSwKK01TR19JRF9VRFBTX1I3X0NQQ18xMCwKK01TR19JRF9VRFBTX1I3X0NQQ18xMSwKK01TR19JRF9VRFBTX1I3X0NQQ18xMiwKK01TR19JRF9VRFBTX1I3X0NQQ18xMywKK01TR19JRF9VRFBTX1I3X0NQQ18xNCwKK01TR19JRF9VRFBTX1I3X0NQQ18xNSwKK01TR19JRF9VRFBTX1I3X0NQQ18xNiwKK01TR19JRF9VRFBTX1I3X0ZEUENIXzAxLAorTVNHX0lEX1VEUFNfUjdfRkRQQ0hfMDIsCitNU0dfSURfVURQU19SN19GRFBDSF8wMywKK01TR19JRF9VRFBTX1I3X0ZEUENIXzA0LAorTVNHX0lEX1VEUFNfUjdfRkRQQ0hfMDUsCitNU0dfSURfVURQU19SN19FRkFDSF8wMSwKK01TR19JRF9VRFBTX1I3X0VGQUNIXzAyLAorTVNHX0lEX1VEUFNfUjdfRUZBQ0hfMDMsCitNU0dfSURfVURQU19SN19FRkFDSF8wNCwKK01TR19JRF9VRFBTX1I3X0VGQUNIXzA1LAorTVNHX0lEX1VEUFNfUjdfRUZBQ0hfMDYsCitNU0dfSURfVURQU19SN19FRkFDSF8wNywKK01TR19JRF9VRFBTX1I3X1RGMDFfMSwKK01TR19JRF9VRFBTX1I3X1RGMDFfMiwKK01TR19JRF9VRFBTX1I3X0YwMSwKK01TR19JRF9VRFBTX1I3X0YwMiwKK01TR19JRF9VRFBTX1I3X0YwMywKK01TR19JRF9VRFBTX1I3X0YwNCwKK01TR19JRF9VRFBTX1I3X0YwNSwKK01TR19JRF9VRFBTX1I3X0YwNiwKK01TR19JRF9VRFBTX1I3X0YwNywKK01TR19JRF9VRFBTX1I3X0YwOCwKK01TR19JRF9VRFBTX1I3X0YwOSwKK01TR19JRF9VRFBTX1I4X0YwMSwKK01TR19JRF9VRFBTX1I4X0YwMiwKK01TR19JRF9VRFBTX1I4X0YwMywKK01TR19JRF9VRFBTX1I4X0YwNCwKK01TR19JRF9VRFBTX1I4X0YwNSwKK01TR19JRF9VRFBTX1I4X0YwNiwKKworLy8gX19VTVRTX1I3X18KKy8vX19VTVRTX1I4X18KKworTVNHX0lEX1VEUFNfUjhfRENIU0RQQV8wMSwKK01TR19JRF9VRFBTX1I4X0RDSFNEUEFfMDIsCitNU0dfSURfVURQU19SOF9EQ0hTRFBBXzAzLAorTVNHX0lEX1VEUFNfUjhfRENIU0RQQV8wNCwKK01TR19JRF9VRFBTX1I4X0RDSFNEUEFfMDUsCitNU0dfSURfVURQU19SOF9EQ0hTRFBBXzA2LAorTVNHX0lEX1VEUFNfUjhfRENIU0RQQV8wNywKK01TR19JRF9VRFBTX1I4X0RDSFNEUEFfMDgsCitNU0dfSURfVURQU19SOF9EQ0hTRFBBXzA5LAorTVNHX0lEX1VEUFNfUjhfRENIU0RQQV8xMCwKK01TR19JRF9VRFBTX1I4X0RDSFNEUEFfMTEsCitNU0dfSURfVURQU19SOF9EQ0hTRFBBXzEyLAorTVNHX0lEX1VEUFNfUjhfRENIU0RQQV8xMywKK01TR19JRF9VRFBTX1I4X0RDSFNEUEFfMTQsCitNU0dfSURfVURQU19SOF9EQ0hTRFBBXzE1LAorTVNHX0lEX1VEUFNfUjhfTEVTU01PREVfMDEsCitNU0dfSURfVURQU19SOF9MRVNTTU9ERV8wMiwKK01TR19JRF9VRFBTX1I4X0xFU1NNT0RFXzAzLAorTVNHX0lEX1VEUFNfUjhfTEVTU01PREVfMDQsCitNU0dfSURfVURQU19SOF9MRVNTTU9ERV8wNSwKK01TR19JRF9VRFBTX1I4X0NFRENIXzAxLAorTVNHX0lEX1VEUFNfUjhfQ0VEQ0hfMDIsCitNU0dfSURfVURQU19SOF9DRURDSF8wMywKK01TR19JRF9VRFBTX1I4X0NFRENIXzA0LAorTVNHX0lEX1VEUFNfUjhfQ0VEQ0hfMDUsCitNU0dfSURfVURQU19SOF9DRURDSF8wNiwKK01TR19JRF9VRFBTX1I4X0NFRENIXzA3LAorTVNHX0lEX1VEUFNfUjhfRkFDSERSWF8wMSwKK01TR19JRF9VRFBTX1I4X0ZBQ0hEUlhfMDIsCitNU0dfSURfVURQU19SOF9GQUNIRFJYXzAzLAorTVNHX0lEX1VEUFNfUjhfTTAxLAorTVNHX0lEX1VEUFNfUjhfTTAyLAorTVNHX0lEX1VEUFNfUjhfTTAzLAorTVNHX0lEX1VEUFNfUjhfTTA0LAorTVNHX0lEX1VEUFNfUjhfTTA1LAorTVNHX0lEX1VEUFNfUjhfTTA2LAorTVNHX0lEX1VEUFNfUjhfTTA3LAorTVNHX0lEX1VEUFNfUjhfTTA4LAorTVNHX0lEX1VEUFNfUjhfTTA5LAorTVNHX0lEX1VEUFNfUjhfTTEwLAorTVNHX0lEX1VEUFNfUjhfTUNQQzFfMDEsCitNU0dfSURfVURQU19SOF9NQ1BDMV8wMiwKK01TR19JRF9VRFBTX1I4X01DUEMyXzAxLAorTVNHX0lEX1VEUFNfUjhfTUNQQzJfMDIsCitNU0dfSURfVURQU19SOF9DUlMxLAorTVNHX0lEX1VEUFNfUjhfQ1JTMiwKKworLy9fX1VNVFNfUjhfXworLyogX19VTVRTX1I5X18gKi8KK01TR19JRF9VRFBTX1I5X0RCX0RDSFNEUEFfMDEsCitNU0dfSURfVURQU19SOV9URl8wMSwKK01TR19JRF9VRFBTX1I5X0RDSFNVUEFfMDEsCitNU0dfSURfVURQU19SOV9EQ0hTVVBBXzAyLAorTVNHX0lEX1VEUFNfUjlfRENIU1VQQV8wMywKK01TR19JRF9VRFBTX1I5X0RDSFNVUEFfMDQsCitNU0dfSURfVURQU19SOV9EQ0hTVVBBXzA1LAorTVNHX0lEX1VEUFNfUjlfRENIU1VQQV8wNiwKK01TR19JRF9VRFBTX1I5X0RDSFNVUEFfMDcsCitNU0dfSURfVURQU19SOV9EQ0hTVVBBXzA4LAorTVNHX0lEX1VEUFNfUjlfRENIU1VQQV8wOSwKK01TR19JRF9VRFBTX1I5X1BXMDEsCitNU0dfSURfVURQU19SOV9QVzAyLAorTVNHX0lEX1VEUFNfUjlfUFcwMywKK01TR19JRF9VRFBTX1I5X1BXMDQsCitNU0dfSURfVURQU19SOV9QVzA1LAorTVNHX0lEX1VEUFNfUjlfVEdQU18wMSwKK01TR19JRF9VRFBTX1I5X0hJMDEsCitNU0dfSURfVURQU19SOV9SRzAxLAorTVNHX0lEX1VEUFNfUjlfQUcwMSwKK01TR19JRF9VRFBTX1I5X0FHMDIsCitNU0dfSURfVURQU19SOV9DUENfMDEsCitNU0dfSURfVURQU19SOV9DUENfMDIsCitNU0dfSURfVURQU19SOV9DUENfMDMsCitNU0dfSURfVURQU19SOV9DUENfMDQsCitNU0dfSURfVURQU19SOV9DUENfMDUsCitNU0dfSURfVURQU19SOV9DUENfMDYsCitNU0dfSURfVURQU19SOV9DUENfMDcsCitNU0dfSURfVURQU19SOV9DUENfMDgsCitNU0dfSURfVURQU19SOV9DUENfMDksCitNU0dfSURfVURQU19SOV9DUENfMTAsCitNU0dfSURfVURQU19SOV9DUENfMTEsCitNU0dfSURfVURQU19SMTBfM0NIU0RQQV8wMSwKK01TR19JRF9VRFBTX1IxMF8zQ0hTRFBBXzAyLAorTVNHX0lEX1VEUFNfUjEwXzNDSFNEUEFfMDMsCitNU0dfSURfVURQU19SMTBfM0NIU0RQQV8wNCwKK01TR19JRF9VRFBTX1IxMF8zQ0hTRFBBXzA1LAorTVNHX0lEX1VEUFNfUjEwXzNDSFNEUEFfMDYsCitNU0dfSURfVURQU19SMTBfM0NIU0RQQV8wNywKK01TR19JRF9VRFBTX1IxMF8zQ0hTRFBBXzA4LAorTVNHX0lEX1VEUFNfUjEwX0xFU1NNT0RFXzAxLAorTVNHX0lEX1VEUFNfUjEwX0xFU1NNT0RFXzAyLAorTVNHX0lEX1VEUFNfUjEwX0xFU1NNT0RFXzAzLAorTVNHX0lEX1VEUFNfUjEwX00wMSwKK01TR19JRF9VRFBTX1IxMF9NMDIsCitNU0dfSURfVURQU19SMTBfTTAzLAorTVNHX0lEX1VEUFNfUjEwX00wNCwKKy8qIF9fVU1UU19SOV9fICovCisKK01TR19JRF9VRFBTX0lOVEVSX0ZSRVFfQ1JTX0lOX0lETEUsCitNU0dfSURfVURQU19JTlRSQV9GUkVRX0NSU19JTl9GQUNILAorTVNHX0lEX1VEUFNfSU5URVJfRlJFUV9DUlNfSU5fRkFDSCwKKworTVNHX0lEX1VEUFNfSU5UUkFfRlJFUV9SRVBPUlRJTkdfREVMQVksCitNU0dfSURfVURQU19JTlRSQV9GUkVRX1JFUE9SVElOR19ERUxBWV9JTl9GQURJTkcsCitNU0dfSURfVURQU19JTlRFUl9GUkVRX1JFUE9SVElOR19ERUxBWSwKK01TR19JRF9VRFBTX0FCU19JTlRSQV9GUkVRX0NQSUNIX1JTQ1AsCitNU0dfSURfVURQU19SRUxfSU5UUkFfRlJFUV9DUElDSF9SU0NQLAorTVNHX0lEX1VEUFNfUkVMX0lOVEVSX0ZSRVFfQ1BJQ0hfUlNDUCwKK01TR19JRF9VRFBTX0FCU19JTlRSQV9GUkVRX0NQSUNIX0VDSU8sCitNU0dfSURfVURQU19SRUxfSU5UUkFfRlJFUV9DUElDSF9FQ0lPLAorTVNHX0lEX1VEUFNfUkVMX0lOVEVSX0ZSRVFfQ1BJQ0hfRUNJTywKK01TR19JRF9VRFBTX0FCU19VVFJBX0NBUlJJRVJfUlNTSSwKK01TR19JRF9VRFBTX1JFTF9VVFJBX0NBUlJJRVJfUlNTSSwKK01TR19JRF9VRFBTX0lOVFJBX0ZSRVFfU0ZOX0NGTl9ESUZGLAorTVNHX0lEX1VEUFNfSU5URVJfRlJFUV9TRk5fQ0ZOX0RJRkYsCitNU0dfSURfVURQU19TRk5fU0ZOX0RJRkZfVFlQRTEsCitNU0dfSURfVURQU19VRV9UWF9QT1dFUiwKK01TR19JRF9VRFBTX0FMTF9NRUFTX1NUQVRJU1RJQywvKiBDU0QgcmVxdWVzdCAqLworCisvKiAyLjVHIE1lYXN1cmVtZW50ICovCisvKiAyRyBTdGFuZGJ5IDNHIEFjdGl2ZTogc3RhcnQgZnJvbSBVRFBTICovCitNU0dfSURfVURQU19HU01fTUVBU19JTl9OVUxMLCAvKiBHTTEgKi8KK01TR19JRF9VRFBTX0dTTV9NRUFTX0lOX0lETEUsIC8qIEdNMiAqLworTVNHX0lEX1VEUFNfR1NNX01FQVNfSU5fRkFDSCwgLyogR00zICovCitNU0dfSURfVURQU19HU01fUkVQT1JUSU5HX0RFTEFZLAorTVNHX0lEX1VEUFNfR1NNX1JFUE9SVElOR19ERUxBWV9OT19CU0lDLCAvKiBHTTUgKi8KK01TR19JRF9VRFBTX0FCU19HU01fQ0FSUklFUl9SU1NJLAorCisvKiAyRyBBY3RpdmUgM0cgU3RhbmRieTogc3RpbGwgc3RhcnQgZnJvbSBVRFBTICovCitNU0dfSURfVURQU19XQ0RNQV9NRUFTX0lOX1NDQU4sIC8qIFVNMSAqLworTVNHX0lEX1VEUFNfV0NETUFfTUVBU19JTl9JRExFLCAvKiBVTTIgKi8KK01TR19JRF9VRFBTX1dDRE1BX01FQVNfSU5fREVESSwgLyogVU0zICovCitNU0dfSURfVURQU19XQ0RNQV9NRUFTX0lOX1BJRExFLCAvKiBVTTQgKi8KK01TR19JRF9VRFBTX1dDRE1BX01FQVNfSU5fUFRYLCAvKiBVTTUgKi8KK01TR19JRF9VRFBTX1JFQ1VSU0lWRV9UQ1NfSU5fMkdfSURMRSwgLyogVU02ID0gQ1MxMihDU0QpIGFuZCBDUzEzKENTRCkgKi8KK01TR19JRF9VRFBTX1JFQ1VSU0lWRV9UQ1NfSU5fMkdfREVESSwgLyogVU03ID0gQ1M4KENTRCkgYW5kIENTOShDU0QpICovCisKK01TR19JRF9VRFBTX0dTTV9DUlNfVE9fVU1UUywgLypJUlQxKi8KK01TR19JRF9VRFBTX1VNVFNfQ1JTX1RPX0dTTSwgLypJUlQyKi8KK01TR19JRF9VRFBTX0dTTV9ISE9fVE9fVU1UUywgLypJUlQzKi8KK01TR19JRF9VRFBTX1VNVFNfSEhPX1RPX0dTTSwgLypJUlQ0Ki8KKworLyogTG9SeCAqLworTVNHX0lEX1VEUFNfQU1SX0xPUlgwMSwKKworLyogVURQU19VTklUX1RFU1QgKi8KK01TR19JRF9DUEhZX1VMX0RQQ0hfQ0IsCisKKy8qIEZvciBQaGFzZSAzIEVtdWxhdGlvbiAqLworTVNHX0lEX1VMMURfTE9PUEJBQ0tfUkVRLAorTVNHX0lEX1VMMURfTE9PUEJBQ0tfUkVTVUxUX0lORCwKK01TR19JRF9NT0RFTV9MT09QQkFDS19SRVEsCitNU0dfSURfTU9ERU1fTE9PUEJBQ0tfUkVTVUxUX0lORCwKKworLyogRm9yIFRQQyBDRVIoQ29tbWFuZCBFcnJvciBSYXRlKSAgRXZhbHVhdGlvbiAqLworTVNHX0lEX1VMMURfRExfVFBDX1JFU1VMVF9JTkQsCisKK01TR19JRF9VRFBTX0VWRU5UXzNCX1RSSUdHRVJFRCwKK01TR19JRF9VRFBTX0VWRU5UXzNDX1RSSUdHRVJFRCwKK01TR19JRF9VRFBTX0FCT1JUX1NVQ0NFU1MsCisKK01TR19JRF9VRFBTX1NUQVJUX1JVTl9MMVNfQ0FTRSwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9VRFBTX0NPREVfVEFJTCkKKworI2VuZGlmICAvL19VRFBTX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC91aW1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VpbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NWFhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91aW1fbXNnaWQuaApAQCAtMCwwICsxLDMxNyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZJTEUgTkFNRSAgIDp1aW1fbXNnaWQuaAorKgorKiBERVNDUklQVElPTiA6CisqCisqCisqCisqIEhJU1RPUlkgICAgIDoKKyogICAgIFNlZSBMb2cgYXQgZW5kIG9mIGZpbGUKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfVUlNX01TR19JRF9ICisjZGVmaW5lIF9VSU1fTVNHX0lEX0gKKworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfQ1VJTV9DT0RFX0JFR0lOICkKKworICAgTVNHX0lEX1VJTV9SQVdfQ01EX01TRyA9IE1TR19JRF9DVUlNX0NPREVfQkVHSU4gKyAweDAwMDAsIC8qIDB4ODg1OCBiYXNlICovCisgICBNU0dfSURfVUlNX1NFTEVDVF9NU0csCisgICBNU0dfSURfVUlNX1NUQVRVU19NU0csCisgICBNU0dfSURfVUlNX1JFQURfQklOQVJZX01TRywKKyAgIE1TR19JRF9VSU1fVVBEQVRFX0JJTkFSWV9NU0csCisgICBNU0dfSURfVUlNX1JFQURfUkVDT1JEX01TRywKKyAgIE1TR19JRF9VSU1fVVBEQVRFX1JFQ09SRF9NU0csCisgICBNU0dfSURfVUlNX1NFQVJDSF9SRUNPUkRfTVNHLAorICAgTVNHX0lEX1VJTV9WRVJJRllfQ0hWX01TRywKKyAgIE1TR19JRF9VSU1fQ0hBTkdFX0NIVl9NU0csCisgICBNU0dfSURfVUlNX0VOQUJMRV9DSFZfTVNHLAorICAgTVNHX0lEX1VJTV9ESVNBQkxFX0NIVl9NU0csCisgICBNU0dfSURfVUlNX1VOQkxPQ0tfQ0hWX01TRywKKyAgIE1TR19JRF9VSU1fQlNfQ0hBTExFTkdFX01TRywKKyAgIE1TR19JRF9VSU1fQ09ORklSTV9TU0RfTVNHLAorICAgTVNHX0lEX1VJTV9SVU5fQ0FWRV9NU0csCisgICBNU0dfSURfVUlNX0dFTkVSQVRFX0tFWV9WUE1fTVNHLAorICAgTVNHX0lEX1VJTV9TVE9SRV9FU05fTUVfTVNHLAorICAgTVNHX0lEX1VJTV9ITFBfQUNDRVNTX0NIQVBfUkVRX01TRywKKworICAgTVNHX0lEX1VJTV8zR1BEX09QQ19HRVRfTVNHLCAgIC8qIG9ic29sZXRlISAqLyAvKkdldCBFRk1FM0dQRE9QQyovCisgICBNU0dfSURfVUlNXzNHUERfT1BDX1VQREFURV9NU0csICAvKlVwZGF0ZSBFRk1FM0dQRE9QQyovCisgICBNU0dfSURfVUlNXzNHUERfT1BNX0dFVF9NU0csICAgLyogb2Jzb2xldGUhICovIC8qR2V0IEVGM0dQRE9QTSovCisgICBNU0dfSURfVUlNXzNHUERfT1BNX1VQREFURV9NU0csICAvKlVwZGF0ZSBFRjNHUERPUE0qLworICAgTVNHX0lEX1VJTV8zR1BEX1NJUENBUF9HRVRfTVNHLCAgIC8qR2V0IEVGU0lQQ0FQKi8KKyAgIE1TR19JRF9VSU1fM0dQRF9NSVBDQVBfR0VUX01TRywgIC8qIEdldCBFRk1JUENBUCAqLworICAgTVNHX0lEX1VJTV8zR1BEX1NJUFVQUF9HRVRfTVNHLCAgLyogR2V0IEVGU0lQVVBQICovCisgICBNU0dfSURfVUlNXzNHUERfTUlQVVBQX0dFVF9NU0csICAvKkdldCBFRk1JUFVQUCAqLworICAgTVNHX0lEX1VJTV8zR1BEX1NJUFNQX0dFVF9NU0csICAgIC8qIEdldCBFRlNJUFNQICovCisgICBNU0dfSURfVUlNXzNHUERfU0lQU1BfVVBEQVRFX01TRywgIC8qIFVwZGF0ZSBFRlNJUFNQICovCisgICBNU0dfSURfVUlNXzNHUERfTUlQU1BfR0VUX01TRywgICAgICAgIC8qR2V0IEVGTUlQU1AqLworICAgTVNHX0lEX1VJTV8zR1BEX01JUFNQX1VQREFURV9NU0csICAvKiBVcGRhdGUgRUZNSVBTUCAqLworICAgTVNHX0lEX1VJTV8zR1BEX1NJUFBBUFNTX0dFVF9NU0csICAgLyogR2V0IFNJUFBBUFNTICovCisgICBNU0dfSURfVUlNXzNHUERfU0lQUEFQU1NfVVBEQVRFX01TRywgLyogVXBkYXRlIFNJUFBBUFNTKi8KKworICAgTVNHX0lEX1VJTV8zR1BEX0lQVjZfQ0FQX0dFVF9NU0csICAgICAgICAgICAgLyogb2Jzb2xldGUhICovIC8qIEdldCBFRklQVjZDQVAgN0YyNS82Rjc3IGluIFVJTSBvciA3RkZGLzZGODcgaW4gQ1NJTSAqLworICAgTVNHX0lEX1VJTV8zR1BEX01JUF9GTEFHU19HRVRfTVNHLCAgICAgICAgICAgLyogb2Jzb2xldGUhICovIC8qIEdldCBFRk1JUEZsYWdzICA3RjI1LzZGNzggaW4gVUlNIG9yIDdGRkYvNkY4NCBpbiBDU0lNICovCisgICBNU0dfSURfVUlNXzNHUERfVENQX0NPTkZJR19HRVRfTVNHLCAgICAgICAgICAvKiBvYnNvbGV0ZSEgKi8gLyogR2V0IEVGVENQQ09ORklHIDdGMjUvNkY3OSBpbiBVSU0gb3IgN0ZGRi82Rjg4IGluIENTSU0gKi8KKyAgIE1TR19JRF9VSU1fM0dQRF9EQVRBX0dFTkVSSUNfQ09ORklHX0dFVF9NU0csIC8qIG9ic29sZXRlISAqLyAvKiBHZXQgRUZEQ0cgICAgICAgN0YyNS82RjdBIGluIFVJTSBvciA3RkZGLzZGODkgaW4gQ1NJTSAqLworICAgTVNHX0lEX1VJTV8zR1BEX1VQUEVYVF9HRVRfTVNHLCAgICAgICAgICAgICAgLyogR2V0IEVGU0lQVVBQRVhUIDdGMjUvNkY3RCBpbiBVSU0gb3IgN0ZGRi82Rjg1IGluIENTSU0sIHJlZmVycmVkIHRvIGFzIDNHUERVcHAgaW4gbGF0ZXN0IFNwZWMgKi8KKworICAgTVNHX0lEX1VJTV9NU19LRVlfUkVRVUVTVF9NU0csCisgICBNU0dfSURfVUlNX0tFWV9HRU5FUkFUSU9OX1JFUVVFU1RfTVNHLAorICAgTVNHX0lEX1VJTV9DT01NSVRfTVNHLAorICAgTVNHX0lEX1VJTV9WQUxJREFURV9NU0csCisgICBNU0dfSURfVUlNX0NPTkZJR1VSQVRJT05fUkVRVUVTVF9NU0csCisgICBNU0dfSURfVUlNX0RPV05MT0FEX1JFUVVFU1RfTVNHLAorICAgTVNHX0lEX1VJTV9TU1BSX0NPTkZJR1VSQVRJT05fUkVRVUVTVF9NU0csCisgICBNU0dfSURfVUlNX1NTUFJfRE9XTkxPQURfUkVRVUVTVF9NU0csCisKKyAgIE1TR19JRF9VSU1fUFVaTF9DT05GSUdVUkFUSU9OX1JFUVVFU1RfTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fUFVaTF9ET1dOTE9BRF9SRVFVRVNUX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNXzNHUERfQ09ORklHVVJBVElPTl9SRVFVRVNUX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNXzNHUERfRE9XTkxPQURfUkVRVUVTVF9NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV9NTURfQ09ORklHVVJBVElPTl9SRVFVRVNUX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNX01NRF9ET1dOTE9BRF9SRVFVRVNUX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNX01NU19DT05GSUdVUkFUSU9OX1JFUVVFU1RfTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fTU1TX0RPV05MT0FEX1JFUVVFU1RfTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fU1lTVEVNX1RBR19DT05GSUdVUkFUSU9OX1JFUVVFU1RfTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fU1lTVEVNX1RBR19ET1dOTE9BRF9SRVFVRVNUX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNX01NU1NfQ09ORklHVVJBVElPTl9SRVFVRVNUX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNX01NU1NfRE9XTkxPQURfUkVRVUVTVF9NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV9TRUNVUkVfTU9ERV9NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV9GUkVTSF9NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV9TRVJWSUNFX0tFWV9HRU5FUkFUSU9OX1JFUVVFU1RfTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fQkNNQ1NfTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fQVBQTElDQVRJT05fQVVUSEVOVElPTl9NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV9VTUFDX0dFTkVSQVRJT05fTVNHLCAvKiBvYnNvbGV0ZSEgKi8KKyAgIE1TR19JRF9VSU1fQ09ORklSTV9LRVlTX01TRywgIC8qIG9ic29sZXRlISAqLworCisgICBNU0dfSURfVUlNX09UQVBBX1JFUVVFU1RfTVNHLAorICAgTVNHX0lEX1VJTV9PVEFfUlVOX0NBVkVfTVNHLAorCisgICBNU0dfSURfVUlNX0hSUERfTUQ1X0FVVEhfTVNHLAorICAgTVNHX0lEX1VJTV9DQVJEX1RZUEVfR0VUX01TRywKKyAgIE1TR19JRF9VSU1fM0dfU0lQX0NIQVBfUkVRX01TRywKKyAgIE1TR19JRF9VSU1fM0dfTUlQX01OSEFfQVVUSF9SRVFfTVNHLAorICAgTVNHX0lEX1VJTV8zR19NSVBfUlJRX0hBU0hfUkVRX01TRywKKyAgIE1TR19JRF9VSU1fM0dfTUlQX01OQUFBX0FVVEhfUkVRX01TRywKKyAgIE1TR19JRF9VSU1fR0VUX0lTSU1fSU1QVV9NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV9BUFBfSU5JVF9URVJNX01TRywgLyogVUlNIGFwcGxpY2F0aW9uIGluaXRpYWxpemF0aW9uIG9yIHRlcm1pbmF0aW9uICovCisgICAKKyAgIE1TR19JRF9VSU1fRVhUX0lORk9fR0VUX01TRywKKyAgIE1TR19JRF9VSUNDX0xPR0lfQ0hBTl9PUEVOX01TRywKKyAgIE1TR19JRF9VSUNDX0xPR0lfQ0hBTl9DTE9TRV9NU0csCisgICBNU0dfSURfVUlNX1JFU0VUX01TRywKKworICAgTVNHX0lEX1VJTV9HRVRfUFJMX01TRywKKyAgIE1TR19JRF9VSU1fR0VUX0VYVF9QUkxfTVNHLAorICAgTVNHX0lEX1VJTV9HRVRfRUZQTF9NU0csIC8qIG9ic29sZXRlISAqLworCisgICBNU0dfSURfVUlNX1RFUk1JTkFMX1BST0ZJTEVfTVNHID0gTVNHX0lEX0NVSU1fQ09ERV9CRUdJTiArIDB4MEEwLAorICAgTVNHX0lEX1VJTV9URVJNSU5BTF9SRVNQT05TRV9NU0csCisgICBNU0dfSURfVUlNX0VOVkVMT1BFX01TRywKKyAgIE1TR19JRF9VSU1fVVRLX1JFRlJFU0hfTVNHLAorICAgTVNHX0lEX1VJTV9GSUxFX0NIQU5HRV9SU1BfTVNHLAorICAgTVNHX0lEX1VJTV9QUk9BQ1RJVkVfUkVHSVNURVJfTVNHLCAgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNX1BST0FDVElWRV9QT0xMSU5HX01TRywKKyAgIE1TR19JRF9DMktfVUlNX1NBVF9GSUxFX0NIQU5HRV9SRVMsCisKKworICAgTVNHX0lEX1VJTV8zR19BS0FfQVVUSF9SRVFfTVNHID0gTVNHX0lEX0NVSU1fQ09ERV9CRUdJTiArIDB4MEMwLAorICAgTVNHX0lEX1VJTV8zR19BS0FfUkVBRF9FRktFWVNQU19NU0csIC8qIG9ic29sZXRlISAqLworICAgTVNHX0lEX1VJTV8zR19BS0FfVVBEQVRFX0VGS0VZU1BTX01TRywgLyogb2Jzb2xldGUhICovCisgICBNU0dfSURfVUlNX0dFVF9VU0lNX0FEX01TRywgLypBZG1pbmlzdHJhdGl2ZSBEYXRhKi8KKyAgIE1TR19JRF9VSU1fR0VUX1VTSU1fSU1TSV9NU0csCisgICBNU0dfSURfVUlNX1VTSU1fVVNUX0RBVEFfR0VUX01TRywgICAvKiBHZXQgdXN0ICovCisgICBNU0dfSURfVUlNX1VTSU1fRVNUX0RBVEFfR0VUX01TRywgICAvKiBHZXQgZXN0ICovCisgICBNU0dfSURfVUlNX1VTSU1fQUNMX0RBVEFfR0VUX01TRywgICAvKiBHZXQgYWNsICovCisKKyAgIE1TR19JRF9VSU1fRVhURU5ERURfUkFXX0NNRF9NU0csCisgICAKKyNpZiBkZWZpbmVkIChfX1RDMTBfXykgJiYgZGVmaW5lZCAoX19UQzEwX0lQQ19DRE1BX1NVUFBPUlRfXykgCisgICBNU0dfSURfVUlNX1JFRlJFU0hfQ09ORl9JTkRfTVNHLAorI2VuZGlmCisKKyAgIE1TR19JRF9VSU1fR0VUX05BTV9EQVRBX01TRyA9IE1TR19JRF9DVUlNX0NPREVfQkVHSU4gKyAweDAxMDAsCisgICBNU0dfSURfVUlNX1VQREFURV9OQU1fREFUQV9NU0csCisgICBNU0dfSURfVUlNX0dFVF9DU1RfTVNHLAorICAgTVNHX0lEX1VJTV9HRVRfVUlNSURfRVVJTUlEX01TRywKKyAgIE1TR19JRF9VSU1fR0VUX0lNU0lfTVNHLAorCisgICBNU0dfSURfVUlNX09UQV9VUERBVEVfTkFNX01TRywvKiBOQU0gZGF0YSB1cGRhdGVkIGJ5IE9UQVBBL09UQVNQICovCisKKworICAgTVNHX0lEX1VJTV9HRVRfUEhCX1JFQ19QQVJBTVNfTVNHPSBNU0dfSURfQ1VJTV9DT0RFX0JFR0lOICsgMHgwMjAwLAorICAgTVNHX0lEX1VJTV9HRVRfUEhCX1JFQ19NU0csCisgICBNU0dfSURfVUlNX1VQREFURV9QSEJfUkVDX01TRywKKyAgIE1TR19JRF9VSU1fRVJBU0VfUEhCX1JFQ19NU0csCisgICBNU0dfSURfVUlNX0dFVF9TTVNfUkVDX1BBUkFNU19NU0csCisgICBNU0dfSURfVUlNX0dFVF9TTVNfUkVDX01TRywKKyAgIE1TR19JRF9VSU1fVVBEQVRFX1NNU19SRUNfTVNHLAorICAgTVNHX0lEX1VJTV9FUkFTRV9TTVNfUkVDX01TRywKKworICAgTVNHX0lEX1VJTV9HRVRfU1RBVFVTX01TRywKKyAgIE1TR19JRF9VSU1fQ0FSRF9ERVRFQ1RfTVNHLAorCisgICAvKiBDSFYgQVBQICovCisgICBNU0dfSURfVUlNX0FQUF9WRVJJRllfQ0hWX01TRywKKyAgIE1TR19JRF9VSU1fQVBQX0NIQU5HRV9DSFZfTVNHLAorICAgTVNHX0lEX1VJTV9BUFBfRU5BQkxFX0NIVl9NU0csCisgICBNU0dfSURfVUlNX0FQUF9ESVNBQkxFX0NIVl9NU0csCisgICBNU0dfSURfVUlNX0FQUF9VTkJMT0NLX0NIVl9NU0csCisKKyAgIE1TR19JRF9VSU1fR0VUX0VGX1BST1BFUlRZX01TRywKKyAgIE1TR19JRF9VSU1fU0VUX0NBUkRUWVBFX01TRywKKworICAgTVNHX0lEX1VJTV9GVUxMX1JFQ09WRVJZX01TRywKKyAgIE1TR19JRF9VSU1fRkFTVF9SRUNPVkVSWV9NU0csCisgICBNU0dfSURfVUlNX1VUS19SRUZSRVNIX1RJTUVPVVRfTVNHLAorICAgTVNHX0lEX1VJTV9CVFNBUF9DT05ORUNUX01TRywKKyAgIE1TR19JRF9VSU1fQlRTQVBfRElTQ09OTkVDVF9NU0csCisgICBNU0dfSURfVUlNX0JUU0FQX1BPV0VSX09OX01TRywKKyAgIE1TR19JRF9VSU1fQlRTQVBfUE9XRVJfT0ZGX01TRywKKyAgIE1TR19JRF9VSU1fQlRTQVBfUkVTRVRfTVNHLAorICAgTVNHX0lEX1VJTV9CVFNBUF9UUkFOU0ZFUl9BUERVX01TRywKKworCisgICBNU0dfSURfVUlNX0dFVF9GRE5fUkVDX01TRywKKyAgIE1TR19JRF9VSU1fVVBEQVRFX0ZETl9SRUNfTVNHLAorICAgTVNHX0lEX1VJTV9FUkFTRV9GRE5fUkVDX01TRywKKyAgIE1TR19JRF9VSU1fU0VUX0ZETl9TVEFUVVNfTVNHLAorICAgTVNHX0lEX1VJTV9HRVRfRkROX1NUQVRVU19NU0csCisgICBNU0dfSURfVUlNX0dFVF9TTVNfQ0FQX01TRywKKyAgIE1TR19JRF9VSU1fT1RBX0NPTVBMRVRFX0lORF9NU0csCisgICAKKyAgIE1TR19JRF9VSU1fQ0FMTF9TVEFUVVNfTVNHLAorICAgTVNHX0lEX1VJTV9JTVNfUkVHSVNURVJfU1RBVFVTX01TRywKKworCisgICBNU0dfSURfVUlNX05PVElGWV9SRUdJU1RFUl9NU0cgPSBNU0dfSURfQ1VJTV9DT0RFX0JFR0lOICsgMHgwMzAwLAorICAgTVNHX0lEX1VJTV9TRVRfUEFSTV9NU0csCisgICBNU0dfSURfVUlNX0dFVF9QQVJNX01TRywKKyAgIE1TR19JRF9VSU1fQUNDRVNTX09QVElPTl9NU0csCisgICAKKyAgIE1TR19JRF9DMktfVUlNX1NJTV9BUERVX0FDQ0VTU19DTkYgPSBNU0dfSURfQ1VJTV9DT0RFX0JFR0lOICsgMHgwMzIwICwKKyAgIE1TR19JRF9DMktfVUlNX1NJTV9FUlJPUl9JTkQsCisgICBNU0dfSURfQzJLX1VJTV9DQVJEX1NUQVRVU19JTkZPX0lORCwKKyAgIE1TR19JRF9DMktfVUlNX0lOREVYX1JFR0lTVEVSX0NORiwKKyAgIE1TR19JRF9DMktfVUlNX0lNU19ERVJFR19USU1FUl9NU0csICAgIAorCisgICBNU0dfSURfQzJLX1VJTV9TSU1fQVBEVV9BQ0NFU1NfUkVRLCAgIAorICAgTVNHX0lEX0MyS19VSU1fR0VUX01ETl9SRVEsCisgICBNU0dfSURfQzJLX1VJTV9HRVRfSE9NRV9TSURfTklEX1JFUSwKKyAgIE1TR19JRF9DMktfVUlNX0dFVF9JTVNJX1JFUSwKKyAgIE1TR19JRF9DMktfVUlNX0dFVF9JQ0NJRF9SRVEsCisgICBNU0dfSURfQzJLX1VJTV9HRVRfQ0FSRF9BUFBfSU5GT19SRVEsIAorICAgTVNHX0lEX0MyS19VSU1fU0VUX1BPV0VSX09OX01PREVfUkVRLAorICAgTVNHX0lEX0MyS19VSU1fU0FUX1RFUk1JTkFMX1JTUF9SRVEsCisgICBNU0dfSURfQzJLX1VJTV9TQVRfVEVSTUlOQUxfUlNQX0NORiwKKyAgIE1TR19JRF9DMktfVUlNX1NBVF9FTlZFTE9QRV9SRVEsCisgICBNU0dfSURfQzJLX1VJTV9TQVRfRU5WRUxPUEVfQ05GLAorICAgTVNHX0lEX0MyS19VSU1fU0FUX1BST0FDVElWRV9DTURfSU5ELAorICAgTVNHX0lEX0MyS19VSU1fRklMRV9DSEFOR0VEX0lORF9NU0csCisgICAKKyAgIE1TR19JRF9DMktfVUlNX1ZTSU1fU1RBVFVTX0lORCwKKyAgIE1TR19JRF9DMktfVUlNX0dFVF9VSU1JRF9SRVEsCisgICBNU0dfSURfQzJLX1NJTV9SRUFEX1JFUSwKKyAgIE1TR19JRF9DMktfU0lNX1JFQURfQ05GLAorI2lmIGRlZmluZWQgKF9fVEMxMF9fKSAgIAorICAgTVNHX0lEX0MyS19VSU1fQ0FSRF9FUlJPUl9JTkQsCisjZW5kaWYKKworICAgTVNHX0lEX1VJTV9TSU1fQzJLX0JBVENIX0ZJTEVfUkVBRF9DTkYsCisgICBNU0dfSURfVUlNX1NJTV9BUERVX0FDQ0VTU19DTkYsCisgICBNU0dfSURfVUlNX1NJTV9SRUFEX0NORiwgIAorICAgTVNHX0lEX1VJTV9TSU1fRVJST1JfSU5ELAorICAgTVNHX0lEX1VJTV9TSU1fU1RBVFVTX0lORCwKKyAgIE1TR19JRF9VSU1fU0FUX1RFUk1JTkFMX1JTUF9DTkYsCisgICBNU0dfSURfVUlNX1NBVF9FTlZFTE9QRV9DTkYsCisgICBNU0dfSURfVUlNX1NBVF9QUk9BQ1RJVkVfQ01EX0lORCwKKyAgIE1TR19JRF9VSU1fU0lNX0FVVEhFTlRJQ0FURV9DTkYsCisgICBNU0dfSURfQlRfVUlNX1NJTV9SRVNFVF9DTkYsCisgICBNU0dfSURfQlRfVUlNX1NJTV9QT1dFUl9PTl9DTkYsCisgICBNU0dfSURfQlRfVUlNX1NJTV9QT1dFUl9PRkZfQ05GLAorICAgTVNHX0lEX1VJTV9TSU1fTURTVEFUVVNfVVBEQVRFX0lORCwKKyAgIE1TR19JRF9TSU1fVUlNX1BJTl9TWU5DX0lORCwKKyAgIAorCisgICBNU0dfSURfVUlNX1NFVF9GQUNUT1JZX01PREVfTVNHLAorICAgTVNHX0lEX1VJTV9HRVRfRkFDVE9SWV9NT0RFX01TRywgIAorI2lmIGRlZmluZWQgKF9fVEMxMF9fKSAmJiBkZWZpbmVkIChfX1RDMTBfSVBDX0NETUFfU1VQUE9SVF9fKSAgIAorICAgTVNHX0lEX1VJTV9WQUxfU0VUX0ZBQ1RPUllfTU9ERV9NU0csCisgICBNU0dfSURfVUlNX1ZBTF9HRVRfRkFDVE9SWV9NT0RFX01TRywKKyAgIE1TR19JRF9VSU1fU01TX1NUT1JFX0VTTl9NRV9NU0csCisjZW5kaWYgICAKKyAgIE1TR19JRF9VSU1fU0lNX1NUQVJUVVBfUkVBRF9GSU5JU0hfSU5ELAorICAgTVNHX0lEX1VJTV9TSU1fQVBQX1JFQURZX0lORCwKKyAgIE1TR19JRF9VSU1fU0lNX0FQUF9FUlJPUl9JTkQsCisKKyAgIE1TR19JRF9VSU1fRklMRV9JTkZPX1JFUSwKKyAgIE1TR19JRF9VSU1fRklMRV9JTkZPX0NORiwKKyAgIE1TR19JRF9VSU1fUkVBRF9SRVEsCisgICBNU0dfSURfVUlNX1JFQURfQ05GLAorICAgTVNHX0lEX1VJTV9XUklURV9SRVEsCisgICBNU0dfSURfVUlNX1dSSVRFX0NORiwKKyAgIE1TR19JRF9VSU1fU0VBUkNIX1JFQ09SRF9SRVEsCisgICBNU0dfSURfVUlNX1NFQVJDSF9SRUNPUkRfQ05GLAorICAgTVNHX0lEX1VJTV9VVEtfRklMRV9DSEFOR0VfSU5ELAorICAgTVNHX0lEX1VJTV9VVEtfRklMRV9DSEFOR0VfUkVTLAorICAgTVNHX0lEX1VJTV9QSEJfU1RBUlRVUF9SRVEsCisgICBNU0dfSURfVUlNX1BIQl9TVEFSVFVQX0NORiwKKworICAgTVNHX0lEX1VJTV9TSU1fQ0FSRF9UWVBFX0NIQU5HRV9JTkQsCisKKyAgIE1TR19JRF9VSU1fVVRfRFVNTVlfUkVRLAorICAgTVNHX0lEX1VJTV9VVF9EVU1NWV9DTkYsCisgICBNU0dfSURfVUlNX1NJTV9DQUxMX1NUQVRVU19JTkQsCisKKyAgIE1TR19JRF9VSU1fTDRCU0JQX1JFQURZX0lORCwKKyAgIE1TR19JRF9VSU1fU0lNX0RTQlBfUkVDT05GSUdVUkVfSU5ELAorICAgTVNHX0lEX1VJTV9TSU1fUkVDT1ZFUllfUkVRLAorCisgICBNU0dfSURfVUlNX1NJTV9FWFRFTkRFRF9BUERVX0FDQ0VTU19SRVEsCisgICBNU0dfSURfVUlNX1NJTV9FWFRFTkRFRF9BUERVX0FDQ0VTU19DTkYsCisKKyAgIE1TR19JRF9VSU1fUEhCX0NTSU1fRkROX1NUQVRFX0lORCwKKworTU9EVUxFX01TR19FTkQoTVNHX0lEX0NVSU1fQ09ERV9UQUlMKQorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDFfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDMyNTEzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxX21zZ2lkLmgKQEAgLTAsMCArMSw4MDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqIHVsMV9jbnN0LmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgV0NETUFfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBMYXllciAxIGFuZCBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFJlcXVlc3QgZm9yIENQSFkgKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1VMMV9NU0dfSAorI2RlZmluZSBfVUwxX01TR19ICisKKyNpZiBkZWZpbmVkKF9fVU1UU19SQVRfXykgJiYgZGVmaW5lZChfX1VNVFNfRkREX01PREVfXykKKworI2lmZGVmIF9UZXN0X0hkcl9Pbl9QQworZW51bSB7CisjZW5kaWYKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9VTDFfTVNHX0NPREVfQkVHSU4gKQorLyogUkVMRUFTRSBSRVEgc2hvdWxkIGJlIHB1dCBiZWZvcmUgU0VUVVAvTU9ESUZZIFJFUSAqLworLyogTVNHX0lEX0ZERF9DUEhZX0JDSF9SRUxFQVNFX1JFUSB0byBNU0dfSURfRkREX0NQSFlfRENIX01PRElGWV9SRVEgbXVzdCBiZSBjb250aW51b3VzICovCitNU0dfSURfRkREX1VMMV9NU0dfQ09ERV9SRVFfQkVHSU4gPSBNU0dfSURfRkREX1VMMV9NU0dfQ09ERV9CRUdJTiwKK01TR19JRF9GRERfQ1BIWV9CQ0hfUkVMRUFTRV9SRVEsCitNU0dfSURfRkREX0NQSFlfQkNIX01PRElGWV9SRVEsCitNU0dfSURfRkREX0NQSFlfQkNIX1NFVFVQX1JFUSwKK01TR19JRF9GRERfQ1BIWV9QQ0hfUkVMRUFTRV9SRVEsCitNU0dfSURfRkREX0NQSFlfUENIX1NFVFVQX1JFUSwKK01TR19JRF9GRERfQ1BIWV9QQ0hfTU9ESUZZX1JFUSwKK01TR19JRF9GRERfQ1BIWV9GQUNIX1JFTEVBU0VfUkVRLAorTVNHX0lEX0ZERF9DUEhZX0ZBQ0hfU0VUVVBfUkVRLAorTVNHX0lEX0ZERF9DUEhZX0ZBQ0hfTU9ESUZZX1JFUSwKK01TR19JRF9GRERfQ1BIWV9SQUNIX1JFTEVBU0VfUkVRLAorTVNHX0lEX0ZERF9DUEhZX1JBQ0hfU0VUVVBfUkVRLAorTVNHX0lEX0ZERF9DUEhZX0RDSF9SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfQ1BIWV9EQ0hfU0VUVVBfUkVRLAorTVNHX0lEX0ZERF9DUEhZX0RDSF9NT0RJRllfUkVRLAorLyogX19IU0RQQV9TVVBQT1JUX18gKi8KK01TR19JRF9GRERfQ1BIWV9IU0RTQ0hfUkVMRUFTRV9SRVEsCitNU0dfSURfRkREX0NQSFlfSFNEU0NIX1NFVFVQX1JFUSwKK01TR19JRF9GRERfQ1BIWV9IU0RTQ0hfTU9ESUZZX1JFUSwKKy8qIF9fSFNVUEFfU1VQUE9SVF9fICovCitNU0dfSURfRkREX0NQSFlfRURDSF9SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfQ1BIWV9FRENIX1NFVFVQX1JFUSwKK01TR19JRF9GRERfQ1BIWV9FRENIX01PRElGWV9SRVEsCisvKiBfX1VNVFNfUjdfXyAqLworTVNHX0lEX0ZERF9DUEhZX0NQQ19DT05GSUdfUkVRLAorTVNHX0lEX0ZERF9QSFlfTUFDX0VIU19SRVNFVF9SRVEsCisKK01TR19JRF9GRERfQ1BIWV9UR1BTX0RFTEVURV9SRVEsCitNU0dfSURfRkREX0NQSFlfVEdQU19PVkVSTEFQX1JFU1VNRV9SRVBPUlRJTkdfUkVRLAorTVNHX0lEX0ZERF9DUEhZX0ZSRVFVRU5DWV9TQ0FOX1JFUSwKK01TR19JRF9GRERfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9DT05USU5VRV9SRVEsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fU1VTUEVORF9SRVEsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fU1RPUF9SRVEsCitNU0dfSURfRkREX0NQSFlfUlNTSV9TTklGRkVSX1NUQVJUX1JFUSwgLy9BZGQgYnkgSmFuZXQKK01TR19JRF9GRERfQ1BIWV9SU1NJX1NOSUZGRVJfU1RPUF9SRVEsICAvL0FkZCBieSBKYW5ldAorTVNHX0lEX0ZERF9DUEhZX01FQVNVUkVNRU5UX0NPTkZJR19UR1BTX1JFUSwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9DT05GSUdfRk1PX1JFUSwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9DT05GSUdfQ0VMTF9SRVEsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfQ09ORklHX1JTU0lfRVZFTlRfUkVRLAorTVNHX0lEX0ZERF9DUEhZX1RSRVNFTEVDVElPTl9TVEFSVF9SRVEsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfQ09ORklHX1RYX1BPV0VSX1JFUSwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9DT05GSUdfVFhfUE9XRVJfU1RPUF9SRVEsCitNU0dfSURfRkREX0NQSFlfVFhfUE9XRVJfUkVTVUxUX1JFUSwKK01TR19JRF9GRERfQ1BIWV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9SRVEsCitNU0dfSURfRkREX0NQSFlfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfU1RPUF9SRVEsCitNU0dfSURfRkREX0NQSFlfUkVTRVRfUkVRLAorTVNHX0lEX0ZERF9DUEhZX1JGX09OX1JFUSwKK01TR19JRF9GRERfQ1BIWV9SRl9PRkZfUkVRLAorTVNHX0lEX0ZERF9DUEhZX1NFVF9BQ1RJVkVfUkFUX1JFUSwKK01TR19JRF9GRERfQ1BIWV9NU0dfQ09OVEFJTkVSX1JFUSwKK01TR19JRF9GRERfQ1BIWV9BQk9SVF9SRVEsCitNU0dfSURfRkREX1dBS0VVUF8zR19SRVEsICAgICAgICAgICAgLypGb3IgRjhGOSwgY2FsbGVkIGF0IEFEUiovCitNU0dfSURfRkREX1dBS0VVUF8zR19MT0NLX1JFUSwgICAgICAgLypGb3IgTDIgQ29Qcm8qLworTVNHX0lEX0ZERF9XQUtFVVBfM0dfVU5MT0NLX1JFUSwgICAgIC8qRm9yIEwyIENvUHJvKi8KKy8qIF9fVU1UU19SOF9fICovCitNU0dfSURfRkREX0NQSFlfU1RBUlRfTU9OSVRPUl9PUkRFUl9SRVEsCitNU0dfSURfRkREX0NQSFlfU1RPUF9NT05JVE9SX09SREVSX1JFUSwKKworTVNHX0lEX0ZERF9VU0VSX1dBS0VVUF8zR19IQU5ETEVfUkVRLAorTVNHX0lEX0ZERF9VU0VSX1dBS0VVUF8zR19MT0NLX1JFUSwKK01TR19JRF9GRERfVVNFUl9XQUtFVVBfM0dfVU5MT0NLX1JFUSwKKy8qIFJlcXVlc3QgZnJvbSBQSFkgKi8KK01TR19JRF9GRERfUEhZX1JBQ0hfREFUQV9SRVEsCitNU0dfSURfRkREX1BIWV9BQ0NFU1NfUkVRLAorTVNHX0lEX0ZERF9QSFlfREFUQV9CVUZGRVJfRlJFRV9JTkQsCisvKiBfX1VNVFNfUjhfXyAqLworTVNHX0lEX0ZERF9QSFlfQ0VEQ0hfVEVSTUlOQVRJT05fUkVRLAorCisKK01TR19JRF9GRERfUlNWQVNfVUwxX1NVU1BFTkRfUkVRLAorTVNHX0lEX0ZERF9SU1ZBU19VTDFfUkVTVU1FX1JFUSwKKworTVNHX0lEX0ZERF9SU1ZBU19VTDFfVklSVFVBTF9SRVNVTUVfUkVRLAorTVNHX0lEX0ZERF9VUlJfVUwxX1NXSVRDSF9HRU1JTklfTU9ERV9SRVEsCitNU0dfSURfRkREX0NQSFlfUEVFUl9HRU1JTklfTU9ERV9OT1RJRllfUkVRLAorTVNHX0lEX0ZERF9DUEhZX0NIQU5ORUxfUFJJT1JJVFlfQURKVVNUTUVOVF9SRVEsCisvKiBfX0wxX0dQU19BVVRPX1RJTUlOR19TWU5DX1NVUFBPUlRfXyB8fCBfX0wxX0dQU19SRUZfVElNRV9TVVBQT1JUX18qLworLyogVGhlIGNvcnJlc3BvbmRpbmcgU0FQIGlzIGRlZmluZWQgaW4gbWN1XGludGVyZmFjZVxoYWxcTDFcaGFsX3VsMV9zYXAuaC4gKi8KK01TR19JRF9VTDFfR1BTX1RJTUVfU1lOQ19SRVEsICAgIC8qIFJlcXVlc3QgZnJvbSBHUFMgVGFzayAqLworTVNHX0lEX0ZERF9DUEhZX09VVF9PRl9TRVJWSUNFX1JFUSwKKy8qIF9fSFNEUEFfU1VQUE9SVF9fICovCitNU0dfSURfRkREX0NQSFlfUkxDX0lORk9fUkVRLAorLyogX19NVUxUSV9NT0RFX1NVUFBPUlRfXyAqLworTVNHX0lEX0ZERF9DUEhZX0FVVE9fR0FQX09OX1JFUSwKK01TR19JRF9GRERfQ1BIWV9BVVRPX0dBUF9PTl9DTkYsCitNU0dfSURfRkREX0NQSFlfQVVUT19HQVBfT0ZGX1JFUSwKK01TR19JRF9GRERfQ1BIWV9BVVRPX0dBUF9PRkZfQ05GLAorCitNU0dfSURfRkREX0NQSFlfRFVQTEVYX01PREVfQ0hBTkdFX1JFUSwKKy8qIF9fTU1MMV9BRFRfRU5BQkxFX18gKi8KK01TR19JRF9GRERfVUwxX0wxQURUX0VOVEVSX0NPTk5FQ1RFRF9DTkYsCitNU0dfSURfRkREX1VMMV9MMUFEVF9MRUFWRV9DT05ORUNURURfQ05GLAorTVNHX0lEX0ZERF9VTDFfTDFBRFRfRU5URVJfRkREX01PREVfQ05GLAorTVNHX0lEX0ZERF9DUEhZX1JTU0lfU05JRkZFUl9QRVJJT0RfQ0hBTkdFX1JFUSwKK01TR19JRF9GRERfQ1BIWV9SQl9MUEJLX1JFUSwKKworTVNHX0lEX0ZERF9DUEhZX1NNQVJUX1BBR0lOR19SRUNPTkZJR19SRVEsCitNU0dfSURfRkREX0NQSFlfVEFTX05PVElGWV9JTkQsCisjaWYgZGVmaW5lZChfX1VFX1NJTVVMQVRPUl9fKSB8fCBkZWZpbmVkKEwxX1NJTSkKKy8qIE9ubHkgZm9yIHhsMXNpbSBVVCAqLworTVNHX0lEX0ZERF9VTDFfVU5JVF9URVNUX1JFUSwKKyNlbmRpZiAgLy8gZGVmaW5lZChfX1VFX1NJTVVMQVRPUl9fKSB8fCBkZWZpbmVkKEwxX1NJTSkKKworTVNHX0lEX0ZERF9VTDFfTVNHX0NPREVfUkVRX0VORCwKKworTVNHX0lEX0ZERF9VTDFDX1VMMUFfVVJFUE9SVCwKK01TR19JRF9GRERfVUwxRF9VTDFDX1VSRVBPUlQsCisKKy8qIENvbmZpcm0gJiBJbmRpY2F0aW9uIGZvciBDUEhZICovCitNU0dfSURfRkREX0NQSFlfQkNIX1NFVFVQX0NORiwKK01TR19JRF9GRERfQ1BIWV9CQ0hfU0VUVVBfSU5ELAorTVNHX0lEX0ZERF9DUEhZX0JDSF9NT0RJRllfQ05GLAorTVNHX0lEX0ZERF9DUEhZX0JDSF9NT0RJRllfSU5ELAorTVNHX0lEX0ZERF9DUEhZX0JDSF9SRUxFQVNFX0NORiwKK01TR19JRF9GRERfQ1BIWV9CQ0hfUkVMRUFTRV9JTkQsCitNU0dfSURfRkREX0NQSFlfU0ZOX0lORCwKK01TR19JRF9GRERfQ1BIWV9UR1BTX09WRVJMQVBfSU5ELAorTVNHX0lEX0ZERF9DUEhZX0dBUF9DT01QTEVURV9JTkQsCitNU0dfSURfRkREX0NQSFlfVDMxMl9FWFBJUllfSU5ELAorTVNHX0lEX0ZERF9DUEhZX0RMX0lOSVRfU1lOQ19JTkQsCitNU0dfSURfRkREX0NQSFlfUkxfRkFJTFVSRV9JTkQsCitNU0dfSURfRkREX0NQSFlfVEdQU19ERUxFVEVfSU5ELAorTVNHX0lEX0ZERF9DUEhZX1RHUFNfSU5GT19JTkQsCisvKkpveSAwMTIyMDcgcmVtb3ZlIERFTEVURV9UR1BTIGludGVyZmFjZSovCisvL01TR19JRF9GRERfQ1BIWV9UR1BTX0RFTEVURV9DTkYsCisvL01TR19JRF9GRERfQ1BIWV9UR1BTX0RFTEVURV9JTkQsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fQ05GLAorTVNHX0lEX0ZERF9DUEhZX0ZSRVFVRU5DWV9TQ0FOX0lORCwKK01TR19JRF9GRERfQ1BIWV9GUkVRVUVOQ1lfU0NBTl9DT05USU5VRV9DTkYsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fU1VTUEVORF9DTkYsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fU1VTUEVORF9JTkQsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fU1RPUF9DTkYsCitNU0dfSURfRkREX0NQSFlfRlJFUVVFTkNZX1NDQU5fU1RPUF9JTkQsCitNU0dfSURfRkREX0NQSFlfUlNTSV9TTklGRkVSX1NUQVJUX0NORiwgLy9BZGQgYnkgSmFuZXQKK01TR19JRF9GRERfQ1BIWV9SU1NJX1NOSUZGRVJfU1RPUF9DTkYsICAvL0FkZCBieSBKYW5ldAorTVNHX0lEX0ZERF9DUEhZX1JTU0lfU05JRkZFUl9TVE9QX0lORCwKK01TR19JRF9GRERfQ1BIWV9SU1NJX1NOSUZGRVJfU0lHTkFMX0FQUEVBUl9JTkQsICAvL0FkZCBieSBKYW5ldAorTVNHX0lEX0ZERF9DUEhZX1JTU0lfU05JRkZFUl9FWEVDVVRFRF9JTkQsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfQ09ORklHX1RHUFNfQ05GLAorTVNHX0lEX0ZERF9DUEhZX01FQVNVUkVNRU5UX0NPTkZJR19UR1BTX0lORCwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9DT05GSUdfRk1PX0NORiwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9DT05GSUdfQ0VMTF9DTkYsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfQ0VMTF9JTkQsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfQ0VMTF9TRk5fSU5ELAorTVNHX0lEX0ZERF9DUEhZX1JTU0lfRVhDRUVEX1JBTkdFX0lORCwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9STF9JTkQsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfQ09ORklHX1RYX1BPV0VSX0NORiwKK01TR19JRF9GRERfQ1BIWV9NRUFTVVJFTUVOVF9UWF9QT1dFUl9QRVJJT0RJQ19JTkQsCitNU0dfSURfRkREX0NQSFlfTUVBU1VSRU1FTlRfVFhfUE9XRVJfRVZFTlRfSU5ELAorTVNHX0lEX0ZERF9DUEhZX1RYX1BPV0VSX1JFU1VMVF9JTkQsCitNU0dfSURfRkREX0NQSFlfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfSU5ELAorTVNHX0lEX0ZERF9DUEhZX1NQRUNJRklDX0NFTExfU0VBUkNIX1NUT1BfSU5ELAorTVNHX0lEX0ZERF9DUEhZX1JFU0VUX0NORiwKK01TR19JRF9GRERfQ1BIWV9SRl9PTl9DTkYsCitNU0dfSURfRkREX0NQSFlfUkZfT0ZGX0NORiwKK01TR19JRF9GRERfQ1BIWV9TRVRfQUNUSVZFX1JBVF9DTkYsCitNU0dfSURfRkREX0NQSFlfQVNVX1NVQ0NFU1NfSU5ELAorCitNU0dfSURfRkREX0NQSFlfTVNHX0NPTlRBSU5FUl9DTkYsCitNU0dfSURfRkREX0NQSFlfTVNHX0NPTlRBSU5FUl9JTkQsCitNU0dfSURfRkREX0NQSFlfQUJPUlRfQ05GLAorTVNHX0lEX0ZERF9DUEhZX1RYX1NUQVRVU19JTkQsCisvKiBfX1VNVFNfUjdfXyAqLworLy9NU0dfSURfRkREX0NQSFlfRF9IUk5USV9ERVRFQ1RFRF9JTkQsCisvKiBfX1VNVFNfUjhfXyAqLworTVNHX0lEX0ZERF9DUEhZX01PTklUT1JfT1JERVJfUkVDRUlWRURfSU5ELAorTVNHX0lEX0ZERF9DUEhZX1NUQVJUX01PTklUT1JfT1JERVJfQ05GLAorTVNHX0lEX0ZERF9DUEhZX1NUT1BfTU9OSVRPUl9PUkRFUl9DTkYsCisKK01TR19JRF9GRERfQ1BIWV9EVVBMRVhfTU9ERV9DSEFOR0VfQ05GLAorLyogX19URVNUX0FOVEVOTkFfSURYX09OX1JFQUxfU0lNX18gKi8KK01TR19JRF9GRERfQ1BIWV9SQl9MUEJLX0NORiwKKworLyogQ29uZmlybSAmIEluZGljYXRpb24gZm9yIFBIWSAqLworTVNHX0lEX0ZERF9QSFlfUENIX1NFVFVQX0lORCwKK01TR19JRF9GRERfUEhZX1BDSF9NT0RJRllfSU5ELAorTVNHX0lEX0ZERF9QSFlfUENIX1JFTEVBU0VfSU5ELAorTVNHX0lEX0ZERF9QSFlfRkFDSF9TRVRVUF9JTkQsCitNU0dfSURfRkREX1BIWV9GQUNIX01PRElGWV9JTkQsCitNU0dfSURfRkREX1BIWV9GQUNIX1JFTEVBU0VfSU5ELAorTVNHX0lEX0ZERF9QSFlfUkFDSF9TRVRVUF9JTkQsCitNU0dfSURfRkREX1BIWV9SQUNIX1JFTEVBU0VfSU5ELAorTVNHX0lEX0ZERF9QSFlfRENIX1NFVFVQX0lORCwKK01TR19JRF9GRERfUEhZX0RDSF9NT0RJRllfSU5ELAorTVNHX0lEX0ZERF9QSFlfRENIX1JFTEVBU0VfSU5ELAorTVNHX0lEX0ZERF9QSFlfQ09ORklHX0FCT1JUX0lORCwKK01TR19JRF9GRERfUEhZX0NPTkZJR19GQUlMX0lORCwKKworTVNHX0lEX0ZERF9QSFlfRExfSU5JVF9TWU5DX0lORCwKK01TR19JRF9QSFlfVUxfTk9UX0FDVElWQVRFRF9JTkQsCitNU0dfSURfRkREX1BIWV9CQ0hfREFUQV9JTkQsCitNU0dfSURfRkREX1BIWV9EQVRBX0lORCwKK01TR19JRF9GRERfUEhZX0FDQ0VTU19JTkQsCitNU0dfSURfRkREX1BIWV9QT1NUX1RYX0lORCwKK01TR19JRF9GRERfUEhZX0VORF9EQ0hfVFhfSU5ELAorLyogX19IU0RQQV9TVVBQT1JUX18gKi8KK01TR19JRF9GRERfUEhZX0hTRFNDSF9EQVRBX0lORCwKKy8qIF9fSFNVUEFfU1VQUE9SVF9fICovCitNU0dfSURfRkREX1BIWV9FTkRfRURDSF9UWF9JTkQsCisvKiBfX1VNVFNfUjhfXyAqLworTVNHX0lEX0ZERF9QSFlfQ0VEQ0hfU0VUVVBfSU5ELAorTVNHX0lEX0ZERF9QSFlfQ0VEQ0hfTU9ESUZZX0lORCwKK01TR19JRF9GRERfUEhZX0NFRENIX1JFTEVBU0VfSU5ELAorTVNHX0lEX0ZERF9QSFlfQ0VEQ0hfVEVSTUlOQVRJT05fSU5ELAorLyogRU0gTXNnICovCitNU0dfSURfTDRDVUwxX0VNX1RTVF9DT05UUk9MX1JFUSwKK01TR19JRF9MNENVTDFfRU1fVFNUX0NPTlRST0xfQ05GLAorLyogIExDRSByZXBvcnQgZm9yIEFuZHJvaWQgTSAgKi8KK01TR19JRF9MNENVTDFfSFNQQV9MQ0VfUkVQT1JUX1JFUSwKK01TR19JRF9MNENVTDFfSFNQQV9MQ0VfUkVQT1JUX1NUT1BfUkVRLAorTVNHX0lEX0w0Q1VMMV9IU1BBX0xDRV9SRVBPUlRfUFVMTERBVEFfUkVRLAorTVNHX0lEX0w0Q1VMMV9IU1BBX0xDRV9SRVBPUlRfQ05GLAorTVNHX0lEX0w0Q1VMMV9IU1BBX0xDRV9SRVBPUlRfSU5ELAorLyogU0xUIE1zZyAqLworTVNHX0lEX0ZERF9VTDFfU0xUX1RBU0tfSU5JVF9JTkQsCisvKj09PT09PT09PT0gVU1BQyBVVCBTSU1VTEFURSBNRVNTQUdFICAgPT09PT09PT09PSovCisvLyNpZmRlZiAgX19NTlRfVVRfVU1BQ19BTE9ORV9XSVRIT1VUX0wxX18gIC8qIFVNQUMgVVQgKi8KK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX0RDSF9VTF9DQ1RSQ0hfVEFTSywgCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0NUUkNIX0hJU1IsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0NUUkNIX0hJU1JfUlNQLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfRENIX1VMX0NDVFJDSF9MSVNSLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfRENIX1VMX0NDVFJDSF9MSVNSX1JTUCwKKworTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfRENIX1VMX0NBTExCQUNLX0NDVFJDSCwgCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9EQ0hfVUxfQ0FMTEJBQ0tfQ0NUUkNIX1JTUCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX0RDSF9VTF9DQUxMQkFDS19QT1dFUiwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX0VORF9EQ0hfVFhfSU5ELCAKKworTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9USUNLXzEsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1RJQ0tfMV9SU1AsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1RJQ0tfMl9QQVJBTV9TRVRVUCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVElDS18yLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9USUNLXzJfUlNQLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9USUNLXzMsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1RJQ0tfM19SU1AsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1RJQ0tfNCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVElDS180X1JTUCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVElDS181LAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9USUNLXzVfUlNQLAorLyogRm9yIFRLNjI5MSBVM0cgKi8KK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfRVZBTF9UWF9QUk9DLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9FVkFMX1RYX1BST0NfUlNQLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19FX0RDSF9JU19UWF9QRVJNSVQsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX0lTX1RYX1BFUk1JVF9SU1AsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1BSRVBBUkVfREFUQSwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfUFJFUEFSRV9EQVRBX1JTUCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfR0VUX0hBUFBZX0JJVCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfR0VUX0hBUFBZX0JJVF9SU1AsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1BPU1RfVFhfUFJPQywKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfUE9TVF9UWF9QUk9DX1JTUCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfUFJFRElDVF9UWCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfUFJFRElDVF9UWF9SU1AsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX0VfRENIX1VQREFURV9SRUZfRVRQUiwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVVBEQVRFX1JFRl9FVFBSX1JTUCwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRV9EQ0hfVFhfUEFSQU1fU0VUVVAsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9VTUFDX1NFVFVQX1BDSF9FTV9JTkZPLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19GT1JDRURfVE9fU0VORF9EQ0hfRU1fSU5GTywKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRk9SQ0VEX1RPX1NFTkRfRURDSF9FTV9JTkZPLAorTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfVU1BQ19GT1JDRURfVE9fU0VORF9IU0RTQ0hfRU1fSU5GTywKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRk9SQ0VEX1RPX1NFTkRfTURNSV9NQUNfRU1fSU5GTywKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRk9SQ0VEX1RPX1NFTkRfTURNSV9VUEFfRU1fSU5GTywKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRk9SQ0VEX1RPX1NFTkRfTURNSV9NRUFfRU1fSU5GTywKKworTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfSU5WT0tFX1VMX0lORk9STV9FRENIX01BQywKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfR0VUX0hTX0JVRkZFUiwKK01TR19JRF9GRERfUEhZX1NJTVVMQVRFX1VNQUNfRlJFRV9IU19CVUZGRVIsCitNU0dfSURfRkREX1BIWV9TSU1VTEFURV9UUllfVE9fVFJJR0dFUl9DU1JfU1RBVFVTX0lORCwKKy8vTVNHX0lEX0ZERF9QSFlfU0lNVUxBVEVfRU5EX0VEQ0hfVFhfSU5ELAorLy8jZW5kaWYgIC8qIF9fTU5UX1VUX1VNQUNfQUxPTkVfV0lUSE9VVF9MMV9fICovCisvKj09PT09PT09PT0gRU5EIFVNQUMgVVQgU0lNVUxBVEUgTUVTU0FHRSAgID09PT09PT09PT0qLworCitNU0dfSURfRkREX1JTVkFTX1VMMV9TVVNQRU5EX0NORiwKK01TR19JRF9GRERfUlNWQVNfVUwxX1JFU1VNRV9DTkYsCitNU0dfSURfRkREX1JTVkFTX1VMMV9WSVJUVUFMX1JFU1VNRV9DTkYsCisKKy8qIF9fTDFfR1BTX0FVVE9fVElNSU5HX1NZTkNfU1VQUE9SVF9fIHx8IF9fTDFfR1BTX1JFRl9USU1FX1NVUFBPUlRfXyovCisvKiBUaGUgY29ycmVzcG9uZGluZyBTQVAgaXMgZGVmaW5lZCBpbiBtY3VcaW50ZXJmYWNlXGhhbFxMMVxoYWxfdWwxX3NhcC5oLiAqLworTVNHX0lEX1VMMV9HUFNfVElNRV9TWU5DX0lORCwgLyogSW5kaWNhdGlvbiB0byBHUFMgVGFzayAqLworTVNHX0lEX0ZERF9VU0VSX1dBS0VVUF8zR19IQU5ETEVfSU5ELAorLyogQXVkaW8gKi8KK01TR19JRF9GRERfVUwxX0wxU1BfVVBEQVRFX0RDSF9JTkZPX0lORCwKKy8qPT09PT09PT09PSBVTDEgSU5URVJOQUwgTUVTU0FHRSAgPT09PT09PT09PSovCitNU0dfSURfRkREX1VMMV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9SRVEsCitNU0dfSURfRkREX1VMMV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9JTkQsCitNU0dfSURfRkREX1VMMV9TUEVDSUZJQ19DRUxMX1NFQVJDSF9TVE9QX1JFUSwKK01TR19JRF9GRERfVUwxX1NQRUNJRklDX0NFTExfU0VBUkNIX1NUT1BfSU5ELAorTVNHX0lEX0ZERF9VTDFfU0ZOX0RFQ09ERV9SRVEsCitNU0dfSURfRkREX1VMMV9TRk5fREVDT0RFX0NORiwKK01TR19JRF9GRERfVUwxX1NGTl9TVE9QX1JFUSwKK01TR19JRF9GRERfVUwxX1NGTl9TVE9QX0lORCwKK01TR19JRF9GRERfVUwxX1NGTl9ERUNPREVfU0ZOX0lORCwKK01TR19JRF9GRERfVUwxX01TR19DT05UQUlORVJfUkVRLAorTVNHX0lEX0ZERF9VTDFfVDMxMl9FWFBJUllfSU5ELAorTVNHX0lEX0ZERF9VTDFfTU1fVEdQU19DSEFOTkVMQUNUX1JFUSwKK01TR19JRF9GRERfVUwxX01NX1RHUFNfQ0hBTk5FTEFDVF9DTkYsCitNU0dfSURfRkREX1VMMV9QSFlfQ09ORklHX0ZBSUxfSU5ELAorCitNU0dfSURfRkREX1VMMV9NRUFTVVJFTUVOVF9DT05GSUdfQ0VMTF9SRVEsCitNU0dfSURfRkREX1VMMV9CQ0hfU0VUVVBfUkVRLAorTVNHX0lEX0ZERF9VTDFfQkNIX1JFTEVBU0VfUkVRLAorTVNHX0lEX0ZERF9VTDFfQVVUT19HQVBfT05fUkVRLAorTVNHX0lEX0ZERF9VTDFfQVVUT19HQVBfT0ZGX1JFUSwKK01TR19JRF9GRERfVUwxX0ZSRVFVRU5DWV9TQ0FOX1JFUSwKK01TR19JRF9GRERfVUwxX0ZSRVFVRU5DWV9TQ0FOX1NVU1BFTkRfUkVRLAorTVNHX0lEX0ZERF9VTDFfRlJFUVVFTkNZX1NDQU5fQ09OVElOVUVfUkVRLAorTVNHX0lEX0ZERF9VTDFfTUVBU1VSRU1FTlRfQ0VMTF9JTkQsCisKKy8qPT09PT09PT09PSBFTkQgVUwxIElOVEVSTkFMIE1FU1NBR0UgICAgPT09PT09PT09PSovCisKKy8qIF9fTU1MMV9BRFRfRU5BQkxFX18gKi8KK01TR19JRF9GRERfVUwxX0wxQURUX0VOVEVSX0NPTk5FQ1RFRF9SRVEsCitNU0dfSURfRkREX1VMMV9MMUFEVF9MRUFWRV9DT05ORUNURURfUkVRLAorTVNHX0lEX0ZERF9VTDFfTDFBRFRfRU5URVJfRkREX01PREVfUkVRLAorTVNHX0lEX0ZERF9VTDFfTDFBRFRfRU5URVJfRkREX01PREVfSU5ELAorCisjaWYgZGVmaW5lZChfX0RZTkFNSUNfQ0FDSEVfTE9DS19DRU5UUkFMX0NPTlRST0xfU1VQUE9SVF9fKQorTVNHX0lEX0ZERF9VTDFfRENMQ19MT0NLX1VOTE9DS19JTkQsCisjZW5kaWYKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9GRERfVUwxX01TR19DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOICggTVNHX0lEX0dOU1NfVENfVUwxX01TR19DT0RFX0JFR0lOICkKK01TR19JRF9HTlNTX1RDX1VMMV9TWU5DX1JFUSwKK01TR19JRF9HTlNTX1RDX1VMMV9USU1FX0lORk9fUlNQLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9HTlNTX1RDX1VMMV9NU0dfQ09ERV9UQUlMICkKKyNpZmRlZiBfVGVzdF9IZHJfT25fUEMKK307CisjZW5kaWYKKyNlbmRpZgorCisjZW5kaWYgIC8vX1VMMV9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxYl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxYl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNDVmZjYKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDFiX21zZ2lkLmgKQEAgLTAsMCArMSw3OSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgdWwxYl9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgVTRHIGFkYXB0b3IKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIFVMMUIgbWVzc2FnZSBpZCBkZWZpbml0aW9ucworICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwMyAwMyAyMDE0IGZsZW1taW5nLnBpaGwKKyAqIE5VTEwKKyAqIEFkZCB1bDFiCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIFVMMUJfTVNHSURfSAorI2RlZmluZSBVTDFCX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1VMMUJfQ09ERV9CRUdJTiApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworTVNHX0lEX1UzR19USUNLX0lORCAgICAgICAgICAgICAgICA9IE1TR19JRF9VTDFCX0NPREVfQkVHSU4sCisKKyNpZm5kZWYgX19VRV9TSU1VTEFUT1JfXworTVNHX0lEX1VITEhXU0lNX0RMX0RBVEFfSU5ELCAgICAvKiBVc2VkIG9ubHkgaW4gVUwxQiB1bml0IHRlc3QuKi8KK01TR19JRF9VSExIV1NJTV9VTF9EQVRBX1JFUSwKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVUwxQl9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogVUwxQl9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDFjX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDFjX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVhZGQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VsMWNfbXNnaWQuaApAQCAtMCwwICsxLDEwNSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiB1bDFjX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1UNjI2OAorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFVNVFMgTGF5ZXIgMSBISVNSIGFuZCBQcm90b2NvbCBTdGFjayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9VTDFDX01TR19ICisjZGVmaW5lIF9VTDFDX01TR19ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9VTDFDX01TR19DT0RFX0JFR0lOICkKK01TR19JRF9VTDFDX1NFTkRfUkVQT1JUID0gTVNHX0lEX1VMMUNfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfVUwxQ19XQUtFVVBfVUwxVEFTSywKK01TR19JRF9VTDFDX1VTRVJfREVGX0ZVTkMsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1VMMUNfTVNHX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fVUwxQ19NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxZGF0YV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxZGF0YV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxNGZlYTMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDFkYXRhX21zZ2lkLmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogdWwxZGF0YV9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBXQ0RNQV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFVMMSBmcmFtZSBISVNSIGFuZCBVTDEgREFUQSByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFJlcXVlc3QgZm9yIENQSFkgKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1VMMURBVEFfTVNHX0gKKyNkZWZpbmUgX1VMMURBVEFfTVNHX0gKKworI2lmZGVmIF9UZXN0X0hkcl9Pbl9QQworZW51bSB7CisjZW5kaWYKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfVUwxREFUQV9NU0dfQ09ERV9CRUdJTikKKy8vUmFsZiBhZGQgZm9yIHVsMiB1bCBkYXRhIHRhc2sKK01TR19JRF9VTDFEQVRBX1VMX0RQQ0hfUE9XRVIsCitNU0dfSURfVUwxREFUQV9VTF9EUENIX0NDVFJDSF9UQVNLLAorTU9EVUxFX01TR19FTkQoTVNHX0lEX1VMMURBVEFfTVNHX0NPREVfVEFJTCkKKworI2lmZGVmIF9UZXN0X0hkcl9Pbl9QQworfTsKKyNlbmRpZgorCisjZW5kaWYgIC8vX1VMMURBVEFfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VsMWhpc3JfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VsMWhpc3JfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGIyMmI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxaGlzcl9tc2dpZC5oCkBAIC0wLDAgKzEsMTAzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqIHVsMWhpc3Jfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTVQ2MjY4CisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVU1UUyBMYXllciAxIEhJU1IgYW5kIFByb3RvY29sIFN0YWNrIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1VMMUhJU1JfTVNHX0gKKyNkZWZpbmUgX1VMMUhJU1JfTVNHX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1VMMUhJU1JfTVNHX0NPREVfQkVHSU4gKQorTVNHX0lEX1VMMVRBU0tfV0FLRVVQID0gTVNHX0lEX1VMMUhJU1JfTVNHX0NPREVfQkVHSU4sCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1VMMUhJU1JfTVNHX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fVUwxSElTUl9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxdHN0X21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDF0c3RfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzdlODBlCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwxdHN0X21zZ2lkLmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBNb2RpZmljYXRpb24gTm90aWNlOgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgTWVkaWFUZWsgSW5jLiBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiB1bDF0c3Rfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTVQ2MjY4IFByb2plY3QKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICB1bDF0c3Rfc2FwLmgKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKyAKKyNpZm5kZWYgX1VMMVRTVF9NU0dfSAorI2RlZmluZSBfVUwxVFNUX01TR19ICisgCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVUwxVFNUX01TR19DT0RFX0JFR0lOICkKK01TR19JRF9VTDFUU1RfVE9fRlQgPSBNU0dfSURfVUwxVFNUX01TR19DT0RFX0JFR0lOLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9VTDFUU1RfTVNHX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fVUwxVFNUX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VsMl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NmQ2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bDJfbXNnaWQuaApAQCAtMCwwICsxLDgyOCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA3CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHVsMl9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT05aQQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfVUwyX01TR19ICisjZGVmaW5lIF9VTDJfTVNHX0gKKworI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXwordHlwZWRlZiBlbnVtIHsKKyNlbmRpZgorCisvKiBtdGs4MDE5NywgbWVyZ2UgVEREMTI4IGJhY2sgdG8gTUFVSSAqLworI2lmIGRlZmluZWQoX19VTVRTX0ZERF9NT0RFX18pCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRkREX1VNQUNfQ09ERV9CRUdJTiApCisvL01TR19JRF9VTUFDX0NPREVfQkVHSU4sCisvKiBTTENFLVVNQUMgKi8KK01TR19JRF9GRERfQ01BQ19DT05GSUdfVFhfQ0NUUkNIX1JFUSA9IE1TR19JRF9GRERfVU1BQ19DT0RFX0JFR0lOLAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19FRENIX0NDVFJDSF9SRVEsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1JYX0NDVFJDSF9SRVEsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX0hTRFNDSF9DQ1RSQ0hfUkVRLAorTVNHX0lEX0ZERF9DTUFDX1JFTU9WRV9UWF9DQ1RSQ0hfUkVRLAorTVNHX0lEX0ZERF9DTUFDX1JFTU9WRV9FRENIX0NDVFJDSF9SRVEsCitNU0dfSURfRkREX0NNQUNfUkVNT1ZFX1JYX0NDVFJDSF9SRVEsCitNU0dfSURfRkREX0NNQUNfUkVNT1ZFX0hTRFNDSF9DQ1RSQ0hfUkVRLAorTVNHX0lEX0ZERF9DTUFDX1RSQUZGSUNfVk9MVU1FX01FQVNVUkVNRU5UX1JFUSwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfQ0lQSEVSSU5HX1JFUSwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfVUVfUkVRLAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19SQUNIX1JFUSwKK01TR19JRF9GRERfQ01BQ19DT1VOVF9DX1JFUSwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfVFhfUkxDX1JFRVNUQUJMSVNIX1JFUSwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfUlhfUkxDX1JFRVNUQUJMSVNIX1JFUSwKK01TR19JRF9GRERfQ01BQ19ERUxFVEVfQ0lQSEVSSU5HX1JFUSwKKy8vTVNHX0lEX0ZERF9DTUFDX0hTX1JFU0VUX1JFUSwKK01TR19JRF9GRERfQ01BQ19FU19SRVNFVF9SRVEsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1RGQ19TVUJTRVRfUkVRLAorTVNHX0lEX0ZERF9DTUFDX1FVQUxJVFlfTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX0ZERF9DTUFDX0FERElUSU9OQUxfVFZNX1JFUSwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfQ1BDSF9SRVEsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX0FCT1JUX1JFUSwKKy8qIENTUi1VTUFDICovCitNU0dfSURfRkREX0NTUl9VTUFDX0RFQUNUSVZBVEVfUkVQT1JUX1JFUSwKK01TR19JRF9GRERfQ1NSX1VNQUNfU1RBVFVTX1JFUSwKKy8qIFVSTEMtVU1BQyovCitNU0dfSURfRkREX1VSTENfVU1BQ19UWF9EQVRBX1JFUSwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfRkREX1VSTENfVU1BQ19HRU1JTklfUkVTRVQsICAgLyogZm9yIFVNQUMgVVQgKi8KKworLyogTUVNRS1VTUFDICovCitNU0dfSURfRkREX01FTUVfVU1BQ19TSU1VTEFURV9HRVRfQ09VTlRDLCAgIC8qIGZvciBVTUFDIFVUICovCisvKiBSUkNFLVVNQUMgKi8KK01TR19JRF9GRERfUlJDRV9VTUFDX1NJTVVMQVRFX0dFVF9DT1VOVENfQUNUSVZBVElPTl9USU1FLCAgIC8qIGZvciBVTUFDIFVUICovCisKKy8qIFVNQUMtVU1BQyAqLyAgCitNU0dfSURfRkREX1VNQUNfVU1BQ19EQ0hfVUxfRFBDSF9DQ1RSQ0hfUlNQLAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfRENIX1VMX0RQQ0hfQ0NUUkNIX1JFU1VMVCwKK01TR19JRF9GRERfVU1BQ19VTUFDX0RDSF9VTF9EUENIX1BPV0VSX0lORCwgCitNU0dfSURfRkREX1VNQUNfVU1BQ19DSEVDS19EQVRBX1JFRl9DT1VOVF9JTkQsCitNU0dfSURfRkREX1VNQUNfVU1BQ19UMV9USU1FUl9BQ1RJT05fSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfRURDSF9USUNLMV9JTkQsCitNU0dfSURfRkREX1VNQUNfVU1BQ19FRENIX1RJQ0syX0lORCwKK01TR19JRF9GRERfVU1BQ19VTUFDX0VEQ0hfVElDSzNfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfQUJPUlRfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfQ09VTlRDX1ZFUkRJQ1RfSU5ELCAgICAvKiBmb3IgVU1BQyBVVCAqLworTVNHX0lEX0ZERF9VTUFDX1VNQUNfSVNfTUFDVElDS19WRVJESUNUX0lORCwgICAgLyogZm9yIFVNQUMgVVQgKi8KK01TR19JRF9GRERfVU1BQ19VTUFDX1VTRV9NQVhfUFJJT19MT0dDSF9QT19JTkQsIC8qIGZvciBVTUFDIFVULCBFRENIICovCitNU0dfSURfRkREX1VNQUNfVU1BQ19FRENIX0RTQ19SRUxFQVNFX0lORCwKKworLyogOTMgKi8KK01TR19JRF9GRERfVU1BQ19VTUFDX0lOVkFMSURfSFNfUERVX0lORCwKK01TR19JRF9GRERfVU1BQ19VTUFDX0RFTElWRVJfUjk5X1BEVV9JTkQsCitNU0dfSURfRkREX1VNQUNfVU1BQ19ERUxJVkVSX1ZSQl9QRFVfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfUVBfM0dfRExfTUFDX0NPUFlfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfUVBfM0dfRExfTUFDX0NPUFlfTk9OX0JMT0NLSU5HX0lORCwKK01TR19JRF9GRERfVU1BQ19VTUFDX1FQXzNHX0RMX01BQ19RVUVSWV9OT05fQkxPQ0tJTkdfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfQ09QUk9fVlJCX1RPX0VNSV9NRU1DUFlfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfQ09QUk9fVlJCX1JFTEVBU0VfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfVVBBX1BEVV9MRU5fSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfU0lNVUxBVEVfVU1BQ19RSUROQ1RfVE9fUkxDRU5USVRZSURfUlNQLAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfTDJfM0dfRExfQUxMX1NSQl9QT1dFUl9JTkQsCitNU0dfSURfRkREX1VNQUNfVU1BQ19FTFRfVVBBX0VNX0lORk9fSU5ELAorTVNHX0lEX0ZERF9VTUFDX1VNQUNfRUxUX0RQQV9FTV9JTkZPX0lORCwKK01TR19JRF9GRERfVU1BQ19VTUFDX0VMVF9SOTlfRU1fSU5GT19JTkQsCisvKiA5MyBNRE1JIEVNICovCitNU0dfSURfRkREX1VNQUNfTURNSV9FTV9XQ0RNQV8xX0lORk9fSU5ELCAgICAvKiB3Y2RtYU1hY0twaXMgMSAqLworTVNHX0lEX0ZERF9VTUFDX01ETUlfRU1fV0NETUFfMl9JTkZPX0lORCwgICAgLyogd2NkbWFNYWNLcGlzIDIgKi8KK01TR19JRF9GRERfVU1BQ19NRE1JX0VNX1dDRE1BXzNfSU5GT19JTkQsICAgIC8qIHdjZG1hTWFjS3BpcyAzICovCitNU0dfSURfRkREX1VNQUNfTURNSV9FTV9XQ0RNQV80X0lORk9fSU5ELCAgICAvKiB3Y2RtYU1hY0twaXMgNCAqLworCitNU0dfSURfRkREX1VNQUNfTURNSV9FTV9IU1VQQV8xX0lORk9fSU5ELCAgICAvKiBoc3VwYU1hY0twaXMgMSAqLworTVNHX0lEX0ZERF9VTUFDX01ETUlfRU1fSFNVUEFfMl9JTkZPX0lORCwgICAgLyogaHN1cGFNYWNLcGlzIDIgKi8KK01TR19JRF9GRERfVU1BQ19NRE1JX0VNX0hTVVBBXzNfSU5GT19JTkQsICAgIC8qIGhzdXBhTWFjS3BpcyAzICovCitNU0dfSURfRkREX1VNQUNfTURNSV9FTV9IU1VQQV80X0lORk9fSU5ELCAgICAvKiBoc3VwYU1hY0twaXMgNCAqLworCitNU0dfSURfRkREX1VNQUNfTURNSV9FTV9XQ0RNQV9QTV82X0lORk9fSU5ELCAgICAvKiB3Y2RtYVBoeU1lYXN1cmVtZW50cyA2ICovCisKKy8qIEZvciBjLW1vZGVsICovCitNU0dfSURfRkREX1VNQUNfQ01PREVMX0dFTkVSQVRFX1NQRUNJRklDX01BQ19FSFNfUERVLAorTVNHX0lEX0ZERF9VTUFDX0NNT0RFTF9HRU5FUkFURV9TUEVDSUZJQ19NQUNfSFNfUERVLAorTVNHX0lEX0ZERF9VTUFDX0NNT0RFTF9DSEVDS19ETF9NQUNfVlJCX0VNUFRZLAorTVNHX0lEX0ZERF9VUkxDX1VNQUNfVFJJR0dFUl9VTUFDX1VUX1NQRUNJQUxfRVZFTlQsCisKK01TR19JRF9GRERfVU1BQ19VTUFDX1BPU1RfVFhfVkVSRElDVF9JTkQsCisvKiBEUkxDLVVNQUMgKi8KK01TR19JRF9GRERfRFJMQ19VTUFDX1NJTVVMQVRFX0lTX01BQ1RJQ0tfQVZBSUxBQkxFLCAvKiBmb3IgVU1BQyBVVCAqLworTVNHX0lEX0ZERF9EUkxDX1VNQUNfREFUQV9QRU5ESU5HX1JFUSwKKworTVNHX0lEX0ZERF9VTUFDX0NPREVfRU5EID0gTVNHX0lEX0ZERF9EUkxDX1VNQUNfREFUQV9QRU5ESU5HX1JFUSwKKy8vTVNHX0lEX1VNQUNfQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9VTUFDX0NPREVfVEFJTCApCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GRERfVVJMQ19DT0RFX0JFR0lOICkKKy8qKioqKiBVUkxDIC0gc3RhcnQgKioqKiovCisvKiBVUkxDIC0gUkFUQ00sIFJBVERNICovCitNU0dfSURfUkFUQ01fVVJMQ19VVEVTVF9BQ1RJVkFURV9MT09QX1JFUSA9IE1TR19JRF9GRERfVVJMQ19DT0RFX0JFR0lOLAorTVNHX0lEX1JBVENNX1VSTENfVVRFU1RfREVBQ1RJVkFURV9MT09QX1JFUSwKK01TR19JRF9SQVRDTV9VUkxDX1VURVNUX09QRU5fTE9PUF9SRVEsCitNU0dfSURfUkFUQ01fVVJMQ19VVEVTVF9DTE9TRV9MT09QX00xX1JFUSwKK01TR19JRF9SQVRDTV9VUkxDX1VURVNUX0NMT1NFX0xPT1BfTTJfUkVRLAorTVNHX0lEX1JBVENNX1VSTENfVVRFU1RfQ0xPU0VfTE9PUF9NNF9SRVEsCitNU0dfSURfUkFURE1fVVJMQ19ERUFDVElWQVRFX1BTX1JBQl9SRVEsCitNU0dfSURfUkFURE1fVVJMQ19ERUFDVElWQVRFX1BTX1JBQl9BQk9SVF9SRVEsCitNU0dfSURfUkFURE1fVVJMQ19EUkxDX05QRFVfRExfQ0JfUkVRLAorTVNHX0lEX1JBVERNX1VSTENfVlJCX1ZBX1NIT1JUQUdFX05URiwKKworLyogVUwyIC0gUkFUQ00gKi8KK01TR19JRF9SQVRDTV9VTDJfRFVQTEVYX01PREVfQ0hBTkdFX1JFUSwKKworLyogVVJMQyAtIERSTEMgKi8KK01TR19JRF9GRERfRFJMQ19VUkxDX1NUQVJUX0RJU0NBUkRfVElNRVJfUkVRLAorCisvKiBVUkxDIC0gU0xDRSAqLworTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19SQUJfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19UTV9FU1RBQkxJU0hfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19VTV9FU1RBQkxJU0hfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19BTV9FU1RBQkxJU0hfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfQ1JMQ19TVVNQRU5EX1JFUSwKK01TR19JRF9GRERfQ1JMQ19SRVNVTUVfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19UWF9DSVBIRVJJTkdfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPTkZJR19SWF9DSVBIRVJJTkdfUkVRLAorTVNHX0lEX0ZERF9DUkxDX0NPVU5UX0NfUkVRLAorTVNHX0lEX0ZERF9DUkxDX1JCX0NPTlRST0xfUkVRLAorTVNHX0lEX0ZERF9DUkxDX1JFRVNUQUJMSVNIX1JFUSwKK01TR19JRF9GRERfQ1JMQ19QU19SQVRFX0lORk9fUkVRLCAvLzIwMTAxMjA2IFNlbmQgUFMgUkFURSBJTkZPIHRvIFJMQyBmb3IgYWRhcHRpdmUgcGFkZGluZworTVNHX0lEX0ZERF9DUkxDX0FCT1JUX1JFUSwgICAgLyogWzIwMTEwNDEzL0FMUFMwMDAzOTk3OS9NZW5nU3VuZ10gQ1JMQyBuZWVkcyB0byBrbm93IEwxIGFib3J0IGhhcHBlbmVkLCBvdGhlcndpc2UgcGVuZGluZyByZS1lc3RhYmxpc2ggY29uZmlndXJhdGlvbiB3b24ndCBiZSBjbGVhciAqLworLyogVVJMQyAtIFVNQUMgKi8KK01TR19JRF9GRERfTDJMX01BQ19EQVRBX0lORCwKK01TR19JRF9GRERfVVJMQ19VTUFDX1BPU1RfVFhfSU5ELAorTVNHX0lEX0ZERF9VUkxDX1VNQUNfU1RBVFVTX1JFUE9SVF9SRVFVSVJFRF9JTkQsIAorTVNHX0lEX0ZERF9VUkxDX1VNQUNfVFhfRENIX01PRElGWV9JTkQsCitNU0dfSURfRkREX1VSTENfVU1BQ19UWF9FRENIX01PRElGWV9JTkQsCitNU0dfSURfRkREX1VSTENfVU1BQ19UWF9TVEFUVVNfSU5ELCAgICAvKiBmb3IgVVJMQyBVVCBvciBVTDIgSVQgKi8KK01TR19JRF9GRERfVVJMQ19VTUFDX0dFVF9BTV9CT19JTkQsICAgIC8qIGZvciBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX0ZERF9VUkxDX1VNQUNfR0VUX0FNX0NPTlRST0xfQk9fSU5ELCAgICAvKiBmb3IgVVJMQyBVVCBvciBVTDIgSVQgKi8KK01TR19JRF9GRERfVVJMQ19VTUFDX0dFVF9UTV9CT19JTkQsICAgIC8qIGZvciBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX0ZERF9VUkxDX1VNQUNfR0VUX1VNX0JPX0lORCwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfRkREX1VSTENfVU1BQ19UUkFOU01JVF9BTV9QRFVfSU5ELCAgICAvKiBmb3IgVVJMQyBVVCBvciBVTDIgSVQgKi8KK01TR19JRF9GRERfVVJMQ19VTUFDX1RSQU5TTUlUX1RNX1BEVV9JTkQsICAgIC8qIGZvciBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX0ZERF9VUkxDX1VNQUNfVFJBTlNNSVRfVU1fUERVX0lORCwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfRkREX1VSTENfVU1BQ19UUkFOU01JVF9TRUdNRU5URURfUERVX0lORCwKK01TR19JRF9GRERfVVJMQ19VTUFDX05PVElGWV9FRENIX0hBUlFfRklOSVNIX0lORCwKK01TR19JRF9GRERfVVJMQ19VTUFDX0RFTElWRVJfVlJCX1BEVV9JTkQsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogNjI5MyBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX0ZERF9VUkxDX1NJTVVMQVRFX1VNQUNfSFNfUUlEX0NUX1RPX0VOVElUWUlEX01BUFBJTkdfUkVRLCAgICAvKiA2MjkzIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfRkREX1VSTENfU0lNVUxBVEVfVU1BQ19CVUZGRVJfT0NDVVBBTkNZX1JFUSwgLyogZm9yIFVNQUMgVVQgKi8KK01TR19JRF9GRERfVVJMQ19TSU1VTEFURV9VTUFDX1JCX1RPX0xPR0lDQUxfQ0hBTk5FTF9NQVBQSU5HX1JFUSwgLyogZm9yIFVNQUMgVVQgKi8KK01TR19JRF9GRERfVVJMQ19TSU1VTEFURV9VTUFDX1JMQ19SRUVTVEFCTElTSF9BQ1RJVkFUSU9OX0lORCwgLyogZm9yIFVNQUMgVVQgKi8KK01TR19JRF9GRERfVVJMQ19TSU1VTEFURV9VTUFDX0VORF9SWF9SRUVTVEFCTElTSF9BTV9VU0VSX1JCX0xPR19DSF9JTkQsIC8qIGZvciBVUkxDIFVUICovCitNU0dfSURfRkREX1VSTENfU0lNVUxBVEVfVU1BQ19RSUROQ1RfVE9fUkxDRU5USVRZSUQsIC8qIGZvciBVTUFDIFVUICovCitNU0dfSURfRkREX1VSTENfVU1BQ19JTkpFQ1RfU0FEUl9SRVEsIC8vREVSRUsKK01TR19JRF9GRERfVVJMQ19VTUFDX0lOSkVDVF9IU1VQQV9DTURfUkVRLCAgLy9ERVJFSworTVNHX0lEX0ZERF9VUkxDX1VNQUNfVFhfU1RPUF9SRVEsCitNU0dfSURfRkREX1VSTENfVU1BQ19UWF9TVE9QX0NORiwKKy8qIERSTEMgLSBVUkxDICovCitNU0dfSURfRkREX0RSTENfVVJMQ19SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfRFJMQ19VUkxDX1JFQVNTRU1CTEVfQ05GLAorTVNHX0lEX0ZERF9EUkxDX1VSTENfREVJTklUX0NORiwKK01TR19JRF9GRERfRFJMQ19VUkxDX1RYX1BSRVNFR19SRVEsCitNU0dfSURfRkREX0RSTENfVVJMQ19FTlRFUl9QQ0hfQ05GLAorTVNHX0lEX0ZERF9EUkxDX1VSTENfU0xFRVBfQVRURU1QVF9DTkYsCitNU0dfSURfRkREX0RSTENfVVJMQ19MQk1fT1BFTl9DTkYsCisvKiBEUkxDIC0gTDJIV1JFQVNNICovCitNU0dfSURfRkREX0RSTENfTDJIV1JFQVNNU0lNX0NNRF9JTkQsIAorTVNHX0lEX0ZERF9MMkhXUkVBU01TSU1fU0VRX0lOVFJfSU5ELAorTVNHX0lEX0ZERF9VTDJEX0JZVEVDT1BZX1NJTV9DTURfSU5ELAorTVNHX0lEX0ZERF9CWVRFQ09QWV9TSU1fVUwyRF9JTlRSX0lORCwKKworLyogVVJMQyAtIFVSTEMgKi8KK01TR19JRF9GRERfTDJMX0RFQlVHX0lORk9fSU5ELAorTVNHX0lEX0ZERF9MMkxfQk9fREVCVUdfSU5GT19JTkQsCitNU0dfSURfRkREX0wyTF9SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfTDJMX1VTRV9PTERfS0VZX1JFUSwKK01TR19JRF9GRERfTDJMX1RSSUdHRVJfUkVTRVRfUkVRLAorTVNHX0lEX0ZERF9MMkxfUkVTRVRfQUNLX1JFQ0VJVkVELAorTVNHX0lEX0ZERF9MMkxfUkVTRVRfREVURUNURUQsCitNU0dfSURfRkREX0wyTF9TVVNQRU5EX1JFUSwKK01TR19JRF9GRERfTDJMX1JFU1VNRV9SRVEsCitNU0dfSURfRkREX0wyTF9STENfQUNDX1JYX0NPTkZJR19SRVEsCitNU0dfSURfRkREX0wyTF9STENfQUNDX1JYX0VWRU5UX0lORCwKK01TR19JRF9GRERfTDJMX1JMQ19BQ0NfSFdfUkVTRVRfSU5ELAorTVNHX0lEX1VSTENfVVJMQ19WUkJfVkFfU0hPUlRBR0VfTlRGLAorCisvLyNpZmRlZiBfX1VMMl9IU1BBX1BMVVNfVFhfQ09QUk9fXworLyogbm8gd3JpdGViYWNrICovCisvKiBmb3Igbm90IGVuY2xvc2UgTVNHX0lEX1VSTENfQ09ERV9FTkQgaW50byBjb21waWxlIG9wdGlvbiwgd2UgZGVjaWRlIG5vdCB0byB1c2UgY29tcGlsZSBvcHRpb24gaGVyZSAqLworLyogaWYgd2UgYWRkIG1vcmUgbXNnIGluIHRoZSBmdXR1cmUsIHdlIGNhbiBhZGQgYmFjayB0aGVzZSBjb21waWxlIG9wdGlvbnMgKi8KKy8vI2Vsc2UKK01TR19JRF9GRERfTDJMX1RYX0NPTlRBSU5FUl9BTExPQ19JTkQsCitNU0dfSURfRkREX0wyTF9UWF9DT05UQUlORVJfREVBTExPQ19JTkQsCitNU0dfSURfRkREX0wyTF9SRUxFQVNFX1VNX1NEVV9JTkQsCisvLyNlbmRpZgorCisvKiBVUkxDIC0gUlJDRSAqLworLy8jaWZkZWYgX19UQzdfX0NTX19TVVBQT1JUX18KK01TR19JRF9GRERfUlJDRV9VUkxDX1VTUl9EQVRBX0FWQUlMQUJMRV9SRVEsCitNU0dfSURfRkREX1JSQ0VfVVJMQ19WSVJUVUFMX0NPTk5FQ1RFRF9SRVNVTUVfSU5ELAorLy8jZW5kaWYgLyogX19UQzdfX0NTX19TVVBQT1JUX18gKi8KKworI2lmZGVmIF9fVUwyX0FDQ19URVNUX0ZQR0FfXyAvL0RFUkVLX0wyU19SRUZJTkUjMjA6IGFkZCBhIG1lc3NhZ2UKK01TR19JRF9GRERfTDJMX1VSTENfQ09TSU1fRE9ORV9JTkQsCisjZW5kaWYgLyogX19VTDJfQUNDX1RFU1RfRlBHQV9fICovCisKK01TR19JRF9GRERfTDJMX1JMQ19FTV9VUERBVEVfSU5ELAorCitNU0dfSURfRkREX0wyTF9STENfVVBMQU5FX0RFQ0lQSEVSX0RPTkVfSU5ELAorCisvKiBVUkxDIC0gU0VRICovCitNU0dfSURfRkREX1VSTENfU0VRX1JSQ19TVEFURV9DSEFOR0VfSU5ELCAvKiBUbyBub3RpZnkgUlJDIHN0YXRlIGNoYW5nZSAqLworTVNHX0lEX0ZERF9VUkxDX1NFUV9SRVNUT1JFX1JCX1JFUSwgLyogZm9yIFVSTEMgVVQgb3IgZHJpdmVyIFVUICovCitNU0dfSURfRkREX1VSTENfU0VRX0VOVEVSX1BDSF9SRVEsCitNU0dfSURfRkREX1VSTENfU0VRX1NMRUVQX0FUVEVNUFRfUkVRLAorTVNHX0lEX0ZERF9VUkxDX0NPREVfRU5EID0gTVNHX0lEX0ZERF9VUkxDX1NFUV9TTEVFUF9BVFRFTVBUX1JFUSwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9GRERfVVJMQ19DT0RFX1RBSUwgKQorLyoqKioqIFVSTEMgLWVuZCAqKioqKi8KKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRkREX1NFUV9DT0RFX0JFR0lOICkKKy8qIFNFUSAtIFVSTEMgKi8KK01TR19JRF9GRERfVVJMQ19TRVFfRU5RVUVVRV9DTURfUkVRID0gTVNHX0lEX0ZERF9TRVFfQ09ERV9CRUdJTiwKK01TR19JRF9GRERfVVJMQ19TRVFfVVJCX0VTVEFCTElTSF9SRVEsCitNU0dfSURfRkREX1VSTENfU0VRX1VSQl9SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfVVJMQ19TRVFfRU5URVJfUENIX0NORiwKK01TR19JRF9GRERfU0VRX1NFUV9FTlFVRVVFX0NNRF9SRVEsCitNU0dfSURfRkREX1NFUV9TRVFfQ01EX1ZFUkRJQ1RfSU5ELAorLyogYWRkIGJ5IEphY2thbCBmb3IgVUwyIEROVCB2ZXJkaWN0LCAyMDEwLzQvMTYgKi8KK01TR19JRF9GRERfU0VRX1NFUV9ETlRfSFdfUkVHX1ZFUkRJQ1RfSU5ELAorTVNHX0lEX0ZERF9TRVFfVVJMQ19DTURfUkVHSVNURVJfSU5ELAorTVNHX0lEX0ZERF9VTUFDX1NFUV9FTlFVRVVFX0NNRF9SRVEsCitNU0dfSURfRkREX1VNQUNfU0VRX1RJQ0tfUkVRLAorTVNHX0lEX0ZERF9VUkxDX1NFUV9TTEVFUF9BVFRFTVBUX0NORiwKKworLyogU0VRIC0gU0xDRSAqLworTVNHX0lEX0ZERF9DU0VRX0NPTkZJR19VTDJBQ0NfQ0xLX09OX0lORk9fUkVRLAorTVNHX0lEX0ZERF9DU0VRX0NPTkZJR19VTDJBQ0NfQ0xLX09GRl9JTkZPX1JFUSwKK01TR19JRF9GRERfU0VRX0NPREVfRU5EID0gTVNHX0lEX0ZERF9DU0VRX0NPTkZJR19VTDJBQ0NfQ0xLX09GRl9JTkZPX1JFUSwKKworLyogQ1NSICovCitNU0dfSURfQ1NSX1NFVF9ST1VUSU5HX1JFUSwKK01TR19JRF9DU1JfQ09ERUNfREFUQV9SRVEsCisKKy8qIFVMMiAtIEwyQUNDU0lNICovCitNU0dfSURfU0VRX0hXQUNDU0lNX0NNRF9JTkQsICAgCitNU0dfSURfSFdBQ0NTSU1fU0VRX0lOVFJfSU5ELCAKKworLypVUkxDIC0tIEJNQyovCitNU0dfSURfRkREX1VSTENfQk1DX1BSSU9fSU5ELAorCisjaWZuZGVmIF9fTVRLX1RBUkdFVF9fCitNU0dfSURfQ1NSX1RNX0RBVEFfUkVRLAorCisgICAgLyogTDFBdWQgaW50ZXJmYWNlICovCitNU0dfSURfQ1NSX1NQM0dfQUNUSVZBVEVfUkVRLAorTVNHX0lEX0NTUl9TUDNHX1NFVF9GUkFNRV9SRVEsCitNU0dfSURfQ1NSX1NQM0dfR0VUX0ZSQU1FX0lORCwKK01TR19JRF9DU1JfU1AzR19QVVRfRlJBTUVfUkVRLAorTVNHX0lEX0NTUl9TUDNHX0NBTExCQUNLX1JFUSwKKworICAgIC8qIENTRCBpbnRlcmZhY2UgKi8KK01TR19JRF9DU1JfUkFUQ01fQUNUSVZBVEVfUkVRLAorTVNHX0lEX0NTUl9SQVRDTV9ERUFDVElWQVRFX1JFUSwKK01TR19JRF9DU1JfUkFUQ01fREFUQV9JTkQsCitNU0dfSURfQ1NSX1JBVENNX0RBVEFfUkVRLAorCisgICAgLyogVlQgaW50ZXJmYWNlICovCitNU0dfSURfQ1NSX1ZUX0FDVElWQVRFX1JFUSwKK01TR19JRF9DU1JfVlRfREVBQ1RJVkFURV9SRVEsCitNU0dfSURfQ1NSX1ZUX0RBVEFfSU5ELAorTVNHX0lEX0NTUl9WVF9EQVRBX1JFUSwKKworTVNHX0lEX0NTUl9TUDNHSFNQQV9TRVRfQ1NERUxBWV9JTkQsCitNU0dfSURfQ1NSX1NQM0dIU1BBX0dFVF9GUkFNRV9JTkQsCitNU0dfSURfQ1NSX1NQM0dIU1BBX1BVVF9GUkFNRV9SRVEsCisKK01TR19JRF9DU1JfU0hBUV9EQVRBX1JFUSwKK01TR19JRF9GRERfUkxDX0NTUl9EQVRBX0lORCwKKworCisjZW5kaWYKKy8qKioqIENTUiBlbmQgKioqKiovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9TRVFfQ09ERV9UQUlMICkKKyNlbmRpZiAvKiBfX1VNVFNfRkREX01PREVfXyAqLworCisvKiBtdGs4MDE5NywgbWVyZ2UgVEREMTI4IGJhY2sgdG8gTUFVSSAqLworI2lmIGRlZmluZWQoX19VTVRTX1RERDEyOF9NT0RFX18pCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEREX1VNQUNfQ09ERV9CRUdJTiApCisvL01TR19JRF9VTUFDX0NPREVfQkVHSU4sCisvKiBTTENFLVVNQUMgKi8KK01TR19JRF9URERfQ01BQ19DT05GSUdfVFhfQ0NUUkNIX1JFUSA9IE1TR19JRF9URERfVU1BQ19DT0RFX0JFR0lOLAorI2lmZGVmIF9fSFNVUEFfU1VQUE9SVF9fCitNU0dfSURfVEREX0NNQUNfQ09ORklHX0VEQ0hfQ0NUUkNIX1JFUSwgLyogbXRrODAxOTcsIDIwMTAtMDYtMjIgKi8KKyNlbmRpZgorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19SWF9DQ1RSQ0hfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19IU0RTQ0hfQ0NUUkNIX1JFUSwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfVFhfQ0NUUkNIX1JFUSwKKyNpZmRlZiBfX0hTVVBBX1NVUFBPUlRfXworTVNHX0lEX1RERF9DTUFDX1JFTU9WRV9FRENIX0NDVFJDSF9SRVEsIC8qIG10azgwMTk3LCAyMDEwLTA2LTIyICovCisjZW5kaWYKK01TR19JRF9URERfQ01BQ19SRU1PVkVfUlhfQ0NUUkNIX1JFUSwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfSFNEU0NIX0NDVFJDSF9SRVEsCitNU0dfSURfVEREX0NNQUNfVFJBRkZJQ19WT0xVTUVfTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19DSVBIRVJJTkdfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19VRV9SRVEsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX1JBQ0hfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPVU5UX0NfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19UWF9STENfTU9ESUZZX1JFUSwKK01TR19JRF9URERfQ01BQ19DT05GSUdfUlhfUkxDX01PRElGWV9SRVEsCitNU0dfSURfVEREX0NNQUNfREVMRVRFX0NJUEhFUklOR19SRVEsCitNU0dfSURfVEREX0NNQUNfSFNfUkVTRVRfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19URkNfU1VCU0VUX1JFUSwKK01TR19JRF9URERfQ01BQ19RVUFMSVRZX01FQVNVUkVNRU5UX1JFUSwKK01TR19JRF9URERfQ01BQ19BRERJVElPTkFMX1RWTV9SRVEsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX0NQQ0hfUkVRLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19BQk9SVF9SRVEsCitNU0dfSURfVEREX0NNQUNfQUJPUlRfSUdOT1JFX0lOSVRfU1lOQ19SRVEsCitNU0dfSURfVEREX0NNQUNfV09SS0ZSRVFfQ0hBTkdFX1JFUSwgLyogbXRrODA3NjAsIEhTRFBBIExvY2FsIFJlc2V0ICovCisKKy8qIENTUi1VTUFDICovCitNU0dfSURfVEREX0NTUl9VTUFDX0RFQUNUSVZBVEVfUkVQT1JUX1JFUSwKK01TR19JRF9URERfQ1NSX1VNQUNfU1RBVFVTX1JFUSwKKy8qIFVSTEMtVU1BQyovCitNU0dfSURfVEREX1VSTENfVU1BQ19UWF9EQVRBX1JFUSwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfVEREX1VSTENfVU1BQ19HRU1JTklfUkVTRVQsICAgLyogZm9yIFVNQUMgVVQgKi8KKworLyogVU1BQy1VTUFDICovICAKK01TR19JRF9URERfVU1BQ19VTUFDX0RDSF9VTF9EUENIX0NDVFJDSF9SU1AsCitNU0dfSURfVEREX1VNQUNfVU1BQ19EQ0hfVUxfRFBDSF9DQ1RSQ0hfUkVTVUxULAorTVNHX0lEX1RERF9VTUFDX1VNQUNfRENIX1VMX0RQQ0hfUE9XRVJfSU5ELCAKKyNpZmRlZiBfX0hTVVBBX1NVUFBPUlRfXworTVNHX0lEX1RERF9VTUFDX1VNQUNfRURDSF9USUNLMV9JTkQsICAgIC8qIGZvciBFLURDSCBjYWxsYmFjayBzaW11bGF0aW9uLCBtdGs4MDE5NywgMjAxMC0wNi0yMiAqLworTVNHX0lEX1RERF9VTUFDX1VNQUNfRURDSF9USUNLMl9JTkQsICAgIC8qIGZvciBFLURDSCBjYWxsYmFjayBzaW11bGF0aW9uLCBtdGs4MDE5NywgMjAxMC0wNi0yMiAqLworI2VuZGlmCitNU0dfSURfVEREX1VNQUNfVU1BQ19UMV9USU1FUl9BQ1RJT05fSU5ELAorTVNHX0lEX1RERF9VTUFDX1VNQUNfQUJPUlRfSU5ELAorCisvKiBEUkxDLVVNQUMgKi8KK01TR19JRF9URERfRFJMQ19VTUFDX0RBVEFfUEVORElOR19SRVEsCisKK01TR19JRF9URERfVU1BQ19DT0RFX0VORCA9IE1TR19JRF9URERfRFJMQ19VTUFDX0RBVEFfUEVORElOR19SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9VTUFDX0NPREVfVEFJTCApCisvL01TR19JRF9VTUFDX0NPREVfRU5ELAorCisvKioqKiogVVJMQyAtIHN0YXJ0ICoqKioqLworLyogVVJMQyAtIFJBVENNLCBSQVRETSAqLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1RERF9VUkxDX0NPREVfQkVHSU4gKQorLyogVW5pdmVyc2FsIEJpbjogbWVyZ2UgVEREIGFuZCBGREQgUkFUQ01fVVJMQyBkdXBsaWNhdGVkIE1TRyBJRCAqLworI2lmICFkZWZpbmVkKF9fVU1UU19GRERfTU9ERV9fKQorTVNHX0lEX1JBVENNX1VSTENfVVRFU1RfQUNUSVZBVEVfTE9PUF9SRVEgPSBNU0dfSURfVEREX1VSTENfQ09ERV9CRUdJTiwKK01TR19JRF9SQVRDTV9VUkxDX1VURVNUX0RFQUNUSVZBVEVfTE9PUF9SRVEsCitNU0dfSURfUkFUQ01fVVJMQ19VVEVTVF9PUEVOX0xPT1BfUkVRLAorTVNHX0lEX1JBVENNX1VSTENfVVRFU1RfQ0xPU0VfTE9PUF9NMV9SRVEsCitNU0dfSURfUkFUQ01fVVJMQ19VVEVTVF9DTE9TRV9MT09QX00yX1JFUSwKK01TR19JRF9SQVRDTV9VUkxDX1VURVNUX0NMT1NFX0xPT1BfTTRfUkVRLAorTVNHX0lEX1JBVERNX1VSTENfREVBQ1RJVkFURV9QU19SQUJfUkVRLAorTVNHX0lEX1JBVERNX1VSTENfREVBQ1RJVkFURV9QU19SQUJfQUJPUlRfUkVRLAorCisvKiBVTDIgLSBSQVRDTSAqLworTVNHX0lEX1JBVENNX1VMMl9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorCisvKiBVUkxDIC0gRFJMQyAqLworTVNHX0lEX1RERF9EUkxDX1VSTENfU1RBUlRfRElTQ0FSRF9USU1FUl9SRVEsCisjZWxzZQorLyogVVJMQyAtIERSTEMgKi8KK01TR19JRF9URERfRFJMQ19VUkxDX1NUQVJUX0RJU0NBUkRfVElNRVJfUkVRID0gTVNHX0lEX1RERF9VUkxDX0NPREVfQkVHSU4sCisjZW5kaWYgLyogIWRlZmluZWQoX19VTVRTX0ZERF9NT0RFX18pICovCisKKy8qIFVSTEMgLSBTTENFICovCitNU0dfSURfVEREX0NSTENfQ09ORklHX1JBQl9SRVEsCitNU0dfSURfVEREX0NSTENfQ09ORklHX1RNX0VTVEFCTElTSF9SRVEsCitNU0dfSURfVEREX0NSTENfQ09ORklHX1VNX0VTVEFCTElTSF9SRVEsCitNU0dfSURfVEREX0NSTENfQ09ORklHX0FNX0VTVEFCTElTSF9SRVEsCitNU0dfSURfVEREX0NSTENfQ09ORklHX1JFTEVBU0VfUkVRLAorTVNHX0lEX1RERF9DUkxDX1NVU1BFTkRfUkVRLAorTVNHX0lEX1RERF9DUkxDX1JFU1VNRV9SRVEsCitNU0dfSURfVEREX0NSTENfQ09ORklHX1RYX0NJUEhFUklOR19SRVEsCitNU0dfSURfVEREX0NSTENfQ09ORklHX1JYX0NJUEhFUklOR19SRVEsCitNU0dfSURfVEREX0NSTENfQ09VTlRfQ19SRVEsCitNU0dfSURfVEREX0NSTENfUkJfQ09OVFJPTF9SRVEsCitNU0dfSURfVEREX0NSTENfUkVFU1RBQkxJU0hfUkVRLAorTVNHX0lEX1RERF9DUkxDX1BTX1JBVEVfSU5GT19SRVEsCitNU0dfSURfVEREX0NSTENfQUJPUlRfUkVRLAorCisvKiBVUkxDIC0gVU1BQyAqLworTVNHX0lEX1RERF9MMkxfTUFDX0RBVEFfSU5ELAorTVNHX0lEX1RERF9VUkxDX1VNQUNfUE9TVF9UWF9JTkQsCitNU0dfSURfVEREX1VSTENfVU1BQ19TVEFUVVNfUkVQT1JUX1JFUVVJUkVEX0lORCwgCitNU0dfSURfVEREX1VSTENfVU1BQ19UWF9EQ0hfTU9ESUZZX0lORCwKK01TR19JRF9URERfVVJMQ19VTUFDX1JMQ19NT0RJRllfSU5ELAorI2lmZGVmIF9fSFNVUEFfU1VQUE9SVF9fCitNU0dfSURfVEREX1VSTENfVU1BQ19UWF9FRENIX01PRElGWV9JTkQsCisjZW5kaWYKK01TR19JRF9URERfVVJMQ19VTUFDX1RYX1NUQVRVU19JTkQsICAgIC8qIGZvciBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX1RERF9VUkxDX1VNQUNfR0VUX0FNX0JPX0lORCwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfVEREX1VSTENfVU1BQ19HRVRfQU1fQ09OVFJPTF9CT19JTkQsICAgIC8qIGZvciBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX1RERF9VUkxDX1VNQUNfR0VUX1RNX0JPX0lORCwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfVEREX1VSTENfVU1BQ19HRVRfVU1fQk9fSU5ELCAgICAvKiBmb3IgVVJMQyBVVCBvciBVTDIgSVQgKi8KK01TR19JRF9URERfVVJMQ19VTUFDX1RSQU5TTUlUX0FNX1BEVV9JTkQsICAgIC8qIGZvciBVUkxDIFVUIG9yIFVMMiBJVCAqLworTVNHX0lEX1RERF9VUkxDX1VNQUNfVFJBTlNNSVRfVE1fUERVX0lORCwgICAgLyogZm9yIFVSTEMgVVQgb3IgVUwyIElUICovCitNU0dfSURfVEREX1VSTENfVU1BQ19UUkFOU01JVF9VTV9QRFVfSU5ELCAgICAvKiBmb3IgVVJMQyBVVCBvciBVTDIgSVQgKi8KK01TR19JRF9URERfVVJMQ19VTUFDX0lOSkVDVF9TQURSX1JFUSwgLy9ERVJFSworTVNHX0lEX1RERF9VUkxDX1VNQUNfSU5KRUNUX0hTVVBBX0NNRF9SRVEsICAvL0RFUkVLCisKKy8qIERSTEMgLSBVUkxDICovCitNU0dfSURfVEREX0RSTENfVVJMQ19SRUxFQVNFX1JFUSwKK01TR19JRF9URERfRFJMQ19VUkxDX1JFQVNTRU1CTEVfQ05GLAorTVNHX0lEX1RERF9EUkxDX1VSTENfVFhfUFJFU0VHX1JFUSwgICAgICAvKiBtdGs4MDQzNywgMjAxMC0wOC0wNCAqLworCisvKiBVUkxDIC0gVVJMQyAqLworTVNHX0lEX1RERF9MMkxfREVCVUdfSU5GT19JTkQsCitNU0dfSURfVEREX0wyTF9CT19ERUJVR19JTkZPX0lORCwKK01TR19JRF9URERfTDJMX1JFTEVBU0VfUkVRLAorTVNHX0lEX1RERF9MMkxfVFJJR0dFUl9SRVNFVF9SRVEsCitNU0dfSURfVEREX0wyTF9SRVNFVF9BQ0tfUkVDRUlWRUQsCitNU0dfSURfVEREX0wyTF9SRVNFVF9ERVRFQ1RFRCwKK01TR19JRF9URERfTDJMX1NVU1BFTkRfUkVRLAorTVNHX0lEX1RERF9MMkxfUkVTVU1FX1JFUSwKK01TR19JRF9URERfVVJMQ19DT0RFX0VORCA9IE1TR19JRF9URERfTDJMX1JFU1VNRV9SRVEsCisvKioqKiogVVJMQyAtZW5kICoqKioqLworLyogQ1NSICovCisjaWYgIWRlZmluZWQoX19VTVRTX0ZERF9NT0RFX18pCitNU0dfSURfQ1NSX1NFVF9ST1VUSU5HX1JFUSwKK01TR19JRF9DU1JfQ09ERUNfREFUQV9SRVEsCisKKyNpZm5kZWYgX19NVEtfVEFSR0VUX18KK01TR19JRF9DU1JfVE1fREFUQV9SRVEsCisKKyAgICAvKiBMMUF1ZCBpbnRlcmZhY2UgKi8KK01TR19JRF9DU1JfU1AzR19BQ1RJVkFURV9SRVEsCitNU0dfSURfQ1NSX1NQM0dfU0VUX0ZSQU1FX1JFUSwKK01TR19JRF9DU1JfU1AzR19HRVRfRlJBTUVfSU5ELAorTVNHX0lEX0NTUl9TUDNHX1BVVF9GUkFNRV9SRVEsCitNU0dfSURfQ1NSX1NQM0dfQ0FMTEJBQ0tfUkVRLAorCisgICAgLyogQ1NEIGludGVyZmFjZSAqLworTVNHX0lEX0NTUl9SQVRDTV9BQ1RJVkFURV9SRVEsCitNU0dfSURfQ1NSX1JBVENNX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX0NTUl9SQVRDTV9EQVRBX0lORCwKK01TR19JRF9DU1JfUkFUQ01fREFUQV9SRVEsCisKKyAgICAvKiBWVCBpbnRlcmZhY2UgKi8KK01TR19JRF9DU1JfVlRfQUNUSVZBVEVfUkVRLAorTVNHX0lEX0NTUl9WVF9ERUFDVElWQVRFX1JFUSwKK01TR19JRF9DU1JfVlRfREFUQV9JTkQsCitNU0dfSURfQ1NSX1ZUX0RBVEFfUkVRLAorCitNU0dfSURfQ1NSX1NIQVFfREFUQV9SRVEsCisKKyNlbmRpZgorI2VuZGlmCisvKioqKiBDU1IgZW5kICoqKioqLworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9VUkxDX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBfX1VNVFNfVEREMTI4X01PREVfXyAqLworCisjaWZkZWYgX19TT1VSQ0VfSU5TSUdIVF9QQVJTRV9fCit9OworI2VuZGlmCisKKyNlbmRpZiAgLy9VTDJfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VsMmRfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VsMmRfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWY4YWU1Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWwyZF9tc2dpZC5oCkBAIC0wLDAgKzEsNTkzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDcKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgdWwyZF9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT05aQQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZzokCisgKgorICogMDYgMDYgMjAxNyBqZW4tZGUubGFpCisgKiBbTU9MWTAwMjUzNDcwXSBTRTIgSW50ZXJuYWwgQ1JdIFs4OTYwIEFUVCB0ZXN0XSBbNjI5M11bSTYtUEVSRl0gW1RDNTAwMDBdWzFdW2NvcmUxLHZwZTAsdGMwKHZwZTIpXSBBc3NlcnQgZmFpbDogbDJfdGVzdGxvb3Bfb25lLmMgOTUwIC0gVUwyRAorICoKKyAqIDA2IDA2IDIwMTcgZnJhbmsuc29uZworICogW01PTFkwMDI1NDAyMl0gW0JJQU5DT11bTVQ2NzYzXVtSRElUXVtWVEZfUkZdW0ZERCAzR11bR1FBM10gQXNzZXJ0IGZvciBXQ0RNQSBSNiB0ZXN0IHdpdGggMDUzMSBvZmZpY2lhbCBsb2FkCisgKiBhZnRlciBkZWluaXRfcmVxIGFuZCBkZWluaXRfY25mLCBSTEMgc3RpbGwgcmVjZWl2ZWQgdGhlIEJDIGRvbmUsIGJ1dCBUWCBhbmQgUlggZW50aXR5IGhhcyBiZWVuIHJlbW92ZWQuc28gRFJMQyBuZWVkIHRvIHdhaXQgZm9yIGFsX2JjX2RvbmVfaW5kLiBUaGVuIGRybGMgY2FuIHNlbmQgZGVpbml0X2NuZi4KKyAqCisgKiAwMSAyNSAyMDE3IHNoLnlhbmcKKyAqIFtNT0xZMDAxNzk3NDddIFtVTU9MWUFdIERldmVsb3BtZW50IHBoYXNlIGNoZWNrLWluCisgKiBQb3dlciBjb250cm9sIGNoZWNrLWluLCBjb2RlIHN5bmMgdG8gMzQxNjE4My4KKyAqCisgKiAwMSAwNSAyMDE3IGplbi1kZS5sYWkKKyAqIFtNT0xZMDAxOTUzMTddIFtVUkxDXVtUWF0gLSBHZW45MyBVUkxDIFRYIGNvZGUgbW9kaWZpY2F0aW9uIGZvciBuZXcgSFcgYW5kIE1DVSBBcmNoaSAtIExCTSBvbiBWUkIKKyAqCisgKiAxMiAyNiAyMDE2IHJhdml0ZWouYmFsbGFrdXIKKyAqIFtNT0xZMDAxOTUzNjBdIFszR11bUkFURE1dW1BEQ1BdIC0gR2VuOTMgM0cgUkFURE0gYW5kIFBEQ1AgY29kZSBtb2RpZmljYXRpb24gZm9yIG5ldyBIVyBhbmQgTUNVIEFyY2hpCisgKiBGaXhpbmcgYnVnIGluIFJBVERNIGZyZWUgU0RVIGZvciBUYXJnZXQgYW5kIFVFU0lNIGFzIHdlbGwgYXMgZml4ZXMgZm9yIFBEQ1AgSEMuLgorICoKKyAqIDA5IDI2IDIwMTYgcmF2aXRlai5iYWxsYWt1cgorICogW01PTFkwMDE5NTM2MF0gWzNHXVtSQVRETV1bUERDUF0gLSBHZW45MyAzRyBSQVRETSBhbmQgUERDUCBjb2RlIG1vZGlmaWNhdGlvbiBmb3IgbmV3IEhXIGFuZCBNQ1UgQXJjaGkKKyAqIAlNZXJnaW5nIDJHIGFuZCBXQ0RNQSBSQVRETSBhbmQgUERDUCBjaGFuZ2VzIGZyb20gbWVyZ2VfQ0JyLgorICoKKyAqIDA4IDAzIDIwMTYgcmF2aXRlai5iYWxsYWt1cgorICogW01PTFkwMDE5NTM2MF0gWzNHXVtSQVRETV1bUERDUF0gLSBHZW45MyAzRyBSQVRETSBhbmQgUERDUCBjb2RlIG1vZGlmaWNhdGlvbiBmb3IgbmV3IEhXIGFuZCBNQ1UgQXJjaGkKKyAqIDNHIFJBVERNIGFuZCBQRENQIGNoYW5nZXMuCisgKgorICogMDQgMTYgMjAxNSBjaGFybGVzY20ud3UKKyAqIFtNT0xZMDAwOTg0NThdIFtVTU9MWV1bVW5pdmVyc2FsIEJpbl1bUGhhc2UgMl1bRkREXVtVTDJdIE1vZGUgY2hhbmdlCisgKiAuCisgKgorICogMDIgMTMgMjAxNSBoZWFkLmhzdQorICogW01PTFkwMDA5MTgyMl0gUkFURE0gcmVvcmdhbml6YXRpb24KKyAqIAlGREQvVEREIFJBQk0vUERDUCBjaGVja2luCisgKgorICogMDEgMDYgMjAxNSB3ZWkudGFuZworICogW01PTFkwMDA4NzY4NV0gW1VNQUNdW0NTUl11bml2ZXJzYWwgYmluIGNoZWNrIGluCisgKiBzeW5jIFVCSU4gQ0JyCisgKgorICogMTIgMjkgMjAxNCBjaGFybGVzY20ud3UKKyAqIFtNT0xZMDAwODc2NzldIFtVTU9MWV1bRkREXVtVQVMgQ09NTU9OXVtVTDIgQ09NTU9OL1VSTEMvQk1DL1NFUV1VLUJpbiBDQnIgdG8gVU1PTFkgVFJVTkNLLgorICoKKyAqIDEyIDE2IDIwMTQgam9obnNvbi5saXUKKyAqIFtNT0xZMDAwODc3NTldIFtPbmUgbW9kZW0gYmluXVN5bmMgVEREIFJBQk0gY29kZSB0byBVTU9MWSB0cnVuaworICogLgorICoKKyAqIDEyIDE1IDIwMTQgY2hhcmxlc2NtLnd1CisgKiBbTU9MWTAwMDg3Njc5XSBbVU1PTFldW0ZERF1bVUFTIENPTU1PTl1bVUwyIENPTU1PTi9VUkxDL0JNQy9TRVFdVS1CaW4gQ0JyIHRvIFVNT0xZIFRSVU5DSy4KKyAqCisgKiAxMiAxNSAyMDE0IGppbnBlbmcuaHUKKyAqIFtNT0xZMDAwODc1OTBdIFtVYmluIGNoZWNrLWluIFVNT0xZXVtURERdW1VSTENdLWFkZCBwcmVmaXgKKyAqCisgKiAxMiAxMiAyMDE0IHRjLmNoYW5nCisgKiBbTU9MWTAwMDg3NDM0XSBbVW5pdmVyc2FsIEJpbl0gQ2hlY2sgaW4uCisgKiBGREQgUkFCTQorICoKKyAqIDAzIDI1IDIwMTQgc3RhbmxleS5rbworICogW01PTFkwMDA2MDAxMl0gQVQrRUNCTVIgdG8gcmVtb3ZlIG1vZGVtIENCIHJlY29yZHMKKyAqCisgKiAwMyAxMyAyMDE0IHlhbmZlaS5kaW5nCisgKiBbTU9MWTAwMDU5NDQwXSBbM0cgVEREXVtVQVNdW1NZTkMgRkREIENSXSBBZGQgU1JCIEZsb3cgQ29udHJvbCB0byBhdm9pZCBVUlIgUXVldWUgRnVsbAorICogCUludGVyZmFjZSB1cGRhdGUgLgorICoKKyAqIDExIDE1IDIwMTIgam9obnNvbi5saXUKKyAqIFtNT0xZMDAwMDYyMDJdIFtURERdW1I2XVJlbW92ZSBSQUJNIFQzMzE5IGV4cGlyeSBoYW5kbGVyCisgKiAuCisgKiAKKyAqIDA5IDE4IDIwMTIgeWFuZmVpLmRpbmcKKyAqIFtNT0xZMDAwMDM3NDRdIFszRyBURERdW19fUkFURE1fVUxfU0hBUV9fXSBDaGVjayBpbiBTSEFRIENvZGUgYW5kIEVuYWJsZSBTSEFRCisgKiAuCisgKiAKKyAqIDA4IDIyIDIwMTIgYW5kcmV3Lnd1CisgKiBbTU9MWTAwMDAyMzE5XSBbTVNCQl0gUmVtb3ZlIEludmFsaWQgSW50ZXItQ2F0ZWdvcnkgSW5jbHVkaW5nLgorICogbW9kZW0gcmVsYXRlZCBvcHRpb24gbW92ZSB0byBtb2RlbSBpbnRlcm5hbAorICoKKyAqIDA2IDI3IDIwMTIgam9obnNvbi5saXUKKyAqIFtNT0xZMDAwMDAwMjldIFszRyBURERdbW9kaWZ5IG1zZyBpZCByYW5nZSBpbiBNT0xZIGJyYW5jaAorICogRGlmZiBQRENQJlJBQk0gTVNHIElEIGZvciBUREQuCisgKgorICogMDYgMjUgMjAxMiBiYWJ5bG9uLnRpZW4KKyAqIFtNT0xZMDAwMDAwMjldIFszRyBURERdbW9kaWZ5IG1zZyBpZCByYW5nZSBpbiBNT0xZIGJyYW5jaAorICogPHNhdmVkIGJ5IFBlcmZvcmNlPgorICoKKyAqIDA2IDI1IDIwMTIgaHVpZmVuZy5qaW5nCisgKiBbTU9MWTAwMDAwMDI5XSBbM0cgVEREXW1vZGlmeSBtc2cgaWQgcmFuZ2UgaW4gTU9MWSBicmFuY2gKKyAqIERpZmZlciBDU1IgTWVzc2FnZXMgYmV0d2VlbiBUREQgJiBGREQuCisgKgorICogMDYgMjUgMjAxMiB5YW5mZWkuZGluZworICogW01PTFkwMDAwMDAyOV0gWzNHIFRERF1tb2RpZnkgbXNnIGlkIHJhbmdlIGluIE1PTFkgYnJhbmNoCisgKiBEaWZmZXIgVVJMQywgRFJMQyBNZXNzYWdlcyBiZXR3ZWVuIFRERCAmIEZERC4KKyAqCisgKiAwNiAwOCAyMDEyIHFpbmdodWEueXUKKyAqIHJlbW92ZWQhCisgKiAxKSBjb25maXJtIGFsbCBfbXNnaWQuaCBpcyBzYW1lIGFzIG9sZCAoZXhjbHVkZSBmb2xkIC4uL2RlbGV0ZS8pOworICogMikgZml4IHJhbmdlIGVycm9yIGluIG1vZHVsZV9tc2dfcmFuZ2UuaC4KKyAqCisgKiAwNSAyNCAyMDEyIHdjcHVzZXJfaW50ZWdyYXRvcgorICogcmVtb3ZlZCEKKyAqIFFpbmdodWEgWXUgY2hlY2sgaW4gZ2xvYmFsIGVudW0gKE1TRyAmIFNBUCkgYXQgbW9kZW1fZGV2LgorICoKKyAqIDA1IDI0IDIwMTIgd2NwdXNlcl9pbnRlZ3JhdG9yCisgKiByZW1vdmVkIQorICogUWluZ2h1YSBZdSBjaGVjayBpbiBnbG9iYWwgZW51bSAoTVNHICYgU0FQKSBhdCBtb2RlbV9kZXYuCisgKgorICogMDUgMjQgMjAxMiB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIHJlbW92ZWQhCisgKiBRaW5naHVhIFl1IGNoZWNrIGluIGdsb2JhbCBlbnVtIChNU0cgJiBTQVApIGF0IG1vZGVtX2Rldi4KKyAqCisgKiAwNSAwOCAyMDEyIGJhYnlsb24udGllbgorICogcmVtb3ZlZCEKKyAqIDxzYXZlZCBieSBQZXJmb3JjZT4KKyAqCisgKiAwMiAwNyAyMDEyIGFuZHJldy53dQorICogcmVtb3ZlZCEKKyAqIEludGVncmF0aW9uIGNoYW5nZS4KKyAqCisgKiAwMSAyMCAyMDEyIGlqLmxpYW8KKyAqIHJlbW92ZWQhCisgKiAuCisgKgorICogMDEgMTYgMjAxMiBhbmRyZXcud3UKKyAqIHJlbW92ZWQhCisgKiBJbnRlZ3JhdGlvbiBjaGFuZ2UuCisgKgorICogMDEgMTMgMjAxMiBpai5saWFvCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDAxIDExIDIwMTIgY2FybHNvbi5saW4KKyAqIHJlbW92ZWQhCisgKiA8c2F2ZWQgYnkgUGVyZm9yY2U+CisgKgorICogMTIgMTEgMjAxMSBoYWl6aG91LmxpdQorICogcmVtb3ZlZCEKKyAqIC4KKyAqCisgKiAxMSAxOSAyMDExIGFzaGxleXJveS55YW5nCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDExIDEzIDIwMTEgaGFpemhvdS5saXUKKyAqIHJlbW92ZWQhCisgKiAxMSAwOCAyMDExIHdlaW1pbi56ZW5nCisgKiByZW1vdmVkIQorICogbWVyZ2UgTVNCQi4KKyAqCisgKiAwOCAxMiAyMDExIGFuZHJldy53dQorI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTigpCisgKiByZW1vdmVkIQorICogUmVtb3ZlIENDU1JfUkJfUkVMRUFTRV9JTkQKKyAqCisgKiAwNyAwNyAyMDExIG1lbmdzdW5nLnd1CisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDA0IDE1IDIwMTEgeWl0aW5nLmNoZW5nCisgKiByZW1vdmVkIQorICogTUFVSQorICoKKyAqIDAzIDMxIDIwMTEgdGMuY2hhbmcKKyAqIHJlbW92ZWQhCisgKiAuCisgKgorICogMDEgMjEgMjAxMSBtYXgueWluCisgKiByZW1vdmVkIQorICogLgorICoKKyAqIDEyIDA3IDIwMTAgYWxmcmVkLmxlZQorICogcmVtb3ZlZCEKKyAqIFBTIEhBTCBVTDIgU0FQIEhlYWRlciBmaWxlcyBtb3ZlIAorICoKKyAqIDEyIDAxIDIwMTAgcXVhbnBpbmcud2FuZworICogcmVtb3ZlZCEKKyAqIE1lcmdlIFRERDEyOCBiYWNrdG8gTUFVSSwgYmFzZWQgb24gMTBBVzEwMzJNUF9BU1RSTyB3MTAuNDggVHVlLiBQMQorICoKKyAqIDA5IDE3IDIwMTAgamVzc2ljYS5jaGFuZworICogcmVtb3ZlZCEKKyAqIC4KKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIAorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiAKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIGFkZCB0byBzb3VyY2UgY29udHJvbCByZWN1cnNlbHkKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1VMMkRfTVNHX0gKKyNkZWZpbmUgX1VMMkRfTVNHX0gKKworI2lmZGVmIF9fU09VUkNFX0lOU0lHSFRfUEFSU0VfXwordHlwZWRlZiBlbnVtIHsKKyNlbmRpZgorCisKKy8qIG10azgwMTk3LCBtZXJnZSBUREQxMjggYmFjayB0byBNQVVJICovCisjaWYgZGVmaW5lZChfX1VNVFNfRkREX01PREVfXykKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9CTUNfQ09ERV9CRUdJTiApCisvKioqKiogQk1DIC0gc3RhcnQgKioqKiovCisvKiBCTUMgLSBSQVRDTSAqLworTVNHX0lEX1JBVENNX0JNQ19DQkNIX1JFUSA9IE1TR19JRF9CTUNfQ09ERV9CRUdJTiwKK01TR19JRF9SQVRDTV9CTUNfVVBEQVRFX1JFUSwKK01TR19JRF9SQVRDTV9CTUNfQ0JfTE9DX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fQk1DX0NCX01TR19SRU1PVkFMX1JFUSwKKworLyogVUwyRCAtIFJBVENNICovCitNU0dfSURfUkFUQ01fVUwyRF9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorCisvKiBVbml2ZXJzYWwgQmluOiBtZXJnZSBUREQgYW5kIEZERCBCTUMgaW5zaWRlIHRoZSBBUyAqLworI2lmIGRlZmluZWQoX19VTVRTX1RERDEyOF9NT0RFX18pCisvKiBCTUMgLSBTTENFICovCitNU0dfSURfVEREX0NCTUNfQ09ORklHX1JFUSwKKy8qIEJNQyAtIERSTEMgKi8KK01TR19JRF9URERfUkxDX0JNQ19EQVRBX0lORCwKKyNlbmRpZiAvKiBfX1VNVFNfVEREMTI4X01PREVfXyAqLworLyogQk1DIC0gU0xDRSAqLworTVNHX0lEX0ZERF9DQk1DX0NPTkZJR19SRVEsCisvKiBCTUMgLSBEUkxDICovCitNU0dfSURfRkREX1JMQ19CTUNfREFUQV9JTkQsCitNU0dfSURfQk1DX0NPREVfRU5EID0gTVNHX0lEX0ZERF9STENfQk1DX0RBVEFfSU5ELAorLyoqKioqIEJNQyAtIGVuZCAqKioqKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfQk1DX0NPREVfVEFJTCApCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GRERfQ1NSX0NPREVfQkVHSU4gKQorLy9NU0dfSURfRkREX0NTUl9DT0RFX0JFR0lOLAorLy9VTUFDCitNU0dfSURfRkREX0NTUl9VTUFDX1NUQVRVU19JTkQgPSBNU0dfSURfRkREX0NTUl9DT0RFX0JFR0lOLAorTVNHX0lEX0ZERF9DU1JfVU1BQ19URkNfSU5ELAorTVNHX0lEX0ZERF9DQ1NSX1JBQl9FU1RBQkxJU0hfSU5ELAorTVNHX0lEX0ZERF9DQ1NSX1JBQl9SRUxFQVNFX0lORCwKK01TR19JRF9GRERfQ0NTUl9SQUJfTU9ESUZZX0lORCwKK01TR19JRF9GRERfQ0NTUl9SQl9SRUxFQVNFX0lORCwKK01TR19JRF9GRERfQ1NSX0NPREVfRU5EID0gTVNHX0lEX0ZERF9DQ1NSX1JCX1JFTEVBU0VfSU5ELAorLy9NU0dfSURfRkREX0NTUl9DT0RFX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRkREX0NTUl9DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRkREX0RSTENfQ09ERV9CRUdJTiApCisvKioqKiogRFJMQyAtIHN0YXJ0ICoqKioqLworLyogRFJMQyAtIFVSTEMgKi8KK01TR19JRF9GRERfRFJMQ19VUkxDX1JFQVNTRU1CTEVfUkVRID0gTVNHX0lEX0ZERF9EUkxDX0NPREVfQkVHSU4sCitNU0dfSURfRkREX0RSTENfVVJMQ19JTklUX1JFUSwKK01TR19JRF9GRERfRFJMQ19VUkxDX0RFSU5JVF9SRVEsCitNU0dfSURfRkREX0RSTENfVVJMQ19FTlRFUl9QQ0hfUkVRLAorTVNHX0lEX0ZERF9EUkxDX1VSTENfU0xFRVBfQVRURU1QVF9SRVEsCitNU0dfSURfRkREX0RSTENfVVJMQ19MQk1fT1BFTl9SRVEsCisKKy8qIERSTEMgLSBEUkxDICovCitNU0dfSURfRkREX0RSTENfRFJMQ19CQ19ET05FX0lORCwKK01TR19JRF9GRERfRFJMQ19VUExBTkVfQUxMX0JDX0NCX0RPTkVfSU5ELAorTVNHX0lEX0ZERF9EUkxDX1VQTEFORV9BTExfQkNfQ0JfRE9ORV9CRUZPUkVfREVJTklUX0lORCwKKy8qIERSTEMgLSBSUkNFICovCitNU0dfSURfRkREX1JSQ0VfRFJMQ19GTFVTSF9EQVRBX1JFUSwKKy8qIERSTEMgLSBVUlIgKi8KK01TR19JRF9GRERfVVJSX0RSTENfU1JCX1NEVV9DT05USU5VRV9SRVEsCisvKiBEUkxDIC0gQURSICovCitNU0dfSURfRkREX1JMQ19UTV9EQVRBX1JFUSwKK01TR19JRF9GRERfUkxDX1VNX0RBVEFfUkVRLAorTVNHX0lEX0ZERF9STENfQU1fREFUQV9SRVEsCitNU0dfSURfRkREX0RSTENfQ09ERV9FTkQgPSBNU0dfSURfRkREX1JMQ19BTV9EQVRBX1JFUSwKKy8qKioqKiBEUkxDIC0gZW5kICoqKioqLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9GRERfRFJMQ19DT0RFX1RBSUwgKQorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GRERfUERDUF9DT0RFX0JFR0lOICkKKy8vTVNHX0lEX0ZERF9QRENQX0NPREVfQkVHSU4sCitNU0dfSURfRkREX0NQRENQX0NPTkZJR19SRVEgPSBNU0dfSURfRkREX1BEQ1BfQ09ERV9CRUdJTiwKK01TR19JRF9GRERfQ1BEQ1BfUkVMT0NfUkVRLAorTVNHX0lEX0ZERF9DUERDUF9SRUxFQVNFX1JFUSwKK01TR19JRF9GRERfUERDUF9VUkxDX1JFU0VUX0lORCwKK01TR19JRF9GRERfUERDUF9VUkxDX1JFRVNUQUJMSVNIX0lORCwKKyNpZmRlZiBVTklUX1RFU1QKK01TR19JRF9GRERfUERDUF9DU1JfREFUQV9JTkQsCitNU0dfSURfRkREX1BEQ1BfQ1NSX0JVSUxEQU1SX1JFUSwKK01TR19JRF9GRERfUERDUF9DU1JfQlVJTERBTVJfUlNQLAorI2VuZGlmCitNU0dfSURfUkFURE1fUERDUF9SRVNFVF9TVEFUSVNUSUNTX1JFUSwKK01TR19JRF9QRENQX0RBVEFfREVMSVZFUl9JTkQsCisKK01TR19JRF9GRERfUERDUF9DT0RFX0VORCA9IE1TR19JRF9QRENQX0RBVEFfREVMSVZFUl9JTkQsCisvL01TR19JRF9GRERfUERDUF9DT0RFX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRkREX1BEQ1BfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9SQUJNX0NPREVfQkVHSU4gKQorLy9NU0dfSURfRkREX1JBQk1fQ09ERV9CRUdJTiwKKy8qIFJBVERNIC0gUkFCTSAqLworTVNHX0lEX1JBVERNX1JBQk1fQUNUSVZBVEVfUkVRID0gTVNHX0lEX0ZERF9SQUJNX0NPREVfQkVHSU4sCitNU0dfSURfUkFURE1fUkFCTV9BQ1RJVkFURV9SU1AsCitNU0dfSURfUkFURE1fUkFCTV9ERUFDVElWQVRFX1JFUSwKK01TR19JRF9SQVRETV9SQUJNX01PRElGWV9SRVEsCitNU0dfSURfUkFURE1fUkFCTV9SRUVTVEFCTElTSF9SU1AsCitNU0dfSURfUkFURE1fUkFCTV9SRVNVTUVfUkVRLAorTVNHX0lEX1JBVERNX1JBQk1fREFUQV9SRVEsCitNU0dfSURfUkFURE1fUkFCTV9SQVRfRU5URVJfUkVRLAorTVNHX0lEX1JBVERNX1JBQk1fUkFUX0xFQVZFX1JFUSwKKworTVNHX0lEX1JBVERNX1JBQk1fUkVFU1RBQkxJU0hfUkFCX1JFQURZX0lORCwKKworLyogVUwgZGF0YSBwYXRoIG9wdGltaXphdGlvbjogU2hhcmUgVXBsaW5rIFF1ZXVlICovCisKK01TR19JRF9SQVRETV9TSEFRX0tJQ0tfVUwyLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzEsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMywKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzQsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF81LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfNiwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzcsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF84LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfOSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzEwLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMTEsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xMiwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzEzLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMTQsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xNSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzE2LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMTcsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xOCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzE5LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjAsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yMSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzIyLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjMsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yNCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzI1LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjYsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yNywKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzI4LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjksCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8zMCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzMxLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMzIsCisvKiBfX05FV19EQVRBX1BMQU5FX18gKi8KK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMCwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMSwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMiwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMywKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfNCwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfNSwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfNiwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfNywKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfOCwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfOSwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMTAsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzExLAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8xMiwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMTMsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzE0LAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8xNSwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMTYsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzE3LAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8xOCwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMTksCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzIwLAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8yMSwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMjIsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzIzLAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8yNCwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMjUsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzI2LAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8yNywKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMjgsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzI5LAorTVNHX0lEX1JFQUxUSU1FX1NJVF9LSUNLX1VSTENfUFNfUkJJRF8zMCwKK01TR19JRF9SRUFMVElNRV9TSVRfS0lDS19VUkxDX1BTX1JCSURfMzEsCitNU0dfSURfUkVBTFRJTUVfU0lUX0tJQ0tfVVJMQ19QU19SQklEXzMyLAorCisKKy8qIFNMQ0UgLSBSQUJNICovCitNU0dfSURfRkREX0NSQUJNX1JBQl9FU1RBQkxJU0hfSU5ELAorTVNHX0lEX0ZERF9DUkFCTV9SQUJfUkVMRUFTRV9JTkQsCisKKy8qIFJSQ0UgLSBSQUJNICovCitNU0dfSURfRkREX0NSQUJNX1BTX1JBQl9DQVBBQklMSVRZX0lORCwKKworTVNHX0lEX0ZERF9SQUJNX0NPREVfRU5EID0gTVNHX0lEX0ZERF9DUkFCTV9QU19SQUJfQ0FQQUJJTElUWV9JTkQsCisvL01TR19JRF9SQUJNX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9GRERfUkFCTV9DT0RFX1RBSUwgKQorCisjZW5kaWYgLyogX19VTVRTX0ZERF9NT0RFX18gKi8KKworLyogbXRrODAxOTcsIG1lcmdlIFRERDEyOCBiYWNrIHRvIE1BVUkgKi8KKyNpZiBkZWZpbmVkKF9fVU1UU19UREQxMjhfTU9ERV9fKQorCisjaWYgIWRlZmluZWQoX19VTVRTX0ZERF9NT0RFX18pIC8qIFVCOiB0ZW1wIGFkZCB0aGlzIGNvbXBpbGUgb3B0aW9uIGZvciBMVEcgYnVpbGQgdGVzdCAqLworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0JNQ19URERfQ09ERV9CRUdJTiApCisvKioqKiogQk1DIC0gc3RhcnQgKioqKiovCisvKiBCTUMgLSBSQVRDTSAqLworTVNHX0lEX1JBVENNX0JNQ19DQkNIX1JFUSA9IE1TR19JRF9CTUNfVEREX0NPREVfQkVHSU4sCitNU0dfSURfUkFUQ01fQk1DX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fQk1DX0NCX0xPQ19VUERBVEVfUkVRLAorTVNHX0lEX1JBVENNX0JNQ19DQl9NU0dfUkVNT1ZBTF9SRVEsCisKKy8qIFVMMkQgLSBSQVRDTSAqLworTVNHX0lEX1JBVENNX1VMMkRfRFVQTEVYX01PREVfQ0hBTkdFX1JFUSwKKworLyogQk1DIC0gU0xDRSAqLworTVNHX0lEX0NCTUNfQ09ORklHX1JFUSwKKy8qIEJNQyAtIERSTEMgKi8KK01TR19JRF9STENfQk1DX0RBVEFfSU5ELAorTVNHX0lEX0JNQ19DT0RFX0VORCA9IE1TR19JRF9STENfQk1DX0RBVEFfSU5ELAorLyoqKioqIEJNQyAtIGVuZCAqKioqKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfQk1DX1RERF9DT0RFX1RBSUwgKQorI2VuZGlmIC8qICFkZWZpbmVkKF9fVU1UU19GRERfTU9ERV9fKSAqLworCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9DU1JfVEREX0NPREVfQkVHSU4gKQorLy9NU0dfSURfQ1NSX0NPREVfQkVHSU4sCisvL1VNQUMKK01TR19JRF9URERfQ1NSX1VNQUNfU1RBVFVTX0lORCA9IE1TR19JRF9DU1JfVEREX0NPREVfQkVHSU4sCitNU0dfSURfVEREX0NTUl9VTUFDX1RGQ19JTkQsCitNU0dfSURfVEREX0NDU1JfUkFCX0VTVEFCTElTSF9JTkQsCitNU0dfSURfVEREX0NDU1JfUkFCX1JFTEVBU0VfSU5ELAorTVNHX0lEX1RERF9DQ1NSX1JBQl9NT0RJRllfSU5ELAorTVNHX0lEX1RERF9DQ1NSX1JCX1JFTEVBU0VfSU5ELAorTVNHX0lEX1RERF9DU1JfQ09ERV9FTkQgPSBNU0dfSURfVEREX0NDU1JfUkJfUkVMRUFTRV9JTkQsCisvL01TR19JRF9DU1JfQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0NTUl9URERfQ09ERV9UQUlMICkKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEREX0RSTENfQ09ERV9CRUdJTiApCisvKioqKiogRFJMQyAtIHN0YXJ0ICoqKioqLworLyogRFJMQyAtIFVSTEMgKi8KK01TR19JRF9URERfRFJMQ19VUkxDX1JFQVNTRU1CTEVfUkVRID0gTVNHX0lEX1RERF9EUkxDX0NPREVfQkVHSU4sCisvKiBEUkxDIC0gUlJDRSAqLworTVNHX0lEX1RERF9SUkNFX0RSTENfRkxVU0hfREFUQV9SRVEsCisvKiBEUkxDIC0gVVJSICovCitNU0dfSURfVEREX1VSUl9EUkxDX1NSQl9TRFVfQ09OVElOVUVfUkVRLAorLyogRFJMQyAtIEFEUiAqLworTVNHX0lEX1RERF9STENfVE1fREFUQV9SRVEsCitNU0dfSURfVEREX1JMQ19VTV9EQVRBX1JFUSwKK01TR19JRF9URERfUkxDX0FNX0RBVEFfUkVRLAorTVNHX0lEX1RERF9EUkxDX0NPREVfRU5EID0gTVNHX0lEX1RERF9STENfQU1fREFUQV9SRVEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9EUkxDX0NPREVfVEFJTCApCisvKioqKiogRFJMQyAtIGVuZCAqKioqKi8KKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1RERF9QRENQX0NPREVfQkVHSU4gKQorLy9NU0dfSURfUERDUF9DT0RFX0JFR0lOLAorTVNHX0lEX1RERF9DUERDUF9DT05GSUdfUkVRID0gTVNHX0lEX1RERF9QRENQX0NPREVfQkVHSU4sCitNU0dfSURfVEREX0NQRENQX1JFTE9DX1JFUSwKK01TR19JRF9URERfQ1BEQ1BfUkVMRUFTRV9SRVEsCitNU0dfSURfVEREX1BEQ1BfVVJMQ19SRVNFVF9JTkQsCitNU0dfSURfVEREX1BEQ1BfVVJMQ19SRUVTVEFCTElTSF9JTkQsCitNU0dfSURfVEREX1BEQ1BfRkxDX1JFU1VNRV9VTF9UUkFOU0ZFUiwKK01TR19JRF9URERfUERDUF9GTENfUkVTVU1FX0RMX1RSQU5TRkVSLAorTVNHX0lEX1RERF9QRENQX0NPREVfRU5EID0gTVNHX0lEX1RERF9QRENQX0ZMQ19SRVNVTUVfRExfVFJBTlNGRVIsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9QRENQX0NPREVfVEFJTCApCisvL01TR19JRF9QRENQX0NPREVfRU5ELAorCisvL01TR19JRF9SQUJNX0NPREVfQkVHSU4sCisvKiBSQVRETSAtIFJBQk0gKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9SQUJNX1RERF9DT0RFX0JFR0lOICkKKy8qIHVzZSBGREQgZGVmaW5hdGlvbiBmb3Igb25lIG1vZGVtIGJpbi4KK01TR19JRF9SQVRETV9SQUJNX0FDVElWQVRFX1JFUSA9IE1TR19JRF9SQUJNX1RERF9DT0RFX0JFR0lOLAorTVNHX0lEX1JBVERNX1JBQk1fQUNUSVZBVEVfUlNQLAorTVNHX0lEX1JBVERNX1JBQk1fREVBQ1RJVkFURV9SRVEsCitNU0dfSURfUkFURE1fUkFCTV9NT0RJRllfUkVRLAorTVNHX0lEX1JBVERNX1JBQk1fUkVFU1RBQkxJU0hfUlNQLAorTVNHX0lEX1JBVERNX1JBQk1fUkVTVU1FX1JFUSwKK01TR19JRF9SQVRETV9SQUJNX0RBVEFfUkVRLAorKi8KKy8vUkFURE0gLSBQRENQCisvL01TR19JRF9SQVRETV9QRENQX1JFU0VUX1NUQVRJU1RJQ1NfUkVRLAorCisvKiBVTCBkYXRhIHBhdGggb3B0aW1pemF0aW9uOiBTaGFyZSBVcGxpbmsgUXVldWUgKi8KKy8qICB1c2UgRkREIGRlZmluYXRpb24gZm9yIG9uZSBtb2RlbSBiaW4uCitNU0dfSURfUkFURE1fU0hBUV9LSUNLX1VMMiwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzAsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMiwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzMsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF80LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfNSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzYsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF83LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfOCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzksCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xMCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzExLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMTIsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xMywKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzE0LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMTUsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xNiwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzE3LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMTgsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8xOSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzIwLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjEsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yMiwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzIzLAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjQsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yNSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzI2LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMjcsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8yOCwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzI5LAorTVNHX0lEX1JFQUxUSU1FX1NIQVFfS0lDS19VUkxDX1BTX1JCSURfMzAsCitNU0dfSURfUkVBTFRJTUVfU0hBUV9LSUNLX1VSTENfUFNfUkJJRF8zMSwKK01TR19JRF9SRUFMVElNRV9TSEFRX0tJQ0tfVVJMQ19QU19SQklEXzMyLAorKi8KKworLyogU0xDRSAtIFJBQk0gKi8KK01TR19JRF9URERfQ1JBQk1fUkFCX0VTVEFCTElTSF9JTkQgPSBNU0dfSURfUkFCTV9URERfQ09ERV9CRUdJTiwKK01TR19JRF9URERfQ1JBQk1fUkFCX1JFTEVBU0VfSU5ELAorCisvKiBSUkNFIC0gUkFCTSAqLworTVNHX0lEX1RERF9DUkFCTV9QU19SQUJfQ0FQQUJJTElUWV9JTkQsCisgICAgCisvKiAgICAKKyNpZmRlZiBfX1JFTDdfXworICAgIE1TR19JRF9SQVRETV9SQUJNX1JFRVNUQUJMSVNIX1JBQl9SRUFEWV9JTkQsCisjZW5kaWYKKyovCisKK01TR19JRF9URERfUkFCTV9DT0RFX0VORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfUkFCTV9URERfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9fVU1UU19UREQxMjhfTU9ERV9fICovCisKKyNpZmRlZiBfX1NPVVJDRV9JTlNJR0hUX1BBUlNFX18KK307CisjZW5kaWYKKworI2VuZGlmICAgLy9fVUwyRF9NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWxjc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdWxjc19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiODQ1M2YKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91bGNzX21zZ2lkLmgKQEAgLTAsMCArMSwxMzcgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB1bGNzX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIEFHUFMKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2c6JAorICoKKyAqIDEyIDE3IDIwMTQgZmFybWluZy50c2VuZworICogW01PTFkwMDA4Nzg1N10gW1VBUyBGRERdIFVCSU4gaW50cmEtY2F0ZWdvcnkgaW50ZXJmYWNlCisgKiBbVUJJTl0gRkREIENJU0UgaW50ZXJmYWNlIHdpdGggQUdQUy4KKyAqCisgKiAxMiAxNiAyMDE0IGNsYXVkLmxpCisgKiBbTU9MWTAwMDg3Nzk1XSBbTUVNRV0gdW5pdmVyc2FsIGJpbiBjaGVjayBpbgorICogW1VuaXZlcnNhbCBiaW5dIFtGRERdW01FTUUvUlJDRS9DU0NFL0NTRS9BR1BTXSBpbnRlcmZhY2UgYW5kIG1lc3NhZ2UgaWQKKyAqCisgKiAwNiAwOCAyMDEyIHFpbmdodWEueXUKKyAqIHJlbW92ZWQhCisgKiAxKSBjb25maXJtIGFsbCBfbXNnaWQuaCBpcyBzYW1lIGFzIG9sZCAoZXhjbHVkZSBmb2xkIC4uL2RlbGV0ZS8pOworICogMikgZml4IHJhbmdlIGVycm9yIGluIG1vZHVsZV9tc2dfcmFuZ2UuaC4KKyAqCisgKiAwNSAyNCAyMDEyIHdjcHVzZXJfaW50ZWdyYXRvcgorICogcmVtb3ZlZCEKKyAqIFFpbmdodWEgWXUgY2hlY2sgaW4gZ2xvYmFsIGVudW0gKE1TRyAmIFNBUCkgYXQgbW9kZW1fZGV2LgorICoKKyAqIDA1IDI0IDIwMTIgd2NwdXNlcl9pbnRlZ3JhdG9yCisgKiByZW1vdmVkIQorICogUWluZ2h1YSBZdSBjaGVjayBpbiBnbG9iYWwgZW51bSAoTVNHICYgU0FQKSBhdCBtb2RlbV9kZXYuCisgKgorICogMDUgMjQgMjAxMiB3Y3B1c2VyX2ludGVncmF0b3IKKyAqIHJlbW92ZWQhCisgKiBRaW5naHVhIFl1IGNoZWNrIGluIGdsb2JhbCBlbnVtIChNU0cgJiBTQVApIGF0IG1vZGVtX2Rldi4KKyAqCisgKiAwMiAyNSAyMDExIGMtaHVhLnlhbmcKKyAqIHJlbW92ZWQhCisgKiAuCisgKgorICogMTIgMDcgMjAxMCBnb3Jkb25qYy5rdW8KKyAqIHJlbW92ZWQhCisgKiA8c2F2ZWQgYnkgUGVyZm9yY2U+CisgKgorICogMDggMTYgMjAxMCBkYXZpZC5uaXUKKyAqIHJlbW92ZWQhCisgKiAyRyBwYXJhbWV0ZXIgaW5pdGlhbGl6YXRpb24gYW5kIFVQL0NQIGNvbmZsaWN0IGhhbmRsaW5nIG1vZGlmaWNhdGlvbgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiBhZGQgdG8gc291cmNlIGNvbnRyb2wgcmVjdXJzZWx5CisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfVUxDU19NU0dfSAorI2RlZmluZSBfVUxDU19NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVUFHUFNfQ1BfQ09ERV9CRUdJTiApCisvL01TR19JRF9VQUdQU19DUF9DT0RFX0JFR0lOLAorLy8gTDQKK01TR19JRF9MNENfVUFHUFNfQ1BfQUdQU19FTkFCTEVfRElTQUJMRV9SRVEgPSBNU0dfSURfVUFHUFNfQ1BfQ09ERV9CRUdJTiwKK01TR19JRF9MNENfVUFHUFNfQ1BfQUdQU19LRVlfVVBEQVRFX1JFUSwKK01TR19JRF9MNENfVUFHUFNfQ1BfQUdQU19ORVdfS0VZX05FRURFRF9JTkQsCisKKy8vIENTQ0UKK01TR19JRF9GRERfVUFHUFNfQ1BfQ1NDRV9TVEFSVF9TSUIxNV9DT0xMRUNUSU9OX1JFUSwKK01TR19JRF9GRERfVUFHUFNfQ1BfQ1NDRV9TVEFSVF9TSUIxNV9DT0xMRUNUSU9OX0NORiwKK01TR19JRF9GRERfVUFHUFNfQ1BfQ1NDRV9TVE9QX1NJQjE1X0NPTExFQ1RJT05fUkVRLAorTVNHX0lEX0ZERF9VQUdQU19DUF9DU0NFX1NUT1BfU0lCMTVfQ09MTEVDVElPTl9DTkYsCitNU0dfSURfRkREX1VBR1BTX0NQX0NTQ0VfQ0VMTF9DSEFOR0VfSU5ELAorCisvLyBTSUJFCitNU0dfSURfRkREX1VBR1BTX0NQX1NJQkVfU0lCMTVfQ0hBTkdFX0lORCwKKworLy8gTUVNRQorTVNHX0lEX0ZERF9VQUdQU19DUF9NRU1FX01PVkVfVE9fU1RBVEVfSU5ELAorTVNHX0lEX0ZERF9VQUdQU19DUF9NRU1FX1BPU0lUSU9OSU5HX0RBVEFfSU5ELAorTVNHX0lEX0ZERF9VQUdQU19DUF9NRU1FX1JFTEVBU0VfTUVBU1VSRU1FTlRfSU5ELAorTVNHX0lEX0ZERF9VQUdQU19DUF9NRU1FX1BPU0lUSU9OSU5HX0RBVEFfUkVRLAorTVNHX0lEX0ZERF9VQUdQU19DUF9NRU1FX1JFTEVBU0VfTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX0ZERF9VQUdQU19DUF9NRU1FX01FQVNVUkVNRU5UX1JFUE9SVF9DTkYsCisKK01TR19JRF9VQUdQU19DUF9DT0RFX0VORCA9IE1TR19JRF9GRERfVUFHUFNfQ1BfTUVNRV9NRUFTVVJFTUVOVF9SRVBPUlRfQ05GLAorLy9NU0dfSURfVUFHUFNfQ1BfQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1VBR1BTX0NQX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fVUxDU19NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdXBjbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdXBjbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNzI1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91cGNtX21zZ2lkLmgKQEAgLTAsMCArMSwyNzYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB1cGNtX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFVQQ00gYW5kIFByb3RvY29sIFN0YWNrIHJlbGF0ZWQgbWVzc2FnZSBpZGVudGl0eSBkZWZpbml0aW9uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA4IDEzIDIwMjAga2VuLmxpCisgKiBbTU9MWTAwNTQzNDk3XSBbTVQ2ODczXVtNYXJnYXV4XVtSMF1bTVA1XVtpbi1ob3VzZSBGVEFdW0xURV1bNy4xLjEuMl1lbmFibGUgdm9sdGUgZmFpbAorICogCQorICogCVVQQ00gVEVTVE1PREUgZHJvcHMgbm9uLWxvb3BiYWNrIGRhdGEgZm9yIG9idGFpbmluZyBJUCBhZGRyZXNzIGNhc2UgKFNXUkQpCisgKgorICogMDUgMDcgMjAyMCBhbmR5LXdjLmNoYW5nCisgKiBbTU9MWTAwNTA2MzEyXSBbVGl0YW5dW0lQQ11bSU1TXSBJUENfSU1TX0lOVklURV9GTFVTSCAoMHgxQykgLSBFTDIgZGV2CisgKiBbVk1PTFldW1RJVEFOXSBpcGMgZmx1c2ggY29tbWFuZCBwb3J0aW5nIC0gc2V0dGluZzMKKyAqCisgKiAwMiAyNiAyMDIwIHdpbGx5LXdqLmNoZW4KKyAqIFtNT0xZMDA1MDE5ODFdIFtHZW45N11bVVBDTV0gVE1PLVVTIEY0TCBkYXRhIHBlcmZvcm1hbmNlIHBhdGNoIHN5bmMgZnJvbSBHZW45MworICogW1VQQ01dIHB1dCBzbWFsbCBVRFAgcGFja2V0IGludG8gcHJpLVNJVCB1cG9uIGNoYW5uZWwgbG9jay4KKyAqCisgKiAwMiAwNyAyMDIwIHRjLmNoYW5nCisgKiBbTU9MWTAwNDg2ODYwXSAyNzUyOTI0oUehaTE5MTY1oWqhaT+lfrOhP6XOoWqhaT8/pf0/oWqhabLEpFSk6KFqoWmyebJ5pGqnQD+harJ5snmkaqdAP7TlPz+1e6SkoUGlWD+tq7dzP7G1LgorICoKKyAqIDAyIDA0IDIwMjAgYWxsZW4ua2VoCisgKiBbTU9MWTAwNDc2MjczXSBbTVQ2Mjk3XVtnZW1pbmldW1ZHTU1dIGdlbWluaSBwaGFzZSAyIGRldmVsb3BtZW50CisgKiAJCisgKiAJLmFkZCBpbnRlcmZhY2UgJiBjdXN0b20gZmlsZQorICoKKyAqIDEyIDA1IDIwMTkgdGMuY2hhbmcKKyAqIFtNT0xZMDA0NDY4NjFdIFtHZW45N11bQ29kZSBTeW5jXSBbQjE5MDQxNC04MTldP8SjPz97ZD9BST8/NDUwICg/YFg/QT9oYD8pIEFjY29yZGluZyB0byBkYXRhIHR5cGUgdG8gcmVsZWFzZSBIUFMgZm9yIHBhZ2luZy4KKyAqCisgKiAxMiAwNCAyMDE5IHl1LWhzaW4ubGluCisgKiBbTU9MWTAwNDYzMjMxXSBbR0VOOTddW0dXU0QrXSBwYXRjaGJhY2sgZnJvbSAxMDAxZGV2CisgKiBbT0FdW0dXU0RdIG1zZ2lkIGZvciBHV1NECisgKgorICogMDkgMjMgMjAxOSB0Yy5jaGFuZworICogW01PTFkwMDQ0MjYzMF0gW01UNjg4NV1bUGV0cnVzXVtTQV1bUlREXVtCbG9ja2luZ10gSU1TIFJlZ2lzdGVyIGlzIG5vdCBzZW50IGJ5IFVFIGJlY2F1c2Ugb2Ygbm8gbWF0Y2hlZCBURlQuCisgKgorICogMDcgMTIgMjAxOSB0Yy5jaGFuZworICogW01PTFkwMDQyMTA2MV0gW0dlbjk3XSBBTkJSIChSQlIsUkJSUSkgb3ZlciBOUi4KKyAqCisgKiAwNyAwNCAyMDE5IHRjLmNoYW5nCisgKiBbTU9MWTAwNDE4MjcyXSBbR2VuOTddIFN5bmMgR2VuOTUgVU1PTFlFIHBhdGNoLgorICoKKyAqIDA3IDAzIDIwMTkgbWFyay5uZworICogW01PTFkwMDQxNTIyOV0gTk1BQyBSQlIgZmVhdHVyZSBkZXZlbG9wbWVudAorICogCQorICogCVJCUiBpbnRlcmZhY2UgKFNXUkQgZG9tYWluKQorICoKKyAqIDA1IDA5IDIwMTkgdGMuY2hhbmcKKyAqIFtNT0xZMDA0MDQ3NzBdIFtHZW45N10gU3luYyBHZW45NSBVTU9MWUUgcGF0Y2guCisgKiBSQlJRLCBVU0lSLCBmYWtlIEEyCisgKgorICogMDQgMTkgMjAxOSB0Yy5jaGFuZworICogW01PTFkwMDM5OTk5M10gW0dlbjk3XVtWTU9MWV0gaW50ZXJ3b3JraW5nIHdpdGhOMjYgZmVhdHVyZXMuCisgKgorICogMDYgMTQgMjAxOCB0aW1vdGh5LnlhbworICogW01PTFkwMDMzMzE3Nl0gW0lDRF0gc3RhZ2UxK3N0YWdlMiBJQ0QgVU1PTFlFIENCciBwYXRjaCBiYWNrIHRvIExSMTMuUjAKKyAqIFtJQ0RdW1VQQ01dCisgKgorICogMDYgMTEgMjAxOCBqaWEtc2hpLmxpbgorICogW01PTFkwMDMxOTM3M10gW01UNjI5NV0gcmVjb21tZW5kZWQgYml0IHJhdGUgZmVhdHVyZQorICogcmVjb21tZW5kZWQgYml0IHJhdGUgZmVhdHVyZTogdXBjbS1lbWFjIGludGVyZmFjZQorICoKKyAqIDA4IDEwIDIwMTcgc3RldmUua2FvCisgKiBbTU9MWTAwMjY5OTA5XSBbTVQ2MjkzXSBJUCBUYWcgZGV2ZWxvcG1lbnQKKyAqIFtUUlVOS11bVVBDTV0gSVAgcGFja2V0IHRhZ2dpbmcuCisgKgorICogMDIgMjQgMjAxNyBwb3lpbmcuY2h1YW5nCisgKiBbTU9MWTAwMjA5NzM3XSBbTVQ2MjkzXSBMV1RHIGFuZCBDMksgTDQgaW50ZWdyYXRpb24gY2hlY2sgaW4KKyAqIAkKKyAqIAktIFtNMl0gU3VwcG9ydCBBVCtDR1NEQVRBIGNvbW1hbmQgLSBpbnRlcmZhY2Ugb2YgbDRicGRuL3VwY20gLgorICoKKyAqIDEyIDI4IDIwMTYgY2FtbWllLnlhbmcKKyAqIFtNT0xZMDAyMjEzMjRdIFs2MjkzXVtFTDJdW1VQQ01dIEMySyBmZWF0dXJlIGludGVncmF0aW9ucworICogW1RSVU5LXVtVUENNXSBtb2RpZmljYXRpb25zIGZvciBDMksgZmVhdHVyZSBpbnRlZ3JhdGlvbnMKKyAqCisgKiAxMiAyNyAyMDE2IGNhbW1pZS55YW5nCisgKiBbTU9MWTAwMjIxMzI0XSBbNjI5M11bRUwyXVtVUENNXSBDMksgZmVhdHVyZSBpbnRlZ3JhdGlvbnMKKyAqIFtVTU9MWUFdW1VQQ01dIEludGVyZmFjZSBjaGFuZ2UgZm9yIEMySyBpbnRlZ3JhdGlvbgorICoKKyAqIDA5IDI2IDIwMTYgY2FtbWllLnlhbmcKKyAqIFtNT0xZMDAxOTU1NjNdIFs2MjkzXVtFTDJdW1VQQ01dW1JBVERNXVtFUERDUF0gSW5pdGlhbCBmZWF0dXJlIGludGVncmF0aW9ucworICogW1RSVU5LXSBVUENNL1JBVERNL0VQRENQIGZlYXR1cmUgaW50ZWdyYXRpb25zIGZyb20gUFMuREVWCisgKgorICogMDYgMTEgMjAxNSBhcmllbC5saW4KKyAqIFtNT0xZMDAxMjAzOTZdIFtVTU9MWV0gVm9MVEUgcGF0Y2ggYmFjayBmcm9tIE1QNworICogTWVyZ2UgZnJvbSBDTDEzNTMzOTUuCisgKgorICogMDYgMDUgMjAxNSBhcmllbC5saW4KKyAqIE1QNyB0byBVTU9MWS4KKyAqCisgKiAwNCAyNyAyMDE1IGJlbi5jaGl1CisgKiBbTU9MWTAwMTA5MjM0XSBbVm9MVEVdW1ZvbHVudGVlciBQYXRjaF0gTVA3LkNNQ0NWT0xURS5GUEIgbWVyZ2UgYmFjayB0byBNUDcvTVA3LkNNQ0MKKyAqIE1QNy5DTUNDVk9MVEUuRlBCIG1lcmdlIGJhY2sgdG8gTVA3CisgKgorICogMDQgMjcgMjAxNSBiZW4uY2hpdQorICogW01PTFkwMDEwOTIzNF0gW1ZvTFRFXVtWb2x1bnRlZXIgUGF0Y2hdIE1QNy5DTUNDVk9MVEUuRlBCIG1lcmdlIGJhY2sgdG8gTVA3L01QNy5DTUNDCisgKiBNUDcuQ01DQ1ZPTFRFLkZQQiBtZXJnZSBiYWNrIHRvIE1QNworICoKKyAqIDAyIDA1IDIwMTUgc3Rhbi5jaGVuCisgKiBbTU9MWTAwMDk0OTM5XSBNQVNFIFVNT0xZIGNoZWNrIGluCisgKiBNQVNFLzRHRVNMIGNvZGUgY2hlY2tpbi4KKyAqCisgKiAwMSAwNyAyMDE1IHN0YW4uY2hlbgorICogW01PTFkwMDA4MTkyNV0gW1RLNjI5MV9ERVZdIEVNQk1TIFN1cHBvcnQKKyAqIFJlc3RvcmUgVVBDTSBNQk1TQUwgbXNnIGlkcy4KKyAqCisgKiAxMSAwNyAyMDE0IGt1bi1saW4ud3UKKyAqIFtNT0xZMDAwODIzNjZdIExvb3AgYmFjayBtb2RlIDQgc3VwcG9ydAorICoKKyAqIDA4IDI5IDIwMTQgc3Rhbi5jaGVuCisgKiBbTU9MWTAwMDc3NTkxXSBbVEs2MjkxXSBNQk1TQUwgZm9yIGVNQk1TCisgKiBTdW1taXQgTUJNU0FMIEVSUkMgaW50ZXJmYWNlcy4KKyAqCisgKiAwNyAyNSAyMDEzIGplZmZlcnkuY2hlbgorICogW01PTFkwMDAzMTIwNl0gW01PTFldW0w0QyBQU10gQWRkIEFUK0VHTEQgdG8gbGVhdmUgZGF0YSBtb2RlCisgKiAuCisgKgorICogMDcgMDUgMjAxMyBkYW5ueS5rdW8KKyAqIFtNT0xZMDAwMjg4MDBdIFtNTURDXSBQUyBEb21haW4gU3dpdGNoIE1hbmFnZXIgKFBTRE0pIGRldmVsb3BtZW50CisgKiBJbnRlcmZhY2UgQ2hlY2staW4KKyAqCisgKiAwNiAwNCAyMDEzIG1vamEuaHN1CisgKiBbTU9MWTAwMDI0ODgxXSBOZXR3b3JrIEludGVyZmFjZSBCaW5kIENvbmZpcm0KKyAqIGFkZCBQRE4gQmluZCByZWxhdGVkIHN0cnVjdHVyZSBhbmQgZW51bS4KKyAqCisgKiAwMSAyMiAyMDEzIGNhcmxzb24ubGluCisgKiBbTU9MWTAwMDA5MTYxXSBMVEUgTXVsdGltb2RlIE1lcmdlIHRvIE1PTFkKKyAqIGludGVyZmFjZSAtIHNhcCBwYXJ0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1VQQ01fTVNHSURfSAorI2RlZmluZSBfVVBDTV9NU0dJRF9ICisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1VQQ01fQ09ERV9CRUdJTiApCisKK01TR19JRF9SQVRfVENNX1VQQ01fU1VTUEVORF9SRVEgPSBNU0dfSURfVVBDTV9DT0RFX0JFR0lOLAorTVNHX0lEX1JBVF9UQ01fVVBDTV9SRVNVTUVfUkVRLAorCitNU0dfSURfSVBDT1JFX1VQQ01fUEROX0JJTkRfSU5ELAorTVNHX0lEX0lQQ09SRV9VUENNX1BETl9CSU5EX1JTUCwKK01TR19JRF9JUENPUkVfVVBDTV9QRE5fREVBQ1RfSU5ELCAvLyBUT0RPOiBkZWxldGUgYWZ0ZXIgSVBDT1JFJ3MgY29kZSBjaGFuZ2UhISEKK01TR19JRF9JUENPUkVfVVBDTV9QRE5fVU5CSU5EX0lORCwKK01TR19JRF9JUENPUkVfVVBDTV9QRE5fUkVCSU5EX0lORCwKK01TR19JRF9JUENPUkVfVVBDTV9QRE5fUkVCSU5EX1JTUCwKK01TR19JRF9JUENPUkVfVVBDTV9FU0xfUEROX0JJTkRfUkVRLAorTVNHX0lEX0lQQ09SRV9VUENNX1RFU1RMT09QX0lORCwKK01TR19JRF9JUENPUkVfVVBDTV9URVNUTE9PUF9SU1AsCitNU0dfSURfSVBDT1JFX1VQQ01fUEROX0lORk9fSU5ELAorCitNU0dfSURfVVBDTV9SQVRDTV9URVNUX01PREVfSU5ELAorCitNU0dfSURfTU5ZX1VQQ01fU1VTUEVORF9SRVEsCitNU0dfSURfTU5ZX1VQQ01fUkVTVU1FX1JFUSwKKworTVNHX0lEX0lNQ19VUENNX1NUQVJUX0VCSV9GSUxURVJfUkVRLCAvLyBOUiBUT0RPOiBPYnNvbGV0ZWQKK01TR19JRF9JTUNfVVBDTV9TVE9QX0VCSV9GSUxURVJfUkVRLCAgLy8gTlIgVE9ETzogT2Jzb2xldGVkCitNU0dfSURfSU1DX1VQQ01fU1RBUlRfQkVBUkVSX0ZJTFRFUl9SRVEsCitNU0dfSURfSU1DX1VQQ01fU1RPUF9CRUFSRVJfRklMVEVSX1JFUSwKK01TR19JRF9NQk1TQUxfVVBDTV9QRE5fQklORF9SRVEsCitNU0dfSURfTUJNU0FMX1VQQ01fUEROX0JJTkRfQ05GLAorTVNHX0lEX01CTVNBTF9VUENNX1BETl9VTkJJTkRfUkVRLAorTVNHX0lEX01CTVNBTF9VUENNX1BETl9VTkJJTkRfQ05GLAorCisvKiBVUENNIDwtLT4gTDRCUEROICovCitNU0dfSURfTDRCUEROX1VQQ01fQkVBUkVSX0FDVF9SRVEsCitNU0dfSURfTDRCUEROX1VQQ01fQkVBUkVSX0RFQUNUX1JFUSwKK01TR19JRF9MNEJQRE5fVVBDTV9QRl9VUERBVEVfUkVRLAorCitNU0dfSURfTDRCUEROX1VQQ01fUEROX0JJTkRfUkVRLAorTVNHX0lEX0w0QlBETl9VUENNX1BETl9SRUJJTkRfUkVRLCAvLyBUT0RPOiBubyBuZWVkIQorTVNHX0lEX0w0QlBETl9VUENNX1BETl9VTkJJTkRfUkVRLAorTVNHX0lEX0w0QlBETl9VUENNX1BETl9CSU5EX0NORiwKK01TR19JRF9MNEJQRE5fVVBDTV9QRE5fUkVCSU5EX0NORiwgLy8gVE9ETzogbm8gbmVlZCEKK01TR19JRF9MNEJQRE5fVVBDTV9QRE5fVU5CSU5EX0NORiwKKworTVNHX0lEX0w0QlBETl9VUENNX1BETl9TRU5EX0RBVEFfUkVRLAorTVNHX0lEX0w0QlBETl9VUENNX1BETl9TRU5EX0RBVEFfQ05GLAorTVNHX0lEX0w0QlBETl9VUENNX05PVElGWV9QRE5fVFlQRV9SRVEsCitNU0dfSURfTDRCUEROX1VQQ01fTk9USUZZX1BETl9UWVBFX0NORiwKKworTVNHX0lEX0w0QlBETl9VUENNXzQ1R19JUkFUX0JFQVJFUl9VUERBVEVfUkVRLAorCitNU0dfSURfTEhJRkNPUkVfVVBDTV9IV19MT0dfTlRGLAorCisvKiBVUENNICovCitNU0dfSURfVVBDTV9VUENNX0lDRF9OVEYsCitNU0dfSURfVVBDTV9ERUJVR19QRl9BQ1RJT05fSU5ELAorTVNHX0lEX0QyQ01fVVBDTV9HRVRfSVBfQUREUl9JTkQsCisKKy8qIEVOUERDUCAtLT4gVVBDTSAqLworTVNHX0lEX1VQQ01fRU5QRENQX1JPSENfRU5BQkxFX0lORCwKKworLyogRU1BQyAtLT4gVVBDTSAqLworTVNHX0lEX1VQQ01fRU1BQ19SQlJRX1NVUFBPUlRfUkVMX0lORCwKKworLyogRU1BQ0RMIC0tPiBVUENNICovCitNU0dfSURfVVBDTV9FTUFDRExfUkJSX0lORCwKKworLyogTk1BQyAtLT4gVVBDTSAqLworTVNHX0lEX1VQQ01fTk1BQ19SQlJRX1NVUFBPUlRfUkVMX0lORCwKKworLyogTk1BQ0RMIC0tPiBVUENNICovCitNU0dfSURfVVBDTV9OTUFDRExfUkJSX0lORCwKKworTVNHX0lEX0w0Q19VUENNX0FOQlJRX0NPTkZJR19JTkQsCitNU0dfSURfTDRDX1VQQ01fQU5CUl9JTkQsCitNU0dfSURfTDRDX1VQQ01fQU5CUlFfUkVRLAorCitNU0dfSURfRVZBTF9VUENNX0RSQl9TRVNTSU9OX1NUQVRVU19OVEYsCisKKy8qIFZHTU0gLS0+IFVQQ00gKi8KK01TR19JRF9WR01NX1VQQ01fUEFHSU5HX1NFU1NJT05fU1RBVFVTX05URiwKKworLyogTVJTIC0tPiBVUENNICovCitNU0dfSURfTVJTX1VQQ01fQ0hfTE9DS19OVEYsCisKKyNpZmRlZiBfX0lQQ19BREFQVEVSX18KKy8qIElQQ0FfSU1TIC0tPiBVUENNICovCitNU0dfSURfSVBDQV9JTVNfVVBDTV9JTlZJVEVfRkxVU0hfUkVRLAorI2VuZGlmIC8vIF9fSVBDX0FEQVBURVJfXworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1VQQ01fQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9VUENNX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VwZHNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3VwZHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTBlZmViCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdXBkc19tc2dpZC5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxOAorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1VQRFNfTVNHSURfSAorI2RlZmluZSBfVVBEU19NU0dJRF9ICisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1VUERTX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9VUERTX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9VUERTX1NUQVJUID0gTVNHX0lEX1VQRFNfQ09ERV9CRUdJTiwKKworICAgIC8qIE1TR3MgZnJvbSBWR01NICAqLworICAgIE1TR19JRF9VUERTX1ZHTU1fREFUQV9JTkQsCisgICAgTVNHX0lEX1VQRFNfVkdNTV9EQVRBX0NORiwKKyAgICBNU0dfSURfVVBEU19WR01NX0dFVF9VRV9TVEFURV9JTkRJQ0FUSU9OX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBVUlNQICovCisgICAgTVNHX0lEX1VSU1BfVVBEU19VRV9QT0xJQ1lfUlNQLAorICAgIE1TR19JRF9VUlNQX1VQRFNfR0VUX1VFX1BPTElDWV9JTkZPX1JTUCwKKworICAgIC8qIE1TR3MgdG8gVVJTUCAoTmVlZCB0byBtb3ZlIHRvIG90aGVyIGZpbGUpICovCisgICAgTVNHX0lEX1VSU1BfVVBEU19VRV9QT0xJQ1lfSU5ELAorICAgIE1TR19JRF9VUlNQX1VQRFNfR0VUX1VFX1BPTElDWV9JTkZPX0lORCwKKworICAgIE1TR19JRF9VUERTX0VORCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9VUERTX0NPREVfVEFJTCApCisjZW5kaWYKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVVBEU19NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC91cnJfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Vycl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkOGRiMWQKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC91cnJfbXNnaWQuaApAQCAtMCwwICsxLDE4NzMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNworKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB1cnJfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9OWkEKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICoKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9VUlJfTVNHX0gKKyNkZWZpbmUgX1VSUl9NU0dfSAorCisjaWZkZWYgX19TT1VSQ0VfSU5TSUdIVF9QQVJTRV9fCit0eXBlZGVmIGVudW0geworI2VuZGlmCisKKy8qIG10azgwMTk3LCBtZXJnZSBUREQxMjggYmFjayB0byBNQVVJICovCisjaWYgZGVmaW5lZChfX1VNVFNfRkREX01PREVfXykKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GRERfQURSX0NPREVfQkVHSU4gKQorLy9NU0dfSURfRkREX0FEUl9DT0RFX0JFR0lOLAorTVNHX0lEX0ZERF9STENfVE1fREFUQV9JTkQgPSBNU0dfSURfRkREX0FEUl9DT0RFX0JFR0lOLAorTVNHX0lEX0ZERF9STENfVU1fREFUQV9JTkQsCitNU0dfSURfRkREX1JMQ19BTV9EQVRBX0lORCwKKworI2lmZGVmIFVOSVRfVEVTVAorTVNHX0lEX0ZERF9BRFJfVU5QQUNLX1VUX0VWRU5UX1BIWV9EQVRBX0lORCwKK01TR19JRF9GRERfQURSX1VOUEFDS19VVF9FVkVOVF9STENfREFUQV9JTkQsCitNU0dfSURfRkREX0FEUl9VTlBBQ0tfVVRfRVZFTlRfVkVSRElDVF9EQVRBX0lORCwKK01TR19JRF9GRERfQURSX1BBQ0tfVVRfTU9WRV9UT19JRExFX1JFUSwKK01TR19JRF9GRERfQURSX1BBQ0tfVVRfU0VORF9DQ0NIX1JFUSwKK01TR19JRF9GRERfQURSX1BBQ0tfVVRfU0VORF9EQ0NIX1JFUSwKKyNlbmRpZgorCitNU0dfSURfRkREX0FEUl9BRFJfQUNLTk9XTEVER0VNRU5UX0lORCwKK01TR19JRF9GRERfUkxDX0FNX0RBVEFfQ05GLAorTVNHX0lEX0ZERF9BRFJfQ09ERV9FTkQgPSBNU0dfSURfRkREX1JMQ19BTV9EQVRBX0NORiwKKy8vTVNHX0lEX0ZERF9BRFJfQ09ERV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9BRFJfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9DU0NFX0NPREVfQkVHSU4gKQorLy9NU0dfSURfQ1NDRV9DT0RFX0JFR0lOLAorLy9TTENFCitNU0dfSURfRkREX1VSUl9TTENFX1NFVF9BQ1RJVkVfUkFUX0NORiA9IE1TR19JRF9GRERfQ1NDRV9DT0RFX0JFR0lOLCAgLypBbGZpZTogdGhpcyBtc2dfaWQgaXMgYWxzbyB1c2VkIGJ5IFJSQ0UqLworTVNHX0lEX0ZERF9DU0NFX1NMQ0VfSU5JVElBTElTRV9DTkYsCitNU0dfSURfRkREX0NTQ0VfU0xDRV9SRl9PTl9DTkYsCitNU0dfSURfRkREX0NTQ0VfU0xDRV9SRl9PRkZfQ05GLAorTVNHX0lEX0ZERF9DU0NFX1NMQ0VfUlNTSV9TTklGRkVSX1NUT1BfQ05GLAorCisvL1JSQ0UKK01TR19JRF9GRERfQ1NDRV9SUkNFX01PVkVfVE9fSURMRV9JTkQsCitNU0dfSURfRkREX0NTQ0VfUlJDRV9NT1ZFX1RPX0NFTExfRENIX0lORCwKK01TR19JRF9GRERfQ1NDRV9SUkNFX01PVkVfVE9fQ09OTkVDVEVEX0lORCwKK01TR19JRF9GRERfQ1NDRV9SUkNFX01PVkVfVE9fSU5BQ1RJVkVfSU5ELAorTVNHX0lEX0ZERF9DU0NFX1JSQ0VfQkNDSF9NT0RJRklDQVRJT05fSU5GT19JTkQsCitNU0dfSURfRkREX0NTQ0VfUlJDRV9SUkNfQ09OTkVDVElPTl9FU1RBQkxJU0hNRU5UX0lORCwKK01TR19JRF9GRERfQ1NDRV9SUkNFX1JFTEVBU0VfQ0hBTk5FTFNfQ05GLAorTVNHX0lEX0ZERF9DU0NFX1JSQ0VfT1VUX09GX1NFUlZJQ0VfQVJFQV9DTkYsCitNU0dfSURfRkREX1JSQ0VfQ1NDRV9TSUJfQ09MTEVDVElPTl9SU1AsCitNU0dfSURfRkREX0NTQ0VfUlJDRV9TVEVBRFlfSU5BQ1RJVkVfSU5ELAorCitNU0dfSURfRkREX1JSQ0VfQ1NDRV9EQ0hfU0lCX0NPTExFQ1RJT05fU1RBUlRfUkVRLAorTVNHX0lEX0ZERF9SUkNFX0NTQ0VfRENIX1NJQl9DT0xMRUNUSU9OX1NUT1BfUkVRLAorCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX0ZERF9DU0NFX1JSQ0VfQUJPUlRfU0VSVklDRV9SRVEsCitNU0dfSURfRkREX0NTQ0VfUlJDRV9BQk9SVF9TRVJWSUNFX0NPTVBMRVRFX0lORCwKKyNlbmRpZgorCisjaWZkZWYgX19TTUFSVF9QQUdJTkdfM0dfRkREX18KK01TR19JRF9GRERfQ1NDRV9SUkNFX1NNQVJUX1BBR0lOR19TVEFUVVNfSU5ELAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fMjNHX1BSSV9SRVNFTF9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pCitNU0dfSURfRkREX1JSQ0VfQ1NDRV9ERURJX1BSSU9fSU5GT19JTkQsCisjZW5kaWYKKworLy9DU0UKK01TR19JRF9GRERfQ1NDRV9DU0VfQ0VMTF9TRUxFQ1RJT05fU1RPUF9DTkYsIAorTVNHX0lEX0ZERF9DU0NFX0NTRV9DRUxMX1NFTEVDVElPTl9DTkYsIAorTVNHX0lEX0ZERF9DU0NFX0NTRV9QTE1OX0xJU1RfQ05GLCAKK01TR19JRF9GRERfQ1NDRV9DU0VfRlJFUV9TQ0FOX1NVU1BFTkRfSU5ELCAKKyNpZiBkZWZpbmVkKF9fM0dfQ1NHX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKK01TR19JRF9GRERfQ1NDRV9DU0VfRklOR0VSUFJJTlRfQ09MTEVDVElPTl9DTkYsCitNU0dfSURfRkREX0NTQ0VfQ1NFX0ZJTkdFUlBSSU5UX0NPTExFQ1RJT05fU1RPUF9DTkYsCisjZW5kaWYKKyNpZiBkZWZpbmVkKF9fR0VNSU5JX1dDRE1BX18pICYmIGRlZmluZWQoX19VQVNfR0VNSU5JX1BST0NfU0hBUklOR19fKQorTVNHX0lEX0ZERF9DU0NFX0NTRV9WSVJUVUFMX0NFTExfU0VMRUNUSU9OX0NORiwKK01TR19JRF9GRERfQ1NDRV9DU0VfVklSVFVBTF9QTE1OX0xJU1RfQ05GLCAKKyNlbmRpZgorCisKKyNpZiBkZWZpbmVkKF9fM0dfQ1NHX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKK01TR19JRF9GRERfQ1NDRV9DU0VfQ1NHX0xJU1RfQ05GLAorTVNHX0lEX0ZERF9DU0NFX0NTRV9DU0dfQVVUT05PTU9VU19TRUFSQ0hfU1VTUEVORF9DTkYsCitNU0dfSURfRkREX0NTQ0VfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9DTkYsCitNU0dfSURfRkREX01FTUVfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9JTlRSQV9GUkVRX0NFTExfSU5ELAorTVNHX0lEX0ZERF9DU0NFX0NTRV9FVkFMVUFURV9DU0dfQ0VMTF9DTkYsCitNU0dfSURfRkREX0NTQ0VfQ1NFX0VWQUxVQVRFX0NTR19DRUxMX1NVU1BFTkRfQ05GLAorI2VuZGlmCisKKyNpZmRlZiBfX0xURV9SQVRfXworTVNHX0lEX0ZERF9DU0NFX0NTRV9DR0lfQ09MTEVDVElPTl9DTkYsCitNU0dfSURfRkREX0NTQ0VfQ1NFX0NHSV9DT0xMRUNUSU9OX1NUT1BfQ05GLAorI2VuZGlmIC8qIF9fTFRFX1JBVF9fICovCisKKy8vU0lCRQorTVNHX0lEX0ZERF9TSUJFX1NJQl9DT0xMRUNUSU9OX0NORiwgCitNU0dfSURfRkREX1NJQkVfU0lCX01PTklUT1JJTkdfQ05GLCAKK01TR19JRF9GRERfU0lCRV9TSUJfTU9OSVRPUklOR19FUlJPUl9JTkQsIAorLy9NRU1FCitNU0dfSURfRkREX0NTQ0VfTUVNRV9DRUxMX01FQVNVUkVNRU5UX1JFU1VMVF9JTkQsCitNU0dfSURfRkREX0NTQ0VfTUVNRV9MVEVfTUVBU1VSRU1FTlRfSU5ELAorTVNHX0lEX0ZERF9DU0NFX01FTUVfQ0VMTF9SRUZfVElNRV9BTkNIT1JfSU5ELAorTVNHX0lEX0ZERF9NRU1FX0NTQ0VfTU9ESUZZX0NFTExfTElTVF9JTkQsCitNU0dfSURfRkREX0NTQ0VfTUVNRV9SRUZfQ0VMTF9DSEFOR0VfSU5ELAorTVNHX0lEX0ZERF9DU0NFX01FTUVfRVVUUkFfRkFDSF9NQ19OT1RJRklDQVRJT04sCisKKy8vVVNJTUUKK01TR19JRF9GRERfQ1NDRV9VU0lNRV9VU0lNX1JFTU9WRURfSU5ELAorTVNHX0lEX0ZERF9DU0NFX1VTSU1FX1JFQURfTlZSQU1fQ05GLAorTVNHX0lEX0ZERF9VU0lNRV9TSU1fRklMRV9DSEFOR0VfSU5ELAorCisvL1JBVENNCitNU0dfSURfUkFUQ01fQ1NDRV9JTklUX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1BMTU5fU0VBUkNIX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1BMTU5fTElTVF9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9QTE1OX0xJU1RfU1RPUF9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9QTE1OX0xJU1RfQUJPUlRfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfQUREX0ZPUkJJRERFTl9MQV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9ERUxfRk9SQklEREVOX0xBX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfSFBMTU5fSU5GT19VUERBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfUlJDX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfU0VUX1JBVF9NT0RFX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1JGT05fUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfUkZPRkZfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfU0VUX0lNRUlfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfRUxFVkFUT1JfTU9ERV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9DTEVBUl9NUlVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfU0VUX01SVV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9DU0dfQVVUT19TRUFSQ0hfTU9ERV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9FTUNfU0VTU0lPTl9TVEFSVF9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9FTUNfU0VTU0lPTl9TVE9QX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX0NBTExfU1RBVFVTX0lORCwKK01TR19JRF9SQVRDTV9DU0NFX0VNQ19GT1JCSURERU5fTldfTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfTFRFX05PUk1BTF9TRVJWSUNFX0xPU1NfVVBEQVRFX1JFUSwKKworLypTbmlmZmVyIHJlbGF0ZWQqLworTVNHX0lEX1JBVENNX1VBU19TTklGRkVSX1NUQVJUX1JFUSwKK01TR19JRF9SQVRDTV9VQVNfU05JRkZFUl9TVE9QX1JFUSwKK01TR19JRF9SQVRDTV9VQVNfQ0hFQ0tfQUNUSVZFX1JBVF9SRVEsCitNU0dfSURfUkFUQ01fVUFTX1NFVF9BQ1RJVkVfUkFUX1JFUSwKKworLy9DTQorTVNHX0lEX0NNQ1NDRV9FTUVSR0VOQ1lfQ0FMTF9TVEFUVVNfSU5ELAorTVNHX0lEX0NDX0NTQ0VfVEFTX05PVElGWV9JTkQsCisKKyNpZmRlZiBfX0dFTUlOSV9fCitNU0dfSURfUkFUQ01fQ1NDRV9TSU1fU1RBVFVTX1VQREFURV9SRVEsCisjZW5kaWYKKworI2lmIGRlZmluZWQoX18zR19DU0dfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKQorTVNHX0lEX1JBVENNX0NTQ0VfQ1NHX0xJU1RfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfQ1NHX0xJU1RfU1RPUF9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9VUERBVEVfV0hJVEVfTElTVF9SRVEsCisjZW5kaWYKKworI2lmZGVmIF9fTFRFX1JBVF9fCitNU0dfSURfUkFUQ01fVUFTX1JBVF9DSEFOR0VfUkVRLCAgLy9hbHNvIHVzZWQgYnkgUlJDRQorI2VuZGlmCitNU0dfSURfUkFUQ01fQ1NDRV9DQVBfVVBEQVRFX1JFUSwKKworTVNHX0lEX1JBVENNX0NTQ0VfUkVHTl9TVEFUVVNfVVBEQVRFX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1BMTU5fSU5GT19VUERBVEVfUkVRLAorCitNU0dfSURfUkFUQ01fQ1NDRV9QTE1OX0xJU1RfU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9ESVNBQkxFX1JBVF9DT05GSUdfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfSU5BQ1RJVkVfTU9ERV9DT05GSUdVUkFUSU9OX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1NDUkVFTl9PTl9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9TQ1JFRU5fT0ZGX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1NFUlZJQ0VfUkVDT1ZFUllfUk9VTkRfVVBEQVRFX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX05SX05PUk1BTF9TRVJWSUNFX0xPU1NfVVBEQVRFX1JFUSwKK01TR19JRF9GRERfQ1NDRV9DT0RFX0VORCA9IE1TR19JRF9SQVRDTV9DU0NFX05SX05PUk1BTF9TRVJWSUNFX0xPU1NfVVBEQVRFX1JFUSwgCisvL01TR19JRF9DU0NFX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9GRERfQ1NDRV9DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRkREX0NTRV9DT0RFX0JFR0lOICkKKy8vTVNHX0lEX0NTRV9DT0RFX0JFR0lOLAorLy9TTENFCitNU0dfSURfRkREX0NTRV9TTENFX0ZSRVFfU0NBTl9TVVNQRU5EX0lORCA9IE1TR19JRF9GRERfQ1NFX0NPREVfQkVHSU4sCisvLyBNRU1FCitNU0dfSURfRkREX0NTRV9NRU1FX0NFTExfTUVBU1VSRU1FTlRfUkVTVUxUX0lORCwKKy8vIENTQ0UKK01TR19JRF9GRERfQ1NDRV9DU0VfQ0VMTF9TRUxFQ1RJT05fU1RBUlRfUkVRLCAKK01TR19JRF9GRERfQ1NDRV9DU0VfQ0VMTF9TRUxFQ1RJT05fU1RPUF9SRVEsIAorTVNHX0lEX0ZERF9DU0NFX0NTRV9QTE1OX0xJU1RfU1RBUlRfUkVRLCAKK01TR19JRF9GRERfQ1NDRV9DU0VfUExNTl9MSVNUX1NVU1BFTkRfUkVRLCAKK01TR19JRF9GRERfQ1NDRV9DU0VfUkZfT0ZGX1JFUSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBhdXRvIGJhbmQKK01TR19JRF9GRERfQ1NDRV9DU0VfUExNTl9MT1NTX1dJVEhfTElTVF9JTkQsICAgICAgICAgICAgICAgIC8vIEZvciBQTE1OIExpc3Qgb3B0aW1pemF0aW9uCisjaWYgZGVmaW5lZChfXzNHX0NTR19TVVBQT1JUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pCitNU0dfSURfRkREX0NTQ0VfQ1NFX0ZJTkdFUlBSSU5UX0NPTExFQ1RJT05fUkVRLAorTVNHX0lEX0ZERF9DU0NFX0NTRV9GSU5HRVJQUklOVF9DT0xMRUNUSU9OX1NUT1BfUkVRLAorI2VuZGlmCitNU0dfSURfRkREX0NTRV9TTENFX0ZSRVFfU0NBTl9DTkYsCisKKworI2lmIChkZWZpbmVkKF9fM0dfQ1NHX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykpCitNU0dfSURfRkREX0NTQ0VfQ1NFX0NTR19MSVNUX1NUQVJUX1JFUSwKK01TR19JRF9GRERfQ1NDRV9DU0VfQ1NHX0xJU1RfU1VTUEVORF9SRVEsCitNU0dfSURfRkREX0NTQ0VfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9TVEFSVF9SRVEsCitNU0dfSURfRkREX0NTQ0VfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9TVVNQRU5EX1JFUSwKK01TR19JRF9GRERfQ1NDRV9DU0VfRVZBTFVBVEVfQ1NHX0NFTExfUkVRLAorTVNHX0lEX0ZERF9DU0NFX0NTRV9FVkFMVUFURV9DU0dfQ0VMTF9TVVNQRU5EX1JFUSwKKyNlbmRpZgorCisjaWZkZWYgX19MVEVfUkFUX18KK01TR19JRF9GRERfQ1NDRV9DU0VfQ0dJX0NPTExFQ1RJT05fUkVRLAorTVNHX0lEX0ZERF9DU0NFX0NTRV9DR0lfQ09MTEVDVElPTl9TVE9QX1JFUSwKKyNlbmRpZgorTVNHX0lEX0ZERF9DU0NFX0NTRV9QTE1OX0xJU1RfU1RBVFVTX1VQREFURV9SRVEsCisKK01TR19JRF9GRERfQ1NFX0NBQ0hFX0lORk9fSU5ELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvciBzaG93aW5nIGNhY2hlIGNvbnRlbnQgdG8gQ2F0Y2hlci4uLj4jSQorTVNHX0lEX0ZERF9DU0VfQ09ERV9FTkQgPSBNU0dfSURfRkREX0NTRV9DQUNIRV9JTkZPX0lORCwgCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9DU0VfQ09ERV9UQUlMICkKKy8vTVNHX0lEX0NTRV9DT0RFX0VORCwKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9NRU1FX0NPREVfQkVHSU4gKQorLy9NU0dfSURfRkREX01FTUVfQ09ERV9CRUdJTiwKKy8vU0xDRQorLy9VTUFDCitNU0dfSURfRkREX01FTUVfVU1BQ19UUkFGRklDX1ZPTFVNRV9NRUFTVVJFTUVOVF9JTkQgPSBNU0dfSURfRkREX01FTUVfQ09ERV9CRUdJTiwKK01TR19JRF9GRERfTUVNRV9VTUFDX1FVQUxJVFlfTUVBU1VSRU1FTlRfSU5ELAorTVNHX0lEX0ZERF9NRU1FX1VNQUNfQURESVRJT05BTF9UVk1fSU5ELAorTVNHX0lEX0ZERF9NRU1FX1VNQUNfTUVBU1VSRU1FTlRfRVJST1JfSU5ELAorI2lmZGVmIF9fVU1UU19SNl9fCitNU0dfSURfRkREX01FTUVfVU1BQ19UVk1fRVhDRUVEX1RIUkVTSE9MRF9JTkQsCisjZW5kaWYKK01TR19JRF9GRERfTUVNRV9VTUFDX0NPVU5UQ19TVEFUVVNfSU5ELAorLy9SUkNFCitNU0dfSURfRkREX1JSQ0VfTUVNRV9NT1ZFX1RPX1NUQVRFX1JFUSwKK01TR19JRF9GRERfTUVNRV9SUkNFX0NPTVBSRVNTRURfTU9ERV9SRUNPTkZJR1VSRV9GQUlMVVJFX0lORCwKK01TR19JRF9GRERfTUVNRV9SUkNFX0NPTVBSRVNTRURfTU9ERV9SRUNPTkZJR1VSRV9TVUNDRVNTX0lORCwKK01TR19JRF9GRERfUlJDRV9NRU1FX0FTVV9JTkQsCitNU0dfSURfRkREX1JSQ0VfTUVNRV9FTEVWQVRPUl9NT0RFX01FQVNfU1RBUlRfUkVRLAorTVNHX0lEX0ZERF9SUkNFX01FTUVfRUxFVkFUT1JfTU9ERV9NRUFTX1NUT1BfUkVRLAorCisKKy8vU0xDRQorTVNHX0lEX0ZERF9NRU1FX1NMQ0VfU1VTUEVORF9SRVBPUlRfSU5ELAorTVNHX0lEX0ZERF9NRU1FX1NMQ0VfUkVTVU1FX1JFUE9SVF9JTkQsCitNU0dfSURfRkREX01FTUVfU0xDRV9NRUFTVVJFTUVOVF9DT05GSUdfQ0VMTF9DTkYsCitNU0dfSURfRkREX01FTUVfU0xDRV9NRUFTVVJFTUVOVF9DT05GSUdfVEdQU19DTkYsCisKKworLy9DU0NFCitNU0dfSURfRkREX0NTQ0VfTUVNRV9JTklUSUFMSVNFX1JFUSwKK01TR19JRF9GRERfTUVNRV9DU0NFX0NFTExfU0VMRUNURURfSU5ELAorTVNHX0lEX0ZERF9DU0NFX01FTUVfTUVBU19NQU5JUFVMQVRJT05fUkVRLAorTVNHX0lEX0ZERF9DU0NFX01FTUVfTFRFX0hQU19RVUFMSUZZX0NFTExfSU5ELAorTVNHX0lEX0ZERF9DU0NFX01FTUVfUkZfT05fUkVRLAorTVNHX0lEX0ZERF9DU0NFX01FTUVfUkZfT0ZGX1JFUSwKK01TR19JRF9GRERfQ1NDRV9NRU1FX1NFVF9NT0RFX1JFUSwKK01TR19JRF9GRERfQ1NDRV9NRU1FX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX0ZERF9DU0NFX01FTUVfQ0xFQU5fREJfQ0VMTF9SRVEsCitNU0dfSURfRkREX0NTQ0VfTUVNRV9TSUIxOV9DSEFOR0VfSU5ELAorLy9TSUJFCitNU0dfSURfRkREX01FTUVfU0lCRV9TSUIzX0NIQU5HRV9JTkQsCitNU0dfSURfRkREX01FTUVfU0lCRV9TSUI0X0NIQU5HRV9JTkQsCitNU0dfSURfRkREX01FTUVfU0lCRV9TSUIxMV9DSEFOR0VfSU5ELCAKK01TR19JRF9GRERfTUVNRV9TSUJFX1NJQjEyX0NIQU5HRV9JTkQsIAorTVNHX0lEX0ZERF9NRU1FX1NJQkVfU0lCMThfQ0hBTkdFX0lORCwgCisvL01FTUUgc2VsZgorTVNHX0lEX0ZERF9NRU1FX01FTUVfUVVFVUVEX0dBU19VQVNfQ09ORklHX1VDRUxMX01FQVNfUkVRLAorTVNHX0lEX0ZERF9NRU1FX01FTUVfUVVFVUVEX0dBU19VQVNfQ09ORklHX1VDRUxMX1BSSU9fTUVBU19SRVEsCitNU0dfSURfRkREX01FTUVfTUVNRV9RVUVVRURfRUFTX1VBU19DT05GSUdfVUNFTExfTUVBU19SRVEsCitNU0dfSURfRkREX01FTUVfTUVNRV9RVUVVRURfRUFTX1VBU19DT05GSUdfVUNFTExfUFJJT19NRUFTX1JFUSwKK01TR19JRF9GRERfTUVNRV9NRU1FX1NBVkVEX01FQVNfQ1RSTF9JTkQsCitNU0dfSURfRkREX01FTUVfTkJSX0NFTExfSU5GT19JTkQsCitNU0dfSURfRkREX01FTUVfQ0VMTF9QT1dFUl9MRVZFTF9JTkQsCitNU0dfSURfRkREX01FTUVfRFVNUF9DT05URVhULAorTVNHX0lEX0ZERF9NRU1FX1VUX1NFVF9DT05URVhULAorTVNHX0lEX0ZERF9NRU1FX1VUX1NFVF9TSE0sCitNU0dfSURfRkREX01FTUVfVUFTX1JFUE9SVF9TSUdOQUxfTEVWRUxfSU5ELAorCisKK01TR19JRF9GRERfTUVNRV9DT0RFX0VORCA9IE1TR19JRF9GRERfTUVNRV9VQVNfUkVQT1JUX1NJR05BTF9MRVZFTF9JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9NRU1FX0NPREVfVEFJTCApCisvL01TR19JRF9GRERfTUVNRV9DT0RFX0VORCwKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9SUkNFX0NPREVfQkVHSU4gKQorLy9NU0dfSURfRkREX1JSQ0VfQ09ERV9CRUdJTiwKKy8vVURDCitNU0dfSURfUkFUQ01fUlJDRV9DT05OX0VTVF9SRVEgPSBNU0dfSURfRkREX1JSQ0VfQ09ERV9CRUdJTiwKK01TR19JRF9SQVRDTV9SUkNFX0NPTk5fUkVMX1JFUSwKK01TR19JRF9SQVRDTV9SUkNFX0NPTk5fQUJPUlRfUkVRLAorTVNHX0lEX1JBVENNX1JSQ0VfREFUQV9UUkFOU0ZFUl9SRVEsCitNU0dfSURfUkFUQ01fUlJDRV9TRUNVUklUWV9NT0RFX1JFUSwKK01TR19JRF9SQVRDTV9SUkNFX1JCX1JFX0VTVEFCTElTSE1FTlRfUlNQLAorLy9VTlQKK01TR19JRF9SQVRDTV9SUkNFX1BBR0lOR19QQVJBTV9BU1NJR05fUkVRLAorLy9ORVcKK01TR19JRF9SQVRDTV9SUkNFX1JFR05fU1RBVFVTX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fUlJDRV9TRVRfUEdDSEVDS19SRVEsCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX1JBVENNX1JSQ0VfTk9fSVJfU0lHX1BST0NfUkVRLAorI2VuZGlmCisjaWZkZWYgX19OT19QU0RBVEFfU0VORF9TQ1JJX18KK01TR19JRF9SQVRDTV9SUkNFX0VORF9QU19EQVRBX1NFU1NJT05fUkVRLAorI2VuZGlmCisjaWZkZWYgX19GQVNUX0RPUk1BTkNZX18KK01TR19JRF9SQVRDTV9SUkNFX0VORF9QU19EQVRBX1NFU1NJT05fUkVRLAorI2VuZGlmCisjaWZkZWYgX19MVEVfUkFUX18KK01TR19JRF9SQVRDTV9VQVNfUkFUX0NIQU5HRV9SRVMsCisvL0xURSBpbnRlclJBVAorTVNHX0lEX1JBVENNX1JSQ0VfUkFUX0NIQU5HRV9SRVEsCitNU0dfSURfUkFUQ01fUlJDRV9SQVRfQ0hBTkdFX1JTUCwKK01TR19JRF9SQVRDTV9DU0NFX1JBVF9DSEFOR0VfUkVRLAorTVNHX0lEX1JBVENNX1VBU19SQVRfQ0hBTkdFX1JTUCwKK01TR19JRF9SQVRDTV9SUkNFX0NTX1NUQVRVU19VUERBVEVfUkVRLAorI2VuZGlmCisKKy8qIEJNQyAqLworTVNHX0lEX0ZERF9SUkNFX0JNQ19SWF9JTkQsCitNU0dfSURfRkREX1JSQ0VfQk1DX1BSSU9fSU5ELAorTVNHX0lEX0ZERF9SUkNFX0JNQ19FVFdTX0lORCwKKy8qIFVSTEMgKi8KK01TR19JRF9GRERfUlJDRV9VUkxDX1NUQVRVU19JTkQsCisvKiBQRENQICovCitNU0dfSURfRkREX1JSQ0VfUERDUF9TVEFUVVNfSU5ELAorCisvL1NMQ0UKK01TR19JRF9GRERfUlJDRV9TTENFX1JFQ09ORklHX0NPTVBMRVRFX0lORCwKK01TR19JRF9GRERfUlJDRV9TTENFX1JFQ09ORklHX0VSUk9SX0lORCwKK01TR19JRF9GRERfUlJDRV9TTENFX1BEQ1BfUkVMT0NfSU5ELAorTVNHX0lEX0ZERF9SUkNFX1NMQ0VfR0VUX0NPVU5UX0NfQ05GLAorTVNHX0lEX0ZERF9SUkNFX1NMQ0VfQUJPUlRfQ05GLAorI2lmIDAKKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorTVNHX0lEX0ZERF9SUkNFX1NMQ0VfTDFfQ09OVEFJTkVSX1JFQ0VJVkVEX0lORCwKK01TR19JRF9GRERfUlJDRV9TTENFX01PTklUT1JfT1JERVJfUkVRLCAgCisvL1NJQkUKK01TR19JRF9GRERfUlJDRV9TSUJFX0NFTExfUlNUX0NORiwgCitNU0dfSURfRkREX1JSQ0VfU0lCRV9DRUxMX1JTVF9TVE9QX0NORiwKKy8vQ1NDRQorTVNHX0lEX0ZERF9DU0NFX1JSQ0VfU1VJVEFCTEVfQ0VMTF9TRUxFQ1RFRF9SRVEsCitNU0dfSURfRkREX0NTQ0VfUlJDRV9BQ0NFUFRBQkxFX0NFTExfU0VMRUNURURfUkVRLAorTVNHX0lEX0ZERF9DU0NFX1JSQ0VfT1VUX09GX1NFUlZJQ0VfQVJFQV9SRVEsCitNU0dfSURfRkREX0NTQ0VfUlJDRV9ERUFDVElWQVRFX1JFUSwKK01TR19JRF9GRERfQ1NDRV9SUkNFX1NFVF9NT0RFX1JFUSwKK01TR19JRF9GRERfUlJDRV9DU0NFX1NJQl9DT0xMRUNUSU9OX0lORCwKK01TR19JRF9GRERfQ1NDRV9SUkNFX1BDSF9UT19GQUNIX1JFQURZX1JTUCwKK01TR19JRF9GRERfQ1NDRV9SUkNFX1JFTEVBU0VfQ0hBTk5FTFNfUkVRLAorLy9NRU1FCitNU0dfSURfRkREX01FTUVfUlJDRV9DT01QUkVTU0VEX01PREVfUkVDT05GSUdVUkVfUkVRLAorTVNHX0lEX0ZERF9NRU1FX1JSQ0VfTU9OSVRPUl9PUkRFUl9JTkQsCitNU0dfSURfRkREX01FTUVfUlJDRV9FTEVWQVRPUl9NT0RFX01FQVNfUkVMRUFTRV9JTkQsCitNU0dfSURfRkREX01FTUVfUlJDRV9FTEVWQVRPUl9NT0RFX1RHUFNfU1RBUlRfUkVRLAorLy9VTUFDCitNU0dfSURfRkREX1JSQ0VfVU1BQ19TVEFUVVNfREFUQV9QRU5ESU5HX0lORCwKK01TR19JRF9GRERfUlJDRV9VTUFDX1NUQVRVU19SQUNIX0lORCwKKyNpZmRlZiBfX1VNVFNfUjdfXworTVNHX0lEX0ZERF9SUkNFX1VNQUNfRF9IUk5USV9ERVRFQ1RFRF9JTkQsCisjZW5kaWYKKyNpZmRlZiBfX01US19JTlRFUk5BTF9fCisvLyBSUkNFIGl0c2VsZgorTVNHX0lEX0ZERF9SUkNFX1JSQ0VfREVCVUdfSU5GT19JTkQsCisjZW5kaWYKKy8qIEFDSyAqLworTVNHX0lEX0ZERF9SUkNFX1JSQ0VfU0VDVVJJVFlfQUNLX0lORCwvL0ppbmdvOiBSMTBDUiA0NDI3CitNU0dfSURfRkREX1JSQ0xfUlJDX0FDS05PV0xFREdFTUVOVF9JTkQsCitNU0dfSURfRkREX1JSQ0VfVkVSRElDVF9USU1FUklEX0lORCwgLy9KYWNrOiBFdmVudCBTY2hlZHVsZXIKK01TR19JRF9GRERfUlJDRV9GT1JDRV9USU1FUl9FWFBJUllfSU5ELCAvL0phY2s6IEV2ZW50IFNjaGVkdWxlcgorI2lmZGVmIF9fVEM3X19DU19fU1VQUE9SVF9fCitNU0dfSURfRkREX1JSQ0VfVVJMQ19VU1JfREFUQV9BVkFJTEFCTEVfQ05GLAorI2VuZGlmCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX1JBVENNX1VBU19WSVJUVUFMX01PREVfSU5ELAorI2VuZGlmCitNU0dfSURfUkFUQ01fVUFTX0RBVEFfQUxMT1dfUkVRLAorTVNHX0lEX1JBVENNX1JSQ0VfRk9SQ0VfQ09OTl9SRUxFQVNFX1JFUSwKK01TR19JRF9SQVRDTV9SUkNFX05PX0NDX0RBVEFfREVURUNUX0lORCwKK01TR19JRF9GRERfUlJDRV9DT0RFX0VORCA9IE1TR19JRF9SQVRDTV9SUkNFX05PX0NDX0RBVEFfREVURUNUX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRkREX1JSQ0VfQ09ERV9UQUlMICkKKy8vTVNHX0lEX1JSQ0VfQ09ERV9FTkQsCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9GRERfU0lCRV9DT0RFX0JFR0lOICkKKworLy9NU0dfSURfU0lCRV9DT0RFX0JFR0lOLAorLy9TTENFCitNU0dfSURfRkREX1NJQkVfU0xDRV9DT05GSUdVUkVfQkNIX0ZBSUxFRF9JTkQgPSBNU0dfSURfRkREX1NJQkVfQ09ERV9CRUdJTiwKKyNpZmRlZiBfX0dFTUlOSV9fCitNU0dfSURfRkREX1NJQkVfU0xDRV9SRUNPTkZJR1VSRV9CQ0hfQ05GLAorI2VuZGlmCisvLyBTSUJFIHNlbGYKK01TR19JRF9GRERfU0lCRV9TSUJfQ09MTEVDVElPTl9SRVEsIAorTVNHX0lEX0ZERF9TSUJFX1NJQl9DT0xMRUNUSU9OX0NBTkNFTF9SRVEsIAorTVNHX0lEX0ZERF9TSUJFX1NUQVJUX1NJQl9NT05JVE9SSU5HX1JFUSwgCitNU0dfSURfRkREX1NJQkVfU1RPUF9TSUJfTU9OSVRPUklOR19SRVEsIAorTVNHX0lEX0ZERF9SUkNFX1NJQkVfQ0VMTF9SU1RfUkVRLCAKK01TR19JRF9GRERfUlJDRV9TSUJFX0NFTExfUlNUX1NUT1BfUkVRLAorI2lmZGVmIF9fVU1UU19SOF9fCitNU0dfSURfRkREX1JSQ0VfU0lCRV9TSUI3X0VYUElSWV9USU1FUl9JTkQsCisjZW5kaWYKK01TR19JRF9GRERfQ1NDRV9TSUJFX01PVkVfVE9fSURMRV9SRVEsIAorTVNHX0lEX0ZERF9TSUJFX0RVTVBfQkNIX1NJQl9JTkQsCitNU0dfSURfRkREX1NJQkVfU0lCX0NIQU5HRV9JTkQsCitNU0dfSURfRkREX1NJQkVfQ09ERV9FTkQgPSBNU0dfSURfRkREX1NJQkVfU0lCX0NIQU5HRV9JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9TSUJFX0NPREVfVEFJTCApCisvL01TR19JRF9TSUJFX0NPREVfRU5ELAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRkREX1NMQ0VfQ09ERV9CRUdJTiApCisKKy8vTVNHX0lEX0ZERF9TTENFX0NPREVfQkVHSU4sCisvL1JBVENNCitNU0dfSURfUkFUQ01fU0xDRV9NT05JVE9SSU5HX0NMT1NFX0xPT1BfUkVRID0gTVNHX0lEX0ZERF9TTENFX0NPREVfQkVHSU4sCitNU0dfSURfUkFUQ01fU0xDRV9EVVBMRVhfTU9ERV9DSEFOR0VfUkVRLAorCisvKiBSQUJNICovCitNU0dfSURfRkREX0NSQUJNX1JBQl9FU1RBQkxJU0hfUlNQLAorTVNHX0lEX0ZERF9DUkFCTV9SQUJfUkVMRUFTRV9SU1AsCisvKiBQRENQICovCitNU0dfSURfRkREX0NQRENQX0NPTkZJR19DTkYsCitNU0dfSURfRkREX0NQRENQX1JFTE9DX0NORiwKK01TR19JRF9GRERfQ1BEQ1BfUkVMRUFTRV9DTkYsCisvKiBVUkxDICovCitNU0dfSURfRkREX0NSTENfQ09ORklHX1JBQl9DTkYsCitNU0dfSURfRkREX0NSTENfQ09ORklHX1RNX0VTVEFCTElTSF9DTkYsCitNU0dfSURfRkREX0NSTENfQ09ORklHX1VNX0VTVEFCTElTSF9DTkYsCitNU0dfSURfRkREX0NSTENfQ09ORklHX0FNX0VTVEFCTElTSF9DTkYsCitNU0dfSURfRkREX0NSTENfQ09ORklHX1JFTEVBU0VfQ05GLAorTVNHX0lEX0ZERF9DUkxDX1NVU1BFTkRfQ05GLAorTVNHX0lEX0ZERF9DUkxDX1JFU1VNRV9DTkYsCitNU0dfSURfRkREX0NSTENfQ09ORklHX1RYX0NJUEhFUklOR19DTkYsCitNU0dfSURfRkREX0NSTENfQ09ORklHX1JYX0NJUEhFUklOR19DTkYsCitNU0dfSURfRkREX0NSTENfQ09VTlRfQ19DTkYsCitNU0dfSURfRkREX0NSTENfUkVFU1RBQkxJU0hfQ05GLAorLyogU0VRICovCitNU0dfSURfRkREX0NTRVFfQ09ORklHX1VMMkFDQ19DTEtfT05fSU5GT19DTkYsCitNU0dfSURfRkREX0NTRVFfQ09ORklHX1VMMkFDQ19DTEtfT0ZGX0lORk9fQ05GLAorLy9DU0NFCitNU0dfSURfRkREX0NTQ0VfU0xDRV9JTklUSUFMSVNFX1JFUSwKK01TR19JRF9GRERfQ1NDRV9TTENFX1JGX09GRl9SRVEsCitNU0dfSURfRkREX0NTQ0VfU0xDRV9SRl9PTl9SRVEsCitNU0dfSURfRkREX0NTQ0VfU0xDRV9SU1NJX1NOSUZGRVJfU1RBUlRfUkVRLAorTVNHX0lEX0ZERF9DU0NFX1NMQ0VfUlNTSV9TTklGRkVSX1NUT1BfUkVRLAorTVNHX0lEX0ZERF9DU0NFX1NMQ0VfUlNTSV9TTklGRkVSX1NUT1BfSU5ELAorI2lmZGVmIF9fR0VNSU5JX18KK01TR19JRF9GRERfQ1NDRV9TTENFX1JFU1VNRV9SRVEsCisjZW5kaWYKKworLy9VUlIKK01TR19JRF9GRERfVVJSX1NMQ0VfU0VUX0FDVElWRV9SQVRfUkVRLAorLy9SUkNFCitNU0dfSURfRkREX1JSQ0VfU0xDRV9BQk9SVF9SRVEsCitNU0dfSURfRkREX1JSQ0VfU0xDRV9HRVRfQ09VTlRfQ19SRVEsCitNU0dfSURfRkREX1JSQ0VfU0xDRV9SRUNPTkZJR19SRVEsCisvL1NJQkUKK01TR19JRF9GRERfU0lCRV9TTENFX1JFQ09ORklHVVJFX0JDSF9SRVEsCitNU0dfSURfRkREX1NJQkVfU0xDRV9TSUI3X0NIQU5HRV9JTkQsCisvL0NTRQorTVNHX0lEX0ZERF9DU0VfU0xDRV9GUkVRX1NDQU5fQ09OVElOVUVfUkVRLAorTVNHX0lEX0ZERF9DU0VfU0xDRV9GUkVRX1NDQU5fUkVRLAorTVNHX0lEX0ZERF9DU0VfU0xDRV9GUkVRX1NDQU5fU1VTUEVORF9SRVEsCitNU0dfSURfRkREX0NTRV9TTENFX1NQRUNJRklDX0NFTExfU0VBUkNIX1JFUSwKK01TR19JRF9GRERfQ1NFX1NMQ0VfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfU1RPUF9SRVEsCisvL01FTUUKK01TR19JRF9GRERfTUVNRV9TTENFX01FQVNVUkVNRU5UX0NPTkZJR19DRUxMX1JFUSwKK01TR19JRF9GRERfTUVNRV9TTENFX01FQVNVUkVNRU5UX0NPTkZJR19GTU9fUkVRLAorTVNHX0lEX0ZERF9NRU1FX1NMQ0VfTUVBU1VSRU1FTlRfQ09ORklHX1RHUFNfUkVRLAorTVNHX0lEX0ZERF9NRU1FX1NMQ0VfTUVBU1VSRU1FTlRfQ09ORklHX1JTU0lfRVZFTlRfUkVRLAorTVNHX0lEX0ZERF9NRU1FX1NMQ0VfTUVBU1VSRU1FTlRfQ09ORklHX1RYX1BPV0VSX1JFUSwKK01TR19JRF9GRERfTUVNRV9TTENFX01FQVNVUkVNRU5UX0NPTkZJR19UWF9QT1dFUl9TVE9QX1JFUSwKK01TR19JRF9GRERfTUVNRV9TTENFX1RYX1BPV0VSX1JFU1VMVF9SRVEsCitNU0dfSURfRkREX01FTUVfU0xDRV9STENfQ09OVElOVUVfUkVRLAorTVNHX0lEX0ZERF9NRU1FX1NMQ0VfUkxDX1NUT1BfUkVRLCAgICAgICAgICAgICAgICAgCisKKy8vU0VRCitNU0dfSURfRkREX1NFUV9TRVFVRU5DRV9SRVEsCitNU0dfSURfRkREX1NFUV9TRVFVRU5DRV9DT05GSVJNRURfSU5ELAorTVNHX0lEX0ZERF9TRVFfU0VRVUVOQ0VfSU5ESUNBVEVEX0lORCwKK01TR19JRF9GRERfU0VRX1NFUVVFTkNFX0VSUk9SX0lORCwKKworLy9VTUFDCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1VFX0NORiwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfVUVfSU5ELAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19UWF9DQ1RSQ0hfQ05GLAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19FRENIX0NDVFJDSF9DTkYsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1RYX0NDVFJDSF9JTkQsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX0VEQ0hfQ0NUUkNIX0lORCwKK01TR19JRF9GRERfQ01BQ19SRU1PVkVfVFhfQ0NUUkNIX0NORiwKK01TR19JRF9GRERfQ01BQ19SRU1PVkVfRURDSF9DQ1RSQ0hfQ05GLAorTVNHX0lEX0ZERF9DTUFDX1JFTU9WRV9UWF9DQ1RSQ0hfSU5ELAorTVNHX0lEX0ZERF9DTUFDX1JFTU9WRV9FRENIX0NDVFJDSF9JTkQsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1JYX0NDVFJDSF9DTkYsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX0hTRFNDSF9DQ1RSQ0hfQ05GLAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19SWF9DQ1RSQ0hfSU5ELAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19IU0RTQ0hfQ0NUUkNIX0lORCwKK01TR19JRF9GRERfQ01BQ19SRU1PVkVfUlhfQ0NUUkNIX0NORiwKK01TR19JRF9GRERfQ01BQ19SRU1PVkVfSFNEU0NIX0NDVFJDSF9DTkYsCitNU0dfSURfRkREX0NNQUNfUkVNT1ZFX1JYX0NDVFJDSF9JTkQsCitNU0dfSURfRkREX0NNQUNfUkVNT1ZFX0hTRFNDSF9DQ1RSQ0hfSU5ELAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19SQUNIX0NORiwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfUkFDSF9JTkQsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX0NQQ0hfQ05GLAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19DSVBIRVJJTkdfQ05GLAorTVNHX0lEX0ZERF9DTUFDX0NPVU5UX0NfQ05GLAorTVNHX0lEX0ZERF9DTUFDX0RFTEVURV9DSVBIRVJJTkdfQ05GLAorCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1RYX1JMQ19SRUVTVEFCTElTSF9DTkYsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1RYX1JMQ19SRUVTVEFCTElTSF9JTkQsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1JYX1JMQ19SRUVTVEFCTElTSF9DTkYsCitNU0dfSURfRkREX0NNQUNfQ09ORklHX1JYX1JMQ19SRUVTVEFCTElTSF9JTkQsCisKK01TR19JRF9GRERfQ01BQ19DT05GSUdfQUJPUlRfQ05GLAorTVNHX0lEX0ZERF9DTUFDX0NPTkZJR19URkNfU1VCU0VUX0NORiwKK01TR19JRF9GRERfQ01BQ19DT05GSUdfVEZDX1NVQlNFVF9JTkQsCitNU0dfSURfRkREX0NNQUNfQUJPUlRfSU5ELAorCitNU0dfSURfRkREX1NMQ0VfQ09ERV9FTkQgPSBNU0dfSURfRkREX0NNQUNfQUJPUlRfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9GRERfU0xDRV9DT0RFX1RBSUwgKQorLy9NU0dfSURfU0xDRV9DT0RFX0VORCwKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9EQk1FX0NPREVfQkVHSU4gKQorLy9NU0dfSURfREJNRV9DT0RFX0JFR0lOLAorTVNHX0lEX0ZERF9EQk1FX0RVTVBfSU5EID0gTVNHX0lEX0ZERF9EQk1FX0NPREVfQkVHSU4sCitNU0dfSURfRkREX0RCTUVfRFVNUF9FWFRfUVVFVUVfSU5ELAorTVNHX0lEX0ZERF9EQk1FX0NPREVfRU5EID0gTVNHX0lEX0ZERF9EQk1FX0RVTVBfRVhUX1FVRVVFX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRkREX0RCTUVfQ09ERV9UQUlMICkKKy8vTVNHX0lEX0RCTUVfQ09ERV9FTkQsCisKKy8vTVNHX0lEX1VTSU1FX0NPREVfQkVHSU4sCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfRkREX1VTSU1FX0NPREVfQkVHSU4gKQorTVNHX0lEX0ZERF9SUkNFX1VTSU1FX1NBVkVfUkVRID0gTVNHX0lEX0ZERF9VU0lNRV9DT0RFX0JFR0lOLAorTVNHX0lEX0ZERF9DU0NFX1VTSU1FX1JFQURfTlZSQU1fUkVRLAorTVNHX0lEX0ZERF9DU0NFX1VTSU1FX1NBVkVfUkVRLAorTVNHX0lEX0ZERF9DU0NFX1VTSU1FX1NFVF9NT0RFX1JFUSwKK01TR19JRF9GRERfQ1NDRV9VU0lNRV9CQU5EX1NFVFRJTkdfVVBEQVRFX1JFUSwKK01TR19JRF9GRERfQ1NDRV9VU0lNRV9FVVRSQU5fQ0FQX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fVUFTX1VTSU1fSU5GT19SRVNFVF9SRVEsCitNU0dfSURfRkREX1VTSU1fUkVHSVNURVJfQ05GLAorTVNHX0lEX0ZERF9VU0lNRV9EVU1QX1VFX0NBUEFCSUxJVFksCitNU0dfSURfRkREX05XU0VMX1VTSU1FX0VVVFJBTl9CQU5EX1VQREFURV9SRVEsCitNU0dfSURfRkREX1VTSU1FX0NPREVfRU5EID0gTVNHX0lEX0ZERF9VU0lNX1JFR0lTVEVSX0NORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfRkREX1VTSU1FX0NPREVfVEFJTCApCisvL01TR19JRF9VU0lNRV9DT0RFX0VORCwKKworLy9NU0dfSURfRkREX1VSUl9DT0RFX0JFR0lOLAorTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZERF9VUlJfQ09ERV9CRUdJTiApCitNU0dfSURfVVJSX05PTl9VU0VEX01FU1NBR0VfQkVHSU4gPSBNU0dfSURfRkREX1VSUl9DT0RFX0JFR0lOLAorCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX0ZERF9VUlJfQ1NDRV9TV0lUQ0hfR0VNSU5JX01PREVfUkVRLAorCisvKiBpZmRlZiBfX0dFTUlOSV9fICovCitNU0dfSURfRkREX1VSUl9SUkNFX1NXSVRDSF9HRU1JTklfTU9ERV9SRVEsCitNU0dfSURfRkREX1VSUl9DU0VfU1dJVENIX0dFTUlOSV9NT0RFX1JFUSwKK01TR19JRF9GRERfVVJSX01FTUVfU1dJVENIX0dFTUlOSV9NT0RFX1JFUSwKK01TR19JRF9GRERfVVJSX1NJQkVfU1dJVENIX0dFTUlOSV9NT0RFX1JFUSwKK01TR19JRF9GRERfVVJSX0NTQ0VfVklSVFVBTF9TVVNQRU5EX1NFUlZJQ0VfQ09NUExFVEVfSU5ELAorI2lmIDAgLyogbW92ZSB0byB1bDFfc2FwLmggKi8KKy8qIHVuZGVyIGNvbnN0cnVjdGlvbiAhKi8KKyNlbmRpZgorLyogZW5kaWYgX19HRU1JTklfXyAqLworI2VuZGlmIC8qIF9fR0VNSU5JX18gKi8KKworLyogRFJMQyAqLworTVNHX0lEX0ZERF9VUlJfRFJMQ19TUkJfU0RVX1NUT1BfSU5ELAorCisvKiBMQ1NDRSAqLworTVNHX0lEX0ZERF9MQ1NDRV9DU0NFX1JFU0VMX0lORCwKK01TR19JRF9GRERfTENTQ0VfQ1NDRV9CQVJfQ0VMTF9JTkQsCitNU0dfSURfRkREX0xDU0NFX0NTQ0VfVFJJR0dFUl80R19DU0dfU0VBUkNIX0lORCwKK01TR19JRF9GRERfTENTQ0VfQ1NDRV9UUklHR0VSXzRHX0NTR19FVkFMVUFUSU9OX0lORCwKK01TR19JRF9GRERfTENTQ0VfQ1NDRV9UUklHR0VSXzNHX0NTR19TRUFSQ0hfSU5ELAorCisjaWZkZWYgVU5JVF9URVNUCitNU0dfSURfRkREX0xDU0NFX0NTQ0VfVVRfU0lNVUxBVEVfQ09OVEVYVF9UUkFOU0ZFUiwKKyNlbmRpZiAvKiBVTklUX1RFU1QgKi8KKworLyogTFVSUiAqLworTVNHX0lEX0ZERF9VUlJfTFVSUl9TWU5DX1VQX1JFUSwKK01TR19JRF9GRERfVVJSX0xVUlJfU1lOQ19VUF9DTkYsCitNU0dfSURfRkREX1VSUl9MVVJSX1NZTkNfRE9XTl9SRVEsCitNU0dfSURfRkREX1VSUl9MVVJSX0RVTVBfU1lOQ19EQVRBLAorTVNHX0lEX0ZERF9VUlJfRFVNUF9DT05URVhULAorI2lmZGVmIF9fR0VNSU5JX18KK01TR19JRF9GRERfVVJSX1JSQ0VfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9SRVEsCitNU0dfSURfRkREX1VSUl9DU0NFX1ZJUlRVQUxfQ09OTkVDVEVEX1NVU1BFTkRfUkVRLAorTVNHX0lEX0ZERF9VUlJfTUVNRV9WSVJUVUFMX0NPTk5FQ1RFRF9TVVNQRU5EX1JFUSwKK01TR19JRF9GRERfVVJSX1NJQkVfVklSVFVBTF9DT05ORUNURURfU1VTUEVORF9SRVEsCisKK01TR19JRF9GRERfVVJSX1JSQ0VfVklSVFVBTF9DT05ORUNURURfUkVTVU1FX1JFUSwKK01TR19JRF9GRERfVVJSX0NTQ0VfVklSVFVBTF9DT05ORUNURURfUkVTVU1FX1JFUSwKK01TR19JRF9GRERfVVJSX01FTUVfVklSVFVBTF9DT05ORUNURURfUkVTVU1FX1JFUSwKK01TR19JRF9GRERfVVJSX1NJQkVfVklSVFVBTF9DT05ORUNURURfUkVTVU1FX1JFUSwKKyNlbmRpZgorCitNU0dfSURfRkREX1VSUl9OT05fVVNFRF9NRVNTQUdFX0VORCwKK01TR19JRF9GRERfVVJSX0NPREVfRU5EID0gTVNHX0lEX0ZERF9VUlJfTk9OX1VTRURfTUVTU0FHRV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZERF9VUlJfQ09ERV9UQUlMICkKKy8vTVNHX0lEX0ZERF9VUlJfQ09ERV9FTkQsCisKKyNlbmRpZiAvKiBfX1VNVFNfRkREX01PREVfXyAqLworCisvKiBtdGs4MDE5NywgbWVyZ2UgVEREMTI4IGJhY2sgdG8gTUFVSSAqLworI2lmIGRlZmluZWQoX19VTVRTX1RERDEyOF9NT0RFX18pCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEREX0FEUl9DT0RFX0JFR0lOICkKKworLy9NU0dfSURfVEREX0FEUl9DT0RFX0JFR0lOLAorTVNHX0lEX1RERF9STENfVE1fREFUQV9JTkQgPSBNU0dfSURfVEREX0FEUl9DT0RFX0JFR0lOLAorTVNHX0lEX1RERF9STENfVU1fREFUQV9JTkQsCitNU0dfSURfVEREX1JMQ19BTV9EQVRBX0lORCwKKworI2lmZGVmIFVOSVRfVEVTVAorTVNHX0lEX1RERF9BRFJfVU5QQUNLX1VUX0VWRU5UX1BIWV9EQVRBX0lORCwKK01TR19JRF9URERfQURSX1VOUEFDS19VVF9FVkVOVF9STENfREFUQV9JTkQsCitNU0dfSURfVEREX0FEUl9VTlBBQ0tfVVRfRVZFTlRfVkVSRElDVF9EQVRBX0lORCwKK01TR19JRF9URERfQURSX1BBQ0tfVVRfTU9WRV9UT19JRExFX1JFUSwKK01TR19JRF9URERfQURSX1BBQ0tfVVRfU0VORF9DQ0NIX1JFUSwKK01TR19JRF9URERfQURSX1BBQ0tfVVRfU0VORF9EQ0NIX1JFUSwKKyNlbmRpZgorCitNU0dfSURfVEREX0FEUl9BRFJfQUNLTk9XTEVER0VNRU5UX0lORCwKK01TR19JRF9URERfUkxDX0FNX0RBVEFfQ05GLAorTVNHX0lEX1RERF9BRFJfQ09ERV9FTkQgPSBNU0dfSURfVEREX1JMQ19BTV9EQVRBX0NORiwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVEREX0FEUl9DT0RFX1RBSUwgKQorLy9NU0dfSURfVEREX0FEUl9DT0RFX0VORCwKKworLy9NU0dfSURfVEREX0NTQ0VfQ09ERV9CRUdJTiwKKy8vU0xDRQorTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1RERF9DU0NFX0NPREVfQkVHSU4gKQorTVNHX0lEX1RERF9VUlJfU0xDRV9TRVRfQUNUSVZFX1JBVF9DTkYgPSBNU0dfSURfVEREX0NTQ0VfQ09ERV9CRUdJTiwgIC8qQWxmaWU6IHRoaXMgbXNnX2lkIGlzIGFsc28gdXNlZCBieSBSUkNFKi8KK01TR19JRF9URERfQ1NDRV9TTENFX0lOSVRJQUxJU0VfQ05GLAorTVNHX0lEX1RERF9DU0NFX1NMQ0VfUkZfT05fQ05GLAorTVNHX0lEX1RERF9DU0NFX1NMQ0VfUkZfT0ZGX0NORiwKK01TR19JRF9URERfQ1NDRV9TTENFX1JTU0lfU05JRkZFUl9TVE9QX0NORiwKKworLy9SUkNFCitNU0dfSURfVEREX0NTQ0VfUlJDRV9NT1ZFX1RPX0lETEVfSU5ELAorTVNHX0lEX1RERF9DU0NFX1JSQ0VfTU9WRV9UT19DRUxMX0RDSF9JTkQsCitNU0dfSURfVEREX0NTQ0VfUlJDRV9NT1ZFX1RPX0NPTk5FQ1RFRF9JTkQsCitNU0dfSURfVEREX0NTQ0VfUlJDRV9NT1ZFX1RPX0lOQUNUSVZFX0lORCwKK01TR19JRF9URERfQ1NDRV9SUkNFX0JDQ0hfTU9ESUZJQ0FUSU9OX0lORk9fSU5ELAorTVNHX0lEX1RERF9DU0NFX1JSQ0VfUlJDX0NPTk5FQ1RJT05fRVNUQUJMSVNITUVOVF9JTkQsCitNU0dfSURfVEREX0NTQ0VfUlJDRV9SRUxFQVNFX0NIQU5ORUxTX0NORiwKK01TR19JRF9URERfQ1NDRV9SUkNFX09VVF9PRl9TRVJWSUNFX0FSRUFfQ05GLAorTVNHX0lEX1RERF9SUkNFX0NTQ0VfU0lCX0NPTExFQ1RJT05fUlNQLAorTVNHX0lEX1RERF9DU0NFX1JSQ0VfU1RFQURZX0lOQUNUSVZFX0lORCwKKworI2lmIGRlZmluZWQoX18yM0dfUFJJX1JFU0VMX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykKK01TR19JRF9URERfQ1NDRV9SUkNFX0RFRElfUFJJT19JTkZPX0lORCwKKyNlbmRpZgorCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX1RERF9DU0NFX1JSQ0VfQUJPUlRfU0VSVklDRV9SRVEsCitNU0dfSURfVEREX0NTQ0VfUlJDRV9BQk9SVF9TRVJWSUNFX0NPTVBMRVRFX0lORCwKK01TR19JRF9URERfQ1NDRV9SUkNFX1JFVkVSVF9SQVRfSU5fU1VTUEVORF9JTkQsCisjZW5kaWYKK01TR19JRF9URERfQ1NDRV9SUkNFX0NIQU5ORUxfQ09ORklHX0ZBSUxVUkVfSU5ELAorI2lmZGVmIF9fU01BUlRfUEFHSU5HXzNHX0ZERF9fCitNU0dfSURfVEREX0NTQ0VfUlJDRV9TTUFSVF9QQUdJTkdfU1RBVFVTX0lORCwKKyNlbmRpZgorCisvL0NTRQorTVNHX0lEX1RERF9DU0NFX0NTRV9DRUxMX1NFTEVDVElPTl9TVE9QX0NORiwKK01TR19JRF9URERfQ1NDRV9DU0VfQ0VMTF9TRUxFQ1RJT05fQ05GLAorTVNHX0lEX1RERF9DU0NFX0NTRV9QTE1OX0xJU1RfQ05GLAorTVNHX0lEX1RERF9DU0NFX0NTRV9GUkVRX1NDQU5fU1VTUEVORF9JTkQsCisKKyNpZiAwCisjZW5kaWYKKyNpZiAoZGVmaW5lZChfXzNHX0NTR19TVVBQT1JUX18pIHx8IGRlZmluZWQoX19MVEVfUkFUX18pKQorTVNHX0lEX1RERF9DU0NFX0NTRV9DU0dfTElTVF9DTkYsCitNU0dfSURfVEREX0NTQ0VfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9TVVNQRU5EX0NORiwKK01TR19JRF9URERfQ1NDRV9DU0VfQ1NHX0FVVE9OT01PVVNfU0VBUkNIX0NORiwKK01TR19JRF9URERfTUVNRV9DU0VfQ1NHX0FVVE9OT01PVVNfU0VBUkNIX0lOVFJBX0ZSRVFfQ0VMTF9JTkQsCitNU0dfSURfVEREX0NTQ0VfQ1NFX0VWQUxVQVRFX0NTR19DRUxMX0NORiwKK01TR19JRF9URERfQ1NDRV9DU0VfRVZBTFVBVEVfQ1NHX0NFTExfU1VTUEVORF9DTkYsCisjZW5kaWYKKworI2lmZGVmIF9fTFRFX1JBVF9fCitNU0dfSURfVEREX0NTQ0VfQ1NFX0NHSV9DT0xMRUNUSU9OX0NORiwKK01TR19JRF9URERfQ1NDRV9DU0VfQ0dJX0NPTExFQ1RJT05fU1RPUF9DTkYsCisjZW5kaWYgLyogX19MVEVfUkFUX18gKi8KKworLy9TSUJFCitNU0dfSURfVEREX1NJQkVfU0lCX0NPTExFQ1RJT05fQ05GLAorTVNHX0lEX1RERF9TSUJFX1NJQl9NT05JVE9SSU5HX0NORiwKK01TR19JRF9URERfU0lCRV9TSUJfTU9OSVRPUklOR19FUlJPUl9JTkQsCitNU0dfSURfVEREX0NTQ0VfU0lCRV9NSUJfQ0hBTkdFX0lORCwKKy8vTUVNRQorTVNHX0lEX1RERF9DU0NFX01FTUVfQ0VMTF9NRUFTVVJFTUVOVF9SRVNVTFRfSU5ELAorTVNHX0lEX1RERF9DU0NFX01FTUVfTFRFX01FQVNVUkVNRU5UX0lORCwKK01TR19JRF9URERfQ1NDRV9NRU1FX0NFTExfUkVGX1RJTUVfQU5DSE9SX0lORCwKK01TR19JRF9URERfTUVNRV9DU0NFX01PRElGWV9DRUxMX0xJU1RfSU5ELAorTVNHX0lEX1RERF9DU0NFX01FTUVfUkVGX0NFTExfQ0hBTkdFX0lORCwKKy8vVVNJTUUKK01TR19JRF9URERfQ1NDRV9VU0lNRV9VU0lNX1JFTU9WRURfSU5ELAorTVNHX0lEX1RERF9DU0NFX1VTSU1FX1JFQURfTlZSQU1fQ05GLAorTVNHX0lEX1RERF9VU0lNRV9TSU1fRklMRV9DSEFOR0VfSU5ELAorCisKKy8vUkFUQ00KK01TR19JRF9URERfUkFUQ01fQ1NDRV9JTklUX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1BMTU5fU0VBUkNIX0FCT1JUX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX0FSQUxfVVBEQVRFX1JFUSwKKyNpZiAhZGVmaW5lZChfX1VNVFNfRkREX01PREVfXykKK01TR19JRF9SQVRDTV9DU0NFX1BMTU5fU0VBUkNIX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX0RJU0FCTEVfUkFUX0NPTkZJR19SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9QTE1OX0xJU1RfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfUExNTl9MSVNUX1NUT1BfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfQUREX0ZPUkJJRERFTl9MQV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9ERUxfRk9SQklEREVOX0xBX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX0VRX1BMTU5fTElTVF9VUERBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfSFBMTU5fSU5GT19VUERBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfUlJDX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfU0VUX1JBVF9NT0RFX1JFUSwKK01TR19JRF9SQVRDTV9DU0NFX1JGT05fUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfUkZPRkZfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfU0VUX0lNRUlfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfRUxFVkFUT1JfTU9ERV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9DQUxMX1NUQVRVU19JTkQsCisKKy8qU25pZmZlciByZWxhdGVkKi8KK01TR19JRF9SQVRDTV9VQVNfU05JRkZFUl9TVEFSVF9SRVEsCitNU0dfSURfUkFUQ01fVUFTX1NOSUZGRVJfU1RPUF9SRVEsCitNU0dfSURfUkFUQ01fVUFTX0NIRUNLX0FDVElWRV9SQVRfUkVRLAorTVNHX0lEX1JBVENNX1VBU19TRVRfQUNUSVZFX1JBVF9SRVEsCisKKy8vQ00KK01TR19JRF9DTUNTQ0VfRU1FUkdFTkNZX0NBTExfU1RBVFVTX0lORCwKKyNpZmRlZiBfX0dFTUlOSV9fCitNU0dfSURfUkFUQ01fQ1NDRV9TSU1fU1RBVFVTX1VQREFURV9SRVEsCisjZW5kaWYKKworI2lmIGRlZmluZWQoX18zR19DU0dfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTFRFX1JBVF9fKQorTVNHX0lEX1JBVENNX0NTQ0VfQ1NHX0xJU1RfUkVRLAorTVNHX0lEX1JBVENNX0NTQ0VfQ1NHX0xJU1RfU1RPUF9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9VUERBVEVfV0hJVEVfTElTVF9SRVEsCisjZW5kaWYKK01TR19JRF9SQVRDTV9DU0NFX1BMTU5fTElTVF9TVEFUVVNfVVBEQVRFX1JFUSwKKworCisjaWZkZWYgX19MVEVfUkFUX18KK01TR19JRF9SQVRDTV9VQVNfUkFUX0NIQU5HRV9SRVEsICAvL2Fsc28gdXNlZCBieSBSUkNFCitNU0dfSURfUkFUQ01fQ1NDRV9FVVRSQU5fQ0FQX1VQREFURV9SRVEsCitNU0dfSURfUkFUQ01fQ1NDRV9DQVBfVVBEQVRFX1JFUSwKKyNlbmRpZgorCitNU0dfSURfUkFUQ01fQ1NDRV9SRUdOX1NUQVRVU19VUERBVEVfUkVRLAorCitNU0dfSURfVEREX0NTQ0VfQ09ERV9FTkQgPSBNU0dfSURfUkFUQ01fQ1NDRV9SRUdOX1NUQVRVU19VUERBVEVfUkVRLAorI2Vsc2UKK01TR19JRF9URERfQ1NDRV9DT0RFX0VORCA9IE1TR19JRF9URERfUkFUQ01fQ1NDRV9JTklUX1JFUSwKKyNlbmRpZgorTU9EVUxFX01TR19FTkQoIE1TR19JRF9URERfQ1NDRV9DT0RFX1RBSUwgKQorLy9NU0dfSURfVEREX0NTQ0VfQ09ERV9FTkQsCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9URERfQ1NFX0NPREVfQkVHSU4gKQorLy9NU0dfSURfVEREX0NTRV9DT0RFX0JFR0lOLAorLy9TTENFCitNU0dfSURfVEREX0NTRV9TTENFX0ZSRVFfU0NBTl9TVVNQRU5EX0lORCA9IE1TR19JRF9URERfQ1NFX0NPREVfQkVHSU4sCisvLyBNRU1FCitNU0dfSURfVEREX0NTRV9NRU1FX0NFTExfTUVBU1VSRU1FTlRfUkVTVUxUX0lORCwKKy8vIENTQ0UKK01TR19JRF9URERfQ1NDRV9DU0VfQ0VMTF9TRUxFQ1RJT05fU1RBUlRfUkVRLAorTVNHX0lEX1RERF9DU0NFX0NTRV9DRUxMX1NFTEVDVElPTl9TVE9QX1JFUSwKK01TR19JRF9URERfQ1NDRV9DU0VfUExNTl9MSVNUX1NUQVJUX1JFUSwKK01TR19JRF9URERfQ1NDRV9DU0VfUExNTl9MSVNUX1NVU1BFTkRfUkVRLAorTVNHX0lEX1RERF9DU0NFX0NTRV9SRl9PRkZfUkVRLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIGF1dG8gYmFuZAorTVNHX0lEX1RERF9DU0NFX0NTRV9QTE1OX0xPU1NfV0lUSF9MSVNUX0lORCwgICAgICAgICAgICAgICAgLy8gRm9yIFBMTU4gTGlzdCBvcHRpbWl6YXRpb24KK01TR19JRF9URERfQ1NFX1NMQ0VfRlJFUV9TQ0FOX0NORiwKKworI2lmIDAKKyNlbmRpZgorI2lmIChkZWZpbmVkKF9fM0dfQ1NHX1NVUFBPUlRfXykgfHwgZGVmaW5lZChfX0xURV9SQVRfXykpCitNU0dfSURfVEREX0NTQ0VfQ1NFX0NTR19MSVNUX1NUQVJUX1JFUSwKK01TR19JRF9URERfQ1NDRV9DU0VfQ1NHX0xJU1RfU1VTUEVORF9SRVEsCitNU0dfSURfVEREX0NTQ0VfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9TVEFSVF9SRVEsCitNU0dfSURfVEREX0NTQ0VfQ1NFX0NTR19BVVRPTk9NT1VTX1NFQVJDSF9TVVNQRU5EX1JFUSwKK01TR19JRF9URERfQ1NDRV9DU0VfRVZBTFVBVEVfQ1NHX0NFTExfUkVRLAorTVNHX0lEX1RERF9DU0NFX0NTRV9FVkFMVUFURV9DU0dfQ0VMTF9TVVNQRU5EX1JFUSwKKyNlbmRpZgorCisjaWZkZWYgX19MVEVfUkFUX18KK01TR19JRF9URERfQ1NDRV9DU0VfQ0dJX0NPTExFQ1RJT05fUkVRLAorTVNHX0lEX1RERF9DU0NFX0NTRV9DR0lfQ09MTEVDVElPTl9TVE9QX1JFUSwKKyNlbmRpZgorCitNU0dfSURfVEREX0NTRV9DQUNIRV9JTkZPX0lORCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3Igc2hvd2luZyBjYWNoZSBjb250ZW50IHRvIENhdGNoZXIuLi4+I0kKK01TR19JRF9URERfQ1NFX0NPREVfRU5EID0gTVNHX0lEX1RERF9DU0VfQ0FDSEVfSU5GT19JTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9DU0VfQ09ERV9UQUlMICkKKy8vTVNHX0lEX1RERF9DU0VfQ09ERV9FTkQsCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9URERfTUVNRV9DT0RFX0JFR0lOICkKKy8vTVNHX0lEX1RERF9NRU1FX0NPREVfQkVHSU4sCisvL1NMQ0UKKy8vVU1BQworTVNHX0lEX1RERF9NRU1FX1VNQUNfVFJBRkZJQ19WT0xVTUVfTUVBU1VSRU1FTlRfSU5EID0gTVNHX0lEX1RERF9NRU1FX0NPREVfQkVHSU4sCitNU0dfSURfVEREX01FTUVfVU1BQ19RVUFMSVRZX01FQVNVUkVNRU5UX0lORCwKK01TR19JRF9URERfTUVNRV9VTUFDX0FERElUSU9OQUxfVFZNX0lORCwKK01TR19JRF9URERfTUVNRV9VTUFDX01FQVNVUkVNRU5UX0VSUk9SX0lORCwKKyNpZmRlZiBfX1VNVFNfUjZfXworTVNHX0lEX1RERF9NRU1FX1VNQUNfVFZNX0VYQ0VFRF9USFJFU0hPTERfSU5ELAorI2VuZGlmCitNU0dfSURfVEREX01FTUVfVU1BQ19DU19DSVBIRVJfU1RBVFVTX0lORCwKKy8vUlJDRQorTVNHX0lEX1RERF9SUkNFX01FTUVfTU9WRV9UT19TVEFURV9SRVEsCitNU0dfSURfVEREX01FTUVfUlJDRV9DT01QUkVTU0VEX01PREVfUkVDT05GSUdVUkVfRkFJTFVSRV9JTkQsCitNU0dfSURfVEREX01FTUVfUlJDRV9DT01QUkVTU0VEX01PREVfUkVDT05GSUdVUkVfU1VDQ0VTU19JTkQsCisKKworLy9TTENFCitNU0dfSURfVEREX01FTUVfU0xDRV9TVVNQRU5EX1JFUE9SVF9JTkQsCitNU0dfSURfVEREX01FTUVfU0xDRV9SRVNVTUVfUkVQT1JUX0lORCwKKworLy9DU0NFCitNU0dfSURfVEREX0NTQ0VfTUVNRV9JTklUSUFMSVNFX1JFUSwKKy8vTVNHX0lEX01FTUVfQ1NDRV9DRUxMX1JFU0VMRUNUSU9OX0lORCwJCitNU0dfSURfVEREX01FTUVfQ1NDRV9DRUxMX1NFTEVDVEVEX0lORCwKK01TR19JRF9URERfQ1NDRV9NRU1FX01FQVNfTUFOSVBVTEFUSU9OX1JFUSwKK01TR19JRF9URERfQ1NDRV9NRU1FX0xURV9IUFNfUVVBTElGWV9DRUxMX0lORCwKK01TR19JRF9URERfQ1NDRV9NRU1FX1JGX09OX1JFUSwKK01TR19JRF9URERfQ1NDRV9NRU1FX1JGX09GRl9SRVEsCitNU0dfSURfVEREX0NTQ0VfTUVNRV9TRVRfTU9ERV9SRVEsCitNU0dfSURfVEREX0NTQ0VfTUVNRV9FUV9QTE1OX0xJU1RfVVBEQVRFX1JFUSwKK01TR19JRF9URERfQ1NDRV9NRU1FX0NMRUFOX0RCX0NFTExfUkVRLAorLy9TSUJFCitNU0dfSURfVEREX01FTUVfU0lCRV9TSUIzX0NIQU5HRV9JTkQsCitNU0dfSURfVEREX01FTUVfU0lCRV9TSUI0X0NIQU5HRV9JTkQsCitNU0dfSURfVEREX01FTUVfU0lCRV9TSUIxMV9DSEFOR0VfSU5ELCAKK01TR19JRF9URERfTUVNRV9TSUJFX1NJQjEyX0NIQU5HRV9JTkQsIAorTVNHX0lEX1RERF9NRU1FX1NJQkVfU0lCMThfQ0hBTkdFX0lORCwgCisvL01FTUUgc2VsZgorTVNHX0lEX1RERF9NRU1FX0RVTVBfQ09OVEVYVCwKK01TR19JRF9URERfTUVNRV9VVF9TRVRfQ09OVEVYVCwKK01TR19JRF9URERfTUVNRV9VVF9TRVRfU0hNLAorTVNHX0lEX1RERF9NRU1FX0NFTExfUE9XRVJfTEVWRUxfSU5ELAorTVNHX0lEX1RERF9NRU1FX01FTUVfU0FWRURfTUVBU19DVFJMX0lORCwKKworTVNHX0lEX1RERF9NRU1FX0NPREVfRU5EID0gTVNHX0lEX1RERF9NRU1FX01FTUVfU0FWRURfTUVBU19DVFJMX0lORCwKKy8vTVNHX0lEX1RERF9NRU1FX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9URERfTUVNRV9DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEREX1JSQ0VfQ09ERV9CRUdJTiApCisvL01TR19JRF9URERfUlJDRV9DT0RFX0JFR0lOLAorLy9VREMKK01TR19JRF9SQVRDTV9SUkNFX0ZPUkNFX1JFTF9SRVEgPSBNU0dfSURfVEREX1JSQ0VfQ09ERV9CRUdJTiwKKy8vTkVXCisjaWYgZGVmaW5lZCAoX19OT19QU0RBVEFfU0VORF9TQ1JJX18pIHx8IGRlZmluZWQgKF9fRkFTVF9ET1JNQU5DWV9fKQorTVNHX0lEX1JBVENNX1JSQ0VfU0VSVklDRV9BQ0NFUFRfTk9USUZZX1JFUSwKKyNlbmRpZiAvKiBfX05PX1BTREFUQV9TRU5EX1NDUklfXyB8fCBfX0ZBU1RfRE9STUFOQ1lfXyAqLworCisvKiBCTUMgKi8KK01TR19JRF9URERfUlJDRV9CTUNfUlhfSU5ELAorTVNHX0lEX1RERF9SUkNFX0JNQ19FVFdTX0lORCwKKy8qIFVSTEMgKi8KK01TR19JRF9URERfUlJDRV9VUkxDX1NUQVRVU19JTkQsCisKKy8vU0xDRQorTVNHX0lEX1RERF9SUkNFX1NMQ0VfUkVDT05GSUdfQ09NUExFVEVfSU5ELAorTVNHX0lEX1RERF9SUkNFX1NMQ0VfUkVDT05GSUdfRVJST1JfSU5ELAorTVNHX0lEX1RERF9SUkNFX1NMQ0VfUERDUF9SRUxPQ19JTkQsCitNU0dfSURfVEREX1JSQ0VfU0xDRV9HRVRfQ09VTlRfQ19DTkYsCitNU0dfSURfVEREX1JSQ0VfU0xDRV9BQk9SVF9DTkYsCitNU0dfSURfVEREX1JSQ0VfU0xDRV9BQ1RJVkFUSU9OX1RJTUVfSU5ELAorCisvL1NJQkUKK01TR19JRF9URERfUlJDRV9TSUJFX0NFTExfUlNUX0NORiwKK01TR19JRF9URERfUlJDRV9TSUJFX0NFTExfUlNUX1NUT1BfQ05GLAorLy9DU0NFCitNU0dfSURfVEREX0NTQ0VfUlJDRV9TVUlUQUJMRV9DRUxMX1NFTEVDVEVEX1JFUSwKK01TR19JRF9URERfQ1NDRV9SUkNFX0FDQ0VQVEFCTEVfQ0VMTF9TRUxFQ1RFRF9SRVEsCitNU0dfSURfVEREX0NTQ0VfUlJDRV9PVVRfT0ZfU0VSVklDRV9BUkVBX1JFUSwKK01TR19JRF9URERfQ1NDRV9SUkNFX0RFQUNUSVZBVEVfUkVRLAorTVNHX0lEX1RERF9DU0NFX1JSQ0VfU0VUX01PREVfUkVRLAorTVNHX0lEX1RERF9SUkNFX0NTQ0VfU0lCX0NPTExFQ1RJT05fSU5ELAorTVNHX0lEX1RERF9DU0NFX1JSQ0VfUENIX1RPX0ZBQ0hfUkVBRFlfUlNQLAorTVNHX0lEX1RERF9DU0NFX1JSQ0VfUkVMRUFTRV9DSEFOTkVMU19SRVEsCisvL01FTUUKKy8vTVNHX0lEX01FTUVfUlJDRV9DT01QUkVTU0VEX01PREVfUkVDT05GSUdVUkVfUkVRLCAgLy9GREQgb25seQorLy9VTUFDCitNU0dfSURfVEREX1JSQ0VfVU1BQ19TVEFUVVNfREFUQV9QRU5ESU5HX0lORCwKK01TR19JRF9URERfUlJDRV9VTUFDX1NUQVRVU19SQUNIX0lORCwKKyNpZmRlZiBfX0hTVVBBX1NVUFBPUlRfXworTVNHX0lEX1RERF9SUkNFX1VNQUNfUkxfRkFJTFVSRV9JTkQsCisjZW5kaWYKKyNpZmRlZiBfX01US19JTlRFUk5BTF9fCisvLyBSUkNFIGl0c2VsZgorTVNHX0lEX1RERF9SUkNFX1JSQ0VfREVCVUdfSU5GT19JTkQsCisjZW5kaWYKKy8qIEFDSyAqLworTVNHX0lEX1RERF9SUkNMX1JSQ19BQ0tOT1dMRURHRU1FTlRfSU5ELAorTVNHX0lEX1RERF9SUkNFX1RJTUVSSURfSU5ELCAvLyBFdmVudCBTY2hlZHVsZXIsIFVUOiBPbmVzaG90IFRpbWVyIGlkIHZlcmlmaWNhdGlvbiAqLworTVNHX0lEX1RERF9SUkNFX0NPREVfRU5EID0gTVNHX0lEX1RERF9SUkNFX1RJTUVSSURfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9URERfUlJDRV9DT0RFX1RBSUwgKQorLy9NU0dfSURfVEREX1JSQ0VfQ09ERV9FTkQsCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9URERfU0lCRV9DT0RFX0JFR0lOICkKKy8vTVNHX0lEX1RERF9TSUJFX0NPREVfQkVHSU4sCisvL1NMQ0UKK01TR19JRF9URERfU0lCRV9TTENFX0NPTkZJR1VSRV9CQ0hfRkFJTEVEX0lORCA9IE1TR19JRF9URERfU0lCRV9DT0RFX0JFR0lOLAorTVNHX0lEX1RERF9TSUJFX1NMQ0VfUkVDT05GSUdVUkVfQkNIX0NORiwKKy8vIFNJQkUgc2VsZgorTVNHX0lEX1RERF9TSUJFX1NJQl9DT0xMRUNUSU9OX1JFUSwKK01TR19JRF9URERfU0lCRV9TSUJfQ09MTEVDVElPTl9DQU5DRUxfUkVRLAorTVNHX0lEX1RERF9TSUJFX1NUQVJUX1NJQl9NT05JVE9SSU5HX1JFUSwKK01TR19JRF9URERfU0lCRV9TVE9QX1NJQl9NT05JVE9SSU5HX1JFUSwKK01TR19JRF9URERfUlJDRV9TSUJFX0NFTExfUlNUX1JFUSwKK01TR19JRF9URERfUlJDRV9TSUJFX0NFTExfUlNUX1NUT1BfUkVRLAorI2lmZGVmIF9fVU1UU19SOV9fCitNU0dfSURfVEREX1JSQ0VfU0lCRV9TSUI3X0VYUElSWV9USU1FUl9JTkQsCisjZW5kaWYKK01TR19JRF9URERfQ1NDRV9TSUJFX01PVkVfVE9fSURMRV9SRVEsCitNU0dfSURfVEREX1NJQkVfRFVNUF9CQ0hfU0lCX0lORCwKK01TR19JRF9URERfU0lCRV9TSUJfQ0hBTkdFX0lORCwvLyByZW1lbWJlciB0byBTeW5jIEZERCxhbmQgUHV0IGl0IHRvIFNJQkUncyBsb2NhdGlvbihiZWZvcmUgTVNHX0lEX1NJQkVfQ09ERV9FTkQpCitNU0dfSURfVEREX1NJQkVfQ09ERV9FTkQgPSBNU0dfSURfVEREX1NJQkVfRFVNUF9CQ0hfU0lCX0lORCwKKy8vTVNHX0lEX1RERF9TSUJFX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9URERfU0lCRV9DT0RFX1RBSUwgKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEREX1NMQ0VfQ09ERV9CRUdJTiApCisvL01TR19JRF9URERfU0xDRV9DT0RFX0JFR0lOLAorLy9SQVRDTQorCisvKiBSQUJNICovCitNU0dfSURfVEREX0NSQUJNX1JBQl9FU1RBQkxJU0hfUlNQID0gTVNHX0lEX1RERF9TTENFX0NPREVfQkVHSU4sCitNU0dfSURfVEREX0NSQUJNX1JBQl9SRUxFQVNFX1JTUCwKKy8qIFBEQ1AgKi8KK01TR19JRF9URERfQ1BEQ1BfQ09ORklHX0NORiwKK01TR19JRF9URERfQ1BEQ1BfUkVMT0NfQ05GLAorTVNHX0lEX1RERF9DUERDUF9SRUxFQVNFX0NORiwKKy8qIFVSTEMgKi8KK01TR19JRF9URERfQ1JMQ19DT05GSUdfUkFCX0NORiwKK01TR19JRF9URERfQ1JMQ19DT05GSUdfVE1fRVNUQUJMSVNIX0NORiwKK01TR19JRF9URERfQ1JMQ19DT05GSUdfVU1fRVNUQUJMSVNIX0NORiwKK01TR19JRF9URERfQ1JMQ19DT05GSUdfQU1fRVNUQUJMSVNIX0NORiwKK01TR19JRF9URERfQ1JMQ19DT05GSUdfUkVMRUFTRV9DTkYsCitNU0dfSURfVEREX0NSTENfU1VTUEVORF9DTkYsCitNU0dfSURfVEREX0NSTENfUkVTVU1FX0NORiwKK01TR19JRF9URERfQ1JMQ19DT05GSUdfVFhfQ0lQSEVSSU5HX0NORiwKK01TR19JRF9URERfQ1JMQ19DT05GSUdfUlhfQ0lQSEVSSU5HX0NORiwKK01TR19JRF9URERfQ1JMQ19DT1VOVF9DX0NORiwKKworLy9DU0NFCitNU0dfSURfVEREX0NTQ0VfU0xDRV9JTklUSUFMSVNFX1JFUSwKK01TR19JRF9URERfQ1NDRV9TTENFX1JGX09GRl9SRVEsCitNU0dfSURfVEREX0NTQ0VfU0xDRV9SRl9PTl9SRVEsCitNU0dfSURfVEREX0NTQ0VfU0xDRV9SU1NJX1NOSUZGRVJfU1RBUlRfUkVRLAorTVNHX0lEX1RERF9DU0NFX1NMQ0VfUlNTSV9TTklGRkVSX1NUT1BfUkVRLAorTVNHX0lEX1RERF9DU0NFX1NMQ0VfUlNTSV9TTklGRkVSX1NUT1BfSU5ELAorCisjaWZkZWYgX19HRU1JTklfXworTVNHX0lEX1RERF9DU0NFX1NMQ0VfUkVTVU1FX1JFUSwKKyNlbmRpZgorCisvL1VSUgorTVNHX0lEX1RERF9VUlJfU0xDRV9TRVRfQUNUSVZFX1JBVF9SRVEsCisvL1JSQ0UKK01TR19JRF9URERfUlJDRV9TTENFX0FCT1JUX1JFUSwKK01TR19JRF9URERfUlJDRV9TTENFX0dFVF9DT1VOVF9DX1JFUSwKK01TR19JRF9URERfUlJDRV9TTENFX1JFQ09ORklHX1JFUSwKKy8vU0lCRQorTVNHX0lEX1RERF9TSUJFX1NMQ0VfUkVDT05GSUdVUkVfQkNIX1JFUSwKK01TR19JRF9URERfU0lCRV9TTENFX1NJQjdfQ0hBTkdFX0lORCwKKy8vRkREX0NTRQorTVNHX0lEX1RERF9DU0VfU0xDRV9GUkVRX1NDQU5fQ09OVElOVUVfUkVRLAorTVNHX0lEX1RERF9DU0VfU0xDRV9GUkVRX1NDQU5fUkVRLAorTVNHX0lEX1RERF9DU0VfU0xDRV9GUkVRX1NDQU5fU1VTUEVORF9SRVEsCitNU0dfSURfVEREX0NTRV9TTENFX1NQRUNJRklDX0NFTExfU0VBUkNIX1JFUSwKK01TR19JRF9URERfQ1NFX1NMQ0VfU1BFQ0lGSUNfQ0VMTF9TRUFSQ0hfU1RPUF9SRVEsCisvL01FTUUKK01TR19JRF9URERfTUVNRV9TTENFX0FERElUSU9OQUxfVFZNX1JFUSwKK01TR19JRF9URERfTUVNRV9TTENFX01FQVNVUkVNRU5UX0NPTkZJR19DRUxMX1JFUSwKK01TR19JRF9URERfTUVNRV9TTENFX01FQVNVUkVNRU5UX0NPTkZJR19GTU9fUkVRLAorTVNHX0lEX1RERF9NRU1FX1NMQ0VfTUVBU1VSRU1FTlRfQ09ORklHX1RHUFNfUkVRLAorTVNHX0lEX1RERF9NRU1FX1NMQ0VfTUVBU1VSRU1FTlRfQ09ORklHX0dTTUdBUF9SRVEsCitNU0dfSURfVEREX01FTUVfU0xDRV9STENfQ09OVElOVUVfUkVRLAorTVNHX0lEX1RERF9NRU1FX1NMQ0VfUkxDX1NUT1BfUkVRLAorTVNHX0lEX1RERF9NRU1FX1NMQ0VfUVVBTElUWV9NRUFTVVJFTUVOVF9SRVEsCitNU0dfSURfVEREX01FTUVfU0xDRV9UVk1fTUVBU1VSRU1FTlRfUkVRLAorTVNHX0lEX1RERF9NRU1FX1NMQ0VfTUVBU1VSRU1FTlRfQ09ORklHX0RNT19SRVEsCisvL1NFUQorTVNHX0lEX1RERF9TRVFfU0VRVUVOQ0VfUkVRLAorTVNHX0lEX1RERF9TRVFfU0VRVUVOQ0VfQ09ORklSTUVEX0lORCwKK01TR19JRF9URERfU0VRX1NFUVVFTkNFX0lORElDQVRFRF9JTkQsCitNU0dfSURfVEREX1NFUV9TRVFVRU5DRV9FUlJPUl9JTkQsCisKKy8vVU1BQworTVNHX0lEX1RERF9DTUFDX0NPTkZJR19VRV9DTkYsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX1VFX0lORCwKK01TR19JRF9URERfQ01BQ19DT05GSUdfVFhfQ0NUUkNIX0NORiwKK01TR19JRF9URERfQ01BQ19DT05GSUdfVFhfQ0NUUkNIX0lORCwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfVFhfQ0NUUkNIX0NORiwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfVFhfQ0NUUkNIX0lORCwKK01TR19JRF9URERfQ01BQ19DT05GSUdfUlhfQ0NUUkNIX0NORiwKK01TR19JRF9URERfQ01BQ19DT05GSUdfUlhfQ0NUUkNIX0lORCwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfUlhfQ0NUUkNIX0NORiwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfUlhfQ0NUUkNIX0lORCwKK01TR19JRF9URERfQ01BQ19DT05GSUdfSFNEU0NIX0NDVFJDSF9DTkYsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX0hTRFNDSF9DQ1RSQ0hfSU5ELAorTVNHX0lEX1RERF9DTUFDX1JFTU9WRV9IU0RTQ0hfQ0NUUkNIX0NORiwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfSFNEU0NIX0NDVFJDSF9JTkQsCisjaWZkZWYgX19IU1VQQV9TVVBQT1JUX18KK01TR19JRF9URERfQ01BQ19DT05GSUdfRURDSF9DQ1RSQ0hfQ05GLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19FRENIX0NDVFJDSF9JTkQsCitNU0dfSURfVEREX0NNQUNfUkVNT1ZFX0VEQ0hfQ0NUUkNIX0NORiwKK01TR19JRF9URERfQ01BQ19SRU1PVkVfRURDSF9DQ1RSQ0hfSU5ELAorI2VuZGlmCitNU0dfSURfVEREX0NNQUNfQ09ORklHX1JBQ0hfQ05GLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19SQUNIX0lORCwKK01TR19JRF9URERfQ01BQ19DT05GSUdfQ1BDSF9DTkYsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX0NJUEhFUklOR19DTkYsCitNU0dfSURfVEREX0NNQUNfQ09VTlRfQ19DTkYsCitNU0dfSURfVEREX0NNQUNfREVMRVRFX0NJUEhFUklOR19DTkYsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX1RYX1JMQ19NT0RJRllfQ05GLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19UWF9STENfTU9ESUZZX0lORCwKK01TR19JRF9URERfQ01BQ19DT05GSUdfUlhfUkxDX01PRElGWV9DTkYsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX1JYX1JMQ19NT0RJRllfSU5ELAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19BQk9SVF9DTkYsCitNU0dfSURfVEREX0NNQUNfQ09ORklHX1RGQ19TVUJTRVRfQ05GLAorTVNHX0lEX1RERF9DTUFDX0NPTkZJR19URkNfU1VCU0VUX0lORCwKKworTVNHX0lEX1RERF9TTENFX0NPREVfRU5EID0gTVNHX0lEX1RERF9DTUFDX0NPTkZJR19URkNfU1VCU0VUX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVEREX1NMQ0VfQ09ERV9UQUlMICkKKy8vTVNHX0lEX1RERF9TTENFX0NPREVfRU5ELAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVEREX0RCTUVfQ09ERV9CRUdJTiApCisvL01TR19JRF9URERfREJNRV9DT0RFX0JFR0lOLAorTVNHX0lEX1RERF9EQk1FX0RVTVBfSU5EID0gTVNHX0lEX1RERF9EQk1FX0NPREVfQkVHSU4sCitNU0dfSURfVEREX0RCTUVfRFVNUF9FWFRfUVVFVUVfSU5ELAorTVNHX0lEX1RERF9EQk1FX0NPREVfRU5EID0gTVNHX0lEX1RERF9EQk1FX0RVTVBfRVhUX1FVRVVFX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVEREX0RCTUVfQ09ERV9UQUlMICkKKy8vTVNHX0lEX1RERF9EQk1FX0NPREVfRU5ELAorCisvL01TR19JRF9URERfVVNJTUVfQ09ERV9CRUdJTiwKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9URERfVVNJTUVfQ09ERV9CRUdJTiApCitNU0dfSURfVEREX1JSQ0VfVVNJTUVfU0FWRV9SRVEgPSBNU0dfSURfVEREX1VTSU1FX0NPREVfQkVHSU4sCitNU0dfSURfVEREX0NTQ0VfVVNJTUVfUkVBRF9OVlJBTV9SRVEsCitNU0dfSURfVEREX0NTQ0VfVVNJTUVfU0VUX01PREVfUkVRLAorTVNHX0lEX1RERF9DU0NFX1VTSU1FX0JBTkRfU0VUVElOR19VUERBVEVfUkVRLAorTVNHX0lEX1RERF9DU0NFX1VTSU1FX0VVVFJBTl9DQVBfVVBEQVRFX1JFUSwKK01TR19JRF9URERfVVNJTUVfRFVNUF9VRV9DQVBBQklMSVRZLAorTVNHX0lEX1RERF9VU0lNX1JFR0lTVEVSX0NORiwKK01TR19JRF9URERfVVNJTUVfQ09ERV9FTkQgPSBNU0dfSURfVEREX1VTSU1fUkVHSVNURVJfQ05GLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9URERfVVNJTUVfQ09ERV9UQUlMICkKKy8vTVNHX0lEX1RERF9VU0lNRV9DT0RFX0VORCwKKworLy9NU0dfSURfVEREX1VSUl9DT0RFX0JFR0lOLAorTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1RERF9VUlJfQ09ERV9CRUdJTiApCitNU0dfSURfVEREX1VSUl9OT05fVVNFRF9NRVNTQUdFX0JFR0lOID0gTVNHX0lEX1RERF9VUlJfQ09ERV9CRUdJTiwKKworI2lmZGVmIF9fR0VNSU5JX18KK01TR19JRF9URERfVVJSX1JSQ0VfU0VSVklDRV9SRVNfT0NDVVBZX0lORCwKK01TR19JRF9URERfVVJSX0NTQ0VfU1dJVENIX0dFTUlOSV9NT0RFX1JFUSwKKworLyogaWZkZWYgX19HRU1JTklfXyAqLworTVNHX0lEX1RERF9VUlJfUlJDRV9TV0lUQ0hfR0VNSU5JX01PREVfUkVRLAorTVNHX0lEX1RERF9VUlJfQ1NFX1NXSVRDSF9HRU1JTklfTU9ERV9SRVEsCitNU0dfSURfVEREX1VSUl9NRU1FX1NXSVRDSF9HRU1JTklfTU9ERV9SRVEsCitNU0dfSURfVEREX1VSUl9TSUJFX1NXSVRDSF9HRU1JTklfTU9ERV9SRVEsCitNU0dfSURfVEREX1VSUl9DU0NFX1ZJUlRVQUxfU1VTUEVORF9TRVJWSUNFX0NPTVBMRVRFX0lORCwKKyNpZiAwIC8qIG1vdmUgdG8gdWwxX3NhcC5oICovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKKy8qIGVuZGlmIF9fR0VNSU5JX18gKi8KKyNlbmRpZiAvKiBfX0dFTUlOSV9fICovCisKKy8qIERSTEMgKi8KK01TR19JRF9URERfVVJSX0RSTENfU1JCX1NEVV9TVE9QX0lORCwKKworLypMVVJSKi8KK01TR19JRF9URERfVVJSX0xVUlJfU1lOQ19VUF9SRVEsCitNU0dfSURfVEREX1VSUl9MVVJSX1NZTkNfVVBfQ05GLAorTVNHX0lEX1RERF9VUlJfTFVSUl9TWU5DX0RPV05fUkVRLAorTVNHX0lEX1RERF9VUlJfTFVSUl9EVU1QX1NZTkNfREFUQSwKKworLyogTENTQ0UgKi8KK01TR19JRF9URERfTENTQ0VfQ1NDRV9SRVNFTF9JTkQsCitNU0dfSURfVEREX0xDU0NFX0NTQ0VfQkFSX0NFTExfSU5ELAorTVNHX0lEX1RERF9MQ1NDRV9DU0NFX1RSSUdHRVJfNEdfQ1NHX1NFQVJDSF9JTkQsCitNU0dfSURfVEREX0xDU0NFX0NTQ0VfVFJJR0dFUl80R19DU0dfRVZBTFVBVElPTl9JTkQsCitNU0dfSURfVEREX0xDU0NFX0NTQ0VfVFJJR0dFUl8zR19DU0dfU0VBUkNIX0lORCwKKyNpZmRlZiBfX0NNQ0NfMjNHX1BJTkdQT05HX1JFU1RSQUlOX18KK01TR19JRF9URERfTENTQ0VfQ1NDRV9HQVNfVUFTX1ZJUlRVQUxfQ0VMTF9SRVNFTF9JTkQsCisjZW5kaWYgLyogX19DTUNDXzIzR19QSU5HUE9OR19SRVNUUkFJTl9fICovCisjaWZkZWYgVU5JVF9URVNUCitNU0dfSURfVEREX0xDU0NFX0NTQ0VfVVRfU0lNVUxBVEVfQ09OVEVYVF9UUkFOU0ZFUiwKKyNlbmRpZiAvKiBVTklUX1RFU1QgKi8KK01TR19JRF9URERfVVJSX0RVTVBfQ09OVEVYVCwKKworLypMUlJDRSovCitNU0dfSURfVEREX1JSQ0VfTFJSQ0VfUEFHSU5HX1RZUEUxX0lORCwKKworCitNU0dfSURfVEREX1VSUl9OT05fVVNFRF9NRVNTQUdFX0VORCwKK01TR19JRF9URERfVVJSX0NPREVfRU5EID0gTVNHX0lEX1RERF9VUlJfTk9OX1VTRURfTUVTU0FHRV9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1RERF9VUlJfQ09ERV9UQUlMICkKKy8vTVNHX0lEX1RERF9VUlJfQ09ERV9FTkQsCisKKyNlbmRpZiAvKiBfX1VNVFNfVEREMTI4X01PREVfXyAqLworCisKKyNpZmRlZiBfX1NPVVJDRV9JTlNJR0hUX1BBUlNFX18KK307CisjZW5kaWYKKworI2VuZGlmICAvL19VUlJfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3V0dF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdXR0X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE2YzAwZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3V0dF9tc2dpZC5oCkBAIC0wLDAgKzEsMTYwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgdXR0X21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIEdURVNUIFRlc3RpbmcgVGFzayBzaWduYWwgSURzCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDAzIDA0IDIwMTUgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDA5NzYwM10gW01UNjI5MV1bVU1PTFldIFVuaXZlcnNhbCBUZXN0aW5nIFRhc2sgRnJhbWV3b3JrCisgKiBVVFQgUkQgQ2hhbmdlIDEKKyAqCisgKiAxMSAxMSAyMDE0IHlpdGluZy5jaGVuZworICogW01PTFkwMDA4NDA0Ml0gW1VNT0xZXSBtZXJnZSBVTU9MWV9ERVYgdG8gVU1PTFkgdHJ1bmsKKyAqIC4KKyAqCisgKiAxMCAyNyAyMDE0IHNoLnlhbmcKKyAqIFtNT0xZMDAwODIyMTFdIFtNVDYyOTFfREVWXSBFTUJNUyBjaGVjay1pbgorICogLgorICoKKyAqIDA4IDI1IDIwMTQgbWluZ3RzdW5nLnN1bgorICogW01PTFkwMDA3NTk4N10gW1RLNjI5MV1bREVWXSBMMkNFIEMtTW9kZWwgYW5kIExUVC9FUERDUCBVVAorICogYWRkIExUVF9FUERDUF9TV19QT0xMSU5HX0lORAorICoKKyAqIDA4IDIyIDIwMTQgankub3UKKyAqIFtNT0xZMDAwNzYxMDRdIFtUSzYyOTFdIEVNQUMgJiBFUkxDIFVUIGZyYW1ld29yayBhbmQgRVJMQyBVVCBjYXNlcworICogLgorICoKKyAqIDA3IDI1IDIwMTQgY2hyaXN0b3BoZXIucGltCisgKiBbTU9MWTAwMDcyOTAyXSBbVEs2MjkxXVtERVZdIExUVCB1bml0IHRlc3QgZnJhbWV3b3JrCisgKiBJbnRlZ3JhdGUgTFRUIGZpbGVzIG9uIDYyOTEgREVWIGJyYW5jaAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9VVFRfTVNHSURfSAorI2RlZmluZSBfVVRUX01TR0lEX0gKKworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVVRUX0NPREVfQkVHSU4gKQkKKwkKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0gTVNHX0lEX0xUVF9DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwkvLyBEZXN0aW5hdGlvbjogTFRUIChmcm9tIE1PRF9OSUxMKSAgICAgICAgIC8vCisJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisJLy8gTklMIC0tPiBVVFQKKwlNU0dfSURfVVRUX0RVTU1ZX0lORCA9IE1TR19JRF9VVFRfQ09ERV9CRUdJTiwKKworCS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwkvLyBDb25maWd1cmluZyBtb2R1bGUgZGF0YSAgICAgICAgICAgICAgICAgIC8vCisJLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAgTVNHX0lEX1VUVF9NT0RVTEVfQ09ORklHX1JFUSwKKyAgICAgIE1TR19JRF9VVFRfTU9EVUxFX0NPTkZJR19DTkYsCisgICAgICAKKyNpZiAwICAgICAgCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisvKiB1bmRlciBjb25zdHJ1Y3Rpb24gISovCisjZW5kaWYKKworICAgICAgTVNHX0lEX1VUVF9HVEVTVF9DVFJMX1JFUSwKKyAgICAgIE1TR19JRF9VVFRfR1RFU1RfQ1RSTF9DTkYsCisKKworCisJLyotLS0tLS0tLS0tLS0tLS0tLS0tIExUVF9NU0dfQ09ERV9FTkQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVVRUX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiBfVVRUX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3ZhbF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdmFsX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVhNDE0OQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3ZhbF9tc2dpZC5oCkBAIC0wLDAgKzEsMTIyMiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDE2CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIEZJTEUgTkFNRSAgIDp2YWxfbXNnaWQuaAorKgorKiBERVNDUklQVElPTiA6CisqCisqCisqCisqIEhJU1RPUlkgICAgIDoKKyogICAgIFNlZSBMb2cgYXQgZW5kIG9mIGZpbGUKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5jbHVkZSBGaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjaWZuZGVmIF9WQUxfTVNHX0lEX0gKKyNkZWZpbmUgX1ZBTF9NU0dfSURfSAorCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0NWQUxfQ09ERV9CRUdJTiApCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgKiBBSVdIYW5kbGVyCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfRkxVU0hfRklOQUxfTVNHID0gTVNHX0lEX0NWQUxfQ09ERV9CRUdJTiArIDAsIC8qIGJhc2UgMHg4MjQ4ICAqLworICAgIE1TR19JRF9WQUxfTldLX1JQVF9EQVRBX1NWQ19TVEFUVVNfV09SRF9NU0csCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgKiBITFdIYW5kbGVyCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfVENQQl9EQVRBX1JFQ1ZfTVNHLAorICAgIE1TR19JRF9WQUxfVENQQl9EQVRBX1NFTkRfUlNQX01TRywKKworICAgIE1TR19JRF9WQUxfVVBCX1JFQ1ZfREFUQV9NU0csCisgICAgTVNHX0lEX1ZBTF9VUEJfU0VOVF9EQVRBX1JTUF9NU0csCisKKyAgICBNU0dfSURfVkFMX0hMUF9QUFBfQ09OTl9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfSExQX1NPQ0tFVF9DUkVBVEVfU1RBVFVTX01TRywKKyAgICBNU0dfSURfVkFMX0hMUF9TT0NLRVRfQklORF9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfSExQX1NPQ0tFVF9DT05OX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9ITFBfU09DS0VUX0NMT1NFX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9ITFBfU09DS0VUX0xJU1RFTl9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfSExQX1NPQ0tFVF9PUFRfU1RBVFVTX01TRywKKyAgICBNU0dfSURfVkFMX0hMUF9TT0NLRVRfU0hVVF9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfSExQX1NPQ0tFVF9MSU5HRVJfU1RBVFVTX01TRywKKworICAgIE1TR19JRF9WQUxfSVBfREFUQV9TRU5EX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9JUF9EQVRBX1JFQ1ZfSU5EX01TRywKKyAgICBNU0dfSURfVkFMX05FVF9QSU5HX0VYUElSWV9NU0csCisgICAgTVNHX0lEX1ZBTF9ITFBfUENNVF9QQVJBX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9ITFBfTVRVX1VSQ19NU0csCisKKyAgICBNU0dfSURfVkFMX0hMUF9JUF9ETlNfQUREUl9HRVRfTVNHLAorICAgIE1TR19JRF9WQUxfUlBUX0RBVEFfUFJFQVJSQU5HRV9NU0csCisKKyAgICAvKkhMUCAtPiBWQUwgUFNETSAqLworCU1TR19JRF9WQUxfSExQX1BQUF9DT05ORUNUX0NORiwKKwlNU0dfSURfVkFMX0hMUF9QUFBfRElTQ09OTkVDVF9DTkYsCisJTVNHX0lEX1ZBTF9ITFBfUFBQX0RJU0NPTk5FQ1RfSU5ELAorCU1TR19JRF9WQUxfSExQX1BQUF9NT0RJRllfSU5ELAorCisJTVNHX0lEX1ZBTF9ITFBfRUhSUERfQkVBUkVSX0NPTk5FQ1RfQ05GLAorCU1TR19JRF9WQUxfSExQX0VIUlBEX0JFQVJFUl9ESVNDT05ORUNUX0NORiwKKwlNU0dfSURfVkFMX0hMUF9FSFJQRF9CRUFSRVJfRElTQ09OTkVDVF9JTkQsCisJTVNHX0lEX1ZBTF9ITFBfRUhSUERfQkVBUkVSX01PRElGWV9JTkQsCisKKwlNU0dfSURfVkFMX0hMUF9ORVRXT1JLX1JFTF9SU1AsCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgKiBPVEFTUEhhbmRsZXIKKyAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX1ZBTF9JT1RBXzY4M19SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfSU9UQV9QUkxfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX09UQVNQX0NPTk5fSU5EX01TRywKKyAgICBNU0dfSURfVkFMX09UQVNQX0RJU0NPTk5fSU5EX01TRywKKyAgICBNU0dfSURfVkFMX09UQVNQX0lORF9NU0csICAgICAgLyogPz8/IG5vYm9keSBpcyBzZW5kaW5nIHRoaXMgbWVzc2FnZSAqLworICAgIE1TR19JRF9WQUxfT1RBU1BfUFJFTUFUVVJFX1RFUk1fSU5EX01TRywKKyAgICBNU0dfSURfVkFMX09UQVNQX1JYX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9PVEFTUF9TVEFSVF9JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfT1RBU1BfU1RPUF9JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfT1RBU1BfU1lTVEVNX0VSUk9SX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9PVEFTUF9UWF9SU1BfTVNHLAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogMXhDU0ZCIEhhbmRsZXIKKyAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX1ZBTF9DU0ZCX0dDU05BX1VMX01TRywKKyAgICBNU0dfSURfVkFMX0NTRkJfUkVHSVNURVJfRkFJTF9NU0csCisgICAgTVNHX0lEX1ZBTF9DU0ZCX01FQVNVUkVfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0NTRkJfSE9fUFJFUF9YRkVSX01TRywKKyAgICBNU0dfSURfVkFMX0NTRkJfRVZFTlRfTVNHLAorICAgIE1TR19JRF9WQUxfQ1NGQl9UU1RfU0VUX0JVRkZFUl9NU0csCisgICAgTVNHX0lEX1ZBTF9DU0ZCX1RTVF9QQVJNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9DU0ZCX1RTVF9TSUI4X01TRywKKyAgICBNU0dfSURfVkFMX0NTRkJfVFNUX0dDU05BX0RMX01TRywKKyAgICBNU0dfSURfVkFMX0NTRkJfVFNUX01FQVNfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0NTRkJfVFNUX0hPX0VVVFJBX1BSRVBfTVNHLAorICAgIE1TR19JRF9WQUxfQ1NGQl9UU1RfTU9CX0ZST01fRVVUUkFfTVNHLAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogTG9jSGFuZGxlcgorICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfVkFMX0xPQ19SRVNQX01TRywKKyAgICBNU0dfSURfVkFMX0xPQ19FUlJPUl9NU0csCisgICAgTVNHX0lEX1ZBTF9MT0NfUElMT1RfUEhBU0VfTUVBU19NU0csCisgICAgTVNHX0lEX1ZBTF9MT0NfUFNFVURPX1JBTkdFX01TRywKKyAgICBNU0dfSURfVkFMX0xPQ19HRVRfU0VDVE9SX0lORk9fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0xPQ19ET05FX01TRywKKyAgICBNU0dfSURfVkFMX0xPQ19UQ1BfQ09OTl9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfTE9DX1RDUF9DTE9TRV9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX05FVF9FVlRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1RDUEJfU0VORF9EQVRBX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19BTE1fRVBIX1VQREFURV9NU0csCisgICAgTVNHX0lEX1ZBTF9TRUNfQUVTQ1JZUFRfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1JFU0VUX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9MT0NfUFBQX1JFQ09OTl9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfTE9DX0FDVElWRV9JTkRfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9HUFNfV1JJVEVfT0ZGU0VUX0lORk9fRVRTLAorICAgIE1TR19JRF9WQUxfR1BTX1JFQURfT0ZGU0VUX0lORk9fRVRTLAorCisgICAgTVNHX0lEX1ZBTF9HUFNfRklYX01PREVfR0VUX1JTUF9NU0csCisKKyAgICBNU0dfSURfVkFMX0dQU19GQUNUT1JZX1JGX0NOT19NU0csCisKKyAgICBNU0dfSURfVkFMX0dQU19DVF9NUENfSVBfQ0ZHX01TRywKKworICAgIE1TR19JRF9WQUxfTE9DX1BQUF9ERUxBWV9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX0NUX01QQ19VU0VSTk1FX1BTV1JEX0NGR19NU0csCisKKyAgICBNU0dfSURfVkFMX0dQU19SRUFEWV9NU0csCisgICAgTVNHX0lEX1ZBTF9MT0NfTVBDX0NPTk5fUkVRX01TRywKKworICAgIE1TR19JRF9WQUxfTVBDX1RJTUVfQ0FMTEJBQ0tfTVNHLAorICAgIE1TR19JRF9WQUxfTVBDX0dQU19DQUxMQkFDS19NU0csCisgICAgTVNHX0lEX1ZBTF9NUENfR1BTX05FVF9FVlRfTVNHLAorICAgIE1TR19JRF9WQUxfTVBDX0NMT1NFX0NPTk5fTVNHLAorICAgIE1TR19JRF9WQUxfTE9DX1NUQVRFX0dFVF9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfQUZMVF9EQVRBX01TRywKKworCisgICAgTVNHX0lEX1ZBTF9UTFNfQ09OTl9SU1AsCisgICAgTVNHX0lEX1ZBTF9UTFNfU0VORF9SU1AsCisgICAgTVNHX0lEX1ZBTF9UTFNfUlhfSU5ELAorICAgIE1TR19JRF9WQUxfVExTX0NMT1NFX1JTUCwKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgKiBQU1dBbXBzSGFuZGxlcgorICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfVkFMX0RUTUZfVE9ORV9HRU5fTVNHLAorICAgIE1TR19JRF9WQUxfQU1QU19FWFRfUFJPVE9fTVNHLAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogRGJtSGFuZGxlcgorICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfVkFMX0RCTV9HRVRfRUhSUERfTU9ERV9SU1BfTVNHLAorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAqIFBTV0hhbmRsZXIKKyAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX1ZBTF9BQ0NFU1NfTUFYX0NBUFNVTEVfU0laRV9NU0csCisgICAgTVNHX0lEX1ZBTF9CU19DT19PUkRfTVNHLAorICAgIE1TR19JRF9WQUxfTkFNX01TRywKKyAgICBNU0dfSURfVkFMX05BTV9SUFRfQUNUSVZFX05BTV9NU0csCisgICAgTVNHX0lEX1ZBTF9BQ1RJVkVfTkFNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9DSEFOR0VfQUtFWV9NU0csCisgICAgTVNHX0lEX1ZBTF9HRVRfQUtFWV9DSEVDS1NVTV9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfQUtFWV9DSEFOR0VfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SRVRSSUVWRV9DSEFOTkVMX01TRywKKyAgICBNU0dfSURfVkFMX1NFVF9NSVBfUEFTU1dPUkRfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0FEQ19NRUFTX1JFU1BPTlNFX01TRywKKworICAgIE1TR19JRF9WQUxfTldLX1JQVF9BTEVSVF9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX0FMRVJUX01PUkVfSU5GT19SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9CVVJTVF9EVE1GX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SUFRfQ1BfRVZFTlRfTVNHLC8qIDExMSAqLworICAgIE1TR19JRF9WQUxfTldLX1JQVF9DUF9SRVNQT05TRV9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX0NQX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX0RBVEFfQlVSU1RfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9GRUFUX05PVElGX01PUkVfSU5GT19SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9GRUFUVVJFX05PVElGSUNBVElPTl9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX0ZMQVNIX01PUkVfSU5GT19SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9GTEFTSF9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX0hBTkRPRkZfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9MT0NLX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SUFRfTUFJTlRFTkFOQ0VfUkVRVUlSRURfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9PUkRFUl9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX1JFR0lTVFJBVElPTl9BQ0NFUFRfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9SRUdJU1RSQVRJT05fUkVKRUNUX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SUFRfU0VSVklDRV9DT05GSUdfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9TRVJWSUNFX1JFQURZX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SUFRfU0VSVklDRV9ORUdPVElBVElPTl9NT0RFX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SUFRfU1RBUlRfQ09OVElOVU9VU19EVE1GX01TRywKKyAgICBNU0dfSURfVkFMX05XS19SUFRfU1RPUF9DT05USU5VT1VTX0RUTUZfTVNHLAorICAgIE1TR19JRF9WQUxfTldLX1JQVF9TWVNURU1fVElNRV9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX1VOTE9DS19NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX1BLVF9TVEFURV9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX1BLVF9ET1JNX1RNUl9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX1BSRVZfUFJFVklOVVNFX01TRywKKworICAgIE1TR19JRF9WQUxfUFJMX0lORk9fTVNHLAorICAgIE1TR19JRF9WQUxfUFNXX0U5MTFfTU9ERV9NU0csCisgICAgTVNHX0lEX1ZBTF9ST0FNX0lORElDQVRJT05fTVNHLAorICAgIE1TR19JRF9WQUxfUlBUX0NRQV9NU0csCisgICAgTVNHX0lEX1ZBTF9PUklHX0ZJTklTSEVEX01TRywKKyAgICBNU0dfSURfVkFMX1NFVF9ERUZBVUxUX1NPX01TRywKKworICAgIE1TR19JRF9WQUxfU0VUX1BTV19QQVJNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9HRVRfUFNXX1BBUk1fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1BMTF9DSEFOTkVMX0NPTkZJR19SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfTE9DS19GRUFUVVJFX0NIRUNLX0VSUl9NU0csCisgICAgTVNHX0lEX1ZBTF9OV0tfUlBUX01DQ19NTkNfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9QU1dfQ1BfUFdSX01TR19DVFJMLCAvKiAxNDYgKi8KKyAgICBNU0dfSURfVkFMX0NTU19NQVJLX0NVUlJFTlRfMVhfU1lTVEVNX0FTX05FR0FUSVZFX01TRywKKworICAgIE1TR19JRF9WQUxfQVRfU0VUX1BTV19QQVJNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9HRVRfUFNXX1BBUk1fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0FUX0hMUF9QQVJNX1NFVF9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfQVRfU0VUX01PQklMRV9JRF9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfUkxQX1JQVF9TVEFUX01TRywKKyAgICBNU0dfSURfVkFMX0FMTF9EQVRBX0lOSVRfTVNHLAorICAgIE1TR19JRF9WQUxfU0VUX1VJX1BBUk1fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0dFVF9BTEVSVF9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfUFNXX0NQX1BXUl9DWUNMRSwKKyAgICBNU0dfSURfVkFMX0NMQ19DRUxMX0lORk9fTVNHLAorICAgIE1TR19JRF9WQUxfQVRfU0VUX0NTU19QQVJNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9HRVRfQ1NTX1BBUk1fUlNQX01TRywKKyAgICAvL01TR19JRF9WQUxfQ1NTX0NQX1BXUl9DVFJMX01TRywvKiAxNjAgKi8KKyAgICBNU0dfSURfVkFMX0NTU19QT1dFUl9ET1dOX0RPTkVfTVNHLAorICAgIE1TR19JRF9WQUxfQ1NTX1BSTF9SRUFEX0ZJTklTSEVEX01TRywKKyAgICBNU0dfSURfVkFMX05XS19FWElTVEVOQ0VfSU5GT19NU0csCisgICAgTVNHX0lEX1ZBTF9DU1NfUFJMX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9WRVJJRllfU1BDX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9HRVRfRE9fUEFSTV9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfUFNXX1JQVF9TRVJWSUNFX09QVElPTl9NU0csCisKKyNpZmRlZiBNVEtfREVWX0MyS19JUkFUCisgICAgTVNHX0lEX1ZBTF9DU1NfQ1NfUkVHX1NUQVRVU19OT1RJRllfSU5EX01TRywKKyNlbmRpZgorCisjaWZkZWYgTVRLX0NCUF9FTkNSWVBUX1ZPSUNFCisgICAgTVNHX0lEX1ZBTF9QU1dfRU5DUllQVF9WT0lDRV9SU1BfTVNHLAorI2VuZGlmCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgKiBTTVNIYW5kbGVyCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfU01TX0JDQVNUX0VSUk9SX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19CQ0FTVF9JTkRfUEFSTVNfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX0NBVVNFX0NPREVfU1RBVFVTX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19ERUxJVkVSX0lORF9EQVRBX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19ERUxJVkVSX0lORF9QQVJNU19NU0csCisgICAgTVNHX0lEX1ZBTF9TTVNfRVJST1JfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1JYX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9TTVNfVFhfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19DQVVTRV9DT0RFX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19BQ0tfTDJfQUNLRURfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9TTVNfVFNUX0NPTk5FQ1RfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9CQ0FTVF9DT05ORUNUX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19UU1RfQkNBU1RfRElTQ09OTkVDVF9NU0csCisgICAgTVNHX0lEX1ZBTF9TTVNfVFNUX0JDQVNUX1BSRUZfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9DQU5DRUxfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9DQVVTRV9DT0RFX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9TTVNfVFNUX0RJU0NPTk5FQ1RfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9QUkVGX1NSVl9PUFRfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9TVUJNSVRfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9URVJNX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9TTVNfVFNUX1VTRVJfQUNLX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19UU1RfUkVUWF9BTU9VTlRfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1RTVF9DQVVTRV9DT0RFX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19HRVRfQ09VTlRfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX0dFVF9GSVJTVF9NU0csCisgICAgTVNHX0lEX1ZBTF9TTVNfR0VUX05FWFRfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1dSSVRFX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19ERUxfQUxMX01TRywKKyAgICBNU0dfSURfVkFMX1NNU19ERUxfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1NFTkRfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1NFTkRfSU5ERVhfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1NFVF9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1VOS05PV05fRVJST1JfTVNHLAorICAgIE1TR19JRF9WQUxfU01TX1VOS05PV05fSU5EX1BBUk1TX01TRywKKyNpZmRlZiBfX1RDMTBfSVBDX0NETUFfU1VQUE9SVF9fCisJTVNHX0lEX1ZBTF9TTVNfUE9XRVJfU1RBVFVTX01TRywKKyNlbmRpZgorICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAqIEhMUCBQb3dlciBkb3duIEhhbmRsZXIKKyAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfSExQX1BPV0VSX0RPV05fRE9ORV9NU0csIC8qIDIwMSAqLworCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogRVZETyBzdGFjayBIYW5kbGVyCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfSFJQRF9TRVNTSU9OX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9IUlBEX05UV0tfQUNRRF9NU0csCisgICAgTVNHX0lEX1ZBTF9IUlBEX0NPTk5fU1RBVFVTX01TRywKKyAgICBNU0dfSURfVkFMX0hSUERfU1RBVF9QRUVLX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9DTENfUE9XRVJfRVZfTVNHLC8qIDIwNiAqLworICAgIE1TR19JRF9WQUxfQ0xDX0FUX1NUQVRVU19NU0csCisgICAgTVNHX0lEX1ZBTF9DTENfTkJSX0ZSRVFTX1JQVF9NU0csCisgICAgTVNHX0lEX1ZBTF9DTENfRE9fUEFSQV9DSEFOR0VfSU5ELAorICAgIE1TR19JRF9WQUxfSFJQRF9DSEFOX0NIQU5HRV9JTkQsCisKKyAgICBNU0dfSURfVkFMX0hSUERfQTEyX1NUQVRVU19NU0csCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogSFdEIEhhbmRsZXIKKyAgICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAgTVNHX0lEX1ZBTF9IV0RfQkFUVEVSWV9SRUFEX0RBVEFfTVNHLAorICAgIE1TR19JRF9WQUxfSFdEX1RFTVBFUkFUVVJFX1JFQURfREFUQV9NU0csCisgICAgTVNHX0lEX1ZBTF9IV0RfUlhfVFhfUE9XRVJfSU5GT19EQVRBX01TRywKKyAgICBNU0dfSURfVkFMX1BTV19QSUxPVF9QV1JfUlBUX01TRywKKyAgICBNU0dfSURfVkFMX0RPX1JYX1RYX1BPV0VSX0lORk9fREFUQV9NU0csCisgICAgTVNHX0lEX1ZBTF9DTDFUU1RfUlhfVFhfUE9XRVJfREVURUNUT1JfTVNHLAorICAgIE1TR19JRF9WQUxfQ0wxVFNUX0dFVF9BTlRfSU5GT19DRkdfTVNHLAorICAgIE1TR19JRF9WQUxfQ0wxVFNUX0dFVF9BTlRfSU5GT19JTkRfTVNHLAorI2lmZGVmIF9fUkZfU0NBTl9GT1JfREVTRU5TRV9URVNUX18KKyAgICBNU0dfSURfVkFMX0NMMVRTVF9SWF9TQ0FOX1JTUF9NU0csCisjZW5kaWYKKworICAgIE1TR19JRF9STUNfVkFMX0RPX1JYX1RYX1RJTUVfSU5GT19EQVRBX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9STUNfRE9fUlhfVFhfVElNRV9JTkZPX0RBVEFfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0wxRF9SWF9UWF9USU1FX0lORk9fREFUQV9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfTDFEX1JYX1RYX1RJTUVfSU5GT19EQVRBX1JTUF9NU0csCisKKyAgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgKiBVU0VSSU5GTyBIYW5kbGVyCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfRU1FUkdFTkNZX01PREVfVEVTVF9NU0csCisgICAgTVNHX0lEX1ZBTF9HRVRfUlNTSV9BQ0tfTVNHLAorICAgIE1TR19JRF9WQUxfTDFEX1JTU0lfUlBUX01TRywKKyAgICBNU0dfSURfVkFMX0hSUERfUlNTSV9SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfTDFEX1RBU19SUFRfTVNHLAorCisgICAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICogRGF0YWNhcmQgU3cgU3VwcG9ydCBBUEkgSGFuZGxlcgorICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfVkFMX0RBVEFDQVJEX0dFVF9ORVRXT1JLX0lORk9fTVNHLAorICAgIE1TR19JRF9WQUxfREFUQUNBUkRfT1RBX0FDVElWQVRFX01TRywKKyAgICBNU0dfSURfVkFMX0RBVEFDQVJEX1NFVF9ERVZfUEFSQU1fRVRTLAorICAgIE1TR19JRF9WQUxfREFUQUNBUkRfR0VUX0RFVl9QQVJBTV9FVFMsCisgICAgTVNHX0lEX1ZBTF9EQVRBQ0FSRF9HRVRfQ09OTl9JTkZPX01TRywKKyAgICBNU0dfSURfVkFMX0RBVEFDQVJEX0dFVF9OVFdLX0VSUl9TVFJfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9IU1BEX0hMUF9QQVJNX1NFVF9FVFMsICAgICAgICAvKiBJbmRpdmlkdWFsIEhMIEhTUEQgcGFyYW0gLSBtZW51IGNob2ljZSAqLworICAgIE1TR19JRF9WQUxfSFNQRF9ITFBfUEFSTV9HRVRfRVRTLAorICAgIE1TR19JRF9WQUxfU0VUX1BTV19QQVJNX01TRywKKyAgICBNU0dfSURfVkFMX0dFVF9QU1dfUEFSTV9NU0csCisgICAgTVNHX0lEX1ZBTF9VSV9QQVJNX1NFVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSV9QQVJNX0dFVF9NU0csCisgICAgTVNHX0lEX1ZBTF9QU1dfTUROX1VQREFURURfTVNHLAorICAgIE1TR19JRF9WQUxfUFNXX0VTTl9VUERBVEVEX01TRywKKyAgICBNU0dfSURfVkFMX1NFVF9VSV9MT0NLX0NPREVfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1NMRUVQT1ZFUl9JTkRJQ0FUT1JfTVNHLAorICAgIE1TR19JRF9WQUxfVUlDQ19QQVJNX1NFVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSUNDX1BBUk1fR0VUX01TRywKKyAgICBNU0dfSURfVkFMX1NFVF9VSUNDX1BBUk1fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0dFVF9VSUNDX1BBUk1fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0dFVF9UUkFOU01JVF9JTkZPX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9TRVRfU1lTX1BBUk1fTVNHLAorICAgIE1TR19JRF9WQUxfR0VUX1NZU19QQVJNX01TRywKKyAgICBNU0dfSURfVkFMX0FVVE9fUE9XRVJfVVBfU0VUX01TRywKKyAgICBNU0dfSURfVkFMX0FVVE9fUE9XRVJfVVBfR0VUX01TRywKKyAgICBNU0dfSURfVkFMX1NFVF9DU1NfUEFSTV9NU0csCisgICAgTVNHX0lEX1ZBTF9HRVRfQ1NTX1BBUk1fTVNHLAorICAgIE1TR19JRF9WQUxfU0VUX0NTU19QQVJNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9HRVRfQ1NTX1BBUk1fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0hMUF9IU1BEX1NFR19JTklUX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9ITFBfSFNQRF9TRUdfUFJPRklMRV9JTklUX1JTUF9NU0csCisKKyAgICAvKiBPdGhlciBFVkRPIFBhcmFtcyAqLworICAgIE1TR19JRF9WQUxfRE9fUEFSTV9TRVRfRVRTLAorICAgIE1TR19JRF9WQUxfRE9fUEFSTV9HRVRfRVRTLAorICAgIC8qQ1VTVE9NSVpFRCBmbGFncyovCisgICAgTVNHX0lEX1ZBTF9TRVRfQVVUT1JFR19JTkZPX01TRywKKyAgICBNU0dfSURfVkFMX0NQX0FVVE9SRUdfU0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0NQX0FVVE9SRUdfR0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0NQX0RCX1dSSVRFX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9DUF9EQl9SRUFEX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9DUF9TTVNfQVVUT1JFR19NU0csCisgICAgLyogVkFMX0NQX1NNU19OV0lOSVRfUkVHX01TRyAgKi8KKyAgICBNU0dfSURfVkFMX0NQX1NNU1JFR19USU1FUl9FWFBJUkVfTVNHLAorICAgIE1TR19JRF9WQUxfQ1BfU01TUkVHX1RSSUdHRVJfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19PUEVOX0RFVklDRV9IV19JTklUX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19DTE9TRV9ERVZJQ0VfRVRTLAorICAgIE1TR19JRF9WQUxfR1BTX1BPU0lUSU9OX0dFVF9FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfU1RBUlRfRklYX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19RVUVSWV9GSVhfRVRTLAorICAgIE1TR19JRF9WQUxfR1BTX1NUT1BfRklYX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19DT05GSUdfRklYX01PREVfU0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19DT05GSUdfRklYX1JBVEVfU0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19DT05GSUdfUU9TX1NFVF9FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfV1JJVEVfU0VSVkVSX0NPTkZJR19FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfRU5BQkxFX1NFQ1VSSVRZX0VUUywKKworICAgIE1TR19JRF9WQUxfR1BTX1dSSVRFX1NFQ1VSSVRZX0NPTkZJR19FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfUkVBRF9TRUNVUklUWV9DT05GSUdfRVRTLAorICAgIE1TR19JRF9WQUxfR1BTX1JFQURfRU5DUllQVF9DT05GSUdfRVRTLAorICAgIE1TR19JRF9WQUxfR1BTX0xCU19QUklWQUNZX1NFVFRJTkdfR0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19MQlNfUFJJVkFDWV9TRVRUSU5HX1NFVF9FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfQkFTRVNTRF9HRVRfRVRTLAorICAgIE1TR19JRF9WQUxfR1BTX1JBTkRfUEVSSU9EX1NFVF9FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfUkVTRVRfQVNTSVNUX0VUUywKKworICAgIE1TR19JRF9WQUxfTE9DX1RDUF9DT05OX0VUUywKKyAgICBNU0dfSURfVkFMX0xPQ19UQ1BfQ0xPU0VfRVRTLAorCisgICAgTVNHX0lEX1ZBTF9OTUVBX0NGR19TRVRfRVRTLAorICAgIE1TR19JRF9WQUxfTk1FQV9DRkdfR0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19SRVNUQVJUX0ZJWF9FVFMsCisKKyAgICBNU0dfSURfVkFMX0dQU19TRUNfU0VUX0VUUywKKyAgICBNU0dfSURfVkFMX0dQU19DT05GSUdfVEVDSF9FVFMsCisKKyAgICBNU0dfSURfVkFMX0dQU19EQk1fUkVBRF9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX0JBU0VTU0RfU0VUX01TRywKKworICAgIE1TR19JRF9WQUxfR1BTX0dFVF9GSVhfTU9ERV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU1RBUlRfTU9ERV9TRVRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFU1NJT05fT1BFTl9NU0csCisKKyAgICBNU0dfSURfVkFMX0dQU19SRUFEX1NFQ1VSSVRZX0NPTkZJR19XX1NUQVRVU19FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfUkVBRF9FTkNSWVBUX0NPTkZJR19XX1NUQVRVU19FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfTk1FQV9PVVRQVVRfU0VUVElOR19FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfQ09ORklHX0ZJWF9SQVRFX0dFVF9FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfU0VTU0lPTl9DQU5DRUxfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1BST0NFU1NfUlhfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JFQURfU0VSVkVSX0NPTkZJR19FVFMsCisgICAgTVNHX0lEX1ZBTF9HUFNfUFBNX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU1VQTF9DRUxMX0lORk9fR0VUX01TRywKKworICAgIC8qIFZBTEFQSV9HUFMgcmVzcG9uc2UgbWVzc2FnZXMgKi8KKyAgICBNU0dfSURfVkFMX0dQU19PUEVOX0RFVklDRV9IV19JTklUX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NUQVJUX01PREVfU0VUX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFQ1VSSVRZX1NFVF9DT05GX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19CQVNFX1NTRF9TRVRfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfV1JJVEVfU0VSVkVSX0NPTkZJR19DT05GX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19HRVRfRklYX01PREVfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU0VTU0lPTl9PUEVOX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFU1NJT05fRU5BQkxFX1NFQ1VSSVRZX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFU1NJT05fUkFORE9NX1BFUklPRF9TRVRfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU0VTU0lPTl9DT05GSUdVUkVfRklYX01PREVfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU0VTU0lPTl9DT05GSUdVUkVfRklYX1JBVEVfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU0VTU0lPTl9DT05GSUdVUkVfUU9TX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFU1NJT05fU1RBUlRfRklYX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFU1NJT05fR0VUX1BPU0lUSU9OX0NPTkZfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1NFU1NJT05fU1RPUF9GSVhfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU0VTU0lPTl9SRUFEX1NFQ1VSSVRZX0NPTkZJR19DT05GX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19TRVNTSU9OX1dSSVRFX1NFQ1VSSVRZX0NPTkZJR19DT05GX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19TRVNTSU9OX1JFQURfRU5DUllQVF9DT05GSUdfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VU0VSTU9ERV9NU0csCisgICAgTVNHX0lEX1ZBTF9URVNUTU9ERV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUE1PREVfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JFU0VUX0FTU0lTVERBVEFfQ09ORl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfU1VQTF9DRUxMX0lORk9fTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1RFU1RfTU9ERV9TRVRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JGREVBTFlfU0VUX01TRywKKyAgICBNU0dfSURfVkFMX0NPTkZJR19TQlBfSU5GT19NU0csCisKKyAgICAvKiBQR1BTIE1lc3NhZ2VzICovCisgICAgTVNHX0lEX1ZBTF9QR1BTX0RCTV9SRUFEX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9QR1BTX0RCTV9XUklURV9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfUEdQU19DRkdfU0VUX0VUUywKKyAgICBNU0dfSURfVkFMX1BHUFNfQ0ZHX0dFVF9FVFMsCisgICAgTVNHX0lEX1ZBTF9QR1BTX1NUQVJUX0VUUywKKyAgICBNU0dfSURfVkFMX1BHUFNfUERBX1RJTUVSX01TRywKKyAgICBNU0dfSURfVkFMX1BHUFNfUERBX05FVFdPUktfU1RBUlQsCisgICAgTVNHX0lEX1ZBTF9QR1BTX1NPQ0tFVF9DT05ORUNURUQsCisgICAgTVNHX0lEX1ZBTF9QR1BTX1NPQ0tFVF9SRUFELAorICAgIE1TR19JRF9WQUxfUEdQU19QREFfUFJPQ0VTUywKKyAgICBNU0dfSURfVkFMX1BHUFNfU09DS0VUX0NMT1NFRCwKKyAgICBNU0dfSURfVkFMX1BHUFNfTkVUX1VOUkVHSVNURVIsCisKKyAgICAvKiBQR1BTIG9uIEFQIE1lc3NhZ2VzICovCisgICAgTVNHX0lEX1ZBTF9QR1BTX1NZU19USU1FX1JFUV9UT19BUF9NU0csCisgICAgTVNHX0lEX1ZBTF9QR1BTX0dFVF9FRV9SRVFfVE9fQVBfTVNHLAorICAgIE1TR19JRF9WQUxfUEdQU19TRVRfRUVfUkVRX1RPX0FQX01TRywKKworICAgIE1TR19JRF9WQUxfUEdQU19HRVRfQ0VMTElEX0lORk9SX01TRywKKyAgICBNU0dfSURfVkFMX1BHUFNfR0VUX0NFTExJRF9JTkZPUl9VUERBVEVfTVNHLAorCisgICAgLyogR1BTIG9uIEFQIE1lc3NhZ2VzICovCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfREVWSUNFX1BPV0VSX09OX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfUFJFQ0lTRV9USU1FX0FJRElOR19SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX0FTU0lTVEFDUVVJU1RfREFUQV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfUU9TX0RBVEFfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX0ZSRVFVRU5DWV9BSURJTkdfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19DQU5DRUxMQVRJT05fUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19DUF9MT0NBVElPTl9SRVNQT05TRV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfUkVGRVJFTkNFX0xPQ0FUSU9OX1JFU1BfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX0FTU0lTVF9EQVRBX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfU0VURVBIX1BSTl9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfU0VUQUxNX1BSTl9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfU0VUSU9OX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19TRVRfUkVGTE9DX01TRywKKworICAgIE1TR19JRF9WQUxfQVBfR1BTX0FTU0lTVF9GSU5JU0hfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX1NUQVJUX0FDSywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19TVE9QX0FDSywgICAvL0NQIEFDSworICAgIE1TR19JRF9WQUxfQVBfR1BTX1NUT1BfUkVRLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX0NBTkNFTF9JTkQsCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfREVMRVRFX0FTU0lTVF9EQVRBX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19GQUtFX1NUT1BfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19NU19JTkZPX1JFUV9SRUNWRF9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfU09DS0VUX0NSRUFURV9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX1NPQ0tFVF9DUkVBVEVfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19UQ1BfU0VORF9EQVRBX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfVENQX1NFTkRfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19UQ1BfREFUQV9SRUNWX01TRywKKyAgICBNU0dfSURfVkFMX0FQX0dQU19UQ1BfREFUQV9SRUNWX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfU09DS0VUX0NMT1NFX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfU09DS0VUX0NMT1NFX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfUkFUX01PREVfUVVFUllfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX1JBVF9NT0RFX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfQ09OTkVDVElPTl9TVEFUVVNfSU5ELAorCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfVElNRV9JTkQsCisgICAgTVNHX0lEX1ZBTF9BUF9HUFNfRkFLRV9QT1dFUl9PTl9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfQVBfR1BTX0VNRVJHRU5DWV9DQUxMX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX1JFVl9USU1FX0FJRElOR19SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfUFNFVURPUkFOR0VfTUVBU19SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfQVNTSVNUX0RBVEFfUkVRX01TQV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX1JFVl9BU1NJU1RfREFUQV9SRVFfTVNCX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1NUT1BfQUNLX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1BPV0VSX09OX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX1JFVl9OSV9QT1NfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1JBVF9NT0RFX1NFVFRJTkdfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfUkFUX01PREVfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1NPQ0tFVF9DUkVBVEVfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1NPQ0tFVF9DTE9TRV9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfVENQX0RBVEFfU0VORF9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfU1VQTF9UQ1BfREFUQV9TRU5EX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX1JFVl9UQ1BfREFUQV9SRUNWX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1NVUExfVENQX0RBVEFfUkVDVl9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX1JFVl9EQVRBX0NPTk5fU1RBVFVTX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1BPV0VSX09OX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfUkVWX1NUT1BfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfU1VQTF9DRUxMX0lEX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX1JFVl9TVVBMX0dFVF9ORVRXT1JLX1RZUEVfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19SRVZfU1VQTF9HRVRfTkVUV09SS19NT0RFX01TRywKKworICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfUEFSU0VEX1BPU19SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfU1RBVFVTX1JQVF9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9BRkxUX0xPQ19SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfQVNTSVNUX0VQSF9SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfQVNTSVNUX0FMTV9SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfQVNTSVNUX0lPTl9SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfQVNTSVNUX0RBVEFfRE9ORV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9FVlRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfREVMRVRFX0FTU0lTVF9EQVRBX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9JTkpFQ1RfQVNTSVNUX0RBVEFfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfRldEX1BPV0VSX09OX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9EQVRBX0NBTExfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfRldEX0ZSQU1FX1NZTkNfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfTklfUE9TX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9TVE9QX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9TVE9QX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9QT1dFUl9PTl9BQ0tfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfU09DS0VUX0NSRUFURV9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1JQQ19GV0RfU09DS0VUX0NMT1NFX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9UQ1BfREFUQV9TRU5EX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9UQ1BfREFUQV9SRUNWX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9RVUVSWV9SQVRfTU9ERV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9HRVRfTlRfVFlQRV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9HRVRfT1BfTU9ERV9NU0csCisgICAgTVNHX0lEX1ZBTF9HUFNfUlBDX0ZXRF9HRVRfQ0VMTF9JTkZPX01TRywKKyAgICBNU0dfSURfVkFMX0dQU19SUENfRldEX1BQTV9SUFRfTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1BPV0VSX0RPV05fTVNHLAorICAgIE1TR19JRF9WQUxfR1BTX1BPV0VSX1VQX01TRywKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAqIFNpbGVudCBMb2dnaW5nCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfU0lMRU5UX0xPR19DRkdfQ1JFQVRFX01TRywKKyAgICBNU0dfSURfVkFMX1NJTEVOVF9MT0dfUEFSTVNfU0VUX01TRywKKyAgICBNU0dfSURfVkFMX1NJTEVOVF9MT0dfUEFSTVNfR0VUX01TRywKKyAgICBNU0dfSURfVkFMX1NJTEVOVF9MT0dfREFUQV9JTkZPX0dFVF9NU0csCisgICAgTVNHX0lEX1ZBTF9TSUxFTlRfTE9HX1BBVVNFX01TRywKKyAgICBNU0dfSURfVkFMX1NJTEVOVF9MT0dfUkVTVU1FX01TRywKKyAgICBNU0dfSURfVkFMX1NJTEVOVF9MT0dfUEFSTVNfVVBEQVRFX01TRywKKworICAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAqIERCTSBIYW5kbGVyCisgICAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworICAgIE1TR19JRF9WQUxfRkxVU0hfQUNLX01TRywKKyAgICBNU0dfSURfVkFMX0ZMVVNIX1JGX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9OVl9NU0dfQUNLX01TRywKKyAgICBNU0dfSURfVkFMX0wxRFRTVF9HRVRQSE9ORVNUQVRVUywKKyAgICBNU0dfSURfVkFMX1NFVF9NT0JJTEVfSURfTVNHLAorICAgIE1TR19JRF9WQUxfR0VUX0VSSV9WRVJTSU9OX01TRywKKworICAgIC8qIFBIQiBNc2cgKi8KKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfUEhCX1JFQ19QQVJBTVNfTVNHLC8qIDQ4MyAqLworICAgIE1TR19JRF9WQUxfVUlNX0dFVF9QSEJfUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9VUERBVEVfUEhCX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fRVJBU0VfUEhCX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX1NETl9SRUNfUEFSQU1TX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfU0ROX1JFQ19NU0csCisKKyAgICBNU0dfSURfVkFMX0FUX1VJTV9FUkFTRV9QSEJfUkVDX01TRywKKyAgICBNU0dfSURfVkFMX0FUX1VJTV9VUERBVEVfUEhCX1JFQ19NU0csCisKKyAgICAvKiBTbXMgTXNnICovCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX1NNU19SRUNfUEFSQU1TX01TRywgLyogNDkxICovCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX1NNU19SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX1VQREFURV9TTVNfUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9FUkFTRV9TTVNfUkVDX01TRywKKworICAgIE1TR19JRF9WQUxfVVRLX1BST0FWVElWRV9DTURfQVRfVVRDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfRkROX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX0ZETl9TVEFUVVNfTVNHLAorICAgIE1TR19JRF9WQUxfQVRfVUlNX1NFVF9GRE5fTVNHLAorICAgIE1TR19JRF9WQUxfQVRfVUlNX0VSQVNFX0ZETl9SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfQVRfVUlNX1VQREFURV9GRE5fUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9VUERBVEVfRkROX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fRVJBU0VfRkROX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fRUNDX0xJU1RfSU5EX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9JTkRFWF9SRUdJU1RFUl9SU1BfTVNHLAorCisKKyAgICAvKiBDaHYgTXNnICovCisgICAgTVNHX0lEX1ZBTF9DSFZfR0VUX1NUQVRVU19NU0csLyogNTA0ICovCisgICAgTVNHX0lEX1ZBTF9DSFZfVkVSSUZZX01TRywKKyAgICBNU0dfSURfVkFMX0NIVl9DSEFOR0VfTVNHLAorICAgIE1TR19JRF9WQUxfQ0hWX0VOQUJMRV9NU0csCisgICAgTVNHX0lEX1ZBTF9DSFZfRElTQUJMRV9NU0csCisgICAgTVNHX0lEX1ZBTF9DSFZfVU5CTE9DS19NU0csCisgICAgTVNHX0lEX1ZBTF9DSFZfU1RBVFVTX0NIQU5HRV9NU0csCisgICAgTVNHX0lEX1ZBTF9DSFZfTE9DQUxfVkVSSUZZX01TRywKKyAgICAvKlV0ayBNc2cgKi8KKyAgICBNU0dfSURfVkFMX1VUS19URVJNSU5BTF9QUk9GSUxFX01TRywvKiA1MTIgKi8KKyAgICBNU0dfSURfVkFMX1VUS19NRU5VX1NFTEVDVElPTl9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfU01TX1BQX0RPV05MT0FEX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19URVJNSU5BTF9SRVNQT05TRV9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfUkVRVUVTVF9VSU1WRVJfTVNHLAorICAgIE1TR19JRF9WQUxfVVRLX1JFUVVFU1RfSU1HX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19SRVFVRVNUX0lNR19EQVRBX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19QUk9BVlRJVkVfQ01EX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19DQUxMX0NPTlRST0xfTVNHLAorICAgIC8qIEV2ZW50IGRvd25sb2FkIE1zZyAqLworICAgIE1TR19JRF9WQUxfVVRLX0RBVEFfQVZBSUxBQkxFX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19NVF9DQUxMX0VWVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfQ0FMTF9DT05OX0VWVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfQ0FMTF9ESVNDX0VWVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfTE9DX1NUQVRVU19FVlRfTVNHLAorICAgIE1TR19JRF9WQUxfVVRLX0FDQ1RFQ0hfQ0hBTkdFX0VWVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfQVBQX0lOSVRfVEVSTV9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfSU1TX1JFR19TVEFUVVNfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfVkFMX1VUS19JTVNfVElNRVJfRVhQSVJFRF9NU0csCisKKyAgICAvKiBVdGsgdGVzdCAqLworICAgIE1TR19JRF9WQUxfVVRLX1RTVF9HRVRfSU5QVVRfRE9ORV9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfVFNUX1NFTEVDVF9JVEVNX0RPTkVfTVNHLAorICAgIE1TR19JRF9WQUxfVVRLX1RTVF9DT01NT05fRE9ORV9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfVFNUX1NFTEVDVF9NRU5VX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19UU1RfSU5JVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VVEtfVFNUX1NNU19ET1dOX01TRywKKyAgICBNU0dfSURfVkFMX1VUS19UU1RfRVhJVF9NU0csCisKKyAgICAvKiBWQUwgVUlNIE1ETiBtZXNzYWdlcyAgKi8KKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfTUROX1JFQ19OVU1fTVNHLC8qIDUzNyAqLworICAgIE1TR19JRF9WQUxfVUlNX1JFQURfTUROX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fVVBEQVRFX01ETl9SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX0RFTF9NRE5fUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9OT1RJRllfUkVHSVNURVJfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX0dFVF9TUF9OQU1FX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9JTl9DQUxMX0RFVEVDVF9NU0csCisKKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfR1NNX0lNU0lfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX0dFVF9JQ0NJRF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fUkVTRVRfUkVTUE9OU0VfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX1NNU1ZQX1JFQ19OVU1fTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX1JFQURfU01TVlBfUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9VUERBVEVfU01TVlBfUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfUFJFRl9MQU5HLAorICAgIE1TR19JRF9WQUxfVUlNX0dFVF9VSU1fQ0FSRF9JRCwKKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfUFJPVklERVJfTkFNRSwKKworICAgIE1TR19JRF9WQUxfVUlNX1NUT1JFX0VTTl9NU0csLyogNTUzICovCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX0VTTl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX0NTVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX0VTVF9NU0csCisKKyAgICAvKiBWQUwgVUlNIERldGVjdCBtZXNzYWdlKi8KKyAgICBNU0dfSURfVkFMX1VJTV9DQVJEX1JFTU9WRURfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX1BST0FDVElWRV9DTURfTVNHLC8qIDU1OCAqLworI2lmIGRlZmluZWQgKF9fVEMxMF9fKSAmJiBkZWZpbmVkIChfX1RDMTBfSVBDX0NETUFfU1VQUE9SVF9fKQorICAgIE1TR19JRF9WQUxfVUlNX1RFUk1JTkFMX1JFU1BPTlNFX1JTUF9NU0csCisjZW5kaWYgICAgCisgICAgTVNHX0lEX1ZBTF9VSU1fU01TX1BQX0RPV05MT0FEX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fVVRLX1JFRlJFU0hfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9ITFBfRklMRV9DSEFOR0VfQ09NUExFVEVELAorCisKKyAgICAvKiBWQUwgc21zIG1lbW9yeSBzdGF0dXMgTXNnKi8KKyAgICBNU0dfSURfVkFMX1NNU19NRU1PUllfU1RBVFVTX01TRywKKyAgICBNU0dfSURfVkFMX0dFVF9ERUJVR19JTkZPX01TRywKKworICAgIC8qIFZBTCBBVEMgaGFuZGxlKi8KKyAgICBNU0dfSURfVkFMX0FUX0ZTTV9SRVNFVF9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfQVNZTkNfQUxFUlRfSU5EX01TRywKKworICAgIE1TR19JRF9WQUxfRUlBNjE3X0JSRUFLX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9DMTA4X0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9PTkxJTkVfQ01EX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9CQVVEX1JBVEVfSU5EX01TRywKKyAgICBNU0dfSURfVkFMX1JFVl9UWF9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfRldEX1RYX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9USU1FUl9FWFBJUkVEX01TRywKKyAgICAvKk1TR19JRF9WQUxfQVRfREJNX1dSSVRFX1JTUF9NU0csKi8KKyAgIC8qIE1TR19JRF9WQUxfQVRfREJNX1JFQURfUlNQX01TRywqLworICAgIE1TR19JRF9WQUxfQVRfU0VUX0RFRkFVTFRfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0FUX0lOSVRfUkVRX01TRywKKyAgICBNU0dfSURfVkFMX0FUX0ZMVVNIX1JFUV9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9TWVNfSU5JVF9NU0csCisgICAgTVNHX0lEX1ZBTF9TRVRfUU5DX0RJQUxfU1RSX01TRywKKyAgICBNU0dfSURfVkFMX0VOSEFOQ0VEX0FUX0NNRF9SRVFfTVNHLAorICAgIE1TR19JRF9WQUxfRU5IQU5DRURfQ01EX0JVRkZFUl9BQ0tfTVNHLAorICAgIE1TR19JRF9WQUxfRU5IQU5DRURfQVRfQ01EX1JTUF9NU0csCisKKyAgICAvKk1TR19JRF9WQUxfQVRDX1BPV0VSVVBfSU5EX01TRywqLworICAgLyogTVNHX0lEX1ZBTF9BVENfTlZNX0lOSVRFRF9NU0csKi8KKworICAgIE1TR19JRF9WQUxfQVRfVUlNX1JVTl9DQVZFX0FDS19NU0csCisKKyAgICBNU0dfSURfVkFMX0FUX0NTSU1fQUNLX01TRywKKworICAgIE1TR19JRF9WQUxfRU5IQU5DRURfQVRfR0dTTUlNU0ksCisgICAgTVNHX0lEX1ZBTF9BVF9DUlNNX0FDS19NU0csICAgICAgICAgICAgIC8qIHVzZWQgYnkgYm90aCBBVCBhbmQgZ2VuZXJpYyB1aW0gQVBJICovCisgICAgTVNHX0lEX1ZBTF9ET19QQVJNX1NFVF9TVUNfTVNHLAorI2lmIGRlZmluZWQgKF9fVEMxMF9fKSAmJiBkZWZpbmVkIChfX1RDMTBfSVBDX0NETUFfU1VQUE9SVF9fKQorICAgIE1TR19JRF9WQUxfUFNXX0VOR0lORV9URVNUX01PREVfR0VUX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9QU1dfR0VUX1NFUlZJQ0VfQ09ORklHX0NORl9NU0csCisjZW5kaWYKKyAgICBNU0dfSURfVkFMX05PX1NWQ19JTkRfTVNHLCAgICAgICAgICAgICAgIC8qIFRvIGluZGljYXRlIG5vIHNlcnZpY2UuICAgICAgICAgKi8KKyAgICBNU0dfSURfVkFMX0lPUF9GV0RfVFhfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0lPUF9TRVRfQkFVRF9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfSU9QX01VWF9FVkVWVF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9MMURfUlNTSV9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9CQVRURVJZX1NUQVRVU19NU0csCisgICAvKiBNU0dfSURfVkFMX1NFVF9JUFNFUlZJQ0VfVFlQRV9NU0csIFRvIHNldCB0aGUgSVBTZXJ2aWNlIHR5cGUgZnJvbSBWQUwgb3IgRVRTKi8KKyAgIC8qTVNHX0lEX1ZBTF9HRVRfSVBTRVJWSUNFX1RZUEVfTVNHLCovCisgICAgTVNHX0lEX1ZBTF9ITFBfUEFSTV9TRVRfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0hMUF9QQVJNX0dFVF9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfRE9fUEFSTV9TRVRfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0RPX1BBUk1fU0VUX05PX1JTUCwKKyAgICBNU0dfSURfVkFMX0RPX1BBUk1fR0VUX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9QRU5EU01TX1RNX0VYUElSRSwKKyAgICBNU0dfSURfVkFMX0FUX1VUS19TTVNfUFBfRE9XTkxPQURfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX0FUX1BFTkRJTkdfU01TX0VYUElSRSwKKworICAgIE1TR19JRF9WQUxfQVRfQ0hBTl9DVFJMX0VUUywKKyAgICAvKk1TR19JRF9WQUxfQVRfRldEX1RYX1JFUV9FVFMsKi8KKyAgICBNU0dfSURfVkFMX0FUX1JFVl9UWF9SRVFfRVRTLAorICAgIE1TR19JRF9WQUxfSExQX0NUQV9VUERBVEVfTVNHLAorICAgIE1TR19JRF9WQUxfSU9QX0NIQU5fT05PRkZfTVNHLAorICAgIE1TR19JRF9WQUxfSU9QX0NIQU5fU1dJVENIX01TRywKKyAgICBNU0dfSURfVkFMX0lPUF9DSEFOX1FVRVJZX09OX01TRywKKyAgICBNU0dfSURfVkFMX0lPUF9DSEFOX1FVRVJZX1NXX01TRywKKworICAgIC8qIHVpY2MgbWVzc2FnZXMgKi8KKyAgICBNU0dfSURfVkFMX1VJTV9FWFRfSU5GT19HRVRfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1VJQ0NfTE9HSV9DSEFOX09QRU5fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1VJQ0NfTE9HSV9DSEFOX0NMT1NFX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSUNDX1JFU1RSSUNfQUNDRVNTX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSUNDX0dFTkVSSUNfQUNDRVNTX1JTUF9NU0csCisKKyAgICBNU0dfSURfVkFMX0FUX0NDU1NfQUNLX01TRywKKyAgICBNU0dfSURfVkFMX0VOR19JTkZPX1JQVF9USU1FUl9FWFBJUkVEX01TRywKKyAgICBNU0dfSURfVkFMX0RFRVBTTEVFUF9DQUxMQkFDS19FWFBJUkVEX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9VVEtfVElNRVJfRVhQSVJFRF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fTk9fU0VSVklDRV9FWFBJUkVEX01TRywKKyAgICBNU0dfSURfVkFMX0VTV0xBX1RJTUVSX0VYUElSRURfTVNHLAorICAgIC8vTVNHX0lEX1ZBTF9NRDFfRUZVTl9TVEFURV9JTkQsCisgICAgLy9NU0dfSURfVkFMX01EMV9FTURTVEFUVVNfRkxPV19WRVJTSU9OX0lORCwKKyAgICBNU0dfSURfVkFMX1NFTkRfVFhfSU5EX01TRywKKyAgICBNU0dfSURfVkFMX1VUX0dMT0JBTF9WQUxfU0VUX01TRywKKyAgICAvKiBWQUwgVGVzdCBNb2RlIE1zZ3MgKi8KKyAgICAvL01TR19JRF9WQUxfRFNQTV9WRVJfUlNQX01TRywKKyAgICAvL01TR19JRF9WQUxfRFNQVl9WRVJfUlNQX01TRywKKyAgICAvL01TR19JRF9WQUxfQ1BfVkVSX1JTUF9NU0csCisgICAgLy9NU0dfSURfVkFMX1NUQVJUX1JFRlVSQklTSF9URVNULAorCisgICAgTVNHX0lEX1ZBTF9GQUtFX1JFU0VUX05PVElGWSwgICAgICAgLyogRm9yIHBhc3MgQ1QgdGVzdCwgU0hPVUxEIEJFIFJFTU9WRUQgKi8KKyAgICBNU0dfSURfVkFMX0lNU19DT05OX1NFVFVQX01TRywKKyAgICBNU0dfSURfVkFMX0lNU19DT05OX1JFTEVBU0VfTVNHLAorICAgIE1TR19JRF9WQUxfSU1TX0FQUF9TRVRVUF9NU0csCisgICAgTVNHX0lEX1ZBTF9JTVNfQVBQX1JFTEVBU0VfTVNHLAorCisgICAgTVNHX0lEX0FQUF9JTVNfTkVUV0tfQ09OTl9SU1AsCisgICAgTVNHX0lEX0FQUF9JTVNfTkVUV0tfRU5EX1JTUCwKKyAgICBNU0dfSURfQVBQX0lNU19TRVRVUF9SU1AsCisgICAgTVNHX0lEX0FQUF9JTVNfUkVMX1JTUCwKKyAgICBNU0dfSURfQVBQX0lNU19TRVRVUF9JTkQsCisgICAgTVNHX0lEX0FQUF9JTVNfUkVMX0lORCwKKyAgICBNU0dfSURfQVBQX0lNU19ORVRXS19SRUxfSU5ELAorICAgIE1TR19JRF9BUFBfSU1TX1BQUF9DT05OX0lORCwKKworICAgIE1TR19JRF9WQUxfQVRfVUlNX0NBVkVfUlNQLAorICAgIE1TR19JRF9WQUxfQVRfVUlNX1NTRFVQRF9SU1AsCisgICAgTVNHX0lEX1ZBTF9BVF9VSU1fU1NEVVBEQ0ZNX1JTUCwKKyAgICBNU0dfSURfVkFMX0FUX1VJTV9WUE1fVElNRVJfRVhQLAorICAgIE1TR19JRF9WQUxfQVRfVUlNX01ENV9SU1AsCisKKyAgICBNU0dfSURfVkFMX0lPUF9FVFNfUlBDX0NNRCwKKyAgICBNU0dfSURfVkFMX1JQQ19HUFNfUlhfTVNHLAorICAgIE1TR19JRF9WQUxfUlBDX0dQU19DQUxMX1RNT19NU0csCisgICAgTVNHX0lEX1ZBTF9SUENfR1BTX0RFRkZFUl9BQ1RJT05fTVNHLAorICAgIE1TR19JRF9WQUxfUlBDX0lSQVRfUlhfTVNHLAorICAgIE1TR19JRF9WQUxfUlBDX0lSQVRfQ0FMTF9UTU9fTVNHLAorICAgIE1TR19JRF9WQUxfUlBDX0lSQVRfREVGRkVSX0FDVElPTl9NU0csCisgICAgLypNU0dfSURfVkFMX0FUX0NTU19JUkFUX01TRywqLworICAgIE1TR19JRF9WQUxfTU1DX1JQQ19NU0csCisKKyAgICBNU0dfSURfVkFMX1RDUElQX1JFQ1ZfUlNQX01TRywgICAgLyp1c2VkIGJ5IHRjcGlwIG1vZHVsZSovCisgICAgTVNHX0lEX1ZBTF9UQ1BJUF9SRUNWX0RBVEFfTVNHLAorICAgIE1TR19JRF9WQUxfVENQSVBfQzEwOExPV19NU0csICAgICAgICAvKnVzZWQgYnkgdGNwaXAgbW9kdWxlKi8KKyAgICBNU0dfSURfVkFMX1RDUElQX1NPQ0tFVF9FVlRfTVNHLAorICAgIE1TR19JRF9WQUxfSU9QX0RBVEFNR1JfSU5JVF9ET05FX01TRywKKworICAgIE1TR19JRF9WQUxfQVRfVFVSTl9PRkZfRFRNRl9TT1VORF9NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9DUklOR19DQUxMQkFDS19NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9DTk1BX1JQX0VSUk9SX0NBTExCQUNLX01TRywKKyAgICBNU0dfSURfVkFMX0FUX1ZTRVJfQ0FMTEJBQ0tfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9BVF9HRVRfREVCVUdfSU5GT19NU0csCisgICAgTVNHX0lEX1ZBTF9BVF9OQU1fV1JJVEVfQUNLX01TRywKKyAgIC8qCisgICAgTVNHX0lEX1ZBTF9GQVVMVF9IRUFERVJfUkVBRF9NU0csCisgICAgTVNHX0lEX1ZBTF9GQVVMVF9SRUNPUkRfUkVBRF9NU0csCisgICAgTVNHX0lEX1ZBTF9GQVVMVF9MT0dfRVJBU0VfTVNHLAorICAgICovCisgICAgTVNHX0lEX1ZBTF9QUFBfQTEyX0FVVEhfTk9UX0ZBSUxfTVNHLAorICAgIE1TR19JRF9WQUxfUFBQX0ExMl9BVVRIX0ZBSUxfTVNHLAorICAgIE1TR19JRF9WQUxfQVRDX0MxMDlfSU5EX01TRywKKyAgICBNU0dfSURfVkFMX0FUX1NVU1BFTkRfQ0FMTEJBQ0tfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9HRVRfTU9CSUxFX0lEX1JTUF9NU0csCisgICAgLypNU0dfSURfVkFMX1BTV19HRVRfSU1TSV9NU0csKi8KKyAgICBNU0dfSURfVkFMX0FUXzFYX01SVV9XUklURV9BQ0tfTVNHLAorICAgIE1TR19JRF9WQUxfQVRfRE9fTVJVX1dSSVRFX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fR0VUX05BTV9EQVRBX01TRywKKyAgICBNU0dfSURfVkFMX0FUX0RJQUxfTlVNX0NIRUNLX1JFR19NU0csCisKKyAgICBNU0dfSURfVkFMX05TVF9MSVNUX1NFVF9NU0csCisgICAgTVNHX0lEX1ZBTF9QU1dfTlNUX0xJU1RfU0VUX1JTUF9NU0csCisKKyAgICAvKk1TR19JRF9WQUxfU0VUX0xPQ0tfRkVBVFVSRV9NU0csKi8KKyAgICBNU0dfSURfVkFMX1VJTV9HRVRfVUlNSURfRVVJTUlEX01TRywKKyAgICAvKk1TR19JRF9WQUxfSExQX1BQUF9SRUNPTk5FQ1RfTVNHLCovCisgICAgTVNHX0lEX1ZBTF9EQVRBX1JPQU1JTkdfQ0hHX01TRywKKy8qTVNHX0lEX1ZBTF9MSUdIVF9DVFJMX01TRywKKyAgICBNU0dfSURfVkFMX0RCTV9EQVRBX05BTV9NU0csCisgICAgTVNHX0lEX1ZBTF9TVE9SQUdFX0RBVEFfSU5JVF9NU0csCisKKyAgICBNU0dfSURfVkFMX1BFTl9NU0csCisgICAgTVNHX0lEX1ZBTF9TQ1JFRU5fQ0FMSUJSQVRJT05fQ05GX01TRywgKi8KKyAgICBNU0dfSURfVkFMX0FUX1ZFQ0lPVVJDX0NBTExCQUNLX01TRywKKyAgICBNU0dfSURfVkFMX1JQVF9DMktfUlNWQVNfRVZFTlRfTVNHLAorICAgIE1TR19JRF9WQUxfQ1NTX0lSQVRfUE9XRVJfQ1RSTF9DTkYsIC8qIDcxMyAqLworCisgICAgTVNHX0lEX1ZBTF9VSU1fQlRTQVBfQ09OTkVDVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fQlRTQVBfRElTQ09OTkVDVF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fQlRTQVBfUE9XRVJfT05fTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX0JUU0FQX1BPV0VSX09GRl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fQlRTQVBfUkVTRVRfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX0JUU0FQX1RSQU5TRkVSX0FQRFVfTVNHLAorICAgIC8vTVNHX0lEX1ZBTF9VSU1fRU1EU1RBVFVTX1VQREFURV9JTkRfTVNHLCAvKiA3MjAgKi8KKyAgICBNU0dfSURfVkFMX1VJTV9QUkVfU1RPUkVEX0NBUkRfRVNOTUVfSU5EX01TRywKKworICAgIC8vTVNHX0lEX1ZBTF9MSU5LMlNEUlZfTVNHLAorCisjaWYgZGVmaW5lZChNVEtfUExUX09OX1BDX1VUKQorCU1TR19JRF9WQUxfU01TX01PQ19LRVlfUkVRX01TRywKKwlNU0dfSURfVkFMX1NNU19SRU1PVEVfQ1RSTF9JTlNfUlNQX01TRywKKyNlbmRpZgorI2lmZGVmIE1US19DQlBfRU5DUllQVF9WT0lDRQorCU1TR19JRF9WQUxfU01TX1QxMDFfRVhQSVJFX01TRywKKwlNU0dfSURfVkFMX1NNU19UMjAxX0VYUElSRV9NU0csCisJTVNHX0lEX1ZBTF9TTVNfVDMwMV9FWFBJUkVfTVNHLAorCU1TR19JRF9WQUxfU01TX1Q0MDFfRVhQSVJFX01TRywKKwlNU0dfSURfVkFMX1NNU19FTkNSWV9LRVlfUkVRX01TRywKKwlNU0dfSURfVkFMX1NNU19FTkNSWV9DTEVBUl9DT05URVhUX01TRywKKwlNU0dfSURfVkFMX1NNU19FTkNSWV9SRU1PVEVfQ1RSTF9JTlNfUlNQX01TRywKKyNlbmRpZgorCisgICAgTVNHX0lEX1ZBTF9EQU5EQ05fSFlTVE1SX0VYUFJfTVNHLAorICAgIC8qIERBTiBEQ04gbXNnICovCisKKyAgICBNU0dfSURfVkFMX1VJTV9WQUxJREFURV9TUENfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX0lNU0lfTV9QUk9HUkFNX1NUQVRFX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU1fT1RBX1VQREFURV9OQU1fREFUQV9NU0csCisKKyAgICBNU0dfSURfVkFMX0NTU19ORVRXT1JLX1NUQVRFX0NIQU5HRV9JTkQsCisgICAgTVNHX0lEX1ZBTF9DU1NfTDJDX1JFU0VMX0NORiwKKyAgICBNU0dfSURfVkFMX0NTU19MMkNfUkVESVJFQ1RfQ05GLAorICAgIE1TR19JRF9WQUxfQ1NTX0wyQ19DTVBfQ05GLAorICAgIE1TR19JRF9WQUxfQ1NTX0MyTF9SRVNFTF9JTkQsCisgICAgTVNHX0lEX1ZBTF9DU1NfREFUQV9ERUFDVElWQVRFX0lORCwKKyAgICBNU0dfSURfVkFMX0NTU19DMkxfM0dQUF9OT1JNQUxfU0VSVklDRV9JTkQsCisgICAgTVNHX0lEX1ZBTF9DU1NfTE9DQUxfREVUQUNIX0lORCwKKyAgICBNU0dfSURfVkFMX0NTU19QU19TVEFUVVNfQ0hBTkdFX05PVElGWSwKKworICAgIC8qIFZBTCBzaWduYWxzICovCisgICAgIC8qTVNHX0lEX1ZBTF9TVEFSVFVQXzFfU0lHTkFMLCAgICAgICAgICAgICAgICBmcm9tIEhXRCBNUywgYWZ0ZXIgZHNwdiBhbGl2ZSBpcyByY3ZkICovCisgICAgIC8qIE1TR19JRF9WQUxfU1RBUlRVUF8yX1NJR05BTCwgIC8vIDc3NSAgICAgIGZyb20gTDFEIGFmdGVyIDMya0h6IE9zYyBpcyB2YWxpZGF0ZWQgKi8KKyAgICAgLypNU0dfSURfVkFMX1NUQVJUVVBfM19TSUdOQUwsICAgICAgICAgICAgICAgIGZyb20gSU9QIHRhc2sgKi8KKyAgICAvKk1TR19JRF9WQUxfVlJFQ19USU1FT1VUX1NJR05BTCwgICAgICAgICAgICAgIHRpbWVvdXQgaW4gdHJhaW5pbmcgb3IgcmVjb2duICovCisgICAgTVNHX0lEX1ZBTF9SRVZfVFhfUkVRX1BQUF9TSUdOQUwsICAgICAgICAgICAvKiBzaWduYWwgZm9yIHJldiBQUFAgZGF0YSBvbiBpbnRlcmZhY2UgMCAqLworICAgIE1TR19JRF9WQUxfRldEX1RYX1JTUF9QUFBfU0lHTkFMLCAgICAgICAgICAgLyogc2lnbmFsIGZvciBmd2QgUFBQIGRhdGEgb24gaW50ZXJmYWNlIDAgKi8KKworICAgIE1TR19JRF9WQUxfUkVWX1RYX1JFUV9BVF8xX1NJR05BTCwgICAgICAgICAgLyogc2lnbmFsIGZvciByZXYgQVRDIGRhdGEgb24gbG9naWNhbCBBVCBjaGFubmVsIDEgKi8KKyAgICBNU0dfSURfVkFMX0ZXRF9UWF9SU1BfQVRfMV9TSUdOQUwsICAgICAgICAgIC8qIHNpZ25hbCBmb3IgZndkIEFUQyBkYXRhIG9uIGxvZ2ljYWwgQVQgY2hhbm5lbCAxICovCisgICAgTVNHX0lEX1ZBTF9SRVZfVFhfUkVRX0FUXzJfU0lHTkFMLCAgICAgICAgICAvKiBzaWduYWwgZm9yIHJldiBBVEMgZGF0YSBvbiBsb2dpY2FsIEFUIGNoYW5uZWwgMiAqLworICAgIE1TR19JRF9WQUxfRldEX1RYX1JTUF9BVF8yX1NJR05BTCwgICAgICAgICAgLyogc2lnbmFsIGZvciBmd2QgQVRDIGRhdGEgb24gbG9naWNhbCBBVCBjaGFubmVsIDIgKi8KKworICAgIE1TR19JRF9WQUxfUkVWX1RYX1JFUV9BVF8zX1NJR05BTCwgICAgICAgICAgLyogc2lnbmFsIGZvciByZXYgQVRDIGRhdGEgb24gbG9naWNhbCBBVCBjaGFubmVsIDMgKi8KKyAgICBNU0dfSURfVkFMX0ZXRF9UWF9SU1BfQVRfM19TSUdOQUwsICAgICAgICAgIC8qIHNpZ25hbCBmb3IgZndkIEFUQyBkYXRhIG9uIGxvZ2ljYWwgQVQgY2hhbm5lbCAzICovCisKKyAgICBNU0dfSURfVkFMX1JFVl9UWF9SRVFfQVRfNF9TSUdOQUwsICAgICAgICAgIC8qIHNpZ25hbCBmb3IgcmV2IEFUQyBkYXRhIG9uIGxvZ2ljYWwgQVQgY2hhbm5lbCA0ICovCisgICAgTVNHX0lEX1ZBTF9GV0RfVFhfUlNQX0FUXzRfU0lHTkFMLCAgICAgICAgICAvKiBzaWduYWwgZm9yIGZ3ZCBBVEMgZGF0YSBvbiBsb2dpY2FsIEFUIGNoYW5uZWwgNCAqLworCisgICAgTVNHX0lEX1ZBTF9SRVZfVFhfUkVRX0FUXzVfU0lHTkFMLCAgICAgICAgICAvKiBzaWduYWwgZm9yIHJldiBBVEMgZGF0YSBvbiBsb2dpY2FsIEFUIGNoYW5uZWwgNSAqLworICAgIE1TR19JRF9WQUxfRldEX1RYX1JTUF9BVF81X1NJR05BTCwgICAgICAgICAgLyogc2lnbmFsIGZvciBmd2QgQVRDIGRhdGEgb24gbG9naWNhbCBBVCBjaGFubmVsIDUgKi8KKyAgICBNU0dfSURfVkFMX1JFVl9UWF9SRVFfQVRfNl9TSUdOQUwsICAgICAgICAgIC8qIHNpZ25hbCBmb3IgcmV2IEFUQyBkYXRhIG9uIGxvZ2ljYWwgQVQgY2hhbm5lbCA2Ki8KKyAgICBNU0dfSURfVkFMX0ZXRF9UWF9SU1BfQVRfNl9TSUdOQUwsICAgICAgICAgIC8qIHNpZ25hbCBmb3IgZndkIEFUQyBkYXRhIG9uIGxvZ2ljYWwgQVQgY2hhbm5lbCA2ICovCisgICAgTVNHX0lEX1ZBTF9SRVZfVFhfUkVRX0FUXzdfU0lHTkFMLCAgICAgICAgICAvKiBzaWduYWwgZm9yIHJldiBBVEMgZGF0YSBvbiBsb2dpY2FsIEFUIGNoYW5uZWwgNyAqLworICAgIE1TR19JRF9WQUxfRldEX1RYX1JTUF9BVF83X1NJR05BTCwgICAgICAgICAgLyogc2lnbmFsIGZvciBmd2QgQVRDIGRhdGEgb24gbG9naWNhbCBBVCBjaGFubmVsIDcgKi8KKyAgICBNU0dfSURfVkFMX1JFVl9UWF9SRVFfQVRfOF9TSUdOQUwsICAgICAgICAgIC8qIHNpZ25hbCBmb3IgcmV2IEFUQyBkYXRhIG9uIGxvZ2ljYWwgQVQgY2hhbm5lbCA4ICovCisgICAgTVNHX0lEX1ZBTF9GV0RfVFhfUlNQX0FUXzhfU0lHTkFMLCAgICAgICAgICAvKiBzaWduYWwgZm9yIGZ3ZCBBVEMgZGF0YSBvbiBsb2dpY2FsIEFUIGNoYW5uZWwgOCAqLworCisgICAgTVNHX0lEX1ZBTF9GV0RfVFhfUlNQX0FUX0VUU19TSUdOQUwsCisKKyAgICAvKk1TR19JRF9WQUxfU1BIX1JFVl9BUF9DTURfU0lHTkFMLCovCisgICAgTVNHX0lEX1ZBTF9DU1NfUkVBRFlfU0lHTkFMLAorICAgIE1TR19JRF9WQUxfUkVWX1RYX1JFUV9JUF9TSUdOQUwsICAgICAgICAgICAgLyogc2lnbmFsIGZvciByZXYgaXAgZGF0YSBvbiBsb2dpY2FsIEFUIGNoYW5uZWwgMCAqLworICAgIC8qIG90aGVyIHNpZ25hbHMgYXJlIGRlZmluZWQgaW4gdmFsZGVmcy5oLCBhbmQgc3RhcnQgZnJvbSBfMTEgdXAgKi8KKyAgICAvKk1TR19JRF9WQUxfVVNFUklORk9fVElNRU9VVF9TSUdOQUwsKi8KKworICAgIE1TR19JRF9WQUxfVVRfQ09ORklHVVJFX1JFUV9NU0csCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAqIEVQT0YgZmxvdworICAgICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgICBNU0dfSURfTDRDX0MyS19QT1dFUl9PRkZfUkVRLAorICAgIE1TR19JRF9MNENfQzJLX1JGX09GRl9SRVEsCisKKyAgICBNU0dfSURfTDRDX0MyS19QT1dFUl9PRkZfQ05GLAorICAgIE1TR19JRF9MNENfQzJLX1JGX09GRl9DTkYsCisKKyAgICAvKiB0ZW1wIGZvciBjcm9zcyBjb3JlIG1vZGlmaWNhdGlvbiAqLworICAgIC8qIEMyS19MVEVfU0FQICovCisgICAgTVNHX0lEX0MyS19MVEVfUkFUX0NIQU5HRV9SRVEsCisgICAgTVNHX0lEX0MyS19MVEVfUkFUX0NIQU5HRV9DTkYsCisgICAgLyogTFRFX0MyS19TQVAgKi8KKyAgICBNU0dfSURfTFRFX0MyS19SQVRfQ0hBTkdFX1JFUSwKKyAgICBNU0dfSURfTFRFX0MyS19SQVRfQ0hBTkdFX0NORiwKKyAgICBNU0dfSURfTFRFX0MyS19JQV9QRE5fUVVFUllfUkVRLAorICAgIE1TR19JRF9MVEVfQzJLX0lBX1BETl9RVUVSWV9DTkYsCisgICAgLyogVkFMX1JBQ19TQVAgKi8KKyAgICBNU0dfSURfVkFMX1JBQ19SQVRfQ0hBTkdFX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfVkFMX1JBQ19SQVRfQ0hBTkdFX0ZJTklTSF9SRVEsCisKKyAgICBNU0dfSURfUkFDX1ZBTF9TRVRfUkFUX01PREVfUkVRLAorICAgIE1TR19JRF9SQUNfVkFMX1NFVF9SQVRfTU9ERV9DTkYsCisgICAgTVNHX0lEX1JBQ19WQUxfSU5JVF9SRVEsCisgICAgLyogdGVtcCBmb3IgY3Jvc3MgY29yZSBtb2RpZmljYXRpb24gZW5kICovCisKKworLypwb3J0aW5nIGNyb3NzIGNvcmUgaW50ZXJmYWNlKi8KKyAgICBNU0dfSURfTDRDX0MyS19JTVNfUkVHX1NUQVRVU19VUERBVEVfSU5ELAorCisgICAgLyogTUQzIGluZm9ybSBNRDEgYWJvdXQgcm9hbWluZyBzdGF0dXMqLworICAgIE1TR19JRF9MNENfQzJLX1JPQU1JTkdfU0VUVElOR19TWU5DX1JFUSwKKworICAgIE1TR19JRF9MNENfQzJLXzFYX0xPT1BfQkFDS19DQUxMX1JFUSwKKyAgICBNU0dfSURfTDRDX0MyS18xWF9MT09QX0JBQ0tfQ0FMTF9DTkYsCisKKyAgICBNU0dfSURfTDRDX0MyS19UWFJYX0FDVElWRV9USU1FX1JFUSwKKyAgICBNU0dfSURfTDRDX0MyS19UWFJYX0FDVElWRV9USU1FX0NORiwKKworICAgIE1TR19JRF9MNENfQzJLX0dFVF9BTlRfSU5GT19SRVEsCisgICAgTVNHX0lEX0w0Q19DMktfR0VUX0FOVF9JTkZPX0NORiwKKyAgICBNU0dfSURfTDRDX0MyS19HRVRfQU5UX0lORk9fSU5ELAorI2lmZGVmIF9fRU1fTUFYX1RYX1BPV0VSX1NVUFBPUlRfXworICAgIE1TR19JRF9MNENfQzJLX0NMMV9TRVRfTUFYX1RYX1BPV0VSX1JFUSwKKyAgICBNU0dfSURfTDRDX0MyS19DTDFfU0VUX01BWF9UWF9QT1dFUl9DTkYsCisjZW5kaWYKKyAgICBNU0dfSURfTDRDX1ZBTF9TRVRfUFdMX1RIUkhEX1JFUSwKKyAgICBNU0dfSURfTDRDX1ZBTF9TRVRfUFdMX1RIUkhEX0NORiwKKyAgICBNU0dfSURfVkFMX0w0Q19QV1JfTEVWRUxfSU5ELAorCisgICAgTVNHX0lEX0MyS19MVEVfUEROX0NPTlRFWFRfVFJBTlNGRVJfUkVRLAorICAgIE1TR19JRF9DMktfTFRFX1BETl9DT05URVhUX1RSQU5TRkVSX0NORiwKKyAgICBNU0dfSURfTFRFX0MyS19QRE5fQ09OVEVYVF9UUkFOU0ZFUl9SRVEsCisgICAgTVNHX0lEX0xURV9DMktfUEROX0NPTlRFWFRfVFJBTlNGRVJfQ05GLAorCisgICAgLyogQzJLIE1UIFNNUyBmcm9tIElNUywgbmVlZCBzZW50IHRvIE1EMyAobm90IHVzZWQgY3VycmVudGx5KSAqLworICAgIE1TR19JRF9JTUNTTVNfQ1ZBTF9DMktfU01TX1JFQ1ZfUkVRLAorICAgIE1TR19JRF9JTUNTTVNfQ1ZBTF9DMktfU01TX1JFQ1ZfQ05GLAorICAgIC8qIHVzZWQgaW4gVEMwMSAqLworICAgIE1TR19JRF9JTUNTTVNfQ1ZBTF9DMktfU01TX1NFTkRfUkVRLAorICAgIE1TR19JRF9JTUNTTVNfQ1ZBTF9DMktfU01TX1NFTkRfQ05GLAorCisgICAgTVNHX0lEX1ZBTF9TTVNfT1ZFUl9DMktfU0VORF9SRVEsCisgICAgTVNHX0lEX1ZBTF9TTVNfT1ZFUl9JTVNfU0VORF9SRVEsCisgICAgTVNHX0lEX1ZBTF9TTVNfSU1DU01TX1NFTkRfUkVRLAorICAgIE1TR19JRF9WQUxfU01TX1NETV9TRU5EX1JTUCwKKyAgICBNU0dfSURfSU1DU01TX1ZBTF9DMktfU01TX1JFQ1ZfUkVRLAorICAgIE1TR19JRF9JTUNTTVNfVkFMX0MyS19TTVNfUkVDVl9DTkYsCisKKyAgICAvKiBMNEIgLS0+IENWQUwgKi8KKyAgICBNU0dfSURfTDRCX0NWQUxfQVRfQ01EX1JFUSwKKyAgICBNU0dfSURfTDRCX0NWQUxfRUNTUV9DT05GSUdfSU5ELAorCisgICAgTVNHX0lEX0w0QlBETl9DVkFMX01TR19GUk9NX0w0QlBETl9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9DVkFMX0NHQUNUX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9DVkFMX1BETl9SRVZJVkVfUkVRLAorICAgICAgICBNU0dfSURfTDRCUEROX0NWQUxfUEROX1JFVklWRV9BQk9SVF9SRVEsCisgICAgICAgIE1TR19JRF9MNEJQRE5fQ1ZBTF9ESVNBQkxFX0VIUlBEX1JFUSwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9DVkFMX0VHQUNUX1JFUSwKKyAgICBNU0dfSURfTDRCUEROX0NWQUxfTVNHX0ZST01fTDRCUEROX0VORCwKKworICAgIE1TR19JRF9MNEJQRE5fQ1ZBTF9NU0dfRlJPTV9DVkFMX0JFR0lOLAorICAgICAgICBNU0dfSURfTDRCUEROX0NWQUxfQ01EX0NORiwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9DVkFMX0NHRVZfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0NWQUxfUEROX1JFVklWRV9DTkYsCisgICAgICAgIE1TR19JRF9MNEJQRE5fQ1ZBTF9QRE5fUkVWSVZFX0FCT1JUX0NORiwKKyAgICBNU0dfSURfTDRCUEROX0NWQUxfTVNHX0ZST01fQ1ZBTF9FTkQsCisKKyAgICBNU0dfSURfTDRCUEROX0NWQUxfQkVBUkVSX01TR19CRUdJTiwKKyAgICAgICAgTVNHX0lEX0w0QlBETl9DVkFMX0JFQVJFUl9BQ1RfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0NWQUxfQkVBUkVSX01PRElGWV9JTkQsCisgICAgICAgIE1TR19JRF9MNEJQRE5fQ1ZBTF9CRUFSRVJfREVBQ1RfSU5ELAorICAgICAgICBNU0dfSURfTDRCUEROX0NWQUxfUENPX1JEUF9VUERBVEVfSU5ELAorICAgIE1TR19JRF9MNEJQRE5fQ1ZBTF9CRUFSRVJfTVNHX0VORCwKKworICAgIE1TR19JRF9UQ01fQ1ZBTF9QRFBfREVGSU5FX1JFUSwKKyAgICBNU0dfSURfVENNX0NWQUxfRUFQTlNZTkNfREVGSU5FX1JFUSwKKyAgICBNU0dfSURfVENNX0NWQUxfVlpXX0FQTl9ERUZJTkVfUkVRLAorCisgICAgTVNHX0lEX0w0QlBETl9DVkFMX0VBQ1RERUxBWVRfUkVRLAorICAgIE1TR19JRF9MNEJQRE5fQ1ZBTF9FQUNUREVMQVlUX0NORiwKKworICAgIE1TR19JRF9MNEJOV19DVkFMX1BTX1RZUEVfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfTDRCTldfQ1ZBTF9QU19UWVBFX0NPTkZJR19DTkYsCisKKyAgICBNU0dfSURfU0RNX0NWQUxfQzJLX1NNU19TRU5EX1JFUSwKKyAgICBNU0dfSURfU0RNX0NWQUxfQzJLX1NNU19SU1AsCisgICAgTVNHX0lEX1ZETV9DVkFMX1NFTkRfRENOX1JFUSwKKyAgICBNU0dfSURfVkRNX0NWQUxfU0VORF9EQ05fU1RBUlRfUlNQLAorICAgIE1TR19JRF9WRE1fQ1ZBTF9JTVNfUkVHX1NUQVRVU19JTkQsCisKKy8qIFNDQy9WQUwgaW50ZXJmYWNlIG9wdGltaXphdGlvbiAqLworI2lmZGVmIE1US19DQlBfUkVMX09QVElNSVpFCisgICAgTVNHX0lEX1ZBTF9WU19DTlREX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9WU19SRUxfSU5EX01TRywKKyNlbmRpZgorICAgIE1TR19JRF9WQUxfVlNfQ09OTl9SRUxfSU5EX01TRywKKworCisgICAgTVNHX0lEX1ZBTF9JUENfUkFURV9SRURVQ1RJT05fTVNHLAorCisgICAgLyogU0lNIHJlbGF0ZWQgbWVzc2FnZXMgZm9yIEdlbWluaSAqLworICAgIE1TR19JRF9WQUxfVUlNMV9HRVRfTUROX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0dFVF9NRE5fQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfVVBEQVRFX01ETl9SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9VUERBVEVfTUROX1JFQ19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0RFTF9NRE5fUkVDX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfREVMX01ETl9SRUNfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMV9HRVRfSE9NRV9TSURfTklEX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0dFVF9IT01FX1NJRF9OSURfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfR0VUX0lNU0lfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfR0VUX0lNU0lfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfR0VUX01JTl9DTkZfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9HRVRfTUlOX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0dFVF9DSFZfU1RBVFVTX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0dFVF9DSFZfU1RBVFVTX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX1ZFUklGWV9DSFZfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfVkVSSUZZX0NIVl9DTkZfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMV9DSEFOR0VfQ0hWX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0NIQU5HRV9DSFZfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfVU5CTE9DS19DSFZfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfVU5CTE9DS19DSFZfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfRU5BQkxFX0NIVl9DTkZfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9FTkFCTEVfQ0hWX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0RJU0FCTEVfQ0hWX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0RJU0FCTEVfQ0hWX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0dFVF9DUlNNX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0dFVF9DUlNNX0FDS19NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX1VJQ0NfUkVTVFJJQ19BQ0NFU1NfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfVUlDQ19SRVNUUklDX0FDQ0VTU19SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMV9VSUNDX0dFTkVSSUNfQUNDRVNTX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX1VJQ0NfR0VORVJJQ19BQ0NFU1NfUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfR0VUX0lDQ0lEX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfR0VUX0lDQ0lEX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfR0VUX0FQUF9JTkZPX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0dFVF9BUFBfSU5GT19SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfRU1fVU5TTF9USU1FUl9FWFBJUkVEX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9VVEtfRklMRV9DSEFOR0VEX0lORF9NU0csCisjaWYgZGVmaW5lZCAoX19UQzEwX18pICYmIGRlZmluZWQgKF9fVEMxMF9JUENfQ0RNQV9TVVBQT1JUX18pCisgICAgTVNHX0lEX1ZBTF9VSU1fQVBEVV9TVEFUVVNfV09SRF9OT1RJRllfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX1JFRlJFU0hfTk9USV9JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNX1JFRlJFU0hfSU5EX01TRywKKyNlbmRpZgorICAgIE1TR19JRF9WQUxfVUlNX01FX0xPQ0tfSU5GT19JTkRfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9VSU1fQVRfRU5WRUxPUEVfUlNQX01TRywKKworICAgIE1TR19JRF9WQUxfVUlNMV9HRVRfVUlNSURfQ05GX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTJfR0VUX1VJTUlEX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0dFVF9DSU1JX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0dFVF9DSU1JX0NORl9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0dFVF9DU1RfSU5GT19SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9HRVRfQ1NUX0lORk9fUlNQX01TRywKKyAgICBNU0dfSURfVkFMX1VJTTFfVUlDQ19MT0dJX0NIQU5fT1BFTl9SU1BfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9VSUNDX0xPR0lfQ0hBTl9PUEVOX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX1VJQ0NfTE9HSV9DSEFOX0NMT1NFX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX1VJQ0NfTE9HSV9DSEFOX0NMT1NFX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0FUX0VOVkVMT1BFX1JTUF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0FUX0VOVkVMT1BFX1JTUF9NU0csCisKKyAgICBNU0dfSURfVkFMX1VJTTFfQVRfQ0FSRF9FUlJPUl9JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9BVF9DQVJEX0VSUk9SX0lORF9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0xX0FUX0NBUkRfVFlQRV9JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9BVF9DQVJEX1RZUEVfSU5EX01TRywKKworICAgIE1TR19JRF9WQUxfVUlNX0NBUkRfQVBQX0lORk9fSU5EX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9QSU5fSU5GT19JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMV9DQVJEX05PVF9SRUFEWV9JTkRfTVNHLAorICAgIE1TR19JRF9WQUxfVUlNMl9DQVJEX05PVF9SRUFEWV9JTkRfTVNHLAorCisgICAgTVNHX0lEX1ZBTF9VSU1fQ0FDSEVfRkNQX0lORk9fSU5EX01TRywKKyAgICBNU0dfSURfVkFMX1VJTV9DQUNIRV9SRUNPUkRfSU5GT19JTkRfTVNHLAorCU1TR19JRF9WQUxfVUlNX0NBQ0hFX0JJTkFSWV9JTkZPX0lORF9NU0csCisJTVNHX0lEX1ZBTF9VSU1fQ0FDSEVfTUROX1JFQ19JTkRfTVNHLAorCU1TR19JRF9WQUxfU1dJVENIX0NBQ0hFX0lORF9NU0csCisKKyNpZiBkZWZpbmVkIChfX1RDMTBfXykgJiYgZGVmaW5lZCAoX19UQzEwX0lQQ19DRE1BX1NVUFBPUlRfXykKKwlNU0dfSURfVkFMX1VJTV9HRVRfRkFDVE9SWV9NT0RFX1JTUF9NU0csCisJTVNHX0lEX1ZBTF9VSU1fU0VUX0ZBQ1RPUllfTU9ERV9SU1BfTVNHLAorI2VuZGlmCisKKyAgICBNU0dfSURfTDRDX0MyS19FRlVOX1NUQVRFX0lORCA9IE1TR19JRF9DVkFMX0NPREVfQkVHSU4gKyAxMDAwLAorCisgICAgTVNHX0lEX0w0Q19WQUxfTURTVEFUVVNfRkxPV19WRVJTSU9OX0lORCwKKyAgICBNU0dfSURfTDRDX1ZBTF9NRFNUQVRVU19US19CU1BfSU5ELAorICAgIE1TR19JRF9MNENfVkFMX0NTX1NFUlZJQ0VfSU5ELAorICAgIE1TR19JRF9MNENfVkFMX0MyS19SRl9URVNUX1JFUSwKKyAgICBNU0dfSURfTDRDX1ZBTF9DMktfUkZfVEVTVF9DTkYsCisKKyAgICBNU0dfSURfVkRNX0NWQUxfQ0FMTF9TVEFUVVNfUkVRLAorCisjaWYgZGVmaW5lZChNVEtfREVWX1NMVCkKKyAgICBNU0dfSURfVkFMX1NMVF9TRVRfUkFUX01PREVfSU5ELAorI2VuZGlmCisgICAgTVNHX0lEX1ZBTF9STUNfRE9fREFUX0NGR19SU1BfTVNHLAorICAgIE1TR19JRF9MNEJfQ1ZBTF9TSU1fTE9DS19JTkQsCisgICAgTVNHX0lEX0w0Q19DMktfQ0VMTF9JTkZPX0lORCwKKworICAgIE1TR19JRF9WQUxfTDFEXzFYX0RBVF9DRkdfUlNQX01TRywKKyAgICBNU0dfSURfTDRDX1ZBTF9TTUxfU1RBVFVTX0lORCwKKyNpZiBkZWZpbmVkIChfX1RDMTBfXykgJiYgZGVmaW5lZCAoX19UQzEwX0lQQ19DRE1BX1NVUFBPUlRfXykKKyAgICBNU0dfSURfVkFMX1NWQ19JTkZPX1JQVF9USU1FUl9FWFBJUkVEX01TRywKKyNlbmRpZgorCisgICAgTVNHX0lEX1ZBTF9VSU0xX0VYVEVOREVEX1JBV19DTURfREFUQV9NU0csCisgICAgTVNHX0lEX1ZBTF9VSU0yX0VYVEVOREVEX1JBV19DTURfREFUQV9NU0csCisKKyAgICBNU0dfSURfU0RNX0NWQUxfU0NCTV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX1NETV9DVkFMX1NDQk1fU1RPUF9JTkQsCisKKwlNU0dfSURfVkFMX0NTU19SQVRfTU9ERV9DSEdfQ05GLAorI2lmZGVmIF9fQ0FSUklFUl9SRVNUUklDVElPTl9fCisgICAgTVNHX0lEX1NNVV9DVkFMX0NBUlJJRVJfUkVTVFJJQ1RJT05fU1RBVFVTX0lORCwKKyAgICBNU0dfSURfU01VX0NWQUxfQ0FSUklFUl9SRVNUUklDVElPTl9TWU5DX0lORCwKKyAgICBNU0dfSURfQ1ZBTF9TTVVfQ0FSUklFUl9SRVNUUklDVElPTl9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9VSU1fQ1ZBTF9DQVJEX0VSUk9SX0lORF9NU0csCisjZW5kaWYKKyAgICBNU0dfSURfVkRNX0NWQUxfRUNCTV9TVEFSVF9JTkQsCisgICAgTVNHX0lEX1ZETV9DVkFMX0VDQk1fRU5EX0lORCwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9DVkFMX0NPREVfVEFJTCkKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3ZkbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdmRtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU5NmRjNgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3ZkbV9tc2dpZC5oCkBAIC0wLDAgKzEsMzUyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLS0tLQorICogICB2ZG1fbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBpZGVudGl0aWVzIG9mIHRoZSBtZXNzYWdlcyByZWNlaXZlZCBieSBWRE0gYW5kIHRoZSBpZGVudGl0aWVzIG9mCisgKiAgIFZETSBpbnRlcm5hbCBtZXNzYWdlcy4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tLS0tLQorICogLS0tLS0tLQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9WRE1fTVNHSURfSF8KKyNkZWZpbmUgX1ZETV9NU0dJRF9IXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9WRE1fQ09ERV9CRUdJTiApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgPDE+IERlc2l0bmF0aW9uOiBWRE0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvLyA8MS4xPiBGcm9tIEFUUAorCisvLyBmb3IgVkRNIFRSSworTVNHX0lEX1ZETV9BVFBfQ01EX0RJQUxfSU5EID0gTVNHX0lEX1ZETV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9ESUFMX1VSSV9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0RJQUxfRU1FUkdfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9ESUFMX0VNRVJHX1JFVFJZX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfRElBTF9DT05GX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfQ0RWX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfU1RLX0NBTExfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9ESUFMX0NBTExfUFVMTF9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0RJQUxfRlJPTV9MSU5FX0lORCwKKyNpZiBkZWZpbmVkKF9fRUNBTExfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTkdfRUNBTExfU1VQUE9SVF9fKQorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9ESUFMX0VDQUxMX0lORCwKKyNlbmRpZgorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9NVF9DQUxMX0FQUFJPVkVfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9NVF9DQUxMX0FDQ0VQVF9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX01UX1ZUX1NQRUNJQUxfQUNDRVBUX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfSEFOR1VQX0FMTF9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0ZPUkNFX0hBTkdVUF9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0NBTExfUkVMQVRFRF9TU19JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0RUTUZfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9FWFRfRFRNRl9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0VYVF9FUlJPUl9SRVBPUlRfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9MSVNUX0NVUlJFTlRfQ0FMTFNfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9MSVNUX0NVUlJFTlRfQ0FMTFNfRVhUX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfQURTX1JFU1VMVF9SRVBPUlRfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9JTVNfQ0FMTF9FWElTVF9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0VNRVJHX1NFUlZfQ0FUX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfUlRUX0NBUEFCSUxJVFlfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9FTkhfVk9MVEVfU0lfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9DQUxMX05XX1NDQU5fSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9DQUxMX1NUQVRVU19JTkQsCisKKyAgICAvLyBfXzk3X1ZETV9fIG1vdmUgZnJvbSBMNAorICAgIE1TR19JRF9BVFBfVkRNX0NNRF9WTUVNRVhJVF9JTkQsCisgICAgTVNHX0lEX0FUUF9WRE1fQ01EX0VNQ1NTX0lORCwKKyAgICBNU0dfSURfQVRQX1ZETV9DTURfRU1DU19SRVEsCisgICAgTVNHX0lEX0FUUF9WRE1fQ01EX0VDQk1fUkVRLAorCisgICAgLy8gZm9yIFZETSBBRFMKKyAgICBNU0dfSURfVkRNX0FUUF9VRV9NT0RFX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9OQVNfUkVHX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ0VMTF9JTkZPX1VQREFURV9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfSU1TX1JFR19TVEFUVVNfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9BRFNfTU9ERV9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX1dGQ19QUk9GSUxFX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9JTVNfSEFORE9WRVJfU1RBUlRfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0lNU19IQU5ET1ZFUl9FTkRfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9WSURFT19DQVBBQklMSVRZX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfVk9JQ0VfQ0FMTF9QUkVGRVJfQzJLX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfSU1TX0NPTkZJR19JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQ01EX0FEU19ESUdJVFNfVFJOX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfU0VMRl9BQ1RJVkFUSU9OX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9DTURfU1dJVENIX1RPX0VNRVJHRU5DWV9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQzJLX1NFUlZJQ0VfU1RBVEVfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0MyS18xWF9DT05OX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfR01TU19TRVRfSFZPTFRFX01PREVfQ05GLAorICAgIE1TR19JRF9WRE1fQVRQX0VNQ19TRVJWSUNFX1NDQU5fQ05GLAorICAgIE1TR19JRF9WRE1fQVRQX0lNU19ET01BSU5fUFJFRkVSRU5DRV9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfSFZPTFRFX1NJTEVOVF9SRURJQUxfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0VDRkdfU0VUX0lORCwKKyAgICBNU0dfSURfVkRNX0FUUF9SRl9TVEFURV9JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfQzJLX01DQ01OQ19JTkQsCisgICAgTVNHX0lEX1ZETV9BVFBfU1NBQ19SRVNFTF9SRVNVTFRfSU5ELAorICAgIE1TR19JRF9WRE1fQVRQX0NNRF9FVk9EQVRBX0NPTkZJR19JTkQsCisKKyAgICAvLyBmb3IgVkRNIFZDQworICAgIE1TR19JRF9WRE1fQVRQX0NNRF9TUlZDQ19DT05URVhUX1RSQU5TRkVSX0lORCwKKworICAgIC8vIGZvciBWRE0gQ1RSTAorICAgIE1TR19JRF9WRE1fQVRQX0NTX0NDX01UX0NBTExfUklOR19JTkQsCisKKyAgICAvLyBGcm9tIEw0QworICAgIE1TR19JRF9WRE1fTDRDX0ZETl9FQ0NfQ0hFQ0tfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX01PX0NBTExfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0VNRVJHX1NFUlZfQ0FUX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19MSVNUX0NVUlJFTlRfQ0FMTFNfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0VYVF9FUlJPUl9SRVBPUlRfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX1NFTkRfRElHSVRfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0hBTkdVUF9BTExfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0ZPUkNFX0hBTkdVUF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNENfQ1NfQ0NfTVRfQ0FMTF9BQ0NFUFRfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0NBTExfUkVMQVRFRF9TU19DTkYsCisgICAgTVNHX0lEX1ZETV9MNENfQ1NfQ0NfTVRfQ0FMTF9QUkVTRU5UX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19NVF9DQUxMX1NFVFVQX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19DQUxMX0RJU0NPTk5FQ1RfSU5ELAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX0VDUElfVFJBTlNMQVRFX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19DU19DQ19TVEtfQ0FMTF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNENfU0FUX1NFVFVQX0NBTExfSU5ELAorICAgIE1TR19JRF9WRE1fTDRDX0dFVF9TU0FDX1BBUkFNX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Q19VQUNfUEFSQU1fQ0hFQ0tfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX1VBQ19BTExFVklBVElPTl9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfU1JWQ0NfQ09OVEVYVF9UUkFOU0ZFUl9DTkYsCisgICAgTVNHX0lEX1ZETV9MNENfTldfRkVBVFVSRV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfU1JWQ0NfU1RBVFVTX1VQREFURV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfTldfU0VBUkNIX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfVUVNT0RFX1BBUkFNX1VQREFURV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfT09TX1NUQVJUX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19PT1NfRU5EX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19DMktfU0VSVklDRV9TVEFURV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfSU1TX0RPTUFJTl9QUkVGRVJFTkNFX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19SQVRfTU9ERV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfSU5URVJfUkFUX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfUkFESU9fTElOS19RVUFMSVRZX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19SRVBPUlRFRF9SQVRfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19JTVNfQ0FMTF9TQ01fQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0VDQk1fTU9ERV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfR01TU19TRVRfSFZPTFRFX01PREVfQ05GLAorICAgIE1TR19JRF9WRE1fTDRDX0NTX0NDX1NUS19UUl9JTkZPX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Q19BVFRBQ0hFRF9SQVRfSU5ELAorICAgIE1TR19JRF9WRE1fTDRDX0VNRVJHRU5DWV9TRVJWSUNFX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Q19FTUVSR0VOQ1lfU0VSVklDRV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNENfRU1FUkdFTkNZX1NFUlZJQ0VfRkFMTEJBQ0tfQ05GLAorI2lmIGRlZmluZWQoX19FQ0FMTF9TVVBQT1JUX18pIHx8IGRlZmluZWQoX19OR19FQ0FMTF9TVVBQT1JUX18pCisgICAgTVNHX0lEX1ZETV9MNENfQ1NfQ0NfQ0VDQUxMX0NORiwKKyNlbmRpZgorCisgICAgLy8gPDEuMj4gRnJvbSBJTUMKKworICAgIC8vIGZvciBWRE0gVFJLCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX01PX0NBTExfQ05GLAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19TVEtfQ0FMTF9DTkYsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX01PX0NBTExfRE9NQUlOX0NPTkZMSUNUX1JTUCwKKyAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfTU9fQ09ORl9DQUxMX0NORiwKKyAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfTVRfQ0FMTF9QUkVTRU5UX0lORCwKKyAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfTVRfQ0FMTF9TRVRVUF9JTkQsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX01UX0NBTExfQUJPUlRfSU5ELAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19NVF9DQUxMX0FDQ0VQVF9DTkYsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX01UX1ZUX1NQRUNJQUxfQUNDRVBUX0NORiwKKyAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfSEFOR1VQX0FMTF9DTkYsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX0ZPUkNFX0hBTkdVUF9DTkYsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX0NBTExfRElTQ09OTkVDVF9JTkQsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX0NBTExfUFJPR1JFU1NfSU5ELAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19DQUxMX1JFTEFURURfU1NfQ05GLAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19FWFRfRVJST1JfUkVQT1JUX0NORiwKKyAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfU0VORF9ESUdJVF9DTkYsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX1NUQVJUX1NFTkRfRElHSVRfQ05GLAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19TVE9QX1NFTkRfRElHSVRfQ05GLAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19MSVNUX0NVUlJFTlRfQ0FMTFNfQ05GLAorICAgIE1TR19JRF9WRE1fSU1DX0lNU19DQ19BTExPQ19DT05GX0NBTExfSU5ELAorCisgICAgLy8gZm9yIFZETSBBRFMKKyAgICBNU0dfSURfVkRNX0lNQ19BRFNfQ1RSTF9JTkQsCisgICAgTVNHX0lEX1ZETV9JTUNfSU1TX0NDX1NFVF9IVk9MVEVfQ0FMTF9ET01BSU5fQ05GLAorICAgIE1TR19JRF9WRE1fSU1DX1RJTUVSX0VQREdfQ1NfU1RBVFVTX0lORCwKKworICAgIC8vIGZvciBWRE0gVkNDCisgICAgTVNHX0lEX1ZETV9JTUNfU1JWQ0NfQ09OVEVYVF9UUkFOU0ZFUl9JTkQsCisKKyAgICAvLyBmb3IgVkRNIENUUkwKKyAgICBNU0dfSURfVkRNX0lNQ19JTVNfQ0NfTVRfQ0FMTF9SSU5HX0lORCwKKyAgICBNU0dfSURfVkRNX0lNQ19FQ0JNX1NUQVJUX1JTUCwKKyAgICBNU0dfSURfVkRNX0lNQ19FQ0JNX0VORF9SU1AsCisgICAgTVNHX0lEX1ZETV9JTUNfSVNfQ1NfQUxMT1dFRF9SRVEsCisgICAgTVNHX0lEX1ZETV9JTUNfTk9STUFMX1NFUlZJQ0VfU0NBTl9JTkQsCisKKyAgICAvLyBFTkhfVk9MVEVfU0kKKyAgICBNU0dfSURfVkRNX0lNQ19FTkhfVk9MVEVfU0lfQ0FMTF9TVEFUVVNfSU5ELAorCisgICAgLy8gPDEuMz4gRnJvbSBDVkFMCisgICAgTVNHX0lEX1ZETV9DVkFMX0NBTExfU1RBVFVTX0NORiwKKworICAgIC8vIGZvciBWRE0gQURTCisgICAgTVNHX0lEX1ZETV9DVkFMX1NFTkRfRENOX1NUQVJUX0lORCwKKyAgICBNU0dfSURfVkRNX0NWQUxfU0VORF9EQ05fRU5EX0lORCwKKworCisgICAgLy8gPDEuND4gRnJvbSBMNAorICAgIE1TR19JRF9WRE1fTDRDX0lNU19TWVNfSU5GT19JTkQsCisKKyAgICAvLyBmb3IgVkRNIFRSSworICAgIE1TR19JRF9WRE1fTDRCX0MyS19DQ19NT19DQUxMX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfRU1FUkdfQ0FMTF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX1NUS19DQUxMX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfTVRfQ0FMTF9QUkVTRU5UX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfTVRfQ0FMTF9TRVRVUF9JTkQsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX01UX0NBTExfQUNDRVBUX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfSEFOR1VQX0FMTF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX0ZPUkNFX0hBTkdVUF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX0NBTExfRElTQ09OTkVDVF9JTkQsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX0NBTExfUkVMQVRFRF9TU19DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX0VYVF9FUlJPUl9SRVBPUlRfQ05GLAorICAgIE1TR19JRF9WRE1fTDRCX0MyS19DQ19TRU5EX0RJR0lUX0NORiwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfU1RBUlRfU0VORF9ESUdJVF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX1NUT1BfU0VORF9ESUdJVF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX0xJU1RfQ1VSUkVOVF9DQUxMU19DTkYsCisgICAgTVNHX0lEX1ZETV9MNEJfQzJLX0NDX0VDUElfVFJBTlNMQVRFX0lORCwKKyAgICBNU0dfSURfVkRNX0w0Ql9DMktfQ0NfRU1FUkdfU0VSVl9DQVRfQ05GLAorICAgIE1TR19JRF9WRE1fTDRCX0MyS19DQ19MSU5FQ09OX0lORCwKKworICAgIE1TR19JRF9WRE1fTDRCX1NUS19DQUxMX05VTV9JTkQsCisgICAgTVNHX0lEX1ZETV9MNEJfU05EX1NUS19DQUxMX1RSX0NORiwKKyNpZiBkZWZpbmVkKF9fRUNBTExfU1VQUE9SVF9fKSB8fCBkZWZpbmVkKF9fTkdfRUNBTExfU1VQUE9SVF9fKQorICAgIE1TR19JRF9WRE1fTDRCX0NTX0NDX0VDQUxMX0NORiwKKyNlbmRpZiAgICAKKworICAgIC8vIDwxLjU+IGZyb20gR01TUworICAgIE1TR19JRF9WRE1fR01TU19FTUNfU0VSVklDRV9JTkQsCisgICAgTVNHX0lEX1ZETV9HTVNTX0NBTVBJTkdfSU5GT19JTkQsCisgICAgTVNHX0lEX1ZETV9HTVNTX0MyS19TSUxFTlRfUkVESUFMX0lORCwKKyAgICBNU0dfSURfVkRNX0dNU1NfU0VSVklDRV9TQ0FOX0NORiwKKworICAgIC8vIDwxLjY+IEZyb20gTDRDCisgICAgTVNHX0lEX1ZETV9MNENfUkVHX0NPTUJJTkVEX0NBVVNFX0lORCwKKwlNU0dfSURfTDRDVkRNX0RBVEFfQUxMT1dfUkVRLAorI2lmIGRlZmluZWQoX19OR19FQ0FMTF9TVVBQT1JUX18pCisgICAgTVNHX0lEX1ZETV9MNENfRUNBTExfVEVTVF9DQUxMX0FUVEFDSF9DTkYsCisgICAgTVNHX0lEX1ZETV9MNENfRUNBTExfQUJPUlRfVEVTVF9DQUxMX0FUVEFDSF9DTkYsCisjZW5kaWYKKyAgICAvLyA8MS43PiBGcm9tIFNETQorICAgIE1TR19JRF9WRE1fU0RNX0VDQk1fTU9ERV9JTkQsCisKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgPDI+IERlc3RpbmF0aW9uOiBWRE0gVFJLCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICAvLyA8Mi4yPiBGcm9tIFZETSBBRFMKKyAgICBNU0dfSURfVkRNX1RSS19BRFNfSU5JVF9DTkYsCisgICAgTVNHX0lEX1ZETV9UUktfQURTX1NFTEVDVF9DTkYsCisgICAgTVNHX0lEX1ZETV9UUktfQURTX0VORF9DTkYsCisgICAgTVNHX0lEX1ZETV9UUktfQURTX0lNU19IQU5ET1ZFUl9TVEFSVF9JTkQsCisgICAgTVNHX0lEX1ZETV9UUktfQURTX0lNU19IQU5ET1ZFUl9FTkRfSU5ELAorCisgICAgLy8gPDIuMz4gRnJvbSBWRE0gVkNDCisgICAgTVNHX0lEX1ZETV9UUktfVkNDX1NSVkNDX1NUQVJUX0lORCwKKyAgICBNU0dfSURfVkRNX1RSS19WQ0NfU1JWQ0NfRU5EX0lORCwKKyAgICBNU0dfSURfVkRNX1RSS19WQ0NfQ09ORl9TUlZDQ19JTkQsIC8vIGZvciBSMTAgU1JWQ0MKKyAgICBNU0dfSURfVkRNX1RSS19WQ0NfQVRQX1NSVkNDX0NPTlRFWFRfVFJBTlNGRVJfSU5ELAorCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICA8Mz4gRGVzdGluYXRpb246IFZETSBBRFMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgIC8vIDwzLjI+IEZyb20gVkRNIFRSSworICAgIE1TR19JRF9WRE1fVFJLX0FEU19JTklUX1JFUSwKKyAgICBNU0dfSURfVkRNX1RSS19BRFNfU0VMRUNUX1JFUSwKKyAgICBNU0dfSURfVkRNX1RSS19BRFNfRU5EX1JFUSwKKworCisgICAgLy8gPDMuMz4gRnJvbSBWRE0gVkNDCisgICAgTVNHX0lEX1ZETV9BRFNfVkNDX1NSVkNDX1NUQVJUX0lORCwKKyAgICBNU0dfSURfVkRNX0FEU19WQ0NfU1JWQ0NfRU5EX0lORCwKKworCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICA8ND4gRGVzdGluYXRpb246IFZETSBWQ0MKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgICAgLy8gPDQuMj4gRnJvbSBWRE0gVFJLCisgICAgTVNHX0lEX1ZETV9UUktfVkNDX0NPTkZfU1JWQ0NfUlNQLCAvLyBmb3IgUjEwIFNSVkNDCisKKworICAgIC8vIDw0LjM+IEZyb20gVkRNIEFEUworCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgIDw2PiBGb3IgVVQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgIC8vIEZvciBWRE0gVVQKKyAgICBNU0dfSURfVkRNX1VUX0NPTkZJRywKKyAgICBNU0dfSURfVkRNX1VUX1JFQURfU1RBVFVTLAorICAgIE1TR19JRF9WRE1fRFVNUF9DT01NT05fQ09OVEVYVF9JTkQsCisKKyAgICAvLyBGb3IgVkRNIFRSSyBVVAorICAgIE1TR19JRF9WRE1fVFJLX1VUX0NPTkZJRywKKyAgICBNU0dfSURfVkRNX1RSS19VVF9SRUFEX1NUQVRVUywKKyAgICBNU0dfSURfVkRNX1RSS19VVF9TVEFUVVNfUkVQT1JULAorCisgICAgLy8gRm9yIFZETSBBRFMgVVQKKyAgICBNU0dfSURfVkRNX0FEU19VVF9DT05GSUcsCisgICAgTVNHX0lEX1ZETV9BRFNfVVRfUkVBRF9TVEFUVVMsCisgICAgTVNHX0lEX1ZETV9BRFNfVVRfU1RBVFVTX1JFUE9SVCwKKworICAgIC8vIEZvciBWRE0gVkNDIFVUCisgICAgTVNHX0lEX1ZETV9WQ0NfVVRfQ09ORklHLAorICAgIE1TR19JRF9WRE1fVkNDX1VUX1JFQURfU1RBVFVTLAorICAgIE1TR19JRF9WRE1fVkNDX1VUX1NUQVRVU19SRVBPUlQsCisKKyAgICAvLyBGb3IgdXBkYXRlIGNhbGwgc3RhdHVzCisgICAgTVNHX0lEX1ZETV9NRV9DQUxMX1NUQVRVU19SRVEsCisKKyAgICBNU0dfSURfVkRNX0NPREVfRU5ELAorCisgICAgTU9EVUxFX01TR19FTkQoTVNHX0lEX1ZETV9DT0RFX1RBSUwpCisKKworI2VuZGlmIC8vIF9WRE1fTVNHSURfSF8KKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQvdmdtbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdmdtbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyNjAxMTYKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC92Z21tX21zZ2lkLmgKQEAgLTAsMCArMSwxNTMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxOAorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1ZHTU1fTVNHSURfSAorI2RlZmluZSBfVkdNTV9NU0dJRF9ICisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1WR01NX01TR19DT0RFX0JFR0lOLS0tLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9WR01NX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9WR01NX1NUQVJUID0gTVNHX0lEX1ZHTU1fQ09ERV9CRUdJTiwKKworICAgIC8qIEZha2UgdGltZXIgZXhwaXJ5IG1lc3NhZ2UgdXNlZCBmb3IgVVRUL0dUZXN0ICovCisgICAgTVNHX0lEX1ZHTU1fRkFLRV9USU1FUl9FWFBJUlksCisKKyAgICAvKiBNZXNzYWdlcyBmcm9tIE5BU19TViAqLworICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9QTE1OX1NFQVJDSF9BTExPV0VEX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fU1lTX0lORk9fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fU0VUX1JBVF9NT0RFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fTkFTX0NUWFRfVFJBTlNGRVJfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9WR19PUFRJT05fVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fVUVNT0RFX1BBUkFNX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9WR01NX1JFU1VNRV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9WR01NX1NPUl9PUExNTl9MSVNUX1VQREFURV9SU1AsCisgICAgTVNHX0lEX05BU19TVl9WR01NX01BTlVBTF9NT0RFX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9WR01NX1JFR05fU1RBVFVTX1VQREFURV9SRVEsCisgICAgTVNHX0lEX05BU19TVl9WR01NX0lOVkFMSURfU0lNX1JFQ09WRVJfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9DMktfRk9SQ0VfVE9fTE9DQUxfREVUQUNIX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fR0xPQkFMX01PREVfQ0hBTkdFX1NUQVJUX1JFUSwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fTlJSQ19ERUFDVElWQVRFX05URiwKKyAgICBNU0dfSURfTkFTX1NWX1ZHTU1fUExNTl9MSVNUX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9OQVNfU1ZfVkdNTV9OMV9SRUVOQUJMRV9DTEVBUl9GT1JCSURERU5fVEFfTElTVF9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gTlJSQyAgKi8KKyAgICBNU0dfSURfVkdNTV9OUlJDX05BU19DT05UQUlORVJfSU5ELAorCU1TR19JRF9WR01NX05SUkNfTkFTX0NPTlRBSU5FUl9SU1AsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19VQUNfQ0hFQ0tfQ05GLAorICAgIE1TR19JRF9WR01NX05SUkNfVUFDX1NUQVRVU19JTkQsIC8vIFRPRE86IFJlbW92ZQorICAgIE1TR19JRF9WR01NX05SUkNfVUFDX0FMTEVWSUFUSU9OX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0VTVEFCTElTSF9DTkYsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19SRUxFQVNFX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX1NVU1BFTkRfSU5ELAorICAgIE1TR19JRF9WR01NX05SUkNfUkVTVU1FX0NORiwKKyAgICBNU0dfSURfVkdNTV9OUlJDX1JFU1VNRV9JTkQsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19GQUxMQkFDS19JTkQsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19QQUdJTkdfSU5ELAorICAgIE1TR19JRF9WR01NX05SUkNfREFUQV9DTkYsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19EQVRBX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0dFTUlOSV9TVVNQRU5EX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0dFTUlOSV9SRVNVTUVfSU5ELAkKKyAgICBNU0dfSURfVkdNTV9OUlJDX1VTRVJfUExBTkVfUkVTT1VSQ0VTX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0VNRVJHRU5DWV9TVEFUVVNfTkVFREVEX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0RBVEFfSU5BQ1RJVklUWV9JTkQsCisgICAgTVNHX0lEX1ZHTU1fTlJSQ19EQVRBX0FCT1JUX0NORiwKKyAgICBNU0dfSURfVkdNTV9OUlJDX0NBUEFCSUxJVFlfQ0hBTkdFX0lORCwKKyAgICBNU0dfSURfVkdNTV9OUlJDX1JFX0VTVF9DT01QTEVURV9JTkQsCisKKyAgICAvKiBNU0dzIGZyb20gU01TICovCisgICAgTVNHX0lEX1NNU19WR01NX0VTVF9SRVEsCisgICAgTVNHX0lEX1NNU19WR01NX0RBVEFfUkVRLAorCU1TR19JRF9TTVNfVkdNTV9TVEFUVVNfUkVRLAorCU1TR19JRF9TTVNfVkdNTV9TRVNTSU9OX0VORF9SRVEsCisJCisgICAgLyogTVNHcyBmcm9tIFZHU00gKi8KKyAgICBNU0dfSURfVkdTTV9WR01NX0RBVEFfUkVRLAorICAgIE1TR19JRF9WR1NNX1ZHTU1fU1lOQ19QRFVTX1NUQVRVU19SRVEsCisgICAgTVNHX0lEX1ZHU01fVkdNTV9HRVRfUERVU19TVEFUVVNfUlNQLAorICAgIC8qIFRPRE86IERvbid0IGtub3cgeWV0IHdoZXJlIDVHU00gd2FudHMgdGhlc2UgbWVzc2FnZSBJRHMuCisgICAgICAgICAgICAgTW92ZSB0byBhbm90aGVyIGZpbGUgd2hlbiB0aGF0IGlzIGRlY2lkZWQgKi8KKyAgICBNU0dfSURfVkdTTV9WR01NX1JFR0lTVEVSRURfSU5ELAorCisgICAgLy9NU0dzIGZyb20gUkFURE0KKyAgICBNU0dfSURfVkdNTV9SQVRETV9SRUVTVEFCTElTSF9DT05OX0lORCwKKyAgICBNU0dfSURfVkdNTV9SQVRETV9RVUVSWV9VTF9EQVRBX1NUQVRVU19DTkYsCisKKyAgICAvKiBNU0dzIGZyb20gVVBEUyAqLworICAgIE1TR19JRF9VUERTX1ZHTU1fR0VUX1VFX1NUQVRFX0lORElDQVRJT05fUlNQLAorICAgIE1TR19JRF9VUERTX1ZHTU1fREFUQV9SRVEsCisKKyAgICAvKiBNU0dzIHRvIFVSU1AgKi8KKyAgICBNU0dfSURfVVJTUF9WR01NX05TU0FJX0NPTkZJR1VSQVRJT05fSU5ELAorCisgICAgLy9NU0dzIGZyb20gTFBQCisgICAgTVNHX0lEX0xQUF9WR01NX0RBVEFfUkVRLAorCisgICAgLy9NU0dzIGZyb20gUkFDCisgICAgTVNHX0lEX1JBQ19WR01NX0lOSVRfUkVRLCAvLyBWR01NIHRyZWF0ZWQgYXMgUHJvdmlkZXIKKyAgICBNU0dfSURfUkFDX1ZHTU1fU0VUX01TX1NWX1JFUSwKKyAgICBNU0dfSURfUkFDX1ZHTU1fUkVKRUNUX0NBVVNFX01BUFBJTkdfUkVRLAorCU1TR19JRF9SQUNfVkdNTV9JTVNfUkVHX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQUNfVkdNTV9JTVNfU0VSVklDRV9TVEFUVVNfUkVRLAorICAgIE1TR19JRF9SQUNfVkdNTV9JTVNfVUFDX1JFUSwKKyAgICBNU0dfSURfUkFDX1ZHTU1fREFUQV9TRVJWSUNFX1NUQVRVU19VUERBVEVfUkVRLAorICAgIE1TR19JRF9SQUNfVkdNTV9VU0VSX1NFTEVDVEVEX01BSU5fUFNfUkVRLAorICAgIE1TR19JRF9SQUNfVkdNTV9FTUVSR0VOQ1lfU0VSVklDRV9SRVEsCisgICAgTVNHX0lEX1JBQ19WR01NX0VNRVJHRU5DWV9TRVJWSUNFX0ZBTExCQUNLX1JFUSwKKwlNU0dfSURfUkFDX1ZHTU1fR0VUX05TU0FJX1JFUSwKKwlNU0dfSURfUkFDX1ZHTU1fU0VUX05TU0FJX1JFUSwKKwlNU0dfSURfUkFDX1ZHTU1fU0VUX1BSRUZfTlNTQUlfUkVRLAorICAgIE1TR19JRF9SQUNfVkdNTV81R1NMT0NJX0NMRUFSX1JFUSwKKyAgICBNU0dfSURfUkFDX1ZHTU1fSU1TX1VBQ19BQk9SVF9SRVEsCisKKyAgICAvL01TR3MgZnJvbSBERE0KKyAgICBNU0dfSURfRERNX1ZHTU1fQ1JMQUROX1JFUSwKKworICAgIC8vTVNHcyBmcm9tIFVQQ00KKyAgICBNU0dfSURfVkdNTV9VUENNX1NUQVJUX1JFTEVBU0VfUEFHSU5HX1RJTUVSX0lORCwKKworICAgIC8qIE1TRyBmb3IgZHVtcCBOQVNNU0cgKi8KKyAgICBNU0dfSURfVkdNTV9OQVNNU0dfRFVNUF9JTkQsCisgICAgTVNHX0lEX1ZHTU1fVFNUX01TR19EVU1QX0lORCwKKworICAgIC8qIE1TRyBmb3IgZHVtcCBWR01NIGNvbnRleHQgKi8KKyAgICBNU0dfSURfVkdNTV9DT05URVhUX0RVTVBfSU5ELAorCisgICAgTVNHX0lEX1ZHTU1fRU5ELAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1ZHTU1fQ09ERV9UQUlMICkKKyNlbmRpZgorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBWR01NX01TR19DT0RFX0VORC0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Znc21fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3Znc21fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTQyYTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvdmdzbV9tc2dpZC5oCkBAIC0wLDAgKzEsMjEzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICAKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAKKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfVkdTTV9NU0dJRF9ICisjZGVmaW5lIF9WR1NNX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1ZHU01fQ09ERV9CRUdJTiApCitNU0dfSURfVkdTTV9NU0dfSURfU1RBUlQgPSBNU0dfSURfVkdTTV9DT0RFX0JFR0lOLAorICAgIC8qIFNNIENvcmUgPC0+IFNNIENvbm4gKi8KKyAgICBNU0dfSURfVkdTTV9DT05OX0lEX1NUQVJULAorICAgIE1TR19JRF9WR1NNX0NPTk5fU0VORF9SRVEsCisgICAgTVNHX0lEX1ZHU01fQ09OTl9TRU5EX0NORiwKKyAgICBNU0dfSURfVkdTTV9DT05OX1NFTkRfRkFJTCwKKyAgICBNU0dfSURfVkdTTV9DT05OX0hVUlJZX1VQX1RIRV9TRU5EX1JFUSwKKyAgICBNU0dfSURfVkdTTV9DT05OX0ZPUkdFVF9USEVfU0VORF9SRVEsCisgICAgTVNHX0lEX1ZHU01fQ09OTl9BQk9SVF9BTExfUERVX1NFU1NJT05fT05HT0lOR19QUk9DX0lORCwKKyAgICBNU0dfSURfVkdTTV9DT05OX0NPTk5FQ1RJT05fTk9UX0dPT0RfSU5ELAorCisgICAgLyogU00gQUwgPC0+IFNNIENvcmUgKi8KKyAgICBNU0dfSURfVkdTTV9JTklUX1BEVV9TRVNTSU9OX01PRF9SRVEsCisgICAgTVNHX0lEX1ZHU01fSU5JVF9QRFVfU0VTU0lPTl9SRUxfUkVRLAorICAgIE1TR19JRF9WR1NNX0FCT1JUX1RISVNfUERVX1NFU1NJT05fUFJPQ19OVEYsCisgICAgTVNHX0lEX1ZHU01fRk9SQ0VfTE9DQUxfUkVMRUFTRV9QRFVfU0VTU0lPTl9OVEYsCisKKyAgICAvKiBNU0dzIGZyb20gUEFNICovCisgICAgTVNHX0lEX1BBTV9WR1NNX0lEX1NUQVJUICAgID0gTVNHX0lEX1ZHU01fQ09OTl9JRF9TVEFSVCArIDMwLCAgIC8vIFZHU01fQ09OTl9JRF9OVU0gPSAzMAorICAgIE1TR19JRF9QQU1fVkdTTV9QRFVfU0VTU0lPTl9FU1RfUkVRLAorICAgIE1TR19JRF9QQU1fVkdTTV9QRFVfU0VTU0lPTl9NT0RfUkVRLAorICAgIE1TR19JRF9QQU1fVkdTTV9QRFVfU0VTU0lPTl9SRUxfUkVRLAorICAgIE1TR19JRF9QQU1fVkdTTV9DT05HRVNUSU9OX1VQREFURV9SRVEsCisKKyAgICAvKiBNU0dzIGZyb20gVkdNTSAqLworICAgIE1TR19JRF9WR1NNX1ZHTU1fSURfU1RBUlQgICA9IE1TR19JRF9QQU1fVkdTTV9JRF9TVEFSVCArIDIwLCAgICAvLyBQQU1fVkdTTV9JRF9OVU0gPSAyMAorCisgICAgTVNHX0lEX1ZHU01fVkdNTV9EQVRBX0NORiwKKyAgICBNU0dfSURfVkdTTV9WR01NX0RBVEFfSU5ELAorICAgIE1TR19JRF9WR1NNX1ZHTU1fU1VTUEVORF9JTkQsCisgICAgTVNHX0lEX1ZHU01fVkdNTV9SRVNVTUVfSU5ELAorICAgIE1TR19JRF9WR1NNX1ZHTU1fVVBEQVRFX1BEVVNfU1RBVFVTX0lORCwKKyAgICBNU0dfSURfVkdTTV9WR01NX0dFVF9QRFVTX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX1ZHU01fVkdNTV9MQUROX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfVkdTTV9WR01NX0xBRE5fSU5PVVRfSU5ELAorICAgIE1TR19JRF9WR1NNX1ZHTU1fREVSRUdfSU5ELAorICAgIE1TR19JRF9WR1NNX1ZHTU1fQ0FQQUJJTElUWV9VUERBVEVfSU5ELAorICAgIE1TR19JRF9WR1NNX1ZHTU1fU1RPUF9DT05HRVNUSU9OX1RJTUVSU19JTkQsCisgICAgTVNHX0lEX1ZHU01fVkdNTV9FTlRFUl9FTUVSR0VOQ1lfUkVHSVNUUkFUSU9OX0lORCwKKyAgICBNU0dfSURfVkdTTV9WR01NX0xFQVZFX0VNRVJHRU5DWV9SRUdJU1RSQVRJT05fSU5ELAorICAgIE1TR19JRF9WR1NNX1ZHTU1fUkJfVVBEQVRFX0lORCwKKyAgICBNU0dfSURfVkdTTV9WR01NX0FTX0NPTk5FQ1RJT05fRVZFTlRfSU5ELAorCisgICAgLyogTVNHcyBmcm9tIFJBVERNICovCisgICAgTVNHX0lEX1ZHU01fUkFURE1fSURfU1RBUlQgID0gTVNHX0lEX1ZHU01fVkdNTV9JRF9TVEFSVCArIDMwLCAgIC8vIFZHU01fVkdNTV9JRF9OVU0gPSAzMAorCisgICAgLyogTVNHcyBmcm9tIE5BU19TViAqLworICAgIE1TR19JRF9OQVNfU1ZfVkdTTV9JRF9TVEFSVCA9IE1TR19JRF9WR1NNX1JBVERNX0lEX1NUQVJUICsgMTAsICAvLyBWR1NNX1JBVERNX0lEX05VTSA9IDEwCisgICAgTVNHX0lEX05BU19TVl9WR1NNX0dFTUlOSV9SRVNVTUVfUkVRLAorICAgIAorICAgIC8qIE1TR3MgZnJvbSBFU00gKi8KKyAgICBNU0dfSURfRVNNX1ZHU01fSURfU1RBUlQgICAgPSBNU0dfSURfTkFTX1NWX1ZHU01fSURfU1RBUlQgKyAxMCwgLy8gTkFTX1NWX1ZHU01fSURfTlVNID0gMTAKKyAgICBNU0dfSURfRVNNX1ZHU01fQVRUQUNIX1BETl9BQ1RJVkFURURfSU5ELAorICAgIE1TR19JRF9FU01fVkdTTV9DT05URVhUX1RSQU5TRkVSX1JFUV9OVEYsCisKKyAgICAvKiBNU0dzIGZyb20gVEZUTElCICovCisgICAgTVNHX0lEX1RGVExJQl9WR1NNX0lEX1NUQVJUID0gTVNHX0lEX0VTTV9WR1NNX0lEX1NUQVJUICsgMTAsICAgIC8vIEVTTV9WR1NNX0lEX05VTSA9IDEwCisgICAgTVNHX0lEX1RGVExJQl9WR1NNX1JRT1NfVVBEQVRFX1JFUSwKKworICAgIC8qIE1TR3MgZnJvbSBPdGhlcnMgKi8KKyAgICBNU0dfSURfVkdTTV9PVEhFUlNfSURfU1RBUlQgPSBNU0dfSURfVEZUTElCX1ZHU01fSURfU1RBUlQgKyAxMCwgICAgLy8gVEZUTElCX1ZHU01fSURfTlVNID0gMTAKKyAgICBNU0dfSURfVkdTTV9ERUJVR19USU1FUl9TVEFSVEVELCAgLy9mb3IgVGltZXIgRGVidWcKKyAgICBNU0dfSURfVkdTTV9ERUJVR19USU1FUl9TVE9QUEVELCAgLy9mb3IgVGltZXIgRGVidWcKKyAgICBNU0dfSURfVkdTTV9ERUJVR19USU1FUl9FWFBJUkVELCAgLy9mb3IgVGltZXIgRGVidWcKKyAgICBNU0dfSURfVkdTTV9VVF9GUklFTkRMWV9EQVRBX0lORCwKKyAgICBNU0dfSURfVkdTTV9ERUJVR19BU1NFUlRfSEFQUEVORUQsCisgICAgTVNHX0lEX1ZHU01fREVCVUdfUERVX1NFU1NJT05fQ09OVEVYVF9JTkZPLAorICAgIE1TR19JRF9WR1NNX0RFQlVHX1BUX0NPTlRFWFRfSU5GTywKKyAgICBNU0dfSURfVkdTTV9ERUJVR19JQ0RfUkVQT1JUX01TR19JTkZPLAorICAgIE1TR19JRF9WR1NNX0RFQlVHX1BEVVNfQ1RYX0ZST01fU01JQywKKyAgICBNU0dfSURfVkdTTV9ERUJVR19UUkFOU0ZFUl9QRFVTX0lORk8sCisgICAgTVNHX0lEX1ZHU01fREVCVUdfREFUQV9JTkQsCisgICAgTVNHX0lEX1ZHU01fREVCVUdfVVNJUl9DTEVBTl9PVEFfTVNHLAorICAgIE1TR19JRF9WR1NNX0RFQlVHX1VTSVJfRFVNUF9DT05URVhULAorICAgIE1TR19JRF9MNENfVkdTTV9WRE1fSU1TX1ZPSUNFX1NUQVRVU19OVEYsCisKK01TR19JRF9WR1NNX01TR19JRF9FTkQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1ZHU01fQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9WR1NNX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3dpZmlfcHJveHlfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3dpZmlfcHJveHlfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDZhZWFhCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQvd2lmaV9wcm94eV9tc2dpZC5oCkBAIC0wLDAgKzEsMTExIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB3aWZpX3Byb3h5X21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVk1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBXSUZJIFByb3h5IG1zZ2lkIGRlZmluaXRpb24uCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA3IDA5IDIwMjAgcG8tY2h1bi5sZWUKKyAqIFtNT0xZMDA1NDQzMDldIFtVU0lNXVtHLjguMV0gdGNwaXAgYW5kIHdpZmlwcm94eQorICogCQorICogCS4KKyAqCisgKiAwNyAxNSAyMDE5IGtvbmFyay5tZWhyYQorICogW01PTFkwMDQxMTkxNF0gW05ldyBmZWF0dXJlIGNoZWNrLWluc10gV0lGSSBQcm94eSBmZWF0dXJlIGNoZWNrLWlucworICogCQorICogCVdpZmkgUHJveHkgY2hlY2staW5zCisgKgorICogMDQgMDQgMjAxOSBrb25hcmsubWVocmEKKyAqIFtNT0xZMDAzNTg2MTZdIFtXSUZJIFByb3h5XSBGZWF0dXJlIGRldmVsb3BtZW50CisgKiAJCisgKiAJQ2hhbmdlIGRlc2NyaXB0aW9uOgorICogCTEuIEFkZCBuZXcgaW50ZXJmYWNlcy4KKyAqIAkyLiBCdWcgZml4ZXMKKyAqIAkzLiBJbnRlZ3JhdGUgd2l0aCBLYWwgYW5kIERITAorICogCTQuIEVycm9yIGhhbmRsaW5nCisgKiAJNC4gVXBkYXRlIFhHRU4gSU5DCisgKgorICogMDMgMTIgMjAxOSBrb25hcmsubWVocmEKKyAqIFtNT0xZMDAzNTg2MTZdIFtXSUZJIFByb3h5XSBGZWF0dXJlIGRldmVsb3BtZW50CisgKiAJV0lGSSBQcm94eSBmZWF0dXJlIGNoZWNrLWlucyBbNzcwOTY2OF0KKyAqCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2lmbmRlZiBfX1dJRklfUFJPWFlfTVNHSURfSAorI2RlZmluZSBfX1dJRklfUFJPWFlfTVNHSURfSAorCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9XSUZJX1BST1hZX0NPREVfQkVHSU4pCisgICAgTVNHX0lEX1dJRklfUFJPWFlfQkVHSU4gPSBNU0dfSURfV0lGSV9QUk9YWV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9XSUZJUFJPWFlfVUxfUEtUX0VOUVVFVUUgPSBNU0dfSURfV0lGSV9QUk9YWV9CRUdJTiwKKyAgICBNU0dfSURfV0lGSVBST1hZX0RMX1BLVF9FTlFVRVVFLAorICAgIE1TR19JRF9XSUZJUFJPWFlfRklMVEVSX0NCX0lORCwKKyAgICBNU0dfSURfV0lGSVBST1hZX0NCX0lORCA9IE1TR19JRF9XSUZJUFJPWFlfRklMVEVSX0NCX0lORCwKKyAgICBNU0dfSURfV0lGSVBST1hZX0ZJTFRFUl9FTlFVRVVFLAorICAgIE1TR19JRF9XSUZJUFJPWFlfRklMVEVSX0RFUkVHX0VOUVVFVUUsCisgICAgTVNHX0lEX1dJRklQUk9YWV9CVUZGRVJfUkVMRUFTRV9JTkQsCisgICAgTVNHX0lEX1dJRklQUk9YWV9GSUxURVJfUEFSQU1fVVBEQVRFLAorICAgIE1TR19JRF9XSUZJUFJPWFlfUEFUSF9DT05GSUcsCisgICAgTVNHX0lEX1dJRklQUk9YWV9NTF9GSUxURVJfQ0JfSU5ELAorCisgICAgTVNHX0lEX01OV0lfV0lGSV9TVEFUVVNfSU5ELAorICAgIE1TR19JRF9NTldJX1RYX1JFUSwKKyAgICBNU0dfSURfTU5XSV9SWF9SRVEsCisgICAgTVNHX0lEX1VXRl9USUNLX0lORCwKKworICAgIE1TR19JRF9XSUZJX1BST1hZX0VORCwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9XSUZJX1BST1hZX0NPREVfVEFJTCkKKworI2VuZGlmICAvKiAhX19XSUZJX1BST1hZX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kL3dvX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC93b19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNDRlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC93b19tc2dpZC5oCkBAIC0wLDAgKzEsMTMwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9XT19NU0dJRF9ICisjZGVmaW5lIF9XT19NU0dJRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9XT19DT0RFX0JFR0lOICkKKworICAgIC8vIEZyb20gRFNCUAorICAgIE1TR19JRF9XT19EU0JQX1JFQ09ORklHVVJFX0lORCA9IE1TR19JRF9XT19DT0RFX0JFR0lOLAorCisgICAgLy8gRnJvbSBBVFAKKyAgICBNU0dfSURfQVRQX1dPX0VXSUZJQVNDX1JFUSwKKyAgICBNU0dfSURfQVRQX1dPX0VXSUZJQUREUl9SRVEsCisgICAgTVNHX0lEX0FUUF9XT19FV0lGSU5BVFRfUkVRLAorICAgIE1TR19JRF9BVFBfV09fRUlNU0dFT19SRVEsCisgICAgTVNHX0lEX0FUUF9XT19FUFZTU0VUX1JFUSwKKyAgICBNU0dfSURfQVRQX1dPX0VXT0NGR1NFVF9SRVEsCisgICAgTVNHX0lEX0FUUF9XT19FV09DRkdHRVRfUkVRLAorICAgIE1TR19JRF9BVFBfV09fRUVQREdfUkVRLAorICAgIE1TR19JRF9BVFBfV09fRUNGR0RSUF9SRVEsCisgICAgTVNHX0lEX0FUUF9XT19FSUZDT05GSUdfUkVRLAorICAgIE1TR19JRF9BVFBfV09fRVBPRl9SRVEsCisgICAgTVNHX0lEX0FUUF9XT19FV09URVNUX1JFUSwKKworICAgIC8vIEZyb20gRDJSTQorICAgIE1TR19JRF9EMlJNX1dPX0FDVF9EQVRBX0NBTExfUkVRLAorICAgIE1TR19JRF9EMlJNX1dPX0RFQUNUX0RBVEFfQ0FMTF9SRVEsCisgICAgTVNHX0lEX0QyUk1fV09fQUJPUlRfREFUQV9DQUxMX1JFUSwKKyAgICBNU0dfSURfRDJSTV9XT19QRE5fSE9fTk9USUZZX1JFUSwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfREFUQV9DQUxMX0xJU1RfUkVRLAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9EWU5BTUlDX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfUERQX0FERFJFU1NfUkVRLAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9TRUNPTkRBUllfRFlOQU1JQ19QQVJBTV9SRVEsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX1FPU19SRVEsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX1RGVF9SRVEsCisgICAgTVNHX0lEX0QyUk1fV09fU0VUX1BBQ0tFVF9GSUxURVJfUkVRLAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9QQUNLRVRfRklMVEVSX1JFUSwKKyAgICBNU0dfSURfRDJSTV9XT19NT0RJRllfREFUQV9DQUxMX1JFUSwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfUkVUUllUTVJfUkVRLAorICAgIE1TR19JRF9EMlJNX1dPX1NFVF9SRVRSWVRNUl9SRVEsCisKKyAgICBNU0dfSURfV09fRDJSTV9HRVRfRVBER19JTkZPX0NORiwKKyAgICBNU0dfSURfV09fRDJSTV9HRVRfRVBER19JTkZPX0lORCwKKworICAgIE1TR19JRF9EMlJNX1dPX1BETl9CSU5EX1JFUSwKKyAgICBNU0dfSURfRDJSTV9XT19QRE5fVU5CSU5EX1JFUSwKKworICAgIC8vIFRvIEQyUk0KKyAgICBNU0dfSURfRDJSTV9XT19BQ1RfREFUQV9DQUxMX0NORiwKKyAgICBNU0dfSURfRDJSTV9XT19ERUFDVF9EQVRBX0NBTExfQ05GLAorICAgIE1TR19JRF9EMlJNX1dPX0FCT1JUX0RBVEFfQ0FMTF9DTkYsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX0RBVEFfQ0FMTF9MSVNUX0NORiwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfRFlOQU1JQ19QQVJBTV9DTkYsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX1BEUF9BRERSRVNTX0NORiwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfU0VDT05EQVJZX0RZTkFNSUNfUEFSQU1fQ05GLAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9RT1NfQ05GLAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9URlRfQ05GLAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9QQUNLRVRfRklMVEVSX0NORiwKKyAgICBNU0dfSURfRDJSTV9XT19TRVRfUEFDS0VUX0ZJTFRFUl9DTkYsCisgICAgTVNHX0lEX0QyUk1fV09fTU9ESUZZX0RBVEFfQ0FMTF9DTkYsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX1JFVFJZVE1SX0NORiwKKyAgICBNU0dfSURfRDJSTV9XT19TRVRfUkVUUllUTVJfQ05GLAorCisgICAgTVNHX0lEX0QyUk1fV09fUEROX0RJU0NPTk5fSU5ELAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9EQVRBX0NBTExfTElTVF9JTkQsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX0RZTkFNSUNfUEFSQU1fSU5ELAorICAgIE1TR19JRF9EMlJNX1dPX0dFVF9QRFBfQUREUkVTU19JTkQsCisgICAgTVNHX0lEX0QyUk1fV09fR0VUX1NFQ09OREFSWV9EWU5BTUlDX1BBUkFNX0lORCwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfUU9TX0lORCwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfVEZUX0lORCwKKyAgICBNU0dfSURfRDJSTV9XT19HRVRfUEFDS0VUX0ZJTFRFUl9JTkQsCisgICAgTVNHX0lEX0QyUk1fV09fUElOR19TVEFUVVNfSU5ELAorICAgIE1TR19JRF9EMlJNX1dPX01PRElGWV9EQVRBX0NBTExfSU5ELAorICAgIE1TR19JRF9EMlJNX1dPX1JTVF9SRVRSWVRNUl9JTkQsCisKKyAgICBNU0dfSURfV09fRDJSTV9HRVRfRVBER19JTkZPX1JFUSwKKworICAgIE1TR19JRF9EMlJNX1dPX1BETl9CSU5EX0NORiwKKyAgICBNU0dfSURfRDJSTV9XT19QRE5fVU5CSU5EX0NORiwKKworICAgIC8vIEZyb20gSVdMQU4KKyAgICBNU0dfSURfSVdMQU5fV09fRFBEX1JFUSwKKworICAgIC8vIFRvIElXTEFOCisgICAgTVNHX0lEX0lXTEFOX1dPX0RQRF9DTkYsCisgICAgTVNHX0lEX0lXTEFOX1dPX1NUQVRVU19JTkQsCisgICAgTVNHX0lEX0lXTEFOX1dPX01PQklLRV9JTkQsCisKKyAgICAvLyBUbyBpbnRlcm5hbCBtb2R1bGUKKyAgICBNU0dfSURfV09fQURQVF9QRU5ESU5HX1dPTVNHX1JFUSwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9XT19DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX1dPX01TR0lEX0gKKwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWQveGNhcF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWQveGNhcF9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzNDlhNmUKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC94Y2FwX21zZ2lkLmgKQEAgLTAsMCArMSwyNzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyAqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorICogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisgKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisgKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDAxCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgeGNhcF9tc2dpZC5oCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgWENBUCByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfWENBUF9NU0dJRF9ICisjZGVmaW5lIF9YQ0FQX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX1hDQVBfQ09ERV9CRUdJTiApIAorLy8gTU9EX1hDQVAKKy8qIEFUUCAtLT4gWENBUCBDbGllbnQgKi8KK01TR19JRF9BVFBfWENBUF9JTVNfUkVHX1NUQVRVU19JTkQsCitNU0dfSURfQVRQX1hDQVBfWFVJX0lORk9fSU5ELAorTVNHX0lEX0FUUF9YQ0FQX0VHQkFfQVRDTURfUkVRLAorTVNHX0lEX0FUUF9YQ0FQX0VYQ0FQVUFTX0lORCwKKy8vIEFUUCAtLT4gTU9EX1hDQVBfQ00KK01TR19JRF9BVFBfWENBUF9DT05OX01HUl9FR1JFR19JTkQsIC8vZ2V0IHBzIHN0YXRlCitNU0dfSURfQVRQX1hDQVBfQ09OTl9NR1JfRUlSRUdfSU5ELCAvL2dldCBpbXMgcmF0CitNU0dfSURfQVRQX1hDQVBfRUNOQ0ZHX0lORCwgICAgICAgICAvL2dldCBtb2JpbGUgZGF0YSBhbmQgcm9hbWluZworTVNHX0lEX0FUUF9YQ0FQX0VWT0RBVEFfSU5ELCAgICAgICAgLy9nZXQgdm9kYXRhIHN0YXRlCisKKy8vIE1PRF9YQ0FQX0NMSUVOVAorTVNHX0lEX1NTRFNfWENBUF9TU19BVENNRF9SRVEsCitNU0dfSURfU1NEU19YQ0FQX1NTX0NTRkJfU1RBUlRfUkVRLAorTVNHX0lEX1hDQVBfQ0xJRU5UX01HUl9FWEVfVElNRU9VVF9JTkQsCitNU0dfSURfWENBUF9TSU1fTUdSX0ZPUkNFX0FCT1JUX0lORCwKK01TR19JRF9YQ0FQX1NJTV9NR1JfRk9SQ0VfQUJPUlRfQ05GLAorTVNHX0lEX1NTRFNfWENBUF9TVEtTU19SRVEsCisKKy8vIE1PRF9YQ0FQX0NNCitNU0dfSURfWENBUF9DT05OX01HUl9DUkVBVEVfQ09OTkVDVElPTl9SRVEsCitNU0dfSURfWENBUF9DT05OX01HUl9DUkVBVEVfQ09OTkVDVElPTl9SU1AsCitNU0dfSURfWENBUF9DT05OX01HUl9DTE9TRV9DT05ORUNUSU9OX0lORCwKK01TR19JRF9YQ0FQX0NPTk5fTUdSX0NMT1NFX0NPTk5FQ1RJT05fQ05GLAorTVNHX0lEX1hDQVBfQ09OTl9NR1JfRElTQ09OTkVDVElPTl9SRVEsCitNU0dfSURfWENBUF9DT05OX01HUl9ESVNDT05ORUNUSU9OX1JTUCwKK01TR19JRF9YQ0FQX0NPTk5fTUdSX1NJTV9FUlJPUl9JTkQsCitNU0dfSURfWENBUF9DT05OX01HUl9TSU1fRVJST1JfQ05GLAorTVNHX0lEX1hDQVBfQ09OTl9NR1JfU1NfQVRDTURfQ05GLAorTVNHX0lEX1hDQVBfQ09OTl9NR1JfTk9fUEROX1JFTEVBU0VfSU5ELAorTVNHX0lEX1hDQVBfQ09OTl9NR1JfTk9fUFNfQ09OVElOVUVfQ1JFQVRFX0lORCwKK01TR19JRF9YQ0FQX0NPTk5fTUdSX1JFTEVBU0VfVElNRU9VVF9JTkQsCitNU0dfSURfWENBUF9DT05OX01HUl9SRVRSWV9USU1FT1VUX0lORCwKKy8vIE1PRF9YQ0FQX1NJTV9NR1IKK01TR19JRF9YQ0FQX1NJTV9NR1JfUVVFUllfU0lNX0lORk9fUkVRLAorTVNHX0lEX1hDQVBfU0lNX01HUl9RVUVSWV9TSU1fSU5GT19SU1AsCitNU0dfSURfWENBUF9TSU1fTUdSX0dCQV9BVVRIX1JFUSwKK01TR19JRF9YQ0FQX1NJTV9NR1JfR0JBX0FVVEhfUlNQLAorTVNHX0lEX1hDQVBfU0lNX01HUl9BS0FfQVVUSF9SRVEsCitNU0dfSURfWENBUF9TSU1fTUdSX0FLQV9BVVRIX1JTUCwKK01TR19JRF9YQ0FQX1NJTV9NR1JfR0JBQlBfV1JJVEVfUkVRLAorTVNHX0lEX1hDQVBfU0lNX01HUl9HQkFCUF9XUklURV9SU1AsCitNU0dfSURfWENBUF9TSU1fTUdSX1NJTV9FUlJPUl9JTkQsCitNU0dfSURfWENBUF9TSU1fTUdSX1NJTV9FUlJPUl9DTkYsCisvLyBNT0RfWENBUF9DT05GSUcKK01TR19JRF9YQ0FQX0NPTkZJR19SRUNPTkZJR19JTkQsCitNU0dfSURfWENBUF9DT05GSUdfUkVDT05GSUdfQ05GLAorTVNHX0lEX1hDQVBfQ09ORklHX0RTQlBfUkVDT05GSUdfSU5ELAorTVNHX0lEX1hDQVBfQ09ORklHX0RTQlBfUkVDT05GSUdfQ05GLAorTVNHX0lEX0FUUF9YQ0FQX0VYQ0FQQ0ZHU0VUX1JFUSwKK01TR19JRF9BVFBfWENBUF9FWENBUENGR0dFVF9SRVEsCitNU0dfSURfWENBUF9DT05GSUdfRFVNUF9SRVEsCitNU0dfSURfWENBUF9DT05GSUdfRFVNUF9DTkYsCisvLyBNT0RfWENBUF9HQkEKKworTVNHX0lEX1hDQVBfR0JBX1VBX1NFTkRfUkVRLAorTVNHX0lEX1hDQVBfR0JBX1VBX1NFTkRfUlNQLAorTVNHX0lEX1hDQVBfR0JBX1VBX1NJTV9FUlJPUl9JTkQsCitNU0dfSURfWENBUF9HQkFfVUFfU0lNX0VSUk9SX0NORiwKK01TR19JRF9YQ0FQX0dCQV9VQV9GT1JDRV9BQk9SVF9JTkQsCitNU0dfSURfWENBUF9HQkFfVUFfRk9SQ0VfQUJPUlRfQ05GLAorTVNHX0lEX1hDQVBfR0JBX1VCX1NFTkRfUkVRLAorTVNHX0lEX1hDQVBfR0JBX1VCX1NFTkRfUlNQLAorTVNHX0lEX1hDQVBfR0JBX1VCX1NJTV9FUlJPUl9JTkQsCitNU0dfSURfWENBUF9HQkFfVUJfU0lNX0VSUk9SX0NORiwKK01TR19JRF9YQ0FQX0dCQV9VQl9GT1JDRV9BQk9SVF9JTkQsCitNU0dfSURfWENBUF9HQkFfVUJfRk9SQ0VfQUJPUlRfQ05GLAorTVNHX0lEX1hDQVBfR0JBX1VCX0FUX0VHQkFfUkVRLAorTVNHX0lEX1hDQVBfR0JBX1VCX0FUX0VHQkFfUlNQLAorTVNHX0lEX1hDQVBfR0JBX1JFQURZX0lORCwKK01TR19JRF9YQ0FQX0dCQV9SRUFEWV9DTkYsCisKKy8vIE1PRF9YQ0FQX0hUVFBfQ09OTkVDVElPTgorTVNHX0lEX1hDQVBfSFRUUF9DT05ORUNUSU9OX1JFQURZX0lORCwKK01TR19JRF9YQ0FQX0hUVFBfQ09OTkVDVElPTl9SRUFEWV9DTkYsCitNU0dfSURfWENBUF9IVFRQX0NPTk5FQ1RJT05fU0VORF9IVFRQX1JFUSwKK01TR19JRF9YQ0FQX0hUVFBfQ09OTkVDVElPTl9TRU5EX0hUVFBfUlNQLAorTVNHX0lEX1hDQVBfSFRUUF9DT05ORUNUSU9OX1BETl9PTl9JTkQsCitNU0dfSURfWENBUF9IVFRQX0NPTk5FQ1RJT05fUEROX09GRl9JTkQsCitNU0dfSURfWENBUF9IVFRQX0NPTk5FQ1RJT05fRk9SQ0VfQUJPUlRfSU5ELAorTVNHX0lEX1hDQVBfSFRUUF9DT05ORUNUSU9OX0ZPUkNFX0FCT1JUX0NORiwKK01TR19JRF9YQ0FQX0hUVFBfQ09OTkVDVElPTl9GT1JDRV9DTE9TRV9DT05ORUNUSU9OX0lORCwKKworLy8gTU9EX1hDQVBfRE5TCitNU0dfSURfWENBUF9ETlNfTkFQVFJfUkVTT0xWRV9SRVEsCitNU0dfSURfWENBUF9ETlNfTkFQVFJfUkVTT0xWRV9SU1AsCitNU0dfSURfWENBUF9ETlNfQV9BQUFfUkVTT0xWRV9SRVEsCitNU0dfSURfWENBUF9ETlNfQV9BQUFfUkVTT0xWRV9SU1AsCisKKy8vIHBsZWFzZSBhbGlnbiB0aGVzZSBtc2dfaWQgd2l0aCBBUCBzaWRlCisvLyBNT0RfWENBUF9IVFRQX0RFTEVHQVRFCisjaWYgIWRlZmluZWQoX19IVFRQX1RMU19TVVBQT1JUX18pCitNU0dfSURfWENBUF9BUF9TSURFX01PRFVMRV9TVEFSVCwKK01TR19JRF9YQ0FQX0hUVFBfREVMRUdBVEVfU0VORF9IVFRQX1JFUSA9IE1TR19JRF9YQ0FQX0FQX1NJREVfTU9EVUxFX1NUQVJULAorTVNHX0lEX1hDQVBfSFRUUF9ERUxFR0FURV9TRU5EX0hUVFBfUlNQLAorTVNHX0lEX1hDQVBfSFRUUF9ERUxFR0FURV9SRUFEWV9JTkQsCitNU0dfSURfWENBUF9IVFRQX0RFTEVHQVRFX1JFQURZX0NORiwKK01TR19JRF9YQ0FQX0FQX1NJREVfTU9EVUxFX0VORCwKKyNlbHNlCitNU0dfSURfWENBUF9IVFRQX1RMU19TRU5EX0hUVFBfUkVRLAorTVNHX0lEX1hDQVBfQVBfU0lERV9NT0RVTEVfU1RBUlQgPSBNU0dfSURfWENBUF9IVFRQX1RMU19TRU5EX0hUVFBfUkVRLAorTVNHX0lEX1hDQVBfSFRUUF9ERUxFR0FURV9TRU5EX0hUVFBfUkVRID0gTVNHX0lEX1hDQVBfSFRUUF9UTFNfU0VORF9IVFRQX1JFUSwKK01TR19JRF9YQ0FQX0hUVFBfVExTX1NFTkRfSFRUUF9SU1AsCitNU0dfSURfWENBUF9IVFRQX0RFTEVHQVRFX1NFTkRfSFRUUF9SU1AgPSBNU0dfSURfWENBUF9IVFRQX1RMU19TRU5EX0hUVFBfUlNQLAorTVNHX0lEX1hDQVBfSFRUUF9UTFNfUkVBRFlfSU5ELAorTVNHX0lEX1hDQVBfSFRUUF9ERUxFR0FURV9SRUFEWV9JTkQgPSBNU0dfSURfWENBUF9IVFRQX1RMU19SRUFEWV9JTkQsCitNU0dfSURfWENBUF9IVFRQX1RMU19SRUFEWV9DTkYsCitNU0dfSURfWENBUF9IVFRQX0RFTEVHQVRFX1JFQURZX0NORiA9IE1TR19JRF9YQ0FQX0hUVFBfVExTX1JFQURZX0NORiwKK01TR19JRF9YQ0FQX0hUVFBfVExTX0VORCwKK01TR19JRF9YQ0FQX0FQX1NJREVfTU9EVUxFX0VORCA9IE1TR19JRF9YQ0FQX0hUVFBfVExTX0VORCwKKyNlbmRpZgorCisvLyBwbGVhc2UgYWxpZ24gdGhlc2UgbXNnX2lkIHdpdGggTUQgc2lkZQorCisvLyBNT0RfWENBUF9NRF9BR0VOVAorTVNHX0lEX1hDQVBfTURfQUdFTlRfU0VORF9IRFJfRE9ORV9JTkQsCitNU0dfSURfWENBUF9NRF9BR0VOVF9SRUNWX0hEUl9ET05FX0lORCwKKworLypJTUMgLT4gWENBUCovCitNU0dfSURfWENBUF9JTUNfSU1TX0RFUkVHX0NORiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qSU1TIGRlcmVnaXN0cmF0aW9uIGNuZiovCitNU0dfSURfWENBUF9JTUNfSU1TX0NBTExfU1RBVFVTX0lORCwgICAgICAgICAgICAgICAgICAgICAgIC8qSU1TIGNhbGwgc3RhdHVzKi8KKworCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1hDQVBfQ09ERV9UQUlMICkKKworI2VuZGlmICAvKiBfWENBUF9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZC94bDFyX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZC94bDFyX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RhOTJkYQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21kL3hsMXJfbXNnaWQuaApAQCAtMCwwICsxLDcxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICBlbDFiX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICBVNEcgYWRhcHRvcgorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgWEwxUiBtZXNzYWdlIGlkIGRlZmluaXRpb25zCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgWEwxUl9NU0dJRF9ICisjZGVmaW5lIFhMMVJfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfWEwxUl9DT0RFX0JFR0lOICkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitNU0dfSURfWEwxUl9EQVRBX0lORCAgICAgICAgICAgICAgICA9IE1TR19JRF9YTDFSX0NPREVfQkVHSU4sCitNU0dfSURfWEwxUl9MSVNSX1VTQl9NU0csIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1hMMVJfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIFhMMVJfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWRfZHJ2X3NhcC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWRfZHJ2X3NhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwMTY5NmMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZF9kcnZfc2FwLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBNRF9EUlZfU0FQX0gKKyNkZWZpbmUgTURfRFJWX1NBUF9ICisKKyNpbmNsdWRlICJzYXBfcmFuZ2UuaCIKKworTU9EVUxFX1NBUF9CRUdJTihTQVBfSURfTURfRFJWX0NPREVfQkVHSU4pCisJQ01VWF9TQVAgPSBTQVBfSURfTURfRFJWX0NPREVfQkVHSU4sCisJRFJJVkVSX1BTX1NBUCwKKwlMNENfQ01VWF9TQVAsCisJRFBNQUlGRFJWX0RQX1NBUCwKKwlEUE1BSUZEUlZfRFBfUkVUUllfU0FQLAorTU9EVUxFX1NBUF9FTkQoU0FQX0lEX01EX0RSVl9DT0RFX1RBSUwpCisKKyNlbmRpZiAvKiBNRF9EUlZfU0FQX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kX21taV9zYXAuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kX21taV9zYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTFiYzhjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWRfbW1pX3NhcC5oCkBAIC0wLDAgKzEsMTEgQEAKKyNpZm5kZWYgTURfTU1JX1NBUF9ICisjZGVmaW5lIE1EX01NSV9TQVBfSAorCisjaW5jbHVkZSAic2FwX3JhbmdlLmgiCisKK01PRFVMRV9TQVBfQkVHSU4oU0FQX0lEX01EX01NSV9DT0RFX0JFR0lOKQorCU1NSV9BU19TQVAgPSBTQVBfSURfTURfTU1JX0NPREVfQkVHSU4sCisJTU1JX0w0Q19TQVAsCitNT0RVTEVfU0FQX0VORChTQVBfSURfTURfTU1JX0NPREVfVEFJTCkKKworI2VuZGlmIC8qIE1EX01NSV9TQVBfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWRfbXdfc2FwLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tZF9td19zYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmNiYzgzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWRfbXdfc2FwLmgKQEAgLTAsMCArMSwzOCBAQAorI2lmbmRlZiBNRF9NV19TQVBfSAorI2RlZmluZSBNRF9NV19TQVBfSAorCisjaW5jbHVkZSAic2FwX3JhbmdlLmgiCisKK01PRFVMRV9TQVBfQkVHSU4oU0FQX0lEX01EX01XX0NPREVfQkVHSU4pCisJQ1NNX1ZUX1NBUCA9IFNBUF9JRF9NRF9NV19DT0RFX0JFR0lOLAorCURBVEFfTVBBTF9TQVAsCisJRVhUTU9ERU1fUFBQX1NBUCwKKwlGVF9GVEFfU0FQLAorCUZUX0ZUQ19TQVAsCisJRlRBX0ZUX1NBUCwKKwlGVENfRlRfU0FQLAorCUdQU19MQ1NQX1NBUCwKKwlMMlJfUFBQX1NBUCwKKwlORElTX1JBVERNX1NBUCwKKwlQUFBfTDRDX1NBUCwKKwlSQUJNX05ESVNfU0FQLAorCVJBQk1fUFBQX1NBUCwKKwlSQUJNX1RDUElQX1NBUCwKKwlSQVRETV9QUFBfU0FQLAorCVJBVERNX1RDUElQX1NBUCwgCisJU01TQUxfU09DX1NBUCwKKwlTTkRDUF9QUFBfU0FQLAorCVBQUF9SQVRfVENNX1NBUCwKKwlUQ01fVENQSVBfU0FQLAorCVREVF9QUFBfU0FQLAorCVVQU19TQVAsCisJVlRfQ1NSX1NBUCwKKwlWVF9GX0NTUl9TQVAsCisJVlRfTDRDX1NBUCwKKwlWVF9TQVAsCisgICAgRlRfTU1SRl9TQVAsCisgICAgTFRFQ1NSX0VQRENQX1NBUCwKKyAgICBOM1NBTV9XVF9TQVAsCitNT0RVTEVfU0FQX0VORChTQVBfSURfTURfTVdfQ09ERV9UQUlMKQorCisjZW5kaWYgLy8gTURfTVdfU0FQX0ggCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tZF9zYXAuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kX3NhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OWE1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tZF9zYXAuaApAQCAtMCwwICsxLDE2NTcgQEAKKworI2luY2x1ZGUgInNhcF9yYW5nZS5oIgorCisjaWZuZGVmIE1EX1NBUF9ICisjZGVmaW5lIE1EX1NBUF9ICisKK01PRFVMRV9TQVBfQkVHSU4oU0FQX0lEX01EX0NPREVfQkVHSU4pCisgICAgTDFfTDRDX1NBUCA9IFNBUF9JRF9NRF9DT0RFX0JFR0lOLAorICAgIEw0Q19MMV9TQVAsCisgICAgTDRDX1VMMV9TQVAsCisgICAgTDRDX0VMMV9TQVAsCisgICAgQURSX0RSTENfU0FQLAorICAgIEFEUl9UTDFfU0FQLAorICAgIEFEUl9VTDFfU0FQLAorICAgIEFEUl9BRFJfU0FQLAorICAgIEFTX0w0Q19TQVAsCisgICAgQVRDSV9TQVAsCisgICAgLy9QUk9YWV9BVENJX1NBUCwKKyAgICBBVFBfSU9fU0FQLAorICAgIEJNQ19EUkxDX1NBUCwKKyAgICBDSVNTX0NJU1NfU0FQLAorICAgIENTQ0VfQ1NFX1NBUCwKKyAgICBDU0NFX01FTUVfU0FQLAorICAgIENTQ0VfU0lCRV9TQVAsCisgICAgQ1NDRV9TTENFX1NBUCwKKyAgICBDU0NFX1RMMV9TQVAsCisgICAgQ1NDRV9VTDFfU0FQLAorICAgIENTQ0VfVVNJTUVfU0FQLAorICAgIENTQ0VfTENTQ0VfU0FQLAorICAgIExDU0NFX0xNRU1FX1NBUCwKKyAgICBMQ1NDRV9NRU1FX1NBUCwKKyAgICBMQ1NDRV9VTDFfU0FQLAorICAgIENTRV9NRU1FX1NBUCwKKyAgICBDU0VfUlNWQVVfU0FQLAorICAgIENTRV9TSUJFX1NBUCwKKyAgICBDU0VfU0xDRV9TQVAsCisgICAgQ1NFX1RMMV9TQVAsCisgICAgQ1NFX1VMMV9TQVAsCisgICAgQ1NNX0wyUl9TQVAsCisgICAgQ1NNX0w0Q19TQVAsCisgICAgQ1NNX1NJTV9TQVAsCisgICAgQ1NNX1QzMF9TQVAsCisgICAgQ1NNX1REVF9TQVAsCisgICAgQ1NSX0RSTENfU0FQLAorICAgIENTUl9MMUFVRF9TQVAsCisgICAgQ1NSX1VNQUNfU0FQLAorICAgIERSSVZFUl9MMV9TQVAsCisgICAgRFJMQ19VTUFDX1NBUCwKKyAgICBEUkxDX1VSTENfU0FQLAorICAgIERUX0w0Q19TQVAsCisgICAgRU1fTDFfU0FQLAorICAgIEVNX1BTX1NBUCwKKyAgICBFWFRNT0RFTV9MNENfU0FQLAorICAgIEZBX1JBX1NBUCwKKyAgICBGVF9VTDFUU1RfU0FQLAorICAgIEdBU19DT01NT05fU0FQLAorICAgIEdBU19DU0NFX1NBUCwKKyAgICBFQVNfQ1NDRV9TQVAsCisgICAgR0FTX01FTUVfU0FQLAorICAgIEVBU19NRU1FX1NBUCwKKyAgICBHQVNfTUVNRV9NRUFTX1JFUE9SVF9TQVAsCisgICAgR0FTX1JSQ0VfU0FQLAorICAgIEVBU19SUkNFX1NBUCwKKyAgICBHQVNfUlNWQUdfU0FQLAorICAgIEdBU19VTDJfU0FQLAorICAgIEdBU19VTDJEX1NBUCwKKyAgICBHQVNfVVNJTUVfU0FQLAorICAgIEdBU19FQVNfU0FQLAorICAgIEdNTV9STENfU0FQLAorICAgIEdNTV9TTV9TQVAsCisgICAgR01NUkVHX1NBUCwKKyAgICBHUFNfTDFfU0FQLAorICAgIEdQU19TVVBMX1NBUCwKKyAgICBHUFNfVUwxX1NBUCwKKyAgICBHUFNfRUwxX1NBUCwKKyAgICBMMV9BU19TQVAsCisgICAgTDFfRU1fU0FQLAorICAgIEwxX0dBU19TQVAsCisgICAgTDFfTDFfU0FQLAorICAgIEwxX0xBUERNX1NBUCwKKyAgICBMMV9NUEFMX1NBUCwKKyAgICBMMV9HTDFQQ09SRV9TQVAsCisgICAgTDFfVUFTX1NBUCwKKyAgICBMMUhJU1JfQVNfU0FQLAorICAgIEwxSElTUl9HQVNfU0FQLAorICAgIEwyUl9STFBfU0FQLAorICAgIEwyUl9TTVVfU0FQLAorICAgIEw0X0FVRF9TQVAsCisgICAgTDRDX01FTUVfU0FQLAorICAgIEw0Q19SUkNFX1NBUCwKKyAgICBMNENfUkFURE1fU0FQLAorICAgIEw0Q19SUkxQX1NBUCwgLy9hZ3BzX3VwX2NwX2NvbmZsaWN0CisgICAgTDRDX1NBUCwKKwlDQ0NJX0w0Q19TQVAsCisgICAgUFNETV9MNENfU0FQLAorICAgIExBUERNX01QQUxfU0FQLAorICAgIExMQ19HTU1fU0FQLAorICAgIExMQ19STENfU0FQLAorICAgIExMQ19TTVNfU0FQLAorICAgIExMQ19TTkRDUF9TQVAsCisgICAgTUFDX0wxX1NBUCwKKyAgICBNQUNfTVBBTF9TQVAsCisgICAgTUFDX1JSTV9TQVAsCisgICAgTUVNRV9EUkxDX1NBUCwKKyAgICBNRU1FX1NJQkVfU0FQLAorICAgIE1FTUVfU0xDRV9TQVAsCisgICAgTUVNRV9UTDFfU0FQLAorICAgIE1FTUVfVEwxX01FQVNfUkVQT1JUX1NBUCwKKyAgICBNRU1FX1VMMV9TQVAsCisgICAgTUVNRV9VTUFDX1NBUCwKKyAgICBNRU1FX0xNRU1FX1NBUCwKKyAgICBMTUVNRV9VTDFfU0FQLAorICAgIE1NX0FTX1NBUCwKKyAgICBNTV9DQ19TQVAsCisgICAgTU1fUkFUQ01fU0FQLAorICAgIE1NX1JBVERNX1NBUCwKKyAgICBNTV9TSU1fU0FQLAorICAgIE1NX1NNU19TQVAsCisgICAgTU1fU1NfU0FQLAorICAgIE1NUkVHX1NBUCwKKyAgICBNTkNDX1NBUCwKKyAgICBNTlNNU19TQVAsCisgICAgTU5TU19TQVAsCisgICAgTVBBTF9MMV9TQVAsCisgICAgTVBBTF9VTDFfU0FQLAorICAgIFBEQ1BfRFJMQ19TQVAsCisgICAgUERDUF9SQUJNX1NBUCwKKyAgICBQRENQX1VSTENfU0FQLAorICAgIFBIQl9MNENfU0FQLAorICAgIFBTX1NJTV9TQVAsCisgICAgUFNETV9TQVAsCisgICAgUkFDX0w0Q19TQVAsCisgICAgUkFDX01FTUVfU0FQLAorICAgIFJBVENNX0JNQ19TQVAsCisgICAgUkFUQ01fQ1NDRV9TQVAsCisgICAgUkFUQ01fQ1NFX1NBUCwKKyAgICBSQVRDTV9DU1JfU0FQLAorICAgIFJBVENNX0dBU19TQVAsCisgICAgUkFUQ01fTDRDX1NBUCwKKyAgICBSQVRDTV9MTENfU0FQLAorICAgIFJBVENNX1JBVERNX1NBUCwKKyAgICBSQVRDTV9STENfU0FQLAorICAgIFJBVENNX1JSQ0VfU0FQLAorICAgIFJBVENNX1NMQ0VfU0FQLAorICAgIFJBVENNX1VSTENfU0FQLAorICAgIFJBVENNX1VTSU1FX1NBUCwKKyAgICBSQVRDTV9VTDJfU0FQLAorICAgIFJBVENNX1VMMkRfU0FQLAorICAgIFJBVERNX1JBQk1fU0FQLAorICAgIFJBVERNX1JBVERNX1NBUCwKKyAgICBSQVRETV9TTkRDUF9TQVAsCisgICAgUkFURE1fVVJMQ19TQVAsCisgICAgUkFURE1fUERDUF9TQVAsCisgICAgUkFURE1fRVBEQ1BfU0FQLAorICAgIExUTV9FUERDUF9TQVAgPSBSQVRETV9FUERDUF9TQVAsCisgICAgUkFURE1fRU1BQ19TQVAsCisgICAgTFRNX0VNQUNfU0FQID0gUkFURE1fRU1BQ19TQVAsCisgICAgUkFURE1fU0RBUF9TQVAsCisgICAgUkFURE1fRU5QRENQX1NBUCwKKyAgICBSTENfTUFDX1NBUCwKKyAgICBSTENfTVBBTF9TQVAsCisgICAgTVBBTF9NUEFMX1NBUCwKKyAgICBSTENfUkVBU01fU0FQLAorICAgIFJMQ19SUk1fU0FQLAorICAgIFJMUF9SQV9TQVAsCisgICAgUlJfUFJSX1NBUCwKKyAgICBSUl9SUkxQX1NBUCwKKyAgICBSUkNFX0JNQ19TQVAsCisgICAgUlJDRV9DU0NFX1NBUCwKKyAgICBSUkNFX0RSTENfU0FQLAorICAgIFJSQ0VfTUVNRV9TQVAsCisgICAgUlJDRV9QRENQX1NBUCwKKyAgICBSUkNFX1JBQk1fU0FQLAorICAgIFJSQ0VfUlJDRV9TQVAsCisgICAgUlJDRV9TSUJFX1NBUCwKKyAgICBSUkNFX1NMQ0VfU0FQLAorICAgIFJSQ0VfVEwxX1NBUCwKKyAgICBSUkNFX1VMMV9TQVAsCisgICAgUlJDRV9VTUFDX1NBUCwKKyAgICBSUkNFX1VSTENfU0FQLAorICAgIFJSQ0VfVVNJTUVfU0FQLAorCVJSQ0VfTFJSQ0VfU0FQLC8vVElTRSBQQUdJTkcsTFJSQ0UtPlJSQ0UKKwlMUlJDRV9MVVJMQ19TQVAsLy9USVNFIFBBR0lORyxMVVJMQy0+TFJSQ0UKKyAgICBSUkxQX0dBU19TQVAsCisgICAgUlJMUF9SQVRDTV9TQVAsCisgICAgUlJNX0xBUERNX1NBUCwKKyAgICBSUk1fTVBBTF9TQVAsCisgICAgUlNWQUtfU0FQLAorICAgIFJTVkFVX1VMMV9TQVAsCisgICAgU0VRX1NFUV9TQVAsCisgICAgU0VRX1VMMV9TQVAsCisgICAgU0lCRV9TTENFX1NBUCwKKyAgICBTSUJFX1RMMV9TQVAsCisgICAgU0lCRV9VTDFfU0FQLAorICAgIFNMQ0VfQk1DX1NBUCwKKyAgICBTTENFX0NTUl9TQVAsCisgICAgU0xDRV9QRENQX1NBUCwKKyAgICBTTENFX1JBQk1fU0FQLAorICAgIFNMQ0VfUlNWQVVfU0FQLAorICAgIFNMQ0VfU0xDRV9TQVAsCisgICAgU0xDRV9UTDFfU0FQLAorICAgIFNMQ0VfVUwxX1NBUCwKKyAgICBTTENFX1VMMlNFUV9TQVAsCisgICAgU0xDRV9VTUFDX1NBUCwKKyAgICBTTENFX1VSTENfU0FQLAorICAgIFNNX1JBVERNX1NBUCwKKyAgICBTTV9TTkRDUF9TQVAsCisgICAgU01FX1RJTUVSX1NBUCwKKyAgICBUQ01fUEFNX1NBUCwgLy8gVUdUQ00gPC0tPiBQQU0KKyAgICBTTVJFR19TQVAsIC8vIFBBTSA8LS0+IFNNCisgICAgU01TQUxfQVNfU0FQLAorICAgIFNNU0FMX0w0Q19TQVAsCisgICAgU01TQUxfUkFUQ01fU0FQLAorICAgIFNNVV9MNENfU0FQLAorICAgIFNORENQX1JFR19TQVAsCisgICAgVDMwX0ZBX1NBUCwKKyAgICBUMzBfTDRDX1NBUCwKKyAgICBMNENfUkFUX1RDTV9TQVAsCisgICAgUkFUX1RDTV9UQ01fU0FQLAorICAgIFRDTV9SQVRETV9TQVAsCisgICAgVEwxX0ZUQV9TQVAsCisgICAgVEwxX0xMMV9TQVAsCisgICAgVEwxX1RMMV9TQVAsCisgICAgVEwxX1RMMURBVEFfU0FQLAorICAgIFRMMV9UTDFISVNSX1NBUCwKKyAgICBVQUdQU19DUF9DU0NFX1NBUCwKKyAgICBVQUdQU19DUF9MNENfU0FQLAorICAgIFVBR1BTX0NQX01FTUVfU0FQLAorICAgIFVBR1BTX0NQX1JBVENNX1NBUCwKKyAgICBVQUdQU19DUF9TSUJFX1NBUCwKKyAgICBVQVNfR0FTX1NBUCwKKyAgICBVQVNfTDFfU0FQLAorICAgIFVFTV9MNENfU0FQLAorICAgIFVMMV9MMV9TQVAsCisgICAgVUwxX0w0Q19TQVAsCisgICAgVUwxX01QQUxfU0FQLAorICAgIFVMMV9VTDFfU0FQLAorICAgIFVMMV9VTDFEQVRBX1NBUCwKKyAgICBVTDFDX1NBUCwKKyAgICBVTDFISVNSX1VMMV9TQVAsCisgICAgVUwxU01fU0FQLAorICAgIFVMMV9MMVNQX1NBUCwKKyAgICBVTDFUU1RfRlRfU0FQLAorICAgIFVNQUNfU0VRX1NBUCwKKyAgICBVTUFDX1RMMV9TQVAsCisgICAgVU1BQ19UTDFEQVRBX1NBUCwKKyAgICBVTUFDX1VMMV9TQVAsCisgICAgVU1BQ19VTDFQQ09SRV9TQVAsCisgICAgVU1BQ19VTDJBQ0NSWEhJU1JfU0FQLAorICAgIFVNQUNfVU1BQ19TQVAsCisgICAgVVJMQ19TRVFfU0FQLAorICAgIFVSTENfVUwxX1NBUCwKKyAgICBVUkxDX1VMMkFDQ1JYSElTUl9TQVAsCisgICAgVVJMQ19VTUFDX1NBUCwKKyAgICBVUkxDX1VSTENfU0FQLAorICAgIFVSUl9SU1ZBVV9TQVAsCisgICAgVVJSX1NBUCwKKyAgICBMVVJSX1NBUCwKKyAgICBHSVNFX1NBUCwKKyAgICBFQVNfU0FQLAorICAgIEVBU19SU1ZBRV9TQVAsCisgICAgV0lTRV9MNENfU0FQLAorICAgIERSTENfTDJIV1JFQVNTSU1fU0FQLAorICAgIFVMMl9MMkhXQUNDU0lNX1NBUCwKKyAgICBVTDJfTDJIV1JFQVNNU0lNX1NBUCwKKyAgICBMMVNJTV9NQUlOX1RBU0tfU0FQLAorICAgIFBST0NDUFVfVEFTS19TQVAsCisgICAgSEFQTFVTX1RBU0tfU0FQLAorICAgIFVFR1dfTDRDX1NBUCwKKyAgICBWTU1JX0w0Q19TQVAsCisgICAgLyogQWRkIGZvciBMVEUgTEFTIHJlbGF0ZWQgKi8KKyAgICBFUlJDX0xBU19TQVAsCisgICAgTEFTX0VMMV9TQVAsCisgICAgTEFTX0VMMU1QQ19TQVAsCisgICAgTU9CX0xNT0JfU0FQLAorICAgIExNT0JfRUwxX1NBUCwKKyAgICBMTU9CX0VMMU1QQ19TQVAsCisgICAgTE1PQl9MTUVNRV9TQVAsCisgICAgTE1PQl9HSVNFX1NBUCwKKyAgICBNT0JfTE1FTUVfU0FQLCAvL2ZvciBvcmlnaW5hbCBMTU9CIHRvIExNRU1FX0ZERC9UREQgdXNhZ2UKKyAgICBNT0JfR0lTRV9TQVAsIC8vZm9yIG9yaWdpbmFsIExNT0IgdG8gR0lTRSB1c2FnZQorICAgIC8qIEFkZCBieSBMVEUgU1MgZm9yIExURSByZWxhdGVkICovCisgICAgQ0xETUFDT1JFX0VMMV9TQVAsCisgICAgRVJSQ19FTDFfU0FQLAorICAgIEVSUkNfRUwxTVBDX1NBUCwKKyAgICBFUlJDX05MMV9TQVAsCisgICAgRU1BQ19FTDFfU0FQLAorICAgIEVMMUhJU1JfRUwxX1NBUCwKKyAgICBFTDFfRUwxX1NBUCwKKyAgICBFTDFfRUwxTVBDX1NBUCwKKyAgICBFTDFfRUwxX1BIU19TQVAsCisgICAgRUwxX0VMMV9UWF9TQVAsCisgICAgRUwxX0VMMV9MT1dfUFJJT19TQVAsCisgICAgRUwxX0VMMl9TQVAsCisgICAgRUwxX0w0Q19TQVAsCisgICAgRU1BQ19FTDFUWF9TQVAsCisgICAgRUwxX0VMMVRYX1NBUCwKKyAgICBMVEVfRFlOX1NBUCwKKyAgICBMVFRfU0FQLCAvKiBTQVAgYWRkZWQgZm9yIExUVCBtb2R1bGUgdXNlICovCisJVVRUX1NBUCwKKyAgICBMMV9NTEwxX1NBUCwgLyogZm9yIE1NIExMMSBzYXAqLworICAgIE1MTDFfTDFfU0FQLAorICAgIFVMMV9NTEwxX1NBUCwKKyAgICBNTEwxX1VMMV9TQVAsCisgICAgVEwxX01MTDFfU0FQLAorICAgIE1MTDFfVEwxX1NBUCwKKyAgICBFTDFfTUxMMV9TQVAsCisgICAgTUxMMV9FTDFfU0FQLAorICAgIE5MMV9NTEwxX1NBUCwKKyAgICBNTEwxX05MMV9TQVAsCisgICAgTFRFX1RJTUVSX1NBUCwKKyAgICBVUENNX1NBUCwKKyAgICBVUENNX0lNU19TQVAsCisgICAgVVBDTV9ERVNDX1NBUCwKKyAgICBVUENNX1VMX0lQX1RBR19BTExfUEtUX1NBUCwKKyAgICBVUENNX0RMX0lQX1RBR19BTExfUEtUX1NBUCwKKyAgICBMVE1fU0FQLAorICAgIEhJU1JfRU1BQ19TQVAsCisgICAgU0lNX1NJTV9TQVAsCisgICAgTDRDX1NNX1NBUCwKKyAgICBOUlJDX05MMV9TQVAsCisgICAgTk1BQ19OTDFfU0FQLAorICAgIE5NQUNfTkwxX1NMSU1fU0FQLAorICAgIEVMMV9OTDFfU0FQLAorICAgIEVMMU1QQ19OTDFfU0FQLCAgLy8gX19FTDFfTFBQX0lOVEVSX1JBVF9SU1REX1NVUFBPUlRfLSAKKyAgICBOTDFfRUwxTVBDX1NBUCwgIC8vIF9fRUwxX0xQUF9JTlRFUl9SQVRfUlNURF9TVVBQT1JUXyAKKyAgICBOTDFfTU1SRl9YTDFUU1RfU0FQLAorICAgIE5MMV9OTDFfU0FQLAorICAgIE5MMV9OTDFJQ0RfU0FQLAorICAgIE5MMV9MNENfU0FQLAorCisgICAgLyogSURDICovCisgICAgRUwxX0lEQ19TQVAsCisgICAgSURDX0VMMV9TQVAsCisgICAgTkwxX0lEQ19TQVAsCisgICAgSURDX05MMV9TQVAsCisgICAgRUwxTVBDX0lEQ19TQVAsCisgICAgSURDX0VMMU1QQ19TQVAsCisgICAgRVJSQ19JRENfU0FQLAorICAgIElEQ19FUlJDX1NBUCwKKyAgICBFTUFDX0lEQ19TQVAsCisgICAgSURDX0VNQUNfU0FQLAorICAgIElEQ19DT05TWVNfU0FQLAorICAgIENPTlNZU19JRENfU0FQLAorCisjaWYgZGVmaW5lZChDSElQMTA5OTIpCisgICAgSURDX0w1X1NBUCwKKyAgICBMNV9JRENfU0FQLAorI2VuZGlmCisgICAgLyogVEZUTElCICovCisgICAgVEZUTElCX1NBUCwKKyAgICBURlRMSUIyX1NBUCwKKyAgICBURlRMSUJfREhMX1NBUCwKKyAgICBURlRMSUJfVkdTTV9TQVAsCisKKyAgICAvKiBOV1NFTCAqLworICAgIFJBQ19OV1NFTF9TQVAsCisgICAgTldTRUxfTU1fU0FQLAorICAgIE5XU0VMX1JBVENNX1NBUCwKKyAgICBOV1NFTF9SQVRETV9TQVAsCisgICAgUEFNX05XU0VMX1NBUCwKKyAgICBOV1NFTF9VU0lNRV9TQVAsCisgICAgRERNX05XU0VMX1NBUCwKKyAgICAvKiogRVNNIHJlbGF0ZWQgU0FQICoqLworICAgIFNNX0VTTV9TQVAsCisgICAgRVNNX1JBVERNX1NBUCwKKyAgICBFU01fTFRNX1NBUCA9IEVTTV9SQVRETV9TQVAsCisgICAgTklMX0VTTV9TQVAsCisgICAgRVNNX0VTTV9TQVAsCisKKyAgICAvKiogRVRDIHJlbGF0ZWQgU0FQICoqLworICAgIEw0Q19FU01fU0FQLCAvLyBMNEMgPC0tPiBFU00KKyAgICBFU01SRUdfU0FQLCAvLyBQQU0gPC0tPiBFU00KKyAgICBVUENNX0VUQ19TQVAsCisgICAgRVRDX0VNTV9TQVAsCisgICAgU01TX0VNTV9TQVAsCisgICAgRVRDX05SUkNfU0FQLAorICAgIEVUQ19WR01NX1NBUCwKKworICAgIC8qKiBFVkFMIHJlbGF0ZWQgU0FQICoqLworICAgIE5XU0VMX0VWQUxfU0FQLAorICAgIFJBQ19FVkFMX1NBUCwKKyAgICBUQ01fRVZBTF9TQVAsCisgICAgTDRDX0VWQUxfU0FQLAorICAgIFNNU19FVkFMX1NBUCwKKyAgICBTTVNBTF9FVkFMX1NBUCwKKyAgICBDSVNTX0VWQUxfU0FQLAorICAgIEVWQUxfRU1NX1NBUCwKKyAgICBFVkFMX0VTTV9TQVAsCisgICAgRVZBTF9FVENfU0FQLAorICAgIEVWQUxfRVJSQ19TQVAsCisgICAgRVZBTF9FUlJDX1RFTVBfU0FQLAorICAgIEVWQUxfVVBDTV9TQVAsCisKKyAgICAvKiBFTU0gRXh0ZXJuYWwgUmVsYXRlZCBTQVAgKGJ5IGxheWVyIG9yZGVyKSAqLworICAgIEVNTV9FUlJDX1NBUCwKKyAgICBFU01fRU1NX1NBUCwKKyAgICBNTV9FTU1fU0FQLAorICAgIEVNTV9FTlBEQ1BfU0FQLAorCisgICAgLyogRU1NIEludGVybmFsIFJlbGF0ZWQgU0FQIChieSBhbHBoYWJldGljYWwgb3JkZXIpICovCisgICAgRU1NX0NBTExfQ09OTl9TQVAsCisgICAgRU1NX0NBTExfRVJSQ0lGX1NBUCwKKyAgICBFTU1fQ0FMTF9FU01JRl9TQVAsCisgICAgRU1NX0NBTExfRVZBTElGX1NBUCwKKyAgICBFTU1fQ0FMTF9NU1BNSUZfU0FQLAorICAgIEVNTV9DQUxMX0VWVENUUkxfU0FQLAorICAgIEVNTV9DQUxMX01NSUZfU0FQLAorICAgIEVNTV9DQUxMX05BU01TR19TQVAsCisgICAgRU1NX0NBTExfUExNTlNFTF9TQVAsCisgICAgRU1NX0NBTExfUkFUQkFORF9TQVAsCisgICAgRU1NX0NBTExfUkFUQ0hHX1NBUCwKKyAgICBFTU1fQ0FMTF9SRUdfU0FQLAorICAgIEVNTV9DQUxMX1NFQ19TQVAsCisgICAgRU1NX0NBTExfU1ZfU0FQLAorICAgIEVNTV9DQUxMX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fQ01OUFJPQ19FUlJDSUZfU0FQLAorICAgIEVNTV9DTU5QUk9DX0VWQUxJRl9TQVAsCisgICAgRU1NX0NNTlBST0NfTkFTTVNHX1NBUCwKKyAgICBFTU1fQ01OUFJPQ19QTE1OU0VMX1NBUCwKKyAgICBFTU1fQ01OUFJPQ19SRUdfU0FQLAorICAgIEVNTV9DT05OX0VSUkNJRl9TQVAsCisgICAgRU1NX0NPTk5fRVNNSUZfU0FQLAorICAgIEVNTV9DT05OX0VUQ0lGX1NBUCwKKyAgICBFTU1fQ09OTl9FVkFMSUZfU0FQLAorICAgIEVNTV9DT05OX0VWVENUUkxfU0FQLAorICAgIEVNTV9DT05OX05BU01TR19TQVAsCisgICAgRU1NX0NPTk5fUExNTlNFTF9TQVAsCisgICAgRU1NX0NPTk5fUkFUQkFORF9TQVAsCisgICAgRU1NX0NPTk5fUkFUQ0hHX1NBUCwKKyAgICBFTU1fQ09OTl9SRUdfU0FQLAorICAgIEVNTV9DT05OX1NFQ19TQVAsCisgICAgRU1NX0NPTk5fU1ZfU0FQLAorICAgIEVNTV9DT05OX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fRVJSQ0lGX0VTTUlGX1NBUCwKKyAgICBFTU1fRVJSQ0lGX0VUQ0lGX1NBUCwKKyAgICBFTU1fRVJSQ0lGX0VWVENUUkxfU0FQLAorICAgIEVNTV9FUlJDSUZfTkFTTVNHX1NBUCwKKyAgICBFTU1fRVJSQ0lGX1BMTU5TRUxfU0FQLAorICAgIEVNTV9FUlJDSUZfUkFUQkFORF9TQVAsCisgICAgRU1NX0VSUkNJRl9SQVRDSEdfU0FQLAorICAgIEVNTV9FUlJDSUZfUkVHX1NBUCwKKyAgICBFTU1fRVJSQ0lGX1NFQ19TQVAsCisgICAgRU1NX0VSUkNJRl9TVl9TQVAsCisgICAgRU1NX0VTTUlGX05BU01TR19TQVAsCisgICAgRU1NX0VTTUlGX1JBVENIR19TQVAsCisgICAgRU1NX0VTTUlGX1JFR19TQVAsCisgICAgRU1NX0VTTUlGX1NWX1NBUCwKKyAgICBFTU1fRVNNSUZfUExNTlNFTF9TQVAsIC8vIGZvciBJTVMKKyAgICBFTU1fRVNNSUZfU0VDX1NBUCwgLy8gZm9yIElNUworICAgIEVNTV9FU01JRl9USU1FUk1OR19TQVAsCisgICAgRU1NX0VUQ0lGX05BU01TR19TQVAsCisgICAgRU1NX0VUQ0lGX1JFR19TQVAsCisgICAgRU1NX0VUQ0lGX1NWX1NBUCwKKyAgICBFTU1fRVRDSUZfVElNRVJNTkdfU0FQLAorICAgIEVNTV9FVENJRl9QTE1OU0VMX1NBUCwKKyAgICBFTU1fRVZBTElGX0VSUkNJRl9TQVAsCisgICAgRU1NX0VWQUxJRl9OQVNNU0dfU0FQLAorICAgIEVNTV9FVkFMSUZfUExNTlNFTF9TQVAsCisgICAgRU1NX0VWQUxJRl9SQVRCQU5EX1NBUCwKKyAgICBFTU1fRVZBTElGX1JBVENIR19TQVAsCisgICAgRU1NX0VWQUxJRl9SRUdfU0FQLAorICAgIEVNTV9FVkFMSUZfU0VDX1NBUCwKKyAgICBFTU1fRVZBTElGX1NWX1NBUCwKKyAgICBFTU1fRVZBTElGX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fRVZUQ1RSTF9QTE1OU0VMX1NBUCwKKyAgICBFTU1fRVZUQ1RSTF9SQVRCQU5EX1NBUCwKKyAgICBFTU1fRVZUQ1RSTF9SQVRDSEdfU0FQLAorICAgIEVNTV9FVlRDVFJMX1JFR19TQVAsCisgICAgRU1NX0VWVENUUkxfU1ZfU0FQLAorICAgIEVNTV9FVlRDVFJMX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fTU1JRl9SQVRDSEdfU0FQLAorICAgIEVNTV9NTUlGX1JFR19TQVAsCisgICAgRU1NX01NSUZfVElNRVJNTkdfU0FQLAorICAgIEVNTV9NU1BNSUZfU0VDX1NBUCwKKyAgICBFTU1fTkFTTVNHX1BMTU5TRUxfU0FQLAorICAgIEVNTV9OQVNNU0dfUkVHX1NBUCwKKyAgICBFTU1fTkFTTVNHX1NFQ19TQVAsCisgICAgRU1NX1BMTU5TRUxfUkFUQ0hHX1NBUCwKKyAgICBFTU1fUExNTlNFTF9SRUdfU0FQLAorICAgIEVNTV9QTE1OU0VMX1NFQ19TQVAsCisgICAgRU1NX1BMTU5TRUxfU1ZfU0FQLAorICAgIEVNTV9QTE1OU0VMX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fUkFUQkFORF9SQVRDSEdfU0FQLAorICAgIEVNTV9SQVRCQU5EX1JFR19TQVAsCisgICAgRU1NX1JBVEJBTkRfU1ZfU0FQLAorICAgIEVNTV9SQVRCQU5EX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fUkFUQkFORF9QTE1OU0VMX1NBUCwKKyAgICBFTU1fUkFUQ0hHX1JFR19TQVAsCisgICAgRU1NX1JBVENIR19TRUNfU0FQLAorICAgIEVNTV9SQVRDSEdfU1ZfU0FQLAorICAgIEVNTV9SQVRDSEdfVElNRVJNTkdfU0FQLAorICAgIEVNTV9SRUdfU0VDX1NBUCwKKyAgICBFTU1fUkVHX1NWX1NBUCwKKyAgICBFTU1fUkVHX1RJTUVSTU5HX1NBUCwKKyAgICBFTU1fUkVHX01TUE1JRl9TQVAsCisgICAgRU1NX1NFQ19TVl9TQVAsCisgICAgRU1NX1NFQ19USU1FUk1OR19TQVAsCisgICAgRU1NX1NWX1RJTUVSTU5HX1NBUCwKKworICAgIC8qKiBFUlJDIHJlbGF0ZWQgU0FQICoqLworICAgIC8vaW50ZXJuYWwgZXZlbnQgdXNlCisgICAgRVZUSF9BTExfU0FQLAorICAgIFJDTV9DT05OX1NBUCwKKyAgICBSQ01fTU9CX1NBUCwKKyAgICBSQ01fU1BWX1NBUCwKKyAgICBSQ01fQ0VMX1NBUCwKKyAgICBSQ01fTENFTF9TQVAsCisgICAgQ0VMX0NITV9TQVAsCisgICAgQ0VMX0NPTk5fU0FQLAorICAgIENFTF9NT0JfU0FQLAorICAgIENFTF9TUFZfU0FQLAorICAgIENFTF9TWVNfU0FQLAorICAgIENITV9DT05OX1NBUCwKKyAgICBDSE1fTU9CX1NBUCwKKyAgICBDSE1fU1BWX1NBUCwKKyAgICBDSE1fU1lTX1NBUCwKKyAgICBDT05OX01PQl9TQVAsCisgICAgQ09OTl9TUFZfU0FQLAorICAgIE1PQl9TUFZfU0FQLAorICAgIFNQVl9TWVNfU0FQLAorICAgIFNQVl9MU1lTX1NBUCwKKyAgICBMQ0VMX0NFTF9TQVAsCisgICAgTENFTF9TUFZfU0FQLAorICAgIExTWVNfU1lTX1NBUCwKKyAgICBFUlJDX0NFTF9TQVAsCisgICAgRVJSQ19DSE1fU0FQLAorICAgIEVSUkNfQ09OTl9TQVAsCisgICAgRVJSQ19NT0JfU0FQLAorICAgIEVSUkNfUkNNX1NBUCwKKyAgICBFUlJDX1NQVl9TQVAsCisgICAgRVJSQ19TWVNfU0FQLAorICAgIEVSUkNfTENFTF9TQVAsCisgICAgRVJSQ19MU1lTX1NBUCwKKyAgICBFUlJDX0xCU19TQVAsCisgICAgRVJSQ19HUFNfU0FQLAorCisgICAgLyogTFRFIEwyICovCisgICAgRVJMQ0RMX0VSTENVTF9TQVAsCisgICAgRVJMQ1VMX0VNQUNfU0FQLAorICAgIEVSTENETF9FTUFDX1NBUCwKKyAgICBFUERDUF9FUkxDRExfU0FQLAorICAgIEVQRENQX0VSTENVTF9TQVAsCisgICAgRVBEQ1BfRU1BQ19TQVAsCisgICAgRU5QRENQX0VNQUNfU0FQID0gRVBEQ1BfRU1BQ19TQVAsCisgICAgRVBEQ1BfRVBEQ1BfU0FQLAorICAgIEVOUERDUF9FTlBEQ1BfU0FQID0gRVBEQ1BfRVBEQ1BfU0FQLAorICAgIEVNQUNfRU1BQ19TQVAsCisgICAgRVJSQ19FTUFDX1NBUCwKKyAgICBFUlJDX0VSTENVTF9TQVAsCisgICAgRVJSQ19FUkxDRExfU0FQLAorICAgIEVSUkNfRVBEQ1BfU0FQLAorICAgIEVSUkNfRU5QRENQX1NBUCwKKyAgICBFUlJDX0VMMlRBU0tfU0FQLAorICAgIEw0Q19FUkxDVUxfU0FQLAorCisgICAgLy8gTVQ2MjkzIE5ldyBBcmNoaXRlY3R1cmUKKyAgICBFTDJfQUxMX1NBUCwKKyAgICBFTDJfREVCVUdfU0FQLAorICAgIEVNQUNfRU1BQ0RMX1NBUCwKKyAgICBFTUFDRExfRU1BQ01DSF9TQVAsCisgICAgRU1BQ0RMX0VSTENETF9TQVAsCisgICAgRU1BQ0RMX0VQRENQX1NBUCwKKyAgICBFUlJDX0VNQUNNQ0hfU0FQLAorICAgIEVNQUNNQ0hfRUwxX1NBUCwKKyAgICBFUkxDRExfRU1BQ01DSF9TQVAsCisgICAgLyogTVJTICovCisgICAgTVJTX0NBU19TQVAsCisgICAgTVJTX1JBQ19TQVAsCisgICAgTVJTX1JSTV9TQVAsCisgICAgTVJTX0NTQ0VfU0FQLAorICAgIE1SU19SUkNFX1NBUCwKKyAgICBNUlNfVVNJTUVfU0FQLAorICAgIE1SU19TSU1fU0FQLAorICAgIE1SU19FQVNfU0FQLAorICAgIE1SU19OUlJDX1NBUCwKKworICAgIC8qIFJTVkFTICovCisgICAgUlNWQVNfU0FQLAorICAgIFJTVkFTX05JTF9TQVAsCisgICAgUlNWQVNfUlNWQVVfU0FQLAorICAgIFJTVkFTX0w0Q19TQVAsCisgICAgUlNWQVNfTVJTX1NBUCwKKyAgICBSU1ZBU19VUlJfU0FQLAorICAgIFJTVkFTX1JSQ0VfU0FQLAorICAgIFJTVkFTX0NTQ0VfU0FQLAorICAgIFJTVkFTX1VMMl9TQVAsCisgICAgUlNWQVNfVUwyRF9TQVAsCisgICAgUlNWQVNfUlJNX1NBUCwKKyAgICBSU1ZBU19NUEFMX1NBUCwKKyAgICBSU1ZBU19FUlJDX1NBUCwKKyAgICBSU1ZBU19FTDJIUE9SVEFMX1NBUCwKKyAgICBSU1ZBU19FTUFDRExQT1JUQUxfU0FQLAorICAgIFJTVkFTX0VMMlBPUlRBTF9TQVAsCisgICAgUlNWQVNfVUwxX1NBUCwKKyAgICBSU1ZBU19UTDFfU0FQLAorICAgIFJTVkFTX0wxX1NBUCwKKyAgICBSU1ZBU19MTDFfU0FQLAorICAgIFJTVkFTX0VMMV9TQVAsCisgICAgUlNWQVNfTEFTX1NBUCwKKyAgICBSU1ZBU19SQUNfU0FQLAorICAgIFJTVkFTX05SUkNfU0FQLAorICAgIFJTVkFTX05MMV9TQVAsCisJUlNWQVNfTkFTX1NWX1NBUCwKKworICAgIC8qIE1TUE0gKi8KKyAgICBNU1BNX1NBUCwKKworICAgIC8qIEVNIFNBUCAqLworICAgIEVNX0VMMl9TQVAsCisgICAgRU1fRUwxX1NBUCwKKyAgICBTTV9TTV9TQVAsCisJCU1NX01NX1NBUCwKKworCS8qUkFDIEdBUyBTQVAgZm9yIE1NRFNfREMqLworCVJBQ19HQVNfU0FQLAorCisgICAgUkFUX1RDTV9TQVAsCisgICAgVENNX1NBUCwKKyAgICBHQVNfVEwxX1NBUCwKKyAgICBHQVNfRUwxX1NBUCwKKworICAgIC8qIElNQyAqLworICAgIElNQ19JTUNfU0FQLAorICAgIEFUUF9JTUNfU0FQLAorICAgIElNQ19MVEVDU1JfU0FQLAorICAgIElNQ0JfSU1DX1NBUCwKKyAgICBESExfSU1DX1NBUCwKKyAgICBJTUNfVVBDTV9TQVAsCisgICAgSU1DX0xCU19TQVAsCisgICAgSU1DX1NJTU1OR1JfU0FQLAorCisgICAgLyogTFRFQ1NSICovCisgICAgTFRFQ1NSX0VSUkNfU0FQLAorICAgIExURUNTUl9ESExfU0FQLAorCisgICAgLyogRUwxIHRvIExURUNTUiAqLworICAgIEVMMV9MVEVDU1JfU0FQLAorCisgICAgLyogU0RNICovCisgICAgU0RNX0FUUF9TQVAsCisgICAgU0RNX0lNQ19TQVAsCisgICAgU0RNX0lXTEFOX1NBUCwKKyAgICBTRE1fTDRDX1NBUCwKKworICAgIC8qIFZETSAqLworICAgIFZETV9BVFBfU0FQLAorICAgIFZETV9JTUNfU0FQLAorICAgIFZETV9TRE1fU0FQLAorICAgIFZETV9DVFJMX1RSS19TQVAsCisgICAgVkRNX0NUUkxfQURTX1NBUCwKKyAgICBWRE1fQ1RSTF9WQ0NfU0FQLAorICAgIFZETV9UUktfQURTX1NBUCwKKyAgICBWRE1fVFJLX1ZDQ19TQVAsCisgICAgVkRNX0FEU19WQ0NfU0FQLAorICAgIFZETV9SQUNfU0FQLAorICAgIFZETV9JRENfU0FQLAorCisgICAgLyogSU1DU01TICovCisgICAgSU1DU01TX0lNQ19TQVAsCisKKyAgICBTTVNBTF9TTVNBTF9TQVAsCisKKyAgICAvKiBMUFAgU0FQICovCisgICAgTENTUF9HTlNTX1NBUCwKKyAgICBMUFBfRVZBTF9TQVAsCisgICAgTFBQX0VSUkNfU0FQLAorICAgIExQUF9MUFBfU0FQLAorICAgIExQUF9MNENfU0FQLAorICAgIExQUF9MQlNfU0FQLAorICAgIEw0Q19MQlNfU0FQLAorICAgIEFUQ0lfTEJTX1NBUCwKKyAgICBMUFBfTFBQRV9TQVAsCisgICAgTFBQX05SUkNfU0FQLAorICAgIExQUF9FVENfU0FQLAorICAgIExQUF9TQVNFX1NBUCwKKyAgICBMUFBfTVNQTV9TQVAsCisKKy8qIFU0RyBhZGFwdG9yLiovCisgICAgTUxMMV9VTDFCX1NBUCwKKyAgICBVTUFDX1VMMUJfU0FQLAorICAgIFNMQ0VfVUwxQl9TQVAsCisgICAgTUVNRV9VTDFCX1NBUCwKKyAgICBTSUJFX1VMMUJfU0FQLAorICAgIEFEUl9VTDFCX1NBUCwKKyAgICBONUdMMV9OTDFCX1NBUCwKKyAgICBONUdMMV9VTDFCX1NBUCwKKworICAgIEVSUkNfRUwxQl9TQVAsCisgICAgRU1BQ19FTDFCX1NBUCwKKyAgICBFTDFCX0VMMUJfU0FQLAorICAgIEVNQUNfRUwxQlRYX1NBUCwKKyAgICBFTDFCX0VMMUJUWF9TQVAsCisgICAgTjVHTDFfRUwxQl9TQVAsCisKKyAgICBONUdMMV9NTldJX1NBUCwKKworICAgIEVMMUJfWEwxUl9TQVAsCisgICAgLyogTUJNU0FMIFNBUCAqLworICAgIE1CTVNBTF9TQVAsCisgICAgTUJNU0FMX0VSUkNfU0FQLAorCisgICAgLyogR0wxVFNUIFNBUCAqLworICAgIEdMMVRTVF9GVF9TQVAsCisgICAgRlRfR0wxVFNUX1NBUCwKKworICAgIC8qUENPUkVfVU1BQ19ISVNSIFNBUCovCisgICAgUENPUkVISVNSX1VNQUNfU0FQLAorICAgIC8qIEwyIGNvcHJvIGxvZyBETUEgc2FwICovCisgICAgTDJDUF9MT0dfRU5BQkxFX1NBUCwKKyAgICBMMkNQX1BPTExfUEVSSU9EX0xWX1NBUCwKKyAgICBMMkNQX0JMT0NLX1NJWkVfU0FQLAorCisgICAgLyogR01TUyBTQVAgKi8KKyAgICBSQUNfR01TU19TQVAsCisgICAgR01TU19OV1NFTF9TQVAsCisgICAgR01TU19MQVNfU0FQLAorICAgIEdNU1NfQ1ZBTF9TQVAsCisgICAgR01TU19TQVAsCisKKyAgICBMNENfTUVfU0FQLAorICAgIC8qIGR5bmFtaWMgU0JQIHN3aXRjaCAqLworICAgIEw0Q19FTDJfU0FQLAorCisgICAgLyogRXZlbnQgc2NoZWR1bGVyOiBmb3JjZSB0aW1lciBleHBpcnkgKi8KKyAgICBOSUxfUlJDRV9FWFBJUllfVElNRVJfU0FQLAorCisgICAgRU1fTFVNQUNfU0FQLAorCisgICAgLyogTFdBICovCisgICAgTDRDX0VSUkNfU0FQLAorCisgICAgLyogTDRDLU1NUkYgU0FQICovCisgICAgTDRDX01NUkZfU0FQLAorCisgICAgLyogTDRDICovCisgICAgTDRDX0xURUNTUl9TQVAsCisKKyAgICBMVEVDU1JfQVRQX1NBUCwKKwlMNENfQ0lTU19TQVAsCisKKyAgICAvKiBDMksgU0FQIElEcyAqLworICAgIENMRUNfQ1BTV19TQVAsCisgICAgQ0xFQ19DVkFMX1NBUCwKKyAgICBDTEVDX0wxRF9NRE1fU0FQLAorICAgIENMRUNfQ0lQQ19TQVAsCisgICAgQ1BTV19YUkxQX1NBUCwKKyAgICBDUFNXX0wxRF9NRE1fU0FQLAorICAgIENQU1dfQ1ZBTF9TQVAsCisgICAgQ1BTV19DVkFMX0FUQ19TQVAsCisgICAgQ1BTV19DVkFMX1NUT1JBR0VfU0FQLAorICAgIENQU1dfQ1NTX1NBUCwKKyAgICBDUFNXX0VWQ0xDX1NBUCwKKyAgICBDUFNXX0RCTV9TQVAsCisgICAgQ1BTV19DVUlNX1BST1hZX1NBUCwKKyAgICBDUFNXX1NMVF9TQVAsCisgICAgQ1BTV19DSFdEX1NBUCwKKyAgICBDUFNXX0NJT1BfU0FQLAorICAgIENQU1dfU19DSExQX1NBUCwKKyAgICBDUFNXX1NfQ1BTV19TQVAsCisgICAgQ1BTV19TWVNURU1fU0FQLAorCisgICAgTE1EX1hSTFBfU0FQLAorICAgIExNRF9DSVBDX1NBUCwKKyAgICBMTURfTDFEX01ETV9TQVAsCisgICAgTE1EX0NQU1dfU0FQLAorICAgIExNRF9MTURTX1NBUCwKKyAgICBMTURfQ0hXRF9TQVAsCisgICAgTE1EX0NWQUxfU0FQLAorICAgIExNRF9DVkFMX0FUQ19TQVAsCisgICAgTE1EX0NWQUxfU1RPUkFHRV9TQVAsCisgICAgTE1EU19DUFNXX1NBUCwKKworICAgIENWQUxfQ0hXRF9TQVAsCisgICAgQ1ZBTF9BVENfQ0hXRF9TQVAsCisgICAgQ1ZBTF9TVE9SQUdFX0NIV0RfU0FQLAorICAgIENWQUxfQ1NTX1NBUCwKKyAgICBDVkFMX1hSTFBfU0FQLAorICAgIENWQUxfRVZSTUNfU0FQLAorICAgIENWQUxfREJNX1NBUCwKKyAgICBDVkFMX0NVSU1fU0FQLAorICAgIENWQUxfQ0lPUF9TQVAsCisKKyAgICBDSExQX0NWQUxfU0FQLAorICAgIENWQUxfQ1ZBTF9BVENfU0FQLAorICAgIENWQUxfQ0xFQ19TQVAsCisgICAgQ1ZBTF9DTU9OX1NBUCwKKyAgICBDVkFMX0NIU0NfU0FQLAorICAgIENWQUxfQ1BTV19TQVAsCisgICAgQ1ZBTF9DSExQX1NBUCwKKyAgICBDVkFMX0NTRUNfU0FQLAorICAgIENWQUxfVk1NSV9TQVAsCisKKyAgICBDVkFMX0FUQ19YUkxQX1NBUCwKKyAgICBDVkFMX0FUQ19FVlJNQ19TQVAsCisgICAgQ1ZBTF9BVENfREJNX1NBUCwKKyAgICBDVkFMX0FUQ19DVUlNX1NBUCwKKyAgICBDVkFMX0FUQ19DSU9QX1NBUCwKKyAgICBDVkFMX0FUQ19DSFNDX1NBUCwKKyAgICBDVkFMX0FUQ19DTU9OX1NBUCwKKyAgICBDVkFMX0FUQ19FVlJDUF9TQVAsCisgICAgQ0hMUF9DVkFMX0FUQ19TQVAsCisgICAgQ1ZBTF9BVENfU1lTVEVNX1NBUCwKKworICAgIENWQUxfU1RPUkFHRV9YUkxQX1NBUCwKKyAgICBDVkFMX1NUT1JBR0VfRVZSTUNfU0FQLAorICAgIENWQUxfU1RPUkFHRV9EQk1fU0FQLAorICAgIENWQUxfU1RPUkFHRV9DVUlNX1NBUCwKKyAgICBDVkFMX1NUT1JBR0VfQ0lPUF9TQVAsCisgICAgQ0hMUF9DVkFMX1NUT1JBR0VfU0FQLAorICAgIENITFBfQ1VJTV9QUk9YWV9TQVAsCisgICAgQ0hMUF9DSU9QX1NBUCwKKyAgICBDSExQX0RCTV9TQVAsCisgICAgQ0hMUF9DUFNXX1NBUCwKKyAgICBDSExQX1hSTFBfU0FQLAorICAgIENITFBfQ1NTX1NBUCwKKyAgICBDSExQX0VWQ0xDX1NBUCwKKyAgICBDSExQX0VWRkNQX1NBUCwKKyAgICBDSExQX0VWUkNQX1NBUCwKKyAgICBDSExQX0VWU0xDX1NBUCwKKyAgICBDSExQX0NJUENfU0FQLAorICAgIENITFBfQ1NFQ19TQVAsCisgICAgQ0lPUF9YUkxQX1NBUCwKKyAgICBDU0VDX0NWQUxfU0FQLAorICAgIENTRUNfQ1ZBTF9BVENfU0FQLAorICAgIENTRUNfQ1ZBTF9TVE9SQUdFX1NBUCwKKyAgICBDU0VDX0NJT1BfU0FQLAorICAgIENIU0NfQ1NUVUJfU0FQLAorICAgIENIU0NfRVZSTUNfU0FQLAorICAgIENIU0NfTDFEX01ETV9TQVAsCisgICAgQ0hTQ19DUFNXX1NBUCwKKyAgICBDTU9OX1NBUCwKKworICAgIENTU19DSFNDX1NBUCwKKyAgICBDU1NfQ0hMUF9TQVAsCisgICAgQ1NTX0NWQUxfU0FQLAorICAgIENTU19DVkFMX0FUQ19TQVAsCisgICAgQ1NTX0NWQUxfU1RPUkFHRV9TQVAsCisgICAgQ1NTX0RCTV9TQVAsCisgICAgQ1NTX0NVSU1fUFJPWFlfU0FQLAorICAgIENTU19DUFNXX1NBUCwKKyAgICBDU1NfRVZDTENfU0FQLAorICAgIENTU19FVlNMQ19TQVAsCisgICAgQ1NTX0VWUk1DX1NBUCwKKworICAgIEVWUk1DX0NTU19TQVAsCisgICAgRVZSTUNfRVZDTENfU0FQLAorICAgIEVWUk1DX0NITFBfU0FQLAorICAgIEVWUk1DX0NIV0RfU0FQLAorICAgIEVWUk1DX0NJUENfU0FQLAorICAgIEVWUk1DX0NMRUNfU0FQLAorICAgIEVWUk1DX0NJT1BfU0FQLAorICAgIEVWU0xDX0VWQ0xDX1NBUCwKKyAgICBFVlNMQ19FVlJNQ19TQVAsCisgICAgRVZTTENfQ1BTV19TX1NBUCwKKyAgICBFVlNMQ19TTFRfU0FQLAorICAgIEVWRkNQX0VWUkNQX1NBUCwKKyAgICBFVkZDUF9FVlJNQ19TQVAsCisgICAgRVZGQ1BfRVZDTENfU0FQLAorICAgIEVWRkNQX0VWU0xDX1NBUCwKKyAgICBFVkZDUF9DSExQX1NBUCwKKyAgICBFVlJDUF9FVlJNQ19TQVAsCisgICAgRVZSQ1BfRVZTTENfU0FQLAorICAgIEVWUkNQX0VWQ0xDX1NBUCwKKyAgICBFVlJDUF9DSExQX1NBUCwKKyAgICBFVlJDUF9DU1NfU0FQLAorICAgIEVWUkNQX0NIV0RfU0FQLAorICAgIEVWQ0xDX0NIU0NfU0FQLAorICAgIEVWQ0xDX0NWQUxfU0FQLAorICAgIEVWQ0xDX0NWQUxfU1RPUkFHRV9TQVAsCisgICAgRVZDTENfQ1ZBTF9BVENfU0FQLAorICAgIEVWQ0xDX0VSUkNfU0FQLAorICAgIEVWQ0xDX0wxRF9NRE1fU0FQLAorICAgIEVWQ0xDX0RCTV9TQVAsCisgICAgRVZDTENfU0xUX1NBUCwKKyAgICBFVkNMQ19DSFdEX1NBUCwKKyAgICBMMURfTURNX0NWQUxfU0FQLAorICAgIEwxRF9NRE1fQ1ZBTF9TVE9SQUdFX1NBUCwKKyAgICBMMURfTURNX0NWQUxfQVRDX1NBUCwKKyAgICBMMURfTURNX0NMRUNfU0FQLAorICAgIEwxRF9NRE1fQ0hXRF9TQVAsCisgICAgTDFEX01ETV9DU1NfU0FQLAorICAgIEwxRF9NRE1fQ0lQQ19TQVAsCisgICAgQ1VJTV9QUk9YWV9VSU1fU0FQLAorICAgIFhSTFBfU0FQLAorICAgIExNRF9TQVAsCisgICAgTE1EU19TQVAsCisgICAgQ0hMUF9TQVAsCisgICAgQ1BTV19TQVAsCisgICAgRVZSQ1BfU0FQLAorICAgIEVWRkNQX1NBUCwKKyAgICBFVkNMQ19TQVAsCisgICAgQ1ZBTF9TQVAsCisgICAgQ1ZBTF9BVENfU0FQLAorICAgIENTU19TQVAsCisgICAgRVZTTENfU0FQLAorICAgIEVWUk1DX1NBUCwKKyAgICBDTEVDX1NBUCwKKyAgICBFVkwxX0MyS19IV1NJTV9TQVAsCisKKyAgICBDTEVDX0NIU0NfU0FQLAorCisKKyAgICBDSFNDX1JUVEFDVElPTkhJU1JfU0FQLAorICAgIExNRF9SVFRBQ1RJT05ISVNSX1NBUCwKKyAgICBMMURfTURNX1JUVEFDVElPTkhJU1JfU0FQLAorICAgIENQU1dfUlRUQUNUSU9OSElTUl9TQVAsCisgICAgWFJMUF9SVFRBQ1RJT05ISVNSX1NBUCwKKyAgICBFVkNMQ19SVFRBQ1RJT05ISVNSX1NBUCwKKworCisgICAgQ0hTQ19ET0FDVElPTkhJU1JfU0FQLAorICAgIExNRF9ET0FDVElPTkhJU1JfU0FQLAorICAgIEVWUkNQX0RPQUNUSU9OSElTUl9TQVAsCisgICAgRVZGQ1BfRE9BQ1RJT05ISVNSX1NBUCwKKyAgICBFVlJNQ19ET0FDVElPTkhJU1JfU0FQLAorICAgIEVWQ0xDX0RPQUNUSU9OSElTUl9TQVAsCisKKworICAgIENIU0NfUlRUU0xPVEhJU1JfU0FQLAorICAgIExNRF9SVFRTTE9USElTUl9TQVAsCisgICAgTDFEX01ETV9SVFRTTE9USElTUl9TQVAsCisgICAgQ1BTV19SVFRTTE9USElTUl9TQVAsCisgICAgWFJMUF9SVFRTTE9USElTUl9TQVAsCisgICAgRVZDTENfUlRUU0xPVEhJU1JfU0FQLAorCisKKyAgICBDSFNDX0RPU0xPVEhJU1JfU0FQLAorICAgIExNRF9ET1NMT1RISVNSX1NBUCwKKyAgICBFVlJDUF9ET1NMT1RISVNSX1NBUCwKKyAgICBFVkZDUF9ET1NMT1RISVNSX1NBUCwKKyAgICBFVlJNQ19ET1NMT1RISVNSX1NBUCwKKyAgICBFVkNMQ19ET1NMT1RISVNSX1NBUCwKKworCisgICAgQ0hTQ19GSE1TR0RFTElfSElTUl9TQVAsCisgICAgTE1EX0ZITVNHREVMSV9ISVNSX1NBUCwKKyAgICBFVlJDUF9GSE1TR0RFTElfSElTUl9TQVAsCisgICAgTDFEX01ETV9GSE1TR0RFTElfSElTUl9TQVAsCisgICAgQ1BTV19GSE1TR0RFTElfSElTUl9TQVAsCisgICAgRVZGQ1BfRkhNU0dERUxJX0hJU1JfU0FQLAorICAgIEVWUk1DX0ZITVNHREVMSV9ISVNSX1NBUCwKKyAgICBFVkNMQ19GSE1TR0RFTElfSElTUl9TQVAsCisKKworICAgIENIU0NfU0hNU0dERUxJX0hJU1JfU0FQLAorICAgIExNRF9TSE1TR0RFTElfSElTUl9TQVAsCisgICAgRVZSQ1BfU0hNU0dERUxJX0hJU1JfU0FQLAorICAgIEwxRF9NRE1fU0hNU0dERUxJX0hJU1JfU0FQLAorICAgIENQU1dfU0hNU0dERUxJX0hJU1JfU0FQLAorICAgIEVWRkNQX1NITVNHREVMSV9ISVNSX1NBUCwKKyAgICBFVlJNQ19TSE1TR0RFTElfSElTUl9TQVAsCisgICAgRVZDTENfU0hNU0dERUxJX0hJU1JfU0FQLAorICAgIENTU19WTU1JX1NBUCwKKyAgICBMTURfU1BDSF9TQVAsCisgICAgQ0hMUF9TUFlfU0FQLAorCisgICAgREJNX1NBUCwKKyAgICBDVkFMX0VWU0xDX1NBUCwKKworICAgIC8qRm9yIG5ldyBpcmF0IHNhcCAqLworICAgIEdNU1NfQ1NTX1NBUCwKKyAgICBSU1ZBU19DUFNXX1NBUCwKKyAgICBSU1ZBU19DSFNDX1NBUCwKKyAgICBDUFNXX0VSUkNfU0FQLAorICAgIENIU0NfTUxMMV9TQVAsCisgICAgVkRNX0NWQUxfU0FQLAorICAgIFNETV9DVkFMX1NBUCwKKyAgICBFVkFMX0NQU1dfU0FQLAorICAgIEw0Q19DVkFMX1NBUCwKKyAgICBSU1ZBQ19DU1NfU0FQLAorICAgIFVJTV9TSU1fU0FQLAorICAgIE1SU19DU1NfU0FQLAorICAgIElNQ1NNU19DVkFMX1NBUCwKKworICAgIC8qIERITCAqLworICAgIERITF9MQlNfU0FQLAorCisgICAgLyogSVdMQU4gKi8KKyAgICBJV0xBTl9FUlJDX1NBUCwKKyAgICBJV0xBTl9XSVBDX1NBUCwKKyAgICBJV0xBTl9BVFBfU0FQLAorCisgICAgLyogTEhJRiBDT1JFICovCisgICAgTEhJRl9IV19MT0dfU0FQLAorICAgIExISUZfVVBDTV9IV19MT0dfU0FQLAorCisgICAgUkFURE1fQ0hMUF9TQVAsCisgICAgQ1ZBTF9SQVRETV9TQVAsCisKKyAgICBFVlNMQ19DSExQX1NBUCwKKworCisgICAgLyogTDRCICovCisgICAgQVRQX0w0Ql9TQVAsCisvLyAgICBERE1fTDRCUEROX1NBUCwKKyAgICBMNEJfQVRDSV9TQVAsCisgICAgTDRCX0NWQUxfU0FQLAorICAgIEw0Ql9MNEJQV1JfU0FQLAorICAgIEw0QlBETl9MNENfU0FQLAorICAgIEw0QlBETl9DVkFMX1NBUCwKKyAgICBMNEJQRE5fVENNX1NBUCwKKyAgICBMNEJQRE5fU0FQLAorICAgIEw0Ql9MNEJTTVNfU0FQLAorICAgIEw0Ql9MNEJTSU1fU0FQLAorICAgIEw0Ql9MNEJTQVRfU0FQLAorICAgIEw0Ql9MNEJTU19TQVAsCisgICAgTDRCX0w0QkNDX1NBUCwKKyAgICBMNEJfTDRCTldfU0FQLAorICAgIEw0Ql9MNEJTQlBfU0FQLAorICAgIEw0QlNCUF9NRV9TQVAsCisgICAgVkRNX0w0Ql9TQVAsCisgICAgQVRQX0w0QlNCUF9TQVAsCisgICAgTDRCUFdSX0w0QlNCUF9TQVAsCisKKyAgICBUQ01fQ1ZBTF9TQVAsCisgICAgTDRCTldfTDRCUEROX1NBUCwKKyAgICBBVFBfSU9fTDRDX1NBUCwKKyAgICBSQUNfQ1ZBTF9TQVAsCisgICAgQ1ZBTF9DVUlNX1BST1hZX1NBUCwKKyAgICBDVkFMX0FUQ19DVUlNX1BST1hZX1NBUCwKKyAgICBQU19DVUlNX1NBUCwKKyAgICBMNENfTUVUQV9TQVAsCisKKyAgICBERE1fTDRBUFNfU0FQLAorICAgIERETV9MNENfU0FQLAorICAgIEw0QVBTX0w0QlBETl9TQVAsCisgICAgTDRBUFNfVENNX1NBUCwKKworICAgIC8qQURUIFRFU1QqLworICAgIEwxQURUX1RMMV9TQVAsCisgICAgTDFBRFRfVUwxX1NBUCwKKyAgICBMMUFEVF9FTDFfU0FQLAorCisgICAgIC8qIExQTSBTQVAgKi8KKyAgICBMUE1fU0FQLAorCisgIAlEVU1NWV9TQVAsIC8vIGZvciBNb0RJUyBVVAorCisgICAgLyogSVdMQU4gKi8KKyAgICBJTVNQX0lXTEFOX1NBUCwKKyAgICBJV0xBTl9XTU9CX1NBUCwKKyAgICBEMlJNX0lXTEFOX1NBUCwKKyAgICBJV0xBTl9FVkhEX1dNT0JfU0FQLAorICAgIElXTEFOX0VWSERfV1NFTV9TQVAsCisgICAgRDJSTV9ERE1fU0FQLAorCisgICAgLyogQVRQIC0gRDIvRERNICovCisgICAgQVRQX0lNU01fU0FQLAorICAgIEFUUF9EMkFUX1NBUCwKKyAgICBBVFBfRDJBTV9TQVAsCisgICAgQVRQX0QyQ01fU0FQLAorICAgIEFUUF9EMlBNX1NBUCwKKyAgICBBVFBfRERNX1NBUCwKKworCS8qIElNU00gKi8KKyAgICBJTVNNX0RBU1RfU0FQLAorICAgIElNU01fU0lNTU5HUl9TQVAsCisgICAgSU1TTV9EMkNNX1NBUCwKKyAgICBJTVNNX0lNU01fU0FQLAorCisgICAgRDJBTV9ERE1fU0FQLAorICAgIERITF9SQUNfU0FQLAorICAgIERETV9MNEJOV19TQVAsCisKKyAgICAvKiBEMkNNICovCisgICAgTUVfRDJDTV9TQVAsCisKKyAgICAvKiBEMlVNICovCisgICAgTUVfRDJVTV9TQVAsCisgICAgRDJVTV9EMkFQTl9TQVAsCisgICAgRDJVTV9EMlBNX1NBUCwKKyAgICBEMlVNX0QyUk1fU0FQLAorICAgIEQyVU1fRERNX1NBUCwKKworICAgIC8qIEQyQVBOICovCisgICAgTUVfRDJBUE5fU0FQLAorCisgICAgLyogRDIgKi8KKyAgICBEMl9TQVAsCisKKyAgICAvKiBEMlBNICovCisgICAgTUVfRDJQTV9TQVAsIAorICAgIEQyUE1fRDJBUE5fU0FQLCAKKyAgICBEMlBNX0QyUk1fU0FQLAorICAgIEQyUE1fRERNX1NBUCwKKworICAgIC8qIEQyQVBOICovCisgICAgRDJBUE5fRDJDVVNUX1NBUCwKKworICAgIC8qIFVSU1AgKi8KKyAgICBEMkFQTl9VUlNQX1NBUCwgCisgICAgRDJQTV9VUlNQX1NBUCwgCisgICAgRDJSTV9VUlNQX1NBUCwgCisgICAgRERNX1VSU1BfU0FQLCAKKyAgICBVUlNQX1VQRFNfU0FQLCAKKyAgICBVUlNQX1ZHTU1fU0FQLCAKKworICAgIC8qIEQyU1NDICovCisgICAgRDJTU0NfRDJfU0FQLAorCisgICAgLyogRDJVWCAqLworICAgIEQyVVhfRDJfU0FQLAorCisgICAgLypTSU1NTkdSKi8KKyAgICBTSU1NTkdSX1BTX1NBUCwKKyAgICBBVFBfU0lNTU5HUl9TQVAsCisKKyAgICBESExfU0lNX1NBUCwKKworICAgIEw0Q19JUENPUkVfU0FQLAorCisgICAgSU1DX0lXTEFOX1NBUCwKKyAgICBXSVBDX0lXTEFOX1NBUCwKKyAgICBBVFBfSVdMQU5fU0FQLAorCisgICAgLyogV08gKi8KKyAgICBEMlJNX1dPX1NBUCwKKyAgICBJV0xBTl9XT19TQVAsCisgICAgU0lNTU5HUl9XT19TQVAsCisgICAgQVRQX1dPX1NBUCwKKyAgICBXT19MNEJOV19TQVAsCisgICAgV09fQURQVF9TQVAsCisKKyAgICAvKiBXSVBDICovCisgICAgV0lQQ19TQVAsCisKKyAgIC8qUlJNIHRvIFJSX1NNUCAqLworICAgIFJSTV9SUl9TTVBfU0FQLAorCisgICAgLyogQ1NNIFNBUCAqLworICAgIENTTV9SUkNFX1NBUCwKKworICAgIEw0Q19DU1NfU0FQLAorICAgIENQU1dfTDRDX1NBUCwKKyAgICBFVkNMQ19MNENfU0FQLAorICAgIEVWUk1DX0w0Q19TQVAsCisgICAgTDRDX1NNU19TQVAsCisKKyAgICBJV0xBTl9MVEVDU1JfU0FQLAorCisgICAgTDFBRFRfTDRDX1NBUCwKKyAgICBEMl9JTUNfU0FQLAorCisgICAgLyogU1NEUyAqLworICAgIEFUUF9TU0RTX1NBUCwKKyAgICBTU0RTX1hDQVBfU0FQLAorICAgIFNTRFNfU0lNTU5HUl9TQVAsCisgICAgU1NEU19EMkNNX1NBUCwKKyAgICBJTVNNX1NTRFNfU0FQLAorICAgIFNTRFNfTDRDX1NBUCwKKyAgICBTU0RTX0lNQ19TQVAsCisKKyAgICBBVFBfRDJSTV9TQVAsCisgICAgSU1DX0QyUk1fU0FQLAorICAgIEw0Qk5XX0w0Q19TQVAsCisgICAgTDRCU0JQX0w0Q19TQVAsCisKKyAgICBESExfTDRDX1NBUCwKKworICAgIENWQUxfUEhCX1NBUCwKKworICAgIEFUUF9MNEJOV19TQVAsCisgICAgRDJBTV9TQVAsCisgICAgQ1VJTV9TQVAsCisgICAgSVdMQU5fTDRDX1NBUCwKKyAgICBDVUlNX0NQU1dfU0FQLAorCisgICAgSU1TTV9ERE1fU0FQLAorICAgIENVSU1fUEhCX1NBUCwKKworICAgIEw0Qk5XX0NWQUxfU0FQLAorCisgICAgTldTRUxfTldTRUxfU0FQLAorICAgIElNU01fTDRCTldfU0FQLAorICAgIElXTEFOX0w0Qk5XX1NBUCwKKworICAgIC8qIEVOTDEgU0FQICovCisgICAgRUwxSElTUl9FTkwxX1NBUCwKKyAgICBFTkwxX0w0Q19TQVAsCisgICAgRU5MMV9EQ0xDX1NBUCwKKworCS8qIE1NTDEgVVRBUyBTQVAgKi8KKwlFTkwxX0VMMV9TQVAsCisJRU5MMV9OTDFfU0FQLAorCisgICAgQVRQX1NMVF9TQVAsCisgICAgRDJSTV9EMlJNX1NBUCwKKyAgICBMNENfSU1DX1NBUCwKKyAgICBERE1fRVZBTF9TQVAsCisgICAgRERNX1BBTV9TQVAsCisKKyAgICBVTDFfRENMQ19TQVAsCisgICAgTElPX0xCU19TQVAsCisKKyAgICBBVFBfTDRCUFdSX1NBUCwKKyAgICBMNEJQV1JfU0FQLAorICAgIFZETV9MNENfU0FQLAorCisgICAgQVRQX0w0Q19TQVAsCisJQVRQX1NNU0FMX1NBUCwKKwlBVFBfU01TX1NBUCwKKwlTRE1fU01TX1NBUCwKKyAgICBMNEJOV19TQVAsCisgICAgVkRNX0RETV9TQVAsCisgICAgU1NEU19TU0RTX1NBUCwKKyAgICBUTDFfRENMQ19TQVAsCisKKyAgICBBVFBfTVRfU0FQLAorCisgICAgSVdMQU5fTDRCUFdSX1NBUCwKKyAgICBESExfU01VX1NBUCwKKwlCTUNfVVJMQ19TQVAsCisKKyAgICAvKiBOTDIgU0FQICovCisgICAgTlJSQ19OUkxDRExfU0FQLAorICAgIE5SUkNfTlJMQ1VMX1NBUCwKKyAgICBOUlJDX05NQUNfU0FQLAorICAgIE5STENETF9OUkxDVUxfU0FQLAorICAgIE5STENETF9TQVAsCisgICAgTlJMQ1VMX1NBUCwKKyAgICBOUkxDVUxfTk1BQ19TQVAsCisgICAgTk1BQ0RMX1NBUCwKKyAgICBOTUFDX1NBUCwKKyAgICBOUkxDRExfTk1BQ19TQVAsCisgICAgVVBDTV9OTUFDX1NBUCwKKyAgICBOUkxDRExfTkwxX1NBUCwKKyAgICBOTDFfTlJMQ1VMX1NBUCwKKyAgICBSU1ZBU19OTUFDX1NBUCwKKyAgICBMNENfTlJMQ1VMX1NBUCwKKyAgICBMSElGX05STENVTF9TQVAsCisKKyAgICAvKiBFTlBEQ1AgU0FQICovCisgICAgTlJSQ19FTlBEQ1BfU0FQLAorICAgIEVOUERDUF9FUkxDVUxfU0FQLAorICAgIEVOUERDUF9FUkxDRExfU0FQLAorICAgIEVOUERDUF9OUkxDVUxfU0FQLAorICAgIEVOUERDUF9OUkxDRExfU0FQLAorICAgIEVOUERDUF9OUkxDUF9TQVAsCisgICAgRU5QRENQX05NQUNETF9TQVAsCisgICAgRU5QRENQX05NQUNfU0FQLAorICAgIEVOUERDUF9OTDFfU0FQLAorICAgIEwyTk9USUZISVNSX0VOUERDUF9TQVAsCisKKyAgICAvKiBFTkwyX0ZSRUUgU0FQICovCisgICAgRU5MMl9GUkVFX1NBUCwKKworICAgIC8qIEwyIFNBUCAqLworICAgIEwyX0FMTF9TQVAsCisKKyAgICAvKiBYQ0FQICovCisgICAgQVRQX1hDQVBfU0FQLAorCisgICAgLyogWENBUCAqLworICAgIElNU01fWENBUF9TQVAsCisKKyAgICAvKk1NLUVSUkMgU0FQKi8KKyAgICBNTV9FUlJDX1NBUCwKKworICAgIC8qIE5SUkMgU0FQICovCisgICAgUlJfTlJSQ19TQVAsCisgICAgUlJDX05SUkNfU0FQLAorICAgIEVSUkNfTlJSQ19TQVAsCisgICAgTlJSQ19OUlJDX1NBUCwKKyAgICBMNENfTlJSQ19TQVAsICAgICAgIC8qIHB3cyAqLworICAgIFNNU0FMX05SUkNfU0FQLCAgICAgLyogcHdzICovCisgICAgTlJSQ19SU1ZBTl9TQVAsCisgICAgUkFDX05SUkNfU0FQLAorICAgIFRNQ19OUlJDX1NBUCwKKwlMVEVDU1JfTlJSQ19TQVAsCisgICAgRVJNX05SUkNfU0FQLAorICAgIEdNU1NfTlJSQ19TQVAsCisKKyAgICAvKiBOUlJDIGludGVybmFsIFNBUCAqLworICAgIE5SUkNfSU5UX01BSU5fU0NHX1NBUCwKKyAgICBOUlJDX0lOVF9NQUlOX0lETEVfU0FQLAorICAgIE5SUkNfSU5UX01BSU5fTkNPTk5fU0FQLAorICAgIE5SUkNfSU5UX01BSU5fQkFDS0dST1VORF9TQVAsCisgICAgTlJSQ19JTlRfTUFJTl9TSV9TQVAsIC8qIHN0b3JlZCBzaWIgZXhwaXJlICovCisgICAgTlJSQ19JTlRfTUFJTl9TRUFSQ0hfU0FQLAorICAgIE5SUkNfSU5UX01BSU5fQ09ORklHX1NBUCwKKyAgICBOUlJDX0lOVF9NQUlOX01FQVNfU0FQLAorICAgIE5SUkNfSU5UX1NDR19DT05GSUdfU0FQLAorICAgIE5SUkNfSU5UX1NDR19NRUFTX1NBUCwKKyAgICBOUlJDX0lOVF9JRExFX0NPTkZJR19TQVAsCisgICAgTlJSQ19JTlRfSURMRV9TRUFSQ0hfU0FQLAorICAgIE5SUkNfSU5UX0lETEVfU0lfU0FQLAorICAgIE5SUkNfSU5UX0lETEVfTUVBU19TQVAsCisgICAgTlJSQ19JTlRfTkNPTk5fQ09ORklHX1NBUCwKKyAgICBOUlJDX0lOVF9OQ09OTl9TRUFSQ0hfU0FQLAorICAgIE5SUkNfSU5UX05DT05OX1NJX1NBUCwKKyAgICBOUlJDX0lOVF9OQ09OTl9NRUFTX1NBUCwKKyAgICBOUlJDX0lOVF9NRUFTX0NPTkZJR19TQVAsCisgICAgTlJSQ19JTlRfQkFDS0dST1VORF9TRUFSQ0hfU0FQLAorICAgIE5SUkNfSU5UX01BSU5fU0FQLAorICAgIE5SUkNfSU5UX1NDR19TQVAsCisgICAgTlJSQ19JTlRfSURMRV9TQVAsCisgICAgTlJSQ19JTlRfTkNPTk5fU0FQLAorICAgIE5SUkNfSU5UX0JBQ0tHUk9VTkRfU0FQLAorICAgIE5SUkNfSU5UX0NPTkZJR19TQVAsCisgICAgTlJSQ19JTlRfTUVBU19TQVAsCisgICAgTlJSQ19JTlRfU0VBUkNIX1NBUCwKKyAgICBOUlJDX0lOVF9TSV9TQVAsCisKKyAgICAvKiBOQVNfU1YgKi8KKyAgICBOQVNfU1ZfU0FQLAorICAgIFJBQ19OQVNfU1ZfU0FQLAorICAgIEw0Q19OQVNfU1ZfU0FQLAorICAgIE5BU19TVl9FUlJDX1NBUCwKKyAgICBOQVNfU1ZfQzJLX1NBUCwKKworICAgIFZETV9HTVNTX1NBUCwKKyAgICBWRE1fRVZBTF9TQVAsCisgICAgLyogVkdNTSBTQVAgKi8KKyAgICBMUFBfVkdNTV9TQVAsCisgICAgTkFTX1NWX1ZHTU1fU0FQLAorICAgIFJBQ19WR01NX1NBUCwKKyAgICBSQVRETV9WR01NX1NBUCwKKyAgICBTTVNfVkdNTV9TQVAsCisgICAgVkdNTV9OUlJDX1NBUCwKKyAgICBWR01NX1JBVERNX1NBUCwKKyAgICBFUk1fVkdNTV9TQVAsCisgICAgRERNX1ZHTU1fU0FQLAorICAgIFZHTU1fVVBDTV9TQVAsCisgICAgTDRDX1ZHTU1fU0FQLAorCisgICAgLyogU01JQyBTQVAgKi8KKyAgICBTTUlDX1NBUCwKKworICAgIC8qIFZHU00gU0FQICovCisgICAgVkdTTV9TQVAsCisgICAgUEFNX1ZHU01fU0FQLAorICAgIFZHU01fVkdNTV9TQVAsCisgICAgVkdTTV9SQVRETV9TQVAsCisgICAgRVNNX1ZHU01fU0FQLAorICAgIEw0Q19WR1NNX1NBUCwKKyAgICAKKyAgICBESExfTVJTX1NBUCwKKyAgICBESExfR01TU19TQVAsCisKKyAgICBOQVNfU1ZfUkFURE1fU0FQLAorICAgIE5BU19TVl9OUlJDX1NBUCwKKyAgICBOQVNfU1ZfRVZBTF9TQVAsCisgICAgTkFTX1NWX0VNTV9TQVAsCisgICAgTkFTX1NWX1NJTV9TQVAsCisgICAgREhMX05XU0VMX1NBUCwKKworICAgIC8qIFVQRFMgU0FQICovCisgICAgVVJTUF9TQVAsCisgICAgVVBEU19WR01NX1NBUCwKKworICAgIC8qIEQyQVQgKi8KKyAgICBEMkFUX0QyUk1fU0FQLAorICAgIEQyQVRfRDJQTV9TQVAsCisgICAgRDJBVF9EMkNNX1NBUCwKKyAgICBEMkFUX0RETV9TQVAsCisKKyAgICAvKiBEMlVYICovCisgICAgRDJVWF9ERE1fU0FQLAorCisgICAgRDJfTkVUSUZfU0FQLAorICAgIEQyX05FVElGX1NFTlNJVElWRV9TQVAsCisgICAgRDJfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEFUUF9EMl9VU0VSX1NFTlNJVElWRV9TQVAsCisKKyAgICAvKiBQcm90b2NvbCBFeGNlcHRpb24gUmVjb3ZlcnkgRnJhbWV3b3JrICovCisgICAgUEVSRl9TQVAsCisgICAgLyogRXJyb3IgUmVjb3ZlcnkgTW9kdWxlICovCisgICAgRVJNX1NBUCwKKyAgICBQRVJGX0VSUkNfU0FQLAorCisgICAgLyogSVdMQU4gKi8KKyAgICBJV0xBTl9USU1FUl9TQVAsCisgICAgSVdMQU5fTUFTRl9TQVAsCisKKyAgICAvKiBNQ0YgKi8KKyAgICBNQ0ZfTDRDX1NBUCwKKworICAgIC8qIElNQ0IgKi8KKyAgICBJTVNNX0lNQ0JfU0FQLAorICAgIElNU1ZUX0lNQ0JfU0FQLAorICAgIElNQ0JfSU1DQl9TQVAsCisgICAgSElGX0lNQ0JfU0FQLAorICAgIEFUUF9JTUNCX1NBUCwKKworICAgIC8qIElNUyBTVEFDSyAqLworICAgIElNU19TSVBUWF9TQVAsCisgICAgSU1TX1NJUFRYX0lNQ0JfU0FQLAorCisgICAgLyogSU1TVUEgKi8KKyAgICBJTUNCX0lNU1VBX1NBUCwKKyAgICBJTUNTTVNfSU1TVUFfU0FQLAorICAgIElNQ19JTVNVQV9TQVAsCisKKyAgICBMNEJQV1JfTDRDX1NBUCwKKyAgICBMNEJQV1JfQ1ZBTF9TQVAsCisgICAgTDRCUFdSX0w0Qk5XX1NBUCwKKworICAgIExCU19TQVAsCisgICAgR05TU19UQ19MQlNfU0FQLAorICAgIEdOU1NfVENfRVJSQ19TQVAsCisgICAgR05TU19UQ19OUlJDX1NBUCwKKyAgICBHTlNTX1RDX0VMMV9TQVAsCisgICAgR05TU19UQ19OTDFfU0FQLAorICAgIEdOU1NfVENfVUwxX1NBUCwKKworICAgIC8qIEdBUyB0byBOUkFTICovCisgICAgR0FTX05SQVNfU0FQLAorCisgICAgTDRDX0VOUERDUF9TQVAsCisKKyAgICAvKiBTVEtCUkcgKi8KKyAgICBTVEtCUkdfQVRQX1NBUCwKKyAgICBTVEtCUkdfSVBTRUNfU0FQLAorCisgICAgLyogV0lGSSBQcm94eSBTQVAgKi8KKyAgICBXSUZJX1BST1hZX1NBUCwKKworICAgIC8qRElTUEFUQ0hFUiBTQVAqLworICAgIERJU1BBVENIRVJfU0FQLAorCisgICAgLyogU0VOU0lUSVZFIFNBUCAqLworICAgIFhDQVBfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIENITFBfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIExNRF9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgRVZBTF9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgVENNX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBSUk1fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEdJU0VfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIENDX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBVSU1fUFJPWFlfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIENVSU1fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNJTV9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgRkNQX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBSQ1BfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIElXTEFOX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBQQU1fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFRGVExJQl9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgR01TU19VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgRVNNX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBJTUNfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIE4zWF9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgV09fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNNVV9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgRU1NX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBFVENfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNJTU1OR1JfVVNFUl9TRU5TSVRJVkVfU0FQLAorCVJBQ19VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgVVBDTV9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgRVJSQ19VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgQ0xFQ19VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgQ1BTV19VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgU1lTVEVNX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBDVkFMX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBNTV9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgUkFUQ01fVVNFUl9TRU5TSVRJVkVfU0FQLAorCUNTTV9VU0VSX1NFTlNJVElWRV9TQVAsCisJVkRNX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBMNEJQRE5fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNNU0FMXzFfVVNFUl9TRU5TSVRJVkVfU0FQLAorCVNNU0FMXzJfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNNU18xX1VTRVJfU0VOU0lUSVZFX1NBUCwKKwlTTVNfMl9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgQVRQX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBMNEJfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIENJU1NfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEFUQ0lfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNTRFNfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEw0QkNDX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBMNENfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIFNNX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBTTVJFR19VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgUkFUX1RDTV9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgRERNX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBOV1NFTF9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgUlJDRV9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgUFNXX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBTRE1fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIE5BU19TVl9VU0VSX1NFTlNJVElWRV9TQVAsCisgICAgTDRBUFNfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIERJU1BBVENIRVJfVVNFUl9TRU5TSVRJVkVfU0FQLAorCUlNQ1NNU18xX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBJTUNTTVNfMl9VU0VSX1NFTlNJVElWRV9TQVAsCisJVkdTTV9VU0VSX1NFTlNJVElWRV9IRUFERVJfT05MWV9TQVAsCisJVkdTTV9VU0VSX1NFTlNJVElWRV9IRUFERVJfTE9DQUxQQVJBX1NBUCwKKyAgICBJTUNCX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBJTVNfU1RBQ0tfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEhUVFBfVExTX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgICBNVF9MNENfU0FQLAorCisgICAgLyogTjNDRiAqLworICAgIE4zQ0ZfTDRDX1NBUCwKKyAgICAKKyAgICAvKiBOM1NBTSAqLworICAgIE4zU0FNX04zU0FNX1NBUCwKKyAgICBOM0VQQ19OM1NBTV9TQVAsCisKKyAgICBBVFBfTjNDRl9TQVAsCisKKyAgICAvKiBOM0VQQyAqLworICAgIEQyUk1fTjNFUENfU0FQLAorICAgIElXTEFOX04zRVBDX1NBUCwKKyAgICBOM0VQQ19TSU1NTkdSX1NBUCwKKworICAgIC8qIE4zQU5TICovCisgICAgTjNFUENfTjNBTlNfU0FQLAorICAgIE4zQU5TX1NJTU1OR1JfU0FQLAorICAgIE4zQU5TX0w0Qk5XX1NBUCwKKyAgICAKKyAgICAvKiBOM1NZUyAqLworICAgIE4zU1lTX1NBUCwKKworICAgIC8qIEVBUCAqLworICAgIFVTRVJfRUFQX1NBUCwKKyAgICBFQVBfU0lNX1NBUCwKKworICAgIC8qIEhUVFAgVExTIFNBUCAqLworICAgIEFQUF9IVFRQX1NBUCwKKyAgICBIVFRQX1RMU19TQVAsCisKKyAgICBJTUNTTVNfRVZBTF9TQVAsCisgICAgU01TX0lNQ1NNU19TQVAsCisJREhMX1NNU19TQVAsCisJCisgICAgRVJSQ19NVF9TQVAsCisgICAgSU1TX1VBX1VTRVJfU0VOU0lUSVZFX1NBUCwKKwkKKwlYQ0FQX0lNQ19TQVAsCisJU0FTRV9JTUNfU0FQLAorICAgIFNNVV9DVkFMX1NBUCwKKyAgICBMNEJQV1JfTVRfU0FQLAorCisJQ0NfR0FTX1NBUCwKKwkKKwlNVF9VU0VSX1NFTlNJVElWRV9TQVAsCisJCisgICAgU0JQX0NTU19TQVAsCisgICAgCisgICAgLyogU0FTRSB0byBFUlJDICovCisgICAgU0FTRV9FUlJDX1NBUCwKKyAgICAvKiBTQVNFIHRvIE5SUkMgKi8KKyAgICBTQVNFX05SUkNfU0FQLAorICAgIC8qIFNBU0UgdG8gTDRDICovCisgICAgU0FTRV9MNENfU0FQLAorICAgIC8qIFNBU0UgdG8gaVdMQU4gKi8KKyAgICBTQVNFX0lXTEFOX1NBUCwKKyAgICAvKiBTQVNFIHRvIE5MMSAqLworICAgIFNBU0VfTkwxX1NBUCwKKyAgICAvKiBTQVNFIFRPIExQUCAqLworICAgIFNBU0VfTFBQX1NBUCwKKwkvKiBWRE0gdG8gU0FTRSAqLworCVZETV9TQVNFX1NBUCwKKwkvKiBBVFAgdG8gU0FTRSAqLworCUFUUF9TQVNFX1NBUCwKKwlTQVNFX1NBUCwKKwlJTVNNX01TUE1fU0FQLAorCQorICAgIC8qT1NURCBTQVAqLworICAgIE9TVERfU0FQLAorCisKKyAgICBTTVNBTF9JTUNTTVNfU0FQLAorICAgIElNQ1NNU19JTUNTTVNfU0FQLAorICAgIE1SU19MNENfU0FQLAorICAgIE1SU19VUENNX1NBUCwKKworICAgIFRNQ19MNEJQV1JfU0FQLAorCisKKyNpZmRlZiBfX0lQQ19BREFQVEVSX18KKy8qIElQQyBBZGFwdGVyICovCisgICAgSVBDQV9BVFBfU0FQLCAKKyAgICBJUENBX1BXUl9TQVAsCisgICAgSVBDQV9TTVNfU0FQLAorICAgIElQQ0FfU0FUX1NBUCwKKyAgICBJUENBX1NNVV9TQVAsCisgICAgSVBDQV9QSEJfU0FQLAorICAgIElQQ0FfR1BSU19TQVAsCisgICAgSVBDQV9DQ19TQVAsCisgICAgSVBDQV9TU19TQVAsCisgICAgSVBDQV9OV19TQVAsCisgICAgSVBDQV9NSVNDX1NBUCwKKyAgICBJUENBX1VUX1NBUCwKKyAgICBJUENBX09FTV9TQVAsCisgICAgSVBDQV9EU1BMX1NBUCwKKyAgICBJUENBX1NORF9TQVAsCisgICAgSVBDQV9TQVBfU0FQLAorICAgIElQQ0FfQ1RSTF9TQVAsCisgICAgSVBDQV9FTV9TQVAsCisgICAgSVBDQV9GQUNUT1JZX1NBUCwKKyAgICBJUENBX0lNU19TQVAsCisgICAgSVBDQV9DRkdfU0FQLCAgICAKKyAgICBJUENBX05XX0dQUlNfU0FQLAorICAgIElQQ0FfR1BSU19ST1VUSU5FX1NBUCwKKyAgICBJUENBX0xFSVNJTV9TQVAsCisgICAgSVBDQV9FTUJNU19TQVAsCisgICAgSVBDQV9XTV9TQVAsCisgICAgSVBDQV9TUkxURV9TQVAsCisjaWZkZWYgX19UQzEwX0lQQ19DRE1BX1NVUFBPUlRfXworICAgIElQQ0FfSVJfU0FQLAorI2VuZGlmCisgICAgSVBDQV9KUE5fU0FQLAorICAgIElQQ19TTVVfU0FQLCAgICAvLyBGb3IgbXNnIGJldHdlZW4gSVBDQSBtb2R1bGVzIGFuZCBNT0RfU01VCisgICAgTDRCU0lNX0lQQ0FfU1JMVEVfU0FQLAorCisgICAgREhMX0lQQ0FfU01VX1NBUCwKKyAgICBJUENBX1NCUF9TQVAsICAgIAorICAgIElQQ0FfVVBDTV9TQVAsCisgICAgSVBDQV9ET01FU1RJQ19TQVAsCisgICAgSVBDQV9TTVVfU0lNX1NBUCwKKyAgICAKKyNlbmRpZgorICAgIEQyQVRfSVBDQV9HUFJTX1NBUCwKKworICAgIC8qIEw1Ki8gICAgCisgICAgTDVJT19TQVAsCisgICAgTDVJT19MNVVfU0FQLAorICAgIEw1SU9fVVNXSVRDSF9TQVAsCisgICAgTDVJT19MNVVTU19TQVAsCisgICAgTDVJT19MNVVDQVRfU0FQLAorICAgIEw1SU9fTDVVUkZfU0FQLAorICAgIEw1SU9fTDVVQ0NfU0FQLAorICAgIEw1SU9fTDVVU0lNX1NBUCwKKyAgICBMNUlPX0w1VVNNU19TQVAsCisgICAgTDVVU01TX0w1VVNNU19TQVAsCisgICAgTDVJT19MNVVFQ0FMTF9TQVAsCisgICAgTDVVRUNBTExfTDVVRUNBTExfU0FQLAorICAgIEw1SU9fQVRQX1NBUCwKKyAgICBMNUlPX0w0Q19TQVAsCisgICAgTDVJT19MNVVQRE5fU0FQLAorICAgIEw1VV9MNVVDQVRfU0FQLAorICAgIEw1VV9MNVVTU19TQVAsCisgICAgTDVVX0w1VVNXSVRIX1NBUCwKKyAgICBMNVVfTDVVQ0NfU0FQLAorICAgIEw1VV9MNVVTSU1fU0FQLAorICAgIEw1VV9MNVVSRl9TQVAsCisgICAgTDVVX0FUUF9TQVAsCisgICAgTDVfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEw1SU9fVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEw1VV9TQVAsCisKKyAgICBMNVVOV19MNEJOV19TQVAsCisgICAgTDVVU1NfTDVVU1NfU0FQLAkKKwlMNUlPX0w1VVNZU19TQVAsCisJTDVVUEROX0QyQ01fU0FQLAorICAgIEw1VVBETl9EMl9TQVAsCisJTDVJT19MNEJTQlBfU0FQLAorCUw1SU9fTDVJT19TQVAsCisJTDVVSU1TX1NBUCwKKyAgICBMNVVOV19MNENfU0FQLAorCUw1VVJGX0w0Q19TQVAsCisgICAgTkwxX01UX1NBUCwKKyAgICBMNUlPX1NMVF9TQVAsCisgICAgTDVVU0lNX0w1VVNXSVRDSF9TQVAsCitNT0RVTEVfU0FQX0VORChTQVBfSURfTURfQ09ERV9UQUlMKQorCisjZW5kaWYgLyogTURfU0FQX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21kX3N2Y19zYXAuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21kX3N2Y19zYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGNmYWI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbWRfc3ZjX3NhcC5oCkBAIC0wLDAgKzEsMTUgQEAKKyNpZm5kZWYgTURfU1ZDX1NBUF9ICisjZGVmaW5lIE1EX1NWQ19TQVBfSAorCisjaW5jbHVkZSAic2FwX3JhbmdlLmgiCisKK01PRFVMRV9TQVBfQkVHSU4oU0FQX0lEX01EX1NWQ19DT0RFX0JFR0lOKQorCVVBUlRfTDRDX1NBUCA9IFNBUF9JRF9NRF9TVkNfQ09ERV9CRUdJTiwKKyAgICBNQ0ZfU0FQLAorCisgICAgTUNGX1VURldLX1NBUCwKKyAgICBOM0NGX1NBUCwKKyAgICBOM1NBTV9DUlBUQlJHX1NBUCwKK01PRFVMRV9TQVBfRU5EKFNBUF9JRF9NRF9TVkNfQ09ERV9UQUlMKQorCisjZW5kaWYgLyogTURfU1ZDX1NBUF9IICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbWlkZGxld2FyZV9tb2RpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbWlkZGxld2FyZV9tb2RpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZTY4ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9taWRkbGV3YXJlX21vZGlkLmgKQEAgLTAsMCArMSwxODIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1pZGRsZXdhcmVfbW9kaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNYXVpX1NvZnR3YXJlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBtb2R1bGUgaW5kZXggZW51bSBidWlsdC4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgTUlERExFV0FSRV9NT0RVTEVfSURfSAorI2RlZmluZSBNSURETEVXQVJFX01PRFVMRV9JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfaWRfcmFuZ2UuaCIKKworLyogdW5kZWYgdW51c2VkIG1hY3JvICovCisjdW5kZWYgVEFTS19QUklPUklUWV9NQUNSTworI3VuZGVmIHRhc2tfbmFtZQorI3VuZGVmIHRhc2tfcXVldWVfbmFtZQorI3VuZGVmIHRhc2tfcHJpb3JpdHkKKyN1bmRlZiB0YXNrX3N0YWNrX3NpemUKKyN1bmRlZiBudWxsX3Rhc2tfY3JlYXRlX2VudHJ5CisjdW5kZWYgY29tcGF0aWJsZV9jb2RlCisjdW5kZWYgdGFza19jcmVhdGVfZnVuY3Rpb24KKyN1bmRlZiB0YXNrX3N0YWNrX2ludGVybmFsUkFNCisjdW5kZWYgdGFza19leHRlcm5hbF9xdWV1ZV9zaXplCisjdW5kZWYgdGFza19pbnRlcm5hbF9xdWV1ZV9zaXplCisjdW5kZWYgdGFza19ib290X21vZGUKKyN1bmRlZiB0YXNrX2FmZmluaXR5X2dyb3VwCisjdW5kZWYgdGFza19hZmZpbml0eV9ncm91cF9pZAorI3VuZGVmIE1PRFVMRV9JRF9NQVBfVE9fTlVMTF9UQVNLX0NBTl9BTExPQ0FURV9JTE0KKyN1bmRlZiBNT0RVTEVfSURfRk9SX1BSSU5UX1RSQUNFCisjdW5kZWYgdGFza19pbmRleAorI3VuZGVmIHRhc2tfbW9kdWxlX21hcAorCisvKiBkZWZpbmUgYWxsIHVudXNlZCBtYWNyb3MgYXMgZW1wdHkgKi8KKyNkZWZpbmUgdGFza19uYW1lKHAxKQorI2RlZmluZSB0YXNrX3F1ZXVlX25hbWUocDEpCisjZGVmaW5lIHRhc2tfcHJpb3JpdHkocDEscDIpCisjZGVmaW5lIHRhc2tfc3RhY2tfc2l6ZShwMSkKKyNkZWZpbmUgbnVsbF90YXNrX2NyZWF0ZV9lbnRyeShwMSkKKyNkZWZpbmUgdGFza19jcmVhdGVfZnVuY3Rpb24ocDEpCisjZGVmaW5lIHRhc2tfc3RhY2tfaW50ZXJuYWxSQU0ocDEpCisjZGVmaW5lIHRhc2tfZXh0ZXJuYWxfcXVldWVfc2l6ZShwMSkKKyNkZWZpbmUgdGFza19pbnRlcm5hbF9xdWV1ZV9zaXplKHAxKQorI2RlZmluZSB0YXNrX2Jvb3RfbW9kZShwMSkKKyNkZWZpbmUgdGFza19hZmZpbml0eV9ncm91cChwMSkKKyNkZWZpbmUgdGFza19hZmZpbml0eV9ncm91cF9pZChwMSkKKyNkZWZpbmUgdGFza19pbmRleChwMSkKKworLyogZGVmaW5lIHRoZSBtYWNybyB3aGljaCBwcm92aWRlcyB0aGUgTU9EIElEKi8KKyNkZWZpbmUgdGFza19tb2R1bGVfbWFwKHRhc2ssIG1vZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLAorI2RlZmluZSBjb21wYXRpYmxlX2NvZGUoZXhwcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByLAorI2RlZmluZSBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNKG1vZCkgICAgICAgICAgICBtb2QsCisjZGVmaW5lIE1PRFVMRV9JRF9GT1JfUFJJTlRfVFJBQ0UobW9kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZCwKKworCitNT0RVTEVfTU9EX0JFR0lOKE1PRF9JRF9NSURETEVXQVJFX0NPREVfQkVHSU4pCisgICAgI2luY2x1ZGUgIm1pZGRsZVdhcmVfdGFza19jb25maWcuaCIKKy8qIGN1c3RvbWVyIGFkZCBtb2R1bGUgaWQgYXQgaGVyZSAqLworTU9EVUxFX01PRF9FTkQoTU9EX0lEX01JRERMRVdBUkVfQ09ERV9UQUlMKQorCisgICAgCisvKiBjbGVhbiB1bnVzZSBkZWZpbmF0aW9uICovCisjdW5kZWYgdGFza19tb2R1bGVfbWFwCisjdW5kZWYgY29tcGF0aWJsZV9jb2RlCisjdW5kZWYgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTQorI3VuZGVmIE1PRFVMRV9JRF9GT1JfUFJJTlRfVFJBQ0UKKworCisjZW5kaWYgLyogTUlERExFV0FSRV9NT0RVTEVfSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbW9kZW1fMmczZ19tb2RpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbW9kZW1fMmczZ19tb2RpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NGE3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tb2RlbV8yZzNnX21vZGlkLmgKQEAgLTAsMCArMSwxNzggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1vZGVtXzJnM2dfbW9kaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNYXVpX1NvZnR3YXJlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBtb2R1bGUgaW5kZXggZW51bSBidWlsdC4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBNT0RFTV8yRzNHX01PRFVMRV9JRF9ICisjZGVmaW5lIE1PREVNXzJHM0dfTU9EVUxFX0lEX0gKKworI2luY2x1ZGUgIm1vZHVsZV9pZF9yYW5nZS5oIgorCisvKiB1bmRlZiB1bnVzZWQgbWFjcm8gKi8KKyN1bmRlZiBUQVNLX1BSSU9SSVRZX01BQ1JPCisjdW5kZWYgdGFza19uYW1lCisjdW5kZWYgdGFza19xdWV1ZV9uYW1lCisjdW5kZWYgdGFza19wcmlvcml0eQorI3VuZGVmIHRhc2tfc3RhY2tfc2l6ZQorI3VuZGVmIG51bGxfdGFza19jcmVhdGVfZW50cnkKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiB0YXNrX2NyZWF0ZV9mdW5jdGlvbgorI3VuZGVmIHRhc2tfc3RhY2tfaW50ZXJuYWxSQU0KKyN1bmRlZiB0YXNrX2V4dGVybmFsX3F1ZXVlX3NpemUKKyN1bmRlZiB0YXNrX2ludGVybmFsX3F1ZXVlX3NpemUKKyN1bmRlZiB0YXNrX2Jvb3RfbW9kZQorI3VuZGVmIHRhc2tfYWZmaW5pdHlfZ3JvdXAKKyN1bmRlZiB0YXNrX2FmZmluaXR5X2dyb3VwX2lkCisjdW5kZWYgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTQorI3VuZGVmIE1PRFVMRV9JRF9GT1JfUFJJTlRfVFJBQ0UKKyN1bmRlZiB0YXNrX2luZGV4CisjdW5kZWYgdGFza19tb2R1bGVfbWFwCisKKy8qIGRlZmluZSBhbGwgdW51c2VkIG1hY3JvcyBhcyBlbXB0eSAqLworI2RlZmluZSB0YXNrX25hbWUocDEpCisjZGVmaW5lIHRhc2tfcXVldWVfbmFtZShwMSkKKyNkZWZpbmUgdGFza19wcmlvcml0eShwMSxwMikKKyNkZWZpbmUgdGFza19zdGFja19zaXplKHAxKQorI2RlZmluZSBudWxsX3Rhc2tfY3JlYXRlX2VudHJ5KHAxKQorI2RlZmluZSB0YXNrX2NyZWF0ZV9mdW5jdGlvbihwMSkKKyNkZWZpbmUgdGFza19zdGFja19pbnRlcm5hbFJBTShwMSkKKyNkZWZpbmUgdGFza19leHRlcm5hbF9xdWV1ZV9zaXplKHAxKQorI2RlZmluZSB0YXNrX2ludGVybmFsX3F1ZXVlX3NpemUocDEpCisjZGVmaW5lIHRhc2tfYm9vdF9tb2RlKHAxKQorI2RlZmluZSB0YXNrX2FmZmluaXR5X2dyb3VwKHAxKQorI2RlZmluZSB0YXNrX2FmZmluaXR5X2dyb3VwX2lkKHAxKQorI2RlZmluZSB0YXNrX2luZGV4KHAxKQorCisvKiBkZWZpbmUgdGhlIG1hY3JvIHdoaWNoIHByb3ZpZGVzIHRoZSBNT0QgSUQqLworI2RlZmluZSB0YXNrX21vZHVsZV9tYXAodGFzaywgbW9kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QsCisjZGVmaW5lIGNvbXBhdGlibGVfY29kZShleHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIsCisjZGVmaW5lIE1PRFVMRV9JRF9NQVBfVE9fTlVMTF9UQVNLX0NBTl9BTExPQ0FURV9JTE0obW9kKSAgICAgICAgICAgIG1vZCwKKyNkZWZpbmUgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRShtb2QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLAorCisKK01PRFVMRV9NT0RfQkVHSU4oTU9EX0lEX01PREVNXzJHM0dfQ09ERV9CRUdJTikKKyAgICAjaW5jbHVkZSAibW9kZW1fMmczZ190YXNrX2NvbmZpZy5oIgorLyogY3VzdG9tZXIgYWRkIG1vZHVsZSBpZCBhdCBoZXJlICovCitNT0RVTEVfTU9EX0VORChNT0RfSURfTU9ERU1fMkczR19DT0RFX1RBSUwpCisKKyAgICAKKy8qIGNsZWFuIHVudXNlIGRlZmluYXRpb24gKi8KKyN1bmRlZiB0YXNrX21vZHVsZV9tYXAKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNCisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorCisKKyNlbmRpZiAvKiBNT0RFTV8yRzNHX01PRFVMRV9JRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tb2RlbV80Z19tb2RpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbW9kZW1fNGdfbW9kaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWExZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbW9kZW1fNGdfbW9kaWQuaApAQCAtMCwwICsxLDE3MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgbW9kZW1fNGdfbW9kaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNYXVpX1NvZnR3YXJlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVGhpcyBmaWxlIHByb3ZpZGVzIHRoZSBtb2R1bGUgaW5kZXggZW51bSBidWlsdC4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgTU9ERU1fNEdfTU9EVUxFX0lEX0gKKyNkZWZpbmUgTU9ERU1fNEdfTU9EVUxFX0lEX0gKKworI2luY2x1ZGUgIm1vZHVsZV9pZF9yYW5nZS5oIgorCisvKiB1bmRlZiB1bnVzZWQgbWFjcm8gKi8KKyN1bmRlZiBUQVNLX1BSSU9SSVRZX01BQ1JPCisjdW5kZWYgdGFza19uYW1lCisjdW5kZWYgdGFza19xdWV1ZV9uYW1lCisjdW5kZWYgdGFza19wcmlvcml0eQorI3VuZGVmIHRhc2tfc3RhY2tfc2l6ZQorI3VuZGVmIG51bGxfdGFza19jcmVhdGVfZW50cnkKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiB0YXNrX2NyZWF0ZV9mdW5jdGlvbgorI3VuZGVmIHRhc2tfc3RhY2tfaW50ZXJuYWxSQU0KKyN1bmRlZiB0YXNrX2V4dGVybmFsX3F1ZXVlX3NpemUKKyN1bmRlZiB0YXNrX2ludGVybmFsX3F1ZXVlX3NpemUKKyN1bmRlZiB0YXNrX2Jvb3RfbW9kZQorI3VuZGVmIHRhc2tfYWZmaW5pdHlfZ3JvdXAKKyN1bmRlZiB0YXNrX2FmZmluaXR5X2dyb3VwX2lkCisjdW5kZWYgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTQorI3VuZGVmIE1PRFVMRV9JRF9GT1JfUFJJTlRfVFJBQ0UKKyN1bmRlZiB0YXNrX2luZGV4CisjdW5kZWYgdGFza19tb2R1bGVfbWFwCisKKy8qIGRlZmluZSBhbGwgdW51c2VkIG1hY3JvcyBhcyBlbXB0eSAqLworI2RlZmluZSB0YXNrX25hbWUocDEpCisjZGVmaW5lIHRhc2tfcXVldWVfbmFtZShwMSkKKyNkZWZpbmUgdGFza19wcmlvcml0eShwMSxwMikKKyNkZWZpbmUgdGFza19zdGFja19zaXplKHAxKQorI2RlZmluZSBudWxsX3Rhc2tfY3JlYXRlX2VudHJ5KHAxKQorI2RlZmluZSB0YXNrX2NyZWF0ZV9mdW5jdGlvbihwMSkKKyNkZWZpbmUgdGFza19zdGFja19pbnRlcm5hbFJBTShwMSkKKyNkZWZpbmUgdGFza19leHRlcm5hbF9xdWV1ZV9zaXplKHAxKQorI2RlZmluZSB0YXNrX2ludGVybmFsX3F1ZXVlX3NpemUocDEpCisjZGVmaW5lIHRhc2tfYm9vdF9tb2RlKHAxKQorI2RlZmluZSB0YXNrX2FmZmluaXR5X2dyb3VwKHAxKQorI2RlZmluZSB0YXNrX2FmZmluaXR5X2dyb3VwX2lkKHAxKQorI2RlZmluZSB0YXNrX2luZGV4KHAxKQorCisvKiBkZWZpbmUgdGhlIG1hY3JvIHdoaWNoIHByb3ZpZGVzIHRoZSBNT0QgSUQqLworI2RlZmluZSB0YXNrX21vZHVsZV9tYXAodGFzaywgbW9kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QsCisjZGVmaW5lIGNvbXBhdGlibGVfY29kZShleHByKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIsCisjZGVmaW5lIE1PRFVMRV9JRF9NQVBfVE9fTlVMTF9UQVNLX0NBTl9BTExPQ0FURV9JTE0obW9kKSAgICAgICAgICAgIG1vZCwKKyNkZWZpbmUgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRShtb2QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kLAorCisKK01PRFVMRV9NT0RfQkVHSU4oTU9EX0lEX01PREVNXzRHX0NPREVfQkVHSU4pCisgICAgI2luY2x1ZGUgIm1vZGVtXzRnX3Rhc2tfY29uZmlnLmgiCisvKiBjdXN0b21lciBhZGQgbW9kdWxlIGlkIGF0IGhlcmUgKi8KK01PRFVMRV9NT0RfRU5EKE1PRF9JRF9NT0RFTV80R19DT0RFX1RBSUwpCisKKyAgICAKKy8qIGNsZWFuIHVudXNlIGRlZmluYXRpb24gKi8KKyN1bmRlZiB0YXNrX21vZHVsZV9tYXAKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNCisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorCisKKyNlbmRpZiAvKiBNT0RFTV80R19NT0RVTEVfSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbW9kZW1fNWdfbW9kaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21vZGVtXzVnX21vZGlkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIzZDgwYgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21vZGVtXzVnX21vZGlkLmgKQEAgLTAsMCArMSwxMjkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1vZGVtXzVnX21vZGlkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIFRoaXMgZmlsZSBwcm92aWRlcyB0aGUgbW9kdWxlIGluZGV4IGVudW0gYnVpbHQuCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBNT0RFTV81R19NT0RVTEVfSURfSAorI2RlZmluZSBNT0RFTV81R19NT0RVTEVfSURfSAorCisjaW5jbHVkZSAibW9kdWxlX2lkX3JhbmdlLmgiCisKKy8qIHVuZGVmIHVudXNlZCBtYWNybyAqLworI3VuZGVmIFRBU0tfUFJJT1JJVFlfTUFDUk8KKyN1bmRlZiB0YXNrX25hbWUKKyN1bmRlZiB0YXNrX3F1ZXVlX25hbWUKKyN1bmRlZiB0YXNrX3ByaW9yaXR5CisjdW5kZWYgdGFza19zdGFja19zaXplCisjdW5kZWYgbnVsbF90YXNrX2NyZWF0ZV9lbnRyeQorI3VuZGVmIGNvbXBhdGlibGVfY29kZQorI3VuZGVmIHRhc2tfY3JlYXRlX2Z1bmN0aW9uCisjdW5kZWYgdGFza19zdGFja19pbnRlcm5hbFJBTQorI3VuZGVmIHRhc2tfZXh0ZXJuYWxfcXVldWVfc2l6ZQorI3VuZGVmIHRhc2tfaW50ZXJuYWxfcXVldWVfc2l6ZQorI3VuZGVmIHRhc2tfYm9vdF9tb2RlCisjdW5kZWYgdGFza19hZmZpbml0eV9ncm91cAorI3VuZGVmIHRhc2tfYWZmaW5pdHlfZ3JvdXBfaWQKKyN1bmRlZiBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNCisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorI3VuZGVmIHRhc2tfaW5kZXgKKyN1bmRlZiB0YXNrX21vZHVsZV9tYXAKKworLyogZGVmaW5lIGFsbCB1bnVzZWQgbWFjcm9zIGFzIGVtcHR5ICovCisjZGVmaW5lIHRhc2tfbmFtZShwMSkKKyNkZWZpbmUgdGFza19xdWV1ZV9uYW1lKHAxKQorI2RlZmluZSB0YXNrX3ByaW9yaXR5KHAxLHAyKQorI2RlZmluZSB0YXNrX3N0YWNrX3NpemUocDEpCisjZGVmaW5lIG51bGxfdGFza19jcmVhdGVfZW50cnkocDEpCisjZGVmaW5lIHRhc2tfY3JlYXRlX2Z1bmN0aW9uKHAxKQorI2RlZmluZSB0YXNrX3N0YWNrX2ludGVybmFsUkFNKHAxKQorI2RlZmluZSB0YXNrX2V4dGVybmFsX3F1ZXVlX3NpemUocDEpCisjZGVmaW5lIHRhc2tfaW50ZXJuYWxfcXVldWVfc2l6ZShwMSkKKyNkZWZpbmUgdGFza19ib290X21vZGUocDEpCisjZGVmaW5lIHRhc2tfYWZmaW5pdHlfZ3JvdXAocDEpCisjZGVmaW5lIHRhc2tfYWZmaW5pdHlfZ3JvdXBfaWQocDEpCisjZGVmaW5lIHRhc2tfaW5kZXgocDEpCisKKy8qIGRlZmluZSB0aGUgbWFjcm8gd2hpY2ggcHJvdmlkZXMgdGhlIE1PRCBJRCovCisjZGVmaW5lIHRhc2tfbW9kdWxlX21hcCh0YXNrLCBtb2QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZCwKKyNkZWZpbmUgY29tcGF0aWJsZV9jb2RlKGV4cHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwciwKKyNkZWZpbmUgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTShtb2QpICAgICAgICAgICAgbW9kLAorI2RlZmluZSBNT0RVTEVfSURfRk9SX1BSSU5UX1RSQUNFKG1vZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QsCisKKworTU9EVUxFX01PRF9CRUdJTihNT0RfSURfTU9ERU1fNUdfQ09ERV9CRUdJTikKKyAgICAjaW5jbHVkZSAibW9kZW1fNWdfdGFza19jb25maWcuaCIKKy8qIGN1c3RvbWVyIGFkZCBtb2R1bGUgaWQgYXQgaGVyZSAqLworTU9EVUxFX01PRF9FTkQoTU9EX0lEX01PREVNXzVHX0NPREVfVEFJTCkKKworICAgIAorLyogY2xlYW4gdW51c2UgZGVmaW5hdGlvbiAqLworI3VuZGVmIHRhc2tfbW9kdWxlX21hcAorI3VuZGVmIGNvbXBhdGlibGVfY29kZQorI3VuZGVmIE1PRFVMRV9JRF9NQVBfVE9fTlVMTF9UQVNLX0NBTl9BTExPQ0FURV9JTE0KKyN1bmRlZiBNT0RVTEVfSURfRk9SX1BSSU5UX1RSQUNFCisKKworI2VuZGlmIC8qIE1PREVNXzVHX01PRFVMRV9JRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tb2R1bGVfaGlzcmlkX3JhbmdlLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tb2R1bGVfaGlzcmlkX3JhbmdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI2YTE5MAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21vZHVsZV9oaXNyaWRfcmFuZ2UuaApAQCAtMCwwICsxLDEzIEBACisjaWZuZGVmIE1PRFVMRV9ISVNSSURfUkFOR0VfSAorI2RlZmluZSBNT0RVTEVfSElTUklEX1JBTkdFX0gKKwordHlwZWRlZiBlbnVtIHsKKyAgICBISVNSX0lEX0NPREVfUkVTRVJWRUQgPSAwLCAgICAKKyAgICBISVNSX0lEX1NTX0NPREVfQkVHSU4gPSBISVNSX0lEX0NPREVfUkVTRVJWRUQsCisgICAgSElTUl9JRF9NT0RFTV9DT0RFX0JFR0lOID0gSElTUl9JRF9TU19DT0RFX0JFR0lOICsgOSwKKyAgICBISVNSX0lEX0RSVl9DT0RFX0JFR0lOID0gSElTUl9JRF9NT0RFTV9DT0RFX0JFR0lOICsgNjYsCisgICAgSElTUl9JRF9DT0RFX01BWCA9IDEzMAorfSBISVNSX0lEX0NPREVfQkVHSU47CisKKworI2VuZGlmIC8qIE1PRFVMRV9ISVNSSURfUkFOR0VfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbW9kdWxlX2lkX3JhbmdlLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tb2R1bGVfaWRfcmFuZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjU3YTkyCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbW9kdWxlX2lkX3JhbmdlLmgKQEAgLTAsMCArMSwzMDAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHN0YWNrX2NvbmZpZy5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIHRhc2sgaW5kZXggYW5kIG1vZHVsZSBpbmRleCBjb25maWd1cmF0aW9uLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBNT0RVTEVfSURfUkFOR0VfSAorI2RlZmluZSBNT0RVTEVfSURfUkFOR0VfSAorCisjZGVmaW5lIEtBTF9NQVhfTlVNX05PUk1BTF9ISVNSUyAgKDkwICsgNDApCisjZGVmaW5lIEtBTF9NQVhfTlVNX0xJU1IySElTUlMgICgwKQorI2RlZmluZSBLQUxfTUFYX05VTV9ISVNSUyAgKEtBTF9NQVhfTlVNX05PUk1BTF9ISVNSUytLQUxfTUFYX05VTV9MSVNSMkhJU1JTKQorI2RlZmluZSBLQUxfTUFYX05VTV9MSVNSUyAgMzcyIC8vTlVNX0lSUV9TT1VSQ0VTCisKKyNpZiBkZWZpbmVkKF9fTUQ5M19fKSB8fCBkZWZpbmVkKF9fTUQ5NV9fKQorI2RlZmluZSBNT0RFTV81R19NT0RfSURfTlVNX01BWCAgIDMKKworI2VsaWYgZGVmaW5lZChfX01EOTdfXykgfHwgZGVmaW5lZChfX01EOTdQX18pCisjZGVmaW5lIE1PREVNXzVHX01PRF9JRF9OVU1fTUFYICAgMTAwCisKKyNlbmRpZgorCit0eXBlZGVmIGVudW0geworICAgIE1PRF9JRF9TUlZfQ09ERV9CRUdJTiwgTU9EX0lEX1NSVl9DT0RFX1RBSUwgPSBNT0RfSURfU1JWX0NPREVfQkVHSU4gKyAxNTAsCisJCisgICAgTU9EX0lEX01PREVNXzJHM0dfQ09ERV9CRUdJTiwgTU9EX0lEX01PREVNXzJHM0dfQ09ERV9UQUlMID0gTU9EX0lEX01PREVNXzJHM0dfQ09ERV9CRUdJTiArIDUzMCwKKworICAgIE1PRF9JRF9NT0RFTV80R19DT0RFX0JFR0lOLCBNT0RfSURfTU9ERU1fNEdfQ09ERV9UQUlMID0gTU9EX0lEX01PREVNXzRHX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNT0RfSURfTU9ERU1fNUdfQ09ERV9CRUdJTiwgTU9EX0lEX01PREVNXzVHX0NPREVfVEFJTCA9IE1PRF9JRF9NT0RFTV81R19DT0RFX0JFR0lOICsgTU9ERU1fNUdfTU9EX0lEX05VTV9NQVgsCisJCisgICAgTU9EX0lEX01JRERMRVdBUkVfQ09ERV9CRUdJTiwgTU9EX0lEX01JRERMRVdBUkVfQ09ERV9UQUlMID0gTU9EX0lEX01JRERMRVdBUkVfQ09ERV9CRUdJTiArIDE1MCwKKwkKKyAgICBNT0RfSURfRFJWX0NPREVfQkVHSU4sIE1PRF9JRF9EUlZfQ09ERV9UQUlMID0gTU9EX0lEX0RSVl9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTU9EX0lEX0hJU1JfQ09ERV9CRUdJTiwgCisKKyAgICBNT0RfSURfSElTUl9DT0RFX1RBSUwgPSBNT0RfSURfSElTUl9DT0RFX0JFR0lOICsgS0FMX01BWF9OVU1fSElTUlMgKyAxLAorCisgICAgTU9EX0lEX0xJU1JfQ09ERV9CRUdJTiwgCisKKyAgICBNT0RfSURfTElTUl9DT0RFX1RBSUwgPSBNT0RfSURfTElTUl9DT0RFX0JFR0lOICsgS0FMX01BWF9OVU1fTElTUlMgKyAxLAorCQkKKyAgICBNT0RfSURfQ09ERV9FTkQsCisgICAgTU9EX0lEX0VORCA9IE1PRF9JRF9DT0RFX0VORCwKKyAgICAvL1RvIGVubGFyZ2UgRU5EX09GX01PRF9JRF9CRUdJTiwgcGxlYXNlIGRpc2N1c3Mgd2l0aCBESEwgb3duZXIgaWYgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIGluIE5WUkFNLgorICAgIEVORF9PRl9NT0RfSURfQkVHSU4gPSAyMDAwLCBFTkRfT0ZfTU9EX0lEX1RBSUwsCisKKworfU1PRFVMRV9JRF9UWVBFOworCit0eXBlZGVmIHVuc2lnbmVkIGludCBtb2R1bGVfaWRfYm91bmRhcnlfY2hlY2sxW0VORF9PRl9NT0RfSURfQkVHSU4gLSBNT0RfSURfQ09ERV9FTkRdOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKiogIFNob3VsZCBub3QgY2hhbmdlIHRoZSBmb2xsb3dpbmcgTUFDUk9TIGRlZmluZXMgICoqKioqKioqKioqKioKKyoqKioqKioqKiogIFNob3VsZCBub3QgZGVmaW5lIE1PRFVMRSBJRCB3aXRoICJNT0RfVEFHXyIgICAgICoqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZmRlZiBHRU5fRk9SX1BDCisgICAgI2RlZmluZSBNT0RVTEVfTU9EX0JFR0lOKEJFR0lOX1BPUykgIHR5cGVkZWYgZW51bSBfX2NnZW5fbW9kdWxlX3R5cGVfaWRfIyNCRUdJTl9QT1N7TU9EVUxFX1RBR18jI0JFR0lOX1BPUyA9IEJFR0lOX1BPUywKKyAgICAjZGVmaW5lIE1PRFVMRV9NT0RfRU5EKEVORF9QT1MpIE1PRFVMRV9JRF9DR0VOX1BBUlNFX0xBU1RfSUQ9RU5EX1BPUyB9X2NnZW5fbW9kdWxlX3R5cGVfaWRfIyNFTkRfUE9TOworI2Vsc2UKKyAgICAjZGVmaW5lIE1PRFVMRV9NT0RfQkVHSU4oQkVHSU5fUE9TKSAgIGVudW0geyBNT0RVTEVfVEFHXyMjQkVHSU5fUE9TID0gQkVHSU5fUE9TLAorICAgICNkZWZpbmUgTU9EVUxFX01PRF9FTkQoRU5EX1BPUykgICAgIH07ICAgIAorI2VuZGlmIC8qIEdFTl9GT1JfUEMgKi8KKworCitNT0RVTEVfTU9EX0JFR0lOKEVORF9PRl9NT0RfSURfQkVHSU4pCisJRU5EX09GX01PRF9JRCwKK01PRFVMRV9NT0RfRU5EKEVORF9PRl9NT0RfSURfVEFJTCkKKworCisjZW5kaWYgLyogTU9EVUxFX0lEX1JBTkdFX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL21vZHVsZV9tc2dfcmFuZ2UuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL21vZHVsZV9tc2dfcmFuZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzNhMjE0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbW9kdWxlX21zZ19yYW5nZS5oCkBAIC0wLDAgKzEsNzA0IEBACisjaWZuZGVmIE1PRFVMRV9NU0dfUkFOR0VfSAorI2RlZmluZSBNT0RVTEVfTVNHX1JBTkdFX0gKKwordHlwZWRlZiBlbnVtIHsKKyAgICBNU0dfSURfWFhYX0NPREVfQkFTRSA9IDUwMCwKKworICAgIE1TR19JRF9TWVNERUJVR19DT0RFX0JFR0lOLCBNU0dfSURfU1lTREVCVUdfQ09ERV9UQUlMID0gTVNHX0lEX1NZU0RFQlVHX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfQ0NfQ09ERV9CRUdJTiwgTVNHX0lEX0NDX0NPREVfVEFJTCA9IE1TR19JRF9DQ19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0NJU1NfQ09ERV9CRUdJTiwgTVNHX0lEX0NJU1NfQ09ERV9UQUlMID0gTVNHX0lEX0NJU1NfQ09ERV9CRUdJTiArIDE1MCwKKworICAgIE1TR19JRF9NTV9DT0RFX0JFR0lOLCBNU0dfSURfTU1fQ09ERV9UQUlMID0gTVNHX0lEX01NX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNU0dfSURfU01TX0NPREVfQkVHSU4sIE1TR19JRF9TTVNfQ09ERV9UQUlMID0gTVNHX0lEX1NNU19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1NJTV9QVUJMSUNfQ09ERV9CRUdJTiwgTVNHX0lEX1NJTV9QVUJMSUNfQ09ERV9UQUlMID0gTVNHX0lEX1NJTV9QVUJMSUNfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9TSU1fUFNfQ09ERV9CRUdJTiwgTVNHX0lEX1NJTV9QU19DT0RFX1RBSUwgPSBNU0dfSURfU0lNX1BTX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICBNU0dfSURfTDRfUFVCTElDX0NPREVfQkVHSU4sIE1TR19JRF9MNF9QVUJMSUNfQ09ERV9UQUlMID0gTVNHX0lEX0w0X1BVQkxJQ19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0w0Q19JTlRFUk5BTF9DT0RFX0JFR0lOLCBNU0dfSURfTDRDX0lOVEVSTkFMX0NPREVfVEFJTCA9IE1TR19JRF9MNENfSU5URVJOQUxfQ09ERV9CRUdJTiArIDYwMCwKKworICAgIE1TR19JRF9MNENfRVhURVJOQUxfQ09ERV9CRUdJTiwgTVNHX0lEX0w0Q19FWFRFUk5BTF9DT0RFX1RBSUwgPSBNU0dfSURfTDRDX0VYVEVSTkFMX0NPREVfQkVHSU4gKyAyNTAsCisKKyAgICBNU0dfSURfUkFUX1RDTV9DT0RFX0JFR0lOLCBNU0dfSURfUkFUX1RDTV9DT0RFX1RBSUwgPSBNU0dfSURfUkFUX1RDTV9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTVNHX0lEX1RDTV9DT0RFX0JFR0lOLCBNU0dfSURfVENNX0NPREVfVEFJTCA9IE1TR19JRF9UQ01fQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9DU01fQ09ERV9CRUdJTiwgTVNHX0lEX0NTTV9DT0RFX1RBSUwgPSBNU0dfSURfQ1NNX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNU0dfSURfU01TQUxfQ09ERV9CRUdJTiwgTVNHX0lEX1NNU0FMX0NPREVfVEFJTCA9IE1TR19JRF9TTVNBTF9DT0RFX0JFR0lOICsgMTUwLAorCisgICAgTVNHX0lEX1NNVV9DT0RFX0JFR0lOLCBNU0dfSURfU01VX0NPREVfVEFJTCA9IE1TR19JRF9TTVVfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9VRU1fQ09ERV9CRUdJTiwgTVNHX0lEX1VFTV9DT0RFX1RBSUwgPSBNU0dfSURfVUVNX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfUkFDX0NPREVfQkVHSU4sIE1TR19JRF9SQUNfQ09ERV9UQUlMID0gTVNHX0lEX1JBQ19DT0RFX0JFR0lOICsgMzUwLAorCisgICAgTVNHX0lEX1VTQVRfQ09ERV9CRUdJTiwgTVNHX0lEX1VTQVRfQ09ERV9UQUlMID0gTVNHX0lEX1VTQVRfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9QSEJfQ09ERV9CRUdJTiwgTVNHX0lEX1BIQl9DT0RFX1RBSUwgPSBNU0dfSURfUEhCX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfUFNfQ09ERV9CRUdJTiwgTVNHX0lEX1BTX0NPREVfVEFJTCA9IE1TR19JRF9QU19DT0RFX0JFR0lOICsgMTUwLAorCisgICAgTVNHX0lEX01CQ0lfQ09ERV9CRUdJTiwgTVNHX0lEX01CQ0lfQ09ERV9UQUlMID0gTVNHX0lEX01CQ0lfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0FUQ0lfQ09ERV9CRUdJTiwgTVNHX0lEX0FUQ0lfQ09ERV9UQUlMID0gTVNHX0lEX0FUQ0lfQ09ERV9CRUdJTiArIDE1MCwKKworICAgIE1TR19JRF9FTkdfQ09ERV9CRUdJTiwgTVNHX0lEX0VOR19DT0RFX1RBSUwgPSBNU0dfSURfRU5HX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfUFNETV9DT0RFX0JFR0lOLCBNU0dfSURfUFNETV9DT0RFX1RBSUwgPSBNU0dfSURfUFNETV9DT0RFX0JFR0lOICsgMzAsCisKKyAgICBNU0dfSURfVk1NSV9DT0RFX0JFR0lOLCBNU0dfSURfVk1NSV9DT0RFX1RBSUwgPSBNU0dfSURfVk1NSV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1JMQ19DT0RFX0JFR0lOLCBNU0dfSURfUkxDX0NPREVfVEFJTCA9IE1TR19JRF9STENfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9STENfVEREX0NPREVfQkVHSU4sIE1TR19JRF9STENfVEREX0NPREVfVEFJTCA9IE1TR19JRF9STENfVEREX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfUlJNX0NPTU1PTl9DT0RFX0JFR0lOLCBNU0dfSURfUlJNX0NPTU1PTl9DT0RFX1RBSUwgPSBNU0dfSURfUlJNX0NPTU1PTl9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1JSTV9DT01NT05fVEREX0NPREVfQkVHSU4sIE1TR19JRF9SUk1fQ09NTU9OX1RERF9DT0RFX1RBSUwgPSBNU0dfSURfUlJNX0NPTU1PTl9URERfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9SQ1NfQ09ERV9CRUdJTiwgTVNHX0lEX1JDU19DT0RFX1RBSUwgPSBNU0dfSURfUkNTX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfUkNTX1RERF9DT0RFX0JFR0lOLCBNU0dfSURfUkNTX1RERF9DT0RFX1RBSUwgPSBNU0dfSURfUkNTX1RERF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1JNUENfQ09ERV9CRUdJTiwgTVNHX0lEX1JNUENfQ09ERV9UQUlMID0gTVNHX0lEX1JNUENfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9STVBDX1RERF9DT0RFX0JFR0lOLCBNU0dfSURfUk1QQ19URERfQ09ERV9UQUlMID0gTVNHX0lEX1JNUENfVEREX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfUlJNX01QQUxfTU1fQ09ERV9CRUdJTiwgTVNHX0lEX1JSTV9NUEFMX01NX0NPREVfVEFJTCA9IE1TR19JRF9SUk1fTVBBTF9NTV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1JSTV9NUEFMX01NX1RERF9DT0RFX0JFR0lOLCBNU0dfSURfUlJNX01QQUxfTU1fVEREX0NPREVfVEFJTCA9IE1TR19JRF9SUk1fTVBBTF9NTV9URERfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9NQUNfQ09ERV9CRUdJTiwgTVNHX0lEX01BQ19DT0RFX1RBSUwgPSBNU0dfSURfTUFDX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfTUFDX1RERF9DT0RFX0JFR0lOLCBNU0dfSURfTUFDX1RERF9DT0RFX1RBSUwgPSBNU0dfSURfTUFDX1RERF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0xBUERNX0NPREVfQkVHSU4sIE1TR19JRF9MQVBETV9DT0RFX1RBSUwgPSBNU0dfSURfTEFQRE1fQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9MQVBETV9URERfQ09ERV9CRUdJTiwgTVNHX0lEX0xBUERNX1RERF9DT0RFX1RBSUwgPSBNU0dfSURfTEFQRE1fVEREX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfUkVBU01fQ09ERV9CRUdJTiwgTVNHX0lEX1JFQVNNX0NPREVfVEFJTCA9IE1TR19JRF9SRUFTTV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1JFQVNNX1RERF9DT0RFX0JFR0lOLCBNU0dfSURfUkVBU01fVEREX0NPREVfVEFJTCA9IE1TR19JRF9SRUFTTV9URERfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9NUEFMX0NPREVfQkVHSU4sIE1TR19JRF9NUEFMX0NPREVfVEFJTCA9IE1TR19JRF9NUEFMX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfTVBBTF9URERfQ09ERV9CRUdJTiwgTVNHX0lEX01QQUxfVEREX0NPREVfVEFJTCA9IE1TR19JRF9NUEFMX1RERF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9HQVNfQ09ERV9CRUdJTiwgTVNHX0lEX0ZERF9HQVNfQ09ERV9UQUlMID0gTVNHX0lEX0ZERF9HQVNfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX1RERF9HQVNfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9HQVNfQ09ERV9UQUlMID0gTVNHX0lEX1RERF9HQVNfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX0xMQ19DT0RFX0JFR0lOLCBNU0dfSURfTExDX0NPREVfVEFJTCA9IE1TR19JRF9MTENfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9QMlBfQ09ERV9CRUdJTiwgTVNHX0lEX1AyUF9DT0RFX1RBSUwgPSBNU0dfSURfUDJQX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfU05EX0NPREVfQkVHSU4sIE1TR19JRF9TTkRfQ09ERV9UQUlMID0gTVNHX0lEX1NORF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1NNX0NPREVfQkVHSU4sIE1TR19JRF9TTV9DT0RFX1RBSUwgPSBNU0dfSURfU01fQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9QQU1fQ09ERV9CRUdJTiwgTVNHX0lEX1BBTV9DT0RFX1RBSUwgPSBNU0dfSURfUEFNX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9URFRfQ09ERV9CRUdJTiwgTVNHX0lEX1REVF9DT0RFX1RBSUwgPSBNU0dfSURfVERUX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfVDMwX0NPREVfQkVHSU4sIE1TR19JRF9UMzBfQ09ERV9UQUlMID0gTVNHX0lEX1QzMF9DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfRkFfQ09ERV9CRUdJTiwgTVNHX0lEX0ZBX0NPREVfVEFJTCA9IE1TR19JRF9GQV9DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfTDJSX0NPREVfQkVHSU4sIE1TR19JRF9MMlJfQ09ERV9UQUlMID0gTVNHX0lEX0wyUl9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1JMUF9DT0RFX0JFR0lOLCBNU0dfSURfUkxQX0NPREVfVEFJTCA9IE1TR19JRF9STFBfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9QU19QVUJMSUNfVlRfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9QU19QVUJMSUNfVlRfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9QU19QVUJMSUNfVlRfTVNHX0NPREVfQkVHSU4gKyAzMCwKKworICAgIE1TR19JRF9WVF9DT0RFX0JFR0lOLCBNU0dfSURfVlRfQ09ERV9UQUlMID0gTVNHX0lEX1ZUX0NPREVfQkVHSU4gKyA3MCwgICAgCisKKyAgICBNU0dfSURfTlZSQU1fQ09ERV9CRUdJTiwgTVNHX0lEX05WUkFNX0NPREVfVEFJTCA9IE1TR19JRF9OVlJBTV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0wxX0NPREVfQkVHSU4sIE1TR19JRF9MMV9DT0RFX1RBSUwgPSBNU0dfSURfTDFfQ09ERV9CRUdJTiArIDMwMCwKKworICAgIE1TR19JRF9IQUxfTDFfQ09ERV9CRUdJTiwgTVNHX0lEX0hBTF9MMV9DT0RFX1RBSUwgPSBNU0dfSURfSEFMX0wxX0NPREVfQkVHSU4gKyA0MCwKKworICAgIE1TR19JRF9MMUhJU1JfQ09ERV9CRUdJTiwgTVNHX0lEX0wxSElTUl9DT0RFX1RBSUwgPSBNU0dfSURfTDFISVNSX0NPREVfQkVHSU4gKyA0MCwgICAgCisKKyAgICBNU0dfSURfRlRfQ09ERV9CRUdJTiwgTVNHX0lEX0ZUX0NPREVfVEFJTCA9IE1TR19JRF9GVF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1RTVF9DT0RFX0JFR0lOLCBNU0dfSURfVFNUX0NPREVfVEFJTCA9IE1TR19JRF9UU1RfQ09ERV9CRUdJTiArIDEyMDAsICAgIAorCisgICAgTVNHX0lEX0FVRElPX01TR19DT0RFX0JFR0lOLCBNU0dfSURfQVVESU9fTVNHX0NPREVfVEFJTCA9IE1TR19JRF9BVURJT19NU0dfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9SQVRDTV9DT0RFX0JFR0lOLCBNU0dfSURfUkFUQ01fQ09ERV9UQUlMID0gTVNHX0lEX1JBVENNX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICBNU0dfSURfUkFURE1fQ09ERV9CRUdJTiwgTVNHX0lEX1JBVERNX0NPREVfVEFJTCA9IE1TR19JRF9SQVRETV9DT0RFX0JFR0lOICsgMTMwLAorCisgICAgTVNHX0lEX0ZERF9BRFJfQ09ERV9CRUdJTiwgTVNHX0lEX0ZERF9BRFJfQ09ERV9UQUlMID0gTVNHX0lEX0ZERF9BRFJfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0ZERF9DU0NFX0NPREVfQkVHSU4sIE1TR19JRF9GRERfQ1NDRV9DT0RFX1RBSUwgPSBNU0dfSURfRkREX0NTQ0VfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9GRERfQ1NFX0NPREVfQkVHSU4sIE1TR19JRF9GRERfQ1NFX0NPREVfVEFJTCA9IE1TR19JRF9GRERfQ1NFX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfRkREX01FTUVfQ09ERV9CRUdJTiwgTVNHX0lEX0ZERF9NRU1FX0NPREVfVEFJTCA9IE1TR19JRF9GRERfTUVNRV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9SUkNFX0NPREVfQkVHSU4sIE1TR19JRF9GRERfUlJDRV9DT0RFX1RBSUwgPSBNU0dfSURfRkREX1JSQ0VfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9GRERfU0lCRV9DT0RFX0JFR0lOLCBNU0dfSURfRkREX1NJQkVfQ09ERV9UQUlMID0gTVNHX0lEX0ZERF9TSUJFX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfRkREX1NMQ0VfQ09ERV9CRUdJTiwgTVNHX0lEX0ZERF9TTENFX0NPREVfVEFJTCA9IE1TR19JRF9GRERfU0xDRV9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTVNHX0lEX0ZERF9EQk1FX0NPREVfQkVHSU4sIE1TR19JRF9GRERfREJNRV9DT0RFX1RBSUwgPSBNU0dfSURfRkREX0RCTUVfQ09ERV9CRUdJTiArIDIwLAorCisJTVNHX0lEX0ZERF9VU0lNRV9DT0RFX0JFR0lOLCBNU0dfSURfRkREX1VTSU1FX0NPREVfVEFJTCA9IE1TR19JRF9GRERfVVNJTUVfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9GRERfVVJSX0NPREVfQkVHSU4sIE1TR19JRF9GRERfVVJSX0NPREVfVEFJTCA9IE1TR19JRF9GRERfVVJSX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9URERfQURSX0NPREVfQkVHSU4sIE1TR19JRF9URERfQURSX0NPREVfVEFJTCA9IE1TR19JRF9URERfQURSX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9URERfQ1NDRV9DT0RFX0JFR0lOLCBNU0dfSURfVEREX0NTQ0VfQ09ERV9UQUlMID0gTVNHX0lEX1RERF9DU0NFX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfVEREX0NTRV9DT0RFX0JFR0lOLCBNU0dfSURfVEREX0NTRV9DT0RFX1RBSUwgPSBNU0dfSURfVEREX0NTRV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1RERF9NRU1FX0NPREVfQkVHSU4sIE1TR19JRF9URERfTUVNRV9DT0RFX1RBSUwgPSBNU0dfSURfVEREX01FTUVfQ09ERV9CRUdJTiArIDEwMCwKKworCU1TR19JRF9URERfUlJDRV9DT0RFX0JFR0lOLCBNU0dfSURfVEREX1JSQ0VfQ09ERV9UQUlMID0gTVNHX0lEX1RERF9SUkNFX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfVEREX1NJQkVfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9TSUJFX0NPREVfVEFJTCA9IE1TR19JRF9URERfU0lCRV9DT0RFX0JFR0lOICsgMTAwLAorCisJTVNHX0lEX1RERF9TTENFX0NPREVfQkVHSU4sIE1TR19JRF9URERfU0xDRV9DT0RFX1RBSUwgPSBNU0dfSURfVEREX1NMQ0VfQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9URERfREJNRV9DT0RFX0JFR0lOLCBNU0dfSURfVEREX0RCTUVfQ09ERV9UQUlMID0gTVNHX0lEX1RERF9EQk1FX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9URERfVVNJTUVfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9VU0lNRV9DT0RFX1RBSUwgPSBNU0dfSURfVEREX1VTSU1FX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfVEREX1VSUl9DT0RFX0JFR0lOLCBNU0dfSURfVEREX1VSUl9DT0RFX1RBSUwgPSBNU0dfSURfVEREX1VSUl9DT0RFX0JFR0lOICsgNTAsCisKKyAgIAlNU0dfSURfVEREX1VNQUNfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9VTUFDX0NPREVfVEFJTCA9IE1TR19JRF9URERfVU1BQ19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9VTUFDX0NPREVfQkVHSU4sIE1TR19JRF9GRERfVU1BQ19DT0RFX1RBSUwgPSBNU0dfSURfRkREX1VNQUNfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9URERfVVJMQ19DT0RFX0JFR0lOLCBNU0dfSURfVEREX1VSTENfQ09ERV9UQUlMID0gTVNHX0lEX1RERF9VUkxDX0NPREVfQkVHSU4gKyAxNTAsCisKKwlNU0dfSURfRkREX1NFUV9DT0RFX0JFR0lOLCBNU0dfSURfRkREX1NFUV9DT0RFX1RBSUwgPSBNU0dfSURfRkREX1NFUV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9VUkxDX0NPREVfQkVHSU4sIE1TR19JRF9GRERfVVJMQ19DT0RFX1RBSUwgPSBNU0dfSURfRkREX1VSTENfQ09ERV9CRUdJTiArIDE1MCwKKworICAgIE1TR19JRF9GRERfVUwyX0NPREVfQkVHSU4sIE1TR19JRF9GRERfVUwyX0NPREVfVEFJTCA9IE1TR19JRF9GRERfVUwyX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfQk1DX0NPREVfQkVHSU4sIE1TR19JRF9CTUNfQ09ERV9UQUlMID0gTVNHX0lEX0JNQ19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9DU1JfQ09ERV9CRUdJTiwgTVNHX0lEX0ZERF9DU1JfQ09ERV9UQUlMID0gTVNHX0lEX0ZERF9DU1JfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9GRERfRFJMQ19DT0RFX0JFR0lOLCBNU0dfSURfRkREX0RSTENfQ09ERV9UQUlMID0gTVNHX0lEX0ZERF9EUkxDX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfVEREX1BEQ1BfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9QRENQX0NPREVfVEFJTCA9IE1TR19JRF9URERfUERDUF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9QRENQX0NPREVfQkVHSU4sIE1TR19JRF9GRERfUERDUF9DT0RFX1RBSUwgPSBNU0dfSURfRkREX1BEQ1BfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9SQUJNX1RERF9DT0RFX0JFR0lOLCBNU0dfSURfUkFCTV9URERfQ09ERV9UQUlMID0gTVNHX0lEX1JBQk1fVEREX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfRkREX1JBQk1fQ09ERV9CRUdJTiwgTVNHX0lEX0ZERF9SQUJNX0NPREVfVEFJTCA9IE1TR19JRF9GRERfUkFCTV9DT0RFX0JFR0lOICsgMTAwLAorCisJTVNHX0lEX0JNQ19URERfQ09ERV9CRUdJTiwgTVNHX0lEX0JNQ19URERfQ09ERV9UQUlMID0gTVNHX0lEX0JNQ19URERfQ09ERV9CRUdJTiArIDEwMCwKKworCU1TR19JRF9DU1JfVEREX0NPREVfQkVHSU4sIE1TR19JRF9DU1JfVEREX0NPREVfVEFJTCA9IE1TR19JRF9DU1JfVEREX0NPREVfQkVHSU4gKyAxMDAsCisKKwlNU0dfSURfVEREX0RSTENfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9EUkxDX0NPREVfVEFJTCA9IE1TR19JRF9URERfRFJMQ19DT0RFX0JFR0lOICsgMTAwLCAgCisKKyAgICBNU0dfSURfVEREX1VMMkRfQ09ERV9CRUdJTiwgTVNHX0lEX1RERF9VTDJEX0NPREVfVEFJTCA9IE1TR19JRF9URERfVUwyRF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1VMMkRfQ09ERV9CRUdJTiwgTVNHX0lEX1VMMkRfQ09ERV9UQUlMID0gTVNHX0lEX1VMMkRfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9ETV9DU0NFX0NPREVfQkVHSU4sIE1TR19JRF9ETV9DU0NFX0NPREVfVEFJTCA9IE1TR19JRF9ETV9DU0NFX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfVUFTX0dBU19DT0RFX0JFR0lOLCBNU0dfSURfVUFTX0dBU19DT0RFX1RBSUwgPSBNU0dfSURfVUFTX0dBU19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0VBU19HQVNfQ09ERV9CRUdJTiwgTVNHX0lEX0VBU19HQVNfQ09ERV9UQUlMID0gTVNHX0lEX0VBU19HQVNfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9ETV9NRU1FX0NPREVfQkVHSU4sIE1TR19JRF9ETV9NRU1FX0NPREVfVEFJTCA9IE1TR19JRF9ETV9NRU1FX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfRE1fUlJDRV9DT0RFX0JFR0lOLCBNU0dfSURfRE1fUlJDRV9DT0RFX1RBSUwgPSBNU0dfSURfRE1fUlJDRV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0RNX1JSQ0VfVEREX0NPREVfQkVHSU4sIE1TR19JRF9ETV9SUkNFX1RERF9DT0RFX1RBSUwgPSBNU0dfSURfRE1fUlJDRV9URERfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9HRU1JTklfVUFTX0NPREVfQkVHSU4sIE1TR19JRF9HRU1JTklfVUFTX0NPREVfVEFJTCA9IE1TR19JRF9HRU1JTklfVUFTX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfR0VNSU5JX0dBU19DT0RFX0JFR0lOLCBNU0dfSURfR0VNSU5JX0dBU19DT0RFX1RBSUwgPSBNU0dfSURfR0VNSU5JX0dBU19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZERF9VTDFfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9GRERfVUwxX01TR19DT0RFX1RBSUwgPSBNU0dfSURfRkREX1VMMV9NU0dfQ09ERV9CRUdJTiArIDMwMCwKKworICAgIE1TR19JRF9HTlNTX1RDX1VMMV9NU0dfQ09ERV9CRUdJTiAsTVNHX0lEX0dOU1NfVENfVUwxX01TR19DT0RFX1RBSUwgPSBNU0dfSURfR05TU19UQ19VTDFfTVNHX0NPREVfQkVHSU4gKzUsCisgICAgTVNHX0lEX1VMMURBVEFfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9VTDFEQVRBX01TR19DT0RFX1RBSUwgPSBNU0dfSURfVUwxREFUQV9NU0dfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX1VMMUhJU1JfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9VTDFISVNSX01TR19DT0RFX1RBSUwgPSBNU0dfSURfVUwxSElTUl9NU0dfQ09ERV9CRUdJTiArIDUsCisKKyAgICBNU0dfSURfVUwxQ19NU0dfQ09ERV9CRUdJTiwgTVNHX0lEX1VMMUNfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9VTDFDX01TR19DT0RFX0JFR0lOICsgMjAsCisKKyAgICBNU0dfSURfTEwxX01TR19DT0RFX0JFR0lOLCBNU0dfSURfTEwxX01TR19DT0RFX1RBSUwgPSBNU0dfSURfTEwxX01TR19DT0RFX0JFR0lOICsgMTUwLAorCisgICAgTVNHX0lEX1VMMVRTVF9NU0dfQ09ERV9CRUdJTiwgTVNHX0lEX1VMMVRTVF9NU0dfQ09ERV9UQUlMID0gTVNHX0lEX1VMMVRTVF9NU0dfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX1VBR1BTX0NQX0NPREVfQkVHSU4sIE1TR19JRF9VQUdQU19DUF9DT0RFX1RBSUwgPSBNU0dfSURfVUFHUFNfQ1BfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX0dQU19NU0dfQ09ERV9CRUdJTiwgTVNHX0lEX0dQU19NU0dfQ09ERV9UQUlMID0gTVNHX0lEX0dQU19NU0dfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9UTDFfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9UTDFfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9UTDFfTVNHX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNU0dfSURfVEwxREFUQV9BU1RfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9UTDFEQVRBX0FTVF9NU0dfQ09ERV9UQUlMID0gTVNHX0lEX1RMMURBVEFfQVNUX01TR19DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTVNHX0lEX1RMMUhJU1JfQVNUX01TR19DT0RFX0JFR0lOLCBNU0dfSURfVEwxSElTUl9BU1RfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9UTDFISVNSX0FTVF9NU0dfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX1RMMUZUQV9BU1RfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9UTDFGVEFfQVNUX01TR19DT0RFX1RBSUwgPSBNU0dfSURfVEwxRlRBX0FTVF9NU0dfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX1JTVkFTX0NPREVfQkVHSU4sIE1TR19JRF9SU1ZBU19DT0RFX1RBSUwgPSBNU0dfSURfUlNWQVNfQ09ERV9CRUdJTiArIDEyMCwKKworICAgIE1TR19JRF9SU1ZBS19DT0RFX0JFR0lOLCBNU0dfSURfUlNWQUtfQ09ERV9UQUlMID0gTVNHX0lEX1JTVkFLX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9SU1ZBVV9DT0RFX0JFR0lOLCBNU0dfSURfUlNWQVVfQ09ERV9UQUlMID0gTVNHX0lEX1JTVkFVX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9SU1ZBR19DT0RFX0JFR0lOLCBNU0dfSURfUlNWQUdfQ09ERV9UQUlMID0gTVNHX0lEX1JTVkFHX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9SU1ZBRV9DT0RFX0JFR0lOLCBNU0dfSURfUlNWQUVfQ09ERV9UQUlMID0gTVNHX0lEX1JTVkFFX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9SU1ZBTl9DT0RFX0JFR0lOLCBNU0dfSURfUlNWQU5fQ09ERV9UQUlMID0gTVNHX0lEX1JTVkFOX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9NU1BNX0NPREVfQkVHSU4sIE1TR19JRF9NU1BNX0NPREVfVEFJTCA9IE1TR19JRF9NU1BNX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9ORElTX01TR19DT0RFX0JFR0lOLCBNU0dfSURfTkRJU19NU0dfQ09ERV9UQUlMID0gTVNHX0lEX05ESVNfTVNHX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9VUFNfUFVCTElDX0NPREVfQkVHSU4sIE1TR19JRF9VUFNfUFVCTElDX0NPREVfVEFJTCA9IE1TR19JRF9VUFNfUFVCTElDX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9VUFNfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9VUFNfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9VUFNfTVNHX0NPREVfQkVHSU4gKyAxMDAsCisgICAgCisgICAgTVNHX0lEX0tQQUxWX01TR19DT0RFX0JFR0lOLCBNU0dfSURfS1BBTFZfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9LUEFMVl9NU0dfQ09ERV9CRUdJTiArIDUsCisgICAgCisgICAgTVNHX0lEX1BTX1BVQkxJQ19TVVBMX01TR19DT0RFX0JFR0lOLCBNU0dfSURfUFNfUFVCTElDX1NVUExfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9QU19QVUJMSUNfU1VQTF9NU0dfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX1NVUExfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9TVVBMX01TR19DT0RFX1RBSUwgPSBNU0dfSURfU1VQTF9NU0dfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0NNVVhfQ09ERV9CRUdJTiwgTVNHX0lEX0NNVVhfQ09ERV9UQUlMID0gTVNHX0lEX0NNVVhfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9QUFBfQ09ERV9CRUdJTiwgTVNHX0lEX1BQUF9DT0RFX1RBSUwgPSBNU0dfSURfUFBQX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfRVhUX01PREVNX0NPREVfQkVHSU4sIE1TR19JRF9FWFRfTU9ERU1fQ09ERV9UQUlMID0gTVNHX0lEX0VYVF9NT0RFTV9DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfV01UX01TR19DT0RFX0JFR0lOLCBNU0dfSURfV01UX01TR19DT0RFX1RBSUwgPSBNU0dfSURfV01UX01TR19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0VNX0NPREVfQkVHSU4sIE1TR19JRF9FTV9DT0RFX1RBSUwgPSBNU0dfSURfRU1fQ09ERV9CRUdJTiArIDEwMDAsCisKKyAgICBNU0dfSURfSE9TVEFQX01TR19DT0RFX0JFR0lOLCBNU0dfSURfSE9TVEFQX01TR19DT0RFX1RBSUwgPSBNU0dfSURfSE9TVEFQX01TR19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ZTX0NPREVfQkVHSU4sIE1TR19JRF9GU19DT0RFX1RBSUwgPSBNU0dfSURfRlNfQ09ERV9CRUdJTiArIDYwLAorCisgICAgTVNHX0lEX01FRF9DT0RFX0JFR0lOLCBNU0dfSURfTUVEX0NPREVfVEFJTCA9IE1TR19JRF9NRURfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9EUFNfQ09ERV9CRUdJTiwgTVNHX0lEX0RQU19DT0RFX1RBSUwgPSBNU0dfSURfRFBTX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfVURQU19DT0RFX0JFR0lOLCBNU0dfSURfVURQU19DT0RFX1RBSUwgPSBNU0dfSURfVURQU19DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9EUklWRVJfQ09ERV9CRUdJTiwgTVNHX0lEX0RSSVZFUl9DT0RFX1RBSUwgPSBNU0dfSURfRFJJVkVSX0NPREVfQkVHSU4gKyAxMDAwLAorCisgICAgTVNHX0lEX01FVVRfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9NRVVUX01TR19DT0RFX1RBSUwgPSBNU0dfSURfTUVVVF9NU0dfQ09ERV9CRUdJTiArIDUwMCwKKworCU1TR19JRF9MMV9FWFRfQ09ERV9CRUdJTixNU0dfSURfTDFfRVhUX0NPREVfVEFJTCA9IE1TR19JRF9MMV9FWFRfQ09ERV9CRUdJTiArIDMwLAorCisJTVNHX0lEX0hBUExVU19NU0dfQ09ERV9CRUdJTixNU0dfSURfSEFQTFVTX01TR19DT0RFX1RBSUwgPSBNU0dfSURfSEFQTFVTX01TR19DT0RFX0JFR0lOICsgMjAwLAorCisJTVNHX0lEX01SU19DT0RFX0JFR0lOLE1TR19JRF9NUlNfQ09ERV9UQUlMID0gTVNHX0lEX01SU19DT0RFX0JFR0lOICsgNTAsCisKKyAgICAvKiBBZGQgYnkgTFRFIFNTICovCisgICAgTVNHX0lEX0VMMV9DT0RFX0JFR0lOLCBNU0dfSURfRUwxX0NPREVfVEFJTCA9IE1TR19JRF9FTDFfQ09ERV9CRUdJTiArIDQwMCwKKworICAgIE1TR19JRF9OTDFfTVNHX0NPREVfQkVHSU4sIE1TR19JRF9OTDFfTVNHX0NPREVfVEFJTCA9IE1TR19JRF9OTDFfTVNHX0NPREVfQkVHSU4gKyAzNTAsCisKKyAgICBNU0dfSURfTDFFRFBTX0NPREVfQkVHSU4sIE1TR19JRF9MMUVEUFNfQ09ERV9UQUlMID0gTVNHX0lEX0wxRURQU19DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9NTEwxX01TR19DT0RFX0JFR0lOLCBNU0dfSURfTUxMMV9NU0dfQ09ERV9UQUlMID0gTVNHX0lEX01MTDFfTVNHX0NPREVfQkVHSU4gKyAyNTAsCisKKyAgICBNU0dfSURfRUwyX0NPREVfQkVHSU4sIE1TR19JRF9FTDJfQ09ERV9UQUlMID0gTVNHX0lEX0VMMl9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTVNHX0lEX0VSUkNfQ09ERV9CRUdJTiwgTVNHX0lEX0VSUkNfQ09ERV9UQUlMID0gTVNHX0lEX0VSUkNfQ09ERV9CRUdJTiArIDc1MCwKKworICAgIE1TR19JRF9FTDFfUEhTX0NPREVfQkVHSU4sIE1TR19JRF9FTDFfUEhTX0NPREVfVEFJTCA9IE1TR19JRF9FTDFfUEhTX0NPREVfQkVHSU4gKyA0MCwKKworICAgIE1TR19JRF9FTDFfVFhfQ09ERV9CRUdJTiwgTVNHX0lEX0VMMV9UWF9DT0RFX1RBSUwgPSBNU0dfSURfRUwxX1RYX0NPREVfQkVHSU4gKyAxMCwKKworICAgIE1TR19JRF9JRENfQ09ERV9CRUdJTiwgTVNHX0lEX0lEQ19DT0RFX1RBSUwgPSBNU0dfSURfSURDX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9JRENfTURfQ09ERV9CRUdJTiwgTVNHX0lEX0lEQ19NRF9DT0RFX1RBSUwgPSBNU0dfSURfSURDX01EX0NPREVfQkVHSU4gKyAxMDAsCisJCisJTVNHX0lEX1NBU0VfQ09ERV9CRUdJTiwgTVNHX0lEX1NBU0VfQ09ERV9UQUlMID0gTVNHX0lEX1NBU0VfQ09ERV9CRUdJTiArIDUwLAorCisjaWYgZGVmaW5lZChMMV9TSU0pIHx8IGRlZmluZWQoRVNJTV9CVUlMRF9DT05GSUcpIHx8IGRlZmluZWQoX19EVU1NWV9MMV9PTl9UQVJHRVRfNEc1R19fKQorICAgIE1TR19JRF9TQ1JJUFRfQ09ERV9CRUdJTiwgTVNHX0lEX1NDUklQVF9DT0RFX1RBSUwgPSBNU0dfSURfU0NSSVBUX0NPREVfQkVHSU4gKyAxNTAsCisgICAgTVNHX0lEX05SX1NDUklQVF9DT0RFX0JFR0lOLCBNU0dfSURfTlJfU0NSSVBUX0NPREVfVEFJTCA9IE1TR19JRF9OUl9TQ1JJUFRfQ09ERV9CRUdJTiArIDE1MCwKKyAgICBNU0dfSURfSURDX1NDUklQVF9DT0RFX0JFR0lOLCBNU0dfSURfSURDX1NDUklQVF9DT0RFX1RBSUwgPSBNU0dfSURfSURDX1NDUklQVF9DT0RFX0JFR0lOICsgMTAwLAorI2VuZGlmCisgICAgTVNHX0lEX0NMRE1BQ09SRV9DT0RFX0JFR0lOLCBNU0dfSURfQ0xETUFDT1JFX0NPREVfRU5EID0gTVNHX0lEX0NMRE1BQ09SRV9DT0RFX0JFR0lOICsgNSwKKworICAgIE1TR19JRF9DQ0lGQ09SRV9DT0RFX0JFR0lOLCBNU0dfSURfQ0NJRkNPUkVfQ09ERV9FTkQgPSBNU0dfSURfQ0NJRkNPUkVfQ09ERV9CRUdJTiArIDUsCisKKyAgICBNU0dfSURfVEZUTElCX0NPREVfQkVHSU4sIE1TR19JRF9URlRMSUJfQ09ERV9UQUlMID0gTVNHX0lEX1RGVExJQl9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTVNHX0lEX05XU0VMX0NPREVfQkVHSU4sIE1TR19JRF9OV1NFTF9DT0RFX1RBSUwgPSBNU0dfSURfTldTRUxfQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9FTU1fQ09ERV9CRUdJTiwgTVNHX0lEX0VNTV9DT0RFX1RBSUwgPSBNU0dfSURfRU1NX0NPREVfQkVHSU4gKyAxMDAwLAorCisgICAgTVNHX0lEX0VWQUxfQ09ERV9CRUdJTiwgTVNHX0lEX0VWQUxfQ09ERV9UQUlMID0gTVNHX0lEX0VWQUxfQ09ERV9CRUdJTiArIDI1MCwKKworICAgIE1TR19JRF9FVENfQ09ERV9CRUdJTiwgTVNHX0lEX0VUQ19DT0RFX1RBSUwgPSBNU0dfSURfRVRDX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfRVNNX0NPREVfQkVHSU4sIE1TR19JRF9FU01fQ09ERV9UQUlMID0gTVNHX0lEX0VTTV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0hJRl9NV19DT0RFX0JFR0lOLCBNU0dfSURfSElGX01XX0NPREVfVEFJTCA9IE1TR19JRF9ISUZfTVdfQ09ERV9CRUdJTiArIDE1MDAsCisKKyAgICBNU0dfSURfSElGX1NWQ19DT0RFX0JFR0lOLCBNU0dfSURfSElGX1NWQ19DT0RFX1RBSUwgPSBNU0dfSURfSElGX1NWQ19DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9VUENNX0NPREVfQkVHSU4sIE1TR19JRF9VUENNX0NPREVfVEFJTCA9IE1TR19JRF9VUENNX0NPREVfQkVHSU4gKyA2MCwKKworICAgIE1TR19JRF9ESVNQQVRDSEVSX0NPREVfQkVHSU4gLCBNU0dfSURfRElTUEFUQ0hFUl9DT0RFX1RBSUwgPSBNU0dfSURfRElTUEFUQ0hFUl9DT0RFX0JFR0lOICsgMTAsCisKKyAgICBNU0dfSURfUFJPWFlfQ09ERV9CRUdJTiwgTVNHX0lEX1BST1hZX0NPREVfVEFJTCA9IE1TR19JRF9QUk9YWV9DT0RFX0JFR0lOICsgMjAsCisKKyAgICBNU0dfSURfTFRFQ1NSX0NPREVfQkVHSU4sIE1TR19JRF9MVEVDU1JfQ09ERV9UQUlMID0gTVNHX0lEX0xURUNTUl9DT0RFX0JFR0lOICsgNjAsCisKKyAgICBNU0dfSURfSU1DX0NPREVfQkVHSU4sIE1TR19JRF9JTUNfQ09ERV9UQUlMID0gTVNHX0lEX0lNQ19DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9TRE1fQ09ERV9CRUdJTiwgTVNHX0lEX1NETV9DT0RFX1RBSUwgPSBNU0dfSURfU0RNX0NPREVfQkVHSU4gKyA1MDAsCisKKyAgICBNU0dfSURfVkRNX0NPREVfQkVHSU4sIE1TR19JRF9WRE1fQ09ERV9UQUlMID0gTVNHX0lEX1ZETV9DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9JTUNTTVNfQ09ERV9CRUdJTiwgTVNHX0lEX0lNQ1NNU19DT0RFX1RBSUwgPSBNU0dfSURfSU1DU01TX0NPREVfQkVHSU4gKyAzMiwKKworICAgIE1TR19JRF9BVFBfQ09ERV9CRUdJTiwgTVNHX0lEX0FUUF9DT0RFX1RBSUwgPSBNU0dfSURfQVRQX0NPREVfQkVHSU4gKyA1MDAsCisKKyAgICBNU0dfSURfQVNfTE9HX0NPREVfQkVHSU4sIE1TR19JRF9BU19MT0dfQ09ERV9UQUlMID0gTVNHX0lEX0FTX0xPR19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0xCU19DT0RFX0JFR0lOICwgIE1TR19JRF9MQlNfQ09ERV9UQUlMID0gTVNHX0lEX0xCU19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0xQUF9DT0RFX0JFR0lOLCBNU0dfSURfTFBQX0NPREVfVEFJTCA9IE1TR19JRF9MUFBfQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9VTDFCX0NPREVfQkVHSU4sIE1TR19JRF9VTDFCX0NPREVfVEFJTCA9IE1TR19JRF9VTDFCX0NPREVfQkVHSU4rMTAwLAorCisgICAgTVNHX0lEX0VMMUJfQ09ERV9CRUdJTiwgTVNHX0lEX0VMMUJfQ09ERV9UQUlMID0gTVNHX0lEX0VMMUJfQ09ERV9CRUdJTisxMDAsCisKKyAgICBNU0dfSURfTkwxQl9DT0RFX0JFR0lOLCBNU0dfSURfTkwxQl9DT0RFX1RBSUwgPSBNU0dfSURfTkwxQl9DT0RFX0JFR0lOKzEwMCwKKworICAgIE1TR19JRF9YTDFSX0NPREVfQkVHSU4sIE1TR19JRF9YTDFSX0NPREVfVEFJTCA9IE1TR19JRF9YTDFSX0NPREVfQkVHSU4rMTAwLAorCisgICAgTVNHX0lEX01CTVNBTF9DT0RFX0JFR0lOLCBNU0dfSURfTUJNU0FMX0NPREVfVEFJTCA9IE1TR19JRF9NQk1TQUxfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX01NUkZfQ09ERV9CRUdJTiwgTVNHX0lEX01NUkZfQ09ERV9UQUlMID0gTVNHX0lEX01NUkZfQ09ERV9CRUdJTiArIDI3LAorCisgICAgTVNHX0lEX01NUkZfUENPUkVfQ09ERV9CRUdJTiwgTVNHX0lEX01NUkZfUENPUkVfQ09ERV9UQUlMID0gTVNHX0lEX01NUkZfUENPUkVfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0xBU19DT0RFX0JFR0lOLCBNU0dfSURfTEFTX0NPREVfVEFJTCA9IE1TR19JRF9MQVNfQ09ERV9CRUdJTiArIDE1MCwKKworICAgIE1TR19JRF9FTDFUU1RfQ09ERV9CRUdJTiwgTVNHX0lEX0VMMVRTVF9DT0RFX1RBSUwgPSBNU0dfSURfRUwxVFNUX0NPREVfQkVHSU4gKyAxMCwKKworICAgIE1TR19JRF9DTDFUU1RfQ09ERV9CRUdJTiwgTVNHX0lEX0NMMVRTVF9DT0RFX1RBSUwgPSBNU0dfSURfQ0wxVFNUX0NPREVfQkVHSU4gKyAxMCwKKyAgICBNU0dfSURfQ0wxVFNUX0wxUFNfQ09ERV9CRUdJTiwgTVNHX0lEX0NMMVRTVF9MMVBTX0NPREVfVEFJTCA9IE1TR19JRF9DTDFUU1RfTDFQU19DT0RFX0JFR0lOICsgMzAsCisKKyAgICBNU0dfSURfR0wxVFNUX0NPREVfQkVHSU4sIE1TR19JRF9HTDFUU1RfQ09ERV9UQUlMID0gTVNHX0lEX0dMMVRTVF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0dNU1NfQ09ERV9CRUdJTiwgTVNHX0lEX0dNU1NfQ09ERV9UQUlMID0gTVNHX0lEX0dNU1NfQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9DQ0lTTUNPUkVfQ09ERV9CRUdJTiwgTVNHX0lEX0NDSVNNQ09SRV9DT0RFX0VORCA9IE1TR19JRF9DQ0lTTUNPUkVfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX0NDSVNNQ09SRV9TQ1BfQ09ERV9CRUdJTiwgTVNHX0lEX0NDSVNNQ09SRV9TQ1BfQ09ERV9FTkQgPSBNU0dfSURfQ0NJU01DT1JFX1NDUF9DT0RFX0JFR0lOICsgMTAsCisKKyAgICBNU0dfSURfQ1NDRENPUkVfQ09ERV9CRUdJTiwgTVNHX0lEX0NTQ0RDT1JFX0NPREVfRU5EID0gTVNHX0lEX0NTQ0RDT1JFX0NPREVfQkVHSU4gKyAxMCwKKworICAgIE1TR19JRF9MSElGQ09SRV9DT0RFX0JFR0lOLCBNU0dfSURfTEhJRkNPUkVfQ09ERV9FTkQgPSBNU0dfSURfTEhJRkNPUkVfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX0RQQU1JRl9DT0RFX0JFR0lOLCBNU0dfSURfRFBNQUlGX0NPREVfVEFJTCA9IE1TR19JRF9EUEFNSUZfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX0lXTEFOX0NPREVfQkVHSU4sIE1TR19JRF9JV0xBTl9DT0RFX1RBSUwgPSBNU0dfSURfSVdMQU5fQ09ERV9CRUdJTiArIDEwMDAsCisKKyAgICAvKiBDMksgbWVzc2FnZSBSYW5nZXMgKi8KKyAgICBNU0dfSURfWEwxX0NPREVfQkVHSU4sIE1TR19JRF9YTDFfQ09ERV9UQUlMID0gTVNHX0lEX1hMMV9DT0RFX0JFR0lOICsgMTYwLAorICAgIE1TR19JRF9WUkZfQ09ERV9CRUdJTiwgTVNHX0lEX1ZSRl9DT0RFX1RBSUwgPSBNU0dfSURfVlJGX0NPREVfQkVHSU4gKyAyMCwKKworICAgIC8qIDF4UlRUIE1TRyBJRCBSYW5nZSAqLworICAgIE1TR19JRF9MMURfTURNX0NPREVfQkVHSU4sIE1TR19JRF9MMURfTURNX0NPREVfVEFJTCA9IE1TR19JRF9MMURfTURNX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICBNU0dfSURfTE1EX0NPREVfQkVHSU4sIE1TR19JRF9MTURfQ09ERV9UQUlMID0gTVNHX0lEX0xNRF9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0xNRFNfQ09ERV9CRUdJTiwgTVNHX0lEX0xNRFNfQ09ERV9UQUlMID0gTVNHX0lEX0xNRFNfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX0NYUkxQX0NPREVfQkVHSU4sIE1TR19JRF9DWFJMUF9DT0RFX1RBSUwgPSBNU0dfSURfQ1hSTFBfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX0NQU1dfQ09ERV9CRUdJTiwgTVNHX0lEX0NQU1dfQ09ERV9UQUlMID0gTVNHX0lEX0NQU1dfQ09ERV9CRUdJTiArIDUwMCwKKworICAgIE1TR19JRF9DUFNXU19DT0RFX0JFR0lOLCBNU0dfSURfQ1BTV1NfQ09ERV9UQUlMID0gTVNHX0lEX0NQU1dTX0NPREVfQkVHSU4gKyAzMCwKKworICAgIC8qIEVWRE8gTVNHIElEIFJhbmdlICovCisgICAgTVNHX0lEX0RPX0NPREVfQkVHSU4sCisKKyAgICAvKiBIU0MgKi8KKyAgICBNU0dfSURfSFNDX0NPREVfQkVHSU4gICAgICAgPSBNU0dfSURfRE9fQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfSFNDX0NPREVfVEFJTCAgICAgICAgPSBNU0dfSURfSFNDX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICAvKiBTTEMgKi8KKyAgICBNU0dfSURfU0xDX0NPREVfQkVHSU4sIE1TR19JRF9TTENfQ09ERV9UQUlMID0gTVNHX0lEX1NMQ19DT0RFX0JFR0lOICsgMTAwLAorICAgIC8qIENMQyAqLworICAgIE1TR19JRF9DTENfQ09ERV9CRUdJTiwgTVNHX0lEX0NMQ19DT0RFX1RBSUwgPSBNU0dfSURfQ0xDX0NPREVfQkVHSU4gKyAyMDAsCisgICAgLyogUk1DICovCisgICAgTVNHX0lEX1JNQ19DT0RFX0JFR0lOLCBNU0dfSURfUk1DX0NPREVfVEFJTCA9IE1TR19JRF9STUNfQ09ERV9CRUdJTiArIDMwMCwKKworICAgIC8qIEZDUCAqLworICAgIE1TR19JRF9GQ1BfQ09ERV9CRUdJTiwgTVNHX0lEX0ZDUF9DT0RFX1RBSUwgPSBNU0dfSURfRkNQX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICAvKiBSQ1AgKi8KKyAgICBNU0dfSURfUkNQX0NPREVfQkVHSU4sIE1TR19JRF9SQ1BfQ09ERV9UQUlMID0gTVNHX0lEX1JDUF9DT0RFX0JFR0lOICsgMzAwLAorCisgICAgLyogU0VDICovCisgICAgTVNHX0lEX1NFQ19DT0RFX0JFR0lOLCBNU0dfSURfU0VDX0NPREVfVEFJTCA9IE1TR19JRF9TRUNfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9ET19DT0RFX1RBSUwgICAgICAgICA9IE1TR19JRF9TRUNfQ09ERV9UQUlMLAorCisgICAgTVNHX0lEX0NITFBfQ09ERV9CRUdJTiwgTVNHX0lEX0NITFBfQ09ERV9UQUlMID0gTVNHX0lEX0NITFBfQ09ERV9CRUdJTiArIDM1MCwKKworICAgIE1TR19JRF9DU1NfQ09ERV9CRUdJTiwgTVNHX0lEX0NTU19DT0RFX1RBSUwgPSBNU0dfSURfQ1NTX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICBNU0dfSURfQ1ZBTF9DT0RFX0JFR0lOLCBNU0dfSURfQ1ZBTF9DT0RFX1RBSUwgPSBNU0dfSURfQ1ZBTF9DT0RFX0JFR0lOICsgMTI1MCwKKworICAgIE1TR19JRF9MRUNfQ09ERV9CRUdJTiwgTVNHX0lEX0xFQ19DT0RFX1RBSUwgPSBNU0dfSURfTEVDX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICBNU0dfSURfQ1VJTV9DT0RFX0JFR0lOLCBNU0dfSURfQ1VJTV9DT0RFX1RBSUwgPSBNU0dfSURfQ1VJTV9DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9FTFRfQ09ERV9CRUdJTiwgTVNHX0lEX0VMVF9DT0RFX1RBSUwgPSBNU0dfSURfRUxUX0NPREVfQkVHSU4gKyAxMDAwLAorCisgICAgTVNHX0lEX0VMVF9PVEFfQ09ERV9CRUdJTiwgTVNHX0lEX0VMVF9PVEFfQ09ERV9UQUlMID0gTVNHX0lEX0VMVF9PVEFfQ09ERV9CRUdJTiArIDMwLAorCisgICAgLy8gRm9yIGRlbW8vaW50ZWdyYXRpb24gdmVyaWZpY2F0aW9uCisgICAgTVNHX0lEX0MyS19EVU1NWV9MMV9DT0RFX0JFR0lOLCBNU0dfSURfQzJLX0RVTU1ZX0wxX0NPREVfVEFJTCA9IE1TR19JRF9DMktfRFVNTVlfTDFfQ09ERV9CRUdJTiArIDMwLAorCisgICAgLyogZm9yIE1EMVVUICovCisgICAgTVNHX0lEX0MyS19NRDFVVF9DT0RFX0JFR0lOLCBNU0dfSURfQzJLX01EMVVUX0NPREVfVEFJTCAgPSBNU0dfSURfQzJLX01EMVVUX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9DMktfSVJBVF9DT0RFX0JFR0lOLCBNU0dfSURfQzJLX0lSQVRfQ09ERV9UQUlMICA9IE1TR19JRF9DMktfSVJBVF9DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfTU9OX0NPREVfQkVHSU4sIE1TR19JRF9NT05fQ09ERV9UQUlMID0gTVNHX0lEX01PTl9DT0RFX0JFR0lOICsgMTAwMCwKKworICAgIE1TR19JRF9OVlJBTV9URVNUX0NPREVfQkVHSU4sIE1TR19JRF9OVlJBTV9URVNUX0NPREVfVEFJTCA9IE1TR19JRF9OVlJBTV9URVNUX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9TVFVCX0NPREVfQkVHSU4sIE1TR19JRF9TVFVCX0NPREVfVEFJTCA9IE1TR19JRF9TVFVCX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNU0dfSURfTDRDMktfQ09ERV9CRUdJTiwgTVNHX0lEX0w0QzJLX0NPREVfVEFJTCA9IE1TR19JRF9MNEMyS19DT0RFX0JFR0lOICsgMzAsCisKKyAgICBNU0dfSURfUlNWQUNfQ09ERV9CRUdJTiwgTVNHX0lEX1JTVkFDX0NPREVfVEFJTCA9IE1TR19JRF9SU1ZBQ19DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfTURfQk9PVF9NT0RFX0JFR0lOLCBNU0dfSURfTURfQk9PVF9NT0RFX1RBSUwgPSBNU0dfSURfTURfQk9PVF9NT0RFX0JFR0lOICsgMTAsCisKKyAgICBNU0dfSURfQVRQSU9fQ09ERV9CRUdJTiwgTVNHX0lEX0FUUElPX0NPREVfVEFJTCA9IE1TR19JRF9BVFBJT19DT0RFX0JFR0lOICsgMjAsCisKKyAgICBNU0dfSURfTDRBUFNfQ09ERV9CRUdJTiwgTVNHX0lEX0w0QVBTX0NPREVfVEFJTCA9IE1TR19JRF9MNEFQU19DT0RFX0JFR0lOICsgMTUwLAorCisgICAgTVNHX0lEX0w0Ql9DT0RFX0JFR0lOLCBNU0dfSURfTDRCX0NPREVfVEFJTCA9IE1TR19JRF9MNEJfQ09ERV9CRUdJTiArIDUwMCwKKworICAgIE1TR19JRF9MNEJQRE5fQ09ERV9CRUdJTiwgTVNHX0lEX0w0QlBETl9DT0RFX1RBSUwgPSBNU0dfSURfTDRCUEROX0NPREVfQkVHSU4gKyAzNTAsCisKKyAgICBNU0dfSURfRDJfQ09ERV9CRUdJTiwgTVNHX0lEX0QyX0NPREVfVEFJTCA9IE1TR19JRF9EMl9DT0RFX0JFR0lOICsgMzUwLAorCisgICAgTVNHX0lEX0RETV9DT0RFX0JFR0lOLCBNU0dfSURfRERNX0NPREVfVEFJTCA9IE1TR19JRF9ERE1fQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9TSU1NTkdSX0NPREVfQkVHSU4sIE1TR19JRF9TSU1NTkdSX0NPREVfVEFJTCA9IE1TR19JRF9TSU1NTkdSX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfV09fQ09ERV9CRUdJTiwgTVNHX0lEX1dPX0NPREVfVEFJTCA9IE1TR19JRF9XT19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1RDUElQX0JFR0lOLCBNU0dfSURfVENQSVBfVEFJTCA9IE1TR19JRF9UQ1BJUF9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX0JJUF9DT0RFX0JFR0lOLCBNU0dfSURfQklQX0NPREVfVEFJTCA9IE1TR19JRF9CSVBfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9SUl9TTVBfQkVHSU4sIE1TR19JRF9SUl9TTVBfVEFJTCA9IE1TR19JRF9SUl9TTVBfQkVHSU4gKyAxMCwKKworICAgIE1TR19JRF9JTVNNX0NPREVfQkVHSU4sIE1TR19JRF9JTVNNX0NPREVfVEFJTCA9IE1TR19JRF9JTVNNX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9TU0RTX0NPREVfQkVHSU4sIE1TR19JRF9TU0RTX0NPREVfVEFJTCA9IE1TR19JRF9TU0RTX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9MSU9fQ09ERV9CRUdJTiwgTVNHX0lEX0xJT19DT0RFX1RBSUwgPSBNU0dfSURfTElPX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfTkwyX0NPREVfQkVHSU4sIE1TR19JRF9OTDJfQ09ERV9UQUlMID0gTVNHX0lEX05MMl9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgTVNHX0lEX0VOUERDUF9DT0RFX0JFR0lOLCBNU0dfSURfRU5QRENQX0NPREVfVEFJTCA9IE1TR19JRF9FTlBEQ1BfQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9FTkwyX0ZSRUVfQ09ERV9CRUdJTiwgTVNHX0lEX0VOTDJfRlJFRV9DT0RFX1RBSUwgPSBNU0dfSURfRU5MMl9GUkVFX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9FTDJfVjJfQ09ERV9CRUdJTiwgTVNHX0lEX0VMMl9WMl9DT0RFX1RBSUwgPSBNU0dfSURfRUwyX1YyX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNU0dfSURfTUNJRl9CRUdJTiwgTVNHX0lEX01DSUZfVEFJTCA9IE1TR19JRF9NQ0lGX0JFR0lOICsgMTAsCisKKyAgICBNU0dfSURfV1NWQ19CRUdJTiwgTVNHX0lEX1dTVkNfVEFJTCA9IE1TR19JRF9XU1ZDX0JFR0lOICsgMTUsCisKKyAgICBNU0dfSURfV0ZQTV9DT0RFX0JFR0lOLCBNU0dfSURfV0ZQTV9DT0RFX1RBSUwgPSBNU0dfSURfV0ZQTV9DT0RFX0JFR0lOICsgMjAsCisKKyAgICBNU0dfSURfTURGUE1fQ09ERV9CRUdJTiwgTVNHX0lEX01ERlBNX0NPREVfVEFJTCA9IE1TR19JRF9NREZQTV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX1dSUE1fQ09ERV9CRUdJTiwgTVNHX0lEX1dSUE1fQ09ERV9UQUlMID0gTVNHX0lEX1dSUE1fQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX1hDQVBfQ09ERV9CRUdJTiwgTVNHX0lEX1hDQVBfQ09ERV9UQUlMID0gTVNHX0lEX1hDQVBfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9OQVNfU1ZfQ09ERV9CRUdJTiwgTVNHX0lEX05BU19TVl9DT0RFX1RBSUwgPSBNU0dfSURfTkFTX1NWX0NPREVfQkVHSU4gKyAzMDAwLAorCisgICAgTVNHX0lEX1ZHTU1fQ09ERV9CRUdJTiwgTVNHX0lEX1ZHTU1fQ09ERV9UQUlMID0gTVNHX0lEX1ZHTU1fQ09ERV9CRUdJTiArIDIwMCwKKworICAgIE1TR19JRF9WR1NNX0NPREVfQkVHSU4sIE1TR19JRF9WR1NNX0NPREVfVEFJTCA9IE1TR19JRF9WR1NNX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfU01JQ19DT0RFX0JFR0lOLCBNU0dfSURfU01JQ19DT0RFX1RBSUwgPSBNU0dfSURfU01JQ19DT0RFX0JFR0lOICsgMzAsCisKKyAgICBNU0dfSURfVVBEU19DT0RFX0JFR0lOLCBNU0dfSURfVVBEU19DT0RFX1RBSUwgPSBNU0dfSURfVVBEU19DT0RFX0JFR0lOICsgMzAsCisKKyAgICBNU0dfSURfVVRUX0NPREVfQkVHSU4sIE1TR19JRF9VVFRfQ09ERV9UQUlMID0gTVNHX0lEX1VUVF9DT0RFX0JFR0lOICsgMTAwLAorCisJTVNHX0lEX05SUkNfQ09ERV9CRUdJTiwgTVNHX0lEX05SUkNfQ09ERV9UQUlMID0gTVNHX0lEX05SUkNfQ09ERV9CRUdJTiArIDYwMCwKKworICAgIE1TR19JRF9SUl9OUlJDX0NPREVfQkVHSU4sIE1TR19JRF9SUl9OUlJDX0NPREVfVEFJTCA9IE1TR19JRF9SUl9OUlJDX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9SUkNfTlJSQ19DT0RFX0JFR0lOLCBNU0dfSURfUlJDX05SUkNfQ09ERV9UQUlMID0gTVNHX0lEX1JSQ19OUlJDX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9JTUNCX0NPREVfQkVHSU4sIE1TR19JRF9JTUNCX0NPREVfVEFJTCA9IE1TR19JRF9JTUNCX0NPREVfQkVHSU4gKyAzMDAsCisKKyAgICBNU0dfSURfSU1TX1NUQUNLX0NPREVfQkVHSU4sIE1TR19JRF9JTVNfU1RBQ0tfQ09ERV9UQUlMID0gTVNHX0lEX0lNU19TVEFDS19DT0RFX0JFR0lOICsgMTgwLAorCisgICAgTVNHX0lEX0lNU1VBX0NPREVfQkVHSU4sIE1TR19JRF9JTVNVQV9DT0RFX1RBSUwgPSBNU0dfSURfSU1TVUFfQ09ERV9CRUdJTiArIDI1MCwKKworICAgIE1TR19JRF9NQ0ZfQ09ERV9CRUdJTiwgTVNHX0lEX01DRl9DT0RFX1RBSUwgPSBNU0dfSURfTUNGX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9NVEZfQ09ERV9CRUdJTiwgTVNHX0lEX01URl9DT0RFX1RBSUwgPSBNU0dfSURfTVRGX0NPREVfQkVHSU4gKyAyMDAsCisKKyAgICBNU0dfSURfQ1JZUFRPX0NPREVfQkVHSU4sIE1TR19JRF9DUllQVE9fQ09ERV9UQUlMID0gTVNHX0lEX0NSWVBUT19DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfSVBTRUNfQ09ERV9CRUdJTiwgTVNHX0lEX0lQU0VDX0NPREVfVEFJTCA9IE1TR19JRF9JUFNFQ19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0ROU19DT0RFX0JFR0lOLCBNU0dfSURfRE5TX0NPREVfVEFJTCA9IE1TR19JRF9ETlNfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX1NBUF9SRUFMWUVSX0NPREVfQkVHSU4sIE1TR19JRF9TQVBfUkVBTFlFUl9DT0RFX1RBSUwgPSBNU0dfSURfU0FQX1JFQUxZRVJfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX1BFUkZfQ09ERV9CRUdJTiwgTVNHX0lEX1BFUkZfQ09ERV9UQUlMID0gTVNHX0lEX1BFUkZfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX05BTF9DT0RFX0JFR0lOLCBNU0dfSURfTkFMX0NPREVfVEFJTCA9IE1TR19JRF9OQUxfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX0ZDU19DT0RFX0JFR0lOLCBNU0dfSURfRkNTX0NPREVfVEFJTCA9IE1TR19JRF9GQ1NfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX1dJRklfUFJPWFlfQ09ERV9CRUdJTiwgTVNHX0lEX1dJRklfUFJPWFlfQ09ERV9UQUlMID0gTVNHX0lEX1dJRklfUFJPWFlfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX1dUVU5ORUxfQ09ERV9CRUdJTiwgTVNHX0lEX1dUVU5ORUxfQ09ERV9UQUlMID0gTVNHX0lEX1dUVU5ORUxfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX04zU0FNX0NPREVfQkVHSU4sIE1TR19JRF9OM1NBTV9DT0RFX1RBSUwgPSBNU0dfSURfTjNTQU1fQ09ERV9CRUdJTiArIDIwMCwgICAgCisKKyAgICBNU0dfSURfV0xDX0NPREVfQkVHSU4sIE1TR19JRF9XTENfQ09ERV9UQUlMID0gTVNHX0lEX1dMQ19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX04zQ0ZfQ09ERV9CRUdJTiwgTVNHX0lEX04zQ0ZfQ09ERV9UQUlMID0gTVNHX0lEX04zQ0ZfQ09ERV9CRUdJTiArIDUwLAorICAgIAorICAgIE1TR19JRF9OM0VQQ19DT0RFX0JFR0lOLCBNU0dfSURfTjNFUENfQ09ERV9UQUlMID0gTVNHX0lEX04zRVBDX0NPREVfQkVHSU4gKyAxMDAsCisgICAgCisgICAgTVNHX0lEX04zQU5TX0NPREVfQkVHSU4sIE1TR19JRF9OM0FOU19DT0RFX1RBSUwgPSBNU0dfSURfTjNBTlNfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX0VBUF9DT0RFX0JFR0lOLCBNU0dfSURfRUFQX0NPREVfVEFJTCA9IE1TR19JRF9FQVBfQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX0NFUlRfQ09ERV9CRUdJTiwgTVNHX0lEX0NFUlRfQ09ERV9UQUlMID0gTVNHX0lEX0NFUlRfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX0VUSFNWQ19DT0RFX0JFR0lOLCBNU0dfSURfRVRIU1ZDX0NPREVfVEFJTCA9IE1TR19JRF9FVEhTVkNfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0hUVFBfVExTX0NPREVfQkVHSU4sIE1TR19JRF9IVFRQX1RMU19DT0RFX1RBSUwgPSBNU0dfSURfSFRUUF9UTFNfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX0dOU1NfVENfQ09ERV9CRUdJTiwgTVNHX0lEX0dOU1NfVENfQ09ERV9UQUlMID0gTVNHX0lEX0dOU1NfVENfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9MNV9DT0RFX0JFR0lOLCBNU0dfSURfTDVfQ09ERV9UQUlMID0gTVNHX0lEX0w1X0NPREVfQkVHSU4gKyAxMDAwLCAgCisKKyAgICBNU0dfSURfTDFNSVNDX0NPREVfQkVHSU4sIE1TR19JRF9MMU1JU0NfQ09ERV9UQUlMID0gTVNHX0lEX0wxTUlTQ19DT0RFX0JFR0lOICsgMzAsIAorCisjaWZkZWYgX19JUENfQURBUFRFUl9fCisgICAgTVNHX0lEX0lQQ19BREFQVEVSX0NPREVfQkVHSU4sIE1TR19JRF9JUENfQURBUFRFUl9DT0RFX1RBSUwgPSBNU0dfSURfSVBDX0FEQVBURVJfQ09ERV9CRUdJTiArIDMwMCwKKworICAgIE1TR19JRF9JUENBX1BXUl9DT0RFX0JFR0lOLCBNU0dfSURfSVBDQV9QV1JfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfUFdSX0NPREVfQkVHSU4gKyA1MCwKKyAgICAKKyAgICBNU0dfSURfSVBDQV9TQVRfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfU0FUX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX1NBVF9DT0RFX0JFR0lOICsgMjAsCisKKyAgICBNU0dfSURfSVBDQV9TTVNfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfU01TX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX1NNU19DT0RFX0JFR0lOICsgNTAsCisKKyAgICBNU0dfSURfSVBDQV9TTVVfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfU01VX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX1NNVV9DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0lQQ0FfUEhCX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX1BIQl9DT0RFX1RBSUwgPSBNU0dfSURfSVBDQV9QSEJfQ09ERV9CRUdJTiArIDMwLAorCisgICAgTVNHX0lEX0lQQ0FfQ0NfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfQ0NfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfQ0NfQ09ERV9CRUdJTiArIDUwLCAKKworICAgIE1TR19JRF9JUENBX1NTX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX1NTX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX1NTX0NPREVfQkVHSU4gKyA1MCwKKworICAgIE1TR19JRF9JUENBX05XX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX05XX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX05XX0NPREVfQkVHSU4gKyAxMDAsCisKKyAgICBNU0dfSURfSVBDQV9NSVNDX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX01JU0NfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfTUlTQ19DT0RFX0JFR0lOICsgMzAsCisKKyAgICBNU0dfSURfSVBDQV9HUFJTX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX0dQUlNfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfR1BSU19DT0RFX0JFR0lOICsgMTAwLAorCisgICAgTVNHX0lEX0lQQ0FfR1BSU19ST1VUSU5FX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX0dQUlNfUk9VVElORV9DT0RFX1RBSUwgPSBNU0dfSURfSVBDQV9HUFJTX1JPVVRJTkVfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0lQQ0FfRkFDVE9SWV9DT0RFX0JFR0lOLCBNU0dfSURfSVBDQV9GQUNUT1JZX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX0ZBQ1RPUllfQ09ERV9CRUdJTiArIDUwLAorICAgIAorICAgIE1TR19JRF9JUENBX0RTUExfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfRFNQTF9DT0RFX1RBSUwgPSBNU0dfSURfSVBDQV9EU1BMX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9JUENBX1NORF9DT0RFX0JFR0lOLCBNU0dfSURfSVBDQV9TTkRfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfU05EX0NPREVfQkVHSU4gKyAzMCwKKworICAgIE1TR19JRF9JUENBX1NBUF9DT0RFX0JFR0lOLCBNU0dfSURfSVBDQV9TQVBfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfU0FQX0NPREVfQkVHSU4gKyAzMCwKKworICAgIE1TR19JRF9JUENBX0VNX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX0VNX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX0VNX0NPREVfQkVHSU4gKyAxNTAsCisKKyAgICBNU0dfSURfSVBDQV9JTVNfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfSU1TX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX0lNU19DT0RFX0JFR0lOICsgNTAsCisgICAgCisgICAgTVNHX0lEX0lQQ0FfQ0ZHX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX0NGR19DT0RFX1RBSUwgPSBNU0dfSURfSVBDQV9DRkdfQ09ERV9CRUdJTiArIDUwLAorCisgICAgTVNHX0lEX0lQQ0FfSU1FSV9DT0RFX0JFR0lOLCBNU0dfSURfSVBDQV9JTUVJX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX0lNRUlfQ09ERV9CRUdJTiArIDIwLCAgIAorCisgICAgTVNHX0lEX0lQQ0FfU1JMVEVfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfU1JMVEVfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfU1JMVEVfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0lQQ0FfRU1CTVNfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfRU1CTVNfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfRU1CTVNfQ09ERV9CRUdJTiArIDMwLAorCisjaWZkZWYgX19UQzEwX0lQQ19DRE1BX1NVUFBPUlRfXworICAgIE1TR19JRF9JUENBX0lSX0NPREVfQkVHSU4sIE1TR19JRF9JUENBX0lSX0NPREVfVEFJTCA9IE1TR19JRF9JUENBX0lSX0NPREVfQkVHSU4gKyAyMCwKKyNlbmRpZgorCisgICAgTVNHX0lEX0lQQ0FfRE9NRVNUSUNfQ09ERV9CRUdJTiwgTVNHX0lEX0lQQ0FfRE9NRVNUSUNfQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfRE9NRVNUSUNfQ09ERV9CRUdJTiArIDEwMCwKKworICAgIE1TR19JRF9JUENBX0pQTl9DT0RFX0JFR0lOLCBNU0dfSURfSVBDQV9KUE5fQ09ERV9UQUlMID0gTVNHX0lEX0lQQ0FfSlBOX0NPREVfQkVHSU4gKyAzMCwKKyNlbmRpZgorCisjaWZkZWYgX19UQzAxX18gCisgICAgTVNHX0lEX0NVU1RPTV9DT0RFX0JFR0lOLCBNU0dfSURfQ1VTVE9NX0NPREVfVEFJTCA9IE1TR19JRF9DVVNUT01fQ09ERV9CRUdJTisyMCwKKyNlbmRpZgorICAgIE1TR19JRF9JTlRDVFJMX0NPREVfQkVHSU4sIE1TR19JRF9JTlRDVFJMX0NPREVfVEFJTCA9IE1TR19JRF9JTlRDVFJMX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9NQUlGX0NPREVfQkVHSU4sIE1TR19JRF9NQUlGX0NPREVfVEFJTCA9IE1TR19JRF9NQUlGX0NPREVfQkVHSU4gKyA1MCwgIAorCisgICAgLyogUmVzZXJ2ZWQgZm9yIENDQ0ksIHBsZWFzZSBzaG91bGQgYWRkIG1ldyBNU0cgZ3JvdXAgYmVmb3JlIHRoaXMgbGluZSAqLworICAgIE1TR19JRF9DQ0NJX01TR19DT0RFX0JFR0lOID0gMHhGRjAwLCBNU0dfSURfQ0NDSV9NU0dfQ09ERV9UQUlMID0gTVNHX0lEX0NDQ0lfTVNHX0NPREVfQkVHSU4gKyAyNTQsCisKKyAgICBNU0dfSURfQ09ERV9FTkQsICAKKyAgICBFTkRfT0ZfTVNHX0lEX0JFR0lOID0gTVNHX0lEX0NPREVfRU5ELAorICAgIEVORF9PRl9NU0dfSURfVEFJTCA9IE1TR19JRF9DT0RFX0VORCwKK30gTVNHX0lEX0NPREVfQkVHSU47CisKKyNpZmRlZiBHRU5fRk9SX1BDCisgICAgI2RlZmluZSBNT0RVTEVfTVNHX0JFR0lOKEJFR0lOX1BPUykgIHR5cGVkZWYgZW51bSBfX2NnZW5fbXNnX3R5cGVfaWRfIyNCRUdJTl9QT1N7TVNHX1RBR18jI0JFR0lOX1BPUyA9IEJFR0lOX1BPUywKKyAgICAjZGVmaW5lIE1PRFVMRV9NU0dfRU5EKEVORF9QT1MpIE1TR19JRF9DR0VOX1BBUlNFX0xBU1RfSUQ9RU5EX1BPUyB9X2NnZW5fbXNnX3R5cGVfaWRfIyNFTkRfUE9TOworI2Vsc2UKKyAgICAjZGVmaW5lIE1PRFVMRV9NU0dfQkVHSU4oQkVHSU5fUE9TKSAgIGVudW0geyBNU0dfVEFHXyMjQkVHSU5fUE9TID0gQkVHSU5fUE9TLAorICAgICNkZWZpbmUgTU9EVUxFX01TR19FTkQoRU5EX1BPUykgICAgIH07ICAgIAorI2VuZGlmIC8qIEdFTl9GT1JfUEMgKi8KKworLyogdXNlciBkZWZpbmVkIG5hbWUgKi8KKyNkZWZpbmUgQ01VWF9NU0dfQ09ERV9CRUdJTiAgICAgICAgICAgICAgICAgICAgTVNHX0lEX0NNVVhfQ09ERV9CRUdJTgorI2RlZmluZSBEUklWRVJfTVNHX0NPREVfQkVHSU4gICAgICAgICAgICAgICAgICBNU0dfSURfRFJJVkVSX0NPREVfQkVHSU4KKyNkZWZpbmUgRlRfTVNHX0NPREVfQkVHSU4gICAgICAgICAgICAgICAgICAgICAgTVNHX0lEX0ZUX0NPREVfQkVHSU4KKyNkZWZpbmUgTDFfTVNHX0NPREVfQkVHSU4gICAgICAgICAgICAgICAgICAgICAgTVNHX0lEX0wxX0NPREVfQkVHSU4KKyNkZWZpbmUgVFNUX01TR19DT0RFX0JFR0lOICAgICAgICAgICAgICAgICAgICAgTVNHX0lEX1RTVF9DT0RFX0JFR0lOCisjZGVmaW5lIE1BSUZfTVNHX0NPREVfQkVHSU4gICAgICAgICAgICAgICAgICAgIE1TR19JRF9NQUlGX0NPREVfQkVHSU4KKworTU9EVUxFX01TR19CRUdJTihFTkRfT0ZfTVNHX0lEX0JFR0lOKQorICAgIE1TR19JRF9FTkQgPSBFTkRfT0ZfTVNHX0lEX0JFR0lOLAorTU9EVUxFX01TR19FTkQoRU5EX09GX01TR19JRF9UQUlMKQorCisjZW5kaWYgLyogTU9EVUxFX01TR19SQU5HRV9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tb2R1bGVfdGFza2lkX3JhbmdlLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tb2R1bGVfdGFza2lkX3JhbmdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYyNjRmMwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL21vZHVsZV90YXNraWRfcmFuZ2UuaApAQCAtMCwwICsxLDI5IEBACisjaWZuZGVmIE1PRFVMRV9UQVNLSURfUkFOR0VfSAorI2RlZmluZSBNT0RVTEVfVEFTS0lEX1JBTkdFX0gKKworI2lmIGRlZmluZWQoX19NRDkzX18pIHx8IGRlZmluZWQoX19NRDk1X18pCisjZGVmaW5lIE1PREVNXzVHX1RBU0tfTlVNX01BWCAgIDMKKworI2VsaWYgZGVmaW5lZChfX01EOTdfXykKKyNkZWZpbmUgTU9ERU1fNUdfVEFTS19OVU1fTUFYICAgMTUKKworI2VuZGlmCisKK3R5cGVkZWYgZW51bSB7CisgICAgVEFTS19JRF9DT0RFX1JFU0VSVkVEID0gMCwgICAgCisgICAgVEFTS19JRF9TUlZfQ09ERV9CRUdJTiA9IFRBU0tfSURfQ09ERV9SRVNFUlZFRCwKKworICAgIFRBU0tfSURfTU9ERU1fMkczR19DT0RFX0JFR0lOID0gVEFTS19JRF9TUlZfQ09ERV9CRUdJTiArIDQ1LAorICAgIAorICAgIFRBU0tfSURfTU9ERU1fNEdfQ09ERV9CRUdJTiA9IFRBU0tfSURfTU9ERU1fMkczR19DT0RFX0JFR0lOICsgODAsCisKKyAgICBUQVNLX0lEX01PREVNXzVHX0NPREVfQkVHSU4gPSBUQVNLX0lEX01PREVNXzRHX0NPREVfQkVHSU4gKyA0MCwKKyAgICAKKyAgICBUQVNLX0lEX01XX0NPREVfQkVHSU4gPSBUQVNLX0lEX01PREVNXzVHX0NPREVfQkVHSU4gKyBNT0RFTV81R19UQVNLX05VTV9NQVgsCisKKyAgICBUQVNLX0lEX0RSVl9DT0RFX0JFR0lOID0gVEFTS19JRF9NV19DT0RFX0JFR0lOICsgMzIsCisKKyAgICBUQVNLX0lEX0NPREVfTUFYID0gMjU1Cit9IFRBU0tfSURfQ09ERV9CRUdJTjsKKworI2VuZGlmIC8qIE1PRFVMRV9UQVNLSURfUkFOR0VfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbXcvZHBmbV9tc2dpZF9zb3VyY2UuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL213L2RwZm1fbXNnaWRfc291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU5ZjAyZgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L2RwZm1fbXNnaWRfc291cmNlLmgKQEAgLTAsMCArMSw0IEBACitNU0dfSURfRFBGTV9EQVRBX1VTQUdFX0NNRCwKK01TR19JRF9EUEZNX1NFVF9DVF9USU1FT1VUX1ZBTFVFX1JFUSwKK01TR19JRF9EUEZNX1NFVF9DVF9USU1FT1VUX1ZBTFVFX1JTUCwKK01TR19JRF9EUEZNX0NUX1RJTUVPVVRfSU5ELApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbXcvZnRfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL213L2Z0X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYzNDZjNAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L2Z0X21zZ2lkLmgKQEAgLTAsMCArMSwxNTAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogZnRfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTWF1aV9Tb2Z0d2FyZQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIEZUIGFuZCBUU1QgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgRlRfTVNHSURfSAorI2RlZmluZSBGVF9NU0dJRF9ICisKKy8qIFJlcXVlc3QgZm9yIFRTVCAqLworCitNT0RVTEVfTVNHX0JFR0lOKCBGVF9NU0dfQ09ERV9CRUdJTiApCitNU0dfSURfRlRfVE9fVFNUID0gRlRfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfVFNUX1RPX0ZULAorTVNHX0lEX0ZUX1RPX0dMMVRTVCwKK01TR19JRF9GVF9UT19VTDFUU1QsCitNU0dfSURfRlRfVE9fRUwxVFNULAorTVNHX0lEX0ZUX1RPX01NUkYsCitNU0dfSURfRlRBX0JBU0lDX1JFUSwKK01TR19JRF9GVEFfQkFTSUNfQ05GLAorTVNHX0lEX0ZUQ19CQVNJQ19SRVEsCitNU0dfSURfRlRDX0JBU0lDX0NORiwKK01TR19JRF9GVF9DQUxfREFUQV9BRERfT05FX1JFUSwKK01TR19JRF9GVF9DQUxfREFUQV9BRERfT05FX0NORiwKK01TR19JRF9GVF9UT19OTDEsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0ZUX0NPREVfVEFJTCApCisjZW5kaWYgIC8vRlRfTVNHSURfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbXcvZ3BzX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tdy9ncHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWZlZjM2Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvZ3BzX21zZ2lkLmgKQEAgLTAsMCArMSw0MjkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDMKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogIGdwc19zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIEdJUyBTQVAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBHUFNfTVNHSURfSAorI2RlZmluZSBHUFNfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfR1BTX01TR19DT0RFX0JFR0lOICkKK01TR19JRF9HUFNfVUFSVF9PUEVOX1NXSVRDSF9SRVEsCitNU0dfSURfR1BTX1VBUlRfQ0xPU0VfU1dJVENIX1JFUSwKKworTVNHX0lEX0dQU19QT1NfR0FEX0NORiwKK01TR19JRF9HUFNfTENTUF9NU0dfQ09ERV9CRUdJTiA9IE1TR19JRF9HUFNfUE9TX0dBRF9DTkYsCitNU0dfSURfR1BTX0xDU1BfTUVBU19HQURfQ05GLAorTVNHX0lEX0dQU19MQ1NQX0FTU0lTVF9EQVRBX0NORiwKK01TR19JRF9HUFNfTENTUF9NU0dfQ09ERV9FTkQgPSBNU0dfSURfR1BTX0xDU1BfQVNTSVNUX0RBVEFfQ05GLAorTVNHX0lEX0dQU19QT1NfR0FEX1JFUSwKK01TR19JRF9HUFNfTENTUF9NRUFTX0dBRF9SRVEsCitNU0dfSURfR1BTX0xDU1BfQVNTSVNUX0RBVEFfUkVRLAorTVNHX0lEX0dQU19MQ1NQX0FCT1JUX1JFUSwKK01TR19JRF9HUFNfTENTUF9BR1BTX1JFU1RBUlRfSU5ELAorCisvKiBSVEMgLT4gR1BTICovCitNU0dfSURfUlRDX0dQU19USU1FX0NIQU5HRV9JTkQsCisvKiBHUFMgRUlOVCBISVNSIC0+IEdQUyAqLworTVNHX0lEX0dQU19IT1NUX1dBS0VfVVBfSU5ELAorCitNU0dfSURfVUFHUFNfQ1BfR1BTX0FTU0lTVF9EQVRBX0VOUVVJUllfSU5ELAorTVNHX0lEX1VBR1BTX0NQX0dQU19TRk5fR1BTX1RPV19EUklGVF9USU1FX1JFUSwKK01TR19JRF9VQUdQU19DUF9HUFNfU0ZOX0dQU19UT1dfRFJJRlRfVElNRV9DTkYsCitNU0dfSURfVUFHUFNfQ1BfR1BTX1NGTl9HUFNfVE9XX0RSSUZUX1RJTUVfQ0FOQ0VMX1JFUSwKK01TR19JRF9HUFNfQVJFQV9FVkVOVF9BRERfUlNQLAorTVNHX0lEX0dQU19BUkVBX0VWRU5UX0FERF9SRVEsCitNU0dfSURfR1BTX0FSRUFfRVZFTlRfREVMX1JFUSwKK01TR19JRF9HUFNfQVJFQV9FVkVOVF9IQVBQRU5fSU5ELAorTVNHX0lEX1VBR1BTX0NQX0dQU19QT1NfQ0hBTkdFX0VWQUxVQVRJT05fUkVRLAorTVNHX0lEX1VBR1BTX0NQX0dQU19QT1NfQ0hBTkdFX0VWQUxVQVRJT05fUlNQLAorTVNHX0lEX1VBR1BTX0NQX0dQU19QT1NfQ0hBTkdFX0VWQUxVQVRJT05fREVMLAorCisvKiBMQ1NQIC0+IEdOU1MgVGFzayAqLworTVNHX0lEX0xDU1BfR05TU19PUEVOX1JFUSwKK01TR19JRF9MQ1NQX0dOU1NfQ0xPU0VfUkVRLAorTVNHX0lEX0xDU1BfR05TU19DT01NT05fQVNTSVNUX0RBVEFfUkVRLAorTVNHX0lEX0xDU1BfR05TU19HRU5FUklDX0FTU0lTVF9EQVRBX1JFUSwKK01TR19JRF9MQ1NQX0dOU1NfUE9TX1JFUSwKK01TR19JRF9MQ1NQX0dOU1NfTUVBU19SRVEsCitNU0dfSURfTENTUF9HTlNTX0FCT1JUX1JFUSwKK01TR19JRF9MQ1NQX0dOU1NfUkVTRVRfVUVfU1RPUkVEX1BPU19JTkZPLAorCisvKiBHTlNTIFRhc2sgLT4gTENTUCAqLworTVNHX0lEX0xDU1BfR05TU19DT01NT05fQVNTSVNUX0RBVEFfQ05GLAorTVNHX0lEX0xDU1BfR05TU19HRU5FUklDX0FTU0lTVF9EQVRBX0NORiwKK01TR19JRF9MQ1NQX0dOU1NfUE9TX0NORiwKK01TR19JRF9MQ1NQX0dOU1NfTUVBU19DTkYsCitNU0dfSURfTENTUF9HTlNTX0FERElUSU9OQUxfQVNTSVNUX0RBVEFfUkVRLAorCisvKiBMUFBfRVhUIC0+IEdOU1MgKi8KK01TR19JRF9MQ1NQX0dOU1NfSEFfQ09NTU9OX0lPTk9TUEhFUklDX01PREVMX1JFUSwKK01TR19JRF9MQ1NQX0dOU1NfSEFfQ09NTU9OX1RST1BPU1BIRVJFX01PREVMX1JFUSwKK01TR19JRF9MQ1NQX0dOU1NfSEFfQ09NTU9OX0FMVElUVURFX0FTU0lTVF9SRVEsCitNU0dfSURfTENTUF9HTlNTX0hBX0NPTU1PTl9TT0xBUl9SQURJQVRJT05fUkVRLAorTVNHX0lEX0xDU1BfR05TU19IQV9DT01NT05fQ0NQX0FTU0lTVF9SRVEsCitNU0dfSURfTENTUF9HTlNTX0hBX0dFTkVSSUNfQ0NQX0FTU0lTVF9SRVEsCitNU0dfSURfTENTUF9HTlNTX0hBX0dFTkVSSUNfREVHUkFEQVRJT05fTU9ERUxfUkVRLAorCisvKiBMQlMgLT4gR05TUyAqLworTVNHX0lEX0xCU19HTlNTX0hBX0FTU0lTVF9DTkYsCisKKy8qTEJTIC0+IEw0QyovCisvL01TR19JRF9MQlNfTU9MUl9CRUdJTl9SRVEsCisvL01TR19JRF9MQlNfTU9MUl9FTkRfUkVRLAorLy9NU0dfSURfTDRDX1NFUlZJQ0VfU1RBVEVfUkVRLAorLy9NU0dfSURfTDRDX1JPQU1JTkdfU1RBVEVfUkVRLAorLy9NU0dfSURfTDRDX0RBVEFfQ09OTl9TVEFURV9SRVEsCisKKy8qR1BTLT4gTEJTKi8KK01TR19JRF9MQlNfR05TU19QTVRLX0lORCwKK01TR19JRF9MQlNfR05TU19HUFNfQ0xPU0VfUkVRLAorTVNHX0lEX0xCU19HTlNTX0dQU19PUEVOX1JFUSwKK01TR19JRF9MQlNfR05TU19BR05TU19SRVNUQVJUX0lORCwKK01TR19JRF9MQ1NQX0dOU1NfU1RBTkRBTE9ORV9QT1NfSU5ELAorCisvKkxCUy0+R1BTKi8KK01TR19JRF9MQlNfR05TU19QTVRLX1JFUSwKK01TR19JRF9MQlNfR05TU19TVEFOREFMT05FX1BNVEtfUkVRLAorTVNHX0lEX0xCU19HTlNTX1NUQU5EQUxPTkVfUVVFUllfUkVRLAorTVNHX0lEX0xCU19HTlNTX1NUQU5EQUxPTkVfT1BFTl9SRVEsCitNU0dfSURfTEJTX0dOU1NfU1RBTkRBTE9ORV9DTE9TRV9SRVEsCisKKy8qTEJTIC0+IEFUQ0kqLworLy9NU0dfSURfTEJTQVBfREFUQV9TRU5EX1JFUSwKKworCisKKworI2lmZGVmIFVOSVRfVEVTVAorLyogR1BTIC0+IEdQUyAqLworTVNHX0lEX0dQU19VVF9TRVRfRVZFTlRfSU5ELAorTVNHX0lEX0dQU19VVF9XUklURV9EQVRBX0lORCwKKyNlbmRpZgorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0dQU19NU0dfQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0xCU19DT0RFX0JFR0lOICkKKyAgICAvKkw0QyAtPiBMQlMqLworICAgIE1TR19JRF9MQlNfTVRMUl9CRUdJTl9JTkQsCisgICAgTVNHX0lEX0xCU19NVExSX0JFR0lOX1JFU19SU1AsCisgICAgLyogQUVSUSwgQUVSUCwgQUVDTCBub3QgdXNlZCBub3cqLworICAgIE1TR19JRF9MQlNfQUVSUV9CRUdJTl9JTkQsCisgICAgTVNHX0lEX0xCU19BRVJRX0JFR0lOX1JFU19SU1AsCisgICAgTVNHX0lEX0xCU19BRVJQX0JFR0lOX1JTUCwKKyAgICBNU0dfSURfTEJTX0FFUlBfRU5EX1JTUCwKKyAgICBNU0dfSURfTEJTX0FFQ0xfQkVHSU5fSU5ELAorICAgIE1TR19JRF9MQlNfQUVDTF9CRUdJTl9SRVNfUlNQLAorICAgIE1TR19JRF9MQlNfTU9MUl9CRUdJTl9SU1AsCisgICAgTVNHX0lEX0xCU19NT0xSX0VORF9SU1AsCisgICAgTVNHX0lEX0FHUFNfUkVTRVRfUE9TSVRJT05JTkdfSU5ELAorICAgIE1TR19JRF9BR1BTX0NQX1NUQVJUX0lORCwKKyAgICBNU0dfSURfQUdQU19DUF9FTkRfSU5ELAorICAgIE1TR19JRF9MNENfTEJTX1NFUlZJQ0VfU1RBVEVfUlNQLAorICAgIE1TR19JRF9MNENfTEJTX1JPQU1JTkdfU1RBVEVfUlNQLAorICAgIE1TR19JRF9MNENfTEJTX0RBVEFfQ09OTl9TVEFURV9SU1AsCisgICAgTVNHX0lEX0w0Q19MQlNfQ1VSUkVOVF9SQVRfUlNQLAorICAgIE1TR19JRF9MNENfTEJTX0FDVElWRV9TSU1fUlNQLCAgICAKKyAgICBNU0dfSURfTDRDX0xCU19FTVRfSU5GT19JTkQsCisgICAgLypJTUMgLT4gTEJTKi8KKyAgICBNU0dfSURfSU1DX0xCU19QT1NfTlRGLAorI2lmZGVmIFVOSVRfVEVTVAorICAgIC8qIExCUyAtPiBMQlMgKi8KKyAgICBNU0dfSURfR1BTX1VUX0xCU19IRUFERVJfSU5ELAorICAgIAorI2VuZGlmCisgICAgLypFUlJDIC0+TEJTKi8KKyAgICAgTVNHX0lEX0VSUkNfTEJTX0dOU1NfUE9TX1JFUSwKKworICAgIC8qIERITCAtPiBMQlMgKi8KKyAgICBNU0dfSURfREhMX0xCU19QT1NfTlRGLAorCisgICAgLyogTFBQIC0+IExCUyAqLworICAgIE1TR19JRF9MUFBfTEJTX0VYVF9XTEFOX1BPU19BU1NJU1RfREFUQV9QUk9WSURFX0lORCwKKyAgICBNU0dfSURfTFBQX0xCU19FWFRfQlRfUE9TX0FTU0lTVF9EQVRBX1BST1ZJREVfSU5ELAorICAgIE1TR19JRF9MUFBfTEJTX0VYVF9TRU5TT1JfUE9TX0FTU0lTVF9EQVRBX1BST1ZJREVfSU5ELAorCisgICAgTVNHX0lEX0xQUF9MQlNfRVhUX1dMQU5fTUVBU19RVUVSWV9SRVEsCisgICAgTVNHX0lEX0xQUF9MQlNfRVhUX0JUX01FQVNfUVVFUllfUkVRLAorICAgIE1TR19JRF9MUFBfTEJTX0VYVF9TRU5TT1JfTUVBU19RVUVSWV9SRVEsCisgICAgTVNHX0lEX0xQUF9MQlNfRVhUX05FVFdPUktfTUVBU19RVUVSWV9SRVEsCisgICAgTVNHX0lEX0xQUF9MQlNfRVhUX0lQQUREUkVTU19NRUFTX1FVRVJZX1JFUSwKKworICAgIE1TR19JRF9MUFBfTEJTX0VYVF9XTEFOX1NUQVJUX0lORCwKKyAgICBNU0dfSURfTFBQX0xCU19FWFRfQlRfU1RBUlRfSU5ELAorICAgIE1TR19JRF9MUFBfTEJTX0VYVF9TRU5TT1JfU1RBUlRfSU5ELAorICAgIE1TR19JRF9MUFBfTEJTX0VYVF9ORVRXT1JLX1NUQVJUX0lORCwKKworICAgIE1TR19JRF9MUFBfTEJTX0VYVF9XTEFOX1NUT1BfSU5ELAorICAgIE1TR19JRF9MUFBfTEJTX0VYVF9CVF9TVE9QX0lORCwKKyAgICBNU0dfSURfTFBQX0xCU19FWFRfU0VOU09SX1NUT1BfSU5ELAorICAgIE1TR19JRF9MUFBfTEJTX0VYVF9ORVRXT1JLX1NUT1BfSU5ELAorCisgICAgLyogVGhlIGJlbG93IDMgTVNHX0lEcyBpcyBwcm92aWRlZCBmb3Igb3RoZXIgbW9kdWxlcyB0byBnZXQgbG9jYXRpb24gaW5mb3JtYXRpb24uCisgICAgICAgICAgICBJdCBpcyBzdGFydGVkIGZyb20gR2VuOTcuKi8KKyAgICBNU0dfSURfTEJTX0xPQ19JTkZPX1JFUSwKKyAgICBNU0dfSURfTEJTX0xPQ19JTkZPX0NORiwKKyAgICBNU0dfSURfTEJTX0xPQ19JTkZPX0lORCwKKyAgICAvKiBHTlNTX1RDIC0+IExCUyAqLworICAgIE1TR19JRF9MQlNfR05TU19UQ19BQ1RJVkVfU0lNX1JFUSwKKyAgICBNU0dfSURfTEJTX0dOU1NfVENfVElNRV9TWU5DX0NORiwKKyAgICBNU0dfSURfTEJTX0dOU1NfVENfVElNRV9TWU5DX0lORCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTEJTX0NPREVfVEFJTCApCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9MSU9fQ09ERV9CRUdJTiApCisgICAgTVNHX0lEX0xJT19VVF9VQVJUX1RYX0lORCwKKyAgICBNU0dfSURfTElPX1VUX1VBUlRfUlhfSU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9MSU9fQ09ERV9UQUlMICkKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0dOU1NfVENfQ09ERV9CRUdJTiApCisvKiBSUkMgLT4gR05TU19UQyAqLworICAgIE1TR19JRF9MQlNfRVJSQ19SRUFEX1RJTUVfU0lCX0lORCwKKyAgICBNU0dfSURfR05TU19UQ19OUlJDX1JFQURfVElNRV9TSUJfQ05GLAorCisvKiBMQlMtPiBHTlNTX1RDICovCisgICAgTVNHX0lEX0xCU19HTlNTX1RDX0FDVElWRV9TSU1fUlNQLAorICAgIE1TR19JRF9MQlNfR05TU19UQ19USU1FX1NZTkNfUkVRLAorICAgIE1TR19JRF9MQlNfR05TU19UQ19USU1FX1NZTkNfUlNQLAorICAgIE1TR19JRF9MQlNfR05TU19UQ19USU1FX0lORk9fUlNQLAorCisvKiBFTDEgLT4gR05TU19UQyAqLworICAgIE1TR19JRF9HTlNTX1RDX0VMMV9TWU5DX0NORiwKKworLyogTkwxIC0+IEdOU1NfVEMgKi8KKyAgICBNU0dfSURfR05TU19UQ19OTDFfU1lOQ19DTkYsCisKKy8qIFVMMSAtPiBHTlNTX1RDICovCisgICAgTVNHX0lEX0dOU1NfVENfVUwxX1NZTkNfQ05GLAorCisgICAgCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0dOU1NfVENfQ09ERV9UQUlMICkKKworI2VuZGlmIC8vR1BTX01TR0lEX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L2hpZl9td19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvaGlmX213X21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJjOTNlNAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L2hpZl9td19tc2dpZC5oCkBAIC0wLDAgKzEsNDc4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgaGlmX213X21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVEFUQUtBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgSElGIG1pZGRsZXdhcmUgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19JTkNfSElGX01XX01TR0lEX0gKKyNkZWZpbmUgX19JTkNfSElGX01XX01TR0lEX0gKKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0hJRl9NV19DT0RFX0JFR0lOICkKKworICAgIE1TR19JRF9JUENPUkVfQ09ERV9CRUdJTiA9IE1TR19JRF9ISUZfTVdfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfSVBDT1JFX0xJTktfVVBfUkVRLAorICAgIE1TR19JRF9JUENPUkVfTElOS19ET1dOX1JFUSwKKyAgICBNU0dfSURfTE1TX0RMX1NEVSwKKyAgICBNU0dfSURfTE1TX05FVElGX0FUVEFDSCwKKyAgICBNU0dfSURfTE1TX1BST0NFU1NfVUxfUVVFVUVfUkVRLAorICAgIE1TR19JRF9JUEZfSVRfRExfSVRfUkVRLAorICAgIE1TR19JRF9MTVNfSVRfRExfRU5RVUVVRV9SRVEsCisgICAgTVNHX0lEX0lQQ09SRV9QUk9DRVNTX1VMX1FVRVVFX1JFUSwKKyAgICBNU0dfSURfSVBDT1JFX1JFVFJZX1VMX1JFTE9BRF9SRVEsCisgICAgTVNHX0lEX0lQQ09SRV9ETF9QQUNLRVRfRklMVEVSRURfUkVRLAorICAgIE1TR19JRF9JUENPUkVfVUxfUEFDS0VUX0ZJTFRFUkVEX1JFUSwKKyAgICBNU0dfSURfSVBDT1JFX0lQX1VQX1JFUSwKKyAgICBNU0dfSURfSVBDT1JFX0lQX0RPV05fUkVRLAorICAgIE1TR19JRF9JUENPUkVfTElOS19VUF9JTkQsCisgICAgTVNHX0lEX0lQQ09SRV9JUF9VUF9JTkQsCisgICAgTVNHX0lEX0lQQ09SRV9MSU5LX1VQX1JTUCwKKyAgICBNU0dfSURfSVBDT1JFX0lQX1VQX1JTUCwKKyAgICBNU0dfSURfSVBDT1JFX1FVRVJZX0lORk9fUkVRLAorICAgIE1TR19JRF9JUENPUkVfUVVFUllfSU5GT19DTkYsCisgICAgTVNHX0lEX0lQQ09SRV9ETF9QQUNLRVRfRklMVEVSRURfV0lUSF9JTkZPX1JFUSwKKyAgICBNU0dfSURfSVBDT1JFX1VMX1BBQ0tFVF9GSUxURVJFRF9XSVRIX0lORk9fUkVRLAorICAgIE1TR19JRF9JUENPUkVfU0VUX1VMX1RIUk9UVExFLAorICAgIE1TR19JRF9JUENPUkVfVkRNX0lNU19FTUVSR0VOQ1lfQ0FMTF9JTkQsCisgICAgTVNHX0lEX0lQQ09SRV9SRVNUT1JFX05FVElGX0lORCwKKyAgICBNU0dfSURfSVBDT1JFX1VEUF9JR01QX1JFR19GSUxURVJfUkVRLAorICAgIE1TR19JRF9JUENPUkVfVURQX0lHTVBfREVSRUdfRklMVEVSX1JFUSwKKyAgICBNU0dfSURfSVBDX0ZSQUdfRExfUkFXX0RBVEEsCisgICAgTVNHX0lEX0lQQ19GUkFHX1VMX1JBV19EQVRBLAorICAgIE1TR19JRF9EMkNNX0lQQ09SRV9JTkZPX0lORCwKKworICAgIE1TR19JRF9UTUNfRU1BQ19OV19TVEFUVVNfSU5ELAorICAgIE1TR19JRF9UTUNfTk1BQ19OV19TVEFUVVNfSU5ELAorICAgIE1TR19JRF9UTUNfRU1BQ19USEVSTUFMX0NPTlRST0xfQ05GLAorICAgIE1TR19JRF9UTUNfTk1BQ19USEVSTUFMX0NPTlRST0xfQ05GLAorICAgIE1TR19JRF9UTUNfQ09OVFJPTF9SRVEsCisgICAgTVNHX0lEX1RNQ19OTDFfTldfU1RBVFVTX0lORCwKKworICAgIC8qIE1TR3MgZnJvbSBOUlJDICovCisgICAgTVNHX0lEX1RNQ19OUlJDX0FTU0lTVEFOQ0VfSU5GT19TVVBQT1JUX0lORCwKKyAgICBNU0dfSURfVE1DX05SUkNfQVNTSVNUQU5DRV9JTkZPX1NFTkRfQ05GLAorICAgIE1TR19JRF9UTUNfTlJSQ19BU1NJU1RBTkNFX0lORk9fU0VORElOR19BTExPV0VEX0lORCwKKworICAgIE1TR19JRF9MNUlPX1RNQ19BQ1RVQVRPUl9OVU1fUkVRLAorICAgIE1TR19JRF9MNUlPX1RNQ19BQ1RVQVRPUl9OVU1fQ05GLAorICAgIE1TR19JRF9MNUlPX1RNQ19BQ1RVQVRPUl9TVEFURV9RVUVSWV9SRVEsCisgICAgTVNHX0lEX0w1SU9fVE1DX0FDVFVBVE9SX1NUQVRFX1FVRVJZX0NORiwKKyAgICBNU0dfSURfTDVJT19UTUNfQUNUVUFUT1JfU0VUX1JFUSwKKyAgICBNU0dfSURfTDVJT19UTUNfQUNUVUFUT1JfU0VUX0NORiwKKworICAgIE1TR19JRF9EUEZNX1JFU0VUX1JFUSwKKyAgICBNU0dfSURfRFBGTV9TRVRfVFJBQ0tfVEFCTEVfVElNRVIsCisgICAgTVNHX0lEX0lQQ09SRV9MSElGQ09SRV9RVUVVRV9NQVBQSU5HX1JFUSwKKyAgICBNU0dfSURfSVBDT1JFX0xISUZDT1JFX1FVRVVFX01BUFBJTkdfUlNQLAorICAgIE1TR19JRF9JUENPUkVfUFJPQ0VTU19ETF9RVUVVRV9SRVEsCisgICAgTVNHX0lEX0lQQ09SRV9SRUdJU1RFUl9GSUxURVJfUkVRLAorICAgIE1TR19JRF9JUENPUkVfREVSRUdJU1RFUl9GSUxURVJfUkVRLAorICAgIE1TR19JRF9JUENPUkVfTkFTX1JRX0lORk9fSU5ELAorICAgIE1TR19JRF9EUEZNX1BST0NFU1NfSFdfQ01EX1FfSU5ELAorICAgIE1TR19JRF9EUEZNX0xBTl9ERVZfREVMX0ZJTFRFUl9JTkQsCisgICAgTVNHX0lEX0lQQ09SRV9DT0RFX1RBSUwgPSBNU0dfSURfSVBDT1JFX0NPREVfQkVHSU4gKyA4MCwKKworICAgIE1TR19JRF9FVEhFUkNPUkVfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfRVRIRVJDT1JFX0hBTkRMRV9QQUNLRVRfUkVRLAorICAgIE1TR19JRF9FVEhFUkNPUkVfTElOS19VUF9SRVEsCisgICAgTVNHX0lEX0VUSEVSQ09SRV9MSU5LX0RPV05fUkVRLAorICAgIE1TR19JRF9FVEhFUkNPUkVfQ09ERV9UQUlMID0gTVNHX0lEX0VUSEVSQ09SRV9DT0RFX0JFR0lOICsgNDAsCisKKyAgICBNU0dfSURfREhDUDRDX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0RIQ1A0Q19BQ1RJVkFURV9SRVEsCisgICAgTVNHX0lEX0RIQ1A0Q19ERUFDVElWQVRFX1JFUSwKKyAgICBNU0dfSURfREhDUDRDX1BBQ0tFVF9SRVEsCisgICAgTVNHX0lEX0RIQ1A0Q19BQ1RJVkFURV9SU1AsCisgICAgTVNHX0lEX0RIQ1A0Q19ERUFDVElWQVRFX1JTUCwKKyAgICBNU0dfSURfREhDUDRDX0lQX1VQX0lORCwKKyAgICBNU0dfSURfREhDUDRDX0lQX0RPV05fSU5ELAorICAgIE1TR19JRF9ESENQNENfUEFDS0VUX0lORCwKKyAgICBNU0dfSURfREhDUDRDX0NPREVfVEFJTCA9IE1TR19JRF9ESENQNENfQ09ERV9CRUdJTiArIDQwLAorCisgICAgTVNHX0lEX05EUENfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfTkRQQ19BQ1RJVkFURV9SRVEsCisgICAgTVNHX0lEX05EUENfREVBQ1RJVkFURV9SRVEsCisgICAgTVNHX0lEX05EUENfUEFDS0VUX1JFUSwKKyAgICBNU0dfSURfTkRQQ19BQ1RJVkFURV9SU1AsCisgICAgTVNHX0lEX05EUENfREVBQ1RJVkFURV9SU1AsCisgICAgTVNHX0lEX05EUENfSVBfVVBfSU5ELAorICAgIE1TR19JRF9ORFBDX0lQX0RPV05fSU5ELAorICAgIE1TR19JRF9ORFBDX1BBQ0tFVF9JTkQsCisgICAgTVNHX0lEX05EUENfQ09ERV9UQUlMID0gTVNHX0lEX05EUENfQ09ERV9CRUdJTiArIDQwLAorCisgICAgTVNHX0lEX1JORElTX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1JORElTX1JFTE9BRF9VTF9CVUZGRVJfUkVRLAorICAgIE1TR19JRF9STkRJU19TVEFSVF9IQURfUkVRLAorICAgIE1TR19JRF9STkRJU19TVEFSVF9EQVRBX1BBVEhfUkVRLAorICAgIE1TR19JRF9STkRJU19TVE9QX0RBVEFfUEFUSF9SRVEsCisgICAgTVNHX0lEX1JORElTX0RJU0NPTk5FQ1RFRF9ERVZfU0hVVERPV05fUkVRLAorICAgIE1TR19JRF9STkRJU19DT05ORUNURURfREVWX1NIVVRET1dOX1JFUSwKKyAgICBNU0dfSURfUk5ESVNfQ09ERV9UQUlMID0gTVNHX0lEX1JORElTX0NPREVfQkVHSU4gKyA0MCwKKworICAgIE1TR19JRF9DQ0NJX1RUWV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9DQ0NJX1RUWV9TRVNTSU9OX0lOSVRfUkVRLAorICAgIE1TR19JRF9DQ0NJX1RUWV9TRVNTSU9OX0RFSU5JVF9SRVEsCisgICAgTVNHX0lEX0NDQ0lfVFRZX1VMX0RFUVVFVUVfUkVRLAorICAgIE1TR19JRF9DQ0NJX1RUWV9DT0RFX1RBSUwgPSBNU0dfSURfQ0NDSV9UVFlfQ09ERV9CRUdJTiArIDQwLAorCisgICAgTVNHX0lEX0NDTU5JX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0NDTU5JX0xJTktfVVBfUkVRLAorICAgIE1TR19JRF9DQ01OSV9MSU5LX0RPV05fUkVRLAorICAgIE1TR19JRF9DQ01OSV9TRVNTSU9OX0lOSVRfUkVRLAorICAgIE1TR19JRF9DQ01OSV9TRVNTSU9OX0RFSU5JVF9SRVEsCisgICAgTVNHX0lEX0NDTU5JX1JFVFJZX1VMX1JFTE9BRF9SRVEsCisgICAgTVNHX0lEX0NDTU5JX0NPREVfVEFJTCA9IE1TR19JRF9DQ01OSV9DT0RFX0JFR0lOICsgNDAsCisKKwlNU0dfSURfTVNfQ09ERV9CRUdJTiwKKwlNU0dfSURfTVNfQ1RSTF9VU0JfU0VUVVBfUEtULAorCU1TR19JRF9NU19DVFJMX1VTQl9DVFJMX0NPTVBMRVRFRCwKKwlNU0dfSURfTVNfQ1RSTF9VU0JfQVRUQUNIRUQsCisJTVNHX0lEX01TX0NUUkxfVVNCX1NVU1BFTkRJTkcsCisJTVNHX0lEX01TX0NUUkxfVVNCX1JFU1VNRSwKKwlNU0dfSURfTVNfQ1RSTF9VU0JfREVUQUNISU5HLAorCU1TR19JRF9NU19DVFJMX1VTQl9SRVNFVCwKKwlNU0dfSURfTVNfQ1RSTF9VU0JfU1BFRURfQ0hBTkdFRCwKKwlNU0dfSURfTVNfQ1RSTF9SRUlOSVRfUkVRLAorCU1TR19JRF9NU19DVFJMX1VMX1JFTE9BRF9SRVEsCisJTVNHX0lEX01TX0RBVEFfUlhfQ09NUExFVEVELAorCU1TR19JRF9NU19EQVRBX1RYX0NPTVBMRVRFRCwKKwlNU0dfSURfTVNfQlVMS0lOX0VQX1NUQUxMLAorCU1TR19JRF9NU19CVUxLT1VUX0VQX1NUQUxMLAorCU1TR19JRF9NU19TRVRfVVNCX01PREVfUkVRLAorCU1TR19JRF9NU19SRVNFVF9ERVZJQ0VfUkVRLAorCU1TR19JRF9NU19DT0RFX1RBSUwgPSBNU0dfSURfTVNfQ09ERV9CRUdJTiArIDQwLAorCisgICAgTVNHX0lEX0FPTUdSX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0FPTUdSX0xJTktfRE9XTl9JTkQsCisgICAgTVNHX0lEX0FPTUdSX0NPREVfVEFJTCA9IE1TR19JRF9BT01HUl9DT0RFX0JFR0lOICsgNDAsCisKKyAgICBNU0dfSURfVVNCQ09SRV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9VU0JDT1JFX1NVU1BFTkRfVE9fSURMRSwKKyAgICBNU0dfSURfVVNCQ09SRV9JRExFX05PVElGWV9UT19MNCwKKyAgICBNU0dfSURfVVNCQ09SRV9EVUFMX09XTkVSX01TR19SRUNFSVZFLAorICAgIE1TR19JRF9VU0JDT1JFX0NPREVfVEFJTCA9IE1TR19JRF9VU0JDT1JFX0NPREVfQkVHSU4gKyAyMCwKKworICAgIE1TR19JRF9DRENFQ01fQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfQ0RDRUNNX1JFTE9BRF9VUExJTktfUkVRLAorICAgIE1TR19JRF9DRENFQ01fU1RBUlRfREFUQV9QQVRIX1JFUSwKKyAgICBNU0dfSURfQ0RDRUNNX1NUT1BfREFUQV9QQVRIX1JFUSwKKyAgICBNU0dfSURfQ0RDRUNNX0NPREVfVEFJTCA9IE1TR19JRF9DRENFQ01fQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0VTTF9DT1NJTV9ISUZfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfVVNCQ0xBU1NfVVNCQ09SRV9FU0xfRU5URVJfQ09OTkVDVEVEX1NUQVRFX1JFUSwKKyAgICBNU0dfSURfSElGX0lQQ09SRV9FU0xfQVRUQUNIX0RPTkVfSU5ELAorICAgIE1TR19JRF9FU0xfQ09TSU1fSElGX0NPREVfVEFJTCA9IE1TR19JRF9FU0xfQ09TSU1fSElGX0NPREVfQkVHSU4gKyAxMCwKKworICAgIE1TR19JRF9VRlBNX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX1VGUE1fRU1fRFVNUF9DVFgsCisgICAgTVNHX0lEX1VGUE1fQ09ERV9UQUlMID0gTVNHX0lEX1VGUE1fQ09ERV9CRUdJTiArIDEwLAorCisgICAgTVNHX0lEX05DQ01OSV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9OQ0NNTklfTkVUSUZfVUxfUkVRLAorICAgIE1TR19JRF9OQ0NNTklfTkVUSUZfRExfUkVRLAorICAgIE1TR19JRF9OQ0NNTklfREFUQV9QT0xMX0FMTF9ISUZfSU5ELAorICAgIE1TR19JRF9OQ0NNTklfQ09ERV9UQUlMID0gTVNHX0lEX05DQ01OSV9DT0RFX0JFR0lOICsgMTAsCisKKyAgICBNU0dfSURfRDJfTkNDTU5JX0NPREVfQkVHSU4sCisgICAgICAgIE1TR19JRF9EMl9OQ0NNTklfRVNUQUJMSVNIUEROX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyX05DQ01OSV9FU1RBQkxJU0hQRE5fQ05GLAorICAgICAgICBNU0dfSURfRDJfTkNDTU5JX0lGQ0hBTkdFX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyX05DQ01OSV9JRkNIQU5HRV9DTkYsCisgICAgICAgIE1TR19JRF9EMl9OQ0NNTklfRElTQ09OTkVDVFBETl9SRVEsCisgICAgICAgIE1TR19JRF9EMl9OQ0NNTklfRElTQ09OTkVDVFBETl9DTkYsCisgICAgTVNHX0lEX0QyX05DQ01OSV9DT0RFX1RBSUwgPSBNU0dfSURfRDJfTkNDTU5JX0NPREVfQkVHSU4gKyAxMCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9ISUZfTVdfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9fSU5DX0hJRl9NV19NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tdy9rcGFsdl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcva3BhbHZfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODIwZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcva3BhbHZfbXNnaWQuaApAQCAtMCwwICsxLDcwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisgKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyAqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyAqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyAqCisgKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisgKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyAqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorICogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorICogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisgKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorICogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorICogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisgKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisgKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisgKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorICoKKyAqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisgKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisgKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyAqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisgKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisgKgorICogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisgKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisgKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisgKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisgKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAga3BhbHZfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICAKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogIEtlZXAgYWxpdmUgSUxNIG1lc3NhZ2VzCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX0tQQUxWX01TR0lEX0gKKyNkZWZpbmUgX0tQQUxWX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0tQQUxWX01TR19DT0RFX0JFR0lOICkKKy8qKiBmcm9tIEFUUC0+S1BBTFYgKi8KK01TR19JRF9BVFBfS1BBTFZfS0VFUEFMSVZFX1JFUSA9IE1TR19JRF9LUEFMVl9NU0dfQ09ERV9CRUdJTiwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9LUEFMVl9NU0dfQ09ERV9UQUlMICkKKyNlbmRpZiAgLyogX0tQQUxWX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L2x0ZWNzcl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvbHRlY3NyX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc5YzE3ZAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L2x0ZWNzcl9tc2dpZC5oCkBAIC0wLDAgKzEsMzU4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgbHRlY3NyX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIElNWCBhbmQgTFRFQ1NSIFNBUCBtZXNzYWdlIGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogTFRFQ1NSIElOVEVSRkFDRSAqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9MVEVDU1JfTVNHX0gKKyNkZWZpbmUgX0xURUNTUl9NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTFRFQ1NSX0NPREVfQkVHSU4gKQorCisvKiBGUk9NOiBJTUMgRXh0ZXJuYWwgKi8KKworICAgIE1TR19JRF9MVEVDU1JfTUVESUFfTkVXPU1TR19JRF9MVEVDU1JfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfTFRFQ1NSX01FRElBX0RFTCwKKyAgICBNU0dfSURfTFRFQ1NSX01FRElBX1VQREFURSwKKyAgICBNU0dfSURfTFRFQ1NSX01FRElBX0FDVElWRSwKKyAgICAKKyAgICBNU0dfSURfTFRFQ1NSX0RUTUZfUkVRLCAvKiBJTjogY2lkLCAoc2lkKSwgZGlnaXQsIGluL291dCBiYW5kLCB0aW1lOjAtc3RvcCwgbm9uLXplcm86IHBsYXksIC0xOiBwZXJpb2RpY2FsbHkgKi8KKworICAgIC8qIEhhbmRvdmVyIGV2ZW50IHdpdGggZWJpICovCisgICAgTVNHX0lEX0xURUNTUl9IQU5ET1ZFUl9CRUdJTiwKKyAgICBNU0dfSURfTFRFQ1NSX0hBTkRPVkVSX0VORCwKKworLyogRlJPTTogTU9EX0wxU1AgKi8KKworICAgIE1TR19JRF9MVEVDU1JfVk9JQ0VfVUxfREFUQV9OT1RJRlksCisgICAgTVNHX0lEX0xURUNTUl9WT0lDRV9ETF9EQVRBX05PVElGWSwKKyAgICBNU0dfSURfTFRFQ1NSX1ZPSUNFX1VMX01VVEVfTk9USUZZLAorICAgIE1TR19JRF9MVEVDU1JfVk9JQ0VfRExfTVVURV9OT1RJRlksCisgICAgTVNHX0lEX0xURUNTUl9BVl9TWU5DX05PVElGWSwKKworLyogTFRFQ1NSIEludGVybmFsICovCisKKyAgICAvKiBtZWRpYSAqLworICAgIE1TR19JRF9MVEVDU1JfTUVESUFfU1RBUlQsIC8qIElOOiBjaWQsIHNpZCBPVVQ6IHJlc3VsdCAqLworICAgIE1TR19JRF9MVEVDU1JfTUVESUFfU1RPUCwgLyogSU46IGNpZCwgc2lkIE9VVDogcmVzdWx0ICovCisKKyAgICAvKiB0cmFuc21pdCBtb2RlICovCisgICAgTVNHX0lEX0xURUNTUl9NRURJQV9YTUlUX01PREVfU0VULCAvKiBJTjogY2lkLCBzaWQsIHhtaXRfbW9kZSAqLworICAgIE1TR19JRF9MVEVDU1JfTUVESUFfWE1JVF9NT0RFX0dFVCwgLyogSU46IGNpZCwgc2lkIE9VVDogeG1pdF9tb2RlICovCisKKyAgICAvKiBkdG1mICovCisgICAgTVNHX0lEX0xURUNTUl9EVE1GX1BMQVksIC8qIElOOiBjaWQsIChzaWQpLCBkaWdpdCwgZGlyZWN0aW9uOjAtbG9jYWwsIDEtcmVtb3RlLCBkdXJhdGlvbjotMShpbmZpbml0ZSksIDAoc3RvcCksIG90aGVycyhtcykgKi8KKyAgICBNU0dfSURfTFRFQ1NSX0RUTUZfU1RPUCwgLyogSU46IGNpZCovCisKKyAgICAvKiBjb2RlYyBwYXlsb2FkIHR5cGUgKi8KKyAgICBNU0dfSURfTFRFQ1NSX01FRElBX1BUX1NFVCwgLyogSU46IGNpZCwgc2lkLCBjb2RlYywgcHQgKi8KKyAgICAvL01TR19JRF9MVEVDU1JfTUVESUFfUFRfR0VULCAvKiBJTjogY2lkLCBzaWQgKi8KKworICAgIC8qIHJ0Y3AgKi8KKyAgICBNU0dfSURfTFRFQ1NSX1JUQ1BfU0VORF9JTlRFUlZBTF9TRVQsIC8qIElOOiBjaWQsIHNpZCwgcnRjcCBzZW5kIGludGVydmFsICovCisgICAgLy9NU0dfSURfTFRFQ1NSX1JUQ1BfU0VORF9JTlRFUlZBTF9HRVQsIC8qIElOOiBjaWQsIHNpZCBPVVQ6IGNpZCwgc2lkICovCisKKy8qIExURUNTUiBFUERHIEhhbmRvdmVyICovCisgICAgTVNHX0lEX0xURUNTUl9FUERHX0hPX0lORCwKKworICAgIE1TR19JRF9MVEVDU1JfV0ZDX1NVUFBPUlRfSU5ELAorCisgICAgTVNHX0lEX0xURUNTUl9SVFBfU0FNUExFX1RJTUVfSU5ELAorICAgIE1TR19JRF9MVEVDU1JfUlRQX1NBTVBMRV9USU1FX0NORiwKKworICAgIE1TR19JRF9MVEVDU1JfSU1TX05PVElGWV9JTkQsCisKKyAgICBNU0dfSURfTFRFQ1NSX0lNU19OT1RJRllfUkVRLAorCisvKiBMMUMgdG8gTFRFQ1NSIExhdGVuY3kgVGVzdCBEZXRlY3Rpb24gKi8KKyAgICBNU0dfSURfTFRFQ1NSX0wxQ19MQVRFTkNZX1RFU1RfREVURUNUSU9OX0lORCwKKworLypUQzAxIE1VU0VTUlZDQyBDSVJFUEggLSBTVEFSVCovCisjaWZkZWYgX19UQzAxX18KKyAgICBNU0dfSURfTFRFQ1NSX1NSVkNDX0hPX1NUQVJUX0lORCwKKyAgICBNU0dfSURfTFRFQ1NSX1NSVkNDX0hPX0ZBSUxVUkVfSU5ELAorI2VuZGlmCisvKlRDMDEgTVVTRVNSVkNDIENJUkVQSCAtIEVORCovCisKKy8qIElXTEFOIDwtLS0+IExURUNTUiAqLworICAgIC8vTVNHX0lEX0lXTEFOX0xURUNTUl9QS1RJTkZPX0NGR19SRVEsCisgICAgLy9NU0dfSURfSVdMQU5fTFRFQ1NSX1BLVElORk9fQ0ZHX0NORiwKKyAgICAvL01TR19JRF9JV0xBTl9MVEVDU1JfUEtUSU5GT19SUFRfSU5ELAorICAgIE1TR19JRF9JV0xBTl9MVEVDU1JfSU5GT19DRkdfUkVRLAorICAgIE1TR19JRF9JV0xBTl9MVEVDU1JfSU5GT19DRkdfQ05GLAorICAgIE1TR19JRF9JV0xBTl9MVEVDU1JfSU5GT19SUFRfSU5ELAorCisgICAgTVNHX0lEX0lXTEFOX0xURUNTUl9JTkZPX1FVRVJZX1JFUSwKKyAgICBNU0dfSURfSVdMQU5fTFRFQ1NSX0lORk9fUVVFUllfQ05GLAorICAgIE1TR19JRF9JV0xBTl9MVEVDU1JfSU5GT19RVUVSWV9JTkQsCisKKy8qIExURUNTUiBTZWxmIFByb2ZpbGUoTlZSQU0pIGR1bXAgKi8KKyAgICBNU0dfSURfTFRFQ1NSX1BST0ZJTEVfRFVNUCwgICAgCisKKy8qIEFUUCAtLT4gTFRFQ1NSKi8KKyAgICBNU0dfSURfQVRQX0xURUNTUl9FQ0ZHX1NFVF9SRVEsCisgICAgTVNHX0lEX0FUUF9MVEVDU1JfRUNGR19HRVRfUkVRLAorICAgIE1TR19JRF9BVFBfTFRFQ1NSX0RVTVBfUlVOVElNRV9QQVJBX1JFUSwKKyAgICBNU0dfSURfQVRQX0xURUNTUl9JTVNfQVVESU9fU0lMRU5DRV9JTkRfUkVRLAorCisvKiBFUlJDIC0tPiBMVEVDU1IgKi8KKyAgICBNU0dfSURfTFRFQ1NSX0VSUkNfREVMQVlfQlVER0VUX1JQVF9SRVEsCisgICAgTVNHX0lEX0xURUNTUl9FUlJDX0RFTEFZX0JVREdFVF9SRVNVTFRfSU5ELAorCisvKkFOQlIsIExURUNTUjwtLS0+VVBDTSovCisgICAgTVNHX0lEX0xURUNTUl9VUENNX0FOQlJRX0NPTkZJR19JTkQsCisgICAgTVNHX0lEX0xURUNTUl9VUENNX0FOQlJfSU5ELAorICAgIE1TR19JRF9MVEVDU1JfVVBDTV9BTkJSUV9SRVEsCisgICAgTVNHX0lEX0xURUNTUl9VUENNX0lQVjRWNl9SRVEsCisKKy8qIE5SUkMgLS0+IExURUNTUiAqLworICAgIE1TR19JRF9OUlJDX0xURUNTUl9ERUxBWV9CVURHRVRfUkVQT1JUX1JFUSwKKyAgICBNU0dfSURfTlJSQ19MVEVDU1JfREVMQVlfQlVER0VUX1JFU1VMVF9IQU5ETEVfUkVRLAorCisvKiBMVEVDU1IgPC0+IElQQ19BREFQVEVSICovCisvKiBSZXNwb25zZSBNU0dzIGFyZSBpbiBpcGNfYWRhcHRlcl9tc2dfaWQsCisgKiBtYXliZSB0aGV5IHNob3VsZCBiZSBwdXQgaGVyZS4KKyAqIG9yIElQQ0EgY2FuIGhhbmRsZSB0aGUgR0VUIHJlcXVlc3QgICAgICAqLworI2lmIGRlZmluZWQoX19JUENfQURBUFRFUl9fKQorICAgIE1TR19JRF9MVEVDU1JfVElUQU5fQkVHSU4sCisgICAgTVNHX0lEX0xURUNTUl9USVRBTl9PUFRJT05fR0VUID0gTVNHX0lEX0xURUNTUl9USVRBTl9CRUdJTiwgLy8gTk9UIHBoYXNlIDEKKyAgICBNU0dfSURfTFRFQ1NSX1RJVEFOX09QVElPTl9SU1AsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOT1QgcGhhc2UgMQorICAgIE1TR19JRF9MVEVDU1JfVElUQU5fT1BUSU9OX1NFVCwKKyAgICBNU0dfSURfTFRFQ1NSX1RJVEFOX09QVElPTl9OT1RJRlksCisvLyAgTVNHX0lEX0xURUNTUl9USVRBTl9SRUZSRVNIX1NFU1NJT05fR0VULAorLy8gIE1TR19JRF9MVEVDU1JfVElUQU5fUkVHSVNUUkFUSU9OX0dFVCwKKyAgICBNU0dfSURfTFRFQ1NSX1RJVEFOX0ZSQU1FX1RJTUVfR0VULAorICAgIE1TR19JRF9MVEVDU1JfVElUQU5fRlJBTUVfVElNRV9SU1AsCisgICAgTVNHX0lEX0xURUNTUl9USVRBTl9GUkFNRV9USU1FX1NFVCwKKyAgICBNU0dfSURfTFRFQ1NSX1RJVEFOX0ZSQU1FX1RJTUVfTk9USUZZLAorLy8gIE1TR19JRF9MVEVDU1JfVElUQU5fQ1BfU1RBVEVfR0VULAorICAgIE1TR19JRF9MVEVDU1JfVElUQU5fRU5HSU5FX1NFVCwKKyAgICBNU0dfSURfTFRFQ1NSX1RJVEFOX1RBSUwsCisjZW5kaWYKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9MVEVDU1JfQ09ERV9UQUlMICkKKworI2VuZGlmICAvKiBfTFRFQ1NSX01TR19IICovCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L21lZF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvbWVkX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFkODljNgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L21lZF9tc2dpZC5oCkBAIC0wLDAgKzEsMTgxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1lZF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBNZWRpYSB0YXNrIEhBTCByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKy8va21vbHkKKyNpZm5kZWYgTUVEX01TR19ICisjZGVmaW5lIE1FRF9NU0dfSAorCisgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU1FRF9IQUxfTVNHX0NPREVfQkVHSU4gLS0tLS0tLS0tLS0tLS0tKi8KK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9NRURfQ09ERV9CRUdJTiApCisgICAgTVNHX0lEX01FRF9TVEFSVFVQX1JFUSA9IE1TR19JRF9NRURfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfTUVEX1NUQVJUVVBfQ05GLAorICAgIE1TR19JRF9NRURJQV9JTl9QUk9DX0NBTExfUkVRLAorICAgIE1TR19JRF9NRURJQV9JTl9QUk9DX0NBTExfQ05GLAorCisgICAgTVNHX0lEX01FRElBX0FVRF9TRVRfQVVESU9fTU9ERV9SRVEsCisgICAgTVNHX0lEX01FRF9BVURfSEFMX0NPREVfQkVHSU4gPSBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19NT0RFX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19NT0RFX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX0dFVF9BVURJT19QUk9GSUxFX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX0dFVF9BVURJT19QUk9GSUxFX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19QUk9GSUxFX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19QUk9GSUxFX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX0dFVF9BVURJT19QQVJBTV9SRVEsCisgICAgTVNHX0lEX01FRElBX0FVRF9HRVRfQVVESU9fUEFSQU1fQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfU0VUX0FVRElPX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19QQVJBTV9DTkYsCisKKyAgICBNU0dfSURfTUVESUFfQVVEX0dFVF9WT0xVTUVfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfR0VUX1ZPTFVNRV9DTkYsCisgICAgTVNHX0lEX01FRElBX0FVRF9TRVRfVk9MVU1FX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9WT0xVTUVfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfU0VUX0RFVklDRV9SRVEsCisgICAgTVNHX0lEX01FRElBX0FVRF9TRVRfREVWSUNFX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX01VVEVfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfTVVURV9DTkYsCisKKyAgICBNU0dfSURfTUVESUFfQVVEX1BMQVlfQllfSURfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfUExBWV9CWV9JRF9DTkYsCisgICAgTVNHX0lEX01FRElBX0FVRF9TVE9QX0JZX0lEX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NUT1BfQllfSURfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfUExBWV9CWV9TVFJJTkdfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfUExBWV9CWV9TVFJJTkdfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfU1RPUF9CWV9TVFJJTkdfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfU1RPUF9CWV9TVFJJTkdfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfUExBWV9CWV9GSUxFX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1BMQVlfQllfRklMRV9DTkYsCisgICAgTVNHX0lEX01FRElBX0FVRF9TVE9QX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NUT1BfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfUExBWV9GSU5JU0hfSU5ELAorCisgICAgTVNHX0lEX01FRElBX0FVRF9FTVNEX01PTklUT1JfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfRU1TRF9DT0RFX0JFR0lOID0gTVNHX0lEX01FRElBX0FVRF9FTVNEX01PTklUT1JfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfRU1TRF9NT05JVE9SX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfU0VUX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfU0VUX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFVTSF9SRVEsCisgICAgTVNHX0lEX01FRElBX0FVRF9FTVNEX1BVU0hfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfRU1TRF9QVUxMX0lORCwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfSEFDS19JTkQsCisgICAgTVNHX0lEX01FRElBX0FVRF9FTVNEX0xBQ0tfSU5ELAorICAgIE1TR19JRF9NRURJQV9BVURfRU1TRF9TWU5DX0lORCwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFNBUF9NT05JVE9SX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFNBUF9NT05JVE9SX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFNBUF9QVUxMX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFNBUF9QVUxMX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFNBUF9EQVRBX0lORCwKKyAgICBNU0dfSURfTUVESUFfQVVEX0VNU0RfQ09ERV9FTkQgPSBNU0dfSURfTUVESUFfQVVEX0VNU0RfUFNBUF9EQVRBX0lORCwKKworICAgIE1TR19JRF9NRURJQV9BVURfU1BfU0VUX01PREVfUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfU1BfU0VUX01PREVfQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfU1BfU0VUX0ZJUl9DT0VGRl9SRVEsCisgICAgTVNHX0lEX01FRElBX0FVRF9HRVRfQVVESU9fV0JfSU5QVVRfRklSX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX0dFVF9BVURJT19XQl9JTlBVVF9GSVJfUEFSQU1fQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfR0VUX0FVRElPX1dCX09VVFBVVF9GSVJfUEFSQU1fUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfR0VUX0FVRElPX1dCX09VVFBVVF9GSVJfUEFSQU1fQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfR0VUX0FVRElPX1dCX01PREVfUEFSQU1fUkVRLAorICAgIE1TR19JRF9NRURJQV9BVURfR0VUX0FVRElPX1dCX01PREVfUEFSQU1fQ05GLAorICAgIE1TR19JRF9NRURJQV9BVURfU0VUX0FVRElPX1dCX0lOUFVUX0ZJUl9QQVJBTV9SRVEsCisgICAgTVNHX0lEX01FRElBX0FVRF9TRVRfQVVESU9fV0JfSU5QVVRfRklSX1BBUkFNX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19XQl9PVVRQVVRfRklSX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19XQl9PVVRQVVRfRklSX1BBUkFNX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19XQl9NT0RFX1BBUkFNX1JFUSwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NFVF9BVURJT19XQl9NT0RFX1BBUkFNX0NORiwKKyAgICBNU0dfSURfTUVESUFfQVVEX1NQX1NFVF9FTkhBTkNFX01PREVfUkVRLAorCisgICAgTVNHX0lEX01FRF9DT0RFX0VORCA9IE1TR19JRF9NRURJQV9BVURfU1BfU0VUX0VOSEFOQ0VfTU9ERV9SRVEsCisKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTUVEX0NPREVfVEFJTCApCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLU1FRF9IQUxfTVNHX0NPREVfRU5EIC0tLS0tLS0tLS0tLS0tLS0tKi8KKyNlbmRpZiAgLy9NRURfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L25kaXNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL213L25kaXNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTA4NTY0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvbmRpc19tc2dpZC5oCkBAIC0wLDAgKzEsMTAxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgbmRpc19zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogICAgICAgICAgICAgSElTVE9SWQorICogQmVsb3cgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIE5ESVNfTVNHX0gKKyNkZWZpbmUgTkRJU19NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTkRJU19NU0dfQ09ERV9CRUdJTiApCisvKiBSQVRETSBJTlRFUkZBQ0UgKi8KKworTVNHX0lEX05ESVNfUkFURE1fREFUQV9BQ1RJVkFURV9JTkQ9TVNHX0lEX05ESVNfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfTkRJU19SQVRETV9EQVRBX0FDVElWQVRFX1JTUCwKK01TR19JRF9ORElTX1JBVERNX0RBVEFfREVBQ1RJVkFURV9JTkQsCitNU0dfSURfTkRJU19SQVRETV9EQVRBX0RFQUNUSVZBVEVfUlNQLAorLyogTkRJU19SQVRETV9TQVAgKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTkRJU19NU0dfQ09ERV9UQUlMICkKKworI2VuZGlmIC8vTkRJU19NU0dfSApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvbXcvcGZtX21zZ2lkX3NvdXJjZS5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvcGZtX21zZ2lkX3NvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2OGVjYmIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tdy9wZm1fbXNnaWRfc291cmNlLmgKQEAgLTAsMCArMSwxMCBAQAorTVNHX0lEX1BGTV9SRUdJU1RFUl9GSUxURVJfUkVRLAorTVNHX0lEX1BGTV9ERVJFR0lTVEVSX0ZJTFRFUl9SRVEsCitNU0dfSURfQVBfU1RBVFVTX0lORCwKK01TR19JRF9QRk1fUENJRV9TVEFURV9DSEFOR0VfSU5ELAorTVNHX0lEX1BGTV9JQ01QX1BJTkdfUkVHX0ZJTFRFUl9SRVEsCitNU0dfSURfUEZNX0lDTVBfUElOR19ERVJFR19GSUxURVJfUkVRLAorTVNHX0lEX1BGTV9VTF9ESVNBQkxFX0FMTF9QQUNLRVRTX1JFR19GSUxURVJfUkVRLAorTVNHX0lEX1BGTV9VTF9ESVNBQkxFX0FMTF9QQUNLRVRTX0RFUkVHX0ZJTFRFUl9SRVEsCitNU0dfSURfUEZNX1VMX0lDTVBfUElOR19XSElURUxJU1RfUkVHX0ZJTFRFUl9SRVEsCitNU0dfSURfUEZNX1VMX0lDTVBfUElOR19XSElURUxJU1RfREVSRUdfRklMVEVSX1JFUSwKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L3BzX3B1YmxpY191cHNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL213L3BzX3B1YmxpY191cHNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzliODg0Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvcHNfcHVibGljX3Vwc19tc2dpZC5oCkBAIC0wLDAgKzEsMTA4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICBwc19wdWJsaWNfdXBzX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgTUFVSQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgVGhpcyBmaWxlIGlzIHRoZSBjb21tb24gcHVibGljIFNBUCBvZiBtb2R1bGUgVVBTLiAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1BTX1BVQl9VUFNfTVNHX0gKKyNkZWZpbmUgX1BTX1BVQl9VUFNfTVNHX0gKKworLyogQUJNIElOVEVSRkFDRSAqLworCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVVBTX1BVQkxJQ19DT0RFX0JFR0lOICkKK01TR19JRF9BQk1fUk5ESVNfQUNUSVZBVEVfUkVRPU1TR19JRF9VUFNfUFVCTElDX0NPREVfQkVHSU4sCitNU0dfSURfQUJNX1JORElTX0FDVElWQVRFX0NORiwKK01TR19JRF9BQk1fUk5ESVNfREVBQ1RJVkFURV9SRVEsCitNU0dfSURfQUJNX1JORElTX0RFQUNUSVZBVEVfQ05GLAorTVNHX0lEX0FCTV9STkRJU19ERUFDVElWQVRFX0lORCwKKy8qIFJORElTX0FCTV9TQVAgKi8KKworLyogVENQSVAgSU5URVJGQUNFICovCitNU0dfSURfUk5ESVNfREFUQV9SRVEsCitNU0dfSURfUk5ESVNfREFUQV9JTkQsCitNU0dfSURfUk5ESVNfU1RBVElTVElDU19JTkQsCisvKiBSTkRJU19UQ1BJUF9TQVAgKi8KK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVVBTX1BVQkxJQ19DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX1BTX1BVQl9VUFNfTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L3VmcG1fbXNnaWRfc291cmNlLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tdy91ZnBtX21zZ2lkX3NvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzYjVlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9tdy91ZnBtX21zZ2lkX3NvdXJjZS5oCkBAIC0wLDAgKzEsODIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgaGlmX213X21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVEFUQUtBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgVUZQTSBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEgCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19JTkNfVUZQTV9NU0dJRF9ICisjZGVmaW5lIF9fSU5DX1VGUE1fTVNHSURfSAorCitNU0dfSURfVUZQTV9OT1RJRllfTURfQlVTX0VWRU5UX1JFUSwKK01TR19JRF9VRlBNX05PVElGWV9NRF9CVVNfRVZFTlRfUlNQLAorCitNU0dfSURfVUZQTV9TRU5EX01EX1VTQl9FUDBfUkVRLAorTVNHX0lEX1VGUE1fU0VORF9NRF9VU0JfRVAwX1JTUCwKK01TR19JRF9VRlBNX1NFTkRfTURfVVNCX0VQMF9JTkQsCitNU0dfSURfVUZQTV9TRU5EX0FQX1VTQl9FUDBfSU5ELAorCitNU0dfSURfVUZQTV9FTkFCTEVfTURfRkFTVF9QQVRIX1JFUSwKK01TR19JRF9VRlBNX0VOQUJMRV9NRF9GQVNUX1BBVEhfUlNQLAorTVNHX0lEX1VGUE1fRElTQUJMRV9NRF9GQVNUX1BBVEhfUkVRLAorTVNHX0lEX1VGUE1fRElTQUJMRV9NRF9GQVNUX1BBVEhfUlNQLAorTVNHX0lEX1VGUE1fREVBQ1RJVkFURV9NRF9GQVNUX1BBVEhfUkVRLAorTVNHX0lEX1VGUE1fREVBQ1RJVkFURV9NRF9GQVNUX1BBVEhfUlNQLAorTVNHX0lEX1VGUE1fREVBQ1RJVkFURV9NRF9GQVNUX1BBVEhfSU5ELAorTVNHX0lEX1VGUE1fQUNUSVZBVEVfTURfRkFTVF9QQVRIX1JFUSwKK01TR19JRF9VRlBNX0FDVElWQVRFX01EX0ZBU1RfUEFUSF9SU1AsCisKKyNlbmRpZiAvKiBfX0lOQ19VRlBNX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL213L3Vwc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvbXcvdXBzX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRlNjQ0MwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L3Vwc19tc2dpZC5oCkBAIC0wLDAgKzEsMTQyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgdXBzX3NhcC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1BVUkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICAKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVUFMgSU5URVJGQUNFICovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9VUFNfTVNHX0gKKyNkZWZpbmUgX1VQU19NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfVVBTX01TR19DT0RFX0JFR0lOICkKK01TR19JRF9VUFNfQkFUQ0hfU1RBVEVfSU5EPU1TR19JRF9VUFNfTVNHX0NPREVfQkVHSU4sCisKKy8qIFVQUyBVVCBJTlRFUkZBQ0UgKi8KK01TR19JRF9VUFNfVVRfVUFSVF9EQVRBX0lORCwKK01TR19JRF9VUFNfVVRfVUFSVF9EQVRBX1JFUSwKKworLyogRkxDMiBJTlRFUkZBQ0UgKi8KK01TR19JRF9VUFNfRkxDX0RBVEFfUkVTVU1FX0lORCwKK01TR19JRF9VUFNfRkxDX0RBVEFfU1VTUEVORF9JTkQsCisvKiBTVEFDS19USU1FUl9TQVAgKi8KKworLyogVVBTIFBPUlQgQUNUSVZBVElPTiBJTlRFUkZBQ0UgKi8KK01TR19JRF9MNENVUFNfUE9SVF9BQ1RJVkFURV9SRVEsCitNU0dfSURfTDRDVVBTX1BPUlRfQUNUSVZBVEVfQ05GLAorTVNHX0lEX0w0Q1VQU19QT1JUX0RFQUNUSVZBVEVfSU5ELAorCisvKiBNQklNIElOVEVSRkFDRSAqLworTVNHX0lEX01CSU1fQ0xPU0VfUkVRLAorTVNHX0lEX01CSU1fQ0xPU0VfQ05GLAorTVNHX0lEX01CSU1fQ09OTkVDVF9JTkQsCitNU0dfSURfTUJJTV9ESVNDT05ORUNUX0lORCwKKworLyogVVBTX1NBUCAqLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9VUFNfTVNHX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fVVBTX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9tdy93dHVubmVsX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9tdy93dHVubmVsX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU3YjU0MgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL213L3d0dW5uZWxfbXNnaWQuaApAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIF9XVFVOTkVMX01TR19JRF9ICisjZGVmaW5lIF9XVFVOTkVMX01TR19JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9XVFVOTkVMX0NPREVfQkVHSU4gKQorCisgICAgTVNHX0lEX04zU0FNX1dUX1dJRklfRklMVEVSX0FERF9SRVEsICAgICAgICAvLyBubyByc3AKKyAgICBNU0dfSURfTjNTQU1fV1RfV0lGSV9GSUxURVJfREVMRVRFX1JFUSwgICAgIC8vIG5vIHJzcAorICAgIE1TR19JRF9OM1NBTV9XVF9TQV9BRERfUkVRLAorICAgIE1TR19JRF9OM1NBTV9XVF9TQV9NT0RJRllfUkVRLAorICAgIE1TR19JRF9OM1NBTV9XVF9TQV9ERUxFVEVfUkVRLAorICAgIE1TR19JRF9OM1NBTV9XVF9TQV9BRERfQ05GLAorICAgIE1TR19JRF9OM1NBTV9XVF9TQV9NT0RJRllfQ05GLAorICAgIE1TR19JRF9OM1NBTV9XVF9TQV9ERUxFVEVfQ05GLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1dUVU5ORUxfQ09ERV9UQUlMICkKKworI2VuZGlmICAvL19XVFVOTkVMX01TR19JRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9td19zYXAuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL213X3NhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZjE1NjYKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9td19zYXAuaApAQCAtMCwwICsxLDY1IEBACisjaWZuZGVmIE1XX1NBUF9ICisjZGVmaW5lIE1XX1NBUF9ICisKKyNpbmNsdWRlICJzYXBfcmFuZ2UuaCIKKworTU9EVUxFX1NBUF9CRUdJTihTQVBfSURfTVdfQ09ERV9CRUdJTikKKyAgICBBQk1fQVBQX1NBUCA9IFNBUF9JRF9NV19DT0RFX0JFR0lOLAorICAgIEFCTV9NTUlfU0FQLAorICAgIEFCTV9TT0NfU0FQLAorICAgIERIQ1BfQUJNX1NBUCwKKyAgICBESENQX1NJUF9TQVAsCisgICAgRFJNVF9BUFBfU0FQLAorICAgIERSTVRfTU1JX1NBUCwKKyAgICBEUk1UX1dBUF9TQVAsCisgICAgTDRDX0FCTV9TQVAsCisgICAgTENTUF9BUFBfU0FQLAorICAgIE1FRF9TQVAsCisgICAgTUVEX1ZfU0FQLAorICAgIE1FRF9XSVNFX0lQVF9TQVAsCisgICAgTU1JX0FCTV9TQVAsCisgICAgTU5MX0JFRV9TQVAsCisgICAgT0JFWF9BUFBfU0FQLAorICAgIFBQUF9UQ1BJUF9TQVAsCisgICAgUk5ESVNfQUJNX1NBUCwKKyAgICBSTkRJU19UQ1BJUF9TQVAsCisgICAgUlRTUF9BUFBfU0FQLAorICAgIFNPQ19BUFBfU0FQLAorICAgIFNPQ19NTUlfU0FQLAorICAgIFNVUENfQUJNX1NBUCwKKyAgICBTVVBDX01NSV9TQVAsCisgICAgU1VQTF9JTlRfU0FQLCAgIAorICAgIFNVUExfTENTUF9TQVAsCisgICAgU1VQTF9NTUlfU0FQLAorICAgIFRDUElQX0FCTV9TQVAsCisgICAgVENQSVBfREhDUF9TQVAsCisgICAgVENQSVBfTE9PUF9TQVAsCQorICAgIFRDUElQX1NPQ19TQVAsCisgICAgVExTX0FQUF9TQVAsCisgICAgVjJERUNfU0FQLAorICAgIFZGSUxFX1NBUCwKKyAgICBYRE1fQVBQX1NBUCwKKyAgICBNTUlfTU1JX1NBUCwKKyAgICBJUENPUkVfU0FQLAorICAgIEVUSEVSQ09SRV9TQVAsCisgICAgU0RJT0NPUkVfU0FQLAorICAgIERIQ1A0Q19TQVAsCisgICAgTkRQQ19TQVAsCisgICAgUk5ESVNfU0FQLAorICAgIENDQ0lUVFlfU0FQLAorICAgIENDTU5JX1NBUCwKKyAgICBNU0RfU0FQLAorICAgIEFPTUdSX1NBUCwKKyAgICBHUFNfTEJTX1NBUCwKKyAgICBJUENPUkVfREFUQVBBVEhfU0FQLAorICAgIENEQ0VDTV9TQVAsCisgICAgVUZQTV9TQVAsCisgICAgVE1DX1NBUCwKKyAgICBJUENPUkVfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIEdNTUdSX1NBUCwKKyAgICBLUEFMVl9TQVAsCisgICAgS1BBTFZfVVNFUl9TRU5TSVRJVkVfU0FQLAorICAgIExISUZfU0FQLAorTU9EVUxFX1NBUF9FTkQoU0FQX0lEX01XX0NPREVfVEFJTCkKKwkgICAKKyNlbmRpZiAgLyogTVdfU0FQX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3NhcF9yYW5nZS5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc2FwX3JhbmdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA3ZTI5NAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3NhcF9yYW5nZS5oCkBAIC0wLDAgKzEsNDYgQEAKKyNpZm5kZWYgU0FQX1JBTkdFX0gKKyNkZWZpbmUgU0FQX1JBTkdFX0gKKwordHlwZWRlZiBlbnVtIHsKKyAgICBTQVBfSURfWFhYX0NPREVfQkFTRSA9IDAsCQorCisgICAgU0FQX0lEX1NWQ19DT0RFX0JFR0lOID0gU0FQX0lEX1hYWF9DT0RFX0JBU0UsIFNBUF9JRF9TVkNfQ09ERV9UQUlMID0gU0FQX0lEX1NWQ19DT0RFX0JFR0lOICsgNjAsCisKKyAgICBTQVBfSURfTURfQ09ERV9CRUdJTiwgU0FQX0lEX01EX0NPREVfVEFJTCA9IFNBUF9JRF9NRF9DT0RFX0JFR0lOICsgMjUwICsgMjUwICsgMjUwICsgMjAwICsgMzUwICsgNDAsLyogKzI1MCBmb3IgTFRFIE1ELCArIDI1MCBmb3IgOTEsICsyMDAgZm9yIEMySywgKzI1MCBmb3IgOTcgKyA0MCBmb3IgSVBDIGFkYXB0ZXIqLyAKKworICAgIFNBUF9JRF9NRF9TVkNfQ09ERV9CRUdJTiwgU0FQX0lEX01EX1NWQ19DT0RFX1RBSUwgPSBTQVBfSURfTURfU1ZDX0NPREVfQkVHSU4gKyAyMCwKKworICAgIFNBUF9JRF9NRF9EUlZfQ09ERV9CRUdJTiwgU0FQX0lEX01EX0RSVl9DT0RFX1RBSUwgPSBTQVBfSURfTURfRFJWX0NPREVfQkVHSU4gKyAzMCwKKworICAgIFNBUF9JRF9NRF9NTUlfQ09ERV9CRUdJTiwgU0FQX0lEX01EX01NSV9DT0RFX1RBSUwgPSBTQVBfSURfTURfTU1JX0NPREVfQkVHSU4gKyA0MCwKKworICAgIFNBUF9JRF9NRF9NV19DT0RFX0JFR0lOLCBTQVBfSURfTURfTVdfQ09ERV9UQUlMID0gU0FQX0lEX01EX01XX0NPREVfQkVHSU4gKyAxMDAsCisgICAgCisgICAgU0FQX0lEX01XX0NPREVfQkVHSU4sIFNBUF9JRF9NV19DT0RFX1RBSUwgPSBTQVBfSURfTVdfQ09ERV9CRUdJTiArIDUwICsgMTAwLCAvKiArMTAwIGZvciBMVEUgTVcgKi8KKyAgICAKKyAgICBTQVBfSURfRFJWX0NPREVfQkVHSU4sIFNBUF9JRF9EUlZfQ09ERV9UQUlMID0gU0FQX0lEX0RSVl9DT0RFX0JFR0lOICsgMjAwLAorCisgICAgLy8gTEFTVF9TQVBfQ09ERSBpcyBkZWZpbmVkIGF0IHRoaXMgc2NvcGUsIHNvIHBsZWFzZSBrZWVwIGl0IGF0IGxhc3QuCisgICAgU0FQX0lEX1NZU1NFUlZJQ0VfQ09ERV9CRUdJTiwgU0FQX0lEX1NZU1NFUlZJQ0VfQ09ERV9UQUlMID0gU0FQX0lEX1NZU1NFUlZJQ0VfQ09ERV9CRUdJTiArIDEwLAorCisgICAgU0FQX0lEX0NPREVfRU5ELAorfVNBUF9JRF9UWVBFOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKiogIFNob3VsZCBub3QgY2hhbmdlIHRoZSBmb2xsb3dpbmcgTUFDUk9TIGRlZmluZXMgICAgICoqKioqKioqKioqKioKKyoqKioqKioqKiogIFNob3VsZCBub3QgZGVmaW5lIFNBUCBJRCB3aXRoICJTQVBfVEFHXyIgICAgICAgICAgICAgICoqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZmRlZiBHRU5fRk9SX1BDCisgICAgI2RlZmluZSBNT0RVTEVfU0FQX0JFR0lOKEJFR0lOX1BPUykgIHR5cGVkZWYgZW51bSBfX2NnZW5fc2FwX3R5cGVfaWRfIyNCRUdJTl9QT1N7U0FQX1RBR18jI0JFR0lOX1BPUyA9IEJFR0lOX1BPUywKKyAgICAjZGVmaW5lIE1PRFVMRV9TQVBfRU5EKEVORF9QT1MpIFNBUF9JRF9DR0VOX1BBUlNFX0xBU1RfSUQ9RU5EX1BPUyB9X2NnZW5fc2FwX3R5cGVfaWRfIyNFTkRfUE9TOworI2Vsc2UKKyAgICAjZGVmaW5lIE1PRFVMRV9TQVBfQkVHSU4oQkVHSU5fUE9TKSAgIGVudW0geyBTQVBfVEFHXyMjQkVHSU5fUE9TID0gQkVHSU5fUE9TLAorICAgICNkZWZpbmUgTU9EVUxFX1NBUF9FTkQoRU5EX1BPUykgICAgIH07ICAgIAorI2VuZGlmIC8qIEdFTl9GT1JfUEMgKi8KKworI2RlZmluZSBJTkxJTkVfQ1VTVE9NX0lMTV9GTEFHX1NBUCAweDQwMDAgIC8qIGJpdDE0IGlzIHVzZWQgYnkgaW5saW5lIElMTSB0aGF0IHVzZSBjdXN0b20gbG9nZ2luZyAqLworI2RlZmluZSBJTkxJTkVfSUxNX0ZMQUdfU0FQIDB4ODAwMCAgLyogYml0MTUgaXMgdXNlZCBieSBpbmxpbmUgSUxNICovCisjZGVmaW5lIFJFU0VSVkVfRk9SX0lOTElORV9JTE1fU0FQIDB4RkZGIC8qIElOTElORV9JTE1fU0FQIGlzIGhhcmQtZGVmaW5lZCwgaXQgY2FuIGJlIGVubGFyZ2VkIG9uY2UgU0FQX0lEX0NPREVfRU5EIGlzIGxhcmdlciB0aGFuIGl0ICovCit0eXBlZGVmIHVuc2lnbmVkIGludCBzYXBfaWRfYm91bmRhcnlfY2hlY2sxWyhSRVNFUlZFX0ZPUl9JTkxJTkVfSUxNX1NBUC0xKSAtIFNBUF9JRF9DT0RFX0VORF07CisKKyNlbmRpZiAvKiBTQVBfUkFOR0VfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvc3J2X21vZGlkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9zcnZfbW9kaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWM0OWMyCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3J2X21vZGlkLmgKQEAgLTAsMCArMSwxODggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIHNydl9tb2RpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1hdWlfU29mdHdhcmUKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG1vZHVsZSBpbmRleCBlbnVtIGJ1aWx0LgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIFNFUlZJQ0VfTU9EVUxFX0lEX0gKKyNkZWZpbmUgU0VSVklDRV9NT0RVTEVfSURfSAorCisjaW5jbHVkZSAibW9kdWxlX2lkX3JhbmdlLmgiCisKKy8qIHVuZGVmIHVudXNlZCBtYWNybyAqLworI3VuZGVmIFRBU0tfUFJJT1JJVFlfTUFDUk8KKyN1bmRlZiB0YXNrX25hbWUKKyN1bmRlZiB0YXNrX3F1ZXVlX25hbWUKKyN1bmRlZiB0YXNrX3ByaW9yaXR5CisjdW5kZWYgdGFza19zdGFja19zaXplCisjdW5kZWYgbnVsbF90YXNrX2NyZWF0ZV9lbnRyeQorI3VuZGVmIGNvbXBhdGlibGVfY29kZQorI3VuZGVmIHRhc2tfY3JlYXRlX2Z1bmN0aW9uCisjdW5kZWYgdGFza19zdGFja19pbnRlcm5hbFJBTQorI3VuZGVmIHRhc2tfZXh0ZXJuYWxfcXVldWVfc2l6ZQorI3VuZGVmIHRhc2tfaW50ZXJuYWxfcXVldWVfc2l6ZQorI3VuZGVmIHRhc2tfYm9vdF9tb2RlCisjdW5kZWYgdGFza19hZmZpbml0eV9ncm91cAorI3VuZGVmIHRhc2tfYWZmaW5pdHlfZ3JvdXBfaWQKKyN1bmRlZiBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNCisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorI3VuZGVmIHRhc2tfaW5kZXgKKyN1bmRlZiB0YXNrX21vZHVsZV9tYXAKKworLyogZGVmaW5lIGFsbCB1bnVzZWQgbWFjcm9zIGFzIGVtcHR5ICovCisjZGVmaW5lIHRhc2tfbmFtZShwMSkKKyNkZWZpbmUgdGFza19xdWV1ZV9uYW1lKHAxKQorI2RlZmluZSB0YXNrX3ByaW9yaXR5KHAxLHAyKQorI2RlZmluZSB0YXNrX3N0YWNrX3NpemUocDEpCisjZGVmaW5lIG51bGxfdGFza19jcmVhdGVfZW50cnkocDEpCisjZGVmaW5lIHRhc2tfY3JlYXRlX2Z1bmN0aW9uKHAxKQorI2RlZmluZSB0YXNrX3N0YWNrX2ludGVybmFsUkFNKHAxKQorI2RlZmluZSB0YXNrX2V4dGVybmFsX3F1ZXVlX3NpemUocDEpCisjZGVmaW5lIHRhc2tfaW50ZXJuYWxfcXVldWVfc2l6ZShwMSkKKyNkZWZpbmUgdGFza19ib290X21vZGUocDEpCisjZGVmaW5lIHRhc2tfYWZmaW5pdHlfZ3JvdXAocDEpCisjZGVmaW5lIHRhc2tfYWZmaW5pdHlfZ3JvdXBfaWQocDEpCisjZGVmaW5lIHRhc2tfaW5kZXgocDEpCisKKy8qIGRlZmluZSB0aGUgbWFjcm8gd2hpY2ggcHJvdmlkZXMgdGhlIE1PRCBJRCovCisjZGVmaW5lIHRhc2tfbW9kdWxlX21hcCh0YXNrLCBtb2QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZCwKKyNkZWZpbmUgY29tcGF0aWJsZV9jb2RlKGV4cHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwciwKKyNkZWZpbmUgTU9EVUxFX0lEX01BUF9UT19OVUxMX1RBU0tfQ0FOX0FMTE9DQVRFX0lMTShtb2QpICAgICAgICAgICAgbW9kLAorI2RlZmluZSBNT0RVTEVfSURfRk9SX1BSSU5UX1RSQUNFKG1vZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2QsCisKKworTU9EVUxFX01PRF9CRUdJTihNT0RfSURfU1JWX0NPREVfQkVHSU4pIAorICAgIE1PRF9OSUwgPSBNT0RfSURfU1JWX0NPREVfQkVHSU4sIAorICAgICNpbmNsdWRlICJzcnZfdGFza19jb25maWcuaCIKKy8qIGN1c3RvbWVyIGFkZCBtb2R1bGUgaWQgYXQgaGVyZSAqLworTU9EVUxFX01PRF9FTkQoTU9EX0lEX1NSVl9DT0RFX1RBSUwpCisKKyAgICAKKy8qIGNsZWFuIHVudXNlIGRlZmluYXRpb24gKi8KKyN1bmRlZiB0YXNrX21vZHVsZV9tYXAKKyN1bmRlZiBjb21wYXRpYmxlX2NvZGUKKyN1bmRlZiBNT0RVTEVfSURfTUFQX1RPX05VTExfVEFTS19DQU5fQUxMT0NBVEVfSUxNCisjdW5kZWYgTU9EVUxFX0lEX0ZPUl9QUklOVF9UUkFDRQorCisKKyNlbmRpZiAvKiBTRVJWSUNFX01PRFVMRV9JRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvY2NjaV9pcGNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9jY2NpX2lwY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiM2U1OWIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvY2NjaV9pcGNfbXNnaWQuaApAQCAtMCwwICsxLDE0MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgY2NjaV9pcGNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgQ0NDSV9JUEMgbXNnaWQgZGVmaW5lLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMTEgMjkgMjAxOSBjaGVuZy1kYW8ubGVlCisgKiBbTU9MWTAwNDQ3ODM1XSBbUGV0cnVzXSBbTUNJRl0gRmVhdHVyZSBjaGVjay1pbgorICogCURhdGEgcGF0aCBwYXRjaCBiYWNrIGZyb20gMTAwMS5ERVYgKFNXUkQpCisgKgorICogMTEgMDQgMjAxOSBjaGVuZy1kYW8ubGVlCisgKiBbTU9MWTAwNDQ3ODM1XSBbUGV0cnVzXSBbTUNJRl0gRmVhdHVyZSBjaGVjay1pbgorICogW01DSUZdIGludGVyZmFjZQorICoKKyAqIDA3IDE4IDIwMTkgYWN0b3J5Lm91CisgKiBbTU9MWTAwNDIyNTc5XSBbTUREUF0gRFBGTSBwb3J0aW5nIHRvIFZNT0xZCisgKiBbVk1PTFldW09BXSBzdXBwb3J0IE1ERFAgJiByZW5hbWUgdG8gRFBGTQorICoKKyAqIDA3IDExIDIwMTcgY2hpZW4taHVpLmx1CisgKiBbTU9MWTAwMjYzMDYwXSBbQ0NDSV9JUENdIGNoYW5nZSBDQ0NJIElQQyBtZXNzYWdlIElEIGZpbGUgZm9ybWF0CisgKiBbQ0NDSSBJUENdIGNoYW5nZSBtZXNzYWdlIElEIGNvbmZpZ3VyYXRpb24gZm9ybWF0LgorICoKKyAqIDA3IDEwIDIwMTcgY2hpZW4taHVpLmx1CisgKiBbTU9MWTAwMjYzMDYwXSBbQ0NDSV9JUENdIGNoYW5nZSBDQ0NJIElQQyBtZXNzYWdlIElEIGZpbGUgZm9ybWF0CisgKiBbQ0NDSSBJUENdIGNoYW5nZSBtZXNzYWdlIElEIGNvbmZpZ3VyYXRpb24gZm9ybWF0LgorICoKKyAqIDA0IDA1IDIwMTcgY2hpZW4taHVpLmx1CisgKiBbTU9MWTAwMjM5NjExXSBbQ0NDSV9JUENdW0NDQ0ldIGFkZCBDQ0NJIElQQyBhbmQgcnVudGltZSBmZWF0dXJlCisgKiBbQ0NDSV9JUENdW0NDQ0ldIGFkZCBDQ0NJIElQQyBjb25maWcgZm9yIFdJUEMuCisgKgorICogMDQgMDUgMjAxNyBjaGllbi1odWkubHUKKyAqIFtNT0xZMDAyMzk2MTFdIFtDQ0NJX0lQQ11bQ0NDSV0gYWRkIENDQ0kgSVBDIGFuZCBydW50aW1lIGZlYXR1cmUKKyAqIFtDQ0NJXVtDQ0NJX0lQQ10gYWRkIHJ1bnRpbWUgZmVhdHVyZSBhbmQgSVBDIGNvbmZpZyBmb3IgTURULgorICoKKyAqIDA2IDA4IDIwMTUgaHNpbi1qdW4udGFuZworICogW01PTFkwMDExNzg3M10gW0NDQ0kgSVBDXSBMNCBtc2cgaWQgcmVkdWN0aW9uCisgKiBbQ0NDSSBJUENdIEw0IG1zZyBpZCByZWR1Y3Rpb24KKyAqCisgKiAxMSAyNSAyMDE0IGNzLmh1YW5nCisgKiBbTU9MWTAwMDg0MjU4XSBbTVQ2Nzk1XVtNb2RlbV1bRmVhdHVyZV1QbGVhc2Ugc3VwcG9ydCBHYXJiYWdlIGZpbHRlciBmcm9tIG5ldHdvcmsKKyAqIFtDQ0NJIElQQ10gQWRkIENDQ0kgSVBDIG1zZ2lkIGZvciBnYXJiYWdlIGZpbHRlcgorICoKKyAqIFtNT0xZMDAwODQyNThdIFtNVDY3OTVdW01vZGVtXVtGZWF0dXJlXVBsZWFzZSBzdXBwb3J0IEdhcmJhZ2UgZmlsdGVyIGZyb20gbmV0d29yaworICogW0NDQ0kgSVBDXSBBZGQgQ0NDSSBJUEMgbXNnaWQgZm9yIGdhcmJhZ2UgZmlsdGVyCisgKgorICogMTEgMTIgMjAxNCBjcy5odWFuZworICogW01PTFkwMDA4NDA5MV0gW01UNjc5NV0gW1NZU1RFTSBTRVJWSUNFXSBbQ0xJQl0gcG9ydGluZyBDIHRpbWUgZnVuY3Rpb24gdG8gTUQKKyAqIFtDQ0NJIElQQ10gU3VwcG9ydCBDbGlidGltZSBmZWF0dXJlCisgKgorICogMTEgMDEgMjAxMyBhcC53YW5nCisgKiBbTU9MWTAwMDQ0NzIxXSBbQ0NDSV9JUENdIE1vZGlmeSBtc2dfaWQgZm9yIElEQyBpbnRlZ3JhdGlvbgorICogCWNjY2lfaXBjIG1zZ19pZCBmb3IgSURDCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjaWZuZGVmIF9fQ0NDSV9JUENfTVNHSURfSF9fCisjZGVmaW5lIF9fQ0NDSV9JUENfTVNHSURfSF9fCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX0NDQ0lfTVNHX0NPREVfQkVHSU4pIAorICAgIE1TR19JRF9JUENfSU5WQUxJRF9UWVBFID0gTVNHX0lEX0NDQ0lfTVNHX0NPREVfQkVHSU4sCisgICAgTVNHX0lEX0lQQ19MNENfSU5WQUxJRCA9IE1TR19JRF9DQ0NJX01TR19DT0RFX0JFR0lOLAorICAgICNpbmNsdWRlICJsNF9pcGNfbXNnaWRfc291cmNlLmgiCisgICAgTVNHX0lEX0lQQ19MNENfRU5ELAorICAgIE1TR19JRF9JUENfRUwxX0lOVkFMSUQgPSBNU0dfSURfSVBDX0w0Q19JTlZBTElEICsgMHg0MCwKKyAgICAjaW5jbHVkZSAiZWwxX2lwY19tc2dpZF9zb3VyY2UuaCIKKyAgICBNU0dfSURfSVBDX0VMMV9FTkQsCisgICAgTVNHX0lEX0lQQ19DQ0NJSVBDX0lOVkFMSUQgPSBNU0dfSURfSVBDX0VMMV9JTlZBTElEICsgMHgyMCwKKyAgICBNU0dfSURfQ0NDSUlQQ19DTElCX1RJTUVfUkVRLCAvLyBmb3IgY2xpYiB0aW1lIG1zZyBpZAorICAgIE1TR19JRF9DQ0NJSVBDX0FQX01EX1VUX01TRywKKyAgICBNU0dfSURfSVBDX0NDQ0lJUENfRU5ELAorICAgIE1TR19JRF9JUENfSVBDT1JFX0lOVkFMSUQgPSBNU0dfSURfSVBDX0NDQ0lJUENfSU5WQUxJRCArIDB4MTAsCisgICAgI2luY2x1ZGUgInBmbV9tc2dpZF9zb3VyY2UuaCIKKyAgICBNU0dfSURfSVBDX0lQQ09SRV9FTkQsCisgICAgTVNHX0lEX0lQQ19EUEZNX0lOVkFMSUQgPSBNU0dfSURfSVBDX0lQQ09SRV9JTlZBTElEICsgMHg4LAorICAgICNpbmNsdWRlICJkcGZtX21zZ2lkX3NvdXJjZS5oIgorICAgIE1TR19JRF9JUENfRFBGTV9FTkQsCisgICAgTVNHX0lEX0lQQ19VRlBNX0lOVkFMSUQgPSBNU0dfSURfSVBDX0RQRk1fSU5WQUxJRCArIDB4OCwKKyAgICAjaW5jbHVkZSAidWZwbV9tc2dpZF9zb3VyY2UuaCIKKyAgICBNU0dfSURfSVBDX1VGUE1fRU5ELAorICAgIE1TR19JRF9JUENfSVdMQU5fSU5WQUxJRCA9IE1TR19JRF9JUENfVUZQTV9JTlZBTElEICsgMHgxOCwKKyAgICAjaW5jbHVkZSAiaXdsYW5faXBjX21zZ2lkX3NvdXJjZS5oIgorICAgIE1TR19JRF9JUENfSVdMQU5fRU5ELAorICAgIE1TR19JRF9JUENfTkVYVF9ORVdfVVNFUl9JTlZBTElEID0gTVNHX0lEX0lQQ19JV0xBTl9JTlZBTElEICsgMHgxMCwKKyAgICBNU0dfSURfSVBDX0VORCwKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9DQ0NJX01TR19DT0RFX1RBSUwpCisKKyNlbmRpZiAgLyogIV9fQ0NDSV9JUENfTVNHSURfSF9fICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvY3J5cHRvX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvY3J5cHRvX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlmNDEyYQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9jcnlwdG9fbXNnaWQuaApAQCAtMCwwICsxLDEyMCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgY3J5cHRvX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVU1PTFlFCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgQ1JZUFRPIG1zZ2lkIGRlZmluZS4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDA4IDA4IDIwMTkgZGlndmlqYXkuYXJ5YQorICogW01PTFkwMDQwMTIwOV0gW1ZNT0xZXVN1Ym1hcmluZSBDcnlwdG8gbW9kdWxlIGNoZWNraW4KKyAqIAkKKyAqIAlQYWNoYmFjayBwb3N0IE0yIGNoYW5nZXMgdG8gVk1PTFkKKyAqCisgKiAwNyAwOCAyMDE5IGRpZ3ZpamF5LmFyeWEKKyAqIFtNT0xZMDA0MDEyMDldIFtWTU9MWV1TdWJtYXJpbmUgQ3J5cHRvIG1vZHVsZSBjaGVja2luCisgKiAJCisgKiAJW00yXSBDcnlwdG8gcGF0Y2hiYWNrIHRvIFZNT0xZCisgKgorICogMTIgMTYgMjAxOCBpbmRlcnByZWV0LnNpbmdoCisgKiBbTU9MWTAwMzcwNDYyXSBHZW45NyBTdWJtYXJpbmUgQ3J5cHRvIG1vZHVsZSBjaGVja2luCisgKiAJCisgKiAJQXN5bmMgaW50ZXJmYWNlLgorICoKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjaWZuZGVmIF9fQ1JZUFRPX01TR0lEX0hfXworI2RlZmluZSBfX0NSWVBUT19NU0dJRF9IX18KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfQ1JZUFRPX0NPREVfQkVHSU4pCisKKy8qIEZST006ICAqLworICAgIE1TR19JRF9DUlBUQlJHX1JBTkdFX0JFR0lOID0gTVNHX0lEX0NSWVBUT19DT0RFX0JFR0lOLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19DSVBIRVJfRU5DUllQVF9SRVEsCisgICAgICAgIE1TR19JRF9DUlBUQlJHX0NJUEhFUl9FTkNSWVBUX0NORiwKKyAgICAgICAgTVNHX0lEX0NSUFRCUkdfQ0lQSEVSX0RFQ1JZUFRfUkVRLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19DSVBIRVJfREVDUllQVF9DTkYsCisgICAgICAgIE1TR19JRF9DUlBUQlJHX0dFTkVSQVRFX0hNQUNfUkVRLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19HRU5FUkFURV9ITUFDX0NORiwKKyAgICAgICAgTVNHX0lEX0NSUFRCUkdfR0VORVJBVEVfQ01BQ19SRVEsCisgICAgICAgIE1TR19JRF9DUlBUQlJHX0dFTkVSQVRFX0NNQUNfQ05GLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19HRU5FUkFURV9QUk5fUkVRLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19HRU5FUkFURV9QUk5fQ05GLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19WRVJJRllfU0lHTkFUVVJFX1JFUSwKKyAgICAgICAgTVNHX0lEX0NSUFRCUkdfVkVSSUZZX1NJR05BVFVSRV9DTkYsCisgICAgICAgIE1TR19JRF9DUlBUQlJHX0dFTkVSQVRFX0RIX0tFWV9SRVEsCisgICAgICAgIE1TR19JRF9DUlBUQlJHX0dFTkVSQVRFX0RIX0tFWV9DTkYsCisgICAgICAgIE1TR19JRF9DUlBUQlJHX0NPTVBVVEVfREhfU0VDUkVUX1JFUSwKKyAgICAgICAgTVNHX0lEX0NSUFRCUkdfQ09NUFVURV9ESF9TRUNSRVRfQ05GLAorICAgICAgICBNU0dfSURfQ1JQVEJSR19BQk9SVF9ESF9LRVlfSU5ELAorCisvKiBUTzogICovCisgICAgTVNHX0lEX0NSUFRCUkdfUkFOR0VfRU5ELAorCQorLyogRm9yIGFkZGl0aW9uYWwgaW50ZXJuYWwgY3J5cHRvIHRhc2sgZm9yIHNsb3cgb3BlcmF0aW9ucyAqLworLyogRlJPTTogKi8gICAgCisgICAgTVNHX0lEX0NSWVBUT19JTlRFUk5BTF9SQU5HRV9CRUdJTiA9IE1TR19JRF9DUlBUQlJHX1JBTkdFX0VORCwKKyAgICBNU0dfSURfQ1JZUFRPX0lOVEVSTkFMX0dFTkVSQVRFX0RIX0tFWV9SRVEsCisgICAgTVNHX0lEX0NSWVBUT19JTlRFUk5BTF9DT01QVVRFX0RIX1NFQ1JFVF9SRVEsCisgICAgTVNHX0lEX0NSWVBUT19JTlRFUk5BTF9SQU5HRV9FTkQsCisKKy8qIEZPUiBDQUwgVFAgKi8KKyAgICBNU0dfSURfQ0FMVFBfVEVTVF9SVU5fUkVRLAorICAgIE1TR19JRF9DQUxUUF9URVNUX1JVTl9DTkYsCisKK01PRFVMRV9NU0dfRU5EKE1TR19JRF9DUllQVE9fQ09ERV9UQUlMKQorCisjZW5kaWYgIC8qICFfX1RDUElQX01TR0lEX0hfXyAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2N1c3RvbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2N1c3RvbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNTFjODIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvY3VzdG9tX21zZ2lkLmgKQEAgLTAsMCArMSw3OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgY3VzdG9tX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVk1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBjdXN0b20gbXNnaWQgZGVmaW5lLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqICAgCisgKgorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVXBwZXIgdGhpcyBsaW5lLCB0aGlzIHBhcnQgaXMgY29udHJvbGxlZCBieSBQVkNTIFZNLiBETyBOT1QgTU9ESUZZISEKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2lmbmRlZiBfX0NVU1RPTV9NU0dJRF9IX18KKyNkZWZpbmUgX19DVVNUT01fTVNHSURfSF9fCisKKyNpZmRlZiBfX1RDMDFfXyAKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9DVVNUT01fQ09ERV9CRUdJTiApCitNU0dfSURfQ1VTVE9NMV9DVVNUT00yICA9ICBNU0dfSURfQ1VTVE9NX0NPREVfQkVHSU4sCitNU0dfSURfQ1VTVE9NMl9DVVNUT00xLAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9DVVNUT01fQ09ERV9UQUlMICkKKyNlbmRpZgorCisjZW5kaWYgIC8qICFfX0NVU1RPTV9NU0dJRF9IX18gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9kbnNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9kbnNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzFkYmIyCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2Ruc19tc2dpZC5oCkBAIC0wLDAgKzEsODIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxMgorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGRuc19tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIFVNT0xZRQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIE1vZGVtIEROUyBtZXNzYWdlIElEIGRlZmluaXRpb25zLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjaWZuZGVmIF9fRE5TX01TR0lEX0hfXworI2RlZmluZSBfX0ROU19NU0dJRF9IX18KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9ETlNfQ09ERV9CRUdJTikKKyAgICBNU0dfSURfRE5TX01TR19JRF9CRUdJTiA9IE1TR19JRF9ETlNfQ09ERV9CRUdJTiwKKworICAgIC8qIHVzZXIgLS0+IEROUyAqLworICAgIE1TR19JRF9ETlNfR0VUX0hPU1RfQllfTkFNRV9SRVEsCisgICAgTVNHX0lEX0ROU19HRVRfSE9TVF9CWV9OQVBUUl9SRVEsCisgICAgTVNHX0lEX0ROU19HRVRfSE9TVF9CWV9TUlZfUkVRLAorCisgICAgLyogRE5TIC0tPiB1c2VyICovCisgICAgTVNHX0lEX0ROU19HRVRfSE9TVF9CWV9OQU1FX0NORiwKKyAgICBNU0dfSURfRE5TX0dFVF9IT1NUX0JZX05BUFRSX0NORiwKKyAgICBNU0dfSURfRE5TX0dFVF9IT1NUX0JZX1NSVl9DTkYsCisKKyAgICBNU0dfSURfRE5TX0NPREVfRU5ELAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfRE5TX0NPREVfVEFJTCkKKworI2VuZGlmICAvKiBfX0ROU19NU0dJRF9IX18gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9ldGhzdmNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9ldGhzdmNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTdiZDcwCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2V0aHN2Y19tc2dpZC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAxOQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLgorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIGV0aHNlcnZpY2VfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgRXRoZXJuZXQgU2VydmljZSBtZXNzYWdlIElEIGRlZmluaXRpb25zLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKyNpZm5kZWYgX19FVEhTVkNfTVNHSURfSF9fCisjZGVmaW5lIF9fRVRIU1ZDX01TR0lEX0hfXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9FVEhTVkNfQ09ERV9CRUdJTikKKworICAgIE1TR19JRF9NQ0lGX0VUSFNWQ19UWF9SRVEsCisgICAgTVNHX0lEX01DSUZfRVRIU1ZDX1RYX1JFQURZX0lORCwKKworICAgIE1TR19JRF9NQ0lGX0VUSFNWQ19XTEFOX0lEWF9NQVBfSU5ELAorCisgICAgTVNHX0lEX1NUS0JSR19FVEhTVkNfQ09ORklHX1JFUSwKKyAgICBNU0dfSURfU1RLQlJHX0VUSFNWQ19DT05GSUdfQ05GLAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfRVRIU1ZDX0NPREVfVEFJTCkKKworI2VuZGlmICAvKiBfX0VUSFNWQ19NU0dJRF9IX18gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9mc19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2ZzX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjM2FiYQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9mc19tc2dpZC5oCkBAIC0wLDAgKzEsMTI1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBmc19zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNYXVpX1NvZnR3YXJlCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgRmlsZSBTeXN0ZW0gVGFzayByZWxhdGVkIG1lc3NhZ2UgaWRlbnRpdHkgZGVmaW5pdGlvbgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhCisgKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBGU19NU0dJRF9ICisjZGVmaW5lIEZTX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0ZTX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9GU19TVEFSVFVQX1JFUSA9IE1TR19JRF9GU19DT0RFX0JFR0lOLAorCisgICAgLy8tLS0gU2VydmljZSBSZXF1ZXN0IC0tLQorICAgIE1TR19JRF9GU19TRVJWSUNFX1JFUV9CRUdJTiA9IE1TR19JRF9GU19TVEFSVFVQX1JFUSwKKworICAgIE1TR19JRF9GU19BQk9SVF9SRVEsCisgICAgTVNHX0lEX0ZTX09QRU5fUkVRLAorICAgIE1TR19JRF9GU19HRVRfRk9MREVSX1NJWkVfUkVRLAorICAgIE1TR19JRF9GU19XUklURV9SRVEsCisgICAgTVNHX0lEX0ZTX0RFTEVURV9SRVEsCisgICAgTVNHX0lEX0ZTX1JFQURfUkVRLAorICAgIE1TR19JRF9GU19TRUVLX1JFUSwKKyAgICBNU0dfSURfRlNfRklORF9GSVJTVF9SRVEsCisgICAgTVNHX0lEX0ZTX0ZJTkRfRklSU1RfTl9SRVEsCisKKyAgICBNU0dfSURfRlNfU0VSVklDRV9SRVFfRU5EICAgPSBNU0dfSURfRlNfRklORF9GSVJTVF9OX1JFUSwKKworICAgIC8vLS0tIFNlcnZpY2UgUmVzcG9uc2UgLS0tCisgICAgTVNHX0lEX0ZTX1NFUlZJQ0VfUlNQX0JFR0lOID0gTVNHX0lEX0ZTX1NFUlZJQ0VfUkVRX0VORCArIDEsCisKKyAgICBNU0dfSURfRlNfT1BFTl9SU1AsCisgICAgTVNHX0lEX0ZTX0dFVF9GT0xERVJfU0laRV9SU1AsCisgICAgTVNHX0lEX0ZTX1dSSVRFX1JTUCwKKyAgICBNU0dfSURfRlNfREVMRVRFX1JTUCwKKyAgICBNU0dfSURfRlNfUkVBRF9SU1AsCisgICAgTVNHX0lEX0ZTX1NFRUtfUlNQLAorICAgIE1TR19JRF9GU19GSU5EX0ZJUlNUX1JTUCwKKyAgICBNU0dfSURfRlNfRklORF9GSVJTVF9OX1JTUCwKKworICAgIE1TR19JRF9GU19TRVJWSUNFX1JTUF9FTkQgICA9IE1TR19JRF9GU19GSU5EX0ZJUlNUX05fUlNQLAorCisgICAgTVNHX0lEX0ZTX0NPREVfRU5ELAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9GU19DT0RFX1RBSUwgKQorI2VuZGlmICAvL0ZTX01TR0lEX0gJCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvaGlmX2lwY19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2hpZl9pcGNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2Q2ZThjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2hpZl9pcGNfbXNnaWQuaApAQCAtMCwwICsxIEBACitNU0dfSURfQ0NDSV9BUF9NRF9DVElNRV9JTkQsCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvaGlmX3N2Y19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2hpZl9zdmNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2VlZDEzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2hpZl9zdmNfbXNnaWQuaApAQCAtMCwwICsxLDE3MiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBoaWZfc3ZjX21zZ2lkLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgVEFUQUtBCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgSElGIHNlcnZpY2UgcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgICAgICBISVNUT1JZCisgKiBCZWxvdyB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVcHBlciB0aGlzIGxpbmUsIHRoaXMgcGFydCBpcyBjb250cm9sbGVkIGJ5IFBWQ1MgVk0uIERPIE5PVCBNT0RJRlkhISAKKyAqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX0lOQ19ISUZfU1ZDX01TR0lEX0gKKyNkZWZpbmUgX19JTkNfSElGX1NWQ19NU0dJRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9ISUZfU1ZDX0NPREVfQkVHSU4gKQorCisgICAgTVNHX0lEX0hNVV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9ITVVfQ09ERV9UQUlMID0gTVNHX0lEX0hNVV9DT0RFX0JFR0lOICsgMjAsCisJCisgICAgTVNHX0lEX0NDQ0lTUlZfQ09ERV9CRUdJTiwKKwkvKiBMMUNvcmUgLT4gUGNvcmUgLT4gQVAgKi8KKwlNU0dfSURfQ0NDSV9TWVNNU0dfSU5ELAorICAgIE1TR19JRF9DQ0NJX0lQQ19JTkQsCisgICAgTVNHX0lEX0NDQ0lfSVBDX1JTUCwKKwlNU0dfSURfQ0NDSV9SUENfSU5ELAorICAgIE1TR19JRF9DQ0NJX1JQQ19SU1AsCisgICAgTVNHX0lEX0NDQ0lfQ1RSTF9SRUFEWV9UT19SRUFEX0lORCwKKyAgICBNU0dfSURfQ0NDSV9DVFJMX1JFQURZX1RPX1dSSVRFX0lORCwKKworCS8qIEFQIC0+IFBDb3JlIC0+IEwxQ29yZSAqLworCS8vTVNHX0lEX0FQX0wxQ19DQ0NJSVBDX1JFUSwgLy8gQVAgdG8gTUQgaXBjIGlzIHNlbmQgYnkgQ0NJTE0KKyAgICAKKwkvKiBSZXNlcnZlZCBmb3IgTDFDb3JlIENDQ0kgU2VydmljZSBJVCAqLworICAgIE1TR19JRF9DQ0NJX0lUX1JQQ19SRVEsCisgICAgTVNHX0lEX0NDQ0lfSVRfUlBDX0NORiwKKwlNU0dfSURfQ0NDSV9JVF9JUENfUkVRLAorICAgIE1TR19JRF9DQ0NJX0lUX0lQQ19DTkYsCisgICAgTVNHX0lEX0NDQ0lfSVRfU1lTTVNHX1JFUSwKKyAgICBNU0dfSURfQ0NDSV9JVF9TWVNNU0dfQ05GLAorICAgIE1TR19JRF9DQ0NJX0lUX0NDQ0lGU19JVF9JTkQsCisgICAgTVNHX0lEX0NDQ0lTUlZfQ09ERV9UQUlMID0gTVNHX0lEX0NDQ0lTUlZfQ09ERV9CRUdJTiArIDIwLAorCisgICAgTVNHX0lEX0NDQ0lfQ09ERV9CRUdJTiwKKyAgICBNU0dfSURfQ0NDSV9ERUJVR19RVUVSWV9NRF9TVEFUVVMsCisgICAgTVNHX0lEX0NDQ0lfU0hNX0JNX1BPTExJTkdfTk9USUZZLAorICAgIE1TR19JRF9DQ0NJX1NITV9CTV9SRUNFSVZFX05PVElGWSwKKyAgICBNU0dfSURfQ0NDSV9TSE1fQk1fSE1VX1dSSVRFX05PVElGWSwgLy9mb3IgSVQKKyAgICBNU0dfSURfQ0NDSV9TSE1fQk1fSE1VX0NCX05PVElGWSwgICAgLy9mb3IgSVQKKyAgICBNU0dfSURfQ0NDSV9VVF9XQUtFX0NIX05PVElGWSwgICAgICAgLy9mb3IgTkNDQ0kgVVQKKyAgICBNU0dfSURfQ0NDSV9VVF9TVEFSVF9NVUxUSV9URVNUX0NBU0UsLy9mb3IgTkNDQ0kgVVQKKyAgICBNU0dfSURfQ0NDSV9VVF9TVEFSVF9NVUxUSV9URVNUX0NBU0VfRklOSVNILC8vZm9yIE5DQ0NJIFVUCisgICAgCisgICAgTVNHX0lEX0NDQ0lfVVNSX1VMQ0JfSU5ELCAgICAgICAgICAgIC8vbm90aWZ5IENDQ0lfVVNSIHRvIGRvIFVMIGNhbGxiYWNrCisgICAgTVNHX0lEX0NDQ0lfVVNSX0RMQ0JfSU5ELCAgICAgICAgICAgIC8vbm90aWZ5IENDQ0lfVVNSIHRvIGRvIERMIGNhbGxiYWNrCisgICAgTVNHX0lEX0NDQ0lfQ09ERV9UQUlMID0gTVNHX0lEX0NDQ0lfQ09ERV9CRUdJTiArIDQwLAorCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX0hJRl9TVkNfQ09ERV9UQUlMICkKKworI2VuZGlmIC8qIF9fSU5DX0hJRl9TVkNfTVNHSURfSCAqLwpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL2ludGN0cmxfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9pbnRjdHJsX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY5MzUwNgotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9pbnRjdHJsX21zZ2lkLmgKQEAgLTAsMCArMSw4OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEzCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgaW50Y3RybF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKgkgVU1PTFlFIAorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiBUaGlzIG1vZHVsZSBkZWZpbmVzIHRoZSBtZXNzZ2FlIElEcyBmb3IgSU5UQ1RSTC4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9JTlRDVFJMX01TR19JRF9ICisjZGVmaW5lIF9JTlRDVFJMX01TR19JRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9JTlRDVFJMX0NPREVfQkVHSU4gKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAgICAgICAgPDE+IERlc2l0bmF0aW9uOiBJTlRDVFJMCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgICAgTVNHX0lEX0lOVENUUkxfSU5URVJORVRfSU5GT19SRUdJU1RFUl9SRVEgPSBNU0dfSURfSU5UQ1RSTF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9JTlRDVFJMX0lOVEVSTkVUX0xPQ0tfQUNRVUlSRV9SRVEsCisgICAgTVNHX0lEX0lOVENUUkxfSU5URVJORVRfTE9DS19SRUxFQVNFX1JFUSwKKyAgICBNU0dfSURfSU5UQ1RSTF9JTlRFUk5FVF9JTkZPX1FVRVJZX1JFUSwKKyAgICBNU0dfSURfRERNX0lOVENUUkxfSU5URVJORVRfSU5GT19JTkQsCisKKworICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgKiAgICAgICAgICAgICAgICAgPDI+IERlc2l0bmF0aW9uOiBJTlRDVFJMJ3MgVVNFUgorICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgTVNHX0lEX0lOVENUUkxfSU5URVJORVRfSU5GT19SRUdJU1RFUl9DTkYsCisgICAgTVNHX0lEX0lOVENUUkxfSU5URVJORVRfTE9DS19BQ1FVSVJFX0NORiwKKyAgICBNU0dfSURfSU5UQ1RSTF9JTlRFUk5FVF9MT0NLX1JFTEVBU0VfQ05GLAorICAgIE1TR19JRF9JTlRDVFJMX0lOVEVSTkVUX0lORk9fUVVFUllfQ05GLAorICAgIE1TR19JRF9JTlRDVFJMX0lOVEVSTkVUX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfRERNX0lOVENUUkxfSU5URVJORVRfTE9DS19OT1RJRlksCisgICAgTVNHX0lEX0RETV9JTlRDVFJMX0lOVEVSTkVUX1VOTE9DS19OT1RJRlksCisgICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNU0cgRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAgICBNT0RVTEVfTVNHX0VORCggTVNHX0lEX0lOVENUUkxfQ09ERV9UQUlMICkKKworI2VuZGlmICAvL19JTlRDVFJMX01TR19JRF9ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvaXBzZWNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9pcHNlY19tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMzE2NDEKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvaXBzZWNfbXNnaWQuaApAQCAtMCwwICsxLDc1IEBACisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9JUFNFQ19NU0dJRF9ICisjZGVmaW5lIF9JUFNFQ19NU0dJRF9ICisKKworTU9EVUxFX01TR19CRUdJTiggTVNHX0lEX0lQU0VDX0NPREVfQkVHSU4gKQorICAgIE1TR19JRF9JUFNFQ19NU0dfSURfQkVHSU4gPSBNU0dfSURfSVBTRUNfQ09ERV9CRUdJTiwKKworICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKipEYXRhIFBsYW5lIFVzZXIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgIC8qIFRDUElQIC0tPiBJUFNFQyAqLworICAgIE1TR19JRF9UQ1BJUF9JUFNFQ19FTkNBUF9SRVEsCisgICAgTVNHX0lEX1RDUElQX0lQU0VDX0RFQ0FQX1JFUSwKKworICAgIC8qIElQU0VDIC0tPiBUQ1BJUCAqLworICAgIE1TR19JRF9UQ1BJUF9JUFNFQ19FTkNBUF9SU1AsCisgICAgTVNHX0lEX1RDUElQX0lQU0VDX0RFQ0FQX1JTUCwKKyAgICBNU0dfSURfVENQSVBfSVBTRUNfU0FfQ1JFQVRJT05fSU5ELAorICAgIE1TR19JRF9UQ1BJUF9JUFNFQ19TQV9ERUxFVElPTl9JTkQsCisgICAgTVNHX0lEX1RDUElQX0lQU0VDX01VTFRJX1NBX0RFTEVUSU9OX0lORCwKKworICAgIC8qIFdUVU5ORUwgLS0+IElQU0VDICovCisgICAgTVNHX0lEX1dUVU5ORUxfSVBTRUNfRU5DQVBfUkVRLAorICAgIE1TR19JRF9XVFVOTkVMX0lQU0VDX0RFQ0FQX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfV1RVTk5FTF9QTVRVX1VQREFURV9JTkQsCisKKyAgICAvKiBJUFNFQyAtLT4gV1RVTk5FTCAqLworICAgIE1TR19JRF9XVFVOTkVMX0lQU0VDX0VOQ0FQX1JTUCwKKyAgICBNU0dfSURfV1RVTk5FTF9JUFNFQ19ERUNBUF9SU1AsCisgICAgTVNHX0lEX0lQU0VDX1dUVU5ORUxfUE1UVV9SRUdJU1RFUl9SRVEsCisKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKkNvbnRyb2wgUGxhbmUgVXNlcioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgLyogdXNlciAtLT4gSVBTRUMgKi8KKyAgICBNU0dfSURfSVBTRUNfU0FfQUREX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfU1BfQUREX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfU0FfREVMRVRFX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfU1BfREVMRVRFX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfTVVMVElfU0FfU1BfREVMRVRFX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfU1BfU0FJRF9VUERBVEVfUkVRLAorICAgIE1TR19JRF9JUFNFQ19TQV9UVU5ORUxfVVBEQVRFX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfU1BJX0FMTE9DX1JFUSwKKyAgICBNU0dfSURfSVBTRUNfU1BJX0ZSRUVfUkVRLAorICAgIE1TR19JRF9JUFNFQ19NVUxUSV9TUElfRlJFRV9SRVEsCisKKyAgICAvKiBJUFNFQyAtLT4gdXNlciAqLworICAgIE1TR19JRF9JUFNFQ19TQV9BRERfQ05GLAorICAgIE1TR19JRF9JUFNFQ19TUF9BRERfQ05GLAorICAgIE1TR19JRF9JUFNFQ19TQV9ERUxFVEVfQ05GLAorICAgIE1TR19JRF9JUFNFQ19TUF9ERUxFVEVfQ05GLAorICAgIE1TR19JRF9JUFNFQ19NVUxUSV9TQV9TUF9ERUxFVEVfQ05GLAorICAgIE1TR19JRF9JUFNFQ19TUF9TQUlEX1VQREFURV9DTkYsCisgICAgTVNHX0lEX0lQU0VDX1NBX1RVTk5FTF9VUERBVEVfQ05GLAorICAgIE1TR19JRF9JUFNFQ19SRUtFWV9JTkQsCisgICAgTVNHX0lEX0lQU0VDX1NBX0RFTF9JTkQsCisgICAgTVNHX0lEX0lQU0VDX1NQSV9BTExPQ19DTkYsCisgICAgTVNHX0lEX0lQU0VDX1NQSV9GUkVFX0NORiwKKyAgICBNU0dfSURfSVBTRUNfTVVMVElfU1BJX0ZSRUVfQ05GLAorTVNHX0lEX0lQU0VDX1NQSV9BTExPQ19TVEFSVF9JTkQsCisKKyAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqQVAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgICAgLyogSVBTRUMgPC0tIEFUUCAqLworICAgIE1TR19JRF9JUFNFQ19BVFBfU1BJX0FMTE9DX0NORiwKKyAgICBNU0dfSURfSVBTRUNfQVRQX1NQSV9GUkVFX0NORiwKKyAgICBNU0dfSURfQVRQX0lQU0VDX1NQSV9RVUVSWV9SRVEsCisgICAgTVNHX0lEX0lQU0VDX0FUUF9NVUxUSV9TUElfRlJFRV9DTkYsCisgICAgCisKKyAgICAvL01TR19JRF9USU1FUl9FWFBJUlksCisgICAgCisgICAgTVNHX0lEX0lQU0VDX0NPREVfRU5ELAorICAgIAorTU9EVUxFX01TR19FTkQoIE1TR19JRF9JUFNFQ19DT0RFX1RBSUwgKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL21haWZfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9tYWlmX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IwMzE0MAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9tYWlmX21zZ2lkLmgKQEAgLTAsMCArMSw0NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDA1CisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuIAorKgorKiAgVEhFIFRSQU5TQUNUSU9OIENPTlRFTVBMQVRFRCBIRVJFVU5ERVIgU0hBTEwgQkUgQ09OU1RSVUVEIElOIEFDQ09SREFOQ0UKKyogIFdJVEggVEhFIExBV1MgT0YgVEhFIFNUQVRFIE9GIENBTElGT1JOSUEsIFVTQSwgRVhDTFVESU5HIElUUyBDT05GTElDVCBPRgorKiAgTEFXUyBQUklOQ0lQTEVTLiAgQU5ZIERJU1BVVEVTLCBDT05UUk9WRVJTSUVTIE9SIENMQUlNUyBBUklTSU5HIFRIRVJFT0YgQU5ECisqICBSRUxBVEVEIFRIRVJFVE8gU0hBTEwgQkUgU0VUVExFRCBCWSBBUkJJVFJBVElPTiBJTiBTQU4gRlJBTkNJU0NPLCBDQSwgVU5ERVIKKyogIFRIRSBSVUxFUyBPRiBUSEUgSU5URVJOQVRJT05BTCBDSEFNQkVSIE9GIENPTU1FUkNFIChJQ0MpLgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9NQUlGX01TR19ICisjZGVmaW5lIF9NQUlGX01TR19ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9NQUlGX0NPREVfQkVHSU4gKQorCitNU0dfSURfTUFJRl9NT0RFTF9URVNUX1JFUSA9IE1TR19JRF9NQUlGX0NPREVfQkVHSU4sCitNU0dfSURfTUFJRl9NT0RFTF9URVNUX0NORiwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9NQUlGX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fTUFJRl9NU0dfSApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9tY2ZfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9tY2ZfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTg1MTRmCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL21jZl9tc2dpZC5oCkBAIC0wLDAgKzEsMTA1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTgKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBtY2ZfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZQQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIE1DRiBtc2dpZCBkZWZpbml0aW9uLgorICoKKyAqIEF1dGhvcjoKKyAqIC0tLS0tLS0KKyAqIC0tLS0tLS0KKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwNiAyNiAyMDE5IHBlaXlpLmxpdQorICogW01PTFkwMDQxNjM4M10gW01DRl0gTUNGIFVUIEZyYW1ld29yayBhbmQgRml4IFVUTUQgdHJhY2UgQVBJIHNldHRpbmcgZXJyb3IKKyAqIFtNQ0ZdIHBvcnRpbmcgTUNGIFVUIEZXSworICoKKyAqIDA1IDA5IDIwMTkgcGVpeWkubGl1CisgKiBbTU9MWTAwNDA0MTM0XSBbTUNGXSBNQ0YgVVQgRnJhbWV3b3JrCisgKiBbTUNGXSBNQ0YgVVQgRnJhbWV3b3JrCisgKgorICogMDUgMDkgMjAxOSBwZWl5aS5saXUKKyAqIFtNT0xZMDA0MDQxMzRdIFtNQ0ZdIE1DRiBVVCBGcmFtZXdvcmsKKyAqIAkKKyAqIAlbTUNGXSBNQ0YgVVQgRnJhbWV3b3JrCisgKgorICogMDggMTAgMjAxOCBqdW4tcXVhbi5jaGVuCisgKiBbTU9MWTAwMzQ0ODgwXSBbTUNGXSBTZXQgTUNGIE9QLU9UQSBmaWxlIGFuZCBhcHBseSBpdCBhdCBydW50aW1lCisgKiBNQ0YgdHJpZ2dlciBEU0JQIHdoaWxlIHJlY2VpdmUgQVQrRU1DRkM9MworICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKyNpZm5kZWYgX19NQ0ZfTVNHSURfSAorI2RlZmluZSBfX01DRl9NU0dJRF9ICisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX01DRl9DT0RFX0JFR0lOKQorICAgIE1TR19JRF9NQ0ZfTDRCU0JQX0JFR0lOID0gTVNHX0lEX01DRl9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9NQ0ZfTDRCU0JQX1RSSUdHRVJfRFNCUF9JTkQsCisgICAgTVNHX0lEX01DRl9MNEJTQlBfVFJJR0dFUl9EU0JQX0NORiwKKyAgICBNU0dfSURfTUNGX0w0QlNCUF9UUklHR0VSX0RTQlBfUkVTVUxUX0lORCwKKyAgICBNU0dfSURfTUNGX0w0QlNCUF9FTkQsCisgICAgTVNHX0lEX01DRl9MNENfQkVHSU4gPSBNU0dfSURfTUNGX0w0QlNCUF9CRUdJTiArIDB4MTAsCisgICAgTVNHX0lEX01DRl9MNENfUkVQT1JUX1NUQVRFX0lORCwKKyAgICBNU0dfSURfTUNGX0w0Q19FTkQsCisgICAgTVNHX0lEX01DRl9VVEZXS19CRUdJTiA9IE1TR19JRF9NQ0ZfTDRDX0JFR0lOICsgMHgxMCwKKyAgICBNU0dfSURfTUNGX1VURldLX0lOSVRJQUxfRU5WX1JFUSwKKyAgICBNU0dfSURfTUNGX1VURldLX0lOSVRJQUxfRU5WX1JFU1AsCisgICAgTVNHX0lEX01DRl9VVEZXS19JTklUSUFMX0RTQlBfQ0FMTEJBQ0tfUkVRLAorICAgIE1TR19JRF9NQ0ZfVVRGV0tfSU5JVElBTF9EU0JQX0NBTExCQUNLX1JFU1AsCisgICAgTVNHX0lEX01DRl9VVEZXS19FWEVDVVRFX1JFUSwKKyAgICBNU0dfSURfTUNGX1VURldLX0VYRUNVVEVfUkVTUCwKKyAgICBNU0dfSURfTUNGX1VURldLX0RVTVBfUkVTVUxUX1JFUSwKKyAgICBNU0dfSURfTUNGX1VURldLX0RVTVBfUkVTVUxUX1JFU1AsCisgICAgTVNHX0lEX01DRl9VVEZXS19SRVNFVF9SRVEsCisgICAgTVNHX0lEX01DRl9VVEZXS19SRVNFVF9SRVNQLAorICAgIE1TR19JRF9NQ0ZfVVRGV0tfRU5ELAorTU9EVUxFX01TR19FTkQoTVNHX0lEX01DRl9DT0RFX1RBSUwpCisKKyNlbmRpZiAgLyogIV9fTUNGX01TR0lEX0ggKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9tY2lmX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvbWNpZl9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiNDJjZWIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvbWNpZl9tc2dpZC5oCkBAIC0wLDAgKzEsMTAxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRmlsZW5hbWU6CisgKiAtLS0tLS0tLS0KKyAqICAgbWNpZl9zYXAuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgZGVmaW5lIG1jaWYgbWVzc2FnZXMKKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICRMb2ckCisgKgorICogMDcgMTggMjAxOSBpLWNoaWgubHUKKyAqIFtNT0xZMDA0MjI5NDJdIFtNQ0lGXSBQYXRjaCBiYWNrIC0gSW50ZXJmYWNlCisgKiBtY2lmIGludGVyZmFjZSBwYXRjaCBiYWNrLgorICoKKyAqIDEwIDE5IDIwMTggY2hlbmctZGFvLmxlZQorICogW01PTFkwMDM1OTgxOV0gW01DSUZdIFRYIGludGVycnVwdCBlbmhhbmNlbWVudCBmb3IgTUQvQ29uc3lzIFBvd2VyIE9OL09GRgorICogcGF0Y2ggYmFjaworICoKKyAqIDA3IDE3IDIwMTggY2hlbmctZGFvLmxlZQorICogW01PTFkwMDMxMDI1NF0gWzYyOTVdIElEQyBmZWF0dXJlIGRldmVsb3BtZW50CisgKiBNQ0lGIHBhcnQKKyAqCisgKiAwNyAxNyAyMDE4IGNoZW5nLWRhby5sZWUKKyAqIFtNT0xZMDAzMTAyNTRdIFs2Mjk1XSBJREMgZmVhdHVyZSBkZXZlbG9wbWVudCAoTUNJRiBwYXJ0KQorICoKKyAqIDA3IDEyIDIwMTggY2hlbmctZGFvLmxlZQorICogW01PTFkwMDMxMDI1NF0gWzYyOTVdIElEQyBmZWF0dXJlIGRldmVsb3BtZW50IAorICogW01DSUZdIHBhdGNoIGJhY2sKKyAqCisgKiAwNyAwMyAyMDE4IGtldmluLnRzZW5nCisgKiBbTUNJRl0gTXhTSU0gVVQKKyAqIAktIExSMTMuUjAuTVBfQ0w1OTA2NDg1LmlkYy54TDFTSU0ucmVncmVzc2lvbgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIE1DSUZfTVNHSURfSAorI2RlZmluZSBNQ0lGX01TR0lEX0gKKworTU9EVUxFX01TR19CRUdJTihNU0dfSURfTUNJRl9CRUdJTikKKworICAgIE1TR19JRF9NQ0lGX1NUQVRFX0NIQU5HRV9FVkVOVCwKKyAgICBNU0dfSURfTUNJRl9SWF9SRVEsCisgICAgTVNHX0lEX01DSUZfUlhfRVZFTlQsCisgICAgTVNHX0lEX01DSUZfVFhfUkVRLAorICAgIE1TR19JRF9NQ0lGX1JFU0VUX1JFUSwKKworICAgIC8qIEZvciBVVC9JVCAqLworICAgIE1TR19JRF9NQ0lGX0lUX0NUUkwsCisgICAgTVNHX0lEX01DSUZfVVRfUlVOX1JFUSwKKyAgICBNU0dfSURfTUNJRl9VVF9SVU5fQ05GLAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfTUNJRl9UQUlMKQorCisjZW5kaWYgIC8vCV9DQ0lTTUNPUkVfTVNHSURfSF8gCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvbWRmcG1fbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9tZGZwbV9tc2dpZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1MTI3MzIKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvbWRmcG1fbXNnaWQuaApAQCAtMCwwICsxLDkxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjaWZuZGVmIF9NREZQTV9NU0dJRF9ICisjZGVmaW5lIF9NREZQTV9NU0dJRF9ICisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX01ERlBNX0NPREVfQkVHSU4pCisgICAgTVNHX0lEX01ERlBNX1BST0NFU1NfVFhfUVVFVUVfUkVRLAorCisgICAgTVNHX0lEX01ERlBNX1VTRVJfTVNHX0JFR0lOLAorCisgICAgTVNHX0lEX0RQRk1fREFUQV9VU0FHRV9DTUQsCisgICAgTVNHX0lEX0RQRk1fU0VUX0NUX1RJTUVPVVRfVkFMVUVfUkVRLAorICAgIE1TR19JRF9EUEZNX1NFVF9DVF9USU1FT1VUX1ZBTFVFX1JTUCwKKyAgICBNU0dfSURfRFBGTV9DVF9USU1FT1VUX0lORCwKKworICAgIE1TR19JRF9XRlBNX0VOQUJMRV9GQVNUX1BBVEhfUkVRLAorICAgIE1TR19JRF9XRlBNX0VOQUJMRV9GQVNUX1BBVEhfUlNQLAorICAgIE1TR19JRF9XRlBNX0RJU0FCTEVfRkFTVF9QQVRIX1JFUSwKKyAgICBNU0dfSURfV0ZQTV9ESVNBQkxFX0ZBU1RfUEFUSF9SU1AsCisgICAgTVNHX0lEX1dGUE1fREVBQ1RJVkFURV9GQVNUX1BBVEhfUkVRLAorICAgIE1TR19JRF9XRlBNX0RFQUNUSVZBVEVfRkFTVF9QQVRIX1JTUCwKKyAgICBNU0dfSURfV0ZQTV9ERUFDVElWQVRFX0ZBU1RfUEFUSF9JTkQsCisgICAgTVNHX0lEX1dGUE1fQUNUSVZBVEVfRkFTVF9QQVRIX1JFUSwKKyAgICBNU0dfSURfV0ZQTV9BQ1RJVkFURV9GQVNUX1BBVEhfUlNQLAorICAgIE1TR19JRF9XRlBNX1NFTkRfVFhEX05PVElGWSwKKyAgICBNU0dfSURfV0ZQTV9EUlZfTk9USUZZLAorICAgIE1TR19JRF9XRlBNX01EX05PVElGWSwKKyAgICBNU0dfSURfV0ZQTV9SRVNFVF9JTkQsCisKKyAgICBNU0dfSURfVUZQTV9OT1RJRllfTURfQlVTX0VWRU5UX1JFUSwKKyAgICBNU0dfSURfVUZQTV9OT1RJRllfTURfQlVTX0VWRU5UX1JTUCwKKyAgICBNU0dfSURfVUZQTV9TRU5EX01EX1VTQl9FUDBfUkVRLAorICAgIE1TR19JRF9VRlBNX1NFTkRfTURfVVNCX0VQMF9SU1AsCisgICAgTVNHX0lEX1VGUE1fU0VORF9NRF9VU0JfRVAwX0lORCwKKyAgICBNU0dfSURfVUZQTV9TRU5EX0FQX1VTQl9FUDBfSU5ELAorICAgIE1TR19JRF9VRlBNX0VOQUJMRV9NRF9GQVNUX1BBVEhfUkVRLAorICAgIE1TR19JRF9VRlBNX0VOQUJMRV9NRF9GQVNUX1BBVEhfUlNQLAorICAgIE1TR19JRF9VRlBNX0RJU0FCTEVfTURfRkFTVF9QQVRIX1JFUSwKKyAgICBNU0dfSURfVUZQTV9ESVNBQkxFX01EX0ZBU1RfUEFUSF9SU1AsCisgICAgTVNHX0lEX1VGUE1fREVBQ1RJVkFURV9NRF9GQVNUX1BBVEhfUkVRLAorICAgIE1TR19JRF9VRlBNX0RFQUNUSVZBVEVfTURfRkFTVF9QQVRIX1JTUCwKKyAgICBNU0dfSURfVUZQTV9ERUFDVElWQVRFX01EX0ZBU1RfUEFUSF9JTkQsCisgICAgTVNHX0lEX1VGUE1fQUNUSVZBVEVfTURfRkFTVF9QQVRIX1JFUSwKKyAgICBNU0dfSURfVUZQTV9BQ1RJVkFURV9NRF9GQVNUX1BBVEhfUlNQLAorCisgICAgTVNHX0lEX01ERlBNX0VNX1RFU1RfUkVRLAorICAgIE1TR19JRF9NREZQTV9TVVNQRU5EX1RBR19JTkQsCisgICAgTVNHX0lEX01ERlBNX1NVU1BFTkRfVEFHX0FDSywKKyAgICBNU0dfSURfTURGUE1fUkVTVU1FX1RBR19JTkQsCisgICAgTVNHX0lEX01ERlBNX1JFU1VNRV9UQUdfQUNLLAorICAgIAorICAgIE1TR19JRF9XRlBNX1NFTkRfU01FTV9MQVlPVVRfTk9USUZZLAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfTURGUE1fQ09ERV9UQUlMKQorCisjZW5kaWYgIC8qIF9NREZQTV9NU0dJRF9IICovCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvbmFsX21zZ2lkLmggYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvbmFsX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE3ODhlOAotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9uYWxfbXNnaWQuaApAQCAtMCwwICsxLDcwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICBuYWxfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNT0xZCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTkFMIG1lc3NhZ2UgSUQgZGVmaW5pdGlvbnMuCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2lmbmRlZiBfX05BTF9NU0dJRF9IX18KKyNkZWZpbmUgX19OQUxfTVNHSURfSF9fCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKK01PRFVMRV9NU0dfQkVHSU4oTVNHX0lEX05BTF9DT0RFX0JFR0lOKQorCisgICAgTVNHX0lEX05BTF9TT0NLRVRfRVZFTlRfSU5ELAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfTkFMX0NPREVfVEFJTCkKKworI2VuZGlmICAvKiBfX05BTF9NU0dJRF9IX18gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9udnJhbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL252cmFtX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2NzEyZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9udnJhbV9tc2dpZC5oCkBAIC0wLDAgKzEsNjM1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyAqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorICogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorICogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwMQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG52cmFtLnNhcAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICogICBNQVVJCisgKgorICogRGVzY3JpcHRpb246CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgTlZSQU0gcmVsYXRlZCBtZXNzYWdlIGlkZW50aXR5IGRlZmluaXRpb24KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqICAgICAgICAgICAgIEhJU1RPUlkKKyAqIEJlbG93IHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKgorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICoKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICogcmVtb3ZlZCEKKyAqIHJlbW92ZWQhCisgKiByZW1vdmVkIQorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVwcGVyIHRoaXMgbGluZSwgdGhpcyBwYXJ0IGlzIGNvbnRyb2xsZWQgYnkgUFZDUyBWTS4gRE8gTk9UIE1PRElGWSEhIAorICo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfTlZSQU1fTVNHX0gKKyNkZWZpbmUgX05WUkFNX01TR19ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9OVlJBTV9DT0RFX0JFR0lOICkKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogIFRoaXMgbWVzc2FnZSBpcyB1c2VkIHRvIGdldCBOVlJBTSBzdGF0ZSBzbyB0aGF0IEw0QyBjb3VsZCBnbyBvbiB0aGUgcHJvdG9jb2wKKyAqICBzdGFydHVwIHByb2NlZHVyZS4KKyAqIDwvcHJlPgorICogTm90ZQorICogICBMNEMgLT4gTlZSQU0KKyAqIFNlZSBBbHNvCisgKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fc3RhcnR1cF9yZXFfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9TVEFSVFVQX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogIElmIGluaXRpYWxpemF0aW9uIGZhaWxlZCwgTlZSQU0gd2lsbCByZXNwb25zZSBOVlJBTV9TVEFSVFVQX0NORiBwcmltaXRpdmUKKyAqICBhbG9uZyB3aXRoIGFuIGVycm9yIG51bWJlciBkZXNjcmliZWQgdGhlIHJlYXNvbi4gT3RoZXJ3aXNlLCBOVlJBTSBrZWVwcyBzaWxlbnQuCisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgTlZSQU0gLT4gTDRDCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3N0YXJ0dXBfY25mX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fU1RBUlRVUF9DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBOVlJBTV9SRVNFVF9SRVEgc2hvdWxkIGJlIHNlbnQgdG8gTlZSQU0gdGFzayB0byByZXNldCBkYXRhIGl0ZW1zLCBpLmUuLCBsb2dpY2FsIGRhdGEgaXRlbXMsCisgKiAgY291bGQgYmUgYSBzaW5nbGUgZGF0YSBpdGVtIG9yIGEgY2VydGFpbiBjYXRlZ29yeSBvZiBkYXRhIGl0ZW0uCisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgQVBQIC0+IE5WUkFNCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3Jlc2V0X3JlcV9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1JFU0VUX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogIE5WUkFNX1JFU0VUX0NORiByZXR1cm5zIHRoZSByZXN1bHQgb2YgTlZSQU1fUkVTRVRfUkVRLiBUaGUgcmV0dXJuIHN0YXR1cyBpcyBlbmNvZGVkIGluIGVycm5vLgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9yZXNldF9jbmZfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9SRVNFVF9DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBSZWFkcyBhIGRhdGEgaXRlbSBnaXZlbiBieSBpdHMgbG9naWNhbCBkYXRhIGl0ZW0gSUQuIEZvciBsaW5lYXIgZml4ZWQgRUYsIGEgdmFsaWQKKyAqICByZWNvcmQgaW5kZXggbXVzdCBiZSBwcm92aWRlZC4KKyAqICBQUy4gVGhlIGluZGV4IG9mIGZpcnN0IHJlY29yZCBpcyAxCisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgQVBQIC0+IE5WUkFNCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3JlYWRfcmVxX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fUkVBRF9SRVEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBSZXR1cm5zIGFjdHVhbCBjb250ZW50IG9mIHRoZSBzcGVjaWZpZWQgZGF0YSBpdGVtLiBSZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAqICByZWFkIHByaW1pdGl2ZSBpcyBhbHNvIHJldHVybmVkIGluIGVycm5vLgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9yZWFkX2NuZl9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1JFQURfQ05GCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRGVzY3JpcHRpb24KKyAqIDxwcmU+CisgKiAgV3JpdGVzIGEgdHJhbnNwYXJlbnQgRUYgZ2l2ZW4gYnkgaXRzIGxvZ2ljYWwgZGF0YSBpdGVtIElELiBGb3IgbGluZWFyIGZpeGVkIEVGLAorICogIGEgdmFsaWQgcmVjb3JkIGluZGV4IG11c3QgYmUgcHJvdmlkZWQuCisgKiAgMS4gIEZvciBsaW5lYXIgZml4ZWQgRUYsIHRoZSBpbmRleCBvZiBmaXJzdCByZWNvcmQgaXMgMS4KKyAqICAyLiAgTlZSQU0gTGF5ZXIgZnJlZXMgdGhlIGJ1ZmZlciBpbW1lZGlhdGVseSBhZnRlciB3cml0dGVuLgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIEFQUCAtPiBOVlJBTQorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV93cml0ZV9yZXFfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9XUklURV9SRVEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgd3JpdGUgcHJpbWl0aXZlLiBSZXR1cm4gc3RhdHVzIGlzIGVuY29kZWQgaW4gZXJybm8uCisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgTlZSQU0gLT4gQXBwCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3dyaXRlX2NuZl9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1dSSVRFX0NORgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIEFQUCAtPiBOVlJBTQorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV93cml0ZV9pbWVpX3JlcV9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1dSSVRFX0lNRUlfUkVRCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRGVzY3JpcHRpb24KKyAqIDxwcmU+CisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgTlZSQU0gLT4gQXBwCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3dyaXRlX2ltZWlfY25mX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fV1JJVEVfSU1FSV9DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqIDwvcHJlPgorICogTm90ZQorICogICBBUFAgLT4gTlZSQU0KKyAqIFNlZSBBbHNvCisgKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fcmVhZF9zbV9yZXFfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9SRUFEX1NNX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9yZWFkX3NtX2NuZl9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1JFQURfU01fQ05GCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRGVzY3JpcHRpb24KKyAqIDxwcmU+CisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgQVBQIC0+IE5WUkFNCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3dyaXRlX3NtX3JlcV9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1dSSVRFX1NNX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV93cml0ZV9zbV9jbmZfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9XUklURV9TTV9DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBUdXJuIG9uIG9yIHR1cm4gb2ZmIHRoZSBOVlJBTSBzb2Z0d2FyZSBsb2NrLgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIEFQUCAtPiBOVlJBTQorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9zZXRfbG9ja19yZXFfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9TRVRfTE9DS19SRVEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgU0VUIExPQ0sgcHJpbWl0aXZlLiBSZXR1cm4gc3RhdHVzIGlzIGVuY29kZWQKKyAqICBpbiBmb2xsb3dpbmcgRU5VTQorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9zZXRfbG9ja19jbmZfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9TRVRfTE9DS19DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICAxLiBDcmVhdGUgYSBiYWNrdXAgaW1hZ2Ugb2YgbnZyYW0gaW50byBiYWNrdXAgcGFydGl0aW9uCisgKiAgMi4gQ2xlYXIgdGhlIGRhdGEgaW4gYmFja3VwIHBhcnRpdGlvbgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIEFwcCAtPiBOVlJBTQorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9jcmVhdGVfaW1hZ2VfcmVxX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fQ1JFQVRFX0lNQUdFX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29ycmVzcG9uZGluZyBDUkVBVEUgSU1BR0UgcHJpbWl0aXZlLgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9jcmVhdGVfaW1hZ2VfY25mX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fQ1JFQVRFX0lNQUdFX0NORgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogIFJlY292ZXIgdGhlIGRhdGEgaW4gYmFja3VwIHBhcnRpdGlvbiBiYWNrIHRvIE5WUkFNCisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgQXBwIC0+IE5WUkFNCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3JlY292ZXJfaW1hZ2VfcmVxX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fUkVDT1ZFUl9JTUFHRV9SRVEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgUkVDT1ZFUiBJTUFHRSBwcmltaXRpdmUuCisgKiA8L3ByZT4KKyAqIE5vdGUKKyAqICAgTlZSQU0gLT4gQXBwCisgKiBTZWUgQWxzbworICogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3JlY292ZXJfaW1hZ2VfY25mX3N0cnVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fUkVDT1ZFUl9JTUFHRV9DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBWZXJpZnkgdGhlIGRhdGEgaW4gYmFja3VwIHBhcnRpdGlvbiB0byBjaGVjayB0aGUgZGF0YSBpbnRlZ3JpdHkuCisgKiAgVGhlcmUgYXJlIHRocmVlIHN0ZXBzLgorICogIDEuIENoZWNrIHRoZSBzdGF0dXMgb2YgaW1hZ2UgKGNsb3NlIG9yIGJyb2tlbikKKyAqICAyLiBDaGVjayB0aGUgY2hlY2tzdW0gb2YgaW1hZ2UuCisgKiAgMy4gQ29tcGFyZSB0aGUgdmFsdWUgd2l0aCBOVlJBTSdzCisgKiAgTlZSQU0gYWxzbyBwcm92aWRlcyBhIGZhc3QgbW9kZSB0byBleGVjdXRlIHRoZSBzdGVwIDEgb25seS4KKyAqIDwvcHJlPgorICogTm90ZQorICogICBBcHAgLT4gTlZSQU0KKyAqIFNlZSBBbHNvCisgKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fdmVyaWZ5X2ltYWdlX3JlcV9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1ZFUklGWV9JTUFHRV9SRVEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBSZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgVkVSSUZZIElNQUdFIHByaW1pdGl2ZS4KKyAqIDwvcHJlPgorICogTm90ZQorICogICBOVlJBTSAtPiBBcHAKKyAqIFNlZSBBbHNvCisgKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fdmVyaWZ5X2ltYWdlX2NuZl9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1ZFUklGWV9JTUFHRV9DTkYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBEZXNjcmlwdGlvbgorICogPHByZT4KKyAqICBTdXNwZW5kIHRoZSBOVlJBTSB0YXNrLCB5b3UgY2FuIGFzc2lnbiB0aGUgdGltZSBpbiBzdHJ1Y3R1cmUKKyAqICBleDoKKyAqIDwvcHJlPgorICogTm90ZQorICogICBOVlJBTSAtPiBBcHAKKyAqIFNlZSBBbHNvCisgKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fc3VzcGVuZF9yZXFfc3RydWN0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9TVVNQRU5EX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIERlc2NyaXB0aW9uCisgKiA8cHJlPgorICogIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgc3VzcGVuZCByZXF1ZXN0LgorICogPC9wcmU+CisgKiBOb3RlCisgKiAgIE5WUkFNIC0+IEFwcAorICogU2VlIEFsc28KKyAqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9zdXNwZW5kX2NuZl9zdHJ1Y3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX1NVU1BFTkRfQ05GCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEZXNjcmlwdGlvbgorKiA8cHJlPgorKiAgQmFja3VwIEZBVCBkYXRhIGl0ZW1zIHRvIFNEUworKiA8L3ByZT4KKyogTm90ZQorKiAgIEFwcCAtPiBOVlJBTQorKiBTZWUgQWxzbworKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fc2RzX3JlcV9zdHJ1Y3QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fU0RTX1JFUQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEZXNjcmlwdGlvbgorKiA8cHJlPgorKiAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBiYWNrdXAgdG8gU0RTIHJlcXVlc3QuCisqIDwvcHJlPgorKiBOb3RlCisqICAgTlZSQU0gLT4gQXBwCisqIFNlZSBBbHNvCisqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9zZHNfY25mX3N0cnVjdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9TRFNfQ05GCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEZXNjcmlwdGlvbgorKiA8cHJlPgorKiAgQmFja3VwIEZBVCBkYXRhIGl0ZW1zIHRvIFNEUworKiA8L3ByZT4KKyogTm90ZQorKiAgIEFwcCAtPiBOVlJBTQorKiBTZWUgQWxzbworKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fYmluX3JlZ2lvbl9yZXFfc3RydWN0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX0JJTl9SRUdJT05fUkVRCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEZXNjcmlwdGlvbgorKiA8cHJlPgorKiAgUmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBiYWNrdXAgdG8gQVAgQklOIHJlZ2lvbiByZXF1ZXN0LgorKiA8L3ByZT4KKyogTm90ZQorKiAgIE5WUkFNIC0+IEFwcAorKiBTZWUgQWxzbworKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fYmluX3JlZ2lvbl9jbmZfc3RydWN0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX0JJTl9SRUdJT05fQ05GCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEZXNjcmlwdGlvbgorKiA8cHJlPgorKiAgRHVtbXkgbWVzc2FnZSBqdXN0IGZvciB3YWtldXAgbnZyYW0gdGFzayBpZiBudnJhbSB0YXNrIGlzIHdhaXRpbmcgZm9yIGV4dHEgbXNnCisqIDwvcHJlPgorKiBOb3RlCisqICAgQXBwIC0+IE5WUkFNCisqIFNlZSBBbHNvCisqICAgTG9jYWwgUGFyYW1ldGVyOiBudnJhbV9jYWxsYmFja19yZXFfc3RydWN0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX0NBTExCQUNLX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRGVzY3JpcHRpb24KKyogPHByZT4KKyogIFJlZ2lzdGVyIHRoZSBOVlJBTSBtb25pdG9yIGZ1bmN0aW9uIG9mIGEgTElEIGZvciBDMksKKyogPC9wcmU+CisqIE5vdGUKKyogICBBcHAgLT4gTlZSQU0KKyogU2VlIEFsc28KKyogICBMb2NhbCBQYXJhbWV0ZXI6IG52cmFtX3JlYWRfcmVxX3N0cnVjdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9SRUdfTk9USUZZX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRGVzY3JpcHRpb24KKyogPHByZT4KKyogIERlcmVnaXN0ZXIgdGhlIE5WUkFNIG1vbml0b3IgZnVuY3Rpb24gb2YgYSBMSUQgZm9yIEMySworKiA8L3ByZT4KKyogTm90ZQorKiAgIEFwcCAtPiBOVlJBTQorKiBTZWUgQWxzbworKiAgIExvY2FsIFBhcmFtZXRlcjogbnZyYW1fcmVhZF9yZXFfc3RydWN0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgTVNHX0lEX05WUkFNX0RFUkVHX05PVElGWV9SRVEKKworI2Vsc2UKKworICAgIE1TR19JRF9OVlJBTV9TVEFSVFVQX1JFUSA9IE1TR19JRF9OVlJBTV9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9OVlJBTV9TVEFSVFVQX0NORiwKKyAgICBNU0dfSURfTlZSQU1fUkVTRVRfUkVRLAorICAgIE1TR19JRF9OVlJBTV9SRVNFVF9DTkYsCisgICAgTVNHX0lEX05WUkFNX1JFQURfUkVRLAorICAgIE1TR19JRF9OVlJBTV9SRUFEX0NORiwKKyAgICBNU0dfSURfTlZSQU1fV1JJVEVfUkVRLAorICAgIE1TR19JRF9OVlJBTV9XUklURV9DTkYsCisgICAgTVNHX0lEX05WUkFNX1dSSVRFX0lNRUlfUkVRLAorICAgIE1TR19JRF9OVlJBTV9XUklURV9JTUVJX0NORiwKKyAgICBNU0dfSURfTlZSQU1fUkVBRF9TTV9SRVEsCisgICAgTVNHX0lEX05WUkFNX1JFQURfU01fQ05GLAorICAgIE1TR19JRF9OVlJBTV9XUklURV9TTV9SRVEsCisgICAgTVNHX0lEX05WUkFNX1dSSVRFX1NNX0NORiwKKyAgICBNU0dfSURfTlZSQU1fU0VUX0xPQ0tfUkVRLAorICAgIE1TR19JRF9OVlJBTV9TRVRfTE9DS19DTkYsCisgICAgTVNHX0lEX05WUkFNX0NSRUFURV9JTUFHRV9SRVEsCisgICAgTVNHX0lEX05WUkFNX0NSRUFURV9JTUFHRV9DTkYsCisgICAgTVNHX0lEX05WUkFNX1JFQ09WRVJfSU1BR0VfUkVRLAorICAgIE1TR19JRF9OVlJBTV9SRUNPVkVSX0lNQUdFX0NORiwKKyAgICBNU0dfSURfTlZSQU1fVkVSSUZZX0lNQUdFX1JFUSwKKyAgICBNU0dfSURfTlZSQU1fVkVSSUZZX0lNQUdFX0NORiwKKyAgICBNU0dfSURfTlZSQU1fU1VTUEVORF9SRVEsCisgICAgTVNHX0lEX05WUkFNX1NVU1BFTkRfQ05GLAorICAgIE1TR19JRF9OVlJBTV9TRFNfUkVRLAorICAgIE1TR19JRF9OVlJBTV9TRFNfQ05GLAorICAgIE1TR19JRF9OVlJBTV9CSU5fUkVHSU9OX1JFUSwKKyAgICBNU0dfSURfTlZSQU1fQklOX1JFR0lPTl9DTkYsCisgICAgTVNHX0lEX05WUkFNX0NBTExCQUNLX1JFUSwKKyAgICBNU0dfSURfTlZSQU1fUkVHX05PVElGWV9SRVEsCisgICAgTVNHX0lEX05WUkFNX0RFUkVHX05PVElGWV9SRVEsCisgICAgTVNHX0lEX05WUkFNX1JFQURfREVGQVVMVF9SRVEsCisgICAgTVNHX0lEX05WUkFNX1JFQURfREVGQVVMVF9DTkYsCisgICAgTVNHX0lEX05WUkFNX1JFU0VSVkVEXzQsCisgICAgTVNHX0lEX05WUkFNX1JFU0VSVkVEXzUsCisgICAgTVNHX0lEX05WUkFNX1JFU0VSVkVEXzYsCisgICAgTVNHX0lEX05WUkFNX01BWCwKKyAgICBNU0dfSURfTlZSQU1fQ09ERV9FTkQgPSBNU0dfSURfTlZSQU1fTUFYLAorCisjZW5kaWYKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfTlZSQU1fQ09ERV9UQUlMICkKKworI2lmIGRlZmluZWQgKF9fTlZSQU1fVVRfVEVTVF9fKQorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfTlZSQU1fVEVTVF9DT0RFX0JFR0lOICkKKyNpZmRlZiBfX0JVSUxEX0RPTV9fCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyBUaGlzIGlzIHVzZWQgdG8gRUxUIHNlbmQgdGVzdCBjYXNlIGFuZCBzdGFydCBmbGFnIHRvIFR0YXNrMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fVEVTVF9SRVEKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgVGhpcyBpcyB1c2VkIHRvIFR0YXNrMSBzZW5kIFNNUCBzdHJlc3MgdGVzdDEgdG8gVHRhc2syflR0YXNrNAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBNU0dfSURfTlZSQU1fU1RSRVNTX1RFU1QxX1JFUQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyBUaGlzIGlzIHVzZWQgdG8gVHRhc2syflR0YXNrNCB0byByZXR1cm4gdGVzdCByZXN1bHQgdG8gVHRhc2sxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIE1TR19JRF9OVlJBTV9TVFJFU1NfVEVTVDFfQ05GCisKKyNlbHNlCisKKyAgICBNU0dfSURfTlZSQU1fVEVTVF9SRVEgPSBNU0dfSURfTlZSQU1fVEVTVF9DT0RFX0JFR0lOLAorICAgIE1TR19JRF9OVlJBTV9TVFJFU1NfVEVTVDFfUkVRLAorICAgIE1TR19JRF9OVlJBTV9TVFJFU1NfVEVTVDFfQ05GLAorCisKKyNlbmRpZgorTU9EVUxFX01TR19FTkQoIE1TR19JRF9OVlJBTV9URVNUX0NPREVfVEFJTCApCisKKyNlbmRpZiAvKiNpZiBkZWZpbmVkIChfX05WUkFNX1VUX1RFU1RfXykqLworCisKKyNlbmRpZiAgLy9fTlZSQU1fTVNHX0gKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9zYXBfcmVsYXllcl9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3NhcF9yZWxheWVyX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc5ZjlmZQotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy9zYXBfcmVsYXllcl9tc2dpZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgQ29weXJpZ2h0IFN0YXRlbWVudDoKKyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisqICBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBDb3B5cmlnaHQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQKKyogIGhlcmVpbiBpcyBjb25maWRlbnRpYWwuIFRoZSBzb2Z0d2FyZSBtYXkgbm90IGJlIGNvcGllZCBhbmQgdGhlIGluZm9ybWF0aW9uCisqICBjb250YWluZWQgaGVyZWluIG1heSBub3QgYmUgdXNlZCBvciBkaXNjbG9zZWQgZXhjZXB0IHdpdGggdGhlIHdyaXR0ZW4KKyogIHBlcm1pc3Npb24gb2YgTWVkaWFUZWsgSW5jLiAoQykgMjAwNQorKgorKiAgQlkgT1BFTklORyBUSElTIEZJTEUsIEJVWUVSIEhFUkVCWSBVTkVRVUlWT0NBTExZIEFDS05PV0xFREdFUyBBTkQgQUdSRUVTCisqICBUSEFUIFRIRSBTT0ZUV0FSRS9GSVJNV0FSRSBBTkQgSVRTIERPQ1VNRU5UQVRJT05TICgiTUVESUFURUsgU09GVFdBUkUiKQorKiAgUkVDRUlWRUQgRlJPTSBNRURJQVRFSyBBTkQvT1IgSVRTIFJFUFJFU0VOVEFUSVZFUyBBUkUgUFJPVklERUQgVE8gQlVZRVIgT04KKyogIEFOICJBUy1JUyIgQkFTSVMgT05MWS4gTUVESUFURUsgRVhQUkVTU0xZIERJU0NMQUlNUyBBTlkgQU5EIEFMTCBXQVJSQU5USUVTLAorKiAgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyogIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgTk9OSU5GUklOR0VNRU5ULgorKiAgTkVJVEhFUiBET0VTIE1FRElBVEVLIFBST1ZJREUgQU5ZIFdBUlJBTlRZIFdIQVRTT0VWRVIgV0lUSCBSRVNQRUNUIFRPIFRIRQorKiAgU09GVFdBUkUgT0YgQU5ZIFRISVJEIFBBUlRZIFdISUNIIE1BWSBCRSBVU0VEIEJZLCBJTkNPUlBPUkFURUQgSU4sIE9SCisqICBTVVBQTElFRCBXSVRIIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSwgQU5EIEJVWUVSIEFHUkVFUyBUTyBMT09LIE9OTFkgVE8gU1VDSAorKiAgVEhJUkQgUEFSVFkgRk9SIEFOWSBXQVJSQU5UWSBDTEFJTSBSRUxBVElORyBUSEVSRVRPLiBNRURJQVRFSyBTSEFMTCBBTFNPCisqICBOT1QgQkUgUkVTUE9OU0lCTEUgRk9SIEFOWSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFUyBNQURFIFRPIEJVWUVSJ1MKKyogIFNQRUNJRklDQVRJT04gT1IgVE8gQ09ORk9STSBUTyBBIFBBUlRJQ1VMQVIgU1RBTkRBUkQgT1IgT1BFTiBGT1JVTS4KKyoKKyogIEJVWUVSJ1MgU09MRSBBTkQgRVhDTFVTSVZFIFJFTUVEWSBBTkQgTUVESUFURUsnUyBFTlRJUkUgQU5EIENVTVVMQVRJVkUKKyogIExJQUJJTElUWSBXSVRIIFJFU1BFQ1QgVE8gVEhFIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VEIEhFUkVVTkRFUiBXSUxMIEJFLAorKiAgQVQgTUVESUFURUsnUyBPUFRJT04sIFRPIFJFVklTRSBPUiBSRVBMQUNFIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRSwKKyogIE9SIFJFRlVORCBBTlkgU09GVFdBUkUgTElDRU5TRSBGRUVTIE9SIFNFUlZJQ0UgQ0hBUkdFIFBBSUQgQlkgQlVZRVIgVE8KKyogIE1FRElBVEVLIEZPUiBTVUNIIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLiAKKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfU0FQX1JFTEFZRVJfTVNHX0gKKyNkZWZpbmUgX1NBUF9SRUxBWUVSX01TR19ICisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TQVBfUkVBTFlFUl9DT0RFX0JFR0lOICkKKworTVNHX0lEX1NBUF9SRUxBWUVSX0xPR0dJTkcsCitNU0dfSURfU0FQX1JFTEFZRVJfQ1RSTF9EQVRBLAorTVNHX0lEX1NBUF9SRUxBWUVSX0NNRF9GT1JXQVJELAorTVNHX0lEX05DQ0NJX0RBVEFQT1JUX1JFQURZX1RPX1JFQUQsCitNU0dfSURfTkNDQ0lfQ1RSTFBPUlRfUkVBRFlfVE9fUkVBRCwKKworTU9EVUxFX01TR19FTkQoIE1TR19JRF9TQVBfUkVBTFlFUl9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8vX1NBUF9SRUxBWUVSX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvc3lzc2VydmljZV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3N5c3NlcnZpY2VfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWY4YWQwCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3N5c3NlcnZpY2VfbXNnaWQuaApAQCAtMCwwICsxLDY1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgU1lTX19TRVJWSUNFX01TR19ICisjZGVmaW5lIFNZU19fU0VSVklDRV9NU0dfSAorCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCisjZGVmaW5lIE1BWF9DVVNUT01fTUVTU0FHRV9JRCAgMjAwMDAgICAvKiBNYXhpbXVtIGN1c3RvbSBtZXNzYWdlIElEICovCisKK01PRFVMRV9NU0dfQkVHSU4oIE1TR19JRF9TWVNERUJVR19DT0RFX0JFR0lOICkKK01TR19JRF9JTlZBTElEX1RZUEUgPSAwLAorTVNHX0lEX1RJTUVSX0VYUElSWSA9IE1TR19JRF9TWVNERUJVR19DT0RFX0JFR0lOLAorI2lmZGVmIE1US19TWVNTRVJWX0RFQlVHCitNU0dfSURfU1NEQkcxX1NTREJHMl9FWFRRX1JFUSwKK01TR19JRF9TU0RCRzJfU1NEQkcyX0lOVFFfUkVRLAorTVNHX0lEX0NVU1RPTV9TU0RCRzJfRVhUUV9SRVEsCisjZW5kaWYKK01TR19JRF9TVEFDS19TSU1fVElNRVJfU1RBUlQsCitNU0dfSURfU1RBQ0tfU0lNX1RJTUVSX1NUT1AsCitNU0dfSURfU1RBQ0tfU0lNX1RJTUVSX0VYUElSWSwKK01TR19JRF9NRERCR19SRVEsCitNU0dfSURfTUREQkdfUkVTUE9OU0UsCitNU0dfSURfQ0JTX1AyTCwKK01TR19JRF9FTFRfUE1DX1NFVFRJTkdfVE9fTUREQkdfQ01ELAorTVNHX0lEX0VMVF9QTUNfU0VUVElOR19UT19NRERCR19BQ0ssCitNU0dfSURfQVRDTURfUE1DX1NFVFRJTkdfVE9fTUREQkdfQ01ELAorTVNHX0lEX0FUQ01EX1NFVFROR19JTklUX0FERE9OX0NNRCwKK01TR19JRF9LQUxfSElHSF9QUklPUklUWV9TRVJWSUNFLAorTVNHX0lEX01EREJHX0FGRklOSVRZX0VWU0hFRCwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfU1lTREVCVUdfQ09ERV9UQUlMICkKKworI2VuZGlmIC8vU1lTX19TRVJWSUNFX01TR19ICisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy90Y3BpcF9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3RjcGlwX21zZ2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFkZTAzNwotLS0gL2Rldi9udWxsCisrKyBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy90Y3BpcF9tc2dpZC5oCkBAIC0wLDAgKzEsMTc3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTIKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB0Y3BpcF9tc2dpZC5oCisgKgorICogUHJvamVjdDoKKyAqIC0tLS0tLS0tCisgKiAgIE1PTFkKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogICBUQ1BJUCBtc2dpZCBkZWZpbmUuCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogJExvZyQKKyAqCisgKiAwOCAwNiAyMDIxIG90X3NyaXNodGkuc2hhcm1hCisgKiBbTU9MWTAwNjQwMzA5XSDjgJAxMjI5ODU544CR44CQMjAxMzHjgJHjgJDmsrPljZfojaXpmLPjgJHjgJDluILlnLrlj43ppojjgJFDTUNDK0NNQ0PkuLvljaEoSU1TK0lNUynljaEx5Ymv5Y2hTVTpgJror53lpLHotKUKKyAqIAkKKyAqIAlJbnRlcmZhY2UgY2hhbmdlcworICoKKyAqIDEyIDExIDIwMjAga29uYXJrLm1laHJhCisgKiBbTU9MWTAwNjA1MDE2XSBSU1JBIENvbGdpbiBNRDcwMC5NUCBjaGVjay1pbnMKKyAqIAkKKyAqIAlSU1JBIGNoZWNrLWlucyB0byBNRDcwMC5NUCAoU1dSRCkKKyAqCisgKiAwOSAwOSAyMDE5IHRoLmNoZW5nCisgKiBbTU9MWTAwNDM3MDk2XSBbUGV0cnVzXSBbTVQ2Mjk3XSBHZW45NyBEMi9ERE0gZmVhdHVyZSBpbiAoRDIvVVNJUi9FREFUQVNJTS9FSUFBUE4pLgorICoKKyAqIDA1IDA5IDIwMTkgYXJpLnNpbW9uZW4KKyAqIFtNT0xZMDA0MDUwOTddIFtHZW45N11bU3VibWFyaW5lXVtUQ1BJUF1bQVRQXSBQb3J0IGFuZCBTUEkgcmVzZXJ2YXRpb24gc3VwcG9ydAorICogCQorICogCUFUUCBwb3J0IGFuZCBTUEkgYWxsb2NhdGlvbiBmZWF0dXJlcywgU1dSRCBmaWxlcworICoKKyAqIDA4IDExIDIwMTcgaHN1YW4teXUuY2hpYW5nCisgKiBbTU9MWTAwMjY2ODYyXSBbVENQL0lQIHN0YWNrXQorICogZHVtcCBkZXZpY2UgaW5mbyB3aGVuIHBkbiByZWxhdGVkIG1zZyBvciBkdW1wIHJlcXVlc3QgcmVjZWl2ZWQKKyAqCisgKiAwNyAxOSAyMDE3IGhzdWFuLXl1LmNoaWFuZworICogW01PTFkwMDI1NjcyMl0gW1VNT0xZQV1bVENQL0lQIHN0YWNrXSBsaW51eCBVVCBmcmFtZXdvcmsKKyAqIGFkZCBzdGF0aXN0aWMgZm9yIGZpbHRlcgorICoKKyAqIDA1IDE4IDIwMTcgY2hyaXN0aW5lLXBsLnRzYWkKKyAqIFtNT0xZMDAyNTA3MzFdIFtNVDY3NjNdW0JpYW5jb10gUmVnaXN0ZXIgbWVzc2FnZSBJRHMgZm9yIE5BTCBtb2R1bGUuCisgKiAJCisgKiAJQWRkIG1lc3NhZ2UgSUQgZm9yIE5BTCB0ZXN0IGNhc2UuCisgKgorICogMDQgMDEgMjAxNyBpLWNoaWgubHUKKyAqIFtNT0xZMDAyMjc5NDFdIFtNVDYyOTNdW1RDUElQXQorICogdGNwaXA6IHN1cHBvcnQgQVQrU1RLUEtUU0laRT14eHgKKyAqIAlwYXJ0MTogdGNwaXAgaW50ZXJuYWwKKyAqCisgKiAwMyAyMSAyMDE3IGktY2hpaC5sdQorICogW01PTFkwMDIyNzk0MV0gW01UNjI5M11bVENQSVBdCisgKiB0Y3BpcDogY2hhbmdlIGludGVyZmFjZSB3aXRoIEQyQ00uCisgKgorICogMDMgMTMgMjAxNyBpLWNoaWgubHUKKyAqIFtNT0xZMDAyMjc5NDFdIFtNVDYyOTNdW1RDUElQXQorICogdGNwaXA6IFNUS0VWVEQgY2hhbmdlIHRvIHVzZSBrYWwgcXVldWUuIHBhcnQgMQorICoKKyAqIDAzIDAzIDIwMTcgaS1jaGloLmx1CisgKiBbTU9MWTAwMjI3OTQxXSBbTVQ2MjkzXVtUQ1BJUF0KKyAqIHRjcGlwOiBpbnRlcmZhY2UgZm9yIHBhY2tldCBkdW1waW5nLgorICoKKyAqIDAzIDAyIDIwMTcgaS1jaGloLmx1CisgKiBbTU9MWTAwMjI3OTQxXSBbTVQ2MjkzXVtUQ1BJUF0KKyAqIHRjcGlwOiBpbnRlcmZhY2UgdG8gZDI6IGludGVyZmFjZSBvbmx5LgorICoKKyAqIDAzIDAxIDIwMTcgSS1DaGloIEx1CisgKiAgVENQSVAgbXNnIGlkIGNoZWNrLWluCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworI2lmbmRlZiBfX1RDUElQX01TR0lEX0hfXworI2RlZmluZSBfX1RDUElQX01TR0lEX0hfXworCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9UQ1BJUF9CRUdJTikKKworLyogRlJPTTogRDIgKi8KKyAgICBNU0dfSURfRDJDTV9TVEtCUkdfUEROX1JBTkdFX0JFR0lOID0gTVNHX0lEX1RDUElQX0JFR0lOLAorICAgICAgICBNU0dfSURfRDJDTV9TVEtCUkdfRVNUQUJMSVNIUEROX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQ01fU1RLQlJHX0VTVEFCTElTSFBETl9DTkYsCisgICAgICAgIE1TR19JRF9EMkNNX1NUS0JSR19JRkNIQU5HRV9SRVEsCisgICAgICAgIE1TR19JRF9EMkNNX1NUS0JSR19JRkNIQU5HRV9DTkYsCisgICAgICAgIE1TR19JRF9EMkNNX1NUS0JSR19HTEJBRERSX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyQ01fU1RLQlJHX0dMQkFERFJfQ05GLAorICAgICAgICBNU0dfSURfRDJDTV9TVEtCUkdfRElTQ09OTkVDVFBETl9SRVEsCisgICAgICAgIE1TR19JRF9EMkNNX1NUS0JSR19ESVNDT05ORUNUUEROX0NORiwKKyAgICBNU0dfSURfRDJDTV9TVEtCUkdfUEROX1JBTkdFX0VORCwKKwlNU0dfSURfRDJfU1RLQlJHX1BETl9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX0QyX1NUS0JSR19FU1RBQkxJU0hQRE5fUkVRLAorICAgICAgICBNU0dfSURfRDJfU1RLQlJHX0VTVEFCTElTSFBETl9DTkYsCisgICAgICAgIE1TR19JRF9EMl9TVEtCUkdfSUZDSEFOR0VfUkVRLAorICAgICAgICBNU0dfSURfRDJfU1RLQlJHX0lGQ0hBTkdFX0NORiwKKyAgICAgICAgTVNHX0lEX0QyX1NUS0JSR19ESVNDT05ORUNUUEROX1JFUSwKKyAgICAgICAgTVNHX0lEX0QyX1NUS0JSR19ESVNDT05ORUNUUEROX0NORiwKKyAgICAgICAgTVNHX0lEX0lNU19TVEtCUkdfTVRVX1NFVF9SRVEsCisgICAgICAgIE1TR19JRF9JTVNfU1RLQlJHX01UVV9TRVRfQ05GLAorICAgIE1TR19JRF9EMl9TVEtCUkdfUEROX1JBTkdFX0VORCwKKworLyogVE86IERITCBmb3IgcGFja2V0IGR1bXBpbmcgKi8KKyAgICBNU0dfSURfU1RLQlJHX0RITF9QS1REVU1QX1JFUSwKKworLyogRlJPTTogQVRQIHRvIFNUS0JSRyAqLworICAgIE1TR19JRF9BVFBfU1RLQlJHX0FUQ01EX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfQVRQX1NUS0JSR19TVEtQS1RTSVpFX0lORCwKKyAgICAgICAgTVNHX0lEX1NUS0JSR19BVFBfUE9SVF9BTExPQ19DTkYsCisgICAgICAgIE1TR19JRF9TVEtCUkdfQVRQX1BPUlRfRlJFRV9DTkYsCisgICAgTVNHX0lEX0FUUF9TVEtCUkdfQVRDTURfUkFOR0VfRU5ELAorCisvKiBGUk9NIHRhc2sgVE8gRXZlbnQgZGlzcGF0Y2hlciAqLworICAgIE1TR19JRF9UQ1BJUF9FUV9USU1FT1VUX0lORCwKKyAgICBNU0dfSURfVENQSVBfRVFfRVZFTlRfUkVRLAorCisvKiBGT1IgTkFMIFRQICovCisgICAgTVNHX0lEX05BTFRQX1RFU1RfUlVOX1JFUSwKKyAgICBNU0dfSURfTkFMVFBfVEVTVF9SVU5fQ05GLAorCisvKiBGT1Igc3RhdGlzdGljIGR1bXAgKi8KKyAgICBNU0dfSURfU1RBVF9TVEtCUkdfRFVNUF9SQU5HRV9CRUdJTiwKKyAgICAgICAgTVNHX0lEX1NUQVRfU1RLQlJHX0RVTVBfSU5ELAorICAgIE1TR19JRF9TVEFUX1NUS0JSR19EVU1QX1JBTkdFX0VORCwKKwkKKy8qIEZPUiBSU1JBICovCisgICAgTVNHX0lEX1NUS0JSR19SU1JBX1JBTkdFX0JFR0lOLAorICAgICAgICBNU0dfSURfU1RLQlJHX1JBX1BST0NFU1NfSU5ELAorICAgICAgICBNU0dfSURfU1RLQlJHX0QyX1JBX0lGX0FERF9JTkQsCisgICAgICAgIE1TR19JRF9SU1JBX1NUS0JSR19JUF9VUERBVEVfSU5ELAorICAgIE1TR19JRF9TVEtCUkdfUlNSQV9SQU5HRV9FTkQsCisJCitNT0RVTEVfTVNHX0VORChNU0dfSURfVENQSVBfVEFJTCkKKworI2VuZGlmICAvKiAhX19UQ1BJUF9NU0dJRF9IX18gKi8KZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy90c3RfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy90c3RfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTM0ODBjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3RzdF9tc2dpZC5oCkBAIC0wLDAgKzEsMTY2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgX1RTVF9NU0dfSAorI2RlZmluZSBfVFNUX01TR19ICisKK01PRFVMRV9NU0dfQkVHSU4oIFRTVF9NU0dfQ09ERV9CRUdJTiApCisjaWYgZGVmaW5lZCAoX19ESExfTU9EVUxFX18pCitNU0dfSURfREhMX0lOSkVDVF9TVFJJTkcgPSBUU1RfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfVFNUX0lOSkVDVF9TVFJJTkcsCitNU0dfSURfREhMX0lORF9SRUFEX1ZBUklBQkxFX1JFVFVSTiwKK01TR19JRF9ESExfSU5EX1JFQURfTUVNT1JZX1JFUE9SVCwKK01TR19JRF9ESExfVVNCX01FTU9SWV9EVU1QX0RBVEFfSUxNLAorTVNHX0lEX0RITF9TVEFSVF9EVU1QX01FTU9SWV9UWVBFLAorTVNHX0lEX0RITF9FTkRfRFVNUF9NRU1PUllfVFlQRSwKK01TR19JRF9ESExfVVNCX01FTU9SWV9EVU1QX1NUQVJUX0lMTSwKK01TR19JRF9ESExfVVNCX01FTU9SWV9EVU1QX0ZJTklTSF9JTE0sCitNU0dfSURfREhMX0lORF9RVUVSWV9NRU1PUllfUkFOR0UsCitNU0dfSURfREhMX0lORF9OVlJBTV9SRUFEX0NORiwKK01TR19JRF9ESExfSU5EX05WUkFNX1JFU0VUX0NORiwKK01TR19JRF9ESExfSU5EX05WUkFNX1dSSVRFX0NORiwKK01TR19JRF9ESExfSU5EX1NUQUNLX1NUQVRJU1RJQ1MsCitNU0dfSURfREhMX0lORF9GSUxFX1RSQU5TRkVSX1JFUE9SVCwKK01TR19JRF9ESExfSU5EX0ZJTEVfU0FWRV9SRVBPUlQsCitNU0dfSURfREhMX0lORF9RVUVSWV9CVUZfTU9OSVRPUl9SRVBPUlQsCitNU0dfSURfREhMX1RPX0VUU1RNLAorTVNHX0lEX0RITF9UT19FTDEsCitNU0dfSURfRVRTVE1fVE9fREhMLAorTVNHX0lEX0VMMV9UT19ESEwsCitNU0dfSURfREhMX1RPX0VMMVRTVCwKK01TR19JRF9ESExfVE9fQ0wxVFNULAorTVNHX0lEX0RITF9JTkRfR0VORVJBTF9RVUVSWV9DTURfQUNLLAorTVNHX0lEX0RITF9URVNULAorTVNHX0lEX0hFTExPX0dQRCwKK01TR19JRF9IRUxMT19QVFJfQVJSQVksCitNU0dfSURfSEVMTE9fSU5MSU5FX0lMTSwKK01TR19JRF9IRUxMT19JTkxJTkVfSUxNMiwKK01TR19JRF9ESExfRFJJVkVSX1NUQVRFX0NIQU5HRSwKK01TR19JRF9ESExfVFRZX1JYX0RPTkUsCitNU0dfSURfREhMX1JFRFVNUF9FTkRfV0FSTiwKK01TR19JRF9ESExfQ01EX05WUkFNLAorTVNHX0lEX0RITF9DTURfUkVBRF9TVEFDS19TVEFUSVNUSUNTLAorTVNHX0lEX0RITF9DTURfUVVFUllfQ1RSTF9CVUZfTU9OSVRPUl9EQVRBLAorTVNHX0lEX0RITF9DTURfUVVFUllfRkxDX0JVRl9NT05JVE9SX0RBVEEsCitNU0dfSURfREhMX0NNRF9NU0dfQktQVCwKK01TR19JRF9ESExfQ01EX0lOSkVDVF9BVF9DTUQsCitNU0dfSURfREhMX0NNRF9TV0xBX0VNSV9NT05JVE9SX01BU1RFUl9TRUxFQ1QsCitNU0dfSURfREhMREJHX01TR19CUkVBSywKK01TR19JRF9ESExfSU5EX1ZJUlRVQUxfQ0hBTk5FTCwKK01TR19JRF9ESExfSU5EX1VCREIsCitNU0dfSURfVFNUX1I4X0RMX1BLVF9TSU5HTEVfR1BEX0lORCwKK01TR19JRF9UU1RfTDJDT1BST19GSUxURVJfUkVUUklFVkFMLAorTVNHX0lEX1RTVF9MMkNPUFJPX0ZJTFRFUl9TQVZFLAorTVNHX0lEX0RITF9DTURfU0VUX0RITF9NVVhfRklMVEVSLAorTVNHX0lEX0RITF9DTURfRU5BQkxFXzIzR19EU1BfTE9HR0lORywKK01TR19JRF9ESExfQ01EX0RJU0FCTEVfMjNHX0RTUF9MT0dHSU5HLAorTVNHX0lEX0RITF9DTURfTE9PUF9CQUNLX1JFU1BPTlNFLAorTVNHX0lEX0RITF9BVVRPX01FTU9SWV9EVU1QX0lOX0lMTSwKK01TR19JRF9ESExfSU5EX0NVU1RPTV9SRUFEX01FTU9SWV9SRVBPUlQsCitNU0dfSURfREhMX1RPX0RITF9TTEFWRV9SRUxBWSwKK01TR19JRF9ESExfTDJDT1BST19VTF9JUF9IRUFERVJfTE9HLAorTVNHX0lEX0RITF9MMkNPUFJPX0RMX0lQX0hFQURFUl9MT0csCitNU0dfSURfREhMX0wyQ09QUk9fTE9HX0RNQV9DT05GSUcsCitNU0dfSURfREhMX1JFQVBQRUFSX0VYQ0VQVElPTl9MT0dfU1RBUlQsCitNU0dfSURfREhMX1JFQVBQRUFSX0VYQ0VQVElPTl9MT0dfRU5ELAorLy9NU0dfSURfREhMX0NNRF9TRVRfTURMX0ZJTFRFUiwKK01TR19JRF9ESExfQ01EX1NFVF9EU1BfRklMVEVSLAorTVNHX0lEX0RITF9VUENNX0lNU19VTF9SQVdfREFUQSwKK01TR19JRF9ESExfVVBDTV9JTVNfRExfUkFXX0RBVEEsCitNU0dfSURfREhMX1NBVkVfU0xBVkVfTDFfRklMVEVSLAorTVNHX0lEX0wyX1RSQUNFX09QRU4sCitNU0dfSURfTDJfVFJBQ0VfQ0xPU0UsCitNU0dfSURfREhMX1BMU19GTFVTSF9FTkQsCitNU0dfSURfREhMX01FVEFfTU9ERV9MT0dfRU5BQkxFLAorTVNHX0lEX0RITF9DTURfUkVBRF9TVEFDS19TVEFUSVNUSUNTX1NMQVZFLAorTVNHX0lEX0RITF9JTkRfU1RBQ0tfU1RBVElTVElDU19TTEFWRSwKK01TR19JRF9ESExfUkVEVU1QX1NUQVJUX1dBUk4sCitNU0dfSURfREhMX0xPQURfTURMX0ZJTFRFUl9GUk9NX05WUkFNLAorLyogU1dMQS9TV1RSIE1FU1NBR0UgSUQgLVN0YXJ0LSAqLworTVNHX0lEX0RITF9JTkRfU1dMQV9RVUVSWV9IRUFERVJfUkVQT1JULAorTVNHX0lEX0RITF9JTkRfQVNNX1FVRVJZX0hFQURFUl9SRVBPUlQsCitNU0dfSURfREhMX0NNRF9BU01fU1RBUlQsCitNU0dfSURfREhMX0NNRF9BU01fU1RPUCwKK01TR19JRF9ESExfQ01EX0FTTV9DT05GSUdfUE1DLAorTVNHX0lEX0RITF9JTkRfQVNNX0NNRF9BQ0ssCisvKiBTV0xBL1NXVFIgTUVTU0FHRSBJRCAtRW5kLSAqLworTVNHX0lEX0RITF9MQlNfUE9TX0lORCwKKworTVNHX0lEX0RITF9FVkVOVF9OT1RJRlksCitNU0dfSURfTUNPUkVfVkNPUkVfVUxTUF9JTkZPX1RfREVCVUcsCitNU0dfSURfQ1hJRl9VTFNQX0lORk9fVF9ERUJVRywKK01TR19JRF9ESExfSUNEX1VULAorTVNHX0lEX0RITF9VVCwKKworI2lmIGRlZmluZWQoVU5JVF9URVNUKSB8fCBkZWZpbmVkKF9fVUVfU0lNVUxBVE9SX18pCitNU0dfSURfREhMX0lORF9DTURfUkVCT09UX0FDSywgIC8vIHJlc2V0bSByZXNwb25zZQorI2VuZGlmCisKKyNlbHNlCitNU0dfSURfVFNUX0lOSkVDVF9TVFJJTkcgPSBUU1RfTVNHX0NPREVfQkVHSU4sCitNU0dfSURfVFNUX0dFVF9HUFJTX1BPT0xfU1RBVFVTLAorTVNHX0lEX1RTVF9QT09MX1FVRVJZX1RJTUVfRVhQSVJZLAorTVNHX0lEX1RTVF9NU0dfRlJPTV9EU1AsCitNU0dfSURfVFNUX1NUUkVBTV9GUk9NX0RTUCwKK01TR19JRF9UU1RfVVRfTVNHMSwKK01TR19JRF9UU1RfTDJDT1BST19GSUxURVJfUkVUUklFVkFMLAorTVNHX0lEX1RTVF9MMkNPUFJPX0ZJTFRFUl9TQVZFLAorTVNHX0lEX1RTVF9NU0dfRlJPTV9BUCwKK01TR19JRF9UU1RfVVRfQ0NDSV9NU0csCitNU0dfSURfVFNUX1RSX0lOVEVSTkFMLAorTVNHX0lEX1RTVF9NSU5JX0xPR19TVEFUSUNfSU5GTywKK01TR19JRF9UU1RfUjhfRExfUEtUX1NJTkdMRV9HUERfSU5ELAorI2VuZGlmCitNU0dfSURfREhMX0xPR19NT0RFX0NUUkxfU0VUX1JFUSwKK01TR19JRF9ESExfTE9HX01PREVfQ1RSTF9TRVRfQ05GLAorTVNHX0lEX0RITF9MT0dfTU9ERV9DVFJMX0dFVF9SRVEsCitNU0dfSURfREhMX0xPR19NT0RFX0NUUkxfR0VUX0NORiwKK01TR19JRF9ESExfTE9HX0xFVkVMX0NUUkxfU0VUX1JFUSwKK01TR19JRF9ESExfTE9HX0xFVkVMX0NUUkxfU0VUX0NORiwKK01TR19JRF9ESExfTE9HX0xFVkVMX0NUUkxfR0VUX1JFUSwKK01TR19JRF9ESExfTE9HX0xFVkVMX0NUUkxfR0VUX0NORiwKK01TR19JRF9ESExfTE9DQVRJT05fTE9HX0NUUkxfU0VUX1JFUSwKK01TR19JRF9ESExfTE9DQVRJT05fTE9HX0NUUkxfU0VUX0NORiwKK01TR19JRF9ESExfTE9DQVRJT05fTE9HX0NUUkxfR0VUX1JFUSwKK01TR19JRF9ESExfTE9DQVRJT05fTE9HX0NUUkxfR0VUX0NORiwKK01TR19JRF9ESExfTE9HX0ZMVVNIX0lOVEVSVkFMX1NFVF9SRVEsCitNU0dfSURfREhMX0xPR19GTFVTSF9JTlRFUlZBTF9TRVRfQ05GLAorTVNHX0lEX0RITF9MT0dfRkxVU0hfSU5URVJWQUxfR0VUX1JFUSwKK01TR19JRF9ESExfTE9HX0ZMVVNIX0lOVEVSVkFMX0dFVF9DTkYsCitNU0dfSURfREhMX1NXSVRDSF9NT0RFX1JFUSwKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfVFNUX0NPREVfVEFJTCApCisKKyNlbmRpZiAgLy9fVFNUX01TR19ICmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvd2ZwbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dmcG1fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjlhYjE5Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dmcG1fbXNnaWQuaApAQCAtMCwwICsxLDQ1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfV0ZQTV9NU0dfSAorI2RlZmluZSBfV0ZQTV9NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfV0ZQTV9DT0RFX0JFR0lOICkKK01PRFVMRV9NU0dfRU5EKCBNU0dfSURfV0ZQTV9DT0RFX1RBSUwgKQorCisjZW5kaWYgIC8qIF9XRlBNX01TR19IICovCisKZGlmZiAtLWdpdCBhL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy93bGNfbXNnaWQuaCBiL21jdS9pbnRlcmZhY2Uvc2FwL3N2Yy93bGNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmIzNTJjCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dsY19tc2dpZC5oCkBAIC0wLDAgKzEsMTA4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMTMKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4KKyoKKyogIFRIRSBUUkFOU0FDVElPTiBDT05URU1QTEFURUQgSEVSRVVOREVSIFNIQUxMIEJFIENPTlNUUlVFRCBJTiBBQ0NPUkRBTkNFCisqICBXSVRIIFRIRSBMQVdTIE9GIFRIRSBTVEFURSBPRiBDQUxJRk9STklBLCBVU0EsIEVYQ0xVRElORyBJVFMgQ09ORkxJQ1QgT0YKKyogIExBV1MgUFJJTkNJUExFUy4gIEFOWSBESVNQVVRFUywgQ09OVFJPVkVSU0lFUyBPUiBDTEFJTVMgQVJJU0lORyBUSEVSRU9GIEFORAorKiAgUkVMQVRFRCBUSEVSRVRPIFNIQUxMIEJFIFNFVFRMRUQgQlkgQVJCSVRSQVRJT04gSU4gU0FOIEZSQU5DSVNDTywgQ0EsIFVOREVSCisqICBUSEUgUlVMRVMgT0YgVEhFIElOVEVSTkFUSU9OQUwgQ0hBTUJFUiBPRiBDT01NRVJDRSAoSUNDKS4KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBGaWxlbmFtZToKKyAqIC0tLS0tLS0tLQorICogICB3bGNfbXNnaWQuaAorICoKKyAqIFByb2plY3Q6CisgKiAtLS0tLS0tLQorICoJIFVNT0xZRSAKKyAqCisgKiBEZXNjcmlwdGlvbjoKKyAqIC0tLS0tLS0tLS0tLQorICogVGhpcyBtb2R1bGUgZGVmaW5lcyB0aGUgbWVzc2dhZSBJRHMgZm9yIFdMQy4KKyAqCisgKiBBdXRob3I6CisgKiAtLS0tLS0tCisgKiAtLS0tLS0tCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZuZGVmIF9XTENfTVNHX0lEX0gKKyNkZWZpbmUgX1dMQ19NU0dfSURfSAorCisjaW5jbHVkZSAibW9kdWxlX21zZ19yYW5nZS5oIgorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfV0xDX0NPREVfQkVHSU4gKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAgICAgICAgPDE+IERlc2l0bmF0aW9uOiBXTEMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvLyA8MS4xPiBGcm9tIEFUUAorICAgIE1TR19JRF9BVFBfV0xDX0VJTVNHRU9fUkVRID0gTVNHX0lEX1dMQ19DT0RFX0JFR0lOLAorICAgIE1TR19JRF9BVFBfV0xDX0VXSUZJRU5fUkVRLAorICAgIE1TR19JRF9BVFBfV0xDX0VXSUZJQUREUl9SRVEsCisgICAgTVNHX0lEX0FUUF9XTENfRVdJRklBU0NfUkVRLCAgICAKKyAgICBNU0dfSURfQVRQX1dMQ19FV0lGSVNJR0xWTF9SRVEsCisgICAgTVNHX0lEX0FUUF9XTENfRVdJRklNQUNfUkVRLAorCU1TR19JRF9BVFBfV0xDX09GRkxPQURfS0VFUF9BTElWRV9SRVEsCisJTVNHX0lEX0FUUF9XTENfRVdJRklSU1NJVEhSX1JFUSwKKwlNU0dfSURfQVRQX1dMQ19FV0lGSVJTU0lWRVJfUkVRLAorLy8gPDEuMj4gRnJvbSBVc2VyCisgICAgTVNHX0lEX1dMQ19XSUZJX0lORk9fUVVFUllfUkVRLAorICAgIE1TR19JRF9XTENfV0lGSV9JTkZPX1JFR0lTVEVSX1JFUSwKKyAgICBNU0dfSURfV0xDX1dJRklfUlNTSV9USFJfQ09ORklHX0lORCwKKyAgICBNU0dfSURfV0xDX1VQREFURV9QUklPUklUWV9SRVEsCisgICAgTVNHX0lEX1dMQ19XSUZJX0xPQ0tfQUNRVUlSRV9SRVEsCisgICAgTVNHX0lEX1dMQ19XSUZJX0xPQ0tfUkVMRUFTRV9SRVEsCisgICAgTVNHX0lEX1dMQ19JUF9NQUNfQUREUl9MT09LVVBfUkVRLAorICAgIE1TR19JRF9XTENfT0ZGTE9BRF9LRUVQX0FMSVZFX1JFUSwKKworLy8gPDEuMj4gRnJvbSBUQ1BJUAorICAgIE1TR19JRF9XTENfVENQSVBfV0lGSV9TVEFUVVNfSU5ELAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgICAgICAgICAgPDI+IERlc2l0bmF0aW9uOiBXTEMncyBVU0VSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworICAgIE1TR19JRF9XTENfV0lGSV9JTkZPX1FVRVJZX0NORiwKKyAgICBNU0dfSURfV0xDX1dJRklfSU5GT19SRUdJU1RFUl9DTkYsCisgICAgTVNHX0lEX1dMQ19XSUZJX1JTU0lfVEhSX0NPTkZJR19SRVEsCisgICAgTVNHX0lEX1dMQ19XSUZJX1JTU0lfVEhSX0NPTkZJR19DTkYsCisgICAgTVNHX0lEX1dMQ19XSUZJX0xPQ0tfQUNRVUlSRV9DTkYsCisgICAgTVNHX0lEX1dMQ19XSUZJX0xPQ0tfUkVMRUFTRV9DTkYsCisgICAgTVNHX0lEX1dMQ19XSUZJX0lORk9fVVBEQVRFX0lORCwKKyAgICBNU0dfSURfV0xDX0lQX01BQ19BRERSX0xPT0tVUF9DTkYsCisgICAgTVNHX0lEX1dMQ19PRkZMT0FEX0tFRVBfQUxJVkVfQ05GLAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVNHIEVORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTU9EVUxFX01TR19FTkQoIE1TR19JRF9XTENfQ09ERV9UQUlMICkKKworI2VuZGlmICAvL19XTENfTVNHX0lEX0gKKworCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvd3JwbV9tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dycG1fbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2IwMmQzCi0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dycG1fbXNnaWQuaApAQCAtMCwwICsxLDQ3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogIENvcHlyaWdodCBTdGF0ZW1lbnQ6CisqICAtLS0tLS0tLS0tLS0tLS0tLS0tLQorKiAgVGhpcyBzb2Z0d2FyZSBpcyBwcm90ZWN0ZWQgYnkgQ29weXJpZ2h0IGFuZCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkCisqICBoZXJlaW4gaXMgY29uZmlkZW50aWFsLiBUaGUgc29mdHdhcmUgbWF5IG5vdCBiZSBjb3BpZWQgYW5kIHRoZSBpbmZvcm1hdGlvbgorKiAgY29udGFpbmVkIGhlcmVpbiBtYXkgbm90IGJlIHVzZWQgb3IgZGlzY2xvc2VkIGV4Y2VwdCB3aXRoIHRoZSB3cml0dGVuCisqICBwZXJtaXNzaW9uIG9mIE1lZGlhVGVrIEluYy4gKEMpIDIwMDUKKyoKKyogIEJZIE9QRU5JTkcgVEhJUyBGSUxFLCBCVVlFUiBIRVJFQlkgVU5FUVVJVk9DQUxMWSBBQ0tOT1dMRURHRVMgQU5EIEFHUkVFUworKiAgVEhBVCBUSEUgU09GVFdBUkUvRklSTVdBUkUgQU5EIElUUyBET0NVTUVOVEFUSU9OUyAoIk1FRElBVEVLIFNPRlRXQVJFIikKKyogIFJFQ0VJVkVEIEZST00gTUVESUFURUsgQU5EL09SIElUUyBSRVBSRVNFTlRBVElWRVMgQVJFIFBST1ZJREVEIFRPIEJVWUVSIE9OCisqICBBTiAiQVMtSVMiIEJBU0lTIE9OTFkuIE1FRElBVEVLIEVYUFJFU1NMWSBESVNDTEFJTVMgQU5ZIEFORCBBTEwgV0FSUkFOVElFUywKKyogIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisqICBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIE9SIE5PTklORlJJTkdFTUVOVC4KKyogIE5FSVRIRVIgRE9FUyBNRURJQVRFSyBQUk9WSURFIEFOWSBXQVJSQU5UWSBXSEFUU09FVkVSIFdJVEggUkVTUEVDVCBUTyBUSEUKKyogIFNPRlRXQVJFIE9GIEFOWSBUSElSRCBQQVJUWSBXSElDSCBNQVkgQkUgVVNFRCBCWSwgSU5DT1JQT1JBVEVEIElOLCBPUgorKiAgU1VQUExJRUQgV0lUSCBUSEUgTUVESUFURUsgU09GVFdBUkUsIEFORCBCVVlFUiBBR1JFRVMgVE8gTE9PSyBPTkxZIFRPIFNVQ0gKKyogIFRISVJEIFBBUlRZIEZPUiBBTlkgV0FSUkFOVFkgQ0xBSU0gUkVMQVRJTkcgVEhFUkVUTy4gTUVESUFURUsgU0hBTEwgQUxTTworKiAgTk9UIEJFIFJFU1BPTlNJQkxFIEZPUiBBTlkgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRVMgTUFERSBUTyBCVVlFUidTCisqICBTUEVDSUZJQ0FUSU9OIE9SIFRPIENPTkZPUk0gVE8gQSBQQVJUSUNVTEFSIFNUQU5EQVJEIE9SIE9QRU4gRk9SVU0uCisqCisqICBCVVlFUidTIFNPTEUgQU5EIEVYQ0xVU0lWRSBSRU1FRFkgQU5EIE1FRElBVEVLJ1MgRU5USVJFIEFORCBDVU1VTEFUSVZFCisqICBMSUFCSUxJVFkgV0lUSCBSRVNQRUNUIFRPIFRIRSBNRURJQVRFSyBTT0ZUV0FSRSBSRUxFQVNFRCBIRVJFVU5ERVIgV0lMTCBCRSwKKyogIEFUIE1FRElBVEVLJ1MgT1BUSU9OLCBUTyBSRVZJU0UgT1IgUkVQTEFDRSBUSEUgTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUsCisqICBPUiBSRUZVTkQgQU5ZIFNPRlRXQVJFIExJQ0VOU0UgRkVFUyBPUiBTRVJWSUNFIENIQVJHRSBQQUlEIEJZIEJVWUVSIFRPCisqICBNRURJQVRFSyBGT1IgU1VDSCBNRURJQVRFSyBTT0ZUV0FSRSBBVCBJU1NVRS4gCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2luY2x1ZGUgIm1vZHVsZV9tc2dfcmFuZ2UuaCIKKworI2lmbmRlZiBfV1JQTV9NU0dfSAorI2RlZmluZSBfV1JQTV9NU0dfSAorCitNT0RVTEVfTVNHX0JFR0lOKCBNU0dfSURfV1JQTV9DT0RFX0JFR0lOICkKKyAgICAvKiBUaW1lciBldmVudCAqLworICAgIE1TR19JRF9XUlBNX1BFUklPRElDX0VYUElSRUQsCitNT0RVTEVfTVNHX0VORCggTVNHX0lEX1dSUE1fQ09ERV9UQUlMICkKKworI2VuZGlmICAvKiBfV1JQTV9NU0dfSCAqLworCmRpZmYgLS1naXQgYS9tY3UvaW50ZXJmYWNlL3NhcC9zdmMvd3N2Y19tc2dpZC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dzdmNfbXNnaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzFiYTk5Ci0tLSAvZGV2L251bGwKKysrIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjL3dzdmNfbXNnaWQuaApAQCAtMCwwICsxLDE0MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICBDb3B5cmlnaHQgU3RhdGVtZW50OgorKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogIFRoaXMgc29mdHdhcmUgaXMgcHJvdGVjdGVkIGJ5IENvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZAorKiAgaGVyZWluIGlzIGNvbmZpZGVudGlhbC4gVGhlIHNvZnR3YXJlIG1heSBub3QgYmUgY29waWVkIGFuZCB0aGUgaW5mb3JtYXRpb24KKyogIGNvbnRhaW5lZCBoZXJlaW4gbWF5IG5vdCBiZSB1c2VkIG9yIGRpc2Nsb3NlZCBleGNlcHQgd2l0aCB0aGUgd3JpdHRlbgorKiAgcGVybWlzc2lvbiBvZiBNZWRpYVRlayBJbmMuIChDKSAyMDEyCisqCisqICBCWSBPUEVOSU5HIFRISVMgRklMRSwgQlVZRVIgSEVSRUJZIFVORVFVSVZPQ0FMTFkgQUNLTk9XTEVER0VTIEFORCBBR1JFRVMKKyogIFRIQVQgVEhFIFNPRlRXQVJFL0ZJUk1XQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTlMgKCJNRURJQVRFSyBTT0ZUV0FSRSIpCisqICBSRUNFSVZFRCBGUk9NIE1FRElBVEVLIEFORC9PUiBJVFMgUkVQUkVTRU5UQVRJVkVTIEFSRSBQUk9WSURFRCBUTyBCVVlFUiBPTgorKiAgQU4gIkFTLUlTIiBCQVNJUyBPTkxZLiBNRURJQVRFSyBFWFBSRVNTTFkgRElTQ0xBSU1TIEFOWSBBTkQgQUxMIFdBUlJBTlRJRVMsCisqICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorKiAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBOT05JTkZSSU5HRU1FTlQuCisqICBORUlUSEVSIERPRVMgTUVESUFURUsgUFJPVklERSBBTlkgV0FSUkFOVFkgV0hBVFNPRVZFUiBXSVRIIFJFU1BFQ1QgVE8gVEhFCisqICBTT0ZUV0FSRSBPRiBBTlkgVEhJUkQgUEFSVFkgV0hJQ0ggTUFZIEJFIFVTRUQgQlksIElOQ09SUE9SQVRFRCBJTiwgT1IKKyogIFNVUFBMSUVEIFdJVEggVEhFIE1FRElBVEVLIFNPRlRXQVJFLCBBTkQgQlVZRVIgQUdSRUVTIFRPIExPT0sgT05MWSBUTyBTVUNICisqICBUSElSRCBQQVJUWSBGT1IgQU5ZIFdBUlJBTlRZIENMQUlNIFJFTEFUSU5HIFRIRVJFVE8uIE1FRElBVEVLIFNIQUxMIEFMU08KKyogIE5PVCBCRSBSRVNQT05TSUJMRSBGT1IgQU5ZIE1FRElBVEVLIFNPRlRXQVJFIFJFTEVBU0VTIE1BREUgVE8gQlVZRVInUworKiAgU1BFQ0lGSUNBVElPTiBPUiBUTyBDT05GT1JNIFRPIEEgUEFSVElDVUxBUiBTVEFOREFSRCBPUiBPUEVOIEZPUlVNLgorKgorKiAgQlVZRVInUyBTT0xFIEFORCBFWENMVVNJVkUgUkVNRURZIEFORCBNRURJQVRFSydTIEVOVElSRSBBTkQgQ1VNVUxBVElWRQorKiAgTElBQklMSVRZIFdJVEggUkVTUEVDVCBUTyBUSEUgTUVESUFURUsgU09GVFdBUkUgUkVMRUFTRUQgSEVSRVVOREVSIFdJTEwgQkUsCisqICBBVCBNRURJQVRFSydTIE9QVElPTiwgVE8gUkVWSVNFIE9SIFJFUExBQ0UgVEhFIE1FRElBVEVLIFNPRlRXQVJFIEFUIElTU1VFLAorKiAgT1IgUkVGVU5EIEFOWSBTT0ZUV0FSRSBMSUNFTlNFIEZFRVMgT1IgU0VSVklDRSBDSEFSR0UgUEFJRCBCWSBCVVlFUiBUTworKiAgTUVESUFURUsgRk9SIFNVQ0ggTUVESUFURUsgU09GVFdBUkUgQVQgSVNTVUUuCisqCisqICBUSEUgVFJBTlNBQ1RJT04gQ09OVEVNUExBVEVEIEhFUkVVTkRFUiBTSEFMTCBCRSBDT05TVFJVRUQgSU4gQUNDT1JEQU5DRQorKiAgV0lUSCBUSEUgTEFXUyBPRiBUSEUgU1RBVEUgT0YgQ0FMSUZPUk5JQSwgVVNBLCBFWENMVURJTkcgSVRTIENPTkZMSUNUIE9GCisqICBMQVdTIFBSSU5DSVBMRVMuICBBTlkgRElTUFVURVMsIENPTlRST1ZFUlNJRVMgT1IgQ0xBSU1TIEFSSVNJTkcgVEhFUkVPRiBBTkQKKyogIFJFTEFURUQgVEhFUkVUTyBTSEFMTCBCRSBTRVRUTEVEIEJZIEFSQklUUkFUSU9OIElOIFNBTiBGUkFOQ0lTQ08sIENBLCBVTkRFUgorKiAgVEhFIFJVTEVTIE9GIFRIRSBJTlRFUk5BVElPTkFMIENIQU1CRVIgT0YgQ09NTUVSQ0UgKElDQykuCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEZpbGVuYW1lOgorICogLS0tLS0tLS0tCisgKiAgIG1jaWZfc2FwLmgKKyAqCisgKiBQcm9qZWN0OgorICogLS0tLS0tLS0KKyAqICAgTU9MWQorICoKKyAqIERlc2NyaXB0aW9uOgorICogLS0tLS0tLS0tLS0tCisgKiAgIGRlZmluZSBtY2lmIG1lc3NhZ2VzCisgKgorICogQXV0aG9yOgorICogLS0tLS0tLQorICogLS0tLS0tLQorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiAkTG9nJAorICoKKyAqIDExIDI1IDIwMjAganVuLXlpLmxpCisgKiBbTU9MWTAwNTk5NDg5XSBbTVQ2ODkxXVtQZXRydXMtUF1bUjBdW01QN11bTUREUC1XSF1bSFFdW0tTXVtUZXN0QXBwXVtONzhdIHBvd2VyIGNvbnN1bXB0aW9uIGlzc3VlCisgKiAJCisgKiAJW1dTVkNdW01QRF0gdC1wdXQgdGgKKyAqCisgKiAwOSAyMyAyMDE5IHNoZW5nLWx1bmcubGl1CisgKiBbTU9MWTAwNDM5NTgwXSBbVk1PTFldW01DSUZdIFN1cHBvcnQgTXVsdGlwbGUgQ09OU1lTCisgKiAJCisgKiAJW01DSUZfRFJWXSBTdXBwb3J0IE11bHRpcGxlIFN5cworICoKKyAqIDA3IDI0IDIwMTkgaS1jaGloLmx1CisgKiBbTU9MWTAwNDI0NTE2XSBbTUNJRl1bU3VibWFyaW5lXSBTdWJtYXJpbmUgaXNzdWUgZml4IHBhdGNoIGJhY2sKKyAqIHdzdmMgdXBkYXRlCisgKgorICogMDcgMTkgMjAxOSBrZXZpbi50c2VuZworICogW01PTFkwMDQyMzI5OF0gW01ERFBdW0dFTjk3XSBwYXRjaCBiYWNrIE1ERFAtV0gKKyAqIAkKKyAqIAktIGludGVyZmFjZSBwYXJ0CisgKgorICogMDQgMDIgMjAxOSBjaGVuZy1kYW8ubGVlCisgKiBbTU9MWTAwMzk2MzE3XSBbTUNJRl0gcGF0Y2ggYmFjaworICogW01DSUZdIFNBUAorICoKKyAqIDAyIDI1IDIwMTkga2V2aW4udHNlbmcKKyAqIFtNT0xZMDAzNzQxNDhdIFtXU1ZDXSBNRERQLVdIIHN1cHBvcnQKKyAqIAkKKyAqIAktIHJlc2V0IFdTVkMvUERNQSBkcml2ZXIgd2hlbiBkZWFjdGl2YXRpbmcKKyAqCisgKiAwMiAxOSAyMDE5IGNoZW5nLWRhby5sZWUKKyAqIFtNT0xZMDAzNzI3MjhdIFtNQ0lGXSBQRE1BIGRldmVsb3BtZW50CisgKiBTRVIgc3VwcG9ydAorICoKKyAqIDAxIDI0IDIwMTkga2V2aW4udHNlbmcKKyAqIFtNT0xZMDAzNzQxNDhdIFtXU1ZDXSBNRERQLVdIIHN1cHBvcnQKKyAqIAkKKyAqIAktIGFkZCBkdW1wIFJYCisgKiAJLSB1cGRhdGUgbWFjIGRlcXVldWUKKyAqIAktIGZpeCBJVCBwb3J0IGlzc3VlCisgKgorICogMDEgMTEgMjAxOSBrZXZpbi50c2VuZworICogW01PTFkwMDM3NDE0OF0gW1dTVkNdIE1ERFAtV0ggc3VwcG9ydAorICogCQorICogCS0gTVNEVSBpZC9yZXBvcnQgaGFuZGxpbmcKKyAqIAktIHJlbW92ZSBkZXBlbmVuY3kgb2YgbWNpZl9oYWxfc2htX2FsbG9jKCkgYW5kIE1DSUYgaGFuZHNoYWtlCisgKiAJLSBhZGQgdGltZW91dCBpbG0gbW9kaWQgY2hlY2sKKyAqCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpbmNsdWRlICJtb2R1bGVfbXNnX3JhbmdlLmgiCisKKyNpZm5kZWYgV1NWQ19NU0dJRF9ICisjZGVmaW5lIFdTVkNfTVNHSURfSAorCitNT0RVTEVfTVNHX0JFR0lOKE1TR19JRF9XU1ZDX0JFR0lOKQorCisgICAgLyogV0ZQTSAtLT4gV1NWQyAqLworICAgIE1TR19JRF9XU1ZDX1RYRF9VUERBVEVfSU5ELAorICAgIE1TR19JRF9XU1ZDX05FVF9TVEFUX0FERFJfUkVRLAorICAgIE1TR19JRF9XU1ZDX05FVF9TVEFUX0FERFJfQ05GLAorICAgIE1TR19JRF9XU1ZDX01BQ19SRVEsCisgICAgTVNHX0lEX1dTVkNfTUFDX0NORiwKKworICAgIC8qIFVzZXIgLS0+IFdTVkMgKi8KKyAgICBNU0dfSURfV1NWQ19UWF9FVkVOVCwKKyAgICBNU0dfSURfV1NWQ19UWF9ESURfRVZFTlQsCisgICAgTVNHX0lEX1dTVkNfTUFDX1VQREFURV9FVkVOVCwKKyAgICBNU0dfSURfV1NWQ19ERVJFR19DQl9FVkVOVCwKKworICAgIC8qIFBETUEgRFJWIC0tPiBXU1ZDICovCisgICAgTVNHX0lEX1dTVkNfUlhfRVZFTlQsCisgICAgTVNHX0lEX1dTVkNfSEFMX0VWRU5ULAorCisgICAgLyogV1NWQyAtLT4gREhMICovCisgICAgTVNHX0lEX1dTVkNfREhMX1BLVERVTVBfUkVRLAorCisgICAgLyogVXNlciAtLT4gUlggbW9kdWxlICovCisgICAgTVNHX0lEX1dTVkNfRk9SQ0VfUkVMX1NITV9FVkVOVCwKKyAgICBNU0dfSURfV1NWQ19JUEZfUlVMRV9ERUxfRVZFTlQsCisKKyAgICAvKiBXU1ZDIC0tPiBSV1NWQyAqLworICAgIE1TR19JRF9XU1ZDX1JXU1ZDX0VWRU5ULAorCitNT0RVTEVfTVNHX0VORChNU0dfSURfV1NWQ19UQUlMKQorCisjZW5kaWYgIC8vCV9XU1ZDX01TR0lEX0hfIApkaWZmIC0tZ2l0IGEvbWN1L2ludGVyZmFjZS9zYXAvc3ZjX3NhcC5oIGIvbWN1L2ludGVyZmFjZS9zYXAvc3ZjX3NhcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MGY5MjkKLS0tIC9kZXYvbnVsbAorKysgYi9tY3UvaW50ZXJmYWNlL3NhcC9zdmNfc2FwLmgKQEAgLTAsMCArMSw3NiBAQAorI2lmbmRlZiBTVkNfU0FQX0gKKyNkZWZpbmUgU1ZDX1NBUF9ICisKKyNpbmNsdWRlICJzYXBfcmFuZ2UuaCIKKworTU9EVUxFX1NBUF9CRUdJTihTQVBfSURfU1ZDX0NPREVfQkVHSU4pCisgIElOVkFMSURfU0FQID0gU0FQX0lEX1NWQ19DT0RFX0JFR0lOLAorICBJTkxJTkVfSUxNX1NBUCwKKyAgRlNfU0FQLAorICBGVF9UU1RfU0FQLAorICBQU19OVlJBTV9TQVAsCisgIFNUQUNLX1NJTV9USU1FUl9TQVAsCisgIFNUQUNLX1RJTUVSX1NBUCwKKyAgLyogQWRkIGJ5IExURSBTUyAqLworICBESExfRVRTVE1fU0FQLAorICBFVFNUTV9ESExfU0FQLAorICBFTDFfREhMX1NBUCwKKyAgREhMX01EREJHX1NBUCwKKyAgTUREQkdfREhMX1NBUCwKKyAgQ0NDSVNSVl9TQVAsCisgIERITF9FTDFUU1RfU0FQLAorICBFTDFUU1RfREhMX1NBUCwKKyAgTU1SRlRTVF9ESExfU0FQLAorICAvKiBBZGQgYnkgW1BTXVtSUkNFXSwgVVQgbWFudWFsIGluamVjdCBUaW1lciBFeHBpcnkgKi8KKyAgTklMX1JSQ0VfSU5KRUNUX1RJTUVSX1NBUCwKKyAgREhMX0NMMVRTVF9TQVAsCisgIENMMVRTVF9ESExfU0FQLAorICBEMl9OQ0NNTklfVVNFUl9TRU5TSVRJVkVfU0FQLAorICBTVEtCUkdfRDJfVVNFUl9TRU5TSVRJVkVfU0FQLAorICBTVEtCUkdfRDJfU0FQLAorICBTVEtCUkdfSU1TX1VTRVJfU0VOU0lUSVZFX1NBUCwKKyAgU1RLQlJHX0lNU19TQVAsCisgIFNUS0JSR19EMkNNX1NBUCwKKyAgU1RLQlJHX0RITF9TQVAsCisgIFNUS0VWVERfRVZUX1NBUCwKKyAgTkFMVFBfREJHX1NBUCwKKyAgRU1fTU1SRlRTVF9TQVAsCisgIE1DSUZfU0FQLAorICBJUFNFQ19TQVAsCisgIE5MMV9GVF9TQVAsCisgIENSUFRCUkdfU0FQLAorICBTQVBfUkVMQVlFUl9MT0dHSU5HX1NBUCwKKyAgU0FQX1JFTEFZRVJfQ1RSTF9TQVAsCisgIE5BTF9NT05JVE9SX1NBUCwKKyAgRkNTX1NBUCwKKyAgTURGUE1fU0FQLAorICBXRlBNX1NBUCwKKyAgRVRIU1ZDX1NBUCwKKyAgU1RLQlJHX0VUSFNWQ19TQVAsCisgIC8qIFdMQyAqLworICBXTENfQVRQX1NBUCwKKyAgQVRQX1dMQ19TQVAsCisgIFdMQ19VU0VSX1NBUCwKKyAgTkFMX0ROU19TQVAsCisgIE4zU0FNX0NFUlRfU0FQLAorICBUTFNfQ0VSVF9TQVAsCisgIE1URl9TQVAsCisgIC8qIElOVENUUkwgKi8KKyAgSU5UQ1RSTF9VU0VSX1NBUCwKKyAgRERNX0lOVENUUkxfU0FQLAorICBJUFNFQ19VU0VSX1NFTlNJVElWRV9TQVAsCitNT0RVTEVfU0FQX0VORChTQVBfSURfU1ZDX0NPREVfVEFJTCkKKworTU9EVUxFX1NBUF9CRUdJTihTQVBfSURfU1lTU0VSVklDRV9DT0RFX0JFR0lOKQorICAgTEFTVF9TQVBfQ09ERSwKK01PRFVMRV9TQVBfRU5EKFNBUF9JRF9TWVNTRVJWSUNFX0NPREVfVEFJTCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICogU2hvdWxkIE5PVCBhZGQgU0FQIGFmdGVyIFJFU0VSVkVfRk9SX0lMTV9TQVAsIElOTElORV9JTE1fRkxBR19TQVAsCisgICAgIG9yIElOTElORV9JTE1fU0FQCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgSU5MSU5FX0lMTV9TQVAgKElOTElORV9JTE1fRkxBR19TQVAgfCBSRVNFUlZFX0ZPUl9JTkxJTkVfSUxNX1NBUCkKKworI2RlZmluZSBNQVhfQ1VTVE9NX1NBUF9JRCAgICAgICAgIDEwICAgICAvKiBNYXhpbXVtIGN1c3RvbSBTQVAgSUQgKi8gLyogRG9uJ3QgbW9kaWZ5ICovCisKKyNlbmRpZiAvKiBTVkNfU0FQX0ggKi8K