--b1_8fa7d194d6ac8ed10f67e1d085b86b46 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: quoted-printable This revision was automatically updated to reflect the committed changes. Closed by commit rL264853: [OPENMP 4.0] Initial support for '#pragma omp de= clare simd' directive. (authored by ABataev). Changed prior to commit: http://reviews.llvm.org/D10599?vs=3D44833&id=3D52034#toc Repository: rL LLVM http://reviews.llvm.org/D10599 Files: cfe/trunk/include/clang/Basic/Attr.td cfe/trunk/include/clang/Basic/AttrDocs.td cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td cfe/trunk/include/clang/Basic/OpenMPKinds.def cfe/trunk/include/clang/Parse/Parser.h cfe/trunk/include/clang/Sema/Sema.h cfe/trunk/lib/Basic/OpenMPKinds.cpp cfe/trunk/lib/Parse/ParseDecl.cpp cfe/trunk/lib/Parse/ParseDeclCXX.cpp cfe/trunk/lib/Parse/ParseOpenMP.cpp cfe/trunk/lib/Parse/Parser.cpp cfe/trunk/lib/Sema/SemaOpenMP.cpp cfe/trunk/test/OpenMP/declare_simd_ast_print.c cfe/trunk/test/OpenMP/declare_simd_ast_print.cpp cfe/trunk/test/OpenMP/declare_simd_messages.cpp --b1_8fa7d194d6ac8ed10f67e1d085b86b46 Content-Type: text/x-patch; charset=utf-8; name="D10599.52034.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D10599.52034.patch" SW5kZXg6IGNmZS90cnVuay9saWIvUGFyc2UvUGFyc2VEZWNsLmNwcAo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBjZmUvdHJ1bmsvbGliL1BhcnNlL1Bh cnNlRGVjbC5jcHAKKysrIGNmZS90cnVuay9saWIvUGFyc2UvUGFyc2VEZWNs LmNwcApAQCAtMzY1NCw4ICszNjU0LDEwIEBACiAgICAgfQogCiAgICAgaWYg KFRvay5pcyh0b2s6OmFubm90X3ByYWdtYV9vcGVubXApKSB7Ci0gICAgICAv LyBUaGVyZSBtYXkgYmUgZGVjbGFyZWQgcmVkdWN0aW9uIG9wZXJhdG9yIGlu c2lkZSBzdHJ1Y3R1cmUvdW5pb24uCi0gICAgICAodm9pZClQYXJzZU9wZW5N UERlY2xhcmF0aXZlRGlyZWN0aXZlKEFTX3B1YmxpYyk7CisgICAgICAvLyBS ZXN1bHQgY2FuIGJlIGlnbm9yZWQsIGJlY2F1c2UgaXQgbXVzdCBiZSBhbHdh eXMgZW1wdHkuCisgICAgICBBY2Nlc3NTcGVjaWZpZXIgQVMgPSBBU19ub25l OworICAgICAgUGFyc2VkQXR0cmlidXRlc1dpdGhSYW5nZSBBdHRycyhBdHRy RmFjdG9yeSk7CisgICAgICAodm9pZClQYXJzZU9wZW5NUERlY2xhcmF0aXZl RGlyZWN0aXZlV2l0aEV4dERlY2woQVMsIEF0dHJzKTsKICAgICAgIGNvbnRp bnVlOwogICAgIH0KIApJbmRleDogY2ZlL3RydW5rL2xpYi9QYXJzZS9QYXJz ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNmZS90cnVuay9s aWIvUGFyc2UvUGFyc2VyLmNwcAorKysgY2ZlL3RydW5rL2xpYi9QYXJzZS9Q YXJzZXIuY3BwCkBAIC02NTksOCArNjU5LDEwIEBACiAgIGNhc2UgdG9rOjph bm5vdF9wcmFnbWFfb3BlbmNsX2V4dGVuc2lvbjoKICAgICBIYW5kbGVQcmFn bWFPcGVuQ0xFeHRlbnNpb24oKTsKICAgICByZXR1cm4gbnVsbHB0cjsKLSAg Y2FzZSB0b2s6OmFubm90X3ByYWdtYV9vcGVubXA6Ci0gICAgcmV0dXJuIFBh cnNlT3Blbk1QRGVjbGFyYXRpdmVEaXJlY3RpdmUoLypBUz0qL0FTX25vbmUp OworICBjYXNlIHRvazo6YW5ub3RfcHJhZ21hX29wZW5tcDogeworICAgIEFj Y2Vzc1NwZWNpZmllciBBUyA9IEFTX25vbmU7CisgICAgcmV0dXJuIFBhcnNl T3Blbk1QRGVjbGFyYXRpdmVEaXJlY3RpdmVXaXRoRXh0RGVjbChBUywgYXR0 cnMpOworICB9CiAgIGNhc2UgdG9rOjphbm5vdF9wcmFnbWFfbXNfcG9pbnRl cnNfdG9fbWVtYmVyczoKICAgICBIYW5kbGVQcmFnbWFNU1BvaW50ZXJzVG9N ZW1iZXJzKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBjZmUvdHJ1 bmsvbGliL1BhcnNlL1BhcnNlT3Blbk1QLmNwcAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBjZmUvdHJ1bmsvbGliL1BhcnNlL1BhcnNlT3Blbk1QLmNw cAorKysgY2ZlL3RydW5rL2xpYi9QYXJzZS9QYXJzZU9wZW5NUC5jcHAKQEAg LTY1LDYgKzY1LDcgQEAKICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEZbXVsz XSA9IHsKICAgICB7IE9NUERfY2FuY2VsbGF0aW9uLCBPTVBEX3BvaW50LCBP TVBEX2NhbmNlbGxhdGlvbl9wb2ludCB9LAogICAgIHsgT01QRF9kZWNsYXJl LCBPTVBEX3JlZHVjdGlvbiwgT01QRF9kZWNsYXJlX3JlZHVjdGlvbiB9LAor ICAgIHsgT01QRF9kZWNsYXJlLCBPTVBEX3NpbWQsIE9NUERfZGVjbGFyZV9z aW1kIH0sCiAgICAgeyBPTVBEX3RhcmdldCwgT01QRF9kYXRhLCBPTVBEX3Rh cmdldF9kYXRhIH0sCiAgICAgeyBPTVBEX3RhcmdldCwgT01QRF9lbnRlciwg T01QRF90YXJnZXRfZW50ZXIgfSwKICAgICB7IE9NUERfdGFyZ2V0LCBPTVBE X2V4aXQsIE9NUERfdGFyZ2V0X2V4aXQgfSwKQEAgLTMzMiw4ICszMzMsMTQg QEAKIC8vLyAgICAgICAgYW5ub3RfcHJhZ21hX29wZW5tcCAnZGVjbGFyZScg J3JlZHVjdGlvbicgWy4uLl0KIC8vLyAgICAgICAgYW5ub3RfcHJhZ21hX29w ZW5tcF9lbmQKIC8vLwotUGFyc2VyOjpEZWNsR3JvdXBQdHJUeQotUGFyc2Vy OjpQYXJzZU9wZW5NUERlY2xhcmF0aXZlRGlyZWN0aXZlKEFjY2Vzc1NwZWNp ZmllciBBUykgeworLy8vICAgICAgIGRlY2xhcmUtc2ltZC1kaXJlY3RpdmU6 CisvLy8gICAgICAgICBhbm5vdF9wcmFnbWFfb3Blbm1wICdkZWNsYXJlIHNp bWQnIHs8Y2xhdXNlPiBbLF19CisvLy8gICAgICAgICBhbm5vdF9wcmFnbWFf b3Blbm1wX2VuZAorLy8vICAgICAgICAgPGZ1bmN0aW9uIGRlY2xhcmF0aW9u L2RlZmluaXRpb24+CisvLy8KK1BhcnNlcjo6RGVjbEdyb3VwUHRyVHkgUGFy c2VyOjpQYXJzZU9wZW5NUERlY2xhcmF0aXZlRGlyZWN0aXZlV2l0aEV4dERl Y2woCisgICAgQWNjZXNzU3BlY2lmaWVyICZBUywgUGFyc2VkQXR0cmlidXRl c1dpdGhSYW5nZSAmQXR0cnMsCisgICAgRGVjbFNwZWM6OlRTVCBUYWdUeXBl LCBEZWNsICpUYWcpIHsKICAgYXNzZXJ0KFRvay5pcyh0b2s6OmFubm90X3By YWdtYV9vcGVubXApICYmICJOb3QgYW4gT3Blbk1QIGRpcmVjdGl2ZSEiKTsK ICAgUGFyZW5CcmFjZUJyYWNrZXRCYWxhbmNlciBCYWxhbmNlclJBSUlPYmoo KnRoaXMpOwogCkBAIC0zNzMsNiArMzgwLDQ3IEBACiAgICAgICByZXR1cm4g UmVzOwogICAgIH0KICAgICBicmVhazsKKyAgY2FzZSBPTVBEX2RlY2xhcmVf c2ltZDogeworICAgIC8vIFRoZSBzeW50YXggaXM6CisgICAgLy8geyAjcHJh Z21hIG9tcCBkZWNsYXJlIHNpbWQgfQorICAgIC8vIDxmdW5jdGlvbi1kZWNs YXJhdGlvbi1vci1kZWZpbml0aW9uPgorICAgIC8vCisKKyAgICBDb25zdW1l VG9rZW4oKTsKKyAgICAvLyBUaGUgbGFzdCBzZWVuIHRva2VuIGlzIGFubm90 X3ByYWdtYV9vcGVubXBfZW5kIC0gbmVlZCB0byBjaGVjayBmb3IKKyAgICAv LyBleHRyYSB0b2tlbnMuCisgICAgaWYgKFRvay5pc05vdCh0b2s6OmFubm90 X3ByYWdtYV9vcGVubXBfZW5kKSkgeworICAgICAgRGlhZyhUb2ssIGRpYWc6 Ondhcm5fb21wX2V4dHJhX3Rva2Vuc19hdF9lb2wpCisgICAgICAgICAgPDwg Z2V0T3Blbk1QRGlyZWN0aXZlTmFtZShPTVBEX2RlY2xhcmVfc2ltZCk7Cisg ICAgICB3aGlsZSAoVG9rLmlzTm90KHRvazo6YW5ub3RfcHJhZ21hX29wZW5t cF9lbmQpKQorICAgICAgICBDb25zdW1lQW55VG9rZW4oKTsKKyAgICB9Cisg ICAgLy8gU2tpcCB0aGUgbGFzdCBhbm5vdF9wcmFnbWFfb3Blbm1wX2VuZC4K KyAgICBDb25zdW1lVG9rZW4oKTsKKworICAgIERlY2xHcm91cFB0clR5IFB0 cjsKKyAgICBpZiAoVG9rLmlzKHRvazo6YW5ub3RfcHJhZ21hX29wZW5tcCkp IHsKKyAgICAgIFB0ciA9IFBhcnNlT3Blbk1QRGVjbGFyYXRpdmVEaXJlY3Rp dmVXaXRoRXh0RGVjbChBUywgQXR0cnMsIFRhZ1R5cGUsIFRhZyk7CisgICAg fSBlbHNlIGlmIChUb2suaXNOb3QodG9rOjpyX2JyYWNlKSAmJiAhaXNFb2ZP ckVvbSgpKSB7CisgICAgICAvLyBIZXJlIHdlIGV4cGVjdCB0byBzZWUgc29t ZSBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KKyAgICAgIGlmIChBUyA9PSBBU19u b25lKSB7CisgICAgICAgIGFzc2VydChUYWdUeXBlID09IERlY2xTcGVjOjpU U1RfdW5zcGVjaWZpZWQpOworICAgICAgICBNYXliZVBhcnNlQ1hYMTFBdHRy aWJ1dGVzKEF0dHJzKTsKKyAgICAgICAgTWF5YmVQYXJzZU1pY3Jvc29mdEF0 dHJpYnV0ZXMoQXR0cnMpOworICAgICAgICBQYXJzaW5nRGVjbFNwZWMgUERT KCp0aGlzKTsKKyAgICAgICAgUHRyID0gUGFyc2VFeHRlcm5hbERlY2xhcmF0 aW9uKEF0dHJzLCAmUERTKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIFB0 ciA9CisgICAgICAgICAgICBQYXJzZUNYWENsYXNzTWVtYmVyRGVjbGFyYXRp b25XaXRoUHJhZ21hcyhBUywgQXR0cnMsIFRhZ1R5cGUsIFRhZyk7CisgICAg ICB9CisgICAgfQorICAgIGlmICghUHRyKSB7CisgICAgICBEaWFnKExvYywg ZGlhZzo6ZXJyX29tcF9kZWNsX2luX2RlY2xhcmVfc2ltZCk7CisgICAgICBy ZXR1cm4gRGVjbEdyb3VwUHRyVHkoKTsKKyAgICB9CisKKyAgICByZXR1cm4g QWN0aW9ucy5BY3RPbk9wZW5NUERlY2xhcmVTaW1kRGlyZWN0aXZlKFB0ciwg TG9jKTsKKyAgfQogICBjYXNlIE9NUERfdW5rbm93bjoKICAgICBEaWFnKFRv aywgZGlhZzo6ZXJyX29tcF91bmtub3duX2RpcmVjdGl2ZSk7CiAgICAgYnJl YWs7CkBAIC02MjcsNiArNjc1LDExIEBACiAgICAgT01QRGlyZWN0aXZlU2Nv cGUuRXhpdCgpOwogICAgIGJyZWFrOwogICB9CisgIGNhc2UgT01QRF9kZWNs YXJlX3NpbWQ6CisgICAgRGlhZyhUb2ssIGRpYWc6OmVycl9vbXBfdW5leHBl Y3RlZF9kaXJlY3RpdmUpCisgICAgICAgIDw8IGdldE9wZW5NUERpcmVjdGl2 ZU5hbWUoREtpbmQpOworICAgIFNraXBVbnRpbCh0b2s6OmFubm90X3ByYWdt YV9vcGVubXBfZW5kKTsKKyAgICBicmVhazsKICAgY2FzZSBPTVBEX3Vua25v d246CiAgICAgRGlhZyhUb2ssIGRpYWc6OmVycl9vbXBfdW5rbm93bl9kaXJl Y3RpdmUpOwogICAgIFNraXBVbnRpbCh0b2s6OmFubm90X3ByYWdtYV9vcGVu bXBfZW5kKTsKSW5kZXg6IGNmZS90cnVuay9saWIvUGFyc2UvUGFyc2VEZWNs Q1hYLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjZmUvdHJ1bmsv bGliL1BhcnNlL1BhcnNlRGVjbENYWC5jcHAKKysrIGNmZS90cnVuay9saWIv UGFyc2UvUGFyc2VEZWNsQ1hYLmNwcApAQCAtMjkxOSw3ICsyOTE5LDggQEAK ICAgfQogCiAgIGlmIChUb2suaXModG9rOjphbm5vdF9wcmFnbWFfb3Blbm1w KSkKLSAgICByZXR1cm4gUGFyc2VPcGVuTVBEZWNsYXJhdGl2ZURpcmVjdGl2 ZShBUyk7CisgICAgcmV0dXJuIFBhcnNlT3Blbk1QRGVjbGFyYXRpdmVEaXJl Y3RpdmVXaXRoRXh0RGVjbChBUywgQWNjZXNzQXR0cnMsIFRhZ1R5cGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUYWdEZWNsKTsKIAogICAvLyBQYXJzZSBhbGwgdGhlIGNvbW1h IHNlcGFyYXRlZCBkZWNsYXJhdG9ycy4KICAgcmV0dXJuIFBhcnNlQ1hYQ2xh c3NNZW1iZXJEZWNsYXJhdGlvbihBUywgQWNjZXNzQXR0cnMuZ2V0TGlzdCgp KTsKSW5kZXg6IGNmZS90cnVuay9saWIvU2VtYS9TZW1hT3Blbk1QLmNwcAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjZmUvdHJ1bmsvbGliL1NlbWEv U2VtYU9wZW5NUC5jcHAKKysrIGNmZS90cnVuay9saWIvU2VtYS9TZW1hT3Bl bk1QLmNwcApAQCAtMTcwMSw2ICsxNzAxLDcgQEAKICAgY2FzZSBPTVBEX3Rh cmdldF9lbnRlcl9kYXRhOgogICBjYXNlIE9NUERfdGFyZ2V0X2V4aXRfZGF0 YToKICAgY2FzZSBPTVBEX2RlY2xhcmVfcmVkdWN0aW9uOgorICBjYXNlIE9N UERfZGVjbGFyZV9zaW1kOgogICAgIGxsdm1fdW5yZWFjaGFibGUoIk9wZW5N UCBEaXJlY3RpdmUgaXMgbm90IGFsbG93ZWQiKTsKICAgY2FzZSBPTVBEX3Vu a25vd246CiAgICAgbGx2bV91bnJlYWNoYWJsZSgiVW5rbm93biBPcGVuTVAg ZGlyZWN0aXZlIik7CkBAIC0zMTU1LDYgKzMxNTYsNyBAQAogICAgIGJyZWFr OwogICBjYXNlIE9NUERfdGhyZWFkcHJpdmF0ZToKICAgY2FzZSBPTVBEX2Rl Y2xhcmVfcmVkdWN0aW9uOgorICBjYXNlIE9NUERfZGVjbGFyZV9zaW1kOgog ICAgIGxsdm1fdW5yZWFjaGFibGUoIk9wZW5NUCBEaXJlY3RpdmUgaXMgbm90 IGFsbG93ZWQiKTsKICAgY2FzZSBPTVBEX3Vua25vd246CiAgICAgbGx2bV91 bnJlYWNoYWJsZSgiVW5rbm93biBPcGVuTVAgZGlyZWN0aXZlIik7CkBAIC0z MTc1LDYgKzMxNzcsMzIgQEAKICAgcmV0dXJuIFJlczsKIH0KIAorU2VtYTo6 RGVjbEdyb3VwUHRyVHkKK1NlbWE6OkFjdE9uT3Blbk1QRGVjbGFyZVNpbWRE aXJlY3RpdmUoRGVjbEdyb3VwUHRyVHkgREcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUxvY2F0aW9uIFN0YXJ0TG9j KSB7CisgIGlmICghREcgfHwgREcuZ2V0KCkuaXNOdWxsKCkpCisgICAgcmV0 dXJuIERlY2xHcm91cFB0clR5KCk7CisKKyAgaWYgKCFERy5nZXQoKS5pc1Np bmdsZURlY2woKSkgeworICAgIERpYWcoU3RhcnRMb2MsIGRpYWc6OmVycl9v bXBfc2luZ2xlX2RlY2xfaW5fZGVjbGFyZV9zaW1kKTsKKyAgICByZXR1cm4g REc7CisgIH0KKyAgYXV0byAqQURlY2wgPSBERy5nZXQoKS5nZXRTaW5nbGVE ZWNsKCk7CisgIGlmIChhdXRvICpGVEQgPSBkeW5fY2FzdDxGdW5jdGlvblRl bXBsYXRlRGVjbD4oQURlY2wpKQorICAgIEFEZWNsID0gRlRELT5nZXRUZW1w bGF0ZWREZWNsKCk7CisKKyAgaWYgKCFpc2E8RnVuY3Rpb25EZWNsPihBRGVj bCkpIHsKKyAgICBEaWFnKEFEZWNsLT5nZXRMb2NhdGlvbigpLCBkaWFnOjpl cnJfb21wX2Z1bmN0aW9uX2V4cGVjdGVkKQorICAgICAgICA8PCBBRGVjbC0+ Z2V0RGVjbENvbnRleHQoKS0+aXNGaWxlQ29udGV4dCgpOworICAgIHJldHVy biBEZWNsR3JvdXBQdHJUeSgpOworICB9CisKKyAgYXV0byAqTmV3QXR0ciA9 IE9NUERlY2xhcmVTaW1kRGVjbEF0dHI6OkNyZWF0ZUltcGxpY2l0KAorICAg ICAgQ29udGV4dCwgU291cmNlUmFuZ2UoU3RhcnRMb2MsIFN0YXJ0TG9jKSk7 CisgIEFEZWNsLT5hZGRBdHRyKE5ld0F0dHIpOworICByZXR1cm4gQ29udmVy dERlY2xUb0RlY2xHcm91cChBRGVjbCk7Cit9CisKIFN0bXRSZXN1bHQgU2Vt YTo6QWN0T25PcGVuTVBQYXJhbGxlbERpcmVjdGl2ZShBcnJheVJlZjxPTVBD bGF1c2UgKj4gQ2xhdXNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTdG10ICpBU3RtdCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2Nh dGlvbiBTdGFydExvYywKSW5kZXg6IGNmZS90cnVuay9saWIvQmFzaWMvT3Bl bk1QS2luZHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNmZS90 cnVuay9saWIvQmFzaWMvT3Blbk1QS2luZHMuY3BwCisrKyBjZmUvdHJ1bmsv bGliL0Jhc2ljL09wZW5NUEtpbmRzLmNwcApAQCAtNDg1LDYgKzQ4NSw4IEBA CiAgICAgICBicmVhazsKICAgICB9CiAgICAgYnJlYWs7CisgIGNhc2UgT01Q RF9kZWNsYXJlX3NpbWQ6CisgICAgYnJlYWs7CiAgIGNhc2UgT01QRF9jYW5j ZWw6CiAgICAgc3dpdGNoIChDS2luZCkgewogI2RlZmluZSBPUEVOTVBfQ0FO Q0VMX0NMQVVTRShOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKSW5kZXg6IGNmZS90cnVuay9pbmNsdWRlL2Ns YW5nL0Jhc2ljL0RpYWdub3N0aWNTZW1hS2luZHMudGQKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gY2ZlL3RydW5rL2luY2x1ZGUvY2xhbmcvQmFzaWMv RGlhZ25vc3RpY1NlbWFLaW5kcy50ZAorKysgY2ZlL3RydW5rL2luY2x1ZGUv Y2xhbmcvQmFzaWMvRGlhZ25vc3RpY1NlbWFLaW5kcy50ZApAQCAtODAzOSw2 ICs4MDM5LDEwIEBACiAgICJ0aGUgJ2NvcHlwcml2YXRlJyBjbGF1c2UgbXVz dCBub3QgYmUgdXNlZCB3aXRoIHRoZSAnbm93YWl0JyBjbGF1c2UiPjsKIGRl ZiBub3RlX29tcF9ub3dhaXRfY2xhdXNlX2hlcmUgOiBOb3RlPAogICAiJ25v d2FpdCcgY2xhdXNlIGlzIGhlcmUiPjsKK2RlZiBlcnJfb21wX3NpbmdsZV9k ZWNsX2luX2RlY2xhcmVfc2ltZCA6IEVycm9yPAorICAic2luZ2xlIGRlY2xh cmF0aW9uIGlzIGV4cGVjdGVkIGFmdGVyICdkZWNsYXJlIHNpbWQnIGRpcmVj dGl2ZSI+OworZGVmIGVycl9vbXBfZnVuY3Rpb25fZXhwZWN0ZWQgOiBFcnJv cjwKKyAgIicjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQnIGNhbiBvbmx5IGJl IGFwcGxpZWQgdG8gZnVuY3Rpb25zIj47CiBkZWYgZXJyX29tcF93cm9uZ19j YW5jZWxfcmVnaW9uIDogRXJyb3I8CiAgICJvbmUgb2YgJ2ZvcicsICdwYXJh bGxlbCcsICdzZWN0aW9ucycgb3IgJ3Rhc2tncm91cCcgaXMgZXhwZWN0ZWQi PjsKIGRlZiBlcnJfb21wX3BhcmVudF9jYW5jZWxfcmVnaW9uX25vd2FpdCA6 IEVycm9yPApJbmRleDogY2ZlL3RydW5rL2luY2x1ZGUvY2xhbmcvQmFzaWMv RGlhZ25vc3RpY1BhcnNlS2luZHMudGQKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gY2ZlL3RydW5rL2luY2x1ZGUvY2xhbmcvQmFzaWMvRGlhZ25vc3Rp Y1BhcnNlS2luZHMudGQKKysrIGNmZS90cnVuay9pbmNsdWRlL2NsYW5nL0Jh c2ljL0RpYWdub3N0aWNQYXJzZUtpbmRzLnRkCkBAIC05NTMsNiArOTUzLDgg QEAKICAgImV4cGVjdGVkIGlkZW50aWZpZXIgc3BlY2lmeWluZyB0aGUgbmFt ZSBvZiB0aGUgJ29tcCBjcml0aWNhbCcgZGlyZWN0aXZlIj47CiBkZWYgZXJy X29tcF9leHBlY3RlZF9yZWR1Y3Rpb25faWRlbnRpZmllciA6IEVycm9yPAog ICAiZXhwZWN0ZWQgaWRlbnRpZmllciBvciBvbmUgb2YgdGhlIGZvbGxvd2lu ZyBvcGVyYXRvcnM6ICcrJywgJy0nLCAnKicsICcmJywgJ3wnLCAnXicsICcm JicsIG9yICd8fCciPjsKK2RlZiBlcnJfb21wX2RlY2xfaW5fZGVjbGFyZV9z aW1kIDogRXJyb3I8CisgICJmdW5jdGlvbiBkZWNsYXJhdGlvbiBpcyBleHBl Y3RlZCBhZnRlciAnZGVjbGFyZSBzaW1kJyBkaXJlY3RpdmUiPjsKIGRlZiBl cnJfb21wX3Vua25vd25fbWFwX3R5cGUgOiBFcnJvcjwKICAgImluY29ycmVj dCBtYXAgdHlwZSwgZXhwZWN0ZWQgb25lIG9mICd0bycsICdmcm9tJywgJ3Rv ZnJvbScsICdhbGxvYycsICdyZWxlYXNlJywgb3IgJ2RlbGV0ZSciPjsKIGRl ZiBlcnJfb21wX3Vua25vd25fbWFwX3R5cGVfbW9kaWZpZXIgOiBFcnJvcjwK SW5kZXg6IGNmZS90cnVuay9pbmNsdWRlL2NsYW5nL0Jhc2ljL0F0dHJEb2Nz LnRkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNmZS90cnVuay9pbmNs dWRlL2NsYW5nL0Jhc2ljL0F0dHJEb2NzLnRkCisrKyBjZmUvdHJ1bmsvaW5j bHVkZS9jbGFuZy9CYXNpYy9BdHRyRG9jcy50ZApAQCAtMTg4OCw2ICsxODg4 LDQxIEBACiAgIH1dOwogfQogCitkZWYgT01QRGVjbGFyZVNpbWREb2NzIDog RG9jdW1lbnRhdGlvbiB7CisgIGxldCBDYXRlZ29yeSA9IERvY0NhdFN0bXQ7 CisgIGxldCBIZWFkaW5nID0gIiNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZCI7 CisgIGxldCBDb250ZW50ID0gW3sKK1RoZSBgZGVjbGFyZSBzaW1kYCBjb25z dHJ1Y3QgY2FuIGJlIGFwcGxpZWQgdG8gYSBmdW5jdGlvbiB0byBlbmFibGUg dGhlIGNyZWF0aW9uCitvZiBvbmUgb3IgbW9yZSB2ZXJzaW9ucyB0aGF0IGNh biBwcm9jZXNzIG11bHRpcGxlIGFyZ3VtZW50cyB1c2luZyBTSU1ECitpbnN0 cnVjdGlvbnMgZnJvbSBhIHNpbmdsZSBpbnZvY2F0aW9uIGluIGEgU0lNRCBs b29wLiBUaGUgYGRlY2xhcmUgc2ltZGAKK2RpcmVjdGl2ZSBpcyBhIGRlY2xh cmF0aXZlIGRpcmVjdGl2ZS4gVGhlcmUgbWF5IGJlIG11bHRpcGxlIGBkZWNs YXJlIHNpbWRgCitkaXJlY3RpdmVzIGZvciBhIGZ1bmN0aW9uLiBUaGUgdXNl IG9mIGEgYGRlY2xhcmUgc2ltZGAgY29uc3RydWN0IG9uIGEgZnVuY3Rpb24K K2VuYWJsZXMgdGhlIGNyZWF0aW9uIG9mIFNJTUQgdmVyc2lvbnMgb2YgdGhl IGFzc29jaWF0ZWQgZnVuY3Rpb24gdGhhdCBjYW4gYmUKK3VzZWQgdG8gcHJv Y2VzcyBtdWx0aXBsZSBhcmd1bWVudHMgZnJvbSBhIHNpbmdsZSBpbnZvY2F0 aW9uIGZyb20gYSBTSU1EIGxvb3AKK2NvbmN1cnJlbnRseS4KK1RoZSBzeW50 YXggb2YgdGhlIGBkZWNsYXJlIHNpbWRgIGNvbnN0cnVjdCBpcyBhcyBmb2xs b3dzOgorCisgIC4uIGNvZGUtYmxvY2s6OiBjCisKKyAgI3ByYWdtYSBvbXAg ZGVjbGFyZSBzaW1kIFtjbGF1c2VbWyxdIGNsYXVzZV0gLi4uXSBuZXctbGlu ZQorICBbI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kIFtjbGF1c2VbWyxdIGNs YXVzZV0gLi4uXSBuZXctbGluZV0KKyAgWy4uLl0KKyAgZnVuY3Rpb24gZGVm aW5pdGlvbiBvciBkZWNsYXJhdGlvbgorCit3aGVyZSBjbGF1c2UgaXMgb25l IG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgLi4gY29kZS1ibG9jazo6IGMKKwor ICBzaW1kbGVuKGxlbmd0aCkKKyAgbGluZWFyKGFyZ3VtZW50LWxpc3RbOmNv bnN0YW50LWxpbmVhci1zdGVwXSkKKyAgYWxpZ25lZChhcmd1bWVudC1saXN0 WzphbGlnbm1lbnRdKQorICB1bmlmb3JtKGFyZ3VtZW50LWxpc3QpCisgIGlu YnJhbmNoCisgIG5vdGluYnJhbmNoCisKKyAgfV07Cit9CisKIGRlZiBOb3RU YWlsQ2FsbGVkRG9jcyA6IERvY3VtZW50YXRpb24gewogICBsZXQgQ2F0ZWdv cnkgPSBEb2NDYXRGdW5jdGlvbjsKICAgbGV0IENvbnRlbnQgPSBbewpJbmRl eDogY2ZlL3RydW5rL2luY2x1ZGUvY2xhbmcvQmFzaWMvQXR0ci50ZAo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBjZmUvdHJ1bmsvaW5jbHVkZS9jbGFu Zy9CYXNpYy9BdHRyLnRkCisrKyBjZmUvdHJ1bmsvaW5jbHVkZS9jbGFuZy9C YXNpYy9BdHRyLnRkCkBAIC0yMjQ0LDYgKzIyNDQsMTcgQEAKICAgbGV0IERv Y3VtZW50YXRpb24gPSBbVW5kb2N1bWVudGVkXTsKIH0KIAorZGVmIE9NUERl Y2xhcmVTaW1kRGVjbCA6IEF0dHIgeworICBsZXQgU3BlbGxpbmdzID0gW1By YWdtYTwib21wIiwgImRlY2xhcmUgc2ltZCI+XTsKKyAgbGV0IFN1YmplY3Rz ID0gU3ViamVjdExpc3Q8W0Z1bmN0aW9uXT47CisgIGxldCBTZW1hSGFuZGxl ciA9IDA7CisgIGxldCBIYXNDdXN0b21QYXJzaW5nID0gMTsKKyAgbGV0IERv Y3VtZW50YXRpb24gPSBbT01QRGVjbGFyZVNpbWREb2NzXTsKKyAgbGV0IEFk ZGl0aW9uYWxNZW1iZXJzID0gW3sKKyAgdm9pZCBwcmludFByZXR0eVByYWdt YShyYXdfb3N0cmVhbSAmT1MsIGNvbnN0IFByaW50aW5nUG9saWN5ICZQb2xp Y3kpIGNvbnN0IHt9CisgIH1dOworfQorCiBkZWYgSW50ZXJuYWxMaW5rYWdl IDogSW5oZXJpdGFibGVBdHRyIHsKICAgbGV0IFNwZWxsaW5ncyA9IFtHTlU8 ImludGVybmFsX2xpbmthZ2UiPiwgQ1hYMTE8ImNsYW5nIiwgImludGVybmFs X2xpbmthZ2UiPl07CiAgIGxldCBTdWJqZWN0cyA9IFN1YmplY3RMaXN0PFtW YXIsIEZ1bmN0aW9uLCBDWFhSZWNvcmRdPjsKSW5kZXg6IGNmZS90cnVuay9p bmNsdWRlL2NsYW5nL0Jhc2ljL09wZW5NUEtpbmRzLmRlZgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBjZmUvdHJ1bmsvaW5jbHVkZS9jbGFuZy9CYXNp Yy9PcGVuTVBLaW5kcy5kZWYKKysrIGNmZS90cnVuay9pbmNsdWRlL2NsYW5n L0Jhc2ljL09wZW5NUEtpbmRzLmRlZgpAQCAtMTU2LDYgKzE1Niw3IEBACiBP UEVOTVBfRElSRUNUSVZFX0VYVChmb3Jfc2ltZCwgImZvciBzaW1kIikKIE9Q RU5NUF9ESVJFQ1RJVkVfRVhUKGNhbmNlbGxhdGlvbl9wb2ludCwgImNhbmNl bGxhdGlvbiBwb2ludCIpCiBPUEVOTVBfRElSRUNUSVZFX0VYVChkZWNsYXJl X3JlZHVjdGlvbiwgImRlY2xhcmUgcmVkdWN0aW9uIikKK09QRU5NUF9ESVJF Q1RJVkVfRVhUKGRlY2xhcmVfc2ltZCwgImRlY2xhcmUgc2ltZCIpCiBPUEVO TVBfRElSRUNUSVZFKHRhc2tsb29wKQogT1BFTk1QX0RJUkVDVElWRV9FWFQo dGFza2xvb3Bfc2ltZCwgInRhc2tsb29wIHNpbWQiKQogT1BFTk1QX0RJUkVD VElWRShkaXN0cmlidXRlKQpJbmRleDogY2ZlL3RydW5rL2luY2x1ZGUvY2xh bmcvUGFyc2UvUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Y2ZlL3RydW5rL2luY2x1ZGUvY2xhbmcvUGFyc2UvUGFyc2VyLmgKKysrIGNm ZS90cnVuay9pbmNsdWRlL2NsYW5nL1BhcnNlL1BhcnNlci5oCkBAIC0yNDI4 LDcgKzI0MjgsNyBAQAogICAgICAgUGFyc2luZ0RlY2xSQUlJT2JqZWN0ICpE aWFnc0Zyb21UUGFyYW1zID0gbnVsbHB0cik7CiAgIERlY2xHcm91cFB0clR5 IFBhcnNlQ1hYQ2xhc3NNZW1iZXJEZWNsYXJhdGlvbldpdGhQcmFnbWFzKAog ICAgICAgQWNjZXNzU3BlY2lmaWVyICZBUywgUGFyc2VkQXR0cmlidXRlc1dp dGhSYW5nZSAmQWNjZXNzQXR0cnMsCi0gICAgICBEZWNsU3BlYzo6VFNUIFRh Z1R5cGUsIERlY2wgKlRhZ0RlY2wpOworICAgICAgRGVjbFNwZWM6OlRTVCBU YWdUeXBlLCBEZWNsICpUYWcpOwogICB2b2lkIFBhcnNlQ29uc3RydWN0b3JJ bml0aWFsaXplcihEZWNsICpDb25zdHJ1Y3RvckRlY2wpOwogICBNZW1Jbml0 UmVzdWx0IFBhcnNlTWVtSW5pdGlhbGl6ZXIoRGVjbCAqQ29uc3RydWN0b3JE ZWNsKTsKICAgdm9pZCBIYW5kbGVNZW1iZXJGdW5jdGlvbkRlY2xEZWxheXMo RGVjbGFyYXRvciYgRGVjbGFyYXRvckluZm8sCkBAIC0yNDU3LDcgKzI0NTcs MTAgQEAKICAgLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiAg IC8vIE9wZW5NUDogRGlyZWN0aXZlcyBhbmQgY2xhdXNlcy4KICAgLy8vIFxi cmllZiBQYXJzZXMgZGVjbGFyYXRpdmUgT3Blbk1QIGRpcmVjdGl2ZXMuCi0g IERlY2xHcm91cFB0clR5IFBhcnNlT3Blbk1QRGVjbGFyYXRpdmVEaXJlY3Rp dmUoQWNjZXNzU3BlY2lmaWVyIEFTKTsKKyAgRGVjbEdyb3VwUHRyVHkgUGFy c2VPcGVuTVBEZWNsYXJhdGl2ZURpcmVjdGl2ZVdpdGhFeHREZWNsKAorICAg ICAgQWNjZXNzU3BlY2lmaWVyICZBUywgUGFyc2VkQXR0cmlidXRlc1dpdGhS YW5nZSAmQXR0cnMsCisgICAgICBEZWNsU3BlYzo6VFNUIFRhZ1R5cGUgPSBE ZWNsU3BlYzo6VFNUX3Vuc3BlY2lmaWVkLAorICAgICAgRGVjbCAqVGFnRGVj bCA9IG51bGxwdHIpOwogICAvLy8gXGJyaWVmIFBhcnNlICdvbXAgZGVjbGFy ZSByZWR1Y3Rpb24nIGNvbnN0cnVjdC4KICAgRGVjbEdyb3VwUHRyVHkgUGFy c2VPcGVuTVBEZWNsYXJlUmVkdWN0aW9uRGlyZWN0aXZlKEFjY2Vzc1NwZWNp ZmllciBBUyk7CiAgIC8vLyBcYnJpZWYgUGFyc2VzIHNpbXBsZSBsaXN0IG9m IHZhcmlhYmxlcy4KSW5kZXg6IGNmZS90cnVuay9pbmNsdWRlL2NsYW5nL1Nl bWEvU2VtYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNmZS90cnVu ay9pbmNsdWRlL2NsYW5nL1NlbWEvU2VtYS5oCisrKyBjZmUvdHJ1bmsvaW5j bHVkZS9jbGFuZy9TZW1hL1NlbWEuaApAQCAtMTQ2LDYgKzE0Niw3IEBACiAg IGNsYXNzIE9iakNQcm90b2NvbERlY2w7CiAgIGNsYXNzIE9NUFRocmVhZFBy aXZhdGVEZWNsOwogICBjbGFzcyBPTVBEZWNsYXJlUmVkdWN0aW9uRGVjbDsK KyAgY2xhc3MgT01QRGVjbGFyZVNpbWREZWNsOwogICBjbGFzcyBPTVBDbGF1 c2U7CiAgIHN0cnVjdCBPdmVybG9hZENhbmRpZGF0ZTsKICAgY2xhc3MgT3Zl cmxvYWRDYW5kaWRhdGVTZXQ7CkBAIC04MDg3LDYgKzgwODgsMTEgQEAKICAg ICAgIFNvdXJjZUxvY2F0aW9uIEVuZExvYywKICAgICAgIGxsdm06OkRlbnNl TWFwPFZhbHVlRGVjbCAqLCBFeHByICo+ICZWYXJzV2l0aEltcGxpY2l0RFNB KTsKIAorICAvLy8gXGJyaWVmIENhbGxlZCBvbiB3ZWxsLWZvcm1lZCAnXCNw cmFnbWEgb21wIGRlY2xhcmUgc2ltZCcgYWZ0ZXIgcGFyc2luZyBvZgorICAv Ly8gdGhlIGFzc29jaWF0ZWQgbWV0aG9kL2Z1bmN0aW9uLgorICBEZWNsR3Jv dXBQdHJUeSBBY3RPbk9wZW5NUERlY2xhcmVTaW1kRGlyZWN0aXZlKERlY2xH cm91cFB0clR5IERHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNvdXJjZUxvY2F0aW9uIFN0YXJ0TG9jKTsK KwogICBPTVBDbGF1c2UgKkFjdE9uT3Blbk1QU2luZ2xlRXhwckNsYXVzZShP cGVuTVBDbGF1c2VLaW5kIEtpbmQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEV4cHIgKkV4cHIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZUxvY2F0aW9uIFN0 YXJ0TG9jLApJbmRleDogY2ZlL3RydW5rL3Rlc3QvT3Blbk1QL2RlY2xhcmVf c2ltZF9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Y2ZlL3RydW5rL3Rlc3QvT3Blbk1QL2RlY2xhcmVfc2ltZF9tZXNzYWdlcy5j cHAKKysrIGNmZS90cnVuay90ZXN0L09wZW5NUC9kZWNsYXJlX3NpbWRfbWVz c2FnZXMuY3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8vIFJVTjogJWNsYW5nX2Nj MSAtdHJpcGxlPXg4Nl82NC1wYy13aW4zMiAtdmVyaWZ5IC1mb3Blbm1wIC14 IGMrKyAtc3RkPWMrKzExIC1mbXMtZXh0ZW5zaW9ucyAlcworCisvLyBleHBl Y3RlZC1lcnJvckArMSB7e2V4cGVjdGVkIGFuIE9wZW5NUCBkaXJlY3RpdmV9 fQorI3ByYWdtYSBvbXAgZGVjbGFyZQorCisvLyBleHBlY3RlZC1lcnJvckAr MiB7eycjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQnIGNhbiBvbmx5IGJlIGFw cGxpZWQgdG8gZnVuY3Rpb25zfX0KKyNwcmFnbWEgb21wIGRlY2xhcmUgc2lt ZAoraW50IGE7CisvLyBleHBlY3RlZC1lcnJvckArMiB7eycjcHJhZ21hIG9t cCBkZWNsYXJlIHNpbWQnIGNhbiBvbmx5IGJlIGFwcGxpZWQgdG8gZnVuY3Rp b25zfX0KKyNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAorI3ByYWdtYSBvbXAg dGhyZWFkcHJpdmF0ZShhKQoraW50IHZhcjsKKyNwcmFnbWEgb21wIHRocmVh ZHByaXZhdGUodmFyKQorCisvLyBleHBlY3RlZC1lcnJvckArMiB7e2V4cGVj dGVkIGFuIE9wZW5NUCBkaXJlY3RpdmV9fSBleHBlY3RlZC1lcnJvckArMSB7 e2Z1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIGV4cGVjdGVkIGFmdGVyICdkZWNs YXJlIHNpbWQnIGRpcmVjdGl2ZX19CisjcHJhZ21hIG9tcCBkZWNsYXJlIHNp bWQKKyNwcmFnbWEgb21wIGRlY2xhcmUKKworLy8gZXhwZWN0ZWQtZXJyb3JA KzMge3tmdW5jdGlvbiBkZWNsYXJhdGlvbiBpcyBleHBlY3RlZCBhZnRlciAn ZGVjbGFyZSBzaW1kJyBkaXJlY3RpdmV9fQorLy8gZXhwZWN0ZWQtZXJyb3JA KzEge3tmdW5jdGlvbiBkZWNsYXJhdGlvbiBpcyBleHBlY3RlZCBhZnRlciAn ZGVjbGFyZSBzaW1kJyBkaXJlY3RpdmV9fQorI3ByYWdtYSBvbXAgZGVjbGFy ZSBzaW1kCisjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQKKyNwcmFnbWEgb3B0 aW9ucyBhbGlnbj1wYWNrZWQKK2ludCBtYWluKCk7CisKKy8vIGV4cGVjdGVk LWVycm9yQCszIHt7ZnVuY3Rpb24gZGVjbGFyYXRpb24gaXMgZXhwZWN0ZWQg YWZ0ZXIgJ2RlY2xhcmUgc2ltZCcgZGlyZWN0aXZlfX0KKy8vIGV4cGVjdGVk LWVycm9yQCsxIHt7ZnVuY3Rpb24gZGVjbGFyYXRpb24gaXMgZXhwZWN0ZWQg YWZ0ZXIgJ2RlY2xhcmUgc2ltZCcgZGlyZWN0aXZlfX0KKyNwcmFnbWEgb21w IGRlY2xhcmUgc2ltZAorI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kCisjcHJh Z21hIGluaXRfc2VnKGNvbXBpbGVyKQoraW50IG1haW4oKTsKKworLy8gZXhw ZWN0ZWQtZXJyb3JAKzEge3tzaW5nbGUgZGVjbGFyYXRpb24gaXMgZXhwZWN0 ZWQgYWZ0ZXIgJ2RlY2xhcmUgc2ltZCcgZGlyZWN0aXZlfX0KKyNwcmFnbWEg b21wIGRlY2xhcmUgc2ltZAoraW50IGIsIGM7CisKKyNwcmFnbWEgb21wIGRl Y2xhcmUgc2ltZAordGVtcGxhdGUgPGNsYXNzIEM+Cit2b2lkIGgoQyAqaHAs IEMgKmhwMiwgQyAqaHEsIEMgKmxpbikgeworICBiID0gMDsKK30KKworI3By YWdtYSBvbXAgZGVjbGFyZSBzaW1kCit0ZW1wbGF0ZSA8Pgordm9pZCBoKGlu dCAqaHAsIGludCAqaHAyLCBpbnQgKmhxLCBpbnQgKmxpbikgeworICBoKChm bG9hdCAqKWhwLCAoZmxvYXQgKilocDIsIChmbG9hdCAqKWhxLCAoZmxvYXQg KilsaW4pOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK3N0cnVjdCBTdCB7 CisvLyBleHBlY3RlZC1lcnJvckArMiB7e2Z1bmN0aW9uIGRlY2xhcmF0aW9u IGlzIGV4cGVjdGVkIGFmdGVyICdkZWNsYXJlIHNpbWQnIGRpcmVjdGl2ZX19 CisjcHJhZ21hIGluaXRfc2VnKGNvbXBpbGVyKQorI3ByYWdtYSBvbXAgZGVj bGFyZSBzaW1kCisjcHJhZ21hIGluaXRfc2VnKGNvbXBpbGVyKQorICB2b2lk IGgoVCAqaHApIHsKKy8vIGV4cGVjdGVkLWVycm9yQCsxIHt7dW5leHBlY3Rl ZCBPcGVuTVAgZGlyZWN0aXZlICcjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQn fX0KKyNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAorICAgICpocCA9ICp0Owor ICB9CisKK3ByaXZhdGU6CisgIFQgdDsKK307CisKK25hbWVzcGFjZSBOIHsK KyAgLy8gZXhwZWN0ZWQtZXJyb3JAKzEge3tmdW5jdGlvbiBkZWNsYXJhdGlv biBpcyBleHBlY3RlZCBhZnRlciAnZGVjbGFyZSBzaW1kJyBkaXJlY3RpdmV9 fQorICAjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQKK30KKy8vIGV4cGVjdGVk LWVycm9yQCsxIHt7ZnVuY3Rpb24gZGVjbGFyYXRpb24gaXMgZXhwZWN0ZWQg YWZ0ZXIgJ2RlY2xhcmUgc2ltZCcgZGlyZWN0aXZlfX0KKyNwcmFnbWEgb21w IGRlY2xhcmUgc2ltZAorLy8gZXhwZWN0ZWQtZXJyb3JAKzEge3tmdW5jdGlv biBkZWNsYXJhdGlvbiBpcyBleHBlY3RlZCBhZnRlciAnZGVjbGFyZSBzaW1k JyBkaXJlY3RpdmV9fQorI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kCkluZGV4 OiBjZmUvdHJ1bmsvdGVzdC9PcGVuTVAvZGVjbGFyZV9zaW1kX2FzdF9wcmlu dC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNmZS90cnVuay90ZXN0 L09wZW5NUC9kZWNsYXJlX3NpbWRfYXN0X3ByaW50LmMKKysrIGNmZS90cnVu ay90ZXN0L09wZW5NUC9kZWNsYXJlX3NpbWRfYXN0X3ByaW50LmMKQEAgLTAs MCArMSwxNyBAQAorLy8gUlVOOiAlY2xhbmdfY2MxIC12ZXJpZnkgLWZvcGVu bXAgLWFzdC1wcmludCAlcyB8IEZpbGVDaGVjayAlcworLy8gUlVOOiAlY2xh bmdfY2MxIC1mb3Blbm1wIC1lbWl0LXBjaCAtbyAldCAlcworLy8gUlVOOiAl Y2xhbmdfY2MxIC1mb3Blbm1wIC1pbmNsdWRlLXBjaCAldCAtZnN5bnRheC1v bmx5IC12ZXJpZnkgJXMgLWFzdC1wcmludCB8IEZpbGVDaGVjayAlcworLy8g ZXhwZWN0ZWQtbm8tZGlhZ25vc3RpY3MKKworI2lmbmRlZiBIRUFERVIKKyNk ZWZpbmUgSEVBREVSCisKKyNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAorI3By YWdtYSBvbXAgZGVjbGFyZSBzaW1kCit2b2lkIGFkZF8xKGZsb2F0ICpkLCBm bG9hdCAqczEsIGZsb2F0ICpzMikgX19hdHRyaWJ1dGVfXygoY29sZCkpOwor CisvLyBDSEVDSzogI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kCisvLyBDSEVD Sy1ORVhUOiAjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQKKy8vIENIRUNLLU5F WFQ6IHZvaWQgYWRkXzEoZmxvYXQgKmQsIGZsb2F0ICpzMSwgZmxvYXQgKnMy KSBfX2F0dHJpYnV0ZV9fKChjb2xkKSkKKworI2VuZGlmCkluZGV4OiBjZmUv dHJ1bmsvdGVzdC9PcGVuTVAvZGVjbGFyZV9zaW1kX2FzdF9wcmludC5jcHAK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gY2ZlL3RydW5rL3Rlc3QvT3Bl bk1QL2RlY2xhcmVfc2ltZF9hc3RfcHJpbnQuY3BwCisrKyBjZmUvdHJ1bmsv dGVzdC9PcGVuTVAvZGVjbGFyZV9zaW1kX2FzdF9wcmludC5jcHAKQEAgLTAs MCArMSwxMzEgQEAKKy8vIFJVTjogJWNsYW5nX2NjMSAtdmVyaWZ5IC1mb3Bl bm1wIC14IGMrKyAtc3RkPWMrKzExIC1hc3QtcHJpbnQgJXMgfCBGaWxlQ2hl Y2sgJXMKKy8vIFJVTjogJWNsYW5nX2NjMSAtZm9wZW5tcCAteCBjKysgLXN0 ZD1jKysxMSAtZW1pdC1wY2ggLW8gJXQgJXMKKy8vIFJVTjogJWNsYW5nX2Nj MSAtZm9wZW5tcCAteCBjKysgLXN0ZD1jKysxMSAtaW5jbHVkZS1wY2ggJXQg LWZzeW50YXgtb25seSAtdmVyaWZ5ICVzIC1hc3QtcHJpbnQgfCBGaWxlQ2hl Y2sgJXMKKy8vIGV4cGVjdGVkLW5vLWRpYWdub3N0aWNzCisKKyNpZm5kZWYg SEVBREVSCisjZGVmaW5lIEhFQURFUgorCisjcHJhZ21hIG9tcCBkZWNsYXJl IHNpbWQKK3ZvaWQgYWRkXzEoZmxvYXQgKmQpIF9fYXR0cmlidXRlX18oKGNv bGQpKTsKKworLy8gQ0hFQ0s6ICNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAor Ly8gQ0hFQ0stTkVYVDogdm9pZCBhZGRfMShmbG9hdCAqZCkgX19hdHRyaWJ1 dGVfXygoY29sZCkpOworLy8KKworI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1k Cit0ZW1wbGF0ZSA8Y2xhc3MgQz4gdm9pZCBoKEMgKmhwLCBDICpocDIsIEMg KmhxLCBDICpsaW4pIHsKK30KKworLy8gQ0hFQ0s6ICNwcmFnbWEgb21wIGRl Y2xhcmUgc2ltZAorLy8gQ0hFQ0stTkVYVDogdGVtcGxhdGUgPGNsYXNzIEMg PSBpbnQ+IHZvaWQgaChpbnQgKmhwLCBpbnQgKmhwMiwgaW50ICpocSwgaW50 ICpsaW4pIHsKKy8vIENIRUNLLU5FWFQ6IGgoKGZsb2F0ICopaHAsIChmbG9h dCAqKWhwMiwgKGZsb2F0ICopaHEsIChmbG9hdCAqKWxpbik7CisvLyBDSEVD Sy1ORVhUOiB9CisKKy8vIENIRUNLOiAjcHJhZ21hIG9tcCBkZWNsYXJlIHNp bWQKKy8vIENIRUNLLU5FWFQ6IHRlbXBsYXRlIDxjbGFzcyBDID0gZmxvYXQ+ IHZvaWQgaChmbG9hdCAqaHAsIGZsb2F0ICpocDIsIGZsb2F0ICpocSwgZmxv YXQgKmxpbikgeworLy8gQ0hFQ0stTkVYVDogfQorCisvLyBDSEVDSzogI3By YWdtYSBvbXAgZGVjbGFyZSBzaW1kCisvLyBDSEVDSzogdGVtcGxhdGUgPGNs YXNzIEM+IHZvaWQgaChDICpocCwgQyAqaHAyLCBDICpocSwgQyAqbGluKSB7 CisvLyBDSEVDSy1ORVhUOiB9CisvLworCisvLyBFeHBsaWNpdCBzcGVjaWFs aXphdGlvbiB3aXRoIDxDPWludD4uCisvLyBQcmFnbWFzIG5lZWQgdG8gYmUg c2FtZSwgb3RoZXJ3aXNlIHN0YW5kYXJkIHNheXMgdGhhdCdzIHVuZGVmaW5l ZCBiZWhhdmlvci4KKyNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAordGVtcGxh dGUgPD4KK3ZvaWQgaChpbnQgKmhwLCBpbnQgKmhwMiwgaW50ICpocSwgaW50 ICpsaW4pCit7CisgIC8vIEltcGxpY2l0IHNwZWNpYWxpemF0aW9uIHdpdGgg PEM9ZmxvYXQ+LgorICAvLyBUaGlzIGlzIHNwZWNpYWwgY2FzZSB3aGVyZSB0 aGUgZGlyZWN0aXZlIGlzIHN0b3JlZCBieSBTZW1hIGFuZCBpcworICAvLyBn ZW5lcmF0ZWQgdG9nZXRoZXIgd2l0aCB0aGUgKHBlbmRpbmcpIGZ1bmN0aW9u IGluc3RhdGlhdGlvbi4KKyAgaCgoZmxvYXQqKSBocCwgKGZsb2F0KikgaHAy LCAoZmxvYXQqKSBocSwgKGZsb2F0KikgbGluKTsKK30KKworY2xhc3MgVlYg eworICAvLyBDSEVDSzogI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kCisgIC8v IENIRUNLLU5FWFQ6IGludCBhZGQoaW50IGEsIGludCBiKSBfX2F0dHJpYnV0 ZV9fKChjb2xkKSkgICAgeworICAvLyBDSEVDSy1ORVhUOiByZXR1cm4gYSAr IGI7CisgIC8vIENIRUNLLU5FWFQ6IH0KKyAgI3ByYWdtYSBvbXAgZGVjbGFy ZSBzaW1kCisgIGludCBhZGQoaW50IGEsIGludCBiKSBfX2F0dHJpYnV0ZV9f KChjb2xkKSkgeyByZXR1cm4gYSArIGI7IH0KKworICAvLyBDSEVDSzogI3By YWdtYSBvbXAgZGVjbGFyZSBzaW1kCisgIC8vIENIRUNLLU5FWFQ6IGZsb2F0 IHRhZGRwZihmbG9hdCAqYSwgZmxvYXQgKmIpICAgICB7CisgIC8vIENIRUNL LU5FWFQ6IHJldHVybiAqYSArICpiOworICAvLyBDSEVDSy1ORVhUOiB9Cisg ICNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAorICBmbG9hdCB0YWRkcGYoZmxv YXQgKmEsIGZsb2F0ICpiKSB7IHJldHVybiAqYSArICpiOyB9CisKKy8vIENI RUNLOiAjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQKKy8vIENIRUNLLU5FWFQ6 ICNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAorLy8gQ0hFQ0stTkVYVDogaW50 IHRhZGQoaW50IGIpIHsKKy8vIENIRUNLLU5FWFQ6IHJldHVybiB0aGlzLT54 W2JdICsgYjsKKy8vIENIRUNLLU5FWFQ6IH0KKyAgI3ByYWdtYSBvbXAgZGVj bGFyZSBzaW1kCisgICNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAorICBpbnQg dGFkZChpbnQgYikgeyByZXR1cm4geFtiXSArIGI7IH0KKworcHJpdmF0ZToK KyAgaW50IHhbMTBdOworfTsKKworLy8gQ0hFQ0s6IHRlbXBsYXRlIDxpbnQg WCA9IDE2PiBjbGFzcyBUVlYgeworLy8gQ0hFQ0s6ICNwcmFnbWEgb21wIGRl Y2xhcmUgc2ltZAorLy8gQ0hFQ0stTkVYVDogaW50IHRhZGQoaW50IGEsIGlu dCBiKTsKKy8vIENIRUNLOiAjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQKKy8v IENIRUNLLU5FWFQ6IGZsb2F0IHRhZGRwZihmbG9hdCAqYSwgZmxvYXQgKmIp IHsKKy8vIENIRUNLLU5FWFQ6IHJldHVybiAqYSArICpiOworLy8gQ0hFQ0st TkVYVDogfQorLy8gQ0hFQ0s6ICNwcmFnbWEgb21wIGRlY2xhcmUgc2ltZAor Ly8gQ0hFQ0stTkVYVDogI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kCisvLyBD SEVDSy1ORVhUOiBpbnQgdGFkZChpbnQgYikgeworLy8gQ0hFQ0stTkVYVDog cmV0dXJuIHRoaXMtPnhbYl0gKyBiOworLy8gQ0hFQ0stTkVYVDogfQorLy8g Q0hFQ0s6IH0KK3RlbXBsYXRlIDxpbnQgWD4KK2NsYXNzIFRWViB7CitwdWJs aWM6CisvLyBDSEVDSzogdGVtcGxhdGUgPGludCBYPiBjbGFzcyBUVlYgewor ICAjcHJhZ21hIG9tcCBkZWNsYXJlIHNpbWQKKyAgaW50IHRhZGQoaW50IGEs IGludCBiKSB7IHJldHVybiBhICsgYjsgfQorCisvLyBDSEVDSzogI3ByYWdt YSBvbXAgZGVjbGFyZSBzaW1kCisvLyBDSEVDSy1ORVhUOiBpbnQgdGFkZChp bnQgYSwgaW50IGIpIHsKKy8vIENIRUNLLU5FWFQ6IHJldHVybiBhICsgYjsK Ky8vIENIRUNLLU5FWFQ6IH0KKworICAjcHJhZ21hIG9tcCBkZWNsYXJlIHNp bWQKKyAgZmxvYXQgdGFkZHBmKGZsb2F0ICphLCBmbG9hdCAqYikgeyByZXR1 cm4gKmEgKyAqYjsgfQorCisvLyBDSEVDSzogI3ByYWdtYSBvbXAgZGVjbGFy ZSBzaW1kCisvLyBDSEVDSy1ORVhUOiBmbG9hdCB0YWRkcGYoZmxvYXQgKmEs IGZsb2F0ICpiKSB7CisvLyBDSEVDSy1ORVhUOiByZXR1cm4gKmEgKyAqYjsK Ky8vIENIRUNLLU5FWFQ6IH0KKworICAjcHJhZ21hIG9tcCBkZWNsYXJlIHNp bWQKKyAgI3ByYWdtYSBvbXAgZGVjbGFyZSBzaW1kCisgIGludCB0YWRkKGlu dCBiKSB7IHJldHVybiB4W2JdICsgYjsgfQorCisvLyBDSEVDSzogI3ByYWdt YSBvbXAgZGVjbGFyZSBzaW1kCisvLyBDSEVDSy1ORVhUOiAjcHJhZ21hIG9t cCBkZWNsYXJlIHNpbWQKKy8vIENIRUNLLU5FWFQ6IGludCB0YWRkKGludCBi KSB7CisvLyBDSEVDSy1ORVhUOiByZXR1cm4gdGhpcy0+eFtiXSArIGI7Cisv LyBDSEVDSy1ORVhUOiB9CisKK3ByaXZhdGU6CisgIGludCB4W1hdOworfTsK Ky8vIENIRUNLOiB9OworCisvLyBDSEVDSzogVFZWPDE2PiB0MTY7CitUVlY8 MTY+IHQxNjsKKwordm9pZCBmKCkgeworICBmbG9hdCBhID0gMS4wZiwgYiA9 IDIuMGY7CisgIGZsb2F0IHIgPSB0MTYudGFkZHBmKCZhLCAmYik7CisgIGlu dCByZXMgPSB0MTYudGFkZChiKTsKK30KKworI2VuZGlmCg== --b1_8fa7d194d6ac8ed10f67e1d085b86b46 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KY2ZlLWNvbW1p dHMgbWFpbGluZyBsaXN0CmNmZS1jb21taXRzQGxpc3RzLmxsdm0ub3JnCmh0dHA6Ly9saXN0cy5s bHZtLm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vY2ZlLWNvbW1pdHMK --b1_8fa7d194d6ac8ed10f67e1d085b86b46--