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: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/ejabberd] f45: Ver. 2.1.6 Date: Wed, 23 Sep 2026 19:07:02 GMT Message-ID: <179019042231.1.5570967641490648007.rpms-ejabberd-5c2945ff47a1@fedoraproject.org> List-ID: X-Git-Repo: rpms/ejabberd X-Git-Branch: f45 X-Git-Rev: 5c2945ff47a11443f1c33686b8ab24db653fca64 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZWphYmJlcmQKICAgICAgICAgICAgQnJhbmNoIDogZjQ1CiAgICAgICAgICAg IENvbW1pdCA6IDVjMjk0NWZmNDdhMTE0NDNmMWMzMzY4NmI4YWIyNGRiNjUzZmNhNjQKICAgICAg ICAgICAgQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAxMC0xMi0xNFQyMjo0NzoyOCswMzowMAogICAgICAgICAgICBTdGF0 cyAgOiArMjgyNC8tMzA2MiBpbiAyNyBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBz Oi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZWphYmJlcmQvYy81YzI5NDVmZjQ3YTExNDQz ZjFjMzM2ODZiOGFiMjRkYjY1M2ZjYTY0P2JyYW5jaD1mNDUKCiAgICAgICAgICAgIExvZzoKICAg ICAgICAgICAgVmVyLiAyLjEuNgoKU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVu a292QGdtYWlsLmNvbT4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUK aW5kZXggMDMwOGI5My4uNzc5NGVhMyAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0 aWdub3JlCkBAIC0xLDIgKzEsMyBAQAogZWphYmJlcmQtMi4xLjQudGFyLmd6CiBlamFiYmVyZC0y LjEuNS50YXIuZ3oKKy9lamFiYmVyZC0yLjEuNi50YXIuZ3oKCmRpZmYgLS1naXQgYS9lamFiYmVy ZC0wMDAxLUZpeC1QQU0tc2VydmljZS1leGFtcGxlLW5hbWUtdG8tbWF0Y2gtYWN0dWFsLW9uZS5w YXRjaCBiL2VqYWJiZXJkLTAwMDEtRml4LVBBTS1zZXJ2aWNlLWV4YW1wbGUtbmFtZS10by1tYXRj aC1hY3R1YWwtb25lLnBhdGNoCmluZGV4IDVlOTQ0NGYuLjNiMGRkMzQgMTAwNjQ0Ci0tLSBhL2Vq YWJiZXJkLTAwMDEtRml4LVBBTS1zZXJ2aWNlLWV4YW1wbGUtbmFtZS10by1tYXRjaC1hY3R1YWwt b25lLnBhdGNoCisrKyBiL2VqYWJiZXJkLTAwMDEtRml4LVBBTS1zZXJ2aWNlLWV4YW1wbGUtbmFt ZS10by1tYXRjaC1hY3R1YWwtb25lLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA1ZmRiNjU1 N2JlOGI1NzU4ODU2YTkxZTgxNzJhY2ZkZGM5ZDA0MzgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbSA5MDg3YTBiMjdiM2Q1NmY4ZmRiMjhlNTE5MDAxMjc5NmYzNDhkNDNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQogRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KIERhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MDM6MzggKzAzMDAKIFN1YmplY3Q6IFtQQVRD SCAwMS8xMF0gRml4IFBBTSBzZXJ2aWNlIGV4YW1wbGUgbmFtZSB0byBtYXRjaCBhY3R1YWwgb25l CkBAIC05LDEwICs5LDEwIEBAIFNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtv dkBnbWFpbC5jb20+CiAgMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b25zKC0pCiAKIGRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmQuY2ZnLmV4YW1wbGUgYi9zcmMvZWph YmJlcmQuY2ZnLmV4YW1wbGUKLWluZGV4IDQwODc5NDcuLmIzNTFjZmMgMTAwNjQ0CitpbmRleCBh OTU2ODliLi4wMDVjNzNjIDEwMDY0NAogLS0tIGEvc3JjL2VqYWJiZXJkLmNmZy5leGFtcGxlCiAr KysgYi9zcmMvZWphYmJlcmQuY2ZnLmV4YW1wbGUKLUBAIC0yMzUsNyArMjM1LDcgQEAKK0BAIC0y MzYsNyArMjM2LDcgQEAKICAlJSBBdXRoZW50aWNhdGlvbiB1c2luZyBQQU0KICAlJQogICUle2F1 dGhfbWV0aG9kLCBwYW19LgpAQCAtMjIsNSArMjIsNSBAQCBpbmRleCA0MDg3OTQ3Li5iMzUxY2Zj IDEwMDY0NAogICUlCiAgJSUgQXV0aGVudGljYXRpb24gdXNpbmcgTERBUAogLS0gCi0xLjcuMi4x CisxLjcuMy4zCiAKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDAyLUFkZC1tb2RfY3RsZXh0cmEt YXMtYW4tZWphYmJlcmQtbW9kdWxlLnBhdGNoIGIvZWphYmJlcmQtMDAwMi1BZGQtbW9kX2N0bGV4 dHJhLWFzLWFuLWVqYWJiZXJkLW1vZHVsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xZWJjZDFmCi0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQtMDAwMi1BZGQt bW9kX2N0bGV4dHJhLWFzLWFuLWVqYWJiZXJkLW1vZHVsZS5wYXRjaApAQCAtMCwwICsxLDkzNiBA QAorRnJvbSA4NWI0MzJkMDI5M2Q4NjdkZDVjMTFhZThlN2I1YzcyNGI3ZmFkMDU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KK0RhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MDU6NTMgKzAzMDAKK1N1YmplY3Q6IFtQQVRD SCAwMi8xMF0gQWRkIG1vZF9jdGxleHRyYSBhcyBhbiBlamFiYmVyZCBtb2R1bGUKKworU2VlIHRo aXMgbGluayBmb3IgdGhlIGRldGFpbHM6CitodHRwOi8vd3d3LmVqYWJiZXJkLmltL21vZF9jdGxl eHRyYQorCitBbHNvIG5vdGUgdGhhdCB0aGlzIG1vZHVsZSB3aWxsIGJlIHJlbW92ZWQgaW4gdGhl IG5lYXJlc3QgZnV0dXJlCitpbiBmYXZvciBvZiBtb2RfYWRtaW5fZXh0cmE6CisKK3N2biBleHBv cnQgLXIgMTAyMCBodHRwczovL3N2bi5wcm9jZXNzLW9uZS5uZXQvZWphYmJlcmQtbW9kdWxlcy9t b2RfY3RsZXh0cmEvdHJ1bmsvc3JjL21vZF9jdGxleHRyYS5lcmwKKworU2lnbmVkLW9mZi1ieTog UGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KKy0tLQorIHNyYy9lamFiYmVyZC5h cHAgICAgIHwgICAgMSArCisgc3JjL21vZF9jdGxleHRyYS5lcmwgfCAgODk1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2Vk LCA4OTYgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL21vZF9jdGxleHRyYS5lcmwKKworZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZC5hcHAgYi9z cmMvZWphYmJlcmQuYXBwCitpbmRleCBjMmQyODJkLi42ZGI1NjNjIDEwMDY0NAorLS0tIGEvc3Jj L2VqYWJiZXJkLmFwcAorKysrIGIvc3JjL2VqYWJiZXJkLmFwcAorQEAgLTcwLDYgKzcwLDcgQEAK KyAJICAgICBtb2RfY2FwcywKKyAJICAgICBtb2RfY29uZmlndXJlMiwKKyAJICAgICBtb2RfY29u ZmlndXJlLAorKwkgICAgIG1vZF9jdGxleHRyYSwKKyAJICAgICBtb2RfZGlzY28sCisgCSAgICAg bW9kX2VjaG8sCisgCSAgICAgbW9kX2h0dHBfYmluZCwKK2RpZmYgLS1naXQgYS9zcmMvbW9kX2N0 bGV4dHJhLmVybCBiL3NyYy9tb2RfY3RsZXh0cmEuZXJsCituZXcgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMDAwMDAwMC4uYmM2MTAyNAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL21vZF9jdGxl eHRyYS5lcmwKK0BAIC0wLDAgKzEsODk1IEBACisrJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyslJSUgRmls ZSAgICA6IG1vZF9jdGxleHRyYS5lcmwNCisrJSUlIEF1dGhvciAgOiBCYWRsb3AgPGJhZGxvcEBv bm8uY29tPg0KKyslJSUgUHVycG9zZSA6IEFkZHMgbW9yZSBjb21tYW5kcyB0byBlamFiYmVyZF9j dGwNCisrJSUlIENyZWF0ZWQgOiAzMCBOb3YgMjAwNiBieSBCYWRsb3AgPGJhZGxvcEBvbm8uY29t Pg0KKyslJSUgSWQgICAgICA6ICRJZDogbW9kX2N0bGV4dHJhLmVybCAxMDIwIDIwMDktMDgtMzAg MTA6MTM6MzRaIGJhZGxvcCAkDQorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisrDQorKy1tb2R1bGUobW9k X2N0bGV4dHJhKS4NCisrLWF1dGhvcignYmFkbG9wQG9uby5jb20nKS4NCisrDQorKy1iZWhhdmlv dXIoZ2VuX21vZCkuDQorKw0KKystZXhwb3J0KFtzdGFydC8yLA0KKysJIHN0b3AvMSwNCisrCSBj dGxfcHJvY2Vzcy8yLA0KKysJIGN0bF9wcm9jZXNzLzMNCisrCV0pLg0KKysNCisrLWluY2x1ZGUo ImVqYWJiZXJkLmhybCIpLg0KKystaW5jbHVkZSgiZWphYmJlcmRfY3RsLmhybCIpLg0KKystaW5j bHVkZSgiamxpYi5ocmwiKS4NCisrLWluY2x1ZGUoIm1vZF9yb3N0ZXIuaHJsIikuDQorKw0KKysl JSBDb3BpZWQgZnJvbSBlamFiYmVyZF9zbS5lcmwNCisrLXJlY29yZChzZXNzaW9uLCB7c2lkLCB1 c3IsIHVzLCBwcmlvcml0eSwgaW5mb30pLg0KKysNCisrLWNvbXBpbGUoZXhwb3J0X2FsbCkuDQor Kw0KKyslJS0tLS0tLS0tLS0tLS0NCisrJSUgZ2VuX21vZA0KKyslJS0tLS0tLS0tLS0tLS0NCisr DQorK3N0YXJ0KEhvc3QsIF9PcHRzKSAtPg0KKysgICAgZWphYmJlcmRfY3RsOnJlZ2lzdGVyX2Nv bW1hbmRzKGNvbW1hbmRzX2dsb2JhbCgpLCA/TU9EVUxFLCBjdGxfcHJvY2VzcyksDQorKyAgICBl amFiYmVyZF9jdGw6cmVnaXN0ZXJfY29tbWFuZHMoSG9zdCwgY29tbWFuZHNfaG9zdCgpLCA/TU9E VUxFLCBjdGxfcHJvY2VzcykuDQorKw0KKytzdG9wKEhvc3QpIC0+DQorKyAgICBlamFiYmVyZF9j dGw6dW5yZWdpc3Rlcl9jb21tYW5kcyhjb21tYW5kc19nbG9iYWwoKSwgP01PRFVMRSwgY3RsX3By b2Nlc3MpLA0KKysgICAgZWphYmJlcmRfY3RsOnVucmVnaXN0ZXJfY29tbWFuZHMoSG9zdCwgY29t bWFuZHNfaG9zdCgpLCA/TU9EVUxFLCBjdGxfcHJvY2VzcykuDQorKw0KKytjb21tYW5kc19nbG9i YWwoKSAtPg0KKysgICAgWw0KKysgICAgIHsiY29tcGlsZSBmaWxlIiwgInJlY29tcGlsZSBhbmQg cmVsb2FkIGZpbGUifSwNCisrICAgICB7ImxvYWQtY29uZmlnIGZpbGUiLCAibG9hZCBjb25maWcg ZnJvbSBmaWxlIn0sDQorKyAgICAgeyJyZW1vdmUtbm9kZSBub2RlbmFtZSIsICJyZW1vdmUgYW4g ZWphYmJlcmQgbm9kZSBmcm9tIHRoZSBkYXRhYmFzZSJ9LA0KKysNCisrICAgICAlJSBlamFiYmVy ZF9hdXRoDQorKyAgICAgeyJkZWxldGUtb2xkZXItdXNlcnMgZGF5cyIsICJkZWxldGUgdXNlcnMg dGhhdCBoYXZlIG5vdCBsb2dnZWQgaW4gdGhlIGxhc3QgJ2RheXMnIn0sDQorKyAgICAgeyJkZWxl dGUtb2xkZXItdXNlcnMtdmhvc3QgaG9zdCBkYXlzIiwgImRlbGV0ZSB1c2VycyB0aGF0IG5vdCBs b2dnZWQgaW4gbGFzdCAnZGF5cycgaW4gJ2hvc3QnIn0sDQorKyAgICAgeyJzZXQtcGFzc3dvcmQg dXNlciBzZXJ2ZXIgcGFzc3dvcmQiLCAic2V0IHBhc3N3b3JkIHRvIHVzZXJAc2VydmVyIn0sDQor Kw0KKysgICAgICUlIGVqZDJvZGJjDQorKyAgICAgeyJleHBvcnQyb2RiYyBzZXJ2ZXIgb3V0cHV0 IiwgImV4cG9ydCBNbmVzaWEgdGFibGVzIG9uIHNlcnZlciB0byBmaWxlcyBvbiBvdXRwdXQgZGly ZWN0b3J5In0sDQorKw0KKysgICAgICUlIG1vZF9zaGFyZWRfcm9zdGVyDQorKyAgICAgeyJzcmct Y3JlYXRlIGdyb3VwIGhvc3QgbmFtZSBkZXNjcmlwdGlvbiBkaXNwbGF5IiwgImNyZWF0ZSB0aGUg Z3JvdXAgd2l0aCBvcHRpb25zIn0sDQorKyAgICAgeyJzcmctZGVsZXRlIGdyb3VwIGhvc3QiLCAi ZGVsZXRlIHRoZSBncm91cCJ9LA0KKysgICAgIHsic3JnLXVzZXItYWRkIHVzZXIgc2VydmVyIGdy b3VwIGhvc3QiLCAiYWRkIHVzZXJAc2VydmVyIHRvIGdyb3VwIG9uIGhvc3QifSwNCisrICAgICB7 InNyZy11c2VyLWRlbCB1c2VyIHNlcnZlciBncm91cCBob3N0IiwgImRlbGV0ZSB1c2VyQHNlcnZl ciBmcm9tIGdyb3VwIG9uIGhvc3QifSwNCisrICAgICB7InNyZy1saXN0LWdyb3VwcyBob3N0Iiwg Imxpc3QgdGhlIHNoYXJlZCByb3N0ZXIgZ3JvdXBzIGZyb20gaG9zdCJ9LA0KKysgICAgIHsic3Jn LWdldC1pbmZvIGdyb3VwIGhvc3QiLCAiZ2V0IGluZm8gb2YgYSBzcGVjaWZpYyBncm91cCBvbiBo b3N0In0sDQorKw0KKysgICAgICUlIG1vZF92Y2FyZA0KKysgICAgIHsidmNhcmQtZ2V0IHVzZXIg aG9zdCBkYXRhIFtkYXRhMl0iLCAiZ2V0IGRhdGEgZnJvbSB0aGUgdkNhcmQgb2YgdGhlIHVzZXIi fSwNCisrICAgICB7InZjYXJkLXNldCB1c2VyIGhvc3QgZGF0YSBbZGF0YTJdIGNvbnRlbnQiLCAi c2V0IGRhdGEgdG8gY29udGVudCBvbiB0aGUgdkNhcmQifSwNCisrDQorKyAgICAgJSUgbW9kX2Fu bm91bmNlDQorKyAgICAgJSUgYW5ub3VuY2Vfc2VuZF9vbmxpbmUgaG9zdCBtZXNzYWdlDQorKyAg ICAgJSUgYW5ub3VuY2Vfc2VuZF9hbGwgaG9zdCwgbWVzc2FnZQ0KKysNCisrICAgICAlJSBtb2Rf cm9zdGVyDQorKyAgICAgeyJhZGQtcm9zdGVyaXRlbSB1c2VyMSBzZXJ2ZXIxIHVzZXIyIHNlcnZl cjIgbmljayBncm91cCBzdWJzIiwgIkFkZCB1c2VyMkBzZXJ2ZXIyIHRvIHVzZXIxQHNlcnZlcjEn cyByb3N0ZXIifSwNCisrICAgICAlJXsiIiwgInN1YnM9IG5vbmUsIGZyb20sIHRvIG9yIGJvdGgi fSwNCisrICAgICAlJXsiIiwgImV4YW1wbGU6IGFkZC1yb3N0ZXIgcGV0ZXIgbG9jYWxob3N0IG1p a2Ugc2VydmVyLmNvbSBNaUtlIEVtcGxveWVlcyBib3RoIn0sDQorKyAgICAgJSV7IiIsICJ3aWxs IGFkZCBtaWtlQHNlcnZlci5jb20gdG8gcGV0ZXJAbG9jYWxob3N0IHJvc3RlciJ9LA0KKysgICAg IHsicmVtLXJvc3Rlcml0ZW0gdXNlcjEgc2VydmVyMSB1c2VyMiBzZXJ2ZXIyIiwgIlJlbW92ZSB1 c2VyMkBzZXJ2ZXIyIGZyb20gdXNlcjFAc2VydmVyMSdzIHJvc3RlciJ9LA0KKysgICAgIHsicm9z dGVyaXRlbS1wdXJnZSBbb3B0aW9uc10iLCAiUHVyZ2UgYWxsIHJvc3Rlcml0ZW1zIHRoYXQgbWF0 Y2ggZmlsdGVyaW5nIG9wdGlvbnMifSwNCisrICAgICB7InB1c2hyb3N0ZXIgZmlsZSB1c2VyIHNl cnZlciIsICJwdXNoIHRlbXBsYXRlIHJvc3RlciBpbiBmaWxlIHRvIHVzZXJAc2VydmVyIn0sDQor KyAgICAgeyJwdXNocm9zdGVyLWFsbCBmaWxlIiwgInB1c2ggdGVtcGxhdGUgcm9zdGVyIGluIGZp bGUgdG8gYWxsIHRob3NlIHVzZXJzIn0sDQorKyAgICAgeyJwdXNoLWFsbHRvYWxsIHNlcnZlciBn cm91cCIsICJhZGRzIGFsbCB0aGUgdXNlcnMgdG8gYWxsIHRoZSB1c2VycyBpbiBHcm91cCJ9LA0K KysNCisrICAgICB7InN0YXR1cy1saXN0IHN0YXR1cyIsICJsaXN0IHRoZSBsb2dnZWQgdXNlcnMg d2l0aCBzdGF0dXMifSwNCisrICAgICB7InN0YXR1cy1udW0gc3RhdHVzIiwgIm51bWJlciBvZiBs b2dnZWQgdXNlcnMgd2l0aCBzdGF0dXMifSwNCisrDQorKyAgICAgeyJzdGF0cyByZWdpc3RlcmVk dXNlcnMiLCAibnVtYmVyIG9mIHJlZ2lzdGVyZWQgdXNlcnMifSwNCisrICAgICB7InN0YXRzIG9u bGluZXVzZXJzIiwgIm51bWJlciBvZiBsb2dnZWQgdXNlcnMifSwNCisrICAgICB7InN0YXRzIG9u bGluZXVzZXJzbm9kZSIsICJudW1iZXIgb2YgbG9nZ2VkIHVzZXJzIGluIHRoZSBlamFiYmVyZCBu b2RlIn0sDQorKyAgICAgeyJzdGF0cyB1cHRpbWUtc2Vjb25kcyIsICJ1cHRpbWUgb2YgZWphYmJl cmQgbm9kZSBpbiBzZWNvbmRzIn0sDQorKw0KKysgICAgICUlIG1pc2MNCisrICAgICB7ImdldC1j b29raWUiLCAiZ2V0IHRoZSBFcmxhbmcgY29va2llIG9mIHRoaXMgbm9kZSJ9LA0KKysgICAgIHsi a2lsbHNlc3Npb24gdXNlciBzZXJ2ZXIgcmVzb3VyY2UiLCAia2lsbCBhIHVzZXIgc2Vzc2lvbiJ9 DQorKyAgICBdLg0KKysNCisrY29tbWFuZHNfaG9zdCgpIC0+DQorKyAgICBbDQorKyAgICAgJSUg bW9kX2xhc3QNCisrICAgICB7Im51bS1hY3RpdmUtdXNlcnMgZGF5cyIsICJudW1iZXIgb2YgdXNl cnMgYWN0aXZlIGluIHRoZSBsYXN0ICdkYXlzJyJ9LA0KKysgICAgIHsic3RhdHVzLWxpc3Qgc3Rh dHVzIiwgImxpc3QgdGhlIGxvZ2dlZCB1c2VycyB3aXRoIHN0YXR1cyJ9LA0KKysgICAgIHsic3Rh dHVzLW51bSBzdGF0dXMiLCAibnVtYmVyIG9mIGxvZ2dlZCB1c2VycyB3aXRoIHN0YXR1cyJ9LA0K KysgICAgIHsic3RhdHMgcmVnaXN0ZXJlZHVzZXJzIiwgIm51bWJlciBvZiByZWdpc3RlcmVkIHVz ZXJzIn0sDQorKyAgICAgeyJzdGF0cyBvbmxpbmV1c2VycyIsICJudW1iZXIgb2YgbG9nZ2VkIHVz ZXJzIn0sDQorKw0KKysgICAgICUlIG1pc2MNCisrICAgICB7ImJhbi1hY2NvdW50IHVzZXJuYW1l IFtyZWFzb25dIiwgImJhbiBhY2NvdW50OiBraWNrIHNlc3Npb25zIGFuZCBjaGFuZ2UgcGFzc3dv cmQifQ0KKysgICAgXS4NCisrDQorKw0KKyslJS0tLS0tLS0tLS0tLS0NCisrJSUgQ29tbWFuZHMg Z2xvYmFsDQorKyUlLS0tLS0tLS0tLS0tLQ0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJkZWxl dGUtb2xkZXItdXNlcnMiLCBEYXlzXSkgLT4NCisrICAgIHtyZW1vdmVkLCBOLCBVUn0gPSBkZWxl dGVfb2xkZXJfdXNlcnMobGlzdF90b19pbnRlZ2VyKERheXMpKSwNCisrICAgIGlvOmZvcm1hdCgi RGVsZXRlZCB+cCB1c2VyczogfnB+biIsIFtOLCBVUl0pLA0KKysgICAgP1NUQVRVU19TVUNDRVNT Ow0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJkZWxldGUtb2xkZXItdXNlcnMtdmhvc3QiLCBI b3N0LCBEYXlzXSkgLT4NCisrICAgIHtyZW1vdmVkLCBOLCBVUn0gPSBkZWxldGVfb2xkZXJfdXNl cnNfdmhvc3QoSG9zdCwgbGlzdF90b19pbnRlZ2VyKERheXMpKSwNCisrICAgIGlvOmZvcm1hdCgi RGVsZXRlZCB+cCB1c2VyczogfnB+biIsIFtOLCBVUl0pLA0KKysgICAgP1NUQVRVU19TVUNDRVNT Ow0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJleHBvcnQyb2RiYyIsIFNlcnZlciwgT3V0cHV0 XSkgLT4NCisrICAgIFRhYmxlcyA9IFsNCisrCSAgICAgIHtleHBvcnRfbGFzdCwgbGFzdH0sDQor KwkgICAgICB7ZXhwb3J0X29mZmxpbmUsIG9mZmxpbmV9LA0KKysJICAgICAge2V4cG9ydF9wYXNz d2QsIHBhc3N3ZH0sDQorKwkgICAgICB7ZXhwb3J0X3ByaXZhdGVfc3RvcmFnZSwgcHJpdmF0ZV9z dG9yYWdlfSwNCisrCSAgICAgIHtleHBvcnRfcm9zdGVyLCByb3N0ZXJ9LA0KKysJICAgICAge2V4 cG9ydF92Y2FyZCwgdmNhcmR9LA0KKysJICAgICAge2V4cG9ydF92Y2FyZF9zZWFyY2gsIHZjYXJk X3NlYXJjaH1dLA0KKysgICAgRXhwb3J0ID0gZnVuKHtUYWJsZUZ1biwgVGFibGV9KSAtPiANCisr CQkgICAgIEZpbGVuYW1lID0gZmlsZW5hbWU6am9pbihbT3V0cHV0LCBhdG9tX3RvX2xpc3QoVGFi bGUpKysiLnR4dCJdKSwNCisrCQkgICAgIGlvOmZvcm1hdCgiVHJ5aW5nIHRvIGV4cG9ydCBNbmVz aWEgdGFibGUgJ35wJyBvbiBzZXJ2ZXIgJ35zJyB0byBmaWxlICd+cyd+biIsIFtUYWJsZSwgU2Vy dmVyLCBGaWxlbmFtZV0pLA0KKysJCSAgICAgUmVzID0gKGNhdGNoIGVqZDJvZGJjOlRhYmxlRnVu KFNlcnZlciwgRmlsZW5hbWUpKSwNCisrCQkgICAgIGlvOmZvcm1hdCgiICBSZXN1bHQ6IH5wfm4i LCBbUmVzXSkNCisrCSAgICAgZW5kLA0KKysgICAgbGlzdHM6Zm9yZWFjaChFeHBvcnQsIFRhYmxl cyksDQorKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhfVmFsLCBbInNl dC1wYXNzd29yZCIsIFVzZXIsIFNlcnZlciwgUGFzc3dvcmRdKSAtPg0KKysgICAgZWphYmJlcmRf YXV0aDpzZXRfcGFzc3dvcmQoVXNlciwgU2VydmVyLCBQYXNzd29yZCksDQorKyAgICA/U1RBVFVT X1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhfVmFsLCBbInZjYXJkLWdldCIsIFVzZXIsIFNl cnZlciwgRGF0YV0pIC0+DQorKyAgICB7b2ssIFJlc30gPSB2Y2FyZF9nZXQoVXNlciwgU2VydmVy LCBbRGF0YV0pLA0KKysgICAgaW86Zm9ybWF0KCJ+c35uIiwgW1Jlc10pLA0KKysgICAgP1NUQVRV U19TVUNDRVNTOw0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJ2Y2FyZC1nZXQiLCBVc2VyLCBT ZXJ2ZXIsIERhdGExLCBEYXRhMl0pIC0+DQorKyAgICB7b2ssIFJlc30gPSB2Y2FyZF9nZXQoVXNl ciwgU2VydmVyLCBbRGF0YTEsIERhdGEyXSksDQorKyAgICBpbzpmb3JtYXQoIn5zfm4iLCBbUmVz XSksDQorKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhfVmFsLCBbInZj YXJkLXNldCIsIFVzZXIsIFNlcnZlciwgRGF0YTEsIENvbnRlbnRdKSAtPg0KKysgICAge29rLCBS ZXN9ID0gdmNhcmRfc2V0KFVzZXIsIFNlcnZlciwgW0RhdGExXSwgQ29udGVudCksDQorKyAgICBp bzpmb3JtYXQoIn5zfm4iLCBbUmVzXSksDQorKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKytj dGxfcHJvY2VzcyhfVmFsLCBbInZjYXJkLXNldCIsIFVzZXIsIFNlcnZlciwgRGF0YTEsIERhdGEy LCBDb250ZW50XSkgLT4NCisrICAgIHtvaywgUmVzfSA9IHZjYXJkX3NldChVc2VyLCBTZXJ2ZXIs IFtEYXRhMSwgRGF0YTJdLCBDb250ZW50KSwNCisrICAgIGlvOmZvcm1hdCgifnN+biIsIFtSZXNd KSwNCisrICAgID9TVEFUVVNfU1VDQ0VTUzsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsiY29t cGlsZSIsIE1vZHVsZV0pIC0+DQorKyAgICBjb21waWxlOmZpbGUoTW9kdWxlKSwNCisrICAgID9T VEFUVVNfU1VDQ0VTUzsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsicmVtb3ZlLW5vZGUiLCBO b2RlXSkgLT4NCisrICAgIG1uZXNpYTpkZWxfdGFibGVfY29weShzY2hlbWEsIGxpc3RfdG9fYXRv bShOb2RlKSksDQorKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKyslJSBUaGUgRGlzcGxheSBh cmd1bWVudCBjYW4gYmUgc2V2ZXJhbCBncm91cHMgc2VwYXJhdGVkIHdpdGggLA0KKyslJSBFeGFt cGxlOiBlamFiYmVyZGN0bCBzcmctY3JlYXRlIGFhIGxvY2FsaG9zdCBOYW1lIERlc2MgRGlzcGxh eTEsRGlzcGxheTIsRGlzcGxheTMNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctY3JlYXRlIiB8 IFBhcmFtZXRlcnNdKSAtPg0KKysJW0dyb3VwLCBIb3N0LCBOYW1lLCBEZXNjcmlwdGlvbiwgRGlz cGxheV0gPSBncm91cF9wYXJhbWV0ZXJzKFBhcmFtZXRlcnMsICInIiksDQorKyAgICBEaXNwbGF5 TGlzdCA9IHN0cmluZzp0b2tlbnMoRGlzcGxheSwgIiwiKSwNCisrICAgIE9wdHMgPSBbe25hbWUs IE5hbWV9LCB7ZGlzcGxheWVkX2dyb3VwcywgRGlzcGxheUxpc3R9LCB7ZGVzY3JpcHRpb24sIERl c2NyaXB0aW9ufV0sDQorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpjcmVh dGVfZ3JvdXAoSG9zdCwgR3JvdXAsIE9wdHMpLA0KKysgICAgP1NUQVRVU19TVUNDRVNTOw0KKysN CisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctZGVsZXRlIiwgR3JvdXAsIEhvc3RdKSAtPg0KKysg ICAge2F0b21pYywgb2t9ID0gbW9kX3NoYXJlZF9yb3N0ZXI6ZGVsZXRlX2dyb3VwKEhvc3QsIEdy b3VwKSwNCisrICAgID9TVEFUVVNfU1VDQ0VTUzsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsi c3JnLXVzZXItYWRkIiwgVXNlciwgU2VydmVyLCBHcm91cCwgSG9zdF0pIC0+DQorKyAgICB7YXRv bWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjphZGRfdXNlcl90b19ncm91cChIb3N0LCB7VXNl ciwgU2VydmVyfSwgR3JvdXApLA0KKysgICAgP1NUQVRVU19TVUNDRVNTOw0KKysNCisrY3RsX3By b2Nlc3MoX1ZhbCwgWyJzcmctdXNlci1kZWwiLCBVc2VyLCBTZXJ2ZXIsIEdyb3VwLCBIb3N0XSkg LT4NCisrICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9zdGVyOnJlbW92ZV91c2VyX2Zy b21fZ3JvdXAoSG9zdCwge1VzZXIsIFNlcnZlcn0sIEdyb3VwKSwNCisrICAgID9TVEFUVVNfU1VD Q0VTUzsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsic3JnLWxpc3QtZ3JvdXBzIiwgSG9zdF0p IC0+DQorKyAgICBsaXN0czpmb3JlYWNoKA0KKysgICAgICBmdW4oU3JnR3JvdXApIC0+DQorKwkg ICAgICBpbzpmb3JtYXQoIn5zfm4iLFtTcmdHcm91cF0pDQorKyAgICAgIGVuZCwNCisrICAgICAg bGlzdHM6c29ydChtb2Rfc2hhcmVkX3Jvc3RlcjpsaXN0X2dyb3VwcyhIb3N0KSkpLA0KKysgICAg P1NUQVRVU19TVUNDRVNTOw0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctZ2V0LWluZm8i LCBHcm91cCwgSG9zdF0pIC0+DQorKyAgICBPcHRzID0gbW9kX3NoYXJlZF9yb3N0ZXI6Z2V0X2dy b3VwX29wdHMoSG9zdCxHcm91cCksDQorKyAgICBbaW86Zm9ybWF0KCJ+czogfnB+biIsIFtUaXRs ZSwgVmFsdWVdKSB8fCB7VGl0bGUgLCBWYWx1ZX0gPC0gT3B0c10sDQorKyAgICANCisrICAgIE1l bWJlcnMgPSBtb2Rfc2hhcmVkX3Jvc3RlcjpnZXRfZ3JvdXBfZXhwbGljaXRfdXNlcnMoSG9zdCxH cm91cCksDQorKyAgICBNZW1iZXJzX3N0cmluZyA9IFsgIiAiICsrIGpsaWI6amlkX3RvX3N0cmlu ZyhqbGliOm1ha2VfamlkKE1Vc2VyLCBNU2VydmVyLCAiIikpIA0KKysJCSAgICAgICB8fCB7TVVz ZXIsIE1TZXJ2ZXJ9IDwtIE1lbWJlcnNdLA0KKysgICAgaW86Zm9ybWF0KCJtZW1iZXJzOn5zfm4i LCBbTWVtYmVyc19zdHJpbmddKSwNCisrICAgIA0KKysgICAgP1NUQVRVU19TVUNDRVNTOw0KKysN CisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJhZGQtcm9zdGVyaXRlbSIsIExvY2FsVXNlciwgTG9jYWxT ZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTmljaywgR3JvdXAsIFN1YnNdKSAtPg0K KysgICAgY2FzZSBhZGRfcm9zdGVyaXRlbShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBSZW1vdGVV c2VyLCBSZW1vdGVTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBsaXN0X3RvX2F0b20oU3VicyksIFtdKSBv Zg0KKysJe2F0b21pYywgb2t9IC0+DQorKwkgICAgP1NUQVRVU19TVUNDRVNTOw0KKysJe2Vycm9y LCBSZWFzb259IC0+DQorKwkgICAgaW86Zm9ybWF0KCJDYW4ndCBhZGQgfnBAfnAgdG8gfnBAfnA6 IH5wfm4iLA0KKysJCSAgICAgIFtSZW1vdGVVc2VyLCBSZW1vdGVTZXJ2ZXIsIExvY2FsVXNlciwg TG9jYWxTZXJ2ZXIsIFJlYXNvbl0pLA0KKysJICAgID9TVEFUVVNfRVJST1I7DQorKwl7YmFkcnBj LCBSZWFzb259IC0+DQorKwkgICAgaW86Zm9ybWF0KCJDYW4ndCBhZGQgcm9zdGVyIGl0ZW0gdG8g dXNlciB+cDogfnB+biIsDQorKwkJICAgICAgW0xvY2FsVXNlciwgUmVhc29uXSksDQorKwkgICAg P1NUQVRVU19CQURSUEMNCisrICAgIGVuZDsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsicmVt LXJvc3Rlcml0ZW0iLCBMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBSZW1vdGVVc2VyLCBSZW1vdGVT ZXJ2ZXJdKSAtPg0KKysgICAgY2FzZSByZW1fcm9zdGVyaXRlbShMb2NhbFVzZXIsIExvY2FsU2Vy dmVyLCBSZW1vdGVVc2VyLCBSZW1vdGVTZXJ2ZXIpIG9mDQorKwl7YXRvbWljLCBva30gLT4NCisr CSAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKwl7ZXJyb3IsIFJlYXNvbn0gLT4NCisrCSAgICBpbzpm b3JtYXQoIkNhbid0IHJlbW92ZSB+cEB+cCB0byB+cEB+cDogfnB+biIsDQorKwkJICAgICAgW1Jl bW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgUmVhc29uXSks DQorKwkgICAgP1NUQVRVU19FUlJPUjsNCisrCXtiYWRycGMsIFJlYXNvbn0gLT4NCisrCSAgICBp bzpmb3JtYXQoIkNhbid0IHJlbW92ZSByb3N0ZXIgaXRlbSB0byB1c2VyIH5wOiB+cH5uIiwNCisr CQkgICAgICBbTG9jYWxVc2VyLCBSZWFzb25dKSwNCisrCSAgICA/U1RBVFVTX0JBRFJQQw0KKysg ICAgZW5kOw0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgWyJyb3N0ZXJpdGVtLXB1cmdlIl0pIC0+ DQorKyAgICBpbzpmb3JtYXQoIlJvc3Rlcml0ZW1zIHRoYXQgbWF0Y2ggYWxsIHRoZSBmaWx0ZXJp bmcgd2lsbCBiZSByZW1vdmVkLn5uIiksDQorKyAgICBpbzpmb3JtYXQoIk9wdGlvbnMgZm9yIGZp bHRlcmluZzp+biIpLA0KKysgICAgaW86Zm9ybWF0KCJ+biIpLA0KKysgICAgaW86Zm9ybWF0KCIg IC1zdWJzIG5vbmV8ZnJvbXx0b3xib3Rofm4iKSwNCisrICAgIGlvOmZvcm1hdCgiICAgICAgIFN1 YnNjcmlwdGlvbiB0eXBlLiBCeSBkZWZhdWx0IGFsbCB2YWx1ZXN+biIpLA0KKysgICAgaW86Zm9y bWF0KCJ+biIpLA0KKysgICAgaW86Zm9ybWF0KCIgIC1hc2sgbm9uZXxvdXR8aW5+biIpLA0KKysg ICAgaW86Zm9ybWF0KCIgICAgICAgUGVuZGluZyBzdWJzY3JpcHRpb24uIEJ5IGRlZmF1bHQgYWxs IHZhbHVlc35uIiksDQorKyAgICBpbzpmb3JtYXQoIn5uIiksDQorKyAgICBpbzpmb3JtYXQoIiAg LXVzZXIgSklEfm4iKSwNCisrICAgIGlvOmZvcm1hdCgiICAgICAgIFRoZSBKSUQgb2YgdGhlIGxv Y2FsIHVzZXIufm4iKSwNCisrICAgIGlvOmZvcm1hdCgiICAgICAgIENhbiB1c2UgdGhlc2UgZ2xv YnM6ICosID8gYW5kIFsuLi5dLn5uIiksDQorKyAgICBpbzpmb3JtYXQoIiAgICAgICBCeSBkZWZh dWx0IGl0IGlzOiAqICpAKn5uIiksDQorKyAgICBpbzpmb3JtYXQoIn5uIiksDQorKyAgICBpbzpm b3JtYXQoIiAgLWNvbnRhY3QgSklEfm4iKSwNCisrICAgIGlvOmZvcm1hdCgiICAgICAgIFNpbWls YXIgdG8gJ3VzZXInLCBidXQgZm9yIHRoZSBjb250YWN0IEpJRC5+biIpLA0KKysgICAgaW86Zm9y bWF0KCJ+biIpLA0KKysgICAgaW86Zm9ybWF0KCJFeGFtcGxlOn5uIiksDQorKyAgICBpbzpmb3Jt YXQoIiAgZWphYmJlcmRjdGwgcm9zdGVyaXRlbS1wdXJnZSAtc3VicyBub25lIGZyb20gdG8gLWFz ayBvdXQgaW4gLWNvbnRhY3QgKkAqaWNxKn5uIiksDQorKyAgICBpbzpmb3JtYXQoIn5uIiksDQor KyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorK2N0bF9wcm9jZXNzKF9WYWwsIFsicm9zdGVyaXRlbS1w dXJnZSIgfCBPcHRpb25zX2xpc3RdKSAtPg0KKysgICAgT3B0aW9uc19wcm9wX2xpc3QgPSBsaXN0 czpmb2xkbCgNCisrCQkJICBmdW4oTywgUikgLT4NCisrCQkJCSAgY2FzZSBPIG9mDQorKwkJCQkg ICAgICBbJC0gfCBLXSAtPg0KKysJCQkJCSAgW3tLLCBbXX0gfCBSXTsNCisrCQkJCSAgICAgIFYg LT4NCisrCQkJCQkgIFt7SywgVnN9IHwgUlRdID0gUiwNCisrCQkJCQkgIFt7SywgW1Z8VnNdfSB8 IFJUXQ0KKysJCQkJICBlbmQNCisrCQkJICBlbmQsDQorKwkJCSAgW10sDQorKwkJCSAgT3B0aW9u c19saXN0KSwNCisrICAgIA0KKysgICAgU3VicyA9IFtsaXN0X3RvX2F0b20oUykNCisrCSAgICB8 fCBTIDwtIHByb3BsaXN0czpnZXRfdmFsdWUoInN1YnMiLCANCisrCQkJCQlPcHRpb25zX3Byb3Bf bGlzdCwgDQorKwkJCQkJWyJub25lIiwgImZyb20iLCAidG8iLCAiYm90aCJdKV0sDQorKyAgICBB c2tzID0gW2xpc3RfdG9fYXRvbShTKQ0KKysJICAgIHx8IFMgPC0gDQorKwkJICAgcHJvcGxpc3Rz OmdldF92YWx1ZSgiYXNrIiwNCisrCQkJCSAgICAgICBPcHRpb25zX3Byb3BfbGlzdCwgDQorKwkJ CQkgICAgICAgWyJub25lIiwgIm91dCIsICJpbiJdKV0sDQorKyAgICBVc2VyID0gcHJvcGxpc3Rz OmdldF92YWx1ZSgidXNlciIsIE9wdGlvbnNfcHJvcF9saXN0LCBbIioiLCAiKkAqIl0pLA0KKysg ICAgQ29udGFjdCA9IHByb3BsaXN0czpnZXRfdmFsdWUoImNvbnRhY3QiLCBPcHRpb25zX3Byb3Bf bGlzdCwgWyIqIiwgIipAKiJdKSwNCisrICAgIA0KKysgICAgY2FzZSByb3N0ZXJpdGVtX3B1cmdl KHtTdWJzLCBBc2tzLCBVc2VyLCBDb250YWN0fSkgb2YNCisrCXthdG9taWMsIG9rfSAtPg0KKysJ ICAgID9TVEFUVVNfU1VDQ0VTUzsNCisrCXtlcnJvciwgUmVhc29ufSAtPg0KKysJICAgIGlvOmZv cm1hdCgiRXJyb3IgcHVyZ2luZyByb3N0ZXJpdGVtczogfnB+biIsDQorKwkJICAgICAgW1JlYXNv bl0pLA0KKysJICAgID9TVEFUVVNfRVJST1I7DQorKwl7YmFkcnBjLCBSZWFzb259IC0+DQorKwkg ICAgaW86Zm9ybWF0KCJCYWRSUEMgcHVyZ2luZyByb3N0ZXJpdGVtczogfnB+biIsDQorKwkJICAg ICAgW1JlYXNvbl0pLA0KKysJICAgID9TVEFUVVNfQkFEUlBDDQorKyAgICBlbmQ7DQorKw0KKytj dGxfcHJvY2VzcyhfVmFsLCBbInB1c2hyb3N0ZXIiLCBGaWxlLCBVc2VyLCBTZXJ2ZXJdKSAtPg0K KysgICAgY2FzZSBwdXNocm9zdGVyKEZpbGUsIFVzZXIsIFNlcnZlcikgb2YNCisrCW9rIC0+DQor KwkgICAgP1NUQVRVU19TVUNDRVNTOw0KKysJe2Vycm9yLCBSZWFzb259IC0+DQorKwkgICAgaW86 Zm9ybWF0KCJDYW4ndCBwdXNoIHJvc3RlciB+cCB0byB+cEB+cDogfnB+biIsDQorKwkJICAgICAg W0ZpbGUsIFVzZXIsIFNlcnZlciwgUmVhc29uXSksDQorKwkgICAgP1NUQVRVU19FUlJPUjsNCisr CXtiYWRycGMsIFJlYXNvbn0gLT4NCisrCSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggcm9zdGVy IH5wOiB+cH5uIiwNCisrCQkgICAgICBbRmlsZSwgUmVhc29uXSksDQorKwkgICAgP1NUQVRVU19C QURSUEMNCisrICAgIGVuZDsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsicHVzaHJvc3Rlci1h bGwiLCBGaWxlXSkgLT4NCisrICAgIGNhc2UgcHVzaHJvc3Rlcl9hbGwoW0ZpbGVdKSBvZg0KKysJ b2sgLT4NCisrCSAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKwl7ZXJyb3IsIFJlYXNvbn0gLT4NCisr CSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggcm9zdGVyIH5wOiB+cH5uIiwNCisrCQkgICAgICBb RmlsZSwgUmVhc29uXSksDQorKwkgICAgP1NUQVRVU19FUlJPUjsNCisrCXtiYWRycGMsIFJlYXNv bn0gLT4NCisrCSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggcm9zdGVyIH5wOiB+cH5uIiwNCisr CQkgICAgICBbRmlsZSwgUmVhc29uXSksDQorKwkgICAgP1NUQVRVU19CQURSUEMNCisrICAgIGVu ZDsNCisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIFsicHVzaC1hbGx0b2FsbCIsIFNlcnZlciwgR3Jv dXBdKSAtPg0KKysgICAgY2FzZSBwdXNoX2FsbHRvYWxsKFNlcnZlciwgR3JvdXApIG9mDQorKwlv ayAtPg0KKysJICAgID9TVEFUVVNfU1VDQ0VTUzsNCisrCXtlcnJvciwgUmVhc29ufSAtPg0KKysJ ICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCBhbGwgdG8gYWxsOiB+cH5uIiwNCisrCQkgICAgICBb UmVhc29uXSksDQorKwkgICAgP1NUQVRVU19FUlJPUjsNCisrCXtiYWRycGMsIFJlYXNvbn0gLT4N CisrCSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggYWxsIHRvIGFsbDogfnB+biIsDQorKwkJICAg ICAgW1JlYXNvbl0pLA0KKysJICAgID9TVEFUVVNfQkFEUlBDDQorKyAgICBlbmQ7DQorKw0KKytj dGxfcHJvY2VzcyhfVmFsLCBbImxvYWQtY29uZmlnIiwgUGF0aF0pIC0+DQorKyAgICBjYXNlIGNh dGNoIGVqYWJiZXJkX2NvbmZpZzpsb2FkX2ZpbGUoUGF0aCkgb2YNCisrICAgICAgICBvayAtPg0K KysgICAgICAgICAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKyAgICAgICAgeydFWElUJywgUmVhc29u fSAtPg0KKysgICAgICAgICAgICBpbzpmb3JtYXQoIlByb2JsZW0gbG9hZGluZyBjb25maWcgZmls ZSB+cDogfnB+biIsDQorKyAgICAgICAgICAgICAgICAgICAgICBbZmlsZW5hbWU6YWJzbmFtZShQ YXRoKSwgUmVhc29uXSksDQorKwkgICAgP1NUQVRVU19FUlJPUjsNCisrICAgICAgICB7YmFkcnBj LCBSZWFzb259IC0+DQorKyAgICAgICAgICAgIGlvOmZvcm1hdCgiQ2FuJ3QgbG9hZCBjb25maWcg ZmlsZSB+cDogfnB+biIsDQorKyAgICAgICAgICAgICAgICAgICAgICBbZmlsZW5hbWU6YWJzbmFt ZShQYXRoKSwgUmVhc29uXSksDQorKwkgICAgP1NUQVRVU19CQURSUEMNCisrICAgIGVuZDsNCisr DQorK2N0bF9wcm9jZXNzKF9WYWwsIFsic3RhdHMiLCBTdGF0XSkgLT4NCisrICAgIFJlcyA9IGNh c2UgU3RhdCBvZg0KKysJICAgICAgInVwdGltZS1zZWNvbmRzIiAtPiB1cHRpbWVfc2Vjb25kcygp Ow0KKysJICAgICAgInJlZ2lzdGVyZWR1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX2F1dGg6ZGly dHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSk7DQorKwkgICAgICAib25saW5ldXNlcnNub2RlIiAt PiBsZW5ndGgoZWphYmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xpc3QoKSk7DQorKwkg ICAgICAib25saW5ldXNlcnMiIC0+IGxlbmd0aChlamFiYmVyZF9zbTpkaXJ0eV9nZXRfc2Vzc2lv bnNfbGlzdCgpKQ0KKysJICBlbmQsDQorKyAgICBpbzpmb3JtYXQoIn5wfm4iLCBbUmVzXSksDQor KyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhfVmFsLCBbInN0YXR1cy1u dW0iLCBTdGF0dXNfcmVxdWlyZWRdKSAtPg0KKysgICAgY3RsX3Byb2Nlc3MoX1ZhbCwgImFsbCIs IFsic3RhdHVzLW51bSIsIFN0YXR1c19yZXF1aXJlZF0pOw0KKysNCisrY3RsX3Byb2Nlc3MoX1Zh bCwgWyJzdGF0dXMtbGlzdCIsIFN0YXR1c19yZXF1aXJlZF0pIC0+DQorKyAgICBjdGxfcHJvY2Vz cyhfVmFsLCAiYWxsIiwgWyJzdGF0dXMtbGlzdCIsIFN0YXR1c19yZXF1aXJlZF0pOw0KKysNCisr Y3RsX3Byb2Nlc3MoX1ZhbCwgWyJnZXQtY29va2llIl0pIC0+DQorKyAgICBpbzpmb3JtYXQoIn5z fm4iLCBbYXRvbV90b19saXN0KGVybGFuZzpnZXRfY29va2llKCkpXSksDQorKyAgICA/U1RBVFVT X1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhfVmFsLCBbImtpbGxzZXNzaW9uIiwgVXNlciwg U2VydmVyLCBSZXNvdXJjZSB8IFRhaWxdKSAtPg0KKysgICAga2lja19zZXNzaW9uKFVzZXIsIFNl cnZlciwgUmVzb3VyY2UsIHByZXBhcmVfcmVhc29uKFRhaWwpKSwNCisrICAgID9TVEFUVVNfU1VD Q0VTUzsNCisrDQorK2N0bF9wcm9jZXNzKFZhbCwgX0FyZ3MpIC0+DQorKyAgICBWYWwuDQorKw0K KysNCisrJSUtLS0tLS0tLS0tLS0tDQorKyUlIENvbW1hbmRzIHZob3N0DQorKyUlLS0tLS0tLS0t LS0tLQ0KKysNCisrY3RsX3Byb2Nlc3MoX1ZhbCwgSG9zdCwgWyJudW0tYWN0aXZlLXVzZXJzIiwg RGF5c10pIC0+DQorKyAgICBOdW1iZXIgPSBudW1fYWN0aXZlX3VzZXJzKEhvc3QsIGxpc3RfdG9f aW50ZWdlcihEYXlzKSksDQorKyAgICBpbzpmb3JtYXQoIn5wfm4iLCBbTnVtYmVyXSksDQorKyAg ICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhfVmFsLCBIb3N0LCBbInN0YXRz IiwgU3RhdF0pIC0+DQorKyAgICBSZXMgPSBjYXNlIFN0YXQgb2YNCisrCSAgICAgICJyZWdpc3Rl cmVkdXNlcnMiIC0+IGxlbmd0aChlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJz KEhvc3QpKTsNCisrCSAgICAgICJvbmxpbmV1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmdl dF92aF9zZXNzaW9uX2xpc3QoSG9zdCkpDQorKwkgIGVuZCwNCisrICAgIGlvOmZvcm1hdCgifnB+ biIsIFtSZXNdKSwNCisrICAgID9TVEFUVVNfU1VDQ0VTUzsNCisrDQorK2N0bF9wcm9jZXNzKF9W YWwsIEhvc3QsIFsic3RhdHVzLW51bSIsIFN0YXR1c19yZXF1aXJlZF0pIC0+DQorKyAgICBOdW0g PSBsZW5ndGgoZ2V0X3N0YXR1c19saXN0KEhvc3QsIFN0YXR1c19yZXF1aXJlZCkpLA0KKysgICAg aW86Zm9ybWF0KCJ+cH5uIiwgW051bV0pLA0KKysgICAgP1NUQVRVU19TVUNDRVNTOw0KKysNCisr Y3RsX3Byb2Nlc3MoX1ZhbCwgSG9zdCwgWyJzdGF0dXMtbGlzdCIsIFN0YXR1c19yZXF1aXJlZF0p IC0+DQorKyAgICBSZXMgPSBnZXRfc3RhdHVzX2xpc3QoSG9zdCwgU3RhdHVzX3JlcXVpcmVkKSwN CisrICAgIFsgaW86Zm9ybWF0KCJ+c0B+cyB+cyB+cCBcIn5zXCJ+biIsIFtVLCBTLCBSLCBQLCBT dF0pIHx8IHtVLCBTLCBSLCBQLCBTdH0gPC0gUmVzXSwNCisrICAgID9TVEFUVVNfU1VDQ0VTUzsN CisrDQorK2N0bF9wcm9jZXNzKF9WYWwsIEhvc3QsIFsiYmFuLWFjY291bnQiLCBVc2VyIHwgVGFp bF0pIC0+DQorKyAgICBiYW5fYWNjb3VudChVc2VyLCBIb3N0LCBwcmVwYXJlX3JlYXNvbihUYWls KSksDQorKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQorKw0KKytjdGxfcHJvY2VzcyhWYWwsIF9Ib3N0 LCBfQXJncykgLT4NCisrICAgIFZhbC4NCisrDQorKw0KKyslJS0tLS0tLS0tLS0tLS0NCisrJSUg VXRpbHMNCisrJSUtLS0tLS0tLS0tLS0tDQorKw0KKyt1cHRpbWVfc2Vjb25kcygpIC0+DQorKyAg ICB0cnVuYyhlbGVtZW50KDEsIGVybGFuZzpzdGF0aXN0aWNzKHdhbGxfY2xvY2spKS8xMDAwKS4N CisrDQorK2dldF9zdGF0dXNfbGlzdChIb3N0LCBTdGF0dXNfcmVxdWlyZWQpIC0+DQorKyAgICAl JSBHZXQgbGlzdCBvZiBhbGwgbG9nZ2VkIHVzZXJzDQorKyAgICBTZXNzaW9ucyA9IGVqYWJiZXJk X3NtOmRpcnR5X2dldF9teV9zZXNzaW9uc19saXN0KCksDQorKyAgICAlJSBSZWZvcm1hdCB0aGUg bGlzdA0KKysgICAgU2Vzc2lvbnMyID0gWyB7U2Vzc2lvbiNzZXNzaW9uLnVzciwgU2Vzc2lvbiNz ZXNzaW9uLnNpZCwgU2Vzc2lvbiNzZXNzaW9uLnByaW9yaXR5fSB8fCBTZXNzaW9uIDwtIFNlc3Np b25zXSwNCisrICAgIEZob3N0ID0gY2FzZSBIb3N0IG9mDQorKwkJImFsbCIgLT4NCisrCQkgICAg JSUgQWxsIGhvc3RzIGFyZSByZXF1ZXN0ZWQsIHNvIGRvbnQgZmlsdGVyIGF0IGFsbA0KKysJCSAg ICBmdW4oXywgXykgLT4gdHJ1ZSBlbmQ7DQorKwkJXyAtPg0KKysJCSAgICAlJSBGaWx0ZXIgdGhl IGxpc3QsIG9ubHkgSG9zdCBpcyBpbnRlcmVzdGluZw0KKysJCSAgICBmdW4oQSwgQikgLT4gQSA9 PSBCIGVuZA0KKysJICAgIGVuZCwNCisrICAgIFNlc3Npb25zMyA9IFsge1BpZCwgU2VydmVyLCBQ cmlvcml0eX0gfHwge3tfVXNlciwgU2VydmVyLCBfUmVzb3VyY2V9LCB7XywgUGlkfSwgUHJpb3Jp dHl9IDwtIFNlc3Npb25zMiwgYXBwbHkoRmhvc3QsIFtTZXJ2ZXIsIEhvc3RdKV0sDQorKyAgICAl JSBGb3IgZWFjaCBQaWQsIGdldCBpdHMgcHJlc2VuY2UNCisrICAgIFNlc3Npb25zNCA9IFsge2Vq YWJiZXJkX2MyczpnZXRfcHJlc2VuY2UoUGlkKSwgU2VydmVyLCBQcmlvcml0eX0gfHwge1BpZCwg U2VydmVyLCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMzXSwNCisrICAgICUlIEZpbHRlciBieSBzdGF0 dXMNCisrICAgIEZzdGF0dXMgPSBjYXNlIFN0YXR1c19yZXF1aXJlZCBvZg0KKysJCSAgImFsbCIg LT4NCisrCQkgICAgICBmdW4oXywgXykgLT4gdHJ1ZSBlbmQ7DQorKwkJICBfIC0+DQorKwkJICAg ICAgZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQNCisrCSAgICAgIGVuZCwNCisrICAgIFt7VXNlciwg U2VydmVyLCBSZXNvdXJjZSwgUHJpb3JpdHksIHN0cmluZ2l6ZShTdGF0dXNfdGV4dCl9IA0KKysg ICAgIHx8IHt7VXNlciwgUmVzb3VyY2UsIFN0YXR1cywgU3RhdHVzX3RleHR9LCBTZXJ2ZXIsIFBy aW9yaXR5fSA8LSBTZXNzaW9uczQsIA0KKysJYXBwbHkoRnN0YXR1cywgW1N0YXR1cywgU3RhdHVz X3JlcXVpcmVkXSldLg0KKysNCisrJSUgTWFrZSBzdHJpbmcgbW9yZSBwcmludC1mcmllbmRseQ0K KytzdHJpbmdpemUoU3RyaW5nKSAtPg0KKysgICAgJSUgUmVwbGFjZSBuZXdsaW5lIGNoYXJhY3Rl cnMgd2l0aCBvdGhlciBjb2RlDQorKyAgICBlbGVtZW50KDIsIHJlZ2V4cDpnc3ViKFN0cmluZywg IlxuIiwgIlxcbiIpKS4NCisrDQorK2FkZF9yb3N0ZXJpdGVtKExVLCBMUywgUlUsIFJTLCBOaWNr LCBHcm91cCwgU3Vic2NyaXB0aW9uLCBYYXR0cnMpIC0+DQorKyAgICBzdWJzY3JpYmUoTFUsIExT LCBSVSwgUlMsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIFhhdHRycyksDQorKyAgICByb3V0 ZV9yb3N0ZXJpdGVtKExVLCBMUywgUlUsIFJTLCBOaWNrLCBHcm91cCwgU3Vic2NyaXB0aW9uKSwN CisrICAgIHthdG9taWMsIG9rfS4NCisrDQorK3N1YnNjcmliZShMb2NhbFVzZXIsIExvY2FsU2Vy dmVyLCBSZW1vdGVVc2VyLCBSZW1vdGVTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24s IFhhdHRycykgLT4NCisrICAgIFIgPSAjcm9zdGVye3VzaiA9IHtMb2NhbFVzZXIsTG9jYWxTZXJ2 ZXIse1JlbW90ZVVzZXIsUmVtb3RlU2VydmVyLFtdfX0sDQorKwkJdXMgPSB7TG9jYWxVc2VyLExv Y2FsU2VydmVyfSwNCisrCQlqaWQgPSB7UmVtb3RlVXNlcixSZW1vdGVTZXJ2ZXIsW119LA0KKysJ CW5hbWUgPSBOaWNrLA0KKysJCXN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbiwgJSBub25lLCB0 bz15b3Ugc2VlIGhpbSwgZnJvbT1oZSBzZWVzIHlvdSwgYm90aA0KKysJCWFzayA9IG5vbmUsICUg b3V0PXNlbmQgcmVxdWVzdCwgaW49c29tZWJvZHkgcmVxdWVzdHMgeW91LCBub25lDQorKwkJZ3Jv dXBzID0gW0dyb3VwXSwNCisrCQlhc2ttZXNzYWdlID0gWGF0dHJzLCAlIGV4YW1wbGU6IFt7ImNh dGVnb3J5IiwiY29uZmVyZW5jZSJ9XQ0KKysJCXhzID0gW119LA0KKysgICAgbW5lc2lhOnRyYW5z YWN0aW9uKGZ1bigpIC0+IG1uZXNpYTp3cml0ZShSKSBlbmQpLg0KKysNCisrcmVtX3Jvc3Rlcml0 ZW0oTFUsIExTLCBSVSwgUlMpIC0+DQorKyAgICB1bnN1YnNjcmliZShMVSwgTFMsIFJVLCBSUyks DQorKyAgICByb3V0ZV9yb3N0ZXJpdGVtKExVLCBMUywgUlUsIFJTLCAiIiwgIiIsICJyZW1vdmUi KSwNCisrICAgIHthdG9taWMsIG9rfS4NCisrDQorK3Vuc3Vic2NyaWJlKExvY2FsVXNlciwgTG9j YWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlcikgLT4NCisrICAgIEtleSA9IHt7TG9j YWxVc2VyLExvY2FsU2VydmVyLHtSZW1vdGVVc2VyLFJlbW90ZVNlcnZlcixbXX19LA0KKysJICAg e0xvY2FsVXNlcixMb2NhbFNlcnZlcn19LA0KKysgICAgbW5lc2lhOnRyYW5zYWN0aW9uKGZ1bigp IC0+IG1uZXNpYTpkZWxldGUocm9zdGVyLCBLZXksIHdyaXRlKSBlbmQpLg0KKysNCisrcm91dGVf cm9zdGVyaXRlbShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBSZW1vdGVVc2VyLCBSZW1vdGVTZXJ2 ZXIsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24pIC0+DQorKyAgICBMSklEID0gamxpYjptYWtl X2ppZChMb2NhbFVzZXIsIExvY2FsU2VydmVyLCAiIiksDQorKyAgICBSSklEID0gamxpYjptYWtl X2ppZChSZW1vdGVVc2VyLCBSZW1vdGVTZXJ2ZXIsICIiKSwNCisrICAgIFRvUyA9IGpsaWI6amlk X3RvX3N0cmluZyhMSklEKSwNCisrICAgIEl0ZW1KSURTID0gamxpYjpqaWRfdG9fc3RyaW5nKFJK SUQpLA0KKysgICAgR3JvdXBYTUwgPSB7eG1sZWxlbWVudCwgImdyb3VwIiwgW10sIFt7eG1sY2Rh dGEsIEdyb3VwfV19LA0KKysgICAgSXRlbSA9IHt4bWxlbGVtZW50LCAiaXRlbSIsIA0KKysJICAg IFt7ImppZCIsIEl0ZW1KSURTfSwNCisrCSAgICAgeyJuYW1lIiwgTmlja30sDQorKwkgICAgIHsi c3Vic2NyaXB0aW9uIiwgU3Vic2NyaXB0aW9ufV0sIA0KKysJICAgIFtHcm91cFhNTF19LA0KKysg ICAgUXVlcnkgPSB7eG1sZWxlbWVudCwgInF1ZXJ5IiwgW3sieG1sbnMiLCA/TlNfUk9TVEVSfV0s IFtJdGVtXX0sDQorKyAgICBQYWNrZXQgPSB7eG1sZWxlbWVudCwgImlxIiwgW3sidHlwZSIsICJz ZXQifSwgeyJ0byIsIFRvU31dLCBbUXVlcnldfSwNCisrICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0 ZShMSklELCBMSklELCBQYWNrZXQpLg0KKysNCisrDQorKyUlLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCisrJSUgQmFuIHVzZXINCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KKysNCisrYmFuX2FjY291bnQoVXNlciwgU2VydmVyLCBSZWFzb24pIC0+DQorKyAgICBraWNr X3Nlc3Npb25zKFVzZXIsIFNlcnZlciwgUmVhc29uKSwNCisrICAgIHNldF9yYW5kb21fcGFzc3dv cmQoVXNlciwgU2VydmVyLCBSZWFzb24pLg0KKysNCisra2lja19zZXNzaW9ucyhVc2VyLCBTZXJ2 ZXIsIFJlYXNvbikgLT4NCisrICAgIGxpc3RzOm1hcCgNCisrICAgICAgZnVuKFJlc291cmNlKSAt Pg0KKysJICAgICAga2lja19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UsIFJlYXNvbikN CisrICAgICAgZW5kLA0KKysgICAgICBnZXRfcmVzb3VyY2VzKFVzZXIsIFNlcnZlcikpLg0KKysN Cisra2lja19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UsIFJlYXNvbikgLT4NCisrICAg IGVqYWJiZXJkX3JvdXRlcjpyb3V0ZSgNCisrICAgICAgamxpYjptYWtlX2ppZCgiIiwgIiIsICIi KSwNCisrICAgICAgamxpYjptYWtlX2ppZChVc2VyLCBTZXJ2ZXIsIFJlc291cmNlKSwNCisrICAg ICAge3htbGVsZW1lbnQsICJicm9hZGNhc3QiLCBbXSwgW3tleGl0LCBSZWFzb259XX0pLg0KKysN CisrZ2V0X3Jlc291cmNlcyhVc2VyLCBTZXJ2ZXIpIC0+DQorKyAgICBsaXN0czptYXAoDQorKyAg ICAgIGZ1bihTZXNzaW9uKSAtPg0KKysJICAgICAgZWxlbWVudCgzLCBTZXNzaW9uI3Nlc3Npb24u dXNyKQ0KKysgICAgICBlbmQsDQorKyAgICAgIGdldF9zZXNzaW9ucyhVc2VyLCBTZXJ2ZXIpKS4N CisrDQorK2dldF9zZXNzaW9ucyhVc2VyLCBTZXJ2ZXIpIC0+DQorKyAgICBMVXNlciA9IGpsaWI6 bm9kZXByZXAoVXNlciksDQorKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLA0K KysgICAgU2Vzc2lvbnMgPSAgbW5lc2lhOmRpcnR5X2luZGV4X3JlYWQoc2Vzc2lvbiwge0xVc2Vy LCBMU2VydmVyfSwgI3Nlc3Npb24udXMpLA0KKysgICAgdHJ1ZSA9IGlzX2xpc3QoU2Vzc2lvbnMp LA0KKysgICAgU2Vzc2lvbnMuDQorKw0KKytzZXRfcmFuZG9tX3Bhc3N3b3JkKFVzZXIsIFNlcnZl ciwgUmVhc29uKSAtPg0KKysgICAgTmV3UGFzcyA9IGJ1aWxkX3JhbmRvbV9wYXNzd29yZChSZWFz b24pLA0KKysgICAgc2V0X3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgTmV3UGFzcykuDQorKw0KKyti dWlsZF9yYW5kb21fcGFzc3dvcmQoUmVhc29uKSAtPg0KKysgICAgRGF0ZSA9IGpsaWI6dGltZXN0 YW1wX3RvX2lzbyhjYWxlbmRhcjp1bml2ZXJzYWxfdGltZSgpKSwNCisrICAgIFJhbmRvbVN0cmlu ZyA9IHJhbmRvbXM6Z2V0X3N0cmluZygpLA0KKysgICAgIkJBTk5FRF9BQ0NPVU5ULS0iICsrIERh dGUgKysgIi0tIiArKyBSYW5kb21TdHJpbmcgKysgIi0tIiArKyBSZWFzb24uDQorKw0KKytzZXRf cGFzc3dvcmQoVXNlciwgU2VydmVyLCBQYXNzd29yZCkgLT4NCisrICAgIHthdG9taWMsIG9rfSA9 IGVqYWJiZXJkX2F1dGg6c2V0X3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpLg0KKysN CisrcHJlcGFyZV9yZWFzb24oW10pIC0+DQorKyAgICAiS2lja2VkIGJ5IGFkbWluaXN0cmF0b3Ii Ow0KKytwcmVwYXJlX3JlYXNvbihbUmVhc29uXSkgLT4NCisrICAgIFJlYXNvbjsNCisrcHJlcGFy ZV9yZWFzb24oU3RyaW5nTGlzdCkgLT4NCisrICAgIHN0cmluZzpqb2luKFN0cmluZ0xpc3QsICJf IikuDQorKw0KKysNCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyslJSBQdXJn ZSByb3N0ZXIgaXRlbXMNCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKysNCisr cm9zdGVyaXRlbV9wdXJnZShPcHRpb25zKSAtPg0KKysgICAgTnVtX3Jvc3Rlcml0ZW1zID0gbW5l c2lhOnRhYmxlX2luZm8ocm9zdGVyLCBzaXplKSwNCisrICAgIGlvOmZvcm1hdCgiVGhlcmUgYXJl IH5wIHJvc3RlciBpdGVtcyBpbiB0b3RhbC5+biIsIFtOdW1fcm9zdGVyaXRlbXNdKSwNCisrICAg IEtleSA9IG1uZXNpYTpkaXJ0eV9maXJzdChyb3N0ZXIpLA0KKysgICAgb2sgPSByaXAoS2V5LCBP cHRpb25zLCB7MCwgTnVtX3Jvc3Rlcml0ZW1zLCAwLCAwfSksDQorKyAgICB7YXRvbWljLCBva30u DQorKw0KKytyaXAoJyRlbmRfb2ZfdGFibGUnLCBfT3B0aW9ucywgQ291bnRlcnMpIC0+DQorKyAg ICBwcmludF9wcm9ncmVzc19saW5lKENvdW50ZXJzKSwNCisrICAgIG9rOw0KKytyaXAoS2V5LCBP cHRpb25zLCB7UHIsIE5ULCBOViwgTkR9KSAtPg0KKysgICAgS2V5X25leHQgPSBtbmVzaWE6ZGly dHlfbmV4dChyb3N0ZXIsIEtleSksDQorKyAgICBORDIgPSBjYXNlIGRlY2lkZV9yaXAoS2V5LCBP cHRpb25zKSBvZg0KKysJICAgICAgdHJ1ZSAtPg0KKysJCSAgbW5lc2lhOmRpcnR5X2RlbGV0ZShy b3N0ZXIsIEtleSksDQorKwkJICBORCsxOw0KKysJICAgICAgZmFsc2UgLT4NCisrCQkgIE5EDQor KwkgIGVuZCwNCisrICAgIE5WMiA9IE5WKzEsDQorKyAgICBQcjIgPSBwcmludF9wcm9ncmVzc19s aW5lKHtQciwgTlQsIE5WMiwgTkQyfSksDQorKyAgICByaXAoS2V5X25leHQsIE9wdGlvbnMsIHtQ cjIsIE5ULCBOVjIsIE5EMn0pLg0KKysNCisrcHJpbnRfcHJvZ3Jlc3NfbGluZSh7UHIsIE5ULCBO ViwgTkR9KSAtPg0KKysgICAgUHIyID0gdHJ1bmMoKE5WL05UKSoxMDApLA0KKysgICAgY2FzZSBQ ciA9PSBQcjIgb2YNCisrCXRydWUgLT4NCisrCSAgICBvazsNCisrCWZhbHNlIC0+DQorKwkgICAg aW86Zm9ybWF0KCJQcm9ncmVzcyB+cCUgLSB2aXNpdGVkIH5wIC0gZGVsZXRlZCB+cH5uIiwgW1By MiwgTlYsIE5EXSkNCisrICAgIGVuZCwNCisrICAgIFByMi4NCisrDQorK2RlY2lkZV9yaXAoS2V5 LCB7U3VicywgQXNrcywgVXNlciwgQ29udGFjdH0pIC0+DQorKyAgICBjYXNlIGNhdGNoIG1uZXNp YTpkaXJ0eV9yZWFkKHJvc3RlciwgS2V5KSBvZg0KKysJW1JJXSAtPg0KKysJICAgIGxpc3RzOm1l bWJlcihSSSNyb3N0ZXIuc3Vic2NyaXB0aW9uLCBTdWJzKQ0KKysJCWFuZGFsc28gbGlzdHM6bWVt YmVyKFJJI3Jvc3Rlci5hc2ssIEFza3MpDQorKwkJYW5kYWxzbyBkZWNpZGVfcmlwX2ppZChSSSNy b3N0ZXIudXMsIFVzZXIpDQorKwkJYW5kYWxzbyBkZWNpZGVfcmlwX2ppZChSSSNyb3N0ZXIuamlk LCBDb250YWN0KTsNCisrCV8gLT4NCisrCSAgICBmYWxzZQ0KKysgICAgZW5kLg0KKysNCisrJSUg UmV0dXJucyB0cnVlIGlmIHRoZSBzZXJ2ZXIgb2YgdGhlIEpJRCBpcyBpbmNsdWRlZCBpbiB0aGUg c2VydmVycw0KKytkZWNpZGVfcmlwX2ppZCh7VU5hbWUsIFVTZXJ2ZXIsIF9VUmVzb3VyY2V9LCBN YXRjaF9saXN0KSAtPg0KKysgICAgZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0 Y2hfbGlzdCk7DQorK2RlY2lkZV9yaXBfamlkKHtVTmFtZSwgVVNlcnZlcn0sIE1hdGNoX2xpc3Qp IC0+DQorKyAgICBsaXN0czphbnkoDQorKyAgICAgIGZ1bihNYXRjaF9zdHJpbmcpIC0+DQorKwkg ICAgICBNSklEID0gamxpYjpzdHJpbmdfdG9famlkKE1hdGNoX3N0cmluZyksDQorKwkgICAgICBN TmFtZSA9IE1KSUQjamlkLmx1c2VyLA0KKysJICAgICAgTVNlcnZlciA9IE1KSUQjamlkLmxzZXJ2 ZXIsDQorKwkgICAgICBJc19zZXJ2ZXIgPSBpc19nbG9iX21hdGNoKFVTZXJ2ZXIsIE1TZXJ2ZXIp LA0KKysJICAgICAgY2FzZSBNTmFtZSBvZg0KKysJCSAgW10gd2hlbiBVTmFtZSA9PSBbXSAtPg0K KysJCSAgICAgIElzX3NlcnZlcjsNCisrCQkgIFtdIC0+DQorKwkJICAgICAgZmFsc2U7DQorKwkJ ICBfIC0+DQorKwkJICAgICAgSXNfc2VydmVyDQorKwkJCSAgYW5kYWxzbyBpc19nbG9iX21hdGNo KFVOYW1lLCBNTmFtZSkNCisrCSAgICAgIGVuZA0KKysgICAgICBlbmQsDQorKyAgICAgIE1hdGNo X2xpc3QpLg0KKysNCisrJSUgQ29waWVkIGZyb20gZWphYmJlcmQtMi4wLjAvc3JjL2FjbC5lcmwN CisraXNfcmVnZXhwX21hdGNoKFN0cmluZywgUmVnRXhwKSAtPg0KKysgICAgY2FzZSByZWdleHA6 Zmlyc3RfbWF0Y2goU3RyaW5nLCBSZWdFeHApIG9mDQorKwlub21hdGNoIC0+DQorKwkgICAgZmFs c2U7DQorKwl7bWF0Y2gsIF8sIF99IC0+DQorKwkgICAgdHJ1ZTsNCisrCXtlcnJvciwgRXJyRGVz Y30gLT4NCisrCSAgICBpbzpmb3JtYXQoDQorKwkgICAgICAiV3JvbmcgcmVnZXhwIH5wIGluIEFD TDogfnAiLA0KKysJICAgICAgW1JlZ0V4cCwgbGlzdHM6ZmxhdHRlbihyZWdleHA6Zm9ybWF0X2Vy cm9yKEVyckRlc2MpKV0pLA0KKysJICAgIGZhbHNlDQorKyAgICBlbmQuDQorK2lzX2dsb2JfbWF0 Y2goU3RyaW5nLCBHbG9iKSAtPg0KKysgICAgaXNfcmVnZXhwX21hdGNoKFN0cmluZywgcmVnZXhw OnNoX3RvX2F3ayhHbG9iKSkuDQorKw0KKysNCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KKyslJSBQdXNoIFJvc3RlciBmcm9tIGZpbGUgDQorKyUlLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCisrDQorK3B1c2hyb3N0ZXIoRmlsZSwgVXNlciwgU2VydmVyKSAtPg0KKysg ICAge29rLCBbUm9zdGVyXX0gPSBmaWxlOmNvbnN1bHQoRmlsZSksDQorKyAgICBzdWJzY3JpYmVf cm9zdGVyKHtVc2VyLCBTZXJ2ZXIsICIiLCBVc2VyfSwgUm9zdGVyKS4NCisrDQorK3B1c2hyb3N0 ZXJfYWxsKEZpbGUpIC0+DQorKyAgICB7b2ssIFtSb3N0ZXJdfSA9IGZpbGU6Y29uc3VsdChGaWxl KSwNCisrICAgIHN1YnNjcmliZV9hbGwoUm9zdGVyKS4NCisrDQorK3N1YnNjcmliZV9hbGwoUm9z dGVyKSAtPg0KKysgICAgc3Vic2NyaWJlX2FsbChSb3N0ZXIsIFJvc3RlcikuDQorK3N1YnNjcmli ZV9hbGwoW10sIF8pIC0+DQorKyAgICBvazsNCisrc3Vic2NyaWJlX2FsbChbVXNlcjEgfCBVc2Vy c10sIFJvc3RlcikgLT4NCisrICAgIHN1YnNjcmliZV9yb3N0ZXIoVXNlcjEsIFJvc3RlciksDQor KyAgICBzdWJzY3JpYmVfYWxsKFVzZXJzLCBSb3N0ZXIpLg0KKysNCisrc3Vic2NyaWJlX3Jvc3Rl cihfLCBbXSkgLT4NCisrICAgIG9rOw0KKyslJSBEbyBub3Qgc3Vic2NyaWJlIGEgdXNlciB0byBp dHNlbGYNCisrc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZSwgU2VydmVyLCBHcm91cCwgTmlja30sIFt7 TmFtZSwgU2VydmVyLCBfLCBffSB8IFJvc3Rlcl0pIC0+DQorKyAgICBzdWJzY3JpYmVfcm9zdGVy KHtOYW1lLCBTZXJ2ZXIsIEdyb3VwLCBOaWNrfSwgUm9zdGVyKTsNCisrJSUgU3Vic2NyaWJlIE5h bWUyIHRvIE5hbWUxDQorK3N1YnNjcmliZV9yb3N0ZXIoe05hbWUxLCBTZXJ2ZXIxLCBHcm91cDEs IE5pY2sxfSwgW3tOYW1lMiwgU2VydmVyMiwgR3JvdXAyLCBOaWNrMn0gfCBSb3N0ZXJdKSAtPg0K KysgICAgc3Vic2NyaWJlKE5hbWUxLCBTZXJ2ZXIxLCBOYW1lMiwgU2VydmVyMiwgTmljazIsIEdy b3VwMiwgYm90aCwgW10pLA0KKysgICAgc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNlcnZlcjEs IEdyb3VwMSwgTmljazF9LCBSb3N0ZXIpLg0KKysNCisrcHVzaF9hbGx0b2FsbChTLCBHKSAtPg0K KysgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKFMpLA0K KysgICAgVXNlcnMyID0gYnVpbGRfbGlzdF91c2VycyhHLCBVc2VycywgW10pLA0KKysgICAgc3Vi c2NyaWJlX2FsbChVc2VyczIpLg0KKysNCisrYnVpbGRfbGlzdF91c2VycyhfR3JvdXAsIFtdLCBS ZXMpIC0+DQorKyAgICBSZXM7DQorK2J1aWxkX2xpc3RfdXNlcnMoR3JvdXAsIFt7VXNlciwgU2Vy dmVyfXxVc2Vyc10sIFJlcykgLT4NCisrICAgIGJ1aWxkX2xpc3RfdXNlcnMoR3JvdXAsIFVzZXJz LCBbe1VzZXIsIFNlcnZlciwgR3JvdXAsIFVzZXJ9fFJlc10pLg0KKysNCisrdmNhcmRfZ2V0KFVz ZXIsIFNlcnZlciwgRGF0YSkgLT4NCisrICAgIFt7XywgTW9kdWxlLCBGdW5jdGlvbiwgX09wdHN9 XSA9IGV0czpsb29rdXAoc21faXF0YWJsZSwgez9OU19WQ0FSRCwgU2VydmVyfSksDQorKyAgICBK SUQgPSBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgIiIpLA0KKysgICAgSVEgPSAjaXF7dHlw ZSA9IGdldCwgeG1sbnMgPSA/TlNfVkNBUkR9LA0KKysgICAgSVFyID0gTW9kdWxlOkZ1bmN0aW9u KEpJRCwgSklELCBJUSksDQorKyAgICBSZXMgPSBjYXNlIElRciNpcS5zdWJfZWwgb2YNCisrCSAg ICAgIFtBMV0gLT4NCisrCQkgIGNhc2UgdmNhcmRfZ2V0KERhdGEsIEExKSBvZg0KKysJCSAgICAg IGZhbHNlIC0+IG5vX3ZhbHVlOw0KKysJCSAgICAgIEVsZW0gLT4geG1sOmdldF90YWdfY2RhdGEo RWxlbSkNCisrCQkgIGVuZDsNCisrCSAgICAgIFtdIC0+IA0KKysJCSAgbm9fdmNhcmQNCisrCSAg ZW5kLA0KKysgICAge29rLCBSZXN9Lg0KKysNCisrdmNhcmRfZ2V0KFtEYXRhMSwgRGF0YTJdLCBB MSkgLT4NCisrICAgIGNhc2UgeG1sOmdldF9zdWJ0YWcoQTEsIERhdGExKSBvZg0KKysgICAgCWZh bHNlIC0+IGZhbHNlOw0KKysJQTIgLT4gdmNhcmRfZ2V0KFtEYXRhMl0sIEEyKQ0KKysgICAgZW5k Ow0KKysNCisrdmNhcmRfZ2V0KFtEYXRhXSwgQTEpIC0+DQorKyAgICB4bWw6Z2V0X3N1YnRhZyhB MSwgRGF0YSkuDQorKw0KKyt2Y2FyZF9zZXQoVXNlciwgU2VydmVyLCBEYXRhLCBDb250ZW50KSAt Pg0KKysgICAgW3tfLCBNb2R1bGUsIEZ1bmN0aW9uLCBfT3B0c31dID0gZXRzOmxvb2t1cChzbV9p cXRhYmxlLCB7P05TX1ZDQVJELCBTZXJ2ZXJ9KSwNCisrICAgIEpJRCA9IGpsaWI6bWFrZV9qaWQo VXNlciwgU2VydmVyLCAiIiksDQorKyAgICBJUSA9ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9O U19WQ0FSRH0sDQorKyAgICBJUXIgPSBNb2R1bGU6RnVuY3Rpb24oSklELCBKSUQsIElRKSwNCisr DQorKyAgICAlJSBHZXQgb2xkIHZjYXJkDQorKyAgICBBNCA9IGNhc2UgSVFyI2lxLnN1Yl9lbCBv Zg0KKysJICAgICBbQTFdIC0+DQorKwkJIHtfLCBfLCBfLCBBMn0gPSBBMSwNCisrCQkgdXBkYXRl X3ZjYXJkX2VscyhEYXRhLCBDb250ZW50LCBBMik7DQorKwkgICAgIFtdIC0+IA0KKysJCSB1cGRh dGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIFtdKQ0KKysJIGVuZCwNCisrDQorKyAgICAlJSBC dWlsZCBuZXcgdmNhcmQNCisrICAgIFN1YkVsID0ge3htbGVsZW1lbnQsICJ2Q2FyZCIsIFt7Inht bG5zIiwidmNhcmQtdGVtcCJ9XSwgQTR9LA0KKysgICAgSVEyID0gI2lxe3R5cGU9c2V0LCBzdWJf ZWwgPSBTdWJFbH0sDQorKw0KKysgICAgTW9kdWxlOkZ1bmN0aW9uKEpJRCwgSklELCBJUTIpLA0K KysgICAge29rLCAiZG9uZSJ9Lg0KKysNCisrdXBkYXRlX3ZjYXJkX2VscyhEYXRhLCBDb250ZW50 LCBFbHMxKSAtPg0KKysgICAgRWxzMiA9IGxpc3RzOmtleXNvcnQoMiwgRWxzMSksDQorKyAgICBb RGF0YTEgfCBEYXRhMl0gPSBEYXRhLA0KKysgICAgTmV3RWwgPSBjYXNlIERhdGEyIG9mDQorKwkJ W10gLT4NCisrCQkgICAge3htbGVsZW1lbnQsIERhdGExLCBbXSwgW3t4bWxjZGF0YSxDb250ZW50 fV19Ow0KKysJCVtEMl0gLT4NCisrCQkgICAgT2xkRWwgPSBjYXNlIGxpc3RzOmtleXNlYXJjaChE YXRhMSwgMiwgRWxzMikgb2YNCisrCQkJCXt2YWx1ZSwgQX0gLT4gQTsNCisrCQkJCWZhbHNlIC0+ IHt4bWxlbGVtZW50LCBEYXRhMSwgW10sIFtdfQ0KKysJCQkgICAgZW5kLA0KKysJCSAgICB7eG1s ZWxlbWVudCwgXywgXywgQ29udGVudE9sZDF9ID0gT2xkRWwsDQorKwkJICAgIENvbnRlbnQyID0g W3t4bWxlbGVtZW50LCBEMiwgW10sIFt7eG1sY2RhdGEsQ29udGVudH1dfV0sDQorKwkJICAgIENv bnRlbnRPbGQyID0gbGlzdHM6a2V5c29ydCgyLCBDb250ZW50T2xkMSksDQorKwkJICAgIENvbnRl bnRPbGQzID0gbGlzdHM6a2V5ZGVsZXRlKEQyLCAyLCBDb250ZW50T2xkMiksDQorKwkJICAgIENv bnRlbnROZXcgPSBsaXN0czprZXltZXJnZSgyLCBDb250ZW50MiwgQ29udGVudE9sZDMpLA0KKysJ CSAgICB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBDb250ZW50TmV3fQ0KKysJICAgIGVuZCwNCisr ICAgIEVsczMgPSBsaXN0czprZXlkZWxldGUoRGF0YTEsIDIsIEVsczIpLA0KKysgICAgbGlzdHM6 a2V5bWVyZ2UoMiwgW05ld0VsXSwgRWxzMykuDQorKw0KKystcmVjb3JkKGxhc3RfYWN0aXZpdHks IHt1cywgdGltZXN0YW1wLCBzdGF0dXN9KS4NCisrDQorK2RlbGV0ZV9vbGRlcl91c2VycyhEYXlz KSAtPg0KKysgICAgJSUgR2V0IHRoZSBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMNCisrICAgIFVz ZXJzID0gZWphYmJlcmRfYXV0aDpkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2VycygpLA0KKysgICAg ZGVsZXRlX29sZGVyX3VzZXJzKERheXMsIFVzZXJzKS4NCisrDQorK2RlbGV0ZV9vbGRlcl91c2Vy c192aG9zdChIb3N0LCBEYXlzKSAtPg0KKysgICAgJSUgR2V0IHRoZSBsaXN0IG9mIHJlZ2lzdGVy ZWQgdXNlcnMNCisrICAgIFVzZXJzID0gZWphYmJlcmRfYXV0aDpnZXRfdmhfcmVnaXN0ZXJlZF91 c2VycyhIb3N0KSwNCisrICAgIGRlbGV0ZV9vbGRlcl91c2VycyhEYXlzLCBVc2VycykuDQorKw0K KytkZWxldGVfb2xkZXJfdXNlcnMoRGF5cywgVXNlcnMpIC0+DQorKyAgICAlJSBDb252ZXJ0IG9s ZGVyIHRpbWUNCisrICAgIFNlY09sZGVyID0gRGF5cyoyNCo2MCo2MCwNCisrDQorKyAgICAlJSBH ZXQgY3VycmVudCB0aW1lDQorKyAgICB7TWVnYVNlY3MsIFNlY3MsIF9NaWNyb1NlY3N9ID0gbm93 KCksDQorKyAgICBUaW1lU3RhbXBfbm93ID0gTWVnYVNlY3MgKiAxMDAwMDAwICsgU2VjcywNCisr DQorKyAgICAlJSBGb3IgYSB1c2VyLCByZW1vdmUgaWYgcmVxdWlyZWQgYW5kIGFuc3dlciB0cnVl DQorKyAgICBGID0gZnVuKHtMVXNlciwgTFNlcnZlcn0pIC0+DQorKwkJJSUgQ2hlY2sgaWYgdGhl IHVzZXIgaXMgbG9nZ2VkDQorKwkJY2FzZSBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMo TFVzZXIsIExTZXJ2ZXIpIG9mDQorKwkJICAgICUlIElmIGl0IGlzbnQNCisrCQkgICAgW10gLT4N CisrCQkJJSUgTG9vayBmb3IgaGlzIGxhc3RfYWN0aXZpdHkNCisrCQkJY2FzZSBtbmVzaWE6ZGly dHlfcmVhZChsYXN0X2FjdGl2aXR5LCB7TFVzZXIsIExTZXJ2ZXJ9KSBvZg0KKysJCQkgICAgJSUg SWYgaXQgaXMNCisrCQkJICAgICUlIGV4aXN0ZW50Og0KKysJCQkgICAgWyNsYXN0X2FjdGl2aXR5 e3RpbWVzdGFtcCA9IFRpbWVTdGFtcH1dIC0+DQorKwkJCQklJSBnZXQgaGlzIGFnZQ0KKysJCQkJ U2VjID0gVGltZVN0YW1wX25vdyAtIFRpbWVTdGFtcCwNCisrCQkJCSUlIElmIGhlIGlzDQorKwkJ CQlpZiANCisrCQkJCSAgICAlJSB5b3VuZ2VyIHRoYW4gU2VjT2xkZXI6IA0KKysJCQkJICAgIFNl YyA8IFNlY09sZGVyIC0+DQorKwkJCQkJJSUgZG8gbm90aGluZw0KKysJCQkJCWZhbHNlOw0KKysJ CQkJICAgICUlIG9sZGVyOiANCisrCQkJCSAgICB0cnVlIC0+DQorKwkJCQkJJSUgcmVtb3ZlIHRo ZSB1c2VyDQorKwkJCQkJZWphYmJlcmRfYXV0aDpyZW1vdmVfdXNlcihMVXNlciwgTFNlcnZlciks DQorKwkJCQkJdHJ1ZQ0KKysJCQkJZW5kOw0KKysJCQkgICAgJSUgbm9uZXhpc3RlbnQ6DQorKwkJ CSAgICBbXSAtPg0KKysJCQkJJSUgcmVtb3ZlIHRoZSB1c2VyDQorKwkJCQllamFiYmVyZF9hdXRo OnJlbW92ZV91c2VyKExVc2VyLCBMU2VydmVyKSwNCisrCQkJCXRydWUNCisrCQkJZW5kOw0KKysJ CSAgICAlJSBFbHNlDQorKwkJICAgIF8gLT4NCisrCQkJJSUgZG8gbm90aGluZw0KKysJCQlmYWxz ZQ0KKysJCWVuZA0KKysJZW5kLA0KKysgICAgJSUgQXBwbHkgdGhlIGZ1bmN0aW9uIHRvIGV2ZXJ5 IHVzZXIgaW4gdGhlIGxpc3QNCisrICAgIFVzZXJzX3JlbW92ZWQgPSBsaXN0czpmaWx0ZXIoRiwg VXNlcnMpLA0KKysgICAge3JlbW92ZWQsIGxlbmd0aChVc2Vyc19yZW1vdmVkKSwgVXNlcnNfcmVt b3ZlZH0uDQorKw0KKytudW1fYWN0aXZlX3VzZXJzKEhvc3QsIERheXMpIC0+DQorKyAgICBsaXN0 X2xhc3RfYWN0aXZpdHkoSG9zdCwgdHJ1ZSwgRGF5cykuDQorKw0KKyslJSBDb2RlIGJhc2VkIG9u IGVqYWJiZXJkL3NyYy93ZWIvZWphYmJlcmRfd2ViX2FkbWluLmVybA0KKytsaXN0X2xhc3RfYWN0 aXZpdHkoSG9zdCwgSW50ZWdyYWwsIERheXMpIC0+DQorKyAgICB7TWVnYVNlY3MsIFNlY3MsIF9N aWNyb1NlY3N9ID0gbm93KCksDQorKyAgICBUaW1lU3RhbXAgPSBNZWdhU2VjcyAqIDEwMDAwMDAg KyBTZWNzLA0KKysgICAgVFMgPSBUaW1lU3RhbXAgLSBEYXlzICogODY0MDAsDQorKyAgICBjYXNl IGNhdGNoIG1uZXNpYTpkaXJ0eV9zZWxlY3QoDQorKwkJIGxhc3RfYWN0aXZpdHksIFt7e2xhc3Rf YWN0aXZpdHksIHsnXycsIEhvc3R9LCAnJDEnLCAnXyd9LA0KKysJCQkJICBbeyc+JywgJyQxJywg VFN9XSwNCisrCQkJCSAgW3sndHJ1bmMnLCB7Jy8nLA0KKysJCQkJCSAgICAgIHsnLScsIFRpbWVT dGFtcCwgJyQxJ30sDQorKwkJCQkJICAgICAgODY0MDB9fV19XSkgb2YNCisrCQkJCQkJCSAgICAg IHsnRVhJVCcsIF9SZWFzb259IC0+DQorKwkJIFtdOw0KKysJICAgICAgIFZhbHMgLT4NCisrCQkg SGlzdCA9IGhpc3RvZ3JhbShWYWxzLCBJbnRlZ3JhbCksDQorKwkJIGlmDQorKwkJICAgICBIaXN0 ID09IFtdIC0+DQorKwkJCSAwOw0KKysJCSAgICAgdHJ1ZSAtPg0KKysJCQkgTGVmdCA9IGlmDQor KwkJCQkgICAgRGF5cyA9PSBpbmZpbml0eSAtPg0KKysJCQkJCTA7DQorKwkJCQkgICAgdHJ1ZSAt Pg0KKysJCQkJCURheXMgLSBsZW5ndGgoSGlzdCkNCisrCQkJCWVuZCwNCisrCQkJIFRhaWwgPSBp Zg0KKysJCQkJICAgIEludGVncmFsIC0+DQorKwkJCQkJbGlzdHM6ZHVwbGljYXRlKExlZnQsIGxp c3RzOmxhc3QoSGlzdCkpOw0KKysJCQkJICAgIHRydWUgLT4NCisrCQkJCQlsaXN0czpkdXBsaWNh dGUoTGVmdCwgMCkNCisrCQkJCWVuZCwNCisrCQkJIGxpc3RzOm50aChEYXlzLCBIaXN0ICsrIFRh aWwpDQorKwkJIGVuZA0KKysJIGVuZC4NCisraGlzdG9ncmFtKFZhbHVlcywgSW50ZWdyYWwpIC0+ DQorKyAgICBoaXN0b2dyYW0obGlzdHM6c29ydChWYWx1ZXMpLCBJbnRlZ3JhbCwgMCwgMCwgW10p Lg0KKytoaXN0b2dyYW0oW0ggfCBUXSwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50LCBIaXN0KSB3 aGVuIEN1cnJlbnQgPT0gSCAtPg0KKysgICAgaGlzdG9ncmFtKFQsIEludGVncmFsLCBDdXJyZW50 LCBDb3VudCArIDEsIEhpc3QpOw0KKytoaXN0b2dyYW0oW0ggfCBfXSA9IFZhbHVlcywgSW50ZWdy YWwsIEN1cnJlbnQsIENvdW50LCBIaXN0KSB3aGVuIEN1cnJlbnQgPCBIIC0+DQorKyAgICBpZg0K KysJSW50ZWdyYWwgLT4NCisrCSAgICBoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVu dCArIDEsIENvdW50LCBbQ291bnQgfCBIaXN0XSk7DQorKwl0cnVlIC0+DQorKwkgICAgaGlzdG9n cmFtKFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQgKyAxLCAwLCBbQ291bnQgfCBIaXN0XSkNCisr ICAgIGVuZDsNCisraGlzdG9ncmFtKFtdLCBfSW50ZWdyYWwsIF9DdXJyZW50LCBDb3VudCwgSGlz dCkgLT4NCisrICAgIGlmDQorKwlDb3VudCA+IDAgLT4NCisrCSAgICBsaXN0czpyZXZlcnNlKFtD b3VudCB8IEhpc3RdKTsNCisrCXRydWUgLT4NCisrCSAgICBsaXN0czpyZXZlcnNlKEhpc3QpDQor KyAgICBlbmQuDQorKw0KKytncm91cF9wYXJhbWV0ZXJzKFBzLCBbQ2hhcl0pIC0+DQorKwl7bm9u ZSwgR3JvdXBlZF9Qc30gPSBsaXN0czpmb2xkbCgNCisrCQlmdW4oUCwge1N0YXRlLCBSZXN9KSAt Pg0KKysJCQljYXNlIFN0YXRlIG9mDQorKwkJCQlub25lIC0+IA0KKysJCQkJCWNhc2UgUCBvZg0K KysJCQkJCQlbQ2hhciB8IFBUYWlsXS0+DQorKwkJCQkJCQl7YnVpbGRpbmcsIFtQVGFpbCB8IFJl c119Ow0KKysJCQkJCQlfIC0+DQorKwkJCQkJCQl7bm9uZSwgW1AgfCBSZXNdfQ0KKysJCQkJCWVu ZDsNCisrCQkJCWJ1aWxkaW5nIC0+IA0KKysJCQkJCVtSZXNIZWFkIHwgUmVzVGFpbF0gPSBSZXMs DQorKwkJCQkJY2FzZSBsaXN0czpsYXN0KFApIG9mDQorKwkJCQkJCUNoYXIgLT4NCisrCQkJCQkJ CVAyID0gbGlzdHM6c3VibGlzdChQLCBsZW5ndGgoUCktMSksDQorKwkJCQkJCQl7bm9uZSwgW1Jl c0hlYWQgKysgIiAiICsrIFAyIHwgUmVzVGFpbF19Ow0KKysJCQkJCQlfIC0+DQorKwkJCQkJCQl7 YnVpbGRpbmcsIFtSZXNIZWFkICsrICIgIiArKyBQIHwgUmVzVGFpbF19DQorKwkJCQkJZW5kDQor KwkJCWVuZA0KKysJCWVuZCwNCisrCQl7bm9uZSwgW119LA0KKysJCVBzKSwNCisrCWxpc3RzOnJl dmVyc2UoR3JvdXBlZF9QcykuDQorLS0gCisxLjcuMy4zCisKCmRpZmYgLS1naXQgYS9lamFiYmVy ZC0wMDAyLU1lbnRpb24tbW9kX2N0bGV4dHJhLWFzLWFuLWVqYWJiZXJkLW1vZHVsZS5wYXRjaCBi L2VqYWJiZXJkLTAwMDItTWVudGlvbi1tb2RfY3RsZXh0cmEtYXMtYW4tZWphYmJlcmQtbW9kdWxl LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDE0ZTg3Li4wMDAwMDAwCi0t LSBhL2VqYWJiZXJkLTAwMDItTWVudGlvbi1tb2RfY3RsZXh0cmEtYXMtYW4tZWphYmJlcmQtbW9k dWxlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSBjYTc0ZGU3MDQ1 YjczOTNiMDliNTNkZDAyZTU0OGU3NmNhYjljODQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMTYg RmViIDIwMTAgMTY6MDU6NTMgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCAwMi8xMF0gTWVudGlvbiBt b2RfY3RsZXh0cmEgYXMgYW4gZWphYmJlcmQgbW9kdWxlCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVy IExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvZWphYmJlcmQuYXBwIHwg ICAgMSArCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmQuYXBwIGIvc3JjL2VqYWJiZXJkLmFwcAotaW5k ZXggMGViYjFhYS4uM2E4ZDYwNCAxMDA2NDQKLS0tLSBhL3NyYy9lamFiYmVyZC5hcHAKLSsrKyBi L3NyYy9lamFiYmVyZC5hcHAKLUBAIC03MCw2ICs3MCw3IEBACi0gCSAgICAgbW9kX2NhcHMsCi0g CSAgICAgbW9kX2NvbmZpZ3VyZTIsCi0gCSAgICAgbW9kX2NvbmZpZ3VyZSwKLSsJICAgICBtb2Rf Y3RsZXh0cmEsCi0gCSAgICAgbW9kX2Rpc2NvLAotIAkgICAgIG1vZF9lY2hvLAotIAkgICAgIG1v ZF9odHRwX2JpbmQsCi0tLSAKLTEuNy4yLjEKLQoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDMt Rml4ZWQtZGVsYXlzLWluLXMycy1jb25uZWN0aW9ucy5wYXRjaCBiL2VqYWJiZXJkLTAwMDMtRml4 ZWQtZGVsYXlzLWluLXMycy1jb25uZWN0aW9ucy5wYXRjaAppbmRleCBiMzEzZGRkLi40YzRmZDQ4 IDEwMDY0NAotLS0gYS9lamFiYmVyZC0wMDAzLUZpeGVkLWRlbGF5cy1pbi1zMnMtY29ubmVjdGlv bnMucGF0Y2gKKysrIGIvZWphYmJlcmQtMDAwMy1GaXhlZC1kZWxheXMtaW4tczJzLWNvbm5lY3Rp b25zLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSA5YzhkMWQ0N2NmOGU4YWI5OGU4MDYzMTYx YjA0YzhiZWFiZmM5Y2U1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBjZjQ4NDcyMjRh MTE4MDgzNmQxY2FlZTM2MjFmZjBkNTYyZTRlOGE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQog RnJvbTogU2VyZ2VpIEdvbG92YW4gPHNnb2xvdmFuQG5lcy5ydT4KIERhdGU6IFR1ZSwgMTYgRmVi IDIwMTAgMTY6MDc6MzcgKzAzMDAKIFN1YmplY3Q6IFtQQVRDSCAwMy8xMF0gRml4ZWQgZGVsYXlz IGluIHMycyBjb25uZWN0aW9ucy4KQEAgLTksMjcgKzksMjcgQEAgc2VydmVyIGlzIGRvd24gaXQg d291bGQgYmUgcmVhc29uYWJsZSwgYnV0IHdoYXQgaGFwcGVucyBtdWNoIG1vcmUgb2Z0ZW4gaXMg YQogbmV0d29yayBzcGxpdCB3aGVuIHRoZSBkZWxheSBpcyBpbmFkbWlzc2libGUpLgogLS0tCiAg c3JjL2VqYWJiZXJkX3Myc19pbi5lcmwgIHwgICAgMiArLQotIHNyYy9lamFiYmVyZF9zMnNfb3V0 LmVybCB8ICAgIDYgKysrLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCisgc3JjL2VqYWJiZXJkX3Myc19vdXQuZXJsIHwgICAgNSArKystLQorIDIg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogCiBkaWZmIC0t Z2l0IGEvc3JjL2VqYWJiZXJkX3Myc19pbi5lcmwgYi9zcmMvZWphYmJlcmRfczJzX2luLmVybAot aW5kZXggNTYwODZjOS4uOWFiNThhNyAxMDA2NDQKK2luZGV4IGViOGMwNWEuLjBhYjlkOTQgMTAw NjQ0CiAtLS0gYS9zcmMvZWphYmJlcmRfczJzX2luLmVybAogKysrIGIvc3JjL2VqYWJiZXJkX3My c19pbi5lcmwKLUBAIC0zNjcsNyArMzY3LDcgQEAgc3RyZWFtX2VzdGFibGlzaGVkKHt4bWxzdHJl YW1lbGVtZW50LCBFbH0sIFN0YXRlRGF0YSkgLT4KLSAgICAgICAgICAgICBjYXNlIHtlamFiYmVy ZF9zMnM6YWxsb3dfaG9zdChUbywgRnJvbSksCitAQCAtNDA0LDcgKzQwNCw3IEBAIHN0cmVhbV9l c3RhYmxpc2hlZCh7eG1sc3RyZWFtZWxlbWVudCwgRWx9LCBTdGF0ZURhdGEpIC0+CisgICAgICAg ICAgICAgY2FzZSB7ZWphYmJlcmRfczJzOmFsbG93X2hvc3QoTFRvLCBMRnJvbSksCiAgICAgICAg ICAgICAgICAgICAgbGlzdHM6bWVtYmVyKExUbywgZWphYmJlcmRfcm91dGVyOmRpcnR5X2dldF9h bGxfZG9tYWlucygpKX0gb2YKICAgICAgICAgICAgICAgICAge3RydWUsIHRydWV9IC0+Ci0tCQkg ICAgZWphYmJlcmRfczJzX291dDp0ZXJtaW5hdGVfaWZfd2FpdGluZ19kZWxheShUbywgRnJvbSks Ci0rCQkgICAgJSVlamFiYmVyZF9zMnNfb3V0OnRlcm1pbmF0ZV9pZl93YWl0aW5nX2RlbGF5KFRv LCBGcm9tKSwKLSAJCSAgICBlamFiYmVyZF9zMnNfb3V0OnN0YXJ0KFRvLCBGcm9tLAorLQkJICAg IGVqYWJiZXJkX3Myc19vdXQ6dGVybWluYXRlX2lmX3dhaXRpbmdfZGVsYXkoTFRvLCBMRnJvbSks CisrCQkgICAgJSVlamFiYmVyZF9zMnNfb3V0OnRlcm1pbmF0ZV9pZl93YWl0aW5nX2RlbGF5KExU bywgTEZyb20pLAorIAkJICAgIGVqYWJiZXJkX3Myc19vdXQ6c3RhcnQoTFRvLCBMRnJvbSwKICAJ CQkJCSAgIHt2ZXJpZnksIHNlbGYoKSwKICAJCQkJCSAgICBLZXksIFN0YXRlRGF0YSNzdGF0ZS5z dHJlYW1pZH0pLAogZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZF9zMnNfb3V0LmVybCBiL3NyYy9l amFiYmVyZF9zMnNfb3V0LmVybAotaW5kZXggYTFjNjQxMi4uYjgzOTNjYiAxMDA2NDQKK2luZGV4 IGY1OWU4ZWMuLjE0MjJkM2EgMTAwNjQ0CiAtLS0gYS9zcmMvZWphYmJlcmRfczJzX291dC5lcmwK ICsrKyBiL3NyYy9lamFiYmVyZF9zMnNfb3V0LmVybAotQEAgLTkxLDcgKzkxLDcgQEAKK0BAIC05 Myw3ICs5Myw3IEBACiAgCQkJCQkJIFtGcm9tLCBIb3N0LCBUeXBlXSkpLgogIC1lbmRpZi4KICAK QEAgLTM4LDE3ICszOCwxNiBAQCBpbmRleCBhMWM2NDEyLi5iODM5M2NiIDEwMDY0NAogIAogICUl IFdlIGRvIG5vdCBibG9jayBvbiBzZW5kIGFueW1vcmUuCiAgLWRlZmluZShUQ1BfU0VORF9USU1F T1VULCAxNTAwMCkuCi1AQCAtMjI4LDggKzIyOCw4IEBAIG9wZW5fc29ja2V0KGluaXQsIFN0YXRl RGF0YSkgLT4KLSAJe2Vycm9yLCBfUmVhc29ufSAtPgotIAkgICAgP0lORk9fTVNHKCJzMnMgY29u bmVjdGlvbjogfnMgLT4gfnMgKHJlbW90ZSBzZXJ2ZXIgbm90IGZvdW5kKSIsCi0gCQkgICAgICBb U3RhdGVEYXRhI3N0YXRlLm15bmFtZSwgU3RhdGVEYXRhI3N0YXRlLnNlcnZlcl0pLAotLQkgICAg d2FpdF9iZWZvcmVfcmVjb25uZWN0KFN0YXRlRGF0YSkKLS0JICAgICUle3N0b3AsIG5vcm1hbCwg U3RhdGVEYXRhfQotKwkgICAgJSV3YWl0X2JlZm9yZV9yZWNvbm5lY3QoU3RhdGVEYXRhKQotKwkg ICAge3N0b3AsIG5vcm1hbCwgU3RhdGVEYXRhfQorQEAgLTI0NSw3ICsyNDUsOCBAQCBvcGVuX3Nv Y2tldChpbml0LCBTdGF0ZURhdGEpIC0+CisgCQkgICAgTmV3U3RhdGVEYXRhID0gU3RhdGVEYXRh I3N0YXRle2JyaWRnZT17TW9kLCBGdW59fSwKKyAJCSAgICB7bmV4dF9zdGF0ZSwgcmVsYXlfdG9f YnJpZGdlLCBOZXdTdGF0ZURhdGF9OworIAkJXyAtPgorLQkJICAgIHdhaXRfYmVmb3JlX3JlY29u bmVjdChTdGF0ZURhdGEpCisrCQkgICAgJSV3YWl0X2JlZm9yZV9yZWNvbm5lY3QoU3RhdGVEYXRh KQorKwkJICAgIHtzdG9wLCBub3JtYWwsIFN0YXRlRGF0YX0KKyAJICAgIGVuZAogICAgICBlbmQ7 CiAgb3Blbl9zb2NrZXQoc3RvcCwgU3RhdGVEYXRhKSAtPgotICAgICA/SU5GT19NU0coInMycyBj b25uZWN0aW9uOiB+cyAtPiB+cyAoc3RvcHBlZCBpbiBvcGVuIHNvY2tldCkiLAogLS0gCi0xLjcu Mi4xCisxLjcuMy4zCiAKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDA0LUludHJvZHVjaW5nLW1v ZF9hZG1pbl9leHRyYS5wYXRjaCBiL2VqYWJiZXJkLTAwMDQtSW50cm9kdWNpbmctbW9kX2FkbWlu X2V4dHJhLnBhdGNoCmluZGV4IDg3MmU0YjcuLjBlMDkxNDEgMTAwNjQ0Ci0tLSBhL2VqYWJiZXJk LTAwMDQtSW50cm9kdWNpbmctbW9kX2FkbWluX2V4dHJhLnBhdGNoCisrKyBiL2VqYWJiZXJkLTAw MDQtSW50cm9kdWNpbmctbW9kX2FkbWluX2V4dHJhLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJv bSBhMDc2OWNlZDg3MzgxZmEwN2M2ODQ1ZDVmZGExOGI1ZTU4NGQ0ZWQ1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbSA5YzQxOWM5NTMxZTE2YTFiYWZjZWNkMzI1N2JmYzQ2NDZlYmRjOWQ1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQmFkbG9wIDxiYWRsb3BAcHJvY2Vzcy1v bmUubmV0PgogRGF0ZTogVHVlLCAxNiBGZWIgMjAxMCAxNjoxMjoxNyArMDMwMAogU3ViamVjdDog W1BBVENIIDA0LzEwXSBJbnRyb2R1Y2luZyBtb2RfYWRtaW5fZXh0cmEKQEAgLTE3LDcgKzE3LDcg QEAgaHR0cHM6Ly9mb3JnZS5wcm9jZXNzLW9uZS5uZXQvYnJvd3NlL2VqYWJiZXJkLW1vZHVsZXMv bW9kX2FkbWluX2V4dHJhCiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9tb2RfYWRtaW5fZXh0cmEu ZXJsCiAKIGRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmQuYXBwIGIvc3JjL2VqYWJiZXJkLmFwcAot aW5kZXggM2E4ZDYwNC4uZGU0N2EwZCAxMDA2NDQKK2luZGV4IDZkYjU2M2MuLjU3ZjhhNjEgMTAw NjQ0CiAtLS0gYS9zcmMvZWphYmJlcmQuYXBwCiArKysgYi9zcmMvZWphYmJlcmQuYXBwCiBAQCAt MTA1LDYgKzEwNSw3IEBACkBAIC0xMzE0LDUgKzEzMTQsNSBAQCBpbmRleCAwMDAwMDAwLi45ZjNj YTE0CiAraXNfZ2xvYl9tYXRjaChTdHJpbmcsIEdsb2IpIC0+CiArICAgIGlzX3JlZ2V4cF9tYXRj aChTdHJpbmcsIHJlZ2V4cDpzaF90b19hd2soR2xvYikpLgogLS0gCi0xLjcuMi4xCisxLjcuMy4z CiAKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDA1LUZlZG9yYS1zcGVjaWZpYy1jaGFuZ2VzLXRv LWVqYWJiZXJkY3RsLnBhdGNoIGIvZWphYmJlcmQtMDAwNS1GZWRvcmEtc3BlY2lmaWMtY2hhbmdl cy10by1lamFiYmVyZGN0bC5wYXRjaAppbmRleCBhNzY0NzFlLi5jNGMyODBjIDEwMDY0NAotLS0g YS9lamFiYmVyZC0wMDA1LUZlZG9yYS1zcGVjaWZpYy1jaGFuZ2VzLXRvLWVqYWJiZXJkY3RsLnBh dGNoCisrKyBiL2VqYWJiZXJkLTAwMDUtRmVkb3JhLXNwZWNpZmljLWNoYW5nZXMtdG8tZWphYmJl cmRjdGwucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDUyMjA5ZWI2ZWZkODNiOTFkNWFkNDk2 MjNkOTljNTNhMjdmZmNiZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGU1Zjg0ZTFm OGU2MmUwNzNiZTYxODQzY2MxMjRmMzE1MGU0ZDIyMDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CiBGcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgogRGF0ZTogVHVlLCAx NiBGZWIgMjAxMCAxNjozMDowNSArMDMwMAogU3ViamVjdDogW1BBVENIIDA1LzEwXSBGZWRvcmEt c3BlY2lmaWMgY2hhbmdlcyB0byBlamFiYmVyZGN0bApAQCAtOSw3ICs5LDcgQEAgU2lnbmVkLW9m Zi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KICAxIGZpbGVzIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3NyYy9l amFiYmVyZGN0bC50ZW1wbGF0ZSBiL3NyYy9lamFiYmVyZGN0bC50ZW1wbGF0ZQotaW5kZXggZmVj ZGVjYy4uYmNlZWMyOCAxMDA2NDQKK2luZGV4IDY3ZWFmYmYuLjE2NjVhMDIgMTAwNjQ0CiAtLS0g YS9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKICsrKyBiL3NyYy9lamFiYmVyZGN0bC50ZW1wbGF0 ZQogQEAgLTksMTAgKzksMTAgQEAgRVJMX01BWF9FVFNfVEFCTEVTPTE0MDAKQEAgLTQ0LDUgKzQ0 LDUgQEAgaW5kZXggZmVjZGVjYy4uYmNlZWMyOCAxMDA2NDQKICBkb25lCiAgaWYgWyAiJElEIiAt ZXEgIiRFSklEIiBdIDsgdGhlbgogLS0gCi0xLjcuMi4xCisxLjcuMy4zCiAKCmRpZmYgLS1naXQg YS9lamFiYmVyZC0wMDA2LUNoYW5nZS1kaXJlY3RvcnktdG8tcmVhZGFibGUtYnktZXZlcnlvbmUu cGF0Y2ggYi9lamFiYmVyZC0wMDA2LUNoYW5nZS1kaXJlY3RvcnktdG8tcmVhZGFibGUtYnktZXZl cnlvbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1NjdhYjcuLjAwMDAw MDAKLS0tIGEvZWphYmJlcmQtMDAwNi1DaGFuZ2UtZGlyZWN0b3J5LXRvLXJlYWRhYmxlLWJ5LWV2 ZXJ5b25lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSBhZTI0MWZl ZWM0OWRkOWI5ZmMxMzU1ZTRiZTM3YzNmOGIyNjhkZTg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFRodSwg MTggTWFyIDIwMTAgMTQ6NTc6MjEgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCAwNi8xMF0gQ2hhbmdl IGRpcmVjdG9yeSB0byByZWFkYWJsZSBieSBldmVyeW9uZQotCi1UaGlzIHJlcXVpcmVzIHRvIHN1 cHByZXNzIGVycm9yIG1lc3NhZ2VzIGxpa2UKLSJGaWxlIG9wZXJhdGlvbiBlcnJvcjogZWFjY2Vz Ii4gU2VlIHJoYnogIzU2NDY4NjoKLQotaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tLzU2NDY4 NgotCi1TaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgot LS0tCi0gc3JjL2VqYWJiZXJkY3RsLnRlbXBsYXRlIHwgICAgNCArKysrCi0gMSBmaWxlcyBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMv ZWphYmJlcmRjdGwudGVtcGxhdGUgYi9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKLWluZGV4IGJj ZWVjMjguLmVlNzQ2NTAgMTAwNjQ0Ci0tLS0gYS9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKLSsr KyBiL3NyYy9lamFiYmVyZGN0bC50ZW1wbGF0ZQotQEAgLTM1NSw2ICszNTUsMTAgQEAgd2FpdF9m b3Jfc3RhdHVzKCkKLSAgICAgcmV0dXJuICRzdGF0dXMKLSB9Ci0gCi0rIyBJbiBvcmRlciB0byBw cmV2ZW50IGlzc3VlcyB3aXRoICJGaWxlIG9wZXJhdGlvbiBlcnJvcjogZWFjY2VzLiIKLSsjIFNl ZSByaGJ6ICM1NjQ2ODYuCi0rY2QgLwotKwotIGNhc2UgJEFSR1MgaW4KLSAgICAgJyBzdGFydCcp IHN0YXJ0OzsKLSAgICAgJyBkZWJ1ZycpIGRlYnVnOzsKLS0tIAotMS43LjIuMQotCgpkaWZmIC0t Z2l0IGEvZWphYmJlcmQtMDAwNi1JbnN0YWxsLS5zby1vYmplY3RzLXdpdGgtMDc1NS1wZXJtaXNz aW9ucy5wYXRjaCBiL2VqYWJiZXJkLTAwMDYtSW5zdGFsbC0uc28tb2JqZWN0cy13aXRoLTA3NTUt cGVybWlzc2lvbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM2 NmQ5YgotLS0gL2Rldi9udWxsCisrKyBiL2VqYWJiZXJkLTAwMDYtSW5zdGFsbC0uc28tb2JqZWN0 cy13aXRoLTA3NTUtcGVybWlzc2lvbnMucGF0Y2gKQEAgLTAsMCArMSwyNiBAQAorRnJvbSBkZTQ5 YmY1NTQzMzc1ZmJjY2FmMTEyYmRkMTg5YTcxZDQzYWNiYmYwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KK0RhdGU6IFNh dCwgMTIgSnVuIDIwMTAgMTQ6MTQ6NTIgKzA0MDAKK1N1YmplY3Q6IFtQQVRDSCAwNi8xMF0gSW5z dGFsbCAqLnNvIG9iamVjdHMgd2l0aCAwNzU1IHBlcm1pc3Npb25zCisKK1NpZ25lZC1vZmYtYnk6 IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CistLS0KKyBzcmMvTWFrZWZpbGUu aW4gfCAgICAyICstCisgMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuaW4gYi9zcmMvTWFrZWZpbGUuaW4K K2luZGV4IDRlNTYxODEuLmVmOGE1NWUgMTAwNjQ0CistLS0gYS9zcmMvTWFrZWZpbGUuaW4KKysr KyBiL3NyYy9NYWtlZmlsZS5pbgorQEAgLTIzNiw3ICsyMzYsNyBAQCBpbnN0YWxsOiBhbGwKKyAJ IworIAkjIEJpbmFyeSBzeXN0ZW0gbGlicmFyaWVzCisgCWluc3RhbGwgLWQgJChTT0RJUikKKy0J aW5zdGFsbCAtbSA2NDQgKi5zbyAkKFNPRElSKQorKwlpbnN0YWxsIC1tIDc1NSAqLnNvICQoU09E SVIpCisgCSMKKyAJIyBUcmFuc2xhdGVkIHN0cmluZ3MKKyAJaW5zdGFsbCAtZCAkKE1TR1NESVIp CistLSAKKzEuNy4zLjMKKwoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDctSW5zdGFsbC0uc28t b2JqZWN0cy13aXRoLTA3NTUtcGVybWlzc2lvbnMucGF0Y2ggYi9lamFiYmVyZC0wMDA3LUluc3Rh bGwtLnNvLW9iamVjdHMtd2l0aC0wNzU1LXBlcm1pc3Npb25zLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBiZTgwMWFlLi4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLTAwMDctSW5z dGFsbC0uc28tb2JqZWN0cy13aXRoLTA3NTUtcGVybWlzc2lvbnMucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyNiArMCwwIEBACi1Gcm9tIGM5MWRkZWI1NzM1ZDJhNGNlYmRhMzY0ZGY2NDE5NjM3 Njc5YTBkYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8 bGVtZW5rb3ZAZ21haWwuY29tPgotRGF0ZTogU2F0LCAxMiBKdW4gMjAxMCAxNDoxNDo1MiArMDQw MAotU3ViamVjdDogW1BBVENIIDA3LzEwXSBJbnN0YWxsICouc28gb2JqZWN0cyB3aXRoIDA3NTUg cGVybWlzc2lvbnMKLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdt YWlsLmNvbT4KLS0tLQotIHNyYy9NYWtlZmlsZS5pbiB8ICAgIDIgKy0KLSAxIGZpbGVzIGNoYW5n ZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9N YWtlZmlsZS5pbiBiL3NyYy9NYWtlZmlsZS5pbgotaW5kZXggY2Y2MDBjMy4uYzk0OTJmMyAxMDA2 NDQKLS0tLSBhL3NyYy9NYWtlZmlsZS5pbgotKysrIGIvc3JjL01ha2VmaWxlLmluCi1AQCAtMjMw LDcgKzIzMCw3IEBAIGluc3RhbGw6IGFsbAotIAkjCi0gCSMgQmluYXJ5IHN5c3RlbSBsaWJyYXJp ZXMKLSAJaW5zdGFsbCAtZCAkKFNPRElSKQotLQlpbnN0YWxsIC1tIDY0NCAqLnNvICQoU09ESVIp Ci0rCWluc3RhbGwgLW0gNzU1ICouc28gJChTT0RJUikKLSAJIwotIAkjIFRyYW5zbGF0ZWQgc3Ry aW5ncwotIAlpbnN0YWxsIC1kICQoTVNHU0RJUikKLS0tIAotMS43LjIuMQotCgpkaWZmIC0tZ2l0 IGEvZWphYmJlcmQtMDAwNy1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9yeS1mb3Itc3RvcmluZy1kb2Nz LnBhdGNoIGIvZWphYmJlcmQtMDAwNy1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9yeS1mb3Itc3Rvcmlu Zy1kb2NzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmYjJlYzEK LS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC0wMDA3LVVzZS12ZXJzaW9uZWQtZGlyZWN0b3J5 LWZvci1zdG9yaW5nLWRvY3MucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorRnJvbSAzZTFlZWNjZGZk ZDMxNWM0ZTY2MGU0ODA5OGNiM2E4Yzg4MDJmNzVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMTIg SnVuIDIwMTAgMTY6MTI6MTEgKzA0MDAKK1N1YmplY3Q6IFtQQVRDSCAwNy8xMF0gVXNlIHZlcnNp b25lZCBkaXJlY3RvcnkgZm9yIHN0b3JpbmcgZG9jcworCitJdCdzIGFsc28gYSBnb29kIGlkZWEg dG8gc3RvcmUgZG9jLWZpbGVzIHVuZGVyIHRoZSB2ZXJzaW9uZWQgZGlyZWN0b3J5LgorVGhpcyBt YXkgZ3JlYXRseSBzaW1wbGlmeSBwYXJhbGxlbCBpbnN0YWxsYXRpb24gb2YgZGlmZmVyZW50IHZl cnNpb25zIG9mCitlamFiYmVkLgorCitOb3RlIHRoYXQgdGhpcyBtYXkgYmUgZG9uZSBpbiB0aGUg b3RoZXIgd2F5IC0gYnkgY2hhbmdpbmcgcHJvcGVyIGZpZWxkCitpbiB0aGUgQUNfSU5JVCBtYWNy bywgc2VlIHRoZSBleHBsYW5hdGlvbiBvZiB0aGUgZmllbGQgJ3Rhcm5hbWUnOgorCitodHRwOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b2NvbmYvbWFudWFsL2h0bWxfbm9kZS9Jbml0aWFsaXpp bmctY29uZmlndXJlLmh0bWwKKworU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVu a292QGdtYWlsLmNvbT4KKy0tLQorIHNyYy9NYWtlZmlsZS5pbiB8ICAgIDIgKy0KKyAxIGZpbGVz IGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L3NyYy9NYWtlZmlsZS5pbiBiL3NyYy9NYWtlZmlsZS5pbgoraW5kZXggZWY4YTU1ZS4uZDE1NzM5 YyAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZS5pbgorKysrIGIvc3JjL01ha2VmaWxlLmluCitA QCAtOTgsNyArOTgsNyBAQCBTQklORElSID0gJChERVNURElSKUBzYmluZGlyQAorIEVKQUJCRVJE RElSID0gJChERVNURElSKUBsaWJkaXJAL2VqYWJiZXJkCisgCisgIyAvc2hhcmUvZG9jL2VqYWJi ZXJkCistUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKKytQQUNLQUdFX1RBUk5B TUUgPSBAUEFDS0FHRV9UQVJOQU1FQC1AUEFDS0FHRV9WRVJTSU9OQAorIGRhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAorIERPQ0RJUiA9ICQoREVTVERJUilAZG9jZGlyQAorIAorLS0gCisxLjcu My4zCisKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDA4LVN1cHBvcnQtU0FTTC1HU1NBUEktYXV0 aGVudGljYXRpb24tdGhhbmtzLXRvLU1pa2FlbC0ucGF0Y2ggYi9lamFiYmVyZC0wMDA4LVN1cHBv cnQtU0FTTC1HU1NBUEktYXV0aGVudGljYXRpb24tdGhhbmtzLXRvLU1pa2FlbC0ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY5MDU1ZgotLS0gL2Rldi9udWxsCisr KyBiL2VqYWJiZXJkLTAwMDgtU3VwcG9ydC1TQVNMLUdTU0FQSS1hdXRoZW50aWNhdGlvbi10aGFu a3MtdG8tTWlrYWVsLS5wYXRjaApAQCAtMCwwICsxLDQ4MCBAQAorRnJvbSA2MGIwOGFiMDJmMTcw NzBkNjY1NThhMzdmYWU2OWE3MzViZGE2OTZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogQmFkbG9wIDxiYWRsb3BAcHJvY2Vzcy1vbmUubmV0PgorRGF0ZTogVGh1LCAxNSBBcHIgMjAx MCAxNzoyMDoxNiArMDIwMAorU3ViamVjdDogW1BBVENIIDA4LzEwXSBTdXBwb3J0IFNBU0wgR1NT QVBJIGF1dGhlbnRpY2F0aW9uICh0aGFua3MgdG8gTWlrYWVsIE1hZ251c3NvbikoRUpBQi04MzEp CisKKy0tLQorIHNyYy9jeXJzYXNsLmVybCAgICAgICAgICAgfCAgIDc2ICsrKysrKysrKysrKysr KysrLS0tLQorIHNyYy9jeXJzYXNsLmhybCAgICAgICAgICAgfCAgIDE1ICsrKysKKyBzcmMvY3ly c2FzbF9hbm9ueW1vdXMuZXJsIHwgICAgNiArLQorIHNyYy9jeXJzYXNsX2RpZ2VzdC5lcmwgICAg fCAgICA2ICstCisgc3JjL2N5cnNhc2xfZ3NzYXBpLmVybCAgICB8ICAxNjYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL2N5cnNhc2xfcGxhaW4uZXJs ICAgICB8ICAgIDYgKy0KKyBzcmMvZWphYmJlcmRfYzJzLmVybCAgICAgIHwgICAxMiArKystCisg c3JjL2VqYWJiZXJkX3NvY2tldC5lcmwgICB8ICAgMTkgKysrKysKKyA4IGZpbGVzIGNoYW5nZWQs IDI4MyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2N5cnNhc2wuaHJsCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9jeXJzYXNsX2dzc2FwaS5l cmwKKworZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNsLmVybCBiL3NyYy9jeXJzYXNsLmVybAoraW5k ZXggMTIxZWY2ZC4uZWEzNThmMCAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNsLmVybAorKysrIGIv c3JjL2N5cnNhc2wuZXJsCitAQCAtMzAsMTkgKzMwLDM5IEBACisgLWV4cG9ydChbc3RhcnQvMCwK KyAJIHJlZ2lzdGVyX21lY2hhbmlzbS8zLAorIAkgbGlzdG1lY2gvMSwKKy0JIHNlcnZlcl9uZXcv NywKKysJIHNlcnZlcl9uZXcvOCwKKyAJIHNlcnZlcl9zdGFydC8zLAorIAkgc2VydmVyX3N0ZXAv Ml0pLgorIAorKy1pbmNsdWRlKCJjeXJzYXNsLmhybCIpLgorKy1pbmNsdWRlKCJlamFiYmVyZC5o cmwiKS4KKysKKyslJSBAdHlwZSBzYXNsbWVjaGFuaXNtKCkgPSB7c2FzbF9tZWNoYW5pc20sIE1l Y2hhbmlzbSwgTW9kdWxlLCBSZXF1aXJlX1BsYWlufQorKyUlICAgICBNZWNoYW5pc20gPSBzdHJp bmcoKQorKyUlICAgICBNb2R1bGUgPSBhdG9tKCkKKyslJSAgICAgUmVxdWlyZV9QbGFpbiA9IGJv b2woKS4KKyslJSBSZWdpc3RyeSBlbnRyeSBvZiBhIHN1cHBvcnRlZCBTQVNMIG1lY2hhbmlzbS4K KysKKyAtcmVjb3JkKHNhc2xfbWVjaGFuaXNtLCB7bWVjaGFuaXNtLCBtb2R1bGUsIHJlcXVpcmVf cGxhaW5fcGFzc3dvcmR9KS4KKy0tcmVjb3JkKHNhc2xfc3RhdGUsIHtzZXJ2aWNlLCBteW5hbWUs IHJlYWxtLAorLQkJICAgICBnZXRfcGFzc3dvcmQsIGNoZWNrX3Bhc3N3b3JkLCBjaGVja19wYXNz d29yZF9kaWdlc3QsCistCQkgICAgIG1lY2hfbW9kLCBtZWNoX3N0YXRlfSkuCisrCisrJSUgQHR5 cGUgc2FzbHN0YXRlKCkgPSB7c2FzbF9zdGF0ZSwgU2VydmljZSwgTXluYW1lLCBSZWFsbSwgR2V0 UGFzc3dvcmQsIENoZWNrUGFzc3dvcmQsIENoZWNrUGFzc3dvcmREaWdlc3QsIE1lY2hfTW9kLCBN ZWNoX1N0YXRlfQorKyUlICAgICBTZXJ2aWNlID0gc3RyaW5nKCkKKyslJSAgICAgTXluYW1lID0g c3RyaW5nKCkKKyslJSAgICAgUmVhbG0gPSBzdHJpbmcoKQorKyUlICAgICBHZXRQYXNzd29yZCA9 IGZ1bmN0aW9uKCkKKyslJSAgICAgQ2hlY2tQYXNzd29yZCA9IGZ1bmN0aW9uKCkKKyslJSAgICAg Q2hlY2tQYXNzd29yZERpZ2VzdCA9IGFueSgpCisrJSUgICAgIE1lY2hfTW9kID0gYXRvbSgpCisr JSUgICAgIE1lY2hfU3RhdGUgPSB0ZXJtKCkuCisrJSUgU3RhdGUgb2YgdGhpcyBwcm9jZXNzLgor KworKy1yZWNvcmQoc2FzbF9zdGF0ZSwge3NlcnZpY2UsIG15bmFtZSwKKysJCSAgICAgbWVjaF9t b2QsIG1lY2hfc3RhdGUsIHBhcmFtc30pLgorIAorIC1leHBvcnQoW2JlaGF2aW91cl9pbmZvLzFd KS4KKyAKKyBiZWhhdmlvdXJfaW5mbyhjYWxsYmFja3MpIC0+CistICAgIFt7bWVjaF9uZXcsIDR9 LCB7bWVjaF9zdGVwLCAyfV07CisrICAgIFt7bWVjaF9uZXcsIDF9LCB7bWVjaF9zdGVwLCAyfV07 CisgYmVoYXZpb3VyX2luZm8oX090aGVyKSAtPgorICAgICB1bmRlZmluZWQuCisgCitAQCAtNTMs OCArNzMsMzAgQEAgc3RhcnQoKSAtPgorICAgICBjeXJzYXNsX3BsYWluOnN0YXJ0KFtdKSwKKyAg ICAgY3lyc2FzbF9kaWdlc3Q6c3RhcnQoW10pLAorICAgICBjeXJzYXNsX2Fub255bW91czpzdGFy dChbXSksCisrICAgIG1heWJlX3RyeV9zdGFydF9nc3NhcGkoKSwKKyAgICAgb2suCisgCisrbWF5 YmVfdHJ5X3N0YXJ0X2dzc2FwaSgpIC0+CisrICAgIGNhc2Ugb3M6Z2V0ZW52KCJLUkI1X0tUTkFN RSIpIG9mCisrICAgICAgICBmYWxzZSAtPgorKwkgICAgb2s7CisrICAgICAgICBfU3RyaW5nIC0+ CisrCSAgICB0cnlfc3RhcnRfZ3NzYXBpKCkKKysgICAgZW5kLgorKworK3RyeV9zdGFydF9nc3Nh cGkoKSAtPgorKyAgICBjYXNlIGNvZGU6bG9hZF9maWxlKGVzYXNsKSBvZgorKwl7bW9kdWxlLCBf TW9kdWxlfSAtPgorKwkgICAgY3lyc2FzbF9nc3NhcGk6c3RhcnQoW10pOworKwl7ZXJyb3IsIFdo YXR9IC0+CisrCSAgICA/RVJST1JfTVNHKCJTdXBwb3J0IGZvciBHU1NBUEkgbm90IHN0YXJ0ZWQg YmVjYXVzZSBlc2FzbC5iZWFtIHdhcyBub3QgZm91bmQ6IH5wIiwgW1doYXRdKQorKyAgICBlbmQu CisrCisrJSUgQHNwZWMgKE1lY2hhbmlzbSwgTW9kdWxlLCBSZXF1aXJlX1BsYWluKSAtPiB0cnVl CisrJSUgICAgIE1lY2hhbmlzbSA9IHN0cmluZygpCisrJSUgICAgIE1vZHVsZSA9IGF0b20oKQor KyUlICAgICBSZXF1aXJlX1BsYWluID0gYm9vbCgpCisrCisgcmVnaXN0ZXJfbWVjaGFuaXNtKE1l Y2hhbmlzbSwgTW9kdWxlLCBSZXF1aXJlUGxhaW5QYXNzd29yZCkgLT4KKyAgICAgZXRzOmluc2Vy dChzYXNsX21lY2hhbmlzbSwKKyAJICAgICAgICNzYXNsX21lY2hhbmlzbXttZWNoYW5pc20gPSBN ZWNoYW5pc20sCitAQCAtMTEzLDI0ICsxNTUsMjggQEAgbGlzdG1lY2goSG9zdCkgLT4KKyAgICAg ZmlsdGVyX2Fub255bW91cyhIb3N0LCBNZWNocykuCisgCisgc2VydmVyX25ldyhTZXJ2aWNlLCBT ZXJ2ZXJGUUROLCBVc2VyUmVhbG0sIF9TZWNGbGFncywKKy0JICAgR2V0UGFzc3dvcmQsIENoZWNr UGFzc3dvcmQsIENoZWNrUGFzc3dvcmREaWdlc3QpIC0+CisrCSAgIEdldFBhc3N3b3JkLCBDaGVj a1Bhc3N3b3JkLCBDaGVja1Bhc3N3b3JkRGlnZXN0LCBTb2NrZXQpIC0+CisrICAgIFBhcmFtcyA9 ICNzYXNsX3BhcmFtc3sKKysgICAgICBob3N0ID0gU2VydmVyRlFETiwKKysgICAgICByZWFsbSA9 IFVzZXJSZWFsbSwKKysgICAgICBnZXRfcGFzc3dvcmQgPSBHZXRQYXNzd29yZCwKKysgICAgICBj aGVja19wYXNzd29yZCA9IENoZWNrUGFzc3dvcmQsCisrICAgICAgY2hlY2tfcGFzc3dvcmRfZGln ZXN0PSBDaGVja1Bhc3N3b3JkRGlnZXN0LAorKyAgICAgIHNvY2tldCA9IFNvY2tldAorKyAgICAg fSwKKysKKyAgICAgI3Nhc2xfc3RhdGV7c2VydmljZSA9IFNlcnZpY2UsCisgCQlteW5hbWUgPSBT ZXJ2ZXJGUUROLAorLQkJcmVhbG0gPSBVc2VyUmVhbG0sCistCQlnZXRfcGFzc3dvcmQgPSBHZXRQ YXNzd29yZCwKKy0JCWNoZWNrX3Bhc3N3b3JkID0gQ2hlY2tQYXNzd29yZCwKKy0JCWNoZWNrX3Bh c3N3b3JkX2RpZ2VzdD0gQ2hlY2tQYXNzd29yZERpZ2VzdH0uCisrCQlwYXJhbXMgPSBQYXJhbXN9 LgorKworIAorIHNlcnZlcl9zdGFydChTdGF0ZSwgTWVjaCwgQ2xpZW50SW4pIC0+CisgICAgIGNh c2UgbGlzdHM6bWVtYmVyKE1lY2gsIGxpc3RtZWNoKFN0YXRlI3Nhc2xfc3RhdGUubXluYW1lKSkg b2YKKyAJdHJ1ZSAtPgorIAkgICAgY2FzZSBldHM6bG9va3VwKHNhc2xfbWVjaGFuaXNtLCBNZWNo KSBvZgorIAkJWyNzYXNsX21lY2hhbmlzbXttb2R1bGUgPSBNb2R1bGV9XSAtPgorLQkJICAgIHtv aywgTWVjaFN0YXRlfSA9IE1vZHVsZTptZWNoX25ldygKKy0JCQkJCVN0YXRlI3Nhc2xfc3RhdGUu bXluYW1lLAorLQkJCQkJU3RhdGUjc2FzbF9zdGF0ZS5nZXRfcGFzc3dvcmQsCistCQkJCQlTdGF0 ZSNzYXNsX3N0YXRlLmNoZWNrX3Bhc3N3b3JkLAorLQkJCQkJU3RhdGUjc2FzbF9zdGF0ZS5jaGVj a19wYXNzd29yZF9kaWdlc3QpLAorKwkJICAgIHtvaywgTWVjaFN0YXRlfSA9CisrCQkJTW9kdWxl Om1lY2hfbmV3KFN0YXRlI3Nhc2xfc3RhdGUucGFyYW1zKSwKKyAJCSAgICBzZXJ2ZXJfc3RlcChT dGF0ZSNzYXNsX3N0YXRle21lY2hfbW9kID0gTW9kdWxlLAorIAkJCQkJCSBtZWNoX3N0YXRlID0g TWVjaFN0YXRlfSwKKyAJCQkJQ2xpZW50SW4pOworZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNsLmhy bCBiL3NyYy9jeXJzYXNsLmhybAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAu LmI0Y2MzZTMKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9jeXJzYXNsLmhybAorQEAgLTAsMCAr MSwxNSBAQAorKyUlIEB0eXBlIHNhc2xwYXJhbXMoKSA9IHtzYXNsX3BhcmFtcywgSG9zdCwgUmVh bG0sIEdldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBDaGVja1Bhc3N3b3JkRGlnZXN0fQorKyUl ICAgICBIb3N0ID0gc3RyaW5nKCkKKyslJSAgICAgUmVhbG0gPSBzdHJpbmcoKQorKyUlICAgICBH ZXRQYXNzd29yZCA9IGZ1bmN0aW9uKCkKKyslJSAgICAgQ2hlY2tQYXNzd29yZCA9IGZ1bmN0aW9u KCkKKyslJSAgICAgQ2hlY2tQYXNzd29yZERpZ2VzdCA9IGFueSgpLgorKyUlIFBhcmFtZXRlcnMg Zm9yIFNBU0wuCisrCisrLXJlY29yZChzYXNsX3BhcmFtcywgeworKwkgIGhvc3QsCisrCSAgcmVh bG0sCisrCSAgZ2V0X3Bhc3N3b3JkLAorKwkgIGNoZWNrX3Bhc3N3b3JkLAorKwkgIGNoZWNrX3Bh c3N3b3JkX2RpZ2VzdCwKKysJICBzb2NrZXR9KS4KK2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9h bm9ueW1vdXMuZXJsIGIvc3JjL2N5cnNhc2xfYW5vbnltb3VzLmVybAoraW5kZXggMmIzYmEzNi4u MjY0N2QyOCAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNsX2Fub255bW91cy5lcmwKKysrKyBiL3Ny Yy9jeXJzYXNsX2Fub255bW91cy5lcmwKK0BAIC0yNyw3ICsyNyw5IEBACisgCisgLW1vZHVsZShj eXJzYXNsX2Fub255bW91cykuCisgCistLWV4cG9ydChbc3RhcnQvMSwgc3RvcC8wLCBtZWNoX25l dy80LCBtZWNoX3N0ZXAvMl0pLgorKy1leHBvcnQoW3N0YXJ0LzEsIHN0b3AvMCwgbWVjaF9uZXcv MSwgbWVjaF9zdGVwLzJdKS4KKysKKystaW5jbHVkZSgiY3lyc2FzbC5ocmwiKS4KKyAKKyAtYmVo YXZpb3VyKGN5cnNhc2wpLgorIAorQEAgLTQwLDcgKzQyLDcgQEAgc3RhcnQoX09wdHMpIC0+Cisg c3RvcCgpIC0+CisgICAgIG9rLgorIAorLW1lY2hfbmV3KEhvc3QsIF9HZXRQYXNzd29yZCwgX0No ZWNrUGFzc3dvcmQsIF9DaGVja1Bhc3N3b3JkRGlnZXN0KSAtPgorK21lY2hfbmV3KCNzYXNsX3Bh cmFtc3tob3N0PUhvc3R9KSAtPgorICAgICB7b2ssICNzdGF0ZXtzZXJ2ZXIgPSBIb3N0fX0uCisg CisgbWVjaF9zdGVwKFN0YXRlLCBfQ2xpZW50SW4pIC0+CitkaWZmIC0tZ2l0IGEvc3JjL2N5cnNh c2xfZGlnZXN0LmVybCBiL3NyYy9jeXJzYXNsX2RpZ2VzdC5lcmwKK2luZGV4IDJhN2NlMmEuLjk2 MjgxMzcgMTAwNjQ0CistLS0gYS9zcmMvY3lyc2FzbF9kaWdlc3QuZXJsCisrKysgYi9zcmMvY3ly c2FzbF9kaWdlc3QuZXJsCitAQCAtMjksMTAgKzI5LDExIEBACisgCisgLWV4cG9ydChbc3RhcnQv MSwKKyAJIHN0b3AvMCwKKy0JIG1lY2hfbmV3LzQsCisrCSBtZWNoX25ldy8xLAorIAkgbWVjaF9z dGVwLzJdKS4KKyAKKyAtaW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCisrLWluY2x1ZGUoImN5cnNh c2wuaHJsIikuCisgCisgLWJlaGF2aW91cihjeXJzYXNsKS4KKyAKK0BAIC00NSw3ICs0Niw4IEBA IHN0YXJ0KF9PcHRzKSAtPgorIHN0b3AoKSAtPgorICAgICBvay4KKyAKKy1tZWNoX25ldyhIb3N0 LCBHZXRQYXNzd29yZCwgX0NoZWNrUGFzc3dvcmQsIENoZWNrUGFzc3dvcmREaWdlc3QpIC0+Cisr bWVjaF9uZXcoI3Nhc2xfcGFyYW1ze2hvc3Q9SG9zdCwgZ2V0X3Bhc3N3b3JkPUdldFBhc3N3b3Jk LAorKwkJICAgICAgY2hlY2tfcGFzc3dvcmRfZGlnZXN0PUNoZWNrUGFzc3dvcmREaWdlc3R9KSAt PgorICAgICB7b2ssICNzdGF0ZXtzdGVwID0gMSwKKyAJCW5vbmNlID0gcmFuZG9tczpnZXRfc3Ry aW5nKCksCisgCQlob3N0ID0gSG9zdCwKK2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9nc3NhcGku ZXJsIGIvc3JjL2N5cnNhc2xfZ3NzYXBpLmVybAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAuLjExZDk5NTUKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9jeXJzYXNsX2dzc2Fw aS5lcmwKK0BAIC0wLDAgKzEsMTY2IEBACisrJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyUlJSBGaWxlICAg IDogY3lyc2FzbF9nc3NhcGkuZXJsCisrJSUlIEF1dGhvciAgOiBNaWthZWwgTWFnbnVzc29uIDxt aWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrJSUlIFB1cnBvc2UgOiBHU1NBUEkgU0FTTCBt ZWNoYW5pc20KKyslJSUgQ3JlYXRlZCA6IDEgSnVuZSAyMDA3IGJ5IE1pa2FlbCBNYWdudXNzb24g PG1pa21hQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyslJSUgSWQgICAgICA6ICRJZDogJAorKyUl JS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyslJSUKKyslJSUgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgIE1pa2Fl bCBNYWdudXNzb24gPG1pa21hQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyslJSUKKyslJSUgUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24K KyslJSUgb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24KKyslJSUgZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dAorKyUlJSByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt aXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwKKyslJSUgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCisrJSUlIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl IGlzCisrJSUlIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6CisrJSUlCisrJSUlIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCisrJSUlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKyUlJQorKyUlJSBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwKKyslJSUgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GCisrJSUlIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5ECisrJSUlIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyslJSUgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCisr JSUlIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg T1VUIE9GIE9SIElOCisrJSUlIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVT RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyslJSUgU09GVFdBUkUuCisrJSUlCisrCisrJSUl CisrJSUlIGNvbmZpZ3VyYXRpb24gb3B0aW9uczoKKyslJSUge3Nhc2xfcmVhbG0sICI8S2VyYmVy b3MgcmVhbG0+In0uCisrJSUlCisrJSUlIGVudmlyb25tZW50IHZhcmlhYmxlczoKKyslJSUgS1JC NV9LVE5BTUUKKyslJSUKKysKKystbW9kdWxlKGN5cnNhc2xfZ3NzYXBpKS4KKystYXV0aG9yKCdt aWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQnKS4KKystdnNuKCckUmV2aXNpb246ICQgJykuCisr CisrLWV4cG9ydChbc3RhcnQvMSwKKysJIHN0b3AvMCwKKysJIG1lY2hfbmV3LzEsCisrCSBtZWNo X3N0ZXAvMl0pLgorKworKy1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KKystaW5jbHVkZSgiY3ly c2FzbC5ocmwiKS4KKysKKystYmVoYXZpb3VyKGN5cnNhc2wpLgorKworKy1kZWZpbmUoU0VSVkVS LCA/TU9EVUxFKS4KKystZGVmaW5lKFNFUlZJQ0UsICJ4bXBwIikuCisrCisrLXJlY29yZChzdGF0 ZSwge3Nhc2wsCisrCQluZWVkc21vcmU9dHJ1ZSwKKysJCXN0ZXA9MCwKKysJCWhvc3QsCisrCQly ZWFsbSwKKysJCWF1dGhpZCwKKysJCWF1dGh6aWQsCisrCQlhdXRocmVhbG0sCisrCQllcnJvcn0p LgorKworK3N0YXJ0KF9PcHRzKSAtPgorKyAgICBDaGlsZFNwZWMgPQorKwl7P1NFUlZFUiwKKysJ IHtlc2FzbCwgc3RhcnRfbGluaywgW3tsb2NhbCwgP1NFUlZFUn1dfSwKKysJIHRyYW5zaWVudCwK KysJIDEwMDAsCisrCSB3b3JrZXIsCisrCSBbZXNhc2xdfSwKKysKKysgICAgY2FzZSBzdXBlcnZp c29yOnN0YXJ0X2NoaWxkKGVqYWJiZXJkX3N1cCwgQ2hpbGRTcGVjKSBvZgorKwl7b2ssIF9QaWR9 IC0+CisrCSAgICBjeXJzYXNsOnJlZ2lzdGVyX21lY2hhbmlzbSgiR1NTQVBJIiwgP01PRFVMRSwg ZmFsc2UpOworKwl7ZXJyb3IsIEVycm9yfSA9IEUgLT4KKysJICAgID9FUlJPUl9NU0coImVzYXNs IGZhaWxlZDogfnAiLCBbRXJyb3JdKSwKKysJICAgIEUKKysgICAgZW5kLgorKworKworK3N0b3Ao KSAtPgorKyAgICBjYXRjaCBlc2FzbDpzdG9wKD9TRVJWRVIpLAorKyAgICBzdXBlcnZpc29yOnRl cm1pbmF0ZV9jaGlsZChlamFiYmVyZF9zdXAsID9TRVJWRVIpLAorKyAgICBzdXBlcnZpc29yOmRl bGV0ZV9jaGlsZChlamFiYmVyZF9zdXAsID9TRVJWRVIpLgorKworK21lY2hfbmV3KCNzYXNsX3Bh cmFtc3tob3N0PUhvc3QsIHJlYWxtPVJlYWxtLCBzb2NrZXQ9U29ja2V0fSkgLT4KKysgICAgY2Fz ZSBlamFiYmVyZF9zb2NrZXQ6Z2V0aG9zdG5hbWUoU29ja2V0KSBvZgorKwl7b2ssIEZRRE59IC0+ CisrCSAgICA/REVCVUcoIm1lY2hfbmV3IH5wIH5wIH5wfm4iLCBbSG9zdCwgUmVhbG0sIEZRRE5d KSwKKysJICAgIGNhc2UgZXNhc2w6c2VydmVyX3N0YXJ0KD9TRVJWRVIsICJHU1NBUEkiLCA/U0VS VklDRSwgRlFETikgb2YKKysJCXtvaywgU2FzbH0gLT4KKysJCSAgICB7b2ssICNzdGF0ZXtzYXNs PVNhc2wsaG9zdD1Ib3N0LHJlYWxtPVJlYWxtfX07CisrCQl7ZXJyb3IsIHtnc2FzbF9lcnJvciwg RXJyb3J9fSAtPgorKwkJICAgIHtvaywgU3RyfSA9IGVzYXNsOnN0cl9lcnJvcig/U0VSVkVSLCBF cnJvciksCisrCQkgICAgP0RFQlVHKCJlc2FzbCBlcnJvcjogfnAiLCBbU3RyXSksCisrCQkgICAg e29rLCAjc3RhdGV7bmVlZHNtb3JlPWVycm9yLGVycm9yPSJpbnRlcm5hbC1zZXJ2ZXItZXJyb3Ii fX07CisrCQl7ZXJyb3IsIEVycm9yfSAtPgorKwkJICAgID9ERUJVRygiZXNhc2wgZXJyb3I6IH5w IiwgW0Vycm9yXSksCisrCQkgICAge29rLCAjc3RhdGV7bmVlZHNtb3JlPWVycm9yLGVycm9yPSJp bnRlcm5hbC1zZXJ2ZXItZXJyb3IifX0KKysJICAgIGVuZDsKKysJe2Vycm9yLCBFcnJvcn0gLT4K KysJICAgID9ERUJVRygiZ2V0aG9zdG5hbWUgZXJyb3I6IH5wIiwgW0Vycm9yXSksCisrCSAgICB7 b2ssICNzdGF0ZXtuZWVkc21vcmU9ZXJyb3IsZXJyb3I9ImludGVybmFsLXNlcnZlci1lcnJvciJ9 fQorKyAgICBlbmQuCisrCisrbWVjaF9zdGVwKFN0YXRlLCBDbGllbnRJbikgd2hlbiBpc19saXN0 KENsaWVudEluKSAtPgorKyAgICBjYXRjaCBkb19zdGVwKFN0YXRlLCBDbGllbnRJbikuCisrCisr ZG9fc3RlcCgjc3RhdGV7bmVlZHNtb3JlPWVycm9yLGVycm9yPUVycm9yfT1fU3RhdGUsIF8pIC0+ CisrICAgIHtlcnJvciwgRXJyb3J9OworK2RvX3N0ZXAoI3N0YXRle25lZWRzbW9yZT1mYWxzZX09 U3RhdGUsIF8pIC0+CisrICAgIGNoZWNrX3VzZXIoU3RhdGUpOworK2RvX3N0ZXAoI3N0YXRle25l ZWRzbW9yZT10cnVlLHNhc2w9U2FzbCxzdGVwPVN0ZXB9PVN0YXRlLCBDbGllbnRJbikgLT4KKysg ICAgP0RFQlVHKCJtZWNoX3N0ZXB+biIsIFtdKSwKKysgICAgY2FzZSBlc2FzbDpzdGVwKFNhc2ws IGxpc3RfdG9fYmluYXJ5KENsaWVudEluKSkgb2YKKysJe29rLCBSc3BBdXRofSAtPgorKwkgICAg P0RFQlVHKCJva35uIiwgW10pLAorKwkgICAge29rLCBEaXNwbGF5X25hbWV9ID0gZXNhc2w6cHJv cGVydHlfZ2V0KFNhc2wsIGdzc2FwaV9kaXNwbGF5X25hbWUpLAorKwkgICAge29rLCBBdXRoemlk fSA9IGVzYXNsOnByb3BlcnR5X2dldChTYXNsLCBhdXRoemlkKSwKKysJICAgIHtBdXRoaWQsIFsk QCB8IEF1dGhfcmVhbG1dfSA9CisrCQlsaXN0czpzcGxpdHdpdGgoZnVuKEUpLT5FID0vPSAkQCBl bmQsIERpc3BsYXlfbmFtZSksCisrCSAgICBTdGF0ZTEgPSBTdGF0ZSNzdGF0ZXthdXRoaWQ9QXV0 aGlkLAorKwkJCQkgYXV0aHppZD1BdXRoemlkLAorKwkJCQkgYXV0aHJlYWxtPUF1dGhfcmVhbG19 LAorKwkgICAgaGFuZGxlX3N0ZXBfb2soU3RhdGUxLCBiaW5hcnlfdG9fbGlzdChSc3BBdXRoKSk7 CisrCXtuZWVkc21vcmUsIFJzcEF1dGh9IC0+CisrCSAgICA/REVCVUcoIm5lZWRzbW9yZX5uIiwg W10pLAorKwkgICAgaWYgKFN0ZXAgPiAwKSBhbmQgKENsaWVudEluID06PSBbXSkgYW5kIChSc3BB dXRoID06PSA8PD4+KSAtPgorKwkJICAgIHtlcnJvciwgIm5vdC1hdXRob3JpemVkIn07CisrCQl0 cnVlIC0+CisrCQkgICAge2NvbnRpbnVlLCBiaW5hcnlfdG9fbGlzdChSc3BBdXRoKSwKKysJCSAg ICAgU3RhdGUjc3RhdGV7c3RlcD1TdGVwKzF9fQorKwkgICAgZW5kOworKwl7ZXJyb3IsIF99IC0+ CisrCSAgICB7ZXJyb3IsICJub3QtYXV0aG9yaXplZCJ9CisrICAgIGVuZC4KKysKKytoYW5kbGVf c3RlcF9vayhTdGF0ZSwgW10pIC0+CisrICAgIGNoZWNrX3VzZXIoU3RhdGUpOworK2hhbmRsZV9z dGVwX29rKCNzdGF0ZXtzdGVwPVN0ZXB9PVN0YXRlLCBSc3BBdXRoKSAtPgorKyAgICA/REVCVUco ImNvbnRpbnVlfm4iLCBbXSksCisrICAgIHtjb250aW51ZSwgUnNwQXV0aCwgU3RhdGUjc3RhdGV7 bmVlZHNtb3JlPWZhbHNlLHN0ZXA9U3RlcCsxfX0uCisrCisrY2hlY2tfdXNlcigjc3RhdGV7YXV0 aGlkPUF1dGhpZCxhdXRoemlkPUF1dGh6aWQsCisrCQkgIGF1dGhyZWFsbT1BdXRoX3JlYWxtLGhv c3Q9SG9zdCxyZWFsbT1SZWFsbX0pIC0+CisrICAgIGlmIFJlYWxtID0vPSBBdXRoX3JlYWxtIC0+ CisrCSAgICA/REVCVUcoImJhZCByZWFsbSB+cCAoZXhwZWN0ZWQgfnApfm4iLFtBdXRoX3JlYWxt LCBSZWFsbV0pLAorKwkgICAgdGhyb3coe2Vycm9yLCAibm90LWF1dGhvcml6ZWQifSk7CisrICAg ICAgIHRydWUgLT4KKysJICAgIG9rCisrICAgIGVuZCwKKysKKysgICAgY2FzZSBlamFiYmVyZF9h dXRoOmlzX3VzZXJfZXhpc3RzKEF1dGhpZCwgSG9zdCkgb2YKKysJZmFsc2UgLT4KKysJICAgID9E RUJVRygiYmFkIHVzZXIgfnB+biIsW0F1dGhpZF0pLAorKwkgICAgdGhyb3coe2Vycm9yLCAibm90 LWF1dGhvcml6ZWQifSk7CisrCXRydWUgLT4KKysJICAgIG9rCisrICAgIGVuZCwKKysKKysgICAg P0RFQlVHKCJHU1NBUEkgYXV0aGVudGljYXRlZCB+cCB+cH5uIiwgW0F1dGhpZCwgQXV0aHppZF0p LAorKyAgICB7b2ssIFt7dXNlcm5hbWUsIEF1dGhpZH0sIHthdXRoemlkLCBBdXRoemlkfV19Lgor ZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNsX3BsYWluLmVybCBiL3NyYy9jeXJzYXNsX3BsYWluLmVy bAoraW5kZXggMTI5ZmI4Yi4uNDc5OWE0MSAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNsX3BsYWlu LmVybAorKysrIGIvc3JjL2N5cnNhc2xfcGxhaW4uZXJsCitAQCAtMjcsNyArMjcsOSBAQAorIC1t b2R1bGUoY3lyc2FzbF9wbGFpbikuCisgLWF1dGhvcignYWxleGV5QHByb2Nlc3Mtb25lLm5ldCcp LgorIAorLS1leHBvcnQoW3N0YXJ0LzEsIHN0b3AvMCwgbWVjaF9uZXcvNCwgbWVjaF9zdGVwLzIs IHBhcnNlLzFdKS4KKystZXhwb3J0KFtzdGFydC8xLCBzdG9wLzAsIG1lY2hfbmV3LzEsIG1lY2hf c3RlcC8yLCBwYXJzZS8xXSkuCisrCisrLWluY2x1ZGUoImN5cnNhc2wuaHJsIikuCisgCisgLWJl aGF2aW91cihjeXJzYXNsKS4KKyAKK0BAIC00MCw3ICs0Miw3IEBAIHN0YXJ0KF9PcHRzKSAtPgor IHN0b3AoKSAtPgorICAgICBvay4KKyAKKy1tZWNoX25ldyhfSG9zdCwgX0dldFBhc3N3b3JkLCBD aGVja1Bhc3N3b3JkLCBfQ2hlY2tQYXNzd29yZERpZ2VzdCkgLT4KKyttZWNoX25ldygjc2FzbF9w YXJhbXN7Y2hlY2tfcGFzc3dvcmQgPSBDaGVja1Bhc3N3b3JkfSkgLT4KKyAgICAge29rLCAjc3Rh dGV7Y2hlY2tfcGFzc3dvcmQgPSBDaGVja1Bhc3N3b3JkfX0uCisgCisgbWVjaF9zdGVwKFN0YXRl LCBDbGllbnRJbikgLT4KK2RpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRfYzJzLmVybCBiL3NyYy9l amFiYmVyZF9jMnMuZXJsCitpbmRleCA2ZGJjZDc3Li44ODE4Y2ZlIDEwMDY0NAorLS0tIGEvc3Jj L2VqYWJiZXJkX2Mycy5lcmwKKysrKyBiL3NyYy9lamFiYmVyZF9jMnMuZXJsCitAQCAtMzA1LDkg KzMwNSwxNiBAQCB3YWl0X2Zvcl9zdHJlYW0oe3htbHN0cmVhbXN0YXJ0LCBfTmFtZSwgQXR0cnN9 LCBTdGF0ZURhdGEpIC0+CisgCQkJICAgIHNlbmRfaGVhZGVyKFN0YXRlRGF0YSwgU2VydmVyLCAi MS4wIiwgRGVmYXVsdExhbmcpLAorIAkJCSAgICBjYXNlIFN0YXRlRGF0YSNzdGF0ZS5hdXRoZW50 aWNhdGVkIG9mCisgCQkJCWZhbHNlIC0+CisrCQkJCSAgICBSZWFsbSA9CisrCQkJCQljYXNlIGVq YWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHtzYXNsX3JlYWxtLCBTZXJ2ZXJ9KSBvZgor KwkJCQkJICAgIHVuZGVmaW5lZCAtPgorKwkJCQkJCSIiOworKwkJCQkJICAgIFJlYWxtMCAtPgor KwkJCQkJCVJlYWxtMAorKwkJCQkJZW5kLAorIAkJCQkgICAgU0FTTFN0YXRlID0KKyAJCQkJCWN5 cnNhc2w6c2VydmVyX25ldygKKy0JCQkJCSAgImphYmJlciIsIFNlcnZlciwgIiIsIFtdLAorKwkJ CQkJICAiamFiYmVyIiwgU2VydmVyLCBSZWFsbSwgW10sCisgCQkJCQkgIGZ1bihVKSAtPgorIAkJ CQkJCSAgZWphYmJlcmRfYXV0aDpnZXRfcGFzc3dvcmRfd2l0aF9hdXRobW9kdWxlKAorIAkJCQkJ CSAgICBVLCBTZXJ2ZXIpCitAQCAtMzE5LDcgKzMyNiw4IEBAIHdhaXRfZm9yX3N0cmVhbSh7eG1s c3RyZWFtc3RhcnQsIF9OYW1lLCBBdHRyc30sIFN0YXRlRGF0YSkgLT4KKyAJCQkJCSAgZnVuKFUs IFAsIEQsIERHKSAtPgorIAkJCQkJCSAgZWphYmJlcmRfYXV0aDpjaGVja19wYXNzd29yZF93aXRo X2F1dGhtb2R1bGUoCisgCQkJCQkJICAgIFUsIFNlcnZlciwgUCwgRCwgREcpCistCQkJCQkgIGVu ZCksCisrCQkJCQkgIGVuZCwKKysJCQkJCSAgU3RhdGVEYXRhI3N0YXRlLnNvY2tldCksCisgCQkJ CSAgICBNZWNocyA9IGxpc3RzOm1hcCgKKyAJCQkJCSAgICAgIGZ1bihTKSAtPgorIAkJCQkJCSAg ICAgIHt4bWxlbGVtZW50LCAibWVjaGFuaXNtIiwgW10sCitkaWZmIC0tZ2l0IGEvc3JjL2VqYWJi ZXJkX3NvY2tldC5lcmwgYi9zcmMvZWphYmJlcmRfc29ja2V0LmVybAoraW5kZXggNGQyMWU0MC4u NjZiOWM0YyAxMDA2NDQKKy0tLSBhL3NyYy9lamFiYmVyZF9zb2NrZXQuZXJsCisrKysgYi9zcmMv ZWphYmJlcmRfc29ja2V0LmVybAorQEAgLTQ0LDkgKzQ0LDExIEBACisgCSBnZXRfcGVlcl9jZXJ0 aWZpY2F0ZS8xLAorIAkgZ2V0X3ZlcmlmeV9yZXN1bHQvMSwKKyAJIGNsb3NlLzEsCisrCSBnZXRo b3N0bmFtZS8xLAorIAkgc29ja25hbWUvMSwgcGVlcm5hbWUvMV0pLgorIAorIC1pbmNsdWRlKCJl amFiYmVyZC5ocmwiKS4KKystaW5jbHVkZV9saWIoImtlcm5lbC9pbmNsdWRlL2luZXQuaHJsIiku CisgCisgLXJlY29yZChzb2NrZXRfc3RhdGUsIHtzb2NrbW9kLCBzb2NrZXQsIHJlY2VpdmVyfSku CisgCitAQCAtMjI4LDYgKzIzMCwyMyBAQCBwZWVybmFtZSgjc29ja2V0X3N0YXRle3NvY2ttb2Qg PSBTb2NrTW9kLCBzb2NrZXQgPSBTb2NrZXR9KSAtPgorIAkgICAgU29ja01vZDpwZWVybmFtZShT b2NrZXQpCisgICAgIGVuZC4KKyAKKytnZXRob3N0bmFtZSgjc29ja2V0X3N0YXRle3NvY2tldCA9 IFNvY2tldH0gPSBTdGF0ZSkgLT4KKysgICAgP0RFQlVHKCJnZXRob3N0bmFtZSB+cH5uIiwgW1Nv Y2tldF0pLAorKworKyAgICBjYXNlIHNvY2tuYW1lKFN0YXRlKSBvZgorKwl7b2ssIHtBZGRyLCBf UG9ydH19IC0+CisrCSAgICBjYXNlIGluZXQ6Z2V0aG9zdGJ5YWRkcihBZGRyKSBvZgorKwkJe29r LCBIb3N0RW50fSB3aGVuIGlzX3JlY29yZChIb3N0RW50LCBob3N0ZW50KSAtPgorKwkJICAgID9E RUJVRygiZ2V0aG9zdG5hbWUgcmVzdWx0IH5wfm4iLAorKwkJCSAgIFtIb3N0RW50I2hvc3RlbnQu aF9uYW1lXSksCisrCQkgICAge29rLCBIb3N0RW50I2hvc3RlbnQuaF9uYW1lfTsKKysJCXtlcnJv ciwgX1JlYXNvbn0gPSBFIC0+CisrCQkgICAgRQorKwkgICAgZW5kOworKwl7ZXJyb3IsIF9SZWFz b259ID0gRSAtPgorKwkgICAgRQorKyAgICBlbmQuCisrCisgJSU9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICUlIElu dGVybmFsIGZ1bmN0aW9ucworICUlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIAorMS43LjMuMworCgpkaWZmIC0t Z2l0IGEvZWphYmJlcmQtMDAwOC1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9yeS1mb3Itc3RvcmluZy1k b2NzLnBhdGNoIGIvZWphYmJlcmQtMDAwOC1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9yeS1mb3Itc3Rv cmluZy1kb2NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWEyM2JjLi4w MDAwMDAwCi0tLSBhL2VqYWJiZXJkLTAwMDgtVXNlLXZlcnNpb25lZC1kaXJlY3RvcnktZm9yLXN0 b3JpbmctZG9jcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gNTU2 MjJkMWFmOWIyNzAyODIxOTI1N2VkN2U1NTgzYzYwN2E5MWQyZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBT YXQsIDEyIEp1biAyMDEwIDE2OjEyOjExICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDgvMTBdIFVz ZSB2ZXJzaW9uZWQgZGlyZWN0b3J5IGZvciBzdG9yaW5nIGRvY3MKLQotSXQncyBhbHNvIGEgZ29v ZCBpZGVhIHRvIHN0b3JlIGRvYy1maWxlcyB1bmRlciB0aGUgdmVyc2lvbmVkIGRpcmVjdG9yeS4K LVRoaXMgbWF5IGdyZWF0bHkgc2ltcGxpZnkgcGFyYWxsZWwgaW5zdGFsbGF0aW9uIG9mIGRpZmZl cmVudCB2ZXJzaW9ucyBvZgotZWphYmJlZC4KLQotTm90ZSB0aGF0IHRoaXMgbWF5IGJlIGRvbmUg aW4gdGhlIG90aGVyIHdheSAtIGJ5IGNoYW5naW5nIHByb3BlciBmaWVsZAotaW4gdGhlIEFDX0lO SVQgbWFjcm8sIHNlZSB0aGUgZXhwbGFuYXRpb24gb2YgdGhlIGZpZWxkICd0YXJuYW1lJzoKLQot aHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mL21hbnVhbC9odG1sX25vZGUvSW5p dGlhbGl6aW5nLWNvbmZpZ3VyZS5odG1sCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292 IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvTWFrZWZpbGUuaW4gfCAgICAyICstCi0g MSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9zcmMvTWFrZWZpbGUuaW4gYi9zcmMvTWFrZWZpbGUuaW4KLWluZGV4IGM5NDkyZjMu LjdiNTg1ZDAgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuaW4KLSsrKyBiL3NyYy9NYWtlZmls ZS5pbgotQEAgLTkyLDcgKzkyLDcgQEAgU0JJTkRJUiA9ICQoREVTVERJUilAc2JpbmRpckAKLSBF SkFCQkVSRERJUiA9ICQoREVTVERJUilAbGliZGlyQC9lamFiYmVyZAotIAotICMgL3NoYXJlL2Rv Yy9lamFiYmVyZAotLVBBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FH RV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAtQFBBQ0tBR0VfVkVSU0lPTkAKLSBkYXRhcm9v dGRpciA9IEBkYXRhcm9vdGRpckAKLSBET0NESVIgPSAkKERFU1RESVIpQGRvY2RpckAKLSAKLS0t IAotMS43LjIuMQotCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAwOS1BZGRlZC1vbGQtbW9kdWxl cy1mb3ItQWN0aXZlLURpcmVjdG9yeS5wYXRjaCBiL2VqYWJiZXJkLTAwMDktQWRkZWQtb2xkLW1v ZHVsZXMtZm9yLUFjdGl2ZS1EaXJlY3RvcnkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMTI2MWI5OAotLS0gL2Rldi9udWxsCisrKyBiL2VqYWJiZXJkLTAwMDktQWRk ZWQtb2xkLW1vZHVsZXMtZm9yLUFjdGl2ZS1EaXJlY3RvcnkucGF0Y2gKQEAgLTAsMCArMSwxMjY2 IEBACitGcm9tIGMyOGIwNGYzYWJmM2E0ZTIzMzExNWMzZDc4M2RiMzU2Yzk1NjdkOWIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwu Y29tPgorRGF0ZTogVHVlLCAxNCBEZWMgMjAxMCAxODoyODo0NCArMDMwMAorU3ViamVjdDogW1BB VENIIDA5LzEwXSBBZGRlZCBvbGQgbW9kdWxlcyBmb3IgQWN0aXZlIERpcmVjdG9yeQorCitUaGVz ZSBtb2R1bGVzIHdlcmUgZXh0cmFjdGVkIGZyb20gYSBwYXRjaCBmb3VuZCBvbgoraHR0cDovL3Jl YWxsb2Muc3BiLnJ1L3NoYXJlL2VqYWJiZXJkYWQuaHRtbAorCitQbGVhc2UsIG5vdGUgdGhhdCB0 aGVzZSBhcmUgdW5tYWludGFpbmVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgdmVyeQorc29vbiAodXNl cnMgc2hvdWxkIHVzZSAqX2xkYXAuZXJsIGluc3RlYWQpLgorLS0tCisgc3JjL2VqYWJiZXJkX2F1 dGhfYWQuZXJsICAgICB8ICAxNjcgKysrKysrKysrKysKKyBzcmMvbW9kX3NoYXJlZF9yb3N0ZXJf YWQuZXJsIHwgIDQyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL21vZF92Y2Fy ZF9hZC5lcmwgICAgICAgICB8ICA2MzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxMjI2IGluc2VydGlvbnMoKyksIDAgZGVsZXRp b25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9lamFiYmVyZF9hdXRoX2FkLmVybAorIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbW9kX3NoYXJlZF9yb3N0ZXJfYWQuZXJsCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9tb2RfdmNhcmRfYWQuZXJsCisKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJl cmRfYXV0aF9hZC5lcmwgYi9zcmMvZWphYmJlcmRfYXV0aF9hZC5lcmwKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwLi41ZTllNDUyCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMv ZWphYmJlcmRfYXV0aF9hZC5lcmwKK0BAIC0wLDAgKzEsMTY3IEBACisrJSUlLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyUlJSBGaWxlICAgIDogZWphYmJlcmRfYXV0aF9hZC5lcmwKKyslJSUgQXV0aG9yICA6IEFs ZXhleSBTaGNoZXBpbiA8YWxleGV5QHNldmNvbS5uZXQ+CisrJSUlIEF1dGhvciAgOiBBbGV4IEdv cmJhY2hlbmtvIDxhZ2VudF8wMDdAaW1tby5ydT4KKyslJSUgQXV0aG9yICA6IFN0YW5pc2xhdiBC b2dhdHlyZXYgPHJlYWxsb2NAcmVhbGxvYy5zcGIucnU+CisrJSUlIFB1cnBvc2UgOiBBdXRoZW50 aWZpY2F0aW9uIHZpYSBBY3RpdmUgRGlyZWN0b3J5CisrJSUlIENyZWF0ZWQgOiAxMiBEZWMgMjAw NCBieSBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0PgorKyUlJSBJZCAgICAgIDog JElkOiBlamFiYmVyZF9hdXRoX2FkLmVybCAzODYgMjAwNS0xMi0yMCAxMDowNjozN1ogYWdlbnRf MDA3ICQKKyslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrLW1vZHVsZShlamFiYmVyZF9hdXRoX2FkKS4K KystYXV0aG9yKCdhbGV4ZXlAc2V2Y29tLm5ldCcpLgorKy1hdXRob3IoJ2FnZW50XzAwN0BpbW1v LnJ1JykuCisrLWF1dGhvcigncmVhbGxvY0ByZWFsbG9jLnNwYi5ydScpLgorKy12c24oJyRSZXZp c2lvbjogMzg2ICQgJykuCisrCisrJSUgRXh0ZXJuYWwgZXhwb3J0cworKy1leHBvcnQoW3N0YXJ0 LzEsCisrCSBzZXRfcGFzc3dvcmQvMywKKysJIGNoZWNrX3Bhc3N3b3JkLzMsCisrCSBjaGVja19w YXNzd29yZC81LAorKwkgdHJ5X3JlZ2lzdGVyLzMsCisrCSBkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91 c2Vycy8wLAorKwkgZ2V0X3ZoX3JlZ2lzdGVyZWRfdXNlcnMvMSwKKysJIGdldF9wYXNzd29yZC8y LAorKwkgZ2V0X3Bhc3N3b3JkX3MvMiwKKysJIGlzX3VzZXJfZXhpc3RzLzIsCisrCSByZW1vdmVf dXNlci8yLAorKwkgcmVtb3ZlX3VzZXIvMywKKysJIHBsYWluX3Bhc3N3b3JkX3JlcXVpcmVkLzAK KysJXSkuCisrCisrLWluY2x1ZGUoImVqYWJiZXJkLmhybCIpLgorKy1pbmNsdWRlKCJlbGRhcC9l bGRhcC5ocmwiKS4KKysKKyslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJSUlIEFQSQorKyUlJS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKytzdGFydChIb3N0KSAtPgorKyAgICBMREFQU2VydmVycyA9IGVqYWJiZXJkX2NvbmZp ZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9zZXJ2ZXJzLCBIb3N0fSksCisrICAgIFJvb3RETiA9IGVq YWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9yb290ZG4sIEhvc3R9KSwKKysgICAg UGFzc3dvcmQgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfcGFzc3dvcmQs IEhvc3R9KSwKKysgICAgZWxkYXA6c3RhcnRfbGluayhnZXRfZWxkYXBfaWQoSG9zdCwgZWphYmJl cmQpLAorKwkJICAgICBMREFQU2VydmVycywgMzg5LCBSb290RE4sIFBhc3N3b3JkKSwKKysgICAg ZWxkYXA6c3RhcnRfbGluayhnZXRfZWxkYXBfaWQoSG9zdCwgZWphYmJlcmRfYmluZCksCisrCQkg ICAgIExEQVBTZXJ2ZXJzLCAzODksIFJvb3RETiwgUGFzc3dvcmQpLAorKyAgICBvay4KKysKKytw bGFpbl9wYXNzd29yZF9yZXF1aXJlZCgpIC0+CisrICAgIHRydWUuCisrCisrY2hlY2tfcGFzc3dv cmQoVXNlciwgU2VydmVyLCBQYXNzd29yZCkgLT4KKysgICAgY2FzZSBmaW5kX3VzZXJfZG4oVXNl ciwgU2VydmVyKSBvZgorKwlmYWxzZSAtPgorKwkgICAgZmFsc2U7CisrCUROIC0+CisrCSAgICBM U2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorKwkgICAgY2FzZSBlbGRhcDpiaW5kKGdl dF9lbGRhcF9pZChMU2VydmVyLCBlamFiYmVyZF9iaW5kKSwKKysJCQkgICAgRE4sIFBhc3N3b3Jk KSBvZgorKwkJb2sgLT4KKysJCSAgICB0cnVlOworKwkJXyAtPgorKwkJICAgIGZhbHNlCisrCSAg ICBlbmQKKysgICAgZW5kLgorKworK2NoZWNrX3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dv cmQsIF9TdHJlYW1JRCwgX0RpZ2VzdCkgLT4KKysgICAgY2hlY2tfcGFzc3dvcmQoVXNlciwgU2Vy dmVyLCBQYXNzd29yZCkuCisrCisrc2V0X3Bhc3N3b3JkKF9Vc2VyLCBfU2VydmVyLCBfUGFzc3dv cmQpIC0+CisrICAgIHtlcnJvciwgbm90X2FsbG93ZWR9LgorKworK3RyeV9yZWdpc3RlcihfVXNl ciwgX1NlcnZlciwgX1Bhc3N3b3JkKSAtPgorKyAgICB7ZXJyb3IsIG5vdF9hbGxvd2VkfS4KKysK KytkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2VycygpIC0+CisrICAgIGdldF92aF9yZWdpc3RlcmVk X3VzZXJzKD9NWU5BTUUpLgorKworK2dldF92aF9yZWdpc3RlcmVkX3VzZXJzKFNlcnZlcikgLT4K KysgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKKysgICAgQXR0ciA9IGVqYWJi ZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF91aWRhdHRyLCBMU2VydmVyfSksCisrJSAg ICBBZEdyb3VwID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2dyb3VwLCBM U2VydmVyfSksCisrICAgIEZpbHRlclBlcnNvbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVj dENhdGVnb3J5IiwgInBlcnNvbiIpLAorKyAgICBGaWx0ZXJDb21wID0gZWxkYXA6ZXF1YWxpdHlN YXRjaCgib2JqZWN0Q2xhc3MiLCAiY29tcHV0ZXIiKSwKKysgICAgRmlsdGVySGlkZGVuID0gZWxk YXA6ZXF1YWxpdHlNYXRjaCgiZGVzY3JpcHRpb24iLCAiaGlkZGVuIiksCisrJSAgICBGaWx0ZXJH cm91cCA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCisrICAgIEZp bHRlckxpdmUgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJ1c2VyQWNjb3VudENvbnRyb2wiLCAiNjYw NTAiKSwKKysgICAgRmlsdGVyRGVmID0gZWxkYXA6cHJlc2VudChBdHRyKSwKKysgICAgRmlsdGVy ID0gZWxkYXA6J2FuZCcoWworKwkJCSAgRmlsdGVyRGVmLAorKwkJCSAgRmlsdGVyUGVyc29uLAor KyUJCQkgIEZpbHRlckdyb3VwLAorKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVyQ29tcCksCisrCQkJ ICBlbGRhcDonbm90JyhGaWx0ZXJIaWRkZW4pLAorKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVyTGl2 ZSldKSwKKysgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9i YXNlLCBMU2VydmVyfSksCisrICAgIGNhc2UgZWxkYXA6c2VhcmNoKGdldF9lbGRhcF9pZChMU2Vy dmVyLCBlamFiYmVyZCksCisrCQkgICAgICBbe2Jhc2UsIEJhc2V9LAorKwkJICAgICAgIHtmaWx0 ZXIsIEZpbHRlcn0sCisrCQkgICAgICAge2F0dHJpYnV0ZXMsIFtBdHRyXX1dKSBvZgorKwkjZWxk YXBfc2VhcmNoX3Jlc3VsdHtlbnRyaWVzID0gRXN9IC0+CisrCSAgICBsaXN0czpmbGF0bWFwKAor KwkgICAgICBmdW4oRSkgLT4KKysJCSAgICAgIGNhc2UgbGlzdHM6a2V5c2VhcmNoKEF0dHIsIDEs IEUjZWxkYXBfZW50cnkuYXR0cmlidXRlcykgb2YKKysJCQkgIHt2YWx1ZSwge18sIFtVXX19IC0+ CisrCQkJICAgICAgY2FzZSBqbGliOm5vZGVwcmVwKFUpIG9mCisrCQkJCSAgZXJyb3IgLT4KKysJ CQkJICAgICAgW107CisrCQkJCSAgTFUgLT4KKysJCQkJICAgICAgW3tMVSwgTFNlcnZlcn1dCisr CQkJICAgICAgZW5kOworKwkJCSAgXyAtPgorKwkJCSAgICAgIFtdCisrCQkgICAgICBlbmQKKysJ ICAgICAgZW5kLCBFcyk7CisrCV8gLT4KKysJICAgIFtdCisrICAgIGVuZC4KKysKKytnZXRfcGFz c3dvcmQoX1VzZXIsIF9TZXJ2ZXIpIC0+CisrICAgIGZhbHNlLgorKworK2dldF9wYXNzd29yZF9z KF9Vc2VyLCBfU2VydmVyKSAtPgorKyAgICAiIi4KKysKKytpc191c2VyX2V4aXN0cyhVc2VyLCBT ZXJ2ZXIpIC0+CisrICAgIGNhc2UgZmluZF91c2VyX2RuKFVzZXIsIFNlcnZlcikgb2YKKysJZmFs c2UgLT4KKysJICAgIGZhbHNlOworKwlfRE4gLT4KKysJICAgIHRydWUKKysgICAgZW5kLgorKwor K3JlbW92ZV91c2VyKF9Vc2VyLCBfU2VydmVyKSAtPgorKyAgICB7ZXJyb3IsIG5vdF9hbGxvd2Vk fS4KKysKKytyZW1vdmVfdXNlcihfVXNlciwgX1NlcnZlciwgX1Bhc3N3b3JkKSAtPgorKyAgICBu b3RfYWxsb3dlZC4KKysKKysKKyslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJSUlIEludGVybmFsIGZ1bmN0 aW9ucworKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytmaW5kX3VzZXJfZG4oVXNlciwgU2VydmVyKSAt PgorKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorKyAgICBBZEdyb3VwID0g ZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2dyb3VwLCBMU2VydmVyfSksCisr ICAgIEF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfdWlkYXR0ciwg TFNlcnZlcn0pLAorKyAgICBGaWx0ZXJBdHRyID0gZWxkYXA6ZXF1YWxpdHlNYXRjaChBdHRyLCBV c2VyKSwKKysgICAgRmlsdGVyR3JvdXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJtZW1iZXJPZiIs IEFkR3JvdXApLAorKyAgICBGaWx0ZXIgPSBlbGRhcDonYW5kJyhbCisrICAgICAgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXJBdHRyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVy R3JvdXAKKysgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLAorKyAgICBCYXNlID0gZWphYmJl cmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jhc2UsIExTZXJ2ZXJ9KSwKKysgICAgY2Fz ZSBlbGRhcDpzZWFyY2goZ2V0X2VsZGFwX2lkKExTZXJ2ZXIsIGVqYWJiZXJkKSwKKysJCSAgICAg IFt7YmFzZSwgQmFzZX0sCisrCQkgICAgICAge2ZpbHRlciwgRmlsdGVyfSwKKysJCSAgICAgICB7 YXR0cmlidXRlcywgW119XSkgb2YKKysJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IFtF IHwgX119IC0+CisrCSAgICBFI2VsZGFwX2VudHJ5Lm9iamVjdF9uYW1lOworKwlfIC0+CisrCSAg ICBmYWxzZQorKyAgICBlbmQuCisrCisrZ2V0X2VsZGFwX2lkKEhvc3QsIE5hbWUpIC0+CisrICAg IGF0b21fdG9fbGlzdChnZW5fbW9kOmdldF9tb2R1bGVfcHJvYyhIb3N0LCBOYW1lKSkuCitkaWZm IC0tZ2l0IGEvc3JjL21vZF9zaGFyZWRfcm9zdGVyX2FkLmVybCBiL3NyYy9tb2Rfc2hhcmVkX3Jv c3Rlcl9hZC5lcmwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi44ZGMwOWYx CistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvbW9kX3NoYXJlZF9yb3N0ZXJfYWQuZXJsCitAQCAt MCwwICsxLDQyOCBAQAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyslJSUgRmlsZSAgICA6IG1vZF9zaGFy ZWRfcm9zdGVyLmVybAorKyUlJSBBdXRob3IgIDogQWxleGV5IFNoY2hlcGluIDxhbGV4ZXlAc2V2 Y29tLm5ldD4KKyslJSUgQXV0aG9yICA6IFN0YW5pc2xhdiBCb2dhdHlyZXYgPHJlYWxsb2NAcmVh bGxvYy5zcGIucnU+CisrJSUlIFB1cnBvc2UgOiBTaGFyZWQgcm9zdGVyIG1hbmFnZW1lbnQKKysl JSUgQ3JlYXRlZCA6ICA1IE1hciAyMDA1IGJ5IEFsZXhleSBTaGNoZXBpbiA8YWxleGV5QHNldmNv bS5uZXQ+CisrJSUlIElkICAgICAgOiAkSWQ6IG1vZF9zaGFyZWRfcm9zdGVyX2FkLmVybCx2IDEu MSAyMDA2LzA2LzIzIDEyOjQwOjAzIGpjb2xsaWUgRXhwICQKKyslJSUtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr CisrLW1vZHVsZShtb2Rfc2hhcmVkX3Jvc3Rlcl9hZCkuCisrLWF1dGhvcignYWxleGV5QHNldmNv bS5uZXQnKS4KKystYXV0aG9yKCdyZWFsbG9jQHJlYWxsb2Muc3BiLnJ1JykuCisrLXZzbignJFJl dmlzaW9uOiAxLjEgJCAnKS4KKysKKystYmVoYXZpb3VyKGdlbl9tb2QpLgorKworKy1leHBvcnQo W3N0YXJ0LzIsIHN0b3AvMSwKKysJIGdldF91c2VyX3Jvc3Rlci8yLAorKwkgZ2V0X3N1YnNjcmlw dGlvbl9saXN0cy8zLAorKwkgZ2V0X2ppZF9pbmZvLzQsCisrCSBpbl9zdWJzY3JpcHRpb24vNSwK KysJIG91dF9zdWJzY3JpcHRpb24vNCwKKysJIGxpc3RfZ3JvdXBzLzEsCisrCSBjcmVhdGVfZ3Jv dXAvMiwKKysJIGNyZWF0ZV9ncm91cC8zLAorKwkgZGVsZXRlX2dyb3VwLzIsCisrCSBnZXRfZ3Jv dXBfb3B0cy8yLAorKwkgc2V0X2dyb3VwX29wdHMvMywKKysJIGdldF9ncm91cF91c2Vycy8yLAor KwkgZ2V0X2dyb3VwX2V4cGxpY2l0X3VzZXJzLzIsCisrCSBhZGRfdXNlcl90b19ncm91cC8zLAor KwkgcmVtb3ZlX3VzZXJfZnJvbV9ncm91cC8zXSkuCisrCisrLWluY2x1ZGUoImVqYWJiZXJkLmhy bCIpLgorKy1pbmNsdWRlKCJqbGliLmhybCIpLgorKy1pbmNsdWRlKCJtb2Rfcm9zdGVyLmhybCIp LgorKy1pbmNsdWRlKCJlbGRhcC9lbGRhcC5ocmwiKS4KKysKKystcmVjb3JkKHNyX2dyb3VwLCB7 Z3JvdXBfaG9zdCwgb3B0c30pLgorKy1yZWNvcmQoc3JfdXNlciwge3VzLCBncm91cF9ob3N0fSku CisrCisrc3RhcnQoSG9zdCwgX09wdHMpIC0+CisrICAgIG1uZXNpYTpjcmVhdGVfdGFibGUoc3Jf Z3JvdXAsCisrCQkJW3tkaXNjX2NvcGllcywgW25vZGUoKV19LAorKwkJCSB7YXR0cmlidXRlcywg cmVjb3JkX2luZm8oZmllbGRzLCBzcl9ncm91cCl9XSksCisrICAgIG1uZXNpYTpjcmVhdGVfdGFi bGUoc3JfdXNlciwKKysJCQlbe2Rpc2NfY29waWVzLCBbbm9kZSgpXX0sCisrCQkJIHt0eXBlLCBi YWd9LAorKwkJCSB7YXR0cmlidXRlcywgcmVjb3JkX2luZm8oZmllbGRzLCBzcl91c2VyKX1dKSwK KysgICAgbW5lc2lhOmFkZF90YWJsZV9pbmRleChzcl91c2VyLCBncm91cF9ob3N0KSwKKysgICAg ZWphYmJlcmRfaG9va3M6YWRkKHJvc3Rlcl9nZXQsIEhvc3QsCisrCQkgICAgICAgP01PRFVMRSwg Z2V0X3VzZXJfcm9zdGVyLCA3MCksCisrICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfaW5f c3Vic2NyaXB0aW9uLCBIb3N0LAorKyAgICAgICAgCSAgICAgICA/TU9EVUxFLCBpbl9zdWJzY3Jp cHRpb24sIDMwKSwKKysgICAgZWphYmJlcmRfaG9va3M6YWRkKHJvc3Rlcl9vdXRfc3Vic2NyaXB0 aW9uLCBIb3N0LAorKyAgICAgICAgCSAgICAgICA/TU9EVUxFLCBvdXRfc3Vic2NyaXB0aW9uLCAz MCksCisrICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfZ2V0X3N1YnNjcmlwdGlvbl9saXN0 cywgSG9zdCwKKysJCSAgICAgICA/TU9EVUxFLCBnZXRfc3Vic2NyaXB0aW9uX2xpc3RzLCA3MCks CisrICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfZ2V0X2ppZF9pbmZvLCBIb3N0LAorKyAg ICAgICAgCSAgICAgICA/TU9EVUxFLCBnZXRfamlkX2luZm8sIDcwKSwKKysgICAgCisrICAgICVl amFiYmVyZF9ob29rczphZGQocmVtb3ZlX3VzZXIsIEhvc3QsCisrICAgICUgICAgCSAgICAgICA/ TU9EVUxFLCByZW1vdmVfdXNlciwgNTApLAorKyAgICBMREFQU2VydmVycyA9IGVqYWJiZXJkX2Nv bmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9zZXJ2ZXJzLCBIb3N0fSksCisrICAgIFJvb3RETiA9 IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9yb290ZG4sIEhvc3R9KSwKKysg ICAgUGFzc3dvcmQgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfcGFzc3dv cmQsIEhvc3R9KSwKKysgICAgZWxkYXA6c3RhcnRfbGluaygibW9kX3NoYXJlZF9yb3N0ZXJfYWQi LCBMREFQU2VydmVycywgMzg5LCBSb290RE4sIFBhc3N3b3JkKS4KKysgICAKKysKKysgIAorK3N0 b3AoSG9zdCkgLT4KKysgICAgZWphYmJlcmRfaG9va3M6ZGVsZXRlKHJvc3Rlcl9nZXQsIEhvc3Qs CisrCQkJICA/TU9EVUxFLCBnZXRfdXNlcl9yb3N0ZXIsIDcwKSwKKysgICAgZWphYmJlcmRfaG9v a3M6ZGVsZXRlKHJvc3Rlcl9pbl9zdWJzY3JpcHRpb24sIEhvc3QsCisrICAgICAgICAJCSAgP01P RFVMRSwgaW5fc3Vic2NyaXB0aW9uLCAzMCksCisrICAgIGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShy b3N0ZXJfb3V0X3N1YnNjcmlwdGlvbiwgSG9zdCwKKysgICAgICAgIAkJICA/TU9EVUxFLCBvdXRf c3Vic2NyaXB0aW9uLCAzMCksCisrICAgIGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShyb3N0ZXJfZ2V0 X3N1YnNjcmlwdGlvbl9saXN0cywgSG9zdCwKKysgICAgICAgIAkJICA/TU9EVUxFLCBnZXRfc3Vi c2NyaXB0aW9uX2xpc3RzLCA3MCksCisrICAgIGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShyb3N0ZXJf Z2V0X2ppZF9pbmZvLCBIb3N0LAorKyAgICAgICAgCQkgID9NT0RVTEUsIGdldF9qaWRfaW5mbywg NzApLgorKyAgICAlZWphYmJlcmRfaG9va3M6ZGVsZXRlKHJlbW92ZV91c2VyLCBIb3N0LAorKyAg ICAlICAgIAkJICA/TU9EVUxFLCByZW1vdmVfdXNlciwgNTApLAorKworKworK2dldF91c2VyX3Jv c3RlcihJdGVtcywgVVMpIC0+CisrICAgIHtVLCBTfSA9IFVTLAorKyAgICBEaXNwbGF5ZWRHcm91 cHMgPSBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSwKKysgICAgU1JVc2VycyA9IAor KwlsaXN0czpmb2xkbCgKKysJICBmdW4oR3JvdXAsIEFjYzEpIC0+CisrCQkgIGxpc3RzOmZvbGRs KAorKwkJICAgIGZ1bihVc2VyLCBBY2MyKSAtPgorKwkJCSAgICBkaWN0OmFwcGVuZChVc2VyLCBH cm91cCwgQWNjMikKKysJCSAgICBlbmQsIEFjYzEsIGdldF9ncm91cF91c2Vyc19hZChTLCBHcm91 cCkpCisrCSAgZW5kLCBkaWN0Om5ldygpLCBEaXNwbGF5ZWRHcm91cHMpLAorKyAgICB7TmV3SXRl bXMxLCBTUlVzZXJzUmVzdH0gPQorKwlsaXN0czptYXBmb2xkbCgKKysJICBmdW4oSXRlbSwgU1JV c2VyczEpIC0+CisrCQkgIHtfLCBfLCB7VTEsIFMxLCBffX0gPSBJdGVtI3Jvc3Rlci51c2osCisr CQkgIFVTMSA9IHtVMSwgUzF9LAorKwkJICBjYXNlIGRpY3Q6ZmluZChVUzEsIFNSVXNlcnMxKSBv ZgorKwkJICAgICAge29rLCBfR3JvdXBOYW1lc30gLT4KKysJCQkgIHtJdGVtI3Jvc3RlcntzdWJz Y3JpcHRpb24gPSBib3RoLCBhc2sgPSBub25lfSwKKysJCQkgICBkaWN0OmVyYXNlKFVTMSwgU1JV c2VyczEpfTsKKysJCSAgICAgIGVycm9yIC0+CisrCQkJICB7SXRlbSwgU1JVc2VyczF9CisrCQkg IGVuZAorKwkgIGVuZCwgU1JVc2VycywgSXRlbXMpLAorKyAgICBTUkl0ZW1zID0gWyNyb3N0ZXJ7 dXNqID0ge1UsIFMsIHtVMSwgUzEsICIifX0sCisrCQkgICAgICAgdXMgPSBVUywKKysJCSAgICAg ICBqaWQgPSB7VTEsIFMxLCAiIn0sCisrCQkgICAgICAgbmFtZSA9IGdldF91c2VyX2ZuKFUxLFMx KSwKKysJCSAgICAgICBzdWJzY3JpcHRpb24gPSBib3RoLAorKwkJICAgICAgIGFzayA9IG5vbmUs CisrCQkgICAgICAgZ3JvdXBzID0gR3JvdXBOYW1lc30gfHwKKysJCSAge3tVMSwgUzF9LCBHcm91 cE5hbWVzfSA8LSBkaWN0OnRvX2xpc3QoU1JVc2Vyc1Jlc3QpXSwKKysgICAgU1JJdGVtcyArKyBO ZXdJdGVtczEuCisrCisrZ2V0X3N1YnNjcmlwdGlvbl9saXN0cyh7RiwgVH0sIFVzZXIsIFNlcnZl cikgLT4KKysgICAgTFVzZXIgPSBqbGliOm5vZGVwcmVwKFVzZXIpLAorKyAgICBMU2VydmVyID0g amxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorKyAgICBVUyA9IHtMVXNlciwgTFNlcnZlcn0sCisrICAg IERpc3BsYXllZEdyb3VwcyA9IGdldF91c2VyX2Rpc3BsYXllZF9ncm91cHNfYWQoVVMpLAorKyAg ICBTUlVzZXJzID0KKysJbGlzdHM6dXNvcnQoCisrCSAgbGlzdHM6ZmxhdG1hcCgKKysJICAgIGZ1 bihHcm91cCkgLT4KKysJCSAgICBnZXRfZ3JvdXBfdXNlcnNfYWQoTFNlcnZlciwgR3JvdXApCisr CSAgICBlbmQsIERpc3BsYXllZEdyb3VwcykpLAorKyAgICBTUkpJRHMgPSBbe1UxLCBTMSwgIiJ9 IHx8IHtVMSwgUzF9IDwtIFNSVXNlcnNdLAorKyAgICB7bGlzdHM6dXNvcnQoU1JKSURzICsrIEYp LCBsaXN0czp1c29ydChTUkpJRHMgKysgVCl9LgorKworK2dldF9qaWRfaW5mbyh7U3Vic2NyaXB0 aW9uLCBHcm91cHN9LCBVc2VyLCBTZXJ2ZXIsIEpJRCkgLT4KKysgICAgTFVzZXIgPSBqbGliOm5v ZGVwcmVwKFVzZXIpLAorKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorKyAg ICBVUyA9IHtMVXNlciwgTFNlcnZlcn0sCisrICAgIHtVMSwgUzEsIF99ID0gamxpYjpqaWRfdG9s b3dlcihKSUQpLAorKyAgICBVUzEgPSB7VTEsIFMxfSwKKysgICAgRGlzcGxheWVkR3JvdXBzID0g Z2V0X3VzZXJfZGlzcGxheWVkX2dyb3Vwc19hZChVUyksCisrICAgIFNSVXNlcnMgPSAKKysJbGlz dHM6Zm9sZGwoCisrCSAgZnVuKEdyb3VwLCBBY2MxKSAtPgorKwkJICBsaXN0czpmb2xkbCgKKysJ CSAgICBmdW4oVXNlcjEsIEFjYzIpIC0+CisrCQkJICAgIGRpY3Q6YXBwZW5kKAorKwkJCSAgICAg IFVzZXIxLCBHcm91cCwgQWNjMikKKysJCSAgICBlbmQsIEFjYzEsIGdldF9ncm91cF91c2Vyc19h ZChMU2VydmVyLCBHcm91cCkpCisrCSAgZW5kLCBkaWN0Om5ldygpLCBEaXNwbGF5ZWRHcm91cHMp LAorKyAgICBjYXNlIGRpY3Q6ZmluZChVUzEsIFNSVXNlcnMpIG9mCisrCXtvaywgR3JvdXBOYW1l c30gLT4KKysJICAgIE5ld0dyb3VwcyA9IGlmCisrCQkJICAgIEdyb3VwcyA9PSBbXSAtPiBHcm91 cE5hbWVzOworKwkJCSAgICB0cnVlIC0+IEdyb3VwcworKwkJCWVuZCwKKysJICAgIHtib3RoLCBO ZXdHcm91cHN9OworKwllcnJvciAtPgorKwkgICAge1N1YnNjcmlwdGlvbiwgR3JvdXBzfQorKyAg ICBlbmQuCisrCisraW5fc3Vic2NyaXB0aW9uKEFjYywgVXNlciwgU2VydmVyLCBKSUQsIFR5cGUp IC0+CisrICAgIHByb2Nlc3Nfc3Vic2NyaXB0aW9uKGluLCBVc2VyLCBTZXJ2ZXIsIEpJRCwgVHlw ZSwgQWNjKS4KKysKKytvdXRfc3Vic2NyaXB0aW9uKFVzZXIsIFNlcnZlciwgSklELCBUeXBlKSAt PgorKyAgICBwcm9jZXNzX3N1YnNjcmlwdGlvbihvdXQsIFVzZXIsIFNlcnZlciwgSklELCBUeXBl LCBmYWxzZSkuCisrCisrcHJvY2Vzc19zdWJzY3JpcHRpb24oRGlyZWN0aW9uLCBVc2VyLCBTZXJ2 ZXIsIEpJRCwgX1R5cGUsIEFjYykgLT4KKysgICAgTFVzZXIgPSBqbGliOm5vZGVwcmVwKFVzZXIp LAorKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIpLAorKyAgICBVUyA9IHtMVXNl ciwgTFNlcnZlcn0sCisrICAgIHtVMSwgUzEsIF99ID0gamxpYjpqaWRfdG9sb3dlcihqbGliOmpp ZF9yZW1vdmVfcmVzb3VyY2UoSklEKSksCisrICAgIFVTMSA9IHtVMSwgUzF9LAorKyAgICBEaXNw bGF5ZWRHcm91cHMgPSBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSwKKysgICAgU1JV c2VycyA9CisrCWxpc3RzOnVzb3J0KAorKwkgIGxpc3RzOmZsYXRtYXAoCisrCSAgICBmdW4oR3Jv dXApIC0+CisrCQkgICAgZ2V0X2dyb3VwX3VzZXJzX2FkKExTZXJ2ZXIsIEdyb3VwKQorKwkgICAg ZW5kLCBEaXNwbGF5ZWRHcm91cHMpKSwKKysgICAgY2FzZSBsaXN0czptZW1iZXIoVVMxLCBTUlVz ZXJzKSBvZgorKwl0cnVlIC0+CisrCSAgICBjYXNlIERpcmVjdGlvbiBvZgorKwkJaW4gLT4KKysJ CSAgICB7c3RvcCwgZmFsc2V9OworKwkJb3V0IC0+CisrCQkgICAgc3RvcAorKwkgICAgZW5kOwor KwlmYWxzZSAtPgorKwkgICAgQWNjCisrICAgIGVuZC4KKysKKytsaXN0X2dyb3VwcyhIb3N0KSAt PgorKyAgICBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKHsiIixIb3N0fSkuCisrCisrCisr Y3JlYXRlX2dyb3VwKEhvc3QsIEdyb3VwKSAtPgorKyAgICBjcmVhdGVfZ3JvdXAoSG9zdCwgR3Jv dXAsIFtdKS4KKysKKytjcmVhdGVfZ3JvdXAoSG9zdCwgR3JvdXAsIE9wdHMpIC0+CisrICAgIFIg PSAjc3JfZ3JvdXB7Z3JvdXBfaG9zdCA9IHtHcm91cCwgSG9zdH0sIG9wdHMgPSBPcHRzfSwKKysg ICAgRiA9IGZ1bigpIC0+CisrCQltbmVzaWE6d3JpdGUoUikKKysJZW5kLAorKyAgICBtbmVzaWE6 dHJhbnNhY3Rpb24oRikuCisrCisrZGVsZXRlX2dyb3VwKEhvc3QsIEdyb3VwKSAtPgorKyAgICBG ID0gZnVuKCkgLT4KKysJCW1uZXNpYTpkZWxldGUoe3NyX2dyb3VwLCB7R3JvdXAsIEhvc3R9fSkK KysJZW5kLAorKyAgICBtbmVzaWE6dHJhbnNhY3Rpb24oRikuCisrCisrZ2V0X2dyb3VwX29wdHMo SG9zdCwgR3JvdXApIC0+CisrICAgIGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3JlYWQoc3JfZ3Jv dXAsIHtHcm91cCwgSG9zdH0pIG9mCisrCVsjc3JfZ3JvdXB7b3B0cyA9IE9wdHN9XSAtPgorKwkg ICAgT3B0czsKKysJXyAtPgorKwkgICAgZXJyb3IKKysgICAgZW5kLgorKworK3NldF9ncm91cF9v cHRzKEhvc3QsIEdyb3VwLCBPcHRzKSAtPgorKyAgICBSID0gI3NyX2dyb3Vwe2dyb3VwX2hvc3Qg PSB7R3JvdXAsIEhvc3R9LCBvcHRzID0gT3B0c30sCisrICAgIEYgPSBmdW4oKSAtPgorKwkJbW5l c2lhOndyaXRlKFIpCisrCWVuZCwKKysgICAgbW5lc2lhOnRyYW5zYWN0aW9uKEYpLgorKworKwor KworK2dldF91c2VyX2dyb3VwcyhVUykgLT4KKysgICAgSG9zdCA9IGVsZW1lbnQoMiwgVVMpLAor KyAgICBjYXNlIGNhdGNoIG1uZXNpYTpkaXJ0eV9yZWFkKHNyX3VzZXIsIFVTKSBvZgorKwlScyB3 aGVuIGlzX2xpc3QoUnMpIC0+CisrCSAgICBbR3JvdXAgfHwgI3NyX3VzZXJ7Z3JvdXBfaG9zdCA9 IHtHcm91cCwgSH19IDwtIFJzLCBIID09IEhvc3RdOworKwlfIC0+CisrCSAgICBbXQorKyAgICBl bmQgKysgZ2V0X2FsbF91c2Vyc19ncm91cHMoSG9zdCkuCisrCisraXNfZ3JvdXBfZW5hYmxlZChI b3N0LCBHcm91cCkgLT4KKysgICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlfcmVhZChzcl9ncm91 cCwge0dyb3VwLCBIb3N0fSkgb2YKKysJWyNzcl9ncm91cHtvcHRzID0gT3B0c31dIC0+CisrCSAg ICBub3QgbGlzdHM6bWVtYmVyKGRpc2FibGVkLCBPcHRzKTsKKysJXyAtPgorKwkgICAgZmFsc2UK KysgICAgZW5kLgorKworK2dldF9ncm91cF9vcHQoSG9zdCwgR3JvdXAsIE9wdCwgRGVmYXVsdCkg LT4KKysgICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlfcmVhZChzcl9ncm91cCwge0dyb3VwLCBI b3N0fSkgb2YKKysJWyNzcl9ncm91cHtvcHRzID0gT3B0c31dIC0+CisrCSAgICBjYXNlIGxpc3Rz OmtleXNlYXJjaChPcHQsIDEsIE9wdHMpIG9mCisrCQl7dmFsdWUsIHtfLCBWYWx9fSAtPgorKwkJ ICAgIFZhbDsKKysJCWZhbHNlIC0+CisrCQkgICAgRGVmYXVsdAorKwkgICAgZW5kOworKwlfIC0+ CisrCSAgICBmYWxzZQorKyAgICBlbmQuCisrCisrZ2V0X2dyb3VwX3VzZXJzKEhvc3QsIEdyb3Vw KSAtPgorKyAgICBjYXNlIGdldF9ncm91cF9vcHQoSG9zdCwgR3JvdXAsIGFsbF91c2VycywgZmFs c2UpIG9mCisrCXRydWUgLT4KKysJICAgIGVqYWJiZXJkX2F1dGg6Z2V0X3ZoX3JlZ2lzdGVyZWRf dXNlcnMoSG9zdCk7CisrCWZhbHNlIC0+CisrCSAgICBbXQorKyAgICBlbmQgKysgZ2V0X2dyb3Vw X2V4cGxpY2l0X3VzZXJzKEhvc3QsIEdyb3VwKS4KKysKKytnZXRfZ3JvdXBfZXhwbGljaXRfdXNl cnMoSG9zdCwgR3JvdXApIC0+CisrICAgIGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X2luZGV4X3Jl YWQoCisrCQkgc3JfdXNlciwge0dyb3VwLCBIb3N0fSwgI3NyX3VzZXIuZ3JvdXBfaG9zdCkgb2YK KysJUnMgd2hlbiBpc19saXN0KFJzKSAtPgorKwkgICAgW1Ijc3JfdXNlci51cyB8fCBSIDwtIFJz XTsKKysJXyAtPgorKwkgICAgW10KKysgICAgZW5kLgorKworK2dldF9ncm91cF9uYW1lKEhvc3Qs IEdyb3VwKSAtPgorKyAgICBnZXRfZ3JvdXBfb3B0KEhvc3QsIEdyb3VwLCBuYW1lLCBHcm91cCku CisrCisrZ2V0X2FsbF91c2Vyc19ncm91cHMoSG9zdCkgLT4KKysgICAgbGlzdHM6ZmlsdGVyKAor KyAgICAgIGZ1bihHcm91cCkgLT4gZ2V0X2dyb3VwX29wdChIb3N0LCBHcm91cCwgYWxsX3VzZXJz LCBmYWxzZSkgZW5kLAorKyAgICAgIGxpc3RfZ3JvdXBzKEhvc3QpKS4KKysKKytnZXRfdXNlcl9k aXNwbGF5ZWRfZ3JvdXBzKFVTKSAtPgorKyAgICBIb3N0ID0gZWxlbWVudCgyLCBVUyksCisrICAg IERpc3BsYXllZEdyb3VwczEgPQorKwlsaXN0czp1c29ydCgKKysJICBsaXN0czpmbGF0bWFwKAor KwkgICAgZnVuKEdyb3VwKSAtPgorKwkJICAgIGNhc2UgaXNfZ3JvdXBfZW5hYmxlZChIb3N0LCBH cm91cCkgb2YKKysJCQl0cnVlIC0+CisrCQkJICAgIGdldF9ncm91cF9vcHQoSG9zdCwgR3JvdXAs IGRpc3BsYXllZF9ncm91cHMsIFtdKTsKKysJCQlmYWxzZSAtPgorKwkJCSAgICBbXQorKwkJICAg IGVuZAorKwkgICAgZW5kLCBnZXRfdXNlcl9ncm91cHMoVVMpKSksCisrICAgIFtHcm91cCB8fCBH cm91cCA8LSBEaXNwbGF5ZWRHcm91cHMxLCBpc19ncm91cF9lbmFibGVkKEhvc3QsIEdyb3VwKV0u CisrCisrCisrCisrCisrYWRkX3VzZXJfdG9fZ3JvdXAoSG9zdCwgVVMsIEdyb3VwKSAtPgorKyAg ICBSID0gI3NyX3VzZXJ7dXMgPSBVUywgZ3JvdXBfaG9zdCA9IHtHcm91cCwgSG9zdH19LAorKyAg ICBGID0gZnVuKCkgLT4KKysJCW1uZXNpYTp3cml0ZShSKQorKwllbmQsCisrICAgIG1uZXNpYTp0 cmFuc2FjdGlvbihGKS4KKysKKytyZW1vdmVfdXNlcl9mcm9tX2dyb3VwKEhvc3QsIFVTLCBHcm91 cCkgLT4KKysgICAgUiA9ICNzcl91c2Vye3VzID0gVVMsIGdyb3VwX2hvc3QgPSB7R3JvdXAsIEhv c3R9fSwKKysgICAgRiA9IGZ1bigpIC0+CisrCQltbmVzaWE6ZGVsZXRlX29iamVjdChSKQorKwll bmQsCisrICAgIG1uZXNpYTp0cmFuc2FjdGlvbihGKS4KKysKKysKKysKKytmaW5kX3VzZXJfYXR0 cihVc2VyLCBIb3N0KSAtPgorKyAgICBBdHRyID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9v cHRpb24oe2FkX3VpZGF0dHIsIEhvc3R9KSwKKysgICAgRmlsdGVyID0gZWxkYXA6ZXF1YWxpdHlN YXRjaChBdHRyLCBVc2VyKSwKKysgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxf b3B0aW9uKHthZF9iYXNlLCBIb3N0fSksCisrICAgIAorKyAgICBjYXNlIGVsZGFwOnNlYXJjaCgi bW9kX3NoYXJlZF9yb3N0ZXJfYWQiLAorKyAgICAgICAgICAgICAgICAgICAgICBbe2Jhc2UsIEJh c2V9LAorKyAgICAgICAgICAgICAgICAgICAgICAge2ZpbHRlciwgRmlsdGVyfSwKKysgICAgICAg ICAgICAgICAgICAgICAgIHthdHRyaWJ1dGVzLCBbXX1dKSBvZgorKyAgICAgICAgI2VsZGFwX3Nl YXJjaF9yZXN1bHR7ZW50cmllcyA9IFtFIHwgX119IC0+CisrICAgICAgICAgICAgRTsKKysgICAg ICAgIF8gLT4KKysgICAgICAgICAgICBmYWxzZQorKyAgICBlbmQuCisrCisrZ2V0X3VzZXJfZGlz cGxheWVkX2dyb3Vwc19hZChVUykgLT4KKysgICAge18sIEhvc3R9ID0gVVMsCisrICAgIEFkR3Jv dXAgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfZ3JvdXAsIEhvc3R9KSwK KysgICAgRmlsdGVyR3JvdXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJtZW1iZXJPZiIsIEFkR3Jv dXApLAorKyAgICBCYXNlID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jh c2UsIEhvc3R9KSwKKysgICAgCisrICAgIGNhc2UgZWxkYXA6c2VhcmNoKCJtb2Rfc2hhcmVkX3Jv c3Rlcl9hZCIsCisrICAgICAgICAgICAgICAgICAgICAgIFt7YmFzZSwgQmFzZX0sCisrICAgICAg ICAgICAgICAgICAgICAgICB7ZmlsdGVyLCBGaWx0ZXJHcm91cH0sCisrICAgICAgICAgICAgICAg ICAgICAgICB7YXR0cmlidXRlcywgW119XSkgb2YKKysgICAgICAgICNlbGRhcF9zZWFyY2hfcmVz dWx0e2VudHJpZXMgPSBFfSAtPgorKwkgICAgbGlzdHM6dXNvcnQobGlzdHM6bWFwKAorKwkgICAg ICBmdW4oWCkgLT4KKysJCSAgICAgIGNhc2UgWCBvZgorKwkJCSAgI2VsZGFwX2VudHJ5e2F0dHJp YnV0ZXMgPSBBdHRyaWJ1dGVzfSAtPgorKwkJCSAgICAgIGxkYXBfZ2V0X3ZhbHVlKEF0dHJpYnV0 ZXMsImRlcGFydG1lbnQiKTsKKysJCQkgIGZhbHNlIC0+CisrCQkJICAgICAgIiIJICAgIAorKwkJ ICAgICAgZW5kCisrCQkgICAgICBlbmQsIEUKKysJICAgICApKTsKKysJICAgIAorKyAgICAgICAg XyAtPgorKyAgICAgICAgICAgIFtdCisrICAgIGVuZC4KKysKKytnZXRfZWxkYXBfaWQoSG9zdCwg TmFtZSkgLT4KKysgICAgYXRvbV90b19saXN0KGdlbl9tb2Q6Z2V0X21vZHVsZV9wcm9jKEhvc3Qs IE5hbWUpKS4KKysKKysKKytnZXRfZ3JvdXBfdXNlcnNfYWQoSG9zdCwgR3JvdXApIC0+CisrICAg IEF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfdWlkYXR0ciwgSG9z dH0pLAorKyUgICAgQWRHcm91cCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHth ZF9ncm91cCwgSG9zdH0pLAorKyAgICBGaWx0ZXJQZXJzb24gPSBlbGRhcDplcXVhbGl0eU1hdGNo KCJvYmplY3RDYXRlZ29yeSIsICJwZXJzb24iKSwKKysgICAgRmlsdGVyQ29tcCA9IGVsZGFwOmVx dWFsaXR5TWF0Y2goIm9iamVjdENsYXNzIiwgImNvbXB1dGVyIiksCisrICAgIEZpbHRlckhpZGRl biA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goImRlc2NyaXB0aW9uIiwgImhpZGRlbiIpLAorKyUgICAg RmlsdGVyR3JvdXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJtZW1iZXJPZiIsIEFkR3JvdXApLAor KyAgICBGaWx0ZXJEZXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJkZXBhcnRtZW50IiwgR3JvdXAp LAorKyAgICBGaWx0ZXJMaXZlID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgidXNlckFjY291bnRDb250 cm9sIiwgIjY2MDUwIiksCisrICAgIEZpbHRlckRlZiA9IGVsZGFwOnByZXNlbnQoQXR0ciksCisr ICAgIEZpbHRlciA9IGVsZGFwOidhbmQnKFsKKysJCQkgIEZpbHRlckRlZiwKKysJCQkgIEZpbHRl clBlcnNvbiwKKyslCQkJICBGaWx0ZXJHcm91cCwKKysJCQkgIEZpbHRlckRlcCwKKysJCQkgIGVs ZGFwOidub3QnKEZpbHRlckNvbXApLAorKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVySGlkZGVuKSwK KysJCQkgIGVsZGFwOidub3QnKEZpbHRlckxpdmUpXSksCisrICAgIEJhc2UgPSBlamFiYmVyZF9j b25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgSG9zdH0pLAorKyAgICBjYXNlIGVsZGFw OnNlYXJjaChnZXRfZWxkYXBfaWQoSG9zdCwgZWphYmJlcmQpLAorKwkJICAgICAgW3tiYXNlLCBC YXNlfSwKKysJCSAgICAgICB7ZmlsdGVyLCBGaWx0ZXJ9LAorKwkJICAgICAgIHthdHRyaWJ1dGVz LCBbQXR0cl19XSkgb2YKKysJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IEVzfSAtPgor KwkgICAgbGlzdHM6ZmxhdG1hcCgKKysJICAgICAgZnVuKEUpIC0+CisrCQkgICAgICBjYXNlIGxp c3RzOmtleXNlYXJjaChBdHRyLCAxLCBFI2VsZGFwX2VudHJ5LmF0dHJpYnV0ZXMpIG9mCisrCQkJ ICB7dmFsdWUsIHtfLCBbVV19fSAtPgorKwkJCSAgICAgIGNhc2UgamxpYjpub2RlcHJlcChVKSBv ZgorKwkJCQkgIGVycm9yIC0+CisrCQkJCSAgICAgIFtdOworKwkJCQkgIExVIC0+CisrCQkJCSAg ICAgIFt7TFUsIEhvc3R9XQorKwkJCSAgICAgIGVuZDsKKysJCQkgIF8gLT4KKysJCQkgICAgICBb XQorKwkJICAgICAgZW5kCisrCSAgICAgIGVuZCwgRXMpOworKwlfIC0+CisrCSAgICBbXQorKyAg ICBlbmQuCisrCisrCisrCisrCisrCisrbGRhcF9nZXRfdmFsdWUoRSxBdHRyaWJ1dGUpIC0+Cisr ICAgIGNhc2UgbGlzdHM6ZmlsdGVyKGZ1bih7QSxffSkgLT4KKysJCQkgICAgICBzdHJpbmc6ZXF1 YWwoQSxBdHRyaWJ1dGUpCisrCQkgICAgICBlbmQsRSkgb2YKKysJW3tfLFtWYWx1ZXxfXX1dIC0+ CisrCSAgICBWYWx1ZTsKKysJXyAtPiAKKysJICAgIG5vbmUKKysgICAgZW5kLgorKworK2dldF91 c2VyX2ZuKFVzZXIsIEhvc3QpIC0+CisrICAgIGNhc2UgZmluZF91c2VyX2F0dHIoVXNlcixIb3N0 KSBvZgorKwkjZWxkYXBfZW50cnl7YXR0cmlidXRlcyA9IEF0dHJpYnV0ZXN9IC0+CisrCSAgICBs ZGFwX2dldF92YWx1ZShBdHRyaWJ1dGVzLCJjbiIpOworKwkKKysJZmFsc2UgLT4KKysJICAgICIi CSAgICAKKysgICAgZW5kLgorKworKworZGlmZiAtLWdpdCBhL3NyYy9tb2RfdmNhcmRfYWQuZXJs IGIvc3JjL21vZF92Y2FyZF9hZC5lcmwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwLi41MmRkYmVjCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvbW9kX3ZjYXJkX2FkLmVybAor QEAgLTAsMCArMSw2MzEgQEAKKysKKyslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJSUlIEZpbGUgICAgOiBt b2RfdmNhcmRfYWQuZXJsCisrJSUlIEF1dGhvciAgOiBTdGFuaXNsYXYgQm9nYXR5cmV2IDxyZWFs bG9jQHJlYWxsb2Muc3BiLnJ1PgorKyUlJSBBdXRob3IgIDogQWxleGV5IFNoY2hlcGluIDxhbGV4 ZXlAc2V2Y29tLm5ldD4KKyslJSUgQXV0aG9yICA6IEFsZXggPGFnZW50XzAwNz4gR29yYmFjaGVu a28gKGFnZW50XzAwN0BpbW1vLnJ1KQorKyUlJSBQdXJwb3NlIDogCisrJSUlIENyZWF0ZWQgOiAg MiBKYW4gMjAwMyBieSBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0PgorKyUlJSBJ ZCAgICAgIDogJElkOiBtb2RfdmNhcmRfYWQuZXJsIDQzNyAyMDA1LTExLTE5IDAxOjIwOjA1WiBh Z2VudF8wMDcgJAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKystbW9kdWxlKG1vZF92Y2FyZF9hZCku CisrLWF1dGhvcigncmVhbGxvY0ByZWFsbG9jLnNwYi5ydScpLgorKy1hdXRob3IoJ2FsZXhleUBz ZXZjb20ubmV0JykuCisrLWF1dGhvcignYWdlbnRfMDA3QGltbW8ucnUnKS4KKystdnNuKCckUmV2 aXNpb246IDQzNyAkICcpLgorKworKy1iZWhhdmlvdXIoZ2VuX21vZCkuCisrCisrLWV4cG9ydChb c3RhcnQvMiwgaW5pdC8zLCBzdG9wLzEsCisrIAkgZ2V0X3NtX2ZlYXR1cmVzLzUsCisrCSBwcm9j ZXNzX2xvY2FsX2lxLzMsCisrCSBwcm9jZXNzX3NtX2lxLzMsCisrCSByZW1vdmVfdXNlci8xXSku CisrCisrLWluY2x1ZGUoImVqYWJiZXJkLmhybCIpLgorKy1pbmNsdWRlKCJlbGRhcC9lbGRhcC5o cmwiKS4KKystaW5jbHVkZSgiamxpYi5ocmwiKS4KKysKKystZGVmaW5lKFBST0NOQU1FLCBlamFi YmVyZF9tb2RfdmNhcmRfYWQpLgorKworK3N0YXJ0KEhvc3QsIE9wdHMpIC0+CisrICAgIElRRGlz YyA9IGdlbl9tb2Q6Z2V0X29wdChpcWRpc2MsIE9wdHMsIG9uZV9xdWV1ZSksCisrICAgIGdlbl9p cV9oYW5kbGVyOmFkZF9pcV9oYW5kbGVyKGVqYWJiZXJkX2xvY2FsLCBIb3N0LCA/TlNfVkNBUkQs CisrCQkJCSAgP01PRFVMRSwgcHJvY2Vzc19sb2NhbF9pcSwgSVFEaXNjKSwKKysgICAgZ2VuX2lx X2hhbmRsZXI6YWRkX2lxX2hhbmRsZXIoZWphYmJlcmRfc20sIEhvc3QsID9OU19WQ0FSRCwKKysJ CQkJICA/TU9EVUxFLCBwcm9jZXNzX3NtX2lxLCBJUURpc2MpLAorKyAgICBlamFiYmVyZF9ob29r czphZGQoZGlzY29fc21fZmVhdHVyZXMsIEhvc3QsID9NT0RVTEUsIGdldF9zbV9mZWF0dXJlcywg NTApLAorKyAgICBMREFQU2VydmVycyA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9u KHthZF9zZXJ2ZXJzLCBIb3N0fSksCisrICAgIFJvb3RETiA9IGVqYWJiZXJkX2NvbmZpZzpnZXRf bG9jYWxfb3B0aW9uKHthZF9yb290ZG4sIEhvc3R9KSwKKysgICAgUGFzc3dvcmQgPSBlamFiYmVy ZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfcGFzc3dvcmQsIEhvc3R9KSwKKysgICAgZWxk YXA6c3RhcnRfbGluaygibW9kX3ZjYXJkX2FkIiwgTERBUFNlcnZlcnMsIDM4OSwgUm9vdEROLCBQ YXNzd29yZCksCisrICAgIE15SG9zdCA9IGdlbl9tb2Q6Z2V0X29wdChob3N0LCBPcHRzLCAidmp1 ZC4iICsrIEhvc3QpLAorKyAgICBTZWFyY2ggPSBnZW5fbW9kOmdldF9vcHQoc2VhcmNoLCBPcHRz LCB0cnVlKSwKKysgICAgcmVnaXN0ZXIoZ2VuX21vZDpnZXRfbW9kdWxlX3Byb2MoSG9zdCwgP1BS T0NOQU1FKSwKKysJICAgICBzcGF3big/TU9EVUxFLCBpbml0LCBbTXlIb3N0LCBIb3N0LCBTZWFy Y2hdKSkuCisrCisraW5pdChIb3N0LCBTZXJ2ZXJIb3N0LCBTZWFyY2gpIC0+CisrICAgIGNhc2Ug U2VhcmNoIG9mCisrCWZhbHNlIC0+CisrCSAgICBsb29wKEhvc3QsIFNlcnZlckhvc3QpOworKwlf IC0+CisrCSAgICBlamFiYmVyZF9yb3V0ZXI6cmVnaXN0ZXJfcm91dGUoSG9zdCksCisrCSAgICBs b29wKEhvc3QsIFNlcnZlckhvc3QpCisrICAgIGVuZC4KKysKKytsb29wKEhvc3QsIFNlcnZlckhv c3QpIC0+CisrICAgIHJlY2VpdmUKKysJe3JvdXRlLCBGcm9tLCBUbywgUGFja2V0fSAtPgorKwkg ICAgY2FzZSBjYXRjaCBkb19yb3V0ZShTZXJ2ZXJIb3N0LCBGcm9tLCBUbywgUGFja2V0KSBvZgor KwkJeydFWElUJywgUmVhc29ufSAtPgorKwkJICAgID9FUlJPUl9NU0coIn5wIiwgW1JlYXNvbl0p OworKwkJXyAtPgorKwkJICAgIG9rCisrCSAgICBlbmQsCisrCSAgICBsb29wKEhvc3QsIFNlcnZl ckhvc3QpOworKwlzdG9wIC0+CisrCSAgICBlamFiYmVyZF9yb3V0ZXI6dW5yZWdpc3Rlcl9yb3V0 ZShIb3N0KSwKKysJICAgIG9rOworKwlfIC0+CisrCSAgICBsb29wKEhvc3QsIFNlcnZlckhvc3Qp CisrICAgIGVuZC4KKysKKytzdG9wKEhvc3QpIC0+CisrICAgIGdlbl9pcV9oYW5kbGVyOnJlbW92 ZV9pcV9oYW5kbGVyKGVqYWJiZXJkX2xvY2FsLCBIb3N0LCA/TlNfVkNBUkQpLAorKyAgICBnZW5f aXFfaGFuZGxlcjpyZW1vdmVfaXFfaGFuZGxlcihlamFiYmVyZF9zbSwgSG9zdCwgP05TX1ZDQVJE KSwKKysgICAgZWphYmJlcmRfaG9va3M6ZGVsZXRlKGRpc2NvX3NtX2ZlYXR1cmVzLCBIb3N0LCA/ TU9EVUxFLCBnZXRfc21fZmVhdHVyZXMsIDUwKSwKKysgICAgUHJvYyA9IGdlbl9tb2Q6Z2V0X21v ZHVsZV9wcm9jKEhvc3QsID9QUk9DTkFNRSksCisrICAgIFByb2MgISBzdG9wLAorKyAgICB7d2Fp dCwgUHJvY30uCisrCisrZ2V0X3NtX2ZlYXR1cmVzKHtlcnJvciwgX0Vycm9yfSA9IEFjYywgX0Zy b20sIF9UbywgX05vZGUsIF9MYW5nKSAtPgorKyAgICBBY2M7CisrZ2V0X3NtX2ZlYXR1cmVzKEFj YywgX0Zyb20sIF9UbywgTm9kZSwgX0xhbmcpIC0+CisrICAgIGNhc2UgTm9kZSBvZgorKyAJW10g LT4KKysgCSAgICBjYXNlIEFjYyBvZgorKyAJCXtyZXN1bHQsIEZlYXR1cmVzfSAtPgorKyAJCSAg ICB7cmVzdWx0LCBbP05TX1ZDQVJEIHwgRmVhdHVyZXNdfTsKKysgCQllbXB0eSAtPgorKyAJCSAg ICB7cmVzdWx0LCBbP05TX1ZDQVJEXX0KKysgCSAgICBlbmQ7CisrICAJXyAtPgorKyAJICAgIEFj YworKyAgICBlbmQuCisrCisrcHJvY2Vzc19sb2NhbF9pcShfRnJvbSwgX1RvLCAjaXF7dHlwZSA9 IFR5cGUsIGxhbmcgPSBMYW5nLCBzdWJfZWwgPSBTdWJFbH0gPSBJUSkgLT4KKysgICAgY2FzZSBU eXBlIG9mCisrCXNldCAtPgorKwkgICAgSVEjaXF7dHlwZSA9IGVycm9yLCBzdWJfZWwgPSBbU3Vi RWwsID9FUlJfTk9UX0FMTE9XRURdfTsKKysJZ2V0IC0+CisrCSAgICBJUSNpcXt0eXBlID0gcmVz dWx0LAorKwkJICBzdWJfZWwgPSBbe3htbGVsZW1lbnQsICJ2Q2FyZCIsCisrCQkJICAgICBbeyJ4 bWxucyIsID9OU19WQ0FSRH1dLAorKwkJCSAgICAgW3t4bWxlbGVtZW50LCAiRk4iLCBbXSwKKysJ CQkgICAgICAgW3t4bWxjZGF0YSwgImVqYWJiZXJkIn1dfSwKKysJCQkgICAgICB7eG1sZWxlbWVu dCwgIlVSTCIsIFtdLAorKwkJCSAgICAgICBbe3htbGNkYXRhLAorKwkJCQkgImh0dHA6Ly9lamFi YmVyZC5qYWJiZXJzdHVkaW8ub3JnLyJ9XX0sCisrCQkJICAgICAge3htbGVsZW1lbnQsICJERVND IiwgW10sCisrCQkJICAgICAgIFt7eG1sY2RhdGEsCisrCQkJCSB0cmFuc2xhdGU6dHJhbnNsYXRl KAorKwkJCQkgICBMYW5nLAorKwkJCQkgICAiRXJsYW5nIEphYmJlciBTZXJ2ZXJcbiIKKysJCQkJ ICAgIkNvcHlyaWdodCAoYykgMjAwMi0yMDA1IEFsZXhleSBTaGNoZXBpbiIpfV19LAorKwkJCSAg ICAgIHt4bWxlbGVtZW50LCAiQkRBWSIsIFtdLAorKwkJCSAgICAgICBbe3htbGNkYXRhLCAiMjAw Mi0xMS0xNiJ9XX0KKysJCQkgICAgIF19XX0KKysgICAgZW5kLgorKworK2ZpbmRfbGRhcF91c2Vy KEhvc3QsIFVzZXIpIC0+CisrICAgIEF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29w dGlvbih7YWRfdWlkYXR0ciwgSG9zdH0pLAorKyAgICBGaWx0ZXIgPSBlbGRhcDplcXVhbGl0eU1h dGNoKEF0dHIsIFVzZXIpLAorKyAgICBCYXNlID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9v cHRpb24oe2FkX2Jhc2UsIEhvc3R9KSwKKysgICAgY2FzZSBlbGRhcDpzZWFyY2goIm1vZF92Y2Fy ZF9hZCIsIFt7YmFzZSwgQmFzZX0sCisrCQkJCQkge2ZpbHRlciwgRmlsdGVyfSwKKysJCQkJCSB7 YXR0cmlidXRlcywgW119XSkgb2YKKysJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IFtF IHwgX119IC0+CisrCSAgICBFOworKwlfIC0+CisrCSAgICBmYWxzZQorKyAgICBlbmQuCisrCisr aXNfYXR0cmlidXRlX3JlYWRfYWxsb3dlZChOYW1lLEZyb20sVG8pIC0+CisrICAgIHRydWUuCisr CisrbGRhcF9hdHRyaWJ1dGVfdG9fdmNhcmQoUHJlZml4LHtOYW1lLFZhbHVlc30sRnJvbSxUbykg LT4KKysgICAgY2FzZSBpc19hdHRyaWJ1dGVfcmVhZF9hbGxvd2VkKE5hbWUsRnJvbSxUbykgb2Yg CisrCXRydWUgLT4KKysJICAgIGxkYXBfbGNhX3RvX3ZjYXJkKFByZWZpeCxzdHJpbmdwcmVwOnRv bG93ZXIoTmFtZSksVmFsdWVzKTsKKysJXyAtPgorKwkgICAgbm9uZQorKyAgICBlbmQuCisrCisr bGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsImRpc3BsYXluYW1lIixbVmFsdWV8X10pIC0+CisrICAg IHt4bWxlbGVtZW50LCJGTiIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKKysKKytsZGFwX2xjYV90 b192Y2FyZCh2Q2FyZCwiY24iLFtWYWx1ZXxfXSkgLT4KKysgICAge3htbGVsZW1lbnQsIk5JQ0tO QU1FIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OworKworK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJk LCJ0aXRsZSIsW1ZhbHVlfF9dKSAtPgorKyAgICB7eG1sZWxlbWVudCwiVElUTEUiLFtdLFt7eG1s Y2RhdGEsVmFsdWV9XX07CisrCisrbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsInd3d2hvbWVwYWdl IixbVmFsdWV8X10pIC0+CisrICAgIHt4bWxlbGVtZW50LCJVUkwiLFtdLFt7eG1sY2RhdGEsVmFs dWV9XX07CisrCisrbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsImRlc2NyaXB0aW9uIixbVmFsdWV8 X10pIC0+CisrICAgIHt4bWxlbGVtZW50LCJERVNDIixbXSxbe3htbGNkYXRhLFZhbHVlfV19Owor KworK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkLCJ0ZWxlcGhvbmVudW1iZXIiLFtWYWx1ZXxfXSkg LT4KKysgICAge3htbGVsZW1lbnQsIlRFTCIsW10sW3t4bWxlbGVtZW50LCJWT0lDRSIsW10sW119 LAorKwkJCSAge3htbGVsZW1lbnQsIldPUksiLFtdLFtdfSwKKysJCQkgIHt4bWxlbGVtZW50LCJO VU1CRVIiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX1dfTsKKysKKytsZGFwX2xjYV90b192Y2FyZCh2 Q2FyZCwibWFpbCIsW1ZhbHVlfF9dKSAtPgorKyAgICB7eG1sZWxlbWVudCwiRU1BSUwiLFtdLFt7 eG1sZWxlbWVudCwiSU5URVJORVQiLFtdLFtdfSwKKysJCQkgICAge3htbGVsZW1lbnQsIlBSRUYi LFtdLFtdfSwKKysJCQkgICAge3htbGVsZW1lbnQsIlVTRVJJRCIsW10sW3t4bWxjZGF0YSxWYWx1 ZX1dfV19OworKworK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkTiwic24iLFtWYWx1ZXxfXSkgLT4K KysgICAge3htbGVsZW1lbnQsIkZBTUlMWSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKKysKKyts ZGFwX2xjYV90b192Y2FyZCh2Q2FyZE4sImdpdmVubmFtZSIsW1ZhbHVlfF9dKSAtPgorKyAgICB7 eG1sZWxlbWVudCwiR0lWRU4iLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07CisrCisrbGRhcF9sY2Ff dG9fdmNhcmQodkNhcmROLCJpbml0aWFscyIsW1ZhbHVlfF9dKSAtPgorKyAgICB7eG1sZWxlbWVu dCwiTUlERExFIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OworKworK2xkYXBfbGNhX3RvX3ZjYXJk KHZDYXJkQWRyLCJzdHJlZXRhZGRyZXNzIixbVmFsdWV8X10pIC0+CisrICAgIHt4bWxlbGVtZW50 LCJTVFJFRVQiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07CisrbGRhcF9sY2FfdG9fdmNhcmQodkNh cmRBZHIsImNvIixbVmFsdWV8X10pIC0+CisrICAgIHt4bWxlbGVtZW50LCJDVFJZIixbXSxbe3ht bGNkYXRhLFZhbHVlfV19OworK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkQWRyLCJsIixbVmFsdWV8 X10pIC0+CisrICAgIHt4bWxlbGVtZW50LCJMT0NBTElUWSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1d fTsKKytsZGFwX2xjYV90b192Y2FyZCh2Q2FyZEFkciwic3QiLFtWYWx1ZXxfXSkgLT4KKysgICAg e3htbGVsZW1lbnQsIlJFR0lPTiIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKKytsZGFwX2xjYV90 b192Y2FyZCh2Q2FyZEFkciwicG9zdGFsY29kZSIsW1ZhbHVlfF9dKSAtPgorKyAgICB7eG1sZWxl bWVudCwiUENPREUiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07CisrbGRhcF9sY2FfdG9fdmNhcmQo dkNhcmRPLCJjb21wYW55IixbVmFsdWV8X10pIC0+CisrICAgIHt4bWxlbGVtZW50LCJPUkdOQU1F IixbXSxbe3htbGNkYXRhLFZhbHVlfV19OworKworK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkTywi ZGVwYXJ0bWVudCIsW1ZhbHVlfF9dKSAtPgorKyAgICB7eG1sZWxlbWVudCwiT1JHVU5JVCIsW10s W3t4bWxjZGF0YSxWYWx1ZX1dfTsKKysKKytsZGFwX2xjYV90b192Y2FyZChfLF8sXykgLT4gbm9u ZS4KKysKKytsZGFwX2F0dHJpYnV0ZXNfdG9fdmNhcmQoQXR0cmlidXRlcyxGcm9tLFRvKSAtPgor KyAgICBFbHRzID0gbGlzdHM6bWFwKGZ1bihBdHRyKSAtPgorKwkJCSAgICAgbGRhcF9hdHRyaWJ1 dGVfdG9fdmNhcmQodkNhcmQsQXR0cixGcm9tLFRvKQorKwkJICAgICBlbmQsQXR0cmlidXRlcyks CisrICAgIEZFbHRzID0gWyBYIHx8IFggPC0gRWx0cywgWCAvPSBub25lIF0sCisrICAgIE5FbHRz ID0gbGlzdHM6bWFwKGZ1bihBdHRyKSAtPgorKwkJCSAgICAgIGxkYXBfYXR0cmlidXRlX3RvX3Zj YXJkKHZDYXJkTixBdHRyLEZyb20sVG8pCisrCQkgICAgICBlbmQsQXR0cmlidXRlcyksCisrICAg IEZORWx0cyA9IFsgWCB8fCBYIDwtIE5FbHRzLCBYIC89IG5vbmUgXSwKKysgICAKKysgICAgQURS RWx0cyA9IGxpc3RzOm1hcChmdW4oQXR0cikgLT4KKysJCQkgICAgICBsZGFwX2F0dHJpYnV0ZV90 b192Y2FyZCh2Q2FyZEFkcixBdHRyLEZyb20sVG8pCisrCQkgICAgICBlbmQsQXR0cmlidXRlcyks CisrICAgIEZBRFJFbHRzID0gWyBYIHx8IFggPC0gQURSRWx0cywgWCAvPSBub25lIF0sCisrICAg IAorKyAgICBPRWx0cyA9IGxpc3RzOm1hcChmdW4oQXR0cikgLT4KKysJCQkgICAgICBsZGFwX2F0 dHJpYnV0ZV90b192Y2FyZCh2Q2FyZE8sQXR0cixGcm9tLFRvKQorKwkJICAgICAgZW5kLEF0dHJp YnV0ZXMpLAorKyAgICBGT0VsdHMgPSBbIFggfHwgWCA8LSBPRWx0cywgWCAvPSBub25lIF0sCisr ICAgIFt7eG1sZWxlbWVudCwgInZDYXJkIiwgW3sieG1sbnMiLCA/TlNfVkNBUkR9XSwKKysgICAg ICBsaXN0czphcHBlbmQoRkVsdHMsCisrCQkgICBbe3htbGVsZW1lbnQsIk4iLFtdLEZORWx0c30s CisrCQkgICAge3htbGVsZW1lbnQsIkFEUiIsW10sRkFEUkVsdHN9LAorKwkJICAgIHt4bWxlbGVt ZW50LCJPUkciLFtdLEZPRWx0c31dKQorKyAgICAgfV0uCisrCisrcHJvY2Vzc19zbV9pcShGcm9t LCBUbywgI2lxe3R5cGUgPSBUeXBlLCBzdWJfZWwgPSBTdWJFbH0gPSBJUSkgLT4KKysgICAgY2Fz ZSBUeXBlIG9mCisrCXNldCAtPgorKwkgICAgSVEjaXF7dHlwZSA9IGVycm9yLCBzdWJfZWwgPSBb U3ViRWwsID9FUlJfTk9UX0FMTE9XRURdfTsKKysJZ2V0IC0+CisrCSAgICAjamlke2x1c2VyID0g TFVzZXIsIGxzZXJ2ZXIgPSBMU2VydmVyfSA9IFRvLAorKwkgICAgY2FzZSBmaW5kX2xkYXBfdXNl cihMU2VydmVyLCBMVXNlcikgb2YKKysJCSNlbGRhcF9lbnRyeXthdHRyaWJ1dGVzID0gQXR0cmli dXRlc30gLT4KKysJCSAgICBWY2FyZCA9IGxkYXBfYXR0cmlidXRlc190b192Y2FyZChBdHRyaWJ1 dGVzLEZyb20sVG8pLAorKwkJICAgIElRI2lxe3R5cGUgPSByZXN1bHQsIHN1Yl9lbCA9IFZjYXJk fTsKKysJCV8gLT4KKysJCSAgICBJUSNpcXt0eXBlID0gcmVzdWx0LCBzdWJfZWwgPSBbXX0KKysJ ICAgIGVuZAorKwllbmQuCisrCisrLWRlZmluZShUTEZJRUxEKFR5cGUsIExhYmVsLCBWYXIpLAor Kwl7eG1sZWxlbWVudCwgImZpZWxkIiwgW3sidHlwZSIsIFR5cGV9LAorKwkJCSAgICAgICB7Imxh YmVsIiwgdHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCBMYWJlbCl9LAorKwkJCSAgICAgICB7InZh ciIsIFZhcn1dLCBbXX0pLgorKworKworKy1kZWZpbmUoRk9STShKSUQpLAorKwlbe3htbGVsZW1l bnQsICJpbnN0cnVjdGlvbnMiLCBbXSwKKysJICBbe3htbGNkYXRhLCB0cmFuc2xhdGU6dHJhbnNs YXRlKExhbmcsICJZb3UgbmVlZCBhbiB4OmRhdGEgY2FwYWJsZSBjbGllbnQgdG8gc2VhcmNoIil9 XX0sCisrCSB7eG1sZWxlbWVudCwgIngiLCBbeyJ4bWxucyIsID9OU19YREFUQX0sIHsidHlwZSIs ICJmb3JtIn1dLAorKwkgIFt7eG1sZWxlbWVudCwgInRpdGxlIiwgW10sCisrCSAgICBbe3htbGNk YXRhLCB0cmFuc2xhdGU6dHJhbnNsYXRlKExhbmcsICJTZWFyY2ggdXNlcnMgaW4gIikgKysKKysJ ICAgICAgamxpYjpqaWRfdG9fc3RyaW5nKEpJRCl9XX0sCisrCSAgIHt4bWxlbGVtZW50LCAiaW5z dHJ1Y3Rpb25zIiwgW10sCisrCSAgICBbe3htbGNkYXRhLCB0cmFuc2xhdGU6dHJhbnNsYXRlKExh bmcsICJGaWxsIGluIGZpZWxkcyB0byBzZWFyY2ggIgorKwkJCQkJICAgICJmb3IgYW55IG1hdGNo aW5nIEphYmJlciBVc2VyIil9XX0sCisrCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJVc2Vy IiwgInVzZXIiKSwKKysJICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwgIkZ1bGwgTmFtZSIsICJm biIpLAorKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiR2l2ZW4gTmFtZSIsICJnaXZlbiIp LAorKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiTWlkZGxlIE5hbWUiLCAibWlkZGxlIiks CisrCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJGYW1pbHkgTmFtZSIsICJmYW1pbHkiKSwK KysJICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwgIk5pY2tuYW1lIiwgIm5pY2tuYW1lIiksCisr CSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJCaXJ0aGRheSIsICJiZGF5IiksCisrCSAgID9U TEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJDb3VudHJ5IiwgImN0cnkiKSwKKysJICAgP1RMRklFTEQo InRleHQtc2luZ2xlIiwgIkNpdHkiLCAibG9jYWxpdHkiKSwKKysJICAgP1RMRklFTEQoInRleHQt c2luZ2xlIiwgImVtYWlsIiwgImVtYWlsIiksCisrCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIs ICJPcmdhbml6YXRpb24gTmFtZSIsICJvcmduYW1lIiksCisrCSAgID9UTEZJRUxEKCJ0ZXh0LXNp bmdsZSIsICJPcmdhbml6YXRpb24gVW5pdCIsICJvcmd1bml0IikKKysJICBdfV0pLgorKworKwor KworKworK2RvX3JvdXRlKFNlcnZlckhvc3QsIEZyb20sIFRvLCBQYWNrZXQpIC0+CisrICAgICNq aWR7dXNlciA9IFVzZXIsIHJlc291cmNlID0gUmVzb3VyY2V9ID0gVG8sCisrICAgIGlmCisrCShV c2VyIC89ICIiKSBvciAoUmVzb3VyY2UgLz0gIiIpIC0+CisrCSAgICBFcnIgPSBqbGliOm1ha2Vf ZXJyb3JfcmVwbHkoUGFja2V0LCA/RVJSX1NFUlZJQ0VfVU5BVkFJTEFCTEUpLAorKwkgICAgZWph YmJlcmRfcm91dGVyICEge3JvdXRlLCBUbywgRnJvbSwgRXJyfTsKKysJdHJ1ZSAtPgorKwkgICAg SVEgPSBqbGliOmlxX3F1ZXJ5X2luZm8oUGFja2V0KSwKKysJICAgIGNhc2UgSVEgb2YKKysJCSNp cXt0eXBlID0gVHlwZSwgeG1sbnMgPSA/TlNfU0VBUkNILCBsYW5nID0gTGFuZywgc3ViX2VsID0g U3ViRWx9IC0+CisrCQkgICAgY2FzZSBUeXBlIG9mCisrCQkJc2V0IC0+CisrCQkJICAgIFhEYXRh RWwgPSBmaW5kX3hkYXRhX2VsKFN1YkVsKSwKKysJCQkgICAgY2FzZSBYRGF0YUVsIG9mCisrCQkJ CWZhbHNlIC0+CisrCQkJCSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoCisrCQkJCQkg ICAgUGFja2V0LCA/RVJSX0JBRF9SRVFVRVNUKSwKKysJCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpy b3V0ZShUbywgRnJvbSwgRXJyKTsKKysJCQkJXyAtPgorKwkJCQkgICAgWERhdGEgPSBqbGliOnBh cnNlX3hkYXRhX3N1Ym1pdChYRGF0YUVsKSwKKysJCQkJICAgIGNhc2UgWERhdGEgb2YKKysJCQkJ CWludmFsaWQgLT4KKysJCQkJCSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoCisrCQkJ CQkJICAgIFBhY2tldCwKKysJCQkJCQkgICAgP0VSUl9CQURfUkVRVUVTVCksCisrCQkJCQkgICAg ZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLCBGcm9tLAorKwkJCQkJCQkJICBFcnIpOworKwkJCQkJ XyAtPgorKwkJCQkJICAgIFJlc0lRID0KKysJCQkJCQlJUSNpcXsKKysJCQkJCQkgIHR5cGUgPSBy ZXN1bHQsCisrCQkJCQkJICBzdWJfZWwgPQorKwkJCQkJCSAgW3t4bWxlbGVtZW50LAorKwkJCQkJ CSAgICAicXVlcnkiLAorKwkJCQkJCSAgICBbeyJ4bWxucyIsID9OU19TRUFSQ0h9XSwKKysJCQkJ CQkgICAgW3t4bWxlbGVtZW50LCAieCIsCisrCQkJCQkJICAgICAgW3sieG1sbnMiLCA/TlNfWERB VEF9LAorKwkJCQkJCSAgICAgICB7InR5cGUiLCAicmVzdWx0In1dLAorKwkJCQkJCSAgICAgIHNl YXJjaF9yZXN1bHQoTGFuZywgVG8sIFNlcnZlckhvc3QsIFhEYXRhKQorKwkJCQkJCSAgICAgfV19 XX0sCisrCQkJCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKAorKwkJCQkJICAgICAgVG8sIEZy b20sIGpsaWI6aXFfdG9feG1sKFJlc0lRKSkKKysJCQkJICAgIGVuZAorKwkJCSAgICBlbmQ7Cisr CQkJZ2V0IC0+CisrCQkJICAgIFJlc0lRID0gSVEjaXF7dHlwZSA9IHJlc3VsdCwKKysJCQkJCSAg c3ViX2VsID0gW3t4bWxlbGVtZW50LAorKwkJCQkJCSAgICAgInF1ZXJ5IiwKKysJCQkJCQkgICAg IFt7InhtbG5zIiwgP05TX1NFQVJDSH1dLAorKwkJCQkJCSAgICAgP0ZPUk0oVG8pCisrCQkJCQkJ ICAgIH1dfSwKKysJCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLAorKwkJCQkJCSAgRnJv bSwKKysJCQkJCQkgIGpsaWI6aXFfdG9feG1sKFJlc0lRKSkKKysJCSAgICBlbmQ7CisrCQkjaXF7 dHlwZSA9IFR5cGUsIHhtbG5zID0gP05TX0RJU0NPX0lORk8sIHN1Yl9lbCA9IFN1YkVsfSAtPgor KwkJICAgIGNhc2UgVHlwZSBvZgorKwkJCXNldCAtPgorKwkJCSAgICBFcnIgPSBqbGliOm1ha2Vf ZXJyb3JfcmVwbHkoCisrCQkJCSAgICBQYWNrZXQsID9FUlJfTk9UX0FMTE9XRUQpLAorKwkJCSAg ICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoVG8sIEZyb20sIEVycik7CisrCQkJZ2V0IC0+CisrCQkJ ICAgIFJlc0lRID0KKysJCQkJSVEjaXF7dHlwZSA9IHJlc3VsdCwKKysJCQkJICAgICAgc3ViX2Vs ID0gW3t4bWxlbGVtZW50LAorKwkJCQkJCSAicXVlcnkiLAorKwkJCQkJCSBbeyJ4bWxucyIsID9O U19ESVNDT19JTkZPfV0sCisrCQkJCQkJIFt7eG1sZWxlbWVudCwgImlkZW50aXR5IiwKKysJCQkJ CQkgICBbeyJjYXRlZ29yeSIsICJkaXJlY3RvcnkifSwKKysJCQkJCQkgICAgeyJ0eXBlIiwgInVz ZXIifSwKKysJCQkJCQkgICAgeyJuYW1lIiwKKysJCQkJCQkgICAgICJ2Q2FyZCBVc2VyIFNlYXJj aCJ9XSwKKysJCQkJCQkgICBbXX0sCisrCQkJCQkJICB7eG1sZWxlbWVudCwgImZlYXR1cmUiLAor KwkJCQkJCSAgIFt7InZhciIsID9OU19TRUFSQ0h9XSwgW119LAorKwkJCQkJCSAge3htbGVsZW1l bnQsICJmZWF0dXJlIiwKKysJCQkJCQkgICBbeyJ2YXIiLCA/TlNfVkNBUkR9XSwgW119CisrCQkJ CQkJIF0KKysJCQkJCQl9XX0sCisrCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywKKysJ CQkJCQkgIEZyb20sCisrCQkJCQkJICBqbGliOmlxX3RvX3htbChSZXNJUSkpCisrCQkgICAgZW5k OworKwkJI2lxe3R5cGUgPSBUeXBlLCB4bWxucyA9ID9OU19ESVNDT19JVEVNUywgc3ViX2VsID0g U3ViRWx9IC0+CisrCQkgICAgY2FzZSBUeXBlIG9mCisrCQkJc2V0IC0+CisrCQkJICAgIEVyciA9 IGpsaWI6bWFrZV9lcnJvcl9yZXBseSgKKysJCQkJICAgIFBhY2tldCwgP0VSUl9OT1RfQUxMT1dF RCksCisrCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywgRnJvbSwgRXJyKTsKKysJCQln ZXQgLT4KKysJCQkgICAgUmVzSVEgPSAKKysJCQkJSVEjaXF7dHlwZSA9IHJlc3VsdCwKKysJCQkJ ICAgICAgc3ViX2VsID0gW3t4bWxlbGVtZW50LAorKwkJCQkJCSAicXVlcnkiLAorKwkJCQkJCSBb eyJ4bWxucyIsID9OU19ESVNDT19JVEVNU31dLAorKwkJCQkJCSBbXX1dfSwKKysJCQkgICAgZWph YmJlcmRfcm91dGVyOnJvdXRlKFRvLAorKwkJCQkJCSAgRnJvbSwKKysJCQkJCQkgIGpsaWI6aXFf dG9feG1sKFJlc0lRKSkKKysJCSAgICBlbmQ7CisrCQkjaXF7dHlwZSA9IGdldCwgeG1sbnMgPSA/ TlNfVkNBUkQsIGxhbmcgPSBMYW5nfSAtPgorKwkJICAgIFJlc0lRID0gCisrCQkJSVEjaXF7dHlw ZSA9IHJlc3VsdCwKKysJCQkgICAgICBzdWJfZWwgPSBbe3htbGVsZW1lbnQsCisrCQkJCQkgInZD YXJkIiwKKysJCQkJCSBbeyJ4bWxucyIsID9OU19WQ0FSRH1dLAorKwkJCQkJIGlxX2dldF92Y2Fy ZChMYW5nKX1dfSwKKysJCSAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoVG8sCisrCQkJCQkgIEZy b20sCisrCQkJCQkgIGpsaWI6aXFfdG9feG1sKFJlc0lRKSk7CisrCQlfIC0+CisrCQkgICAgRXJy ID0gamxpYjptYWtlX2Vycm9yX3JlcGx5KFBhY2tldCwKKysJCQkJCQk/RVJSX1NFUlZJQ0VfVU5B VkFJTEFCTEUpLAorKwkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywgRnJvbSwgRXJyKQor KwkgICAgZW5kCisrICAgIGVuZC4KKysKKytpcV9nZXRfdmNhcmQoTGFuZykgLT4KKysgICAgW3t4 bWxlbGVtZW50LCAiRk4iLCBbXSwKKysgICAgICBbe3htbGNkYXRhLCAiZWphYmJlcmQvbW9kX3Zj YXJkIn1dfSwKKysgICAgIHt4bWxlbGVtZW50LCAiVVJMIiwgW10sCisrICAgICAgW3t4bWxjZGF0 YSwKKysgICAgICAgICJodHRwOi8vZWphYmJlcmQuamFiYmVyc3R1ZGlvLm9yZy8ifV19LAorKyAg ICAge3htbGVsZW1lbnQsICJERVNDIiwgW10sCisrICAgICAgW3t4bWxjZGF0YSwgdHJhbnNsYXRl OnRyYW5zbGF0ZSgKKysJCSAgICBMYW5nLAorKwkJICAgICJlamFiYmVyZCB2Q2FyZCBtb2R1bGVc biIKKysJCSAgICAiQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgQWxleGV5IFNoY2hlcGluIil9XX1d LgorKworK2ZpbmRfeGRhdGFfZWwoe3htbGVsZW1lbnQsIF9OYW1lLCBfQXR0cnMsIFN1YkVsc30p IC0+CisrICAgIGZpbmRfeGRhdGFfZWwxKFN1YkVscykuCisrCisrZmluZF94ZGF0YV9lbDEoW10p IC0+CisrICAgIGZhbHNlOworK2ZpbmRfeGRhdGFfZWwxKFt7eG1sZWxlbWVudCwgTmFtZSwgQXR0 cnMsIFN1YkVsc30gfCBFbHNdKSAtPgorKyAgICBjYXNlIHhtbDpnZXRfYXR0cl9zKCJ4bWxucyIs IEF0dHJzKSBvZgorKwk/TlNfWERBVEEgLT4KKysJICAgIHt4bWxlbGVtZW50LCBOYW1lLCBBdHRy cywgU3ViRWxzfTsKKysJXyAtPgorKwkgICAgZmluZF94ZGF0YV9lbDEoRWxzKQorKyAgICBlbmQ7 CisrZmluZF94ZGF0YV9lbDEoW18gfCBFbHNdKSAtPgorKyAgICBmaW5kX3hkYXRhX2VsMShFbHMp LgorKworKy1kZWZpbmUoTEZJRUxEKExhYmVsLCBWYXIpLAorKwl7eG1sZWxlbWVudCwgImZpZWxk IiwgW3sibGFiZWwiLCB0cmFuc2xhdGU6dHJhbnNsYXRlKExhbmcsIExhYmVsKX0sCisrCQkJICAg ICAgIHsidmFyIiwgVmFyfV0sIFtdfSkuCisrCisrc2VhcmNoX3Jlc3VsdChMYW5nLCBKSUQsIFNl cnZlckhvc3QsIERhdGEpIC0+CisrICAgIFt7eG1sZWxlbWVudCwgInRpdGxlIiwgW10sCisrICAg ICAgW3t4bWxjZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCAiUmVzdWx0cyBvZiBzZWFy Y2ggaW4gIikgKysKKysJamxpYjpqaWRfdG9fc3RyaW5nKEpJRCl9XX0sCisrICAgICB7eG1sZWxl bWVudCwgInJlcG9ydGVkIiwgW10sCisrICAgICAgWz9MRklFTEQoIkpJRCIsICJqaWQiKSwKKysg ICAgICAgP0xGSUVMRCgiRnVsbCBOYW1lIiwgImZuIiksCisrICAgICAgID9MRklFTEQoIkdpdmVu IE5hbWUiLCAiZ2l2ZW4iKSwKKysgICAgICAgP0xGSUVMRCgiTWlkZGxlIE5hbWUiLCAibWlkZGxl IiksCisrICAgICAgID9MRklFTEQoIkZhbWlseSBOYW1lIiwgImZhbWlseSIpLAorKyAgICAgICA/ TEZJRUxEKCJOaWNrbmFtZSIsICJuaWNrbmFtZSIpLAorKyAgICAgICA/TEZJRUxEKCJCaXJ0aGRh eSIsICJiZGF5IiksCisrICAgICAgID9MRklFTEQoIkNvdW50cnkiLCAiY3RyeSIpLAorKyAgICAg ICA/TEZJRUxEKCJDaXR5IiwgImxvY2FsaXR5IiksCisrICAgICAgID9MRklFTEQoImVtYWlsIiwg ImVtYWlsIiksCisrICAgICAgID9MRklFTEQoIk9yZ2FuaXphdGlvbiBOYW1lIiwgIm9yZ25hbWUi KSwKKysgICAgICAgP0xGSUVMRCgiT3JnYW5pemF0aW9uIFVuaXQiLCAib3JndW5pdCIpCisrICAg ICAgXX1dICsrIGxpc3RzOm1hcChmdW4oRSkgLT4gCisrCQkJICAgICAgIHJlY29yZF90b19pdGVt KEUjZWxkYXBfZW50cnkuYXR0cmlidXRlcykKKysJCSAgICAgICBlbmQsIHNlYXJjaChTZXJ2ZXJI b3N0LCBEYXRhKSkuCisrCisrLWRlZmluZShGSUVMRChWYXIsIFZhbCksCisrCXt4bWxlbGVtZW50 LCAiZmllbGQiLCBbeyJ2YXIiLCBWYXJ9XSwKKysJIFt7eG1sZWxlbWVudCwgInZhbHVlIiwgW10s CisrCSAgIFt7eG1sY2RhdGEsIFZhbH1dfV19KS4KKysKKytjYXNlX2V4YWN0X2NvbXBhcmUobm9u ZSxfKSAtPgorKyAgICBmYWxzZTsKKytjYXNlX2V4YWN0X2NvbXBhcmUoXyxub25lKSAtPgorKyAg ICBmYWxzZTsKKytjYXNlX2V4YWN0X2NvbXBhcmUoWCxZKSAtPgorKyAgICBYID4gWS4KKysKKyts ZGFwX3NvcnRfZW50cmllcyhMKSAtPgorKyAgICBsaXN0czpzb3J0KGZ1bihFMSxFMikgLT4KKysJ CSAgICAgICBjYXNlX2V4YWN0X2NvbXBhcmUobGRhcF9nZXRfdmFsdWUoRTEsImNuIiksbGRhcF9n ZXRfdmFsdWUoRTIsImNuIikpCisrCSAgICAgICBlbmQsTCkuCisrCisrbGRhcF9nZXRfdmFsdWUo RSxBdHRyaWJ1dGUpIC0+CisrICAgICNlbGRhcF9lbnRyeXthdHRyaWJ1dGVzID0gQXR0cmlidXRl c30gPSBFLAorKyAgICBjYXNlIGxpc3RzOmZpbHRlcihmdW4oe0EsX30pIC0+CisrCQkJICAgICAg c3RyaW5nOmVxdWFsKEEsQXR0cmlidXRlKQorKwkJICAgICAgZW5kLEF0dHJpYnV0ZXMpIG9mCisr CVt7QXR0cixbVmFsdWV8X119XSAtPgorKwkgICAgVmFsdWU7CisrCV8gLT4gCisrCSAgICBub25l CisrICAgIGVuZC4KKysKKytsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJzYW1hY2NvdW50bmFtZSIs VmFsdWUpIC0+CisrICAgIFsKKysgICAgID9GSUVMRCgiamlkIixWYWx1ZSArKyAiQCIgKysgP01Z TkFNRSksCisrICAgICA/RklFTEQoInVpZCIsVmFsdWUpCisrICAgIF07CisrCisrbGRhcF9hdHRy aWJ1dGVfdG9faXRlbSgiY24iLFZhbHVlKSAtPgorKyAgICBbCisrICAgICA/RklFTEQoIm5pY2tu YW1lIixWYWx1ZSkKKysgICAgXTsKKysKKytsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJkaXNwbGF5 bmFtZSIsVmFsdWUpIC0+CisrICAgIFsKKysgICAgID9GSUVMRCgiZm4iLFZhbHVlKQorKyAgICBd OworKworK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oInNuIixWYWx1ZSkgLT4KKysgICAgWworKyAg ICAgP0ZJRUxEKCJmYW1pbHkiLFZhbHVlKQorKyAgICBdOworK2xkYXBfYXR0cmlidXRlX3RvX2l0 ZW0oImNvIixWYWx1ZSkgLT4KKysgICAgWworKyAgICAgP0ZJRUxEKCJjdHJ5IixWYWx1ZSkKKysg ICAgXTsKKytsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJsIixWYWx1ZSkgLT4KKysgICAgWworKyAg ICAgP0ZJRUxEKCJsb2NhbGl0eSIsVmFsdWUpCisrICAgIF07CisrCisrbGRhcF9hdHRyaWJ1dGVf dG9faXRlbSgiZ2l2ZW5uYW1lIixWYWx1ZSkgLT4KKysgICAgWworKyAgICAgP0ZJRUxEKCJnaXZl biIsVmFsdWUpCisrICAgIF07CisrCisrbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgiaW5pdGlhbHMi LFZhbHVlKSAtPgorKyAgICBbCisrICAgICA/RklFTEQoIm1pZGRsZSIsVmFsdWUpCisrICAgIF07 CisrCisrbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgibWFpbCIsVmFsdWUpIC0+CisrICAgIFsKKysg ICAgID9GSUVMRCgiZW1haWwiLFZhbHVlKQorKyAgICBdOworKworK2xkYXBfYXR0cmlidXRlX3Rv X2l0ZW0oImNvbXBhbnkiLFZhbHVlKSAtPgorKyAgICBbCisrICAgICA/RklFTEQoIm9yZ25hbWUi LFZhbHVlKQorKyAgICBdOworKworK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oImRlcGFydG1lbnQi LFZhbHVlKSAtPgorKyAgICBbCisrICAgICA/RklFTEQoIm9yZ3VuaXQiLFZhbHVlKQorKyAgICBd OworKworK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oXyxfKSAtPgorKyAgICBbbm9uZV0uCisrCisr cmVjb3JkX3RvX2l0ZW0oQXR0cmlidXRlcykgLT4KKysgICAgTGlzdCA9IGxpc3RzOmFwcGVuZChs aXN0czptYXAoZnVuKHtBdHRyLFtWYWx1ZXxfXX0pIC0+IAorKwkJCQkJICBsZGFwX2F0dHJpYnV0 ZV90b19pdGVtKHN0cmluZ3ByZXA6dG9sb3dlcihBdHRyKSxWYWx1ZSkKKysJCQkJICBlbmQsQXR0 cmlidXRlcykpLAorKyAgICBGTGlzdCA9IFtYIHx8IFggPC0gTGlzdCwgWCAvPSBub25lXSwKKysg ICAge3htbGVsZW1lbnQsICJpdGVtIiwgW10sRkxpc3R9LgorKworK3NlYXJjaChMU2VydmVyLCBE YXRhKSAtPgorKyUgICAgQWRHcm91cCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9u KHthZF9ncm91cCwgTFNlcnZlcn0pLAorKyAgICBGaWx0ZXJEZWYgPSBtYWtlX2ZpbHRlcihEYXRh KSwKKysgICAgRmlsdGVyUGVyc29uID0gIGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENhdGVn b3J5IiwgInBlcnNvbiIpLAorKyAgICBGaWx0ZXJDb21wID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgi b2JqZWN0Q2xhc3MiLCAiY29tcHV0ZXIiKSwKKysgICAgRmlsdGVySGlkZGVuID0gZWxkYXA6ZXF1 YWxpdHlNYXRjaCgiZGVzY3JpcHRpb24iLCAiaGlkZGVuIiksCisrJSAgICBGaWx0ZXJHcm91cCA9 IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCisrICAgIEZpbHRlckxp dmUgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJ1c2VyQWNjb3VudENvbnRyb2wiLCAiNjYwNTAiKSwK KysgICAgRmlsdGVyID0gZWxkYXA6J2FuZCcoWworKwkJCSAgRmlsdGVyRGVmLAorKwkJCSAgRmls dGVyUGVyc29uLAorKyUJCQkgIEZpbHRlckdyb3VwLAorKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVy Q29tcCksCisrCQkJICBlbGRhcDonbm90JyhGaWx0ZXJIaWRkZW4pLAorKwkJCSAgZWxkYXA6J25v dCcoRmlsdGVyTGl2ZSldKSwKKysgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxf b3B0aW9uKHthZF9iYXNlLCBMU2VydmVyfSksCisrICAgIFVJREF0dHIgPSBlamFiYmVyZF9jb25m aWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfdWlkYXR0ciwgTFNlcnZlcn0pLAorKyAgICBjYXNlIGVs ZGFwOnNlYXJjaCgibW9kX3ZjYXJkX2FkIixbe2Jhc2UsIEJhc2V9LAorKwkJCQkJe2ZpbHRlciwg RmlsdGVyfSwKKysJCQkJCXthdHRyaWJ1dGVzLCBbXX1dKSBvZgorKwkjZWxkYXBfc2VhcmNoX3Jl c3VsdHtlbnRyaWVzID0gRX0gLT4KKysJICAgIFtYIHx8IFggPC0gRSwKKysJCSAgZWphYmJlcmRf YXV0aDppc191c2VyX2V4aXN0cygKKysJCSAgICBsZGFwX2dldF92YWx1ZShYLCBVSURBdHRyKSwg TFNlcnZlcildOworKwlFcnIgLT4KKysJICAgID9FUlJPUl9NU0coIkJhZCBzZWFyY2g6IH5wIiwg W1tMU2VydmVyLCB7YmFzZSwgQmFzZX0sCisrCQkJCQl7ZmlsdGVyLCBGaWx0ZXJ9LAorKwkJCQkJ e2F0dHJpYnV0ZXMsIFtdfV1dKQorKyAgICBlbmQuCisrCisrCisrbWFrZV9maWx0ZXIoRGF0YSkg LT4KKysgICAgRmlsdGVyID0gW1ggfHwgWCA8LSBsaXN0czptYXAoZnVuKFIpIC0+IAorKwkJCQkJ ICBtYWtlX2Fzc2VydGlvbihSKQorKwkJCQkgIGVuZCwgRGF0YSksCisrCQkgICBYIC89IG5vbmUg XSwKKysgICAgY2FzZSBGaWx0ZXIgb2YKKysJW0ZdIC0+IAorKwkgICAgRjsKKysJXyAtPgorKwkg ICAgZWxkYXA6J2FuZCcoRmlsdGVyKQorKyAgICBlbmQuCisrCisrCisrbWFrZV9hc3NlcnRpb24o ImdpdmVuTmFtZSIsVmFsdWUpIC0+CisrICAgIGVsZGFwOnN1YnN0cmluZ3MoImdpdmVuTmFtZSIs W3thbnksVmFsdWV9XSk7CisrCisrbWFrZV9hc3NlcnRpb24oImNuIixWYWx1ZSkgLT4KKysgICAg ZWxkYXA6c3Vic3RyaW5ncygiY24iLFt7YW55LFZhbHVlfV0pOworKworK21ha2VfYXNzZXJ0aW9u KCJzbiIsVmFsdWUpIC0+CisrICAgIGVsZGFwOnN1YnN0cmluZ3MoInNuIixbe2FueSxWYWx1ZX1d KTsKKysKKyttYWtlX2Fzc2VydGlvbihBdHRyLCBWYWx1ZSkgLT4KKysgICAgZWxkYXA6ZXF1YWxp dHlNYXRjaChBdHRyLFZhbHVlKS4KKysKKyttYWtlX2Fzc2VydGlvbih7U1ZhciwgW1ZhbF19KSAt PgorKyAgICBMQXR0ciA9IGxkYXBfYXR0cmlidXRlKFNWYXIpLAorKyAgICBjYXNlIExBdHRyIG9m CisrCW5vbmUgLT4KKysJICAgIG5vbmU7CisrCV8gLT4KKysJICAgIGlmIAorKwkJaXNfbGlzdChW YWwpIGFuZCAoVmFsIC89ICIiKSAtPgorKwkJICAgIG1ha2VfYXNzZXJ0aW9uKExBdHRyLFZhbCk7 CisrCQl0cnVlIC0+CisrCQkgICAgbm9uZQorKwkgICAgZW5kCisrICAgIGVuZC4KKysKKytsZGFw X2F0dHJpYnV0ZSgidXNlciIpIC0+CisrICAgICJzYW1hY2NvdW50bmFtZSI7CisrCisrbGRhcF9h dHRyaWJ1dGUoImZuIikgLT4KKysgICAgImNuIjsKKysKKytsZGFwX2F0dHJpYnV0ZSgiZmFtaWx5 IikgLT4KKysgICAgInNuIjsKKysKKytsZGFwX2F0dHJpYnV0ZSgiZ2l2ZW4iKSAtPgorKyAgICAi Z2l2ZW5OYW1lIjsKKysKKytsZGFwX2F0dHJpYnV0ZSgibWlkZGxlIikgLT4KKysgICAgImluaXRp YWxzIjsKKysKKytsZGFwX2F0dHJpYnV0ZSgiZW1haWwiKSAtPgorKyAgICAibWFpbCI7CisrCisr bGRhcF9hdHRyaWJ1dGUoIm9yZ25hbWUiKSAtPgorKyAgICAiY29tcGFueSI7CisrCisrbGRhcF9h dHRyaWJ1dGUoIm9yZ3VuaXQiKSAtPgorKyAgICAiZGVwYXJ0bWVudCI7CisrCisrbGRhcF9hdHRy aWJ1dGUoXykgLT4KKysgICAgbm9uZS4KKysKKytyZW1vdmVfdXNlcihVc2VyKSAtPgorKyAgICB0 cnVlLgorKworLS0gCisxLjcuMy4zCisKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDA5LVN1cHBv cnQtU0FTTC1HU1NBUEktYXV0aGVudGljYXRpb24tdGhhbmtzLXRvLU1pa2FlbC0ucGF0Y2ggYi9l amFiYmVyZC0wMDA5LVN1cHBvcnQtU0FTTC1HU1NBUEktYXV0aGVudGljYXRpb24tdGhhbmtzLXRv LU1pa2FlbC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzNWQ1MDMuLjAw MDAwMDAKLS0tIGEvZWphYmJlcmQtMDAwOS1TdXBwb3J0LVNBU0wtR1NTQVBJLWF1dGhlbnRpY2F0 aW9uLXRoYW5rcy10by1NaWthZWwtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDgwICswLDAg QEAKLUZyb20gNmIyNThkYjlhYmEzMDIxOGMyZDY1MWMyYzY1NmJkZmNlMzljNDhhOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mtb25lLm5ldD4K LURhdGU6IFRodSwgMTUgQXByIDIwMTAgMTc6MjA6MTYgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAw OS8xMF0gU3VwcG9ydCBTQVNMIEdTU0FQSSBhdXRoZW50aWNhdGlvbiAodGhhbmtzIHRvIE1pa2Fl bCBNYWdudXNzb24pKEVKQUItODMxKQotCi0tLS0KLSBzcmMvY3lyc2FzbC5lcmwgICAgICAgICAg IHwgICA3NiArKysrKysrKysrKysrKysrKy0tLS0KLSBzcmMvY3lyc2FzbC5ocmwgICAgICAgICAg IHwgICAxNSArKysrCi0gc3JjL2N5cnNhc2xfYW5vbnltb3VzLmVybCB8ICAgIDYgKy0KLSBzcmMv Y3lyc2FzbF9kaWdlc3QuZXJsICAgIHwgICAgNiArLQotIHNyYy9jeXJzYXNsX2dzc2FwaS5lcmwg ICAgfCAgMTY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwot IHNyYy9jeXJzYXNsX3BsYWluLmVybCAgICAgfCAgICA2ICstCi0gc3JjL2VqYWJiZXJkX2Mycy5l cmwgICAgICB8ICAgMTIgKysrLQotIHNyYy9lamFiYmVyZF9zb2NrZXQuZXJsICAgfCAgIDE5ICsr KysrCi0gOCBmaWxlcyBjaGFuZ2VkLCAyODMgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0p Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9jeXJzYXNsLmhybAotIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvY3lyc2FzbF9nc3NhcGkuZXJsCi0KLWRpZmYgLS1naXQgYS9zcmMvY3lyc2FzbC5lcmwg Yi9zcmMvY3lyc2FzbC5lcmwKLWluZGV4IDEyMWVmNmQuLmVhMzU4ZjAgMTAwNjQ0Ci0tLS0gYS9z cmMvY3lyc2FzbC5lcmwKLSsrKyBiL3NyYy9jeXJzYXNsLmVybAotQEAgLTMwLDE5ICszMCwzOSBA QAotIC1leHBvcnQoW3N0YXJ0LzAsCi0gCSByZWdpc3Rlcl9tZWNoYW5pc20vMywKLSAJIGxpc3Rt ZWNoLzEsCi0tCSBzZXJ2ZXJfbmV3LzcsCi0rCSBzZXJ2ZXJfbmV3LzgsCi0gCSBzZXJ2ZXJfc3Rh cnQvMywKLSAJIHNlcnZlcl9zdGVwLzJdKS4KLSAKLSstaW5jbHVkZSgiY3lyc2FzbC5ocmwiKS4K LSstaW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCi0rCi0rJSUgQHR5cGUgc2FzbG1lY2hhbmlzbSgp ID0ge3Nhc2xfbWVjaGFuaXNtLCBNZWNoYW5pc20sIE1vZHVsZSwgUmVxdWlyZV9QbGFpbn0KLSsl JSAgICAgTWVjaGFuaXNtID0gc3RyaW5nKCkKLSslJSAgICAgTW9kdWxlID0gYXRvbSgpCi0rJSUg ICAgIFJlcXVpcmVfUGxhaW4gPSBib29sKCkuCi0rJSUgUmVnaXN0cnkgZW50cnkgb2YgYSBzdXBw b3J0ZWQgU0FTTCBtZWNoYW5pc20uCi0rCi0gLXJlY29yZChzYXNsX21lY2hhbmlzbSwge21lY2hh bmlzbSwgbW9kdWxlLCByZXF1aXJlX3BsYWluX3Bhc3N3b3JkfSkuCi0tLXJlY29yZChzYXNsX3N0 YXRlLCB7c2VydmljZSwgbXluYW1lLCByZWFsbSwKLS0JCSAgICAgZ2V0X3Bhc3N3b3JkLCBjaGVj a19wYXNzd29yZCwgY2hlY2tfcGFzc3dvcmRfZGlnZXN0LAotLQkJICAgICBtZWNoX21vZCwgbWVj aF9zdGF0ZX0pLgotKwotKyUlIEB0eXBlIHNhc2xzdGF0ZSgpID0ge3Nhc2xfc3RhdGUsIFNlcnZp Y2UsIE15bmFtZSwgUmVhbG0sIEdldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBDaGVja1Bhc3N3 b3JkRGlnZXN0LCBNZWNoX01vZCwgTWVjaF9TdGF0ZX0KLSslJSAgICAgU2VydmljZSA9IHN0cmlu ZygpCi0rJSUgICAgIE15bmFtZSA9IHN0cmluZygpCi0rJSUgICAgIFJlYWxtID0gc3RyaW5nKCkK LSslJSAgICAgR2V0UGFzc3dvcmQgPSBmdW5jdGlvbigpCi0rJSUgICAgIENoZWNrUGFzc3dvcmQg PSBmdW5jdGlvbigpCi0rJSUgICAgIENoZWNrUGFzc3dvcmREaWdlc3QgPSBhbnkoKQotKyUlICAg ICBNZWNoX01vZCA9IGF0b20oKQotKyUlICAgICBNZWNoX1N0YXRlID0gdGVybSgpLgotKyUlIFN0 YXRlIG9mIHRoaXMgcHJvY2Vzcy4KLSsKLSstcmVjb3JkKHNhc2xfc3RhdGUsIHtzZXJ2aWNlLCBt eW5hbWUsCi0rCQkgICAgIG1lY2hfbW9kLCBtZWNoX3N0YXRlLCBwYXJhbXN9KS4KLSAKLSAtZXhw b3J0KFtiZWhhdmlvdXJfaW5mby8xXSkuCi0gCi0gYmVoYXZpb3VyX2luZm8oY2FsbGJhY2tzKSAt PgotLSAgICBbe21lY2hfbmV3LCA0fSwge21lY2hfc3RlcCwgMn1dOwotKyAgICBbe21lY2hfbmV3 LCAxfSwge21lY2hfc3RlcCwgMn1dOwotIGJlaGF2aW91cl9pbmZvKF9PdGhlcikgLT4KLSAgICAg dW5kZWZpbmVkLgotIAotQEAgLTUzLDggKzczLDMwIEBAIHN0YXJ0KCkgLT4KLSAgICAgY3lyc2Fz bF9wbGFpbjpzdGFydChbXSksCi0gICAgIGN5cnNhc2xfZGlnZXN0OnN0YXJ0KFtdKSwKLSAgICAg Y3lyc2FzbF9hbm9ueW1vdXM6c3RhcnQoW10pLAotKyAgICBtYXliZV90cnlfc3RhcnRfZ3NzYXBp KCksCi0gICAgIG9rLgotIAotK21heWJlX3RyeV9zdGFydF9nc3NhcGkoKSAtPgotKyAgICBjYXNl IG9zOmdldGVudigiS1JCNV9LVE5BTUUiKSBvZgotKyAgICAgICAgZmFsc2UgLT4KLSsJICAgIG9r OwotKyAgICAgICAgX1N0cmluZyAtPgotKwkgICAgdHJ5X3N0YXJ0X2dzc2FwaSgpCi0rICAgIGVu ZC4KLSsKLSt0cnlfc3RhcnRfZ3NzYXBpKCkgLT4KLSsgICAgY2FzZSBjb2RlOmxvYWRfZmlsZShl c2FzbCkgb2YKLSsJe21vZHVsZSwgX01vZHVsZX0gLT4KLSsJICAgIGN5cnNhc2xfZ3NzYXBpOnN0 YXJ0KFtdKTsKLSsJe2Vycm9yLCBXaGF0fSAtPgotKwkgICAgP0VSUk9SX01TRygiU3VwcG9ydCBm b3IgR1NTQVBJIG5vdCBzdGFydGVkIGJlY2F1c2UgZXNhc2wuYmVhbSB3YXMgbm90IGZvdW5kOiB+ cCIsIFtXaGF0XSkKLSsgICAgZW5kLgotKwotKyUlIEBzcGVjIChNZWNoYW5pc20sIE1vZHVsZSwg UmVxdWlyZV9QbGFpbikgLT4gdHJ1ZQotKyUlICAgICBNZWNoYW5pc20gPSBzdHJpbmcoKQotKyUl ICAgICBNb2R1bGUgPSBhdG9tKCkKLSslJSAgICAgUmVxdWlyZV9QbGFpbiA9IGJvb2woKQotKwot IHJlZ2lzdGVyX21lY2hhbmlzbShNZWNoYW5pc20sIE1vZHVsZSwgUmVxdWlyZVBsYWluUGFzc3dv cmQpIC0+Ci0gICAgIGV0czppbnNlcnQoc2FzbF9tZWNoYW5pc20sCi0gCSAgICAgICAjc2FzbF9t ZWNoYW5pc217bWVjaGFuaXNtID0gTWVjaGFuaXNtLAotQEAgLTExMywyNCArMTU1LDI4IEBAIGxp c3RtZWNoKEhvc3QpIC0+Ci0gICAgIGZpbHRlcl9hbm9ueW1vdXMoSG9zdCwgTWVjaHMpLgotIAot IHNlcnZlcl9uZXcoU2VydmljZSwgU2VydmVyRlFETiwgVXNlclJlYWxtLCBfU2VjRmxhZ3MsCi0t CSAgIEdldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBDaGVja1Bhc3N3b3JkRGlnZXN0KSAtPgot KwkgICBHZXRQYXNzd29yZCwgQ2hlY2tQYXNzd29yZCwgQ2hlY2tQYXNzd29yZERpZ2VzdCwgU29j a2V0KSAtPgotKyAgICBQYXJhbXMgPSAjc2FzbF9wYXJhbXN7Ci0rICAgICAgaG9zdCA9IFNlcnZl ckZRRE4sCi0rICAgICAgcmVhbG0gPSBVc2VyUmVhbG0sCi0rICAgICAgZ2V0X3Bhc3N3b3JkID0g R2V0UGFzc3dvcmQsCi0rICAgICAgY2hlY2tfcGFzc3dvcmQgPSBDaGVja1Bhc3N3b3JkLAotKyAg ICAgIGNoZWNrX3Bhc3N3b3JkX2RpZ2VzdD0gQ2hlY2tQYXNzd29yZERpZ2VzdCwKLSsgICAgICBz b2NrZXQgPSBTb2NrZXQKLSsgICAgIH0sCi0rCi0gICAgICNzYXNsX3N0YXRle3NlcnZpY2UgPSBT ZXJ2aWNlLAotIAkJbXluYW1lID0gU2VydmVyRlFETiwKLS0JCXJlYWxtID0gVXNlclJlYWxtLAot LQkJZ2V0X3Bhc3N3b3JkID0gR2V0UGFzc3dvcmQsCi0tCQljaGVja19wYXNzd29yZCA9IENoZWNr UGFzc3dvcmQsCi0tCQljaGVja19wYXNzd29yZF9kaWdlc3Q9IENoZWNrUGFzc3dvcmREaWdlc3R9 LgotKwkJcGFyYW1zID0gUGFyYW1zfS4KLSsKLSAKLSBzZXJ2ZXJfc3RhcnQoU3RhdGUsIE1lY2gs IENsaWVudEluKSAtPgotICAgICBjYXNlIGxpc3RzOm1lbWJlcihNZWNoLCBsaXN0bWVjaChTdGF0 ZSNzYXNsX3N0YXRlLm15bmFtZSkpIG9mCi0gCXRydWUgLT4KLSAJICAgIGNhc2UgZXRzOmxvb2t1 cChzYXNsX21lY2hhbmlzbSwgTWVjaCkgb2YKLSAJCVsjc2FzbF9tZWNoYW5pc217bW9kdWxlID0g TW9kdWxlfV0gLT4KLS0JCSAgICB7b2ssIE1lY2hTdGF0ZX0gPSBNb2R1bGU6bWVjaF9uZXcoCi0t CQkJCQlTdGF0ZSNzYXNsX3N0YXRlLm15bmFtZSwKLS0JCQkJCVN0YXRlI3Nhc2xfc3RhdGUuZ2V0 X3Bhc3N3b3JkLAotLQkJCQkJU3RhdGUjc2FzbF9zdGF0ZS5jaGVja19wYXNzd29yZCwKLS0JCQkJ CVN0YXRlI3Nhc2xfc3RhdGUuY2hlY2tfcGFzc3dvcmRfZGlnZXN0KSwKLSsJCSAgICB7b2ssIE1l Y2hTdGF0ZX0gPQotKwkJCU1vZHVsZTptZWNoX25ldyhTdGF0ZSNzYXNsX3N0YXRlLnBhcmFtcyks Ci0gCQkgICAgc2VydmVyX3N0ZXAoU3RhdGUjc2FzbF9zdGF0ZXttZWNoX21vZCA9IE1vZHVsZSwK LSAJCQkJCQkgbWVjaF9zdGF0ZSA9IE1lY2hTdGF0ZX0sCi0gCQkJCUNsaWVudEluKTsKLWRpZmYg LS1naXQgYS9zcmMvY3lyc2FzbC5ocmwgYi9zcmMvY3lyc2FzbC5ocmwKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iNGNjM2UzCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMv Y3lyc2FzbC5ocmwKLUBAIC0wLDAgKzEsMTUgQEAKLSslJSBAdHlwZSBzYXNscGFyYW1zKCkgPSB7 c2FzbF9wYXJhbXMsIEhvc3QsIFJlYWxtLCBHZXRQYXNzd29yZCwgQ2hlY2tQYXNzd29yZCwgQ2hl Y2tQYXNzd29yZERpZ2VzdH0KLSslJSAgICAgSG9zdCA9IHN0cmluZygpCi0rJSUgICAgIFJlYWxt ID0gc3RyaW5nKCkKLSslJSAgICAgR2V0UGFzc3dvcmQgPSBmdW5jdGlvbigpCi0rJSUgICAgIENo ZWNrUGFzc3dvcmQgPSBmdW5jdGlvbigpCi0rJSUgICAgIENoZWNrUGFzc3dvcmREaWdlc3QgPSBh bnkoKS4KLSslJSBQYXJhbWV0ZXJzIGZvciBTQVNMLgotKwotKy1yZWNvcmQoc2FzbF9wYXJhbXMs IHsKLSsJICBob3N0LAotKwkgIHJlYWxtLAotKwkgIGdldF9wYXNzd29yZCwKLSsJICBjaGVja19w YXNzd29yZCwKLSsJICBjaGVja19wYXNzd29yZF9kaWdlc3QsCi0rCSAgc29ja2V0fSkuCi1kaWZm IC0tZ2l0IGEvc3JjL2N5cnNhc2xfYW5vbnltb3VzLmVybCBiL3NyYy9jeXJzYXNsX2Fub255bW91 cy5lcmwKLWluZGV4IDJiM2JhMzYuLjI2NDdkMjggMTAwNjQ0Ci0tLS0gYS9zcmMvY3lyc2FzbF9h bm9ueW1vdXMuZXJsCi0rKysgYi9zcmMvY3lyc2FzbF9hbm9ueW1vdXMuZXJsCi1AQCAtMjcsNyAr MjcsOSBAQAotIAotIC1tb2R1bGUoY3lyc2FzbF9hbm9ueW1vdXMpLgotIAotLS1leHBvcnQoW3N0 YXJ0LzEsIHN0b3AvMCwgbWVjaF9uZXcvNCwgbWVjaF9zdGVwLzJdKS4KLSstZXhwb3J0KFtzdGFy dC8xLCBzdG9wLzAsIG1lY2hfbmV3LzEsIG1lY2hfc3RlcC8yXSkuCi0rCi0rLWluY2x1ZGUoImN5 cnNhc2wuaHJsIikuCi0gCi0gLWJlaGF2aW91cihjeXJzYXNsKS4KLSAKLUBAIC00MCw3ICs0Miw3 IEBAIHN0YXJ0KF9PcHRzKSAtPgotIHN0b3AoKSAtPgotICAgICBvay4KLSAKLS1tZWNoX25ldyhI b3N0LCBfR2V0UGFzc3dvcmQsIF9DaGVja1Bhc3N3b3JkLCBfQ2hlY2tQYXNzd29yZERpZ2VzdCkg LT4KLSttZWNoX25ldygjc2FzbF9wYXJhbXN7aG9zdD1Ib3N0fSkgLT4KLSAgICAge29rLCAjc3Rh dGV7c2VydmVyID0gSG9zdH19LgotIAotIG1lY2hfc3RlcChTdGF0ZSwgX0NsaWVudEluKSAtPgot ZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNsX2RpZ2VzdC5lcmwgYi9zcmMvY3lyc2FzbF9kaWdlc3Qu ZXJsCi1pbmRleCAyYTdjZTJhLi45NjI4MTM3IDEwMDY0NAotLS0tIGEvc3JjL2N5cnNhc2xfZGln ZXN0LmVybAotKysrIGIvc3JjL2N5cnNhc2xfZGlnZXN0LmVybAotQEAgLTI5LDEwICsyOSwxMSBA QAotIAotIC1leHBvcnQoW3N0YXJ0LzEsCi0gCSBzdG9wLzAsCi0tCSBtZWNoX25ldy80LAotKwkg bWVjaF9uZXcvMSwKLSAJIG1lY2hfc3RlcC8yXSkuCi0gCi0gLWluY2x1ZGUoImVqYWJiZXJkLmhy bCIpLgotKy1pbmNsdWRlKCJjeXJzYXNsLmhybCIpLgotIAotIC1iZWhhdmlvdXIoY3lyc2FzbCku Ci0gCi1AQCAtNDUsNyArNDYsOCBAQCBzdGFydChfT3B0cykgLT4KLSBzdG9wKCkgLT4KLSAgICAg b2suCi0gCi0tbWVjaF9uZXcoSG9zdCwgR2V0UGFzc3dvcmQsIF9DaGVja1Bhc3N3b3JkLCBDaGVj a1Bhc3N3b3JkRGlnZXN0KSAtPgotK21lY2hfbmV3KCNzYXNsX3BhcmFtc3tob3N0PUhvc3QsIGdl dF9wYXNzd29yZD1HZXRQYXNzd29yZCwKLSsJCSAgICAgIGNoZWNrX3Bhc3N3b3JkX2RpZ2VzdD1D aGVja1Bhc3N3b3JkRGlnZXN0fSkgLT4KLSAgICAge29rLCAjc3RhdGV7c3RlcCA9IDEsCi0gCQlu b25jZSA9IHJhbmRvbXM6Z2V0X3N0cmluZygpLAotIAkJaG9zdCA9IEhvc3QsCi1kaWZmIC0tZ2l0 IGEvc3JjL2N5cnNhc2xfZ3NzYXBpLmVybCBiL3NyYy9jeXJzYXNsX2dzc2FwaS5lcmwKLW5ldyBm aWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4xMWQ5OTU1Ci0tLS0gL2Rldi9udWxsCi0r KysgYi9zcmMvY3lyc2FzbF9nc3NhcGkuZXJsCi1AQCAtMCwwICsxLDE2NiBAQAotKyUlJS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSslJSUgRmlsZSAgICA6IGN5cnNhc2xfZ3NzYXBpLmVybAotKyUlJSBBdXRob3Ig IDogTWlrYWVsIE1hZ251c3NvbiA8bWlrbWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgotKyUlJSBQ dXJwb3NlIDogR1NTQVBJIFNBU0wgbWVjaGFuaXNtCi0rJSUlIENyZWF0ZWQgOiAxIEp1bmUgMjAw NyBieSBNaWthZWwgTWFnbnVzc29uIDxtaWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci0rJSUl IElkICAgICAgOiAkSWQ6ICQKLSslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJSUlCi0rJSUlIENvcHlyaWdo dCAoQykgMjAwNy0yMDA5ICBNaWthZWwgTWFnbnVzc29uIDxtaWttYUB1c2Vycy5zb3VyY2Vmb3Jn ZS5uZXQ+Ci0rJSUlCi0rJSUlIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uCi0rJSUlIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi0rJSUlIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQKLSslJSUgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCi0r JSUlIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9v ciBzZWxsIGNvcGllcwotKyUlJSBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotKyUlJSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKyUlJQotKyUlJSBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQotKyUlJSBp bmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KLSslJSUKLSslJSUgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhP VVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0rJSUlIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVE SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotKyUlJSBNRVJDSEFOVEFC SUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAotKyUlJSBOT05JTkZS SU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE RVJTCi0rJSUlIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTgotKyUlJSBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotKyUlJSBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCi0rJSUlIFNP RlRXQVJFLgotKyUlJQotKwotKyUlJQotKyUlJSBjb25maWd1cmF0aW9uIG9wdGlvbnM6Ci0rJSUl IHtzYXNsX3JlYWxtLCAiPEtlcmJlcm9zIHJlYWxtPiJ9LgotKyUlJQotKyUlJSBlbnZpcm9ubWVu dCB2YXJpYWJsZXM6Ci0rJSUlIEtSQjVfS1ROQU1FCi0rJSUlCi0rCi0rLW1vZHVsZShjeXJzYXNs X2dzc2FwaSkuCi0rLWF1dGhvcignbWlrbWFAdXNlcnMuc291cmNlZm9yZ2UubmV0JykuCi0rLXZz bignJFJldmlzaW9uOiAkICcpLgotKwotKy1leHBvcnQoW3N0YXJ0LzEsCi0rCSBzdG9wLzAsCi0r CSBtZWNoX25ldy8xLAotKwkgbWVjaF9zdGVwLzJdKS4KLSsKLSstaW5jbHVkZSgiZWphYmJlcmQu aHJsIikuCi0rLWluY2x1ZGUoImN5cnNhc2wuaHJsIikuCi0rCi0rLWJlaGF2aW91cihjeXJzYXNs KS4KLSsKLSstZGVmaW5lKFNFUlZFUiwgP01PRFVMRSkuCi0rLWRlZmluZShTRVJWSUNFLCAieG1w cCIpLgotKwotKy1yZWNvcmQoc3RhdGUsIHtzYXNsLAotKwkJbmVlZHNtb3JlPXRydWUsCi0rCQlz dGVwPTAsCi0rCQlob3N0LAotKwkJcmVhbG0sCi0rCQlhdXRoaWQsCi0rCQlhdXRoemlkLAotKwkJ YXV0aHJlYWxtLAotKwkJZXJyb3J9KS4KLSsKLStzdGFydChfT3B0cykgLT4KLSsgICAgQ2hpbGRT cGVjID0KLSsJez9TRVJWRVIsCi0rCSB7ZXNhc2wsIHN0YXJ0X2xpbmssIFt7bG9jYWwsID9TRVJW RVJ9XX0sCi0rCSB0cmFuc2llbnQsCi0rCSAxMDAwLAotKwkgd29ya2VyLAotKwkgW2VzYXNsXX0s Ci0rCi0rICAgIGNhc2Ugc3VwZXJ2aXNvcjpzdGFydF9jaGlsZChlamFiYmVyZF9zdXAsIENoaWxk U3BlYykgb2YKLSsJe29rLCBfUGlkfSAtPgotKwkgICAgY3lyc2FzbDpyZWdpc3Rlcl9tZWNoYW5p c20oIkdTU0FQSSIsID9NT0RVTEUsIGZhbHNlKTsKLSsJe2Vycm9yLCBFcnJvcn0gPSBFIC0+Ci0r CSAgICA/RVJST1JfTVNHKCJlc2FzbCBmYWlsZWQ6IH5wIiwgW0Vycm9yXSksCi0rCSAgICBFCi0r ICAgIGVuZC4KLSsKLSsKLStzdG9wKCkgLT4KLSsgICAgY2F0Y2ggZXNhc2w6c3RvcCg/U0VSVkVS KSwKLSsgICAgc3VwZXJ2aXNvcjp0ZXJtaW5hdGVfY2hpbGQoZWphYmJlcmRfc3VwLCA/U0VSVkVS KSwKLSsgICAgc3VwZXJ2aXNvcjpkZWxldGVfY2hpbGQoZWphYmJlcmRfc3VwLCA/U0VSVkVSKS4K LSsKLSttZWNoX25ldygjc2FzbF9wYXJhbXN7aG9zdD1Ib3N0LCByZWFsbT1SZWFsbSwgc29ja2V0 PVNvY2tldH0pIC0+Ci0rICAgIGNhc2UgZWphYmJlcmRfc29ja2V0OmdldGhvc3RuYW1lKFNvY2tl dCkgb2YKLSsJe29rLCBGUUROfSAtPgotKwkgICAgP0RFQlVHKCJtZWNoX25ldyB+cCB+cCB+cH5u IiwgW0hvc3QsIFJlYWxtLCBGUUROXSksCi0rCSAgICBjYXNlIGVzYXNsOnNlcnZlcl9zdGFydCg/ U0VSVkVSLCAiR1NTQVBJIiwgP1NFUlZJQ0UsIEZRRE4pIG9mCi0rCQl7b2ssIFNhc2x9IC0+Ci0r CQkgICAge29rLCAjc3RhdGV7c2FzbD1TYXNsLGhvc3Q9SG9zdCxyZWFsbT1SZWFsbX19OwotKwkJ e2Vycm9yLCB7Z3Nhc2xfZXJyb3IsIEVycm9yfX0gLT4KLSsJCSAgICB7b2ssIFN0cn0gPSBlc2Fz bDpzdHJfZXJyb3IoP1NFUlZFUiwgRXJyb3IpLAotKwkJICAgID9ERUJVRygiZXNhc2wgZXJyb3I6 IH5wIiwgW1N0cl0pLAotKwkJICAgIHtvaywgI3N0YXRle25lZWRzbW9yZT1lcnJvcixlcnJvcj0i aW50ZXJuYWwtc2VydmVyLWVycm9yIn19OwotKwkJe2Vycm9yLCBFcnJvcn0gLT4KLSsJCSAgICA/ REVCVUcoImVzYXNsIGVycm9yOiB+cCIsIFtFcnJvcl0pLAotKwkJICAgIHtvaywgI3N0YXRle25l ZWRzbW9yZT1lcnJvcixlcnJvcj0iaW50ZXJuYWwtc2VydmVyLWVycm9yIn19Ci0rCSAgICBlbmQ7 Ci0rCXtlcnJvciwgRXJyb3J9IC0+Ci0rCSAgICA/REVCVUcoImdldGhvc3RuYW1lIGVycm9yOiB+ cCIsIFtFcnJvcl0pLAotKwkgICAge29rLCAjc3RhdGV7bmVlZHNtb3JlPWVycm9yLGVycm9yPSJp bnRlcm5hbC1zZXJ2ZXItZXJyb3IifX0KLSsgICAgZW5kLgotKwotK21lY2hfc3RlcChTdGF0ZSwg Q2xpZW50SW4pIHdoZW4gaXNfbGlzdChDbGllbnRJbikgLT4KLSsgICAgY2F0Y2ggZG9fc3RlcChT dGF0ZSwgQ2xpZW50SW4pLgotKwotK2RvX3N0ZXAoI3N0YXRle25lZWRzbW9yZT1lcnJvcixlcnJv cj1FcnJvcn09X1N0YXRlLCBfKSAtPgotKyAgICB7ZXJyb3IsIEVycm9yfTsKLStkb19zdGVwKCNz dGF0ZXtuZWVkc21vcmU9ZmFsc2V9PVN0YXRlLCBfKSAtPgotKyAgICBjaGVja191c2VyKFN0YXRl KTsKLStkb19zdGVwKCNzdGF0ZXtuZWVkc21vcmU9dHJ1ZSxzYXNsPVNhc2wsc3RlcD1TdGVwfT1T dGF0ZSwgQ2xpZW50SW4pIC0+Ci0rICAgID9ERUJVRygibWVjaF9zdGVwfm4iLCBbXSksCi0rICAg IGNhc2UgZXNhc2w6c3RlcChTYXNsLCBsaXN0X3RvX2JpbmFyeShDbGllbnRJbikpIG9mCi0rCXtv aywgUnNwQXV0aH0gLT4KLSsJICAgID9ERUJVRygib2t+biIsIFtdKSwKLSsJICAgIHtvaywgRGlz cGxheV9uYW1lfSA9IGVzYXNsOnByb3BlcnR5X2dldChTYXNsLCBnc3NhcGlfZGlzcGxheV9uYW1l KSwKLSsJICAgIHtvaywgQXV0aHppZH0gPSBlc2FzbDpwcm9wZXJ0eV9nZXQoU2FzbCwgYXV0aHpp ZCksCi0rCSAgICB7QXV0aGlkLCBbJEAgfCBBdXRoX3JlYWxtXX0gPQotKwkJbGlzdHM6c3BsaXR3 aXRoKGZ1bihFKS0+RSA9Lz0gJEAgZW5kLCBEaXNwbGF5X25hbWUpLAotKwkgICAgU3RhdGUxID0g U3RhdGUjc3RhdGV7YXV0aGlkPUF1dGhpZCwKLSsJCQkJIGF1dGh6aWQ9QXV0aHppZCwKLSsJCQkJ IGF1dGhyZWFsbT1BdXRoX3JlYWxtfSwKLSsJICAgIGhhbmRsZV9zdGVwX29rKFN0YXRlMSwgYmlu YXJ5X3RvX2xpc3QoUnNwQXV0aCkpOwotKwl7bmVlZHNtb3JlLCBSc3BBdXRofSAtPgotKwkgICAg P0RFQlVHKCJuZWVkc21vcmV+biIsIFtdKSwKLSsJICAgIGlmIChTdGVwID4gMCkgYW5kIChDbGll bnRJbiA9Oj0gW10pIGFuZCAoUnNwQXV0aCA9Oj0gPDw+PikgLT4KLSsJCSAgICB7ZXJyb3IsICJu b3QtYXV0aG9yaXplZCJ9OwotKwkJdHJ1ZSAtPgotKwkJICAgIHtjb250aW51ZSwgYmluYXJ5X3Rv X2xpc3QoUnNwQXV0aCksCi0rCQkgICAgIFN0YXRlI3N0YXRle3N0ZXA9U3RlcCsxfX0KLSsJICAg IGVuZDsKLSsJe2Vycm9yLCBffSAtPgotKwkgICAge2Vycm9yLCAibm90LWF1dGhvcml6ZWQifQot KyAgICBlbmQuCi0rCi0raGFuZGxlX3N0ZXBfb2soU3RhdGUsIFtdKSAtPgotKyAgICBjaGVja191 c2VyKFN0YXRlKTsKLStoYW5kbGVfc3RlcF9vaygjc3RhdGV7c3RlcD1TdGVwfT1TdGF0ZSwgUnNw QXV0aCkgLT4KLSsgICAgP0RFQlVHKCJjb250aW51ZX5uIiwgW10pLAotKyAgICB7Y29udGludWUs IFJzcEF1dGgsIFN0YXRlI3N0YXRle25lZWRzbW9yZT1mYWxzZSxzdGVwPVN0ZXArMX19LgotKwot K2NoZWNrX3VzZXIoI3N0YXRle2F1dGhpZD1BdXRoaWQsYXV0aHppZD1BdXRoemlkLAotKwkJICBh dXRocmVhbG09QXV0aF9yZWFsbSxob3N0PUhvc3QscmVhbG09UmVhbG19KSAtPgotKyAgICBpZiBS ZWFsbSA9Lz0gQXV0aF9yZWFsbSAtPgotKwkgICAgP0RFQlVHKCJiYWQgcmVhbG0gfnAgKGV4cGVj dGVkIH5wKX5uIixbQXV0aF9yZWFsbSwgUmVhbG1dKSwKLSsJICAgIHRocm93KHtlcnJvciwgIm5v dC1hdXRob3JpemVkIn0pOwotKyAgICAgICB0cnVlIC0+Ci0rCSAgICBvawotKyAgICBlbmQsCi0r Ci0rICAgIGNhc2UgZWphYmJlcmRfYXV0aDppc191c2VyX2V4aXN0cyhBdXRoaWQsIEhvc3QpIG9m Ci0rCWZhbHNlIC0+Ci0rCSAgICA/REVCVUcoImJhZCB1c2VyIH5wfm4iLFtBdXRoaWRdKSwKLSsJ ICAgIHRocm93KHtlcnJvciwgIm5vdC1hdXRob3JpemVkIn0pOwotKwl0cnVlIC0+Ci0rCSAgICBv awotKyAgICBlbmQsCi0rCi0rICAgID9ERUJVRygiR1NTQVBJIGF1dGhlbnRpY2F0ZWQgfnAgfnB+ biIsIFtBdXRoaWQsIEF1dGh6aWRdKSwKLSsgICAge29rLCBbe3VzZXJuYW1lLCBBdXRoaWR9LCB7 YXV0aHppZCwgQXV0aHppZH1dfS4KLWRpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9wbGFpbi5lcmwg Yi9zcmMvY3lyc2FzbF9wbGFpbi5lcmwKLWluZGV4IDEyOWZiOGIuLjQ3OTlhNDEgMTAwNjQ0Ci0t LS0gYS9zcmMvY3lyc2FzbF9wbGFpbi5lcmwKLSsrKyBiL3NyYy9jeXJzYXNsX3BsYWluLmVybAot QEAgLTI3LDcgKzI3LDkgQEAKLSAtbW9kdWxlKGN5cnNhc2xfcGxhaW4pLgotIC1hdXRob3IoJ2Fs ZXhleUBwcm9jZXNzLW9uZS5uZXQnKS4KLSAKLS0tZXhwb3J0KFtzdGFydC8xLCBzdG9wLzAsIG1l Y2hfbmV3LzQsIG1lY2hfc3RlcC8yLCBwYXJzZS8xXSkuCi0rLWV4cG9ydChbc3RhcnQvMSwgc3Rv cC8wLCBtZWNoX25ldy8xLCBtZWNoX3N0ZXAvMiwgcGFyc2UvMV0pLgotKwotKy1pbmNsdWRlKCJj eXJzYXNsLmhybCIpLgotIAotIC1iZWhhdmlvdXIoY3lyc2FzbCkuCi0gCi1AQCAtNDAsNyArNDIs NyBAQCBzdGFydChfT3B0cykgLT4KLSBzdG9wKCkgLT4KLSAgICAgb2suCi0gCi0tbWVjaF9uZXco X0hvc3QsIF9HZXRQYXNzd29yZCwgQ2hlY2tQYXNzd29yZCwgX0NoZWNrUGFzc3dvcmREaWdlc3Qp IC0+Ci0rbWVjaF9uZXcoI3Nhc2xfcGFyYW1ze2NoZWNrX3Bhc3N3b3JkID0gQ2hlY2tQYXNzd29y ZH0pIC0+Ci0gICAgIHtvaywgI3N0YXRle2NoZWNrX3Bhc3N3b3JkID0gQ2hlY2tQYXNzd29yZH19 LgotIAotIG1lY2hfc3RlcChTdGF0ZSwgQ2xpZW50SW4pIC0+Ci1kaWZmIC0tZ2l0IGEvc3JjL2Vq YWJiZXJkX2Mycy5lcmwgYi9zcmMvZWphYmJlcmRfYzJzLmVybAotaW5kZXggZDRiNjgwOS4uM2Uw YTQ5YyAxMDA2NDQKLS0tLSBhL3NyYy9lamFiYmVyZF9jMnMuZXJsCi0rKysgYi9zcmMvZWphYmJl cmRfYzJzLmVybAotQEAgLTI1NCw5ICsyNTQsMTYgQEAgd2FpdF9mb3Jfc3RyZWFtKHt4bWxzdHJl YW1zdGFydCwgX05hbWUsIEF0dHJzfSwgU3RhdGVEYXRhKSAtPgotIAkJCSAgICBzZW5kX2hlYWRl cihTdGF0ZURhdGEsIFNlcnZlciwgIjEuMCIsIERlZmF1bHRMYW5nKSwKLSAJCQkgICAgY2FzZSBT dGF0ZURhdGEjc3RhdGUuYXV0aGVudGljYXRlZCBvZgotIAkJCQlmYWxzZSAtPgotKwkJCQkgICAg UmVhbG0gPQotKwkJCQkJY2FzZSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7c2Fz bF9yZWFsbSwgU2VydmVyfSkgb2YKLSsJCQkJCSAgICB1bmRlZmluZWQgLT4KLSsJCQkJCQkiIjsK LSsJCQkJCSAgICBSZWFsbTAgLT4KLSsJCQkJCQlSZWFsbTAKLSsJCQkJCWVuZCwKLSAJCQkJICAg IFNBU0xTdGF0ZSA9Ci0gCQkJCQljeXJzYXNsOnNlcnZlcl9uZXcoCi0tCQkJCQkgICJqYWJiZXIi LCBTZXJ2ZXIsICIiLCBbXSwKLSsJCQkJCSAgImphYmJlciIsIFNlcnZlciwgUmVhbG0sIFtdLAot IAkJCQkJICBmdW4oVSkgLT4KLSAJCQkJCQkgIGVqYWJiZXJkX2F1dGg6Z2V0X3Bhc3N3b3JkX3dp dGhfYXV0aG1vZHVsZSgKLSAJCQkJCQkgICAgVSwgU2VydmVyKQotQEAgLTI2OCw3ICsyNzUsOCBA QCB3YWl0X2Zvcl9zdHJlYW0oe3htbHN0cmVhbXN0YXJ0LCBfTmFtZSwgQXR0cnN9LCBTdGF0ZURh dGEpIC0+Ci0gCQkJCQkgIGZ1bihVLCBQLCBELCBERykgLT4KLSAJCQkJCQkgIGVqYWJiZXJkX2F1 dGg6Y2hlY2tfcGFzc3dvcmRfd2l0aF9hdXRobW9kdWxlKAotIAkJCQkJCSAgICBVLCBTZXJ2ZXIs IFAsIEQsIERHKQotLQkJCQkJICBlbmQpLAotKwkJCQkJICBlbmQsCi0rCQkJCQkgIFN0YXRlRGF0 YSNzdGF0ZS5zb2NrZXQpLAotIAkJCQkgICAgTWVjaHMgPSBsaXN0czptYXAoCi0gCQkJCQkgICAg ICBmdW4oUykgLT4KLSAJCQkJCQkgICAgICB7eG1sZWxlbWVudCwgIm1lY2hhbmlzbSIsIFtdLAot ZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZF9zb2NrZXQuZXJsIGIvc3JjL2VqYWJiZXJkX3NvY2tl dC5lcmwKLWluZGV4IDI1ZmY2NGMuLmU4YzVmY2EgMTAwNjQ0Ci0tLS0gYS9zcmMvZWphYmJlcmRf c29ja2V0LmVybAotKysrIGIvc3JjL2VqYWJiZXJkX3NvY2tldC5lcmwKLUBAIC00NCw5ICs0NCwx MSBAQAotIAkgZ2V0X3BlZXJfY2VydGlmaWNhdGUvMSwKLSAJIGdldF92ZXJpZnlfcmVzdWx0LzEs Ci0gCSBjbG9zZS8xLAotKwkgZ2V0aG9zdG5hbWUvMSwKLSAJIHNvY2tuYW1lLzEsIHBlZXJuYW1l LzFdKS4KLSAKLSAtaW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCi0rLWluY2x1ZGVfbGliKCJrZXJu ZWwvaW5jbHVkZS9pbmV0LmhybCIpLgotIAotIC1yZWNvcmQoc29ja2V0X3N0YXRlLCB7c29ja21v ZCwgc29ja2V0LCByZWNlaXZlcn0pLgotIAotQEAgLTIyMiw2ICsyMjQsMjMgQEAgcGVlcm5hbWUo I3NvY2tldF9zdGF0ZXtzb2NrbW9kID0gU29ja01vZCwgc29ja2V0ID0gU29ja2V0fSkgLT4KLSAJ ICAgIFNvY2tNb2Q6cGVlcm5hbWUoU29ja2V0KQotICAgICBlbmQuCi0gCi0rZ2V0aG9zdG5hbWUo I3NvY2tldF9zdGF0ZXtzb2NrZXQgPSBTb2NrZXR9ID0gU3RhdGUpIC0+Ci0rICAgID9ERUJVRygi Z2V0aG9zdG5hbWUgfnB+biIsIFtTb2NrZXRdKSwKLSsKLSsgICAgY2FzZSBzb2NrbmFtZShTdGF0 ZSkgb2YKLSsJe29rLCB7QWRkciwgX1BvcnR9fSAtPgotKwkgICAgY2FzZSBpbmV0OmdldGhvc3Ri eWFkZHIoQWRkcikgb2YKLSsJCXtvaywgSG9zdEVudH0gd2hlbiBpc19yZWNvcmQoSG9zdEVudCwg aG9zdGVudCkgLT4KLSsJCSAgICA/REVCVUcoImdldGhvc3RuYW1lIHJlc3VsdCB+cH5uIiwKLSsJ CQkgICBbSG9zdEVudCNob3N0ZW50LmhfbmFtZV0pLAotKwkJICAgIHtvaywgSG9zdEVudCNob3N0 ZW50LmhfbmFtZX07Ci0rCQl7ZXJyb3IsIF9SZWFzb259ID0gRSAtPgotKwkJICAgIEUKLSsJICAg IGVuZDsKLSsJe2Vycm9yLCBfUmVhc29ufSA9IEUgLT4KLSsJICAgIEUKLSsgICAgZW5kLgotKwot ICUlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLSAlJSBJbnRlcm5hbCBmdW5jdGlvbnMKLSAlJT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSAKLTEuNy4yLjEKLQoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMTAtTG9hZGluZy1BU04uMS1k cml2ZXItZXhwbGljaXRseS10by1hdm9pZC1yYWNlcy1pbi1MRC5wYXRjaCBiL2VqYWJiZXJkLTAw MTAtTG9hZGluZy1BU04uMS1kcml2ZXItZXhwbGljaXRseS10by1hdm9pZC1yYWNlcy1pbi1MRC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk4OTY5MC4uMDAwMDAwMAotLS0g YS9lamFiYmVyZC0wMDEwLUxvYWRpbmctQVNOLjEtZHJpdmVyLWV4cGxpY2l0bHktdG8tYXZvaWQt cmFjZXMtaW4tTEQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1Gcm9tIGM5 ZmYzNzAyNzgwNWQxZDcyNDQ2YjViY2JjMWE2MGRhMGYyYWFhZTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBFdmdlbml5IEtocmFtdHNvdiA8ZWtocmFtdHNvdkBwcm9jZXNzLW9uZS5u ZXQ+Ci1EYXRlOiBXZWQsIDQgQXVnIDIwMTAgMTk6MjM6NTIgKzEwMDAKLVN1YmplY3Q6IFtQQVRD SCAwMS8xMV0gTG9hZGluZyBBU04uMSBkcml2ZXIgZXhwbGljaXRseSB0byBhdm9pZCByYWNlcyBp biBMREFQIChFSkFCLTEyODQpCi0KLS0tLQotIHNyYy9lamFiYmVyZF9hcHAuZXJsIHwgICAgMiAr KwotIDEgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJkX2FwcC5lcmwgYi9zcmMvZWphYmJlcmRfYXBwLmVybAot aW5kZXggOTdhZTdmZS4uMjIyNzkwNCAxMDA2NDQKLS0tLSBhL3NyYy9lamFiYmVyZF9hcHAuZXJs Ci0rKysgYi9zcmMvZWphYmJlcmRfYXBwLmVybAotQEAgLTU3LDYgKzU3LDggQEAgc3RhcnQobm9y bWFsLCBfQXJncykgLT4KLSAgICAgZWphYmJlcmRfY29uZmlnOnN0YXJ0KCksCi0gICAgIGVqYWJi ZXJkX2NoZWNrOmNvbmZpZygpLAotICAgICBjb25uZWN0X25vZGVzKCksCi0rICAgICUlIExvYWRp bmcgQVNOLjEgZHJpdmVyIGV4cGxpY2l0bHkgdG8gYXZvaWQgcmFjZXMgaW4gTERBUAotKyAgICBj YXRjaCBhc24xcnQ6bG9hZF9kcml2ZXIoKSwKLSAgICAgU3VwID0gZWphYmJlcmRfc3VwOnN0YXJ0 X2xpbmsoKSwKLSAgICAgZWphYmJlcmRfcmRibXM6c3RhcnQoKSwKLSAgICAgZWphYmJlcmRfYXV0 aDpzdGFydCgpLAotLS0gCi0xLjcuMi4xCi0KCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDEwLWxh c3QtbWludXRlLWZpeC1jb3JyZWN0LXZlcnNpb24taW4tY29uZmlndXJlLnBhdGNoIGIvZWphYmJl cmQtMDAxMC1sYXN0LW1pbnV0ZS1maXgtY29ycmVjdC12ZXJzaW9uLWluLWNvbmZpZ3VyZS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWE5ZDJiCi0tLSAvZGV2L251 bGwKKysrIGIvZWphYmJlcmQtMDAxMC1sYXN0LW1pbnV0ZS1maXgtY29ycmVjdC12ZXJzaW9uLWlu LWNvbmZpZ3VyZS5wYXRjaApAQCAtMCwwICsxLDI4IEBACitGcm9tIDI0NGM1YWU0YmZhYjY0MjIw YTFkN2ZmNDkyYmRiNjdkYzY2MTJmNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQ ZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxNCBEZWMgMjAx MCAxODo1MjowNCArMDMwMAorU3ViamVjdDogW1BBVENIIDEwLzEwXSBsYXN0IG1pbnV0ZSBmaXgg LSBjb3JyZWN0IHZlcnNpb24gaW4gY29uZmlndXJlCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExl bWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CistLS0KKyBzcmMvY29uZmlndXJlIHwgICAgNCAr Ky0tCisgMSBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9zcmMvY29uZmlndXJlIGIvc3JjL2NvbmZpZ3VyZQoraW5kZXggZDUxNWFi Yy4uYWIwYmVjYSAxMDA3NTUKKy0tLSBhL3NyYy9jb25maWd1cmUKKysrKyBiL3NyYy9jb25maWd1 cmUKK0BAIC01NTIsOCArNTUyLDggQEAgTUFLRUZMQUdTPQorICMgSWRlbnRpdHkgb2YgdGhpcyBw YWNrYWdlLgorIFBBQ0tBR0VfTkFNRT0nZWphYmJlcmQnCisgUEFDS0FHRV9UQVJOQU1FPSdlamFi YmVyZCcKKy1QQUNLQUdFX1ZFUlNJT049JzIuMS54JworLVBBQ0tBR0VfU1RSSU5HPSdlamFiYmVy ZCAyLjEueCcKKytQQUNLQUdFX1ZFUlNJT049JzIuMS42JworK1BBQ0tBR0VfU1RSSU5HPSdlamFi YmVyZCAyLjEuNicKKyBQQUNLQUdFX0JVR1JFUE9SVD0nZWphYmJlcmRAcHJvY2Vzcy1vbmUubmV0 JworIFBBQ0tBR0VfVVJMPScnCisgCistLSAKKzEuNy4zLjMKKwoKZGlmZiAtLWdpdCBhL2VqYWJi ZXJkLTAwMTEtTWFrZS14bWwuYy1jb3JyZWN0bHktY29tcGlsZXMtb24tUjE0QS1FSkFCLTEyODgu cGF0Y2ggYi9lamFiYmVyZC0wMDExLU1ha2UteG1sLmMtY29ycmVjdGx5LWNvbXBpbGVzLW9uLVIx NEEtRUpBQi0xMjg4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTgxMDE2 Li4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLTAwMTEtTWFrZS14bWwuYy1jb3JyZWN0bHktY29tcGls ZXMtb24tUjE0QS1FSkFCLTEyODgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBA QAotRnJvbSAxZWEwOWIwOWEyMjdkMWU2MzBkOWRkZTNkYjY4ZDQ2YjBjYjQ0ZjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRXZnZW5peSBLaHJhbXRzb3YgPGVraHJhbXRzb3ZAcHJv Y2Vzcy1vbmUubmV0PgotRGF0ZTogU2F0LCA3IEF1ZyAyMDEwIDIxOjA2OjUwICsxMDAwCi1TdWJq ZWN0OiBbUEFUQ0ggMDQvMTFdIE1ha2UgeG1sLmMgY29ycmVjdGx5IGNvbXBpbGVzIG9uIFIxNEEg KEVKQUItMTI4OCkKLQotLS0tCi0gc3JjL01ha2VmaWxlLmluIHwgICAgMSArCi0gc3JjL3htbC5j ICAgICAgIHwgICA2MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDE2IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmluIGIvc3JjL01ha2VmaWxlLmlu Ci1pbmRleCBjZjYwMGMzLi43ZDIyNWYzIDEwMDY0NAotLS0tIGEvc3JjL01ha2VmaWxlLmluCi0r KysgYi9zcmMvTWFrZWZpbGUuaW4KLUBAIC0zMSw2ICszMSw3IEBAIGVsc2UKLSBlbmRpZgotIAot IEVGTEFHUyArPSBARVJMQU5HX1NTTFZFUkAgLXBhIC4KLStFUkxBTkdfQ0ZMQUdTICs9IEBFUkxB TkdfU1NMVkVSQAotIAotICMgbWFrZSBkZWJ1Zz10cnVlIHRvIGNvbXBpbGUgRXJsYW5nIG1vZHVs ZSB3aXRoIGRlYnVnIGluZm9ybWF0aW9ucy4KLSBpZmRlZiBkZWJ1ZwotZGlmZiAtLWdpdCBhL3Ny Yy94bWwuYyBiL3NyYy94bWwuYwotaW5kZXggZDFiMmI3Zi4uZTM2M2ZlZCAxMDA2NDQKLS0tLSBh L3NyYy94bWwuYwotKysrIGIvc3JjL3htbC5jCi1AQCAtMiw2ICsyLDIzIEBACi0gI2luY2x1ZGUg PHN0cmluZy5oPgotICNpbmNsdWRlIDxzdGRpby5oPgotIAotKyNpZmRlZiBTU0w0MAotKyNkZWZp bmUgRU5JRl9BTExPQyhTSVpFKSBlbmlmX2FsbG9jKFNJWkUpCi0rI2RlZmluZSBFTklGX0ZSRUUo UFRSKSBlbmlmX2ZyZWUoUFRSKQotKyNkZWZpbmUgRU5JRl9SRUFMTE9DKFBUUiwgU0laRSkgZW5p Zl9yZWFsbG9jKFBUUiwgU0laRSkKLSsjZGVmaW5lIEVOSUZfQUxMT0NfQklOQVJZKFNJWkUsIEJJ TikgZW5pZl9hbGxvY19iaW5hcnkoU0laRSwgQklOKQotKyNkZWZpbmUgRU5JRl9DT01QQVJFKFRF Uk0xLCBURVJNMikgZW5pZl9jb21wYXJlKFRFUk0xLCBURVJNMikKLSsjZWxzZQotKyNkZWZpbmUg RU5JRl9BTExPQyhTSVpFKSBlbmlmX2FsbG9jKGVudiwgU0laRSkKLSsjZGVmaW5lIEVOSUZfRlJF RShQVFIpIGVuaWZfZnJlZShlbnYsIFBUUikKLSsjZGVmaW5lIEVOSUZfUkVBTExPQyhQVFIsIFNJ WkUpIGVuaWZfcmVhbGxvYyhlbnYsIFBUUiwgU0laRSkKLSsjZGVmaW5lIEVOSUZfQUxMT0NfQklO QVJZKFNJWkUsIEJJTikgZW5pZl9hbGxvY19iaW5hcnkoZW52LCBTSVpFLCBCSU4pCi0rI2RlZmlu ZSBFTklGX0NPTVBBUkUoVEVSTTEsIFRFUk0yKSBlbmlmX2NvbXBhcmUoZW52LCBURVJNMSwgVEVS TTIpCi0rI2VuZGlmCi0rCi0rc3RhdGljIEVSTF9OSUZfVEVSTSBhdG9tX3htbGVsZW1lbnQ7Ci0r c3RhdGljIEVSTF9OSUZfVEVSTSBhdG9tX3htbGNkYXRhOwotKwotIHN0cnVjdCBidWYgewotICAg aW50IGxpbWl0OwotICAgaW50IGxlbjsKLUBAIC0xMCwxMiArMjcsMTkgQEAgc3RydWN0IGJ1ZiB7 Ci0gCi0gc3RhdGljIGludCBtYWtlX2VsZW1lbnQoRXJsTmlmRW52KiBlbnYsIHN0cnVjdCBidWYg KnJidWYsIEVSTF9OSUZfVEVSTSBlbCk7Ci0gCi0rc3RhdGljIGludCBsb2FkKEVybE5pZkVudiog ZW52LCB2b2lkKiogcHJpdiwgRVJMX05JRl9URVJNIGxvYWRfaW5mbykKLSt7Ci0rICBhdG9tX3ht bGVsZW1lbnQgPSBlbmlmX21ha2VfYXRvbShlbnYsICJ4bWxlbGVtZW50Iik7Ci0rICBhdG9tX3ht bGNkYXRhID0gZW5pZl9tYWtlX2F0b20oZW52LCAieG1sY2RhdGEiKTsKLSsgIHJldHVybiAwOwot K30KLSsKLSBzdGF0aWMgc3RydWN0IGJ1ZiAqaW5pdF9idWYoRXJsTmlmRW52KiBlbnYpCi0gewot LSAgc3RydWN0IGJ1ZiAqcmJ1ZiA9IGVuaWZfYWxsb2MoZW52LCBzaXplb2Yoc3RydWN0IGJ1Zikp OwotKyAgc3RydWN0IGJ1ZiAqcmJ1ZiA9IEVOSUZfQUxMT0Moc2l6ZW9mKHN0cnVjdCBidWYpKTsK LSAgIHJidWYtPmxpbWl0ID0gMTAyNDsKLSAgIHJidWYtPmxlbiA9IDA7Ci0tICByYnVmLT5iID0g ZW5pZl9hbGxvYyhlbnYsIHJidWYtPmxpbWl0KTsKLSsgIHJidWYtPmIgPSBFTklGX0FMTE9DKHJi dWYtPmxpbWl0KTsKLSAgIHJldHVybiByYnVmOwotIH0KLSAKLUBAIC0yMyw5ICs0Nyw5IEBAIHN0 YXRpYyB2b2lkIGRlc3Ryb3lfYnVmKEVybE5pZkVudiogZW52LCBzdHJ1Y3QgYnVmICpyYnVmKQot IHsKLSAgIGlmIChyYnVmKSB7Ci0gICAgIGlmIChyYnVmLT5iKSB7Ci0tICAgICAgZW5pZl9mcmVl KGVudiwgcmJ1Zi0+Yik7Ci0rICAgICAgRU5JRl9GUkVFKHJidWYtPmIpOwotICAgICB9OwotLSAg ICBlbmlmX2ZyZWUoZW52LCByYnVmKTsKLSsgICAgRU5JRl9GUkVFKHJidWYpOwotICAgfTsKLSB9 Ci0gCi1AQCAtMzUsNyArNTksNyBAQCBpbmxpbmUgdm9pZCByZXNpemVfYnVmKEVybE5pZkVudiog ZW52LCBzdHJ1Y3QgYnVmICpyYnVmLCBpbnQgbGVuX3RvX2FkZCkKLSAgIAotICAgaWYgKG5ld19s ZW4gPj0gcmJ1Zi0+bGltaXQpIHsKLSAgICAgcmJ1Zi0+bGltaXQgPSAoKG5ld19sZW4gLyAxMDI0 KSArIDEpICogMTAyNDsKLS0gICAgcmJ1Zi0+YiA9IGVuaWZfcmVhbGxvYyhlbnYsIHJidWYtPmIs IHJidWYtPmxpbWl0KTsKLSsgICAgcmJ1Zi0+YiA9IEVOSUZfUkVBTExPQyhyYnVmLT5iLCByYnVm LT5saW1pdCk7Ci0gICB9OwotIH0KLSAKLUBAIC0xNDEsNyArMTY1LDcgQEAgc3RhdGljIGludCBt YWtlX2VsZW1lbnQoRXJsTmlmRW52KiBlbnYsIHN0cnVjdCBidWYgKnJidWYsIEVSTF9OSUZfVEVS TSBlbCkKLSAKLSAgIGlmIChlbmlmX2dldF90dXBsZShlbnYsIGVsLCAmYXJpdHksICZ0dXBsZSkp IHsKLSAgICAgaWYgKGFyaXR5ID09IDIpIHsKLS0gICAgICBpZiAoIWVuaWZfY29tcGFyZShlbnYs IHR1cGxlWzBdLCBlbmlmX21ha2VfYXRvbShlbnYsICJ4bWxjZGF0YSIpKSkgewotKyAgICAgIGlm ICghRU5JRl9DT01QQVJFKHR1cGxlWzBdLCBhdG9tX3htbGNkYXRhKSkgewotIAlpZiAoZW5pZl9p bnNwZWN0X2lvbGlzdF9hc19iaW5hcnkoZW52LCB0dXBsZVsxXSwgJmNkYXRhKSkgewotIAkgIGNy eXB0KGVudiwgcmJ1ZiwgY2RhdGEuZGF0YSwgY2RhdGEuc2l6ZSk7Ci0gCSAgcmV0ID0gMTsKLUBA IC0xNDksNyArMTczLDcgQEAgc3RhdGljIGludCBtYWtlX2VsZW1lbnQoRXJsTmlmRW52KiBlbnYs IHN0cnVjdCBidWYgKnJidWYsIEVSTF9OSUZfVEVSTSBlbCkKLSAgICAgICB9OwotICAgICB9Owot ICAgICBpZiAoYXJpdHkgPT0gNCkgewotLSAgICAgIGlmICghZW5pZl9jb21wYXJlKGVudiwgdHVw bGVbMF0sIGVuaWZfbWFrZV9hdG9tKGVudiwgInhtbGVsZW1lbnQiKSkpIHsKLSsgICAgICBpZiAo IUVOSUZfQ09NUEFSRSh0dXBsZVswXSwgYXRvbV94bWxlbGVtZW50KSkgewotIAlpZiAoZW5pZl9p bnNwZWN0X2lvbGlzdF9hc19iaW5hcnkoZW52LCB0dXBsZVsxXSwgJm5hbWUpKSB7Ci0gCSAgYnVm X2FkZF9jaGFyKGVudiwgcmJ1ZiwgJzwnKTsKLSAJICBidWZfYWRkX3N0cihlbnYsIHJidWYsIChj aGFyICopbmFtZS5kYXRhLCBuYW1lLnNpemUpOwotQEAgLTE5Miw3ICsyMTYsNyBAQCBzdGF0aWMg RVJMX05JRl9URVJNIGVsZW1lbnRfdG8oRXJsTmlmRW52KiBlbnYsIGludCBhcmdjLAotIAlkZXN0 cm95X2J1ZihlbnYsIHJidWYpOwotIAlyZXR1cm4gcmVzdWx0OwotICAgICAgIH0JZWxzZSB7Ci0t CWlmIChlbmlmX2FsbG9jX2JpbmFyeShlbnYsIHJidWYtPmxlbiwgJm91dHB1dCkpIHsKLSsJaWYg KEVOSUZfQUxMT0NfQklOQVJZKHJidWYtPmxlbiwgJm91dHB1dCkpIHsKLSAJICBtZW1jcHkob3V0 cHV0LmRhdGEsIHJidWYtPmIsIHJidWYtPmxlbik7Ci0gCSAgcmVzdWx0ID0gZW5pZl9tYWtlX2Jp bmFyeShlbnYsICZvdXRwdXQpOwotIAkgIGRlc3Ryb3lfYnVmKGVudiwgcmJ1Zik7Ci1AQCAtMjA2 LDExICsyMzAsMTMgQEAgc3RhdGljIEVSTF9OSUZfVEVSTSBlbGVtZW50X3RvKEVybE5pZkVudiog ZW52LCBpbnQgYXJnYywKLSAgIHJldHVybiBlbmlmX21ha2VfYmFkYXJnKGVudik7Ci0gfQotIAot LS8qIHN0YXRpYyBFUkxfTklGX1RFUk0gZWxlbWVudF90b19zdHJpbmcoRXJsTmlmRW52KiBlbnYs IGludCBhcmdjLCAqLwotLS8qIAkJCQkgICAgICBjb25zdCBFUkxfTklGX1RFUk0gYXJndltdKSAq LwotLS8qIHsgKi8KLS0vKiAgIHJldHVybiBlbGVtZW50X3RvKGVudiwgYXJnYywgYXJndiwgMSk7 ICovCi0tLyogfSAqLwotKyNpZmRlZiBTU0w0MAotK3N0YXRpYyBFUkxfTklGX1RFUk0gZWxlbWVu dF90b19zdHJpbmcoRXJsTmlmRW52KiBlbnYsIGludCBhcmdjLAotKwkJCQkgICAgICBjb25zdCBF UkxfTklGX1RFUk0gYXJndltdKQotK3sKLSsgIHJldHVybiBlbGVtZW50X3RvKGVudiwgYXJnYywg YXJndiwgMSk7Ci0rfQotKyNlbmRpZgotIAotIHN0YXRpYyBFUkxfTklGX1RFUk0gZWxlbWVudF90 b19iaW5hcnkoRXJsTmlmRW52KiBlbnYsIGludCBhcmdjLAotIAkJCQkgICAgICBjb25zdCBFUkxf TklGX1RFUk0gYXJndltdKQotQEAgLTIyMiw5ICsyNDgsMTEgQEAgc3RhdGljIEVybE5pZkZ1bmMg bmlmX2Z1bmNzW10gPQotICAgewotICAgICAvKiBTdHVwaWQgRXJsYW5nIGJ1ZyB3aXRoIGVuaWZf bWFrZV9zdHJpbmcoKSBpcyBmaXhlZAotICAgICAgICBpbiBSMTRBIG9ubHkgKE9UUC04Njg1KSwg c28gd2UgY2FuJ3QgdXNlCi0tICAgICAgIGVsZW1lbnRfdG9fc3RyaW5nIHlldC4qLwotLSAgICAv KiB7ImVsZW1lbnRfdG9fc3RyaW5nIiwgMSwgZWxlbWVudF90b19zdHJpbmd9LCAqLwotKyAgICAg ICBlbGVtZW50X3RvX3N0cmluZyBpbiBFcmxhbmcgPCBSMTRBLiovCi0rI2lmZGVmIFNTTDQwCi0r ICAgIHsiZWxlbWVudF90b19zdHJpbmciLCAxLCBlbGVtZW50X3RvX3N0cmluZ30sCi0rI2VuZGlm Ci0gICAgIHsiZWxlbWVudF90b19iaW5hcnkiLCAxLCBlbGVtZW50X3RvX2JpbmFyeX0KLSAgIH07 Ci0gCi0tRVJMX05JRl9JTklUKHhtbCwgbmlmX2Z1bmNzLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxM KQotK0VSTF9OSUZfSU5JVCh4bWwsIG5pZl9mdW5jcywgbG9hZCwgTlVMTCwgTlVMTCwgTlVMTCkK LS0tIAotMS43LjIuMQotCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAxMi1maXhlcy10eXBvLWZv ci10YWJsZS1jb3B5LnBhdGNoIGIvZWphYmJlcmQtMDAxMi1maXhlcy10eXBvLWZvci10YWJsZS1j b3B5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzYyY2M1Li4wMDAwMDAw Ci0tLSBhL2VqYWJiZXJkLTAwMTItZml4ZXMtdHlwby1mb3ItdGFibGUtY29weS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLUZyb20gZjhkZDk3MzM3M2ExMzliOTg1NzcyMGRj YjQ0MDU1MDllNWU0ZmM3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEV2Z2VuaXkg S2hyYW10c292IDxla2hyYW10c292QHByb2Nlc3Mtb25lLm5ldD4KLURhdGU6IFR1ZSwgMTAgQXVn IDIwMTAgMTk6NDI6MjIgKzEwMDAKLVN1YmplY3Q6IFtQQVRDSCAwOC8xMV0gZml4ZXMgdHlwbyBm b3IgdGFibGUgY29weQotCi0tLS0KLSBzcmMvb2RiYy9lamFiYmVyZF9vZGJjX3N1cC5lcmwgfCAg ICAyICstCi0gMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9zcmMvb2RiYy9lamFiYmVyZF9vZGJjX3N1cC5lcmwgYi9zcmMvb2Ri Yy9lamFiYmVyZF9vZGJjX3N1cC5lcmwKLWluZGV4IDQ1ZWRlMTguLjhmYjZlMjUgMTAwNjQ0Ci0t LS0gYS9zcmMvb2RiYy9lamFiYmVyZF9vZGJjX3N1cC5lcmwKLSsrKyBiL3NyYy9vZGJjL2VqYWJi ZXJkX29kYmNfc3VwLmVybAotQEAgLTU0LDcgKzU0LDcgQEAgc3RhcnRfbGluayhIb3N0KSAtPgot IAkJCSB7dHlwZSwgYmFnfSwKLSAJCQkge2xvY2FsX2NvbnRlbnQsIHRydWV9LAotIAkJCSB7YXR0 cmlidXRlcywgcmVjb3JkX2luZm8oZmllbGRzLCBzcWxfcG9vbCl9XSksCi0tICAgIG1uZXNpYTph ZGRfdGFibGVfY29weShsb2NhbF9jb25maWcsIG5vZGUoKSwgcmFtX2NvcGllcyksCi0rICAgIG1u ZXNpYTphZGRfdGFibGVfY29weShzcWxfcG9vbCwgbm9kZSgpLCByYW1fY29waWVzKSwKLSAgICAg RiA9IGZ1bigpIC0+Ci0gCQltbmVzaWE6ZGVsZXRlKHtzcWxfcG9vbCwgSG9zdH0pCi0gCWVuZCwK LS0tIAotMS43LjIuMQotCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAxMy1maXhlcy1hbXBlcnNh bmQtZXNjYXBpbmctRUpBQi0xMjU4LnBhdGNoIGIvZWphYmJlcmQtMDAxMy1maXhlcy1hbXBlcnNh bmQtZXNjYXBpbmctRUpBQi0xMjU4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAyZGI0YWJhLi4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLTAwMTMtZml4ZXMtYW1wZXJzYW5kLWVz Y2FwaW5nLUVKQUItMTI1OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLUZy b20gMzAyNGJiMGNiZjM1OWYzZTE0YjUzODZlZDE0ZWNmYjE2OGU4YTI2NyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IEV2Z2VuaXkgS2hyYW10c292IDxla2hyYW10c292QHByb2Nlc3Mt b25lLm5ldD4KLURhdGU6IFRodSwgMTkgQXVnIDIwMTAgMTY6Mjg6MzEgKzEwMDAKLVN1YmplY3Q6 IFtQQVRDSCAwOS8xMV0gZml4ZXMgYW1wZXJzYW5kIGVzY2FwaW5nIChFSkFCLTEyNTgpCi0KLS0t LQotIHNyYy9lbGRhcC9lbGRhcF9maWx0ZXIuZXJsIHwgICAgNCArKy0tCi0gMSBmaWxlcyBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMv ZWxkYXAvZWxkYXBfZmlsdGVyLmVybCBiL3NyYy9lbGRhcC9lbGRhcF9maWx0ZXIuZXJsCi1pbmRl eCA1MWRhYzVlLi4zNDFmYmExIDEwMDY0NAotLS0tIGEvc3JjL2VsZGFwL2VsZGFwX2ZpbHRlci5l cmwKLSsrKyBiL3NyYy9lbGRhcC9lbGRhcF9maWx0ZXIuZXJsCi1AQCAtMTcxLDcgKzE3MSw3IEBA IGRvX3N1YihTLCB7UmVnRXhwLCBOZXcsIFRpbWVzfSwgSXRlcikgLT4KLSAgICAgZW5kLgotIAot IHJlcGxhY2VfYW1wcyhTdHJpbmcpIC0+Ci0tICAgIGxpc3RzOm1hcCgKLSsgICAgbGlzdHM6Zmxh dG1hcCgKLSAgICAgICBmdW4oJCYpIC0+ICJcXCYiOwotLQkgKENocikgLT4gQ2hyCi0rCSAoQ2hy KSAtPiBbQ2hyXQotICAgICAgIGVuZCwgU3RyaW5nKS4KLS0tIAotMS43LjIuMQotCgpkaWZmIC0t Z2l0IGEvZWphYmJlcmQtMDAxNC1CdWdmaXgtaHR0cC1wb2xsLWZvci1jb3JyZWN0bHktcGFyc2lu Zy1iaW5hcnktdGhhbmtzLnBhdGNoIGIvZWphYmJlcmQtMDAxNC1CdWdmaXgtaHR0cC1wb2xsLWZv ci1jb3JyZWN0bHktcGFyc2luZy1iaW5hcnktdGhhbmtzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA2ZmE1YWE4Li4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLTAwMTQtQnVnZml4 LWh0dHAtcG9sbC1mb3ItY29ycmVjdGx5LXBhcnNpbmctYmluYXJ5LXRoYW5rcy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLUZyb20gZDg3ZmZmMWE0YzUwMGQ5YWJlMzk0NWNi ZmVhNzkyYjRlZGRmYTNmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEJhZGxvcCA8 YmFkbG9wQHByb2Nlc3Mtb25lLm5ldD4KLURhdGU6IFRodSwgMTkgQXVnIDIwMTAgMTc6Mzc6MjEg KzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAxMC8xMV0gQnVnZml4IGh0dHAtcG9sbCBmb3IgY29ycmVj dGx5IHBhcnNpbmcgYmluYXJ5ICh0aGFua3MgdG8gUGV0ZXIgTGVtZW5rb3YpCi0KLS0tLQotIHNy Yy93ZWIvZWphYmJlcmRfaHR0cF9wb2xsLmVybCB8ICAgIDggKysrKysrKy0KLSAxIGZpbGVzIGNo YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3Ny Yy93ZWIvZWphYmJlcmRfaHR0cF9wb2xsLmVybCBiL3NyYy93ZWIvZWphYmJlcmRfaHR0cF9wb2xs LmVybAotaW5kZXggMGJkYmM2Mi4uZmFhMGYzYyAxMDA2NDQKLS0tLSBhL3NyYy93ZWIvZWphYmJl cmRfaHR0cF9wb2xsLmVybAotKysrIGIvc3JjL3dlYi9lamFiYmVyZF9odHRwX3BvbGwuZXJsCi1A QCAtMjcyLDcgKzI3MiwxMyBAQCBoYW5kbGVfZXZlbnQoX0V2ZW50LCBTdGF0ZU5hbWUsIFN0YXRl RGF0YSkgLT4KLSAlJSAgICAgICAgICB7c3RvcCwgUmVhc29uLCBSZXBseSwgTmV3U3RhdGVEYXRh fSAgICAgICAgICAgICAgICAgICAgCi0gJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gaGFuZGxlX3N5bmNfZXZl bnQoe3NlbmQsIFBhY2tldH0sIF9Gcm9tLCBTdGF0ZU5hbWUsIFN0YXRlRGF0YSkgLT4KLS0gICAg T3V0cHV0ID0gU3RhdGVEYXRhI3N0YXRlLm91dHB1dCArKyBbbGlzdHM6ZmxhdHRlbihQYWNrZXQp XSwKLSsgICAgUGFja2V0MiA9IGlmCi0rCQkgIGlzX2JpbmFyeShQYWNrZXQpIC0+Ci0rCQkgICAg ICBiaW5hcnlfdG9fbGlzdChQYWNrZXQpOwotKwkJICB0cnVlIC0+Ci0rCQkgICAgICBQYWNrZXQK LSsJICAgICAgZW5kLAotKyAgICBPdXRwdXQgPSBTdGF0ZURhdGEjc3RhdGUub3V0cHV0ICsrIFts aXN0czpmbGF0dGVuKFBhY2tldDIpXSwKLSAgICAgUmVwbHkgPSBvaywKLSAgICAge3JlcGx5LCBS ZXBseSwgU3RhdGVOYW1lLCBTdGF0ZURhdGEjc3RhdGV7b3V0cHV0ID0gT3V0cHV0fX07Ci0gCi0t LSAKLTEuNy4yLjEKLQoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLnNwZWMgYi9lamFiYmVyZC5zcGVj CmluZGV4IDllZmI3MWEuLmIyNmE1YjIgMTAwNjQ0Ci0tLSBhL2VqYWJiZXJkLnNwZWMKKysrIGIv ZWphYmJlcmQuc3BlYwpAQCAtMTAsOCArMTAsOCBAQAogJWVuZGlmCiAKIE5hbWU6ICAgICAgICAg ICBlamFiYmVyZAotVmVyc2lvbjogICAgICAgIDIuMS41Ci1SZWxlYXNlOiAgICAgICAgNiV7P2Rp c3R9CitWZXJzaW9uOiAgICAgICAgMi4xLjYKK1JlbGVhc2U6ICAgICAgICAxJXs/ZGlzdH0KIFN1 bW1hcnk6ICAgICAgICBBIGRpc3RyaWJ1dGVkLCBmYXVsdC10b2xlcmFudCBKYWJiZXIvWE1QUCBz ZXJ2ZXIKIAogR3JvdXA6ICAgICAgICAgIEFwcGxpY2F0aW9ucy9JbnRlcm5ldApAQCAtMjIsMTcg KzIyLDYgQEAgU291cmNlMTogICAgICAgIGVqYWJiZXJkLmluaXQKIFNvdXJjZTI6ICAgICAgICBl amFiYmVyZC5sb2dyb3RhdGUKIFNvdXJjZTM6CWVqYWJiZXJkLnN5c2NvbmZpZwogCi0jIGh0dHA6 Ly93d3cuZWphYmJlcmQuaW0vbW9kX2N0bGV4dHJhCi0jIHRoaXMgbW9kdWxlIHdpbGwgYmUgcmVt b3ZlZCBpbiB0aGUgbmVhcmVzdCBmdXR1cmUgaW4gZmF2b3Igb2YgbW9kX2FkbWluX2V4dHJhCi0j IHN2biBleHBvcnQgLXIgMTAyMCBodHRwczovL3N2bi5wcm9jZXNzLW9uZS5uZXQvZWphYmJlcmQt bW9kdWxlcy9tb2RfY3RsZXh0cmEvdHJ1bmsvc3JjL21vZF9jdGxleHRyYS5lcmwKLVNvdXJjZTQ6 ICAgICAgICBtb2RfY3RsZXh0cmEuZXJsCi0KLSMgVGhlIGZvbGxvd2luZyB3ZXJlIGV4dHJhY3Rl ZCBmcm9tIGEgcGF0Y2ggZm91bmQgb24gaHR0cDovL3JlYWxsb2Muc3BiLnJ1L3NoYXJlL2VqYWJi ZXJkYWQuaHRtbAotIyBUaGVzZSBhcmUgdW5tYWludGFpbmVkIGFuZCB3aWxsIGJlIHJlbW92ZWQg c29vbiAodXNlcnMgc2hvdWxkIHVzZSAqX2xkYXAuZXJsIGluc3RlYWQpCi1Tb3VyY2U1OiAgICAg ICAgZWphYmJlcmRfYXV0aF9hZC5lcmwKLVNvdXJjZTY6ICAgICAgICBtb2Rfc2hhcmVkX3Jvc3Rl cl9hZC5lcmwKLVNvdXJjZTc6ICAgICAgICBtb2RfdmNhcmRfYWQuZXJsCi0KICMgUEFNIHN1cHBv cnQKIFNvdXJjZTk6ICAgICAgICBlamFiYmVyZGN0bC5wYW0KIFNvdXJjZTEwOiAgICAgICBlamFi YmVyZGN0bC5hcHBzCkBAIC00MCwzMyArMjksMjQgQEAgU291cmNlMTE6ICAgICAgIGVqYWJiZXJk LnBhbQogCiAjIFVzZSBlamFiYmVyZCBhcyBhbiBleGFtcGxlIGZvciBQQU0gc2VydmljZSBuYW1l IChmZWRvcmEvZXBlbC1zcGVjaWZpYykKIFBhdGNoMTogZWphYmJlcmQtMDAwMS1GaXgtUEFNLXNl cnZpY2UtZXhhbXBsZS1uYW1lLXRvLW1hdGNoLWFjdHVhbC1vbmUucGF0Y2gKLSMgTWVudGlvbiBt b2RfY3RsZXh0cmEgYXMgYW4gZWphYmJlcmQgbW9kdWxlCi1QYXRjaDI6IGVqYWJiZXJkLTAwMDIt TWVudGlvbi1tb2RfY3RsZXh0cmEtYXMtYW4tZWphYmJlcmQtbW9kdWxlLnBhdGNoCisjIEludHJv ZHVjaW5nIG1vZF9jdGxleHRyYQorUGF0Y2gyOiBlamFiYmVyZC0wMDAyLUFkZC1tb2RfY3RsZXh0 cmEtYXMtYW4tZWphYmJlcmQtbW9kdWxlLnBhdGNoCiAjIGZpeGVkIGRlbGF5cyBpbiBzMnMgY29u bmVjdGlvbnMKIFBhdGNoMzogZWphYmJlcmQtMDAwMy1GaXhlZC1kZWxheXMtaW4tczJzLWNvbm5l Y3Rpb25zLnBhdGNoCiAjIEludHJvZHVjaW5nIG1vZF9hZG1pbl9leHRyYQogUGF0Y2g0OiBlamFi YmVyZC0wMDA0LUludHJvZHVjaW5nLW1vZF9hZG1pbl9leHRyYS5wYXRjaAogIyBCWiMgNDM5NTgz LCA0NTIzMjYsIDQ1MTU1NCwgNDY1MTk2LCA1MDIzNjEgKGZlZG9yYS9lcGVsLXNwZWNpZmljKQog UGF0Y2g1OiBlamFiYmVyZC0wMDA1LUZlZG9yYS1zcGVjaWZpYy1jaGFuZ2VzLXRvLWVqYWJiZXJk Y3RsLnBhdGNoCi0jIEZpeCBpc3N1ZSB3aXRoICJGaWxlIG9wZXJhdGlvbiBlcnJvcjogZWFjY2Vz IgotUGF0Y2g2OiBlamFiYmVyZC0wMDA2LUNoYW5nZS1kaXJlY3RvcnktdG8tcmVhZGFibGUtYnkt ZXZlcnlvbmUucGF0Y2gKICMgRml4IHNvLWxpYiBwZXJtaXNzaW9ucyB3aGlsZSBpbnN0YWxsaW5n IChmZWRvcmEvZXBlbC1zcGVjaWZpYykKLVBhdGNoNzoJZWphYmJlcmQtMDAwNy1JbnN0YWxsLS5z by1vYmplY3RzLXdpdGgtMDc1NS1wZXJtaXNzaW9ucy5wYXRjaAotIyBXaWxsIGJlIHByb3Bvc2Vk IGZvciBpbmN1c2lvbiBpbnRvIHVwc3RyZWFtCi1QYXRjaDg6IGVqYWJiZXJkLTAwMDgtVXNlLXZl cnNpb25lZC1kaXJlY3RvcnktZm9yLXN0b3JpbmctZG9jcy5wYXRjaAotIyBCYWNrcG9ydGVkIGZy b20gdXBzdHJlYW0KLVBhdGNoOTogZWphYmJlcmQtMDAwOS1TdXBwb3J0LVNBU0wtR1NTQVBJLWF1 dGhlbnRpY2F0aW9uLXRoYW5rcy10by1NaWthZWwtLnBhdGNoCi0jIEJhY2twb3J0ZWQgZnJvbSB1 cHN0cmVhbQotUGF0Y2gxMDogZWphYmJlcmQtMDAxMC1Mb2FkaW5nLUFTTi4xLWRyaXZlci1leHBs aWNpdGx5LXRvLWF2b2lkLXJhY2VzLWluLUxELnBhdGNoCi0jIEJhY2twb3J0ZWQgZnJvbSB1cHN0 cmVhbQotUGF0Y2gxMTogZWphYmJlcmQtMDAxMS1NYWtlLXhtbC5jLWNvcnJlY3RseS1jb21waWxl cy1vbi1SMTRBLUVKQUItMTI4OC5wYXRjaAorUGF0Y2g2OgllamFiYmVyZC0wMDA2LUluc3RhbGwt LnNvLW9iamVjdHMtd2l0aC0wNzU1LXBlcm1pc3Npb25zLnBhdGNoCisjIFdpbGwgYmUgcHJvcG9z ZWQgZm9yIGluY2x1c2lvbiBpbnRvIHVwc3RyZWFtCitQYXRjaDc6IGVqYWJiZXJkLTAwMDctVXNl LXZlcnNpb25lZC1kaXJlY3RvcnktZm9yLXN0b3JpbmctZG9jcy5wYXRjaAogIyBCYWNrcG9ydGVk IGZyb20gdXBzdHJlYW0KLVBhdGNoMTI6IGVqYWJiZXJkLTAwMTItZml4ZXMtdHlwby1mb3ItdGFi bGUtY29weS5wYXRjaAotIyBCYWNrcG9ydGVkIGZyb20gdXBzdHJlYW0KLVBhdGNoMTM6IGVqYWJi ZXJkLTAwMTMtZml4ZXMtYW1wZXJzYW5kLWVzY2FwaW5nLUVKQUItMTI1OC5wYXRjaAotIyBCYWNr cG9ydGVkIGZyb20gdXBzdHJlYW0KLVBhdGNoMTQ6IGVqYWJiZXJkLTAwMTQtQnVnZml4LWh0dHAt cG9sbC1mb3ItY29ycmVjdGx5LXBhcnNpbmctYmluYXJ5LXRoYW5rcy5wYXRjaAotCitQYXRjaDg6 IGVqYWJiZXJkLTAwMDgtU3VwcG9ydC1TQVNMLUdTU0FQSS1hdXRoZW50aWNhdGlvbi10aGFua3Mt dG8tTWlrYWVsLS5wYXRjaAorIyBJbnRyb2R1Y2Ugb2xkIEFEIHN0dWZmCitQYXRjaDk6IGVqYWJi ZXJkLTAwMDktQWRkZWQtb2xkLW1vZHVsZXMtZm9yLUFjdGl2ZS1EaXJlY3RvcnkucGF0Y2gKKyMg Q29ycmVjdCB2ZXJzaW9uIGluIGNvbmZpZ3VyZSAoRE9OJ1QgRk9SR0VUIFRPIFJFTU9WRSBJTiBU SEUgTkVYVCBWRVJTSU9OKQorUGF0Y2gxMDogZWphYmJlcmQtMDAxMC1sYXN0LW1pbnV0ZS1maXgt Y29ycmVjdC12ZXJzaW9uLWluLWNvbmZpZ3VyZS5wYXRjaAogCiBCdWlsZFJvb3Q6ICAgICAgJXtf dG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAt bikKIApAQCAtMTI3LDIwICsxMDcsMTIgQEAgRG9jdW1lbnRhdGlvbiBmb3IgZWphYmJlcmQuCiAl cGF0Y2gzIC1wMSAtYiAuczJzX2RlbGF5cwogJXBhdGNoNCAtcDEgLWIgLm1vZF9hZG1pbl9leHRy YQogJXBhdGNoNSAtcDEgLWIgLmZlZG9yYV9zcGVjaWZpYwotJXBhdGNoNiAtcDEgLWIgLmZpeF9h Y2Nlc3MKLSVwYXRjaDcgLXAxIC1iIC5maXhfcGVybXMKLSVwYXRjaDggLXAxIC1iIC52ZXJzaW9u ZWRfZG9jZGlyCi0lcGF0Y2g5IC1wMSAtYiAuZ3NzYXBpCi0lcGF0Y2gxMCAtcDEgLWIgLmxvYWRf YXNuMQotJXBhdGNoMTEgLXAxIC1iIC5SMTRBCi0lcGF0Y2gxMiAtcDEgLWIgLnR5cG8KLSVwYXRj aDEzIC1wMSAtYiAubGRhcF9hbXBlcnNhbmRfZXNjYXBpbmcKLSVwYXRjaDE0IC1wMSAtYiAuaHR0 cC1wb2xsCi0KLWNwICV7Uzo0fSBzcmMKLWNwICV7Uzo1fSBzcmMKLWNwICV7Uzo2fSBzcmMKLWNw ICV7Uzo3fSBzcmMKKyVwYXRjaDYgLXAxIC1iIC5maXhfcGVybXMKKyVwYXRjaDcgLXAxIC1iIC52 ZXJzaW9uZWRfZG9jZGlyCislcGF0Y2g4IC1wMSAtYiAuZ3NzYXBpCislcGF0Y2g5IC1wMSAtYiAu YWRfc3R1ZmYKKyVwYXRjaDEwIC1wMSAtYiAuZml4X3ZlcnNpb24KK3RvdWNoIC1yIHNyYy9jb25m aWd1cmUuZml4X3ZlcnNpb24gc3JjL2NvbmZpZ3VyZQogCiAKICVidWlsZApAQCAtMzY2LDYgKzMz OCw5IEBAIHJtIC1yZiAle2J1aWxkcm9vdH0KICVkb2MgJXtfZG9jZGlyfS8le25hbWV9LSV7dmVy c2lvbn0vKi50eHQKIAogJWNoYW5nZWxvZworKiBUdWUgRGVjIDE0IDIwMTAgUGV0ZXIgTGVtZW5r b3YgPGxlbWVua292QGdtYWlsLmNvbT4gMi4xLjYtMQorLSBWZXIuIDIuMS42IChCdWdmaXggcmVs ZWFzZSkKKwogKiBUaHUgQXVnIDI2IDIwMTAgUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWls LmNvbT4gMi4xLjUtNgogLSBNb3JlIHBhdGNoZXMgZnJvbSB0cnVuawogLSBSZWJhc2VkIHBhdGNo ZXMKCmRpZmYgLS1naXQgYS9lamFiYmVyZF9hdXRoX2FkLmVybCBiL2VqYWJiZXJkX2F1dGhfYWQu ZXJsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTllNDUyLi4wMDAwMDAwCi0tLSBh L2VqYWJiZXJkX2F1dGhfYWQuZXJsCisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLSUl JS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSUlJSBGaWxlICAgIDogZWphYmJlcmRfYXV0aF9hZC5lcmwKLSUlJSBB dXRob3IgIDogQWxleGV5IFNoY2hlcGluIDxhbGV4ZXlAc2V2Y29tLm5ldD4KLSUlJSBBdXRob3Ig IDogQWxleCBHb3JiYWNoZW5rbyA8YWdlbnRfMDA3QGltbW8ucnU+Ci0lJSUgQXV0aG9yICA6IFN0 YW5pc2xhdiBCb2dhdHlyZXYgPHJlYWxsb2NAcmVhbGxvYy5zcGIucnU+Ci0lJSUgUHVycG9zZSA6 IEF1dGhlbnRpZmljYXRpb24gdmlhIEFjdGl2ZSBEaXJlY3RvcnkKLSUlJSBDcmVhdGVkIDogMTIg RGVjIDIwMDQgYnkgQWxleGV5IFNoY2hlcGluIDxhbGV4ZXlAc2V2Y29tLm5ldD4KLSUlJSBJZCAg ICAgIDogJElkOiBlamFiYmVyZF9hdXRoX2FkLmVybCAzODYgMjAwNS0xMi0yMCAxMDowNjozN1og YWdlbnRfMDA3ICQKLSUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLW1vZHVsZShlamFiYmVyZF9hdXRoX2Fk KS4KLS1hdXRob3IoJ2FsZXhleUBzZXZjb20ubmV0JykuCi0tYXV0aG9yKCdhZ2VudF8wMDdAaW1t by5ydScpLgotLWF1dGhvcigncmVhbGxvY0ByZWFsbG9jLnNwYi5ydScpLgotLXZzbignJFJldmlz aW9uOiAzODYgJCAnKS4KLQotJSUgRXh0ZXJuYWwgZXhwb3J0cwotLWV4cG9ydChbc3RhcnQvMSwK LQkgc2V0X3Bhc3N3b3JkLzMsCi0JIGNoZWNrX3Bhc3N3b3JkLzMsCi0JIGNoZWNrX3Bhc3N3b3Jk LzUsCi0JIHRyeV9yZWdpc3Rlci8zLAotCSBkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2Vycy8wLAot CSBnZXRfdmhfcmVnaXN0ZXJlZF91c2Vycy8xLAotCSBnZXRfcGFzc3dvcmQvMiwKLQkgZ2V0X3Bh c3N3b3JkX3MvMiwKLQkgaXNfdXNlcl9leGlzdHMvMiwKLQkgcmVtb3ZlX3VzZXIvMiwKLQkgcmVt b3ZlX3VzZXIvMywKLQkgcGxhaW5fcGFzc3dvcmRfcmVxdWlyZWQvMAotCV0pLgotCi0taW5jbHVk ZSgiZWphYmJlcmQuaHJsIikuCi0taW5jbHVkZSgiZWxkYXAvZWxkYXAuaHJsIikuCi0KLSUlJS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSUlJSBBUEkKLSUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXN0YXJ0KEhvc3QpIC0+Ci0g ICAgTERBUFNlcnZlcnMgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfc2Vy dmVycywgSG9zdH0pLAotICAgIFJvb3RETiA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0 aW9uKHthZF9yb290ZG4sIEhvc3R9KSwKLSAgICBQYXNzd29yZCA9IGVqYWJiZXJkX2NvbmZpZzpn ZXRfbG9jYWxfb3B0aW9uKHthZF9wYXNzd29yZCwgSG9zdH0pLAotICAgIGVsZGFwOnN0YXJ0X2xp bmsoZ2V0X2VsZGFwX2lkKEhvc3QsIGVqYWJiZXJkKSwKLQkJICAgICBMREFQU2VydmVycywgMzg5 LCBSb290RE4sIFBhc3N3b3JkKSwKLSAgICBlbGRhcDpzdGFydF9saW5rKGdldF9lbGRhcF9pZChI b3N0LCBlamFiYmVyZF9iaW5kKSwKLQkJICAgICBMREFQU2VydmVycywgMzg5LCBSb290RE4sIFBh c3N3b3JkKSwKLSAgICBvay4KLQotcGxhaW5fcGFzc3dvcmRfcmVxdWlyZWQoKSAtPgotICAgIHRy dWUuCi0KLWNoZWNrX3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpIC0+Ci0gICAgY2Fz ZSBmaW5kX3VzZXJfZG4oVXNlciwgU2VydmVyKSBvZgotCWZhbHNlIC0+Ci0JICAgIGZhbHNlOwot CUROIC0+Ci0JICAgIExTZXJ2ZXIgPSBqbGliOm5hbWVwcmVwKFNlcnZlciksCi0JICAgIGNhc2Ug ZWxkYXA6YmluZChnZXRfZWxkYXBfaWQoTFNlcnZlciwgZWphYmJlcmRfYmluZCksCi0JCQkgICAg RE4sIFBhc3N3b3JkKSBvZgotCQlvayAtPgotCQkgICAgdHJ1ZTsKLQkJXyAtPgotCQkgICAgZmFs c2UKLQkgICAgZW5kCi0gICAgZW5kLgotCi1jaGVja19wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFBh c3N3b3JkLCBfU3RyZWFtSUQsIF9EaWdlc3QpIC0+Ci0gICAgY2hlY2tfcGFzc3dvcmQoVXNlciwg U2VydmVyLCBQYXNzd29yZCkuCi0KLXNldF9wYXNzd29yZChfVXNlciwgX1NlcnZlciwgX1Bhc3N3 b3JkKSAtPgotICAgIHtlcnJvciwgbm90X2FsbG93ZWR9LgotCi10cnlfcmVnaXN0ZXIoX1VzZXIs IF9TZXJ2ZXIsIF9QYXNzd29yZCkgLT4KLSAgICB7ZXJyb3IsIG5vdF9hbGxvd2VkfS4KLQotZGly dHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSAtPgotICAgIGdldF92aF9yZWdpc3RlcmVkX3VzZXJz KD9NWU5BTUUpLgotCi1nZXRfdmhfcmVnaXN0ZXJlZF91c2VycyhTZXJ2ZXIpIC0+Ci0gICAgTFNl cnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKLSAgICBBdHRyID0gZWphYmJlcmRfY29uZmln OmdldF9sb2NhbF9vcHRpb24oe2FkX3VpZGF0dHIsIExTZXJ2ZXJ9KSwKLSUgICAgQWRHcm91cCA9 IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9ncm91cCwgTFNlcnZlcn0pLAot ICAgIEZpbHRlclBlcnNvbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENhdGVnb3J5Iiwg InBlcnNvbiIpLAotICAgIEZpbHRlckNvbXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJvYmplY3RD bGFzcyIsICJjb21wdXRlciIpLAotICAgIEZpbHRlckhpZGRlbiA9IGVsZGFwOmVxdWFsaXR5TWF0 Y2goImRlc2NyaXB0aW9uIiwgImhpZGRlbiIpLAotJSAgICBGaWx0ZXJHcm91cCA9IGVsZGFwOmVx dWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCi0gICAgRmlsdGVyTGl2ZSA9IGVsZGFw OmVxdWFsaXR5TWF0Y2goInVzZXJBY2NvdW50Q29udHJvbCIsICI2NjA1MCIpLAotICAgIEZpbHRl ckRlZiA9IGVsZGFwOnByZXNlbnQoQXR0ciksCi0gICAgRmlsdGVyID0gZWxkYXA6J2FuZCcoWwot CQkJICBGaWx0ZXJEZWYsCi0JCQkgIEZpbHRlclBlcnNvbiwKLSUJCQkgIEZpbHRlckdyb3VwLAot CQkJICBlbGRhcDonbm90JyhGaWx0ZXJDb21wKSwKLQkJCSAgZWxkYXA6J25vdCcoRmlsdGVySGlk ZGVuKSwKLQkJCSAgZWxkYXA6J25vdCcoRmlsdGVyTGl2ZSldKSwKLSAgICBCYXNlID0gZWphYmJl cmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jhc2UsIExTZXJ2ZXJ9KSwKLSAgICBjYXNl IGVsZGFwOnNlYXJjaChnZXRfZWxkYXBfaWQoTFNlcnZlciwgZWphYmJlcmQpLAotCQkgICAgICBb e2Jhc2UsIEJhc2V9LAotCQkgICAgICAge2ZpbHRlciwgRmlsdGVyfSwKLQkJICAgICAgIHthdHRy aWJ1dGVzLCBbQXR0cl19XSkgb2YKLQkjZWxkYXBfc2VhcmNoX3Jlc3VsdHtlbnRyaWVzID0gRXN9 IC0+Ci0JICAgIGxpc3RzOmZsYXRtYXAoCi0JICAgICAgZnVuKEUpIC0+Ci0JCSAgICAgIGNhc2Ug bGlzdHM6a2V5c2VhcmNoKEF0dHIsIDEsIEUjZWxkYXBfZW50cnkuYXR0cmlidXRlcykgb2YKLQkJ CSAge3ZhbHVlLCB7XywgW1VdfX0gLT4KLQkJCSAgICAgIGNhc2UgamxpYjpub2RlcHJlcChVKSBv ZgotCQkJCSAgZXJyb3IgLT4KLQkJCQkgICAgICBbXTsKLQkJCQkgIExVIC0+Ci0JCQkJICAgICAg W3tMVSwgTFNlcnZlcn1dCi0JCQkgICAgICBlbmQ7Ci0JCQkgIF8gLT4KLQkJCSAgICAgIFtdCi0J CSAgICAgIGVuZAotCSAgICAgIGVuZCwgRXMpOwotCV8gLT4KLQkgICAgW10KLSAgICBlbmQuCi0K LWdldF9wYXNzd29yZChfVXNlciwgX1NlcnZlcikgLT4KLSAgICBmYWxzZS4KLQotZ2V0X3Bhc3N3 b3JkX3MoX1VzZXIsIF9TZXJ2ZXIpIC0+Ci0gICAgIiIuCi0KLWlzX3VzZXJfZXhpc3RzKFVzZXIs IFNlcnZlcikgLT4KLSAgICBjYXNlIGZpbmRfdXNlcl9kbihVc2VyLCBTZXJ2ZXIpIG9mCi0JZmFs c2UgLT4KLQkgICAgZmFsc2U7Ci0JX0ROIC0+Ci0JICAgIHRydWUKLSAgICBlbmQuCi0KLXJlbW92 ZV91c2VyKF9Vc2VyLCBfU2VydmVyKSAtPgotICAgIHtlcnJvciwgbm90X2FsbG93ZWR9LgotCi1y ZW1vdmVfdXNlcihfVXNlciwgX1NlcnZlciwgX1Bhc3N3b3JkKSAtPgotICAgIG5vdF9hbGxvd2Vk LgotCi0KLSUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSUlJSBJbnRlcm5hbCBmdW5jdGlvbnMKLSUlJS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLQotZmluZF91c2VyX2RuKFVzZXIsIFNlcnZlcikgLT4KLSAgICBMU2VydmVyID0g amxpYjpuYW1lcHJlcChTZXJ2ZXIpLAotICAgIEFkR3JvdXAgPSBlamFiYmVyZF9jb25maWc6Z2V0 X2xvY2FsX29wdGlvbih7YWRfZ3JvdXAsIExTZXJ2ZXJ9KSwKLSAgICBBdHRyID0gZWphYmJlcmRf Y29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3VpZGF0dHIsIExTZXJ2ZXJ9KSwKLSAgICBGaWx0 ZXJBdHRyID0gZWxkYXA6ZXF1YWxpdHlNYXRjaChBdHRyLCBVc2VyKSwKLSAgICBGaWx0ZXJHcm91 cCA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCi0gICAgRmlsdGVy ID0gZWxkYXA6J2FuZCcoWwotICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJBdHRyLAot ICAgICAgICAgICAgICAgICAgICAgICAgICBGaWx0ZXJHcm91cAotICAgICAgICAgICAgICAgICAg ICAgICAgICBdKSwKLSAgICBCYXNlID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24o e2FkX2Jhc2UsIExTZXJ2ZXJ9KSwKLSAgICBjYXNlIGVsZGFwOnNlYXJjaChnZXRfZWxkYXBfaWQo TFNlcnZlciwgZWphYmJlcmQpLAotCQkgICAgICBbe2Jhc2UsIEJhc2V9LAotCQkgICAgICAge2Zp bHRlciwgRmlsdGVyfSwKLQkJICAgICAgIHthdHRyaWJ1dGVzLCBbXX1dKSBvZgotCSNlbGRhcF9z ZWFyY2hfcmVzdWx0e2VudHJpZXMgPSBbRSB8IF9dfSAtPgotCSAgICBFI2VsZGFwX2VudHJ5Lm9i amVjdF9uYW1lOwotCV8gLT4KLQkgICAgZmFsc2UKLSAgICBlbmQuCi0KLWdldF9lbGRhcF9pZChI b3N0LCBOYW1lKSAtPgotICAgIGF0b21fdG9fbGlzdChnZW5fbW9kOmdldF9tb2R1bGVfcHJvYyhI b3N0LCBOYW1lKSkuCgpkaWZmIC0tZ2l0IGEvbW9kX2N0bGV4dHJhLmVybCBiL21vZF9jdGxleHRy YS5lcmwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjNjEwMjQuLjAwMDAwMDAKLS0t IGEvbW9kX2N0bGV4dHJhLmVybAorKysgL2Rldi9udWxsCkBAIC0xLDg5NSArMCwwIEBACi0lJSUt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQotJSUlIEZpbGUgICAgOiBtb2RfY3RsZXh0cmEuZXJsDQotJSUlIEF1dGhv ciAgOiBCYWRsb3AgPGJhZGxvcEBvbm8uY29tPg0KLSUlJSBQdXJwb3NlIDogQWRkcyBtb3JlIGNv bW1hbmRzIHRvIGVqYWJiZXJkX2N0bA0KLSUlJSBDcmVhdGVkIDogMzAgTm92IDIwMDYgYnkgQmFk bG9wIDxiYWRsb3BAb25vLmNvbT4NCi0lJSUgSWQgICAgICA6ICRJZDogbW9kX2N0bGV4dHJhLmVy bCAxMDIwIDIwMDktMDgtMzAgMTA6MTM6MzRaIGJhZGxvcCAkDQotJSUlLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K LQ0KLS1tb2R1bGUobW9kX2N0bGV4dHJhKS4NCi0tYXV0aG9yKCdiYWRsb3BAb25vLmNvbScpLg0K LQ0KLS1iZWhhdmlvdXIoZ2VuX21vZCkuDQotDQotLWV4cG9ydChbc3RhcnQvMiwNCi0JIHN0b3Av MSwNCi0JIGN0bF9wcm9jZXNzLzIsDQotCSBjdGxfcHJvY2Vzcy8zDQotCV0pLg0KLQ0KLS1pbmNs dWRlKCJlamFiYmVyZC5ocmwiKS4NCi0taW5jbHVkZSgiZWphYmJlcmRfY3RsLmhybCIpLg0KLS1p bmNsdWRlKCJqbGliLmhybCIpLg0KLS1pbmNsdWRlKCJtb2Rfcm9zdGVyLmhybCIpLg0KLQ0KLSUl IENvcGllZCBmcm9tIGVqYWJiZXJkX3NtLmVybA0KLS1yZWNvcmQoc2Vzc2lvbiwge3NpZCwgdXNy LCB1cywgcHJpb3JpdHksIGluZm99KS4NCi0NCi0tY29tcGlsZShleHBvcnRfYWxsKS4NCi0NCi0l JS0tLS0tLS0tLS0tLS0NCi0lJSBnZW5fbW9kDQotJSUtLS0tLS0tLS0tLS0tDQotDQotc3RhcnQo SG9zdCwgX09wdHMpIC0+DQotICAgIGVqYWJiZXJkX2N0bDpyZWdpc3Rlcl9jb21tYW5kcyhjb21t YW5kc19nbG9iYWwoKSwgP01PRFVMRSwgY3RsX3Byb2Nlc3MpLA0KLSAgICBlamFiYmVyZF9jdGw6 cmVnaXN0ZXJfY29tbWFuZHMoSG9zdCwgY29tbWFuZHNfaG9zdCgpLCA/TU9EVUxFLCBjdGxfcHJv Y2VzcykuDQotDQotc3RvcChIb3N0KSAtPg0KLSAgICBlamFiYmVyZF9jdGw6dW5yZWdpc3Rlcl9j b21tYW5kcyhjb21tYW5kc19nbG9iYWwoKSwgP01PRFVMRSwgY3RsX3Byb2Nlc3MpLA0KLSAgICBl amFiYmVyZF9jdGw6dW5yZWdpc3Rlcl9jb21tYW5kcyhIb3N0LCBjb21tYW5kc19ob3N0KCksID9N T0RVTEUsIGN0bF9wcm9jZXNzKS4NCi0NCi1jb21tYW5kc19nbG9iYWwoKSAtPg0KLSAgICBbDQot ICAgICB7ImNvbXBpbGUgZmlsZSIsICJyZWNvbXBpbGUgYW5kIHJlbG9hZCBmaWxlIn0sDQotICAg ICB7ImxvYWQtY29uZmlnIGZpbGUiLCAibG9hZCBjb25maWcgZnJvbSBmaWxlIn0sDQotICAgICB7 InJlbW92ZS1ub2RlIG5vZGVuYW1lIiwgInJlbW92ZSBhbiBlamFiYmVyZCBub2RlIGZyb20gdGhl IGRhdGFiYXNlIn0sDQotDQotICAgICAlJSBlamFiYmVyZF9hdXRoDQotICAgICB7ImRlbGV0ZS1v bGRlci11c2VycyBkYXlzIiwgImRlbGV0ZSB1c2VycyB0aGF0IGhhdmUgbm90IGxvZ2dlZCBpbiB0 aGUgbGFzdCAnZGF5cycifSwNCi0gICAgIHsiZGVsZXRlLW9sZGVyLXVzZXJzLXZob3N0IGhvc3Qg ZGF5cyIsICJkZWxldGUgdXNlcnMgdGhhdCBub3QgbG9nZ2VkIGluIGxhc3QgJ2RheXMnIGluICdo b3N0JyJ9LA0KLSAgICAgeyJzZXQtcGFzc3dvcmQgdXNlciBzZXJ2ZXIgcGFzc3dvcmQiLCAic2V0 IHBhc3N3b3JkIHRvIHVzZXJAc2VydmVyIn0sDQotDQotICAgICAlJSBlamQyb2RiYw0KLSAgICAg eyJleHBvcnQyb2RiYyBzZXJ2ZXIgb3V0cHV0IiwgImV4cG9ydCBNbmVzaWEgdGFibGVzIG9uIHNl cnZlciB0byBmaWxlcyBvbiBvdXRwdXQgZGlyZWN0b3J5In0sDQotDQotICAgICAlJSBtb2Rfc2hh cmVkX3Jvc3Rlcg0KLSAgICAgeyJzcmctY3JlYXRlIGdyb3VwIGhvc3QgbmFtZSBkZXNjcmlwdGlv biBkaXNwbGF5IiwgImNyZWF0ZSB0aGUgZ3JvdXAgd2l0aCBvcHRpb25zIn0sDQotICAgICB7InNy Zy1kZWxldGUgZ3JvdXAgaG9zdCIsICJkZWxldGUgdGhlIGdyb3VwIn0sDQotICAgICB7InNyZy11 c2VyLWFkZCB1c2VyIHNlcnZlciBncm91cCBob3N0IiwgImFkZCB1c2VyQHNlcnZlciB0byBncm91 cCBvbiBob3N0In0sDQotICAgICB7InNyZy11c2VyLWRlbCB1c2VyIHNlcnZlciBncm91cCBob3N0 IiwgImRlbGV0ZSB1c2VyQHNlcnZlciBmcm9tIGdyb3VwIG9uIGhvc3QifSwNCi0gICAgIHsic3Jn LWxpc3QtZ3JvdXBzIGhvc3QiLCAibGlzdCB0aGUgc2hhcmVkIHJvc3RlciBncm91cHMgZnJvbSBo b3N0In0sDQotICAgICB7InNyZy1nZXQtaW5mbyBncm91cCBob3N0IiwgImdldCBpbmZvIG9mIGEg c3BlY2lmaWMgZ3JvdXAgb24gaG9zdCJ9LA0KLQ0KLSAgICAgJSUgbW9kX3ZjYXJkDQotICAgICB7 InZjYXJkLWdldCB1c2VyIGhvc3QgZGF0YSBbZGF0YTJdIiwgImdldCBkYXRhIGZyb20gdGhlIHZD YXJkIG9mIHRoZSB1c2VyIn0sDQotICAgICB7InZjYXJkLXNldCB1c2VyIGhvc3QgZGF0YSBbZGF0 YTJdIGNvbnRlbnQiLCAic2V0IGRhdGEgdG8gY29udGVudCBvbiB0aGUgdkNhcmQifSwNCi0NCi0g ICAgICUlIG1vZF9hbm5vdW5jZQ0KLSAgICAgJSUgYW5ub3VuY2Vfc2VuZF9vbmxpbmUgaG9zdCBt ZXNzYWdlDQotICAgICAlJSBhbm5vdW5jZV9zZW5kX2FsbCBob3N0LCBtZXNzYWdlDQotDQotICAg ICAlJSBtb2Rfcm9zdGVyDQotICAgICB7ImFkZC1yb3N0ZXJpdGVtIHVzZXIxIHNlcnZlcjEgdXNl cjIgc2VydmVyMiBuaWNrIGdyb3VwIHN1YnMiLCAiQWRkIHVzZXIyQHNlcnZlcjIgdG8gdXNlcjFA c2VydmVyMSdzIHJvc3RlciJ9LA0KLSAgICAgJSV7IiIsICJzdWJzPSBub25lLCBmcm9tLCB0byBv ciBib3RoIn0sDQotICAgICAlJXsiIiwgImV4YW1wbGU6IGFkZC1yb3N0ZXIgcGV0ZXIgbG9jYWxo b3N0IG1pa2Ugc2VydmVyLmNvbSBNaUtlIEVtcGxveWVlcyBib3RoIn0sDQotICAgICAlJXsiIiwg IndpbGwgYWRkIG1pa2VAc2VydmVyLmNvbSB0byBwZXRlckBsb2NhbGhvc3Qgcm9zdGVyIn0sDQot ICAgICB7InJlbS1yb3N0ZXJpdGVtIHVzZXIxIHNlcnZlcjEgdXNlcjIgc2VydmVyMiIsICJSZW1v dmUgdXNlcjJAc2VydmVyMiBmcm9tIHVzZXIxQHNlcnZlcjEncyByb3N0ZXIifSwNCi0gICAgIHsi cm9zdGVyaXRlbS1wdXJnZSBbb3B0aW9uc10iLCAiUHVyZ2UgYWxsIHJvc3Rlcml0ZW1zIHRoYXQg bWF0Y2ggZmlsdGVyaW5nIG9wdGlvbnMifSwNCi0gICAgIHsicHVzaHJvc3RlciBmaWxlIHVzZXIg c2VydmVyIiwgInB1c2ggdGVtcGxhdGUgcm9zdGVyIGluIGZpbGUgdG8gdXNlckBzZXJ2ZXIifSwN Ci0gICAgIHsicHVzaHJvc3Rlci1hbGwgZmlsZSIsICJwdXNoIHRlbXBsYXRlIHJvc3RlciBpbiBm aWxlIHRvIGFsbCB0aG9zZSB1c2VycyJ9LA0KLSAgICAgeyJwdXNoLWFsbHRvYWxsIHNlcnZlciBn cm91cCIsICJhZGRzIGFsbCB0aGUgdXNlcnMgdG8gYWxsIHRoZSB1c2VycyBpbiBHcm91cCJ9LA0K LQ0KLSAgICAgeyJzdGF0dXMtbGlzdCBzdGF0dXMiLCAibGlzdCB0aGUgbG9nZ2VkIHVzZXJzIHdp dGggc3RhdHVzIn0sDQotICAgICB7InN0YXR1cy1udW0gc3RhdHVzIiwgIm51bWJlciBvZiBsb2dn ZWQgdXNlcnMgd2l0aCBzdGF0dXMifSwNCi0NCi0gICAgIHsic3RhdHMgcmVnaXN0ZXJlZHVzZXJz IiwgIm51bWJlciBvZiByZWdpc3RlcmVkIHVzZXJzIn0sDQotICAgICB7InN0YXRzIG9ubGluZXVz ZXJzIiwgIm51bWJlciBvZiBsb2dnZWQgdXNlcnMifSwNCi0gICAgIHsic3RhdHMgb25saW5ldXNl cnNub2RlIiwgIm51bWJlciBvZiBsb2dnZWQgdXNlcnMgaW4gdGhlIGVqYWJiZXJkIG5vZGUifSwN Ci0gICAgIHsic3RhdHMgdXB0aW1lLXNlY29uZHMiLCAidXB0aW1lIG9mIGVqYWJiZXJkIG5vZGUg aW4gc2Vjb25kcyJ9LA0KLQ0KLSAgICAgJSUgbWlzYw0KLSAgICAgeyJnZXQtY29va2llIiwgImdl dCB0aGUgRXJsYW5nIGNvb2tpZSBvZiB0aGlzIG5vZGUifSwNCi0gICAgIHsia2lsbHNlc3Npb24g dXNlciBzZXJ2ZXIgcmVzb3VyY2UiLCAia2lsbCBhIHVzZXIgc2Vzc2lvbiJ9DQotICAgIF0uDQot DQotY29tbWFuZHNfaG9zdCgpIC0+DQotICAgIFsNCi0gICAgICUlIG1vZF9sYXN0DQotICAgICB7 Im51bS1hY3RpdmUtdXNlcnMgZGF5cyIsICJudW1iZXIgb2YgdXNlcnMgYWN0aXZlIGluIHRoZSBs YXN0ICdkYXlzJyJ9LA0KLSAgICAgeyJzdGF0dXMtbGlzdCBzdGF0dXMiLCAibGlzdCB0aGUgbG9n Z2VkIHVzZXJzIHdpdGggc3RhdHVzIn0sDQotICAgICB7InN0YXR1cy1udW0gc3RhdHVzIiwgIm51 bWJlciBvZiBsb2dnZWQgdXNlcnMgd2l0aCBzdGF0dXMifSwNCi0gICAgIHsic3RhdHMgcmVnaXN0 ZXJlZHVzZXJzIiwgIm51bWJlciBvZiByZWdpc3RlcmVkIHVzZXJzIn0sDQotICAgICB7InN0YXRz IG9ubGluZXVzZXJzIiwgIm51bWJlciBvZiBsb2dnZWQgdXNlcnMifSwNCi0NCi0gICAgICUlIG1p c2MNCi0gICAgIHsiYmFuLWFjY291bnQgdXNlcm5hbWUgW3JlYXNvbl0iLCAiYmFuIGFjY291bnQ6 IGtpY2sgc2Vzc2lvbnMgYW5kIGNoYW5nZSBwYXNzd29yZCJ9DQotICAgIF0uDQotDQotDQotJSUt LS0tLS0tLS0tLS0tDQotJSUgQ29tbWFuZHMgZ2xvYmFsDQotJSUtLS0tLS0tLS0tLS0tDQotDQot Y3RsX3Byb2Nlc3MoX1ZhbCwgWyJkZWxldGUtb2xkZXItdXNlcnMiLCBEYXlzXSkgLT4NCi0gICAg e3JlbW92ZWQsIE4sIFVSfSA9IGRlbGV0ZV9vbGRlcl91c2VycyhsaXN0X3RvX2ludGVnZXIoRGF5 cykpLA0KLSAgICBpbzpmb3JtYXQoIkRlbGV0ZWQgfnAgdXNlcnM6IH5wfm4iLCBbTiwgVVJdKSwN Ci0gICAgP1NUQVRVU19TVUNDRVNTOw0KLQ0KLWN0bF9wcm9jZXNzKF9WYWwsIFsiZGVsZXRlLW9s ZGVyLXVzZXJzLXZob3N0IiwgSG9zdCwgRGF5c10pIC0+DQotICAgIHtyZW1vdmVkLCBOLCBVUn0g PSBkZWxldGVfb2xkZXJfdXNlcnNfdmhvc3QoSG9zdCwgbGlzdF90b19pbnRlZ2VyKERheXMpKSwN Ci0gICAgaW86Zm9ybWF0KCJEZWxldGVkIH5wIHVzZXJzOiB+cH5uIiwgW04sIFVSXSksDQotICAg ID9TVEFUVVNfU1VDQ0VTUzsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbImV4cG9ydDJvZGJjIiwg U2VydmVyLCBPdXRwdXRdKSAtPg0KLSAgICBUYWJsZXMgPSBbDQotCSAgICAgIHtleHBvcnRfbGFz dCwgbGFzdH0sDQotCSAgICAgIHtleHBvcnRfb2ZmbGluZSwgb2ZmbGluZX0sDQotCSAgICAgIHtl eHBvcnRfcGFzc3dkLCBwYXNzd2R9LA0KLQkgICAgICB7ZXhwb3J0X3ByaXZhdGVfc3RvcmFnZSwg cHJpdmF0ZV9zdG9yYWdlfSwNCi0JICAgICAge2V4cG9ydF9yb3N0ZXIsIHJvc3Rlcn0sDQotCSAg ICAgIHtleHBvcnRfdmNhcmQsIHZjYXJkfSwNCi0JICAgICAge2V4cG9ydF92Y2FyZF9zZWFyY2gs IHZjYXJkX3NlYXJjaH1dLA0KLSAgICBFeHBvcnQgPSBmdW4oe1RhYmxlRnVuLCBUYWJsZX0pIC0+ IA0KLQkJICAgICBGaWxlbmFtZSA9IGZpbGVuYW1lOmpvaW4oW091dHB1dCwgYXRvbV90b19saXN0 KFRhYmxlKSsrIi50eHQiXSksDQotCQkgICAgIGlvOmZvcm1hdCgiVHJ5aW5nIHRvIGV4cG9ydCBN bmVzaWEgdGFibGUgJ35wJyBvbiBzZXJ2ZXIgJ35zJyB0byBmaWxlICd+cyd+biIsIFtUYWJsZSwg U2VydmVyLCBGaWxlbmFtZV0pLA0KLQkJICAgICBSZXMgPSAoY2F0Y2ggZWpkMm9kYmM6VGFibGVG dW4oU2VydmVyLCBGaWxlbmFtZSkpLA0KLQkJICAgICBpbzpmb3JtYXQoIiAgUmVzdWx0OiB+cH5u IiwgW1Jlc10pDQotCSAgICAgZW5kLA0KLSAgICBsaXN0czpmb3JlYWNoKEV4cG9ydCwgVGFibGVz KSwNCi0gICAgP1NUQVRVU19TVUNDRVNTOw0KLQ0KLWN0bF9wcm9jZXNzKF9WYWwsIFsic2V0LXBh c3N3b3JkIiwgVXNlciwgU2VydmVyLCBQYXNzd29yZF0pIC0+DQotICAgIGVqYWJiZXJkX2F1dGg6 c2V0X3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpLA0KLSAgICA/U1RBVFVTX1NVQ0NF U1M7DQotDQotY3RsX3Byb2Nlc3MoX1ZhbCwgWyJ2Y2FyZC1nZXQiLCBVc2VyLCBTZXJ2ZXIsIERh dGFdKSAtPg0KLSAgICB7b2ssIFJlc30gPSB2Y2FyZF9nZXQoVXNlciwgU2VydmVyLCBbRGF0YV0p LA0KLSAgICBpbzpmb3JtYXQoIn5zfm4iLCBbUmVzXSksDQotICAgID9TVEFUVVNfU1VDQ0VTUzsN Ci0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbInZjYXJkLWdldCIsIFVzZXIsIFNlcnZlciwgRGF0YTEs IERhdGEyXSkgLT4NCi0gICAge29rLCBSZXN9ID0gdmNhcmRfZ2V0KFVzZXIsIFNlcnZlciwgW0Rh dGExLCBEYXRhMl0pLA0KLSAgICBpbzpmb3JtYXQoIn5zfm4iLCBbUmVzXSksDQotICAgID9TVEFU VVNfU1VDQ0VTUzsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbInZjYXJkLXNldCIsIFVzZXIsIFNl cnZlciwgRGF0YTEsIENvbnRlbnRdKSAtPg0KLSAgICB7b2ssIFJlc30gPSB2Y2FyZF9zZXQoVXNl ciwgU2VydmVyLCBbRGF0YTFdLCBDb250ZW50KSwNCi0gICAgaW86Zm9ybWF0KCJ+c35uIiwgW1Jl c10pLA0KLSAgICA/U1RBVFVTX1NVQ0NFU1M7DQotDQotY3RsX3Byb2Nlc3MoX1ZhbCwgWyJ2Y2Fy ZC1zZXQiLCBVc2VyLCBTZXJ2ZXIsIERhdGExLCBEYXRhMiwgQ29udGVudF0pIC0+DQotICAgIHtv aywgUmVzfSA9IHZjYXJkX3NldChVc2VyLCBTZXJ2ZXIsIFtEYXRhMSwgRGF0YTJdLCBDb250ZW50 KSwNCi0gICAgaW86Zm9ybWF0KCJ+c35uIiwgW1Jlc10pLA0KLSAgICA/U1RBVFVTX1NVQ0NFU1M7 DQotDQotY3RsX3Byb2Nlc3MoX1ZhbCwgWyJjb21waWxlIiwgTW9kdWxlXSkgLT4NCi0gICAgY29t cGlsZTpmaWxlKE1vZHVsZSksDQotICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0NCi1jdGxfcHJvY2Vz cyhfVmFsLCBbInJlbW92ZS1ub2RlIiwgTm9kZV0pIC0+DQotICAgIG1uZXNpYTpkZWxfdGFibGVf Y29weShzY2hlbWEsIGxpc3RfdG9fYXRvbShOb2RlKSksDQotICAgID9TVEFUVVNfU1VDQ0VTUzsN Ci0NCi0lJSBUaGUgRGlzcGxheSBhcmd1bWVudCBjYW4gYmUgc2V2ZXJhbCBncm91cHMgc2VwYXJh dGVkIHdpdGggLA0KLSUlIEV4YW1wbGU6IGVqYWJiZXJkY3RsIHNyZy1jcmVhdGUgYWEgbG9jYWxo b3N0IE5hbWUgRGVzYyBEaXNwbGF5MSxEaXNwbGF5MixEaXNwbGF5Mw0KLWN0bF9wcm9jZXNzKF9W YWwsIFsic3JnLWNyZWF0ZSIgfCBQYXJhbWV0ZXJzXSkgLT4NCi0JW0dyb3VwLCBIb3N0LCBOYW1l LCBEZXNjcmlwdGlvbiwgRGlzcGxheV0gPSBncm91cF9wYXJhbWV0ZXJzKFBhcmFtZXRlcnMsICIn IiksDQotICAgIERpc3BsYXlMaXN0ID0gc3RyaW5nOnRva2VucyhEaXNwbGF5LCAiLCIpLA0KLSAg ICBPcHRzID0gW3tuYW1lLCBOYW1lfSwge2Rpc3BsYXllZF9ncm91cHMsIERpc3BsYXlMaXN0fSwg e2Rlc2NyaXB0aW9uLCBEZXNjcmlwdGlvbn1dLA0KLSAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hh cmVkX3Jvc3RlcjpjcmVhdGVfZ3JvdXAoSG9zdCwgR3JvdXAsIE9wdHMpLA0KLSAgICA/U1RBVFVT X1NVQ0NFU1M7DQotDQotY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctZGVsZXRlIiwgR3JvdXAsIEhv c3RdKSAtPg0KLSAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpkZWxldGVfZ3Jv dXAoSG9zdCwgR3JvdXApLA0KLSAgICA/U1RBVFVTX1NVQ0NFU1M7DQotDQotY3RsX3Byb2Nlc3Mo X1ZhbCwgWyJzcmctdXNlci1hZGQiLCBVc2VyLCBTZXJ2ZXIsIEdyb3VwLCBIb3N0XSkgLT4NCi0g ICAge2F0b21pYywgb2t9ID0gbW9kX3NoYXJlZF9yb3N0ZXI6YWRkX3VzZXJfdG9fZ3JvdXAoSG9z dCwge1VzZXIsIFNlcnZlcn0sIEdyb3VwKSwNCi0gICAgP1NUQVRVU19TVUNDRVNTOw0KLQ0KLWN0 bF9wcm9jZXNzKF9WYWwsIFsic3JnLXVzZXItZGVsIiwgVXNlciwgU2VydmVyLCBHcm91cCwgSG9z dF0pIC0+DQotICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9zdGVyOnJlbW92ZV91c2Vy X2Zyb21fZ3JvdXAoSG9zdCwge1VzZXIsIFNlcnZlcn0sIEdyb3VwKSwNCi0gICAgP1NUQVRVU19T VUNDRVNTOw0KLQ0KLWN0bF9wcm9jZXNzKF9WYWwsIFsic3JnLWxpc3QtZ3JvdXBzIiwgSG9zdF0p IC0+DQotICAgIGxpc3RzOmZvcmVhY2goDQotICAgICAgZnVuKFNyZ0dyb3VwKSAtPg0KLQkgICAg ICBpbzpmb3JtYXQoIn5zfm4iLFtTcmdHcm91cF0pDQotICAgICAgZW5kLA0KLSAgICAgIGxpc3Rz OnNvcnQobW9kX3NoYXJlZF9yb3N0ZXI6bGlzdF9ncm91cHMoSG9zdCkpKSwNCi0gICAgP1NUQVRV U19TVUNDRVNTOw0KLQ0KLWN0bF9wcm9jZXNzKF9WYWwsIFsic3JnLWdldC1pbmZvIiwgR3JvdXAs IEhvc3RdKSAtPg0KLSAgICBPcHRzID0gbW9kX3NoYXJlZF9yb3N0ZXI6Z2V0X2dyb3VwX29wdHMo SG9zdCxHcm91cCksDQotICAgIFtpbzpmb3JtYXQoIn5zOiB+cH5uIiwgW1RpdGxlLCBWYWx1ZV0p IHx8IHtUaXRsZSAsIFZhbHVlfSA8LSBPcHRzXSwNCi0gICAgDQotICAgIE1lbWJlcnMgPSBtb2Rf c2hhcmVkX3Jvc3RlcjpnZXRfZ3JvdXBfZXhwbGljaXRfdXNlcnMoSG9zdCxHcm91cCksDQotICAg IE1lbWJlcnNfc3RyaW5nID0gWyAiICIgKysgamxpYjpqaWRfdG9fc3RyaW5nKGpsaWI6bWFrZV9q aWQoTVVzZXIsIE1TZXJ2ZXIsICIiKSkgDQotCQkgICAgICAgfHwge01Vc2VyLCBNU2VydmVyfSA8 LSBNZW1iZXJzXSwNCi0gICAgaW86Zm9ybWF0KCJtZW1iZXJzOn5zfm4iLCBbTWVtYmVyc19zdHJp bmddKSwNCi0gICAgDQotICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0NCi1jdGxfcHJvY2VzcyhfVmFs LCBbImFkZC1yb3N0ZXJpdGVtIiwgTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgUmVtb3RlVXNlciwg UmVtb3RlU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vic10pIC0+DQotICAgIGNhc2UgYWRkX3Jvc3Rl cml0ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgUmVtb3RlVXNlciwgUmVtb3RlU2VydmVyLCBO aWNrLCBHcm91cCwgbGlzdF90b19hdG9tKFN1YnMpLCBbXSkgb2YNCi0Je2F0b21pYywgb2t9IC0+ DQotCSAgICA/U1RBVFVTX1NVQ0NFU1M7DQotCXtlcnJvciwgUmVhc29ufSAtPg0KLQkgICAgaW86 Zm9ybWF0KCJDYW4ndCBhZGQgfnBAfnAgdG8gfnBAfnA6IH5wfm4iLA0KLQkJICAgICAgW1JlbW90 ZVVzZXIsIFJlbW90ZVNlcnZlciwgTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgUmVhc29uXSksDQot CSAgICA/U1RBVFVTX0VSUk9SOw0KLQl7YmFkcnBjLCBSZWFzb259IC0+DQotCSAgICBpbzpmb3Jt YXQoIkNhbid0IGFkZCByb3N0ZXIgaXRlbSB0byB1c2VyIH5wOiB+cH5uIiwNCi0JCSAgICAgIFtM b2NhbFVzZXIsIFJlYXNvbl0pLA0KLQkgICAgP1NUQVRVU19CQURSUEMNCi0gICAgZW5kOw0KLQ0K LWN0bF9wcm9jZXNzKF9WYWwsIFsicmVtLXJvc3Rlcml0ZW0iLCBMb2NhbFVzZXIsIExvY2FsU2Vy dmVyLCBSZW1vdGVVc2VyLCBSZW1vdGVTZXJ2ZXJdKSAtPg0KLSAgICBjYXNlIHJlbV9yb3N0ZXJp dGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlcikgb2YN Ci0Je2F0b21pYywgb2t9IC0+DQotCSAgICA/U1RBVFVTX1NVQ0NFU1M7DQotCXtlcnJvciwgUmVh c29ufSAtPg0KLQkgICAgaW86Zm9ybWF0KCJDYW4ndCByZW1vdmUgfnBAfnAgdG8gfnBAfnA6IH5w fm4iLA0KLQkJICAgICAgW1JlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTG9jYWxVc2VyLCBMb2Nh bFNlcnZlciwgUmVhc29uXSksDQotCSAgICA/U1RBVFVTX0VSUk9SOw0KLQl7YmFkcnBjLCBSZWFz b259IC0+DQotCSAgICBpbzpmb3JtYXQoIkNhbid0IHJlbW92ZSByb3N0ZXIgaXRlbSB0byB1c2Vy IH5wOiB+cH5uIiwNCi0JCSAgICAgIFtMb2NhbFVzZXIsIFJlYXNvbl0pLA0KLQkgICAgP1NUQVRV U19CQURSUEMNCi0gICAgZW5kOw0KLQ0KLWN0bF9wcm9jZXNzKF9WYWwsIFsicm9zdGVyaXRlbS1w dXJnZSJdKSAtPg0KLSAgICBpbzpmb3JtYXQoIlJvc3Rlcml0ZW1zIHRoYXQgbWF0Y2ggYWxsIHRo ZSBmaWx0ZXJpbmcgd2lsbCBiZSByZW1vdmVkLn5uIiksDQotICAgIGlvOmZvcm1hdCgiT3B0aW9u cyBmb3IgZmlsdGVyaW5nOn5uIiksDQotICAgIGlvOmZvcm1hdCgifm4iKSwNCi0gICAgaW86Zm9y bWF0KCIgIC1zdWJzIG5vbmV8ZnJvbXx0b3xib3Rofm4iKSwNCi0gICAgaW86Zm9ybWF0KCIgICAg ICAgU3Vic2NyaXB0aW9uIHR5cGUuIEJ5IGRlZmF1bHQgYWxsIHZhbHVlc35uIiksDQotICAgIGlv OmZvcm1hdCgifm4iKSwNCi0gICAgaW86Zm9ybWF0KCIgIC1hc2sgbm9uZXxvdXR8aW5+biIpLA0K LSAgICBpbzpmb3JtYXQoIiAgICAgICBQZW5kaW5nIHN1YnNjcmlwdGlvbi4gQnkgZGVmYXVsdCBh bGwgdmFsdWVzfm4iKSwNCi0gICAgaW86Zm9ybWF0KCJ+biIpLA0KLSAgICBpbzpmb3JtYXQoIiAg LXVzZXIgSklEfm4iKSwNCi0gICAgaW86Zm9ybWF0KCIgICAgICAgVGhlIEpJRCBvZiB0aGUgbG9j YWwgdXNlci5+biIpLA0KLSAgICBpbzpmb3JtYXQoIiAgICAgICBDYW4gdXNlIHRoZXNlIGdsb2Jz OiAqLCA/IGFuZCBbLi4uXS5+biIpLA0KLSAgICBpbzpmb3JtYXQoIiAgICAgICBCeSBkZWZhdWx0 IGl0IGlzOiAqICpAKn5uIiksDQotICAgIGlvOmZvcm1hdCgifm4iKSwNCi0gICAgaW86Zm9ybWF0 KCIgIC1jb250YWN0IEpJRH5uIiksDQotICAgIGlvOmZvcm1hdCgiICAgICAgIFNpbWlsYXIgdG8g J3VzZXInLCBidXQgZm9yIHRoZSBjb250YWN0IEpJRC5+biIpLA0KLSAgICBpbzpmb3JtYXQoIn5u IiksDQotICAgIGlvOmZvcm1hdCgiRXhhbXBsZTp+biIpLA0KLSAgICBpbzpmb3JtYXQoIiAgZWph YmJlcmRjdGwgcm9zdGVyaXRlbS1wdXJnZSAtc3VicyBub25lIGZyb20gdG8gLWFzayBvdXQgaW4g LWNvbnRhY3QgKkAqaWNxKn5uIiksDQotICAgIGlvOmZvcm1hdCgifm4iKSwNCi0gICAgP1NUQVRV U19TVUNDRVNTOw0KLWN0bF9wcm9jZXNzKF9WYWwsIFsicm9zdGVyaXRlbS1wdXJnZSIgfCBPcHRp b25zX2xpc3RdKSAtPg0KLSAgICBPcHRpb25zX3Byb3BfbGlzdCA9IGxpc3RzOmZvbGRsKA0KLQkJ CSAgZnVuKE8sIFIpIC0+DQotCQkJCSAgY2FzZSBPIG9mDQotCQkJCSAgICAgIFskLSB8IEtdIC0+ DQotCQkJCQkgIFt7SywgW119IHwgUl07DQotCQkJCSAgICAgIFYgLT4NCi0JCQkJCSAgW3tLLCBW c30gfCBSVF0gPSBSLA0KLQkJCQkJICBbe0ssIFtWfFZzXX0gfCBSVF0NCi0JCQkJICBlbmQNCi0J CQkgIGVuZCwNCi0JCQkgIFtdLA0KLQkJCSAgT3B0aW9uc19saXN0KSwNCi0gICAgDQotICAgIFN1 YnMgPSBbbGlzdF90b19hdG9tKFMpDQotCSAgICB8fCBTIDwtIHByb3BsaXN0czpnZXRfdmFsdWUo InN1YnMiLCANCi0JCQkJCU9wdGlvbnNfcHJvcF9saXN0LCANCi0JCQkJCVsibm9uZSIsICJmcm9t IiwgInRvIiwgImJvdGgiXSldLA0KLSAgICBBc2tzID0gW2xpc3RfdG9fYXRvbShTKQ0KLQkgICAg fHwgUyA8LSANCi0JCSAgIHByb3BsaXN0czpnZXRfdmFsdWUoImFzayIsDQotCQkJCSAgICAgICBP cHRpb25zX3Byb3BfbGlzdCwgDQotCQkJCSAgICAgICBbIm5vbmUiLCAib3V0IiwgImluIl0pXSwN Ci0gICAgVXNlciA9IHByb3BsaXN0czpnZXRfdmFsdWUoInVzZXIiLCBPcHRpb25zX3Byb3BfbGlz dCwgWyIqIiwgIipAKiJdKSwNCi0gICAgQ29udGFjdCA9IHByb3BsaXN0czpnZXRfdmFsdWUoImNv bnRhY3QiLCBPcHRpb25zX3Byb3BfbGlzdCwgWyIqIiwgIipAKiJdKSwNCi0gICAgDQotICAgIGNh c2Ugcm9zdGVyaXRlbV9wdXJnZSh7U3VicywgQXNrcywgVXNlciwgQ29udGFjdH0pIG9mDQotCXth dG9taWMsIG9rfSAtPg0KLQkgICAgP1NUQVRVU19TVUNDRVNTOw0KLQl7ZXJyb3IsIFJlYXNvbn0g LT4NCi0JICAgIGlvOmZvcm1hdCgiRXJyb3IgcHVyZ2luZyByb3N0ZXJpdGVtczogfnB+biIsDQot CQkgICAgICBbUmVhc29uXSksDQotCSAgICA/U1RBVFVTX0VSUk9SOw0KLQl7YmFkcnBjLCBSZWFz b259IC0+DQotCSAgICBpbzpmb3JtYXQoIkJhZFJQQyBwdXJnaW5nIHJvc3Rlcml0ZW1zOiB+cH5u IiwNCi0JCSAgICAgIFtSZWFzb25dKSwNCi0JICAgID9TVEFUVVNfQkFEUlBDDQotICAgIGVuZDsN Ci0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbInB1c2hyb3N0ZXIiLCBGaWxlLCBVc2VyLCBTZXJ2ZXJd KSAtPg0KLSAgICBjYXNlIHB1c2hyb3N0ZXIoRmlsZSwgVXNlciwgU2VydmVyKSBvZg0KLQlvayAt Pg0KLQkgICAgP1NUQVRVU19TVUNDRVNTOw0KLQl7ZXJyb3IsIFJlYXNvbn0gLT4NCi0JICAgIGlv OmZvcm1hdCgiQ2FuJ3QgcHVzaCByb3N0ZXIgfnAgdG8gfnBAfnA6IH5wfm4iLA0KLQkJICAgICAg W0ZpbGUsIFVzZXIsIFNlcnZlciwgUmVhc29uXSksDQotCSAgICA/U1RBVFVTX0VSUk9SOw0KLQl7 YmFkcnBjLCBSZWFzb259IC0+DQotCSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggcm9zdGVyIH5w OiB+cH5uIiwNCi0JCSAgICAgIFtGaWxlLCBSZWFzb25dKSwNCi0JICAgID9TVEFUVVNfQkFEUlBD DQotICAgIGVuZDsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbInB1c2hyb3N0ZXItYWxsIiwgRmls ZV0pIC0+DQotICAgIGNhc2UgcHVzaHJvc3Rlcl9hbGwoW0ZpbGVdKSBvZg0KLQlvayAtPg0KLQkg ICAgP1NUQVRVU19TVUNDRVNTOw0KLQl7ZXJyb3IsIFJlYXNvbn0gLT4NCi0JICAgIGlvOmZvcm1h dCgiQ2FuJ3QgcHVzaCByb3N0ZXIgfnA6IH5wfm4iLA0KLQkJICAgICAgW0ZpbGUsIFJlYXNvbl0p LA0KLQkgICAgP1NUQVRVU19FUlJPUjsNCi0Je2JhZHJwYywgUmVhc29ufSAtPg0KLQkgICAgaW86 Zm9ybWF0KCJDYW4ndCBwdXNoIHJvc3RlciB+cDogfnB+biIsDQotCQkgICAgICBbRmlsZSwgUmVh c29uXSksDQotCSAgICA/U1RBVFVTX0JBRFJQQw0KLSAgICBlbmQ7DQotDQotY3RsX3Byb2Nlc3Mo X1ZhbCwgWyJwdXNoLWFsbHRvYWxsIiwgU2VydmVyLCBHcm91cF0pIC0+DQotICAgIGNhc2UgcHVz aF9hbGx0b2FsbChTZXJ2ZXIsIEdyb3VwKSBvZg0KLQlvayAtPg0KLQkgICAgP1NUQVRVU19TVUND RVNTOw0KLQl7ZXJyb3IsIFJlYXNvbn0gLT4NCi0JICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCBh bGwgdG8gYWxsOiB+cH5uIiwNCi0JCSAgICAgIFtSZWFzb25dKSwNCi0JICAgID9TVEFUVVNfRVJS T1I7DQotCXtiYWRycGMsIFJlYXNvbn0gLT4NCi0JICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCBh bGwgdG8gYWxsOiB+cH5uIiwNCi0JCSAgICAgIFtSZWFzb25dKSwNCi0JICAgID9TVEFUVVNfQkFE UlBDDQotICAgIGVuZDsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbImxvYWQtY29uZmlnIiwgUGF0 aF0pIC0+DQotICAgIGNhc2UgY2F0Y2ggZWphYmJlcmRfY29uZmlnOmxvYWRfZmlsZShQYXRoKSBv Zg0KLSAgICAgICAgb2sgLT4NCi0gICAgICAgICAgICA/U1RBVFVTX1NVQ0NFU1M7DQotICAgICAg ICB7J0VYSVQnLCBSZWFzb259IC0+DQotICAgICAgICAgICAgaW86Zm9ybWF0KCJQcm9ibGVtIGxv YWRpbmcgY29uZmlnIGZpbGUgfnA6IH5wfm4iLA0KLSAgICAgICAgICAgICAgICAgICAgICBbZmls ZW5hbWU6YWJzbmFtZShQYXRoKSwgUmVhc29uXSksDQotCSAgICA/U1RBVFVTX0VSUk9SOw0KLSAg ICAgICAge2JhZHJwYywgUmVhc29ufSAtPg0KLSAgICAgICAgICAgIGlvOmZvcm1hdCgiQ2FuJ3Qg bG9hZCBjb25maWcgZmlsZSB+cDogfnB+biIsDQotICAgICAgICAgICAgICAgICAgICAgIFtmaWxl bmFtZTphYnNuYW1lKFBhdGgpLCBSZWFzb25dKSwNCi0JICAgID9TVEFUVVNfQkFEUlBDDQotICAg IGVuZDsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbInN0YXRzIiwgU3RhdF0pIC0+DQotICAgIFJl cyA9IGNhc2UgU3RhdCBvZg0KLQkgICAgICAidXB0aW1lLXNlY29uZHMiIC0+IHVwdGltZV9zZWNv bmRzKCk7DQotCSAgICAgICJyZWdpc3RlcmVkdXNlcnMiIC0+IGxlbmd0aChlamFiYmVyZF9hdXRo OmRpcnR5X2dldF9yZWdpc3RlcmVkX3VzZXJzKCkpOw0KLQkgICAgICAib25saW5ldXNlcnNub2Rl IiAtPiBsZW5ndGgoZWphYmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xpc3QoKSk7DQot CSAgICAgICJvbmxpbmV1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmRpcnR5X2dldF9zZXNz aW9uc19saXN0KCkpDQotCSAgZW5kLA0KLSAgICBpbzpmb3JtYXQoIn5wfm4iLCBbUmVzXSksDQot ICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBbInN0YXR1cy1udW0i LCBTdGF0dXNfcmVxdWlyZWRdKSAtPg0KLSAgICBjdGxfcHJvY2VzcyhfVmFsLCAiYWxsIiwgWyJz dGF0dXMtbnVtIiwgU3RhdHVzX3JlcXVpcmVkXSk7DQotDQotY3RsX3Byb2Nlc3MoX1ZhbCwgWyJz dGF0dXMtbGlzdCIsIFN0YXR1c19yZXF1aXJlZF0pIC0+DQotICAgIGN0bF9wcm9jZXNzKF9WYWws ICJhbGwiLCBbInN0YXR1cy1saXN0IiwgU3RhdHVzX3JlcXVpcmVkXSk7DQotDQotY3RsX3Byb2Nl c3MoX1ZhbCwgWyJnZXQtY29va2llIl0pIC0+DQotICAgIGlvOmZvcm1hdCgifnN+biIsIFthdG9t X3RvX2xpc3QoZXJsYW5nOmdldF9jb29raWUoKSldKSwNCi0gICAgP1NUQVRVU19TVUNDRVNTOw0K LQ0KLWN0bF9wcm9jZXNzKF9WYWwsIFsia2lsbHNlc3Npb24iLCBVc2VyLCBTZXJ2ZXIsIFJlc291 cmNlIHwgVGFpbF0pIC0+DQotICAgIGtpY2tfc2Vzc2lvbihVc2VyLCBTZXJ2ZXIsIFJlc291cmNl LCBwcmVwYXJlX3JlYXNvbihUYWlsKSksDQotICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0NCi1jdGxf cHJvY2VzcyhWYWwsIF9BcmdzKSAtPg0KLSAgICBWYWwuDQotDQotDQotJSUtLS0tLS0tLS0tLS0t DQotJSUgQ29tbWFuZHMgdmhvc3QNCi0lJS0tLS0tLS0tLS0tLS0NCi0NCi1jdGxfcHJvY2Vzcyhf VmFsLCBIb3N0LCBbIm51bS1hY3RpdmUtdXNlcnMiLCBEYXlzXSkgLT4NCi0gICAgTnVtYmVyID0g bnVtX2FjdGl2ZV91c2VycyhIb3N0LCBsaXN0X3RvX2ludGVnZXIoRGF5cykpLA0KLSAgICBpbzpm b3JtYXQoIn5wfm4iLCBbTnVtYmVyXSksDQotICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0NCi1jdGxf cHJvY2VzcyhfVmFsLCBIb3N0LCBbInN0YXRzIiwgU3RhdF0pIC0+DQotICAgIFJlcyA9IGNhc2Ug U3RhdCBvZg0KLQkgICAgICAicmVnaXN0ZXJlZHVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRfYXV0 aDpnZXRfdmhfcmVnaXN0ZXJlZF91c2VycyhIb3N0KSk7DQotCSAgICAgICJvbmxpbmV1c2VycyIg LT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmdldF92aF9zZXNzaW9uX2xpc3QoSG9zdCkpDQotCSAgZW5k LA0KLSAgICBpbzpmb3JtYXQoIn5wfm4iLCBbUmVzXSksDQotICAgID9TVEFUVVNfU1VDQ0VTUzsN Ci0NCi1jdGxfcHJvY2VzcyhfVmFsLCBIb3N0LCBbInN0YXR1cy1udW0iLCBTdGF0dXNfcmVxdWly ZWRdKSAtPg0KLSAgICBOdW0gPSBsZW5ndGgoZ2V0X3N0YXR1c19saXN0KEhvc3QsIFN0YXR1c19y ZXF1aXJlZCkpLA0KLSAgICBpbzpmb3JtYXQoIn5wfm4iLCBbTnVtXSksDQotICAgID9TVEFUVVNf U1VDQ0VTUzsNCi0NCi1jdGxfcHJvY2VzcyhfVmFsLCBIb3N0LCBbInN0YXR1cy1saXN0IiwgU3Rh dHVzX3JlcXVpcmVkXSkgLT4NCi0gICAgUmVzID0gZ2V0X3N0YXR1c19saXN0KEhvc3QsIFN0YXR1 c19yZXF1aXJlZCksDQotICAgIFsgaW86Zm9ybWF0KCJ+c0B+cyB+cyB+cCBcIn5zXCJ+biIsIFtV LCBTLCBSLCBQLCBTdF0pIHx8IHtVLCBTLCBSLCBQLCBTdH0gPC0gUmVzXSwNCi0gICAgP1NUQVRV U19TVUNDRVNTOw0KLQ0KLWN0bF9wcm9jZXNzKF9WYWwsIEhvc3QsIFsiYmFuLWFjY291bnQiLCBV c2VyIHwgVGFpbF0pIC0+DQotICAgIGJhbl9hY2NvdW50KFVzZXIsIEhvc3QsIHByZXBhcmVfcmVh c29uKFRhaWwpKSwNCi0gICAgP1NUQVRVU19TVUNDRVNTOw0KLQ0KLWN0bF9wcm9jZXNzKFZhbCwg X0hvc3QsIF9BcmdzKSAtPg0KLSAgICBWYWwuDQotDQotDQotJSUtLS0tLS0tLS0tLS0tDQotJSUg VXRpbHMNCi0lJS0tLS0tLS0tLS0tLS0NCi0NCi11cHRpbWVfc2Vjb25kcygpIC0+DQotICAgIHRy dW5jKGVsZW1lbnQoMSwgZXJsYW5nOnN0YXRpc3RpY3Mod2FsbF9jbG9jaykpLzEwMDApLg0KLQ0K LWdldF9zdGF0dXNfbGlzdChIb3N0LCBTdGF0dXNfcmVxdWlyZWQpIC0+DQotICAgICUlIEdldCBs aXN0IG9mIGFsbCBsb2dnZWQgdXNlcnMNCi0gICAgU2Vzc2lvbnMgPSBlamFiYmVyZF9zbTpkaXJ0 eV9nZXRfbXlfc2Vzc2lvbnNfbGlzdCgpLA0KLSAgICAlJSBSZWZvcm1hdCB0aGUgbGlzdA0KLSAg ICBTZXNzaW9uczIgPSBbIHtTZXNzaW9uI3Nlc3Npb24udXNyLCBTZXNzaW9uI3Nlc3Npb24uc2lk LCBTZXNzaW9uI3Nlc3Npb24ucHJpb3JpdHl9IHx8IFNlc3Npb24gPC0gU2Vzc2lvbnNdLA0KLSAg ICBGaG9zdCA9IGNhc2UgSG9zdCBvZg0KLQkJImFsbCIgLT4NCi0JCSAgICAlJSBBbGwgaG9zdHMg YXJlIHJlcXVlc3RlZCwgc28gZG9udCBmaWx0ZXIgYXQgYWxsDQotCQkgICAgZnVuKF8sIF8pIC0+ IHRydWUgZW5kOw0KLQkJXyAtPg0KLQkJICAgICUlIEZpbHRlciB0aGUgbGlzdCwgb25seSBIb3N0 IGlzIGludGVyZXN0aW5nDQotCQkgICAgZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQNCi0JICAgIGVu ZCwNCi0gICAgU2Vzc2lvbnMzID0gWyB7UGlkLCBTZXJ2ZXIsIFByaW9yaXR5fSB8fCB7e19Vc2Vy LCBTZXJ2ZXIsIF9SZXNvdXJjZX0sIHtfLCBQaWR9LCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMyLCBh cHBseShGaG9zdCwgW1NlcnZlciwgSG9zdF0pXSwNCi0gICAgJSUgRm9yIGVhY2ggUGlkLCBnZXQg aXRzIHByZXNlbmNlDQotICAgIFNlc3Npb25zNCA9IFsge2VqYWJiZXJkX2MyczpnZXRfcHJlc2Vu Y2UoUGlkKSwgU2VydmVyLCBQcmlvcml0eX0gfHwge1BpZCwgU2VydmVyLCBQcmlvcml0eX0gPC0g U2Vzc2lvbnMzXSwNCi0gICAgJSUgRmlsdGVyIGJ5IHN0YXR1cw0KLSAgICBGc3RhdHVzID0gY2Fz ZSBTdGF0dXNfcmVxdWlyZWQgb2YNCi0JCSAgImFsbCIgLT4NCi0JCSAgICAgIGZ1bihfLCBfKSAt PiB0cnVlIGVuZDsNCi0JCSAgXyAtPg0KLQkJICAgICAgZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQN Ci0JICAgICAgZW5kLA0KLSAgICBbe1VzZXIsIFNlcnZlciwgUmVzb3VyY2UsIFByaW9yaXR5LCBz dHJpbmdpemUoU3RhdHVzX3RleHQpfSANCi0gICAgIHx8IHt7VXNlciwgUmVzb3VyY2UsIFN0YXR1 cywgU3RhdHVzX3RleHR9LCBTZXJ2ZXIsIFByaW9yaXR5fSA8LSBTZXNzaW9uczQsIA0KLQlhcHBs eShGc3RhdHVzLCBbU3RhdHVzLCBTdGF0dXNfcmVxdWlyZWRdKV0uDQotDQotJSUgTWFrZSBzdHJp bmcgbW9yZSBwcmludC1mcmllbmRseQ0KLXN0cmluZ2l6ZShTdHJpbmcpIC0+DQotICAgICUlIFJl cGxhY2UgbmV3bGluZSBjaGFyYWN0ZXJzIHdpdGggb3RoZXIgY29kZQ0KLSAgICBlbGVtZW50KDIs IHJlZ2V4cDpnc3ViKFN0cmluZywgIlxuIiwgIlxcbiIpKS4NCi0NCi1hZGRfcm9zdGVyaXRlbShM VSwgTFMsIFJVLCBSUywgTmljaywgR3JvdXAsIFN1YnNjcmlwdGlvbiwgWGF0dHJzKSAtPg0KLSAg ICBzdWJzY3JpYmUoTFUsIExTLCBSVSwgUlMsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIFhh dHRycyksDQotICAgIHJvdXRlX3Jvc3Rlcml0ZW0oTFUsIExTLCBSVSwgUlMsIE5pY2ssIEdyb3Vw LCBTdWJzY3JpcHRpb24pLA0KLSAgICB7YXRvbWljLCBva30uDQotDQotc3Vic2NyaWJlKExvY2Fs VXNlciwgTG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTmljaywgR3JvdXAs IFN1YnNjcmlwdGlvbiwgWGF0dHJzKSAtPg0KLSAgICBSID0gI3Jvc3Rlcnt1c2ogPSB7TG9jYWxV c2VyLExvY2FsU2VydmVyLHtSZW1vdGVVc2VyLFJlbW90ZVNlcnZlcixbXX19LA0KLQkJdXMgPSB7 TG9jYWxVc2VyLExvY2FsU2VydmVyfSwNCi0JCWppZCA9IHtSZW1vdGVVc2VyLFJlbW90ZVNlcnZl cixbXX0sDQotCQluYW1lID0gTmljaywNCi0JCXN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbiwg JSBub25lLCB0bz15b3Ugc2VlIGhpbSwgZnJvbT1oZSBzZWVzIHlvdSwgYm90aA0KLQkJYXNrID0g bm9uZSwgJSBvdXQ9c2VuZCByZXF1ZXN0LCBpbj1zb21lYm9keSByZXF1ZXN0cyB5b3UsIG5vbmUN Ci0JCWdyb3VwcyA9IFtHcm91cF0sDQotCQlhc2ttZXNzYWdlID0gWGF0dHJzLCAlIGV4YW1wbGU6 IFt7ImNhdGVnb3J5IiwiY29uZmVyZW5jZSJ9XQ0KLQkJeHMgPSBbXX0sDQotICAgIG1uZXNpYTp0 cmFuc2FjdGlvbihmdW4oKSAtPiBtbmVzaWE6d3JpdGUoUikgZW5kKS4NCi0NCi1yZW1fcm9zdGVy aXRlbShMVSwgTFMsIFJVLCBSUykgLT4NCi0gICAgdW5zdWJzY3JpYmUoTFUsIExTLCBSVSwgUlMp LA0KLSAgICByb3V0ZV9yb3N0ZXJpdGVtKExVLCBMUywgUlUsIFJTLCAiIiwgIiIsICJyZW1vdmUi KSwNCi0gICAge2F0b21pYywgb2t9Lg0KLQ0KLXVuc3Vic2NyaWJlKExvY2FsVXNlciwgTG9jYWxT ZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlcikgLT4NCi0gICAgS2V5ID0ge3tMb2NhbFVz ZXIsTG9jYWxTZXJ2ZXIse1JlbW90ZVVzZXIsUmVtb3RlU2VydmVyLFtdfX0sDQotCSAgIHtMb2Nh bFVzZXIsTG9jYWxTZXJ2ZXJ9fSwNCi0gICAgbW5lc2lhOnRyYW5zYWN0aW9uKGZ1bigpIC0+IG1u ZXNpYTpkZWxldGUocm9zdGVyLCBLZXksIHdyaXRlKSBlbmQpLg0KLQ0KLXJvdXRlX3Jvc3Rlcml0 ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgUmVtb3RlVXNlciwgUmVtb3RlU2VydmVyLCBOaWNr LCBHcm91cCwgU3Vic2NyaXB0aW9uKSAtPg0KLSAgICBMSklEID0gamxpYjptYWtlX2ppZChMb2Nh bFVzZXIsIExvY2FsU2VydmVyLCAiIiksDQotICAgIFJKSUQgPSBqbGliOm1ha2VfamlkKFJlbW90 ZVVzZXIsIFJlbW90ZVNlcnZlciwgIiIpLA0KLSAgICBUb1MgPSBqbGliOmppZF90b19zdHJpbmco TEpJRCksDQotICAgIEl0ZW1KSURTID0gamxpYjpqaWRfdG9fc3RyaW5nKFJKSUQpLA0KLSAgICBH cm91cFhNTCA9IHt4bWxlbGVtZW50LCAiZ3JvdXAiLCBbXSwgW3t4bWxjZGF0YSwgR3JvdXB9XX0s DQotICAgIEl0ZW0gPSB7eG1sZWxlbWVudCwgIml0ZW0iLCANCi0JICAgIFt7ImppZCIsIEl0ZW1K SURTfSwNCi0JICAgICB7Im5hbWUiLCBOaWNrfSwNCi0JICAgICB7InN1YnNjcmlwdGlvbiIsIFN1 YnNjcmlwdGlvbn1dLCANCi0JICAgIFtHcm91cFhNTF19LA0KLSAgICBRdWVyeSA9IHt4bWxlbGVt ZW50LCAicXVlcnkiLCBbeyJ4bWxucyIsID9OU19ST1NURVJ9XSwgW0l0ZW1dfSwNCi0gICAgUGFj a2V0ID0ge3htbGVsZW1lbnQsICJpcSIsIFt7InR5cGUiLCAic2V0In0sIHsidG8iLCBUb1N9XSwg W1F1ZXJ5XX0sDQotICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShMSklELCBMSklELCBQYWNrZXQp Lg0KLQ0KLQ0KLSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0lJSBCYW4gdXNlcg0K LSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi0NCi1iYW5fYWNjb3VudChVc2VyLCBT ZXJ2ZXIsIFJlYXNvbikgLT4NCi0gICAga2lja19zZXNzaW9ucyhVc2VyLCBTZXJ2ZXIsIFJlYXNv biksDQotICAgIHNldF9yYW5kb21fcGFzc3dvcmQoVXNlciwgU2VydmVyLCBSZWFzb24pLg0KLQ0K LWtpY2tfc2Vzc2lvbnMoVXNlciwgU2VydmVyLCBSZWFzb24pIC0+DQotICAgIGxpc3RzOm1hcCgN Ci0gICAgICBmdW4oUmVzb3VyY2UpIC0+DQotCSAgICAgIGtpY2tfc2Vzc2lvbihVc2VyLCBTZXJ2 ZXIsIFJlc291cmNlLCBSZWFzb24pDQotICAgICAgZW5kLA0KLSAgICAgIGdldF9yZXNvdXJjZXMo VXNlciwgU2VydmVyKSkuDQotDQota2lja19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2Us IFJlYXNvbikgLT4NCi0gICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKA0KLSAgICAgIGpsaWI6bWFr ZV9qaWQoIiIsICIiLCAiIiksDQotICAgICAgamxpYjptYWtlX2ppZChVc2VyLCBTZXJ2ZXIsIFJl c291cmNlKSwNCi0gICAgICB7eG1sZWxlbWVudCwgImJyb2FkY2FzdCIsIFtdLCBbe2V4aXQsIFJl YXNvbn1dfSkuDQotDQotZ2V0X3Jlc291cmNlcyhVc2VyLCBTZXJ2ZXIpIC0+DQotICAgIGxpc3Rz Om1hcCgNCi0gICAgICBmdW4oU2Vzc2lvbikgLT4NCi0JICAgICAgZWxlbWVudCgzLCBTZXNzaW9u I3Nlc3Npb24udXNyKQ0KLSAgICAgIGVuZCwNCi0gICAgICBnZXRfc2Vzc2lvbnMoVXNlciwgU2Vy dmVyKSkuDQotDQotZ2V0X3Nlc3Npb25zKFVzZXIsIFNlcnZlcikgLT4NCi0gICAgTFVzZXIgPSBq bGliOm5vZGVwcmVwKFVzZXIpLA0KLSAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIp LA0KLSAgICBTZXNzaW9ucyA9ICBtbmVzaWE6ZGlydHlfaW5kZXhfcmVhZChzZXNzaW9uLCB7TFVz ZXIsIExTZXJ2ZXJ9LCAjc2Vzc2lvbi51cyksDQotICAgIHRydWUgPSBpc19saXN0KFNlc3Npb25z KSwNCi0gICAgU2Vzc2lvbnMuDQotDQotc2V0X3JhbmRvbV9wYXNzd29yZChVc2VyLCBTZXJ2ZXIs IFJlYXNvbikgLT4NCi0gICAgTmV3UGFzcyA9IGJ1aWxkX3JhbmRvbV9wYXNzd29yZChSZWFzb24p LA0KLSAgICBzZXRfcGFzc3dvcmQoVXNlciwgU2VydmVyLCBOZXdQYXNzKS4NCi0NCi1idWlsZF9y YW5kb21fcGFzc3dvcmQoUmVhc29uKSAtPg0KLSAgICBEYXRlID0gamxpYjp0aW1lc3RhbXBfdG9f aXNvKGNhbGVuZGFyOnVuaXZlcnNhbF90aW1lKCkpLA0KLSAgICBSYW5kb21TdHJpbmcgPSByYW5k b21zOmdldF9zdHJpbmcoKSwNCi0gICAgIkJBTk5FRF9BQ0NPVU5ULS0iICsrIERhdGUgKysgIi0t IiArKyBSYW5kb21TdHJpbmcgKysgIi0tIiArKyBSZWFzb24uDQotDQotc2V0X3Bhc3N3b3JkKFVz ZXIsIFNlcnZlciwgUGFzc3dvcmQpIC0+DQotICAgIHthdG9taWMsIG9rfSA9IGVqYWJiZXJkX2F1 dGg6c2V0X3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpLg0KLQ0KLXByZXBhcmVfcmVh c29uKFtdKSAtPg0KLSAgICAiS2lja2VkIGJ5IGFkbWluaXN0cmF0b3IiOw0KLXByZXBhcmVfcmVh c29uKFtSZWFzb25dKSAtPg0KLSAgICBSZWFzb247DQotcHJlcGFyZV9yZWFzb24oU3RyaW5nTGlz dCkgLT4NCi0gICAgc3RyaW5nOmpvaW4oU3RyaW5nTGlzdCwgIl8iKS4NCi0NCi0NCi0lJS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotJSUgUHVyZ2Ugcm9zdGVyIGl0ZW1zDQotJSUtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLQ0KLXJvc3Rlcml0ZW1fcHVyZ2UoT3B0aW9ucykg LT4NCi0gICAgTnVtX3Jvc3Rlcml0ZW1zID0gbW5lc2lhOnRhYmxlX2luZm8ocm9zdGVyLCBzaXpl KSwNCi0gICAgaW86Zm9ybWF0KCJUaGVyZSBhcmUgfnAgcm9zdGVyIGl0ZW1zIGluIHRvdGFsLn5u IiwgW051bV9yb3N0ZXJpdGVtc10pLA0KLSAgICBLZXkgPSBtbmVzaWE6ZGlydHlfZmlyc3Qocm9z dGVyKSwNCi0gICAgb2sgPSByaXAoS2V5LCBPcHRpb25zLCB7MCwgTnVtX3Jvc3Rlcml0ZW1zLCAw LCAwfSksDQotICAgIHthdG9taWMsIG9rfS4NCi0NCi1yaXAoJyRlbmRfb2ZfdGFibGUnLCBfT3B0 aW9ucywgQ291bnRlcnMpIC0+DQotICAgIHByaW50X3Byb2dyZXNzX2xpbmUoQ291bnRlcnMpLA0K LSAgICBvazsNCi1yaXAoS2V5LCBPcHRpb25zLCB7UHIsIE5ULCBOViwgTkR9KSAtPg0KLSAgICBL ZXlfbmV4dCA9IG1uZXNpYTpkaXJ0eV9uZXh0KHJvc3RlciwgS2V5KSwNCi0gICAgTkQyID0gY2Fz ZSBkZWNpZGVfcmlwKEtleSwgT3B0aW9ucykgb2YNCi0JICAgICAgdHJ1ZSAtPg0KLQkJICBtbmVz aWE6ZGlydHlfZGVsZXRlKHJvc3RlciwgS2V5KSwNCi0JCSAgTkQrMTsNCi0JICAgICAgZmFsc2Ug LT4NCi0JCSAgTkQNCi0JICBlbmQsDQotICAgIE5WMiA9IE5WKzEsDQotICAgIFByMiA9IHByaW50 X3Byb2dyZXNzX2xpbmUoe1ByLCBOVCwgTlYyLCBORDJ9KSwNCi0gICAgcmlwKEtleV9uZXh0LCBP cHRpb25zLCB7UHIyLCBOVCwgTlYyLCBORDJ9KS4NCi0NCi1wcmludF9wcm9ncmVzc19saW5lKHtQ ciwgTlQsIE5WLCBORH0pIC0+DQotICAgIFByMiA9IHRydW5jKChOVi9OVCkqMTAwKSwNCi0gICAg Y2FzZSBQciA9PSBQcjIgb2YNCi0JdHJ1ZSAtPg0KLQkgICAgb2s7DQotCWZhbHNlIC0+DQotCSAg ICBpbzpmb3JtYXQoIlByb2dyZXNzIH5wJSAtIHZpc2l0ZWQgfnAgLSBkZWxldGVkIH5wfm4iLCBb UHIyLCBOViwgTkRdKQ0KLSAgICBlbmQsDQotICAgIFByMi4NCi0NCi1kZWNpZGVfcmlwKEtleSwg e1N1YnMsIEFza3MsIFVzZXIsIENvbnRhY3R9KSAtPg0KLSAgICBjYXNlIGNhdGNoIG1uZXNpYTpk aXJ0eV9yZWFkKHJvc3RlciwgS2V5KSBvZg0KLQlbUkldIC0+DQotCSAgICBsaXN0czptZW1iZXIo Ukkjcm9zdGVyLnN1YnNjcmlwdGlvbiwgU3VicykNCi0JCWFuZGFsc28gbGlzdHM6bWVtYmVyKFJJ I3Jvc3Rlci5hc2ssIEFza3MpDQotCQlhbmRhbHNvIGRlY2lkZV9yaXBfamlkKFJJI3Jvc3Rlci51 cywgVXNlcikNCi0JCWFuZGFsc28gZGVjaWRlX3JpcF9qaWQoUkkjcm9zdGVyLmppZCwgQ29udGFj dCk7DQotCV8gLT4NCi0JICAgIGZhbHNlDQotICAgIGVuZC4NCi0NCi0lJSBSZXR1cm5zIHRydWUg aWYgdGhlIHNlcnZlciBvZiB0aGUgSklEIGlzIGluY2x1ZGVkIGluIHRoZSBzZXJ2ZXJzDQotZGVj aWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyLCBfVVJlc291cmNlfSwgTWF0Y2hfbGlzdCkgLT4N Ci0gICAgZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0Y2hfbGlzdCk7DQotZGVj aWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0Y2hfbGlzdCkgLT4NCi0gICAgbGlzdHM6 YW55KA0KLSAgICAgIGZ1bihNYXRjaF9zdHJpbmcpIC0+DQotCSAgICAgIE1KSUQgPSBqbGliOnN0 cmluZ190b19qaWQoTWF0Y2hfc3RyaW5nKSwNCi0JICAgICAgTU5hbWUgPSBNSklEI2ppZC5sdXNl ciwNCi0JICAgICAgTVNlcnZlciA9IE1KSUQjamlkLmxzZXJ2ZXIsDQotCSAgICAgIElzX3NlcnZl ciA9IGlzX2dsb2JfbWF0Y2goVVNlcnZlciwgTVNlcnZlciksDQotCSAgICAgIGNhc2UgTU5hbWUg b2YNCi0JCSAgW10gd2hlbiBVTmFtZSA9PSBbXSAtPg0KLQkJICAgICAgSXNfc2VydmVyOw0KLQkJ ICBbXSAtPg0KLQkJICAgICAgZmFsc2U7DQotCQkgIF8gLT4NCi0JCSAgICAgIElzX3NlcnZlcg0K LQkJCSAgYW5kYWxzbyBpc19nbG9iX21hdGNoKFVOYW1lLCBNTmFtZSkNCi0JICAgICAgZW5kDQot ICAgICAgZW5kLA0KLSAgICAgIE1hdGNoX2xpc3QpLg0KLQ0KLSUlIENvcGllZCBmcm9tIGVqYWJi ZXJkLTIuMC4wL3NyYy9hY2wuZXJsDQotaXNfcmVnZXhwX21hdGNoKFN0cmluZywgUmVnRXhwKSAt Pg0KLSAgICBjYXNlIHJlZ2V4cDpmaXJzdF9tYXRjaChTdHJpbmcsIFJlZ0V4cCkgb2YNCi0Jbm9t YXRjaCAtPg0KLQkgICAgZmFsc2U7DQotCXttYXRjaCwgXywgX30gLT4NCi0JICAgIHRydWU7DQot CXtlcnJvciwgRXJyRGVzY30gLT4NCi0JICAgIGlvOmZvcm1hdCgNCi0JICAgICAgIldyb25nIHJl Z2V4cCB+cCBpbiBBQ0w6IH5wIiwNCi0JICAgICAgW1JlZ0V4cCwgbGlzdHM6ZmxhdHRlbihyZWdl eHA6Zm9ybWF0X2Vycm9yKEVyckRlc2MpKV0pLA0KLQkgICAgZmFsc2UNCi0gICAgZW5kLg0KLWlz X2dsb2JfbWF0Y2goU3RyaW5nLCBHbG9iKSAtPg0KLSAgICBpc19yZWdleHBfbWF0Y2goU3RyaW5n LCByZWdleHA6c2hfdG9fYXdrKEdsb2IpKS4NCi0NCi0NCi0lJS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQotJSUgUHVzaCBSb3N0ZXIgZnJvbSBmaWxlIA0KLSUlLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCi0NCi1wdXNocm9zdGVyKEZpbGUsIFVzZXIsIFNlcnZlcikgLT4NCi0g ICAge29rLCBbUm9zdGVyXX0gPSBmaWxlOmNvbnN1bHQoRmlsZSksDQotICAgIHN1YnNjcmliZV9y b3N0ZXIoe1VzZXIsIFNlcnZlciwgIiIsIFVzZXJ9LCBSb3N0ZXIpLg0KLQ0KLXB1c2hyb3N0ZXJf YWxsKEZpbGUpIC0+DQotICAgIHtvaywgW1Jvc3Rlcl19ID0gZmlsZTpjb25zdWx0KEZpbGUpLA0K LSAgICBzdWJzY3JpYmVfYWxsKFJvc3RlcikuDQotDQotc3Vic2NyaWJlX2FsbChSb3N0ZXIpIC0+ DQotICAgIHN1YnNjcmliZV9hbGwoUm9zdGVyLCBSb3N0ZXIpLg0KLXN1YnNjcmliZV9hbGwoW10s IF8pIC0+DQotICAgIG9rOw0KLXN1YnNjcmliZV9hbGwoW1VzZXIxIHwgVXNlcnNdLCBSb3N0ZXIp IC0+DQotICAgIHN1YnNjcmliZV9yb3N0ZXIoVXNlcjEsIFJvc3RlciksDQotICAgIHN1YnNjcmli ZV9hbGwoVXNlcnMsIFJvc3RlcikuDQotDQotc3Vic2NyaWJlX3Jvc3RlcihfLCBbXSkgLT4NCi0g ICAgb2s7DQotJSUgRG8gbm90IHN1YnNjcmliZSBhIHVzZXIgdG8gaXRzZWxmDQotc3Vic2NyaWJl X3Jvc3Rlcih7TmFtZSwgU2VydmVyLCBHcm91cCwgTmlja30sIFt7TmFtZSwgU2VydmVyLCBfLCBf fSB8IFJvc3Rlcl0pIC0+DQotICAgIHN1YnNjcmliZV9yb3N0ZXIoe05hbWUsIFNlcnZlciwgR3Jv dXAsIE5pY2t9LCBSb3N0ZXIpOw0KLSUlIFN1YnNjcmliZSBOYW1lMiB0byBOYW1lMQ0KLXN1YnNj cmliZV9yb3N0ZXIoe05hbWUxLCBTZXJ2ZXIxLCBHcm91cDEsIE5pY2sxfSwgW3tOYW1lMiwgU2Vy dmVyMiwgR3JvdXAyLCBOaWNrMn0gfCBSb3N0ZXJdKSAtPg0KLSAgICBzdWJzY3JpYmUoTmFtZTEs IFNlcnZlcjEsIE5hbWUyLCBTZXJ2ZXIyLCBOaWNrMiwgR3JvdXAyLCBib3RoLCBbXSksDQotICAg IHN1YnNjcmliZV9yb3N0ZXIoe05hbWUxLCBTZXJ2ZXIxLCBHcm91cDEsIE5pY2sxfSwgUm9zdGVy KS4NCi0NCi1wdXNoX2FsbHRvYWxsKFMsIEcpIC0+DQotICAgIFVzZXJzID0gZWphYmJlcmRfYXV0 aDpnZXRfdmhfcmVnaXN0ZXJlZF91c2VycyhTKSwNCi0gICAgVXNlcnMyID0gYnVpbGRfbGlzdF91 c2VycyhHLCBVc2VycywgW10pLA0KLSAgICBzdWJzY3JpYmVfYWxsKFVzZXJzMikuDQotDQotYnVp bGRfbGlzdF91c2VycyhfR3JvdXAsIFtdLCBSZXMpIC0+DQotICAgIFJlczsNCi1idWlsZF9saXN0 X3VzZXJzKEdyb3VwLCBbe1VzZXIsIFNlcnZlcn18VXNlcnNdLCBSZXMpIC0+DQotICAgIGJ1aWxk X2xpc3RfdXNlcnMoR3JvdXAsIFVzZXJzLCBbe1VzZXIsIFNlcnZlciwgR3JvdXAsIFVzZXJ9fFJl c10pLg0KLQ0KLXZjYXJkX2dldChVc2VyLCBTZXJ2ZXIsIERhdGEpIC0+DQotICAgIFt7XywgTW9k dWxlLCBGdW5jdGlvbiwgX09wdHN9XSA9IGV0czpsb29rdXAoc21faXF0YWJsZSwgez9OU19WQ0FS RCwgU2VydmVyfSksDQotICAgIEpJRCA9IGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCAiIiks DQotICAgIElRID0gI2lxe3R5cGUgPSBnZXQsIHhtbG5zID0gP05TX1ZDQVJEfSwNCi0gICAgSVFy ID0gTW9kdWxlOkZ1bmN0aW9uKEpJRCwgSklELCBJUSksDQotICAgIFJlcyA9IGNhc2UgSVFyI2lx LnN1Yl9lbCBvZg0KLQkgICAgICBbQTFdIC0+DQotCQkgIGNhc2UgdmNhcmRfZ2V0KERhdGEsIEEx KSBvZg0KLQkJICAgICAgZmFsc2UgLT4gbm9fdmFsdWU7DQotCQkgICAgICBFbGVtIC0+IHhtbDpn ZXRfdGFnX2NkYXRhKEVsZW0pDQotCQkgIGVuZDsNCi0JICAgICAgW10gLT4gDQotCQkgIG5vX3Zj YXJkDQotCSAgZW5kLA0KLSAgICB7b2ssIFJlc30uDQotDQotdmNhcmRfZ2V0KFtEYXRhMSwgRGF0 YTJdLCBBMSkgLT4NCi0gICAgY2FzZSB4bWw6Z2V0X3N1YnRhZyhBMSwgRGF0YTEpIG9mDQotICAg IAlmYWxzZSAtPiBmYWxzZTsNCi0JQTIgLT4gdmNhcmRfZ2V0KFtEYXRhMl0sIEEyKQ0KLSAgICBl bmQ7DQotDQotdmNhcmRfZ2V0KFtEYXRhXSwgQTEpIC0+DQotICAgIHhtbDpnZXRfc3VidGFnKEEx LCBEYXRhKS4NCi0NCi12Y2FyZF9zZXQoVXNlciwgU2VydmVyLCBEYXRhLCBDb250ZW50KSAtPg0K LSAgICBbe18sIE1vZHVsZSwgRnVuY3Rpb24sIF9PcHRzfV0gPSBldHM6bG9va3VwKHNtX2lxdGFi bGUsIHs/TlNfVkNBUkQsIFNlcnZlcn0pLA0KLSAgICBKSUQgPSBqbGliOm1ha2VfamlkKFVzZXIs IFNlcnZlciwgIiIpLA0KLSAgICBJUSA9ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FS RH0sDQotICAgIElRciA9IE1vZHVsZTpGdW5jdGlvbihKSUQsIEpJRCwgSVEpLA0KLQ0KLSAgICAl JSBHZXQgb2xkIHZjYXJkDQotICAgIEE0ID0gY2FzZSBJUXIjaXEuc3ViX2VsIG9mDQotCSAgICAg W0ExXSAtPg0KLQkJIHtfLCBfLCBfLCBBMn0gPSBBMSwNCi0JCSB1cGRhdGVfdmNhcmRfZWxzKERh dGEsIENvbnRlbnQsIEEyKTsNCi0JICAgICBbXSAtPiANCi0JCSB1cGRhdGVfdmNhcmRfZWxzKERh dGEsIENvbnRlbnQsIFtdKQ0KLQkgZW5kLA0KLQ0KLSAgICAlJSBCdWlsZCBuZXcgdmNhcmQNCi0g ICAgU3ViRWwgPSB7eG1sZWxlbWVudCwgInZDYXJkIiwgW3sieG1sbnMiLCJ2Y2FyZC10ZW1wIn1d LCBBNH0sDQotICAgIElRMiA9ICNpcXt0eXBlPXNldCwgc3ViX2VsID0gU3ViRWx9LA0KLQ0KLSAg ICBNb2R1bGU6RnVuY3Rpb24oSklELCBKSUQsIElRMiksDQotICAgIHtvaywgImRvbmUifS4NCi0N Ci11cGRhdGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIEVsczEpIC0+DQotICAgIEVsczIgPSBs aXN0czprZXlzb3J0KDIsIEVsczEpLA0KLSAgICBbRGF0YTEgfCBEYXRhMl0gPSBEYXRhLA0KLSAg ICBOZXdFbCA9IGNhc2UgRGF0YTIgb2YNCi0JCVtdIC0+DQotCQkgICAge3htbGVsZW1lbnQsIERh dGExLCBbXSwgW3t4bWxjZGF0YSxDb250ZW50fV19Ow0KLQkJW0QyXSAtPg0KLQkJICAgIE9sZEVs ID0gY2FzZSBsaXN0czprZXlzZWFyY2goRGF0YTEsIDIsIEVsczIpIG9mDQotCQkJCXt2YWx1ZSwg QX0gLT4gQTsNCi0JCQkJZmFsc2UgLT4ge3htbGVsZW1lbnQsIERhdGExLCBbXSwgW119DQotCQkJ ICAgIGVuZCwNCi0JCSAgICB7eG1sZWxlbWVudCwgXywgXywgQ29udGVudE9sZDF9ID0gT2xkRWws DQotCQkgICAgQ29udGVudDIgPSBbe3htbGVsZW1lbnQsIEQyLCBbXSwgW3t4bWxjZGF0YSxDb250 ZW50fV19XSwNCi0JCSAgICBDb250ZW50T2xkMiA9IGxpc3RzOmtleXNvcnQoMiwgQ29udGVudE9s ZDEpLA0KLQkJICAgIENvbnRlbnRPbGQzID0gbGlzdHM6a2V5ZGVsZXRlKEQyLCAyLCBDb250ZW50 T2xkMiksDQotCQkgICAgQ29udGVudE5ldyA9IGxpc3RzOmtleW1lcmdlKDIsIENvbnRlbnQyLCBD b250ZW50T2xkMyksDQotCQkgICAge3htbGVsZW1lbnQsIERhdGExLCBbXSwgQ29udGVudE5ld30N Ci0JICAgIGVuZCwNCi0gICAgRWxzMyA9IGxpc3RzOmtleWRlbGV0ZShEYXRhMSwgMiwgRWxzMiks DQotICAgIGxpc3RzOmtleW1lcmdlKDIsIFtOZXdFbF0sIEVsczMpLg0KLQ0KLS1yZWNvcmQobGFz dF9hY3Rpdml0eSwge3VzLCB0aW1lc3RhbXAsIHN0YXR1c30pLg0KLQ0KLWRlbGV0ZV9vbGRlcl91 c2VycyhEYXlzKSAtPg0KLSAgICAlJSBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2Vycw0K LSAgICBVc2VycyA9IGVqYWJiZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSwN Ci0gICAgZGVsZXRlX29sZGVyX3VzZXJzKERheXMsIFVzZXJzKS4NCi0NCi1kZWxldGVfb2xkZXJf dXNlcnNfdmhvc3QoSG9zdCwgRGF5cykgLT4NCi0gICAgJSUgR2V0IHRoZSBsaXN0IG9mIHJlZ2lz dGVyZWQgdXNlcnMNCi0gICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVk X3VzZXJzKEhvc3QpLA0KLSAgICBkZWxldGVfb2xkZXJfdXNlcnMoRGF5cywgVXNlcnMpLg0KLQ0K LWRlbGV0ZV9vbGRlcl91c2VycyhEYXlzLCBVc2VycykgLT4NCi0gICAgJSUgQ29udmVydCBvbGRl ciB0aW1lDQotICAgIFNlY09sZGVyID0gRGF5cyoyNCo2MCo2MCwNCi0NCi0gICAgJSUgR2V0IGN1 cnJlbnQgdGltZQ0KLSAgICB7TWVnYVNlY3MsIFNlY3MsIF9NaWNyb1NlY3N9ID0gbm93KCksDQot ICAgIFRpbWVTdGFtcF9ub3cgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBTZWNzLA0KLQ0KLSAgICAl JSBGb3IgYSB1c2VyLCByZW1vdmUgaWYgcmVxdWlyZWQgYW5kIGFuc3dlciB0cnVlDQotICAgIEYg PSBmdW4oe0xVc2VyLCBMU2VydmVyfSkgLT4NCi0JCSUlIENoZWNrIGlmIHRoZSB1c2VyIGlzIGxv Z2dlZA0KLQkJY2FzZSBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoTFVzZXIsIExTZXJ2 ZXIpIG9mDQotCQkgICAgJSUgSWYgaXQgaXNudA0KLQkJICAgIFtdIC0+DQotCQkJJSUgTG9vayBm b3IgaGlzIGxhc3RfYWN0aXZpdHkNCi0JCQljYXNlIG1uZXNpYTpkaXJ0eV9yZWFkKGxhc3RfYWN0 aXZpdHksIHtMVXNlciwgTFNlcnZlcn0pIG9mDQotCQkJICAgICUlIElmIGl0IGlzDQotCQkJICAg ICUlIGV4aXN0ZW50Og0KLQkJCSAgICBbI2xhc3RfYWN0aXZpdHl7dGltZXN0YW1wID0gVGltZVN0 YW1wfV0gLT4NCi0JCQkJJSUgZ2V0IGhpcyBhZ2UNCi0JCQkJU2VjID0gVGltZVN0YW1wX25vdyAt IFRpbWVTdGFtcCwNCi0JCQkJJSUgSWYgaGUgaXMNCi0JCQkJaWYgDQotCQkJCSAgICAlJSB5b3Vu Z2VyIHRoYW4gU2VjT2xkZXI6IA0KLQkJCQkgICAgU2VjIDwgU2VjT2xkZXIgLT4NCi0JCQkJCSUl IGRvIG5vdGhpbmcNCi0JCQkJCWZhbHNlOw0KLQkJCQkgICAgJSUgb2xkZXI6IA0KLQkJCQkgICAg dHJ1ZSAtPg0KLQkJCQkJJSUgcmVtb3ZlIHRoZSB1c2VyDQotCQkJCQllamFiYmVyZF9hdXRoOnJl bW92ZV91c2VyKExVc2VyLCBMU2VydmVyKSwNCi0JCQkJCXRydWUNCi0JCQkJZW5kOw0KLQkJCSAg ICAlJSBub25leGlzdGVudDoNCi0JCQkgICAgW10gLT4NCi0JCQkJJSUgcmVtb3ZlIHRoZSB1c2Vy DQotCQkJCWVqYWJiZXJkX2F1dGg6cmVtb3ZlX3VzZXIoTFVzZXIsIExTZXJ2ZXIpLA0KLQkJCQl0 cnVlDQotCQkJZW5kOw0KLQkJICAgICUlIEVsc2UNCi0JCSAgICBfIC0+DQotCQkJJSUgZG8gbm90 aGluZw0KLQkJCWZhbHNlDQotCQllbmQNCi0JZW5kLA0KLSAgICAlJSBBcHBseSB0aGUgZnVuY3Rp b24gdG8gZXZlcnkgdXNlciBpbiB0aGUgbGlzdA0KLSAgICBVc2Vyc19yZW1vdmVkID0gbGlzdHM6 ZmlsdGVyKEYsIFVzZXJzKSwNCi0gICAge3JlbW92ZWQsIGxlbmd0aChVc2Vyc19yZW1vdmVkKSwg VXNlcnNfcmVtb3ZlZH0uDQotDQotbnVtX2FjdGl2ZV91c2VycyhIb3N0LCBEYXlzKSAtPg0KLSAg ICBsaXN0X2xhc3RfYWN0aXZpdHkoSG9zdCwgdHJ1ZSwgRGF5cykuDQotDQotJSUgQ29kZSBiYXNl ZCBvbiBlamFiYmVyZC9zcmMvd2ViL2VqYWJiZXJkX3dlYl9hZG1pbi5lcmwNCi1saXN0X2xhc3Rf YWN0aXZpdHkoSG9zdCwgSW50ZWdyYWwsIERheXMpIC0+DQotICAgIHtNZWdhU2VjcywgU2Vjcywg X01pY3JvU2Vjc30gPSBub3coKSwNCi0gICAgVGltZVN0YW1wID0gTWVnYVNlY3MgKiAxMDAwMDAw ICsgU2VjcywNCi0gICAgVFMgPSBUaW1lU3RhbXAgLSBEYXlzICogODY0MDAsDQotICAgIGNhc2Ug Y2F0Y2ggbW5lc2lhOmRpcnR5X3NlbGVjdCgNCi0JCSBsYXN0X2FjdGl2aXR5LCBbe3tsYXN0X2Fj dGl2aXR5LCB7J18nLCBIb3N0fSwgJyQxJywgJ18nfSwNCi0JCQkJICBbeyc+JywgJyQxJywgVFN9 XSwNCi0JCQkJICBbeyd0cnVuYycsIHsnLycsDQotCQkJCQkgICAgICB7Jy0nLCBUaW1lU3RhbXAs ICckMSd9LA0KLQkJCQkJICAgICAgODY0MDB9fV19XSkgb2YNCi0JCQkJCQkJICAgICAgeydFWElU JywgX1JlYXNvbn0gLT4NCi0JCSBbXTsNCi0JICAgICAgIFZhbHMgLT4NCi0JCSBIaXN0ID0gaGlz dG9ncmFtKFZhbHMsIEludGVncmFsKSwNCi0JCSBpZg0KLQkJICAgICBIaXN0ID09IFtdIC0+DQot CQkJIDA7DQotCQkgICAgIHRydWUgLT4NCi0JCQkgTGVmdCA9IGlmDQotCQkJCSAgICBEYXlzID09 IGluZmluaXR5IC0+DQotCQkJCQkwOw0KLQkJCQkgICAgdHJ1ZSAtPg0KLQkJCQkJRGF5cyAtIGxl bmd0aChIaXN0KQ0KLQkJCQllbmQsDQotCQkJIFRhaWwgPSBpZg0KLQkJCQkgICAgSW50ZWdyYWwg LT4NCi0JCQkJCWxpc3RzOmR1cGxpY2F0ZShMZWZ0LCBsaXN0czpsYXN0KEhpc3QpKTsNCi0JCQkJ ICAgIHRydWUgLT4NCi0JCQkJCWxpc3RzOmR1cGxpY2F0ZShMZWZ0LCAwKQ0KLQkJCQllbmQsDQot CQkJIGxpc3RzOm50aChEYXlzLCBIaXN0ICsrIFRhaWwpDQotCQkgZW5kDQotCSBlbmQuDQotaGlz dG9ncmFtKFZhbHVlcywgSW50ZWdyYWwpIC0+DQotICAgIGhpc3RvZ3JhbShsaXN0czpzb3J0KFZh bHVlcyksIEludGVncmFsLCAwLCAwLCBbXSkuDQotaGlzdG9ncmFtKFtIIHwgVF0sIEludGVncmFs LCBDdXJyZW50LCBDb3VudCwgSGlzdCkgd2hlbiBDdXJyZW50ID09IEggLT4NCi0gICAgaGlzdG9n cmFtKFQsIEludGVncmFsLCBDdXJyZW50LCBDb3VudCArIDEsIEhpc3QpOw0KLWhpc3RvZ3JhbShb SCB8IF9dID0gVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQsIEhpc3QpIHdoZW4gQ3Vy cmVudCA8IEggLT4NCi0gICAgaWYNCi0JSW50ZWdyYWwgLT4NCi0JICAgIGhpc3RvZ3JhbShWYWx1 ZXMsIEludGVncmFsLCBDdXJyZW50ICsgMSwgQ291bnQsIFtDb3VudCB8IEhpc3RdKTsNCi0JdHJ1 ZSAtPg0KLQkgICAgaGlzdG9ncmFtKFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQgKyAxLCAwLCBb Q291bnQgfCBIaXN0XSkNCi0gICAgZW5kOw0KLWhpc3RvZ3JhbShbXSwgX0ludGVncmFsLCBfQ3Vy cmVudCwgQ291bnQsIEhpc3QpIC0+DQotICAgIGlmDQotCUNvdW50ID4gMCAtPg0KLQkgICAgbGlz dHM6cmV2ZXJzZShbQ291bnQgfCBIaXN0XSk7DQotCXRydWUgLT4NCi0JICAgIGxpc3RzOnJldmVy c2UoSGlzdCkNCi0gICAgZW5kLg0KLQ0KLWdyb3VwX3BhcmFtZXRlcnMoUHMsIFtDaGFyXSkgLT4N Ci0Je25vbmUsIEdyb3VwZWRfUHN9ID0gbGlzdHM6Zm9sZGwoDQotCQlmdW4oUCwge1N0YXRlLCBS ZXN9KSAtPg0KLQkJCWNhc2UgU3RhdGUgb2YNCi0JCQkJbm9uZSAtPiANCi0JCQkJCWNhc2UgUCBv Zg0KLQkJCQkJCVtDaGFyIHwgUFRhaWxdLT4NCi0JCQkJCQkJe2J1aWxkaW5nLCBbUFRhaWwgfCBS ZXNdfTsNCi0JCQkJCQlfIC0+DQotCQkJCQkJCXtub25lLCBbUCB8IFJlc119DQotCQkJCQllbmQ7 DQotCQkJCWJ1aWxkaW5nIC0+IA0KLQkJCQkJW1Jlc0hlYWQgfCBSZXNUYWlsXSA9IFJlcywNCi0J CQkJCWNhc2UgbGlzdHM6bGFzdChQKSBvZg0KLQkJCQkJCUNoYXIgLT4NCi0JCQkJCQkJUDIgPSBs aXN0czpzdWJsaXN0KFAsIGxlbmd0aChQKS0xKSwNCi0JCQkJCQkJe25vbmUsIFtSZXNIZWFkICsr ICIgIiArKyBQMiB8IFJlc1RhaWxdfTsNCi0JCQkJCQlfIC0+DQotCQkJCQkJCXtidWlsZGluZywg W1Jlc0hlYWQgKysgIiAiICsrIFAgfCBSZXNUYWlsXX0NCi0JCQkJCWVuZA0KLQkJCWVuZA0KLQkJ ZW5kLA0KLQkJe25vbmUsIFtdfSwNCi0JCVBzKSwNCi0JbGlzdHM6cmV2ZXJzZShHcm91cGVkX1Bz KS4NCgpkaWZmIC0tZ2l0IGEvbW9kX3NoYXJlZF9yb3N0ZXJfYWQuZXJsIGIvbW9kX3NoYXJlZF9y b3N0ZXJfYWQuZXJsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGMwOWYxLi4wMDAw MDAwCi0tLSBhL21vZF9zaGFyZWRfcm9zdGVyX2FkLmVybAorKysgL2Rldi9udWxsCkBAIC0xLDQy OCArMCwwIEBACi0lJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0lJSUgRmlsZSAgICA6IG1vZF9zaGFyZWRfcm9z dGVyLmVybAotJSUlIEF1dGhvciAgOiBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0 PgotJSUlIEF1dGhvciAgOiBTdGFuaXNsYXYgQm9nYXR5cmV2IDxyZWFsbG9jQHJlYWxsb2Muc3Bi LnJ1PgotJSUlIFB1cnBvc2UgOiBTaGFyZWQgcm9zdGVyIG1hbmFnZW1lbnQKLSUlJSBDcmVhdGVk IDogIDUgTWFyIDIwMDUgYnkgQWxleGV5IFNoY2hlcGluIDxhbGV4ZXlAc2V2Y29tLm5ldD4KLSUl JSBJZCAgICAgIDogJElkOiBtb2Rfc2hhcmVkX3Jvc3Rlcl9hZC5lcmwsdiAxLjEgMjAwNi8wNi8y MyAxMjo0MDowMyBqY29sbGllIEV4cCAkCi0lJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS1tb2R1bGUobW9k X3NoYXJlZF9yb3N0ZXJfYWQpLgotLWF1dGhvcignYWxleGV5QHNldmNvbS5uZXQnKS4KLS1hdXRo b3IoJ3JlYWxsb2NAcmVhbGxvYy5zcGIucnUnKS4KLS12c24oJyRSZXZpc2lvbjogMS4xICQgJyku Ci0KLS1iZWhhdmlvdXIoZ2VuX21vZCkuCi0KLS1leHBvcnQoW3N0YXJ0LzIsIHN0b3AvMSwKLQkg Z2V0X3VzZXJfcm9zdGVyLzIsCi0JIGdldF9zdWJzY3JpcHRpb25fbGlzdHMvMywKLQkgZ2V0X2pp ZF9pbmZvLzQsCi0JIGluX3N1YnNjcmlwdGlvbi81LAotCSBvdXRfc3Vic2NyaXB0aW9uLzQsCi0J IGxpc3RfZ3JvdXBzLzEsCi0JIGNyZWF0ZV9ncm91cC8yLAotCSBjcmVhdGVfZ3JvdXAvMywKLQkg ZGVsZXRlX2dyb3VwLzIsCi0JIGdldF9ncm91cF9vcHRzLzIsCi0JIHNldF9ncm91cF9vcHRzLzMs Ci0JIGdldF9ncm91cF91c2Vycy8yLAotCSBnZXRfZ3JvdXBfZXhwbGljaXRfdXNlcnMvMiwKLQkg YWRkX3VzZXJfdG9fZ3JvdXAvMywKLQkgcmVtb3ZlX3VzZXJfZnJvbV9ncm91cC8zXSkuCi0KLS1p bmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KLS1pbmNsdWRlKCJqbGliLmhybCIpLgotLWluY2x1ZGUo Im1vZF9yb3N0ZXIuaHJsIikuCi0taW5jbHVkZSgiZWxkYXAvZWxkYXAuaHJsIikuCi0KLS1yZWNv cmQoc3JfZ3JvdXAsIHtncm91cF9ob3N0LCBvcHRzfSkuCi0tcmVjb3JkKHNyX3VzZXIsIHt1cywg Z3JvdXBfaG9zdH0pLgotCi1zdGFydChIb3N0LCBfT3B0cykgLT4KLSAgICBtbmVzaWE6Y3JlYXRl X3RhYmxlKHNyX2dyb3VwLAotCQkJW3tkaXNjX2NvcGllcywgW25vZGUoKV19LAotCQkJIHthdHRy aWJ1dGVzLCByZWNvcmRfaW5mbyhmaWVsZHMsIHNyX2dyb3VwKX1dKSwKLSAgICBtbmVzaWE6Y3Jl YXRlX3RhYmxlKHNyX3VzZXIsCi0JCQlbe2Rpc2NfY29waWVzLCBbbm9kZSgpXX0sCi0JCQkge3R5 cGUsIGJhZ30sCi0JCQkge2F0dHJpYnV0ZXMsIHJlY29yZF9pbmZvKGZpZWxkcywgc3JfdXNlcil9 XSksCi0gICAgbW5lc2lhOmFkZF90YWJsZV9pbmRleChzcl91c2VyLCBncm91cF9ob3N0KSwKLSAg ICBlamFiYmVyZF9ob29rczphZGQocm9zdGVyX2dldCwgSG9zdCwKLQkJICAgICAgID9NT0RVTEUs IGdldF91c2VyX3Jvc3RlciwgNzApLAotICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfaW5f c3Vic2NyaXB0aW9uLCBIb3N0LAotICAgICAgICAJICAgICAgID9NT0RVTEUsIGluX3N1YnNjcmlw dGlvbiwgMzApLAotICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfb3V0X3N1YnNjcmlwdGlv biwgSG9zdCwKLSAgICAgICAgCSAgICAgICA/TU9EVUxFLCBvdXRfc3Vic2NyaXB0aW9uLCAzMCks Ci0gICAgZWphYmJlcmRfaG9va3M6YWRkKHJvc3Rlcl9nZXRfc3Vic2NyaXB0aW9uX2xpc3RzLCBI b3N0LAotCQkgICAgICAgP01PRFVMRSwgZ2V0X3N1YnNjcmlwdGlvbl9saXN0cywgNzApLAotICAg IGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfZ2V0X2ppZF9pbmZvLCBIb3N0LAotICAgICAgICAJ ICAgICAgID9NT0RVTEUsIGdldF9qaWRfaW5mbywgNzApLAotICAgIAotICAgICVlamFiYmVyZF9o b29rczphZGQocmVtb3ZlX3VzZXIsIEhvc3QsCi0gICAgJSAgICAJICAgICAgID9NT0RVTEUsIHJl bW92ZV91c2VyLCA1MCksCi0gICAgTERBUFNlcnZlcnMgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xv Y2FsX29wdGlvbih7YWRfc2VydmVycywgSG9zdH0pLAotICAgIFJvb3RETiA9IGVqYWJiZXJkX2Nv bmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9yb290ZG4sIEhvc3R9KSwKLSAgICBQYXNzd29yZCA9 IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9wYXNzd29yZCwgSG9zdH0pLAot ICAgIGVsZGFwOnN0YXJ0X2xpbmsoIm1vZF9zaGFyZWRfcm9zdGVyX2FkIiwgTERBUFNlcnZlcnMs IDM4OSwgUm9vdEROLCBQYXNzd29yZCkuCi0gICAKLQotICAKLXN0b3AoSG9zdCkgLT4KLSAgICBl amFiYmVyZF9ob29rczpkZWxldGUocm9zdGVyX2dldCwgSG9zdCwKLQkJCSAgP01PRFVMRSwgZ2V0 X3VzZXJfcm9zdGVyLCA3MCksCi0gICAgZWphYmJlcmRfaG9va3M6ZGVsZXRlKHJvc3Rlcl9pbl9z dWJzY3JpcHRpb24sIEhvc3QsCi0gICAgICAgIAkJICA/TU9EVUxFLCBpbl9zdWJzY3JpcHRpb24s IDMwKSwKLSAgICBlamFiYmVyZF9ob29rczpkZWxldGUocm9zdGVyX291dF9zdWJzY3JpcHRpb24s IEhvc3QsCi0gICAgICAgIAkJICA/TU9EVUxFLCBvdXRfc3Vic2NyaXB0aW9uLCAzMCksCi0gICAg ZWphYmJlcmRfaG9va3M6ZGVsZXRlKHJvc3Rlcl9nZXRfc3Vic2NyaXB0aW9uX2xpc3RzLCBIb3N0 LAotICAgICAgICAJCSAgP01PRFVMRSwgZ2V0X3N1YnNjcmlwdGlvbl9saXN0cywgNzApLAotICAg IGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShyb3N0ZXJfZ2V0X2ppZF9pbmZvLCBIb3N0LAotICAgICAg ICAJCSAgP01PRFVMRSwgZ2V0X2ppZF9pbmZvLCA3MCkuCi0gICAgJWVqYWJiZXJkX2hvb2tzOmRl bGV0ZShyZW1vdmVfdXNlciwgSG9zdCwKLSAgICAlICAgIAkJICA/TU9EVUxFLCByZW1vdmVfdXNl ciwgNTApLAotCi0KLWdldF91c2VyX3Jvc3RlcihJdGVtcywgVVMpIC0+Ci0gICAge1UsIFN9ID0g VVMsCi0gICAgRGlzcGxheWVkR3JvdXBzID0gZ2V0X3VzZXJfZGlzcGxheWVkX2dyb3Vwc19hZChV UyksCi0gICAgU1JVc2VycyA9IAotCWxpc3RzOmZvbGRsKAotCSAgZnVuKEdyb3VwLCBBY2MxKSAt PgotCQkgIGxpc3RzOmZvbGRsKAotCQkgICAgZnVuKFVzZXIsIEFjYzIpIC0+Ci0JCQkgICAgZGlj dDphcHBlbmQoVXNlciwgR3JvdXAsIEFjYzIpCi0JCSAgICBlbmQsIEFjYzEsIGdldF9ncm91cF91 c2Vyc19hZChTLCBHcm91cCkpCi0JICBlbmQsIGRpY3Q6bmV3KCksIERpc3BsYXllZEdyb3Vwcyks Ci0gICAge05ld0l0ZW1zMSwgU1JVc2Vyc1Jlc3R9ID0KLQlsaXN0czptYXBmb2xkbCgKLQkgIGZ1 bihJdGVtLCBTUlVzZXJzMSkgLT4KLQkJICB7XywgXywge1UxLCBTMSwgX319ID0gSXRlbSNyb3N0 ZXIudXNqLAotCQkgIFVTMSA9IHtVMSwgUzF9LAotCQkgIGNhc2UgZGljdDpmaW5kKFVTMSwgU1JV c2VyczEpIG9mCi0JCSAgICAgIHtvaywgX0dyb3VwTmFtZXN9IC0+Ci0JCQkgIHtJdGVtI3Jvc3Rl cntzdWJzY3JpcHRpb24gPSBib3RoLCBhc2sgPSBub25lfSwKLQkJCSAgIGRpY3Q6ZXJhc2UoVVMx LCBTUlVzZXJzMSl9OwotCQkgICAgICBlcnJvciAtPgotCQkJICB7SXRlbSwgU1JVc2VyczF9Ci0J CSAgZW5kCi0JICBlbmQsIFNSVXNlcnMsIEl0ZW1zKSwKLSAgICBTUkl0ZW1zID0gWyNyb3N0ZXJ7 dXNqID0ge1UsIFMsIHtVMSwgUzEsICIifX0sCi0JCSAgICAgICB1cyA9IFVTLAotCQkgICAgICAg amlkID0ge1UxLCBTMSwgIiJ9LAotCQkgICAgICAgbmFtZSA9IGdldF91c2VyX2ZuKFUxLFMxKSwK LQkJICAgICAgIHN1YnNjcmlwdGlvbiA9IGJvdGgsCi0JCSAgICAgICBhc2sgPSBub25lLAotCQkg ICAgICAgZ3JvdXBzID0gR3JvdXBOYW1lc30gfHwKLQkJICB7e1UxLCBTMX0sIEdyb3VwTmFtZXN9 IDwtIGRpY3Q6dG9fbGlzdChTUlVzZXJzUmVzdCldLAotICAgIFNSSXRlbXMgKysgTmV3SXRlbXMx LgotCi1nZXRfc3Vic2NyaXB0aW9uX2xpc3RzKHtGLCBUfSwgVXNlciwgU2VydmVyKSAtPgotICAg IExVc2VyID0gamxpYjpub2RlcHJlcChVc2VyKSwKLSAgICBMU2VydmVyID0gamxpYjpuYW1lcHJl cChTZXJ2ZXIpLAotICAgIFVTID0ge0xVc2VyLCBMU2VydmVyfSwKLSAgICBEaXNwbGF5ZWRHcm91 cHMgPSBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSwKLSAgICBTUlVzZXJzID0KLQls aXN0czp1c29ydCgKLQkgIGxpc3RzOmZsYXRtYXAoCi0JICAgIGZ1bihHcm91cCkgLT4KLQkJICAg IGdldF9ncm91cF91c2Vyc19hZChMU2VydmVyLCBHcm91cCkKLQkgICAgZW5kLCBEaXNwbGF5ZWRH cm91cHMpKSwKLSAgICBTUkpJRHMgPSBbe1UxLCBTMSwgIiJ9IHx8IHtVMSwgUzF9IDwtIFNSVXNl cnNdLAotICAgIHtsaXN0czp1c29ydChTUkpJRHMgKysgRiksIGxpc3RzOnVzb3J0KFNSSklEcyAr KyBUKX0uCi0KLWdldF9qaWRfaW5mbyh7U3Vic2NyaXB0aW9uLCBHcm91cHN9LCBVc2VyLCBTZXJ2 ZXIsIEpJRCkgLT4KLSAgICBMVXNlciA9IGpsaWI6bm9kZXByZXAoVXNlciksCi0gICAgTFNlcnZl ciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKLSAgICBVUyA9IHtMVXNlciwgTFNlcnZlcn0sCi0g ICAge1UxLCBTMSwgX30gPSBqbGliOmppZF90b2xvd2VyKEpJRCksCi0gICAgVVMxID0ge1UxLCBT MX0sCi0gICAgRGlzcGxheWVkR3JvdXBzID0gZ2V0X3VzZXJfZGlzcGxheWVkX2dyb3Vwc19hZChV UyksCi0gICAgU1JVc2VycyA9IAotCWxpc3RzOmZvbGRsKAotCSAgZnVuKEdyb3VwLCBBY2MxKSAt PgotCQkgIGxpc3RzOmZvbGRsKAotCQkgICAgZnVuKFVzZXIxLCBBY2MyKSAtPgotCQkJICAgIGRp Y3Q6YXBwZW5kKAotCQkJICAgICAgVXNlcjEsIEdyb3VwLCBBY2MyKQotCQkgICAgZW5kLCBBY2Mx LCBnZXRfZ3JvdXBfdXNlcnNfYWQoTFNlcnZlciwgR3JvdXApKQotCSAgZW5kLCBkaWN0Om5ldygp LCBEaXNwbGF5ZWRHcm91cHMpLAotICAgIGNhc2UgZGljdDpmaW5kKFVTMSwgU1JVc2Vycykgb2YK LQl7b2ssIEdyb3VwTmFtZXN9IC0+Ci0JICAgIE5ld0dyb3VwcyA9IGlmCi0JCQkgICAgR3JvdXBz ID09IFtdIC0+IEdyb3VwTmFtZXM7Ci0JCQkgICAgdHJ1ZSAtPiBHcm91cHMKLQkJCWVuZCwKLQkg ICAge2JvdGgsIE5ld0dyb3Vwc307Ci0JZXJyb3IgLT4KLQkgICAge1N1YnNjcmlwdGlvbiwgR3Jv dXBzfQotICAgIGVuZC4KLQotaW5fc3Vic2NyaXB0aW9uKEFjYywgVXNlciwgU2VydmVyLCBKSUQs IFR5cGUpIC0+Ci0gICAgcHJvY2Vzc19zdWJzY3JpcHRpb24oaW4sIFVzZXIsIFNlcnZlciwgSklE LCBUeXBlLCBBY2MpLgotCi1vdXRfc3Vic2NyaXB0aW9uKFVzZXIsIFNlcnZlciwgSklELCBUeXBl KSAtPgotICAgIHByb2Nlc3Nfc3Vic2NyaXB0aW9uKG91dCwgVXNlciwgU2VydmVyLCBKSUQsIFR5 cGUsIGZhbHNlKS4KLQotcHJvY2Vzc19zdWJzY3JpcHRpb24oRGlyZWN0aW9uLCBVc2VyLCBTZXJ2 ZXIsIEpJRCwgX1R5cGUsIEFjYykgLT4KLSAgICBMVXNlciA9IGpsaWI6bm9kZXByZXAoVXNlciks Ci0gICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKLSAgICBVUyA9IHtMVXNlciwg TFNlcnZlcn0sCi0gICAge1UxLCBTMSwgX30gPSBqbGliOmppZF90b2xvd2VyKGpsaWI6amlkX3Jl bW92ZV9yZXNvdXJjZShKSUQpKSwKLSAgICBVUzEgPSB7VTEsIFMxfSwKLSAgICBEaXNwbGF5ZWRH cm91cHMgPSBnZXRfdXNlcl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSwKLSAgICBTUlVzZXJzID0K LQlsaXN0czp1c29ydCgKLQkgIGxpc3RzOmZsYXRtYXAoCi0JICAgIGZ1bihHcm91cCkgLT4KLQkJ ICAgIGdldF9ncm91cF91c2Vyc19hZChMU2VydmVyLCBHcm91cCkKLQkgICAgZW5kLCBEaXNwbGF5 ZWRHcm91cHMpKSwKLSAgICBjYXNlIGxpc3RzOm1lbWJlcihVUzEsIFNSVXNlcnMpIG9mCi0JdHJ1 ZSAtPgotCSAgICBjYXNlIERpcmVjdGlvbiBvZgotCQlpbiAtPgotCQkgICAge3N0b3AsIGZhbHNl fTsKLQkJb3V0IC0+Ci0JCSAgICBzdG9wCi0JICAgIGVuZDsKLQlmYWxzZSAtPgotCSAgICBBY2MK LSAgICBlbmQuCi0KLWxpc3RfZ3JvdXBzKEhvc3QpIC0+Ci0gICAgZ2V0X3VzZXJfZGlzcGxheWVk X2dyb3Vwc19hZCh7IiIsSG9zdH0pLgotCi0KLWNyZWF0ZV9ncm91cChIb3N0LCBHcm91cCkgLT4K LSAgICBjcmVhdGVfZ3JvdXAoSG9zdCwgR3JvdXAsIFtdKS4KLQotY3JlYXRlX2dyb3VwKEhvc3Qs IEdyb3VwLCBPcHRzKSAtPgotICAgIFIgPSAjc3JfZ3JvdXB7Z3JvdXBfaG9zdCA9IHtHcm91cCwg SG9zdH0sIG9wdHMgPSBPcHRzfSwKLSAgICBGID0gZnVuKCkgLT4KLQkJbW5lc2lhOndyaXRlKFIp Ci0JZW5kLAotICAgIG1uZXNpYTp0cmFuc2FjdGlvbihGKS4KLQotZGVsZXRlX2dyb3VwKEhvc3Qs IEdyb3VwKSAtPgotICAgIEYgPSBmdW4oKSAtPgotCQltbmVzaWE6ZGVsZXRlKHtzcl9ncm91cCwg e0dyb3VwLCBIb3N0fX0pCi0JZW5kLAotICAgIG1uZXNpYTp0cmFuc2FjdGlvbihGKS4KLQotZ2V0 X2dyb3VwX29wdHMoSG9zdCwgR3JvdXApIC0+Ci0gICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlf cmVhZChzcl9ncm91cCwge0dyb3VwLCBIb3N0fSkgb2YKLQlbI3NyX2dyb3Vwe29wdHMgPSBPcHRz fV0gLT4KLQkgICAgT3B0czsKLQlfIC0+Ci0JICAgIGVycm9yCi0gICAgZW5kLgotCi1zZXRfZ3Jv dXBfb3B0cyhIb3N0LCBHcm91cCwgT3B0cykgLT4KLSAgICBSID0gI3NyX2dyb3Vwe2dyb3VwX2hv c3QgPSB7R3JvdXAsIEhvc3R9LCBvcHRzID0gT3B0c30sCi0gICAgRiA9IGZ1bigpIC0+Ci0JCW1u ZXNpYTp3cml0ZShSKQotCWVuZCwKLSAgICBtbmVzaWE6dHJhbnNhY3Rpb24oRikuCi0KLQotCi1n ZXRfdXNlcl9ncm91cHMoVVMpIC0+Ci0gICAgSG9zdCA9IGVsZW1lbnQoMiwgVVMpLAotICAgIGNh c2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3JlYWQoc3JfdXNlciwgVVMpIG9mCi0JUnMgd2hlbiBpc19s aXN0KFJzKSAtPgotCSAgICBbR3JvdXAgfHwgI3NyX3VzZXJ7Z3JvdXBfaG9zdCA9IHtHcm91cCwg SH19IDwtIFJzLCBIID09IEhvc3RdOwotCV8gLT4KLQkgICAgW10KLSAgICBlbmQgKysgZ2V0X2Fs bF91c2Vyc19ncm91cHMoSG9zdCkuCi0KLWlzX2dyb3VwX2VuYWJsZWQoSG9zdCwgR3JvdXApIC0+ Ci0gICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlfcmVhZChzcl9ncm91cCwge0dyb3VwLCBIb3N0 fSkgb2YKLQlbI3NyX2dyb3Vwe29wdHMgPSBPcHRzfV0gLT4KLQkgICAgbm90IGxpc3RzOm1lbWJl cihkaXNhYmxlZCwgT3B0cyk7Ci0JXyAtPgotCSAgICBmYWxzZQotICAgIGVuZC4KLQotZ2V0X2dy b3VwX29wdChIb3N0LCBHcm91cCwgT3B0LCBEZWZhdWx0KSAtPgotICAgIGNhc2UgY2F0Y2ggbW5l c2lhOmRpcnR5X3JlYWQoc3JfZ3JvdXAsIHtHcm91cCwgSG9zdH0pIG9mCi0JWyNzcl9ncm91cHtv cHRzID0gT3B0c31dIC0+Ci0JICAgIGNhc2UgbGlzdHM6a2V5c2VhcmNoKE9wdCwgMSwgT3B0cykg b2YKLQkJe3ZhbHVlLCB7XywgVmFsfX0gLT4KLQkJICAgIFZhbDsKLQkJZmFsc2UgLT4KLQkJICAg IERlZmF1bHQKLQkgICAgZW5kOwotCV8gLT4KLQkgICAgZmFsc2UKLSAgICBlbmQuCi0KLWdldF9n cm91cF91c2VycyhIb3N0LCBHcm91cCkgLT4KLSAgICBjYXNlIGdldF9ncm91cF9vcHQoSG9zdCwg R3JvdXAsIGFsbF91c2VycywgZmFsc2UpIG9mCi0JdHJ1ZSAtPgotCSAgICBlamFiYmVyZF9hdXRo OmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKEhvc3QpOwotCWZhbHNlIC0+Ci0JICAgIFtdCi0gICAg ZW5kICsrIGdldF9ncm91cF9leHBsaWNpdF91c2VycyhIb3N0LCBHcm91cCkuCi0KLWdldF9ncm91 cF9leHBsaWNpdF91c2VycyhIb3N0LCBHcm91cCkgLT4KLSAgICBjYXNlIGNhdGNoIG1uZXNpYTpk aXJ0eV9pbmRleF9yZWFkKAotCQkgc3JfdXNlciwge0dyb3VwLCBIb3N0fSwgI3NyX3VzZXIuZ3Jv dXBfaG9zdCkgb2YKLQlScyB3aGVuIGlzX2xpc3QoUnMpIC0+Ci0JICAgIFtSI3NyX3VzZXIudXMg fHwgUiA8LSBSc107Ci0JXyAtPgotCSAgICBbXQotICAgIGVuZC4KLQotZ2V0X2dyb3VwX25hbWUo SG9zdCwgR3JvdXApIC0+Ci0gICAgZ2V0X2dyb3VwX29wdChIb3N0LCBHcm91cCwgbmFtZSwgR3Jv dXApLgotCi1nZXRfYWxsX3VzZXJzX2dyb3VwcyhIb3N0KSAtPgotICAgIGxpc3RzOmZpbHRlcigK LSAgICAgIGZ1bihHcm91cCkgLT4gZ2V0X2dyb3VwX29wdChIb3N0LCBHcm91cCwgYWxsX3VzZXJz LCBmYWxzZSkgZW5kLAotICAgICAgbGlzdF9ncm91cHMoSG9zdCkpLgotCi1nZXRfdXNlcl9kaXNw bGF5ZWRfZ3JvdXBzKFVTKSAtPgotICAgIEhvc3QgPSBlbGVtZW50KDIsIFVTKSwKLSAgICBEaXNw bGF5ZWRHcm91cHMxID0KLQlsaXN0czp1c29ydCgKLQkgIGxpc3RzOmZsYXRtYXAoCi0JICAgIGZ1 bihHcm91cCkgLT4KLQkJICAgIGNhc2UgaXNfZ3JvdXBfZW5hYmxlZChIb3N0LCBHcm91cCkgb2YK LQkJCXRydWUgLT4KLQkJCSAgICBnZXRfZ3JvdXBfb3B0KEhvc3QsIEdyb3VwLCBkaXNwbGF5ZWRf Z3JvdXBzLCBbXSk7Ci0JCQlmYWxzZSAtPgotCQkJICAgIFtdCi0JCSAgICBlbmQKLQkgICAgZW5k LCBnZXRfdXNlcl9ncm91cHMoVVMpKSksCi0gICAgW0dyb3VwIHx8IEdyb3VwIDwtIERpc3BsYXll ZEdyb3VwczEsIGlzX2dyb3VwX2VuYWJsZWQoSG9zdCwgR3JvdXApXS4KLQotCi0KLQotYWRkX3Vz ZXJfdG9fZ3JvdXAoSG9zdCwgVVMsIEdyb3VwKSAtPgotICAgIFIgPSAjc3JfdXNlcnt1cyA9IFVT LCBncm91cF9ob3N0ID0ge0dyb3VwLCBIb3N0fX0sCi0gICAgRiA9IGZ1bigpIC0+Ci0JCW1uZXNp YTp3cml0ZShSKQotCWVuZCwKLSAgICBtbmVzaWE6dHJhbnNhY3Rpb24oRikuCi0KLXJlbW92ZV91 c2VyX2Zyb21fZ3JvdXAoSG9zdCwgVVMsIEdyb3VwKSAtPgotICAgIFIgPSAjc3JfdXNlcnt1cyA9 IFVTLCBncm91cF9ob3N0ID0ge0dyb3VwLCBIb3N0fX0sCi0gICAgRiA9IGZ1bigpIC0+Ci0JCW1u ZXNpYTpkZWxldGVfb2JqZWN0KFIpCi0JZW5kLAotICAgIG1uZXNpYTp0cmFuc2FjdGlvbihGKS4K LQotCi0KLWZpbmRfdXNlcl9hdHRyKFVzZXIsIEhvc3QpIC0+Ci0gICAgQXR0ciA9IGVqYWJiZXJk X2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF91aWRhdHRyLCBIb3N0fSksCi0gICAgRmlsdGVy ID0gZWxkYXA6ZXF1YWxpdHlNYXRjaChBdHRyLCBVc2VyKSwKLSAgICBCYXNlID0gZWphYmJlcmRf Y29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jhc2UsIEhvc3R9KSwKLSAgICAKLSAgICBjYXNl IGVsZGFwOnNlYXJjaCgibW9kX3NoYXJlZF9yb3N0ZXJfYWQiLAotICAgICAgICAgICAgICAgICAg ICAgIFt7YmFzZSwgQmFzZX0sCi0gICAgICAgICAgICAgICAgICAgICAgIHtmaWx0ZXIsIEZpbHRl cn0sCi0gICAgICAgICAgICAgICAgICAgICAgIHthdHRyaWJ1dGVzLCBbXX1dKSBvZgotICAgICAg ICAjZWxkYXBfc2VhcmNoX3Jlc3VsdHtlbnRyaWVzID0gW0UgfCBfXX0gLT4KLSAgICAgICAgICAg IEU7Ci0gICAgICAgIF8gLT4KLSAgICAgICAgICAgIGZhbHNlCi0gICAgZW5kLgotCi1nZXRfdXNl cl9kaXNwbGF5ZWRfZ3JvdXBzX2FkKFVTKSAtPgotICAgIHtfLCBIb3N0fSA9IFVTLAotICAgIEFk R3JvdXAgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfZ3JvdXAsIEhvc3R9 KSwKLSAgICBGaWx0ZXJHcm91cCA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm1lbWJlck9mIiwgQWRH cm91cCksCi0gICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9i YXNlLCBIb3N0fSksCi0gICAgCi0gICAgY2FzZSBlbGRhcDpzZWFyY2goIm1vZF9zaGFyZWRfcm9z dGVyX2FkIiwKLSAgICAgICAgICAgICAgICAgICAgICBbe2Jhc2UsIEJhc2V9LAotICAgICAgICAg ICAgICAgICAgICAgICB7ZmlsdGVyLCBGaWx0ZXJHcm91cH0sCi0gICAgICAgICAgICAgICAgICAg ICAgIHthdHRyaWJ1dGVzLCBbXX1dKSBvZgotICAgICAgICAjZWxkYXBfc2VhcmNoX3Jlc3VsdHtl bnRyaWVzID0gRX0gLT4KLQkgICAgbGlzdHM6dXNvcnQobGlzdHM6bWFwKAotCSAgICAgIGZ1bihY KSAtPgotCQkgICAgICBjYXNlIFggb2YKLQkJCSAgI2VsZGFwX2VudHJ5e2F0dHJpYnV0ZXMgPSBB dHRyaWJ1dGVzfSAtPgotCQkJICAgICAgbGRhcF9nZXRfdmFsdWUoQXR0cmlidXRlcywiZGVwYXJ0 bWVudCIpOwotCQkJICBmYWxzZSAtPgotCQkJICAgICAgIiIJICAgIAotCQkgICAgICBlbmQKLQkJ ICAgICAgZW5kLCBFCi0JICAgICApKTsKLQkgICAgCi0gICAgICAgIF8gLT4KLSAgICAgICAgICAg IFtdCi0gICAgZW5kLgotCi1nZXRfZWxkYXBfaWQoSG9zdCwgTmFtZSkgLT4KLSAgICBhdG9tX3Rv X2xpc3QoZ2VuX21vZDpnZXRfbW9kdWxlX3Byb2MoSG9zdCwgTmFtZSkpLgotCi0KLWdldF9ncm91 cF91c2Vyc19hZChIb3N0LCBHcm91cCkgLT4KLSAgICBBdHRyID0gZWphYmJlcmRfY29uZmlnOmdl dF9sb2NhbF9vcHRpb24oe2FkX3VpZGF0dHIsIEhvc3R9KSwKLSUgICAgQWRHcm91cCA9IGVqYWJi ZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9ncm91cCwgSG9zdH0pLAotICAgIEZpbHRl clBlcnNvbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENhdGVnb3J5IiwgInBlcnNvbiIp LAotICAgIEZpbHRlckNvbXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJvYmplY3RDbGFzcyIsICJj b21wdXRlciIpLAotICAgIEZpbHRlckhpZGRlbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goImRlc2Ny aXB0aW9uIiwgImhpZGRlbiIpLAotJSAgICBGaWx0ZXJHcm91cCA9IGVsZGFwOmVxdWFsaXR5TWF0 Y2goIm1lbWJlck9mIiwgQWRHcm91cCksCi0gICAgRmlsdGVyRGVwID0gZWxkYXA6ZXF1YWxpdHlN YXRjaCgiZGVwYXJ0bWVudCIsIEdyb3VwKSwKLSAgICBGaWx0ZXJMaXZlID0gZWxkYXA6ZXF1YWxp dHlNYXRjaCgidXNlckFjY291bnRDb250cm9sIiwgIjY2MDUwIiksCi0gICAgRmlsdGVyRGVmID0g ZWxkYXA6cHJlc2VudChBdHRyKSwKLSAgICBGaWx0ZXIgPSBlbGRhcDonYW5kJyhbCi0JCQkgIEZp bHRlckRlZiwKLQkJCSAgRmlsdGVyUGVyc29uLAotJQkJCSAgRmlsdGVyR3JvdXAsCi0JCQkgIEZp bHRlckRlcCwKLQkJCSAgZWxkYXA6J25vdCcoRmlsdGVyQ29tcCksCi0JCQkgIGVsZGFwOidub3Qn KEZpbHRlckhpZGRlbiksCi0JCQkgIGVsZGFwOidub3QnKEZpbHRlckxpdmUpXSksCi0gICAgQmFz ZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9iYXNlLCBIb3N0fSksCi0g ICAgY2FzZSBlbGRhcDpzZWFyY2goZ2V0X2VsZGFwX2lkKEhvc3QsIGVqYWJiZXJkKSwKLQkJICAg ICAgW3tiYXNlLCBCYXNlfSwKLQkJICAgICAgIHtmaWx0ZXIsIEZpbHRlcn0sCi0JCSAgICAgICB7 YXR0cmlidXRlcywgW0F0dHJdfV0pIG9mCi0JI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9 IEVzfSAtPgotCSAgICBsaXN0czpmbGF0bWFwKAotCSAgICAgIGZ1bihFKSAtPgotCQkgICAgICBj YXNlIGxpc3RzOmtleXNlYXJjaChBdHRyLCAxLCBFI2VsZGFwX2VudHJ5LmF0dHJpYnV0ZXMpIG9m Ci0JCQkgIHt2YWx1ZSwge18sIFtVXX19IC0+Ci0JCQkgICAgICBjYXNlIGpsaWI6bm9kZXByZXAo VSkgb2YKLQkJCQkgIGVycm9yIC0+Ci0JCQkJICAgICAgW107Ci0JCQkJICBMVSAtPgotCQkJCSAg ICAgIFt7TFUsIEhvc3R9XQotCQkJICAgICAgZW5kOwotCQkJICBfIC0+Ci0JCQkgICAgICBbXQot CQkgICAgICBlbmQKLQkgICAgICBlbmQsIEVzKTsKLQlfIC0+Ci0JICAgIFtdCi0gICAgZW5kLgot Ci0KLQotCi0KLWxkYXBfZ2V0X3ZhbHVlKEUsQXR0cmlidXRlKSAtPgotICAgIGNhc2UgbGlzdHM6 ZmlsdGVyKGZ1bih7QSxffSkgLT4KLQkJCSAgICAgIHN0cmluZzplcXVhbChBLEF0dHJpYnV0ZSkK LQkJICAgICAgZW5kLEUpIG9mCi0JW3tfLFtWYWx1ZXxfXX1dIC0+Ci0JICAgIFZhbHVlOwotCV8g LT4gCi0JICAgIG5vbmUKLSAgICBlbmQuCi0KLWdldF91c2VyX2ZuKFVzZXIsIEhvc3QpIC0+Ci0g ICAgY2FzZSBmaW5kX3VzZXJfYXR0cihVc2VyLEhvc3QpIG9mCi0JI2VsZGFwX2VudHJ5e2F0dHJp YnV0ZXMgPSBBdHRyaWJ1dGVzfSAtPgotCSAgICBsZGFwX2dldF92YWx1ZShBdHRyaWJ1dGVzLCJj biIpOwotCQotCWZhbHNlIC0+Ci0JICAgICIiCSAgICAKLSAgICBlbmQuCi0KLQoKZGlmZiAtLWdp dCBhL21vZF92Y2FyZF9hZC5lcmwgYi9tb2RfdmNhcmRfYWQuZXJsCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA1MmRkYmVjLi4wMDAwMDAwCi0tLSBhL21vZF92Y2FyZF9hZC5lcmwKKysr IC9kZXYvbnVsbApAQCAtMSw2MzEgKzAsMCBAQAotCi0lJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0lJSUgRmls ZSAgICA6IG1vZF92Y2FyZF9hZC5lcmwKLSUlJSBBdXRob3IgIDogU3RhbmlzbGF2IEJvZ2F0eXJl diA8cmVhbGxvY0ByZWFsbG9jLnNwYi5ydT4KLSUlJSBBdXRob3IgIDogQWxleGV5IFNoY2hlcGlu IDxhbGV4ZXlAc2V2Y29tLm5ldD4KLSUlJSBBdXRob3IgIDogQWxleCA8YWdlbnRfMDA3PiBHb3Ji YWNoZW5rbyAoYWdlbnRfMDA3QGltbW8ucnUpCi0lJSUgUHVycG9zZSA6IAotJSUlIENyZWF0ZWQg OiAgMiBKYW4gMjAwMyBieSBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0PgotJSUl IElkICAgICAgOiAkSWQ6IG1vZF92Y2FyZF9hZC5lcmwgNDM3IDIwMDUtMTEtMTkgMDE6MjA6MDVa IGFnZW50XzAwNyAkCi0lJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS1tb2R1bGUobW9kX3ZjYXJkX2FkKS4K LS1hdXRob3IoJ3JlYWxsb2NAcmVhbGxvYy5zcGIucnUnKS4KLS1hdXRob3IoJ2FsZXhleUBzZXZj b20ubmV0JykuCi0tYXV0aG9yKCdhZ2VudF8wMDdAaW1tby5ydScpLgotLXZzbignJFJldmlzaW9u OiA0MzcgJCAnKS4KLQotLWJlaGF2aW91cihnZW5fbW9kKS4KLQotLWV4cG9ydChbc3RhcnQvMiwg aW5pdC8zLCBzdG9wLzEsCi0gCSBnZXRfc21fZmVhdHVyZXMvNSwKLQkgcHJvY2Vzc19sb2NhbF9p cS8zLAotCSBwcm9jZXNzX3NtX2lxLzMsCi0JIHJlbW92ZV91c2VyLzFdKS4KLQotLWluY2x1ZGUo ImVqYWJiZXJkLmhybCIpLgotLWluY2x1ZGUoImVsZGFwL2VsZGFwLmhybCIpLgotLWluY2x1ZGUo ImpsaWIuaHJsIikuCi0KLS1kZWZpbmUoUFJPQ05BTUUsIGVqYWJiZXJkX21vZF92Y2FyZF9hZCku Ci0KLXN0YXJ0KEhvc3QsIE9wdHMpIC0+Ci0gICAgSVFEaXNjID0gZ2VuX21vZDpnZXRfb3B0KGlx ZGlzYywgT3B0cywgb25lX3F1ZXVlKSwKLSAgICBnZW5faXFfaGFuZGxlcjphZGRfaXFfaGFuZGxl cihlamFiYmVyZF9sb2NhbCwgSG9zdCwgP05TX1ZDQVJELAotCQkJCSAgP01PRFVMRSwgcHJvY2Vz c19sb2NhbF9pcSwgSVFEaXNjKSwKLSAgICBnZW5faXFfaGFuZGxlcjphZGRfaXFfaGFuZGxlcihl amFiYmVyZF9zbSwgSG9zdCwgP05TX1ZDQVJELAotCQkJCSAgP01PRFVMRSwgcHJvY2Vzc19zbV9p cSwgSVFEaXNjKSwKLSAgICBlamFiYmVyZF9ob29rczphZGQoZGlzY29fc21fZmVhdHVyZXMsIEhv c3QsID9NT0RVTEUsIGdldF9zbV9mZWF0dXJlcywgNTApLAotICAgIExEQVBTZXJ2ZXJzID0gZWph YmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3NlcnZlcnMsIEhvc3R9KSwKLSAgICBS b290RE4gPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfcm9vdGRuLCBIb3N0 fSksCi0gICAgUGFzc3dvcmQgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRf cGFzc3dvcmQsIEhvc3R9KSwKLSAgICBlbGRhcDpzdGFydF9saW5rKCJtb2RfdmNhcmRfYWQiLCBM REFQU2VydmVycywgMzg5LCBSb290RE4sIFBhc3N3b3JkKSwKLSAgICBNeUhvc3QgPSBnZW5fbW9k OmdldF9vcHQoaG9zdCwgT3B0cywgInZqdWQuIiArKyBIb3N0KSwKLSAgICBTZWFyY2ggPSBnZW5f bW9kOmdldF9vcHQoc2VhcmNoLCBPcHRzLCB0cnVlKSwKLSAgICByZWdpc3RlcihnZW5fbW9kOmdl dF9tb2R1bGVfcHJvYyhIb3N0LCA/UFJPQ05BTUUpLAotCSAgICAgc3Bhd24oP01PRFVMRSwgaW5p dCwgW015SG9zdCwgSG9zdCwgU2VhcmNoXSkpLgotCi1pbml0KEhvc3QsIFNlcnZlckhvc3QsIFNl YXJjaCkgLT4KLSAgICBjYXNlIFNlYXJjaCBvZgotCWZhbHNlIC0+Ci0JICAgIGxvb3AoSG9zdCwg U2VydmVySG9zdCk7Ci0JXyAtPgotCSAgICBlamFiYmVyZF9yb3V0ZXI6cmVnaXN0ZXJfcm91dGUo SG9zdCksCi0JICAgIGxvb3AoSG9zdCwgU2VydmVySG9zdCkKLSAgICBlbmQuCi0KLWxvb3AoSG9z dCwgU2VydmVySG9zdCkgLT4KLSAgICByZWNlaXZlCi0Je3JvdXRlLCBGcm9tLCBUbywgUGFja2V0 fSAtPgotCSAgICBjYXNlIGNhdGNoIGRvX3JvdXRlKFNlcnZlckhvc3QsIEZyb20sIFRvLCBQYWNr ZXQpIG9mCi0JCXsnRVhJVCcsIFJlYXNvbn0gLT4KLQkJICAgID9FUlJPUl9NU0coIn5wIiwgW1Jl YXNvbl0pOwotCQlfIC0+Ci0JCSAgICBvawotCSAgICBlbmQsCi0JICAgIGxvb3AoSG9zdCwgU2Vy dmVySG9zdCk7Ci0Jc3RvcCAtPgotCSAgICBlamFiYmVyZF9yb3V0ZXI6dW5yZWdpc3Rlcl9yb3V0 ZShIb3N0KSwKLQkgICAgb2s7Ci0JXyAtPgotCSAgICBsb29wKEhvc3QsIFNlcnZlckhvc3QpCi0g ICAgZW5kLgotCi1zdG9wKEhvc3QpIC0+Ci0gICAgZ2VuX2lxX2hhbmRsZXI6cmVtb3ZlX2lxX2hh bmRsZXIoZWphYmJlcmRfbG9jYWwsIEhvc3QsID9OU19WQ0FSRCksCi0gICAgZ2VuX2lxX2hhbmRs ZXI6cmVtb3ZlX2lxX2hhbmRsZXIoZWphYmJlcmRfc20sIEhvc3QsID9OU19WQ0FSRCksCi0gICAg ZWphYmJlcmRfaG9va3M6ZGVsZXRlKGRpc2NvX3NtX2ZlYXR1cmVzLCBIb3N0LCA/TU9EVUxFLCBn ZXRfc21fZmVhdHVyZXMsIDUwKSwKLSAgICBQcm9jID0gZ2VuX21vZDpnZXRfbW9kdWxlX3Byb2Mo SG9zdCwgP1BST0NOQU1FKSwKLSAgICBQcm9jICEgc3RvcCwKLSAgICB7d2FpdCwgUHJvY30uCi0K LWdldF9zbV9mZWF0dXJlcyh7ZXJyb3IsIF9FcnJvcn0gPSBBY2MsIF9Gcm9tLCBfVG8sIF9Ob2Rl LCBfTGFuZykgLT4KLSAgICBBY2M7Ci1nZXRfc21fZmVhdHVyZXMoQWNjLCBfRnJvbSwgX1RvLCBO b2RlLCBfTGFuZykgLT4KLSAgICBjYXNlIE5vZGUgb2YKLSAJW10gLT4KLSAJICAgIGNhc2UgQWNj IG9mCi0gCQl7cmVzdWx0LCBGZWF0dXJlc30gLT4KLSAJCSAgICB7cmVzdWx0LCBbP05TX1ZDQVJE IHwgRmVhdHVyZXNdfTsKLSAJCWVtcHR5IC0+Ci0gCQkgICAge3Jlc3VsdCwgWz9OU19WQ0FSRF19 Ci0gCSAgICBlbmQ7Ci0gIAlfIC0+Ci0gCSAgICBBY2MKLSAgICBlbmQuCi0KLXByb2Nlc3NfbG9j YWxfaXEoX0Zyb20sIF9UbywgI2lxe3R5cGUgPSBUeXBlLCBsYW5nID0gTGFuZywgc3ViX2VsID0g U3ViRWx9ID0gSVEpIC0+Ci0gICAgY2FzZSBUeXBlIG9mCi0Jc2V0IC0+Ci0JICAgIElRI2lxe3R5 cGUgPSBlcnJvciwgc3ViX2VsID0gW1N1YkVsLCA/RVJSX05PVF9BTExPV0VEXX07Ci0JZ2V0IC0+ Ci0JICAgIElRI2lxe3R5cGUgPSByZXN1bHQsCi0JCSAgc3ViX2VsID0gW3t4bWxlbGVtZW50LCAi dkNhcmQiLAotCQkJICAgICBbeyJ4bWxucyIsID9OU19WQ0FSRH1dLAotCQkJICAgICBbe3htbGVs ZW1lbnQsICJGTiIsIFtdLAotCQkJICAgICAgIFt7eG1sY2RhdGEsICJlamFiYmVyZCJ9XX0sCi0J CQkgICAgICB7eG1sZWxlbWVudCwgIlVSTCIsIFtdLAotCQkJICAgICAgIFt7eG1sY2RhdGEsCi0J CQkJICJodHRwOi8vZWphYmJlcmQuamFiYmVyc3R1ZGlvLm9yZy8ifV19LAotCQkJICAgICAge3ht bGVsZW1lbnQsICJERVNDIiwgW10sCi0JCQkgICAgICAgW3t4bWxjZGF0YSwKLQkJCQkgdHJhbnNs YXRlOnRyYW5zbGF0ZSgKLQkJCQkgICBMYW5nLAotCQkJCSAgICJFcmxhbmcgSmFiYmVyIFNlcnZl clxuIgotCQkJCSAgICJDb3B5cmlnaHQgKGMpIDIwMDItMjAwNSBBbGV4ZXkgU2hjaGVwaW4iKX1d fSwKLQkJCSAgICAgIHt4bWxlbGVtZW50LCAiQkRBWSIsIFtdLAotCQkJICAgICAgIFt7eG1sY2Rh dGEsICIyMDAyLTExLTE2In1dfQotCQkJICAgICBdfV19Ci0gICAgZW5kLgotCi1maW5kX2xkYXBf dXNlcihIb3N0LCBVc2VyKSAtPgotICAgIEF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2Fs X29wdGlvbih7YWRfdWlkYXR0ciwgSG9zdH0pLAotICAgIEZpbHRlciA9IGVsZGFwOmVxdWFsaXR5 TWF0Y2goQXR0ciwgVXNlciksCi0gICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxf b3B0aW9uKHthZF9iYXNlLCBIb3N0fSksCi0gICAgY2FzZSBlbGRhcDpzZWFyY2goIm1vZF92Y2Fy ZF9hZCIsIFt7YmFzZSwgQmFzZX0sCi0JCQkJCSB7ZmlsdGVyLCBGaWx0ZXJ9LAotCQkJCQkge2F0 dHJpYnV0ZXMsIFtdfV0pIG9mCi0JI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IFtFIHwg X119IC0+Ci0JICAgIEU7Ci0JXyAtPgotCSAgICBmYWxzZQotICAgIGVuZC4KLQotaXNfYXR0cmli dXRlX3JlYWRfYWxsb3dlZChOYW1lLEZyb20sVG8pIC0+Ci0gICAgdHJ1ZS4KLQotbGRhcF9hdHRy aWJ1dGVfdG9fdmNhcmQoUHJlZml4LHtOYW1lLFZhbHVlc30sRnJvbSxUbykgLT4KLSAgICBjYXNl IGlzX2F0dHJpYnV0ZV9yZWFkX2FsbG93ZWQoTmFtZSxGcm9tLFRvKSBvZiAKLQl0cnVlIC0+Ci0J ICAgIGxkYXBfbGNhX3RvX3ZjYXJkKFByZWZpeCxzdHJpbmdwcmVwOnRvbG93ZXIoTmFtZSksVmFs dWVzKTsKLQlfIC0+Ci0JICAgIG5vbmUKLSAgICBlbmQuCi0KLWxkYXBfbGNhX3RvX3ZjYXJkKHZD YXJkLCJkaXNwbGF5bmFtZSIsW1ZhbHVlfF9dKSAtPgotICAgIHt4bWxlbGVtZW50LCJGTiIsW10s W3t4bWxjZGF0YSxWYWx1ZX1dfTsKLQotbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsImNuIixbVmFs dWV8X10pIC0+Ci0gICAge3htbGVsZW1lbnQsIk5JQ0tOQU1FIixbXSxbe3htbGNkYXRhLFZhbHVl fV19OwotCi1sZGFwX2xjYV90b192Y2FyZCh2Q2FyZCwidGl0bGUiLFtWYWx1ZXxfXSkgLT4KLSAg ICB7eG1sZWxlbWVudCwiVElUTEUiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Ci0KLWxkYXBfbGNh X3RvX3ZjYXJkKHZDYXJkLCJ3d3dob21lcGFnZSIsW1ZhbHVlfF9dKSAtPgotICAgIHt4bWxlbGVt ZW50LCJVUkwiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Ci0KLWxkYXBfbGNhX3RvX3ZjYXJkKHZD YXJkLCJkZXNjcmlwdGlvbiIsW1ZhbHVlfF9dKSAtPgotICAgIHt4bWxlbGVtZW50LCJERVNDIixb XSxbe3htbGNkYXRhLFZhbHVlfV19OwotCi1sZGFwX2xjYV90b192Y2FyZCh2Q2FyZCwidGVsZXBo b25lbnVtYmVyIixbVmFsdWV8X10pIC0+Ci0gICAge3htbGVsZW1lbnQsIlRFTCIsW10sW3t4bWxl bGVtZW50LCJWT0lDRSIsW10sW119LAotCQkJICB7eG1sZWxlbWVudCwiV09SSyIsW10sW119LAot CQkJICB7eG1sZWxlbWVudCwiTlVNQkVSIixbXSxbe3htbGNkYXRhLFZhbHVlfV19XX07Ci0KLWxk YXBfbGNhX3RvX3ZjYXJkKHZDYXJkLCJtYWlsIixbVmFsdWV8X10pIC0+Ci0gICAge3htbGVsZW1l bnQsIkVNQUlMIixbXSxbe3htbGVsZW1lbnQsIklOVEVSTkVUIixbXSxbXX0sCi0JCQkgICAge3ht bGVsZW1lbnQsIlBSRUYiLFtdLFtdfSwKLQkJCSAgICB7eG1sZWxlbWVudCwiVVNFUklEIixbXSxb e3htbGNkYXRhLFZhbHVlfV19XX07Ci0KLWxkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkTiwic24iLFtW YWx1ZXxfXSkgLT4KLSAgICB7eG1sZWxlbWVudCwiRkFNSUxZIixbXSxbe3htbGNkYXRhLFZhbHVl fV19OwotCi1sZGFwX2xjYV90b192Y2FyZCh2Q2FyZE4sImdpdmVubmFtZSIsW1ZhbHVlfF9dKSAt PgotICAgIHt4bWxlbGVtZW50LCJHSVZFTiIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKLQotbGRh cF9sY2FfdG9fdmNhcmQodkNhcmROLCJpbml0aWFscyIsW1ZhbHVlfF9dKSAtPgotICAgIHt4bWxl bGVtZW50LCJNSURETEUiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Ci0KLWxkYXBfbGNhX3RvX3Zj YXJkKHZDYXJkQWRyLCJzdHJlZXRhZGRyZXNzIixbVmFsdWV8X10pIC0+Ci0gICAge3htbGVsZW1l bnQsIlNUUkVFVCIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKLWxkYXBfbGNhX3RvX3ZjYXJkKHZD YXJkQWRyLCJjbyIsW1ZhbHVlfF9dKSAtPgotICAgIHt4bWxlbGVtZW50LCJDVFJZIixbXSxbe3ht bGNkYXRhLFZhbHVlfV19OwotbGRhcF9sY2FfdG9fdmNhcmQodkNhcmRBZHIsImwiLFtWYWx1ZXxf XSkgLT4KLSAgICB7eG1sZWxlbWVudCwiTE9DQUxJVFkiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07 Ci1sZGFwX2xjYV90b192Y2FyZCh2Q2FyZEFkciwic3QiLFtWYWx1ZXxfXSkgLT4KLSAgICB7eG1s ZWxlbWVudCwiUkVHSU9OIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OwotbGRhcF9sY2FfdG9fdmNh cmQodkNhcmRBZHIsInBvc3RhbGNvZGUiLFtWYWx1ZXxfXSkgLT4KLSAgICB7eG1sZWxlbWVudCwi UENPREUiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Ci1sZGFwX2xjYV90b192Y2FyZCh2Q2FyZE8s ImNvbXBhbnkiLFtWYWx1ZXxfXSkgLT4KLSAgICB7eG1sZWxlbWVudCwiT1JHTkFNRSIsW10sW3t4 bWxjZGF0YSxWYWx1ZX1dfTsKLQotbGRhcF9sY2FfdG9fdmNhcmQodkNhcmRPLCJkZXBhcnRtZW50 IixbVmFsdWV8X10pIC0+Ci0gICAge3htbGVsZW1lbnQsIk9SR1VOSVQiLFtdLFt7eG1sY2RhdGEs VmFsdWV9XX07Ci0KLWxkYXBfbGNhX3RvX3ZjYXJkKF8sXyxfKSAtPiBub25lLgotCi1sZGFwX2F0 dHJpYnV0ZXNfdG9fdmNhcmQoQXR0cmlidXRlcyxGcm9tLFRvKSAtPgotICAgIEVsdHMgPSBsaXN0 czptYXAoZnVuKEF0dHIpIC0+Ci0JCQkgICAgIGxkYXBfYXR0cmlidXRlX3RvX3ZjYXJkKHZDYXJk LEF0dHIsRnJvbSxUbykKLQkJICAgICBlbmQsQXR0cmlidXRlcyksCi0gICAgRkVsdHMgPSBbIFgg fHwgWCA8LSBFbHRzLCBYIC89IG5vbmUgXSwKLSAgICBORWx0cyA9IGxpc3RzOm1hcChmdW4oQXR0 cikgLT4KLQkJCSAgICAgIGxkYXBfYXR0cmlidXRlX3RvX3ZjYXJkKHZDYXJkTixBdHRyLEZyb20s VG8pCi0JCSAgICAgIGVuZCxBdHRyaWJ1dGVzKSwKLSAgICBGTkVsdHMgPSBbIFggfHwgWCA8LSBO RWx0cywgWCAvPSBub25lIF0sCi0gICAKLSAgICBBRFJFbHRzID0gbGlzdHM6bWFwKGZ1bihBdHRy KSAtPgotCQkJICAgICAgbGRhcF9hdHRyaWJ1dGVfdG9fdmNhcmQodkNhcmRBZHIsQXR0cixGcm9t LFRvKQotCQkgICAgICBlbmQsQXR0cmlidXRlcyksCi0gICAgRkFEUkVsdHMgPSBbIFggfHwgWCA8 LSBBRFJFbHRzLCBYIC89IG5vbmUgXSwKLSAgICAKLSAgICBPRWx0cyA9IGxpc3RzOm1hcChmdW4o QXR0cikgLT4KLQkJCSAgICAgIGxkYXBfYXR0cmlidXRlX3RvX3ZjYXJkKHZDYXJkTyxBdHRyLEZy b20sVG8pCi0JCSAgICAgIGVuZCxBdHRyaWJ1dGVzKSwKLSAgICBGT0VsdHMgPSBbIFggfHwgWCA8 LSBPRWx0cywgWCAvPSBub25lIF0sCi0gICAgW3t4bWxlbGVtZW50LCAidkNhcmQiLCBbeyJ4bWxu cyIsID9OU19WQ0FSRH1dLAotICAgICAgbGlzdHM6YXBwZW5kKEZFbHRzLAotCQkgICBbe3htbGVs ZW1lbnQsIk4iLFtdLEZORWx0c30sCi0JCSAgICB7eG1sZWxlbWVudCwiQURSIixbXSxGQURSRWx0 c30sCi0JCSAgICB7eG1sZWxlbWVudCwiT1JHIixbXSxGT0VsdHN9XSkKLSAgICAgfV0uCi0KLXBy b2Nlc3Nfc21faXEoRnJvbSwgVG8sICNpcXt0eXBlID0gVHlwZSwgc3ViX2VsID0gU3ViRWx9ID0g SVEpIC0+Ci0gICAgY2FzZSBUeXBlIG9mCi0Jc2V0IC0+Ci0JICAgIElRI2lxe3R5cGUgPSBlcnJv ciwgc3ViX2VsID0gW1N1YkVsLCA/RVJSX05PVF9BTExPV0VEXX07Ci0JZ2V0IC0+Ci0JICAgICNq aWR7bHVzZXIgPSBMVXNlciwgbHNlcnZlciA9IExTZXJ2ZXJ9ID0gVG8sCi0JICAgIGNhc2UgZmlu ZF9sZGFwX3VzZXIoTFNlcnZlciwgTFVzZXIpIG9mCi0JCSNlbGRhcF9lbnRyeXthdHRyaWJ1dGVz ID0gQXR0cmlidXRlc30gLT4KLQkJICAgIFZjYXJkID0gbGRhcF9hdHRyaWJ1dGVzX3RvX3ZjYXJk KEF0dHJpYnV0ZXMsRnJvbSxUbyksCi0JCSAgICBJUSNpcXt0eXBlID0gcmVzdWx0LCBzdWJfZWwg PSBWY2FyZH07Ci0JCV8gLT4KLQkJICAgIElRI2lxe3R5cGUgPSByZXN1bHQsIHN1Yl9lbCA9IFtd fQotCSAgICBlbmQKLQllbmQuCi0KLS1kZWZpbmUoVExGSUVMRChUeXBlLCBMYWJlbCwgVmFyKSwK LQl7eG1sZWxlbWVudCwgImZpZWxkIiwgW3sidHlwZSIsIFR5cGV9LAotCQkJICAgICAgIHsibGFi ZWwiLCB0cmFuc2xhdGU6dHJhbnNsYXRlKExhbmcsIExhYmVsKX0sCi0JCQkgICAgICAgeyJ2YXIi LCBWYXJ9XSwgW119KS4KLQotCi0tZGVmaW5lKEZPUk0oSklEKSwKLQlbe3htbGVsZW1lbnQsICJp bnN0cnVjdGlvbnMiLCBbXSwKLQkgIFt7eG1sY2RhdGEsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoTGFu ZywgIllvdSBuZWVkIGFuIHg6ZGF0YSBjYXBhYmxlIGNsaWVudCB0byBzZWFyY2giKX1dfSwKLQkg e3htbGVsZW1lbnQsICJ4IiwgW3sieG1sbnMiLCA/TlNfWERBVEF9LCB7InR5cGUiLCAiZm9ybSJ9 XSwKLQkgIFt7eG1sZWxlbWVudCwgInRpdGxlIiwgW10sCi0JICAgIFt7eG1sY2RhdGEsIHRyYW5z bGF0ZTp0cmFuc2xhdGUoTGFuZywgIlNlYXJjaCB1c2VycyBpbiAiKSArKwotCSAgICAgIGpsaWI6 amlkX3RvX3N0cmluZyhKSUQpfV19LAotCSAgIHt4bWxlbGVtZW50LCAiaW5zdHJ1Y3Rpb25zIiwg W10sCi0JICAgIFt7eG1sY2RhdGEsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoTGFuZywgIkZpbGwgaW4g ZmllbGRzIHRvIHNlYXJjaCAiCi0JCQkJCSAgICAiZm9yIGFueSBtYXRjaGluZyBKYWJiZXIgVXNl ciIpfV19LAotCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJVc2VyIiwgInVzZXIiKSwKLQkg ICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiRnVsbCBOYW1lIiwgImZuIiksCi0JICAgP1RMRklF TEQoInRleHQtc2luZ2xlIiwgIkdpdmVuIE5hbWUiLCAiZ2l2ZW4iKSwKLQkgICA/VExGSUVMRCgi dGV4dC1zaW5nbGUiLCAiTWlkZGxlIE5hbWUiLCAibWlkZGxlIiksCi0JICAgP1RMRklFTEQoInRl eHQtc2luZ2xlIiwgIkZhbWlseSBOYW1lIiwgImZhbWlseSIpLAotCSAgID9UTEZJRUxEKCJ0ZXh0 LXNpbmdsZSIsICJOaWNrbmFtZSIsICJuaWNrbmFtZSIpLAotCSAgID9UTEZJRUxEKCJ0ZXh0LXNp bmdsZSIsICJCaXJ0aGRheSIsICJiZGF5IiksCi0JICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwg IkNvdW50cnkiLCAiY3RyeSIpLAotCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJDaXR5Iiwg ImxvY2FsaXR5IiksCi0JICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwgImVtYWlsIiwgImVtYWls IiksCi0JICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwgIk9yZ2FuaXphdGlvbiBOYW1lIiwgIm9y Z25hbWUiKSwKLQkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiT3JnYW5pemF0aW9uIFVuaXQi LCAib3JndW5pdCIpCi0JICBdfV0pLgotCi0KLQotCi1kb19yb3V0ZShTZXJ2ZXJIb3N0LCBGcm9t LCBUbywgUGFja2V0KSAtPgotICAgICNqaWR7dXNlciA9IFVzZXIsIHJlc291cmNlID0gUmVzb3Vy Y2V9ID0gVG8sCi0gICAgaWYKLQkoVXNlciAvPSAiIikgb3IgKFJlc291cmNlIC89ICIiKSAtPgot CSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoUGFja2V0LCA/RVJSX1NFUlZJQ0VfVU5B VkFJTEFCTEUpLAotCSAgICBlamFiYmVyZF9yb3V0ZXIgISB7cm91dGUsIFRvLCBGcm9tLCBFcnJ9 OwotCXRydWUgLT4KLQkgICAgSVEgPSBqbGliOmlxX3F1ZXJ5X2luZm8oUGFja2V0KSwKLQkgICAg Y2FzZSBJUSBvZgotCQkjaXF7dHlwZSA9IFR5cGUsIHhtbG5zID0gP05TX1NFQVJDSCwgbGFuZyA9 IExhbmcsIHN1Yl9lbCA9IFN1YkVsfSAtPgotCQkgICAgY2FzZSBUeXBlIG9mCi0JCQlzZXQgLT4K LQkJCSAgICBYRGF0YUVsID0gZmluZF94ZGF0YV9lbChTdWJFbCksCi0JCQkgICAgY2FzZSBYRGF0 YUVsIG9mCi0JCQkJZmFsc2UgLT4KLQkJCQkgICAgRXJyID0gamxpYjptYWtlX2Vycm9yX3JlcGx5 KAotCQkJCQkgICAgUGFja2V0LCA/RVJSX0JBRF9SRVFVRVNUKSwKLQkJCQkgICAgZWphYmJlcmRf cm91dGVyOnJvdXRlKFRvLCBGcm9tLCBFcnIpOwotCQkJCV8gLT4KLQkJCQkgICAgWERhdGEgPSBq bGliOnBhcnNlX3hkYXRhX3N1Ym1pdChYRGF0YUVsKSwKLQkJCQkgICAgY2FzZSBYRGF0YSBvZgot CQkJCQlpbnZhbGlkIC0+Ci0JCQkJCSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoCi0J CQkJCQkgICAgUGFja2V0LAotCQkJCQkJICAgID9FUlJfQkFEX1JFUVVFU1QpLAotCQkJCQkgICAg ZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLCBGcm9tLAotCQkJCQkJCQkgIEVycik7Ci0JCQkJCV8g LT4KLQkJCQkJICAgIFJlc0lRID0KLQkJCQkJCUlRI2lxewotCQkJCQkJICB0eXBlID0gcmVzdWx0 LAotCQkJCQkJICBzdWJfZWwgPQotCQkJCQkJICBbe3htbGVsZW1lbnQsCi0JCQkJCQkgICAgInF1 ZXJ5IiwKLQkJCQkJCSAgICBbeyJ4bWxucyIsID9OU19TRUFSQ0h9XSwKLQkJCQkJCSAgICBbe3ht bGVsZW1lbnQsICJ4IiwKLQkJCQkJCSAgICAgIFt7InhtbG5zIiwgP05TX1hEQVRBfSwKLQkJCQkJ CSAgICAgICB7InR5cGUiLCAicmVzdWx0In1dLAotCQkJCQkJICAgICAgc2VhcmNoX3Jlc3VsdChM YW5nLCBUbywgU2VydmVySG9zdCwgWERhdGEpCi0JCQkJCQkgICAgIH1dfV19LAotCQkJCQkgICAg ZWphYmJlcmRfcm91dGVyOnJvdXRlKAotCQkJCQkgICAgICBUbywgRnJvbSwgamxpYjppcV90b194 bWwoUmVzSVEpKQotCQkJCSAgICBlbmQKLQkJCSAgICBlbmQ7Ci0JCQlnZXQgLT4KLQkJCSAgICBS ZXNJUSA9IElRI2lxe3R5cGUgPSByZXN1bHQsCi0JCQkJCSAgc3ViX2VsID0gW3t4bWxlbGVtZW50 LAotCQkJCQkJICAgICAicXVlcnkiLAotCQkJCQkJICAgICBbeyJ4bWxucyIsID9OU19TRUFSQ0h9 XSwKLQkJCQkJCSAgICAgP0ZPUk0oVG8pCi0JCQkJCQkgICAgfV19LAotCQkJICAgIGVqYWJiZXJk X3JvdXRlcjpyb3V0ZShUbywKLQkJCQkJCSAgRnJvbSwKLQkJCQkJCSAgamxpYjppcV90b194bWwo UmVzSVEpKQotCQkgICAgZW5kOwotCQkjaXF7dHlwZSA9IFR5cGUsIHhtbG5zID0gP05TX0RJU0NP X0lORk8sIHN1Yl9lbCA9IFN1YkVsfSAtPgotCQkgICAgY2FzZSBUeXBlIG9mCi0JCQlzZXQgLT4K LQkJCSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoCi0JCQkJICAgIFBhY2tldCwgP0VS Ul9OT1RfQUxMT1dFRCksCi0JCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLCBGcm9tLCBF cnIpOwotCQkJZ2V0IC0+Ci0JCQkgICAgUmVzSVEgPQotCQkJCUlRI2lxe3R5cGUgPSByZXN1bHQs Ci0JCQkJICAgICAgc3ViX2VsID0gW3t4bWxlbGVtZW50LAotCQkJCQkJICJxdWVyeSIsCi0JCQkJ CQkgW3sieG1sbnMiLCA/TlNfRElTQ09fSU5GT31dLAotCQkJCQkJIFt7eG1sZWxlbWVudCwgImlk ZW50aXR5IiwKLQkJCQkJCSAgIFt7ImNhdGVnb3J5IiwgImRpcmVjdG9yeSJ9LAotCQkJCQkJICAg IHsidHlwZSIsICJ1c2VyIn0sCi0JCQkJCQkgICAgeyJuYW1lIiwKLQkJCQkJCSAgICAgInZDYXJk IFVzZXIgU2VhcmNoIn1dLAotCQkJCQkJICAgW119LAotCQkJCQkJICB7eG1sZWxlbWVudCwgImZl YXR1cmUiLAotCQkJCQkJICAgW3sidmFyIiwgP05TX1NFQVJDSH1dLCBbXX0sCi0JCQkJCQkgIHt4 bWxlbGVtZW50LCAiZmVhdHVyZSIsCi0JCQkJCQkgICBbeyJ2YXIiLCA/TlNfVkNBUkR9XSwgW119 Ci0JCQkJCQkgXQotCQkJCQkJfV19LAotCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywK LQkJCQkJCSAgRnJvbSwKLQkJCQkJCSAgamxpYjppcV90b194bWwoUmVzSVEpKQotCQkgICAgZW5k OwotCQkjaXF7dHlwZSA9IFR5cGUsIHhtbG5zID0gP05TX0RJU0NPX0lURU1TLCBzdWJfZWwgPSBT dWJFbH0gLT4KLQkJICAgIGNhc2UgVHlwZSBvZgotCQkJc2V0IC0+Ci0JCQkgICAgRXJyID0gamxp YjptYWtlX2Vycm9yX3JlcGx5KAotCQkJCSAgICBQYWNrZXQsID9FUlJfTk9UX0FMTE9XRUQpLAot CQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywgRnJvbSwgRXJyKTsKLQkJCWdldCAtPgot CQkJICAgIFJlc0lRID0gCi0JCQkJSVEjaXF7dHlwZSA9IHJlc3VsdCwKLQkJCQkgICAgICBzdWJf ZWwgPSBbe3htbGVsZW1lbnQsCi0JCQkJCQkgInF1ZXJ5IiwKLQkJCQkJCSBbeyJ4bWxucyIsID9O U19ESVNDT19JVEVNU31dLAotCQkJCQkJIFtdfV19LAotCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpy b3V0ZShUbywKLQkJCQkJCSAgRnJvbSwKLQkJCQkJCSAgamxpYjppcV90b194bWwoUmVzSVEpKQot CQkgICAgZW5kOwotCQkjaXF7dHlwZSA9IGdldCwgeG1sbnMgPSA/TlNfVkNBUkQsIGxhbmcgPSBM YW5nfSAtPgotCQkgICAgUmVzSVEgPSAKLQkJCUlRI2lxe3R5cGUgPSByZXN1bHQsCi0JCQkgICAg ICBzdWJfZWwgPSBbe3htbGVsZW1lbnQsCi0JCQkJCSAidkNhcmQiLAotCQkJCQkgW3sieG1sbnMi LCA/TlNfVkNBUkR9XSwKLQkJCQkJIGlxX2dldF92Y2FyZChMYW5nKX1dfSwKLQkJICAgIGVqYWJi ZXJkX3JvdXRlcjpyb3V0ZShUbywKLQkJCQkJICBGcm9tLAotCQkJCQkgIGpsaWI6aXFfdG9feG1s KFJlc0lRKSk7Ci0JCV8gLT4KLQkJICAgIEVyciA9IGpsaWI6bWFrZV9lcnJvcl9yZXBseShQYWNr ZXQsCi0JCQkJCQk/RVJSX1NFUlZJQ0VfVU5BVkFJTEFCTEUpLAotCQkgICAgZWphYmJlcmRfcm91 dGVyOnJvdXRlKFRvLCBGcm9tLCBFcnIpCi0JICAgIGVuZAotICAgIGVuZC4KLQotaXFfZ2V0X3Zj YXJkKExhbmcpIC0+Ci0gICAgW3t4bWxlbGVtZW50LCAiRk4iLCBbXSwKLSAgICAgIFt7eG1sY2Rh dGEsICJlamFiYmVyZC9tb2RfdmNhcmQifV19LAotICAgICB7eG1sZWxlbWVudCwgIlVSTCIsIFtd LAotICAgICAgW3t4bWxjZGF0YSwKLSAgICAgICAgImh0dHA6Ly9lamFiYmVyZC5qYWJiZXJzdHVk aW8ub3JnLyJ9XX0sCi0gICAgIHt4bWxlbGVtZW50LCAiREVTQyIsIFtdLAotICAgICAgW3t4bWxj ZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZSgKLQkJICAgIExhbmcsCi0JCSAgICAiZWphYmJlcmQg dkNhcmQgbW9kdWxlXG4iCi0JCSAgICAiQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgQWxleGV5IFNo Y2hlcGluIil9XX1dLgotCi1maW5kX3hkYXRhX2VsKHt4bWxlbGVtZW50LCBfTmFtZSwgX0F0dHJz LCBTdWJFbHN9KSAtPgotICAgIGZpbmRfeGRhdGFfZWwxKFN1YkVscykuCi0KLWZpbmRfeGRhdGFf ZWwxKFtdKSAtPgotICAgIGZhbHNlOwotZmluZF94ZGF0YV9lbDEoW3t4bWxlbGVtZW50LCBOYW1l LCBBdHRycywgU3ViRWxzfSB8IEVsc10pIC0+Ci0gICAgY2FzZSB4bWw6Z2V0X2F0dHJfcygieG1s bnMiLCBBdHRycykgb2YKLQk/TlNfWERBVEEgLT4KLQkgICAge3htbGVsZW1lbnQsIE5hbWUsIEF0 dHJzLCBTdWJFbHN9OwotCV8gLT4KLQkgICAgZmluZF94ZGF0YV9lbDEoRWxzKQotICAgIGVuZDsK LWZpbmRfeGRhdGFfZWwxKFtfIHwgRWxzXSkgLT4KLSAgICBmaW5kX3hkYXRhX2VsMShFbHMpLgot Ci0tZGVmaW5lKExGSUVMRChMYWJlbCwgVmFyKSwKLQl7eG1sZWxlbWVudCwgImZpZWxkIiwgW3si bGFiZWwiLCB0cmFuc2xhdGU6dHJhbnNsYXRlKExhbmcsIExhYmVsKX0sCi0JCQkgICAgICAgeyJ2 YXIiLCBWYXJ9XSwgW119KS4KLQotc2VhcmNoX3Jlc3VsdChMYW5nLCBKSUQsIFNlcnZlckhvc3Qs IERhdGEpIC0+Ci0gICAgW3t4bWxlbGVtZW50LCAidGl0bGUiLCBbXSwKLSAgICAgIFt7eG1sY2Rh dGEsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoTGFuZywgIlJlc3VsdHMgb2Ygc2VhcmNoIGluICIpICsr Ci0JamxpYjpqaWRfdG9fc3RyaW5nKEpJRCl9XX0sCi0gICAgIHt4bWxlbGVtZW50LCAicmVwb3J0 ZWQiLCBbXSwKLSAgICAgIFs/TEZJRUxEKCJKSUQiLCAiamlkIiksCi0gICAgICAgP0xGSUVMRCgi RnVsbCBOYW1lIiwgImZuIiksCi0gICAgICAgP0xGSUVMRCgiR2l2ZW4gTmFtZSIsICJnaXZlbiIp LAotICAgICAgID9MRklFTEQoIk1pZGRsZSBOYW1lIiwgIm1pZGRsZSIpLAotICAgICAgID9MRklF TEQoIkZhbWlseSBOYW1lIiwgImZhbWlseSIpLAotICAgICAgID9MRklFTEQoIk5pY2tuYW1lIiwg Im5pY2tuYW1lIiksCi0gICAgICAgP0xGSUVMRCgiQmlydGhkYXkiLCAiYmRheSIpLAotICAgICAg ID9MRklFTEQoIkNvdW50cnkiLCAiY3RyeSIpLAotICAgICAgID9MRklFTEQoIkNpdHkiLCAibG9j YWxpdHkiKSwKLSAgICAgICA/TEZJRUxEKCJlbWFpbCIsICJlbWFpbCIpLAotICAgICAgID9MRklF TEQoIk9yZ2FuaXphdGlvbiBOYW1lIiwgIm9yZ25hbWUiKSwKLSAgICAgICA/TEZJRUxEKCJPcmdh bml6YXRpb24gVW5pdCIsICJvcmd1bml0IikKLSAgICAgIF19XSArKyBsaXN0czptYXAoZnVuKEUp IC0+IAotCQkJICAgICAgIHJlY29yZF90b19pdGVtKEUjZWxkYXBfZW50cnkuYXR0cmlidXRlcykK LQkJICAgICAgIGVuZCwgc2VhcmNoKFNlcnZlckhvc3QsIERhdGEpKS4KLQotLWRlZmluZShGSUVM RChWYXIsIFZhbCksCi0Je3htbGVsZW1lbnQsICJmaWVsZCIsIFt7InZhciIsIFZhcn1dLAotCSBb e3htbGVsZW1lbnQsICJ2YWx1ZSIsIFtdLAotCSAgIFt7eG1sY2RhdGEsIFZhbH1dfV19KS4KLQot Y2FzZV9leGFjdF9jb21wYXJlKG5vbmUsXykgLT4KLSAgICBmYWxzZTsKLWNhc2VfZXhhY3RfY29t cGFyZShfLG5vbmUpIC0+Ci0gICAgZmFsc2U7Ci1jYXNlX2V4YWN0X2NvbXBhcmUoWCxZKSAtPgot ICAgIFggPiBZLgotCi1sZGFwX3NvcnRfZW50cmllcyhMKSAtPgotICAgIGxpc3RzOnNvcnQoZnVu KEUxLEUyKSAtPgotCQkgICAgICAgY2FzZV9leGFjdF9jb21wYXJlKGxkYXBfZ2V0X3ZhbHVlKEUx LCJjbiIpLGxkYXBfZ2V0X3ZhbHVlKEUyLCJjbiIpKQotCSAgICAgICBlbmQsTCkuCi0KLWxkYXBf Z2V0X3ZhbHVlKEUsQXR0cmlidXRlKSAtPgotICAgICNlbGRhcF9lbnRyeXthdHRyaWJ1dGVzID0g QXR0cmlidXRlc30gPSBFLAotICAgIGNhc2UgbGlzdHM6ZmlsdGVyKGZ1bih7QSxffSkgLT4KLQkJ CSAgICAgIHN0cmluZzplcXVhbChBLEF0dHJpYnV0ZSkKLQkJICAgICAgZW5kLEF0dHJpYnV0ZXMp IG9mCi0JW3tBdHRyLFtWYWx1ZXxfXX1dIC0+Ci0JICAgIFZhbHVlOwotCV8gLT4gCi0JICAgIG5v bmUKLSAgICBlbmQuCi0KLWxkYXBfYXR0cmlidXRlX3RvX2l0ZW0oInNhbWFjY291bnRuYW1lIixW YWx1ZSkgLT4KLSAgICBbCi0gICAgID9GSUVMRCgiamlkIixWYWx1ZSArKyAiQCIgKysgP01ZTkFN RSksCi0gICAgID9GSUVMRCgidWlkIixWYWx1ZSkKLSAgICBdOwotCi1sZGFwX2F0dHJpYnV0ZV90 b19pdGVtKCJjbiIsVmFsdWUpIC0+Ci0gICAgWwotICAgICA/RklFTEQoIm5pY2tuYW1lIixWYWx1 ZSkKLSAgICBdOwotCi1sZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJkaXNwbGF5bmFtZSIsVmFsdWUp IC0+Ci0gICAgWwotICAgICA/RklFTEQoImZuIixWYWx1ZSkKLSAgICBdOwotCi1sZGFwX2F0dHJp YnV0ZV90b19pdGVtKCJzbiIsVmFsdWUpIC0+Ci0gICAgWwotICAgICA/RklFTEQoImZhbWlseSIs VmFsdWUpCi0gICAgXTsKLWxkYXBfYXR0cmlidXRlX3RvX2l0ZW0oImNvIixWYWx1ZSkgLT4KLSAg ICBbCi0gICAgID9GSUVMRCgiY3RyeSIsVmFsdWUpCi0gICAgXTsKLWxkYXBfYXR0cmlidXRlX3Rv X2l0ZW0oImwiLFZhbHVlKSAtPgotICAgIFsKLSAgICAgP0ZJRUxEKCJsb2NhbGl0eSIsVmFsdWUp Ci0gICAgXTsKLQotbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgiZ2l2ZW5uYW1lIixWYWx1ZSkgLT4K LSAgICBbCi0gICAgID9GSUVMRCgiZ2l2ZW4iLFZhbHVlKQotICAgIF07Ci0KLWxkYXBfYXR0cmli dXRlX3RvX2l0ZW0oImluaXRpYWxzIixWYWx1ZSkgLT4KLSAgICBbCi0gICAgID9GSUVMRCgibWlk ZGxlIixWYWx1ZSkKLSAgICBdOwotCi1sZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJtYWlsIixWYWx1 ZSkgLT4KLSAgICBbCi0gICAgID9GSUVMRCgiZW1haWwiLFZhbHVlKQotICAgIF07Ci0KLWxkYXBf YXR0cmlidXRlX3RvX2l0ZW0oImNvbXBhbnkiLFZhbHVlKSAtPgotICAgIFsKLSAgICAgP0ZJRUxE KCJvcmduYW1lIixWYWx1ZSkKLSAgICBdOwotCi1sZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJkZXBh cnRtZW50IixWYWx1ZSkgLT4KLSAgICBbCi0gICAgID9GSUVMRCgib3JndW5pdCIsVmFsdWUpCi0g ICAgXTsKLQotbGRhcF9hdHRyaWJ1dGVfdG9faXRlbShfLF8pIC0+Ci0gICAgW25vbmVdLgotCi1y ZWNvcmRfdG9faXRlbShBdHRyaWJ1dGVzKSAtPgotICAgIExpc3QgPSBsaXN0czphcHBlbmQobGlz dHM6bWFwKGZ1bih7QXR0cixbVmFsdWV8X119KSAtPiAKLQkJCQkJICBsZGFwX2F0dHJpYnV0ZV90 b19pdGVtKHN0cmluZ3ByZXA6dG9sb3dlcihBdHRyKSxWYWx1ZSkKLQkJCQkgIGVuZCxBdHRyaWJ1 dGVzKSksCi0gICAgRkxpc3QgPSBbWCB8fCBYIDwtIExpc3QsIFggLz0gbm9uZV0sCi0gICAge3ht bGVsZW1lbnQsICJpdGVtIiwgW10sRkxpc3R9LgotCi1zZWFyY2goTFNlcnZlciwgRGF0YSkgLT4K LSUgICAgQWRHcm91cCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9ncm91 cCwgTFNlcnZlcn0pLAotICAgIEZpbHRlckRlZiA9IG1ha2VfZmlsdGVyKERhdGEpLAotICAgIEZp bHRlclBlcnNvbiA9ICBlbGRhcDplcXVhbGl0eU1hdGNoKCJvYmplY3RDYXRlZ29yeSIsICJwZXJz b24iKSwKLSAgICBGaWx0ZXJDb21wID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgib2JqZWN0Q2xhc3Mi LCAiY29tcHV0ZXIiKSwKLSAgICBGaWx0ZXJIaWRkZW4gPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJk ZXNjcmlwdGlvbiIsICJoaWRkZW4iKSwKLSUgICAgRmlsdGVyR3JvdXAgPSBlbGRhcDplcXVhbGl0 eU1hdGNoKCJtZW1iZXJPZiIsIEFkR3JvdXApLAotICAgIEZpbHRlckxpdmUgPSBlbGRhcDplcXVh bGl0eU1hdGNoKCJ1c2VyQWNjb3VudENvbnRyb2wiLCAiNjYwNTAiKSwKLSAgICBGaWx0ZXIgPSBl bGRhcDonYW5kJyhbCi0JCQkgIEZpbHRlckRlZiwKLQkJCSAgRmlsdGVyUGVyc29uLAotJQkJCSAg RmlsdGVyR3JvdXAsCi0JCQkgIGVsZGFwOidub3QnKEZpbHRlckNvbXApLAotCQkJICBlbGRhcDon bm90JyhGaWx0ZXJIaWRkZW4pLAotCQkJICBlbGRhcDonbm90JyhGaWx0ZXJMaXZlKV0pLAotICAg IEJhc2UgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgTFNlcnZl cn0pLAotICAgIFVJREF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRf dWlkYXR0ciwgTFNlcnZlcn0pLAotICAgIGNhc2UgZWxkYXA6c2VhcmNoKCJtb2RfdmNhcmRfYWQi LFt7YmFzZSwgQmFzZX0sCi0JCQkJCXtmaWx0ZXIsIEZpbHRlcn0sCi0JCQkJCXthdHRyaWJ1dGVz LCBbXX1dKSBvZgotCSNlbGRhcF9zZWFyY2hfcmVzdWx0e2VudHJpZXMgPSBFfSAtPgotCSAgICBb WCB8fCBYIDwtIEUsCi0JCSAgZWphYmJlcmRfYXV0aDppc191c2VyX2V4aXN0cygKLQkJICAgIGxk YXBfZ2V0X3ZhbHVlKFgsIFVJREF0dHIpLCBMU2VydmVyKV07Ci0JRXJyIC0+Ci0JICAgID9FUlJP Ul9NU0coIkJhZCBzZWFyY2g6IH5wIiwgW1tMU2VydmVyLCB7YmFzZSwgQmFzZX0sCi0JCQkJCXtm aWx0ZXIsIEZpbHRlcn0sCi0JCQkJCXthdHRyaWJ1dGVzLCBbXX1dXSkKLSAgICBlbmQuCi0KLQot bWFrZV9maWx0ZXIoRGF0YSkgLT4KLSAgICBGaWx0ZXIgPSBbWCB8fCBYIDwtIGxpc3RzOm1hcChm dW4oUikgLT4gCi0JCQkJCSAgbWFrZV9hc3NlcnRpb24oUikKLQkJCQkgIGVuZCwgRGF0YSksCi0J CSAgIFggLz0gbm9uZSBdLAotICAgIGNhc2UgRmlsdGVyIG9mCi0JW0ZdIC0+IAotCSAgICBGOwot CV8gLT4KLQkgICAgZWxkYXA6J2FuZCcoRmlsdGVyKQotICAgIGVuZC4KLQotCi1tYWtlX2Fzc2Vy dGlvbigiZ2l2ZW5OYW1lIixWYWx1ZSkgLT4KLSAgICBlbGRhcDpzdWJzdHJpbmdzKCJnaXZlbk5h bWUiLFt7YW55LFZhbHVlfV0pOwotCi1tYWtlX2Fzc2VydGlvbigiY24iLFZhbHVlKSAtPgotICAg IGVsZGFwOnN1YnN0cmluZ3MoImNuIixbe2FueSxWYWx1ZX1dKTsKLQotbWFrZV9hc3NlcnRpb24o InNuIixWYWx1ZSkgLT4KLSAgICBlbGRhcDpzdWJzdHJpbmdzKCJzbiIsW3thbnksVmFsdWV9XSk7 Ci0KLW1ha2VfYXNzZXJ0aW9uKEF0dHIsIFZhbHVlKSAtPgotICAgIGVsZGFwOmVxdWFsaXR5TWF0 Y2goQXR0cixWYWx1ZSkuCi0KLW1ha2VfYXNzZXJ0aW9uKHtTVmFyLCBbVmFsXX0pIC0+Ci0gICAg TEF0dHIgPSBsZGFwX2F0dHJpYnV0ZShTVmFyKSwKLSAgICBjYXNlIExBdHRyIG9mCi0Jbm9uZSAt PgotCSAgICBub25lOwotCV8gLT4KLQkgICAgaWYgCi0JCWlzX2xpc3QoVmFsKSBhbmQgKFZhbCAv PSAiIikgLT4KLQkJICAgIG1ha2VfYXNzZXJ0aW9uKExBdHRyLFZhbCk7Ci0JCXRydWUgLT4KLQkJ ICAgIG5vbmUKLQkgICAgZW5kCi0gICAgZW5kLgotCi1sZGFwX2F0dHJpYnV0ZSgidXNlciIpIC0+ Ci0gICAgInNhbWFjY291bnRuYW1lIjsKLQotbGRhcF9hdHRyaWJ1dGUoImZuIikgLT4KLSAgICAi Y24iOwotCi1sZGFwX2F0dHJpYnV0ZSgiZmFtaWx5IikgLT4KLSAgICAic24iOwotCi1sZGFwX2F0 dHJpYnV0ZSgiZ2l2ZW4iKSAtPgotICAgICJnaXZlbk5hbWUiOwotCi1sZGFwX2F0dHJpYnV0ZSgi bWlkZGxlIikgLT4KLSAgICAiaW5pdGlhbHMiOwotCi1sZGFwX2F0dHJpYnV0ZSgiZW1haWwiKSAt PgotICAgICJtYWlsIjsKLQotbGRhcF9hdHRyaWJ1dGUoIm9yZ25hbWUiKSAtPgotICAgICJjb21w YW55IjsKLQotbGRhcF9hdHRyaWJ1dGUoIm9yZ3VuaXQiKSAtPgotICAgICJkZXBhcnRtZW50IjsK LQotbGRhcF9hdHRyaWJ1dGUoXykgLT4KLSAgICBub25lLgotCi1yZW1vdmVfdXNlcihVc2VyKSAt PgotICAgIHRydWUuCi0KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBlZjA4 MzNhLi40MDgwMTRhIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEg QEAKLTIwMjljZWNhNDU1ODRkNzA0Y2E4MjFhNzcxZDZkOTI4ICBlamFiYmVyZC0yLjEuNS50YXIu Z3oKK2Y1YTQxZWRlZTIyMDRjNDE0MTUwMDc1MzMxY2VkNTA2ICBlamFiYmVyZC0yLjEuNi50YXIu Z3oK