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: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10: - 20090923git snapshot Date: Mon, 06 Jul 2026 18:04:18 GMT Message-ID: <178336105888.1.11190640009742283603.rpms-amarok-64b737e0ef4c@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10 X-Git-Rev: 64b737e0ef4cd288315a3d606a74b17f0f5d80d5 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMApDb21taXQgOiA2NGI3MzdlMGVmNGNkMjg4MzE1YTNkNjA2YTc0YjE3ZjBmNWQ4 MGQ1CkF1dGhvciA6IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+CkRhdGUg ICA6IDIwMDktMDktMjRUMDE6MzQ6MTcrMDA6MDAKU3RhdHMgIDogKzEzNTYvLTYgaW4gMiBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvYW1hcm9rL2Mv NjRiNzM3ZTBlZjRjZDI4ODMxNWEzZDYwNmE3NGIxN2YwZjVkODBkNT9icmFuY2g9ZXBlbDEwCgpM b2c6Ci0gMjAwOTA5MjNnaXQgc25hcHNob3QKCi0tLQpkaWZmIC0tZ2l0IGEvYW1hcm9rLnNwZWMg Yi9hbWFyb2suc3BlYwppbmRleCBhZWVlM2UzLi5jN2FiOGNhIDEwMDY0NAotLS0gYS9hbWFyb2su c3BlYworKysgYi9hbWFyb2suc3BlYwpAQCAtMSwxNyArMSwyMyBAQAogCislZGVmaW5lIHNuYXAg MjAwOTA5MjNnaXQKKwogTmFtZTogICAgYW1hcm9rCiBTdW1tYXJ5OiBNZWRpYSBwbGF5ZXIKIFZl cnNpb246IDIuMS45MAotUmVsZWFzZTogMSV7P2Rpc3R9CitSZWxlYXNlOiAyLiV7c25hcH0lez9k aXN0fQogCiBHcm91cDogCSBBcHBsaWNhdGlvbnMvTXVsdGltZWRpYQogTGljZW5zZTogR1BMdjIr CiBVcmw6ICAgICBodHRwOi8vYW1hcm9rLmtkZS5vcmcvCiBTb3VyY2UwOiBodHRwOi8vZG93bmxv YWQua2RlLm9yZy91bnN0YWJsZS9hbWFyb2svJXt2ZXJzaW9ufS9zcmMvYW1hcm9rLSV7dmVyc2lv bn0udGFyLmJ6MgorI1NvdXJjZTA6ICBhbWFyb2stJXt2ZXJzaW9ufS0le3NuYXB9LnRhci5iejIK IEJ1aWxkUm9vdDogJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVsZWFzZX0tcm9v dC0lKCV7X19pZF91fSAtbikKIAogUGF0Y2g1MDogYW1hcm9rLTIuMC45MC1xdHNjcmlwdF9ub3Rf cmVxdWlyZWQucGF0Y2gKIAorIyBtb3N0bHkgYTogIGdpdCBkaWZmIHYyLjEuOTAKK1BhdGNoMTAw OiBwb3N0LTIuMS45MC0le3NuYXB9LnBhdGNoIAorCiBCdWlsZFJlcXVpcmVzOiBjdXJsLWRldmVs CiBCdWlsZFJlcXVpcmVzOiBkZXNrdG9wLWZpbGUtdXRpbHMKIEJ1aWxkUmVxdWlyZXM6IGdldHRl eHQKQEAgLTcyLDkgKzc4LDEwIEBAIE9ic29sZXRlczogYW1hcm9rLXV0aWxpdGllcyA8IDIuMC45 NgogCiAKICVwcmVwCi0lc2V0dXAgLXEKKyVzZXR1cCAtcSAKIAogJXBhdGNoNTAgLXAxIC1iIC5x dHNjcmlwdF9ub3RfcmVxdWlyZWQKKyVwYXRjaDEwMCAtcDEgLWIgLjIwMDkwOTIzZ2l0CiAKIAog JWJ1aWxkCkBAIC05MSwxMCArOTgsMTAgQEAgcm0gLXJmICV7YnVpbGRyb290fQogCiBtYWtlIGlu c3RhbGwgREVTVERJUj0le2J1aWxkcm9vdH0gLUMgJXtfdGFyZ2V0X3BsYXRmb3JtfQogCi0lZmlu ZF9sYW5nIGFtYXJvawotJWZpbmRfbGFuZyBhbWFyb2tjb2xsZWN0aW9uc2Nhbm5lcl9xdAotJWZp bmRfbGFuZyBhbWFyb2twa2cKLSVmaW5kX2xhbmcgYW1hcm9rX3NjcmlwdGVuZ2luZV9xc2NyaXB0 CislZmluZF9sYW5nIGFtYXJvayAKKyVmaW5kX2xhbmcgYW1hcm9rY29sbGVjdGlvbnNjYW5uZXJf cXQgCislZmluZF9sYW5nIGFtYXJva3BrZyAKKyVmaW5kX2xhbmcgYW1hcm9rX3NjcmlwdGVuZ2lu ZV9xc2NyaXB0IAogY2F0IGFtYXJva3BrZy5sYW5nID4+IGFtYXJvay5sYW5nCiBjYXQgYW1hcm9r X3NjcmlwdGVuZ2luZV9xc2NyaXB0LmxhbmcgPj4gYW1hcm9rLmxhbmcKIApAQCAtMTY2LDYgKzE3 Myw5IEBAIGZpCiAKIAogJWNoYW5nZWxvZworKiBXZWQgU2VwIDIzIDIwMDkgUmV4IERpZXRlciA8 cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4gMi4xLjkwLTIuMjAwOTA5MjNnaXQKKy0gMjAwOTA5 MjNnaXQgc25hcHNob3QKKwogKiBNb24gU2VwIDIxIDIwMDkgUmV4IERpZXRlciA8cmRpZXRlckBm ZWRvcmFwcm9qZWN0Lm9yZz4gMi4xLjkwLTEKIC0gYW1hcm9rLTIuMS45MCAoMi4ycmMxKQogCgpk aWZmIC0tZ2l0IGEvcG9zdC0yLjEuOTAtMjAwOTA5MjNnaXQucGF0Y2ggYi9wb3N0LTIuMS45MC0y MDA5MDkyM2dpdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2Ix NDRlCi0tLSAvZGV2L251bGwKKysrIGIvcG9zdC0yLjEuOTAtMjAwOTA5MjNnaXQucGF0Y2gKQEAg LTAsMCArMSwxMzQwIEBACitkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCitpbmRl eCAyZDk3NTU5Li42YTRlMzA3IDEwMDY0NAorLS0tIGEvQ2hhbmdlTG9nCisrKysgYi9DaGFuZ2VM b2cKK0BAIC0yLDYgKzIsMjAgQEAgQW1hcm9rIENoYW5nZUxvZworID09PT09PT09PT09PT09PT0K KyAoQykgMjAwMi0yMDA5IHRoZSBBbWFyb2sgYXV0aG9ycy4KKyAKKytWRVJTSU9OIDIuMgorKyAg Q0hBTkdFUzoKKysgICAgKiBNb3JlIGNvbGxlY3Rpb24gc2Nhbm5pbmcgc3BlZWR1cHMuCisrCisr ICBCVUdGSVhFUzoKKysgICAgKiBGaXggcGhvdG9zIGFwcGxldCBub3Qgd29ya2luZyBhZnRlciBy ZXN1bWluZyBwbGF5YmFjay4gKEJSIDIwNjgyOSkKKysgICAgKiBGaXggcmVncmVzc2lvbiB3aGVy ZSB0aGUgZ2VucmUgZmllbGQgaW4gdGhlIFRhZyBEaWFsb2cgd291bGQgc2hvdyB0aGUKKysgICAg ICBjb21wb3NlciBvZiB0aGUgdHJhY2suIChCUiAyMDgyNTUpCisrICAgICogRG9uJ3QgcmVzaHVm ZmxlIHRoZSBwbGF5bGlzdCBldmVyeSB0aW1lIHRoZSBhY3RpdmUgdHJhY2sgY2hhbmdlcyB3aGVu CisrICAgICogdXNpbmcgYSByYW5kb20gc29ydCBvcmRlci4KKysgICAgKiBGaXggdGhlIFZhcmlv dXMgQXJ0aXN0IG5vZGUgc29tZXRpbWVzIGJlaW5nIHNob3duIGluIHRoZSBDb2xsZWN0aW9uCisr ICAgICAgQnJvd3NlciB3aXRoIG5vdGhpbmcgdW5kZXJuZWF0aCBpdCAob3IgYW4gZW1wdHkgIlVu a25vd24iIGFsYnVtKS4KKysgICAgKiBGaXggc29tZSB0cmFja3MnIHRhZ3Mgbm90IGJlaW5nIHNh dmVkIGNvcnJlY3RseSB0byB0aGUgZGF0YWJhc2UuCisrICAgICAgKEJSIDIwMjAyMSkKKyAKKyBW RVJTSU9OIDIuMi1yYzEKKyAgIEZFQVRVUkVTOgorQEAgLTIzLDYgKzM3LDcgQEAgVkVSU0lPTiAy LjItcmMxCisgICAgICogQWRkZWQgIkxvY2sgbGF5b3V0IiBvcHRpb24gdG8gdGhlIG1haW4gd2lu ZG93J3MgY29udGV4dCBtZW51LiAgICAKKyAKKyAgIEJVR0ZJWEVTOgorKyAgICAqIEZpeCB3aWtp cGVkaWEgZW5naW5lIHJlZmluZWQgc2VhcmNoIGJyb2tlbi4gKEJSIDIwODAyNCkKKyAgICAgKiBD cmFzaCBpbiBRVGV4dENvZGVjIHdoaWxlIHNjYW5uaW5nIGNvbGxlY3Rpb24gaGFzIGJlZW4gZml4 ZWQuCisgICAgICAgQXBwYXJlbnRseS4gKEJSIDE5MTQ0NykKKyAgICAgKiBBIGRpYWxvZyB3aXRo ICJDYW4gbm90IHdyaXRlIHBsYXlsaXN0ICgvKSIgd2FzIGRpc3BsYXllZCB3aGVuIHVzaW5nCitk aWZmIC0tZ2l0IGEvc3JjL2NvbGxlY3Rpb24vaXBob25lb3MvYW1hcm9rX2NvbGxlY3Rpb24taXBo b25lb3Njb2xsZWN0aW9uLmRlc2t0b3AgYi9zcmMvY29sbGVjdGlvbi9pcGhvbmVvcy9hbWFyb2tf Y29sbGVjdGlvbi1pcGhvbmVvc2NvbGxlY3Rpb24uZGVza3RvcAoraW5kZXggODAzOTZlZi4uMzcz ZDcxYyAxMDA2NDQKKy0tLSBhL3NyYy9jb2xsZWN0aW9uL2lwaG9uZW9zL2FtYXJva19jb2xsZWN0 aW9uLWlwaG9uZW9zY29sbGVjdGlvbi5kZXNrdG9wCisrKysgYi9zcmMvY29sbGVjdGlvbi9pcGhv bmVvcy9hbWFyb2tfY29sbGVjdGlvbi1pcGhvbmVvc2NvbGxlY3Rpb24uZGVza3RvcAorQEAgLTE3 LDYgKzE3LDcgQEAgTmFtZVtubl09U2tyaXZldmVybmEgc2FtbGluZyBmb3IgaVBob25lIE9TIDMu MAorIE5hbWVbcGxdPUtvbGVrY2phIHR5bGtvLWRvLW9kY3p5dHUgaVBob25lIE9TIDMuMAorIE5h bWVbcHRdPUNvbGVjw6fDo28gQXBlbmFzIHBhcmEgTGVpdHVyYSBkbyBpUGhvbmUgT1MgMy4wCisg TmFtZVtwdF9CUl09Q29sZcOnw6NvIFNvbWVudGUgcGFyYSBMZWl0dXJhIGRvIGlQaG9uZSBPUyAz LjAKKytOYW1lW3J1XT3QmtC+0LvQu9C10LrRhtC40Y8gaVBob25lIE9TIDMuMCAo0YLQvtC70YzQ utC+INC00LvRjyDRh9GC0LXQvdC40Y8pCisgTmFtZVtzcl090JfQsdC40YDQutCwINCY4oCR0YTQ vtC9INCe0KHigJHQsCAzLjAgICjRgdCw0LzQviDQt9CwINGH0LjRgtCw0ZrQtSkKKyBOYW1lW3Ny QGxhdGluXT1aYmlya2EgaVBob25lT1PigJFhIDMuMCAgKHNhbW8gemEgxI1pdGFuamUpCisgTmFt ZVtzdl09aVBob25lIE9TIDMuMCBza3JpdnNreWRkYWQgc2FtbGluZworQEAgLTQwLDYgKzQxLDcg QEAgQ29tbWVudFtubl09QW1hcm9rLXNhbWxpbmdzdGlsbGVnZyBmb3IgaVBob25lIE9TIDMuMAor IENvbW1lbnRbcGxdPVd0eWN6a2Ega29sZWtjamkgdHlsa28tZG8tb2Rjenl0dSBpUGhvbmUgT1Mg My4wIGRsYSBBbWFyb2thCisgQ29tbWVudFtwdF09VW0gJ3BsdWdpbicgZGEgY29sZWPDp8Ojbywg YXBlbmFzIHBhcmEgbGVpdHVyYSwgZG8gaVBob25lIE9TIDMuMCBwYXJhIG8gQW1hcm9rCisgQ29t bWVudFtwdF9CUl09UGx1Z2luIGRlIGNvbGXDp8OjbyBzb21lbnRlIHBhcmEgTGVpdHVyYSBkbyBp UGhvbmUgT1MgMy4wLCBwYXJhIG8gQW1hcm9rCisrQ29tbWVudFtydV090JzQvtC00YPQu9GMINC6 0L7Qu9C70LXQutGG0LjRjyBpUGhvbmUgT1MgMy4wICjRgtC+0LvRjNC60L4g0LTQu9GPINGH0YLQ tdC90LjRjykKKyBDb21tZW50W3NyXT3Qn9GA0LjQutGZ0YPRh9Cw0Log0LfQsdC40YDQutC1INC9 0LAg0JjigJHRhNC+0L0g0J7QoeKAkdGDIDMuMCAo0YHQsNC80L4g0LfQsCDRh9C40YLQsNGa0LUp INC30LAg0JDQvNCw0YDQvtC6CisgQ29tbWVudFtzckBsYXRpbl09UHJpa2xqdcSNYWsgemJpcmtl IG5hIGlQaG9uZU9T4oCRdSAzLjAgKHNhbW8gemEgxI1pdGFuamUpIHphIEFtYXJvaworIENvbW1l bnRbc3ZdPUluc3RpY2tzcHJvZ3JhbSBtZWQgaVBob25lIE9TIDMuMCBza3JpdnNreWRkYWQgc2Ft bGluZyBmw7ZyIEFtYXJvaworZGlmZiAtLWdpdCBhL3NyYy9jb2xsZWN0aW9uL2lwb2Rjb2xsZWN0 aW9uL2FtYXJva19jb2xsZWN0aW9uLWlwb2Rjb2xsZWN0aW9uLmRlc2t0b3AgYi9zcmMvY29sbGVj dGlvbi9pcG9kY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlvbi1pcG9kY29sbGVjdGlvbi5kZXNr dG9wCitpbmRleCA0ZmRhNjE3Li40OGM2NDBhIDEwMDY0NAorLS0tIGEvc3JjL2NvbGxlY3Rpb24v aXBvZGNvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24taXBvZGNvbGxlY3Rpb24uZGVza3RvcAor KysrIGIvc3JjL2NvbGxlY3Rpb24vaXBvZGNvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24taXBv ZGNvbGxlY3Rpb24uZGVza3RvcAorQEAgLTM2LDcgKzM2LDcgQEAgTmFtZVtwbF09S29sZWtjamEg aVBvZAorIE5hbWVbcHRdPUNvbGVjw6fDo28gZG8gSVBvZAorIE5hbWVbcHRfQlJdPUNvbGXDp8Oj byBpUG9kCisgTmFtZVtyb109Q29sZWPIm2llIElwb2QKKy1OYW1lW3J1XT3QmtC+0LvQu9C10LrR htC40Y8gSXBvZAorK05hbWVbcnVdPdCa0L7Qu9C70LXQutGG0LjRjyBpUG9kCisgTmFtZVtzbF09 WmJpcmthIGlQb2QKKyBOYW1lW3NyXT3Ql9Cx0LjRgNC60LAg0LjigJHQv9C+0LTQsAorIE5hbWVb c3JAbGF0aW5dPVpiaXJrYSBpUG9kYQorQEAgLTg0LDcgKzg0LDcgQEAgQ29tbWVudFtwbF09V3R5 Y3prYSBrb2xla2NqaSBpUG9kYSBkbGEgQW1hcm9rYQorIENvbW1lbnRbcHRdPVVtICdwbHVnaW4n IGRhIGNvbGVjw6fDo28gZG8gSVBvZCBwYXJhIG8gQW1hcm9rCisgQ29tbWVudFtwdF9CUl09UGx1 Zy1pbiBkZSBjb2xlw6fDo28gaVBvZCBwYXJhIG8gQW1hcm9rCisgQ29tbWVudFtyb109TW9kdWwg ZGUgY29sZWPIm2llIElwb2QgcGVudHJ1IEFtYXJvaworLUNvbW1lbnRbcnVdPdCc0L7QtNGD0LvR jCDQutC+0LvQu9C10LrRhtC40LggSXBvZCDQtNC70Y8gQW1hcm9rCisrQ29tbWVudFtydV090JzQ vtC00YPQu9GMINC60L7Qu9C70LXQutGG0LjQuCBpUG9kINC00LvRjyBBbWFyb2sKKyBDb21tZW50 W3NsXT1Wc3RhdmVrIHphIHpiaXJrbyBpUG9kIHphIEFtYXJvaworIENvbW1lbnRbc3JdPdCf0YDQ uNC60ZnRg9GH0LDQuiDQt9Cx0LjRgNC60LUg0L3QsCDQuOKAkdC/0L7QtNGDINC30LAg0JDQvNCw 0YDQvtC6CisgQ29tbWVudFtzckBsYXRpbl09UHJpa2xqdcSNYWsgemJpcmtlIG5hIGlQb2R1IHph IEFtYXJvaworZGlmZiAtLWdpdCBhL3NyYy9jb2xsZWN0aW9uL215c3FsZWNvbGxlY3Rpb24vYW1h cm9rX2NvbGxlY3Rpb24tbXlzcWxlY29sbGVjdGlvbi5kZXNrdG9wIGIvc3JjL2NvbGxlY3Rpb24v bXlzcWxlY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlvbi1teXNxbGVjb2xsZWN0aW9uLmRlc2t0 b3AKK2luZGV4IGMzYWUxMmQuLjFkZWNlYmIgMTAwNjQ0CistLS0gYS9zcmMvY29sbGVjdGlvbi9t eXNxbGVjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9uLW15c3FsZWNvbGxlY3Rpb24uZGVza3Rv cAorKysrIGIvc3JjL2NvbGxlY3Rpb24vbXlzcWxlY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlv bi1teXNxbGVjb2xsZWN0aW9uLmRlc2t0b3AKK0BAIC0xOCw2ICsxOCw3IEBAIE5hbWVbbm5dPU15 U1FMZS1zYW1saW5nCisgTmFtZVtwbF09S29sZWtjamEgTXlTUUxlCisgTmFtZVtwdF09Q29sZWPD p8OjbyBkZSBNeVNRTGUKKyBOYW1lW3B0X0JSXT1Db2xlw6fDo28gTXlTUUxlCisrTmFtZVtydV09 0JrQvtC70LvQtdC60YbQuNGPIE15U1FMZQorIE5hbWVbc3JdPdCX0LHQuNGA0LrQsCDQvdCwINCc 0LDRmNCh0JrRg9CbZeKAkdGDCisgTmFtZVtzckBsYXRpbl09WmJpcmthIG5hIE15U1FMZeKAkXUK KyBOYW1lW3N2XT1NeVNRTC1zYW1saW5nCitkaWZmIC0tZ2l0IGEvc3JjL2NvbGxlY3Rpb24vbXlz cWxzZXJ2ZXJjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9uLW15c3Fsc2VydmVyY29sbGVjdGlv bi5kZXNrdG9wIGIvc3JjL2NvbGxlY3Rpb24vbXlzcWxzZXJ2ZXJjb2xsZWN0aW9uL2FtYXJva19j b2xsZWN0aW9uLW15c3Fsc2VydmVyY29sbGVjdGlvbi5kZXNrdG9wCitpbmRleCAzOTU3ZDY1Li5k MjcyNmQyIDEwMDY0NAorLS0tIGEvc3JjL2NvbGxlY3Rpb24vbXlzcWxzZXJ2ZXJjb2xsZWN0aW9u L2FtYXJva19jb2xsZWN0aW9uLW15c3Fsc2VydmVyY29sbGVjdGlvbi5kZXNrdG9wCisrKysgYi9z cmMvY29sbGVjdGlvbi9teXNxbHNlcnZlcmNvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24tbXlz cWxzZXJ2ZXJjb2xsZWN0aW9uLmRlc2t0b3AKK0BAIC0xOCw2ICsxOCw3IEBAIE5hbWVbbm5dPU15 U1FMU2VydmVyLXNhbWxpbmcKKyBOYW1lW3BsXT1Lb2xla2NqYSBNeVNRTFNlcnZlcgorIE5hbWVb cHRdPUNvbGVjw6fDo28gZGUgTXlTUUwgKFNlcnZpZG9yKQorIE5hbWVbcHRfQlJdPUNvbGXDp8Oj byBNeVNRTFNlcnZlcgorK05hbWVbcnVdPdCa0L7Qu9C70LXQutGG0LjRjyBNeVNRTFNlcnZlcgor IE5hbWVbc3JdPdCX0LHQuNGA0LrQsCDQvdCwINGB0LXRgNCy0LXRgNGDINCc0LDRmNCh0JrRg9Cb 4oCR0LAKKyBOYW1lW3NyQGxhdGluXT1aYmlya2EgbmEgc2VydmVydSBNeVNRTOKAkWEKKyBOYW1l W3N2XT1NeVNRTFNlcnZlci1zYW1saW5nCitkaWZmIC0tZ2l0IGEvc3JjL2NvbGxlY3Rpb24vc3Fs Y29sbGVjdGlvbi9TY2FuUmVzdWx0UHJvY2Vzc29yLmNwcCBiL3NyYy9jb2xsZWN0aW9uL3NxbGNv bGxlY3Rpb24vU2NhblJlc3VsdFByb2Nlc3Nvci5jcHAKK2luZGV4IGRjYzQ1ZjguLmM5Njk0ZjQg MTAwNjQ0CistLS0gYS9zcmMvY29sbGVjdGlvbi9zcWxjb2xsZWN0aW9uL1NjYW5SZXN1bHRQcm9j ZXNzb3IuY3BwCisrKysgYi9zcmMvY29sbGVjdGlvbi9zcWxjb2xsZWN0aW9uL1NjYW5SZXN1bHRQ cm9jZXNzb3IuY3BwCitAQCAtMTE0LDcgKzExNCw3IEBAIFNjYW5SZXN1bHRQcm9jZXNzb3I6OmRv bmVXaXRoSW1hZ2VzKCkKKyAgICAgICAgIGlmKCBrZXkuZmlyc3QuaXNFbXB0eSgpIHx8IGtleS5z ZWNvbmQuaXNFbXB0eSgpICkKKyAgICAgICAgICAgICBjb250aW51ZTsKKyAKKy0gICAgICAgIGlu dCBhcnRpc3QgPSBhcnRpc3RJZCgga2V5LmZpcnN0ICk7CisrICAgICAgICBpbnQgYXJ0aXN0ID0g Z2VuZXJpY0lkKCAiYXJ0aXN0cyIsIGtleS5maXJzdCApOworICAgICAgICAgaW50IGFsYnVtICA9 IGFsYnVtSWQoIGtleS5zZWNvbmQsIGFydGlzdCApOworIAorICAgICAgICAgLy8gV2lsbCBhdXRv bWF0aWNhbGx5IGFkZCB0aGUgaW1hZ2UgcGF0aCB0byB0aGUgZGF0YWJhc2UgaWYgbmVlZGVkCitA QCAtMjYxLDcgKzI2MSw3IEBAIFNjYW5SZXN1bHRQcm9jZXNzb3I6OnByb2Nlc3NEaXJlY3Rvcnko IGNvbnN0IFFMaXN0PFFWYXJpYW50TWFwID4gJmRhdGEgKQorICAgICB7CisgICAgICAgICBmb3Jl YWNoKCBjb25zdCBRVmFyaWFudE1hcCAmcm93LCBkYXRhICkKKyAgICAgICAgIHsKKy0gICAgICAg ICAgICBpbnQgYXJ0aXN0ID0gYXJ0aXN0SWQoIHJvdy52YWx1ZSggRmllbGQ6OkFSVElTVCApLnRv U3RyaW5nKCkgKTsKKysgICAgICAgICAgICBpbnQgYXJ0aXN0ID0gZ2VuZXJpY0lkKCAiYXJ0aXN0 cyIsIHJvdy52YWx1ZSggRmllbGQ6OkFSVElTVCApLnRvU3RyaW5nKCkgKTsKKyAgICAgICAgICAg ICBhZGRUcmFjayggcm93LCBhcnRpc3QgKTsKKyAgICAgICAgIH0KKyAgICAgfQorQEAgLTI2OSw3 ICsyNjksNyBAQCBTY2FuUmVzdWx0UHJvY2Vzc29yOjpwcm9jZXNzRGlyZWN0b3J5KCBjb25zdCBR TGlzdDxRVmFyaWFudE1hcCA+ICZkYXRhICkKKyAgICAgeworICAgICAgICAgUVN0cmluZyBhbGJ1 bUFydGlzdCA9IGZpbmRBbGJ1bUFydGlzdCggYXJ0aXN0cywgZGF0YS5jb3VudCgpICk7CisgICAg ICAgICAvL2FuIGVtcHR5IHN0cmluZyBtZWFucyB0aGF0IG5vIGFsYnVtYXJ0aXN0IHdhcyBmb3Vu ZAorLSAgICAgICAgaW50IGFydGlzdCA9IGFsYnVtQXJ0aXN0LmlzRW1wdHkoKSA/IDAgOiBhcnRp c3RJZCggYWxidW1BcnRpc3QgKTsKKysgICAgICAgIGludCBhcnRpc3QgPSBhbGJ1bUFydGlzdC5p c0VtcHR5KCkgPyAwIDogZ2VuZXJpY0lkKCAiYXJ0aXN0cyIsIGFsYnVtQXJ0aXN0ICk7CisgCisg ICAgICAgICBkZWJ1ZygpIDw8ICJhbGJ1bWFydGlzdCAiIDw8IGFsYnVtQXJ0aXN0IDw8ICJmb3Ig YXJ0aXN0cyIgPDwgYXJ0aXN0czsKKyAgICAgICAgIGZvcmVhY2goIGNvbnN0IFFWYXJpYW50TWFw ICZyb3csIGRhdGEgKQorQEAgLTM4MywzNyArMzgzLDIzIEBAIFNjYW5SZXN1bHRQcm9jZXNzb3I6 OmFkZFRyYWNrKCBjb25zdCBRVmFyaWFudE1hcCAmdHJhY2tEYXRhLCBpbnQgYWxidW1BcnRpc3RJ ZCApCisgICAgIH0KKyAKKyAgICAgaWYoIGRpci5jb3VudCgpID09IDEgKQorLSAgICB7CisgICAg ICAgICBjb21waWxhdGlvbklkID0gY2hlY2tFeGlzdGluZ0FsYnVtcyggYWxidW1OYW1lICk7Cist ICAgIH0KKyAKKy0gICAgaWYoIDAgPT0gY29tcGlsYXRpb25JZCApCistICAgIHsKKy0gICAgICAg IGFsYnVtID0gYWxidW1JZCggYWxidW1OYW1lLCBhbGJ1bUFydGlzdElkICk7CistICAgIH0KKysg ICAgLy9ydW4gYSBzaW5nbGUgcXVlcnkgdG8gZmV0Y2ggdGhlc2UgYXQgb25jZSwgdG8gc2F2ZSB0 aW1lCisrICAgIC8vdGhlbiB2YWx1ZXMgd2lsbCBiZSBjYWNoZWQgaW4gbG9jYWwgbWFwcywgc28g Y2FuIHVzZSB0aGUgc2FtZSBjYWxscyBiZWxvdworKyAgICBkYXRhYmFzZUlkRmV0Y2goIHRyYWNr RGF0YS52YWx1ZSggRmllbGQ6OkFSVElTVCApLnRvU3RyaW5nKCksCisrICAgICAgICAgICAgICAg ICAgICAgdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6R0VOUkUgKS50b1N0cmluZygpLAorKyAgICAg ICAgICAgICAgICAgICAgIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkNPTVBPU0VSICkudG9TdHJp bmcoKSwKKysgICAgICAgICAgICAgICAgICAgICB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpZRUFS ICkudG9TdHJpbmcoKSwKKysgICAgICAgICAgICAgICAgICAgICBhbGJ1bU5hbWUsIGFsYnVtQXJ0 aXN0SWQsIGNvbXBpbGF0aW9uSWQgKTsKKyAKKy0gICAgYm9vbCBuZWVkVG9RdWVyeSA9IGZhbHNl OworLSAgICBpZiggIW1fYXJ0aXN0cy5jb250YWlucyggdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6 QVJUSVNUICkudG9TdHJpbmcoKSApIHx8CistICAgICAgICAhbV9nZW5yZS5jb250YWlucyggdHJh Y2tEYXRhLnZhbHVlKCBGaWVsZDo6R0VOUkUgKS50b1N0cmluZygpICkgIHx8CistICAgICAgICAh bV9jb21wb3Nlci5jb250YWlucyggdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6Q09NUE9TRVIgKS50 b1N0cmluZygpICkgfHwKKy0gICAgICAgICFtX3llYXIuY29udGFpbnMoIHRyYWNrRGF0YS52YWx1 ZSggRmllbGQ6OllFQVIgKS50b1N0cmluZygpICkgKQorLSAgICAgICAgICAgIG5lZWRUb1F1ZXJ5 ID0gdHJ1ZTsKKysgICAgaW50IGFydGlzdCA9IGdlbmVyaWNJZCggImFydGlzdHMiLCB0cmFja0Rh dGEudmFsdWUoIEZpZWxkOjpBUlRJU1QgKS50b1N0cmluZygpICk7CisrICAgIGludCBnZW5yZSA9 IGdlbmVyaWNJZCggImdlbnJlcyIsIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkdFTlJFICkudG9T dHJpbmcoKSApOworKyAgICBpbnQgY29tcG9zZXIgPSBnZW5lcmljSWQoICJjb21wb3NlcnMiLCB0 cmFja0RhdGEudmFsdWUoIEZpZWxkOjpDT01QT1NFUiApLnRvU3RyaW5nKCkgKTsKKysgICAgaW50 IHllYXIgPSBnZW5lcmljSWQoICJ5ZWFycyIsIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OllFQVIg KS50b1N0cmluZygpICk7CisgCistICAgIGlmKCBuZWVkVG9RdWVyeSApCistICAgIHsKKy0gICAg ICAgIC8vcnVuIGEgc2luZ2xlIHF1ZXJ5IHRvIGZldGNoIHRoZXNlIGF0IG9uY2UsIHRvIHNhdmUg dGltZQorLSAgICAgICAgLy90aGVuIHZhbHVlcyB3aWxsIGJlIGNhY2hlZCBpbiBsb2NhbCBtYXBz LCBzbyBjYW4gdXNlIHRoZSBzYW1lIGNhbGxzIGJlbG93CistICAgICAgICBkYXRhYmFzZUlkRmV0 Y2goIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkFSVElTVCApLnRvU3RyaW5nKCksCistICAgICAg ICAgICAgICAgICAgICAgICAgIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkdFTlJFICkudG9TdHJp bmcoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6 Q09NUE9TRVIgKS50b1N0cmluZygpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja0Rh dGEudmFsdWUoIEZpZWxkOjpZRUFSICkudG9TdHJpbmcoKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgYWxidW1OYW1lLCBhbGJ1bUFydGlzdElkICk7CistICAgIH0KKy0KKy0gICAgaW50IGFy dGlzdCA9IGFydGlzdElkKCB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpBUlRJU1QgKS50b1N0cmlu ZygpICk7CistICAgIGludCBnZW5yZSA9IGdlbnJlSWQoIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6 OkdFTlJFICkudG9TdHJpbmcoKSApOworLSAgICBpbnQgY29tcG9zZXIgPSBjb21wb3NlcklkKCB0 cmFja0RhdGEudmFsdWUoIEZpZWxkOjpDT01QT1NFUiApLnRvU3RyaW5nKCkgKTsKKy0gICAgaW50 IHllYXIgPSB5ZWFySWQoIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OllFQVIgKS50b1N0cmluZygp ICk7CisrICAgIGlmKCAhY29tcGlsYXRpb25JZCApCisrICAgICAgICBhbGJ1bSA9IGFsYnVtSWQo IGFsYnVtTmFtZSwgYWxidW1BcnRpc3RJZCApOworIAorICAgICBRU3RyaW5nIHVpZCA9IHRyYWNr RGF0YS52YWx1ZSggRmllbGQ6OlVOSVFVRUlEICkudG9TdHJpbmcoKTsKKyAKK0BAIC00NzMsMTMx ICs0NTksODYgQEAgU2NhblJlc3VsdFByb2Nlc3Nvcjo6YWRkVHJhY2soIGNvbnN0IFFWYXJpYW50 TWFwICZ0cmFja0RhdGEsIGludCBhbGJ1bUFydGlzdElkICkKKyB9CisgCisgaW50CistU2NhblJl c3VsdFByb2Nlc3Nvcjo6YXJ0aXN0SWQoIGNvbnN0IFFTdHJpbmcgJmFydGlzdCApCisrU2NhblJl c3VsdFByb2Nlc3Nvcjo6Z2VuZXJpY0lkKCBjb25zdCBRU3RyaW5nICZrZXksIGNvbnN0IFFTdHJp bmcgJnZhbHVlICkKKyB7CistICAgIGlmKCBtX2FydGlzdHMuY29udGFpbnMoIGFydGlzdCApICkK Ky0gICAgICAgIHJldHVybiBtX2FydGlzdHMudmFsdWUoIGFydGlzdCApOworLSAgICBRU3RyaW5n IHF1ZXJ5ID0gUVN0cmluZyggIlNFTEVDVCBpZCBGUk9NIGFydGlzdHNfdGVtcCBXSEVSRSBuYW1l ID0gJyUxJzsiICkuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggYXJ0aXN0ICkgKTsKKy0gICAg UVN0cmluZ0xpc3QgcmVzID0gbV9jb2xsZWN0aW9uLT5xdWVyeSggcXVlcnkgKTsKKy0gICAgaW50 IGlkID0gMDsKKy0gICAgaWYoIHJlcy5pc0VtcHR5KCkgKQorLSAgICAgICAgaWQgPSBhcnRpc3RJ bnNlcnQoIGFydGlzdCApOworKyAgICBRTWFwPFFTdHJpbmcsIGludD4gKmN1cnJNYXA7CisrICAg IGlmKCBrZXkgPT0gImFydGlzdHMiICkKKysgICAgICAgIGN1cnJNYXAgPSAmbV9hcnRpc3RzOwor KyAgICBlbHNlIGlmKCBrZXkgPT0gImdlbnJlcyIgKQorKyAgICAgICAgY3Vyck1hcCA9ICZtX2dl bnJlczsKKysgICAgZWxzZSBpZigga2V5ID09ICJ5ZWFycyIgKQorKyAgICAgICAgY3Vyck1hcCA9 ICZtX3llYXJzOworKyAgICBlbHNlIGlmKCBrZXkgPT0gImNvbXBvc2VycyIgKQorKyAgICAgICAg Y3Vyck1hcCA9ICZtX2NvbXBvc2VyczsKKyAgICAgZWxzZQorLSAgICAgICAgaWQgPSByZXNbMF0u dG9JbnQoKTsKKy0gICAgbV9hcnRpc3RzLmluc2VydCggYXJ0aXN0LCBpZCApOworLSAgICByZXR1 cm4gaWQ7CistfQorLQorLWludAorLVNjYW5SZXN1bHRQcm9jZXNzb3I6OmFydGlzdEluc2VydCgg Y29uc3QgUVN0cmluZyAmYXJ0aXN0ICkKKy17CistICAgIFFTdHJpbmcgaW5zZXJ0ID0gUVN0cmlu ZyggIklOU0VSVCBJTlRPIGFydGlzdHNfdGVtcCggbmFtZSApIFZBTFVFUyAoJyUxJyk7IiApLmFy ZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGFydGlzdCApICk7CistICAgIGludCBpZCA9IG1fY29s bGVjdGlvbi0+aW5zZXJ0KCBpbnNlcnQsICJhcnRpc3RzX3RlbXAiICk7CistICAgIHJldHVybiBp ZDsKKy19CistCistaW50CistU2NhblJlc3VsdFByb2Nlc3Nvcjo6Z2VucmVJZCggY29uc3QgUVN0 cmluZyAmZ2VucmUgKQorLXsKKy0gICAgaWYoIG1fZ2VucmUuY29udGFpbnMoIGdlbnJlICkgKQor LSAgICAgICAgcmV0dXJuIG1fZ2VucmUudmFsdWUoIGdlbnJlICk7CistICAgIFFTdHJpbmcgcXVl cnkgPSBRU3RyaW5nKCAiU0VMRUNUIGlkIEZST00gZ2VucmVzX3RlbXAgV0hFUkUgbmFtZSA9ICcl MSc7IiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGdlbnJlICkgKTsKKy0gICAgUVN0cmlu Z0xpc3QgcmVzID0gbV9jb2xsZWN0aW9uLT5xdWVyeSggcXVlcnkgKTsKKy0gICAgaW50IGlkID0g MDsKKy0gICAgaWYoIHJlcy5pc0VtcHR5KCkgKQorLSAgICAgICAgaWQgPSBnZW5yZUluc2VydCgg Z2VucmUgKTsKKy0gICAgZWxzZQorLSAgICAgICAgaWQgPSByZXNbMF0udG9JbnQoKTsKKy0gICAg bV9nZW5yZS5pbnNlcnQoIGdlbnJlLCBpZCApOworLSAgICByZXR1cm4gaWQ7CistfQorLQorLWlu dAorLVNjYW5SZXN1bHRQcm9jZXNzb3I6OmdlbnJlSW5zZXJ0KCBjb25zdCBRU3RyaW5nICZnZW5y ZSApCisteworLSAgICBRU3RyaW5nIGluc2VydCA9IFFTdHJpbmcoICJJTlNFUlQgSU5UTyBnZW5y ZXNfdGVtcCggbmFtZSApIFZBTFVFUyAoJyUxJyk7IiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2Nh cGUoIGdlbnJlICkgKTsKKy0gICAgaW50IGlkID0gbV9jb2xsZWN0aW9uLT5pbnNlcnQoIGluc2Vy dCwgImdlbnJlc190ZW1wIiApOworLSAgICByZXR1cm4gaWQ7CistfQorLQorLWludAorLVNjYW5S ZXN1bHRQcm9jZXNzb3I6OmNvbXBvc2VySWQoIGNvbnN0IFFTdHJpbmcgJmNvbXBvc2VyICkKKy17 CistICAgIGlmKCBtX2NvbXBvc2VyLmNvbnRhaW5zKCBjb21wb3NlciApICkKKy0gICAgICAgIHJl dHVybiBtX2NvbXBvc2VyLnZhbHVlKCBjb21wb3NlciApOworLSAgICBRU3RyaW5nIHF1ZXJ5ID0g UVN0cmluZyggIlNFTEVDVCBpZCBGUk9NIGNvbXBvc2Vyc190ZW1wIFdIRVJFIG5hbWUgPSAnJTEn OyIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBjb21wb3NlciApICk7CistICAgIFFTdHJp bmdMaXN0IHJlcyA9IG1fY29sbGVjdGlvbi0+cXVlcnkoIHF1ZXJ5ICk7CistICAgIGludCBpZCA9 IDA7CistICAgIGlmKCByZXMuaXNFbXB0eSgpICkKKy0gICAgICAgIGlkID0gY29tcG9zZXJJbnNl cnQoIGNvbXBvc2VyICk7CistICAgIGVsc2UKKy0gICAgICAgIGlkID0gcmVzWzBdLnRvSW50KCk7 CistICAgIG1fY29tcG9zZXIuaW5zZXJ0KCBjb21wb3NlciwgaWQgKTsKKy0gICAgcmV0dXJuIGlk OworLX0KKysgICAgeworKyAgICAgICAgZGVidWcoKSA8PCAiSG9seSBoZWxsIEJhdG1hbiwgd2hh dCBqdXN0IGhhcHBlbmVkIGluIGdlbmVyaWNJZD8iOworKyAgICAgICAgcmV0dXJuIC05OTk5Owor KyAgICB9CisgCistaW50CistU2NhblJlc3VsdFByb2Nlc3Nvcjo6Y29tcG9zZXJJbnNlcnQoIGNv bnN0IFFTdHJpbmcgJmNvbXBvc2VyICkKKy17CistICAgIFFTdHJpbmcgaW5zZXJ0ID0gUVN0cmlu ZyggIklOU0VSVCBJTlRPIGNvbXBvc2Vyc190ZW1wKCBuYW1lICkgVkFMVUVTICgnJTEnKTsiICku YXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggY29tcG9zZXIgKSApOworLSAgICBpbnQgaWQgPSBt X2NvbGxlY3Rpb24tPmluc2VydCggaW5zZXJ0LCAiY29tcG9zZXJzX3RlbXAiICk7CistICAgIHJl dHVybiBpZDsKKy19CisrICAgIGlmKCBjdXJyTWFwLT5jb250YWlucyggdmFsdWUgKSApCisrICAg ICAgICByZXR1cm4gY3Vyck1hcC0+dmFsdWUoIHZhbHVlICk7CisgCistaW50CistU2NhblJlc3Vs dFByb2Nlc3Nvcjo6eWVhcklkKCBjb25zdCBRU3RyaW5nICZ5ZWFyICkKKy17CistICAgIGlmKCBt X3llYXIuY29udGFpbnMoIHllYXIgKSApCistICAgICAgICByZXR1cm4gbV95ZWFyLnZhbHVlKCB5 ZWFyICk7CistICAgIFFTdHJpbmcgcXVlcnkgPSBRU3RyaW5nKCAiU0VMRUNUIGlkIEZST00geWVh cnNfdGVtcCBXSEVSRSBuYW1lID0gJyUxJzsiICkuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSgg eWVhciApICk7CisrICAgIFFTdHJpbmcgcXVlcnkgPSBRU3RyaW5nKCAiU0VMRUNUIGlkIEZST00g JTFfdGVtcCBXSEVSRSBuYW1lID0gJyUyJzsiICkuYXJnKCBrZXksIG1fY29sbGVjdGlvbi0+ZXNj YXBlKCB2YWx1ZSApICk7CisgICAgIFFTdHJpbmdMaXN0IHJlcyA9IG1fY29sbGVjdGlvbi0+cXVl cnkoIHF1ZXJ5ICk7CisgICAgIGludCBpZCA9IDA7CisgICAgIGlmKCByZXMuaXNFbXB0eSgpICkK Ky0gICAgICAgIGlkID0geWVhckluc2VydCggeWVhciApOworKyAgICAgICAgaWQgPSBnZW5lcmlj SW5zZXJ0KCBrZXksIHZhbHVlICk7CisgICAgIGVsc2UKKyAgICAgICAgIGlkID0gcmVzWzBdLnRv SW50KCk7CistICAgIG1feWVhci5pbnNlcnQoIHllYXIsIGlkICk7CisrICAgIGN1cnJNYXAtPmlu c2VydCggdmFsdWUsIGlkICk7CisgICAgIHJldHVybiBpZDsKKyB9CisgCisgaW50CistU2NhblJl c3VsdFByb2Nlc3Nvcjo6eWVhckluc2VydCggY29uc3QgUVN0cmluZyAmeWVhciApCisrU2NhblJl c3VsdFByb2Nlc3Nvcjo6Z2VuZXJpY0luc2VydCggY29uc3QgUVN0cmluZyAma2V5LCBjb25zdCBR U3RyaW5nICZ2YWx1ZSApCisgeworLSAgICBRU3RyaW5nIGluc2VydCA9IFFTdHJpbmcoICJJTlNF UlQgSU5UTyB5ZWFyc190ZW1wKCBuYW1lICkgVkFMVUVTICgnJTEnKTsiICkuYXJnKCBtX2NvbGxl Y3Rpb24tPmVzY2FwZSggeWVhciApICk7CistICAgIGludCBpZCA9IG1fY29sbGVjdGlvbi0+aW5z ZXJ0KCBpbnNlcnQsICJ5ZWFyc190ZW1wIiApOworKyAgICBRU3RyaW5nIGluc2VydCA9IFFTdHJp bmcoICJJTlNFUlQgSU5UTyAlMV90ZW1wKCBuYW1lICkgVkFMVUVTICgnJTInKTsiICkuYXJnKCBr ZXksIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCB2YWx1ZSApICk7CisrICAgIGludCBpZCA9IG1fY29s bGVjdGlvbi0+aW5zZXJ0KCBpbnNlcnQsIFFTdHJpbmcoICIlMV90ZW1wIiApLmFyZygga2V5ICkg KTsKKyAgICAgcmV0dXJuIGlkOworIH0KKyAKKyB2b2lkCistU2NhblJlc3VsdFByb2Nlc3Nvcjo6 ZGF0YWJhc2VJZEZldGNoKCBjb25zdCBRU3RyaW5nICZhcnRpc3QsIGNvbnN0IFFTdHJpbmcgJmdl bnJlLCBjb25zdCBRU3RyaW5nICZjb21wb3NlciwgY29uc3QgUVN0cmluZyAmeWVhciwgY29uc3Qg UVN0cmluZyAmYWxidW0sIGludCBhbGJ1bUFydGlzdElkICkKKytTY2FuUmVzdWx0UHJvY2Vzc29y OjpkYXRhYmFzZUlkRmV0Y2goIGNvbnN0IFFTdHJpbmcgJmFydGlzdCwgY29uc3QgUVN0cmluZyAm Z2VucmUsIGNvbnN0IFFTdHJpbmcgJmNvbXBvc2VyLCBjb25zdCBRU3RyaW5nICZ5ZWFyLCBjb25z dCBRU3RyaW5nICZhbGJ1bSwgaW50IGFsYnVtQXJ0aXN0SWQsIGludCBjb21waWxhdGlvbklkICkK KyB7CisgICAgIC8vREVCVUdfQkxPQ0sKKy0gICAgUV9VTlVTRUQoIGFsYnVtICk7CistICAgIFFf VU5VU0VEKCBhbGJ1bUFydGlzdElkICk7CisrICAgIFFQYWlyPFFTdHJpbmcsIGludD4gYWxidW1L ZXkoIGFsYnVtLCBhbGJ1bUFydGlzdElkICk7CisrICAgIGJvb2wgYWxidW1Gb3VuZCA9IGNvbXBp bGF0aW9uSWQgfHwgbV9hbGJ1bXMuY29udGFpbnMoIGFsYnVtS2V5ICk7CisrICAgIGJvb2wgYXJ0 aXN0Rm91bmQgPSBtX2FydGlzdHMuY29udGFpbnMoIGFydGlzdCApOworKyAgICBib29sIGdlbnJl Rm91bmQgPSBtX2dlbnJlcy5jb250YWlucyggZ2VucmUgKTsKKysgICAgYm9vbCBjb21wb3NlckZv dW5kID0gbV9jb21wb3NlcnMuY29udGFpbnMoIGNvbXBvc2VyICk7CisrICAgIGJvb2wgeWVhckZv dW5kID0gbV95ZWFycy5jb250YWlucyggeWVhciApOworKworKyAgICBpZiggYWxidW1Gb3VuZCAm JiBhcnRpc3RGb3VuZCAmJiBnZW5yZUZvdW5kICYmIGNvbXBvc2VyRm91bmQgJiYgeWVhckZvdW5k ICkKKysgICAgICAgIHJldHVybjsgLy9ub3RoaW5nIHRvIGRvCisrCisgICAgIGludCBsID0gMDsg Ly9hbGJ1bQorLSAgICBib29sIGFsYnVtRm91bmQgPSBmYWxzZTsKKyAgICAgaW50IGEgPSAwOyAv L2FydGlzdAorLSAgICBib29sIGFydGlzdEZvdW5kID0gZmFsc2U7CisgICAgIGludCBnID0gMDsg Ly9nZW5yZQorLSAgICBib29sIGdlbnJlRm91bmQgPSBmYWxzZTsKKyAgICAgaW50IGMgPSAwOyAv L2NvbXBvc2VyCistICAgIGJvb2wgY29tcG9zZXJGb3VuZCA9IGZhbHNlOworICAgICBpbnQgeSA9 IDA7IC8veWVhcgorLSAgICBib29sIHllYXJGb3VuZCA9IGZhbHNlOworIAorICAgICBRU3RyaW5n IHF1ZXJ5OworLS8qCistICAgIGlmKCBhbGJ1bUFydGlzdElkID09IDAgKQorLSAgICAgICAgcXVl cnkgKz0gUVN0cmluZyggIlNFTEVDVCBpZCwgQ09OQ0FUKCdBTEJVTU5BTUVfJywgbmFtZSkgQVMg bmFtZSBGUk9NIGFsYnVtc190ZW1wIFdIRVJFIGFydGlzdCBJUyBOVUxMIEFORCBuYW1lID0gJyUx JyAiICkKKy0gICAgICAgICAgICAgICAgICAgIC5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBh bGJ1bSApICk7CistICAgIGVsc2UKKy0gICAgICAgIHF1ZXJ5ICs9IFFTdHJpbmcoICJTRUxFQ1Qg aWQsIENPTkNBVCgnQUxCVU1OQU1FXycsIG5hbWUpIEFTIG5hbWUgRlJPTSBhbGJ1bXNfdGVtcCBX SEVSRSBhcnRpc3QgPSAlMSBBTkQgbmFtZSA9ICclMicgIiApCistICAgICAgICAgICAgICAgICAg ICAgICAgLmFyZyggUVN0cmluZzo6bnVtYmVyKCBhbGJ1bUFydGlzdElkICksIG1fY29sbGVjdGlv bi0+ZXNjYXBlKCBhbGJ1bSApICk7CistKi8KKy0gICAgcXVlcnkgKz0gUVN0cmluZyggIlNFTEVD VCBpZCwgQ09OQ0FUKCdBUlRJU1ROQU1FXycsIG5hbWUpIEFTIG5hbWUgRlJPTSBhcnRpc3RzX3Rl bXAgV0hFUkUgbmFtZSA9ICclMScgIiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGFydGlz dCApICk7CistICAgIHF1ZXJ5ICs9IFFTdHJpbmcoICJVTklPTiBBTEwgU0VMRUNUIGlkLCBDT05D QVQoJ0dFTlJFTkFNRV8nLCBuYW1lKSBBUyBuYW1lIEZST00gZ2VucmVzX3RlbXAgV0hFUkUgbmFt ZSA9ICclMScgIiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGdlbnJlICkgKTsKKy0gICAg cXVlcnkgKz0gUVN0cmluZyggIlVOSU9OIEFMTCBTRUxFQ1QgaWQsIENPTkNBVCgnQ09NUE9TRVJO QU1FXycsIG5hbWUpIEFTIG5hbWUgRlJPTSBjb21wb3NlcnNfdGVtcCBXSEVSRSBuYW1lID0gJyUx JyAiICkuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggY29tcG9zZXIgKSApOworLSAgICBxdWVy eSArPSBRU3RyaW5nKCAiVU5JT04gQUxMIFNFTEVDVCBpZCwgQ09OQ0FUKCdZRUFSU05BTUVfJywg bmFtZSkgQVMgbmFtZSBGUk9NIHllYXJzX3RlbXAgV0hFUkUgbmFtZSA9ICclMSc7IiApLmFyZygg bV9jb2xsZWN0aW9uLT5lc2NhcGUoIHllYXIgKSApOworKyAgICBpZiggIWFsYnVtRm91bmQgKQor KyAgICB7CisrICAgICAgICBpZiggYWxidW1BcnRpc3RJZCA9PSAwICkKKysgICAgICAgICAgICBx dWVyeSArPSBRU3RyaW5nKCAiU0VMRUNUIGlkLCBDT05DQVQoJ0FMQlVNTkFNRV8nLCBuYW1lKSBB UyBuYW1lIEZST00gYWxidW1zX3RlbXAgV0hFUkUgYXJ0aXN0IElTIE5VTEwgQU5EIG5hbWUgPSAn JTEnICIgKQorKyAgICAgICAgICAgICAgICAgICAgICAgIC5hcmcoIG1fY29sbGVjdGlvbi0+ZXNj YXBlKCBhbGJ1bSApICk7CisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgcXVlcnkgKz0gUVN0 cmluZyggIlNFTEVDVCBpZCwgQ09OQ0FUKCdBTEJVTU5BTUVfJywgbmFtZSkgQVMgbmFtZSBGUk9N IGFsYnVtc190ZW1wIFdIRVJFIGFydGlzdCA9ICUxIEFORCBuYW1lID0gJyUyJyAiICkKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmFyZyggUVN0cmluZzo6bnVtYmVyKCBhbGJ1bUFydGlz dElkICksIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBhbGJ1bSApICk7CisrICAgIH0KKysgICAgaWYo ICFhcnRpc3RGb3VuZCApCisrICAgICAgICBxdWVyeSArPSBRU3RyaW5nKCAiVU5JT04gQUxMIFNF TEVDVCBpZCwgQ09OQ0FUKCdBUlRJU1ROQU1FXycsIG5hbWUpIEFTIG5hbWUgRlJPTSBhcnRpc3Rz X3RlbXAgV0hFUkUgbmFtZSA9ICclMScgIiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGFy dGlzdCApICk7CisrICAgIGlmKCAhZ2VucmVGb3VuZCApCisrICAgICAgICBxdWVyeSArPSBRU3Ry aW5nKCAiVU5JT04gQUxMIFNFTEVDVCBpZCwgQ09OQ0FUKCdHRU5SRU5BTUVfJywgbmFtZSkgQVMg bmFtZSBGUk9NIGdlbnJlc190ZW1wIFdIRVJFIG5hbWUgPSAnJTEnICIgKS5hcmcoIG1fY29sbGVj dGlvbi0+ZXNjYXBlKCBnZW5yZSApICk7CisrICAgIGlmKCAhY29tcG9zZXJGb3VuZCApCisrICAg ICAgICBxdWVyeSArPSBRU3RyaW5nKCAiVU5JT04gQUxMIFNFTEVDVCBpZCwgQ09OQ0FUKCdDT01Q T1NFUk5BTUVfJywgbmFtZSkgQVMgbmFtZSBGUk9NIGNvbXBvc2Vyc190ZW1wIFdIRVJFIG5hbWUg PSAnJTEnICIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBjb21wb3NlciApICk7CisrICAg IGlmKCAheWVhckZvdW5kICkKKysgICAgICAgIHF1ZXJ5ICs9IFFTdHJpbmcoICJVTklPTiBBTEwg U0VMRUNUIGlkLCBDT05DQVQoJ1lFQVJTTkFNRV8nLCBuYW1lKSBBUyBuYW1lIEZST00geWVhcnNf dGVtcCBXSEVSRSBuYW1lID0gJyUxJzsiICkuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggeWVh ciApICk7CisrICAgIGlmKCBxdWVyeS5zdGFydHNXaXRoKCAiVU5JT04gQUxMICIgKSApCisrICAg ICAgICBxdWVyeS5yZW1vdmUoIDAsIDEwICk7CisrICAgICAgICAKKyAgICAgUVN0cmluZ0xpc3Qg cmVzID0gbV9jb2xsZWN0aW9uLT5xdWVyeSggcXVlcnkgKTsKKyAgICAgaW50IGluZGV4ID0gMDsK KyAgICAgUVN0cmluZyBmaXJzdDsKK0BAIC02MDcsNTggKzU0OCw1NSBAQCBTY2FuUmVzdWx0UHJv Y2Vzc29yOjpkYXRhYmFzZUlkRmV0Y2goIGNvbnN0IFFTdHJpbmcgJmFydGlzdCwgY29uc3QgUVN0 cmluZyAmZ2VucgorICAgICAgICAgZmlyc3QgPSByZXMuYXQoIGluZGV4KysgKTsKKyAgICAgICAg IHNlY29uZCA9IHJlcy5hdCggaW5kZXgrKyApOworICAgICAgICAgICAgICBhID0gZmlyc3QudG9J bnQoKTsKKy0gICAgICAgIGlmKCBzZWNvbmQgPT0gUVN0cmluZyggIkFMQlVNTkFNRV8iICsgYWxi dW0gKSApCisrICAgICAgICBpZiggIWFsYnVtRm91bmQgJiYgc2Vjb25kID09IFFTdHJpbmcoICJB TEJVTU5BTUVfIiArIGFsYnVtICkgKQorICAgICAgICAgeworICAgICAgICAgICAgIGwgPSBmaXJz dC50b0ludCgpOworICAgICAgICAgICAgIGFsYnVtRm91bmQgPSB0cnVlOworICAgICAgICAgfQor LSAgICAgICAgZWxzZSBpZiggc2Vjb25kID09IFFTdHJpbmcoICJBUlRJU1ROQU1FXyIgKyBhcnRp c3QgKSApCisrICAgICAgICBlbHNlIGlmKCAhYXJ0aXN0Rm91bmQgJiYgc2Vjb25kID09IFFTdHJp bmcoICJBUlRJU1ROQU1FXyIgKyBhcnRpc3QgKSApCisgICAgICAgICB7CisgICAgICAgICAgICAg YSA9IGZpcnN0LnRvSW50KCk7CisgICAgICAgICAgICAgYXJ0aXN0Rm91bmQgPSB0cnVlOworICAg ICAgICAgfQorLSAgICAgICAgZWxzZSBpZiggc2Vjb25kID09IFFTdHJpbmcoICJHRU5SRU5BTUVf IiArIGdlbnJlICkgKQorKyAgICAgICAgZWxzZSBpZiggIWdlbnJlRm91bmQgJiYgc2Vjb25kID09 IFFTdHJpbmcoICJHRU5SRU5BTUVfIiArIGdlbnJlICkgKQorICAgICAgICAgeworICAgICAgICAg ICAgIGcgPSBmaXJzdC50b0ludCgpOworICAgICAgICAgICAgIGdlbnJlRm91bmQgPSB0cnVlOwor ICAgICAgICAgfQorLSAgICAgICAgZWxzZSBpZiggc2Vjb25kID09IFFTdHJpbmcoICJDT01QT1NF Uk5BTUVfIiArIGNvbXBvc2VyICkgKQorKyAgICAgICAgZWxzZSBpZiggIWNvbXBvc2VyRm91bmQg JiYgc2Vjb25kID09IFFTdHJpbmcoICJDT01QT1NFUk5BTUVfIiArIGNvbXBvc2VyICkgKQorICAg ICAgICAgeworICAgICAgICAgICAgIGMgPSBmaXJzdC50b0ludCgpOworICAgICAgICAgICAgIGNv bXBvc2VyRm91bmQgPSB0cnVlOworICAgICAgICAgfQorLSAgICAgICAgZWxzZSBpZiggc2Vjb25k ID09IFFTdHJpbmcoICJZRUFSU05BTUVfIiArIHllYXIgKSApCisrICAgICAgICBlbHNlIGlmKCAh eWVhckZvdW5kICYmIHNlY29uZCA9PSBRU3RyaW5nKCAiWUVBUlNOQU1FXyIgKyB5ZWFyICkgKQor ICAgICAgICAgeworICAgICAgICAgICAgIHkgPSBmaXJzdC50b0ludCgpOworICAgICAgICAgICAg IHllYXJGb3VuZCA9IHRydWU7CisgICAgICAgICB9CisgICAgIH0KKy0gICAgLyoKKyAgICAgaWYo ICFhbGJ1bUZvdW5kICkKKyAgICAgeworLSAgICAgICAgUVBhaXI8UVN0cmluZywgaW50PiBrZXko IGFsYnVtLCBhbGJ1bUFydGlzdElkICk7CistICAgICAgICBtX2FsYnVtcy5pbnNlcnQoIGtleSwg YWxidW1JbnNlcnQoIGFsYnVtLCBhbGJ1bUFydGlzdElkICkgKTsKKysgICAgICAgIG1fYWxidW1z Lmluc2VydCggYWxidW1LZXksIGFsYnVtSW5zZXJ0KCBhbGJ1bSwgYWxidW1BcnRpc3RJZCApICk7 CisgICAgICAgICBhbGJ1bUZvdW5kID0gdHJ1ZTsKKyAgICAgfQorLSAgICAqLworICAgICBpZigg IWFydGlzdEZvdW5kICkKKyAgICAgeworLSAgICAgICAgbV9hcnRpc3RzLmluc2VydCggYXJ0aXN0 LCBhcnRpc3RJbnNlcnQoIGFydGlzdCApICk7CisrICAgICAgICBtX2FydGlzdHMuaW5zZXJ0KCBh cnRpc3QsIGdlbmVyaWNJbnNlcnQoICJhcnRpc3RzIiwgYXJ0aXN0ICkgKTsKKyAgICAgICAgIGFy dGlzdEZvdW5kID0gdHJ1ZTsKKyAgICAgfQorICAgICBpZiggIWdlbnJlRm91bmQgKQorICAgICB7 CistICAgICAgICBtX2dlbnJlLmluc2VydCggZ2VucmUsIGdlbnJlSW5zZXJ0KCBnZW5yZSApICk7 CisrICAgICAgICBtX2dlbnJlcy5pbnNlcnQoIGdlbnJlLCBnZW5lcmljSW5zZXJ0KCAiZ2VucmVz IiwgZ2VucmUgKSApOworICAgICAgICAgZ2VucmVGb3VuZCA9IHRydWU7CisgICAgIH0KKyAgICAg aWYoICFjb21wb3NlckZvdW5kICkKKyAgICAgeworLSAgICAgICAgbV9jb21wb3Nlci5pbnNlcnQo IGNvbXBvc2VyLCBjb21wb3Nlckluc2VydCggY29tcG9zZXIgKSApOworKyAgICAgICAgbV9jb21w b3NlcnMuaW5zZXJ0KCBjb21wb3NlciwgZ2VuZXJpY0luc2VydCggImNvbXBvc2VycyIsIGNvbXBv c2VyICkgKTsKKyAgICAgICAgIGNvbXBvc2VyRm91bmQgPSB0cnVlOworICAgICB9CisgICAgIGlm KCAheWVhckZvdW5kICkKKyAgICAgeworLSAgICAgICAgbV95ZWFyLmluc2VydCggeWVhciwgeWVh ckluc2VydCggeWVhciApICk7CisrICAgICAgICBtX3llYXJzLmluc2VydCggeWVhciwgZ2VuZXJp Y0luc2VydCggInllYXJzIiwgeWVhciApICk7CisgICAgICAgICB5ZWFyRm91bmQgPSB0cnVlOwor ICAgICB9CisgfQorZGlmZiAtLWdpdCBhL3NyYy9jb2xsZWN0aW9uL3NxbGNvbGxlY3Rpb24vU2Nh blJlc3VsdFByb2Nlc3Nvci5oIGIvc3JjL2NvbGxlY3Rpb24vc3FsY29sbGVjdGlvbi9TY2FuUmVz dWx0UHJvY2Vzc29yLmgKK2luZGV4IGZmZmM5ZTcuLjQ5YzJiOGIgMTAwNjQ0CistLS0gYS9zcmMv Y29sbGVjdGlvbi9zcWxjb2xsZWN0aW9uL1NjYW5SZXN1bHRQcm9jZXNzb3IuaAorKysrIGIvc3Jj L2NvbGxlY3Rpb24vc3FsY29sbGVjdGlvbi9TY2FuUmVzdWx0UHJvY2Vzc29yLmgKK0BAIC01OCwx NSArNTgsOSBAQCBjbGFzcyBTY2FuUmVzdWx0UHJvY2Vzc29yIDogcHVibGljIFFPYmplY3QKKyAg ICAgcHJpdmF0ZToKKyAgICAgICAgIHZvaWQgYWRkVHJhY2soIGNvbnN0IFFWYXJpYW50TWFwICZ0 cmFja0RhdGEsIGludCBhbGJ1bUFydGlzdElkICk7CisgCistICAgICAgICBpbnQgYXJ0aXN0SWQo IGNvbnN0IFFTdHJpbmcgJmFydGlzdCApOworLSAgICAgICAgaW50IGFydGlzdEluc2VydCggY29u c3QgUVN0cmluZyAmYXJ0aXN0ICk7CistICAgICAgICBpbnQgZ2VucmVJZCggY29uc3QgUVN0cmlu ZyAmZ2VucmUgKTsKKy0gICAgICAgIGludCBnZW5yZUluc2VydCggY29uc3QgUVN0cmluZyAmZ2Vu cmUgKTsKKy0gICAgICAgIGludCBjb21wb3NlcklkKCBjb25zdCBRU3RyaW5nICZjb21wb3NlciAp OworLSAgICAgICAgaW50IGNvbXBvc2VySW5zZXJ0KCBjb25zdCBRU3RyaW5nICZjb21wb3NlciAp OworLSAgICAgICAgaW50IHllYXJJZCggY29uc3QgUVN0cmluZyAmeWVhciApOworLSAgICAgICAg aW50IHllYXJJbnNlcnQoIGNvbnN0IFFTdHJpbmcgJnllYXIgKTsKKy0gICAgICAgIHZvaWQgZGF0 YWJhc2VJZEZldGNoKCBjb25zdCBRU3RyaW5nICZhcnRpc3QsIGNvbnN0IFFTdHJpbmcgJmdlbnJl LCBjb25zdCBRU3RyaW5nICZjb21wb3NlciwgY29uc3QgUVN0cmluZyAmeWVhciwgY29uc3QgUVN0 cmluZyAmYWxidW0sIGludCBhbGJ1bUFydGlzdElkICk7CisrICAgICAgICBpbnQgZ2VuZXJpY0lk KCBjb25zdCBRU3RyaW5nICZrZXksIGNvbnN0IFFTdHJpbmcgJnZhbHVlICk7CisrICAgICAgICBp bnQgZ2VuZXJpY0luc2VydCggY29uc3QgUVN0cmluZyAma2V5LCBjb25zdCBRU3RyaW5nICZ2YWx1 ZSApOworKyAgICAgICAgdm9pZCBkYXRhYmFzZUlkRmV0Y2goIGNvbnN0IFFTdHJpbmcgJmFydGlz dCwgY29uc3QgUVN0cmluZyAmZ2VucmUsIGNvbnN0IFFTdHJpbmcgJmNvbXBvc2VyLCBjb25zdCBR U3RyaW5nICZ5ZWFyLCBjb25zdCBRU3RyaW5nICZhbGJ1bSwgaW50IGFsYnVtQXJ0aXN0SWQsIGlu dCBjb21waWxhdGlvbklkICk7CisgICAgICAgICBpbnQgaW1hZ2VJZCggY29uc3QgUVN0cmluZyAm aW1hZ2UsIGludCBhbGJ1bUlkICk7CisgICAgICAgICBpbnQgYWxidW1JZCggY29uc3QgUVN0cmlu ZyAmYWxidW0sIGludCBhcnRpc3RJZCApOworICAgICAgICAgaW50IGFsYnVtSW5zZXJ0KCBjb25z dCBRU3RyaW5nICZhbGJ1bSwgaW50IGFydGlzdElkICk7CitAQCAtOTAsOSArODQsOSBAQCBjbGFz cyBTY2FuUmVzdWx0UHJvY2Vzc29yIDogcHVibGljIFFPYmplY3QKKyAgICAgICAgIGJvb2wgbV9z ZXR1cENvbXBsZXRlOworIAorICAgICAgICAgUU1hcDxRU3RyaW5nLCBpbnQ+IG1fYXJ0aXN0czsK Ky0gICAgICAgIFFNYXA8UVN0cmluZywgaW50PiBtX2dlbnJlOworLSAgICAgICAgUU1hcDxRU3Ry aW5nLCBpbnQ+IG1feWVhcjsKKy0gICAgICAgIFFNYXA8UVN0cmluZywgaW50PiBtX2NvbXBvc2Vy OworKyAgICAgICAgUU1hcDxRU3RyaW5nLCBpbnQ+IG1fZ2VucmVzOworKyAgICAgICAgUU1hcDxR U3RyaW5nLCBpbnQ+IG1feWVhcnM7CisrICAgICAgICBRTWFwPFFTdHJpbmcsIGludD4gbV9jb21w b3NlcnM7CisgICAgICAgICBRTWFwPFFQYWlyPFFTdHJpbmcsIGludD4sIGludD4gbV9hbGJ1bXM7 CisgICAgICAgICBRTWFwPFFQYWlyPFFTdHJpbmcsIGludD4sIGludD4gbV9pbWFnZXM7CisgICAg ICAgICBRTWFwPFFTdHJpbmcsIGludD4gbV9kaXJlY3RvcmllczsKK2RpZmYgLS1naXQgYS9zcmMv Y29sbGVjdGlvbi9zcWxjb2xsZWN0aW9uL1NxbFF1ZXJ5TWFrZXIuY3BwIGIvc3JjL2NvbGxlY3Rp b24vc3FsY29sbGVjdGlvbi9TcWxRdWVyeU1ha2VyLmNwcAoraW5kZXggYTZmOThmYi4uMTBjYzYy OSAxMDA2NDQKKy0tLSBhL3NyYy9jb2xsZWN0aW9uL3NxbGNvbGxlY3Rpb24vU3FsUXVlcnlNYWtl ci5jcHAKKysrKyBiL3NyYy9jb2xsZWN0aW9uL3NxbGNvbGxlY3Rpb24vU3FsUXVlcnlNYWtlci5j cHAKK0BAIC05OTIsNiArOTkyLDcgQEAgU3FsUXVlcnlNYWtlcjo6aGFuZGxlQXJ0aXN0cyggY29u c3QgUVN0cmluZ0xpc3QgJnJlc3VsdCApCisgdm9pZAorIFNxbFF1ZXJ5TWFrZXI6OmhhbmRsZUFs YnVtcyggY29uc3QgUVN0cmluZ0xpc3QgJnJlc3VsdCApCisgeworKyAgICBERUJVR19CTE9DSwor ICAgICBBbGJ1bUxpc3QgYWxidW1zOworICAgICBTcWxSZWdpc3RyeSogcmVnID0gbV9jb2xsZWN0 aW9uLT5yZWdpc3RyeSgpOworICAgICBmb3IoIFFTdHJpbmdMaXN0SXRlcmF0b3IgaXRlciggcmVz dWx0ICk7IGl0ZXIuaGFzTmV4dCgpOyApCitAQCAtOTk5LDYgKzEwMDAsMTAgQEAgU3FsUXVlcnlN YWtlcjo6aGFuZGxlQWxidW1zKCBjb25zdCBRU3RyaW5nTGlzdCAmcmVzdWx0ICkKKyAgICAgICAg IFFTdHJpbmcgbmFtZSA9IGl0ZXIubmV4dCgpOworICAgICAgICAgUVN0cmluZyBpZCA9IGl0ZXIu bmV4dCgpOworICAgICAgICAgUVN0cmluZyBhcnRpc3QgPSBpdGVyLm5leHQoKTsKKysgICAgICAg IC8vSEFDSzogVGhlIGZvbGxvd2luZyBpcyBhIEhBQ0sgYW5kIHNob3VsZCBiZSBmaXhlZCBieSBm aXhpbmcgdGhlIEhBQ0sKKysgICAgICAgIC8vb2YgYWx3YXlzIGluY2x1ZGluZyB0aGUgInRyYWNr cyIgdGFibGUgaW4gcXVlcmllcyBpbiBTcWxRdWVyeU1ha2VyCisrICAgICAgICBpZiggbmFtZS5p c0VtcHR5KCkgJiYgaWQuaXNFbXB0eSgpICYmIGFydGlzdC5pc0VtcHR5KCkgKQorKyAgICAgICAg ICAgIGNvbnRpbnVlOworICAgICAgICAgYWxidW1zLmFwcGVuZCggcmVnLT5nZXRBbGJ1bSggbmFt ZSwgaWQudG9JbnQoKSwgYXJ0aXN0LnRvSW50KCkgKSApOworICAgICB9CisgICAgIGVtaXRPclN0 b3JlUHJvcGVyUmVzdWx0KCBBbGJ1bVB0ciwgYWxidW1zICk7CitkaWZmIC0tZ2l0IGEvc3JjL2Nv bGxlY3Rpb24vdW1zY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlvbi11bXNjb2xsZWN0aW9uLmRl c2t0b3AgYi9zcmMvY29sbGVjdGlvbi91bXNjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9uLXVt c2NvbGxlY3Rpb24uZGVza3RvcAoraW5kZXggMDEyNGMxYi4uMWIwMTZlMCAxMDA2NDQKKy0tLSBh L3NyYy9jb2xsZWN0aW9uL3Vtc2NvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24tdW1zY29sbGVj dGlvbi5kZXNrdG9wCisrKysgYi9zcmMvY29sbGVjdGlvbi91bXNjb2xsZWN0aW9uL2FtYXJva19j b2xsZWN0aW9uLXVtc2NvbGxlY3Rpb24uZGVza3RvcAorQEAgLTE1LDYgKzE1LDcgQEAgTmFtZVtu bl09VW5pdmVyc2VsbCBtYXNzZWxhZ3Jpbmdzc2FtbGluZworIE5hbWVbcGxdPUtvbGVrY2phIG5h IHVyesSFZHplbml1IGRhbnljaAorIE5hbWVbcHRdPUNvbGVjw6fDo28gZGUgQXJtYXplbmFtZW50 byBlbSBNYXNzYSBVbml2ZXJzYWwKKyBOYW1lW3B0X0JSXT1Db2xlw6fDo28gZGUgQXJtYXplbmFt ZW50byBVbml2ZXJzYWwgZW0gTWFzc2EKKytOYW1lW3J1XT3QmtC+0LvQu9C10LrRhtC40Y8gVU1T CisgTmFtZVtzcl090JfQsdC40YDQutCwINC90LAg0YPQvdC40LLQtdGA0LfQsNC70L3QvtC8INC8 0LDRgdC+0LLQvdC+0Lwg0YHQutC70LDQtNC40YjRgtGDCisgTmFtZVtzckBsYXRpbl09WmJpcmth IG5hIHVuaXZlcnphbG5vbSBtYXNvdm5vbSBza2xhZGnFoXR1CisgTmFtZVtzdl09U2FtbGluZyBw w6UgZ2VuZXJlbGwgbGFncmluZ3NlbmhldAorZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L0FwcGxl dC5jcHAgYi9zcmMvY29udGV4dC9BcHBsZXQuY3BwCitpbmRleCAzOGJjNzA5Li5hYjJjMGFjIDEw MDY0NAorLS0tIGEvc3JjL2NvbnRleHQvQXBwbGV0LmNwcAorKysrIGIvc3JjL2NvbnRleHQvQXBw bGV0LmNwcAorQEAgLTM5LDcgKzM5LDggQEAgbmFtZXNwYWNlIENvbnRleHQKKyBDb250ZXh0OjpB cHBsZXQ6OkFwcGxldCggUU9iamVjdCAqIHBhcmVudCwgY29uc3QgUVZhcmlhbnRMaXN0JiBhcmdz ICkKKyAgICAgOiBQbGFzbWE6OkFwcGxldCggcGFyZW50LCBhcmdzICkKKyAgICAgLCBtX2NvbGxh cHNlZCggZmFsc2UgKQorLSAgICAsIG1fYW5pbWF0aW9uSWQoIDAgKQorKyAgICAsIG1fYW5pbWF0 aW9uSWRPbiggMCApCisrICAgICwgbV9hbmltYXRpb25JZE9mZiggMCApCisgICAgICwgbV90cmFu c2llbnQoIDAgKQorICAgICAsIG1fc3RhbmRhcmRQYWRkaW5nKCA2LjAgKQorICAgICAsIG1fdGV4 dEJhY2tncm91bmQoIDAgKQorQEAgLTUwLDggKzUxLDEwIEBAIENvbnRleHQ6OkFwcGxldDo6QXBw bGV0KCBRT2JqZWN0ICogcGFyZW50LCBjb25zdCBRVmFyaWFudExpc3QmIGFyZ3MgKQorIAorIENv bnRleHQ6OkFwcGxldDo6fkFwcGxldCggKQorIHsKKy0gICAgaWYgKCBtX2FuaW1hdGlvbklkICE9 IDApCistICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21BbmltYXRp b24oIG1fYW5pbWF0aW9uSWQgKTsKKysgICAgaWYgKCBtX2FuaW1hdGlvbklkT24gIT0gMCApCisr ICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21BbmltYXRpb24oIG1f YW5pbWF0aW9uSWRPbiApOworKyAgICBpZiAoIG1fYW5pbWF0aW9uSWRPZmYgIT0gMCApCisrICAg ICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21BbmltYXRpb24oIG1fYW5p bWF0aW9uSWRPZmYgKTsKKyB9CisgCisgCitAQCAtMjI4LDM5ICsyMzEsNTEgQEAgQ29udGV4dDo6 QXBwbGV0OjphZGRBY3Rpb24oIFFBY3Rpb24gKmFjdGlvbiwgY29uc3QgaW50IHNpemUgKQorIHZv aWQKKyBDb250ZXh0OjpBcHBsZXQ6OnNldENvbGxhcHNlT24oKQorIHsKKysgICAgLy8gV2UgYXJl IGFza2VkIHRvIGNvbGxhcHNlLCBidXQgdGhlIGFwcGxldCBpcyBhbHJlYWR5IGFuaW1hdGluZyB0 byBjb2xsYXBzZSwgZG8gbm90aGluZworKyAgICBpZiAoIG1fYW5pbWF0aW9uSWRPbiAhPSAwICkK KysgICAgICAgIHJldHVybjsKKysKKysgICAgLy8gV2UgYXJlIGFscmVhZHkgY29sbGFwc2VkCisg ICAgIGlmICggc2l6ZSgpLmhlaWdodCgpID09IG1faGVpZ2h0Q29sbGFwc2VPbiApCisgICAgICAg ICByZXR1cm47CisrCisgICAgIGRlYnVnKCkgPDwgImNvbGxhcHNpbmcgYXBwbGV0IHRvLi4uIiA8 PCBtX2hlaWdodENvbGxhcHNlT247CisgICAgIGlmKCBtX2hlaWdodENvbGxhcHNlT2ZmID09IC0x ICkKKyAgICAgICAgIG1fYW5pbUZyb21IZWlnaHQgPSBzaXplKCkuaGVpZ2h0KCk7CisgICAgIGVs c2UKKyAgICAgICAgIG1fYW5pbUZyb21IZWlnaHQgPSBtX2hlaWdodENvbGxhcHNlT2ZmOworIAor LSAgICBpZiAoIG1fYW5pbWF0aW9uSWQgIT0gMCApIC8vIHdhcm5pbmcgd2UgYXJlIG1vdmluZyBy aWdodCBub3cKKysgICAgaWYgKCBtX2FuaW1hdGlvbklkT2ZmICE9IDAgKSAvLyB3YXJuaW5nIHdl IGFyZSBleHRhbmRpbmcgcmlnaHQgbm93IHdlIHNob3VsZCBzdG9wCisgICAgIHsKKyAgICAgICAg IC8vIHN0b3AgdGhlIGFuaW0KKy0gICAgICAgIFBsYXNtYTo6QW5pbWF0b3I6OnNlbGYoKS0+c3Rv cEN1c3RvbUFuaW1hdGlvbiggbV9hbmltYXRpb25JZCApOworLSAgICAgICAgbV9hbmltYXRpb25J ZCA9IDA7CisrICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21Bbmlt YXRpb24oIG1fYW5pbWF0aW9uSWRPZmYgKTsKKysgICAgICAgIG1fYW5pbWF0aW9uSWRPZmYgPSAw OworICAgICB9CisgICAgIG1fY29sbGFwc2VkID0gZmFsc2U7CistICAgIG1fYW5pbWF0aW9uSWQg PSBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPmN1c3RvbUFuaW1hdGlvbigyMCwgMTAwMCwgUGxh c21hOjpBbmltYXRvcjo6RWFzZUluQ3VydmUsIHRoaXMsICJhbmltYXRlT24iICk7CisrICAgIG1f YW5pbWF0aW9uSWRPbiA9IFBsYXNtYTo6QW5pbWF0b3I6OnNlbGYoKS0+Y3VzdG9tQW5pbWF0aW9u KDIwLCAxMDAwLCBQbGFzbWE6OkFuaW1hdG9yOjpFYXNlSW5DdXJ2ZSwgdGhpcywgImFuaW1hdGVP biIgKTsKKyB9CisgCisgdm9pZAorIENvbnRleHQ6OkFwcGxldDo6c2V0Q29sbGFwc2VPZmYoKQor IHsKKyAgICAgREVCVUdfQkxPQ0sKKy0gICAgZGVidWcoKSA8PCAiaGVpZ2h0OiIgPDwgc2l6ZSgp LmhlaWdodCgpIDw8ICJ0YXJnZXQ6IiA8PCBtX2hlaWdodENvbGxhcHNlT2ZmIDw8ICJtX2NvbGxh cHNlZDoiIDw8IG1fY29sbGFwc2VkOworKworKyAgICAvLyBXZSBhcmUgYXNrZWQgdG8gZXh0ZW5k LCBidXQgdGhlIGFwcGxldCBpcyBhbHJlYWR5IGFuaW1hdGluZyB0byBleHRlbmQsIGRvIG5vdGhp bmcKKysgICAgaWYgKCBtX2FuaW1hdGlvbklkT2ZmICE9IDAgKQorKyAgICAgICAgcmV0dXJuOwor KyAgICAKKysgICAgLy8gQXBwbGV0IGFscmVhZHkgZXh0ZW5kZWQKKyAgICAgaWYgKCBzaXplKCku aGVpZ2h0KCkgPT0gbV9oZWlnaHRDb2xsYXBzZU9mZiApCisgICAgICAgICByZXR1cm47CisgCisr ICAgIGRlYnVnKCkgPDwgImhlaWdodDoiIDw8IHNpemUoKS5oZWlnaHQoKSA8PCAidGFyZ2V0OiIg PDwgbV9oZWlnaHRDb2xsYXBzZU9mZiA8PCAibV9jb2xsYXBzZWQ6IiA8PCBtX2NvbGxhcHNlZDsK KyAgICAgaWYoIG1faGVpZ2h0Q29sbGFwc2VPZmYgPT0gLTEpIC8vIGlmIGl0J3Mgc2VsZi1leHBh bmRpbmcsIGRvbid0IGFuaW1hdGUgYXMgd2UgZG9uJ3Qga25vdyB3aGVyZSB3ZSdyZSBnb2luZy4g YWxzbywgaWYgd2UncmUgc2hyaW5raW5nCisgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0b3AgdGhh dCBhbmQgZXhwYW5kIHJlZ2FyZGxlc3MKKy0gICAgICAgIC8vIHN0b3AgdGhlIGFuaW0KKy0gICAg ICAgIGlmKCBtX2FuaW1hdGlvbklkICE9IDAgKQorKyAgICAgICAgLy8gc3RvcCB0aGUgYW5pbWF0 aW9uIG9uIG5vdworKyAgICAgICAgaWYoIG1fYW5pbWF0aW9uSWRPbiAhPSAwICkKKyAgICAgICAg IHsKKy0gICAgICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21Bbmlt YXRpb24oIG1fYW5pbWF0aW9uSWQgKTsKKy0gICAgICAgICAgICBtX2FuaW1hdGlvbklkID0gMDsK KysgICAgICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21BbmltYXRp b24oIG1fYW5pbWF0aW9uSWRPbiApOworKyAgICAgICAgICAgIG1fYW5pbWF0aW9uSWRPbiA9IDA7 CisgICAgICAgICB9CisgICAgICAgICBtX2hlaWdodEN1cnJlbnQgPSAgbV9oZWlnaHRDb2xsYXBz ZU9mZjsKKyAgICAgICAgIGVtaXQgc2l6ZUhpbnRDaGFuZ2VkKFF0OjpQcmVmZXJyZWRTaXplKTsK K0BAIC0yNjksMTQgKzI4NCwxNCBAQCBDb250ZXh0OjpBcHBsZXQ6OnNldENvbGxhcHNlT2ZmKCkK KyAgICAgICAgIHJldHVybjsKKyAgICAgfQorIAorLSAgICBpZiAoIG1fYW5pbWF0aW9uSWQgIT0g MCApIC8vIHdhcm5pbmcgd2UgYXJlIG1vdmluZyByaWdodCBub3cKKysgICAgaWYgKCBtX2FuaW1h dGlvbklkT24gIT0gMCApIC8vIHdhcm5pbmcgd2UgYXJlIGNvbGxhcHNpbmcgcmlnaHQgbm93LCBz dG9wIHRoYXQgYW5kIHJldmVyc2UgaXQgIQorICAgICB7CisgICAgICAgICAvLyBzdG9wIHRoZSBh bmltCistICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0b3BDdXN0b21BbmltYXRp b24oIG1fYW5pbWF0aW9uSWQgKTsKKy0gICAgICAgIG1fYW5pbWF0aW9uSWQgPSAwOworKyAgICAg ICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9tQW5pbWF0aW9uKCBtX2FuaW1h dGlvbklkT24gKTsKKysgICAgICAgIG1fYW5pbWF0aW9uSWRPbiA9IDA7CisgICAgIH0KKyAgICAg bV9jb2xsYXBzZWQgPSB0cnVlIDsKKy0gICAgbV9hbmltYXRpb25JZCA9IFBsYXNtYTo6QW5pbWF0 b3I6OnNlbGYoKS0+Y3VzdG9tQW5pbWF0aW9uKDIwLCAxMDAwLCBQbGFzbWE6OkFuaW1hdG9yOjpF YXNlSW5DdXJ2ZSwgdGhpcywgImFuaW1hdGVPZmYiICk7CisrICAgIG1fYW5pbWF0aW9uSWRPZmYg PSBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPmN1c3RvbUFuaW1hdGlvbigyMCwgMTAwMCwgUGxh c21hOjpBbmltYXRvcjo6RWFzZUluQ3VydmUsIHRoaXMsICJhbmltYXRlT2ZmIiApOworIH0KKyAK KyB2b2lkCitAQCAtMjg1LDYgKzMwMCwxOSBAQCBDb250ZXh0OjpBcHBsZXQ6OnNldENvbGxhcHNl SGVpZ2h0KCBpbnQgaCApCisgICAgIG1faGVpZ2h0Q29sbGFwc2VPbiA9IGg7CisgfQorIAorK2Jv b2wKKytDb250ZXh0OjpBcHBsZXQ6OmlzQXBwbGV0Q29sbGFwc2VkKCkKKyt7CisrICAgIHJldHVy biAoIG1faGVpZ2h0Q29sbGFwc2VPbiA9PSBtX2hlaWdodEN1cnJlbnQgKTsKKyt9CisrCisrYm9v bAorK0NvbnRleHQ6OkFwcGxldDo6aXNBcHBsZXRFeHRlbmRlZCgpCisreworKyAgICByZXR1cm4g KCBtX2hlaWdodENvbGxhcHNlT2ZmID09IG1faGVpZ2h0Q3VycmVudCApOworK30KKysKKysKKyB2 b2lkCisgQ29udGV4dDo6QXBwbGV0OjphbmltYXRlT24oIHFyZWFsIGFuaW0gKQorIHsKK0BAIC0z MDIsMjIgKzMzMCwyMCBAQCBDb250ZXh0OjpBcHBsZXQ6OmFuaW1hdGVPZmYoIHFyZWFsIGFuaW0g KQorIHZvaWQKKyBDb250ZXh0OjpBcHBsZXQ6OmFuaW1hdGVFbmQoIGludCBpZCApCisgeworLSAg ICBpZiggaWQgPT0gbV9hbmltYXRpb25JZCApCisrICAgIGlmKCBpZCA9PSBtX2FuaW1hdGlvbklk T24gKQorICAgICB7CistICAgICAgICBpZiggIW1fY29sbGFwc2VkICkKKy0gICAgICAgIHsKKy0g ICAgICAgICAgICBQbGFzbWE6OkFwcGxldDo6cmVzaXplKCBzaXplKCkud2lkdGgoKSwgbV9oZWln aHRDb2xsYXBzZU9uICk7CistICAgICAgICAgICAgbV9jb2xsYXBzZWQgPSB0cnVlOworLSAgICAg ICAgfQorLSAgICAgICAgZWxzZQorLSAgICAgICAgeworLSAgICAgICAgICAgIFBsYXNtYTo6QXBw bGV0OjpyZXNpemUoIHNpemUoKS53aWR0aCgpLCBtX2hlaWdodENvbGxhcHNlT2ZmICk7CistICAg ICAgICAgICAgbV9jb2xsYXBzZWQgPSBmYWxzZTsKKy0gICAgICAgIH0KKy0gICAgICAgIHVwZGF0 ZUdlb21ldHJ5KCk7CistICAgICAgICBlbWl0IHNpemVIaW50Q2hhbmdlZChRdDo6UHJlZmVycmVk U2l6ZSk7CistICAgICAgICBtX2FuaW1hdGlvbklkID0gMDsKKysgICAgICAgIFBsYXNtYTo6QXBw bGV0OjpyZXNpemUoIHNpemUoKS53aWR0aCgpLCBtX2hlaWdodENvbGxhcHNlT24gKTsKKysgICAg ICAgIG1fY29sbGFwc2VkID0gdHJ1ZTsKKysgICAgICAgIG1fYW5pbWF0aW9uSWRPbiA9IDA7Cisr ICAgIH0KKysgICAgaWYgKCBpZCA9PSBtX2FuaW1hdGlvbklkT2ZmICkKKysgICAgeworKyAgICAg ICAgUGxhc21hOjpBcHBsZXQ6OnJlc2l6ZSggc2l6ZSgpLndpZHRoKCksIG1faGVpZ2h0Q29sbGFw c2VPZmYgKTsKKysgICAgICAgIG1fY29sbGFwc2VkID0gZmFsc2U7CisrICAgICAgICBtX2FuaW1h dGlvbklkT2ZmID0gMDsKKyAgICAgfQorKyAgICB1cGRhdGVHZW9tZXRyeSgpOworKyAgICBlbWl0 IHNpemVIaW50Q2hhbmdlZChRdDo6UHJlZmVycmVkU2l6ZSk7CisgfQorIAorIAorZGlmZiAtLWdp dCBhL3NyYy9jb250ZXh0L0FwcGxldC5oIGIvc3JjL2NvbnRleHQvQXBwbGV0LmgKK2luZGV4IDc4 MTE2MjQuLjlmODYxNTggMTAwNjQ0CistLS0gYS9zcmMvY29udGV4dC9BcHBsZXQuaAorKysrIGIv c3JjL2NvbnRleHQvQXBwbGV0LmgKK0BAIC02Miw2ICs2Miw5IEBAIGNsYXNzIEFNQVJPS19FWFBP UlQgQXBwbGV0IDogcHVibGljIFBsYXNtYTo6QXBwbGV0CisgICAgICAgICB2b2lkIHNldENvbGxh cHNlT2ZmKCk7CisgICAgICAgICB2b2lkIHNldENvbGxhcHNlSGVpZ2h0KCBpbnQgKTsKKyAKKysg ICAgICAgIGJvb2wgaXNBcHBsZXRDb2xsYXBzZWQoKTsKKysgICAgICAgIGJvb2wgaXNBcHBsZXRF eHRlbmRlZCgpOworKworICAgICAgICAgLyoqCisgICAgICAgICAgICogc2l6ZUhpbnQgaXMgcmVp bXBsZW1lbnRlZCBoZXJlIG9ubHkgZm9yIGFsbCB0aGUgYXBwbGV0LgorICAgICAgICAgICAqLwor QEAgLTg2LDcgKzg5LDggQEAgY2xhc3MgQU1BUk9LX0VYUE9SVCBBcHBsZXQgOiBwdWJsaWMgUGxh c21hOjpBcHBsZXQKKyAgICAgICAgIGludCAgbV9oZWlnaHRDdXJyZW50OworICAgICAgICAgaW50 ICBtX2hlaWdodENvbGxhcHNlT247CisgICAgICAgICBpbnQgIG1faGVpZ2h0Q29sbGFwc2VPZmY7 CistICAgICAgICBpbnQgIG1fYW5pbWF0aW9uSWQ7CisrICAgICAgICBpbnQgIG1fYW5pbWF0aW9u SWRPbjsKKysgICAgICAgIGludCAgbV9hbmltYXRpb25JZE9mZjsKKyAgICAgICAgIGludCAgbV9h bmltRnJvbUhlaWdodDsKKyAKKyAgICAgcHJpdmF0ZToKK2RpZmYgLS1naXQgYS9zcmMvY29udGV4 dC9hcHBsZXRzL2luZm8vYW1hcm9rLWNvbnRleHQtYXBwbGV0LWluZm8uZGVza3RvcCBiL3NyYy9j b250ZXh0L2FwcGxldHMvaW5mby9hbWFyb2stY29udGV4dC1hcHBsZXQtaW5mby5kZXNrdG9wCitp bmRleCA3YzYxODE1Li44MWYyZTFkIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvYXBwbGV0cy9p bmZvL2FtYXJvay1jb250ZXh0LWFwcGxldC1pbmZvLmRlc2t0b3AKKysrKyBiL3NyYy9jb250ZXh0 L2FwcGxldHMvaW5mby9hbWFyb2stY29udGV4dC1hcHBsZXQtaW5mby5kZXNrdG9wCitAQCAtMTYs NiArMTYsNyBAQCBOYW1lW25uXT1JbmZvCisgTmFtZVtwbF09SW5mb3JtYWNqYQorIE5hbWVbcHRd PUluZm9ybWHDp8OjbworIE5hbWVbcHRfQlJdPUluZm9ybWHDp8OjbworK05hbWVbcnVdPdCh0LLQ tdC00LXQvdC40Y8KKyBOYW1lW3NyXT3Qn9C+0LTQsNGG0LgKKyBOYW1lW3NyQGxhdGluXT1Qb2Rh Y2kKKyBOYW1lW3N2XT1JbmZvcm1hdGlvbgorZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2FwcGxl dHMvcGhvdG9zL1Bob3Rvc0FwcGxldC5jcHAgYi9zcmMvY29udGV4dC9hcHBsZXRzL3Bob3Rvcy9Q aG90b3NBcHBsZXQuY3BwCitpbmRleCA0Y2M0NzE0Li44ODRhN2YzIDEwMDY0NAorLS0tIGEvc3Jj L2NvbnRleHQvYXBwbGV0cy9waG90b3MvUGhvdG9zQXBwbGV0LmNwcAorKysrIGIvc3JjL2NvbnRl eHQvYXBwbGV0cy9waG90b3MvUGhvdG9zQXBwbGV0LmNwcAorQEAgLTExNiw3ICsxMTYsNyBAQCBQ aG90b3NBcHBsZXQ6On5QaG90b3NBcHBsZXQoKQorIHZvaWQKKyBQaG90b3NBcHBsZXQ6OmVuZ2lu ZU5ld1RyYWNrUGxheWluZyggKQorIHsKKy0gLy8gICBERUJVR19CTE9DSworKyAgICBERUJVR19C TE9DSworICAgICBtX3N0b3BwZWRzdGF0ZSA9IGZhbHNlOworICAgICBkYXRhRW5naW5lKCAiYW1h cm9rLXBob3RvcyIgKS0+cXVlcnkoIFFTdHJpbmcoICJwaG90b3MiICkgKTsKKyB9CitAQCAtMTI0 LDEzICsxMjQsMTQgQEAgUGhvdG9zQXBwbGV0OjplbmdpbmVOZXdUcmFja1BsYXlpbmcoICkKKyB2 b2lkCisgUGhvdG9zQXBwbGV0OjplbmdpbmVQbGF5YmFja0VuZGVkKCBpbnQsIGludCwgUGxheWJh Y2tFbmRlZFJlYXNvbiApCisgeworLS8vICAgIERFQlVHX0JMT0NLCisrICAgIERFQlVHX0JMT0NL CisgICAgIG1fc3RvcHBlZHN0YXRlID0gdHJ1ZTs7CisgICAgIG1faGVhZGVyVGV4dC0+c2V0VGV4 dCggaTE4biggIlBob3RvcyIgKSArIFFTdHJpbmcoICIgOiAiICkgKyBpMThuKCAiTm8gdHJhY2sg cGxheWluZyIgKSApOworICAgICBtX3dpZGdldC0+Y2xlYXIoKTsKKyAgICAgbV93aWRnZXQtPmhp ZGUoKTsKKyAgICAgc2V0QnVzeSggZmFsc2UgKTsKKyAgICAgc2V0Q29sbGFwc2VPbigpOworKyAg ICBkYXRhRW5naW5lKCAiYW1hcm9rLXBob3RvcyIgKS0+cXVlcnkoIFFTdHJpbmcoICJwaG90b3M6 c3RvcHBlZCIgKSApOworIH0KKyAKKyB2b2lkIAorQEAgLTIxNSwxNCArMjE2LDIyIEBAIFBob3Rv c0FwcGxldDo6ZGF0YVVwZGF0ZWQoIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFBsYXNtYTo6 RGF0YUVuZ2luZTo6RGF0YSYKKyAgICAgfQorICAgICBlbHNlIGlmICggZGF0YS5jb250YWlucygg ImRhdGEiICkgKQorICAgICB7CistICAgICAgICBtX2hlYWRlclRleHQtPnNldFRleHQoIGkxOG4o ICJQaG90b3MiICkgKyBRU3RyaW5nKCAiIDogIiApICsgZGF0YVsgImFydGlzdCIgXS50b1N0cmlu ZygpICk7CistICAgICAgICB1cGRhdGVDb25zdHJhaW50cygpOworLSAgICAgICAgdXBkYXRlKCk7 CistICAgICAgICBzZXRDb2xsYXBzZU9mZigpOworLSAgICAgICAgLy8gU2VuZCB0aGUgZGF0YSB0 byB0aGUgc2Nyb2xsaW5nIHdpZGdldAorLSAgICAgICAgbV93aWRnZXQtPnNldFBpeG1hcExpc3Qo IGRhdGFbICJkYXRhIiBdLnZhbHVlPCBRTGlzdCA8IFBob3Rvc0luZm8gKiA+ID4oKSApOworLSAg ICAgICAgbV93aWRnZXQtPnNob3coKTsKKy0gICAgICAgIHNldEJ1c3koZmFsc2UpOworKyAgICAg ICAgLy8gRG8gbm90IHNob3cgc29tZSBwaWN0dXJlIGlmIHdlJ3JlIHN0aWxsIGFuaW1hdGluZyBh cyBpdCBjYW4gbGVhZCB0byB0cm91YmxlCisrICAgICAgICAvLyBsZXQncyBob3BlIGFuaW1hdGlu ZyB0aW1lIHdpbGwgYmUgc2hvcnRlciB0aGFuIGZldGNoaW5nIHRpbWUgb2YgYWxsIHRoZSBwaWN0 dXJlIDovCisrICAgICAgICAvLyB0aGlzIGFsc28gcHJldmVudCB0aGUgc3R1cGlkIGVmZmVjdCBv ZiByZWFuaW1hdGluZyBzZXZlcmFsIHRpbWUuCisrICAgICAgICBpZiAoIGlzQXBwbGV0RXh0ZW5k ZWQoKSApCisrICAgICAgICB7CisrICAgICAgICAgICAgbV9oZWFkZXJUZXh0LT5zZXRUZXh0KCBp MThuKCAiUGhvdG9zIiApICsgUVN0cmluZyggIiA6ICIgKSArIGRhdGFbICJhcnRpc3QiIF0udG9T dHJpbmcoKSApOworKyAgICAgICAgICAgIHVwZGF0ZUNvbnN0cmFpbnRzKCk7CisrICAgICAgICAg ICAgdXBkYXRlKCk7CisrICAgICAgICAgICAgc2V0Q29sbGFwc2VPZmYoKTsKKysgICAgICAgICAg ICAvLyBTZW5kIHRoZSBkYXRhIHRvIHRoZSBzY3JvbGxpbmcgd2lkZ2V0CisrICAgICAgICAgICAg bV93aWRnZXQtPnNldFBpeG1hcExpc3QoIGRhdGFbICJkYXRhIiBdLnZhbHVlPCBRTGlzdCA8IFBo b3Rvc0luZm8gKiA+ID4oKSApOworKyAgICAgICAgICAgIG1fd2lkZ2V0LT5zaG93KCk7CisrICAg ICAgICAgICAgc2V0QnVzeShmYWxzZSk7CisrICAgICAgICB9CisrICAgICAgICBlbHNlCisrICAg ICAgICAgICAgcmV0dXJuOworICAgICB9CisgICAgIHVwZGF0ZUNvbnN0cmFpbnRzKCk7CisgICAg IHVwZGF0ZSgpOworZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2FwcGxldHMvcGhvdG9zL1Bob3Rv c1Njcm9sbFdpZGdldC5jcHAgYi9zcmMvY29udGV4dC9hcHBsZXRzL3Bob3Rvcy9QaG90b3NTY3Jv bGxXaWRnZXQuY3BwCitpbmRleCA3MWQzZDI4Li4zMWM3MWFkIDEwMDY0NAorLS0tIGEvc3JjL2Nv bnRleHQvYXBwbGV0cy9waG90b3MvUGhvdG9zU2Nyb2xsV2lkZ2V0LmNwcAorKysrIGIvc3JjL2Nv bnRleHQvYXBwbGV0cy9waG90b3MvUGhvdG9zU2Nyb2xsV2lkZ2V0LmNwcAorQEAgLTExMiw5MCAr MTEyLDk0IEBAIHZvaWQgUGhvdG9zU2Nyb2xsV2lkZ2V0OjpzZXRQaXhtYXBMaXN0IChRTGlzdCA8 IFBob3Rvc0luZm8gKiA+IGxpc3QpCisgICAgIGlmICggbGlzdCA9PSBtX2N1cnJlbnRsaXN0ICkK KyAgICAgICAgIHJldHVybjsKKyAKKy0gICAgZGVidWcoKSA8PCAiYWRkaW5nICIgPDwgbGlzdC5j b3VudCgpIDw8ICJuZXcgcGljcyI7CisrICAvLyAgZGVidWcoKSA8PCAiYWRkaW5nICIgPDwgbGlz dC5jb3VudCgpIDw8ICJuZXcgcGljcyI7CisgICAgIC8vIElmIGEgbmV3IG9uZSBhcnJpdmVkLCB3 ZSBjaGFuZ2UuCisgICAgIGZvcmVhY2goIFBob3Rvc0luZm8gKml0ZW0sIGxpc3QgKQorICAgICB7 CisgICAgICAgICBpZiAoICFtX2N1cnJlbnRsaXN0LmNvbnRhaW5zKCBpdGVtICkgKQorICAgICAg ICAgeworLSAgICAgICAgICAgIHN3aXRjaCAoIG1fbW9kZSApCisrICAgICAgICAgICAgaWYgKCAh aXRlbS0+cGhvdG8tPmlzTnVsbCgpICkKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAg IGNhc2UgUEhPVE9TX01PREVfSU5URVJBQ1RJVkUgOgorKyAgICAgICAgICAgICAgICBzd2l0Y2gg KCBtX21vZGUgKQorICAgICAgICAgICAgICAgICB7CistCistICAgICAgICAgICAgICAgICAgICBp ZiAoICFtX2lkICkgLy8gY2FyZWZ1bCB3ZSdyZSBhbmltYXRpbmcKKysgICAgICAgICAgICAgICAg ICAgIGNhc2UgUEhPVE9TX01PREVfSU5URVJBQ1RJVkUgOgorICAgICAgICAgICAgICAgICAgICAg eworLSAgICAgICAgICAgICAgICAgICAgICAgIFBsYXNtYTo6QW5pbWF0b3I6OnNlbGYoKS0+c3Rv cEN1c3RvbUFuaW1hdGlvbiggbV9pZCApOworLSAgICAgICAgICAgICAgICAgICAgICAgIG1faWQg PSAwOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgRHJhZ1Bp eG1hcEl0ZW0gKmRyYWdwaXggPSBuZXcgRHJhZ1BpeG1hcEl0ZW0oIHRoaXMgKTsKKy0gICAgICAg ICAgICAgICAgICAgIGRyYWdwaXgtPnNldFBpeG1hcCggVGhlOjpzdmdIYW5kbGVyKCktPmFkZEJv cmRlcnNUb1BpeG1hcCgKKy0gICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBob3RvLT5zY2FsZWRU b0hlaWdodCggKGludCkgc2l6ZSgpLmhlaWdodCgpIC0gNCAqIG1fbWFyZ2luLCAgUXQ6OlNtb290 aFRyYW5zZm9ybWF0aW9uICksIDUsICIiLCB0cnVlICkgKTsKKy0gICAgICAgICAgICAgICAgICAg IGRyYWdwaXgtPnNldFBvcyggbV9hY3R1YWxwb3MsIDAgKTsKKy0gICAgICAgICAgICAgICAgICAg IGRyYWdwaXgtPlNldENsaWNrYWJsZVVybCggaXRlbS0+dXJscGFnZSApOworLSAgICAgICAgICAg ICAgICAgICAgZHJhZ3BpeC0+c2hvdygpOworIAorLSAgICAgICAgICAgICAgICAgICAgbV9waXht YXBsaXN0IDw8IGRyYWdwaXg7CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhbV9pZCAp IC8vIGNhcmVmdWwgd2UncmUgYW5pbWF0aW5nCisrICAgICAgICAgICAgICAgICAgICAgICAgewor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPnN0 b3BDdXN0b21BbmltYXRpb24oIG1faWQgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg bV9pZCA9IDA7CisrICAgICAgICAgICAgICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAgICAg ICAgICAgaW50IGRlbHRhID0gZHJhZ3BpeC0+Ym91bmRpbmdSZWN0KCkud2lkdGgoKSArIG1fbWFy Z2luOworLSAgICAgICAgICAgICAgICAgICAgbV9zY3JvbGxtYXggKz0gZGVsdGE7CistICAgICAg ICAgICAgICAgICAgICBtX2FjdHVhbHBvcyArPSBkZWx0YTsKKysgICAgICAgICAgICAgICAgICAg ICAgICBEcmFnUGl4bWFwSXRlbSAqZHJhZ3BpeCA9IG5ldyBEcmFnUGl4bWFwSXRlbSggdGhpcyAp OworKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPnNldFBpeG1hcCggVGhlOjpzdmdI YW5kbGVyKCktPmFkZEJvcmRlcnNUb1BpeG1hcCgKKysgICAgICAgICAgICAgICAgICAgICAgICBp dGVtLT5waG90by0+c2NhbGVkVG9IZWlnaHQoIChpbnQpIHNpemUoKS5oZWlnaHQoKSAtIDQgKiBt X21hcmdpbiwgIFF0OjpTbW9vdGhUcmFuc2Zvcm1hdGlvbiApLCA1LCAiIiwgdHJ1ZSApICk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2V0UG9zKCBtX2FjdHVhbHBvcywgMCAp OworKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPlNldENsaWNrYWJsZVVybCggaXRl bS0+dXJscGFnZSApOworKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPnNob3coKTsK KyAKKy0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIGNhc2UgUEhPVE9TX01PREVfQVVUT01BVElDIDoKKy0gICAgICAgICAgICAg ICAgeworKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcGl4bWFwbGlzdCA8PCBkcmFncGl4Owor IAorLSAgICAgICAgICAgICAgICAgICAgRHJhZ1BpeG1hcEl0ZW0gKmRyYWdwaXggPSBuZXcgRHJh Z1BpeG1hcEl0ZW0oIHRoaXMgKTsKKy0gICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPnNldFBp eG1hcCggVGhlOjpzdmdIYW5kbGVyKCktPmFkZEJvcmRlcnNUb1BpeG1hcCgKKy0gICAgICAgICAg ICAgICAgICAgICAgICBpdGVtLT5waG90by0+c2NhbGVkVG9IZWlnaHQoIChpbnQpIHNpemUoKS5o ZWlnaHQoKSAtIDQgKiBtX21hcmdpbiwgIFF0OjpTbW9vdGhUcmFuc2Zvcm1hdGlvbiApLCA1LCAi IiwgdHJ1ZSApICk7CistICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5TZXRDbGlja2FibGVV cmwoIGl0ZW0tPnVybHBhZ2UgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsdGEg PSBkcmFncGl4LT5ib3VuZGluZ1JlY3QoKS53aWR0aCgpICsgbV9tYXJnaW47CisrICAgICAgICAg ICAgICAgICAgICAgICAgbV9zY3JvbGxtYXggKz0gZGVsdGE7CisrICAgICAgICAgICAgICAgICAg ICAgICAgbV9hY3R1YWxwb3MgKz0gZGVsdGE7CisgCistICAgICAgICAgICAgICAgICAgICBpZiAo IG1faWQgPT0gMCApIC8vIG9ubHkgcG9zIGFuZCBzaG93IGlmIG5vIGFuaW1hdGlvbiwgb3RoZXJ3 aXNlIGl0IHdpbGwgYmUgc2V0IGF0IHRoZSBlbmQgYXV0b21hdGljYWxseQorKyAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAg ICAgICAgICAgY2FzZSBQSE9UT1NfTU9ERV9BVVRPTUFUSUMgOgorICAgICAgICAgICAgICAgICAg ICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggISBtX3BpeG1hcGxpc3QuZW1wdHko KSApCistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkcmFncGl4LT5zZXRQb3MoIG1fcGl4bWFwbGlzdC5sYXN0KCktPmJvdW5kaW5nUmVjdCgp LndpZHRoKCkgKyBtX3BpeG1hcGxpc3QubGFzdCgpLT5wb3MoKS54KCkgKyBtX21hcmdpbiAsIDAg KSA7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPnNob3coKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorKwor KyAgICAgICAgICAgICAgICAgICAgICAgIERyYWdQaXhtYXBJdGVtICpkcmFncGl4ID0gbmV3IERy YWdQaXhtYXBJdGVtKCB0aGlzICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+ c2V0UGl4bWFwKCBUaGU6OnN2Z0hhbmRsZXIoKS0+YWRkQm9yZGVyc1RvUGl4bWFwKAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5waG90by0+c2NhbGVkVG9IZWlnaHQoIChpbnQp IHNpemUoKS5oZWlnaHQoKSAtIDQgKiBtX21hcmdpbiwgIFF0OjpTbW9vdGhUcmFuc2Zvcm1hdGlv biApLCA1LCAiIiwgdHJ1ZSApICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+ U2V0Q2xpY2thYmxlVXJsKCBpdGVtLT51cmxwYWdlICk7CisrCisrICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCBtX2lkID09IDAgKSAvLyBvbmx5IHBvcyBhbmQgc2hvdyBpZiBubyBhbmltYXRp b24sIG90aGVyd2lzZSBpdCB3aWxsIGJlIHNldCBhdCB0aGUgZW5kIGF1dG9tYXRpY2FsbHkKKyAg ICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f YWN0dWFscG9zID0gMDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2V0 UG9zKCBtX2FjdHVhbHBvcywgMCApIDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJh Z3BpeC0+c2hvdygpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEgbV9waXht YXBsaXN0LmVtcHR5KCkgKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5zZXRQb3MoIG1fcGl4bWFwbGlzdC5s YXN0KCktPmJvdW5kaW5nUmVjdCgpLndpZHRoKCkgKyBtX3BpeG1hcGxpc3QubGFzdCgpLT5wb3Mo KS54KCkgKyBtX21hcmdpbiAsIDAgKSA7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkcmFncGl4LT5zaG93KCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2FjdHVhbHBvcyA9IDA7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5zZXRQb3MoIG1fYWN0dWFs cG9zLCAwICkgOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2hv dygpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAgICAgICAgICAg bV9waXhtYXBsaXN0IDw8IGRyYWdwaXg7CisrICAgICAgICAgICAgICAgICAgICAgICAgbV9waXht YXBsaXN0IDw8IGRyYWdwaXg7CisgCistICAgICAgICAgICAgICAgICAgICAvLyBzZXQgYSB0aW1l ciBhZnRlciBhbmQgbGF1bmNoCistICAgICAgICAgICAgICAgICAgICBRVGltZXI6OnNpbmdsZVNo b3QoIG1faW50ZXJ2YWwsIHRoaXMsIFNMT1QoIGF1dG9tYXRpY0FuaW1CZWdpbigpICkgKTsKKysg ICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgYSB0aW1lciBhZnRlciBhbmQgbGF1bmNoCisr ICAgICAgICAgICAgICAgICAgICAgICAgUVRpbWVyOjpzaW5nbGVTaG90KCBtX2ludGVydmFsLCB0 aGlzLCBTTE9UKCBhdXRvbWF0aWNBbmltQmVnaW4oKSApICk7CisgCistICAgICAgICAgICAgICAg ICAgICBicmVhazsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBjYXNlIFBI T1RPU19NT0RFX0ZBRElORyA6CistICAgICAgICAgICAgICAgIHsKKy0KKy0gICAgICAgICAgICAg ICAgICAgIERyYWdQaXhtYXBJdGVtICpkcmFncGl4ID0gbmV3IERyYWdQaXhtYXBJdGVtKCB0aGlz ICk7CistICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5zZXRQaXhtYXAoIFRoZTo6c3ZnSGFu ZGxlcigpLT5hZGRCb3JkZXJzVG9QaXhtYXAoCistICAgICAgICAgICAgICAgICAgICBpdGVtLT5w aG90by0+c2NhbGVkVG9IZWlnaHQoIChpbnQpIHNpemUoKS5oZWlnaHQoKSAtIDQgKiBtX21hcmdp biwgIFF0OjpTbW9vdGhUcmFuc2Zvcm1hdGlvbiApLCA1LCAiIiwgdHJ1ZSApICk7CistICAgICAg ICAgICAgICAgICAgICBkcmFncGl4LT5zZXRQb3MoICggc2l6ZSgpLndpZHRoKCkgLSBkcmFncGl4 LT5ib3VuZGluZ1JlY3QoKS53aWR0aCgpICkgLyAyLCAwICk7CistICAgICAgICAgICAgICAgICAg ICBkcmFncGl4LT5TZXRDbGlja2FibGVVcmwoIGl0ZW0tPnVybHBhZ2UgKTsKKy0gICAgICAgICAg ICAgICAgICAgIGRyYWdwaXgtPmhpZGUoKTsKKy0gICAgICAgICAgICAgICAgICAgIG1fcGl4bWFw bGlzdCA8PCBkcmFncGl4OworLSAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BpeG1hcGxpc3Qu c2l6ZSgpID09IDEgKQorLSAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIGRyYWdwaXgtPnNob3coKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBtX3RpbWVy LT5zdGFydCggbV9pbnRlcnZhbCApOworKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgY2FzZSBQSE9UT1Nf TU9ERV9GQURJTkcgOgorKyAgICAgICAgICAgICAgICAgICAgeworIAorLSAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgICAgICAgICAgRHJhZ1BpeG1hcEl0ZW0gKmRy YWdwaXggPSBuZXcgRHJhZ1BpeG1hcEl0ZW0oIHRoaXMgKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICBkcmFncGl4LT5zZXRQaXhtYXAoIFRoZTo6c3ZnSGFuZGxlcigpLT5hZGRCb3JkZXJzVG9Q aXhtYXAoCisrICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGhvdG8tPnNjYWxlZFRvSGVp Z2h0KCAoaW50KSBzaXplKCkuaGVpZ2h0KCkgLSA0ICogbV9tYXJnaW4sICBRdDo6U21vb3RoVHJh bnNmb3JtYXRpb24gKSwgNSwgIiIsIHRydWUgKSApOworKyAgICAgICAgICAgICAgICAgICAgICAg IGRyYWdwaXgtPnNldFBvcyggKCBzaXplKCkud2lkdGgoKSAtIGRyYWdwaXgtPmJvdW5kaW5nUmVj dCgpLndpZHRoKCkgKSAvIDIsIDAgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4 LT5TZXRDbGlja2FibGVVcmwoIGl0ZW0tPnVybHBhZ2UgKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICBkcmFncGl4LT5oaWRlKCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgbV9waXhtYXBs aXN0IDw8IGRyYWdwaXg7CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBtX3BpeG1hcGxp c3Quc2l6ZSgpID09IDEgKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2hvdygpOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtX3RpbWVyLT5zdGFydCggbV9pbnRlcnZhbCApOworKyAgICAgICAgICAgICAgICAg ICAgICAgIH0KKysKKysgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAg IH0KKyAgICAgfQorICAgICBtX2N1cnJlbnRsaXN0ID0gbGlzdDsKKy0gICAgZGVidWcoKSA8PCAi dG90YWwgY291bnQ6ICIgPDwgbV9waXhtYXBsaXN0LmNvdW50KCk7CisrICAvLyAgZGVidWcoKSA8 PCAidG90YWwgY291bnQ6ICIgPDwgbV9waXhtYXBsaXN0LmNvdW50KCk7CisgfQorIAorIHZvaWQg UGhvdG9zU2Nyb2xsV2lkZ2V0Ojpob3ZlckVudGVyRXZlbnQoUUdyYXBoaWNzU2NlbmVIb3ZlckV2 ZW50KikKK0BAIC0yNjYsMTAgKzI3MCwxMyBAQCB2b2lkIFBob3Rvc1Njcm9sbFdpZGdldDo6cmVz aXplKHFyZWFsIHdpZCwgcXJlYWwgaGVpKQorICAgICAgICAgeworICAgICAgICAgICAgIGZvcmVh Y2ggKERyYWdQaXhtYXBJdGVtICppdGVtLCBtX3BpeG1hcGxpc3QpCisgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICBpZiAoIHNpemUoKS5oZWlnaHQoKSAhPSBoZWkgKQorLSAgICAgICAg ICAgICAgICAgICAgaXRlbS0+c2V0UGl4bWFwKCBpdGVtLT5waXhtYXAoKS5zY2FsZWRUb0hlaWdo dCggKGludCkgaGVpIC0gNCAqIG1fbWFyZ2luLCAgUXQ6OlNtb290aFRyYW5zZm9ybWF0aW9uICkg KTsKKy0gICAgICAgICAgICAgICAgaWYgKCBzaXplKCkud2lkdGgoKSAhPSB3aWQgKQorLSAgICAg ICAgICAgICAgICAgICAgaXRlbS0+c2V0UG9zKCAoIHdpZCAtIGl0ZW0tPmJvdW5kaW5nUmVjdCgp LndpZHRoKCkgKSAvIDIsIDAgKTsKKysgICAgICAgICAgICAgICAgaWYgKCAhaXRlbS0+cGl4bWFw KCkuaXNOdWxsKCkgKQorKyAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgICAgICBp ZiAoIHNpemUoKS5oZWlnaHQoKSAhPSBoZWkgKQorKyAgICAgICAgICAgICAgICAgICAgICAgIGl0 ZW0tPnNldFBpeG1hcCggaXRlbS0+cGl4bWFwKCkuc2NhbGVkVG9IZWlnaHQoIChpbnQpIGhlaSAt IDQgKiBtX21hcmdpbiwgIFF0OjpTbW9vdGhUcmFuc2Zvcm1hdGlvbiApICk7CisrICAgICAgICAg ICAgICAgICAgICBpZiAoIHNpemUoKS53aWR0aCgpICE9IHdpZCApCisrICAgICAgICAgICAgICAg ICAgICAgICAgaXRlbS0+c2V0UG9zKCAoIHdpZCAtIGl0ZW0tPmJvdW5kaW5nUmVjdCgpLndpZHRo KCkgKSAvIDIsIDAgKTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvY29udGV4dC9hcHBs ZXRzL3Bob3Rvcy9hbWFyb2stY29udGV4dC1hcHBsZXQtcGhvdG9zLmRlc2t0b3AgYi9zcmMvY29u dGV4dC9hcHBsZXRzL3Bob3Rvcy9hbWFyb2stY29udGV4dC1hcHBsZXQtcGhvdG9zLmRlc2t0b3AK K2luZGV4IDJmZWQzMzcuLjg2NjYyZTggMTAwNjQ0CistLS0gYS9zcmMvY29udGV4dC9hcHBsZXRz L3Bob3Rvcy9hbWFyb2stY29udGV4dC1hcHBsZXQtcGhvdG9zLmRlc2t0b3AKKysrKyBiL3NyYy9j b250ZXh0L2FwcGxldHMvcGhvdG9zL2FtYXJvay1jb250ZXh0LWFwcGxldC1waG90b3MuZGVza3Rv cAorQEAgLTE3LDYgKzE3LDcgQEAgTmFtZVtubl09QmlsZXRlCisgTmFtZVtwbF09WmRqxJljaWEK KyBOYW1lW3B0XT1Gb3RvZ3JhZmlhcworIE5hbWVbcHRfQlJdPUZvdG9zCisrTmFtZVtydV090KTQ vtGC0L7Qs9GA0LDRhNC40LgKKyBOYW1lW3NyXT3QpNC+0YLQvtCz0YDQsNGE0LjRmNC1CisgTmFt ZVtzckBsYXRpbl09Rm90b2dyYWZpamUKKyBOYW1lW3N2XT1Gb3RvbgorZGlmZiAtLWdpdCBhL3Ny Yy9jb250ZXh0L2VuZ2luZXMvY3VycmVudC9hbWFyb2stZGF0YS1lbmdpbmUtY3VycmVudC5kZXNr dG9wIGIvc3JjL2NvbnRleHQvZW5naW5lcy9jdXJyZW50L2FtYXJvay1kYXRhLWVuZ2luZS1jdXJy ZW50LmRlc2t0b3AKK2luZGV4IDY2MzE1M2YuLjQ1MzU0YjkgMTAwNjQ0CistLS0gYS9zcmMvY29u dGV4dC9lbmdpbmVzL2N1cnJlbnQvYW1hcm9rLWRhdGEtZW5naW5lLWN1cnJlbnQuZGVza3RvcAor KysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy9jdXJyZW50L2FtYXJvay1kYXRhLWVuZ2luZS1jdXJy ZW50LmRlc2t0b3AKK0BAIC0zMyw3ICszMyw3IEBAIE5hbWVbcGxdPU1vZHXFgiBkYW55Y2ggYmll xbzEhWN5Y2ggaW5mb3JtYWNqaQorIE5hbWVbcHRdPU1vdG9yIGRlIERhZG9zIGRhIEluZm9ybWHD p8OjbyBBY3R1YWwKKyBOYW1lW3B0X0JSXT1NZWNhbmlzbW8gZGUgRGFkb3MgZGFzIEluZm9ybWHD p8O1ZXMgQXR1YWlzCisgTmFtZVtyb109TW90b3IgZGUgZGF0ZSBJbmZvcm1hyJtpZSBjdXJlbnTE gworLU5hbWVbcnVdPdCU0LLQuNC20L7QuiDQtNCw0L3QvdGL0YUg0LTQu9GPINGC0LXQutGD0YnQ uNGFINGB0LLQtdC00LXQvdC40LkKKytOYW1lW3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC9 0YvRhSDQtNC70Y8g0YLQtdC60YPRidC40YUg0YHQstC10LTQtdC90LjQuQorIE5hbWVbc2xdPVBv ZGF0a292bmkgcG9nb24gemEgcG9kYXRrZSB0cmVudXRuaSBza2xhZGJpCisgTmFtZVtzcl090JTQ sNGC0L7QvNC+0YLQvtGAINGC0LXQutGD0ZvQuNGFINC/0L7QtNCw0YLQsNC60LAKKyBOYW1lW3Ny QGxhdGluXT1EYXRvbW90b3IgdGVrdcSHaWggcG9kYXRha2EKK2RpZmYgLS1naXQgYS9zcmMvY29u dGV4dC9lbmdpbmVzL2luZm8vYW1hcm9rLWRhdGEtZW5naW5lLWluZm8uZGVza3RvcCBiL3NyYy9j b250ZXh0L2VuZ2luZXMvaW5mby9hbWFyb2stZGF0YS1lbmdpbmUtaW5mby5kZXNrdG9wCitpbmRl eCBhMjkwNDBjLi5kZTE2YjZiIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvZW5naW5lcy9pbmZv L2FtYXJvay1kYXRhLWVuZ2luZS1pbmZvLmRlc2t0b3AKKysrKyBiL3NyYy9jb250ZXh0L2VuZ2lu ZXMvaW5mby9hbWFyb2stZGF0YS1lbmdpbmUtaW5mby5kZXNrdG9wCitAQCAtMTQsNiArMTQsNyBA QCBOYW1lW25uXT1EYXRhbW90b3IgZm9yIGluZm9ybWFzam9uCisgTmFtZVtwbF09TW9kdcWCIGRh bnljaCBpbmZvcm1hY2ppCisgTmFtZVtwdF09TW90b3IgZGUgRGFkb3MgZGEgSW5mb3JtYcOnw6Nv CisgTmFtZVtwdF9CUl09TWVjYW5pc21vIGRlIERhZG9zIGRhcyBJbmZvcm1hw6fDtWVzCisrTmFt ZVtydV090JjRgdGC0L7Rh9C90LjQuiDQtNCw0L3QvdGL0YUg0LTQu9GPINGB0LLQtdC00LXQvdC4 0LkKKyBOYW1lW3NyXT3QlNCw0YLQvtC80L7RgtC+0YAg0L/QvtC00LDRgtCw0LrQsAorIE5hbWVb c3JAbGF0aW5dPURhdG9tb3RvciBwb2RhdGFrYQorIE5hbWVbc3ZdPURhdGFncsOkbnNzbml0dCBm w7ZyIGluZm9ybWF0aW9uCitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRleHQvZW5naW5lcy9seXJpY3Mv YW1hcm9rLWRhdGEtZW5naW5lLWx5cmljcy5kZXNrdG9wIGIvc3JjL2NvbnRleHQvZW5naW5lcy9s eXJpY3MvYW1hcm9rLWRhdGEtZW5naW5lLWx5cmljcy5kZXNrdG9wCitpbmRleCBmY2RiMTg5Li4x MzQxNzZlIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvZW5naW5lcy9seXJpY3MvYW1hcm9rLWRh dGEtZW5naW5lLWx5cmljcy5kZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9lbmdpbmVzL2x5cmlj cy9hbWFyb2stZGF0YS1lbmdpbmUtbHlyaWNzLmRlc2t0b3AKK0BAIC0zMyw3ICszMyw3IEBAIE5h bWVbcGxdPU1vZHXFgiBkYW55Y2ggdGVrc3TDs3cKKyBOYW1lW3B0XT1Nb3RvciBkZSBEYWRvcyBk ZSBMZXRyYXMgTXVzaWNhaXMKKyBOYW1lW3B0X0JSXT1NZWNhbmlzbW8gZGUgRGFkb3MgZGFzIExl dHJhcworIE5hbWVbcm9dPU1vdG9yIGRlIGRhdGUgVmVyc3VyaQorLU5hbWVbcnVdPdCU0LLQuNC2 0L7QuiDQtNCw0L3QvdGL0YUg0LTQu9GPINGC0LXQutGB0YLQvtCyINC/0LXRgdC10L0KKytOYW1l W3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC90YvRhSDQtNC70Y8g0YLQtdC60YHRgtC+0LIg 0L/QtdGB0LXQvQorIE5hbWVbc2xdPVBvZGF0a292bmkgcG9nb24gemEgYmVzZWRpbGEKKyBOYW1l W3NyXT3QlNCw0YLQvtC80L7RgtC+0YAg0YHRgtC40YXQvtCy0LAKKyBOYW1lW3NyQGxhdGluXT1E YXRvbW90b3Igc3RpaG92YQorZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2VuZ2luZXMvcGhvdG9z L1Bob3Rvc0VuZ2luZS5jcHAgYi9zcmMvY29udGV4dC9lbmdpbmVzL3Bob3Rvcy9QaG90b3NFbmdp bmUuY3BwCitpbmRleCA3NTU4ZGE4Li5kZmIxM2FmIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQv ZW5naW5lcy9waG90b3MvUGhvdG9zRW5naW5lLmNwcAorKysrIGIvc3JjL2NvbnRleHQvZW5naW5l cy9waG90b3MvUGhvdG9zRW5naW5lLmNwcAorQEAgLTY1LDYgKzY1LDcgQEAgUGhvdG9zRW5naW5l Ojpzb3VyY2VzKCkgY29uc3QKKyBib29sIAorIFBob3Rvc0VuZ2luZTo6c291cmNlUmVxdWVzdEV2 ZW50KCBjb25zdCBRU3RyaW5nJiBuYW1lICkKKyB7CisrICAgIERFQlVHX0JMT0NLCisgICAgIG1f cmVxdWVzdGVkID0gdHJ1ZTsgLy8gc29tZW9uZSBpcyBhc2tpbmcgZm9yIGRhdGEsIHNvIHdlIHR1 cm4gb3Vyc2VsdmVzIG9uIDopCisgICAgIFFTdHJpbmdMaXN0IHRva2VucyA9IG5hbWUuc3BsaXQo ICc6JyApOworIAorQEAgLTg2LDcgKzg3LDE4IEBAIFBob3Rvc0VuZ2luZTo6c291cmNlUmVxdWVz dEV2ZW50KCBjb25zdCBRU3RyaW5nJiBuYW1lICkKKyAgICAgICAgICAgICBtX3JlbG9hZCA9IHRy dWU7CisgICAgICAgICB9CisgICAgIH0KKy0gICAgICAgIAorKworKyAgICAvLyB3ZSd2ZSBiZWVu IG5vdGlmaWVkIGJ5IHRoZSBhcHBsZXQgdG8gYmUgaW4gc3RhdGUgc3RvcCA8MworKyAgICBlbHNl IGlmICggdG9rZW5zLmNvbnRhaW5zKCAic3RvcHBlZCIgKSAmJiB0b2tlbnMuc2l6ZSgpID4gMSAp CisrICAgIHsKKysgICAgICAgIGlmICggdG9rZW5zLmF0KCAxICkgPT0gUVN0cmluZyggInN0b3Bw ZWQiICkgKQorKyAgICAgICAgeworKyAgICAgICAgICAgIHJlbW92ZVNvdXJjZSggInBob3RvcyIg KTsKKysgICAgICAgICAgICBtX3JlbG9hZCA9IHRydWU7CisrICAgICAgICAgICAgcmV0dXJuIGZh bHNlOworKyAgICAgICAgfQorKyAgICB9CisrICAgIAorICAgICByZW1vdmVBbGxEYXRhKCBuYW1l ICk7CisgICAgIHNldERhdGEoIG5hbWUsIFFWYXJpYW50KCkgKTsKKyAgICAgdXBkYXRlKCk7Citk aWZmIC0tZ2l0IGEvc3JjL2NvbnRleHQvZW5naW5lcy9waG90b3MvYW1hcm9rLWRhdGEtZW5naW5l LXBob3Rvcy5kZXNrdG9wIGIvc3JjL2NvbnRleHQvZW5naW5lcy9waG90b3MvYW1hcm9rLWRhdGEt ZW5naW5lLXBob3Rvcy5kZXNrdG9wCitpbmRleCBjMGU4OTNmLi5kMTFjNDNjIDEwMDY0NAorLS0t IGEvc3JjL2NvbnRleHQvZW5naW5lcy9waG90b3MvYW1hcm9rLWRhdGEtZW5naW5lLXBob3Rvcy5k ZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9lbmdpbmVzL3Bob3Rvcy9hbWFyb2stZGF0YS1lbmdp bmUtcGhvdG9zLmRlc2t0b3AKK0BAIC0xNSw2ICsxNSw3IEBAIE5hbWVbbm5dPURhdGFtb3RvciBm b3IgYmlsZXRlCisgTmFtZVtwbF09TW9kdcWCIGRhbnljaCB6ZGrEmcSHCisgTmFtZVtwdF09TW90 b3IgZGUgRGFkb3MgZGUgRm90b2dyYWZpYXMKKyBOYW1lW3B0X0JSXT1NZWNhbmlzbW8gZGUgRGFk b3MgZGUgRm90b3MKKytOYW1lW3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC90YvRhSDRhNC+ 0YLQvtCz0YDQsNGE0LjQuQorIE5hbWVbc3JdPdCU0LDRgtC+0LzQvtGC0L7RgCDRhNC+0YLQvtCz 0YDQsNGE0LjRmNCwCisgTmFtZVtzckBsYXRpbl09RGF0b21vdG9yIGZvdG9ncmFmaWphCisgTmFt ZVtzdl09RGF0YWdyw6Ruc3NuaXR0IGbDtnIgZm90b24KK2RpZmYgLS1naXQgYS9zcmMvY29udGV4 dC9lbmdpbmVzL3NvbmdraWNrL2FtYXJvay1kYXRhLWVuZ2luZS1zb25na2ljay5kZXNrdG9wIGIv c3JjL2NvbnRleHQvZW5naW5lcy9zb25na2ljay9hbWFyb2stZGF0YS1lbmdpbmUtc29uZ2tpY2su ZGVza3RvcAoraW5kZXggZWUxY2E5My4uMjIxMzUzMyAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0 L2VuZ2luZXMvc29uZ2tpY2svYW1hcm9rLWRhdGEtZW5naW5lLXNvbmdraWNrLmRlc2t0b3AKKysr KyBiL3NyYy9jb250ZXh0L2VuZ2luZXMvc29uZ2tpY2svYW1hcm9rLWRhdGEtZW5naW5lLXNvbmdr aWNrLmRlc2t0b3AKK0BAIC0zMyw3ICszMyw3IEBAIE5hbWVbcGxdPU1vZHXFgiBkYW55Y2ggU29u Z2tpY2sKKyBOYW1lW3B0XT1Nb3RvciBkZSBEYWRvcyBkbyBTb25na2ljaworIE5hbWVbcHRfQlJd PU1lY2FuaXNtbyBkZSBEYWRvcyBkbyBTb25na2ljaworIE5hbWVbcm9dPU1vdG9yIGRlIGRhdGUg U29uZ2tpY2sKKy1OYW1lW3J1XT3QlNCy0LjQttC+0Log0LTQsNC90L3Ri9GFIFNvbmdraWNrCisr TmFtZVtydV090JjRgdGC0L7Rh9C90LjQuiDQtNCw0L3QvdGL0YUgU29uZ2tpY2sKKyBOYW1lW3Ns XT1Qb2RhdGtvdm5pIHBvZ29uIHphIFNvbmdraWNrCisgTmFtZVtzcl090JTQsNGC0L7QvNC+0YLQ vtGAINCh0L7QvdCz0LrQuNC60LAKKyBOYW1lW3NyQGxhdGluXT1EYXRvbW90b3IgU29uZ2tpY2th CitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRleHQvZW5naW5lcy92aWRlb2NsaXAvYW1hcm9rLWRhdGEt ZW5naW5lLXZpZGVvY2xpcC5kZXNrdG9wIGIvc3JjL2NvbnRleHQvZW5naW5lcy92aWRlb2NsaXAv YW1hcm9rLWRhdGEtZW5naW5lLXZpZGVvY2xpcC5kZXNrdG9wCitpbmRleCA5ZmNlNWQ3Li43ZDNj OThiIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvZW5naW5lcy92aWRlb2NsaXAvYW1hcm9rLWRh dGEtZW5naW5lLXZpZGVvY2xpcC5kZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9lbmdpbmVzL3Zp ZGVvY2xpcC9hbWFyb2stZGF0YS1lbmdpbmUtdmlkZW9jbGlwLmRlc2t0b3AKK0BAIC0yMCw3ICsy MCw3IEBAIE5hbWVbcGFdPeCoteCpgOCooeCov+CokyDgqJXgqLLgqL/gqbHgqKog4Kih4Ki+4Kif 4Ki+IOCoh+CpsOConOCooworIE5hbWVbcGxdPU1vZHXFgiBkYW55Y2gga2xpcMOzdyB3aWRlbwor IE5hbWVbcHRdPU1vdG9yIGRlIERhZG9zIGRlICdDbGlwcycgZGUgVsOtZGVvCisgTmFtZVtwdF9C Ul09TW90b3IgZGUgZGFkb3MgZGUgY2xpcGUgZGUgdsOtZGVvCistTmFtZVtydV090JTQstC40LbQ vtC6INC00LDQvdC90YvRhSDQtNC70Y8g0LLQuNC00LXQvtC60LvQuNC/0L7QsgorK05hbWVbcnVd PdCY0YHRgtC+0YfQvdC40Log0LTQsNC90L3Ri9GFINC00LvRjyDQstC40LTQtdC+0LrQu9C40L/Q vtCyCisgTmFtZVtzbF09UG9kYXRrb3ZuaSBwb2dvbiB6YSB2aWRlbyBwb3NuZXRrZQorIE5hbWVb c3JdPdCU0LDRgtC+0LzQvtGC0L7RgCDQstC40LTQtdC+INC40YHQtdGH0LDQutCwCisgTmFtZVtz ckBsYXRpbl09RGF0b21vdG9yIHZpZGVvIGlzZcSNYWthCitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRl eHQvZW5naW5lcy93aWtpcGVkaWEvV2lraXBlZGlhRW5naW5lLmNwcCBiL3NyYy9jb250ZXh0L2Vu Z2luZXMvd2lraXBlZGlhL1dpa2lwZWRpYUVuZ2luZS5jcHAKK2luZGV4IDExMDIzY2IuLjEzZGU1 OGQgMTAwNjQ0CistLS0gYS9zcmMvY29udGV4dC9lbmdpbmVzL3dpa2lwZWRpYS9XaWtpcGVkaWFF bmdpbmUuY3BwCisrKysgYi9zcmMvY29udGV4dC9lbmdpbmVzL3dpa2lwZWRpYS9XaWtpcGVkaWFF bmdpbmUuY3BwCitAQCAtMjIyLDkgKzIyMiwxMSBAQCBXaWtpcGVkaWFFbmdpbmU6Ondpa2lSZXN1 bHQoIEtKb2IqIGpvYiApCisgICAgICAgICBtX3dpa2kgPSBRU3RyaW5nOjpmcm9tVXRmOCggc3Rv cmVkSm9iLT5kYXRhKCkuZGF0YSgpLCBzdG9yZWRKb2ItPmRhdGEoKS5zaXplKCkgKTsKKyAKKyAK Ky0gICAgLy8gUmVmaW5lZCBzZWFyY2ggdGhpbmcKKysgICAgLy8gRklYTUU6IEZvciBub3cgd2Ug dGVzdCBpZiB3ZSBnb3QgYW4gYXJ0aWNsZSBvciBub3Qgd2l0aCBhIHRlc3Qgb24gdGhpcyBzdHJp bmcgIndnQXJ0aWNsZUlkPTAiCisrICAgIC8vIFRoaXMgaXMgYmFkCisgICAgIGlmKCBtX3dpa2ku Y29udGFpbnMoICJ3Z0FydGljbGVJZD0wIiApICkgLy8gVGhlIGFydGljbGUgZG9lcyBub3QgZXhp c3QKKyAgICAgeworKyAgICAgICAgLy8gUmVmaW5lZCBzZWFyY2ggaXMgZG9uZSBoZXJlIAorICAg ICAgICAgaWYgKCBtX3RyaWVkUmVmaW5lZFNlYXJjaCA9PSAtMSApCisgICAgICAgICB7CisgICAg ICAgICAgICAgZGVidWcoKSA8PCAiV2UgYWxyZWFkeSB0cmllZCBzb21lIHJlZmluZWQgc2VhcmNo LiBMZXRzIGVuZCB0aGlzIG1hZG5lc3MuLi4iOworZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2Vu Z2luZXMvd2lraXBlZGlhL2FtYXJvay1kYXRhLWVuZ2luZS13aWtpcGVkaWEuZGVza3RvcCBiL3Ny Yy9jb250ZXh0L2VuZ2luZXMvd2lraXBlZGlhL2FtYXJvay1kYXRhLWVuZ2luZS13aWtpcGVkaWEu ZGVza3RvcAoraW5kZXggNGU4NjRlYi4uYTk3ZmMzYyAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0 L2VuZ2luZXMvd2lraXBlZGlhL2FtYXJvay1kYXRhLWVuZ2luZS13aWtpcGVkaWEuZGVza3RvcAor KysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy93aWtpcGVkaWEvYW1hcm9rLWRhdGEtZW5naW5lLXdp a2lwZWRpYS5kZXNrdG9wCitAQCAtMzMsNyArMzMsNyBAQCBOYW1lW3BsXT1Nb2R1xYIgZGFueWNo IFdpa2lwZWRpaQorIE5hbWVbcHRdPU1vdG9yIGRlIERhZG9zIGRvIFdpa2lww6lkaWEKKyBOYW1l W3B0X0JSXT1NZWNhbmlzbW8gZGUgRGFkb3MgZGEgV2lraXBlZGlhCisgTmFtZVtyb109TW90b3Ig ZGUgZGF0ZSBXaWtpcGVkaWEKKy1OYW1lW3J1XT3QlNCy0LjQttC+0Log0LTQsNC90L3Ri9GFINCS 0LjQutC40L/QtdC00LjQuAorK05hbWVbcnVdPdCY0YHRgtC+0YfQvdC40Log0LTQsNC90L3Ri9GF INCS0LjQutC40L/QtdC00LjQuAorIE5hbWVbc2xdPVBvZGF0a292bmkgcG9nb24gemEgV2lraXBl ZGlqbworIE5hbWVbc3JdPdCU0LDRgtC+0LzQvtGC0L7RgCDQktC40LrQuNC/0LXQtNC40ZjQtQor IE5hbWVbc3JAbGF0aW5dPURhdG9tb3RvciBXaWtpcGVkaWplCitkaWZmIC0tZ2l0IGEvc3JjL2Nv bnRleHQvc2NyaXB0ZW5naW5lL2phdmFzY3JpcHQvYW1hcm9rLXNjcmlwdGVuZ2luZS1hcHBsZXQt c2ltcGxlLWphdmFzY3JpcHQuZGVza3RvcCBiL3NyYy9jb250ZXh0L3NjcmlwdGVuZ2luZS9qYXZh c2NyaXB0L2FtYXJvay1zY3JpcHRlbmdpbmUtYXBwbGV0LXNpbXBsZS1qYXZhc2NyaXB0LmRlc2t0 b3AKK2luZGV4IDQ5OWM1ODcuLmQ0YjUwZTkgMTAwNjQ0CistLS0gYS9zcmMvY29udGV4dC9zY3Jp cHRlbmdpbmUvamF2YXNjcmlwdC9hbWFyb2stc2NyaXB0ZW5naW5lLWFwcGxldC1zaW1wbGUtamF2 YXNjcmlwdC5kZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9zY3JpcHRlbmdpbmUvamF2YXNjcmlw dC9hbWFyb2stc2NyaXB0ZW5naW5lLWFwcGxldC1zaW1wbGUtamF2YXNjcmlwdC5kZXNrdG9wCitA QCAtMTgsNiArMTgsNyBAQCBOYW1lW25uXT1KYXZhU2NyaXB0LWVsZW1lbnQgZm9yIEFtYXJvawor IE5hbWVbcGxdPUFwbGV0IEphdmFTY3JpcHR1IEFtYXJva2EKKyBOYW1lW3B0XT0nQXBwbGV0JyBk ZSBKYXZhU2NyaXB0IGRvIEFtYXJvaworIE5hbWVbcHRfQlJdPU1pbmlhcGxpY2F0aXZvIEphdmFT Y3JpcHQgZG8gQW1hcm9rCisrTmFtZVtydV090JDQv9C70LXRgiBKYXZhU2NyaXB0INC00LvRjyBB bWFyb2sKKyBOYW1lW3NyXT3QiNCw0LLQsNGB0LrRgNC40L/RgtC90Lgg0LDQv9C70LXRgiDQt9Cw INCQ0LzQsNGA0L7QugorIE5hbWVbc3JAbGF0aW5dPUphdmFzY3JpcHQgYXBsZXQgemEgQW1hcm9r CisgTmFtZVtzdl09QW1hcm9rIEphdmFzY3JpcHQtbWluaXByb2dyYW0KK0BAIC00NSw2ICs0Niw3 IEBAIENvbW1lbnRbbm5dPUlubmVieWdkIEFtYXJvay1lbGVtZW50IHNrcml2ZW4gaSBKYXZhU2Ny aXB0CisgQ29tbWVudFtwbF09TmF0eXdueSBhcHBsZXQgQW1hcm9rYSBuYXBpc2FueSB3IEphdmFT Y3JpcGNpZQorIENvbW1lbnRbcHRdPVVtYSAnYXBwbGV0JyBuYXRpdmEgZG8gQW1hcm9rLCBmZWl0 YSBlbSBKYXZhU2NyaXB0CisgQ29tbWVudFtwdF9CUl09TWluaWFwbGljYXRpdm8gbmF0aXZvIGRv IEFtYXJvayBlc2NyaXRvIGVtIEphdmFTY3JpcHQKKytDb21tZW50W3J1XT3QkNC/0LvQtdGCIEFt YXJvaywg0L3QsNC/0LjRgdCw0L3QvdGL0Lkg0L3QsCDRj9C30YvQutC1IEphdmFTY3JpcHQKKyBD b21tZW50W3NyXT3QodCw0LzQvtGB0LLQvtGY0L3QuCDQkNC80LDRgNC+0LrQvtCyINCw0L/Qu9C1 0YIg0L3QsNC/0LjRgdCw0L0g0YMg0ZjQsNCy0LDRgdC60YDQuNC/0YLRgworIENvbW1lbnRbc3JA bGF0aW5dPVNhbW9zdm9qbmkgQW1hcm9rb3YgYXBsZXQgbmFwaXNhbiB1IEphdmFTY3JpcHR1Cisg Q29tbWVudFtzdl09RWdldCBBbWFyb2sgbWluaXByb2dyYW0gc2tyaXZldCBpIEphdmFzY3JpcHQK K2RpZmYgLS1naXQgYS9zcmMvY29udGV4dC9zY3JpcHRlbmdpbmUvamF2YXNjcmlwdC9hbWFyb2st c2NyaXB0ZW5naW5lLXJ1bm5lci1qYXZhc2NyaXB0LmRlc2t0b3AgYi9zcmMvY29udGV4dC9zY3Jp cHRlbmdpbmUvamF2YXNjcmlwdC9hbWFyb2stc2NyaXB0ZW5naW5lLXJ1bm5lci1qYXZhc2NyaXB0 LmRlc2t0b3AKK2luZGV4IGFhNzlkNzMuLjU2NzJiOGYgMTAwNjQ0CistLS0gYS9zcmMvY29udGV4 dC9zY3JpcHRlbmdpbmUvamF2YXNjcmlwdC9hbWFyb2stc2NyaXB0ZW5naW5lLXJ1bm5lci1qYXZh c2NyaXB0LmRlc2t0b3AKKysrKyBiL3NyYy9jb250ZXh0L3NjcmlwdGVuZ2luZS9qYXZhc2NyaXB0 L2FtYXJvay1zY3JpcHRlbmdpbmUtcnVubmVyLWphdmFzY3JpcHQuZGVza3RvcAorQEAgLTE3LDYg KzE3LDcgQEAgTmFtZVtubl09SmF2YVNjcmlwdC1rw7h5cmFyIGZvciBBbWFyb2sKKyBOYW1lW3Bs XT1KYXZhU2NyaXB0IFJ1bm5lciBBbWFyb2thCisgTmFtZVtwdF09RXhlY3XDp8OjbyBkZSBKYXZh U2NyaXB0IGRvIEFtYXJvaworIE5hbWVbcHRfQlJdPUV4ZWN1dG9yIEphdmFTY3JpcHQgZG8gQW1h cm9rCisrTmFtZVtydV090JzQvtC00YPQu9GMINC30LDQv9GD0YHQutCwIEphdmFTY3JpcHQg0LTQ u9GPIEFtYXJvaworIE5hbWVbc3JdPdCQ0LzQsNGA0L7QutC+0LIg0LjQt9Cy0L7RktCw0Ycg0ZjQ sNCy0LDRgdC60YDQuNC/0YLQsAorIE5hbWVbc3JAbGF0aW5dPUFtYXJva292IGl6dm/EkWHEjSBK YXZhU2NyaXB0YQorIE5hbWVbc3ZdPUFtYXJvayBKYXZhc2NyaXB0LWvDtnJwcm9ncmFtCitkaWZm IC0tZ2l0IGEvc3JjL2NvbnRleHQvc2VydmljZXR5cGVzL2FtYXJva19kYXRhX2VuZ2luZS5kZXNr dG9wIGIvc3JjL2NvbnRleHQvc2VydmljZXR5cGVzL2FtYXJva19kYXRhX2VuZ2luZS5kZXNrdG9w CitpbmRleCA2ZTQyYjJiLi5mYWMxZDFmIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvc2Vydmlj ZXR5cGVzL2FtYXJva19kYXRhX2VuZ2luZS5kZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9zZXJ2 aWNldHlwZXMvYW1hcm9rX2RhdGFfZW5naW5lLmRlc2t0b3AKK0BAIC0zMyw3ICszMyw3IEBAIE5h bWVbcGxdPU1vZHXFgiBkYW55Y2ggQW1hcm9rYQorIE5hbWVbcHRdPU1vdG9yIGRlIERhZG9zIGRv IEFtYXJvaworIE5hbWVbcHRfQlJdPU1vdG9yIGRlIERhZG9zIGRvIEFtYXJvaworIE5hbWVbcm9d PU1vdG9yIGRlIGRhdGUgQW1hcm9rCistTmFtZVtydV090JTQstC40LbQvtC6INC00LDQvdC90YvR hSBBbWFyb2sKKytOYW1lW3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC90YvRhSBBbWFyb2sK KyBOYW1lW3NsXT1Qb2RhdGtvdm5pIHBvZ29uIHphIEFtYXJvaworIE5hbWVbc3JdPdCU0LDRgtC+ 0LzQvtGC0L7RgCDQkNC80LDRgNC+0LrQsAorIE5hbWVbc3JAbGF0aW5dPURhdG9tb3RvciBBbWFy b2thCitAQCAtODMsNyArODMsNyBAQCBDb21tZW50W3BsXT1Nb2R1xYIgZGFueWNoIEFtYXJva2EK KyBDb21tZW50W3B0XT1Nb3RvciBkZSBEYWRvcyBkbyBBbWFyb2sKKyBDb21tZW50W3B0X0JSXT1N ZWNhbmlzbW8gZGUgRGFkb3MgZG8gQW1hcm9rCisgQ29tbWVudFtyb109TW90b3IgZGUgZGF0ZSBB bWFyb2sKKy1Db21tZW50W3J1XT3QlNCy0LjQttC+0Log0LTQsNC90L3Ri9GFIEFtYXJvaworK0Nv bW1lbnRbcnVdPdCY0YHRgtC+0YfQvdC40Log0LTQsNC90L3Ri9GFIEFtYXJvaworIENvbW1lbnRb c2xdPVBvZGF0a292bmkgcG9nb24gemEgQW1hcm9rCisgQ29tbWVudFtzcl090JTQsNGC0L7QvNC+ 0YLQvtGAINCQ0LzQsNGA0L7QutCwCisgQ29tbWVudFtzckBsYXRpbl09RGF0b21vdG9yIEFtYXJv a2EKK2RpZmYgLS1naXQgYS9zcmMvZGlhbG9ncy9UYWdEaWFsb2cuY3BwIGIvc3JjL2RpYWxvZ3Mv VGFnRGlhbG9nLmNwcAoraW5kZXggNThmMmVmNC4uMDhkZjg2OCAxMDA2NDQKKy0tLSBhL3NyYy9k aWFsb2dzL1RhZ0RpYWxvZy5jcHAKKysrKyBiL3NyYy9kaWFsb2dzL1RhZ0RpYWxvZy5jcHAKK0BA IC04ODgsNyArODg4LDcgQEAgdm9pZCBUYWdEaWFsb2c6OnJlYWRUYWdzKCkKKyAgICAgaWYoIG1f Y3VycmVudERhdGEuY29udGFpbnMoIE1ldGE6OkZpZWxkOjpDT01QT1NFUiApICkKKyAgICAgICAg IHNlbGVjdE9ySW5zZXJ0VGV4dCggbV9jdXJyZW50RGF0YS52YWx1ZSggTWV0YTo6RmllbGQ6OkNP TVBPU0VSICkudG9TdHJpbmcoKSwgdWktPmtDb21ib0JveF9jb21wb3NlciApOworICAgICBlbHNl CistICAgICAgICBzZWxlY3RPckluc2VydFRleHQoIFFTdHJpbmcoKSwgdWktPmtDb21ib0JveF9n ZW5yZSApOworKyAgICAgICAgc2VsZWN0T3JJbnNlcnRUZXh0KCBRU3RyaW5nKCksIHVpLT5rQ29t Ym9Cb3hfY29tcG9zZXIgKTsKKyAgICAgdWktPnJhdGluZ1dpZGdldC0+c2V0UmF0aW5nKCBtX2N1 cnJlbnREYXRhLnZhbHVlKCBNZXRhOjpGaWVsZDo6UkFUSU5HICkudG9JbnQoKSApOworICAgICB1 aS0+cmF0aW5nV2lkZ2V0LT5zZXRNYXhSYXRpbmcoIDEwICk7CisgICAgIHVpLT5xU3BpbkJveF90 cmFjay0+c2V0VmFsdWUoIG1fY3VycmVudERhdGEudmFsdWUoIE1ldGE6OkZpZWxkOjpUUkFDS05V TUJFUiApLnRvSW50KCkgKTsKK2RpZmYgLS1naXQgYS9zcmMvaW1hZ2VzL3NwbGFzaF9zY3JlZW4u anBnIGIvc3JjL2ltYWdlcy9zcGxhc2hfc2NyZWVuLmpwZworaW5kZXggNjUyMWVhZC4uNzBhNjMz YiAxMDA2NDQKK0JpbmFyeSBmaWxlcyBhL3NyYy9pbWFnZXMvc3BsYXNoX3NjcmVlbi5qcGcgYW5k IGIvc3JjL2ltYWdlcy9zcGxhc2hfc2NyZWVuLmpwZyBkaWZmZXIKK2RpZmYgLS1naXQgYS9zcmMv bWFpbi5jcHAgYi9zcmMvbWFpbi5jcHAKK2luZGV4IDg1ZTdjODguLmViYzgzMDAgMTAwNjQ0Cist LS0gYS9zcmMvbWFpbi5jcHAKKysrKyBiL3NyYy9tYWluLmNwcAorQEAgLTQwLDcgKzQwLDcgQEAg aW50IG1haW4oIGludCBhcmdjLCBjaGFyICphcmd2W10gKQorICAgICAgICAgICAgIGtpMThuKCJE ZXZlbG9wZXIgKGh5ZHJvZ2VuKSIpLCAicGFyYWxsZWxncmFwZWZydWl0QGdtYWlsLmNvbSIgKTsK KyAgICAgYWJvdXREYXRhLmFkZEF1dGhvcigga2kxOG4oIklhbiAnVGhlIEJlYXJkJyBNb25yb2Ui KSwKKyAgICAgICAgICAgICBraTE4bigiRGV2ZWxvcGVyIChlZWFuKSIpLCAiaWFuQG1vbnJvZS5u dSIsICJodHRwOi8vd3d3Lm1vbnJvZS5udS8iICk7CistICAgIGFib3V0RGF0YS5hZGRBdXRob3Io IGtpMThuKCJKZWZmICdJUk9DS1NPSEFSRCcgTWl0Y2hlbGwiKSwKKysgICAgYWJvdXREYXRhLmFk ZEF1dGhvcigga2kxOG4oIkplZmYgJ0lST0tTT0hBUkQnIE1pdGNoZWxsIiksCisgICAgICAgICAg ICAga2kxOG4oIkRldmVsb3BlciAoamVmZmVyYWkpIiksICJtaXRjaGVsbEBrZGUub3JnIiwgImh0 dHA6Ly9hbWFyb2sua2RlLm9yZy9ibG9nL2NhdGVnb3JpZXMvMTMtamVmZmVyYWkiICk7CisgICAg IGFib3V0RGF0YS5hZGRBdXRob3IoIGtpMThuKCJMZW8gRnJhbmNoaSIpLAorICAgICAgICAgICAg IGtpMThuKCJEZXZlbG9wZXIgKGxmcmFuY2hpKSIpLCAibGZyYW5jaGlAa2RlLm9yZyIgKTsKK2Rp ZmYgLS1naXQgYS9zcmMvcGxheWxpc3QvUGxheWxpc3RNb2RlbC5jcHAgYi9zcmMvcGxheWxpc3Qv UGxheWxpc3RNb2RlbC5jcHAKK2luZGV4IGI0NjMwMGMuLmM2YWQ2MTYgMTAwNjQ0CistLS0gYS9z cmMvcGxheWxpc3QvUGxheWxpc3RNb2RlbC5jcHAKKysrKyBiL3NyYy9wbGF5bGlzdC9QbGF5bGlz dE1vZGVsLmNwcAorQEAgLTYxMCw2ICs2MTAsNyBAQCBQbGF5bGlzdDo6TW9kZWw6Om1ldGFkYXRh Q2hhbmdlZCggTWV0YTo6VHJhY2tQdHIgdHJhY2sgKQorICAgICAgICAgeworICAgICAgICAgICAg IGVtaXQgZGF0YUNoYW5nZWQoIGNyZWF0ZUluZGV4KCBpLCAwICksIGNyZWF0ZUluZGV4KCBpLCBj b2x1bW5Db3VudCgpIC0gMSApICk7CisgICAgICAgICAgICAgZW1pdCBtZXRhZGF0YVVwZGF0ZWQo KTsKKysgICAgICAgICAgICBkZWJ1ZygpPDwiTWV0YWRhdGEgdXBkYXRlZCBmb3IgdHJhY2siPDx0 cmFjay0+cHJldHR5TmFtZSgpOworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorICAg ICB9CitAQCAtNjIxLDEzICs2MjIsMTIgQEAgUGxheWxpc3Q6Ok1vZGVsOjptZXRhZGF0YUNoYW5n ZWQoIE1ldGE6OkFsYnVtUHRyIGFsYnVtICkKKyAgICAgTWV0YTo6VHJhY2tMaXN0IHRyYWNrcyA9 IGFsYnVtLT50cmFja3MoKTsKKyAgICAgZm9yZWFjaCggTWV0YTo6VHJhY2tQdHIgdHJhY2ssIHRy YWNrcyApCisgICAgICAgICBtZXRhZGF0YUNoYW5nZWQoIHRyYWNrICk7CisrICAgIGRlYnVnKCk8 PCJBbGJ1bSBtZXRhZGF0YSBjaGFuZ2VkIjsKKyB9CisgCisgYm9vbAorIFBsYXlsaXN0OjpNb2Rl bDo6ZXhwb3J0UGxheWxpc3QoIGNvbnN0IFFTdHJpbmcgJnBhdGggKSBjb25zdAorIHsKKy0gICAg REVCVUdfQkxPQ0sKKy0gICAgZGVidWcoKSA8PCAiV0FSTklORzogWW91IHNob3VsZG4ndCBzZWUg dGhpcyBhdCBhbnkgdGltZSBleGNlcHQgb24gZXhpdC4iOworICAgICByZXR1cm4gVGhlOjpwbGF5 bGlzdE1hbmFnZXIoKS0+ZXhwb3J0UGxheWxpc3QoIHRyYWNrcygpLCBwYXRoICk7CisgfQorIAor ZGlmZiAtLWdpdCBhL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9GaWx0ZXJQcm94eS5jcHAgYi9z cmMvcGxheWxpc3QvcHJveHltb2RlbHMvRmlsdGVyUHJveHkuY3BwCitpbmRleCAyMzQxYmU0Li41 MjU0MjM2IDEwMDY0NAorLS0tIGEvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL0ZpbHRlclByb3h5 LmNwcAorKysrIGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL0ZpbHRlclByb3h5LmNwcAorQEAg LTMyLDcgKzMyLDcgQEAgRmlsdGVyUHJveHk6OkZpbHRlclByb3h5KCBBYnN0cmFjdE1vZGVsICpi ZWxvd01vZGVsLCBRT2JqZWN0ICpwYXJlbnQgKQorICAgICBjb25uZWN0KCBzb3VyY2VNb2RlbCgp LCBTSUdOQUwoIHJlbW92ZWRJZHMoIGNvbnN0IFFMaXN0PHF1aW50NjQ+JiApICksIHRoaXMsIFNM T1QoIHNsb3RSZW1vdmVkSWRzKCBjb25zdCBRTGlzdDxxdWludDY0PiYgKSApICk7CisgICAgIGNv bm5lY3QoIHNvdXJjZU1vZGVsKCksIFNJR05BTCggYWN0aXZlVHJhY2tDaGFuZ2VkKCBjb25zdCBx dWludDY0ICkgKSwgdGhpcywgU0lHTkFMKCBhY3RpdmVUcmFja0NoYW5nZWQoIHF1aW50NjQgKSAp ICk7CisgICAgIGNvbm5lY3QoIHNvdXJjZU1vZGVsKCksIFNJR05BTCggbWV0YWRhdGFVcGRhdGVk KCkgKSwgdGhpcywgU0lHTkFMKCBtZXRhZGF0YVVwZGF0ZWQoKSApICk7CistICAgIGNvbm5lY3Qo IHRoaXMsIFNJR05BTCggbWV0YWRhdGFVcGRhdGVkKCkgKSwgdGhpcywgU0xPVCggaW52YWxpZGF0 ZSgpICkgKTsKKysgICAgY29ubmVjdCggdGhpcywgU0lHTkFMKCBtZXRhZGF0YVVwZGF0ZWQoKSAp LCB0aGlzLCBTTE9UKCBzbG90SW52YWxpZGF0ZUZpbHRlcigpICkgKTsKKyAKKyAgICAgS0NvbmZp Z0dyb3VwIGNvbmZpZyA9IEFtYXJvazo6Y29uZmlnKCJQbGF5bGlzdCBTZWFyY2giKTsKKyAgICAg bV9wYXNzVGhyb3VnaCA9ICFjb25maWcucmVhZEVudHJ5KCAiU2hvd09ubHlNYXRjaGVzIiwgdHJ1 ZSApOworZGlmZiAtLWdpdCBhL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9GaWx0ZXJQcm94eS5o IGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL0ZpbHRlclByb3h5LmgKK2luZGV4IDQ3ODc2YWQu LjY1ZWNlMDkgMTAwNjQ0CistLS0gYS9zcmMvcGxheWxpc3QvcHJveHltb2RlbHMvRmlsdGVyUHJv eHkuaAorKysrIGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL0ZpbHRlclByb3h5LmgKK0BAIC0x MjIsNiArMTIyLDEyIEBAIHByb3RlY3RlZCBzbG90czoKKyAgICAgICovCisgICAgIHZvaWQgc2xv dFJlbW92ZWRJZHMoIGNvbnN0IFFMaXN0PHF1aW50NjQ+ICZpZHMgKTsKKyAKKysgICAgLyoqCisr ICAgICAqIFNsb3QgdGhhdCB3cmFwcyBhcm91bmQgdGhlIG1ldGhvZCBpbnZhbGlkYXRlRmlsdGVy KCkgc28gb25lIGRvZXNuJ3QgdHJpZ2dlciB0aGUKKysgICAgICogc29ydGluZyBpbnZhbGlkYXRp b24gdG9vIGJ5IHVzaW5nIGludmFsaWRhdGUoKS4KKysgICAgICovCisrICAgIHZvaWQgc2xvdElu dmFsaWRhdGVGaWx0ZXIoKXsgaW52YWxpZGF0ZUZpbHRlcigpOyB9CisrCisgc2lnbmFsczoKKyAg ICAgLyoqCisgICAgICAqIFNpZ25hbCBmb3J3YXJkZWQgZnJvbSB0aGUgc291cmNlIG1vZGVsLgor ZGlmZiAtLWdpdCBhL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9Tb3J0UHJveHkuY3BwIGIvc3Jj L3BsYXlsaXN0L3Byb3h5bW9kZWxzL1NvcnRQcm94eS5jcHAKK2luZGV4IDQ2NjUzYzEuLmVmYmEy Y2QgMTAwNjQ0CistLS0gYS9zcmMvcGxheWxpc3QvcHJveHltb2RlbHMvU29ydFByb3h5LmNwcAor KysrIGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL1NvcnRQcm94eS5jcHAKK0BAIC0zNSw3ICsz NSw3IEBAIFNvcnRQcm94eTo6U29ydFByb3h5KCBBYnN0cmFjdE1vZGVsICpiZWxvd01vZGVsLCBR T2JqZWN0ICpwYXJlbnQgKQorICAgICBjb25uZWN0KCBzb3VyY2VNb2RlbCgpLCBTSUdOQUwoIHJl bW92ZWRJZHMoIGNvbnN0IFFMaXN0PHF1aW50NjQ+JiApICksIHRoaXMsIFNJR05BTCggcmVtb3Zl ZElkcyggY29uc3QgUUxpc3Q8IHF1aW50NjQgPiYgKSApICk7CisgICAgIGNvbm5lY3QoIHNvdXJj ZU1vZGVsKCksIFNJR05BTCggYWN0aXZlVHJhY2tDaGFuZ2VkKCBjb25zdCBxdWludDY0ICkgKSwg dGhpcywgU0lHTkFMKCBhY3RpdmVUcmFja0NoYW5nZWQoIHF1aW50NjQgKSApICk7CisgICAgIGNv bm5lY3QoIHNvdXJjZU1vZGVsKCksIFNJR05BTCggbWV0YWRhdGFVcGRhdGVkKCkgKSwgdGhpcywg U0lHTkFMKCBtZXRhZGF0YVVwZGF0ZWQoKSApICk7CistICAgIGNvbm5lY3QoIHRoaXMsIFNJR05B TCggbWV0YWRhdGFVcGRhdGVkKCkgKSwgdGhpcywgU0xPVCggaW52YWxpZGF0ZSgpICkgKTsKKysg ICAgY29ubmVjdCggdGhpcywgU0lHTkFMKCBtZXRhZGF0YVVwZGF0ZWQoKSApLCB0aGlzLCBTTE9U KCBpbnZhbGlkYXRlU29ydGluZygpICkgKTsKKyAKKyAgICAgLy9uZWVkZWQgYnkgR3JvdXBpbmdQ cm94eToKKyAgICAgY29ubmVjdCggc291cmNlTW9kZWwoKSwgU0lHTkFMKCBsYXlvdXRDaGFuZ2Vk KCkgKSwgdGhpcywgU0lHTkFMKCBsYXlvdXRDaGFuZ2VkKCkgKSApOworQEAgLTQ4LDYgKzQ4LDI3 IEBAIFNvcnRQcm94eTo6flNvcnRQcm94eSgpCisgdm9pZAorIFNvcnRQcm94eTo6aW52YWxpZGF0 ZVNvcnRpbmcoKQorIHsKKysgICAgaWYoIG1fc2NoZW1lLmxlbmd0aCgpICkKKysgICAgeworKyAg ICAgICAgaWYoICEoIG1fc2NoZW1lLmxldmVsKCBtX3NjaGVtZS5sZW5ndGgoKSAtIDEgKS5jYXRl Z29yeSgpID09IC0xICkgKSAvL2lmIGl0J3Mgbm90IHJhbmRvbQorKyAgICAgICAgeworKyAgICAg ICAgICAgIGludmFsaWRhdGUoKTsKKysgICAgICAgIH0KKysgICAgfQorKyAgICBlbHNlCisrICAg ICAgICBpbnZhbGlkYXRlKCk7CisrICAgIC8vRklYTUU6IHRoaXMgaXMgYSBiYW5kLWFpZCBzbyB0 aGF0IHRoZSBwbGF5bGlzdCBkb2Vzbid0IHJlc2h1ZmZsZSBldmVyeSB0aW1lIHRoZSBjdXJyZW50 IHRyYWNrIGNoYW5nZXMKKysgICAgLy8gSG93ZXZlciB0aGUgcmVhbCBpc3N1ZSBpcyBkZWVwZXIs IHRoZSBPYnNlcnZlciBzZWVtcyB0byBub3RpZnkgbWV0YWRhdGFDaGFuZ2VkKCkgZXZlbiBpZiB0 aGUgbWV0YWRhdGEKKysgICAgLy8gb2YgYSB0cmFjayBkb2Vzbid0IGNoYW5nZSBidXQganVzdCB0 aGUgY3VycmVudGx5IGFjdGl2ZSB0cmFjayBjaGFuZ2VzLCBhbmQgdGhpcyByZXN1bHRzIGluIHRo ZSBwbGF5bGlzdAorKyAgICAvLyBiZWluZyByZXNvcnRlZCBvbiBldmVyeSAibmV4dCIsICJwcmV2 aW91cyIgb3IgdHJhY2sgc2VsZWN0aW9uLiBUd2ljZS4gVGhpcyBpcyBhIEJhZCBUaGluZyAoVE0p IGFuZCB2ZXJ5CisrICAgIC8vIGluZWZmaWNpZW50LgorKyAgICAvLyBXZSdyZSBzaGlwcGluZyAy LjIgYXMgaXQgaXMsIGJlY2F1c2UgaXQncyB3YXkgdG9vIGxhdGUgdG8gZ28gcG9raW5nIGFyb3Vu ZCBPYnNlcnZlciwgYnV0IHRoaXMgbmVlZHMKKysgICAgLy8gdG8gYmUgc29sdmVkIEFTQVAgcG9z dC0yLjIuICAgICAgLS1Uw6lvIDIzLzkvMjAwOQorK30KKysKKyt2b2lkCisrU29ydFByb3h5Ojpy ZXNldFNvcnRpbmcoKQorK3sKKyAgICAgbV9zY2hlbWUgPSBTb3J0U2NoZW1lKCk7CisgICAgIHJl c2V0KCk7CisgfQorQEAgLTY0LDcgKzg1LDcgQEAgU29ydFByb3h5OjpsZXNzVGhhbiggY29uc3Qg UU1vZGVsSW5kZXggJiBsZWZ0LCBjb25zdCBRTW9kZWxJbmRleCAmIHJpZ2h0ICkgY29uc3QKKyB2 b2lkCisgU29ydFByb3h5Ojp1cGRhdGVTb3J0TWFwKCBTb3J0U2NoZW1lIHNjaGVtZSApCisgewor LSAgICBpbnZhbGlkYXRlU29ydGluZygpOworKyAgICByZXNldFNvcnRpbmcoKTsKKyAgICAgbV9z Y2hlbWUgPSBzY2hlbWU7CisgICAgIHNvcnQoIDAgKTsgIC8vMCBpcyBhIGR1bW15IGNvbHVtbgor ICAgICAvL0hBQ0s6IHNvcnQoKSBpbnZlcnRzIHRoZSBzb3J0T3JkZXIgb24gZWFjaCBjYWxsLCB0 aGlzIGtlZXBzIHRoZSBvcmRlciBhc2NlbmRpbmcuCitkaWZmIC0tZ2l0IGEvc3JjL3BsYXlsaXN0 L3Byb3h5bW9kZWxzL1NvcnRQcm94eS5oIGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL1NvcnRQ cm94eS5oCitpbmRleCBlYmM3NDVmLi4zNmNiNzA0IDEwMDY0NAorLS0tIGEvc3JjL3BsYXlsaXN0 L3Byb3h5bW9kZWxzL1NvcnRQcm94eS5oCisrKysgYi9zcmMvcGxheWxpc3QvcHJveHltb2RlbHMv U29ydFByb3h5LmgKK0BAIC02Myw3ICs2Myw3IEBAIHB1YmxpYyBzbG90czoKKyAgICAgLyoqCisg ICAgICAqIFJlc2V0cyB0aGUgcHJveHkgdG8gaXRzIG9yaWdpbmFsIHBhc3MtdGhyb3VnaCBzdGF0 ZS4KKyAgICAgICovCistICAgIHZvaWQgaW52YWxpZGF0ZVNvcnRpbmcoKTsKKysgICAgdm9pZCBy ZXNldFNvcnRpbmcoKTsKKyAKKyBwcm90ZWN0ZWQ6CisgICAgIC8qKgorQEAgLTgyLDYgKzgyLDEy IEBAIHByb3RlY3RlZDoKKyAgICAgICovCisgICAgIHZpcnR1YWwgaW50IHJvd1RvU291cmNlKCBp bnQgcm93ICkgY29uc3Q7CisgCisrcHJvdGVjdGVkIHNsb3RzOgorKyAgICAvKioKKysgICAgICog UmVhcHBsaWVzIHRoZSBjdXJyZW50IHNvcnRpbmcgc2NoZW1lLgorKyAgICAgKi8KKysgICAgdm9p ZCBpbnZhbGlkYXRlU29ydGluZygpOworKworIHByaXZhdGU6CisgICAgIFNvcnRTY2hlbWUgbV9z Y2hlbWU7ICAgICAgICAgICAgICAgLy8hIFRoZSBjdXJyZW50IHNvcnRpbmcgc2NoZW1lLgorIH07 CitkaWZmIC0tZ2l0IGEvc3JjL3NlcnZpY2VzL21wM3R1bmVzL2FtYXJva19zZXJ2aWNlX21wM3R1 bmVzLmRlc2t0b3AgYi9zcmMvc2VydmljZXMvbXAzdHVuZXMvYW1hcm9rX3NlcnZpY2VfbXAzdHVu ZXMuZGVza3RvcAoraW5kZXggZDJiM2E3OS4uOGIwOTM3ZCAxMDA2NDQKKy0tLSBhL3NyYy9zZXJ2 aWNlcy9tcDN0dW5lcy9hbWFyb2tfc2VydmljZV9tcDN0dW5lcy5kZXNrdG9wCisrKysgYi9zcmMv c2VydmljZXMvbXAzdHVuZXMvYW1hcm9rX3NlcnZpY2VfbXAzdHVuZXMuZGVza3RvcAorQEAgLTcw LDcgKzcwLDcgQEAgQ29tbWVudFtwbF09UHJ6ZWdsxIVkYWogaSBzxYJ1Y2hhaiBtdXp5a2kgcHJ6 ZWNob3d5d2FuZWogbmEgdHdvaW0ga29uY2llIE1wM3R1bmUKKyBDb21tZW50W3B0XT1OYXZlZ2Fy IGUgZXNjdXRhciBhIG3DunNpY2EgZ3JhdmFkYSBuYSBzdWEgY29udGEgZG8gbXAzdHVuZXMKKyBD b21tZW50W3B0X0JSXT1OYXZlZ3VlIGUgZXNjdXRlIGFzIG3DunNpY2FzIGFybWF6ZW5hZGFzIG5h IHN1YSBjb250YSBkbyBtcDN0dW5lcworIENvbW1lbnRbcm9dPVLEg3Nmb2nIm2kgyJlpIGFzY3Vs dGHIm2kgbXV6aWNhIHN0b2NhdMSDIMOubiBjb250dWwgZHVtbmVhdm9hc3RyxIMgbXAzdHVuZXMK Ky1Db21tZW50W3J1XT3QntCx0LfQvtGAINC4INC/0YDQvtGB0LvRg9GI0LjQstCw0L3QuNC1INC8 0YPQt9GL0LrQuCwg0YHQvtGF0YDQsNC90LXQvdC90L7QuSDQsiDQsNC60LrQsNGD0L3RgtC1IE1w M3R1bmVzCisrQ29tbWVudFtydV090J7QsdC30L7RgCDQuCDQv9GA0L7RgdC70YPRiNC40LLQsNC9 0LjQtSDQvNGD0LfRi9C60LgsINGB0L7RhdGA0LDQvdC10L3QvdC+0Lkg0LIg0YPRh9GR0YLQvdC+ 0Lkg0LfQsNC/0LjRgdC4IE1wM3R1bmVzCisgQ29tbWVudFtzbF09QnJza2FqdGUgcG8gZ2xhc2Jp LCBraSBqbyBpbWF0ZSBzaHJhbmplbm8gbmEgc3ZvamVtIHJhxI11bnUgTVAzdHVuZXMsIGluIGpv IHBvc2x1xaFhanRlCisgQ29tbWVudFtzcl090J/RgNC10LPQu9C10LTQsNGY0YLQtSDQuCDRgdC7 0YPRiNCw0ZjRgtC1INC80YPQt9C40LrRgyDRgdCwINGB0LLQvtCzINC90LDQu9C+0LPQsCDQvdCw INCc0J8z4oCR0YLRmNGD0L3RgdGDCisgQ29tbWVudFtzckBsYXRpbl09UHJlZ2xlZGFqdGUgaSBz bHXFoWFqdGUgbXV6aWt1IHNhIHN2b2cgbmFsb2dhIG5hIE1QM1R1bmVzdQorZGlmZiAtLWdpdCBh L3NyYy9zZXJ2aWNlcy9vcG1sZGlyZWN0b3J5L2FtYXJva19zZXJ2aWNlX29wbWxkaXJlY3Rvcnku ZGVza3RvcCBiL3NyYy9zZXJ2aWNlcy9vcG1sZGlyZWN0b3J5L2FtYXJva19zZXJ2aWNlX29wbWxk aXJlY3RvcnkuZGVza3RvcAoraW5kZXggZjgyMWUxNy4uMDNjMDhjOCAxMDA2NDQKKy0tLSBhL3Ny Yy9zZXJ2aWNlcy9vcG1sZGlyZWN0b3J5L2FtYXJva19zZXJ2aWNlX29wbWxkaXJlY3RvcnkuZGVz a3RvcAorKysrIGIvc3JjL3NlcnZpY2VzL29wbWxkaXJlY3RvcnkvYW1hcm9rX3NlcnZpY2Vfb3Bt bGRpcmVjdG9yeS5kZXNrdG9wCitAQCAtMjcsNyArMjcsNyBAQCBOYW1lW3BsXT1LYXRhbG9nIHBv ZGNhc3TDs3cKKyBOYW1lW3B0XT1QYXN0YSBkZSAnUG9kY2FzdHMnCisgTmFtZVtwdF9CUl09UG9k Y2FzdCBEaXJlY3RvcnkKKyBOYW1lW3JvXT1EaXJlY3RvciBQb2RjYXN0CistTmFtZVtydV090JrQ sNGC0LDQu9C+0LMg0LTQu9GPIHBvZGNhc3Qn0L7QsgorK05hbWVbcnVdPdCa0LDRgtCw0LvQvtCz INC/0L7QtNC60LDRgdGC0L7QsgorIE5hbWVbc2xdPUltZW5payBwb2RjYXN0b3YKKyBOYW1lW3Ny XT3QpNCw0YHRhtC40LrQu9CwINC/0L7QtNC10LzQuNGB0LjRmNCwCisgTmFtZVtzckBsYXRpbl09 RmFzY2lrbGEgcG9kZW1pc2lqYQorQEAgLTY5LDcgKzY5LDcgQEAgQ29tbWVudFtwbF09UHJ6ZWds xIVkYWogaSB6YXBpc3ogc2nEmSBkbyBvZ3JvbW5laiBsaXN0eSBwb2RjYXN0w7N3CisgQ29tbWVu dFtwdF09TmF2ZWdhciBlIGluc2NyZXZlciBudW1hIGVub3JtZSBsaXN0YSBkZSAncG9kY2FzdHMn CisgQ29tbWVudFtwdF9CUl09TmF2ZWd1ZSBlIGluc2Nyw6p2YS1zZSDDoCB1bWEgbGlzdGEgZW5v cm1lIGRlIHBvZGNhc3RzCisgQ29tbWVudFtyb109UsSDc2ZvacibaSDImWkgYWJvbmHIm2ktdsSD IGxhIG8gbGlzdMSDIHVyaWHImcSDIGRlIHBvZGNhc3R1cmkKKy1Db21tZW50W3J1XT3QntCx0LfQ vtGAINC4INC/0L7QtNC/0LjRgdC60LAg0L3QsCDQvtCz0YDQvtC80L3Ri9C5INGB0L/QuNGB0L7Q uiBwb2RjYXN0J9C+0LIKKytDb21tZW50W3J1XT3QntCx0LfQvtGAINC4INC/0L7QtNC/0LjRgdC6 0LAg0L3QsCDQvtCz0YDQvtC80L3Ri9C5INGB0L/QuNGB0L7QuiDQv9C+0LTQutCw0YHRgtC+0LIK KyBDb21tZW50W3NsXT1CcnNrYWp0ZSBwbyBvYnNlxb5uaSB6Ymlya2kgcG9kY2FzdG92IGluIHNl IG5hcm/EjWl0ZSBuYW5qZQorIENvbW1lbnRbc3JdPdCf0YDQtdCz0LvQtdC00LDRmNGC0LUg0Lgg 0L/RgNC10YLQv9C70LDRgtC40YLQtSDRgdC1INC90LAg0L7Qs9GA0L7QvNC90YMg0LvQuNGB0YLR gyDQv9C+0LTQtdC80LjRgdC40ZjQsAorIENvbW1lbnRbc3JAbGF0aW5dPVByZWdsZWRhanRlIGkg cHJldHBsYXRpdGUgc2UgbmEgb2dyb21udSBsaXN0dSBwb2RlbWlzaWphCg==