From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Implement Unicode choice on Emojier Date: Sun, 31 May 2026 02:06:44 GMT Message-ID: <178019320417.1.17625921082937905980.rpms-ibus-a3692b858299@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: a3692b858299cb34215faddd7332862f9999d32b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBhMzY5MmI4NTgyOTljYjM0MjE1ZmFkZGQ3MzMyODYyZjk5OTlk MzJiCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE4LTAyLTA2VDE0OjQzOjU1KzA5OjAwClN0YXRzICA6ICs0MzM5Ly00OCBpbiAzIGZpbGUo cykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvYTM2 OTJiODU4Mjk5Y2IzNDIxNWZhZGRkNzMzMjg2MmY5OTk5ZDMyYj9icmFuY2g9YXV0b3Rvb2wKCkxv ZzoKSW1wbGVtZW50IFVuaWNvZGUgY2hvaWNlIG9uIEVtb2ppZXIKCi0tLQpkaWZmIC0tZ2l0IGEv aWJ1cy1IRUFELnBhdGNoIGIvaWJ1cy1IRUFELnBhdGNoCmluZGV4IGIwZDcyMTYuLjZiMjFlZjUg MTAwNjQ0Ci0tLSBhL2lidXMtSEVBRC5wYXRjaAorKysgYi9pYnVzLUhFQUQucGF0Y2gKQEAgLTE3 MCwzICsxNzAsNDI3NSBAQCBpbmRleCA0NjhhYTMyNC4uMzM5NDlmYTEgMTAwNjQ0CiAtLSAKIDIu MTQuMwogCitGcm9tIGUxN2M5OTg1OWQwNmFiNzUzMjY3MzBlNDUwNzJlMTA2MWY3ZDg3YzcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+CitEYXRlOiBNb24sIDI5IEphbiAyMDE4IDE2OjUwOjA3ICswOTAwCitTdWJqZWN0 OiBbUEFUQ0hdIEltcGxlbWVudCBVbmljb2RlIGNob2ljZSBvbiBFbW9qaWVyCisKK0JVRz1odHRw czovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8xOTIyCisKK1JldmlldyBVUkw6IGh0dHBz Oi8vY29kZXJldmlldy5hcHBzcG90LmNvbS8zNDAxOTAwNDMKKy0tLQorIGNvbmZpZ3VyZS5hYyAg ICAgICAgICAgICAgfCAgIDQxICstCisgcG8vUE9URklMRVMuaW4gICAgICAgICAgICB8ICAgIDEg KworIHNyYy9NYWtlZmlsZS5hbSAgICAgICAgICAgfCAgIDU1ICsrLQorIHNyYy9lbW9qaS1wYXJz ZXIuYyAgICAgICAgfCAgICAzICstCisgc3JjL2lidXMuaCAgICAgICAgICAgICAgICB8ICAgIDQg Ky0KKyBzcmMvaWJ1c3VuaWNvZGUuYyAgICAgICAgIHwgMTA2OSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKworIHNyYy9pYnVzdW5pY29kZS5oICAgICAgICAgfCAgMjk5 ICsrKysrKysrKysrKworIHNyYy9pYnVzdW5pY29kZWdlbi5oICAgICAgfCAxMTUxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHNyYy91bmljb2RlLXBhcnNl ci5jICAgICAgfCAgNTAyICsrKysrKysrKysrKysrKysrKysrCisgdWkvZ3RrMy9lbW9qaWVyLnZh bGEgICAgICB8ICA1NTAgKysrKysrKysrKysrKysrKysrKy0tLQorIHVpL2d0azMvZW1vamllcmFw cC52YWxhICAgfCAgICAyICsKKyB1aS9ndGszL2lidXNlbW9qaWRpYWxvZy5oIHwgICAgOSArLQor IHVpL2d0azMvcGFuZWwudmFsYSAgICAgICAgfCAgICAzICstCisgMTMgZmlsZXMgY2hhbmdlZCwg MzYxMyBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2lidXN1bmljb2RlLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lidXN1bmljb2RlLmgK KyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lidXN1bmljb2RlZ2VuLmgKKyBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3VuaWNvZGUtcGFyc2VyLmMKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBi L2NvbmZpZ3VyZS5hYworaW5kZXggNDc4OTMyOGUuLmJkNDEwNjliIDEwMDY0NAorLS0tIGEvY29u ZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0zLDggKzMsOCBAQAorICMgaWJ1cyAt IFRoZSBJbnB1dCBCdXMKKyAjCisgIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNiBQZW5nIEh1YW5n IDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0jIENvcHlyaWdodCAoYykgMjAxNS0yMDE3IFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorLSMgQ29weXJpZ2h0IChj KSAyMDA3LTIwMTcgUmVkIEhhdCwgSW5jLgorKyMgQ29weXJpZ2h0IChjKSAyMDE1LTIwMTggVGFr YW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrIyBDb3B5cmlnaHQgKGMp IDIwMDctMjAxOCBSZWQgSGF0LCBJbmMuCisgIworICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICMgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTY1Myw2ICs2 NTMsNDEgQEAgaHR0cHM6Ly9naXRodWIuY29tL2Z1aml3YXJhdC9jbGRyLWVtb2ppLWFubm90YXRp b24pCisgICAgIGVuYWJsZV9lbW9qaV9kaWN0PSJ5ZXMgKGVuYWJsZWQsIHVzZSAtLWRpc2FibGUt ZW1vamktZGljdCB0byBkaXNhYmxlKSIKKyBmaQorIAorKyMgLS1kaXNhYmxlLXVuaWNvZGUtZGlj dCBvcHRpb24uCisrQUNfQVJHX0VOQUJMRSh1bmljb2RlLWRpY3QsCisrICAgIEFTX0hFTFBfU1RS SU5HKFstLWRpc2FibGUtdW5pY29kZS1kaWN0XSwKKysgICAgICAgICAgICAgICAgICAgW0RvIG5v dCBidWlsZCBVbmljb2RlIGRpY3QgZmlsZXNdKSwKKysgICAgW2VuYWJsZV91bmljb2RlX2RpY3Q9 JGVuYWJsZXZhbF0sCisrICAgIFtlbmFibGVfdW5pY29kZV9kaWN0PXllc10KKyspCisrQU1fQ09O RElUSU9OQUwoW0VOQUJMRV9VTklDT0RFX0RJQ1RdLCBbdGVzdCB4IiRlbmFibGVfdW5pY29kZV9k aWN0IiA9IHgieWVzIl0pCisrCisrQUNfQVJHX1dJVEgodWNkLWRpciwKKysgICAgQVNfSEVMUF9T VFJJTkcoWy0td2l0aC11Y2QtZGlyWz1ESVJdXSwKKysgICAgICAgIFtTZXQgdGhlIGRpcmVjdG9y eSBvZiBVQ0QgKFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlKSBmaWxlcy4KKysgICAgICAgICAo ZGVmYXVsdDogIi91c3Ivc2hhcmUvdW5pY29kZS91Y2QiKV0pLAorKyAgICBVQ0RfRElSPSR3aXRo X2Vtb2ppX2Fubm90YXRpb25fZGlyLAorKyAgICBVQ0RfRElSPSIvdXNyL3NoYXJlL3VuaWNvZGUv dWNkIgorKykKKytBQ19TVUJTVChVQ0RfRElSKQorKworK2lmIHRlc3QgeCIkZW5hYmxlX3VuaWNv ZGVfZGljdCIgPSB4InllcyI7IHRoZW4KKysgICAgaWYgdGVzdCAhIC1mICRVQ0RfRElSL05hbWVz TGlzdC50eHQgOyB0aGVuCisrICAgICAgICBBQ19NU0dfRVJST1IoTm90IGZvdW5kICRVQ0RfRElS L05hbWVzTGlzdC50eHQuIFlvdSBjYW4gZ2V0IFwKKyt0aGUgVUNEIGZpbGVzIGZyb20gaHR0cHM6 Ly93d3cudW5pY29kZS5vcmcvUHVibGljL1VOSURBVEEvKQorKyAgICBlbGlmIHRlc3QgISAtZiAk VUNEX0RJUi9CbG9ja3MudHh0IDsgdGhlbgorKyAgICAgICAgQUNfTVNHX0VSUk9SKE5vdCBmb3Vu ZCAkVUNEX0RJUi9CbG9ja3MudHh0LiBZb3UgY2FuIGdldCBcCisrdGhlIFVDRCBmaWxlcyBmcm9t IGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBLykKKysgICAgZWxzZQorKyAg ICAgICAgIyBQT1NJWCBTSEVMTCBoYXMgbm8gJHtGT086MDoxfQorKyAgICAgICAgaGVhZD1gZWNo byAiJFVDRF9ESVIiIHwgY3V0IC1jMWA7CisrICAgICAgICBpZiB0ZXN0ICRoZWFkICE9ICIvIiA7 IHRoZW4KKysgICAgICAgICAgICBVQ0RfRElSPWByZWFscGF0aCAiJFVDRF9ESVIiYAorKyAgICAg ICAgZmkKKysgICAgZmkKKysgICAgZW5hYmxlX3VuaWNvZGVfZGljdD0ieWVzIChlbmFibGVkLCB1 c2UgLS1kaXNhYmxlLXVuaWNvZGUtZGljdCB0byBkaXNhYmxlKSIKKytmaQorKworICMgQ2hlY2sg aXNvLWNvZGVzLgorIFBLR19DSEVDS19NT0RVTEVTKElTT0NPREVTLCBbCisgICAgIGlzby1jb2Rl cworQEAgLTc0Myw2ICs3NzgsOCBAQCBCdWlsZCBvcHRpb25zOgorICAgRW5hYmxlIEVtb2ppIGRp Y3QgICAgICAgICAgICAgJGVuYWJsZV9lbW9qaV9kaWN0CisgICBVbmljb2RlIEVtb2ppIGRpcmVj dG9yeSAgICAgICAkVU5JQ09ERV9FTU9KSV9ESVIKKyAgIENMRFIgYW5ub3RhdGlvbiBkaXJlY3Rv cnkgICAgICRFTU9KSV9BTk5PVEFUSU9OX0RJUgorKyAgRW5hYmxlIFVuaWNvZGUgZGljdCAgICAg ICAgICAgJGVuYWJsZV91bmljb2RlX2RpY3QKKysgIFVDRCBkaXJlY3RvcnkgICAgICAgICAgICAg ICAgICRVQ0RfRElSCisgICBSdW4gdGVzdCBjYXNlcyAgICAgICAgICAgICAgICAkZW5hYmxlX3Rl c3RzCisgXSkKKyAKK2RpZmYgLS1naXQgYS9wby9QT1RGSUxFUy5pbiBiL3BvL1BPVEZJTEVTLmlu CitpbmRleCAwMGY3YzdmNi4uNThkMWUzOWQgMTAwNjQ0CistLS0gYS9wby9QT1RGSUxFUy5pbgor KysrIGIvcG8vUE9URklMRVMuaW4KK0BAIC01MSw2ICs1MSw3IEBAIHNyYy9pYnVzcGFuZWxzZXJ2 aWNlLmMKKyBzcmMvaWJ1c3Byb3h5LmMKKyBzcmMvaWJ1c3JlZ2lzdHJ5LmMKKyBzcmMvaWJ1c3Nl cnZpY2UuYworK3NyYy9pYnVzdW5pY29kZWdlbi5oCisgc3JjL2lidXN1dGlsLmMKKyBzcmMva2V5 bmFtZS10YWJsZS5oCisgdG9vbHMvbWFpbi52YWxhCitkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxl LmFtIGIvc3JjL01ha2VmaWxlLmFtCitpbmRleCAzMDMyNTBmNS4uMWJhNDE4ZDggMTAwNjQ0Cist LS0gYS9zcmMvTWFrZWZpbGUuYW0KKysrKyBiL3NyYy9NYWtlZmlsZS5hbQorQEAgLTQxLDYgKzQx LDcgQEAgSU5UUk9TUEVDVElPTl9DT01QSUxFUl9BUkdTID0gXAorICAgICAkKE5VTEwpCisgSU5U Uk9TUEVDVElPTl9HSVJTID0KKyBDTEVBTkZJTEVTID0KKytub2luc3RfUFJPR1JBTVMgPQorIAor ICMgQyBwcmVwcm9jZXNzb3IgZmxhZ3MKKyBBTV9DUFBGTEFHUyA9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKK0BAIC0xMDAsNiArMTAxLDcgQEAgaWJ1c19zb3Vy Y2VzID0gICAgICAgICAgICAgIFwKKyAgICAgaWJ1c3NlcnZpY2UuYyAgICAgICAgICAgXAorICAg ICBpYnVzc2hhcmUuYyAgICAgICAgICAgICBcCisgICAgIGlidXN0ZXh0LmMgICAgICAgICAgICAg IFwKKysgICAgaWJ1c3VuaWNvZGUuYyAgICAgICAgICAgXAorICAgICBpYnVzdXRpbC5jICAgICAg ICAgICAgICBcCisgICAgIGlidXN4bWwuYyAgICAgICAgICAgICAgIFwKKyAgICAgJChOVUxMKQor QEAgLTE1MSw2ICsxNTMsNyBAQCBpYnVzX2hlYWRlcnMgPSAgICAgICAgICAgICAgXAorICAgICBp YnVzc2hhcmUuaCAgICAgICAgICAgICBcCisgICAgIGlidXN0ZXh0LmggICAgICAgICAgICAgIFwK KyAgICAgaWJ1c3R5cGVzLmggICAgICAgICAgICAgXAorKyAgICBpYnVzdW5pY29kZS5oICAgICAg ICAgICBcCisgICAgIGlidXN1dGlsLmggICAgICAgICAgICAgIFwKKyAgICAgaWJ1c3htbC5oICAg ICAgICAgICAgICAgXAorICAgICAkKE5VTEwpCitAQCAtMTY5LDYgKzE3Miw3IEBAIGlidXNfcHJp dmF0ZV9oZWFkZXJzID0gICAgICAgICAgXAorICAgICBpYnVzZW1vamlnZW4uaCAgICAgICAgICAg ICAgXAorICAgICBpYnVzZW5naW5lc2ltcGxlcHJpdmF0ZS5oICAgXAorICAgICBpYnVzaW50ZXJu YWwuaCAgICAgICAgICAgICAgXAorKyAgICBpYnVzdW5pY29kZWdlbi5oICAgICAgICAgICAgXAor ICAgICBrZXluYW1lLXRhYmxlLmggICAgICAgICAgICAgXAorICAgICAkKE5VTEwpCisgbm9pbnN0 X0hFQURFUlMgPSAgICAgICAgICAgIFwKK0BAIC0yNDEsNyArMjQ1LDcgQEAgZGljdGRpciA9ICQo cGtnZGF0YWRpcikvZGljdHMKKyBkaWN0X0RBVEEgPSBkaWN0cy9lbW9qaS1lbi5kaWN0CisgTEFO R19GSUxFUyA9ICQoYmFzZW5hbWUgJChub3RkaXIgJCh3aWxkY2FyZCAkKEVNT0pJX0FOTk9UQVRJ T05fRElSKS8qLnhtbCkpKQorIAorLW5vaW5zdF9QUk9HUkFNUyA9IGVtb2ppLXBhcnNlcgorK25v aW5zdF9QUk9HUkFNUyArPSBlbW9qaS1wYXJzZXIKKyAKKyBkaWN0cy9lbW9qaS1lbi5kaWN0OiBl bW9qaS1wYXJzZXIKKyAJJChBTV9WX2F0KWlmIHRlc3QgeCIkKExBTkdfRklMRVMpIiA9IHggOyB0 aGVuIFwKK0BAIC0zMjUsMTIgKzMyOSw2MCBAQCBjbGVhbi1sb2NhbDoKKyAJJChOVUxMKQorIGVu ZGlmCisgCisraWYgRU5BQkxFX1VOSUNPREVfRElDVAorK3VuaWNvZGVkaXIgPSAkKHBrZ2RhdGFk aXIpL2RpY3RzCisrdW5pY29kZV9EQVRBID0gZGljdHMvdW5pY29kZS1uYW1lcy5kaWN0IGRpY3Rz L3VuaWNvZGUtYmxvY2tzLmRpY3QKKytub2luc3RfUFJPR1JBTVMgKz0gdW5pY29kZS1wYXJzZXIK KysKKytkaWN0cy91bmljb2RlLW5hbWVzLmRpY3Q6IHVuaWNvZGUtcGFyc2VyCisrCSQoQU1fVl9h dClpbnB1dF9maWxlPSIkKFVDRF9ESVIpL05hbWVzTGlzdC50eHQiOyBcCisrCWlmIHRlc3QgISAt ZiAiJCRpbnB1dF9maWxlIiA7IHRoZW4gXAorKwkgICAgZWNobyAiV0FSTklORzogTm90IGZvdW5k ICQkaW5wdXRfZmlsZSIgMT4mMjsgXAorKwllbHNlIFwKKysJICAgICQoYnVpbGRkaXIpL3VuaWNv ZGUtcGFyc2VyIFwKKysJICAgICAgICAtLWlucHV0LW5hbWVzLWxpc3QgJCRpbnB1dF9maWxlIFwK KysJICAgICAgICAtLW91dHB1dC1uYW1lcy1saXN0ICRAOyBcCisrCSAgICBlY2hvICJHZW5lcmF0 ZWQgJEAiOyBcCisrCWZpOworKworK2RpY3RzL3VuaWNvZGUtYmxvY2tzLmRpY3Q6IHVuaWNvZGUt cGFyc2VyCisrCSQoQU1fVl9hdClpbnB1dF9maWxlPSIkKFVDRF9ESVIpL0Jsb2Nrcy50eHQiOyBc CisrCWlmIHRlc3QgISAtZiAiJCRpbnB1dF9maWxlIiA7IHRoZW4gXAorKwkgICAgZWNobyAiV0FS TklORzogTm90IGZvdW5kICQkaW5wdXRfZmlsZSIgMT4mMjsgXAorKwllbHNlIFwKKysJICAgICQo YnVpbGRkaXIpL3VuaWNvZGUtcGFyc2VyIFwKKysJICAgICAgICAtLWlucHV0LWJsb2NrcyAkJGlu cHV0X2ZpbGUgXAorKwkgICAgICAgIC0tb3V0cHV0LWJsb2Nrcy10cmFucyBpYnVzdW5pY29kZWdl bi5oIFwKKysJICAgICAgICAtLW91dHB1dC1ibG9ja3MgJEA7IFwKKysJICAgIGVjaG8gIkdlbmVy YXRlZCAkQCI7IFwKKysJZmk7CisrCisraWJ1c3VuaWNvZGVnZW4uaDogZGljdHMvdW5pY29kZS1i bG9ja3MuZGljdAorKwkkKE5VTEwpCisrCisrdW5pY29kZV9wYXJzZXJfU09VUkNFUyA9ICAgICAg ICBcCisrICAgIHVuaWNvZGUtcGFyc2VyLmMgICAgICAgICAgICBcCisrICAgICQoTlVMTCkKKyt1 bmljb2RlX3BhcnNlcl9DRkxBR1MgPSAgICAgICAgIFwKKysgICAgJChHTElCMl9DRkxBR1MpICAg ICAgICAgICAgIFwKKysgICAgJChOVUxMKQorK3VuaWNvZGVfcGFyc2VyX0xEQUREID0gICAgICAg ICAgXAorKyAgICAkKEdMSUIyX0xJQlMpICAgICAgICAgICAgICAgXAorKyAgICAkKGxpYmlidXMp ICAgICAgICAgICAgICAgICAgXAorKyAgICAkKE5VTEwpCisrCisrY2xlYW4tbG9jYWw6CisrCS1y bSAtcmYgZGljdHMKKysJJChOVUxMKQorK2VuZGlmCisrCisgRVhUUkFfRElTVCA9ICAgICAgICAg ICAgICAgICAgICBcCisgICAgIGVtb2ppLXBhcnNlci5jICAgICAgICAgICAgICBcCisgICAgIGli dXN2ZXJzaW9uLmguaW4gICAgICAgICAgICBcCisgICAgIGlidXNtYXJzaGFsZXJzLmxpc3QgICAg ICAgICBcCisgICAgIGlidXNlbnVtdHlwZXMuaC50ZW1wbGF0ZSAgICBcCisgICAgIGlidXNlbnVt dHlwZXMuYy50ZW1wbGF0ZSAgICBcCisrICAgIHVuaWNvZGUtcGFyc2VyLmMgICAgICAgICAgICBc CisgICAgICQoTlVMTCkKKyAKKyBDTEVBTkZJTEVTICs9ICAgICAgICAgICAgICAgICAgIFwKK0BA IC0zNDEsNiArMzkzLDcgQEAgQ0xFQU5GSUxFUyArPSAgICAgICAgICAgICAgICAgICBcCisgCisg RElTVENMRUFORklMRVMgPSAgICAgICAgICAgICAgICBcCisgICAgIGlidXNlbW9qaWdlbi5oICAg ICAgICAgICAgICBcCisrICAgIGlidXN1bmljb2RlZ2VuLmggICAgICAgICAgICBcCisgICAgIGli dXN2ZXJzaW9uLmggICAgICAgICAgICAgICBcCisgICAgICQoTlVMTCkKKyAKK2RpZmYgLS1naXQg YS9zcmMvZW1vamktcGFyc2VyLmMgYi9zcmMvZW1vamktcGFyc2VyLmMKK2luZGV4IGZlM2U0ZWY4 Li4wZjdjOGNmYiAxMDA2NDQKKy0tLSBhL3NyYy9lbW9qaS1wYXJzZXIuYworKysrIGIvc3JjL2Vt b2ppLXBhcnNlci5jCitAQCAtMSw3ICsxLDcgQEAKKyAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1v ZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisgLyogdmltOnNldCBldCBz dHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworLSAqIENvcHlyaWdodCAoQykgMjAx Ni0yMDE3IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENv cHlyaWdodCAoQykgMjAxNi0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21h aWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAxNiBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBU aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCitAQCAtMTEyNiw2ICsxMTI2LDcgQEAgY2F0ZWdvcnlfZmlsZV9zYXZlIChjb25zdCBnY2hh ciAqZmlsZW5hbWUsCisgICAgIGlmICghZ19maWxlX2dldF9jb250ZW50cyAoX19GSUxFX18sICZj b250ZW50LCAmbGVuZ3RoLCAmZXJyb3IpKSB7CisgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQg dG8gbG9hZCAlczogJXMiLCBfX0ZJTEVfXywgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAgZ19j bGVhcl9wb2ludGVyICgmZXJyb3IsIGdfZXJyb3JfZnJlZSk7CisrICAgICAgICByZXR1cm47Cisg ICAgIH0KKyAgICAgYnVmZiA9IGdfc3RyaW5nX25ldyAoTlVMTCk7CisgICAgIHAgPSBjb250ZW50 OworZGlmZiAtLWdpdCBhL3NyYy9pYnVzLmggYi9zcmMvaWJ1cy5oCitpbmRleCBjNmNmNThjZi4u ODAxMTcyOWYgMTAwNjQ0CistLS0gYS9zcmMvaWJ1cy5oCisrKysgYi9zcmMvaWJ1cy5oCitAQCAt Miw3ICsyLDggQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5w dXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5o dWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUmVkIEhhdCwgSW5j LgorKyAqIENvcHlyaWdodCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCisg ICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTU3LDYgKzU4LDcgQEAKKyAjaW5jbHVkZSA8aWJ1c3V0 aWwuaD4KKyAjaW5jbHVkZSA8aWJ1c3JlZ2lzdHJ5Lmg+CisgI2luY2x1ZGUgPGlidXNlbW9qaS5o PgorKyNpbmNsdWRlIDxpYnVzdW5pY29kZS5oPgorIAorICNpZm5kZWYgSUJVU19ESVNBQkxFX0RF UFJFQ0FURUQKKyAjaW5jbHVkZSA8aWJ1c2tleXN5bXMtY29tcGF0Lmg+CitkaWZmIC0tZ2l0IGEv c3JjL2lidXN1bmljb2RlLmMgYi9zcmMvaWJ1c3VuaWNvZGUuYworbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwLi44NTU5ODE5ZAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL2li dXN1bmljb2RlLmMKK0BAIC0wLDAgKzEsMTA2OSBAQAorKy8qIC0qLSBtb2RlOiBDOyBjLWJhc2lj LW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KKysvKiB2aW06c2V0IGV0 IHN0cz00OiAqLworKy8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKKysgKiBDb3B5cmlnaHQgKEMpIDIw MTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJp Z2h0IChDKSAyMDE4IFJlZCBIYXQsIEluYy4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisrICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysg KgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKysgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMQorKyAq IFVTQQorKyAqLworKyNpZmRlZiBIQVZFX0NPTkZJR19ICisrI2luY2x1ZGUgPGNvbmZpZy5oPgor KyNlbmRpZgorKworKyNpbmNsdWRlIDxnbGliLmg+CisrI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+ CisrI2luY2x1ZGUgImlidXNpbnRlcm5hbC5oIgorKyNpbmNsdWRlICJpYnVzZXJyb3IuaCIKKysj aW5jbHVkZSAiaWJ1c3VuaWNvZGUuaCIKKysKKysjZGVmaW5lIElCVVNfVU5JQ09ERV9EQVRBX01B R0lDICJJQnVzVW5pY29kZURhdGEiCisrI2RlZmluZSBJQlVTX1VOSUNPREVfQkxPQ0tfTUFHSUMg IklCdXNVbmljb2RlQmxvY2siCisrI2RlZmluZSBJQlVTX1VOSUNPREVfREFUQV9WRVJTSU9OICgx KQorKyNkZWZpbmUgSUJVU19VTklDT0RFX0RFU0VSSUFMSVpFX1NJR05BTExfU1RSIFwKKysgICAg ICAgICJkZXNlcmlhbGl6ZS11bmljb2RlIgorKworK2VudW0geworKyAgICBQUk9QXzAgPSAwLAor KyAgICBQUk9QX0NPREUsCisrICAgIFBST1BfTkFNRSwKKysgICAgUFJPUF9BTElBUywKKysgICAg UFJPUF9CTE9DS19OQU1FLAorKyAgICBQUk9QX1NUQVJULAorKyAgICBQUk9QX0VORAorK307Cisr Cisrc3RydWN0IF9JQnVzVW5pY29kZURhdGFQcml2YXRlIHsKKysgICAgZ3VuaWNoYXIgICAgY29k ZTsKKysgICAgZ2NoYXIgICAgICAqbmFtZTsKKysgICAgZ2NoYXIgICAgICAqYWxpYXM7CisrICAg IGdjaGFyICAgICAgKmJsb2NrX25hbWU7CisrfTsKKysKKytzdHJ1Y3QgX0lCdXNVbmljb2RlQmxv Y2tQcml2YXRlIHsKKysgICAgZ3VuaWNoYXIgICAgc3RhcnQ7CisrICAgIGd1bmljaGFyICAgIGVu ZDsKKysgICAgZ2NoYXIgICAgICAqbmFtZTsKKyt9OworKworK3R5cGVkZWYgc3RydWN0IHsKKysg ICAgSUJ1c1VuaWNvZGVEYXRhTG9hZEFzeW5jRmluaXNoIGNhbGxiYWNrOworKyAgICBncG9pbnRl ciAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhOworK30gSUJ1c1VuaWNvZGVEYXRhTG9h ZERhdGE7CisrCisrI2RlZmluZSBJQlVTX1VOSUNPREVfREFUQV9HRVRfUFJJVkFURShvKSAgXAor KyAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgXAorKyAgICBJQlVTX1RZUEVf VU5JQ09ERV9EQVRBLCBcCisrICAgIElCdXNVbmljb2RlRGF0YVByaXZhdGUpKQorKyNkZWZpbmUg SUJVU19VTklDT0RFX0JMT0NLX0dFVF9QUklWQVRFKG8pICBcCisrICAgKEdfVFlQRV9JTlNUQU5D RV9HRVRfUFJJVkFURSAoKG8pLCBcCisrICAgIElCVVNfVFlQRV9VTklDT0RFX0JMT0NLLCBcCisr ICAgIElCdXNVbmljb2RlQmxvY2tQcml2YXRlKSkKKysKKysvKiBmdW5jdGlvbnMgcHJvdG90eXBl ICovCisrc3RhdGljIHZvaWQgICAgICBpYnVzX3VuaWNvZGVfZGF0YV9zZXRfcHJvcGVydHkgKElC dXNVbmljb2RlRGF0YSAgICAgICp1bmljb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgcHJvcF9pZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1Zh bHVlICAgICAgICAgKnZhbHVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHUGFyYW1TcGVjICAgICAgICAgICAqcHNwZWMpOworK3N0YXRpYyB2b2lk ICAgICAgaWJ1c191bmljb2RlX2RhdGFfZ2V0X3Byb3BlcnR5IChJQnVzVW5pY29kZURhdGEgICAg ICAqdW5pY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgIHByb3BfaWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAgICAgICAgICAgICAgICp2YWx1 ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1Bh cmFtU3BlYyAgICAgICAgICAgKnBzcGVjKTsKKytzdGF0aWMgdm9pZCAgICAgIGlidXNfdW5pY29k ZV9kYXRhX2Rlc3Ryb3kgICAgICAoSUJ1c1VuaWNvZGVEYXRhICAgICAgKnVuaWNvZGUpOworK3N0 YXRpYyBnYm9vbGVhbiAgaWJ1c191bmljb2RlX2RhdGFfc2VyaWFsaXplICAgIChJQnVzVW5pY29k ZURhdGEgICAgICAqdW5pY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICAgICAgKmJ1aWxkZXIpOworK3N0YXRpYyBn aW50ICAgICAgaWJ1c191bmljb2RlX2RhdGFfZGVzZXJpYWxpemUgIChJQnVzVW5pY29kZURhdGEg ICAgICAqdW5pY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICAgKnZhcmlhbnQpOworK3N0YXRpYyBnYm9vbGVh biAgaWJ1c191bmljb2RlX2RhdGFfY29weSAgICAgICAgIChJQnVzVW5pY29kZURhdGEgICAgICAq ZGVzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBJQnVzVW5pY29kZURhdGEgKnNyYyk7Cisrc3RhdGljIHZvaWQgICAgICBpYnVzX3VuaWNv ZGVfYmxvY2tfc2V0X3Byb3BlcnR5CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKElCdXNVbmljb2RlQmxvY2sgICAgICpibG9jaywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAg ICAgIHByb3BfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IEdWYWx1ZSAgICAgICAgICp2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAgICAgICAgICAgKnBzcGVj KTsKKytzdGF0aWMgdm9pZCAgICAgIGlidXNfdW5pY29kZV9ibG9ja19nZXRfcHJvcGVydHkKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1VuaWNv ZGVCbG9jayAgICAgKmJsb2NrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgcHJvcF9pZCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICAgICAgICAgICAg ICAgKnZhbHVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHUGFyYW1TcGVjICAgICAgICAgICAqcHNwZWMpOworK3N0YXRpYyB2b2lkICAgICAgaWJ1 c191bmljb2RlX2Jsb2NrX2Rlc3Ryb3kgICAgIChJQnVzVW5pY29kZUJsb2NrICAgICAqYmxvY2sp OworK3N0YXRpYyBnYm9vbGVhbiAgaWJ1c191bmljb2RlX2Jsb2NrX3NlcmlhbGl6ZSAgIChJQnVz VW5pY29kZUJsb2NrICAgICAqYmxvY2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRlciAgICAgICpidWlsZGVyKTsKKytzdGF0 aWMgZ2ludCAgICAgIGlidXNfdW5pY29kZV9ibG9ja19kZXNlcmlhbGl6ZSAoSUJ1c1VuaWNvZGVC bG9jayAgICAgKmJsb2NrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAqdmFyaWFudCk7Cisrc3RhdGljIGdib29s ZWFuICBpYnVzX3VuaWNvZGVfYmxvY2tfY29weSAgICAgICAgKElCdXNVbmljb2RlQmxvY2sgICAg ICpkZXN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IElCdXNVbmljb2RlQmxvY2sgKnNyYyk7CisrCisrR19ERUZJTkVfVFlQRSAoSUJ1c1Vu aWNvZGVEYXRhLCBpYnVzX3VuaWNvZGVfZGF0YSwgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKKytH X0RFRklORV9UWVBFIChJQnVzVW5pY29kZUJsb2NrLCBpYnVzX3VuaWNvZGVfYmxvY2ssIElCVVNf VFlQRV9TRVJJQUxJWkFCTEUpCisrCisrc3RhdGljIHZvaWQKKytpYnVzX3VuaWNvZGVfZGF0YV9j bGFzc19pbml0IChJQnVzVW5pY29kZURhdGFDbGFzcyAqY2xhc3MpCisreworKyAgICBJQnVzT2Jq ZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IElCVVNfT0JKRUNUX0NMQVNTIChjbGFzcyk7CisrICAg IEdPYmplY3RDbGFzcyAqZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChjbGFzcyk7Cisr ICAgIElCdXNTZXJpYWxpemFibGVDbGFzcyAqc2VyaWFsaXphYmxlX2NsYXNzID0gSUJVU19TRVJJ QUxJWkFCTEVfQ0xBU1MgKGNsYXNzKTsKKysKKysgICAgb2JqZWN0X2NsYXNzLT5kZXN0cm95ID0g KElCdXNPYmplY3REZXN0cm95RnVuYykgaWJ1c191bmljb2RlX2RhdGFfZGVzdHJveTsKKysgICAg Z29iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0KKysgICAgICAgICAgICAoR09iamVjdFNldFBy b3BlcnR5RnVuYykgaWJ1c191bmljb2RlX2RhdGFfc2V0X3Byb3BlcnR5OworKyAgICBnb2JqZWN0 X2NsYXNzLT5nZXRfcHJvcGVydHkgPQorKyAgICAgICAgICAgIChHT2JqZWN0R2V0UHJvcGVydHlG dW5jKSBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfcHJvcGVydHk7CisrICAgIHNlcmlhbGl6YWJsZV9j bGFzcy0+c2VyaWFsaXplICAgPQorKyAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlU2VyaWFs aXplRnVuYykgaWJ1c191bmljb2RlX2RhdGFfc2VyaWFsaXplOworKyAgICBzZXJpYWxpemFibGVf Y2xhc3MtPmRlc2VyaWFsaXplID0KKysgICAgICAgICAgICAoSUJ1c1NlcmlhbGl6YWJsZURlc2Vy aWFsaXplRnVuYykgaWJ1c191bmljb2RlX2RhdGFfZGVzZXJpYWxpemU7CisrICAgIHNlcmlhbGl6 YWJsZV9jbGFzcy0+Y29weSAgICAgICAgPQorKyAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxl Q29weUZ1bmMpIGlidXNfdW5pY29kZV9kYXRhX2NvcHk7CisrCisrICAgIGdfdHlwZV9jbGFzc19h ZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c1VuaWNvZGVEYXRhUHJpdmF0ZSkpOworKwor KyAgICAvKiBpbnN0YWxsIHByb3BlcnRpZXMgKi8KKysgICAgLyoqCisrICAgICAqIElCdXNVbmlj b2RlRGF0YTpjb2RlOgorKyAgICAgKgorKyAgICAgKiBUaGUgVW5pb2RlIGNvZGUgcG9pbnQKKysg ICAgICovCisrICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xh c3MsCisrICAgICAgICAgICAgICAgICAgICBQUk9QX0NPREUsCisrICAgICAgICAgICAgICAgICAg ICBnX3BhcmFtX3NwZWNfdW5pY2hhciAoImNvZGUiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICJjb2RlIHBvaW50IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIFVuaWNvZGUgY29k ZSBwb2ludCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAg ICAgICAgICBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKKysK KysKKysgICAgLyoqCisrICAgICAqIElCdXNVbmljb2RlRGF0YTpuYW1lOgorKyAgICAgKgorKyAg ICAgKiBUaGUgVW5pb2RlIG5hbWUKKysgICAgICovCisrICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh bGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICBQUk9QX05B TUUsCisrICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgibmFtZSIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICJUaGUgVW5pY29kZSBuYW1lIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNU KSk7CisrCisrICAgIC8qKgorKyAgICAgKiBJQnVzVW5pY29kZURhdGE6YWxpYXM6CisrICAgICAq CisrICAgICAqIFRoZSBVbmlvZGUgYWxpYXMgbmFtZQorKyAgICAgKi8KKysgICAgZ19vYmplY3Rf Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ29iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAg ICAgIFBST1BfQUxJQVMsCisrICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5n ICgiYWxpYXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICJhbGlhcyBuYW1lIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAiVGhlIFVuaWNvZGUgYWxpYXMgbmFtZSIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFE V1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVCkpOworKworKyAgICAvKioKKysgICAgICogSUJ1c1Vu aWNvZGVEYXRhOmJsb2NrLW5hbWU6CisrICAgICAqCisrICAgICAqIFRoZSBVbmlvZGUgYmxvY2sg bmFtZQorKyAgICAgKi8KKysgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ29i amVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgIFBST1BfQkxPQ0tfTkFNRSwKKysgICAg ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJibG9jay1uYW1lIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAiYmxvY2sgbmFtZSIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgIlRoZSBVbmljb2RlIGJsb2NrIG5hbWUiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICIi LAorKyAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9D T05TVFJVQ1QpKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytpYnVzX3VuaWNvZGVfZGF0YV9pbml0 IChJQnVzVW5pY29kZURhdGEgKnVuaWNvZGUpCisreworKyAgICB1bmljb2RlLT5wcml2ID0gSUJV U19VTklDT0RFX0RBVEFfR0VUX1BSSVZBVEUgKHVuaWNvZGUpOworK30KKysKKytzdGF0aWMgdm9p ZAorK2lidXNfdW5pY29kZV9kYXRhX2Rlc3Ryb3kgKElCdXNVbmljb2RlRGF0YSAqdW5pY29kZSkK Kyt7CisrICAgIGdfY2xlYXJfcG9pbnRlciAoJnVuaWNvZGUtPnByaXYtPm5hbWUsIGdfZnJlZSk7 CisrICAgIGdfY2xlYXJfcG9pbnRlciAoJnVuaWNvZGUtPnByaXYtPmFsaWFzLCBnX2ZyZWUpOwor KyAgICBnX2NsZWFyX3BvaW50ZXIgKCZ1bmljb2RlLT5wcml2LT5ibG9ja19uYW1lLCBnX2ZyZWUp OworKworKyAgICBJQlVTX09CSkVDVF9DTEFTUyAoaWJ1c191bmljb2RlX2RhdGFfcGFyZW50X2Ns YXNzKS0+CisrICAgICAgICAgICAgZGVzdHJveSAoSUJVU19PQkpFQ1QgKHVuaWNvZGUpKTsKKyt9 CisrCisrc3RhdGljIHZvaWQKKytpYnVzX3VuaWNvZGVfZGF0YV9zZXRfcHJvcGVydHkgKElCdXNV bmljb2RlRGF0YSAqdW5pY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1 aW50ICAgICAgICAgICAgcHJvcF9pZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEdWYWx1ZSAgICAqdmFsdWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHUGFyYW1TcGVjICAgICAgKnBzcGVjKQorK3sKKysgICAgc3dpdGNoIChwcm9wX2lkKSB7Cisr ICAgIGNhc2UgUFJPUF9DT0RFOgorKyAgICAgICAgZ19hc3NlcnQgKHVuaWNvZGUtPnByaXYtPmNv ZGUgPT0gMCk7CisrICAgICAgICB1bmljb2RlLT5wcml2LT5jb2RlID0gZ192YWx1ZV9nZXRfdWlu dCAodmFsdWUpOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgUFJPUF9OQU1FOgorKyAgICAg ICAgZ19hc3NlcnQgKHVuaWNvZGUtPnByaXYtPm5hbWUgPT0gTlVMTCk7CisrICAgICAgICB1bmlj b2RlLT5wcml2LT5uYW1lID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7CisrICAgICAgICBi cmVhazsKKysgICAgY2FzZSBQUk9QX0FMSUFTOgorKyAgICAgICAgZ19hc3NlcnQgKHVuaWNvZGUt PnByaXYtPmFsaWFzID09IE5VTEwpOworKyAgICAgICAgdW5pY29kZS0+cHJpdi0+YWxpYXMgPSBn X3ZhbHVlX2R1cF9zdHJpbmcgKHZhbHVlKTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBS T1BfQkxPQ0tfTkFNRToKKysgICAgICAgIGdfZnJlZSAodW5pY29kZS0+cHJpdi0+YmxvY2tfbmFt ZSk7CisrICAgICAgICB1bmljb2RlLT5wcml2LT5ibG9ja19uYW1lID0gZ192YWx1ZV9kdXBfc3Ry aW5nICh2YWx1ZSk7CisrICAgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIEdf T0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAodW5pY29kZSwgcHJvcF9pZCwgcHNwZWMp OworKyAgICB9CisrfQorKworK3N0YXRpYyB2b2lkCisraWJ1c191bmljb2RlX2RhdGFfZ2V0X3By b3BlcnR5IChJQnVzVW5pY29kZURhdGEgKnVuaWNvZGUsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBndWludCAgICAgICAgICAgIHByb3BfaWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHVmFsdWUgICAgICAgICAgKnZhbHVlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAgICAgICpwc3BlYykKKyt7CisrICAgIHN3aXRjaCAo cHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQ09ERToKKysgICAgICAgIGdfdmFsdWVfc2V0X3Vp bnQgKHZhbHVlLCBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfY29kZSAodW5pY29kZSkpOworKyAgICAg ICAgYnJlYWs7CisrICAgIGNhc2UgUFJPUF9OQU1FOgorKyAgICAgICAgZ192YWx1ZV9zZXRfc3Ry aW5nICh2YWx1ZSwgaWJ1c191bmljb2RlX2RhdGFfZ2V0X25hbWUgKHVuaWNvZGUpKTsKKysgICAg ICAgIGJyZWFrOworKyAgICBjYXNlIFBST1BfQUxJQVM6CisrICAgICAgICBnX3ZhbHVlX3NldF9z dHJpbmcgKHZhbHVlLCBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfYWxpYXMgKHVuaWNvZGUpKTsKKysg ICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBST1BfQkxPQ0tfTkFNRToKKysgICAgICAgIGdfdmFs dWVfc2V0X3N0cmluZyAodmFsdWUsIGlidXNfdW5pY29kZV9kYXRhX2dldF9ibG9ja19uYW1lICh1 bmljb2RlKSk7CisrICAgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIEdfT0JK RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAodW5pY29kZSwgcHJvcF9pZCwgcHNwZWMpOwor KyAgICB9CisrfQorKworK3N0YXRpYyBnYm9vbGVhbgorK2lidXNfdW5pY29kZV9kYXRhX3Nlcmlh bGl6ZSAoSUJ1c1VuaWNvZGVEYXRhICAgKnVuaWNvZGUsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHVmFyaWFudEJ1aWxkZXIgICAqYnVpbGRlcikKKyt7CisrICAgIGdib29sZWFuIHJl dHZhbCA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNTIChpYnVzX3VuaWNvZGVfZGF0YV9wYXJlbnRf Y2xhc3MpLT4KKysgICAgICAgICAgICBzZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopdW5p Y29kZSwgYnVpbGRlcik7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChyZXR2YWwsIEZBTFNF KTsKKysKKysjZGVmaW5lIE5PVE5VTEwocykgKChzKSAhPSBOVUxMID8gKHMpIDogIiIpCisrICAg IC8qIElmIHlvdSB3aWxsIGFkZCBhIG5ldyBwcm9wZXJ0eSwgeW91IGNhbiBhcHBlbmQgaXQgYXQg dGhlIGVuZCBhbmQKKysgICAgICogeW91IHNob3VsZCBub3QgY2hhbmdlIHRoZSBzZXJpYWxpemVk IG9yZGVyIG9mIG5hbWUsIGxvbmduYW1lLAorKyAgICAgKiBkZXNjcmlwdGlvbiwgLi4uIGJlY2F1 c2UgdGhlIG9yZGVyIGlzIGFsc28gdXNlZCBpbiBvdGhlciBhcHBsaWNhdGlvbnMKKysgICAgICog bGlrZXMgaWJ1cy1xdC4gKi8KKysgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkIChidWlsZGVyLCAi dSIsIHVuaWNvZGUtPnByaXYtPmNvZGUpOworKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGJ1 aWxkZXIsICJzIiwgTk9UTlVMTCAodW5pY29kZS0+cHJpdi0+bmFtZSkpOworKyAgICBnX3Zhcmlh bnRfYnVpbGRlcl9hZGQgKGJ1aWxkZXIsICJzIiwgTk9UTlVMTCAodW5pY29kZS0+cHJpdi0+YWxp YXMpKTsKKysgICAgLyogVXNlIElCdXNVbmljb2RlQmxvY2sgZm9yIG1lbW9yeSB1c2FnZS4KKysg ICAgZ192YXJpYW50X2J1aWxkZXJfYWRkIChidWlsZGVyLCAicyIsIE5PVE5VTEwgKHVuaWNvZGUt PnByaXYtPmJsb2NrX25hbWUpKTsKKysgICAgICovCisrI3VuZGVmIE5PVE5VTEwKKysgICAgcmV0 dXJuIFRSVUU7CisrfQorKworK3N0YXRpYyBnaW50CisraWJ1c191bmljb2RlX2RhdGFfZGVzZXJp YWxpemUgKElCdXNVbmljb2RlRGF0YSAqdW5pY29kZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR1ZhcmlhbnQgICAgICAgICp2YXJpYW50KQorK3sKKysgICAgZ2ludCByZXR2YWwg PSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c191bmljb2RlX2RhdGFfcGFyZW50X2NsYXNz KS0+CisrICAgICAgICAgICAgZGVzZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopdW5pY29k ZSwgdmFyaWFudCk7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChyZXR2YWwsIDApOworKwor KyAgICAvKiBJZiB5b3Ugd2lsbCBhZGQgYSBuZXcgcHJvcGVydHksIHlvdSBjYW4gYXBwZW5kIGl0 IGF0IHRoZSBlbmQgYW5kCisrICAgICAqIHlvdSBzaG91bGQgbm90IGNoYW5nZSB0aGUgc2VyaWFs aXplZCBvcmRlciBvZiBuYW1lLCBsb25nbmFtZSwKKysgICAgICogZGVzY3JpcHRpb24sIC4uLiBi ZWNhdXNlIHRoZSBvcmRlciBpcyBhbHNvIHVzZWQgaW4gb3RoZXIgYXBwbGljYXRpb25zCisrICAg ICAqIGxpa2VzIGlidXMtcXQuICovCisrICAgIGdfdmFyaWFudF9nZXRfY2hpbGQgKHZhcmlhbnQs IHJldHZhbCsrLCAidSIsICZ1bmljb2RlLT5wcml2LT5jb2RlKTsKKysgICAgaWJ1c19nX3Zhcmlh bnRfZ2V0X2NoaWxkX3N0cmluZyAodmFyaWFudCwgcmV0dmFsKyssCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZ1bmljb2RlLT5wcml2LT5uYW1lKTsKKysgICAgaWJ1c19n X3ZhcmlhbnRfZ2V0X2NoaWxkX3N0cmluZyAodmFyaWFudCwgcmV0dmFsKyssCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1bmljb2RlLT5wcml2LT5hbGlhcyk7CisrICAg IC8qIFVzZSBJQnVzVW5pY29kZUJsb2NrIGZvciBtZW1vcnkgdXNhZ2UuCisrICAgIGlidXNfZ192 YXJpYW50X2dldF9jaGlsZF9zdHJpbmcgKHZhcmlhbnQsIHJldHZhbCsrLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmdW5pY29kZS0+cHJpdi0+YmxvY2tfbmFtZSk7Cisr ICAgICAqLworKyAgICByZXR1cm4gcmV0dmFsOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKytp YnVzX3VuaWNvZGVfZGF0YV9jb3B5IChJQnVzVW5pY29kZURhdGEgICAgICAgKmRlc3QsCisrICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgSUJ1c1VuaWNvZGVEYXRhICpzcmMpCisreworKyAg ICBnYm9vbGVhbiByZXR2YWwgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c191bmljb2Rl X2RhdGFfcGFyZW50X2NsYXNzKS0+CisrICAgICAgICAgICAgY29weSAoKElCdXNTZXJpYWxpemFi bGUgKilkZXN0LAorKyAgICAgICAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlICopc3JjKTsK KysgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJldHZhbCwgRkFMU0UpOworKworKyAgICBkZXN0 LT5wcml2LT5jb2RlICAgICAgICAgICAgID0gc3JjLT5wcml2LT5jb2RlOworKyAgICBkZXN0LT5w cml2LT5uYW1lICAgICAgICAgICAgID0gZ19zdHJkdXAgKHNyYy0+cHJpdi0+bmFtZSk7CisrICAg IGRlc3QtPnByaXYtPmFsaWFzICAgICAgICAgICAgPSBnX3N0cmR1cCAoc3JjLT5wcml2LT5hbGlh cyk7CisrICAgIGRlc3QtPnByaXYtPmJsb2NrX25hbWUgICAgICAgPSBnX3N0cmR1cCAoc3JjLT5w cml2LT5ibG9ja19uYW1lKTsKKysgICAgcmV0dXJuIFRSVUU7CisrfQorKworK0lCdXNVbmljb2Rl RGF0YSAqCisraWJ1c191bmljb2RlX2RhdGFfbmV3IChjb25zdCBnY2hhciAqZmlyc3RfcHJvcGVy dHlfbmFtZSwgLi4uKQorK3sKKysgICAgdmFfbGlzdCB2YXJfYXJnczsKKysgICAgSUJ1c1VuaWNv ZGVEYXRhICp1bmljb2RlOworKworKyAgICBnX2Fzc2VydCAoZmlyc3RfcHJvcGVydHlfbmFtZSAh PSBOVUxMKTsKKysgICAgdmFfc3RhcnQgKHZhcl9hcmdzLCBmaXJzdF9wcm9wZXJ0eV9uYW1lKTsK KysgICAgdW5pY29kZSA9IChJQnVzVW5pY29kZURhdGEgKikgZ19vYmplY3RfbmV3X3ZhbGlzdCAo SUJVU19UWVBFX1VOSUNPREVfREFUQSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfcHJvcGVydHlfbmFtZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyX2FyZ3MpOwor KyAgICB2YV9lbmQgKHZhcl9hcmdzKTsKKysgICAgLyogY29kZSBpcyByZXF1aXJlZC4gT3RoZXIg cHJvcGVydGllcyBhcmUgc2V0IGluIGNsYXNzX2luaXQgYnkgZGVmYXVsdC4gKi8KKysgICAgZ19h c3NlcnQgKHVuaWNvZGUtPnByaXYtPm5hbWUgIT0gTlVMTCk7CisrICAgIGdfYXNzZXJ0ICh1bmlj b2RlLT5wcml2LT5hbGlhcyAhPSBOVUxMKTsKKysgICAgZ19hc3NlcnQgKHVuaWNvZGUtPnByaXYt PmJsb2NrX25hbWUgIT0gTlVMTCk7CisrICAgIHJldHVybiB1bmljb2RlOworK30KKysKKytndW5p Y2hhcgorK2lidXNfdW5pY29kZV9kYXRhX2dldF9jb2RlIChJQnVzVW5pY29kZURhdGEgKnVuaWNv ZGUpCisreworKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoSUJVU19JU19VTklDT0RFX0RBVEEg KHVuaWNvZGUpLCBHX01BWFVJTlQzMik7CisrCisrICAgIHJldHVybiB1bmljb2RlLT5wcml2LT5j b2RlOworK30KKysKKytjb25zdCBnY2hhciAqCisraWJ1c191bmljb2RlX2RhdGFfZ2V0X25hbWUg KElCdXNVbmljb2RlRGF0YSAqdW5pY29kZSkKKyt7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls IChJQlVTX0lTX1VOSUNPREVfREFUQSAodW5pY29kZSksICIiKTsKKysKKysgICAgcmV0dXJuIHVu aWNvZGUtPnByaXYtPm5hbWU7CisrfQorKworK2NvbnN0IGdjaGFyICoKKytpYnVzX3VuaWNvZGVf ZGF0YV9nZXRfYWxpYXMgKElCdXNVbmljb2RlRGF0YSAqdW5pY29kZSkKKyt7CisrICAgIGdfcmV0 dXJuX3ZhbF9pZl9mYWlsIChJQlVTX0lTX1VOSUNPREVfREFUQSAodW5pY29kZSksICIiKTsKKysK KysgICAgcmV0dXJuIHVuaWNvZGUtPnByaXYtPmFsaWFzOworK30KKysKKytjb25zdCBnY2hhciAq CisraWJ1c191bmljb2RlX2RhdGFfZ2V0X2Jsb2NrX25hbWUgKElCdXNVbmljb2RlRGF0YSAqdW5p Y29kZSkKKyt7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChJQlVTX0lTX1VOSUNPREVfREFU QSAodW5pY29kZSksICIiKTsKKysKKysgICAgcmV0dXJuIHVuaWNvZGUtPnByaXYtPmJsb2NrX25h bWU7CisrfQorKworK3ZvaWQKKytpYnVzX3VuaWNvZGVfZGF0YV9zZXRfYmxvY2tfbmFtZSAoSUJ1 c1VuaWNvZGVEYXRhICp1bmljb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAgICAgKmJsb2NrX25hbWUpCisreworKyAgICBnX3JldHVybl9pZl9mYWls IChJQlVTX0lTX1VOSUNPREVfREFUQSAodW5pY29kZSkpOworKworKyAgICBnX2ZyZWUgKHVuaWNv ZGUtPnByaXYtPmJsb2NrX25hbWUpOworKyAgICB1bmljb2RlLT5wcml2LT5ibG9ja19uYW1lID0g Z19zdHJkdXAgKGJsb2NrX25hbWUpOworK30KKysKKytzdGF0aWMgdm9pZAorK3ZhcmlhbnRfZm9y ZWFjaF9hZGRfdW5pY29kZSAoSUJ1c1VuaWNvZGVEYXRhICp1bmljb2RlLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICpidWlsZGVyKQorK3sKKysgICAgZ192 YXJpYW50X2J1aWxkZXJfYWRkICgKKysgICAgICAgICAgICBidWlsZGVyLCAidiIsCisrICAgICAg ICAgICAgaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplIChJQlVTX1NFUklBTElaQUJMRSAodW5p Y29kZSkpKTsKKyt9CisrCisrc3RhdGljIEdWYXJpYW50ICoKKytpYnVzX3VuaWNvZGVfZGF0YV9s aXN0X3NlcmlhbGl6ZSAoR1NMaXN0ICpsaXN0KQorK3sKKysgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1 aWxkZXI7CisrCisrICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQgKCZidWlsZGVyLCBHX1ZBUklB TlRfVFlQRSAoImF2IikpOworKyAgICBnX3NsaXN0X2ZvcmVhY2ggKGxpc3QsICAoR0Z1bmMpIHZh cmlhbnRfZm9yZWFjaF9hZGRfdW5pY29kZSwgJmJ1aWxkZXIpOworKyAgICByZXR1cm4gZ192YXJp YW50X2J1aWxkZXJfZW5kICgmYnVpbGRlcik7CisrfQorKworK3N0YXRpYyBHU0xpc3QgKgorK2li dXNfdW5pY29kZV9kYXRhX2xpc3RfZGVzZXJpYWxpemUgKEdWYXJpYW50ICp2YXJpYW50LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdPYmplY3QgICpzb3VyY2Vfb2JqZWN0 KQorK3sKKysgICAgR1NMaXN0ICpsaXN0ID0gTlVMTDsKKysgICAgR1ZhcmlhbnRJdGVyIGl0ZXI7 CisrICAgIEdWYXJpYW50ICp1bmljb2RlX3ZhcmlhbnQgPSBOVUxMOworKyAgICBnc2l6ZSBpLCBz aXplOworKyAgICBnYm9vbGVhbiBoYXNfc2lnbmFsID0gRkFMU0U7CisrCisrICAgIGlmIChHX0lT X09CSkVDVCAoc291cmNlX29iamVjdCkpIHsKKysgICAgICAgIGhhc19zaWduYWwgPSBnX3NpZ25h bF9sb29rdXAgKAorKyAgICAgICAgICAgICAgICBJQlVTX1VOSUNPREVfREVTRVJJQUxJWkVfU0lH TkFMTF9TVFIsCisrICAgICAgICAgICAgICAgIEdfT0JKRUNUX1RZUEUgKHNvdXJjZV9vYmplY3Qp KTsKKysgICAgICAgIGlmICghaGFzX3NpZ25hbCkgeworKyAgICAgICAgICAgIGNvbnN0IGdjaGFy IHR5cGVfbmFtZSA9IGdfdHlwZV9uYW1lIChzb3VyY2Vfb2JqZWN0KTsKKysgICAgICAgICAgICBn X3dhcm5pbmcgKCJHT2JqZWN0ICVzIGRvZXMgbm90IGhhdmUgdGhlIHNpZ25hbCBcIiVzXCIiLAor KyAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lID8gdHlwZV9uYW1lIDogIihudWxsKSIs CisrICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1VOSUNPREVfREVTRVJJQUxJWkVfU0lHTkFM TF9TVFIpOworKyAgICAgICAgfQorKyAgICB9CisrICAgIGdfdmFyaWFudF9pdGVyX2luaXQgKCZp dGVyLCB2YXJpYW50KTsKKysgICAgc2l6ZSA9IGdfdmFyaWFudF9pdGVyX25fY2hpbGRyZW4gKCZp dGVyKTsKKysgICAgaSA9IDA7CisrICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wICgmaXRl ciwgInYiLCAmdW5pY29kZV92YXJpYW50KSkgeworKyAgICAgICAgSUJ1c1VuaWNvZGVEYXRhICpk YXRhID0KKysgICAgICAgICAgICAgICAgSUJVU19VTklDT0RFX0RBVEEgKGlidXNfc2VyaWFsaXph YmxlX2Rlc2VyaWFsaXplICgKKysgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlX3Zhcmlh bnQpKTsKKysgICAgICAgIGxpc3QgPSBnX3NsaXN0X2FwcGVuZCAobGlzdCwgZGF0YSk7CisrICAg ICAgICBnX2NsZWFyX3BvaW50ZXIgKCZ1bmljb2RlX3ZhcmlhbnQsIGdfdmFyaWFudF91bnJlZik7 CisrICAgICAgICBpZiAoaGFzX3NpZ25hbCAmJiAoaSA9PSAwIHx8ICgoaSArIDEpICUgMTAwKSA9 PSAwKSkgeworKyAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSAoc291cmNlX29iamVj dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfVU5JQ09ERV9ERVNF UklBTElaRV9TSUdOQUxMX1NUUiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGkgKyAxLCBzaXplKTsKKysgICAgICAgIH0KKysgICAgICAgIGkrKzsKKysgICAgfQorKyAgICBp ZiAoaGFzX3NpZ25hbCAmJiAoaSAhPSAxICYmIChpICUgMTAwKSAhPSAwKSkgeworKyAgICAgICAg Z19zaWduYWxfZW1pdF9ieV9uYW1lIChzb3VyY2Vfb2JqZWN0LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJQlVTX1VOSUNPREVfREVTRVJJQUxJWkVfU0lHTkFMTF9TVFIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHNpemUpOworKyAgICB9CisrCisrICAgIHJl dHVybiBsaXN0OworK30KKysKKyt2b2lkCisraWJ1c191bmljb2RlX2RhdGFfc2F2ZSAoY29uc3Qg Z2NoYXIgKnBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgR1NMaXN0ICAgICAgKmxpc3Qp CisreworKyAgICBHVmFyaWFudCAqdmFyaWFudDsKKysgICAgY29uc3QgZ2NoYXIgKmhlYWRlciA9 IElCVVNfVU5JQ09ERV9EQVRBX01BR0lDOworKyAgICBjb25zdCBndWludDE2IHZlcnNpb24gPSBJ QlVTX1VOSUNPREVfREFUQV9WRVJTSU9OOworKyAgICBjb25zdCBnY2hhciAqY29udGVudHM7Cisr ICAgIGdzaXplIGxlbmd0aDsKKysgICAgZ2NoYXIgKmRpcjsKKysgICAgR1N0YXRCdWYgYnVmID0g eyAwLCB9OworKyAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKKysKKysgICAgZ19yZXR1cm5faWZf ZmFpbCAocGF0aCAhPSBOVUxMKTsKKysgICAgZ19yZXR1cm5faWZfZmFpbCAobGlzdCAhPSBOVUxM KTsKKysgICAgaWYgKGxpc3QtPmRhdGEgPT0gTlVMTCkgeworKyAgICAgICAgZ193YXJuaW5nICgi RmFpbGVkIHRvIHNhdmUgSUJ1cyBVbmljb2RlIGRhdGE6IE5lZWQgYSBsaXN0IGRhdGEuIik7Cisr ICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAgdmFyaWFudCA9IGdfdmFyaWFudF9uZXcg KCIoc3F2KSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWJ1c191bmljb2RlX2RhdGFfbGlzdF9zZXJpYWxpemUgKGxpc3QpKTsKKysKKysgICAg Y29udGVudHMgPSAgZ192YXJpYW50X2dldF9kYXRhICh2YXJpYW50KTsKKysgICAgbGVuZ3RoID0g IGdfdmFyaWFudF9nZXRfc2l6ZSAodmFyaWFudCk7CisrCisrICAgIGRpciA9IGdfcGF0aF9nZXRf ZGlybmFtZSAocGF0aCk7CisrICAgIGlmIChnX3N0cmNtcDAgKGRpciwgIi4iKSAhPSAwICYmIGdf c3RhdCAoZGlyLCAmYnVmKSAhPSAwKSB7CisrICAgICAgICBnX21rZGlyX3dpdGhfcGFyZW50cyAo ZGlyLCAwNzc3KTsKKysgICAgfQorKyAgICBnX2ZyZWUgKGRpcik7CisrICAgIGlmICghZ19maWxl X3NldF9jb250ZW50cyAocGF0aCwgY29udGVudHMsIGxlbmd0aCwgJmVycm9yKSkgeworKyAgICAg ICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIHNhdmUgVW5pY29kZSBkaWN0ICVzOiAlcyIsIHBhdGgs IGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworKyAgICB9 CisrCisrICAgIGdfdmFyaWFudF91bnJlZiAodmFyaWFudCk7CisrfQorKworK3N0YXRpYyBHU0xp c3QgKgorK2lidXNfdW5pY29kZV9kYXRhX2xvYWRfd2l0aF9lcnJvciAoY29uc3QgZ2NoYXIgKnBh dGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0ICAgICAqc291 cmNlX29iamVjdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAg ICAgKiplcnJvcikKKyt7CisrICAgIGdjaGFyICpjb250ZW50cyA9IE5VTEw7CisrICAgIGdzaXpl IGxlbmd0aCA9IDA7CisrICAgIEdWYXJpYW50ICp2YXJpYW50X3RhYmxlID0gTlVMTDsKKysgICAg R1ZhcmlhbnQgKnZhcmlhbnQgPSBOVUxMOworKyAgICBjb25zdCBnY2hhciAqaGVhZGVyID0gTlVM TDsKKysgICAgZ3VpbnQxNiB2ZXJzaW9uID0gMDsKKysgICAgR1NMaXN0ICpyZXR2YWwgPSBOVUxM OworKworKyAgICBpZiAoIWdfZmlsZV90ZXN0IChwYXRoLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7 CisrICAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsCisrICAgICAgICAgICAgICAgICAgICAgSUJV U19FUlJPUiwKKysgICAgICAgICAgICAgICAgICAgICBJQlVTX0VSUk9SX0ZBSUxFRCwKKysgICAg ICAgICAgICAgICAgICAgICAiVW5pY29kZSBkaWN0IGRvZXMgbm90IGV4aXN0OiAlcyIsIHBhdGgp OworKyAgICAgICAgZ290byBvdXRfbG9hZF9jYWNoZTsKKysgICAgfQorKworKyAgICBpZiAoIWdf ZmlsZV9nZXRfY29udGVudHMgKHBhdGgsICZjb250ZW50cywgJmxlbmd0aCwgZXJyb3IpKSB7Cisr ICAgICAgICBnb3RvIG91dF9sb2FkX2NhY2hlOworKyAgICB9CisrCisrICAgIHZhcmlhbnRfdGFi bGUgPSBnX3ZhcmlhbnRfbmV3X2Zyb21fZGF0YSAoR19WQVJJQU5UX1RZUEUgKCIoc3EpIiksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHMsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrCisrICAgIGlmICh2 YXJpYW50X3RhYmxlID09IE5VTEwpIHsKKysgICAgICAgIGdfc2V0X2Vycm9yIChlcnJvciwKKysg ICAgICAgICAgICAgICAgICAgICBJQlVTX0VSUk9SLAorKyAgICAgICAgICAgICAgICAgICAgIElC VVNfRVJST1JfRkFJTEVELAorKyAgICAgICAgICAgICAgICAgICAgICJjYWNoZSB0YWJsZSBpcyBi cm9rZW4uIik7CisrICAgICAgICBnb3RvIG91dF9sb2FkX2NhY2hlOworKyAgICB9CisrCisrICAg IGdfdmFyaWFudF9nZXQgKHZhcmlhbnRfdGFibGUsICIoJnNxKSIsICZoZWFkZXIsICZ2ZXJzaW9u KTsKKysKKysgICAgaWYgKGdfc3RyY21wMCAoaGVhZGVyLCBJQlVTX1VOSUNPREVfREFUQV9NQUdJ QykgIT0gMCkgeworKyAgICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLAorKyAgICAgICAgICAgICAg ICAgICAgIElCVVNfRVJST1IsCisrICAgICAgICAgICAgICAgICAgICAgSUJVU19FUlJPUl9GQUlM RUQsCisrICAgICAgICAgICAgICAgICAgICAgImNhY2hlIGlzIG5vdCBJQnVzVW5pY29kZURhdGEu Iik7CisrICAgICAgICBnb3RvIG91dF9sb2FkX2NhY2hlOworKyAgICB9CisrCisrICAgIGlmICh2 ZXJzaW9uID4gSUJVU19VTklDT0RFX0RBVEFfVkVSU0lPTikgeworKyAgICAgICAgZ19zZXRfZXJy b3IgKGVycm9yLAorKyAgICAgICAgICAgICAgICAgICAgIElCVVNfRVJST1IsCisrICAgICAgICAg ICAgICAgICAgICAgSUJVU19FUlJPUl9GQUlMRUQsCisrICAgICAgICAgICAgICAgICAgICAgImNh Y2hlIHZlcnNpb24gaXMgZGlmZmVyZW50OiAldSAhPSAldSIsCisrICAgICAgICAgICAgICAgICAg ICAgdmVyc2lvbiwgSUJVU19VTklDT0RFX0RBVEFfVkVSU0lPTik7CisrICAgICAgICBnb3RvIG91 dF9sb2FkX2NhY2hlOworKyAgICB9CisrCisrICAgIHZlcnNpb24gPSAwOworKyAgICBoZWFkZXIg PSBOVUxMOworKyAgICBnX3ZhcmlhbnRfdW5yZWYgKHZhcmlhbnRfdGFibGUpOworKworKyAgICB2 YXJpYW50X3RhYmxlID0gZ192YXJpYW50X25ld19mcm9tX2RhdGEgKEdfVkFSSUFOVF9UWVBFICgi KHNxdikiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250ZW50cywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW5ndGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM U0UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKysK KysgICAgaWYgKHZhcmlhbnRfdGFibGUgPT0gTlVMTCkgeworKyAgICAgICAgZ19zZXRfZXJyb3Ig KGVycm9yLAorKyAgICAgICAgICAgICAgICAgICAgIElCVVNfRVJST1IsCisrICAgICAgICAgICAg ICAgICAgICAgSUJVU19FUlJPUl9GQUlMRUQsCisrICAgICAgICAgICAgICAgICAgICAgImNhY2hl IHRhYmxlIGlzIGJyb2tlbi4iKTsKKysgICAgICAgIGdvdG8gb3V0X2xvYWRfY2FjaGU7CisrICAg IH0KKysKKysgICAgZ192YXJpYW50X2dldCAodmFyaWFudF90YWJsZSwgIigmc3F2KSIsCisrICAg ICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAg ICAgICAgICAgICAgICZ2YXJpYW50KTsKKysKKysgICAgaWYgKHZhcmlhbnQgPT0gTlVMTCkgewor KyAgICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLAorKyAgICAgICAgICAgICAgICAgICAgIElCVVNf RVJST1IsCisrICAgICAgICAgICAgICAgICAgICAgSUJVU19FUlJPUl9GQUlMRUQsCisrICAgICAg ICAgICAgICAgICAgICAgImNhY2hlIGRpY3QgaXMgYnJva2VuLiIpOworKyAgICAgICAgZ290byBv dXRfbG9hZF9jYWNoZTsKKysgICAgfQorKworKyAgICByZXR2YWwgPSBpYnVzX3VuaWNvZGVfZGF0 YV9saXN0X2Rlc2VyaWFsaXplICh2YXJpYW50LCBzb3VyY2Vfb2JqZWN0KTsKKysKKytvdXRfbG9h ZF9jYWNoZToKKysgICAgaWYgKHZhcmlhbnQpCisrICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZh cmlhbnQpOworKyAgICBpZiAodmFyaWFudF90YWJsZSkKKysgICAgICAgIGdfdmFyaWFudF91bnJl ZiAodmFyaWFudF90YWJsZSk7CisrICAgIGdfZnJlZSAoY29udGVudHMpOworKworKyAgICByZXR1 cm4gcmV0dmFsOworK30KKysKKytHU0xpc3QgKgorK2lidXNfdW5pY29kZV9kYXRhX2xvYWQgKGNv bnN0IGdjaGFyICpwYXRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgIEdPYmplY3QgICAgICpz b3VyY2Vfb2JqZWN0KQorK3sKKysgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICAgIEdTTGlz dCAqcmV0dmFsID0gaWJ1c191bmljb2RlX2RhdGFfbG9hZF93aXRoX2Vycm9yIChwYXRoLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291 cmNlX29iamVjdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZlcnJvcik7CisrCisrICAgIGlmIChyZXR2YWwgPT0gTlVMTCkgeworKyAg ICAgICAgZ193YXJuaW5nICgiJXMiLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgICBnX2Vycm9y X2ZyZWUgKGVycm9yKTsKKysgICAgfQorKworKyAgICByZXR1cm4gcmV0dmFsOworK30KKysKKytz dGF0aWMgdm9pZAorK2lidXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmNfdGhyZWFkIChHVGFzayAg ICAgICAgKnRhc2ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2lu dGVyICAgICAgc291cmNlX29iamVjdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3BvaW50ZXIgICAgICB0YXNrX2RhdGEsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUpCisreworKyAgICBHU0xpc3Qg KnJldHZhbDsKKysgICAgZ2NoYXIgKnBhdGggPSAoZ2NoYXIgKil0YXNrX2RhdGE7CisrICAgIEdF cnJvciAqZXJyb3IgPSBOVUxMOworKworKyAgICBnX2Fzc2VydCAocGF0aCAhPSBOVUxMKTsKKysK KysgICAgcmV0dmFsID0gaWJ1c191bmljb2RlX2RhdGFfbG9hZF93aXRoX2Vycm9yIChwYXRoLCBz b3VyY2Vfb2JqZWN0LCAmZXJyb3IpOworKyAgICBnX2ZyZWUgKHBhdGgpOworKyAgICBpZiAocmV0 dmFsID09IE5VTEwpCisrICAgICAgICBnX3Rhc2tfcmV0dXJuX2Vycm9yICh0YXNrLCBlcnJvcik7 CisrICAgIGVsc2UKKysgICAgICAgIGdfdGFza19yZXR1cm5fcG9pbnRlciAodGFzaywgcmV0dmFs LCBOVUxMKTsKKysgICAgZ19vYmplY3RfdW5yZWYgKHRhc2spOworK30KKysKKytzdGF0aWMgdm9p ZAorK2lidXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmNfZG9uZSAoR09iamVjdCAqc291cmNlX29i amVjdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAq cmVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9k YXRhKQorK3sKKysgICAgSUJ1c1VuaWNvZGVEYXRhTG9hZERhdGEgKmRhdGEgPSAoSUJ1c1VuaWNv ZGVEYXRhTG9hZERhdGEqKXVzZXJfZGF0YTsKKysgICAgR1NMaXN0ICpsaXN0OworKyAgICBHRXJy b3IgKmVycm9yID0gTlVMTDsKKysgICAgZ19hc3NlcnQgKGRhdGEgIT0gTlVMTCk7CisrICAgIGxp c3QgPSBnX3Rhc2tfcHJvcGFnYXRlX3BvaW50ZXIgKEdfVEFTSyAocmVzKSwgJmVycm9yKTsKKysg ICAgaWYgKGVycm9yKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCIlcyIsIGVycm9yLT5tZXNzYWdl KTsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworKyAgICAgICAgZGF0YS0+Y2FsbGJh Y2sgKE5VTEwsIGRhdGEtPnVzZXJfZGF0YSk7CisrICAgIH0gZWxzZSB7CisrICAgICAgICBkYXRh LT5jYWxsYmFjayAobGlzdCwgZGF0YS0+dXNlcl9kYXRhKTsKKysgICAgfQorKyAgICBnX3NsaWNl X2ZyZWUgKElCdXNVbmljb2RlRGF0YUxvYWREYXRhLCBkYXRhKTsKKyt9CisrCisrdm9pZAorK2li dXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmMgKGNvbnN0IGdjaGFyICAgICAgICAqcGF0aCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHT2JqZWN0ICAgICAgICAgICAgKnNvdXJjZV9v YmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAgICAg ICpjYW5jZWxsYWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVW5pY29k ZURhdGFMb2FkQXN5bmNGaW5pc2gKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNhbGxiYWNrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdwb2ludGVyICAgICAgICAgICAgdXNlcl9kYXRhKQorK3sKKysgICAgR1Rhc2sgKnRhc2s7Cisr ICAgIElCdXNVbmljb2RlRGF0YUxvYWREYXRhICpkYXRhOworKworKyAgICBnX3JldHVybl9pZl9m YWlsIChwYXRoICE9IE5VTEwpOworKworKyAgICBkYXRhID0gZ19zbGljZV9uZXcwIChJQnVzVW5p Y29kZURhdGFMb2FkRGF0YSk7CisrICAgIGRhdGEtPmNhbGxiYWNrID0gY2FsbGJhY2s7CisrICAg IGRhdGEtPnVzZXJfZGF0YSA9IHVzZXJfZGF0YTsKKysgICAgdGFzayA9IGdfdGFza19uZXcgKHNv dXJjZV9vYmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxsYWJsZSwKKysgICAg ICAgICAgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmNfZG9uZSwKKysg ICAgICAgICAgICAgICAgICAgICAgIGRhdGEpOworKyAgICBnX3Rhc2tfc2V0X3NvdXJjZV90YWcg KHRhc2ssIGlidXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmMpOworKyAgICBnX3Rhc2tfc2V0X3Rh c2tfZGF0YSAodGFzaywgZ19zdHJkdXAgKHBhdGgpLCBOVUxMKTsKKysgICAgZ190YXNrX3J1bl9p bl90aHJlYWQgKHRhc2ssIGlidXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmNfdGhyZWFkKTsKKyt9 CisrCisrc3RhdGljIHZvaWQKKytpYnVzX3VuaWNvZGVfYmxvY2tfY2xhc3NfaW5pdCAoSUJ1c1Vu aWNvZGVCbG9ja0NsYXNzICpjbGFzcykKKyt7CisrICAgIElCdXNPYmplY3RDbGFzcyAqb2JqZWN0 X2NsYXNzID0gSUJVU19PQkpFQ1RfQ0xBU1MgKGNsYXNzKTsKKysgICAgR09iamVjdENsYXNzICpn b2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKGNsYXNzKTsKKysgICAgSUJ1c1NlcmlhbGl6 YWJsZUNsYXNzICpzZXJpYWxpemFibGVfY2xhc3MgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAo Y2xhc3MpOworKworKyAgICBvYmplY3RfY2xhc3MtPmRlc3Ryb3kgPSAoSUJ1c09iamVjdERlc3Ry b3lGdW5jKSBpYnVzX3VuaWNvZGVfZGF0YV9kZXN0cm95OworKyAgICBnb2JqZWN0X2NsYXNzLT5z ZXRfcHJvcGVydHkgPQorKyAgICAgICAgICAgIChHT2JqZWN0U2V0UHJvcGVydHlGdW5jKSBpYnVz X3VuaWNvZGVfYmxvY2tfc2V0X3Byb3BlcnR5OworKyAgICBnb2JqZWN0X2NsYXNzLT5nZXRfcHJv cGVydHkgPQorKyAgICAgICAgICAgIChHT2JqZWN0R2V0UHJvcGVydHlGdW5jKSBpYnVzX3VuaWNv ZGVfYmxvY2tfZ2V0X3Byb3BlcnR5OworKyAgICBzZXJpYWxpemFibGVfY2xhc3MtPnNlcmlhbGl6 ZSAgID0KKysgICAgICAgICAgICAoSUJ1c1NlcmlhbGl6YWJsZVNlcmlhbGl6ZUZ1bmMpIGlidXNf dW5pY29kZV9ibG9ja19zZXJpYWxpemU7CisrICAgIHNlcmlhbGl6YWJsZV9jbGFzcy0+ZGVzZXJp YWxpemUgPQorKyAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlRGVzZXJpYWxpemVGdW5jKSBp YnVzX3VuaWNvZGVfYmxvY2tfZGVzZXJpYWxpemU7CisrICAgIHNlcmlhbGl6YWJsZV9jbGFzcy0+ Y29weSAgICAgICAgPQorKyAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlQ29weUZ1bmMpIGli dXNfdW5pY29kZV9ibG9ja19jb3B5OworKworKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUg KGNsYXNzLCBzaXplb2YgKElCdXNVbmljb2RlQmxvY2tQcml2YXRlKSk7CisrCisrICAgIC8qIGlu c3RhbGwgcHJvcGVydGllcyAqLworKyAgICAvKioKKysgICAgICogSUJ1c1VuaWNvZGVCbG9jazpz dGFydDoKKysgICAgICoKKysgICAgICogVGhlIFVuaW9kZSBzdGFydCBjb2RlIHBvaW50CisrICAg ICAqLworKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2NsYXNz LAorKyAgICAgICAgICAgICAgICAgICAgUFJPUF9TVEFSVCwKKysgICAgICAgICAgICAgICAgICAg IC8qIENhbm5vdCB1c2UgZ19wYXJhbV9zcGVjX3VuaWNoYXIoKSBmb3IgdGhlIFVuaWNvZGUKKysg ICAgICAgICAgICAgICAgICAgICAqIGJvdW5kYXJ5IHZhbHVlcyBiZWNhdXNlIHRoZSBmdW5jdGlv biBjaGVja3MKKysgICAgICAgICAgICAgICAgICAgICAqIGlmIHRoZSB2YWx1ZSBpcyBhIHZhbGlk IFVuaWNvZGUgYmVzaWRlcyBNQVhVSU5ULgorKyAgICAgICAgICAgICAgICAgICAgICovCisrICAg ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfdWludCAoInN0YXJ0IiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAic3RhcnQgY29kZSBwb2ludCIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgIlRoZSBVbmljb2RlIHN0YXJ0IGNvZGUgcG9pbnQiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgR19NQVhVSU5ULAorKyAgICAgICAgICAg ICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEV1JJ VEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSk7CisrCisrCisrICAgIC8qKgorKyAgICAgKiBJ QnVzVW5pY29kZUJsb2NrOmVuZDoKKysgICAgICoKKysgICAgICogVGhlIFVuaW9kZSBlbmQgY29k ZSBwb2ludAorKyAgICAgKi8KKysgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAo Z29iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgIFBST1BfRU5ELAorKyAgICAgICAg ICAgICAgICAgICAgLyogQ2Fubm90IHVzZSBnX3BhcmFtX3NwZWNfdW5pY2hhcigpIGZvciB0aGUg VW5pY29kZQorKyAgICAgICAgICAgICAgICAgICAgICogYm91bmRhcnkgdmFsdWVzIGJlY2F1c2Ug dGhlIGZ1bmN0aW9uIGNoZWNrcworKyAgICAgICAgICAgICAgICAgICAgICogaWYgdGhlIHZhbHVl IGlzIGEgdmFsaWQgVW5pY29kZSBiZXNpZGVzIE1BWFVJTlQuCisrICAgICAgICAgICAgICAgICAg ICAgKi8KKysgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY191aW50ICgiZW5kIiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAiZW5kIGNvZGUgcG9pbnQiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICJUaGUgVW5pY29kZSBlbmQgY29kZSBwb2ludCIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAgICAgICAgICBHX01BWFVJTlQsCisrICAgICAg ICAgICAgICAgICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX1JF QURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKKysKKysKKysgICAgLyoqCisrICAg ICAqIElCdXNVbmljb2RlQmxvY2s6bmFtZToKKysgICAgICoKKysgICAgICogVGhlIFVuaW9kZSBi bG9jayBuYW1lCisrICAgICAqLworKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5 IChnb2JqZWN0X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAgUFJPUF9OQU1FLAorKyAgICAg ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoIm5hbWUiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICJuYW1lIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIFVuaWNv ZGUgbmFtZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVCkpOworK30KKysK KytzdGF0aWMgdm9pZAorK2lidXNfdW5pY29kZV9ibG9ja19pbml0IChJQnVzVW5pY29kZUJsb2Nr ICpibG9jaykKKyt7CisrICAgIGJsb2NrLT5wcml2ID0gSUJVU19VTklDT0RFX0JMT0NLX0dFVF9Q UklWQVRFIChibG9jayk7CisrfQorKworK3N0YXRpYyB2b2lkCisraWJ1c191bmljb2RlX2Jsb2Nr X2Rlc3Ryb3kgKElCdXNVbmljb2RlQmxvY2sgKmJsb2NrKQorK3sKKysgICAgZ19jbGVhcl9wb2lu dGVyICgmYmxvY2stPnByaXYtPm5hbWUsIGdfZnJlZSk7CisrCisrICAgIElCVVNfT0JKRUNUX0NM QVNTIChpYnVzX3VuaWNvZGVfZGF0YV9wYXJlbnRfY2xhc3MpLT4KKysgICAgICAgICAgICBkZXN0 cm95IChJQlVTX09CSkVDVCAoYmxvY2spKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytpYnVzX3Vu aWNvZGVfYmxvY2tfc2V0X3Byb3BlcnR5IChJQnVzVW5pY29kZUJsb2NrICpibG9jaywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICBwcm9wX2lkLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAgICAgKnZhbHVl LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgICAgICAgKnBz cGVjKQorK3sKKysgICAgc3dpdGNoIChwcm9wX2lkKSB7CisrICAgIGNhc2UgUFJPUF9TVEFSVDoK KysgICAgICAgIGdfYXNzZXJ0IChibG9jay0+cHJpdi0+c3RhcnQgPT0gMCk7CisrICAgICAgICBi bG9jay0+cHJpdi0+c3RhcnQgPSBnX3ZhbHVlX2dldF91aW50ICh2YWx1ZSk7CisrICAgICAgICBi cmVhazsKKysgICAgY2FzZSBQUk9QX0VORDoKKysgICAgICAgIGdfYXNzZXJ0IChibG9jay0+cHJp di0+ZW5kID09IDApOworKyAgICAgICAgYmxvY2stPnByaXYtPmVuZCA9IGdfdmFsdWVfZ2V0X3Vp bnQgKHZhbHVlKTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBST1BfTkFNRToKKysgICAg ICAgIGdfYXNzZXJ0IChibG9jay0+cHJpdi0+bmFtZSA9PSBOVUxMKTsKKysgICAgICAgIGJsb2Nr LT5wcml2LT5uYW1lID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7CisrICAgICAgICBicmVh azsKKysgICAgZGVmYXVsdDoKKysgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJU WV9JRCAoYmxvY2ssIHByb3BfaWQsIHBzcGVjKTsKKysgICAgfQorK30KKysKKytzdGF0aWMgdm9p ZAorK2lidXNfdW5pY29kZV9ibG9ja19nZXRfcHJvcGVydHkgKElCdXNVbmljb2RlQmxvY2sgKmJs b2NrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAg IHByb3BfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICAgICAg ICAgICAqdmFsdWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3Bl YyAgICAgICAqcHNwZWMpCisreworKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAgY2FzZSBQ Uk9QX1NUQVJUOgorKyAgICAgICAgZ192YWx1ZV9zZXRfdWludCAodmFsdWUsIGlidXNfdW5pY29k ZV9ibG9ja19nZXRfc3RhcnQgKGJsb2NrKSk7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBQ Uk9QX0VORDoKKysgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQgKHZhbHVlLCBpYnVzX3VuaWNvZGVf YmxvY2tfZ2V0X2VuZCAoYmxvY2spKTsKKysgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBST1Bf TkFNRToKKysgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIGlidXNfdW5pY29kZV9i bG9ja19nZXRfbmFtZSAoYmxvY2spKTsKKysgICAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0Ogor KyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChibG9jaywgcHJvcF9p ZCwgcHNwZWMpOworKyAgICB9CisrfQorKworK3N0YXRpYyBnYm9vbGVhbgorK2lidXNfdW5pY29k ZV9ibG9ja19zZXJpYWxpemUgKElCdXNVbmljb2RlQmxvY2sgKmJsb2NrLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRlciAgKmJ1aWxkZXIpCisreworKyAgICBn Ym9vbGVhbiByZXR2YWwgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c191bmljb2RlX2Js b2NrX3BhcmVudF9jbGFzcyktPgorKyAgICAgICAgICAgIHNlcmlhbGl6ZSAoKElCdXNTZXJpYWxp emFibGUgKilibG9jaywgYnVpbGRlcik7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChyZXR2 YWwsIEZBTFNFKTsKKysKKysjZGVmaW5lIE5PVE5VTEwocykgKChzKSAhPSBOVUxMID8gKHMpIDog IiIpCisrICAgIC8qIElmIHlvdSB3aWxsIGFkZCBhIG5ldyBwcm9wZXJ0eSwgeW91IGNhbiBhcHBl bmQgaXQgYXQgdGhlIGVuZCBhbmQKKysgICAgICogeW91IHNob3VsZCBub3QgY2hhbmdlIHRoZSBz ZXJpYWxpemVkIG9yZGVyIG9mIG5hbWUsIGxvbmduYW1lLAorKyAgICAgKiBkZXNjcmlwdGlvbiwg Li4uIGJlY2F1c2UgdGhlIG9yZGVyIGlzIGFsc28gdXNlZCBpbiBvdGhlciBhcHBsaWNhdGlvbnMK KysgICAgICogbGlrZXMgaWJ1cy1xdC4gKi8KKysgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkIChi dWlsZGVyLCAidSIsIGJsb2NrLT5wcml2LT5zdGFydCk7CisrICAgIGdfdmFyaWFudF9idWlsZGVy X2FkZCAoYnVpbGRlciwgInUiLCBibG9jay0+cHJpdi0+ZW5kKTsKKysgICAgZ192YXJpYW50X2J1 aWxkZXJfYWRkIChidWlsZGVyLCAicyIsIE5PVE5VTEwgKGJsb2NrLT5wcml2LT5uYW1lKSk7Cisr I3VuZGVmIE5PVE5VTEwKKysgICAgcmV0dXJuIFRSVUU7CisrfQorKworK3N0YXRpYyBnaW50Cisr aWJ1c191bmljb2RlX2Jsb2NrX2Rlc2VyaWFsaXplIChJQnVzVW5pY29kZUJsb2NrICpibG9jaywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAqdmFyaWFu dCkKKyt7CisrICAgIGdpbnQgcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xBU1MgKGlidXNf dW5pY29kZV9ibG9ja19wYXJlbnRfY2xhc3MpLT4KKysgICAgICAgICAgICBkZXNlcmlhbGl6ZSAo KElCdXNTZXJpYWxpemFibGUgKilibG9jaywgdmFyaWFudCk7CisrICAgIGdfcmV0dXJuX3ZhbF9p Zl9mYWlsIChyZXR2YWwsIDApOworKworKyAgICAvKiBJZiB5b3Ugd2lsbCBhZGQgYSBuZXcgcHJv cGVydHksIHlvdSBjYW4gYXBwZW5kIGl0IGF0IHRoZSBlbmQgYW5kCisrICAgICAqIHlvdSBzaG91 bGQgbm90IGNoYW5nZSB0aGUgc2VyaWFsaXplZCBvcmRlciBvZiBuYW1lLCBsb25nbmFtZSwKKysg ICAgICogZGVzY3JpcHRpb24sIC4uLiBiZWNhdXNlIHRoZSBvcmRlciBpcyBhbHNvIHVzZWQgaW4g b3RoZXIgYXBwbGljYXRpb25zCisrICAgICAqIGxpa2VzIGlidXMtcXQuICovCisrICAgIGdfdmFy aWFudF9nZXRfY2hpbGQgKHZhcmlhbnQsIHJldHZhbCsrLCAidSIsICZibG9jay0+cHJpdi0+c3Rh cnQpOworKyAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkICh2YXJpYW50LCByZXR2YWwrKywgInUiLCAm YmxvY2stPnByaXYtPmVuZCk7CisrICAgIGlidXNfZ192YXJpYW50X2dldF9jaGlsZF9zdHJpbmcg KHZhcmlhbnQsIHJldHZhbCsrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmYmxvY2stPnByaXYtPm5hbWUpOworKyAgICByZXR1cm4gcmV0dmFsOworK30KKysKKytzdGF0 aWMgZ2Jvb2xlYW4KKytpYnVzX3VuaWNvZGVfYmxvY2tfY29weSAoSUJ1c1VuaWNvZGVCbG9jayAg ICAgICAqZGVzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSUJ1c1VuaWNvZGVC bG9jayAqc3JjKQorK3sKKysgICAgZ2Jvb2xlYW4gcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVf Q0xBU1MgKGlidXNfdW5pY29kZV9ibG9ja19wYXJlbnRfY2xhc3MpLT4KKysgICAgICAgICAgICBj b3B5ICgoSUJ1c1NlcmlhbGl6YWJsZSAqKWRlc3QsCisrICAgICAgICAgICAgICAgICAgKElCdXNT ZXJpYWxpemFibGUgKilzcmMpOworKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAocmV0dmFsLCBG QUxTRSk7CisrCisrICAgIGRlc3QtPnByaXYtPnN0YXJ0ICAgICAgICAgICAgPSBzcmMtPnByaXYt PnN0YXJ0OworKyAgICBkZXN0LT5wcml2LT5lbmQgICAgICAgICAgICAgID0gc3JjLT5wcml2LT5l bmQ7CisrICAgIGRlc3QtPnByaXYtPm5hbWUgICAgICAgICAgICAgPSBnX3N0cmR1cCAoc3JjLT5w cml2LT5uYW1lKTsKKysgICAgcmV0dXJuIFRSVUU7CisrfQorKworK0lCdXNVbmljb2RlQmxvY2sg KgorK2lidXNfdW5pY29kZV9ibG9ja19uZXcgKGNvbnN0IGdjaGFyICpmaXJzdF9wcm9wZXJ0eV9u YW1lLCAuLi4pCisreworKyAgICB2YV9saXN0IHZhcl9hcmdzOworKyAgICBJQnVzVW5pY29kZUJs b2NrICpibG9jazsKKysKKysgICAgZ19hc3NlcnQgKGZpcnN0X3Byb3BlcnR5X25hbWUgIT0gTlVM TCk7CisrICAgIHZhX3N0YXJ0ICh2YXJfYXJncywgZmlyc3RfcHJvcGVydHlfbmFtZSk7CisrICAg IGJsb2NrID0gKElCdXNVbmljb2RlQmxvY2sgKikgZ19vYmplY3RfbmV3X3ZhbGlzdCAoSUJVU19U WVBFX1VOSUNPREVfQkxPQ0ssCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmaXJzdF9wcm9wZXJ0eV9uYW1lLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyX2FyZ3MpOworKyAgICB2YV9l bmQgKHZhcl9hcmdzKTsKKysgICAgLyogZW5kIGlzIHJlcXVpcmVkLiBPdGhlciBwcm9wZXJ0aWVz IGFyZSBzZXQgaW4gY2xhc3NfaW5pdCBieSBkZWZhdWx0LiAqLworKyAgICBnX2Fzc2VydCAoYmxv Y2stPnByaXYtPnN0YXJ0ICE9IGJsb2NrLT5wcml2LT5lbmQpOworKyAgICBnX2Fzc2VydCAoYmxv Y2stPnByaXYtPm5hbWUgIT0gTlVMTCk7CisrICAgIHJldHVybiBibG9jazsKKyt9CisrCisrZ3Vu aWNoYXIKKytpYnVzX3VuaWNvZGVfYmxvY2tfZ2V0X3N0YXJ0IChJQnVzVW5pY29kZUJsb2NrICpi bG9jaykKKyt7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChJQlVTX0lTX1VOSUNPREVfQkxP Q0sgKGJsb2NrKSwgR19NQVhVSU5UMzIpOworKworKyAgICByZXR1cm4gYmxvY2stPnByaXYtPnN0 YXJ0OworK30KKysKKytndW5pY2hhcgorK2lidXNfdW5pY29kZV9ibG9ja19nZXRfZW5kIChJQnVz VW5pY29kZUJsb2NrICpibG9jaykKKyt7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChJQlVT X0lTX1VOSUNPREVfQkxPQ0sgKGJsb2NrKSwgR19NQVhVSU5UMzIpOworKworKyAgICByZXR1cm4g YmxvY2stPnByaXYtPmVuZDsKKyt9CisrCisrY29uc3QgZ2NoYXIgKgorK2lidXNfdW5pY29kZV9i bG9ja19nZXRfbmFtZSAoSUJ1c1VuaWNvZGVCbG9jayAqYmxvY2spCisreworKyAgICBnX3JldHVy bl92YWxfaWZfZmFpbCAoSUJVU19JU19VTklDT0RFX0JMT0NLIChibG9jayksICIiKTsKKysKKysg ICAgcmV0dXJuIGJsb2NrLT5wcml2LT5uYW1lOworK30KKysKKytzdGF0aWMgdm9pZAorK3Zhcmlh bnRfZm9yZWFjaF9hZGRfYmxvY2sgKElCdXNVbmljb2RlQmxvY2sgKmJsb2NrLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRlciAqYnVpbGRlcikKKyt7CisrICAgIGdf dmFyaWFudF9idWlsZGVyX2FkZCAoCisrICAgICAgICAgICAgYnVpbGRlciwgInYiLAorKyAgICAg ICAgICAgIGlidXNfc2VyaWFsaXphYmxlX3NlcmlhbGl6ZSAoSUJVU19TRVJJQUxJWkFCTEUgKGJs b2NrKSkpOworK30KKysKKytzdGF0aWMgR1ZhcmlhbnQgKgorK2lidXNfdW5pY29kZV9ibG9ja19s aXN0X3NlcmlhbGl6ZSAoR1NMaXN0ICpsaXN0KQorK3sKKysgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1 aWxkZXI7CisrCisrICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQgKCZidWlsZGVyLCBHX1ZBUklB TlRfVFlQRSAoImF2IikpOworKyAgICBnX3NsaXN0X2ZvcmVhY2ggKGxpc3QsICAoR0Z1bmMpIHZh cmlhbnRfZm9yZWFjaF9hZGRfYmxvY2ssICZidWlsZGVyKTsKKysgICAgcmV0dXJuIGdfdmFyaWFu dF9idWlsZGVyX2VuZCAoJmJ1aWxkZXIpOworK30KKysKKytzdGF0aWMgR1NMaXN0ICoKKytpYnVz X3VuaWNvZGVfYmxvY2tfbGlzdF9kZXNlcmlhbGl6ZSAoR1ZhcmlhbnQgKnZhcmlhbnQpCisrewor KyAgICBHU0xpc3QgKmxpc3QgPSBOVUxMOworKyAgICBHVmFyaWFudEl0ZXIgaXRlcjsKKysgICAg R1ZhcmlhbnQgKnVuaWNvZGVfdmFyaWFudCA9IE5VTEw7CisrCisrICAgIGdfdmFyaWFudF9pdGVy X2luaXQgKCZpdGVyLCB2YXJpYW50KTsKKysgICAgd2hpbGUgKGdfdmFyaWFudF9pdGVyX2xvb3Ag KCZpdGVyLCAidiIsICZ1bmljb2RlX3ZhcmlhbnQpKSB7CisrICAgICAgICBJQnVzVW5pY29kZUJs b2NrICpkYXRhID0KKysgICAgICAgICAgICAgICAgSUJVU19VTklDT0RFX0JMT0NLIChpYnVzX3Nl cmlhbGl6YWJsZV9kZXNlcmlhbGl6ZSAoCisrICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29k ZV92YXJpYW50KSk7CisrICAgICAgICBsaXN0ID0gZ19zbGlzdF9hcHBlbmQgKGxpc3QsIGRhdGEp OworKyAgICAgICAgZ19jbGVhcl9wb2ludGVyICgmdW5pY29kZV92YXJpYW50LCBnX3ZhcmlhbnRf dW5yZWYpOworKyAgICB9CisrCisrICAgIHJldHVybiBsaXN0OworK30KKysKKyt2b2lkCisraWJ1 c191bmljb2RlX2Jsb2NrX3NhdmUgKGNvbnN0IGdjaGFyICpwYXRoLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICBHU0xpc3QgICAgICAqbGlzdCkKKyt7CisrICAgIEdWYXJpYW50ICp2YXJpYW50 OworKyAgICBjb25zdCBnY2hhciAqaGVhZGVyID0gSUJVU19VTklDT0RFX0JMT0NLX01BR0lDOwor KyAgICBjb25zdCBndWludDE2IHZlcnNpb24gPSBJQlVTX1VOSUNPREVfREFUQV9WRVJTSU9OOwor KyAgICBjb25zdCBnY2hhciAqY29udGVudHM7CisrICAgIGdzaXplIGxlbmd0aDsKKysgICAgZ2No YXIgKmRpcjsKKysgICAgR1N0YXRCdWYgYnVmID0geyAwLCB9OworKyAgICBHRXJyb3IgKmVycm9y ID0gTlVMTDsKKysKKysgICAgZ19yZXR1cm5faWZfZmFpbCAocGF0aCAhPSBOVUxMKTsKKysgICAg Z19yZXR1cm5faWZfZmFpbCAobGlzdCAhPSBOVUxMKTsKKysgICAgaWYgKGxpc3QtPmRhdGEgPT0g TlVMTCkgeworKyAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIHNhdmUgSUJ1cyBVbmljb2Rl IGJsb2NrOiBOZWVkIGEgbGlzdCBkYXRhLiIpOworKyAgICAgICAgcmV0dXJuOworKyAgICB9Cisr CisrICAgIHZhcmlhbnQgPSBnX3ZhcmlhbnRfbmV3ICgiKHNxdikiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGVhZGVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy c2lvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9ibG9ja19s aXN0X3NlcmlhbGl6ZSAobGlzdCkpOworKworKyAgICBjb250ZW50cyA9ICBnX3ZhcmlhbnRfZ2V0 X2RhdGEgKHZhcmlhbnQpOworKyAgICBsZW5ndGggPSAgZ192YXJpYW50X2dldF9zaXplICh2YXJp YW50KTsKKysKKysgICAgZGlyID0gZ19wYXRoX2dldF9kaXJuYW1lIChwYXRoKTsKKysgICAgaWYg KGdfc3RyY21wMCAoZGlyLCAiLiIpICE9IDAgJiYgZ19zdGF0IChkaXIsICZidWYpICE9IDApIHsK KysgICAgICAgIGdfbWtkaXJfd2l0aF9wYXJlbnRzIChkaXIsIDA3NzcpOworKyAgICB9CisrICAg IGdfZnJlZSAoZGlyKTsKKysgICAgaWYgKCFnX2ZpbGVfc2V0X2NvbnRlbnRzIChwYXRoLCBjb250 ZW50cywgbGVuZ3RoLCAmZXJyb3IpKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8g c2F2ZSBVbmljb2RlIGRpY3QgJXM6ICVzIiwgcGF0aCwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAg ICAgZ19lcnJvcl9mcmVlIChlcnJvcik7CisrICAgIH0KKysKKysgICAgZ192YXJpYW50X3VucmVm ICh2YXJpYW50KTsKKyt9CisrCisrR1NMaXN0ICoKKytpYnVzX3VuaWNvZGVfYmxvY2tfbG9hZCAo Y29uc3QgZ2NoYXIgKnBhdGgpCisreworKyAgICBnY2hhciAqY29udGVudHMgPSBOVUxMOworKyAg ICBnc2l6ZSBsZW5ndGggPSAwOworKyAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKKysgICAgR1Zh cmlhbnQgKnZhcmlhbnRfdGFibGUgPSBOVUxMOworKyAgICBHVmFyaWFudCAqdmFyaWFudCA9IE5V TEw7CisrICAgIGNvbnN0IGdjaGFyICpoZWFkZXIgPSBOVUxMOworKyAgICBndWludDE2IHZlcnNp b24gPSAwOworKyAgICBHU0xpc3QgKnJldHZhbCA9IE5VTEw7CisrCisrICAgIGlmICghZ19maWxl X3Rlc3QgKHBhdGgsIEdfRklMRV9URVNUX0VYSVNUUykpIHsKKysgICAgICAgIGdfd2FybmluZyAo IlVuaWNvZGUgZGljdCBkb2VzIG5vdCBleGlzdDogJXMiLCBwYXRoKTsKKysgICAgICAgIGdvdG8g b3V0X2xvYWRfY2FjaGU7CisrICAgIH0KKysKKysgICAgaWYgKCFnX2ZpbGVfZ2V0X2NvbnRlbnRz IChwYXRoLCAmY29udGVudHMsICZsZW5ndGgsICZlcnJvcikpIHsKKysgICAgICAgIGdfd2Fybmlu ZyAoIkZhaWxlZCB0byBnZXQgZGljdCBjb250ZW50ICVzOiAlcyIsIHBhdGgsIGVycm9yLT5tZXNz YWdlKTsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworKyAgICAgICAgZ290byBvdXRf bG9hZF9jYWNoZTsKKysgICAgfQorKworKyAgICB2YXJpYW50X3RhYmxlID0gZ192YXJpYW50X25l d19mcm9tX2RhdGEgKEdfVkFSSUFOVF9UWVBFICgiKHNxKSIpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwpOworKworKyAgICBpZiAodmFyaWFudF90YWJsZSA9PSBO VUxMKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCJjYWNoZSB0YWJsZSBpcyBicm9rZW4uIik7Cisr ICAgICAgICBnb3RvIG91dF9sb2FkX2NhY2hlOworKyAgICB9CisrCisrICAgIGdfdmFyaWFudF9n ZXQgKHZhcmlhbnRfdGFibGUsICIoJnNxKSIsICZoZWFkZXIsICZ2ZXJzaW9uKTsKKysKKysgICAg aWYgKGdfc3RyY21wMCAoaGVhZGVyLCBJQlVTX1VOSUNPREVfQkxPQ0tfTUFHSUMpICE9IDApIHsK KysgICAgICAgIGdfd2FybmluZyAoImNhY2hlIGlzIG5vdCBJQnVzVW5pY29kZUJsb2NrLiIpOwor KyAgICAgICAgZ290byBvdXRfbG9hZF9jYWNoZTsKKysgICAgfQorKworKyAgICBpZiAodmVyc2lv biA+IElCVVNfVU5JQ09ERV9EQVRBX1ZFUlNJT04pIHsKKysgICAgICAgIGdfd2FybmluZyAoImNh Y2hlIHZlcnNpb24gaXMgZGlmZmVyZW50OiAldSAhPSAldSIsCisrICAgICAgICAgICAgICAgICAg IHZlcnNpb24sIElCVVNfVU5JQ09ERV9EQVRBX1ZFUlNJT04pOworKyAgICAgICAgZ290byBvdXRf bG9hZF9jYWNoZTsKKysgICAgfQorKworKyAgICB2ZXJzaW9uID0gMDsKKysgICAgaGVhZGVyID0g TlVMTDsKKysgICAgZ192YXJpYW50X3VucmVmICh2YXJpYW50X3RhYmxlKTsKKysKKysgICAgdmFy aWFudF90YWJsZSA9IGdfdmFyaWFudF9uZXdfZnJvbV9kYXRhIChHX1ZBUklBTlRfVFlQRSAoIihz cXYpIiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVudHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu Z3RoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNF LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrCisr ICAgIGlmICh2YXJpYW50X3RhYmxlID09IE5VTEwpIHsKKysgICAgICAgIGdfd2FybmluZyAoImNh Y2hlIHRhYmxlIGlzIGJyb2tlbi4iKTsKKysgICAgICAgIGdvdG8gb3V0X2xvYWRfY2FjaGU7Cisr ICAgIH0KKysKKysgICAgZ192YXJpYW50X2dldCAodmFyaWFudF90YWJsZSwgIigmc3F2KSIsCisr ICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAg ICAgICAgICAgICAgICAgICZ2YXJpYW50KTsKKysKKysgICAgaWYgKHZhcmlhbnQgPT0gTlVMTCkg eworKyAgICAgICAgZ193YXJuaW5nICgiY2FjaGUgZGljdCBpcyBicm9rZW4uIik7CisrICAgICAg ICBnb3RvIG91dF9sb2FkX2NhY2hlOworKyAgICB9CisrCisrICAgIHJldHZhbCA9IGlidXNfdW5p Y29kZV9ibG9ja19saXN0X2Rlc2VyaWFsaXplICh2YXJpYW50KTsKKysKKytvdXRfbG9hZF9jYWNo ZToKKysgICAgaWYgKHZhcmlhbnQpCisrICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZhcmlhbnQp OworKyAgICBpZiAodmFyaWFudF90YWJsZSkKKysgICAgICAgIGdfdmFyaWFudF91bnJlZiAodmFy aWFudF90YWJsZSk7CisrICAgIGdfZnJlZSAoY29udGVudHMpOworKworKyAgICByZXR1cm4gcmV0 dmFsOworK30KKysKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c3VuaWNvZGUuaCBiL3NyYy9pYnVzdW5p Y29kZS5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLjk5ZGU5NDUxCist LS0gL2Rldi9udWxsCisrKysgYi9zcmMvaWJ1c3VuaWNvZGUuaAorQEAgLTAsMCArMSwyOTkgQEAK KysvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5p bDsgLSotICovCisrLyogdmltOnNldCBldCBzdHM9NDogKi8KKysvKiBidXMgLSBUaGUgSW5wdXQg QnVzCisrICogQ29weXJpZ2h0IChDKSAyMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2Fy YTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxOCBSZWQgSGF0LCBJbmMuCisrICoK KysgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisrICogVGhpcyBs aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhbG9u ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv c3RvbiwgTUEgIDAyMTEwLTEzMDEKKysgKiBVU0EKKysgKi8KKysKKysjaWYgIWRlZmluZWQgKF9f SUJVU19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZCAoSUJVU19DT01QSUxBVElPTikKKysjZXJyb3Ig Ik9ubHkgPGlidXMuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5IgorKyNlbmRpZgorKworKyNp Zm5kZWYgX19JQlVTX1VOSUNPREVfSF8KKysjZGVmaW5lIF9fSUJVU19VTklDT0RFX0hfCisrCisr LyoqCisrICogU0VDVElPTjogaWJ1c3VuaWNvZGUKKysgKiBAc2hvcnRfZGVzY3JpcHRpb246IHVu aWNvZGUgdXRpbGl0eS4KKysgKiBAc3RhYmlsaXR5OiBVbnN0YWJsZQorKyAqCisrICogbWlzY2Vs bGFuZW91cyB1bmljb2RlIEFQSXMuCisrICovCisrCisrI2luY2x1ZGUgPGdpby9naW8uaD4KKysj aW5jbHVkZSAiaWJ1c3NlcmlhbGl6YWJsZS5oIgorKworKy8qCisrICogVHlwZSBtYWNyb3MuCisr ICovCisrLyogZGVmaW5lIEdPQkpFQ1QgbWFjcm9zICovCisrI2RlZmluZSBJQlVTX1RZUEVfVU5J Q09ERV9EQVRBICAgICAgIChpYnVzX3VuaWNvZGVfZGF0YV9nZXRfdHlwZSAoKSkKKysjZGVmaW5l IElCVVNfVU5JQ09ERV9EQVRBKG9iaikgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU ICgob2JqKSwgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19U WVBFX1VOSUNPREVfREFUQSwgSUJ1c1VuaWNvZGVEYXRhKSkKKysjZGVmaW5lIElCVVNfVU5JQ09E RV9EQVRBX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyksIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQRV9VTklDT0RF X0RBVEEsIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNVbmlj b2RlRGF0YUNsYXNzKSkKKysjZGVmaW5lIElCVVNfSVNfVU5JQ09ERV9EQVRBKG9iaikgICAgKEdf VFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1VOSUNPREVfREFUQSkpCisrI2RlZmluZSBJQlVT X1RZUEVfVU5JQ09ERV9CTE9DSyAgICAgIChpYnVzX3VuaWNvZGVfYmxvY2tfZ2V0X3R5cGUgKCkp CisrI2RlZmluZSBJQlVTX1VOSUNPREVfQkxPQ0sob2JqKSAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T VEFOQ0VfQ0FTVCAoKG9iaiksIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElCVVNfVFlQRV9VTklDT0RFX0JMT0NLLCBcCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJQnVzVW5pY29kZUJsb2NrKSkKKysjZGVmaW5lIElCVVNfVU5JQ09ERV9C TE9DS19DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoa2xhc3MpLCBcCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1RZUEVfVU5JQ09ERV9C TE9DSywgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c1VuaWNv ZGVCbG9ja0NsYXNzKSkKKysjZGVmaW5lIElCVVNfSVNfVU5JQ09ERV9CTE9DSyhvYmopICAgKEdf VFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgXAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1VOSUNPREVfQkxPQ0spKQorKworKworK0dfQkVH SU5fREVDTFMKKysKKyt0eXBlZGVmIHN0cnVjdCBfSUJ1c1VuaWNvZGVEYXRhIElCdXNVbmljb2Rl RGF0YTsKKyt0eXBlZGVmIHN0cnVjdCBfSUJ1c1VuaWNvZGVEYXRhUHJpdmF0ZSBJQnVzVW5pY29k ZURhdGFQcml2YXRlOworK3R5cGVkZWYgc3RydWN0IF9JQnVzVW5pY29kZURhdGFDbGFzcyBJQnVz VW5pY29kZURhdGFDbGFzczsKKyt0eXBlZGVmIHN0cnVjdCBfSUJ1c1VuaWNvZGVCbG9jayBJQnVz VW5pY29kZUJsb2NrOworK3R5cGVkZWYgc3RydWN0IF9JQnVzVW5pY29kZUJsb2NrUHJpdmF0ZSBJ QnVzVW5pY29kZUJsb2NrUHJpdmF0ZTsKKyt0eXBlZGVmIHN0cnVjdCBfSUJ1c1VuaWNvZGVCbG9j a0NsYXNzIElCdXNVbmljb2RlQmxvY2tDbGFzczsKKysKKysvKioKKysgKiBJQnVzVW5pY29kZURh dGFMb2FkQXN5bmNGaW5pc2g6CisrICogQGRhdGFfbGlzdDogKHRyYW5zZmVyIGZ1bGwpIChlbGVt ZW50LXR5cGUgSUJ1c1VuaWNvZGVEYXRhKToKKysgKgorKyAqIFRoaXMgY2FsbGJhY2sgY2FuIHJl Y2VpdmUgdGhlIGxpc3Qgb2YgI0lCdXNVbmljb2RlRGF0YS4KKysgKi8KKyt0eXBlZGVmIHZvaWQg KCpJQnVzVW5pY29kZURhdGFMb2FkQXN5bmNGaW5pc2gpIChHU0xpc3QgICpkYXRhX2xpc3QsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg dXNlcl9kYXRhKTsKKysKKysvKioKKysgKiBJQnVzVW5pY29kZURhdGE6CisrICoKKysgKiBVbmlj b2RlIGRhdGEgbGlrZXMgY29kZSwgbmFtZSwgYWxpYXMsIGJsb2NrLW5hbWUuCisrICogWW91IGNh biBnZXQgZXh0ZW5kZWQgdmFsdWVzIHdpdGggZ19vYmplY3RfZ2V0X3Byb3BlcnRpZXMuCisrICov Cisrc3RydWN0IF9JQnVzVW5pY29kZURhdGEgeworKyAgICBJQnVzU2VyaWFsaXphYmxlIHBhcmVu dDsKKysgICAgLyogaW5zdGFuY2UgbWVtYmVycyAqLworKworKyAgICAvKjwgcHVibGljID4qLwor KyAgICAvKjwgcHJpdmF0ZSA+Ki8KKysgICAgSUJ1c1VuaWNvZGVEYXRhUHJpdmF0ZSAqcHJpdjsK Kyt9OworKworK3N0cnVjdCBfSUJ1c1VuaWNvZGVEYXRhQ2xhc3MgeworKyAgICBJQnVzU2VyaWFs aXphYmxlQ2xhc3MgcGFyZW50OworKyAgICAvKiBjbGFzcyBtZW1iZXJzICovCisrfTsKKysKKytz dHJ1Y3QgX0lCdXNVbmljb2RlQmxvY2sgeworKyAgICBJQnVzU2VyaWFsaXphYmxlIHBhcmVudDsK KysgICAgLyogaW5zdGFuY2UgbWVtYmVycyAqLworKworKyAgICAvKjwgcHVibGljID4qLworKyAg ICAvKjwgcHJpdmF0ZSA+Ki8KKysgICAgSUJ1c1VuaWNvZGVCbG9ja1ByaXZhdGUgKnByaXY7Cisr fTsKKysKKytzdHJ1Y3QgX0lCdXNVbmljb2RlQmxvY2tDbGFzcyB7CisrICAgIElCdXNTZXJpYWxp emFibGVDbGFzcyBwYXJlbnQ7CisrICAgIC8qIGNsYXNzIG1lbWJlcnMgKi8KKyt9OworKworK0dU eXBlICAgICAgICAgICBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfdHlwZSAgICAodm9pZCk7CisrR1R5 cGUgICAgICAgICAgIGlidXNfdW5pY29kZV9ibG9ja19nZXRfdHlwZSAgICh2b2lkKTsKKysKKysv KioKKysgKiBpYnVzX3VuaWNvZGVfZGF0YV9uZXc6CisrICogQGZpcnN0X3Byb3BlcnR5X25hbWU6 IE5hbWUgb2YgdGhlIGZpcnN0IHByb3BlcnR5LgorKyAqIEAuLi46IHRoZSBOVUxMLXRlcm1pbmF0 ZWQgYXJndW1lbnRzIG9mIHRoZSBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMuCisrICoKKysgKiBDcmVh dGVzIGEgbmV3ICNJQnVzVW5pY29kZURhdGEuCisrICogY29kZSBwcm9wZXJ0eSBpcyByZXF1aXJl ZC4gZS5nLgorKyAqIGlidXNfdW5pY29kZV9kYXRhX25ldyAoImNvZGUiLCAweDMwNDIsIE5VTEwp CisrICoKKysgKiBSZXR1cm5zOiBBIG5ld2x5IGFsbG9jYXRlZCAjSUJ1c1VuaWNvZGVEYXRhLgor KyAqLworK0lCdXNVbmljb2RlRGF0YSAqIGlidXNfdW5pY29kZV9kYXRhX25ldyAgICAgICAoY29u c3QgZ2NoYXIgKmZpcnN0X3Byb3BlcnR5X25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuLi4pOworKworKy8qKgorKyAqIGlidXNfdW5pY29kZV9k YXRhX2dldF9jb2RlOgorKyAqIEB1bmljb2RlOiBBbiAjSUJ1c1VuaWNvZGVEYXRhCisrICoKKysg KiBHZXRzIHRoZSBjb2RlIHBvaW50IGluICNJQnVzVW5pY29kZURhdGEuCisrICoKKysgKiBSZXR1 cm5zOiBjb2RlIHByb3BlcnR5IGluICNJQnVzVW5pY29kZURhdGEKKysgKi8KKytndW5pY2hhciAg ICAgICAgICBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfY29kZSAgKElCdXNVbmljb2RlRGF0YSAgICAq dW5pY29kZSk7CisrCisrLyoqCisrICogaWJ1c191bmljb2RlX2RhdGFfZ2V0X25hbWU6CisrICog QHVuaWNvZGU6IEFuICNJQnVzVW5pY29kZURhdGEKKysgKgorKyAqIEdldHMgdGhlIG5hbWUgaW4g I0lCdXNVbmljb2RlRGF0YS4gSXQgc2hvdWxkIG5vdCBiZSBmcmVlZC4KKysgKgorKyAqIFJldHVy bnM6IG5hbWUgcHJvcGVydHkgaW4gI0lCdXNVbmljb2RlRGF0YQorKyAqLworK2NvbnN0IGdjaGFy ICogICAgIGlidXNfdW5pY29kZV9kYXRhX2dldF9uYW1lICAoSUJ1c1VuaWNvZGVEYXRhICAgICp1 bmljb2RlKTsKKysKKysvKioKKysgKiBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfYWxpYXM6CisrICog QHVuaWNvZGU6IEFuICNJQnVzVW5pY29kZURhdGEKKysgKgorKyAqIEdldHMgdGhlIGFsaWFzIGlu ICNJQnVzVW5pY29kZURhdGEuIEl0IHNob3VsZCBub3QgYmUgZnJlZWQuCisrICoKKysgKiBSZXR1 cm5zOiBhbGlhcyBwcm9wZXJ0eSBpbiAjSUJ1c1VuaWNvZGVEYXRhCisrICovCisrY29uc3QgZ2No YXIgKiAgICAgaWJ1c191bmljb2RlX2RhdGFfZ2V0X2FsaWFzIChJQnVzVW5pY29kZURhdGEgICAg KnVuaWNvZGUpOworKworKy8qKgorKyAqIGlidXNfdW5pY29kZV9kYXRhX2dldF9ibG9ja19uYW1l OgorKyAqIEB1bmljb2RlOiBBbiAjSUJ1c1VuaWNvZGVEYXRhCisrICoKKysgKiBHZXRzIHRoZSBi bG9jayBuYW1lIGluICNJQnVzVW5pY29kZURhdGEuIEl0IHNob3VsZCBub3QgYmUgZnJlZWQuCisr ICoKKysgKiBSZXR1cm5zOiBibG9jay1uYW1lIHByb3BlcnR5IGluICNJQnVzVW5pY29kZURhdGEK KysgKi8KKytjb25zdCBnY2hhciAqICAgICBpYnVzX3VuaWNvZGVfZGF0YV9nZXRfYmxvY2tfbmFt ZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1Vu aWNvZGVEYXRhICAgICp1bmljb2RlKTsKKysKKysvKioKKysgKiBpYnVzX3VuaWNvZGVfZGF0YV9z ZXRfYmxvY2tfbmFtZToKKysgKiBAdW5pY29kZTogQW4gI0lCdXNVbmljb2RlRGF0YQorKyAqIEBi bG9ja19uYW1lOiBBIGJsb2NrIG5hbWUKKysgKgorKyAqIFNldHMgdGhlIGJsb2NrIG5hbWUgaW4g I0lCdXNVbmljb2RlRGF0YS4KKysgKi8KKyt2b2lkICAgICAgICAgICAgICBpYnVzX3VuaWNvZGVf ZGF0YV9zZXRfYmxvY2tfbmFtZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoSUJ1c1VuaWNvZGVEYXRhICAgICp1bmljb2RlLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICpibG9j a19uYW1lKTsKKysKKysvKioKKysgKiBpYnVzX3VuaWNvZGVfZGF0YV9zYXZlOgorKyAqIEBwYXRo OiBBIHBhdGggb2YgdGhlIHNhdmVkIFVuaWNvZGUgZGF0YS4KKysgKiBAbGlzdDogKGVsZW1lbnQt dHlwZSBJQnVzVW5pY29kZURhdGEpICh0cmFuc2ZlciBub25lKTogQSBsaXN0IG9mIHVuaWNvZGUK KysgKiAgZGF0YS4KKysgKgorKyAqIFNhdmUgdGhlIGxpc3Qgb2YgI0lCdXNVbmljb2RlRGF0YSB0 byB0aGUgY2FjaGUgZmlsZS4KKysgKi8KKyt2b2lkICAgICAgICAgICAgICBpYnVzX3VuaWNvZGVf ZGF0YV9zYXZlICAgICAgKGNvbnN0IGdjaGFyICAgICAgICAqcGF0aCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTTGlzdCAgICAgICAgICAgICAqbGlz dCk7CisrCisrLyoqCisrICogaWJ1c191bmljb2RlX2RhdGFfbG9hZDoKKysgKiBAcGF0aDogQSBw YXRoIG9mIHRoZSBzYXZlZCBkaWN0aW9uYXJ5IGZpbGUuCisrICogQG9iamVjdDogKG51bGxhYmxl KTogSWYgdGhlICNHT2JqZWN0IGhhcyAidW5pY29kZS1kZXNlcmlhbGl6ZS1wcm9ncmVzcyIKKysg KiAgICBzaWduYWwsIHRoaXMgZnVuY3Rpb24gd2lsbCBlbWl0ICh0aGUgbnVtYmVyIG9mIGRlc3Jp YWxpemVkCisrICogICAgI0lCdXNVbmljb2RlRGF0YSwgKiB0aGUgdG90YWwgbnVtYmVyIG9mICNJ QnVzVW5pY29kZURhdGEpIG9mIHVpbnQgdmFsdWVzCisrICogICAgd2l0aCB0aGF0IHNpZ25hbCBi eSAxMDAgdGltZXMuIE90aGVyd2lzZSAlTlVMTC4KKysgKgorKyAqIFJldHVybnM6IChlbGVtZW50 LXR5cGUgSUJ1c1VuaWNvZGVEYXRhKSAodHJhbnNmZXIgY29udGFpbmVyKToKKysgKiBBbiAjSUJ1 c1VuaWNvZGVEYXRhIGxpc3QgbG9hZGVkIGZyb20gdGhlIHNhdmVkIGNhY2hlIGZpbGUuCisrICov CisrR1NMaXN0ICogICAgICAgICAgaWJ1c191bmljb2RlX2RhdGFfbG9hZCAgICAgIChjb25zdCBn Y2hhciAgICAgICAgKnBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHT2JqZWN0ICAgICAgICAgICAgKm9iamVjdCk7CisrCisrLyoqCisrICogaWJ1 c191bmljb2RlX2RhdGFfbG9hZF9hc3luYzoKKysgKiBAcGF0aDogQSBwYXRoIG9mIHRoZSBzYXZl ZCBkaWN0aW9uYXJ5IGZpbGUuCisrICogQG9iamVjdDogKG51bGxhYmxlKTogSWYgdGhlICNHT2Jq ZWN0IGhhcyAidW5pY29kZS1kZXNlcmlhbGl6ZS1wcm9ncmVzcyIKKysgKiAgICBzaWduYWwsIHRo aXMgZnVuY3Rpb24gd2lsbCBlbWl0ICh0aGUgbnVtYmVyIG9mIGRlc3JpYWxpemVkCisrICogICAg I0lCdXNVbmljb2RlRGF0YSwgKiB0aGUgdG90YWwgbnVtYmVyIG9mICNJQnVzVW5pY29kZURhdGEp IG9mIHVpbnQgdmFsdWVzCisrICogICAgd2l0aCB0aGF0IHNpZ25hbCBieSAxMDAgdGltZXMuIE90 aGVyd2lzZSAlTlVMTC4KKysgKiBAY2FuY2VsbGFibGU6IGNhbmNlbGxhYmxlLgorKyAqIEBjYWxs YmFjazogKHNjb3BlIG5vdGlmaWVkKTogSUJ1c1VuaWNvZGVEYXRhTG9hZEFzeW5jRmluaXNoLgor KyAqIEB1c2VyX2RhdGE6IFVzZXIgZGF0YS4KKysgKgorKyAqIElCdXNVbmljb2RlRGF0YUxvYWRB c3luY0ZpbmlzaCBjYW4gcmVjZWl2ZSB0aGUgbGlzdCBvZiAjSUJ1c1VuaWNvZGVEYXRhLgorKyAq LworK3ZvaWQgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9kYXRhX2xvYWRfYXN5bmMKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGdjaGFyICAg ICAgICAqcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdPYmplY3QgICAgICAgICAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlICAgICAgICpjYW5jZWxsYWJsZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNVbmlj b2RlRGF0YUxvYWRBc3luY0ZpbmlzaAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICAgICAg dXNlcl9kYXRhKTsKKysKKysvKioKKysgKiBpYnVzX3VuaWNvZGVfYmxvY2tfbmV3OgorKyAqIEBm aXJzdF9wcm9wZXJ0eV9uYW1lOiBOYW1lIG9mIHRoZSBmaXJzdCBwcm9wZXJ0eS4KKysgKiBALi4u OiB0aGUgTlVMTC10ZXJtaW5hdGVkIGFyZ3VtZW50cyBvZiB0aGUgcHJvcGVydGllcyBhbmQgdmFs dWVzLgorKyAqCisrICogQ3JlYXRlcyBhIG5ldyAjSUJ1c1VuaWNvZGVCbG9jay4KKysgKiBibG9j ayBwcm9wZXJ0eSBpcyByZXF1aXJlZC4gZS5nLgorKyAqIGlidXNfdW5pY29kZV9ibG9ja19uZXcg KCJzdGFydCIsIDB4MDAwMCwgImVuZCIsICIweDAwN2YiLCAibmFtZSIsICJiYXNpYyIsCisrICog TlVMTCkKKysgKgorKyAqIFJldHVybnM6IEEgbmV3bHkgYWxsb2NhdGVkICNJQnVzVW5pY29kZUJs b2NrLgorKyAqLworK0lCdXNVbmljb2RlQmxvY2sgKmlidXNfdW5pY29kZV9ibG9ja19uZXcgICAg ICAoY29uc3QgZ2NoYXIgKmZpcnN0X3Byb3BlcnR5X25hbWUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pOworKworKy8qKgorKyAqIGlidXNfdW5p Y29kZV9ibG9ja19nZXRfc3RhcnQ6CisrICogQGJsb2NrOiBBbiAjSUJ1c1VuaWNvZGVEYXRhCisr ICoKKysgKiBHZXRzIHRoZSBzdGFydCBjb2RlIHBvaW50IGluICNJQnVzVW5pY29kZUJsb2NrLgor KyAqCisrICogUmV0dXJuczogc3RhcnQgcHJvcGVydHkgaW4gI0lCdXNVbmljb2RlQmxvY2sKKysg Ki8KKytndW5pY2hhciAgICAgICAgICBpYnVzX3VuaWNvZGVfYmxvY2tfZ2V0X3N0YXJ0CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzVW5pY29kZUJs b2NrICAgKmJsb2NrKTsKKysKKysvKioKKysgKiBpYnVzX3VuaWNvZGVfYmxvY2tfZ2V0X2VuZDoK KysgKiBAYmxvY2s6IEFuICNJQnVzVW5pY29kZURhdGEKKysgKgorKyAqIEdldHMgdGhlIGVuZCBj b2RlIHBvaW50IGluICNJQnVzVW5pY29kZUJsb2NrLgorKyAqCisrICogUmV0dXJuczogZW5kIHBy b3BlcnR5IGluICNJQnVzVW5pY29kZUJsb2NrCisrICovCisrZ3VuaWNoYXIgICAgICAgICAgaWJ1 c191bmljb2RlX2Jsb2NrX2dldF9lbmQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKElCdXNVbmljb2RlQmxvY2sgICAqYmxvY2spOworKworKy8qKgorKyAq IGlidXNfdW5pY29kZV9ibG9ja19nZXRfbmFtZToKKysgKiBAYmxvY2s6IEFuICNJQnVzVW5pY29k ZUJsb2NrCisrICoKKysgKiBHZXRzIHRoZSBuYW1lIGluICNJQnVzVW5pY29kZUJsb2NrLiBJdCBz aG91bGQgbm90IGJlIGZyZWVkLgorKyAqCisrICogUmV0dXJuczogbmFtZSBwcm9wZXJ0eSBpbiAj SUJ1c1VuaWNvZGVCbG9jaworKyAqLworK2NvbnN0IGdjaGFyICogICAgIGlidXNfdW5pY29kZV9i bG9ja19nZXRfbmFtZSAoSUJ1c1VuaWNvZGVCbG9jayAgICpibG9jayk7CisrCisrLyoqCisrICog aWJ1c191bmljb2RlX2Jsb2NrX3NhdmU6CisrICogQHBhdGg6IEEgcGF0aCBvZiB0aGUgc2F2ZWQg VW5pY29kZSBibG9jay4KKysgKiBAbGlzdDogKGVsZW1lbnQtdHlwZSBJQnVzVW5pY29kZUJsb2Nr KSAodHJhbnNmZXIgbm9uZSk6IEEgbGlzdCBvZiB1bmljb2RlCisrICogIGJsb2NrLgorKyAqCisr ICogU2F2ZSB0aGUgbGlzdCBvZiAjSUJ1c1VuaWNvZGVCbG9jayB0byB0aGUgY2FjaGUgZmlsZS4K KysgKi8KKyt2b2lkICAgICAgICAgICAgICBpYnVzX3VuaWNvZGVfYmxvY2tfc2F2ZSAgICAgKGNv bnN0IGdjaGFyICAgICAgICAqcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdTTGlzdCAgICAgICAgICAgICAqbGlzdCk7CisrCisrLyoqCisrICog aWJ1c191bmljb2RlX2Jsb2NrX2xvYWQ6CisrICogQHBhdGg6IEEgcGF0aCBvZiB0aGUgc2F2ZWQg ZGljdGlvbmFyeSBmaWxlLgorKyAqCisrICogUmV0dXJuczogKGVsZW1lbnQtdHlwZSBJQnVzVW5p Y29kZUJsb2NrKSAodHJhbnNmZXIgY29udGFpbmVyKToKKysgKiBBbiAjSUJ1c1VuaWNvZGVCbG9j ayBsaXN0IGxvYWRlZCBmcm9tIHRoZSBzYXZlZCBjYWNoZSBmaWxlLgorKyAqLworK0dTTGlzdCAq ICAgICAgICAgIGlidXNfdW5pY29kZV9ibG9ja19sb2FkICAgICAoY29uc3QgZ2NoYXIgICAgICAg ICpwYXRoKTsKKysKKytHX0VORF9ERUNMUworKyNlbmRpZgorZGlmZiAtLWdpdCBhL3NyYy9pYnVz dW5pY29kZWdlbi5oIGIvc3JjL2lidXN1bmljb2RlZ2VuLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMC4uYzYxM2I4MWIKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9pYnVz dW5pY29kZWdlbi5oCitAQCAtMCwwICsxLDExNTEgQEAKKysvKiAtKi0gbW9kZTogQzsgYy1iYXNp Yy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisrLyogdmltOnNldCBl dCBzdHM9NDogKi8KKysvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworKyAqIENvcHlyaWdodCAoQykg MjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5 cmlnaHQgKEMpIDIwMTggUmVkIEhhdCwgSW5jLgorKyAqCisrICogVGhpcyBsaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAqIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgKiBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIKKysgKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKKysgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKysgKiBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxCisr ICogVVNBCisrICovCisrCisrCisrLyogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSB1bmljb2Rl LXBhcnNlci5jLiAqLworK2luY2x1ZGUgPGdsaWIvZ2kxOG4uaD4KKysKKysjaWZuZGVmIF9fSUJV U19VTklDT0RFX0dFTl9IXworKyNkZWZpbmUgX19JQlVTX1VOSUNPREVfR0VOX0hfCisrY29uc3Qg c3RhdGljIGNoYXIgKnVuaWNvZGVfYmxvY2tzW10gPSB7CisrICAgIC8qIFRSQU5TTEFUT1JTOiBZ b3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAg ICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdl IC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJCYXNpYyBMYXRp biIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiTGF0aW4tMSBTdXBwbGVtZW50IiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJMYXRp biBFeHRlbmRlZC1BIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhl IHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0 aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBp YnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJMYXRpbiBFeHRlbmRlZC1CIiksCisrICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Cisr ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAg IE5fKCJJUEEgRXh0ZW5zaW9ucyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJl ZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAg ICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJt YXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiU3BhY2luZyBNb2RpZmllciBMZXR0 ZXJzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0 aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93 aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGli dXMucG90ICovCisrICAgIE5fKCJDb21iaW5pbmcgRGlhY3JpdGljYWwgTWFya3MiKSwKKysgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK KysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysg ICAgTl8oIkdyZWVrIGFuZCBDb3B0aWMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkN5cmlsbGljIiksCisrICAg IC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1 Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6 CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisr ICAgIE5fKCJDeXJpbGxpYyBTdXBwbGVtZW50IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3Ug bWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAg ICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1D IGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJBcm1lbmlhbiIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiSGVicmV3IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVm ZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAg ICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1h cC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJBcmFiaWMiKSwKKysgICAgLyogVFJB TlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFw IHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAg ICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8o IlN5cmlhYyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiQXJhYmljIFN1cHBsZW1lbnQiKSwKKysgICAgLyogVFJB TlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFw IHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAg ICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8o IlRoYWFuYSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiTktvIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3Ug bWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAg ICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1D IGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJTYW1hcml0YW4iKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIk1hbmRhaWMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlN5cmlhYyBTdXBwbGVtZW50Iiks CisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBm cm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNv bW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90 ICovCisrICAgIE5fKCJBcmFiaWMgRXh0ZW5kZWQtQSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzog WW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAg ICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJn ZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiRGV2YW5hZ2Fy aSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiQmVuZ2FsaSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1p Z2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAg ICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBn dWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiR3VybXVraGkiKSwKKysg ICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20g Z3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFu ZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8K KysgICAgTl8oIkd1amFyYXRpIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVm ZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAg ICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1h cC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJPcml5YSIpLAorKyAgICAvKiBUUkFO U0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAg d2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAg ICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygi VGFtaWwiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIlRlbHVndSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91 IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAg ICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAt QyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiS2FubmFkYSIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiTWFsYXlhbGFtIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQg cmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAg ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hh cm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJTaW5oYWxhIiksCisrICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Cisr ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAg IE5fKCJUaGFpIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJMYW8iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlRpYmV0YW4iKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIk15YW5tYXIiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkdlb3JnaWFuIiksCisrICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Cisr ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAg IE5fKCJIYW5ndWwgSmFtbyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVy IHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAg ICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAu cG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiRXRoaW9waWMiKSwKKysgICAgLyogVFJB TlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFw IHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAg ICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8o IkV0aGlvcGljIFN1cHBsZW1lbnQiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkNoZXJva2VlIiksCisrICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Cisr ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAg IE5fKCJVbmlmaWVkIENhbmFkaWFuIEFib3JpZ2luYWwgU3lsbGFiaWNzIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJPZ2hhbSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiUnVuaWMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlRhZ2Fsb2ciKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIkhhbnVub28iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkJ1aGlkIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJUYWdiYW53YSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiS2htZXIiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6 IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysg ICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVy Z2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIk1vbmdvbGlh biIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyBF eHRlbmRlZCIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiTGltYnUiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlRhaSBMZSIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiTmV3IFRhaSBMdWUiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIktobWVyIFN5bWJvbHMiKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIkJ1Z2luZXNlIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQg cmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAg ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hh cm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJUYWkgVGhhbSIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiQ29tYmluaW5nIERpYWNyaXRpY2FsIE1hcmtzIEV4dGVuZGVkIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJCYWxpbmVzZSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiU3VuZGFuZXNlIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJCYXRh ayIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiTGVwY2hhIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWln aHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAg ICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1 Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJPbCBDaGlraSIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiQ3lyaWxsaWMgRXh0ZW5kZWQtQyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91 IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAg ICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAt QyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiU3VuZGFuZXNlIFN1 cHBsZW1lbnQiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJh bnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBm b2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMu cG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlZlZGljIEV4dGVuc2lvbnMiKSwKKysgICAgLyogVFJB TlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFw IHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAg ICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8o IlBob25ldGljIEV4dGVuc2lvbnMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlBob25ldGljIEV4dGVuc2lvbnMg U3VwcGxlbWVudCIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ29tYmluaW5nIERpYWNyaXRpY2FsIE1hcmtzIFN1 cHBsZW1lbnQiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJh bnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBm b2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMu cG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkxhdGluIEV4dGVuZGVkIEFkZGl0aW9uYWwiKSwKKysg ICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20g Z3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFu ZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8K KysgICAgTl8oIkdyZWVrIEV4dGVuZGVkIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWln aHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAg ICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1 Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJHZW5lcmFsIFB1bmN0dWF0 aW9uIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0 aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93 aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGli dXMucG90ICovCisrICAgIE5fKCJTdXBlcnNjcmlwdHMgYW5kIFN1YnNjcmlwdHMiKSwKKysgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK KysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysg ICAgTl8oIkN1cnJlbmN5IFN5bWJvbHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkNvbWJpbmluZyBEaWFjcml0 aWNhbCBNYXJrcyBmb3IgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiTGV0dGVybGlrZSBTeW1ib2xz IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9u cyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5n IGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMu cG90ICovCisrICAgIE5fKCJOdW1iZXIgRm9ybXMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkFycm93cyIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiTWF0aGVtYXRpY2FsIE9wZXJhdG9ycyIpLAorKyAgICAvKiBUUkFOU0xBVE9S UzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAor KyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dt ZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiTWlzY2Vs bGFuZW91cyBUZWNobmljYWwiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZl ciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAg ICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFw LnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkNvbnRyb2wgUGljdHVyZXMiKSwKKysg ICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20g Z3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFu ZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8K KysgICAgTl8oIk9wdGljYWwgQ2hhcmFjdGVyIFJlY29nbml0aW9uIiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJF bmNsb3NlZCBBbHBoYW51bWVyaWNzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQg cmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAg ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hh cm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJCb3ggRHJhd2luZyIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiQmxvY2sgRWxlbWVudHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkdlb21ldHJpYyBTaGFwZXMi KSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25z IGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcg Y29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5w b3QgKi8KKysgICAgTl8oIk1pc2NlbGxhbmVvdXMgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xB VE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0 aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBt c2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiRGlu Z2JhdHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIk1pc2NlbGxhbmVvdXMgTWF0aGVtYXRpY2FsIFN5bWJvbHMt QSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiU3VwcGxlbWVudGFsIEFycm93cy1BIiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJC cmFpbGxlIFBhdHRlcm5zIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIg dGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAg ICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5w byBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJTdXBwbGVtZW50YWwgQXJyb3dzLUIiKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIk1pc2NlbGxhbmVvdXMgTWF0aGVtYXRpY2FsIFN5bWJvbHMtQiIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiU3VwcGxlbWVudGFsIE1hdGhlbWF0aWNhbCBPcGVyYXRvcnMiKSwKKysgICAgLyog VFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFy bWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysg ICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAg Tl8oIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJHbGFn b2xpdGljIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5z bGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9s bG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBv IGlidXMucG90ICovCisrICAgIE5fKCJMYXRpbiBFeHRlbmRlZC1DIiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJD b3B0aWMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIkdlb3JnaWFuIFN1cHBsZW1lbnQiKSwKKysgICAgLyogVFJB TlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFw IHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAg ICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8o IlRpZmluYWdoIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJFdGhpb3BpYyBFeHRlbmRlZCIpLAorKyAgICAvKiBU UkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJt YXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAg ICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBO XygiQ3lyaWxsaWMgRXh0ZW5kZWQtQSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiU3VwcGxlbWVudGFsIFB1bmN0 dWF0aW9uIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5z bGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9s bG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBv IGlidXMucG90ICovCisrICAgIE5fKCJDSksgUmFkaWNhbHMgU3VwcGxlbWVudCIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiS2FuZ3hpIFJhZGljYWxzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQg cmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAg ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hh cm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJJZGVvZ3JhcGhpYyBEZXNjcmlw dGlvbiBDaGFyYWN0ZXJzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIg dGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAg ICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5w byBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJDSksgU3ltYm9scyBhbmQgUHVuY3R1YXRp b24iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRp b25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dp bmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1 cy5wb3QgKi8KKysgICAgTl8oIkhpcmFnYW5hIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3Ug bWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAg ICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1D IGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJLYXRha2FuYSIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiQm9wb21vZm8iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkhhbmd1bCBDb21wYXRpYmlsaXR5 IEphbW8iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIkthbmJ1biIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91 IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAg ICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAt QyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQm9wb21vZm8gRXh0 ZW5kZWQiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIkNKSyBTdHJva2VzIiksCisrICAgIC8qIFRSQU5TTEFUT1JT OiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisr ICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21l cmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJLYXRha2Fu YSBQaG9uZXRpYyBFeHRlbnNpb25zIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQg cmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAg ICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hh cm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJFbmNsb3NlZCBDSksgTGV0dGVy cyBhbmQgTW9udGhzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhl IHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0 aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBp YnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJDSksgQ29tcGF0aWJpbGl0eSIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQSIpLAorKyAgICAvKiBUUkFO U0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAg d2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAg ICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygi WWlqaW5nIEhleGFncmFtIFN5bWJvbHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkNKSyBVbmlmaWVkIElkZW9n cmFwaHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIllpIFN5bGxhYmxlcyIpLAorKyAgICAvKiBUUkFOU0xBVE9S UzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAor KyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dt ZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiWWkgUmFk aWNhbHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIkxpc3UiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBt aWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAg ICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMg Z3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlZhaSIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiQ3lyaWxsaWMgRXh0ZW5kZWQtQiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1p Z2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAg ICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBn dWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQmFtdW0iKSwKKysgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK KysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysg ICAgTl8oIk1vZGlmaWVyIFRvbmUgTGV0dGVycyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91 IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAg ICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAt QyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiTGF0aW4gRXh0ZW5k ZWQtRCIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xh dGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxv d2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBp YnVzLnBvdCAqLworKyAgICBOXygiU3lsb3RpIE5hZ3JpIiksCisrICAgIC8qIFRSQU5TTEFUT1JT OiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisr ICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21l cmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJDb21tb24g SW5kaWMgTnVtYmVyIEZvcm1zIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVm ZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAg ICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1h cC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJQaGFncy1wYSIpLAorKyAgICAvKiBU UkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJt YXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAg ICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBO XygiU2F1cmFzaHRyYSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRo ZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAg dGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8g aWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiRGV2YW5hZ2FyaSBFeHRlbmRlZCIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiS2F5YWggTGkiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZl ciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAg ICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFw LnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlJlamFuZyIpLAorKyAgICAvKiBUUkFO U0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAg d2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAg ICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygi SGFuZ3VsIEphbW8gRXh0ZW5kZWQtQSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiSmF2YW5lc2UiKSwKKysgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK KysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysg ICAgTl8oIk15YW5tYXIgRXh0ZW5kZWQtQiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1p Z2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAg ICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBn dWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ2hhbSIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiTXlhbm1hciBFeHRlbmRlZC1BIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWln aHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAg ICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1 Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJUYWkgVmlldCIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiTWVldGVpIE1heWVrIEV4dGVuc2lvbnMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6 IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysg ICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVy Z2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkV0aGlvcGlj IEV4dGVuZGVkLUEiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUg dHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRo ZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGli dXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkxhdGluIEV4dGVuZGVkLUUiKSwKKysgICAgLyog VFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFy bWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysg ICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAg Tl8oIkNoZXJva2VlIFN1cHBsZW1lbnQiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIk1lZXRlaSBNYXllayIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiSGFuZ3VsIFN5bGxhYmxlcyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91 IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAg ICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAt QyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiSGFuZ3VsIEphbW8g RXh0ZW5kZWQtQiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiSGlnaCBTdXJyb2dhdGVzIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJIaWdoIFByaXZhdGUgVXNlIFN1cnJvZ2F0ZXMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkxvdyBTdXJyb2dh dGVzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0 aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93 aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGli dXMucG90ICovCisrICAgIE5fKCJQcml2YXRlIFVzZSBBcmVhIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJDSksg Q29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWln aHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAg ICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1 Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJBbHBoYWJldGljIFByZXNl bnRhdGlvbiBGb3JtcyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRo ZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAg dGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8g aWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1B IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9u cyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5n IGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMu cG90ICovCisrICAgIE5fKCJWYXJpYXRpb24gU2VsZWN0b3JzIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJWZXJ0 aWNhbCBGb3JtcyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ29tYmluaW5nIEhhbGYgTWFya3MiKSwKKysgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK KysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysg ICAgTl8oIkNKSyBDb21wYXRpYmlsaXR5IEZvcm1zIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZ b3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAg ICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdl IC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJTbWFsbCBGb3Jt IFZhcmlhbnRzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUIiKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIkhhbGZ3aWR0aCBhbmQgRnVsbHdpZHRoIEZvcm1zIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJTcGVjaWFscyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiTGluZWFyIEIgU3lsbGFiYXJ5IiksCisrICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Cisr ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAg IE5fKCJMaW5lYXIgQiBJZGVvZ3JhbXMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkFlZ2VhbiBOdW1iZXJzIiks CisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBm cm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNv bW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90 ICovCisrICAgIE5fKCJBbmNpZW50IEdyZWVrIE51bWJlcnMiKSwKKysgICAgLyogVFJBTlNMQVRP UlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgK KysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNn bWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkFuY2ll bnQgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiUGhhaXN0b3MgRGlzYyIpLAorKyAgICAvKiBUUkFO U0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAg d2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAg ICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygi THljaWFuIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5z bGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9s bG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBv IGlidXMucG90ICovCisrICAgIE5fKCJDYXJpYW4iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkNvcHRpYyBFcGFj dCBOdW1iZXJzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJPbGQgSXRhbGljIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJHb3Ro aWMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRp b25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dp bmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1 cy5wb3QgKi8KKysgICAgTl8oIk9sZCBQZXJtaWMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlVnYXJpdGljIiks CisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBm cm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNv bW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90 ICovCisrICAgIE5fKCJPbGQgUGVyc2lhbiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1p Z2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAg ICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBn dWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiRGVzZXJldCIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiU2hhdmlhbiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVy IHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAg ICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAu cG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiT3NtYW55YSIpLAorKyAgICAvKiBUUkFO U0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAg d2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAg ICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygi T3NhZ2UiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIkVsYmFzYW4iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkNhdWNhc2lhbiBB bGJhbmlhbiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiTGluZWFyIEEiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6 IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysg ICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVy Z2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkN5cHJpb3Qg U3lsbGFiYXJ5IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJJbXBlcmlhbCBBcmFtYWljIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJQYWxteXJlbmUiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUg dHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRo ZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGli dXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIk5hYmF0YWVhbiIpLAorKyAgICAvKiBUUkFOU0xB VE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0 aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBt c2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiSGF0 cmFuIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0 aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93 aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGli dXMucG90ICovCisrICAgIE5fKCJQaG9lbmljaWFuIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZ b3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAg ICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdl IC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJMeWRpYW4iKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIk1lcm9pdGljIEhpZXJvZ2x5cGhzIiksCisrICAgIC8qIFRSQU5TTEFUT1JT OiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisr ICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21l cmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJNZXJvaXRp YyBDdXJzaXZlIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJLaGFyb3NodGhpIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJPbGQg U291dGggQXJhYmlhbiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRo ZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAg dGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8g aWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiT2xkIE5vcnRoIEFyYWJpYW4iKSwKKysgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK KysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysg ICAgTl8oIk1hbmljaGFlYW4iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZl ciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAg ICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFw LnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkF2ZXN0YW4iKSwKKysgICAgLyogVFJB TlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFw IHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAg ICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8o Ikluc2NyaXB0aW9uYWwgUGFydGhpYW4iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkluc2NyaXB0aW9uYWwgUGFo bGF2aSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xh dGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxv d2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBp YnVzLnBvdCAqLworKyAgICBOXygiUHNhbHRlciBQYWhsYXZpIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJPbGQg VHVya2ljIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5z bGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9s bG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBv IGlidXMucG90ICovCisrICAgIE5fKCJPbGQgSHVuZ2FyaWFuIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJSdW1p IE51bWVyYWwgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVy IHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAg ICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAu cG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQnJhaG1pIiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJL YWl0aGkiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIlNvcmEgU29tcGVuZyIpLAorKyAgICAvKiBUUkFOU0xBVE9S UzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAor KyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dt ZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ2hha21h IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9u cyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5n IGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMu cG90ICovCisrICAgIE5fKCJNYWhhamFuaSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1p Z2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAg ICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBn dWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiU2hhcmFkYSIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiU2luaGFsYSBBcmNoYWljIE51bWJlcnMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6 IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysg ICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVy Z2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIktob2praSIp LAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMg ZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBj b21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBv dCAqLworKyAgICBOXygiTXVsdGFuaSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiS2h1ZGF3YWRpIiksCisrICAg IC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1 Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6 CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisr ICAgIE5fKCJHcmFudGhhIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIg dGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAg ICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5w byBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJOZXdhIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJUaXJo dXRhIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0 aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93 aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGli dXMucG90ICovCisrICAgIE5fKCJTaWRkaGFtIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3Ug bWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAg ICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1D IGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJNb2RpIiksCisrICAg IC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1 Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6 CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisr ICAgIE5fKCJNb25nb2xpYW4gU3VwcGxlbWVudCIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91 IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAg ICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAt QyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiVGFrcmkiKSwKKysg ICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20g Z3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFu ZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8K KysgICAgTl8oIkFob20iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0 aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAg IHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBv IGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIldhcmFuZyBDaXRpIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJaYW5hYmF6YXIgU3F1YXJlIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVm ZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAg ICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1h cC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJTb3lvbWJvIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJQYXUgQ2luIEhhdSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRo ZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAg dGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8g aWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQmhhaWtzdWtpIiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJN YXJjaGVuIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5z bGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9s bG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBv IGlidXMucG90ICovCisrICAgIE5fKCJNYXNhcmFtIEdvbmRpIiksCisrICAgIC8qIFRSQU5TTEFU T1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRo CisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1z Z21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJDdW5l aWZvcm0iKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNs YXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KKysgICAgTl8oIkN1bmVpZm9ybSBOdW1iZXJzIGFuZCBQdW5jdHVhdGlvbiIp LAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMg ZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBj b21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBv dCAqLworKyAgICBOXygiRWFybHkgRHluYXN0aWMgQ3VuZWlmb3JtIiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJF Z3lwdGlhbiBIaWVyb2dseXBocyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJl ZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAg ICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJt YXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQW5hdG9saWFuIEhpZXJvZ2x5cGhz IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9u cyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5n IGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMu cG90ICovCisrICAgIE5fKCJCYW11bSBTdXBwbGVtZW50IiksCisrICAgIC8qIFRSQU5TTEFUT1JT OiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisr ICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21l cmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJNcm8iKSwK KysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZy b20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29t bWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3Qg Ki8KKysgICAgTl8oIkJhc3NhIFZhaCIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiUGFoYXdoIEhtb25nIiksCisr ICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9t IGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1h bmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICov CisrICAgIE5fKCJNaWFvIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIg dGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAg ICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5w byBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJJZGVvZ3JhcGhpYyBTeW1ib2xzIGFuZCBQ dW5jdHVhdGlvbiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiVGFuZ3V0IiksCisrICAgIC8qIFRSQU5TTEFUT1JT OiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisr ICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21l cmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJUYW5ndXQg Q29tcG9uZW50cyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0 cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhl IGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1 cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiS2FuYSBTdXBwbGVtZW50IiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJLYW5hIEV4dGVuZGVkLUEiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZl ciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAg ICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFw LnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIk51c2h1IiksCisrICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJE dXBsb3lhbiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiU2hvcnRoYW5kIEZvcm1hdCBDb250cm9scyIpLAorKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwor KyAgICBOXygiQnl6YW50aW5lIE11c2ljYWwgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xBVE9S UzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAor KyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dt ZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiTXVzaWNh bCBTeW1ib2xzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJBbmNpZW50IEdyZWVrIE11c2ljYWwgTm90YXRpb24i KSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25z IGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcg Y29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5w b3QgKi8KKysgICAgTl8oIlRhaSBYdWFuIEppbmcgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xB VE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0 aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBt c2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ291 bnRpbmcgUm9kIE51bWVyYWxzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVm ZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAg ICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1h cC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJNYXRoZW1hdGljYWwgQWxwaGFudW1l cmljIFN5bWJvbHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUg dHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRo ZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGli dXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlN1dHRvbiBTaWduV3JpdGluZyIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiR2xhZ29saXRpYyBTdXBwbGVtZW50IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3Ug bWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAg ICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1D IGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5fKCJNZW5kZSBLaWtha3Vp IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9u cyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5n IGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMu cG90ICovCisrICAgIE5fKCJBZGxhbSIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQXJhYmljIE1hdGhlbWF0aWNh bCBBbHBoYWJldGljIFN5bWJvbHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCBy ZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAg ICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFy bWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIk1haGpvbmcgVGlsZXMiKSwKKysg ICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20g Z3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFu ZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8K KysgICAgTl8oIkRvbWlubyBUaWxlcyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiUGxheWluZyBDYXJkcyIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiRW5jbG9zZWQgQWxwaGFudW1lcmljIFN1cHBsZW1lbnQiKSwKKysgICAgLyog VFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFy bWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysg ICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAg Tl8oIkVuY2xvc2VkIElkZW9ncmFwaGljIFN1cHBsZW1lbnQiKSwKKysgICAgLyogVFJBTlNMQVRP UlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgK KysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNn bWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIk1pc2Nl bGxhbmVvdXMgU3ltYm9scyBhbmQgUGljdG9ncmFwaHMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6 IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysg ICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVy Z2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIkVtb3RpY29u cyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiT3JuYW1lbnRhbCBEaW5nYmF0cyIpLAorKyAgICAvKiBUUkFOU0xB VE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0 aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBt c2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiVHJh bnNwb3J0IGFuZCBNYXAgU3ltYm9scyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0 IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNo YXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQWxjaGVtaWNhbCBTeW1ib2xz IiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9u cyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5n IGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMu cG90ICovCisrICAgIE5fKCJHZW9tZXRyaWMgU2hhcGVzIEV4dGVuZGVkIiksCisrICAgIC8qIFRS QU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1h cCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisrICAg ICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAgIE5f KCJTdXBwbGVtZW50YWwgQXJyb3dzLUMiKSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdo dCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAg ICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3Vj aGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KKysgICAgTl8oIlN1cHBsZW1lbnRhbCBTeW1i b2xzIGFuZCBQaWN0b2dyYXBocyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJl ZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAg ICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJt YXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ0pLIFVuaWZpZWQgSWRlb2dyYXBo cyBFeHRlbnNpb24gQiIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRo ZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAg dGhlIGZvbGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8g aWJ1cy5wbyBpYnVzLnBvdCAqLworKyAgICBOXygiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRl bnNpb24gQyIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFu c2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZv bGxvd2luZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5w byBpYnVzLnBvdCAqLworKyAgICBOXygiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24g RCIpLAorKyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlv bnMgZnJvbSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2lu ZyBjb21tYW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVz LnBvdCAqLworKyAgICBOXygiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gRSIpLAor KyAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJv bSBndWNoYXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21t YW5kOgorKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAq LworKyAgICBOXygiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gRiIpLAorKyAgICAv KiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNo YXJtYXAgd2l0aAorKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgor KyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLworKyAg ICBOXygiQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocyBTdXBwbGVtZW50IiksCisrICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Cisr ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisrICAg IE5fKCJUYWdzIiksCisrICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRy YW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUg Zm9sbG93aW5nIGNvbW1hbmQ6CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVz LnBvIGlidXMucG90ICovCisrICAgIE5fKCJWYXJpYXRpb24gU2VsZWN0b3JzIFN1cHBsZW1lbnQi KSwKKysgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25z IGZyb20gZ3VjaGFybWFwIHdpdGgKKysgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcg Y29tbWFuZDoKKysgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5w b3QgKi8KKysgICAgTl8oIlN1cHBsZW1lbnRhcnkgUHJpdmF0ZSBVc2UgQXJlYS1BIiksCisrICAg IC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1 Y2hhcm1hcCB3aXRoCisrICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6 CisrICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCisr ICAgIE5fKCJTdXBwbGVtZW50YXJ5IFByaXZhdGUgVXNlIEFyZWEtQiIpLAorK307CisrI2VuZGlm CitkaWZmIC0tZ2l0IGEvc3JjL3VuaWNvZGUtcGFyc2VyLmMgYi9zcmMvdW5pY29kZS1wYXJzZXIu YworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5lOThjNmQ1ZgorLS0tIC9k ZXYvbnVsbAorKysrIGIvc3JjL3VuaWNvZGUtcGFyc2VyLmMKK0BAIC0wLDAgKzEsNTAyIEBACisr LyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7 IC0qLSAqLworKy8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisrLyogaWJ1cyAtIFRoZSBJbnB1dCBC dXMKKysgKiBDb3B5cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE4IFJlZCBIYXQsIEluYy4KKysgKgor KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIGxp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysgKgorKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisr ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAgMDIxMTAtMTMwMQorKyAqIFVTQQorKyAqLworKworKyNpZmRlZiBIQVZFX0NPTkZJ R19ICisrI2luY2x1ZGUgPGNvbmZpZy5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlIDxnbGliLmg+ CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKysjaWZkZWYg SEFWRV9MT0NBTEVfSAorKyNpbmNsdWRlIDxsb2NhbGUuaD4KKysjZW5kaWYKKysKKysjaW5jbHVk ZSAiaWJ1c3VuaWNvZGUuaCIKKysKKysjZGVmaW5lIE5BTUVTX0xJU1RfU1VCSkVDVCAiVGhlIFVu aWNvZGUgU3RhbmRhcmQiCisrI2RlZmluZSBCTE9DS1NfU1VCSkVDVCAiQmxvY2tzLSIKKysKKysv KiBUaGlzIGZpbGUgaGFzIDIxIGxpbmVzIGFib3V0IHRoZSBsaWNlbnNlIGF0IHRoZSB0b3Agb2Yg dGhlIGZpbGUuICovCisrI2RlZmluZSBMSUNFTlNFX0xJTkVTIDIxCisrCisrdHlwZWRlZiBlbnVt CisreworKyAgICBVQ0RfTkFNRVNfTElTVCwKKysgICAgVUNEX0JMT0NLUworK30gVUNEVHlwZTsK KysKKyt0eXBlZGVmIHN0cnVjdCBfVW5pY29kZURhdGEgVW5pY29kZURhdGE7CisrdHlwZWRlZiBz dHJ1Y3QgX1VuaWNvZGVEYXRhSW5kZXggVW5pY29kZURhdGFJbmRleDsKKysKKytzdHJ1Y3QgX1Vu aWNvZGVEYXRheworKyAgICBndW5pY2hhciBjb2RlOworKyAgICBnY2hhciAgICpuYW1lOworKyAg ICBnY2hhciAgICphbGlhczsKKysgICAgZ3VuaWNoYXIgc3RhcnQ7CisrICAgIGd1bmljaGFyIGVu ZDsKKysgICAgR1NMaXN0ICAqbGlzdDsKKyt9OworKworK3N0cnVjdCBfVW5pY29kZURhdGFJbmRl eCB7CisrICAgIGdjaGFyICppbmRleDsKKysgICAgVW5pY29kZURhdGEgKmRhdGFfbGlzdDsKKyt9 OworKworK3N0YXRpYyBnY2hhciAqdW5pY29kZV92ZXJzaW9uOworKworK3N0YXRpYyB2b2lkCisr dW5pY29kZV9kYXRhX25ld19vYmplY3QgKFVuaWNvZGVEYXRhICpkYXRhKQorK3sKKysgICAgZ19y ZXR1cm5faWZfZmFpbCAoZGF0YSAhPSBOVUxMKTsKKysgICAgaWYgKCFkYXRhLT5uYW1lKSB7Cisr ICAgICAgICBnX3dhcm5pbmcgKCJObyBuYW1lIGluIFUrJTA0WCIsIGRhdGEtPmNvZGUpOworKyAg ICB9CisrICAgIElCdXNVbmljb2RlRGF0YSAqdW5pY29kZSA9CisrICAgICAgICAgICAgaWJ1c191 bmljb2RlX2RhdGFfbmV3ICgiY29kZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhLT5jb2RlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5h bWUiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+bmFtZSA/IGdf c3RyZHVwIChkYXRhLT5uYW1lKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IGdfc3RyZHVwICgiIiksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYWxpYXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+ YWxpYXMgPyBnX3N0cmR1cCAoZGF0YS0+YWxpYXMpCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogZ19zdHJkdXAgKCIiKSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwpOworKyAgICBkYXRhLT5saXN0ID0gZ19zbGlzdF9hcHBlbmQg KGRhdGEtPmxpc3QsIHVuaWNvZGUpOworK30KKysKKytzdGF0aWMgdm9pZAorK3VuaWNvZGVfYmxv Y2tfbmV3X29iamVjdCAoVW5pY29kZURhdGEgKmRhdGEpCisreworKyAgICBnX3JldHVybl9pZl9m YWlsIChkYXRhICE9IE5VTEwpOworKyAgICBpZiAoIWRhdGEtPm5hbWUpIHsKKysgICAgICAgIGdf d2FybmluZyAoIk5vIG5hbWUgaW4gVSslMDRYIiwgZGF0YS0+c3RhcnQpOworKyAgICB9CisrICAg IElCdXNVbmljb2RlQmxvY2sgKmJsb2NrID0KKysgICAgICAgICAgICBpYnVzX3VuaWNvZGVfYmxv Y2tfbmV3ICgic3RhcnQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGEtPnN0YXJ0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmVuZCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YS0+bmFtZSA/IGdfc3RyZHVwIChkYXRhLT5uYW1lKQorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdfc3RyZHVwICgiIiks CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKysgICAgZGF0YS0+ bGlzdCA9IGdfc2xpc3RfYXBwZW5kIChkYXRhLT5saXN0LCBibG9jayk7CisrfQorKworK3N0YXRp YyB2b2lkCisrdW5pY29kZV9kYXRhX3Jlc2V0IChVbmljb2RlRGF0YSAqZGF0YSkKKyt7CisrICAg IGdfcmV0dXJuX2lmX2ZhaWwgKGRhdGEgIT0gTlVMTCk7CisrICAgIGRhdGEtPmNvZGUgPSAwOwor KyAgICBnX2NsZWFyX3BvaW50ZXIgKCZkYXRhLT5uYW1lLCBnX2ZyZWUpOworKyAgICBnX2NsZWFy X3BvaW50ZXIgKCZkYXRhLT5hbGlhcywgZ19mcmVlKTsKKysgICAgZGF0YS0+c3RhcnQgPSAwOwor KyAgICBkYXRhLT5lbmQgPSAwOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKyt1Y2RfbmFtZXNf bGlzdF9wYXJzZV9jb21tZW50IChjb25zdCBnY2hhciAqbGluZSkKKyt7CisrICAgIHN0YXRpYyBn Ym9vbGVhbiBoYXNfdmVyc2lvbiA9IEZBTFNFOworKworKyAgICBpZiAoaGFzX3ZlcnNpb24pCisr ICAgICAgICByZXR1cm4gVFJVRTsKKysgICAgaWYgKHN0cmxlbiAobGluZSkgPiA0ICYmIHN0cm5j bXAgKGxpbmUsICJAQEAiLCAzKSA9PSAwKSB7CisrICAgICAgICBnY2hhciAqKmVsZW1lbnRzID0g Z19zdHJzcGxpdCAobGluZSwgIlx0IiwgLTEpOworKyAgICAgICAgaWYgKHN0cm5jbXAgKGVsZW1l bnRzWzFdLCBOQU1FU19MSVNUX1NVQkpFQ1QsCisrICAgICAgICAgICAgc3RybGVuIChOQU1FU19M SVNUX1NVQkpFQ1QpKSA9PSAwKSB7CisrICAgICAgICAgICAgdW5pY29kZV92ZXJzaW9uID0KKysg ICAgICAgICAgICAgICAgICAgIGdfc3RyZHVwIChlbGVtZW50c1sxXSArIHN0cmxlbiAoTkFNRVNf TElTVF9TVUJKRUNUKSArIDEpOworKyAgICAgICAgICAgIGhhc192ZXJzaW9uID0gVFJVRTsKKysg ICAgICAgIH0KKysgICAgICAgIGdfc3RyZnJlZXYgKGVsZW1lbnRzKTsKKysgICAgfQorKyAgICBy ZXR1cm4gVFJVRTsKKyt9CisrCisrc3RhdGljIGdib29sZWFuCisrdWNkX25hbWVzX2xpc3RfcGFy c2VfYWxpYXMgKGNvbnN0IGdjaGFyICpsaW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBVbmljb2RlRGF0YSAqZGF0YSkKKyt7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChsaW5l ICE9IE5VTEwsIEZBTFNFKTsKKysgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGRhdGEgIT0gTlVM TCwgRkFMU0UpOworKworKyAgICBpZiAoKmxpbmUgPT0gJ1wwJykKKysgICAgICAgIHJldHVybiBG QUxTRTsKKysgICAgZGF0YS0+YWxpYXMgPSBnX3N0cmR1cCAobGluZSk7CisrICAgIHJldHVybiBU UlVFOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKyt1Y2RfbmFtZXNfbGlzdF9wYXJzZV9pbmRl bnRfbGluZSAoY29uc3QgZ2NoYXIgKmxpbmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFVuaWNvZGVEYXRhICpkYXRhKQorK3sKKysgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg KGxpbmUgIT0gTlVMTCwgRkFMU0UpOworKworKyAgICBzd2l0Y2ggKCpsaW5lKSB7CisrICAgIGNh c2UgJ1wwJzoKKysgICAgICAgIHJldHVybiBGQUxTRTsKKysgICAgY2FzZSAnPSc6CisrICAgICAg ICBsaW5lKys7CisrICAgICAgICB3aGlsZSAoKmxpbmUgPT0gJyAnKSBsaW5lKys7CisrICAgICAg ICByZXR1cm4gdWNkX25hbWVzX2xpc3RfcGFyc2VfYWxpYXMgKGxpbmUsIGRhdGEpOworKyAgICBk ZWZhdWx0OjsKKysgICAgfQorKyAgICByZXR1cm4gVFJVRTsKKyt9CisrCisrc3RhdGljIGdib29s ZWFuCisrdWNkX25hbWVzX2xpc3RfcGFyc2VfbGluZSAoY29uc3QgZ2NoYXIgKmxpbmUsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgVW5pY29kZURhdGEgKmRhdGEpCisreworKyAgICBnX3Jl dHVybl92YWxfaWZfZmFpbCAobGluZSAhPSBOVUxMLCBGQUxTRSk7CisrCisrICAgIHN3aXRjaCAo KmxpbmUpIHsKKysgICAgY2FzZSAnXDAnOgorKyAgICAgICAgcmV0dXJuIFRSVUU7CisrICAgIGNh c2UgJzsnOgorKyAgICAgICAgcmV0dXJuIFRSVUU7CisrICAgIGNhc2UgJ0AnOgorKyAgICAgICAg cmV0dXJuIHVjZF9uYW1lc19saXN0X3BhcnNlX2NvbW1lbnQgKGxpbmUpOworKyAgICBjYXNlICdc dCc6CisrICAgICAgICByZXR1cm4gdWNkX25hbWVzX2xpc3RfcGFyc2VfaW5kZW50X2xpbmUgKGxp bmUgKyAxLCBkYXRhKTsKKysgICAgZGVmYXVsdDo7CisrICAgIH0KKysgICAgaWYgKGdfYXNjaWlf aXN4ZGlnaXQgKCpsaW5lKSkgeworKyAgICAgICAgZ2NoYXIgKiplbGVtZW50cyA9IGdfc3Ryc3Bs aXQgKGxpbmUsICJcdCIsIC0xKTsKKysgICAgICAgIGd1bmljaGFyIGNvZGU7CisrICAgICAgICBn Y2hhciAqbmFtZTsKKysKKysgICAgICAgIGlmIChnX3N0cnZfbGVuZ3RoIChlbGVtZW50cykgPCAy KSB7CisrICAgICAgICAgICAgZ19zdHJmcmVldiAoZWxlbWVudHMpOworKyAgICAgICAgICAgIHJl dHVybiBGQUxTRTsKKysgICAgICAgIH0KKysgICAgICAgIGNvZGUgPSBnX2FzY2lpX3N0cnRvdWxs IChlbGVtZW50c1swXSwgTlVMTCwgMTYpOworKyAgICAgICAgbmFtZSA9IGdfc3RyZHVwIChlbGVt ZW50c1sxXSk7CisrICAgICAgICBpZiAoZGF0YS0+bmFtZSkgeworKyAgICAgICAgICAgIHVuaWNv ZGVfZGF0YV9uZXdfb2JqZWN0IChkYXRhKTsKKysgICAgICAgICAgICB1bmljb2RlX2RhdGFfcmVz ZXQgKGRhdGEpOworKyAgICAgICAgfQorKyAgICAgICAgZGF0YS0+Y29kZSA9IGNvZGU7CisrICAg ICAgICBkYXRhLT5uYW1lID0gbmFtZTsKKysgICAgfQorKyAgICByZXR1cm4gVFJVRTsKKyt9Cisr Cisrc3RhdGljIGdib29sZWFuCisrdWNkX2Jsb2Nrc19wYXJzZV9jb21tZW50IChjb25zdCBnY2hh ciAqbGluZSkKKyt7CisrICAgIHN0YXRpYyBnYm9vbGVhbiBoYXNfdmVyc2lvbiA9IEZBTFNFOwor KworKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobGluZSAhPSBOVUxMLCBGQUxTRSk7CisrCisr ICAgIGlmIChoYXNfdmVyc2lvbikKKysgICAgICAgIHJldHVybiBUUlVFOworKyAgICB3aGlsZSAo KmxpbmUgPT0gJyAnKSBsaW5lKys7CisrICAgIGlmIChzdHJsZW4gKGxpbmUpID4gc3RybGVuIChC TE9DS1NfU1VCSkVDVCkgJiYKKysgICAgICAgIHN0cm5jbXAgKGxpbmUsIEJMT0NLU19TVUJKRUNU LCBzdHJsZW4gKEJMT0NLU19TVUJKRUNUKSkgPT0gMCkgeworKyAgICAgICAgICAgIHVuaWNvZGVf dmVyc2lvbiA9IGdfc3RyZHVwIChsaW5lICsgc3RybGVuIChCTE9DS1NfU1VCSkVDVCkgKyAxKTsK KysgICAgICAgICAgICBoYXNfdmVyc2lvbiA9IFRSVUU7CisrICAgIH0KKysgICAgcmV0dXJuIFRS VUU7CisrfQorKworK3N0YXRpYyBnYm9vbGVhbgorK3VjZF9ibG9ja3NfcGFyc2VfbGluZSAoY29u c3QgZ2NoYXIgKmxpbmUsCisrICAgICAgICAgICAgICAgICAgICAgICBVbmljb2RlRGF0YSAqZGF0 YSkKKyt7CisrICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChsaW5lICE9IE5VTEwsIEZBTFNFKTsK KysKKysgICAgc3dpdGNoICgqbGluZSkgeworKyAgICBjYXNlICdcMCc6CisrICAgICAgICByZXR1 cm4gVFJVRTsKKysgICAgY2FzZSAnIyc6CisrICAgICAgICByZXR1cm4gdWNkX2Jsb2Nrc19wYXJz ZV9jb21tZW50IChsaW5lICsgMSk7CisrICAgIGRlZmF1bHQ6OworKyAgICB9CisrICAgIGlmIChn X2FzY2lpX2lzeGRpZ2l0ICgqbGluZSkpIHsKKysgICAgICAgIGdjaGFyICplbmRwdHIgPSBOVUxM OworKyAgICAgICAgZ3VuaWNoYXIgc3RhcnQgPSBnX2FzY2lpX3N0cnRvdWxsIChsaW5lLCAmZW5k cHRyLCAxNik7CisrICAgICAgICBndW5pY2hhciBlbmQ7CisrICAgICAgICBnY2hhciAqbmFtZSA9 IE5VTEw7CisrCisrICAgICAgICBpZiAoZW5kcHRyID09IE5VTEwgfHwgKmVuZHB0ciA9PSAnXDAn KQorKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKysgICAgICAgIHdoaWxlICgqZW5kcHRyID09 ICcuJykgZW5kcHRyKys7CisrICAgICAgICBsaW5lID0gZW5kcHRyOworKyAgICAgICAgZW5kcHRy ID0gTlVMTDsKKysgICAgICAgIGVuZCA9IGdfYXNjaWlfc3RydG91bGwgKGxpbmUsICZlbmRwdHIs IDE2KTsKKysgICAgICAgIGlmIChlbmRwdHIgPT0gTlVMTCB8fCAqZW5kcHRyID09ICdcMCcpCisr ICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworKyAgICAgICAgd2hpbGUgKCplbmRwdHIgPT0gJzsn KSBlbmRwdHIrKzsKKysgICAgICAgIHdoaWxlICgqZW5kcHRyID09ICcgJykgZW5kcHRyKys7Cisr ICAgICAgICBpZiAoKmVuZHB0ciA9PSAnXDAnKQorKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsK KysgICAgICAgIG5hbWUgPSBnX3N0cmR1cCAoZW5kcHRyKTsKKysgICAgICAgIGlmIChkYXRhLT5u YW1lKSB7CisrICAgICAgICAgICAgdW5pY29kZV9ibG9ja19uZXdfb2JqZWN0IChkYXRhKTsKKysg ICAgICAgICAgICB1bmljb2RlX2RhdGFfcmVzZXQgKGRhdGEpOworKyAgICAgICAgfQorKyAgICAg ICAgZGF0YS0+c3RhcnQgPSBzdGFydDsKKysgICAgICAgIGRhdGEtPmVuZCA9IGVuZDsKKysgICAg ICAgIGRhdGEtPm5hbWUgPSBuYW1lOworKyAgICB9CisrICAgIHJldHVybiBUUlVFOworK30KKysK KytzdGF0aWMgZ2Jvb2xlYW4KKyt1Y2RfcGFyc2VfZmlsZSAoY29uc3QgZ2NoYXIgKmZpbGVuYW1l LAorKyAgICAgICAgICAgICAgICBHU0xpc3QgICAgICoqbGlzdCwKKysgICAgICAgICAgICAgICAg VUNEVHlwZSAgICAgIHR5cGUpCisreworKyAgICBVbmljb2RlRGF0YSBkYXRhID0geyAwLCB9Owor KyAgICBnY2hhciAqY29udGVudCA9IE5VTEw7CisrICAgIGdzaXplIGxlbmd0aCA9IDA7CisrICAg IEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAgICBnY2hhciAqaGVhZCwgKmVuZCwgKmxpbmU7Cisr ICAgIGludCBuID0gMTsKKysKKysgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGZpbGVuYW1lICE9 IE5VTEwsIEZBTFNFKTsKKysgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGxpc3QgIT0gTlVMTCwg RkFMU0UpOworKworKyAgICBpZiAoIWdfZmlsZV9nZXRfY29udGVudHMgKGZpbGVuYW1lLCAmY29u dGVudCwgJmxlbmd0aCwgJmVycm9yKSkgeworKyAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRv IGxvYWQgJXM6ICVzIiwgZmlsZW5hbWUsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdvdG8g ZmFpbGVkX3RvX3BhcnNlX3VjZF9uYW1lc19saXN0OworKyAgICB9CisrICAgIGhlYWQgPSBlbmQg PSBjb250ZW50OworKyAgICB3aGlsZSAoKmVuZCA9PSAnXG4nICYmIGVuZCAtIGNvbnRlbnQgPCBs ZW5ndGgpIHsKKysgICAgICAgIGVuZCsrOworKyAgICAgICAgbisrOworKyAgICB9CisrICAgIGhl YWQgPSBlbmQ7CisrICAgIHdoaWxlIChlbmQgLSBjb250ZW50IDwgbGVuZ3RoKSB7CisrICAgICAg ICB3aGlsZSAoKmVuZCAhPSAnXG4nICYmIGVuZCAtIGNvbnRlbnQgPCBsZW5ndGgpCisrICAgICAg ICAgICAgZW5kKys7CisrICAgICAgICBpZiAoZW5kIC0gY29udGVudCA+PSBsZW5ndGgpCisrICAg ICAgICAgICAgYnJlYWs7CisrICAgICAgICBsaW5lID0gZ19zdHJuZHVwIChoZWFkLCBlbmQgLSBo ZWFkKTsKKysgICAgICAgIHN3aXRjaCAodHlwZSkgeworKyAgICAgICAgY2FzZSBVQ0RfTkFNRVNf TElTVDoKKysgICAgICAgICAgICBpZiAoIXVjZF9uYW1lc19saXN0X3BhcnNlX2xpbmUgKGxpbmUs ICZkYXRhKSkgeworKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJwYXJzZSBlcnJvciAjJWQg aW4gJXMgdmVyc2lvbiAlczogJXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG4sIGZp bGVuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVfdmVyc2lvbiA/IHVu aWNvZGVfdmVyc2lvbiA6ICIobnVsbCkiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp bmUpOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2Ug VUNEX0JMT0NLUzoKKysgICAgICAgICAgICBpZiAoIXVjZF9ibG9ja3NfcGFyc2VfbGluZSAobGlu ZSwgJmRhdGEpKSB7CisrICAgICAgICAgICAgICAgIGdfd2FybmluZyAoInBhcnNlIGVycm9yICMl ZCBpbiAlcyB2ZXJzaW9uICVzOiAlcyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgbiwg ZmlsZW5hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZV92ZXJzaW9uID8g dW5pY29kZV92ZXJzaW9uIDogIihudWxsKSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg bGluZSk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgZGVm YXVsdDoKKysgICAgICAgICAgICBnX2Fib3J0ICgpOworKyAgICAgICAgfQorKyAgICAgICAgd2hp bGUgKCplbmQgPT0gJ1xuJyAmJiBlbmQgLSBjb250ZW50IDwgbGVuZ3RoKSB7CisrICAgICAgICAg ICAgZW5kKys7CisrICAgICAgICAgICAgbisrOworKyAgICAgICAgfQorKyAgICAgICAgZ19mcmVl IChsaW5lKTsKKysgICAgICAgIGhlYWQgPSBlbmQ7CisrICAgIH0KKysgICAgaWYgKGRhdGEubmFt ZSAhPSBOVUxMKSB7CisrICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKysgICAgICAgIGNhc2UgVUNE X05BTUVTX0xJU1Q6CisrICAgICAgICAgICAgdW5pY29kZV9kYXRhX25ld19vYmplY3QgKCZkYXRh KTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgVUNEX0JMT0NLUzoKKysgICAg ICAgICAgICB1bmljb2RlX2Jsb2NrX25ld19vYmplY3QgKCZkYXRhKTsKKysgICAgICAgICAgICBi cmVhazsKKysgICAgICAgIGRlZmF1bHQ6OworKyAgICAgICAgfQorKyAgICAgICAgdW5pY29kZV9k YXRhX3Jlc2V0ICgmZGF0YSk7CisrICAgIH0KKysgICAgZ19mcmVlIChjb250ZW50KTsKKysgICAg Kmxpc3QgPSBkYXRhLmxpc3Q7CisrICAgIHJldHVybiBUUlVFOworKworK2ZhaWxlZF90b19wYXJz ZV91Y2RfbmFtZXNfbGlzdDoKKysgICAgaWYgKGVycm9yKQorKyAgICAgICAgZ19lcnJvcl9mcmVl IChlcnJvcik7CisrICAgIGdfY2xlYXJfcG9pbnRlciAoJmNvbnRlbnQsIGdfZnJlZSk7CisrICAg ICpsaXN0ID0gZGF0YS5saXN0OworKyAgICByZXR1cm4gRkFMU0U7CisrfQorKworK3N0YXRpYyB2 b2lkCisrYmxvY2tfbGlzdF9kdW1wIChJQnVzVW5pY29kZUJsb2NrICpibG9jaywKKysgICAgICAg ICAgICAgICAgIEdTdHJpbmcgICAgICAgICAgKmJ1ZmYpCisreworKyAgICBnX3JldHVybl9pZl9m YWlsIChidWZmICE9IE5VTEwpOworKworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsICIgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgIiAgICAgICAgIFwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAidHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGhcbiIg ICAgICAgICAgICAgICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAg ICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuIiAgICAgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICIgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gIiAg ICAgICAgIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAiaWJ1cy5wb3QgKi9cbiIpOwor KyAgICBnY2hhciAqbGluZSA9IGdfc3RyZHVwX3ByaW50ZiAoIiAgICBOXyhcIiVzXCIpLFxuIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9ibG9ja19n ZXRfbmFtZSAoYmxvY2spKTsKKysgICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCBsaW5lKTsKKyt9 CisrCisrc3RhdGljIHZvaWQKKyt1Y2RfYmxvY2tfdHJhbnNsYXRhYmxlX3NhdmUgKGNvbnN0IGdj aGFyICpmaWxlbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTTGlzdCAgICAg ICpibG9ja3NfbGlzdCkKKyt7CisrICAgIGdjaGFyICpjb250ZW50ID0gTlVMTDsKKysgICAgZ3Np emUgbGVuZ3RoID0gMDsKKysgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrICAgIGdjaGFyICpw OworKyAgICBHU3RyaW5nICpidWZmID0gTlVMTDsKKysgICAgaW50IGk7CisrICAgIEdTTGlzdCAq bGlzdCA9IGJsb2Nrc19saXN0OworKworKyAgICBnX3JldHVybl9pZl9mYWlsIChmaWxlbmFtZSAh PSBOVUxMKTsKKysgICAgZ19yZXR1cm5faWZfZmFpbCAobGlzdCAhPSBOVUxMKTsKKysKKysgICAg aWYgKCFnX2ZpbGVfZ2V0X2NvbnRlbnRzIChfX0ZJTEVfXywgJmNvbnRlbnQsICZsZW5ndGgsICZl cnJvcikpIHsKKysgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBsb2FkICVzOiAlcyIsIF9f RklMRV9fLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZlcnJv ciwgZ19lcnJvcl9mcmVlKTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgICBidWZm ID0gZ19zdHJpbmdfbmV3IChOVUxMKTsKKysgICAgcCA9IGNvbnRlbnQ7CisrICAgIGZvciAoaSA9 IDA7IGkgPCBMSUNFTlNFX0xJTkVTOyBpKyssIHArKykgeworKyAgICAgICAgaWYgKChwID0gc3Ry Y2hyIChwLCAnXG4nKSkgPT0gTlVMTCkKKysgICAgICAgICAgICBicmVhazsKKysgICAgfQorKyAg ICBpZiAocCAhPSBOVUxMKSB7CisrICAgICAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3Ry bmR1cCAoY29udGVudCwgcCAtIGNvbnRlbnQpKTsKKysgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9j IChidWZmLCAnXG4nKTsKKysgICAgfQorKyAgICBnX2NsZWFyX3BvaW50ZXIgKCZjb250ZW50LCBn X2ZyZWUpOworKworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgiXG4iKSk7 CisrICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXBfcHJpbnRmICgiLyogVGhpcyBm aWxlIGlzIGdlbmVyYXRlZCBieSAlcy4gKi8iLCBfX0ZJTEVfXykpOworKyAgICBnX3N0cmluZ19h cHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgiXG4iKSk7CisrICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVm ZiwgZ19zdHJkdXAgKCJpbmNsdWRlIDxnbGliL2dpMThuLmg+XG4iKSk7CisrICAgIGdfc3RyaW5n X2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAgKCJcbiIpKTsKKysgICAgZ19zdHJpbmdfYXBwZW5kIChi dWZmLCBnX3N0cmR1cCAoIiNpZm5kZWYgX19JQlVTX1VOSUNPREVfR0VOX0hfXG4iKSk7CisrICAg IGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAgKCIjZGVmaW5lIF9fSUJVU19VTklDT0RF X0dFTl9IX1xuIikpOworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgiY29u c3Qgc3RhdGljIGNoYXIgKnVuaWNvZGVfYmxvY2tzW10gPSB7XG4iKSk7CisrICAgIGdfc2xpc3Rf Zm9yZWFjaCAobGlzdCwgKEdGdW5jKWJsb2NrX2xpc3RfZHVtcCwgYnVmZik7CisrICAgIGdfc3Ry aW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAgKCJ9O1xuIikpOworKyAgICBnX3N0cmluZ19hcHBl bmQgKGJ1ZmYsIGdfc3RyZHVwICgiI2VuZGlmXG4iKSk7CisrCisrICAgIGlmICghZ19maWxlX3Nl dF9jb250ZW50cyAoZmlsZW5hbWUsIGJ1ZmYtPnN0ciwgLTEsICZlcnJvcikpIHsKKysgICAgICAg IGdfd2FybmluZyAoIkZhaWxlZCB0byBzYXZlIGVtb2ppIGNhdGVnb3J5IGZpbGUgJXM6ICVzIiwg ZmlsZW5hbWUsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3Ip OworKyAgICB9CisrCisrICAgIGdfc3RyaW5nX2ZyZWUgKGJ1ZmYsIFRSVUUpOworK30KKysKKytp bnQKKyttYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorK3sKKysgICAgZ2NoYXIgKnByZ25h bWU7CisrICAgIGdjaGFyICppbnB1dF9uYW1lc19saXN0ID0gTlVMTDsKKysgICAgZ2NoYXIgKmlu cHV0X2Jsb2NrcyA9IE5VTEw7CisrICAgIGdjaGFyICpvdXRwdXRfbmFtZXNfbGlzdCA9IE5VTEw7 CisrICAgIGdjaGFyICpvdXRwdXRfYmxvY2tzID0gTlVMTDsKKysgICAgZ2NoYXIgKm91dHB1dF9i bG9ja3NfdHJhbnMgPSBOVUxMOworKyAgICBHT3B0aW9uRW50cnkgICAgIGVudHJpZXNbXSA9IHsK KysgICAgICAgIHsgImlucHV0LW5hbWVzLWxpc3QiLCAnbicsIDAsIEdfT1BUSU9OX0FSR19TVFJJ TkcsICZpbnB1dF9uYW1lc19saXN0LAorKyAgICAgICAgICAiUGFyc2UgTmFtZXNMaXN0LnR4dCBG SUxFIGluIHVuaWNvZGUub3JnICIsCisrICAgICAgICAgICJGSUxFIgorKyAgICAgICAgfSwKKysg ICAgICAgIHsgImlucHV0LWJsb2NrcyIsICdiJywgMCwgR19PUFRJT05fQVJHX1NUUklORywgJmlu cHV0X2Jsb2NrcywKKysgICAgICAgICAgIlBhcnNlIEJsb2Nrcy50eHQgRklMRSBpbiB1bmljb2Rl Lm9yZyAiLAorKyAgICAgICAgICAiRklMRSIKKysgICAgICAgIH0sCisrICAgICAgICB7ICJvdXRw dXQtbmFtZXMtbGlzdCIsICdvJywgMCwgR19PUFRJT05fQVJHX1NUUklORywgJm91dHB1dF9uYW1l c19saXN0LAorKyAgICAgICAgICAiU2F2ZSB0aGUgVW5pY29kZSBkYXRhIGFzIEZJTEUiLAorKyAg ICAgICAgICAiRklMRSIKKysgICAgICAgIH0sCisrICAgICAgICB7ICJvdXRwdXQtYmxvY2tzIiwg J0InLCAwLCBHX09QVElPTl9BUkdfU1RSSU5HLCAmb3V0cHV0X2Jsb2NrcywKKysgICAgICAgICAg IlNhdmUgdGhlIFVuaWNvZGUgYmxvY2sgbGlzdCBhcyBGSUxFIiwKKysgICAgICAgICAgIkZJTEUi CisrICAgICAgICB9LAorKyAgICAgICAgeyAib3V0cHV0LWJsb2Nrcy10cmFucyIsICdDJywgMCwg R19PUFRJT05fQVJHX1NUUklORywKKysgICAgICAgICAgJm91dHB1dF9ibG9ja3NfdHJhbnMsCisr ICAgICAgICAgICJTYXZlIHRoZSB0cmFuc2xhdGFibGUgVW5pY29kZSBibG9ja3MgYXMgRklMRSIs CisrICAgICAgICAgICJGSUxFIgorKyAgICAgICAgfSwKKysgICAgICAgIHsgTlVMTCB9CisrICAg IH07CisrICAgIEdPcHRpb25Db250ZXh0ICpjb250ZXh0OworKyAgICBHRXJyb3IgKmVycm9yID0g TlVMTDsKKysgICAgR1NMaXN0ICpuYW1lc19saXN0ID0gTlVMTDsKKysgICAgR1NMaXN0ICpibG9j a3NfbGlzdCA9IE5VTEw7CisrCisrI2lmZGVmIEhBVkVfTE9DQUxFX0gKKysgICAgLyogVG8gb3V0 cHV0IGVtb2ppIHdhcm5pbmdzLiAqLworKyAgICBzZXRsb2NhbGUgKExDX0FMTCwgIiIpOworKyNl bmRpZgorKworKyAgICBwcmduYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZSAoYXJndlswXSk7Cisr ICAgIGdfc2V0X3ByZ25hbWUgKHByZ25hbWUpOworKyAgICBnX2ZyZWUgKHByZ25hbWUpOworKwor KyAgICBjb250ZXh0ID0gZ19vcHRpb25fY29udGV4dF9uZXcgKE5VTEwpOworKyAgICBnX29wdGlv bl9jb250ZXh0X2FkZF9tYWluX2VudHJpZXMgKGNvbnRleHQsIGVudHJpZXMsIE5VTEwpOworKwor KyAgICBpZiAoYXJnYyA8IDMpIHsKKysgICAgICAgIGdfcHJpbnQgKCIlcyIsIGdfb3B0aW9uX2Nv bnRleHRfZ2V0X2hlbHAgKGNvbnRleHQsIFRSVUUsIE5VTEwpKTsKKysgICAgICAgIGdfb3B0aW9u X2NvbnRleHRfZnJlZSAoY29udGV4dCk7CisrICAgICAgICByZXR1cm4gLTE7CisrICAgIH0KKysK KysgICAgaWYgKCFnX29wdGlvbl9jb250ZXh0X3BhcnNlIChjb250ZXh0LCAmYXJnYywgJmFyZ3Ys ICZlcnJvcikpIHsKKysgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCBvcHRpb25zOiAlcyIsIGVy cm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworKyAgICAgICAg cmV0dXJuIC0xOworKyAgICB9CisrICAgIGdfb3B0aW9uX2NvbnRleHRfZnJlZSAoY29udGV4dCk7 CisrCisrICAgIGlmIChpbnB1dF9uYW1lc19saXN0KSB7CisrICAgICAgICB1Y2RfcGFyc2VfZmls ZSAoaW5wdXRfbmFtZXNfbGlzdCwgJm5hbWVzX2xpc3QsIFVDRF9OQU1FU19MSVNUKTsKKysgICAg ICAgIGdfZnJlZSAoaW5wdXRfbmFtZXNfbGlzdCk7CisrICAgIH0KKysgICAgaWYgKG91dHB1dF9u YW1lc19saXN0ICYmIG5hbWVzX2xpc3QpCisrICAgICAgICBpYnVzX3VuaWNvZGVfZGF0YV9zYXZl IChvdXRwdXRfbmFtZXNfbGlzdCwgbmFtZXNfbGlzdCk7CisrICAgIGdfZnJlZSAob3V0cHV0X25h bWVzX2xpc3QpOworKworKyAgICBpZiAoaW5wdXRfYmxvY2tzKSB7CisrICAgICAgICB1Y2RfcGFy c2VfZmlsZSAoaW5wdXRfYmxvY2tzLCAmYmxvY2tzX2xpc3QsIFVDRF9CTE9DS1MpOworKyAgICAg ICAgZ19mcmVlIChpbnB1dF9ibG9ja3MpOworKyAgICB9CisrICAgIGlmIChvdXRwdXRfYmxvY2tz ICYmIGJsb2Nrc19saXN0KQorKyAgICAgICAgaWJ1c191bmljb2RlX2Jsb2NrX3NhdmUgKG91dHB1 dF9ibG9ja3MsIGJsb2Nrc19saXN0KTsKKysgICAgaWYgKG91dHB1dF9ibG9ja3NfdHJhbnMgJiYg YmxvY2tzX2xpc3QpCisrICAgICAgICB1Y2RfYmxvY2tfdHJhbnNsYXRhYmxlX3NhdmUgKG91dHB1 dF9ibG9ja3NfdHJhbnMsIGJsb2Nrc19saXN0KTsKKysgICAgZ19mcmVlIChvdXRwdXRfYmxvY2tz KTsKKysKKysgICAgZ19mcmVlICh1bmljb2RlX3ZlcnNpb24pOworKyAgICByZXR1cm4gMDsKKyt9 CitkaWZmIC0tZ2l0IGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEgYi91aS9ndGszL2Vtb2ppZXIudmFs YQoraW5kZXggZjNlOWYxNWMuLjU1NWVhNjhmIDEwMDY0NAorLS0tIGEvdWkvZ3RrMy9lbW9qaWVy LnZhbGEKKysrKyBiL3VpL2d0azMvZW1vamllci52YWxhCitAQCAtMiw3ICsyLDcgQEAKKyAgKgor ICAqIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICoKKy0gKiBDb3B5cmlnaHQgKGMpIDIwMTcgVGFr YW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChj KSAyMDE3LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Cisg ICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTIwLDcgKzIwLDcgQEAKKyAgKiBVU0EKKyAgKi8KKyAK Ky1jbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisrcHVibGljIGNs YXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgcHJpdmF0ZSBj bGFzcyBFRW50cnkgOiBHdGsuU2VhcmNoRW50cnkgeworICAgICAgICAgcHVibGljIEVFbnRyeSgp IHsKKyAgICAgICAgICAgICBHTGliLk9iamVjdCgKK0BAIC05OSwxNSArOTksNzAgQEAgY2xhc3Mg SUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgfQorICAgICB9 CisgICAgIHByaXZhdGUgY2xhc3MgRVdoaXRlTGFiZWwgOiBHdGsuTGFiZWwgeworKyAgICAgICAg cHJpdmF0ZSBpbnQgbV9taW5pbXVtX3dpZHRoID0gMDsKKysgICAgICAgIHByaXZhdGUgaW50IG1f bmF0dXJhbF93aWR0aCA9IDA7CisrICAgICAgICBwcml2YXRlIGludCBtX21pbmltdW1faGVpZ2h0 ID0gMDsKKysgICAgICAgIHByaXZhdGUgaW50IG1fbmF0dXJhbF9oZWlnaHQgPSAwOworICAgICAg ICAgcHVibGljIEVXaGl0ZUxhYmVsKHN0cmluZyB0ZXh0KSB7CisgICAgICAgICAgICAgR0xpYi5P YmplY3QoCisgICAgICAgICAgICAgICAgIG5hbWUgOiAiSUJ1c0Vtb2ppZXJXaGl0ZUxhYmVsIgor ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgaWYgKHRleHQgIT0gIiIpCistICAgICAgICAg ICAgICAgIHNldF9sYWJlbCh0ZXh0KTsKKysgICAgICAgICAgICBzZXRfbGFiZWwodGV4dCk7Cisr ICAgICAgICB9CisrICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBnZXRfcHJlZmVycmVkX3dp ZHRoKG91dCBpbnQgbWluaW11bV93aWR0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb3V0IGludCBuYXR1cmFsX3dpZHRoKSB7CisrICAgICAgICAg ICAgaWYgKG1fbWluaW11bV9oZWlnaHQgPT0gMCAmJiBtX25hdHVyYWxfaGVpZ2h0ID09IDApIHsK KysgICAgICAgICAgICAgICAgYmFzZS5nZXRfcHJlZmVycmVkX2hlaWdodChvdXQgbV9taW5pbXVt X2hlaWdodCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQg bV9uYXR1cmFsX2hlaWdodCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHZhciB0ZXh0 ID0gZ2V0X2xhYmVsKCk7CisrICAgICAgICAgICAgdmFyIGNoID0gdGV4dC5nZXRfY2hhcigpOwor KyAgICAgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PSAxICYmIGNoID09ICdcdCcpIHsKKysgICAg ICAgICAgICAgICAgbV9taW5pbXVtX3dpZHRoID0gbWluaW11bV93aWR0aCA9IG1fbWluaW11bV9o ZWlnaHQ7CisrICAgICAgICAgICAgICAgIG1fbmF0dXJhbF93aWR0aCA9IG5hdHVyYWxfd2lkdGgg PSBtX25hdHVyYWxfaGVpZ2h0OworKyAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAg ICAgfQorKyAgICAgICAgICAgIGJhc2UuZ2V0X3ByZWZlcnJlZF93aWR0aChvdXQgbWluaW11bV93 aWR0aCwgb3V0IG5hdHVyYWxfd2lkdGgpOworKyAgICAgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9 PSAxICYmIChjaCA9PSAnXG4nIHx8IGNoID09ICdccicpKSB7CisrICAgICAgICAgICAgICAgIG1p bmltdW1fd2lkdGggLz0gMjsKKysgICAgICAgICAgICAgICAgbmF0dXJhbF93aWR0aCAvPSAyOwor KyAgICAgICAgICAgICAgICBtX21pbmltdW1fd2lkdGggPSBtaW5pbXVtX3dpZHRoOworKyAgICAg ICAgICAgICAgICBtX25hdHVyYWxfd2lkdGggPSBuYXR1cmFsX3dpZHRoOworKyAgICAgICAgICAg ICAgICByZXR1cm47CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGlmIChtaW5pbXVtX3dp ZHRoIDwgbV9taW5pbXVtX2hlaWdodCkKKysgICAgICAgICAgICAgICAgbWluaW11bV93aWR0aCA9 IG1fbWluaW11bV9oZWlnaHQ7CisrICAgICAgICAgICAgaWYgKG5hdHVyYWxfd2lkdGggPCBtX25h dHVyYWxfaGVpZ2h0KQorKyAgICAgICAgICAgICAgICBuYXR1cmFsX3dpZHRoID0gbV9uYXR1cmFs X2hlaWdodDsKKysgICAgICAgICAgICBtX21pbmltdW1fd2lkdGggPSBtaW5pbXVtX3dpZHRoOwor KyAgICAgICAgICAgIG1fbmF0dXJhbF93aWR0aCA9IG5hdHVyYWxfd2lkdGg7CisrICAgICAgICB9 CisrICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBnZXRfcHJlZmVycmVkX2hlaWdodChvdXQg aW50IG1pbmltdW1faGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3V0IGludCBuYXR1cmFsX2hlaWdodCkgeworKyAgICAgICAgICAgIGlm IChtX21pbmltdW1fd2lkdGggPT0gMCAmJiBtX25hdHVyYWxfd2lkdGggPT0gMCkgeworKyAgICAg ICAgICAgICAgICBiYXNlLmdldF9wcmVmZXJyZWRfd2lkdGgob3V0IG1fbWluaW11bV93aWR0aCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBtX25hdHVyYWxf d2lkdGgpOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICB2YXIgdGV4dCA9IGdldF9sYWJl bCgpOworKyAgICAgICAgICAgIHZhciBjaCA9IHRleHQuZ2V0X2NoYXIoKTsKKysgICAgICAgICAg ICBpZiAodGV4dC5sZW5ndGggPT0gMSAmJiBjaCA9PSAnXHYnKSB7CisrICAgICAgICAgICAgICAg IG1fbWluaW11bV9oZWlnaHQgPSBtaW5pbXVtX2hlaWdodCA9IG1fbWluaW11bV93aWR0aDsKKysg ICAgICAgICAgICAgICAgbV9uYXR1cmFsX2hlaWdodCA9IG5hdHVyYWxfaGVpZ2h0ID0gbV9uYXR1 cmFsX3dpZHRoOworKyAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAgICAgfQorKyAg ICAgICAgICAgIGJhc2UuZ2V0X3ByZWZlcnJlZF9oZWlnaHQob3V0IG1pbmltdW1faGVpZ2h0LCBv dXQgbmF0dXJhbF9oZWlnaHQpOworKyAgICAgICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PSAxICYm IChjaCA9PSAnXG4nIHx8IGNoID09ICdccicpKSB7CisrICAgICAgICAgICAgICAgIG1pbmltdW1f aGVpZ2h0IC89IDI7CisrICAgICAgICAgICAgICAgIG5hdHVyYWxfaGVpZ2h0IC89IDI7CisrICAg ICAgICAgICAgICAgIG1fbWluaW11bV9oZWlnaHQgPSBtaW5pbXVtX2hlaWdodDsKKysgICAgICAg ICAgICAgICAgbV9uYXR1cmFsX2hlaWdodCA9IG5hdHVyYWxfaGVpZ2h0OworKyAgICAgICAgICAg ICAgICByZXR1cm47CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIG1fbWluaW11bV9oZWln aHQgPSBtaW5pbXVtX2hlaWdodDsKKysgICAgICAgICAgICBtX25hdHVyYWxfaGVpZ2h0ID0gbmF0 dXJhbF9oZWlnaHQ7CisgICAgICAgICB9CisgICAgIH0KKy0gICAgcHJpdmF0ZSBjbGFzcyBFU2Vs ZWN0ZWRMYWJlbCA6IEd0ay5MYWJlbCB7CisrICAgIHByaXZhdGUgY2xhc3MgRVNlbGVjdGVkTGFi ZWwgOiBFV2hpdGVMYWJlbCB7CisgICAgICAgICBwdWJsaWMgRVNlbGVjdGVkTGFiZWwoc3RyaW5n IHRleHQpIHsKKyAgICAgICAgICAgICBHTGliLk9iamVjdCgKKyAgICAgICAgICAgICAgICAgbmFt ZSA6ICJJQnVzRW1vamllclNlbGVjdGVkTGFiZWwiCitAQCAtMTE2LDcgKzE3MSw3IEBAIGNsYXNz IElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgICAgICAgICAg c2V0X2xhYmVsKHRleHQpOworICAgICAgICAgfQorICAgICB9CistICAgIHByaXZhdGUgY2xhc3Mg RUdvbGRMYWJlbCA6IEd0ay5MYWJlbCB7CisrICAgIHByaXZhdGUgY2xhc3MgRUdvbGRMYWJlbCA6 IEVXaGl0ZUxhYmVsIHsKKyAgICAgICAgIHB1YmxpYyBFR29sZExhYmVsKHN0cmluZyB0ZXh0KSB7 CisgICAgICAgICAgICAgR0xpYi5PYmplY3QoCisgICAgICAgICAgICAgICAgIG5hbWUgOiAiSUJ1 c0Vtb2ppZXJHb2xkTGFiZWwiCitAQCAtMTY3LDYgKzIyMiw3IEBAIGNsYXNzIElCdXNFbW9qaWVy IDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgfQorICAgICBwcml2YXRlIGNsYXNzIEVU aXRsZUxhYmVsQm94IDogR3RrLkhlYWRlckJhciB7CisgICAgICAgICBwcml2YXRlIEd0ay5MYWJl bCBtX2xhbmdfbGFiZWw7CisrICAgICAgICBwcml2YXRlIEd0ay5MYWJlbCBtX3RpdGxlX2xhYmVs OworIAorICAgICAgICAgcHVibGljIEVUaXRsZUxhYmVsQm94KHN0cmluZyB0aXRsZSkgeworICAg ICAgICAgICAgIEdMaWIuT2JqZWN0KAorQEAgLTE3Nyw5ICsyMzMsOSBAQCBjbGFzcyBJQnVzRW1v amllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICAgICAgKTsKKyAgICAgICAg ICAgICB2YXIgdmJveCA9IG5ldyBHdGsuQm94KEd0ay5PcmllbnRhdGlvbi5WRVJUSUNBTCwgMCk7 CisgICAgICAgICAgICAgc2V0X2N1c3RvbV90aXRsZSh2Ym94KTsKKy0gICAgICAgICAgICB2YXIg bGFiZWwgPSBuZXcgR3RrLkxhYmVsKHRpdGxlKTsKKy0gICAgICAgICAgICBsYWJlbC5nZXRfc3R5 bGVfY29udGV4dCgpLmFkZF9jbGFzcyhHdGsuU1RZTEVfQ0xBU1NfVElUTEUpOworLSAgICAgICAg ICAgIHZib3gucGFja19zdGFydChsYWJlbCwgdHJ1ZSwgZmFsc2UsIDApOworKyAgICAgICAgICAg IG1fdGl0bGVfbGFiZWwgPSBuZXcgR3RrLkxhYmVsKHRpdGxlKTsKKysgICAgICAgICAgICBtX3Rp dGxlX2xhYmVsLmdldF9zdHlsZV9jb250ZXh0KCkuYWRkX2NsYXNzKEd0ay5TVFlMRV9DTEFTU19U SVRMRSk7CisrICAgICAgICAgICAgdmJveC5wYWNrX3N0YXJ0KG1fdGl0bGVfbGFiZWwsIHRydWUs IGZhbHNlLCAwKTsKKyAgICAgICAgICAgICBtX2xhbmdfbGFiZWwgPSBuZXcgR3RrLkxhYmVsKG51 bGwpOworICAgICAgICAgICAgIG1fbGFuZ19sYWJlbC5nZXRfc3R5bGVfY29udGV4dCgpLmFkZF9j bGFzcygKKyAgICAgICAgICAgICAgICAgICAgIEd0ay5TVFlMRV9DTEFTU19TVUJUSVRMRSk7CitA QCAtMTk0LDEwICsyNTAsMTkgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25X aW5kb3cgeworICAgICAgICAgICAgIG1lbnVfYnV0dG9uLnNldF90b29sdGlwX3RleHQoXygiTWVu dSIpKTsKKyAgICAgICAgICAgICBwYWNrX2VuZChtZW51X2J1dHRvbik7CisgICAgICAgICB9Cisr ICAgICAgICBwdWJsaWMgbmV3IHZvaWQgc2V0X3RpdGxlKHN0cmluZyB0aXRsZSkgeworKyAgICAg ICAgICAgIG1fdGl0bGVfbGFiZWwuc2V0X3RleHQodGl0bGUpOworKyAgICAgICAgfQorICAgICAg ICAgcHVibGljIHZvaWQgc2V0X2xhbmdfbGFiZWwoc3RyaW5nIHN0cikgeworICAgICAgICAgICAg IG1fbGFuZ19sYWJlbC5zZXRfdGV4dChzdHIpOworICAgICAgICAgfQorICAgICB9CisrICAgIHBy aXZhdGUgY2xhc3MgTG9hZFByb2dyZXNzT2JqZWN0IDogR0xpYi5PYmplY3QgeworKyAgICAgICAg cHVibGljIExvYWRQcm9ncmVzc09iamVjdCgpIHsKKysgICAgICAgIH0KKysgICAgICAgIHB1Ymxp YyBzaWduYWwgdm9pZCBkZXNlcmlhbGl6ZV91bmljb2RlKHVpbnQgZG9uZSwgdWludCB0b3RhbCk7 CisrICAgIH0KKysKKyAKKyAgICAgcHJpdmF0ZSBlbnVtIFRyYXZlbERpcmVjdGlvbiB7CisgICAg ICAgICBOT05FLAorQEAgLTIwNyw2ICsyNzIsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5B cHBsaWNhdGlvbldpbmRvdyB7CisgICAgIHByaXZhdGUgY29uc3QgdWludCBFTU9KSV9HUklEX1BB R0UgPSAxMDsKKyAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgRU1PSklfQ0FURUdPUllfRkFWT1JJ VEVTID0gTl8oIkZhdm9yaXRlcyIpOworICAgICBwcml2YXRlIGNvbnN0IHN0cmluZyBFTU9KSV9D QVRFR09SWV9PVEhFUlMgPSBOXygiT3RoZXJzIik7CisrICAgIHByaXZhdGUgY29uc3Qgc3RyaW5n IEVNT0pJX0NBVEVHT1JZX1VOSUNPREUgPSBOXygiT3BlbiBVbmljb2RlIGNob2ljZSIpOworICAg ICBwcml2YXRlIGNvbnN0IHVuaWNoYXJbXSBFTU9KSV9WQVJJQU5UX0xJU1QgPSB7CisgICAgICAg ICAgICAgMHgxZjNmYiwgMHgxZjNmYywgMHgxZjNmZCwgMHgxZjNmZSwgMHgxZjNmZiwgMHgyMDBk IH07CisgCitAQCAtMjIzLDYgKzI4OSw4IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxp Y2F0aW9uV2luZG93IHsKKyAgICAgcHJpdmF0ZSBzdGF0aWMgdWludCBtX3BhcnRpYWxfbWF0Y2hf bGVuZ3RoOworICAgICBwcml2YXRlIHN0YXRpYyB1aW50IG1fcGFydGlhbF9tYXRjaF9jb25kaXRp b247CisgICAgIHByaXZhdGUgc3RhdGljIGJvb2wgbV9zaG93X2Vtb2ppX3ZhcmlhbnQgPSBmYWxz ZTsKKysgICAgcHJpdmF0ZSBzdGF0aWMgaW50IG1fZGVmYXVsdF93aW5kb3dfd2lkdGg7CisrICAg IHByaXZhdGUgc3RhdGljIGludCBtX2RlZmF1bHRfd2luZG93X2hlaWdodDsKKyAgICAgcHJpdmF0 ZSBzdGF0aWMgR0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNMaXN0PHN0cmluZz4+PworICAg ICAgICAgICAgIG1fYW5ub3RhdGlvbl90b19lbW9qaXNfZGljdDsKKyAgICAgcHJpdmF0ZSBzdGF0 aWMgR0xpYi5IYXNoVGFibGU8c3RyaW5nLCBJQnVzLkVtb2ppRGF0YT4/CitAQCAtMjMxLDYgKzI5 OSwxNCBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAg ICAgICAgICAgbV9jYXRlZ29yeV90b19lbW9qaXNfZGljdDsKKyAgICAgcHJpdmF0ZSBzdGF0aWMg R0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNMaXN0PHN0cmluZz4+PworICAgICAgICAgICAg IG1fZW1vamlfdG9fZW1vamlfdmFyaWFudHNfZGljdDsKKysgICAgcHJpdmF0ZSBzdGF0aWMgR0xp Yi5IYXNoVGFibGU8dW5pY2hhciwgSUJ1cy5Vbmljb2RlRGF0YT4/CisrICAgICAgICAgICAgbV91 bmljb2RlX3RvX2RhdGFfZGljdDsKKysgICAgcHJpdmF0ZSBzdGF0aWMgR0xpYi5IYXNoVGFibGU8 c3RyaW5nLCBHTGliLlNMaXN0PHVuaWNoYXI+Pj8KKysgICAgICAgICAgICBtX25hbWVfdG9fdW5p Y29kZXNfZGljdDsKKysgICAgcHJpdmF0ZSBzdGF0aWMgR0xpYi5TTGlzdDxJQnVzLlVuaWNvZGVC bG9jaz4gbV91bmljb2RlX2Jsb2NrX2xpc3Q7CisrICAgIHByaXZhdGUgc3RhdGljIGJvb2wgbV9z aG93X3VuaWNvZGUgPSBmYWxzZTsKKysgICAgcHJpdmF0ZSBzdGF0aWMgTG9hZFByb2dyZXNzT2Jq ZWN0IG1fdW5pY29kZV9wcm9ncmVzc19vYmplY3Q7CisrICAgIHByaXZhdGUgc3RhdGljIGJvb2wg bV9sb2FkZWRfdW5pY29kZSA9IGZhbHNlOworIAorICAgICBwcml2YXRlIFRoZW1lZFJHQkEgbV9y Z2JhOworICAgICBwcml2YXRlIEd0ay5Cb3ggbV92Ym94OworQEAgLTI0Niw3ICszMjIsNyBAQCBj bGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgIHByaXZhdGUg c3RyaW5nPyBtX3Jlc3VsdDsKKyAgICAgcHJpdmF0ZSBzdHJpbmc/IG1fdW5pY29kZV9wb2ludCA9 IG51bGw7CisgICAgIHByaXZhdGUgYm9vbCBtX2NhbmRpZGF0ZV9wYW5lbF9pc192aXNpYmxlOwor LSAgICBwcml2YXRlIGludCBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleDsKKysgICAgcHJpdmF0ZSBp bnQgbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXggPSAtMTsKKyAgICAgcHJpdmF0ZSBJQnVzLkxvb2t1 cFRhYmxlIG1fbG9va3VwX3RhYmxlOworICAgICBwcml2YXRlIEd0ay5MYWJlbFtdIG1fY2FuZGlk YXRlczsKKyAgICAgcHJpdmF0ZSBib29sIG1fZW50ZXJfbm90aWZ5X2VuYWJsZSA9IHRydWU7CitA QCAtMjU0LDYgKzMzMCw5IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2lu ZG93IHsKKyAgICAgcHJpdmF0ZSB1aW50IG1fZW50cnlfbm90aWZ5X2Rpc2FibGVfaWQ7CisgICAg IHByb3RlY3RlZCBzdGF0aWMgZG91YmxlIG1fbW91c2VfeDsKKyAgICAgcHJvdGVjdGVkIHN0YXRp YyBkb3VibGUgbV9tb3VzZV95OworKyAgICBwcml2YXRlIEd0ay5Qcm9ncmVzc0JhciBtX3VuaWNv ZGVfcHJvZ3Jlc3NfYmFyOworKyAgICBwcml2YXRlIEd0ay5MYWJlbCBtX3VuaWNvZGVfcGVyY2Vu dF9sYWJlbDsKKysgICAgcHJpdmF0ZSBkb3VibGUgbV91bmljb2RlX3BlcmNlbnQ7CisgCisgICAg IHB1YmxpYyBzaWduYWwgdm9pZCBjYW5kaWRhdGVfY2xpY2tlZCh1aW50IGluZGV4LCB1aW50IGJ1 dHRvbiwgdWludCBzdGF0ZSk7CisgCitAQCAtNDAyLDYgKzQ4MSw4IEBAIGNsYXNzIElCdXNFbW9q aWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgIGlmIChtX2Fubm90YXRpb25f dG9fZW1vamlzX2RpY3QgPT0gbnVsbCkgeworICAgICAgICAgICAgIHJlbG9hZF9lbW9qaV9kaWN0 KCk7CisgICAgICAgICB9CisrCisrICAgICAgICBnZXRfbG9hZF9wcm9ncmVzc19vYmplY3QoKTsK KyAgICAgfQorIAorIAorQEAgLTQzMyw2ICs1MTQsMTMgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBH dGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgbV9lbW9qaV90b19lbW9qaV92YXJpYW50 c19kaWN0ID0KKyAgICAgICAgICAgICAgICAgbmV3IEdMaWIuSGFzaFRhYmxlPHN0cmluZywgR0xp Yi5TTGlzdDxzdHJpbmc+PihHTGliLnN0cl9oYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaWIuc3RyX2VxdWFsKTsK KysgICAgICAgIG1fdW5pY29kZV90b19kYXRhX2RpY3QgPQorKyAgICAgICAgICAgICAgICBuZXcg R0xpYi5IYXNoVGFibGU8dW5pY2hhciwgSUJ1cy5Vbmljb2RlRGF0YT4oCisrICAgICAgICAgICAg ICAgICAgICAgICAgR0xpYi5kaXJlY3RfaGFzaCwKKysgICAgICAgICAgICAgICAgICAgICAgICBH TGliLmRpcmVjdF9lcXVhbCk7CisrICAgICAgICBtX25hbWVfdG9fdW5pY29kZXNfZGljdCA9Cisr ICAgICAgICAgICAgICAgIG5ldyBHTGliLkhhc2hUYWJsZTxzdHJpbmcsIEdMaWIuU0xpc3Q8dW5p Y2hhcj4+KEdMaWIuc3RyX2hhc2gsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaWIuc3RyX2VxdWFsKTsKKyAgICAgfQor IAorIAorQEAgLTQ4Miw2ICs1NzAsMTAgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGlj YXRpb25XaW5kb3cgeworICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgdXRmOF9jb2RlX3BvaW50 KHN0cmluZyBzdHIpIHsKKyAgICAgICAgIHZhciBidWZmID0gbmV3IEdMaWIuU3RyaW5nQnVpbGRl cigpOworICAgICAgICAgaW50IGxlbmd0aCA9IHN0ci5jaGFyX2NvdW50KCk7CisrICAgICAgICBp ZiAobGVuZ3RoID09IDApIHsKKysgICAgICAgICAgICBidWZmLmFwcGVuZCgiVSslMDRYIi5wcmlu dGYoMCkpOworKyAgICAgICAgICAgIHJldHVybiBidWZmLnN0cjsKKysgICAgICAgIH0KKyAgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICB1bmlj aGFyIGNoID0gc3RyLmdldF9jaGFyKDApOworICAgICAgICAgICAgIGlmIChpID09IDApCitAQCAt NjQ0LDYgKzczNiw3MiBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRv dyB7CisgICAgIH0KKyAKKyAKKysgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBtYWtlX3VuaWNvZGVf YmxvY2tfZGljdCgpIHsKKysgICAgICAgIG1fdW5pY29kZV9ibG9ja19saXN0ID0gSUJ1cy5Vbmlj b2RlQmxvY2subG9hZCgKKysgICAgICAgICAgICAgICAgICAgIENvbmZpZy5QS0dEQVRBRElSICsg Ii9kaWN0cy91bmljb2RlLWJsb2Nrcy5kaWN0Iik7CisrICAgICAgICBmb3JlYWNoICh1bm93bmVk IElCdXMuVW5pY29kZUJsb2NrIGJsb2NrIGluIG1fdW5pY29kZV9ibG9ja19saXN0KSB7CisrICAg ICAgICAgICAgdW5vd25lZCBzdHJpbmcgbmFtZSA9IGJsb2NrLmdldF9uYW1lKCk7CisrICAgICAg ICAgICAgaWYgKG1fZW1vamlfbWF4X3NlcV9sZW4gPCBuYW1lLmxlbmd0aCkKKysgICAgICAgICAg ICAgICAgbV9lbW9qaV9tYXhfc2VxX2xlbiA9IG5hbWUubGVuZ3RoOworKyAgICAgICAgfQorKyAg ICB9CisrCisrCisrICAgIHByaXZhdGUgc3RhdGljIHZvaWQgbWFrZV91bmljb2RlX25hbWVfZGlj dChPYmplY3Qgc291cmNlX29iamVjdCkgeworKyAgICAgICAgSUJ1cy5Vbmljb2RlRGF0YS5sb2Fk X2FzeW5jKAorKyAgICAgICAgICAgICAgICAgICAgQ29uZmlnLlBLR0RBVEFESVIgKyAiL2RpY3Rz L3VuaWNvZGUtbmFtZXMuZGljdCIsCisrICAgICAgICAgICAgICAgICAgICBzb3VyY2Vfb2JqZWN0 LAorKyAgICAgICAgICAgICAgICAgICAgbnVsbCwKKysgICAgICAgIChJQnVzLlVuaWNvZGVEYXRh TG9hZEFzeW5jRmluaXNoKW1ha2VfdW5pY29kZV9uYW1lX2RpY3RfZmluaXNoKTsKKysgICAgfQor KworKyAgICBwcml2YXRlIHN0YXRpYyB2b2lkCisrICAgIG1ha2VfdW5pY29kZV9uYW1lX2RpY3Rf ZmluaXNoKEdMaWIuU0xpc3Q8SUJ1cy5Vbmljb2RlRGF0YT4gdW5pY29kZV9saXN0KSB7CisrICAg ICAgICBpZiAodW5pY29kZV9saXN0ID09IG51bGwpCisrICAgICAgICAgICAgcmV0dXJuOworKyAg ICAgICAgZm9yZWFjaCAoSUJ1cy5Vbmljb2RlRGF0YSBkYXRhIGluIHVuaWNvZGVfbGlzdCkgewor KyAgICAgICAgICAgIHVwZGF0ZV91bmljb2RlX3RvX2RhdGFfZGljdChkYXRhKTsKKysgICAgICAg ICAgICB1cGRhdGVfbmFtZV90b191bmljb2Rlc19kaWN0KGRhdGEpOworKyAgICAgICAgfQorKyAg ICAgICAgR0xpYi5MaXN0PHVub3duZWQgc3RyaW5nPiBuYW1lcyA9CisrICAgICAgICAgICAgICAg IG1fbmFtZV90b191bmljb2Rlc19kaWN0LmdldF9rZXlzKCk7CisrICAgICAgICBmb3JlYWNoICh1 bm93bmVkIHN0cmluZyBuYW1lIGluIG5hbWVzKSB7CisrICAgICAgICAgICAgaWYgKG1fZW1vamlf bWF4X3NlcV9sZW4gPCBuYW1lLmxlbmd0aCkKKysgICAgICAgICAgICAgICAgbV9lbW9qaV9tYXhf c2VxX2xlbiA9IG5hbWUubGVuZ3RoOworKyAgICAgICAgfQorKyAgICAgICAgbV9sb2FkZWRfdW5p Y29kZSA9IHRydWU7CisrICAgIH0KKysKKysKKysgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCB1cGRh dGVfdW5pY29kZV90b19kYXRhX2RpY3QoSUJ1cy5Vbmljb2RlRGF0YSBkYXRhKSB7CisrICAgICAg ICB1bmljaGFyIGNvZGUgPSBkYXRhLmdldF9jb2RlKCk7CisrICAgICAgICBtX3VuaWNvZGVfdG9f ZGF0YV9kaWN0LnJlcGxhY2UoY29kZSwgZGF0YSk7CisrICAgIH0KKysKKysKKysgICAgcHJpdmF0 ZSBzdGF0aWMgdm9pZCB1cGRhdGVfbmFtZV90b191bmljb2Rlc19kaWN0KElCdXMuVW5pY29kZURh dGEgZGF0YSkgeworKyAgICAgICAgdW5pY2hhciBjb2RlID0gZGF0YS5nZXRfY29kZSgpOworKyAg ICAgICAgc3RyaW5nW10gbmFtZXMgPSB7ZGF0YS5nZXRfbmFtZSgpLmRvd24oKSwgZGF0YS5nZXRf YWxpYXMoKS5kb3duKCl9OworKyAgICAgICAgZm9yZWFjaCAodW5vd25lZCBzdHJpbmcgbmFtZSBp biBuYW1lcykgeworKyAgICAgICAgICAgIGlmIChuYW1lID09ICIiKQorKyAgICAgICAgICAgICAg ICBjb250aW51ZTsKKysgICAgICAgICAgICBib29sIGhhc19jb2RlID0gZmFsc2U7CisrICAgICAg ICAgICAgR0xpYi5TTGlzdDx1bmljaGFyPiBoaXRzID0KKysgICAgICAgICAgICAgICAgICAgIG1f bmFtZV90b191bmljb2Rlc19kaWN0Lmxvb2t1cChuYW1lKS5jb3B5KCk7CisrICAgICAgICAgICAg Zm9yZWFjaCAodW5pY2hhciBoaXRfY29kZSBpbiBoaXRzKSB7CisrICAgICAgICAgICAgICAgIGlm IChoaXRfY29kZSA9PSBjb2RlKSB7CisrICAgICAgICAgICAgICAgICAgICBoYXNfY29kZSA9IHRy dWU7CisrICAgICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgICAgfQorKyAg ICAgICAgICAgIH0KKysgICAgICAgICAgICBpZiAoIWhhc19jb2RlKSB7CisrICAgICAgICAgICAg ICAgIGhpdHMuYXBwZW5kKGNvZGUpOworKyAgICAgICAgICAgICAgICBtX25hbWVfdG9fdW5pY29k ZXNfZGljdC5yZXBsYWNlKG5hbWUsIGhpdHMuY29weSgpKTsKKysgICAgICAgICAgICB9CisrICAg ICAgICB9CisrICAgIH0KKysKKysKKyAgICAgcHJpdmF0ZSB2b2lkIHNldF9maXhlZF9zaXplKCkg eworICAgICAgICAgcmVzaXplKDIwLCAxKTsKKyAgICAgfQorQEAgLTY2NSw2ICs4MjMsNyBAQCBj bGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICBtX3Nj cm9sbGVkX3dpbmRvdyA9IG5ldyBFU2Nyb2xsZWRXaW5kb3coKTsKKyAgICAgICAgIHNldF9maXhl ZF9zaXplKCk7CisgCisrICAgICAgICBtX3RpdGxlLnNldF90aXRsZShfKCJFbW9qaSBDaG9pY2Ui KSk7CisgICAgICAgICBzdHJpbmcgbGFuZ3VhZ2UgPQorICAgICAgICAgICAgIElCdXMuZ2V0X2xh bmd1YWdlX25hbWUobV9jdXJyZW50X2xhbmdfaWQpOworICAgICAgICAgbV90aXRsZS5zZXRfbGFu Z19sYWJlbChsYW5ndWFnZSk7CitAQCAtNjc3LDEyICs4MzYsMTIgQEAgY2xhc3MgSUJ1c0Vtb2pp ZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgR3RrLkFkanVzdG1lbnQgYWRq dXN0bWVudCA9IG1fc2Nyb2xsZWRfd2luZG93LmdldF92YWRqdXN0bWVudCgpOworICAgICAgICAg bV9saXN0X2JveC5zZXRfYWRqdXN0bWVudChhZGp1c3RtZW50KTsKKyAgICAgICAgIG1fbGlzdF9i b3gucm93X2FjdGl2YXRlZC5jb25uZWN0KChib3gsIGd0a3JvdykgPT4geworLSAgICAgICAgICAg IG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ID0gMDsKKysgICAgICAgICAgICBtX2NhdGVnb3J5X2Fj dGl2ZV9pbmRleCA9IC0xOworICAgICAgICAgICAgIEVCb3hSb3cgcm93ID0gZ3Rrcm93IGFzIEVC b3hSb3c7CisgICAgICAgICAgICAgc2hvd19lbW9qaV9mb3JfY2F0ZWdvcnkocm93LnRleHQpOwor ICAgICAgICAgfSk7CisgCistICAgICAgICB1aW50IG4gPSAxOworKyAgICAgICAgdWludCBuID0g MDsKKyAgICAgICAgIGlmIChtX2Zhdm9yaXRlcy5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAg RUJveFJvdyByb3cgPSBuZXcgRUJveFJvdyhFTU9KSV9DQVRFR09SWV9GQVZPUklURVMpOworICAg ICAgICAgICAgIEVQYWRkZWRMYWJlbEJveCB3aWRnZXQgPQorQEAgLTcxNiw5ICs4NzUsMTkgQEAg Y2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgICAg IGlmIChuKysgPT0gbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXgpCisgICAgICAgICAgICAgICAgIG1f bGlzdF9ib3guc2VsZWN0X3Jvdyhyb3cpOworICAgICAgICAgfQorKyAgICAgICAgaWYgKG1fdW5p Y29kZV9ibG9ja19saXN0Lmxlbmd0aCgpID4gMCkgeworKyAgICAgICAgICAgIEVCb3hSb3cgcm93 ID0gbmV3IEVCb3hSb3coRU1PSklfQ0FURUdPUllfVU5JQ09ERSk7CisrICAgICAgICAgICAgRVBh ZGRlZExhYmVsQm94IHdpZGdldCA9CisrICAgICAgICAgICAgICAgICAgICBuZXcgRVBhZGRlZExh YmVsQm94KF8oRU1PSklfQ0FURUdPUllfVU5JQ09ERSksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEd0ay5BbGlnbi5DRU5URVIpOworKyAgICAgICAgICAgIHJvdy5h ZGQod2lkZ2V0KTsKKysgICAgICAgICAgICBtX2xpc3RfYm94LmFkZChyb3cpOworKyAgICAgICAg ICAgIGlmIChuKysgPT0gbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXgpCisrICAgICAgICAgICAgICAg IG1fbGlzdF9ib3guc2VsZWN0X3Jvdyhyb3cpOworKyAgICAgICAgfQorIAorICAgICAgICAgbV9z Y3JvbGxlZF93aW5kb3cuc2hvd19hbGwoKTsKKy0gICAgICAgIGlmIChtX2NhdGVnb3J5X2FjdGl2 ZV9pbmRleCA9PSAwKQorKyAgICAgICAgaWYgKG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ID09IC0x KQorICAgICAgICAgICAgIG1fbGlzdF9ib3gudW5zZWxlY3RfYWxsKCk7CisgICAgICAgICBtX2xp c3RfYm94LmludmFsaWRhdGVfZmlsdGVyKCk7CisgICAgICAgICBtX2xpc3RfYm94LnNldF9zZWxl Y3Rpb25fbW9kZShHdGsuU2VsZWN0aW9uTW9kZS5TSU5HTEUpOworQEAgLTczMyw2ICs5MDIsMTEg QEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAg ICAgICAgICBtX2xvb2t1cF90YWJsZS5hcHBlbmRfY2FuZGlkYXRlKHRleHQpOworICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICBtX2JhY2t3YXJkID0gY2F0ZWdvcnk7CisrICAgICAgICB9IGVs c2UgaWYgKGNhdGVnb3J5ID09IEVNT0pJX0NBVEVHT1JZX1VOSUNPREUpIHsKKysgICAgICAgICAg ICBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9IC0xOworKyAgICAgICAgICAgIG1fc2hvd191bmlj b2RlID0gdHJ1ZTsKKysgICAgICAgICAgICBzaG93X3VuaWNvZGVfYmxvY2tzKCk7CisrICAgICAg ICAgICAgcmV0dXJuOworICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICB1bm93bmVkIEdM aWIuU0xpc3Q8dW5vd25lZCBzdHJpbmc+IGVtb2ppcyA9CisgICAgICAgICAgICAgICAgICAgICBt X2NhdGVnb3J5X3RvX2Vtb2ppc19kaWN0Lmxvb2t1cChjYXRlZ29yeSk7CitAQCAtNzY0LDYgKzkz OCwxMjYgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAg ICB9CisgCisgCisrICAgIHByaXZhdGUgdm9pZCBzaG93X3VuaWNvZGVfYmxvY2tzKCkgeworKyAg ICAgICAgbV9zaG93X3VuaWNvZGUgPSB0cnVlOworKyAgICAgICAgaWYgKG1fZGVmYXVsdF93aW5k b3dfd2lkdGggPT0gMCAmJiBtX2RlZmF1bHRfd2luZG93X2hlaWdodCA9PSAwKQorKyAgICAgICAg ICAgIGdldF9zaXplKG91dCBtX2RlZmF1bHRfd2luZG93X3dpZHRoLCBvdXQgbV9kZWZhdWx0X3dp bmRvd19oZWlnaHQpOworKyAgICAgICAgcmVtb3ZlX2FsbF9jaGlsZHJlbigpOworKyAgICAgICAg c2V0X2ZpeGVkX3NpemUoKTsKKysKKysgICAgICAgIG1fdGl0bGUuc2V0X3RpdGxlKF8oIlVuaWNv ZGUgQ2hvaWNlIikpOworKyAgICAgICAgRVBhZGRlZExhYmVsQm94IGxhYmVsID0KKysgICAgICAg ICAgICAgICAgbmV3IEVQYWRkZWRMYWJlbEJveChfKCJCcmluZyBiYWNrIGVtb2ppIGNob2ljZSIp LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5BbGlnbi5DRU5URVIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhdmVsRGlyZWN0aW9uLkJB Q0tXQVJEKTsKKysgICAgICAgIEd0ay5CdXR0b24gYnV0dG9uID0gbmV3IEd0ay5CdXR0b24oKTsK KysgICAgICAgIGJ1dHRvbi5hZGQobGFiZWwpOworKyAgICAgICAgbV92Ym94LmFkZChidXR0b24p OworKyAgICAgICAgYnV0dG9uLnNob3dfYWxsKCk7CisrICAgICAgICBidXR0b24uYnV0dG9uX3By ZXNzX2V2ZW50LmNvbm5lY3QoKHcsIGUpID0+IHsKKysgICAgICAgICAgICBtX2NhdGVnb3J5X2Fj dGl2ZV9pbmRleCA9IC0xOworKyAgICAgICAgICAgIG1fc2hvd191bmljb2RlID0gZmFsc2U7Cisr ICAgICAgICAgICAgaGlkZV9jYW5kaWRhdGVfcGFuZWwoKTsKKysgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKysgICAgICAgIH0pOworKyAgICAgICAgbV9zY3JvbGxlZF93aW5kb3cgPSBuZXcgRVNj cm9sbGVkV2luZG93KCk7CisrICAgICAgICBtX3RpdGxlLnNldF9sYW5nX2xhYmVsKCIiKTsKKysg ICAgICAgIG1fdmJveC5hZGQobV9zY3JvbGxlZF93aW5kb3cpOworKyAgICAgICAgR3RrLlZpZXdw b3J0IHZpZXdwb3J0ID0gbmV3IEd0ay5WaWV3cG9ydChudWxsLCBudWxsKTsKKysgICAgICAgIG1f c2Nyb2xsZWRfd2luZG93LmFkZCh2aWV3cG9ydCk7CisrCisrICAgICAgICBtX2xpc3RfYm94ID0g bmV3IEVMaXN0Qm94KCk7CisrICAgICAgICB2aWV3cG9ydC5hZGQobV9saXN0X2JveCk7CisrICAg ICAgICBHdGsuQWRqdXN0bWVudCBhZGp1c3RtZW50ID0gbV9zY3JvbGxlZF93aW5kb3cuZ2V0X3Zh ZGp1c3RtZW50KCk7CisrICAgICAgICBtX2xpc3RfYm94LnNldF9hZGp1c3RtZW50KGFkanVzdG1l bnQpOworKyAgICAgICAgbV9saXN0X2JveC5yb3dfYWN0aXZhdGVkLmNvbm5lY3QoKGJveCwgZ3Rr cm93KSA9PiB7CisrICAgICAgICAgICAgbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXggPSAtMTsKKysg ICAgICAgICAgICBFQm94Um93IHJvdyA9IGd0a3JvdyBhcyBFQm94Um93OworKyAgICAgICAgICAg IHNob3dfdW5pY29kZV9mb3JfYmxvY2socm93LnRleHQpOworKyAgICAgICAgfSk7CisrCisrICAg ICAgICB1aW50IG4gPSAwOworKyAgICAgICAgZm9yZWFjaCAodW5vd25lZCBJQnVzLlVuaWNvZGVC bG9jayBibG9jayBpbiBtX3VuaWNvZGVfYmxvY2tfbGlzdCkgeworKyAgICAgICAgICAgIHN0cmlu ZyBuYW1lID0gYmxvY2suZ2V0X25hbWUoKTsKKysgICAgICAgICAgICBFQm94Um93IHJvdyA9IG5l dyBFQm94Um93KG5hbWUpOworKyAgICAgICAgICAgIEVQYWRkZWRMYWJlbEJveCB3aWRnZXQgPQor KyAgICAgICAgICAgICAgICAgICAgbmV3IEVQYWRkZWRMYWJlbEJveChfKG5hbWUpLCBHdGsuQWxp Z24uQ0VOVEVSKTsKKysgICAgICAgICAgICByb3cuYWRkKHdpZGdldCk7CisrICAgICAgICAgICAg bV9saXN0X2JveC5hZGQocm93KTsKKysgICAgICAgICAgICBpZiAobisrID09IG1fY2F0ZWdvcnlf YWN0aXZlX2luZGV4KSB7CisrICAgICAgICAgICAgICAgIG1fbGlzdF9ib3guc2VsZWN0X3Jvdyhy b3cpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysKKysgICAgICAgIHNldF9zaXplX3Jl cXVlc3QoLTEsIG1fZGVmYXVsdF93aW5kb3dfaGVpZ2h0ICsgMTAwKTsKKysgICAgICAgIG1fc2Ny b2xsZWRfd2luZG93LnNldF9wb2xpY3koR3RrLlBvbGljeVR5cGUuTkVWRVIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5Qb2xpY3lUeXBlLkFVVE9NQVRJQyk7Cisr ICAgICAgICBtX3Njcm9sbGVkX3dpbmRvdy5zaG93X2FsbCgpOworKyAgICAgICAgaWYgKG1fY2F0 ZWdvcnlfYWN0aXZlX2luZGV4ID09IC0xKQorKyAgICAgICAgICAgIG1fbGlzdF9ib3gudW5zZWxl Y3RfYWxsKCk7CisrICAgICAgICBtX2xpc3RfYm94LmludmFsaWRhdGVfZmlsdGVyKCk7CisrICAg ICAgICBtX2xpc3RfYm94LnNldF9zZWxlY3Rpb25fbW9kZShHdGsuU2VsZWN0aW9uTW9kZS5TSU5H TEUpOworKyAgICB9CisrCisrICAgIHByaXZhdGUgdm9pZCBzaG93X3VuaWNvZGVfZm9yX2Jsb2Nr KHN0cmluZyBibG9ja19uYW1lKSB7CisrICAgICAgICBpZiAoIW1fbG9hZGVkX3VuaWNvZGUpIHsK KysgICAgICAgICAgICByZW1vdmVfYWxsX2NoaWxkcmVuKCk7CisrICAgICAgICAgICAgc2V0X2Zp eGVkX3NpemUoKTsKKysgICAgICAgICAgICBtX3VuaWNvZGVfcHJvZ3Jlc3NfYmFyID0gbmV3IEd0 ay5Qcm9ncmVzc0JhcigpOworKyAgICAgICAgICAgIG1fdW5pY29kZV9wcm9ncmVzc19iYXIuc2V0 X2VsbGlwc2l6ZShQYW5nby5FbGxpcHNpemVNb2RlLk1JRERMRSk7CisrICAgICAgICAgICAgbV91 bmljb2RlX3Byb2dyZXNzX2Jhci5zZXRfaGFsaWduKEd0ay5BbGlnbi5DRU5URVIpOworKyAgICAg ICAgICAgIG1fdW5pY29kZV9wcm9ncmVzc19iYXIuc2V0X3ZhbGlnbihHdGsuQWxpZ24uQ0VOVEVS KTsKKysgICAgICAgICAgICBtX3Zib3guYWRkKG1fdW5pY29kZV9wcm9ncmVzc19iYXIpOworKyAg ICAgICAgICAgIG1fdW5pY29kZV9wcm9ncmVzc19iYXIuc2hvdygpOworKyAgICAgICAgICAgIHZh ciBoYm94ID0gbmV3IEd0ay5Cb3goR3RrLk9yaWVudGF0aW9uLkhPUklaT05UQUwsIDUpOworKyAg ICAgICAgICAgIGhib3guc2V0X2hhbGlnbihHdGsuQWxpZ24uQ0VOVEVSKTsKKysgICAgICAgICAg ICBoYm94LnNldF92YWxpZ24oR3RrLkFsaWduLkNFTlRFUik7CisrICAgICAgICAgICAgbV92Ym94 LmFkZChoYm94KTsKKysgICAgICAgICAgICB2YXIgbGFiZWwgPSBuZXcgR3RrLkxhYmVsKF8oIkxv YWRpbmcgYSBVbmljb2RlIGRpY3Rpb25hcnk6IikpOworKyAgICAgICAgICAgIGhib3gucGFja19z dGFydChsYWJlbCwgZmFsc2UsIHRydWUsIDApOworKyAgICAgICAgICAgIG1fdW5pY29kZV9wZXJj ZW50X2xhYmVsID0gbmV3IEd0ay5MYWJlbCgiIik7CisrICAgICAgICAgICAgaGJveC5wYWNrX3N0 YXJ0KG1fdW5pY29kZV9wZXJjZW50X2xhYmVsLCBmYWxzZSwgdHJ1ZSwgMCk7CisrICAgICAgICAg ICAgaGJveC5zaG93X2FsbCgpOworKworKyAgICAgICAgICAgIG1fdW5pY29kZV9wcm9ncmVzc19v YmplY3QuZGVzZXJpYWxpemVfdW5pY29kZS5jb25uZWN0KChpLCBuKSA9PiB7CisrICAgICAgICAg ICAgICAgIG1fdW5pY29kZV9wZXJjZW50ID0gKGRvdWJsZSlpIC8gbjsKKysgICAgICAgICAgICB9 KTsKKysgICAgICAgICAgICBHTGliLlRpbWVvdXQuYWRkKDEwMCwgKCkgPT4geworKyAgICAgICAg ICAgICAgICBtX3VuaWNvZGVfcHJvZ3Jlc3NfYmFyLnNldF9mcmFjdGlvbihtX3VuaWNvZGVfcGVy Y2VudCk7CisrICAgICAgICAgICAgICAgIG1fdW5pY29kZV9wZXJjZW50X2xhYmVsLnNldF90ZXh0 KAorKyAgICAgICAgICAgICAgICAgICAgICAgICIlLjBmJSVcbiIucHJpbnRmKG1fdW5pY29kZV9w ZXJjZW50ICogMTAwKSk7CisrICAgICAgICAgICAgICAgIG1fdW5pY29kZV9wcm9ncmVzc19iYXIu c2hvdygpOworKyAgICAgICAgICAgICAgICBtX3VuaWNvZGVfcGVyY2VudF9sYWJlbC5zaG93KCk7 CisrICAgICAgICAgICAgICAgIGlmIChtX2xvYWRlZF91bmljb2RlKSB7CisrICAgICAgICAgICAg ICAgICAgICBzaG93X3VuaWNvZGVfZm9yX2Jsb2NrKGJsb2NrX25hbWUpOworKyAgICAgICAgICAg ICAgICB9CisrICAgICAgICAgICAgICAgIHJldHVybiAhbV9sb2FkZWRfdW5pY29kZTsKKysgICAg ICAgICAgICB9KTsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrICAgICAgICB1 bmljaGFyIHN0YXJ0ID0gMDsKKysgICAgICAgIHVuaWNoYXIgZW5kID0gMDsKKysgICAgICAgIGZv cmVhY2ggKHVub3duZWQgSUJ1cy5Vbmljb2RlQmxvY2sgYmxvY2sgaW4gbV91bmljb2RlX2Jsb2Nr X2xpc3QpIHsKKysgICAgICAgICAgICBzdHJpbmcgbmFtZSA9IGJsb2NrLmdldF9uYW1lKCk7Cisr ICAgICAgICAgICAgaWYgKGJsb2NrX25hbWUgPT0gbmFtZSkgeworKyAgICAgICAgICAgICAgICBz dGFydCA9IGJsb2NrLmdldF9zdGFydCgpOworKyAgICAgICAgICAgICAgICBlbmQgPSBibG9jay5n ZXRfZW5kKCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgbV9sb29rdXBf dGFibGUuY2xlYXIoKTsKKysgICAgICAgIGZvciAodW5pY2hhciBjaCA9IHN0YXJ0OyBjaCA8IGVu ZDsgY2grKykgeworKyAgICAgICAgICAgIHVub3duZWQgSUJ1cy5Vbmljb2RlRGF0YT8gZGF0YSA9 CisrICAgICAgICAgICAgICAgICAgICBtX3VuaWNvZGVfdG9fZGF0YV9kaWN0Lmxvb2t1cChjaCk7 CisrICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkKKysgICAgICAgICAgICAgICAgY29udGlu dWU7CisrICAgICAgICAgICAgSUJ1cy5UZXh0IHRleHQgPSBuZXcgSUJ1cy5UZXh0LmZyb21fdW5p Y2hhcihjaCk7CisrICAgICAgICAgICAgbV9sb29rdXBfdGFibGUuYXBwZW5kX2NhbmRpZGF0ZSh0 ZXh0KTsKKysgICAgICAgIH0KKysgICAgICAgIG1fYmFja3dhcmQgPSBibG9ja19uYW1lOworKyAg ICAgICAgc2hvd19jYW5kaWRhdGVfcGFuZWwoKTsKKysgICAgfQorKworKworICAgICBwcml2YXRl IHZvaWQgc2hvd19hcnJvd19idXR0b25zKCkgeworICAgICAgICAgR3RrLkJ1dHRvbiBuZXh0X2J1 dHRvbiA9IG5ldyBHdGsuQnV0dG9uKCk7CisgICAgICAgICBuZXh0X2J1dHRvbi5jbGlja2VkLmNv bm5lY3QoKCkgPT4geworQEAgLTg0MCw2ICsxMTM0LDcgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBH dGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICBsb29rdXBfZW1vamlzX2Zyb21fYW5ub3RhdGlv bihzdHJpbmcgYW5ub3RhdGlvbikgeworICAgICAgICAgR0xpYi5TTGlzdDxzdHJpbmc+PyB0b3Rh bF9lbW9qaXMgPSBudWxsOworICAgICAgICAgdW5vd25lZCBHTGliLlNMaXN0PHN0cmluZz4/IHN1 Yl9lbW9qaXMgPSBudWxsOworKyAgICAgICAgdW5vd25lZCBHTGliLlNMaXN0PHVuaWNoYXI+PyBz dWJfdW5pY29kZXMgPSBudWxsOworICAgICAgICAgaW50IGxlbmd0aCA9IGFubm90YXRpb24ubGVu Z3RoOworICAgICAgICAgaWYgKG1faGFzX3BhcnRpYWxfbWF0Y2ggJiYgbGVuZ3RoID49IG1fcGFy dGlhbF9tYXRjaF9sZW5ndGgpIHsKKyAgICAgICAgICAgICBmb3JlYWNoICh1bm93bmVkIHN0cmlu ZyBrZXkgaW4KK0BAIC04NzcsNiArMTE3MiwyMiBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5B cHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICAgICAgZm9yZWFjaCAodW5vd25lZCBzdHJpbmcg ZW1vamkgaW4gc3ViX2Vtb2ppcykKKyAgICAgICAgICAgICAgICAgdG90YWxfZW1vamlzLmFwcGVu ZChlbW9qaSk7CisgICAgICAgICB9CisrICAgICAgICBpZiAobGVuZ3RoID49IG1fcGFydGlhbF9t YXRjaF9sZW5ndGgpIHsKKysgICAgICAgICAgICBmb3JlYWNoICh1bm93bmVkIHN0cmluZyBrZXkg aW4gbV9uYW1lX3RvX3VuaWNvZGVzX2RpY3QuZ2V0X2tleXMoKSkgeworKyAgICAgICAgICAgICAg ICBib29sIG1hdGNoZWQgPSBmYWxzZTsKKysgICAgICAgICAgICAgICAgaWYgKGtleS5pbmRleF9v Zihhbm5vdGF0aW9uKSA+PSAwKQorKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWQgPSB0 cnVlOworKyAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZWQpCisrICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKKysgICAgICAgICAgICAgICAgc3ViX3VuaWNvZGVzID0gbV9uYW1lX3RvX3Vu aWNvZGVzX2RpY3QubG9va3VwKGtleSk7CisrICAgICAgICAgICAgICAgIGZvcmVhY2ggKHVuaWNo YXIgY29kZSBpbiBzdWJfdW5pY29kZXMpIHsKKysgICAgICAgICAgICAgICAgICAgIHN0cmluZyBj aCA9IGNvZGUudG9fc3RyaW5nKCk7CisrICAgICAgICAgICAgICAgICAgICBpZiAodG90YWxfZW1v amlzLmZpbmRfY3VzdG9tKGNoLCBHTGliLnN0cmNtcCkgPT0gbnVsbCkgeworKyAgICAgICAgICAg ICAgICAgICAgICAgIHRvdGFsX2Vtb2ppcy5hcHBlbmQoY2gpOworKyAgICAgICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorICAg ICAgICAgcmV0dXJuIHRvdGFsX2Vtb2ppczsKKyAgICAgfQorIAorQEAgLTEwNDksNTggKzEzNjAs OTkgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAg ICAgICAgIGdyaWQuc2hvd19hbGwoKTsKKyAgICAgICAgICAgICBzdHJpbmcgdGV4dCA9IG1fbG9v a3VwX3RhYmxlLmdldF9jYW5kaWRhdGUoY3Vyc29yKS50ZXh0OworICAgICAgICAgICAgIHVub3du ZWQgSUJ1cy5FbW9qaURhdGE/IGRhdGEgPSBtX2Vtb2ppX3RvX2RhdGFfZGljdC5sb29rdXAodGV4 dCk7CistICAgICAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCkgeworLSAgICAgICAgICAgICAgICAv LyBUT0RPOiBQcm92aWRlIGEgY3VzdG9tIGRlc2NyaXB0aW9uIGFuZCBhbm5vdGF0aW9uIGZvcgor LSAgICAgICAgICAgICAgICAvLyB0aGUgZmF2b3JpdGUgZW1vamlzLgorLSAgICAgICAgICAgICAg ICBFUGFkZGVkTGFiZWxCb3ggd2lkZ2V0ID0gbmV3IEVQYWRkZWRMYWJlbEJveCgKKy0gICAgICAg ICAgICAgICAgICAgICAgICBfKCJEZXNjcmlwdGlvbjogJXMiKS5wcmludGYoXygiTm9uZSIpKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICBHdGsuQWxpZ24uU1RBUlQpOworLSAgICAgICAgICAg ICAgICBtX3Zib3guYWRkKHdpZGdldCk7CistICAgICAgICAgICAgICAgIHdpZGdldC5zaG93X2Fs bCgpOworLSAgICAgICAgICAgICAgICBzaG93X2NvZGVfcG9pbnRfZGVzY3JpcHRpb24odGV4dCk7 CisrICAgICAgICAgICAgaWYgKGRhdGEgIT0gbnVsbCkgeworKyAgICAgICAgICAgICAgICBzaG93 X2Vtb2ppX2Rlc2NyaXB0aW9uKGRhdGEsIHRleHQpOworICAgICAgICAgICAgICAgICByZXR1cm47 CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgdW5vd25lZCBzdHJpbmcg ZGVzY3JpcHRpb24gPSBkYXRhLmdldF9kZXNjcmlwdGlvbigpOworLSAgICAgICAgICAgICAgICBF UGFkZGVkTGFiZWxCb3ggd2lkZ2V0ID0gbmV3IEVQYWRkZWRMYWJlbEJveCgKKy0gICAgICAgICAg ICAgICAgICAgICAgICBfKCJEZXNjcmlwdGlvbjogJXMiKS5wcmludGYoZGVzY3JpcHRpb24pLAor LSAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5BbGlnbi5TVEFSVCk7CistICAgICAgICAgICAg ICAgIG1fdmJveC5hZGQod2lkZ2V0KTsKKy0gICAgICAgICAgICAgICAgd2lkZ2V0LnNob3dfYWxs KCk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHVub3duZWQgR0xpYi5TTGlzdDx1bm93 bmVkIHN0cmluZz4/IGFubm90YXRpb25zID0KKy0gICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0 X2Fubm90YXRpb25zKCk7CistICAgICAgICAgICAgdmFyIGJ1ZmYgPSBuZXcgR0xpYi5TdHJpbmdC dWlsZGVyKCk7CistICAgICAgICAgICAgaW50IGkgPSAwOworLSAgICAgICAgICAgIGZvcmVhY2gg KHVub3duZWQgc3RyaW5nIGFubm90YXRpb24gaW4gYW5ub3RhdGlvbnMpIHsKKy0gICAgICAgICAg ICAgICAgaWYgKGkrKyA9PSAwKQorLSAgICAgICAgICAgICAgICAgICAgYnVmZi5hcHBlbmRfcHJp bnRmKF8oIkFubm90YXRpb25zOiAlcyIpLCBhbm5vdGF0aW9uKTsKKy0gICAgICAgICAgICAgICAg ZWxzZQorLSAgICAgICAgICAgICAgICAgICAgYnVmZi5hcHBlbmRfcHJpbnRmKCIgfCAlcyIsIGFu bm90YXRpb24pOworLSAgICAgICAgICAgICAgICBpZiAoYnVmZi5zdHIuY2hhcl9jb3VudCgpID4g MzApIHsKKy0gICAgICAgICAgICAgICAgICAgIEVQYWRkZWRMYWJlbEJveCB3aWRnZXQgPQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRVBhZGRlZExhYmVsQm94KGJ1ZmYuc3RyLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5BbGln bi5TVEFSVCk7CistICAgICAgICAgICAgICAgICAgICBtX3Zib3guYWRkKHdpZGdldCk7CistICAg ICAgICAgICAgICAgICAgICB3aWRnZXQuc2hvd19hbGwoKTsKKy0gICAgICAgICAgICAgICAgICAg IGJ1ZmYuZXJhc2UoKTsKKysgICAgICAgICAgICBpZiAodGV4dC5jaGFyX2NvdW50KCkgPD0gMSkg eworKyAgICAgICAgICAgICAgICB1bmljaGFyIGNvZGUgPSB0ZXh0LmdldF9jaGFyKCk7CisrICAg ICAgICAgICAgICAgIHVub3duZWQgSUJ1cy5Vbmljb2RlRGF0YT8gdWRhdGEgPQorKyAgICAgICAg ICAgICAgICAgICAgICAgIG1fdW5pY29kZV90b19kYXRhX2RpY3QubG9va3VwKGNvZGUpOworKyAg ICAgICAgICAgICAgICBpZiAodWRhdGEgIT0gbnVsbCkgeworKyAgICAgICAgICAgICAgICAgICAg c2hvd191bmljb2RlX2Rlc2NyaXB0aW9uKHVkYXRhLCB0ZXh0KTsKKysgICAgICAgICAgICAgICAg ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICBpZiAoYnVmZi5zdHIgIT0gIiIpIHsKKy0gICAgICAgICAgICAgICAgRVBhZGRlZExhYmVs Qm94IHdpZGdldCA9IG5ldyBFUGFkZGVkTGFiZWxCb3goYnVmZi5zdHIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5BbGln bi5TVEFSVCk7CisrICAgICAgICAgICAgLy8gVE9ETzogUHJvdmlkZSBhIGN1c3RvbSBkZXNjcmlw dGlvbiBhbmQgYW5ub3RhdGlvbiBmb3IKKysgICAgICAgICAgICAvLyB0aGUgZmF2b3JpdGUgZW1v amlzLgorKyAgICAgICAgICAgIEVQYWRkZWRMYWJlbEJveCB3aWRnZXQgPSBuZXcgRVBhZGRlZExh YmVsQm94KAorKyAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRlc2NyaXB0aW9uOiAlcyIpLnBy aW50ZihfKCJOb25lIikpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5BbGlnbi5TVEFS VCk7CisrICAgICAgICAgICAgbV92Ym94LmFkZCh3aWRnZXQpOworKyAgICAgICAgICAgIHdpZGdl dC5zaG93X2FsbCgpOworKyAgICAgICAgICAgIHNob3dfY29kZV9wb2ludF9kZXNjcmlwdGlvbih0 ZXh0KTsKKysgICAgICAgIH0KKysgICAgfQorKworKworKyAgICBwcml2YXRlIHZvaWQgc2hvd19l bW9qaV9kZXNjcmlwdGlvbihJQnVzLkVtb2ppRGF0YSBkYXRhLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgICAgICAgICB0ZXh0KSB7CisrICAgICAgICB1 bm93bmVkIHN0cmluZyBkZXNjcmlwdGlvbiA9IGRhdGEuZ2V0X2Rlc2NyaXB0aW9uKCk7CisrICAg ICAgICB7CisrICAgICAgICAgICAgRVBhZGRlZExhYmVsQm94IHdpZGdldCA9IG5ldyBFUGFkZGVk TGFiZWxCb3goCisrICAgICAgICAgICAgICAgICAgICBfKCJEZXNjcmlwdGlvbjogJXMiKS5wcmlu dGYoZGVzY3JpcHRpb24pLAorKyAgICAgICAgICAgICAgICAgICAgR3RrLkFsaWduLlNUQVJUKTsK KysgICAgICAgICAgICBtX3Zib3guYWRkKHdpZGdldCk7CisrICAgICAgICAgICAgd2lkZ2V0LnNo b3dfYWxsKCk7CisrICAgICAgICB9CisrICAgICAgICB1bm93bmVkIEdMaWIuU0xpc3Q8dW5vd25l ZCBzdHJpbmc+PyBhbm5vdGF0aW9ucyA9CisrICAgICAgICAgICAgICAgIGRhdGEuZ2V0X2Fubm90 YXRpb25zKCk7CisrICAgICAgICB2YXIgYnVmZiA9IG5ldyBHTGliLlN0cmluZ0J1aWxkZXIoKTsK KysgICAgICAgIGludCBpID0gMDsKKysgICAgICAgIGZvcmVhY2ggKHVub3duZWQgc3RyaW5nIGFu bm90YXRpb24gaW4gYW5ub3RhdGlvbnMpIHsKKysgICAgICAgICAgICBpZiAoaSsrID09IDApCisr ICAgICAgICAgICAgICAgIGJ1ZmYuYXBwZW5kX3ByaW50ZihfKCJBbm5vdGF0aW9uczogJXMiKSwg YW5ub3RhdGlvbik7CisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBidWZmLmFw cGVuZF9wcmludGYoIiB8ICVzIiwgYW5ub3RhdGlvbik7CisrICAgICAgICAgICAgaWYgKGJ1ZmYu c3RyLmNoYXJfY291bnQoKSA+IDMwKSB7CisrICAgICAgICAgICAgICAgIEVQYWRkZWRMYWJlbEJv eCB3aWRnZXQgPQorKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBFUGFkZGVkTGFiZWxCb3go YnVmZi5zdHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH dGsuQWxpZ24uU1RBUlQpOworICAgICAgICAgICAgICAgICBtX3Zib3guYWRkKHdpZGdldCk7Cisg ICAgICAgICAgICAgICAgIHdpZGdldC5zaG93X2FsbCgpOworKyAgICAgICAgICAgICAgICBidWZm LmVyYXNlKCk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHNob3dfY29kZV9wb2ludF9k ZXNjcmlwdGlvbih0ZXh0KTsKKyAgICAgICAgIH0KKysgICAgICAgIGlmIChidWZmLnN0ciAhPSAi IikgeworKyAgICAgICAgICAgIEVQYWRkZWRMYWJlbEJveCB3aWRnZXQgPSBuZXcgRVBhZGRlZExh YmVsQm94KGJ1ZmYuc3RyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEd0ay5BbGlnbi5TVEFSVCk7CisrICAgICAgICAgICAgbV92Ym94 LmFkZCh3aWRnZXQpOworKyAgICAgICAgICAgIHdpZGdldC5zaG93X2FsbCgpOworKyAgICAgICAg fQorKyAgICAgICAgc2hvd19jb2RlX3BvaW50X2Rlc2NyaXB0aW9uKHRleHQpOworKyAgICB9Cisr CisrICAgIHByaXZhdGUgdm9pZCBzaG93X3VuaWNvZGVfZGVzY3JpcHRpb24oSUJ1cy5Vbmljb2Rl RGF0YSBkYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cmluZyAgICAgICAgICAgdGV4dCkgeworKyAgICAgICAgdW5vd25lZCBzdHJpbmcgbmFtZSA9IGRh dGEuZ2V0X25hbWUoKTsKKysgICAgICAgIHsKKysgICAgICAgICAgICBFUGFkZGVkTGFiZWxCb3gg d2lkZ2V0ID0gbmV3IEVQYWRkZWRMYWJlbEJveCgKKysgICAgICAgICAgICAgICAgICAgIF8oIk5h bWU6ICVzIikucHJpbnRmKG5hbWUpLAorKyAgICAgICAgICAgICAgICAgICAgR3RrLkFsaWduLlNU QVJUKTsKKysgICAgICAgICAgICBtX3Zib3guYWRkKHdpZGdldCk7CisrICAgICAgICAgICAgd2lk Z2V0LnNob3dfYWxsKCk7CisrICAgICAgICB9CisrICAgICAgICB1bm93bmVkIHN0cmluZyBhbGlh cyA9IGRhdGEuZ2V0X2FsaWFzKCk7CisrICAgICAgICB7CisrICAgICAgICAgICAgRVBhZGRlZExh YmVsQm94IHdpZGdldCA9IG5ldyBFUGFkZGVkTGFiZWxCb3goCisrICAgICAgICAgICAgICAgICAg ICBfKCJBbGlhczogJXMiKS5wcmludGYoYWxpYXMpLAorKyAgICAgICAgICAgICAgICAgICAgR3Rr LkFsaWduLlNUQVJUKTsKKysgICAgICAgICAgICBtX3Zib3guYWRkKHdpZGdldCk7CisrICAgICAg ICAgICAgd2lkZ2V0LnNob3dfYWxsKCk7CisrICAgICAgICB9CisrICAgICAgICBzaG93X2NvZGVf cG9pbnRfZGVzY3JpcHRpb24odGV4dCk7CisgICAgIH0KKyAKKyAKKyAgICAgcHJpdmF0ZSB2b2lk IGhpZGVfY2FuZGlkYXRlX3BhbmVsKCkgeworICAgICAgICAgbV9lbnRlcl9ub3RpZnlfZW5hYmxl ID0gdHJ1ZTsKKyAgICAgICAgIG1fY2FuZGlkYXRlX3BhbmVsX2lzX3Zpc2libGUgPSBmYWxzZTsK Ky0gICAgICAgIGlmIChtX2xvb3AuaXNfcnVubmluZygpKQorLSAgICAgICAgICAgIHNob3dfY2F0 ZWdvcnlfbGlzdCgpOworKyAgICAgICAgaWYgKG1fbG9vcC5pc19ydW5uaW5nKCkpIHsKKysgICAg ICAgICAgICBpZiAobV9zaG93X3VuaWNvZGUpCisrICAgICAgICAgICAgICAgIHNob3dfdW5pY29k ZV9ibG9ja3MoKTsKKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgICAgIHNob3dfY2F0 ZWdvcnlfbGlzdCgpOworKyAgICAgICAgfQorICAgICB9CisgCisgCitAQCAtMTE2NSwxOSArMTUx Nyw0MSBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAg IH0KKyAKKyAKKy0gICAgcHJpdmF0ZSB2b2lkIGNhdGVnb3J5X2xpc3RfY3Vyc29yX21vdmUodWlu dCBrZXl2YWwpIHsKKysgICAgcHJpdmF0ZSBib29sIGNhdGVnb3J5X2xpc3RfY3Vyc29yX21vdmUo dWludCBrZXl2YWwpIHsKKyAgICAgICAgIEdMaWIuTGlzdDx3ZWFrIEd0ay5XaWRnZXQ+IGxpc3Qg PSBtX2xpc3RfYm94LmdldF9jaGlsZHJlbigpOworLSAgICAgICAgaWYgKGtleXZhbCA9PSBHZGsu S2V5LkRvd24pIHsKKy0gICAgICAgICAgICBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9CistICAg ICAgICAgICAgICAgICAgICArK21fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ICUgKChpbnQpbGlzdC5s ZW5ndGgoKSArIDEpOworLSAgICAgICAgfSBlbHNlIGlmIChrZXl2YWwgPT0gR2RrLktleS5VcCkg eworKyAgICAgICAgaW50IGxlbmd0aCA9IChpbnQpbGlzdC5sZW5ndGgoKTsKKysgICAgICAgIGlm IChsZW5ndGggPT0gMCkKKysgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgICAgICBzd2l0 Y2goa2V5dmFsKSB7CisrICAgICAgICBjYXNlIEdkay5LZXkuRG93bjoKKysgICAgICAgICAgICBp ZiAoKyttX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9PSBsZW5ndGgpCisrICAgICAgICAgICAgICAg IG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ID0gMDsKKysgICAgICAgICAgICBicmVhazsKKysgICAg ICAgIGNhc2UgR2RrLktleS5VcDoKKyAgICAgICAgICAgICBpZiAoLS1tX2NhdGVnb3J5X2FjdGl2 ZV9pbmRleCA8IDApCistICAgICAgICAgICAgICAgICAgICBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRl eCA9IChpbnQpbGlzdC5sZW5ndGgoKTsKKysgICAgICAgICAgICAgICAgICAgIG1fY2F0ZWdvcnlf YWN0aXZlX2luZGV4ID0gbGVuZ3RoIC0gMTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAg IGNhc2UgR2RrLktleS5Ib21lOgorKyAgICAgICAgICAgIG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4 ID0gMDsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgR2RrLktleS5FbmQ6Cisr ICAgICAgICAgICAgbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXggPSBsZW5ndGggLSAxOworKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgfQorLSAgICAgICAgR3RrLkFkanVzdG1lbnQgYWRqdXN0 bWVudCA9IG1fbGlzdF9ib3guZ2V0X2FkanVzdG1lbnQoKTsKKy0gICAgICAgIG1fc2Nyb2xsZWRf d2luZG93LnNldF9oYWRqdXN0bWVudChuZXcgR3RrLkFkanVzdG1lbnQoMCwgMCwgMCwgMCwgMCwg MCkpOworLSAgICAgICAgbV9zY3JvbGxlZF93aW5kb3cuc2V0X3ZhZGp1c3RtZW50KGFkanVzdG1l bnQpOworLSAgICAgICAgc2hvd19jYXRlZ29yeV9saXN0KCk7CisrICAgICAgICB2YXIgcm93ID0g bV9saXN0X2JveC5nZXRfc2VsZWN0ZWRfcm93KCk7CisrICAgICAgICBpZiAocm93ICE9IG51bGwp CisrICAgICAgICAgICAgbV9saXN0X2JveC51bnNlbGVjdF9yb3cocm93KTsKKysgICAgICAgIGlm IChtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA+PSAwKSB7CisrICAgICAgICAgICAgcm93ID0gbV9s aXN0X2JveC5nZXRfcm93X2F0X2luZGV4KG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4KTsKKysgICAg ICAgICAgICBtX2xpc3RfYm94LnNlbGVjdF9yb3cocm93KTsKKysgICAgICAgIH0gZWxzZSB7Cisr ICAgICAgICAgICAgcm93ID0gbV9saXN0X2JveC5nZXRfcm93X2F0X2luZGV4KDApOworKyAgICAg ICAgfQorKyAgICAgICAgR3RrLkFsbG9jYXRpb24gYWxsb2MgPSB7IDAsIDAsIDAsIDAgfTsKKysg ICAgICAgIHJvdy5nZXRfYWxsb2NhdGlvbihvdXQgYWxsb2MpOworKyAgICAgICAgdmFyIGFkanVz dG1lbnQgPSBtX3Njcm9sbGVkX3dpbmRvdy5nZXRfdmFkanVzdG1lbnQoKTsKKysgICAgICAgIGFk anVzdG1lbnQuY2xhbXBfcGFnZShhbGxvYy55LCBhbGxvYy55ICsgYWxsb2MuaGVpZ2h0KTsKKysg ICAgICAgIHJldHVybiB0cnVlOworICAgICB9CisgCisgCitAQCAtMTIxMSw3ICsxNTg1LDcgQEAg Y2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgICAg ICAgICBrZXl2YWwgPSBHZGsuS2V5LlVwOworICAgICAgICAgICAgIGVsc2UgaWYgKGtleXZhbCA9 PSBHZGsuS2V5LlJpZ2h0KQorICAgICAgICAgICAgICAgICBrZXl2YWwgPSBHZGsuS2V5LkRvd247 CistICAgICAgICAgICAgY2F0ZWdvcnlfbGlzdF9jdXJzb3JfbW92ZShrZXl2YWwpOworKyAgICAg ICAgICAgIHJldHVybiBjYXRlZ29yeV9saXN0X2N1cnNvcl9tb3ZlKGtleXZhbCk7CisgICAgICAg ICB9CisgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQorQEAgLTEyMjcsNyArMTYwMSw3IEBA IGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgICAg ICBlbHNlIGlmIChrZXl2YWwgPT0gR2RrLktleS5VcCkKKyAgICAgICAgICAgICAgICAgY2FuZGlk YXRlX3BhbmVsX2N1cnNvcl91cCgpOworICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICBj YXRlZ29yeV9saXN0X2N1cnNvcl9tb3ZlKGtleXZhbCk7CisrICAgICAgICAgICAgcmV0dXJuIGNh dGVnb3J5X2xpc3RfY3Vyc29yX21vdmUoa2V5dmFsKTsKKyAgICAgICAgIH0KKyAgICAgICAgIHJl dHVybiB0cnVlOworICAgICB9CitAQCAtMTI2MiwxMiArMTYzNiwyNSBAQCBjbGFzcyBJQnVzRW1v amllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg IH0KKysgICAgICAgIGlmICghbV9jYW5kaWRhdGVfcGFuZWxfaXNfdmlzaWJsZSkKKysgICAgICAg ICAgICByZXR1cm4gY2F0ZWdvcnlfbGlzdF9jdXJzb3JfbW92ZShrZXl2YWwpOworICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICB9CisgCisgCisgICAgIHByaXZhdGUgYm9vbCBrZXlfcHJlc3Nf ZXNjYXBlKCkgeworLSAgICAgICAgaWYgKG1fYmFja3dhcmRfaW5kZXggPj0gMCAmJiBtX2JhY2t3 YXJkICE9IG51bGwpIHsKKysgICAgICAgIGlmIChtX3Nob3dfdW5pY29kZSkgeworKyAgICAgICAg ICAgIGlmIChtX2NhbmRpZGF0ZV9wYW5lbF9pc192aXNpYmxlKSB7CisrICAgICAgICAgICAgICAg IG1fY2FuZGlkYXRlX3BhbmVsX2lzX3Zpc2libGUgPSBmYWxzZTsKKysgICAgICAgICAgICAgICAg c2hvd191bmljb2RlX2Jsb2NrcygpOworKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKysg ICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICBtX3Nob3dfdW5pY29kZSA9IGZh bHNlOworKyAgICAgICAgICAgICAgICBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9IC0xOworKyAg ICAgICAgICAgICAgICBoaWRlX2NhbmRpZGF0ZV9wYW5lbCgpOworKyAgICAgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9IGVsc2UgaWYgKG1fYmFja3dh cmRfaW5kZXggPj0gMCAmJiBtX2JhY2t3YXJkICE9IG51bGwpIHsKKyAgICAgICAgICAgICBzaG93 X2Vtb2ppX2Zvcl9jYXRlZ29yeShtX2JhY2t3YXJkKTsKKyAgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgICAgIH0gZWxzZSBpZiAobV9jYW5kaWRhdGVfcGFuZWxfaXNfdmlzaWJsZSkgewor QEAgLTEyODcsMTAgKzE2NzQsMTMgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRp b25XaW5kb3cgeworICAgICAgICAgaWYgKG1fY2FuZGlkYXRlX3BhbmVsX2lzX3Zpc2libGUpIHsK KyAgICAgICAgICAgICB1aW50IGluZGV4ID0gbV9sb29rdXBfdGFibGUuZ2V0X2N1cnNvcl9wb3Mo KTsKKyAgICAgICAgICAgICBjYW5kaWRhdGVfcGFuZWxfc2VsZWN0X2luZGV4KGluZGV4KTsKKy0g ICAgICAgIH0gZWxzZSBpZiAobV9jYXRlZ29yeV9hY3RpdmVfaW5kZXggPiAwKSB7CisrICAgICAg ICB9IGVsc2UgaWYgKG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ID49IDApIHsKKyAgICAgICAgICAg ICBHdGsuTGlzdEJveFJvdyBndGtyb3cgPSBtX2xpc3RfYm94LmdldF9zZWxlY3RlZF9yb3coKTsK KyAgICAgICAgICAgICBFQm94Um93IHJvdyA9IGd0a3JvdyBhcyBFQm94Um93OworLSAgICAgICAg ICAgIHNob3dfZW1vamlfZm9yX2NhdGVnb3J5KHJvdy50ZXh0KTsKKysgICAgICAgICAgICBpZiAo bV9zaG93X3VuaWNvZGUpCisrICAgICAgICAgICAgICAgIHNob3dfdW5pY29kZV9mb3JfYmxvY2so cm93LnRleHQpOworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgc2hvd19lbW9q aV9mb3JfY2F0ZWdvcnkocm93LnRleHQpOworICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgIH0KK0BAIC0xMzgwLDYgKzE3NzAsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0 ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICBtX2NhbmRpZGF0ZV9wYW5lbF9pc192aXNp YmxlID0gZmFsc2U7CisgICAgICAgICBtX3Jlc3VsdCA9IG51bGw7CisgICAgICAgICBtX2VudGVy X25vdGlmeV9lbmFibGUgPSB0cnVlOworKyAgICAgICAgbV9zaG93X3VuaWNvZGUgPSBmYWxzZTsK KyAKKyAgICAgICAgIC8qIExldCBndGsgcmVjYWxjdWxhdGUgdGhlIHdpbmRvdyBzaXplLiAqLwor ICAgICAgICAgcmVzaXplKDEsIDEpOworQEAgLTEzOTksOCArMTc5MCw5IEBAIGNsYXNzIElCdXNF bW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgICAqIHByZXZlbnRpb24g bG9naWM6CisgICAgICAgICAgKiBodHRwczovL21haWwuZ25vbWUub3JnL2FyY2hpdmVzL2d0ay1k ZXZlbC1saXN0LzIwMTctTWF5L21zZzAwMDI2Lmh0bWwKKyAgICAgICAgICAqLworLSAgICAgICAg dWludDMyIHRpbWVzdGFtcCA9IGV2ZW50LmdldF90aW1lKCk7CistICAgICAgICBwcmVzZW50X3dp dGhfdGltZSh0aW1lc3RhbXApOworKyAgICAgICAgLy91aW50MzIgdGltZXN0YW1wID0gZXZlbnQu Z2V0X3RpbWUoKTsKKysgICAgICAgIC8vcHJlc2VudF93aXRoX3RpbWUodGltZXN0YW1wKTsKKysg ICAgICAgIHByZXNlbnRfY2VudHJhbGl6ZShldmVudCk7CisgCisgICAgICAgICBHZGsuRGV2aWNl IHBvaW50ZXI7CisgI2lmIFZBTEFfMF8zNAorQEAgLTE2NDYsMTggKzIwMzgsMjQgQEAgY2xhc3Mg SUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgR3RrLkFsbG9j YXRpb24gYWxsb2NhdGlvbjsKKyAgICAgICAgIGdldF9hbGxvY2F0aW9uKG91dCBhbGxvY2F0aW9u KTsKKyAgICAgICAgIEdkay5SZWN0YW5nbGUgbW9uaXRvcl9hcmVhOworKyAgICAgICAgR2RrLlJl Y3RhbmdsZSB3b3JrX2FyZWE7CisgI2lmIFZBTEFfMF8zNAorICAgICAgICAgR2RrLkRpc3BsYXkg ZGlzcGxheSA9IEdkay5EaXNwbGF5LmdldF9kZWZhdWx0KCk7CisgICAgICAgICBHZGsuTW9uaXRv ciBtb25pdG9yID0gZGlzcGxheS5nZXRfbW9uaXRvcl9hdF93aW5kb3codGhpcy5nZXRfd2luZG93 KCkpOworICAgICAgICAgbW9uaXRvcl9hcmVhID0gbW9uaXRvci5nZXRfZ2VvbWV0cnkoKTsKKysg ICAgICAgIHdvcmtfYXJlYSA9IG1vbml0b3IuZ2V0X3dvcmthcmVhKCk7CisgI2Vsc2UKKyAgICAg ICAgIEdkay5TY3JlZW4gc2NyZWVuID0gR2RrLlNjcmVlbi5nZXRfZGVmYXVsdCgpOworICAgICAg ICAgaW50IG1vbml0b3JfbnVtID0gc2NyZWVuLmdldF9tb25pdG9yX2F0X3dpbmRvdyh0aGlzLmdl dF93aW5kb3coKSk7CisgICAgICAgICBzY3JlZW4uZ2V0X21vbml0b3JfZ2VvbWV0cnkobW9uaXRv cl9udW0sIG91dCBtb25pdG9yX2FyZWEpOworKyAgICAgICAgd29ya19hcmVhID0gc2NyZWVuLmdl dF9tb25pdG9yX3dvcmthcmVhKG1vbml0b3JfbnVtKTsKKyAjZW5kaWYKKyAgICAgICAgIGludCB4 ID0gKG1vbml0b3JfYXJlYS54ICsgbW9uaXRvcl9hcmVhLndpZHRoIC0gYWxsb2NhdGlvbi53aWR0 aCkvMjsKKyAgICAgICAgIGludCB5ID0gKG1vbml0b3JfYXJlYS55ICsgbW9uaXRvcl9hcmVhLmhl aWdodAorICAgICAgICAgICAgICAgICAgLSBhbGxvY2F0aW9uLmhlaWdodCkvMjsKKysgICAgICAg IC8vIERvIG5vdCBoaWRlIGEgYm90dG9tIHBhbmVsIGluIFhGQ0U0CisrICAgICAgICBpZiAod29y a19hcmVhLnkgPCB5KQorKyAgICAgICAgICAgIHkgPSB3b3JrX2FyZWEueTsKKyAgICAgICAgIG1v dmUoeCwgeSk7CisgCisgICAgICAgICB1aW50MzIgdGltZXN0YW1wID0gZXZlbnQuZ2V0X3RpbWUo KTsKK0BAIC0xNzIzLDcgKzIxMjEsNiBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNh dGlvbldpbmRvdyB7CisgICAgICAgICAgICAgc3RyaW5nPyBmYXZvcml0ZSA9IHVub3duZWRfZmF2 b3JpdGVzW2ldOworICAgICAgICAgICAgIC8vIEF2b2lkIGdzZXR0aW5nIHZhbHVlIGVycm9yIGJ5 IG1hbnVhbCBzZXR0aW5nCisgICAgICAgICAgICAgR0xpYi5yZXR1cm5faWZfZmFpbChmYXZvcml0 ZSAhPSBudWxsKTsKKy0gICAgICAgICAgICBHTGliLnJldHVybl9pZl9mYWlsKGZhdm9yaXRlICE9 ICIiKTsKKyAgICAgICAgICAgICBtX2Zhdm9yaXRlcyArPSBmYXZvcml0ZTsKKyAgICAgICAgIH0K KyAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB1bm93bmVkX2Zhdm9yaXRlX2Fubm90YXRpb25z Lmxlbmd0aDsgaSsrKSB7CitAQCAtMTczMyw0ICsyMTMwLDE5IEBAIGNsYXNzIElCdXNFbW9qaWVy IDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgIH0KKyAgICAgICAgIHVwZGF0ZV9m YXZvcml0ZV9lbW9qaV9kaWN0KCk7CisgICAgIH0KKysKKysKKysgICAgcHJpdmF0ZSBzdGF0aWMg R0xpYi5PYmplY3QgZ2V0X2xvYWRfcHJvZ3Jlc3Nfb2JqZWN0KCkgeworKyAgICAgICAgICAgIGlm IChtX3VuaWNvZGVfcHJvZ3Jlc3Nfb2JqZWN0ID09IG51bGwpCisrICAgICAgICAgICAgICAgIG1f dW5pY29kZV9wcm9ncmVzc19vYmplY3QgPSBuZXcgTG9hZFByb2dyZXNzT2JqZWN0KCk7CisrICAg ICAgICAgICAgcmV0dXJuIG1fdW5pY29kZV9wcm9ncmVzc19vYmplY3QgYXMgR0xpYi5PYmplY3Q7 CisrICAgIH0KKysKKysKKysgICAgcHVibGljIHN0YXRpYyB2b2lkIGxvYWRfdW5pY29kZV9kaWN0 KCkgeworKyAgICAgICAgaWYgKG1fdW5pY29kZV9ibG9ja19saXN0Lmxlbmd0aCgpID09IDApCisr ICAgICAgICAgICAgbWFrZV91bmljb2RlX2Jsb2NrX2RpY3QoKTsKKysgICAgICAgIGlmIChtX25h bWVfdG9fdW5pY29kZXNfZGljdC5zaXplKCkgPT0gMCkKKysgICAgICAgICAgICBtYWtlX3VuaWNv ZGVfbmFtZV9kaWN0KElCdXNFbW9qaWVyLmdldF9sb2FkX3Byb2dyZXNzX29iamVjdCgpKTsKKysg ICAgfQorIH0KK2RpZmYgLS1naXQgYS91aS9ndGszL2Vtb2ppZXJhcHAudmFsYSBiL3VpL2d0azMv ZW1vamllcmFwcC52YWxhCitpbmRleCA2NjE1ZjIyYi4uZDgxNjM1MmUgMTAwNjQ0CistLS0gYS91 aS9ndGszL2Vtb2ppZXJhcHAudmFsYQorKysrIGIvdWkvZ3RrMy9lbW9qaWVyYXBwLnZhbGEKK0BA IC0xNzYsNiArMTc2LDggQEAgcHVibGljIGNsYXNzIEVtb2ppQXBwbGljYXRpb24gOiBBcHBsaWNh dGlvbiB7CisgICAgICAgICAgICAgICAgIG1fc2V0dGluZ3NfZW1vamkuZ2V0X3N0cnYoImZhdm9y aXRlcyIpLAorICAgICAgICAgICAgICAgICBtX3NldHRpbmdzX2Vtb2ppLmdldF9zdHJ2KCJmYXZv cml0ZS1hbm5vdGF0aW9ucyIpKTsKKyAKKysgICAgICAgIElCdXNFbW9qaWVyLmxvYWRfdW5pY29k ZV9kaWN0KCk7CisrCisgICAgICAgICBhY3RpdmF0ZV9kaWFsb2coY29tbWFuZF9saW5lKTsKKyAK KyAgICAgICAgIHJldHVybiBQb3NpeC5FWElUX1NVQ0NFU1M7CitkaWZmIC0tZ2l0IGEvdWkvZ3Rr My9pYnVzZW1vamlkaWFsb2cuaCBiL3VpL2d0azMvaWJ1c2Vtb2ppZGlhbG9nLmgKK2luZGV4IGVk ODg4NmE4Li4zYjQyMGIyMSAxMDA2NDQKKy0tLSBhL3VpL2d0azMvaWJ1c2Vtb2ppZGlhbG9nLmgK KysrKyBiL3VpL2d0azMvaWJ1c2Vtb2ppZGlhbG9nLmgKK0BAIC0xLDcgKzEsNyBAQAorIC8qIC0q LSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0g Ki8KKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKKy0g KiBDb3B5cmlnaHQgKEMpIDIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDE3IFJlZCBIYXQsIElu Yy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKK0BAIC0xOTYsNSArMTk2LDEyIEBAIHZvaWQgICAgICAgICAgaWJ1 c19lbW9qaWVyX3NldF9wYXJ0aWFsX21hdGNoX2xlbmd0aAorICAqLworIHZvaWQgICAgICAgICAg aWJ1c19lbW9qaWVyX3NldF9wYXJ0aWFsX21hdGNoX2NvbmRpdGlvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdpbnQgICAgICAgICBjb25kaXRp b24pOworKy8qKgorKyAqIGlidXNfZW1vamllcl9sb2FkX3VuaWNvZGVfZGljdDoKKysgKgorKyAq IExvYWQgdGhlIGRpY3Rpb25hcnkgb2YgI0lCdXNVbmljb2RlRGF0YS4KKysgKi8KKyt2b2lkICAg ICAgICAgIGlidXNfZW1vamllcl9sb2FkX3VuaWNvZGVfZGljdCAgICAgICh2b2lkKTsKKysKKyBH X0VORF9ERUNMUworICNlbmRpZgorZGlmZiAtLWdpdCBhL3VpL2d0azMvcGFuZWwudmFsYSBiL3Vp L2d0azMvcGFuZWwudmFsYQoraW5kZXggNGYwMzJmNmYuLmJjYjNlZDc1IDEwMDY0NAorLS0tIGEv dWkvZ3RrMy9wYW5lbC52YWxhCisrKysgYi91aS9ndGszL3BhbmVsLnZhbGEKK0BAIC0zLDcgKzMs NyBAQAorICAqIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICoKKyAgKiBDb3B5cmlnaHQoYykgMjAx MS0yMDE0IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdo dChjKSAyMDE1LTIwMTcgVGFrYW8gRnVqd2lhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ CisrICogQ29weXJpZ2h0KGMpIDIwMTUtMjAxOCBUYWthbyBGdWp3aWFyYSA8dGFrYW8uZnVqaXdh cmExQGdtYWlsLmNvbT4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtODcxLDYgKzg3MSw3IEBA IGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgeworICAgICAgICAgICAgIElCdXNFbW9q aWVyLnNldF9hbm5vdGF0aW9uX2xhbmcoCisgICAgICAgICAgICAgICAgICAgICBtX3NldHRpbmdz X2Vtb2ppLmdldF9zdHJpbmcoImxhbmciKSk7CisgICAgICAgICAgICAgbV9lbW9qaWVyX3NldF9l bW9qaV9sYW5nX2lkID0gMDsKKysgICAgICAgICAgICBJQnVzRW1vamllci5sb2FkX3VuaWNvZGVf ZGljdCgpOworICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgIH0pOworICAgICB9 CistLSAKKzIuMTQuMworCitGcm9tIDRjZmQ1YWQ3YzZkMDcxY2ZlZjZjN2Q2NzhjYzAyN2VhNDgw YjhmYzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDYgRmViIDIwMTggMTE6MDI6MDkgKzA5MDAK K1N1YmplY3Q6IFtQQVRDSF0gRml4IHR5cG8gaW4gaWJ1c3VuaWNvZGUuYworCitSZXZpZXcgVVJM OiBodHRwczovL2NvZGVyZXZpZXcuYXBwc3BvdC5jb20vMzQwNzQwMDQzCistLS0KKyBzcmMvaWJ1 c3VuaWNvZGUuYyAgICB8IDUgKysrLS0KKyB1aS9ndGszL2Vtb2ppZXIudmFsYSB8IDQgLS0tLQor IDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvc3JjL2lidXN1bmljb2RlLmMgYi9zcmMvaWJ1c3VuaWNvZGUuYworaW5kZXggODU1 OTgxOWQuLmFhYzljMTM1IDEwMDY0NAorLS0tIGEvc3JjL2lidXN1bmljb2RlLmMKKysrKyBiL3Ny Yy9pYnVzdW5pY29kZS5jCitAQCAtNDEyLDcgKzQxMiw4IEBAIGlidXNfdW5pY29kZV9kYXRhX2xp c3RfZGVzZXJpYWxpemUgKEdWYXJpYW50ICp2YXJpYW50LAorICAgICAgICAgICAgICAgICBJQlVT X1VOSUNPREVfREVTRVJJQUxJWkVfU0lHTkFMTF9TVFIsCisgICAgICAgICAgICAgICAgIEdfT0JK RUNUX1RZUEUgKHNvdXJjZV9vYmplY3QpKTsKKyAgICAgICAgIGlmICghaGFzX3NpZ25hbCkgewor LSAgICAgICAgICAgIGNvbnN0IGdjaGFyIHR5cGVfbmFtZSA9IGdfdHlwZV9uYW1lIChzb3VyY2Vf b2JqZWN0KTsKKysgICAgICAgICAgICBjb25zdCBnY2hhciAqdHlwZV9uYW1lID0KKysgICAgICAg ICAgICAgICAgICAgIGdfdHlwZV9uYW1lIChHX09CSkVDVF9UWVBFIChzb3VyY2Vfb2JqZWN0KSk7 CisgICAgICAgICAgICAgZ193YXJuaW5nICgiR09iamVjdCAlcyBkb2VzIG5vdCBoYXZlIHRoZSBz aWduYWwgXCIlc1wiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfbmFtZSA/IHR5cGVf bmFtZSA6ICIobnVsbCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19VTklDT0RFX0RF U0VSSUFMSVpFX1NJR05BTExfU1RSKTsKK0BAIC02NzcsNyArNjc4LDcgQEAgaWJ1c191bmljb2Rl X2Jsb2NrX2NsYXNzX2luaXQgKElCdXNVbmljb2RlQmxvY2tDbGFzcyAqY2xhc3MpCisgICAgIEdP YmplY3RDbGFzcyAqZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChjbGFzcyk7CisgICAg IElCdXNTZXJpYWxpemFibGVDbGFzcyAqc2VyaWFsaXphYmxlX2NsYXNzID0gSUJVU19TRVJJQUxJ WkFCTEVfQ0xBU1MgKGNsYXNzKTsKKyAKKy0gICAgb2JqZWN0X2NsYXNzLT5kZXN0cm95ID0gKElC dXNPYmplY3REZXN0cm95RnVuYykgaWJ1c191bmljb2RlX2RhdGFfZGVzdHJveTsKKysgICAgb2Jq ZWN0X2NsYXNzLT5kZXN0cm95ID0gKElCdXNPYmplY3REZXN0cm95RnVuYykgaWJ1c191bmljb2Rl X2Jsb2NrX2Rlc3Ryb3k7CisgICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9CisgICAg ICAgICAgICAgKEdPYmplY3RTZXRQcm9wZXJ0eUZ1bmMpIGlidXNfdW5pY29kZV9ibG9ja19zZXRf cHJvcGVydHk7CisgICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9CitkaWZmIC0tZ2l0 IGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEgYi91aS9ndGszL2Vtb2ppZXIudmFsYQoraW5kZXggNTU1 ZWE2OGYuLjBiZjM0ZGE4IDEwMDY0NAorLS0tIGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKKysrKyBi L3VpL2d0azMvZW1vamllci52YWxhCitAQCAtMTM3Myw4ICsxMzczLDYgQEAgcHVibGljIGNsYXNz IElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgICAgICAgICAg ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAvLyBUT0RPOiBQcm92aWRlIGEgY3VzdG9tIGRlc2NyaXB0aW9uIGFuZCBhbm5vdGF0aW9u IGZvcgorLSAgICAgICAgICAgIC8vIHRoZSBmYXZvcml0ZSBlbW9qaXMuCisgICAgICAgICAgICAg RVBhZGRlZExhYmVsQm94IHdpZGdldCA9IG5ldyBFUGFkZGVkTGFiZWxCb3goCisgICAgICAgICAg ICAgICAgICAgICAgICAgXygiRGVzY3JpcHRpb246ICVzIikucHJpbnRmKF8oIk5vbmUiKSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgR3RrLkFsaWduLlNUQVJUKTsKK0BAIC0xNzkwLDggKzE3 ODgsNiBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cg eworICAgICAgICAgICogcHJldmVudGlvbiBsb2dpYzoKKyAgICAgICAgICAqIGh0dHBzOi8vbWFp bC5nbm9tZS5vcmcvYXJjaGl2ZXMvZ3RrLWRldmVsLWxpc3QvMjAxNy1NYXkvbXNnMDAwMjYuaHRt bAorICAgICAgICAgICovCistICAgICAgICAvL3VpbnQzMiB0aW1lc3RhbXAgPSBldmVudC5nZXRf dGltZSgpOworLSAgICAgICAgLy9wcmVzZW50X3dpdGhfdGltZSh0aW1lc3RhbXApOworICAgICAg ICAgcHJlc2VudF9jZW50cmFsaXplKGV2ZW50KTsKKyAKKyAgICAgICAgIEdkay5EZXZpY2UgcG9p bnRlcjsKKy0tIAorMi4xNC4zCisKCmRpZmYgLS1naXQgYS9pYnVzLXh4LWVtb2ppLWhhcmZidXp6 LnBhdGNoIGIvaWJ1cy14eC1lbW9qaS1oYXJmYnV6ei5wYXRjaAppbmRleCAzOTIxYzNlLi44OWEz N2IxIDEwMDY0NAotLS0gYS9pYnVzLXh4LWVtb2ppLWhhcmZidXp6LnBhdGNoCisrKyBiL2lidXMt eHgtZW1vamktaGFyZmJ1enoucGF0Y2gKQEAgLTEsMTQgKzEsMTYgQEAKLUZyb20gMWUzNThmMjhh MmIzNjc0Mzg0NzU4NDY3MWVmNTMzNzY5MDM2YjQwZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb20gYzZjMWU4ZWEwMWM4NDY2ZGM5N2Q3NTQ5ZTc3NTM4ZTJkN2VjODcyYSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKIEZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLURhdGU6IFN1biwgMjIgT2N0IDIwMTcgMTA6NDU6MzMgKzA5MDAKK0RhdGU6IE1vbiwgMjkg SmFuIDIwMTggMTg6Mjc6MDkgKzA5MDAKIFN1YmplY3Q6IFtQQVRDSF0gSW50ZWdyYXRlIGN1c3Rv bSByZW5kZXJpbmcgdG8gdXNlIEhhcmZCdXp6IGdseXBoIGluZm8KIAogSUJ1c0ZvbnRTZXQgb2Zm ZXJzIEZjRm9udFNldCwgZ2x5cGggaW5mbyB3aXRoIEhhcmZCdXp6IGFuZCByZW5kZXJpbmcKIG9u IENhaXJvIGNvbnRleHQuCi1DdXJyZW50IFBhbmdvIGNoYW5nZXMgZm9udHMgYnkgZW1vamkgdmFy aWFudHMgYW5kIGRyYXdzIHRoZSBzZXBhcmF0ZWQKLWdseXBocyBbMV0gYnV0IGFjdHVhbGx5IHRo ZSBlbW9qaSBjaGFyYWN0ZXJzIHdpdGggdmFyaWFudHMgY2FuIGJlIGRyYXduCi1hcyBvbmUgZ2x5 cGggc28gdGhpcyBjbGFzcyAgbWFuYWdlcyBGb250Y29uZmlnIGZvbnRzZXRzIHRvIHNlbGVjdCBh IGZvbnQsCi1IYXJmQnV6eiB0byBnZXQgZ2x5cGhzIGZvciBlbW9qaSB2YXJpYW50cywgQ2Fpcm8g dG8gZHJhdyBnbHlwaHMuCitOb3cgdGhlIG1vc3QgaXNzdWVzIGluIFBhbmdvIHdlcmUgZml4ZWQg YW5kIEkgYXBwcmVjaWF0ZSB0aGUgY2hhbmdlcyBbMV0uCitIb3dldmVyIHRoZSBsYXRlc3QgY2hh bmdlcyBpbiBQYW5nbywgRm9udGNvbmZpZyBwcmV2ZW50IHVzZXJzIGZyb20KK3NldHRpbmcgZW1v amkgZm9udHMgd2l0aCBHdGtGb250Q2hvb3Nlci4KK1RoaXMgcGF0Y2ggY2FuIGVuYWJsZSB0aGUg c2VsZWN0ZWQgZW1vamkgZm9udCB0byBkcmF3IGVtb2ppIGNoYXJzCitvbiBFbW9qaWVyLgorSXQn cyB1bmRlciB0aGUgY29uc2lkZXJhdGlvbnMgaWYgdGhlIGZvbnQgc2V0dGluZyBpcyBkZWxldGVk IGZyb20gaWJ1cy1zZXR1cC4KIE5lZWQgY29uZmlndXJlIC0tZW5hYmxlLWhhcmZidXp6LWZvci1l bW9qaSBvcHRpb24gdG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4KIAogWzFdOiBodHRwczovL2J1Z3pp bGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwNjY5CkBAIC0xOSwxMCArMjEsMTAgQEAg TmVlZCBjb25maWd1cmUgLS1lbmFibGUtaGFyZmJ1enotZm9yLWVtb2ppIG9wdGlvbiB0byBlbmFi bGUgdGhpcyBmZWF0dXJlLgogIGJpbmRpbmdzL3ZhbGEvaWJ1cy1mb250c2V0LTEuMC5kZXBzICAg IHwgICAgMSArCiAgY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI5 ICsKICB1aS9ndGszL01ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgICB8ICAgMzIgKwotIHVp L2d0azMvZW1vamllci52YWxhICAgICAgICAgICAgICAgICAgIHwgIDEwMCArKystCisgdWkvZ3Rr My9lbW9qaWVyLnZhbGEgICAgICAgICAgICAgICAgICAgfCAgMTExICsrKysKICB1aS9ndGszL2li dXNmb250c2V0LmMgICAgICAgICAgICAgICAgICB8IDEwMzAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKICB1aS9ndGszL2lidXNmb250c2V0LmggICAgICAgICAgICAgICAgICB8ICAz MDIgKysrKysrKysrKwotIDggZmlsZXMgY2hhbmdlZCwgMTU3NiBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQorIDggZmlsZXMgY2hhbmdlZCwgMTU4OSBpbnNlcnRpb25zKCspCiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGJpbmRpbmdzL3ZhbGEvSUJ1c0ZvbnRTZXQtMS4wLm1ldGFkYXRhCiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGJpbmRpbmdzL3ZhbGEvaWJ1cy1mb250c2V0LTEuMC5kZXBzCiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHVpL2d0azMvaWJ1c2ZvbnRzZXQuYwpAQCAtMTUzLDExICsxNTUsMTEg QEAgaW5kZXggMDAwMDAwMDAuLjEyOWZlMTY2CiBAQCAtMCwwICsxIEBACiArY2Fpcm8KIGRpZmYg LS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDE0NTU2YTNhLi42ZmY4 ZjRhOSAxMDA2NDQKK2luZGV4IGJkNDEwNjliLi4yNDMzOTZmZiAxMDA2NDQKIC0tLSBhL2NvbmZp Z3VyZS5hYwogKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNjUzLDYgKzY1MywzNCBAQCBodHRwczov L2dpdGh1Yi5jb20vZnVqaXdhcmF0L2NsZHItZW1vamktYW5ub3RhdGlvbikKLSAgICAgZW5hYmxl X2Vtb2ppX2RpY3Q9InllcyAoZW5hYmxlZCwgdXNlIC0tZGlzYWJsZS1lbW9qaS1kaWN0IHRvIGRp c2FibGUpIgorQEAgLTY4OCw2ICs2ODgsMzQgQEAgdGhlIFVDRCBmaWxlcyBmcm9tIGh0dHBzOi8v d3d3LnVuaWNvZGUub3JnL1B1YmxpYy9VTklEQVRBLykKKyAgICAgZW5hYmxlX3VuaWNvZGVfZGlj dD0ieWVzIChlbmFibGVkLCB1c2UgLS1kaXNhYmxlLXVuaWNvZGUtZGljdCB0byBkaXNhYmxlKSIK ICBmaQogIAogK0FDX0FSR19FTkFCTEUoaGFyZmJ1enotZm9yLWVtb2ppLApAQCAtMTkxLDEwICsx OTMsMTAgQEAgaW5kZXggMTQ1NTZhM2EuLjZmZjhmNGE5IDEwMDY0NAogICMgQ2hlY2sgaXNvLWNv ZGVzLgogIFBLR19DSEVDS19NT0RVTEVTKElTT0NPREVTLCBbCiAgICAgIGlzby1jb2RlcwotQEAg LTc0Myw2ICs3NzEsNyBAQCBCdWlsZCBvcHRpb25zOgotICAgRW5hYmxlIEVtb2ppIGRpY3QgICAg ICAgICAgICAgJGVuYWJsZV9lbW9qaV9kaWN0Ci0gICBVbmljb2RlIEVtb2ppIGRpcmVjdG9yeSAg ICAgICAkVU5JQ09ERV9FTU9KSV9ESVIKK0BAIC03ODAsNiArODA4LDcgQEAgQnVpbGQgb3B0aW9u czoKICAgIENMRFIgYW5ub3RhdGlvbiBkaXJlY3RvcnkgICAgICRFTU9KSV9BTk5PVEFUSU9OX0RJ UgorICAgRW5hYmxlIFVuaWNvZGUgZGljdCAgICAgICAgICAgJGVuYWJsZV91bmljb2RlX2RpY3QK KyAgIFVDRCBkaXJlY3RvcnkgICAgICAgICAgICAgICAgICRVQ0RfRElSCiArICBFbmFibGUgSGFy ZkJ1enogZm9yIEVtb2ppICAgICAkZW5hYmxlX2hhcmZidXp6X2Zvcl9lbW9qaQogICAgUnVuIHRl c3QgY2FzZXMgICAgICAgICAgICAgICAgJGVuYWJsZV90ZXN0cwogIF0pCkBAIC0yNTAsMjIgKzI1 MiwyNiBAQCBpbmRleCA3ODZiODBlNi4uY2QxZTljMmMgMTAwNjQ0CiAgbWFuX3NldmVuX0RBVEEg PSQobWFuX3NldmVuX2ZpbGVzOi43PS43Lmd6KQogIG1hbl9zZXZlbmRpciA9ICQobWFuZGlyKS9t YW43CiBkaWZmIC0tZ2l0IGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEgYi91aS9ndGszL2Vtb2ppZXIu dmFsYQotaW5kZXggZjNlOWYxNWMuLjU4YTI2ZGQ2IDEwMDY0NAoraW5kZXggNTU1ZWE2OGYuLjBh NzAzMzgzIDEwMDY0NAogLS0tIGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKICsrKyBiL3VpL2d0azMv ZW1vamllci52YWxhCi1AQCAtOTksNiArOTksOSBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5B cHBsaWNhdGlvbldpbmRvdyB7CitAQCAtOTksMTYgKzk5LDEwMyBAQCBwdWJsaWMgY2xhc3MgSUJ1 c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewogICAgICAgICAgfQogICAgICB9CiAg ICAgIHByaXZhdGUgY2xhc3MgRVdoaXRlTGFiZWwgOiBHdGsuTGFiZWwgewogKyNpZiBFTkFCTEVf SEFSRkJVWlpfRk9SX0VNT0pJCi0rICAgICAgICBJQnVzLlJlcXVpc2l0aW9uRXggbV9yZXF1aXNp dGlvbjsKKysgICAgICAgIHByaXZhdGUgSUJ1cy5SZXF1aXNpdGlvbkV4IG1fcmVxdWlzaXRpb247 CisrI2Vsc2UKKyAgICAgICAgIHByaXZhdGUgaW50IG1fbWluaW11bV93aWR0aCA9IDA7CisgICAg ICAgICBwcml2YXRlIGludCBtX25hdHVyYWxfd2lkdGggPSAwOworICAgICAgICAgcHJpdmF0ZSBp bnQgbV9taW5pbXVtX2hlaWdodCA9IDA7CisgICAgICAgICBwcml2YXRlIGludCBtX25hdHVyYWxf aGVpZ2h0ID0gMDsKICsjZW5kaWYKICAgICAgICAgIHB1YmxpYyBFV2hpdGVMYWJlbChzdHJpbmcg dGV4dCkgewogICAgICAgICAgICAgIEdMaWIuT2JqZWN0KAogICAgICAgICAgICAgICAgICBuYW1l IDogIklCdXNFbW9qaWVyV2hpdGVMYWJlbCIKLUBAIC0xMDYsOCArMTA5LDc4IEBAIGNsYXNzIElC dXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKLSAgICAgICAgICAgICBpZiAodGV4 dCAhPSAiIikKLSAgICAgICAgICAgICAgICAgc2V0X2xhYmVsKHRleHQpOworICAgICAgICAgICAg ICk7CisgICAgICAgICAgICAgc2V0X2xhYmVsKHRleHQpOwogICAgICAgICAgfQogKyNpZiBFTkFC TEVfSEFSRkJVWlpfRk9SX0VNT0pJCiArICAgICAgICBwcml2YXRlIHZvaWQgZ2V0X3ByZWZlcnJl ZF9zaXplX3dpdGhfaGIob3V0IGludCBtaW5pbXVtX3dpZHRoLApAQCAtMjc3LDcgKzI4Myw4IEBA IGluZGV4IGYzZTlmMTVjLi41OGEyNmRkNiAxMDA2NDQKICsgICAgICAgICAgICBtaW5pbXVtX2hl aWdodCA9IDA7CiArICAgICAgICAgICAgbmF0dXJhbF9oZWlnaHQgPSAwOwogKyAgICAgICAgICAg IHZhciB0ZXh0ID0gdGhpcy5nZXRfdGV4dCgpOwotKyAgICAgICAgICAgIGlmICh0ZXh0ID09IG51 bGwgfHwgdGV4dCA9PSAiIikKKysgICAgICAgICAgICBHTGliLnJldHVybl9pZl9mYWlsICh0ZXh0 ICE9IG51bGwpOworKyAgICAgICAgICAgIGlmICh0ZXh0ID09ICIiKQogKyAgICAgICAgICAgICAg ICByZXR1cm47CiArICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLmdldF9wYW5nb19jb250 ZXh0KCk7CiArICAgICAgICAgICAgdmFyIGxhbmd1YWdlID0gY29udGV4dC5nZXRfbGFuZ3VhZ2Uo KTsKQEAgLTI4OCw2ICsyOTUsMTggQEAgaW5kZXggZjNlOWYxNWMuLjU4YTI2ZGQ2IDEwMDY0NAog KyAgICAgICAgICAgIG5hdHVyYWxfd2lkdGggPSB3aWRlc3Qud2lkdGg7CiArICAgICAgICAgICAg bWluaW11bV9oZWlnaHQgPSB3aWRlc3QuaGVpZ2h0OwogKyAgICAgICAgICAgIG5hdHVyYWxfaGVp Z2h0ID0gd2lkZXN0LmhlaWdodDsKKysgICAgICAgICAgICBpZiAobWluaW11bV93aWR0aCA8PSBt aW5pbXVtX2hlaWdodCkKKysgICAgICAgICAgICAgICAgbmF0dXJhbF93aWR0aCA9IG1pbmltdW1f d2lkdGggPSBtaW5pbXVtX2hlaWdodDsKKysgICAgICAgICAgICBpZiAodGV4dC5sZW5ndGggPT0g MSkgeworKyAgICAgICAgICAgICAgICBzd2l0Y2godGV4dC5nZXRfY2hhcigpKSB7CisrICAgICAg ICAgICAgICAgIGNhc2UgJ1x0JzoKKysgICAgICAgICAgICAgICAgICAgIG5hdHVyYWxfd2lkdGgg PSBtaW5pbXVtX3dpZHRoID0gbWluaW11bV9oZWlnaHQ7CisrICAgICAgICAgICAgICAgICAgICBi cmVhazsKKysgICAgICAgICAgICAgICAgY2FzZSAnXHYnOgorKyAgICAgICAgICAgICAgICAgICAg bmF0dXJhbF9oZWlnaHQgPSBtaW5pbXVtX2hlaWdodCA9IG1pbmltdW1fd2lkdGg7CisrICAgICAg ICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0K ICsgICAgICAgIH0KICsgICAgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIGdldF9wcmVmZXJyZWRf d2lkdGgob3V0IGludCBtaW5pbXVtX3dpZHRoLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvdXQgaW50IG5hdHVyYWxfd2lkdGgpIHsKQEAgLTMwMiwx MiArMzIxLDYgQEAgaW5kZXggZjNlOWYxNWMuLjU4YTI2ZGQ2IDEwMDY0NAogKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBuYXR1cmFsX2hlaWdodCk7CiArICAgICAg ICB9CiArICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYm9vbCBkcmF3KENhaXJvLkNvbnRleHQgY3Ip IHsKLSsgICAgICAgICAgICBpZiAobV9mb250c2V0ID09IG51bGwpCi0rICAgICAgICAgICAgICAg IHJldHVybiB0cnVlOwotKyAgICAgICAgICAgIGlmIChtX3JlcXVpc2l0aW9uID09IG51bGwpCi0r ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotKyAgICAgICAgICAgIGlmIChtX3JlcXVpc2l0 aW9uLmNhaXJvX2xpbmVzID09IG51bGwpCi0rICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog KyAgICAgICAgICAgIHZhciBzdHlsZV9jb250ZXh0ID0gZ2V0X3N0eWxlX2NvbnRleHQoKTsKICsg ICAgICAgICAgICBHdGsuQWxsb2NhdGlvbiBhbGxvY2F0aW9uOwogKyAgICAgICAgICAgIGdldF9h bGxvY2F0aW9uKG91dCBhbGxvY2F0aW9uKTsKQEAgLTMxNSw2ICszMjgsMTIgQEAgaW5kZXggZjNl OWYxNWMuLjU4YTI2ZGQ2IDEwMDY0NAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCwgMCwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFsbG9jYXRpb24ud2lkdGgsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbGxvY2F0aW9uLmhlaWdodCk7CisrICAgICAgICAgICAgaWYgKG1fZm9u dHNldCA9PSBudWxsKQorKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgICAgICAg ICBpZiAobV9yZXF1aXNpdGlvbiA9PSBudWxsKQorKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKysgICAgICAgICAgICBpZiAobV9yZXF1aXNpdGlvbi5jYWlyb19saW5lcyA9PSBudWxsKQor KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICsgICAgICAgICAgICBHZGsuUkdCQSAqbm9y bWFsX2ZnID0gbnVsbDsKICsgICAgICAgICAgICBzdHlsZV9jb250ZXh0LmdldChHdGsuU3RhdGVG bGFncy5OT1JNQUwsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbG9yIiwKQEAg LTMzNiwzMyArMzU1LDI5IEBAIGluZGV4IGYzZTlmMTVjLi41OGEyNmRkNiAxMDA2NDQKICsgICAg ICAgICAgICBub3JtYWxfZmcgPSBudWxsOwogKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogKyAg ICAgICAgfQorKyNlbHNlCisgICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBnZXRfcHJlZmVy cmVkX3dpZHRoKG91dCBpbnQgbWluaW11bV93aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IGludCBuYXR1cmFsX3dpZHRoKSB7CisgICAg ICAgICAgICAgaWYgKG1fbWluaW11bV9oZWlnaHQgPT0gMCAmJiBtX25hdHVyYWxfaGVpZ2h0ID09 IDApIHsKK0BAIC0xNjEsNiArMjQ4LDcgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3Rr LkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAgICAgICBtX21pbmltdW1faGVpZ2h0ID0gbWlu aW11bV9oZWlnaHQ7CisgICAgICAgICAgICAgbV9uYXR1cmFsX2hlaWdodCA9IG5hdHVyYWxfaGVp Z2h0OworICAgICAgICAgfQogKyNlbmRpZgogICAgICB9Ci0tICAgIHByaXZhdGUgY2xhc3MgRVNl bGVjdGVkTGFiZWwgOiBHdGsuTGFiZWwgewotKyAgICBwcml2YXRlIGNsYXNzIEVTZWxlY3RlZExh YmVsIDogRVdoaXRlTGFiZWwgeworICAgICBwcml2YXRlIGNsYXNzIEVTZWxlY3RlZExhYmVsIDog RVdoaXRlTGFiZWwgewogICAgICAgICAgcHVibGljIEVTZWxlY3RlZExhYmVsKHN0cmluZyB0ZXh0 KSB7Ci0gICAgICAgICAgICAgR0xpYi5PYmplY3QoCi0gICAgICAgICAgICAgICAgIG5hbWUgOiAi SUJ1c0Vtb2ppZXJTZWxlY3RlZExhYmVsIgotQEAgLTExNiw3ICsxODksNyBAQCBjbGFzcyBJQnVz RW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7Ci0gICAgICAgICAgICAgICAgIHNldF9s YWJlbCh0ZXh0KTsKLSAgICAgICAgIH0KLSAgICAgfQotLSAgICBwcml2YXRlIGNsYXNzIEVHb2xk TGFiZWwgOiBHdGsuTGFiZWwgewotKyAgICBwcml2YXRlIGNsYXNzIEVHb2xkTGFiZWwgOiBFV2hp dGVMYWJlbCB7Ci0gICAgICAgICBwdWJsaWMgRUdvbGRMYWJlbChzdHJpbmcgdGV4dCkgewotICAg ICAgICAgICAgIEdMaWIuT2JqZWN0KAotICAgICAgICAgICAgICAgICBuYW1lIDogIklCdXNFbW9q aWVyR29sZExhYmVsIgotQEAgLTIzMSw2ICszMDQsOSBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0 ay5BcHBsaWNhdGlvbldpbmRvdyB7Ci0gICAgICAgICAgICAgbV9jYXRlZ29yeV90b19lbW9qaXNf ZGljdDsKLSAgICAgcHJpdmF0ZSBzdGF0aWMgR0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNM aXN0PHN0cmluZz4+PwotICAgICAgICAgICAgIG1fZW1vamlfdG9fZW1vamlfdmFyaWFudHNfZGlj dDsKK0BAIC0zMDcsNiArMzk1LDkgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFw cGxpY2F0aW9uV2luZG93IHsKKyAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBtX3Nob3dfdW5pY29k ZSA9IGZhbHNlOworICAgICBwcml2YXRlIHN0YXRpYyBMb2FkUHJvZ3Jlc3NPYmplY3QgbV91bmlj b2RlX3Byb2dyZXNzX29iamVjdDsKKyAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBtX2xvYWRlZF91 bmljb2RlID0gZmFsc2U7CiArI2lmIEVOQUJMRV9IQVJGQlVaWl9GT1JfRU1PSkkKICsgICAgcHJp dmF0ZSBzdGF0aWMgSUJ1cy5Gb250U2V0IG1fZm9udHNldDsKICsjZW5kaWYKICAKICAgICAgcHJp dmF0ZSBUaGVtZWRSR0JBIG1fcmdiYTsKICAgICAgcHJpdmF0ZSBHdGsuQm94IG1fdmJveDsKLUBA IC0xNjY2LDYgKzE3NDIsMjIgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25X aW5kb3cgeworQEAgLTIwNjQsNiArMjE1NSwyMiBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIg OiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewogICAgICB9CiAgCiAgCkBAIC0zODUsNyArNDAwLDcg QEAgaW5kZXggZjNlOWYxNWMuLjU4YTI2ZGQ2IDEwMDY0NAogICAgICBwdWJsaWMgc3RhdGljIGJv b2wgaGFzX2xvYWRlZF9lbW9qaV9kaWN0KCkgewogICAgICAgICAgaWYgKG1fZW1vamlfdG9fZGF0 YV9kaWN0ID09IG51bGwpCiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTE2OTYsNiAr MTc4OCwxMCBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CitA QCAtMjA5NCw2ICsyMjAxLDEwIEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBs aWNhdGlvbldpbmRvdyB7CiAgICAgICAgICBpbnQgZm9udF9zaXplID0gZm9udF9kZXNjLmdldF9z aXplKCkgLyBQYW5nby5TQ0FMRTsKICAgICAgICAgIGlmIChmb250X3NpemUgIT0gMCkKICAgICAg ICAgICAgICBtX2Vtb2ppX2ZvbnRfc2l6ZSA9IGZvbnRfc2l6ZTsKQEAgLTE3NDEsNSArMTc1Niw1 IEBAIGluZGV4IDAwMDAwMDAwLi5lZmNhYTI4NgogK0dfRU5EX0RFQ0xTCiArI2VuZGlmCiAtLSAK LTIuMTMuNAorMi4xNC4zCiAKCmRpZmYgLS1naXQgYS9pYnVzLnNwZWMgYi9pYnVzLnNwZWMKaW5k ZXggMjI0MGUyYi4uYjBhYzRjYSAxMDA2NDQKLS0tIGEvaWJ1cy5zcGVjCisrKyBiL2lidXMuc3Bl YwpAQCAtMzAsNyArMzAsNyBAQAogCiBOYW1lOiAgICAgICAgICAgaWJ1cwogVmVyc2lvbjogICAg ICAgIDEuNS4xNwotUmVsZWFzZTogICAgICAgIDYlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDcl ez9kaXN0fQogU3VtbWFyeTogICAgICAgIEludGVsbGlnZW50IElucHV0IEJ1cyBmb3IgTGludXgg T1MKIExpY2Vuc2U6ICAgICAgICBMR1BMdjIrCiBHcm91cDogICAgICAgICAgU3lzdGVtIEVudmly b25tZW50L0xpYnJhcmllcwpAQCAtNzgsNiArNzgsNyBAQCBCdWlsZFJlcXVpcmVzOiAgcXQ1LXF0 YmFzZS1kZXZlbAogJWVuZGlmCiBCdWlsZFJlcXVpcmVzOiAgY2xkci1lbW9qaS1hbm5vdGF0aW9u CiBCdWlsZFJlcXVpcmVzOiAgdW5pY29kZS1lbW9qaQorQnVpbGRSZXF1aXJlczogIHVuaWNvZGUt dWNkCiAlaWYgJXdpdGhfZW1vamlfaGFyZmJ1enoKIEJ1aWxkUmVxdWlyZXM6ICBjYWlyby1kZXZl bAogQnVpbGRSZXF1aXJlczogIGZvbnRjb25maWctZGV2ZWwKQEAgLTQyNyw2ICs0MjgsOSBAQCBk Y29uZiB1cGRhdGUgfHwgOgogJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sLyoKIAogJWNoYW5nZWxv ZworKiBUdWUgRmViIDA2IDIwMTggVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+ IC0gMS41LjE3LTcKKy0gQWRkZWQgVW5pY29kZSB0eXBpbmcgb24gRW1vamllcgorCiAqIFNhdCBG ZWIgMDMgMjAxOCBJZ29yIEduYXRlbmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFwcm9qZWN0Lm9y Zz4gLSAxLjUuMTctNgogLSBTd2l0Y2ggdG8gJSVsZGNvbmZpZ19zY3JpcHRsZXRzCiAK