IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojICAgICAgICAgICAgICAgICAgICAgICBDQURFTkNFIENPUFlSSUdIVCBOT1RJQ0UKIyAgICAgICAgIKkgMjAwOC0yMDEzIENhZGVuY2UgRGVzaWduIFN5c3RlbXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBGb3VuZGF0aW9uIEZsb3cgaXMgcHJvdmlkZWQgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcGVyZm9ybSBzcGVjaWFsaXplZAojIHRhc2tzLgojCiMgVGhpcyB3b3JrIG1heSBub3QgYmUgY29waWVkLCByZS1wdWJsaXNoZWQsIHVwbG9hZGVkLCBvciBkaXN0cmlidXRlZCBpbiBhbnkgd2F5LAojIGluIGFueSBtZWRpdW0sIHdoZXRoZXIgaW4gd2hvbGUgb3IgaW4gcGFydCwgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24KIyBmcm9tIENhZGVuY2UuIE5vdHdpdGhzdGFuZGluZyBhbnkgcmVzdHJpY3Rpb25zIGhlcmVpbiwgc3ViamVjdCB0byBjb21wbGlhbmNlCiMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIENhZGVuY2Ugc29mdHdhcmUgbGljZW5zZSBhZ3JlZW1lbnQgdW5kZXIKIyB3aGljaCB0aGlzIG1hdGVyaWFsIHdhcyBwcm92aWRlZCwgdGhpcyBtYXRlcmlhbCBtYXkgYmUgY29waWVkIGFuZCBpbnRlcm5hbGx5CiMgZGlzdHJpYnV0ZWQgc29sZWx5IGZvciBpbnRlcm5hbCBwdXJwb3NlcyBmb3IgdXNlIHdpdGggQ2FkZW5jZSB0b29scy4KIwojIFRoaXMgd29yayBpcyBDYWRlbmNlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBhbmQgbWF5IHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYmUKIyBnaXZlbiB0byB0aGlyZCBwYXJ0aWVzLCBuZWl0aGVyIGluIG9yaWdpbmFsIG5vciBpbiBtb2RpZmllZCB2ZXJzaW9ucywgd2l0aG91dAojIGV4cGxpY2l0IHdyaXR0ZW4gcGVybWlzc2lvbiBmcm9tIENhZGVuY2UuIFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlzCiMgdGhlIHByb3ByaWV0YXJ5IGFuZCBjb25maWRlbnRpYWwgaW5mb3JtYXRpb24gb2YgQ2FkZW5jZSBvciBpdHMgbGljZW5zb3JzLCBhbmQKIyBpcyBzdXBwbGllZCBzdWJqZWN0IHRvLCBhbmQgbWF5IGJlIHVzZWQgb25seSBieSBDYWRlbmNlJ3MgY3VycmVudCBjdXN0b21lcnMKIyBpbiBhY2NvcmRhbmNlIHdpdGgsIGEgcHJldmlvdXNseSBleGVjdXRlZCBsaWNlbnNlIGFncmVlbWVudCBiZXR3ZWVuIENhZGVuY2UKIyBhbmQgaXRzIGN1c3RvbWVyLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUSElTIE1BVEVSSUFMIElTIFBST1ZJREVEIEJZIENBREVOQ0UgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAojIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCiMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KIyBJTiBOTyBFVkVOVCBTSEFMTCBDQURFTkNFIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwKIyBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAojIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgojIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgIE1BVEVSSUFMLCBFVkVOIElGCiMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmdsb2JhbCB2YXJzCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgRGVmaW5lIHNvbWUgdmFyaWFibGVzIHRvIHBvaW50IHRvIGRhdGEsIGxpYnJhcmllcywgYW5kIHNjcmlwdHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpzZXQgdmFycyhkZXNpZ25fcm9vdCkgIFtwd2RdLy4uLy4uCnNldCB2YXJzKGRhdGFfcm9vdCkgIi4uLy4uL291dHB1dHMvIgpzZXQgdmFycyhsaWJyYXJ5X3Jvb3QpICIuLi8uLi9vdXRwdXRzLyIKc2V0IHZhcnMoc2NyaXB0X3Jvb3QpICBbcHdkXS9TQ1JJUFRTCiNzZXQgaW5pdF9pb19maWxlIGVuY291bnRlci5pbwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGRlZmluZSB0aGUgZGVzaWduIGRhdGEKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHZhcnMoZGVzaWduKSAgICAgICA8ZGVzaWduIG5hbWU+IFJFUVVJUkVECiMgdmFycyhuZXRsaXN0KSAgICAgIDx2ZXJpbG9nIG5ldGxpc3QgZmlsZT4gUkVRVUlSRUQKIyB2YXJzKGN0c19zcGVjKSAgICAgPGN0cyBzcGVjIGZpbGUgbGlzdCA+IFJFUVVJUkVECiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBFaXRoZXIgZnBfZmlsZSwgZGVmX2ZpbGVzIG9yIGJvdGggTVVTVCBiZSBkZWZpbmVkCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyB2YXJzKGZwX2ZpbGUpICAgICAgPGZsb29ycGxhbiBmaWxlPgojIHZhcnMoZnBfZmlsZSkgICAgICA8Zmxvb3JwbGFuIFRDTCBmaWxlPgojIHZhcnMoZGVmX2ZpbGVzKSAgICAgPGZsb29ycGxhbiBERUYgZmlsZT4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzZXQgdmFycyhkZXNpZ24pICAgICAgICAgICAicmlzY3YiCnNldCB2YXJzKG5ldGxpc3QpICAgICAgICAgICIkdmFycyhkYXRhX3Jvb3QpL3Jpc2N2LnZoIgojc2V0IHZhcnMoZnBfZmlsZSkgICAgJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUuZnAKI3NldCB2YXJzKGN0c19zcGVjKSAgIiR2YXJzKGRhdGFfcm9vdCkvZHRtZl9yZWN2cl9jb3JlLmN0c3RjaCIKI3NldCB2YXJzKGRlZl9maWxlcykgIiR2YXJzKGRhdGFfcm9vdCkvZHRtZl9yZWN2cl9jb3JlLnNjYW4uZGVmLmd6IgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgdmFycyhjcGZfZmlsZSkgICAgPFJFUVVJUkVEIGZvciBMUCBmbG93cz4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojc2V0IHZhcnMoY3BmX2ZpbGUpICAgJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUuY3BmCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVGhlIGZvbGxvd2luZyBhcmUgZm9yIHRoZSBJTE0gYmFzZWQgaGllcmFyY2hpY2FsIGZsb3cKIyB2YXJzKHBhcnRpdGlvbl9saXN0KSAgICAgICAgICAgICAgICAgICAgIDxwdG4xPiA8cHRuMj4gLi4uIFJFUVVJUkVECiMgdmFycyg8cHRuMT4sY3RzX3NwZWMpICAgICAgICAgICAgICAgICAgICA8Y3RzIHNwZWMgZm9yIHB0bjE+IAojIHZhcnMoPHB0bjE+LGxhdGVuY3lfc2RjKSAgICAgICAgICAgICAgICAgPGxhdGVuY3kgc2RjIGZvciBwdG4xPiAKIyB2YXJzKDxwdG4xPixpbmNyX2N0c19zZGMpICAgICAgICAgICAgICAgIDxwb3N0IGN0cyBpbmNyIHNkYyBmb3IgcHRuMT4gT1BUSU9OQUwKIyB2YXJzKDxwdG4xPixwb3N0X2N0c19zZGMpICAgICAgICAgICAgICAgIDxwb3N0IGN0cyAoZnVsbCkgc2RjIGZvciBwdG4xPiBPUFRJT05BTAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiNzZXQgdmFycyhwYXJ0aXRpb25fbGlzdCkgICAgICAgICAgICAgICAgICAgInRkc3BfY29yZSByZXN1bHRzX2NvbnYiCiNzZXQgdmFycyhkdG1mX3JlY3ZyX2NvcmUsY3RzX3NwZWMpICAgICAgICAgJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUuY3RzdGNoCiNzZXQgdmFycyhkdG1mX3JlY3ZyX2NvcmUsbGF0ZW5jeV9zZGMpICAgICAgJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUubGF0ZW5jeS5zZGMKI3NldCB2YXJzKHRkc3BfY29yZSxjdHNfc3BlYykgICAgICAgICAgICAgICAkdmFycyhkYXRhX3Jvb3QpL3Rkc3BfY29yZS5jdHN0Y2gKI3NldCB2YXJzKHRkc3BfY29yZSxzZXR1cF9mdW5jLGxhdGVuY3lfc2RjKSAkdmFycyhkYXRhX3Jvb3QpL3Rkc3BfY29yZS5sYXRlbmN5LnNkYwojc2V0IHZhcnMocmVzdWx0c19jb252LGN0c19zcGVjKSAgICAgICAgICAgICR2YXJzKGRhdGFfcm9vdCkvcmVzdWx0c19jb252LmN0c3RjaAojc2V0IHZhcnMocmVzdWx0c19jb252LGxhdGVuY3lfc2RjKSAgICAgICAgICR2YXJzKGRhdGFfcm9vdCkvcmVzdWx0c19jb252LmxhdGVuY3kuc2RjCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgVGhlIGZvbGxvd2luZyBhcmUgUkVRVUlSRUQKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHZhcnMocHJvY2VzcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb2Nlc3Mgbm9kZT4gKDY1bm0sIDkwbm0sIGUuZy4pCiMgdmFycyhtYXhfcm91dGVfbGF5ZXJzKSAgICAgICAgICAgICAgICAgICA8dG9wIHJvdXRpbmcgbGF5ZXI+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKc2V0IHZhcnMocHJvY2VzcykgICAgICAgICAgICAgICAgICAgICAgICAgIDEzMG5tCnNldCB2YXJzKG1heF9yb3V0ZV9sYXllcikgICAgICAgICAgICAgICAgICA1CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgRGVmaW5lIGxpYnJhcnkgc2V0cyAuLi4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHNldCB2YXJzKGxpYnJhcnlfc2V0cykgIjxzZXQxPiA8c2V0Mj4gLi4uIgojIHNldCB2YXJzKDxzZXQxPix0aW1pbmcpIDxsaXN0IG9mIGxpYiBmaWxlcz4gKFJFUVVJUkVEKQojIHNldCB2YXJzKDxzZXQxPixzaSkgICAgIDxsaXN0IG9mIGNkYi91ZG4gZmlsZXM+IChPUFRJT05BTCkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpzZXQgdmFycyhsaWJyYXJ5X3NldHMpICAgImxpYnNfdHQiCnNldCB2YXJzKGxpYnNfdHQsdGltaW5nKSAiLi4vLi4vb3V0cHV0cy9za3kxMzBfb3N1X3NjXzE1VF9tc19UVF8xUDhfMjVDLmNjcy5saWIiCnNldCB2YXJzKGxlZl9maWxlcykgIi4uLy4uL2NoYXIvdGVjaGZpbGVzL3NreTEzMF9vc3Vfc2NfMTVULnRsZWYgXAoJCSAgICAgLi4vLi4vb3V0cHV0cy9za3kxMzBfb3N1X3NjXzE1VF9tcy5sZWYgIgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSByYyBjb3JuZXJzIC4uLgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgc2V0IHZhcnMocmNfY29ybmVycykgICAgICAgICAgIjxjb3JuZXIxPiA8Y29ybmVyMj4gLi4uIgojIHNldCB2YXJzKDxjb3JuZXIxPixUKSAgICAgICAgICA8dGVtcGVyYXR1cmU+CiMgc2V0IHZhcnMoPGNvcm5lcjE+LGNhcF90YWJsZSkgIDxjYXAgdGFibGUgZm9yIGNvcm5lcjE+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBPcHRpb25hbGx5IGRlZmluZSBRUkMgdGVjaG5vbG9neSBpbmZvcm1hdGlvbgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgc2V0IHZhcnMoPGNvcm5lcj4scXhfdGVjaF9maWxlKSA8cXhfdGVjaF9maWxlIGZvciBjb3JuZXIxPgojIHNldCB2YXJzKDxjb3JuZXI+LHF4X2xpYl9maWxlKSAgPHF4X2xpYl9maWxlIGZvciBjb3JuZXIxPgojIHNldCB2YXJzKDxjb3JuZXI+LHF4X2NvbmZfZmlsZSkgPHF4X2NvbmZfZmlsZSBmb3IgY29ybmVyMT4KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpzZXQgdmFycyhyY19jb3JuZXJzKSAgICAgICAgICAicmNfdHlwIgpzZXQgdmFycyhyY190eXAsVCkgICAgICAgICAgICAyNQoKI3NldCB2YXJzKHJjX21heCxjYXBfdGFibGUpICAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9jYXBUYmwvY2xuNDVscF9lZHJhbV8xcDA4bV9jd29yc3QuY2FwVGJsCiNzZXQgdmFycyhyY19taW4sY2FwX3RhYmxlKSAgICAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvY2FwVGJsL2NsbjQ1bHBfZWRyYW1fMXAwOG1fY2Jlc3QuY2FwVGJsCiNzZXQgdmFycyhyY19tYXgscXhfdGVjaF9maWxlKSAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvcXJjL2NsbjQ1bHBfZWRyYW1fMXAwOG1fY3dvcnN0L2ljZWNhcHMudGNoCiNzZXQgdmFycyhyY19taW4scXhfdGVjaF9maWxlKSAkdmFycyhkZXNpZ25fcm9vdCkvTElCUy9ONDUvcXJjL2NsbjQ1bHBfZWRyYW1fMXAwOG1fY2Jlc3QvaWNlY2Fwcy50Y2gKI3NldCB2YXJzKHF4X2xheWVyX21hcF9maWxlKSAgICR2YXJzKGRlc2lnbl9yb290KS9MSUJTL040NS9xcmMvbGF5ZXIubWFwCiNzZXQgdmFycyhzaWdub2ZmX2V4dHJhY3Rpb25fZW5naW5lKSBxcmMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBTY2FsZSBmYWN0b3JzIGFyZSBhbHNvIG9wdGlvbmFsIGJ1dCBhcmUgc3Ryb25nbHkgZW5jb3VyYWdlZCBmb3IgCiMgb2J0YWluaW5nIHRoZSBiZXN0IGZsb3cgY29udmVyZ2VuY2UgYW5kIFFvUi4gIAojIFNjYWxpbmcgZmFjdG9ycyBhcmUgYXBwbGllZCBwZXIgcmMgY29ybmVyCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBzZXQgdmFycyg8cmNfY29ybmVyPixkZWZfcmVzX2ZhY3RvcikgICAgIDxwcmUtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+CiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGVmX2Nsa19yZXNfZmFjdG9yKSA8cHJlLXJvdXRlIGNsb2NrIHJlc2lzdGFuY2Ugc2NhbGUgZmFjdG9yPgojIHNldCB2YXJzKDxyY19jb3JuZXI+LGRldF9yZXNfZmFjdG9yKSAgICAgPHBvc3Qtcm91dGUgcmVzaXN0YW5jZSBzY2FsZSBmYWN0b3I+CiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2Nsa19yZXNfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayByZXNpc3RhbmNlIHNjYWxlIGZhY3Rvcj4KIyBzZXQgdmFycyg8cmNfY29ybmVyPixkZWZfY2FwX2ZhY3RvcikgICAgIDxwcmUtcm91dGUgY2FwYWNpdGFuY2Ugc2NhbGUgZmFjdG9yPgojIHNldCB2YXJzKDxyY19jb3JuZXI+LGRlZl9jbGtfY2FwX2ZhY3RvcikgPHByZS1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+CiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2NhcF9mYWN0b3IpICAgICA8cG9zdC1yb3V0ZSBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+CiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4sZGV0X2Nsa19jYXBfZmFjdG9yKSA8cG9zdC1yb3V0ZSBjbG9jayBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+CiMgc2V0IHZhcnMoPHJjX2Nvcm5lcj4seGNhcF9mYWN0b3IpICAgICAgICA8cG9zdC1yb3V0ZSBjb3VwbGluZyBjYXBhY2l0YW5jZSBzY2FsZSBmYWN0b3I+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKc2V0IHZhcnMocmNfbWF4LGRlZl9yZXNfZmFjdG9yKSAgICAgMS4wMApzZXQgdmFycyhyY19tYXgsZGVmX2Nsa19yZXNfZmFjdG9yKSAxLjAwCnNldCB2YXJzKHJjX21heCxkZXRfcmVzX2ZhY3RvcikgICAgIDEuMDAKc2V0IHZhcnMocmNfbWF4LGRldF9jbGtfcmVzX2ZhY3RvcikgMS4wMApzZXQgdmFycyhyY19tYXgsZGVmX2NhcF9mYWN0b3IpICAgICAxLjA5CnNldCB2YXJzKHJjX21heCxkZWZfY2xrX2NhcF9mYWN0b3IpIDEuMDAKc2V0IHZhcnMocmNfbWF4LGRldF9jYXBfZmFjdG9yKSAgICAgMS4wMApzZXQgdmFycyhyY19tYXgsZGV0X2Nsa19jYXBfZmFjdG9yKSAxLjAwCnNldCB2YXJzKHJjX21heCx4Y2FwX2ZhY3RvcikgICAgICAgIDEuMDAKCnNldCB2YXJzKHJjX21pbixkZWZfcmVzX2ZhY3RvcikgICAgIDEuMDAKc2V0IHZhcnMocmNfbWluLGRldF9yZXNfZmFjdG9yKSAgICAgMS4wMApzZXQgdmFycyhyY19taW4sZGVmX2NhcF9mYWN0b3IpICAgICAxLjAwCnNldCB2YXJzKHJjX21pbixkZXRfY2FwX2ZhY3RvcikgICAgIDEuMDAKc2V0IHZhcnMocmNfbWluLHhjYXBfZmFjdG9yKSAgICAgICAgMS4wMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSBvcGVyYXRpbmcgY29uZGl0aW9ucyAob3B0aW9uYWwpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBzZXQgdmFycyhvcGNvbmRzKSAgICAgICAgICAgICAgICAiPG9wY29uZDE+IDxvcGNvbmQyPiAuLi4iCiMgc2V0IHZhcnMoPG9wY29uZDE+LGxpYnJhcnlfZmlsZSkgIDxsaWJyYXJ5IGZpbGUgPgojIHNldCB2YXJzKDxvcGNvbmQxPixwcm9jZXNzKSAgICAgICA8cHJvY2VzcyBzY2FsZSBmYWN0b3I+CiMgc2V0IHZhcnMoPG9wY29uZDE+LHZvbHRhZ2UpICAgICAgIDx2b2x0YWdlPgojIHNldCB2YXJzKDxvcGNvbmQxPix0ZW1wZXJhdHVyZSkgICA8dGVtcGVyYXR1cmU+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBEZWZpbmUgZGVsYXkgY29ybmVycyAuLi4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHNldCB2YXJzKGRlbGF5X2Nvcm5lcnMpICAgICAgICAgICI8Y29ybmVyMT4gPGNvcm5lcjI+IC4uLiIKIyBzZXQgdmFycyg8Y29ybmVyMT4sbGlicmFyeV9zZXQpICAgPGxpYnJhcnlfc2V0PiAocHJldmlvdXNseSBkZWZpbmVkKQojIHNldCB2YXJzKDxjb3JuZXIxPixvcGNvbmQpICAgICAgICA8b3Bjb25kPiAocHJldmlvdXNseSBkZWZpbmVkKSAob3B0aW9uYWwpCiMgc2V0IHZhcnMoPGNvcm5lcjE+LHJjX2Nvcm5lcikgICAgIDxyY19jb3JuZXI+IChwcmV2aW91c2x5IGRlZmluZWQpCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKc2V0IHZhcnMoZGVsYXlfY29ybmVycykgImNvcm5lcl90dCIKc2V0IHZhcnMoY29ybmVyX3R0LGxpYnJhcnlfc2V0KSBsaWJzX3R0CnNldCB2YXJzKGNvcm5lcl90dCxyY19jb3JuZXIpIHJjX3R5cAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSBjb25zdHJhaW50cyBtb2RlcyAuLi4gCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBzZXQgdmFycyhjb25zdHJhaW50X21vZGVzKSAgICAgICAgICAiPG1vZGUxPiA8bW9kZTI+IC4uLiIKIyBzZXQgdmFycyg8bW9kZTE+LHByZV9jdHNfc2RjKSAgICAgICAgPHByZSBjdHMgY29uc3RyYWludCBmaWxlPgojIHNldCB2YXJzKDxtb2RlMT4scG9zdF9jdHNfc2RjKSAgICAgICA8cG9zdCBjdHMgY29uc3RyYWludCBmaWxlPiAob3B0aW9uYWwpCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCnNldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICJzZXR1cF9mdW5jX21vZGUiCnNldCB2YXJzKHNldHVwX2Z1bmNfbW9kZSxwcmVfY3RzX3NkYykgIiR2YXJzKGRhdGFfcm9vdCkvcmlzY3Yuc2RjIgoKI3NldCB2YXJzKGNvbnN0cmFpbnRfbW9kZXMpICAgICAgICAgICAgICJzZXR1cF9mdW5jX21vZGUgaG9sZF9mdW5jX21vZGUiCiNzZXQgdmFycyhzZXR1cF9mdW5jX21vZGUscHJlX2N0c19zZGMpICAiJHZhcnMoZGF0YV9yb290KS9kdG1mX3JlY3ZyX2NvcmUuc2RjICR2YXJzKGRhdGFfcm9vdCkvcHJlY3RzLnNkYyIKI3NldCB2YXJzKHNldHVwX2Z1bmNfbW9kZSxwb3N0X2N0c19zZGMpICIkdmFycyhkYXRhX3Jvb3QpL2R0bWZfcmVjdnJfY29yZS5zZGMgJHZhcnMoZGF0YV9yb290KS9wb3N0Y3RzLnNkYyIKI3NldCB2YXJzKHNldHVwX2Z1bmNfbW9kZSxpbmNyX2N0c19zZGMpICAkdmFycyhkYXRhX3Jvb3QpL3Bvc3RjdHMuc2RjCgojc2V0IHZhcnMoaG9sZF9mdW5jX21vZGUscHJlX2N0c19zZGMpICAgICR2YXJzKHNldHVwX2Z1bmNfbW9kZSxwcmVfY3RzX3NkYykKI3NldCB2YXJzKGhvbGRfZnVuY19tb2RlLHBvc3RfY3RzX3NkYykgICAkdmFycyhzZXR1cF9mdW5jX21vZGUscG9zdF9jdHNfc2RjKQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSBhbmFseXNpcyB2aWV3cyAuLi4KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAgICAiPHZpZXcxPiA8dmlldzI+IgojIHNldCB2YXJzKGhvbGRfYW5hbHlzaXNfdmlld3MpICAgICAiPHZpZXcxPiA8dmlldzI+IgojIHNldCB2YXJzKDx2aWV3MT4sZGVsYXlfY29ybmVyKSAgICAgPGRlbGF5IGNvcm5lcj4KIyBzZXQgdmFycyg8dmlldzE+LGNvbnN0cmFpbnRfbW9kZSkgIDxjb25zdHJhaW50IG1vZGU+CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKc2V0IHZhcnMoaG9sZF9hbmFseXNpc192aWV3cykgInNldHVwX2Z1bmMiCnNldCB2YXJzKHNldHVwX2FuYWx5c2lzX3ZpZXdzKSAiaG9sZF9mdW5jIgpzZXQgdmFycyhob2xkX2Z1bmMsZGVsYXlfY29ybmVyKSBjb3JuZXJfdHQKc2V0IHZhcnMoaG9sZF9mdW5jLGNvbnN0cmFpbnRfbW9kZSkgc2V0dXBfZnVuY19tb2RlCnNldCB2YXJzKHNldHVwX2Z1bmMsZGVsYXlfY29ybmVyKSBjb3JuZXJfdHQKc2V0IHZhcnMoc2V0dXBfZnVuYyxjb25zdHJhaW50X21vZGUpIHNldHVwX2Z1bmNfbW9kZQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSBhY3RpdmUgc2V0dXAgYW5kIGhvbGQgdmlld3MgYW5kIGRlbm90ZSB3aGljaCBhcmUgZGVmYXVsdAojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnNldCB2YXJzKGRlZmF1bHRfc2V0dXBfdmlldykgInNldHVwX2Z1bmMiCnNldCB2YXJzKGRlZmF1bHRfaG9sZF92aWV3KSAgImhvbGRfZnVuYyIKc2V0IHZhcnMoYWN0aXZlX3NldHVwX3ZpZXdzKSAic2V0dXBfZnVuYyIKc2V0IHZhcnMoYWN0aXZlX2hvbGRfdmlld3MpICAiaG9sZF9mdW5jIgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSBkZXJhdGluZyBmYWN0b3JzIGZvciBPQ1YgaGVyZSAoY2xvY2sgYW5kIGRhdGEpLiAKIyBEZXJhdGluZyBmYWN0b3JzIGFyZSBhcHBsaWVkIHBlciBkZWxheSBjb3JuZXIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpzZXQgdmFycyhzbG93X21heCxkYXRhX2NlbGxfbGF0ZSkgICAxLjAwCnNldCB2YXJzKHNsb3dfbWF4LGRhdGFfY2VsbF9lYXJseSkgIDEuMDAKc2V0IHZhcnMoc2xvd19tYXgsZGF0YV9uZXRfbGF0ZSkgICAgMS4wMApzZXQgdmFycyhzbG93X21heCxkYXRhX25ldF9lYXJseSkgICAxLjAwCnNldCB2YXJzKHNsb3dfbWF4LGNsb2NrX2NlbGxfbGF0ZSkgIDEuMDAKc2V0IHZhcnMoc2xvd19tYXgsY2xvY2tfY2VsbF9lYXJseSkgMS4wMApzZXQgdmFycyhzbG93X21heCxjbG9ja19uZXRfbGF0ZSkgICAxLjAwCnNldCB2YXJzKHNsb3dfbWF4LGNsb2NrX25ldF9lYXJseSkgIDEuMDAKCnNldCB2YXJzKGZhc3RfbWluLGRhdGFfY2VsbF9sYXRlKSAgIDEuMDAKc2V0IHZhcnMoZmFzdF9taW4sZGF0YV9jZWxsX2Vhcmx5KSAgMS4wMApzZXQgdmFycyhmYXN0X21pbixkYXRhX25ldF9sYXRlKSAgICAxLjAwCnNldCB2YXJzKGZhc3RfbWluLGRhdGFfbmV0X2Vhcmx5KSAgIDEuMDAKc2V0IHZhcnMoZmFzdF9taW4sY2xvY2tfY2VsbF9sYXRlKSAgMS4wMApzZXQgdmFycyhmYXN0X21pbixjbG9ja19jZWxsX2Vhcmx5KSAxLjAwCnNldCB2YXJzKGZhc3RfbWluLGNsb2NrX25ldF9sYXRlKSAgIDEuMDAKc2V0IHZhcnMoZmFzdF9taW4sY2xvY2tfbmV0X2Vhcmx5KSAgMS4wMAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIERlZmluZSBwb3dlci9ncm91bmQgbmV0cwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnNldCB2YXJzKHBvd2VyX25ldHMpICJWREQiCnNldCB2YXJzKGdyb3VuZF9uZXRzKSAiVlNTIgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBEaXN0cmlidXRpb24gc2V0dXAKIyBsc2YsIHJzaCwgbG9jYWwsIG9yIGN1c3RvbQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojc2V0IHZhcnMoZGlzdHJpYnV0ZSkgICAgICAgICAgIGN1c3RvbQojc2V0IHZhcnMoY3VzdG9tLHNjcmlwdCkgICAgICAgIHsvZ3JpZC9zZmkvZmFybS9iaW4vZ3JpZHN1YiAtVyA3MjowMCAtUCBTT0M3LjEgXAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtUiAiU0ZJQVJDSD09T1BUNjQgJiYgT1NSRUw9PUVFNDAiIC1xIGxueDY0fQojc2V0IHZhcnMobG9jYWxfY3B1cykgICAgICAgICAgIDIKI3NldCB2YXJzKHJlbW90ZV9ob3N0cykgICAgICAgICA0CiNzZXQgdmFycyhjcHVfcGVyX3JlbW90ZV9ob3N0KSAgMgoKUHV0cyAiPEZGPiBGaW5pc2hlZCBsb2FkaW5nIHNldHVwLnRjbCIK