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: Martin Stransky To: git-commits@fedoraproject.org Subject: [rpms/firefox] f45: Merge branch 'rawhide' into f45 Date: Thu, 10 Sep 2026 09:33:56 GMT Message-ID: <178903283604.1.17404772709035432408.rpms-firefox-1fe3adbd80c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/firefox X-Git-Branch: f45 X-Git-Rev: 1fe3adbd80c36c6646a1a421cdf83e27217ffe3d QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZmlyZWZveApCcmFu Y2ggOiBmNDUKQ29tbWl0IDogMWZlM2FkYmQ4MGMzNmM2NjQ2YTFhNDIxY2RmODNlMjcyMTdmZmUz ZApBdXRob3IgOiBNYXJ0aW4gU3RyYW5za3kgPHN0cmFuc2t5QHJlZGhhdC5jb20+CkRhdGUgICA6 IDIwMjYtMDktMTBUMTE6MzM6MDkrMDI6MDAKU3RhdHMgIDogKzIwNy8tMjgxIGluIDcgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2ZpcmVmb3gvYy8x ZmUzYWRiZDgwYzM2YzY2NDZhMWE0MjFjZGY4M2UyNzIxN2ZmZTNkP2JyYW5jaD1mNDUKCkxvZzoK TWVyZ2UgYnJhbmNoICdyYXdoaWRlJyBpbnRvIGY0NQoKLS0tCmRpZmYgLS1naXQgYS9EMzE4MTkx LjE3ODczODgxNDEuZGlmZiBiL0QzMTgxOTEuMTc4NzM4ODE0MS5kaWZmCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBjM2E0M2UzLi4wMDAwMDAwCi0tLSBhL0QzMTgxOTEuMTc4NzM4ODE0 MS5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMjczICswLDAgQEAKLWRpZmYgLXVwIGZpcmVmb3gt MTU1LjAvZ2Z4L2dsL2d0ZXN0L21vei5idWlsZC5EMzE4MTkxIGZpcmVmb3gtMTU1LjAvZ2Z4L2ds L2d0ZXN0L21vei5idWlsZAotLS0tIGZpcmVmb3gtMTU1LjAvZ2Z4L2dsL2d0ZXN0L21vei5idWls ZC5EMzE4MTkxCTIwMjYtMDgtMjYgMjM6MTE6NDEuMDAwMDAwMDAwICswMjAwCi0rKysgZmlyZWZv eC0xNTUuMC9nZngvZ2wvZ3Rlc3QvbW96LmJ1aWxkCTIwMjYtMDgtMjcgMTE6MjQ6MTkuNDAyNTgw ODU5ICswMjAwCi1AQCAtNiw4ICs2LDE1IEBAIExPQ0FMX0lOQ0xVREVTICs9IFsKLSAgICAgIi9n ZngvZ2wiLAotIF0KLSAKLStpbmNsdWRlKCIvaXBjL2Nocm9taXVtL2Nocm9taXVtLWNvbmZpZy5t b3pidWlsZCIpCi0rCi0gVU5JRklFRF9TT1VSQ0VTICs9IFsKLSAgICAgIlRlc3RDb2xvcnNwYWNl cy5jcHAiLAotIF0KLSAKLStpZiBDT05GSUdbIk1PWl9XSURHRVRfVE9PTEtJVCJdID09ICJndGsi OgotKyAgICBVTklGSUVEX1NPVVJDRVMgKz0gWwotKyAgICAgICAgIlRlc3RNb3pGcmFtZWJ1ZmZl ci5jcHAiLAotKyAgICBdCi0rCi0gRklOQUxfTElCUkFSWSA9ICJ4dWwtZ3Rlc3QiCi1kaWZmIC11 cCBmaXJlZm94LTE1NS4wL2dmeC9nbC9ndGVzdC9UZXN0TW96RnJhbWVidWZmZXIuY3BwLkQzMTgx OTEgZmlyZWZveC0xNTUuMC9nZngvZ2wvZ3Rlc3QvVGVzdE1vekZyYW1lYnVmZmVyLmNwcAotLS0t IGZpcmVmb3gtMTU1LjAvZ2Z4L2dsL2d0ZXN0L1Rlc3RNb3pGcmFtZWJ1ZmZlci5jcHAuRDMxODE5 MQkyMDI2LTA4LTI3IDExOjI0OjE5LjQwMjcxODkwNyArMDIwMAotKysrIGZpcmVmb3gtMTU1LjAv Z2Z4L2dsL2d0ZXN0L1Rlc3RNb3pGcmFtZWJ1ZmZlci5jcHAJMjAyNi0wOC0yNyAxMToyNDoxOS40 MDI3MTg5MDcgKzAyMDAKLUBAIC0wLDAgKzEsODIgQEAKLSsvKiBUaGlzIFNvdXJjZSBDb2RlIEZv cm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEgUHVibGljCi0rICogTGlj ZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdp dGggdGhpcwotKyAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5v cmcvTVBMLzIuMC8uICovCi0rCi0rI2luY2x1ZGUgIkdMQ29udGV4dC5oIgotKyNpbmNsdWRlICJH TENvbnRleHRQcm92aWRlci5oIgotKyNpbmNsdWRlICJNb3pGcmFtZWJ1ZmZlci5oIgotKyNpbmNs dWRlICJTY29wZWRHTEhlbHBlcnMuaCIKLSsjaW5jbHVkZSAiZ2Z4UGxhdGZvcm0uaCIKLSsjaW5j bHVkZSAiZ3Rlc3QvZ3Rlc3QuaCIKLSsKLStuYW1lc3BhY2UgbW96aWxsYTo6Z2wgewotKwotK3N0 YXRpYyBhbHJlYWR5X0FkZFJlZmVkPEdMQ29udGV4dD4gQ3JlYXRlVGVzdENvbnRleHQoCi0rICAg IG5zQUNTdHJpbmcqIGNvbnN0IGFGYWlsdXJlSWQpIHsKLSsgIHJldHVybiBHTENvbnRleHRQcm92 aWRlcjo6Q3JlYXRlSGVhZGxlc3Moe30sIGFGYWlsdXJlSWQpOwotK30KLSsKLStURVNUKE1vekZy YW1lYnVmZmVyLCBPd25lZENvbG9yQmFja2luZ0lzRGVsZXRlZFdpdGhGcmFtZWJ1ZmZlcikKLSt7 Ci0rICBnZnhQbGF0Zm9ybTo6R2V0UGxhdGZvcm0oKTsKLSsKLSsgIG5zQ1N0cmluZyBmYWlsdXJl SWQ7Ci0rICBSZWZQdHI8R0xDb250ZXh0PiBnbCA9IENyZWF0ZVRlc3RDb250ZXh0KCZmYWlsdXJl SWQpOwotKyAgQVNTRVJUX1RSVUUoZ2wpCi0rICA8PCBmYWlsdXJlSWQuZ2V0KCk7Ci0rICBBU1NF UlRfVFJVRShnbC0+TWFrZUN1cnJlbnQoKSk7Ci0rCi0rICBjb25zdCBnZng6OkludFNpemUgc2l6 ZSgxNiwgMTYpOwotKyAgR0x1aW50IHRleHR1cmUgPSBnbC0+Q3JlYXRlVGV4dHVyZSgpOwotKyAg ewotKyAgICBjb25zdCBTY29wZWRCaW5kVGV4dHVyZSBiaW5kVGV4dHVyZShnbCwgdGV4dHVyZSk7 Ci0rICAgIGdsLT5UZXhQYXJhbXNfU2V0Q2xhbXBOb01pcHMoTE9DQUxfR0xfVEVYVFVSRV8yRCk7 Ci0rICAgIGdsLT5mVGV4SW1hZ2UyRChMT0NBTF9HTF9URVhUVVJFXzJELCAwLCBMT0NBTF9HTF9S R0JBLCBzaXplLndpZHRoLAotKyAgICAgICAgICAgICAgICAgICAgc2l6ZS5oZWlnaHQsIDAsIExP Q0FMX0dMX1JHQkEsIExPQ0FMX0dMX1VOU0lHTkVEX0JZVEUsCi0rICAgICAgICAgICAgICAgICAg ICBudWxscHRyKTsKLSsgIH0KLSsgIEFTU0VSVF9UUlVFKGdsLT5mSXNUZXh0dXJlKHRleHR1cmUp KTsKLSsKLSsgIHsKLSsgICAgYXV0byBmcmFtZWJ1ZmZlciA9IE1vekZyYW1lYnVmZmVyOjpDcmVh dGVGb3JCYWNraW5nKAotKyAgICAgICAgZ2wsIHNpemUsIDAsIGZhbHNlLCBmYWxzZSwgTE9DQUxf R0xfVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0rICAgIEFTU0VSVF9UUlVFKGZyYW1lYnVmZmVyKTsK LSsgIH0KLSsKLSsgIEVYUEVDVF9GQUxTRShnbC0+ZklzVGV4dHVyZSh0ZXh0dXJlKSk7Ci0rfQot KwotK1RFU1QoTW96RnJhbWVidWZmZXIsIEJvcnJvd2VkQ29sb3JCYWNraW5nU3Vydml2ZXNGcmFt ZWJ1ZmZlckRlc3RydWN0aW9uKQotK3sKLSsgIGdmeFBsYXRmb3JtOjpHZXRQbGF0Zm9ybSgpOwot KwotKyAgbnNDU3RyaW5nIGZhaWx1cmVJZDsKLSsgIFJlZlB0cjxHTENvbnRleHQ+IGdsID0gQ3Jl YXRlVGVzdENvbnRleHQoJmZhaWx1cmVJZCk7Ci0rICBBU1NFUlRfVFJVRShnbCkKLSsgIDw8IGZh aWx1cmVJZC5nZXQoKTsKLSsgIEFTU0VSVF9UUlVFKGdsLT5NYWtlQ3VycmVudCgpKTsKLSsKLSsg IGNvbnN0IGdmeDo6SW50U2l6ZSBzaXplKDE2LCAxNik7Ci0rICBHTHVpbnQgdGV4dHVyZSA9IGds LT5DcmVhdGVUZXh0dXJlKCk7Ci0rICB7Ci0rICAgIGNvbnN0IFNjb3BlZEJpbmRUZXh0dXJlIGJp bmRUZXh0dXJlKGdsLCB0ZXh0dXJlKTsKLSsgICAgZ2wtPlRleFBhcmFtc19TZXRDbGFtcE5vTWlw cyhMT0NBTF9HTF9URVhUVVJFXzJEKTsKLSsgICAgZ2wtPmZUZXhJbWFnZTJEKExPQ0FMX0dMX1RF WFRVUkVfMkQsIDAsIExPQ0FMX0dMX1JHQkEsIHNpemUud2lkdGgsCi0rICAgICAgICAgICAgICAg ICAgICBzaXplLmhlaWdodCwgMCwgTE9DQUxfR0xfUkdCQSwgTE9DQUxfR0xfVU5TSUdORURfQllU RSwKLSsgICAgICAgICAgICAgICAgICAgIG51bGxwdHIpOwotKyAgfQotKyAgQVNTRVJUX1RSVUUo Z2wtPmZJc1RleHR1cmUodGV4dHVyZSkpOwotKwotKyAgewotKyAgICBhdXRvIGZyYW1lYnVmZmVy ID0gTW96RnJhbWVidWZmZXI6OkNyZWF0ZUZvckJhY2tpbmcoCi0rICAgICAgICBnbCwgc2l6ZSwg MCwgZmFsc2UsIGZhbHNlLCBMT0NBTF9HTF9URVhUVVJFXzJELCB0ZXh0dXJlLAotKyAgICAgICAg TW96RnJhbWVidWZmZXI6OkNvbG9yQmFja2luZ093bmVyc2hpcDo6Qm9ycm93ZWQpOwotKyAgICBB U1NFUlRfVFJVRShmcmFtZWJ1ZmZlcik7Ci0rICAgIEVYUEVDVF9FUShmcmFtZWJ1ZmZlci0+Q29s b3JUZXgoKSwgdGV4dHVyZSk7Ci0rICB9Ci0rCi0rICBFWFBFQ1RfVFJVRShnbC0+ZklzVGV4dHVy ZSh0ZXh0dXJlKSk7Ci0rICBnbC0+RGVsZXRlVGV4dHVyZSh0ZXh0dXJlKTsKLSt9Ci0rCi0rfSAg Ly8gbmFtZXNwYWNlIG1vemlsbGE6OmdsCi1kaWZmIC11cCBmaXJlZm94LTE1NS4wL2dmeC9nbC9N b3pGcmFtZWJ1ZmZlci5jcHAuRDMxODE5MSBmaXJlZm94LTE1NS4wL2dmeC9nbC9Nb3pGcmFtZWJ1 ZmZlci5jcHAKLS0tLSBmaXJlZm94LTE1NS4wL2dmeC9nbC9Nb3pGcmFtZWJ1ZmZlci5jcHAuRDMx ODE5MQkyMDI2LTA4LTI2IDIzOjExOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIGZpcmVmb3gtMTU1 LjAvZ2Z4L2dsL01vekZyYW1lYnVmZmVyLmNwcAkyMDI2LTA4LTI3IDExOjI5OjA4Ljg5MTAwNTUx MCArMDIwMAotQEAgLTY5LDM3ICs2OSw0MSBAQCBVbmlxdWVQdHI8TW96RnJhbWVidWZmZXI+IE1v ekZyYW1lYnVmZmVyCi0gICAgICAgICAgICAgICAgICAgICAoZGVwdGggfHwgc3RlbmNpbCkgPyBE ZXB0aEFuZFN0ZW5jaWxCdWZmZXI6OkNyZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnbCwgc2l6ZSwgc2FtcGxlcywgZGVwdGgsIHN0ZW5jaWwpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxscHRyLAotLSAgICAg ICAgICAgICAgICAgICAgY29sb3JUYXJnZXQsIGNvbG9yTmFtZSk7Ci0rICAgICAgICAgICAgICAg ICAgICBjb2xvclRhcmdldCwgY29sb3JOYW1lLAotKyAgICAgICAgICAgICAgICAgICAgQ29sb3JC YWNraW5nT3duZXJzaGlwOjpPd25lZCk7Ci0gfQotIAotIFVuaXF1ZVB0cjxNb3pGcmFtZWJ1ZmZl cj4gTW96RnJhbWVidWZmZXI6OkNyZWF0ZUZvckJhY2tpbmcoCi0gICAgIEdMQ29udGV4dCogY29u c3QgZ2wsIGNvbnN0IGdmeDo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgdWludDMyX3Qgc2FtcGxlcywK LSAgICAgYm9vbCBkZXB0aCwgYm9vbCBzdGVuY2lsLCBjb25zdCBHTGVudW0gY29sb3JUYXJnZXQs Ci0tICAgIGNvbnN0IEdMdWludCBjb2xvck5hbWUpIHsKLSsgICAgY29uc3QgR0x1aW50IGNvbG9y TmFtZSwKLSsgICAgQ29sb3JCYWNraW5nT3duZXJzaGlwIGNvbG9yQmFja2luZ093bmVyc2hpcCkg ewotICAgcmV0dXJuIENyZWF0ZUltcGwoZ2wsIHNpemUsIHNhbXBsZXMsCi0gICAgICAgICAgICAg ICAgICAgICAoZGVwdGggfHwgc3RlbmNpbCkgPyBEZXB0aEFuZFN0ZW5jaWxCdWZmZXI6OkNyZWF0 ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbCwgc2l6 ZSwgc2FtcGxlcywgZGVwdGgsIHN0ZW5jaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBudWxscHRyLAotLSAgICAgICAgICAgICAgICAgICAgY29sb3JUYXJnZXQs IGNvbG9yTmFtZSk7Ci0rICAgICAgICAgICAgICAgICAgICBjb2xvclRhcmdldCwgY29sb3JOYW1l LCBjb2xvckJhY2tpbmdPd25lcnNoaXApOwotIH0KLSAKLSAvKiBzdGF0aWMgKi8gVW5pcXVlUHRy PE1vekZyYW1lYnVmZmVyPgotIE1vekZyYW1lYnVmZmVyOjpDcmVhdGVGb3JCYWNraW5nV2l0aFNo YXJlZERlcHRoQW5kU3RlbmNpbCgKLSAgICAgY29uc3QgZ2Z4OjpJbnRTaXplJiBzaXplLCBjb25z dCB1aW50MzJfdCBzYW1wbGVzLCBHTGVudW0gY29sb3JUYXJnZXQsCi0gICAgIEdMdWludCBjb2xv ck5hbWUsCi0tICAgIGNvbnN0IFJlZlB0cjxEZXB0aEFuZFN0ZW5jaWxCdWZmZXI+JiBkZXB0aEFu ZFN0ZW5jaWxCdWZmZXIpIHsKLSsgICAgY29uc3QgUmVmUHRyPERlcHRoQW5kU3RlbmNpbEJ1ZmZl cj4mIGRlcHRoQW5kU3RlbmNpbEJ1ZmZlciwKLSsgICAgQ29sb3JCYWNraW5nT3duZXJzaGlwIGNv bG9yQmFja2luZ093bmVyc2hpcCkgewotICAgYXV0byBnbCA9IGRlcHRoQW5kU3RlbmNpbEJ1ZmZl ci0+Z2woKTsKLSAgIGlmICghZ2wgfHwgIWdsLT5NYWtlQ3VycmVudCgpKSB7Ci0gICAgIHJldHVy biBudWxscHRyOwotICAgfQotICAgcmV0dXJuIENyZWF0ZUltcGwoZ2wsIHNpemUsIHNhbXBsZXMs IGRlcHRoQW5kU3RlbmNpbEJ1ZmZlciwgY29sb3JUYXJnZXQsCi0tICAgICAgICAgICAgICAgICAg ICBjb2xvck5hbWUpOwotKyAgICAgICAgICAgICAgICAgICAgY29sb3JOYW1lLCBjb2xvckJhY2tp bmdPd25lcnNoaXApOwotIH0KLSAKLSAvKiBzdGF0aWMgKi8gVW5pcXVlUHRyPE1vekZyYW1lYnVm ZmVyPiBNb3pGcmFtZWJ1ZmZlcjo6Q3JlYXRlSW1wbCgKLSAgICAgR0xDb250ZXh0KiBjb25zdCBn bCwgY29uc3QgZ2Z4OjpJbnRTaXplJiBzaXplLCBjb25zdCB1aW50MzJfdCBzYW1wbGVzLAotICAg ICBjb25zdCBSZWZQdHI8RGVwdGhBbmRTdGVuY2lsQnVmZmVyPiYgZGVwdGhBbmRTdGVuY2lsQnVm ZmVyLAotLSAgICBjb25zdCBHTGVudW0gY29sb3JUYXJnZXQsIGNvbnN0IEdMdWludCBjb2xvck5h bWUpIHsKLSsgICAgY29uc3QgR0xlbnVtIGNvbG9yVGFyZ2V0LCBjb25zdCBHTHVpbnQgY29sb3JO YW1lLAotKyAgICBDb2xvckJhY2tpbmdPd25lcnNoaXAgY29sb3JCYWNraW5nT3duZXJzaGlwKSB7 Ci0gICBHTHVpbnQgZmIgPSBnbC0+Q3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgIGNvbnN0IFNjb3Bl ZEJpbmRGcmFtZWJ1ZmZlciBiaW5kRkIoZ2wsIGZiKTsKLSAKLUBAIC0xMzcsNyArMTQxLDggQEAg TW96RnJhbWVidWZmZXI6OkNyZWF0ZUZvckJhY2tpbmdXaXRoU2hhcgotICAgfQotIAotICAgcmV0 dXJuIFVuaXF1ZVB0cjxNb3pGcmFtZWJ1ZmZlcj4obmV3IE1vekZyYW1lYnVmZmVyKAotLSAgICAg IGdsLCBzaXplLCBmYiwgc2FtcGxlcywgZGVwdGhBbmRTdGVuY2lsQnVmZmVyLCBjb2xvclRhcmdl dCwgY29sb3JOYW1lKSk7Ci0rICAgICAgZ2wsIHNpemUsIGZiLCBzYW1wbGVzLCBkZXB0aEFuZFN0 ZW5jaWxCdWZmZXIsIGNvbG9yVGFyZ2V0LCBjb2xvck5hbWUsCi0rICAgICAgY29sb3JCYWNraW5n T3duZXJzaGlwKSk7Ci0gfQotIAotIC8qIHN0YXRpYyAqLyBSZWZQdHI8RGVwdGhBbmRTdGVuY2ls QnVmZmVyPiBEZXB0aEFuZFN0ZW5jaWxCdWZmZXI6OkNyZWF0ZSgKLUBAIC0xODcsMTQgKzE5Miwx NiBAQCBNb3pGcmFtZWJ1ZmZlcjo6Q3JlYXRlRm9yQmFja2luZ1dpdGhTaGFyCi0gTW96RnJhbWVi dWZmZXI6Ok1vekZyYW1lYnVmZmVyKAotICAgICBHTENvbnRleHQqIGNvbnN0IGdsLCBjb25zdCBn Zng6OkludFNpemUmIHNpemUsIEdMdWludCBmYiwKLSAgICAgY29uc3QgdWludDMyX3Qgc2FtcGxl cywgUmVmUHRyPERlcHRoQW5kU3RlbmNpbEJ1ZmZlcj4gZGVwdGhBbmRTdGVuY2lsQnVmZmVyLAot LSAgICBjb25zdCBHTGVudW0gY29sb3JUYXJnZXQsIGNvbnN0IEdMdWludCBjb2xvck5hbWUpCi0r ICAgIGNvbnN0IEdMZW51bSBjb2xvclRhcmdldCwgY29uc3QgR0x1aW50IGNvbG9yTmFtZSwKLSsg ICAgQ29sb3JCYWNraW5nT3duZXJzaGlwIGNvbG9yQmFja2luZ093bmVyc2hpcCkKLSAgICAgOiBt V2Vha0dMKGdsKSwKLSAgICAgICBtU2l6ZShzaXplKSwKLSAgICAgICBtU2FtcGxlcyhzYW1wbGVz KSwKLSAgICAgICBtRkIoZmIpLAotICAgICAgIG1Db2xvclRhcmdldChjb2xvclRhcmdldCksCi0g ICAgICAgbURlcHRoQW5kU3RlbmNpbEJ1ZmZlcihzdGQ6Om1vdmUoZGVwdGhBbmRTdGVuY2lsQnVm ZmVyKSksCi0tICAgICAgbUNvbG9yTmFtZShjb2xvck5hbWUpIHsKLSsgICAgICBtQ29sb3JOYW1l KGNvbG9yTmFtZSksCi0rICAgICAgbUNvbG9yQmFja2luZ093bmVyc2hpcChjb2xvckJhY2tpbmdP d25lcnNoaXApIHsKLSAgIE1PWl9BU1NFUlQobUNvbG9yVGFyZ2V0KTsKLSAgIE1PWl9BU1NFUlQo bUNvbG9yTmFtZSk7Ci0gfQotQEAgLTIwNyw3ICsyMTQsOSBAQCBNb3pGcmFtZWJ1ZmZlcjo6fk1v ekZyYW1lYnVmZmVyKCkgewotIAotICAgZ2wtPkRlbGV0ZUZyYW1lYnVmZmVyKG1GQik7Ci0gCi0t ICBEZWxldGVCeVRhcmdldChnbCwgbUNvbG9yVGFyZ2V0LCBtQ29sb3JOYW1lKTsKLSsgIGlmICht Q29sb3JCYWNraW5nT3duZXJzaGlwID09IENvbG9yQmFja2luZ093bmVyc2hpcDo6T3duZWQpIHsK LSsgICAgRGVsZXRlQnlUYXJnZXQoZ2wsIG1Db2xvclRhcmdldCwgbUNvbG9yTmFtZSk7Ci0rICB9 Ci0gfQotIAotIGJvb2wgTW96RnJhbWVidWZmZXI6Okhhc0RlcHRoKCkgY29uc3QgewotZGlmZiAt dXAgZmlyZWZveC0xNTUuMC9nZngvZ2wvTW96RnJhbWVidWZmZXIuaC5EMzE4MTkxIGZpcmVmb3gt MTU1LjAvZ2Z4L2dsL01vekZyYW1lYnVmZmVyLmgKLS0tLSBmaXJlZm94LTE1NS4wL2dmeC9nbC9N b3pGcmFtZWJ1ZmZlci5oLkQzMTgxOTEJMjAyNi0wOC0yNiAyMzoxMTo0MS4wMDAwMDAwMDAgKzAy MDAKLSsrKyBmaXJlZm94LTE1NS4wL2dmeC9nbC9Nb3pGcmFtZWJ1ZmZlci5oCTIwMjYtMDgtMjcg MTE6MjY6NTEuMTI0NTQ2MTY2ICswMjAwCi1AQCAtNDMsNyArNDMsMTMgQEAgY2xhc3MgRGVwdGhB bmRTdGVuY2lsQnVmZmVyIGZpbmFsIDogcHVibAotIH07Ci0gCi0gY2xhc3MgTW96RnJhbWVidWZm ZXIgZmluYWwgewotKyBwdWJsaWM6Ci0rICAvLyBBIGJvcnJvd2VkIGNvbG9yIGJhY2tpbmcgbXVz dCBvdXRsaXZlIHRoZSBNb3pGcmFtZWJ1ZmZlciB0aGF0IHdyYXBzIGl0LgotKyAgZW51bSBjbGFz cyBDb2xvckJhY2tpbmdPd25lcnNoaXAgeyBPd25lZCwgQm9ycm93ZWQgfTsKLSsKLSsgcHJpdmF0 ZToKLSAgIGNvbnN0IFdlYWtQdHI8R0xDb250ZXh0PiBtV2Vha0dMOwotKyAgY29uc3QgQ29sb3JC YWNraW5nT3duZXJzaGlwIG1Db2xvckJhY2tpbmdPd25lcnNoaXA7Ci0gCi0gIHB1YmxpYzoKLSAg IGNvbnN0IGdmeDo6SW50U2l6ZSBtU2l6ZTsKLUBAIC02Niw3ICs3Miw5IEBAIGNsYXNzIE1vekZy YW1lYnVmZmVyIGZpbmFsIHsKLSAgIC8vIEFzc3VtZXMgdGhhdCBnbCBpcyB0aGUgY3VycmVudCBj b250ZXh0LgotICAgc3RhdGljIFVuaXF1ZVB0cjxNb3pGcmFtZWJ1ZmZlcj4gQ3JlYXRlRm9yQmFj a2luZygKLSAgICAgICBHTENvbnRleHQqIGdsLCBjb25zdCBnZng6OkludFNpemUmIHNpemUsIHVp bnQzMl90IHNhbXBsZXMsIGJvb2wgZGVwdGgsCi0tICAgICAgYm9vbCBzdGVuY2lsLCBHTGVudW0g Y29sb3JUYXJnZXQsIEdMdWludCBjb2xvck5hbWUpOwotKyAgICAgIGJvb2wgc3RlbmNpbCwgR0xl bnVtIGNvbG9yVGFyZ2V0LCBHTHVpbnQgY29sb3JOYW1lLAotKyAgICAgIENvbG9yQmFja2luZ093 bmVyc2hpcCBjb2xvckJhY2tpbmdPd25lcnNoaXAgPQotKyAgICAgIENvbG9yQmFja2luZ093bmVy c2hpcDo6T3duZWQpOwotIAotICAgLy8gQ3JlYXRlIGEgbmV3IGZyYW1lYnVmZmVyIGJhY2tlZCBi eSBhbiBleGlzdGluZyB0ZXh0dXJlIG9yIGJ1ZmZlci4KLSAgIC8vIFVzZSB0aGUgc2FtZSBHTENv bnRleHQsIHNpemUsIGFuZCBzYW1wbGVzIGFzIGZyYW1lYnVmZmVyVG9TaGFyZVdpdGguCi1AQCAt NzYsMTkgKzg0LDIzIEBAIGNsYXNzIE1vekZyYW1lYnVmZmVyIGZpbmFsIHsKLSAgIHN0YXRpYyBV bmlxdWVQdHI8TW96RnJhbWVidWZmZXI+IENyZWF0ZUZvckJhY2tpbmdXaXRoU2hhcmVkRGVwdGhB bmRTdGVuY2lsKAotICAgICAgIGNvbnN0IGdmeDo6SW50U2l6ZSYgc2l6ZSwgY29uc3QgdWludDMy X3Qgc2FtcGxlcywgR0xlbnVtIGNvbG9yVGFyZ2V0LAotICAgICAgIEdMdWludCBjb2xvck5hbWUs Ci0tICAgICAgY29uc3QgUmVmUHRyPERlcHRoQW5kU3RlbmNpbEJ1ZmZlcj4mIGRlcHRoQW5kU3Rl bmNpbEJ1ZmZlcik7Ci0rICAgICAgY29uc3QgUmVmUHRyPERlcHRoQW5kU3RlbmNpbEJ1ZmZlcj4m IGRlcHRoQW5kU3RlbmNpbEJ1ZmZlciwKLSsgICAgICBDb2xvckJhY2tpbmdPd25lcnNoaXAgY29s b3JCYWNraW5nT3duZXJzaGlwID0KLSsgICAgICAgICAgQ29sb3JCYWNraW5nT3duZXJzaGlwOjpP d25lZCk7Ci0gCi0gIHByaXZhdGU6Ci0gICBNb3pGcmFtZWJ1ZmZlcihHTENvbnRleHQqIGdsLCBj b25zdCBnZng6OkludFNpemUmIHNpemUsIEdMdWludCBmYiwKLSAgICAgICAgICAgICAgICAgIHVp bnQzMl90IHNhbXBsZXMsCi0gICAgICAgICAgICAgICAgICBSZWZQdHI8RGVwdGhBbmRTdGVuY2ls QnVmZmVyPiBkZXB0aEFuZFN0ZW5jaWxCdWZmZXIsCi0tICAgICAgICAgICAgICAgICBHTGVudW0g Y29sb3JUYXJnZXQsIEdMdWludCBjb2xvck5hbWUpOwotKyAgICAgICAgICAgICAgICAgR0xlbnVt IGNvbG9yVGFyZ2V0LCBHTHVpbnQgY29sb3JOYW1lLAotKyAgICAgICAgICAgICAgICAgQ29sb3JC YWNraW5nT3duZXJzaGlwIGNvbG9yQmFja2luZ093bmVyc2hpcCk7Ci0gCi0gICAvLyBnbCBtdXN0 IGJlIHRoZSBjdXJyZW50IGNvbnRleHQgd2hlbiB0aGlzIGlzIGNhbGxlZC4KLSAgIHN0YXRpYyBV bmlxdWVQdHI8TW96RnJhbWVidWZmZXI+IENyZWF0ZUltcGwoCi0gICAgICAgR0xDb250ZXh0KiBj b25zdCBnbCwgY29uc3QgZ2Z4OjpJbnRTaXplJiBzaXplLCBjb25zdCB1aW50MzJfdCBzYW1wbGVz LAotICAgICAgIGNvbnN0IFJlZlB0cjxEZXB0aEFuZFN0ZW5jaWxCdWZmZXI+JiBkZXB0aEFuZFN0 ZW5jaWxCdWZmZXIsCi0tICAgICAgY29uc3QgR0xlbnVtIGNvbG9yVGFyZ2V0LCBjb25zdCBHTHVp bnQgY29sb3JOYW1lKTsKLSsgICAgICBjb25zdCBHTGVudW0gY29sb3JUYXJnZXQsIGNvbnN0IEdM dWludCBjb2xvck5hbWUsCi0rICAgICAgQ29sb3JCYWNraW5nT3duZXJzaGlwIGNvbG9yQmFja2lu Z093bmVyc2hpcCk7Ci0gCi0gIHB1YmxpYzoKLSAgIH5Nb3pGcmFtZWJ1ZmZlcigpOwotZGlmZiAt dXAgZmlyZWZveC0xNTUuMC9nZngvbGF5ZXJzL1N1cmZhY2VQb29sV2F5bGFuZC5jcHAuRDMxODE5 MSBmaXJlZm94LTE1NS4wL2dmeC9sYXllcnMvU3VyZmFjZVBvb2xXYXlsYW5kLmNwcAotLS0tIGZp cmVmb3gtMTU1LjAvZ2Z4L2xheWVycy9TdXJmYWNlUG9vbFdheWxhbmQuY3BwLkQzMTgxOTEJMjAy Ni0wOC0yNiAyMzoxMTo0MC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBmaXJlZm94LTE1NS4wL2dmeC9s YXllcnMvU3VyZmFjZVBvb2xXYXlsYW5kLmNwcAkyMDI2LTA4LTI3IDExOjMwOjAyLjExMjA3MjYy NCArMDIwMAotQEAgLTI5Niw3ICsyOTYsOCBAQCBVbmlxdWVQdHI8TW96RnJhbWVidWZmZXI+IFN1 cmZhY2VQb29sV2F5Ci0gICAgIC8vIGZyYW1lYnVmZmVyIHRoYXQgc2hhcmVzIGl0LgotICAgICBp ZiAoYXV0byBidWZmZXIgPSBHZXREZXB0aEJ1ZmZlckZvclNoYXJpbmcoYVByb29mT2ZMb2NrLCBh R0wsIGFTaXplKSkgewotICAgICAgIHJldHVybiBNb3pGcmFtZWJ1ZmZlcjo6Q3JlYXRlRm9yQmFj a2luZ1dpdGhTaGFyZWREZXB0aEFuZFN0ZW5jaWwoCi0tICAgICAgICAgIGFTaXplLCAwLCBMT0NB TF9HTF9URVhUVVJFXzJELCBhVGV4dHVyZSwgYnVmZmVyKTsKLSsgICAgICAgICAgYVNpemUsIDAs IExPQ0FMX0dMX1RFWFRVUkVfMkQsIGFUZXh0dXJlLCBidWZmZXIsCi0rICAgICAgICAgIE1vekZy YW1lYnVmZmVyOjpDb2xvckJhY2tpbmdPd25lcnNoaXA6OkJvcnJvd2VkKTsKLSAgICAgfQotICAg fQotIAotQEAgLTMwNSw3ICszMDYsNyBAQCBVbmlxdWVQdHI8TW96RnJhbWVidWZmZXI+IFN1cmZh Y2VQb29sV2F5Ci0gICAvLyBtRGVwdGhCdWZmZXJzLgotICAgVW5pcXVlUHRyPE1vekZyYW1lYnVm ZmVyPiBmYiA9IE1vekZyYW1lYnVmZmVyOjpDcmVhdGVGb3JCYWNraW5nKAotICAgICAgIGFHTCwg YVNpemUsIDAsIGFOZWVkc0RlcHRoQnVmZmVyLCBhTmVlZHNEZXB0aEJ1ZmZlciwgTE9DQUxfR0xf VEVYVFVSRV8yRCwKLS0gICAgICBhVGV4dHVyZSk7Ci0rICAgICAgYVRleHR1cmUsIE1vekZyYW1l YnVmZmVyOjpDb2xvckJhY2tpbmdPd25lcnNoaXA6OkJvcnJvd2VkKTsKLSAgIGlmIChmYiAmJiBm Yi0+R2V0RGVwdGhBbmRTdGVuY2lsQnVmZmVyKCkpIHsKLSAgICAgbURlcHRoQnVmZmVycy5BcHBl bmRFbGVtZW50KAotICAgICAgICAgRGVwdGhCdWZmZXJFbnRyeXthR0wsIGFTaXplLCBmYi0+R2V0 RGVwdGhBbmRTdGVuY2lsQnVmZmVyKCkuZ2V0KCl9KTsKCmRpZmYgLS1naXQgYS9EMzI0ODcwLjE3 ODkxMTY5NjMuZGlmZiBiL0QzMjQ4NzAuMTc4OTExNjk2My5kaWZmCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjEwNDc1YjUKLS0tIC9kZXYvbnVsbAorKysgYi9EMzI0ODcwLjE3 ODkxMTY5NjMuZGlmZgpAQCAtMCwwICsxLDg0IEBACitkaWZmIC0tZ2l0IGEvd2lkZ2V0L2d0ay9u c1dpbmRvd1dheWxhbmQuaCBiL3dpZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmgKKy0tLSBhL3dp ZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmgKKysrKyBiL3dpZGdldC9ndGsvbnNXaW5kb3dXYXls YW5kLmgKK0BAIC0yMzQsMTEgKzIzNCwxMSBAQAorIAorICAgUmVmUHRyPG1vemlsbGE6OldheWxh bmRWc3luY1NvdXJjZT4gbVdheWxhbmRWc3luY1NvdXJjZTsKKyAgIFJlZlB0cjxtb3ppbGxhOjpW c3luY0Rpc3BhdGNoZXI+IG1XYXlsYW5kVnN5bmNEaXNwYXRjaGVyOworICAgTGF5b3V0RGV2aWNl SW50UG9pbnQgbU5hdGl2ZUxvY2tlZFBvaW50OworICAgeGRnX3RvcGxldmVsX3Nlc3Npb25fdjEq IG1TZXNzaW9uUmVzdG9yZVRva2VuID0gbnVsbHB0cjsKKy0gIG5zU3RyaW5nIG1TZXNzaW9uSUQ7 CisrICBuc1N0cmluZyBtV29ya3NwYWNlSUQ7CisgCisgICBndWxvbmcgbVhkZ1RvcGxldmVsUmVh bGl6ZWRJRCA9IDA7CisgCisgICB6d3BfbG9ja2VkX3BvaW50ZXJfdjEqIG1Mb2NrZWRQb2ludGVy ID0gbnVsbHB0cjsKKyAgIHp3cF9yZWxhdGl2ZV9wb2ludGVyX3YxKiBtUmVsYXRpdmVQb2ludGVy ID0gbnVsbHB0cjsKK2RpZmYgLS1naXQgYS93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5jcHAg Yi93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5jcHAKKy0tLSBhL3dpZGdldC9ndGsvbnNXaW5k b3dXYXlsYW5kLmNwcAorKysrIGIvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxhbmQuY3BwCitAQCAt MTExLDExICsxMTEsMTEgQEAKKyAgICAgTE9HKCJuc1dpbmRvd1dheWxhbmQ6OkNyZWF0ZVJlc3Rv cmVTZXNzaW9uKCk6IGZhaWxlZCB0byBnZXQgcmVzdG9yZSAiCisgICAgICAgICAic2Vzc2lvbiwg cXVpdC4iKTsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorIAorLSAgTlNfQ29udmVydFVURjE2 dG9VVEY4IGlkKG1TZXNzaW9uSUQpOworKyAgTlNfQ29udmVydFVURjE2dG9VVEY4IGlkKG1Xb3Jr c3BhY2VJRCk7CisgICBpZiAoYVJlc3RvcmVXaW5kb3cpIHsKKyAgICAgbVNlc3Npb25SZXN0b3Jl VG9rZW4gPQorICAgICAgICAgeGRnX3Nlc3Npb25fdjFfcmVzdG9yZV90b3BsZXZlbChzZXNzaW9u LCB0b3BsZXZlbCwgaWQuZ2V0KCkpOworICAgfSBlbHNlIHsKKyAgICAgbVNlc3Npb25SZXN0b3Jl VG9rZW4gPQorQEAgLTEyNiwxNyArMTI2LDE3IEBACisgICAgICAgaWQuZ2V0KCksIGFSZXN0b3Jl V2luZG93LCBtU2Vzc2lvblJlc3RvcmVUb2tlbik7CisgICByZXR1cm4gISFtU2Vzc2lvblJlc3Rv cmVUb2tlbjsKKyB9CisgCisgdm9pZCBuc1dpbmRvd1dheWxhbmQ6OkdldFdvcmtzcGFjZUlEKG5z QVN0cmluZyYgd29ya3NwYWNlSUQpIHsKKy0gIGlmIChtU2Vzc2lvbklELklzRW1wdHkoKSAmJiAh R2VuZXJhdGVXb3Jrc3BhY2VJRChtU2Vzc2lvbklEKSkgeworKyAgaWYgKG1Xb3Jrc3BhY2VJRC5J c0VtcHR5KCkgJiYgIUdlbmVyYXRlV29ya3NwYWNlSUQobVdvcmtzcGFjZUlEKSkgeworICAgICBy ZXR1cm47CisgICB9CistICB3b3Jrc3BhY2VJRC5Bc3NpZ24obVNlc3Npb25JRCk7CisrICB3b3Jr c3BhY2VJRC5Bc3NpZ24obVdvcmtzcGFjZUlEKTsKKyAKKyAgIExPRygibnNXaW5kb3dXYXlsYW5k OjpHZXRXb3Jrc3BhY2VJRCgpIElEICVzIHRva2VuICVwIiwKKy0gICAgICBOU19Db252ZXJ0VVRG MTZ0b1VURjgobVNlc3Npb25JRCkuZ2V0KCksIG1TZXNzaW9uUmVzdG9yZVRva2VuKTsKKysgICAg ICBOU19Db252ZXJ0VVRGMTZ0b1VURjgobVdvcmtzcGFjZUlEKS5nZXQoKSwgbVNlc3Npb25SZXN0 b3JlVG9rZW4pOworIAorICAgaWYgKG1TZXNzaW9uUmVzdG9yZVRva2VuKSB7CisgICAgIHJldHVy bjsKKyAgIH0KKyAKK0BAIC0xNTQsMTEgKzE1NCwxMSBAQAorIH07CisgI2VuZGlmCisgCisgdm9p ZCBuc1dpbmRvd1dheWxhbmQ6OlJlc3RvcmVYZGdUb3BsZXZlbCgpIHsKKyAgIExPRygibnNXaW5k b3dXYXlsYW5kOjpSZXN0b3JlWGRnVG9wbGV2ZWwoKSBJRCAlcyBHZGtXaW5kb3cgWyVwXSIsCist ICAgICAgTlNfQ29udmVydFVURjE2dG9VVEY4KG1TZXNzaW9uSUQpLmdldCgpLCBHZXRUb3BsZXZl bEdka1dpbmRvdygpKTsKKysgICAgICBOU19Db252ZXJ0VVRGMTZ0b1VURjgobVdvcmtzcGFjZUlE KS5nZXQoKSwgR2V0VG9wbGV2ZWxHZGtXaW5kb3coKSk7CisgICBpZiAoQ3JlYXRlUmVzdG9yZVNl c3Npb24oLyogYVJlc3RvcmVXaW5kb3cgKi8gdHJ1ZSkpIHsKKyAjaWZkZWYgTU9aX0xPR0dJTkcK KyAgICAgaWYgKExPR19FTkFCTEVEKCkpIHsKKyAgICAgICB4ZGdfdG9wbGV2ZWxfc2Vzc2lvbl92 MV9hZGRfbGlzdGVuZXIobVNlc3Npb25SZXN0b3JlVG9rZW4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZzU2Vzc2lvbkxpc3RlbmVyLCB0aGlzKTsKK0BAIC0x NjYsMTQgKzE2NiwxNCBAQAorICNlbmRpZgorICAgfQorIH0KKyAKKyB2b2lkIG5zV2luZG93V2F5 bGFuZDo6TW92ZVRvV29ya3NwYWNlKGNvbnN0IG5zQVN0cmluZyYgd29ya3NwYWNlSURTdHIpIHsK Ky0gIG1TZXNzaW9uSUQuQXNzaWduKHdvcmtzcGFjZUlEU3RyKTsKKysgIG1Xb3Jrc3BhY2VJRC5B c3NpZ24od29ya3NwYWNlSURTdHIpOworICAgTE9HKCJuc1dpbmRvd1dheWxhbmQ6Ok1vdmVUb1dv cmtzcGFjZSgpIHNlc3Npb24gSUQgJXMgIgorICAgICAgICJtV2FpdGluZ1RvU2Vzc2lvblJlc3Rv cmUgJWQgbU5lZWRzU2hvdyAlZCIsCistICAgICAgTlNfQ29udmVydFVURjE2dG9VVEY4KG1TZXNz aW9uSUQpLmdldCgpLCBtV2FpdGluZ1RvU2Vzc2lvblJlc3RvcmUsCisrICAgICAgTlNfQ29udmVy dFVURjE2dG9VVEY4KG1Xb3Jrc3BhY2VJRCkuZ2V0KCksIG1XYWl0aW5nVG9TZXNzaW9uUmVzdG9y ZSwKKyAgICAgICBtTmVlZHNTaG93KTsKKyAgIGlmICghbVdhaXRpbmdUb1Nlc3Npb25SZXN0b3Jl KSB7CisgICAgIHJldHVybjsKKyAgIH0KKyAgIG1XYWl0aW5nVG9TZXNzaW9uUmVzdG9yZSA9IGZh bHNlOworCgpkaWZmIC0tZ2l0IGEvRDMyNDg3MS4xNzg5MTE2OTcyLmRpZmYgYi9EMzI0ODcxLjE3 ODkxMTY5NzIuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTRkZDJh Ci0tLSAvZGV2L251bGwKKysrIGIvRDMyNDg3MS4xNzg5MTE2OTcyLmRpZmYKQEAgLTAsMCArMSw3 NyBAQAorZGlmZiAtLWdpdCBhL3dpZGdldC9ndGsvbnNXaW5kb3dXYXlsYW5kLmNwcCBiL3dpZGdl dC9ndGsvbnNXaW5kb3dXYXlsYW5kLmNwcAorLS0tIGEvd2lkZ2V0L2d0ay9uc1dpbmRvd1dheWxh bmQuY3BwCisrKysgYi93aWRnZXQvZ3RrL25zV2luZG93V2F5bGFuZC5jcHAKK0BAIC01NSwzMCAr NTUsMzEgQEAKKyAKKyAgIExpa2V3aXNlIHdlIHVzZSBHZXRXb3Jrc3BhY2VJRCgpIHRvIGNyZWF0 ZS9zYXZlIHRoZSB4ZGdfdG9wbGV2ZWwgc2Vzc2lvbgorICAgZm9yIGxhdGVyIHJlc3RvcmUuCisg Ki8KKyAKKy1ib29sIEdlbmVyYXRlV29ya3NwYWNlSUQobnNBU3RyaW5nJiBhTmFtZSkgeworKy8v IE1ha2UgdGhlIEdlbmVyYXRlV29ya3NwYWNlSUQoKSBmYWlsdXJlcyBmYXRhbCBhcyBtaXNzaW5n IHdvcmtzcGFjZSBJRAorKy8vIGxlYWRzIHRvIGJyb2tlbiBwcm9maWxlIChCdWcgMjA1OTYxNyku Cisrc3RhdGljIHZvaWQgR2VuZXJhdGVXb3Jrc3BhY2VJRChuc0FTdHJpbmcmIGFOYW1lKSB7Cisg ICBuc3Jlc3VsdCBydjsKKyAgIG5zQ09NUHRyPG5zSVVVSURHZW5lcmF0b3I+IHV1aWRHZW5lcmF0 b3IgPQorICAgICAgIGRvX0dldFNlcnZpY2UoIkBtb3ppbGxhLm9yZy91dWlkLWdlbmVyYXRvcjsx IiwgJnJ2KTsKKy0gIGlmIChOU19XQVJOX0lGKE5TX0ZBSUxFRChydikpKSB7CistICAgIHJldHVy biBmYWxzZTsKKysgIGlmIChOU19GQUlMRUQocnYpKSB7CisrICAgIE1PWl9DUkFTSCgiTWlzc2lu ZyBjb21wb25lbnQhIik7CisgICB9CisgCisgICBuc0lEIGlkOworICAgcnYgPSB1dWlkR2VuZXJh dG9yLT5HZW5lcmF0ZVVVSURJblBsYWNlKCZpZCk7CistICBpZiAoTlNfV0FSTl9JRihOU19GQUlM RUQocnYpKSkgeworLSAgICByZXR1cm4gZmFsc2U7CisrICBpZiAoTlNfRkFJTEVEKHJ2KSkgewor KyAgICBNT1pfQ1JBU0goIkdlbmVyYXRlVVVJREluUGxhY2UoKSBmYWlsZWQhIik7CisgICB9Cisg CisgICBjaGFyIGNoYXJzW05TSURfTEVOR1RIXTsKKyAgIGlkLlRvUHJvdmlkZWRTdHJpbmcoY2hh cnMpOworIAorICAgLy8gTlNJRF9MRU5HVEggY291bnRzIHRoZSBudWxsIHRlcm1pbmF0b3IuCisg ICBhTmFtZS5Bc3NpZ25BU0NJSShjaGFycywgTlNJRF9MRU5HVEggLSAxKTsKKy0gIHJldHVybiB0 cnVlOworIH0KKyAKKyBzdGF0aWMgc3RydWN0IHhkZ190b3BsZXZlbCogR2V0WGRnVG9wbGV2ZWxG cm9tR2RrV2luZG93KEdka1dpbmRvdyogYVdpbmRvdykgeworICAgc3RhdGljIGF1dG8gc0dka1dh eWxhbmRXaW5kb3dHZXRYZGdUb3BsZXZlbCA9CisgICAgICAgKHN0cnVjdCB4ZGdfdG9wbGV2ZWwg KiAoKikoR2RrV2luZG93KikpCitAQCAtMTExLDEwICsxMTIsMTkgQEAKKyAgICAgTE9HKCJuc1dp bmRvd1dheWxhbmQ6OkNyZWF0ZVJlc3RvcmVTZXNzaW9uKCk6IGZhaWxlZCB0byBnZXQgcmVzdG9y ZSAiCisgICAgICAgICAic2Vzc2lvbiwgcXVpdC4iKTsKKyAgICAgcmV0dXJuIGZhbHNlOworICAg fQorIAorKyAgLy8gSWYgd2UgaGF2ZSBvbGQgcHJvZmlsZSAvIHdvcmtzcGFjZSBJRCBqdXN0IHJl cGxhY2UgaXQgYnkKKysgIC8vIFVVSUQgdG8gYXZvaWQgcHJvdG9jb2wgZXJyb3IgY3Jhc2ggKEJ1 ZyAyMDU5NjE3KS4KKysgIG5zcmVzdWx0IHJldDsKKysgICh2b2lkKW1Xb3Jrc3BhY2VJRC5Ub0lu dGVnZXIoJnJldCk7CisrICBpZiAoTlNfU1VDQ0VFREVEKHJldCkpIHsKKysgICAgR2VuZXJhdGVX b3Jrc3BhY2VJRChtV29ya3NwYWNlSUQpOworKyAgICBhUmVzdG9yZVdpbmRvdyA9IGZhbHNlOwor KyAgfQorKworICAgTlNfQ29udmVydFVURjE2dG9VVEY4IGlkKG1Xb3Jrc3BhY2VJRCk7CisgICBp ZiAoYVJlc3RvcmVXaW5kb3cpIHsKKyAgICAgbVNlc3Npb25SZXN0b3JlVG9rZW4gPQorICAgICAg ICAgeGRnX3Nlc3Npb25fdjFfcmVzdG9yZV90b3BsZXZlbChzZXNzaW9uLCB0b3BsZXZlbCwgaWQu Z2V0KCkpOworICAgfSBlbHNlIHsKK0BAIC0xMjYsMTIgKzEzNiwxMiBAQAorICAgICAgIGlkLmdl dCgpLCBhUmVzdG9yZVdpbmRvdywgbVNlc3Npb25SZXN0b3JlVG9rZW4pOworICAgcmV0dXJuICEh bVNlc3Npb25SZXN0b3JlVG9rZW47CisgfQorIAorIHZvaWQgbnNXaW5kb3dXYXlsYW5kOjpHZXRX b3Jrc3BhY2VJRChuc0FTdHJpbmcmIHdvcmtzcGFjZUlEKSB7CistICBpZiAobVdvcmtzcGFjZUlE LklzRW1wdHkoKSAmJiAhR2VuZXJhdGVXb3Jrc3BhY2VJRChtV29ya3NwYWNlSUQpKSB7CistICAg IHJldHVybjsKKysgIGlmIChtV29ya3NwYWNlSUQuSXNFbXB0eSgpKSB7CisrICAgIEdlbmVyYXRl V29ya3NwYWNlSUQobVdvcmtzcGFjZUlEKTsKKyAgIH0KKyAgIHdvcmtzcGFjZUlELkFzc2lnbiht V29ya3NwYWNlSUQpOworIAorICAgTE9HKCJuc1dpbmRvd1dheWxhbmQ6OkdldFdvcmtzcGFjZUlE KCkgSUQgJXMgdG9rZW4gJXAiLAorICAgICAgIE5TX0NvbnZlcnRVVEYxNnRvVVRGOChtV29ya3Nw YWNlSUQpLmdldCgpLCBtU2Vzc2lvblJlc3RvcmVUb2tlbik7CisKCmRpZmYgLS1naXQgYS9EMzI0 ODc2LjE3ODkxMTY4OTkuZGlmZiBiL0QzMjQ4NzYuMTc4OTExNjg5OS5kaWZmCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmN2IxNDgKLS0tIC9kZXYvbnVsbAorKysgYi9EMzI0 ODc2LjE3ODkxMTY4OTkuZGlmZgpAQCAtMCwwICsxLDE5IEBACitkaWZmIC0tZ2l0IGEvd2lkZ2V0 L2d0ay9uc0FwcFNoZWxsLmNwcCBiL3dpZGdldC9ndGsvbnNBcHBTaGVsbC5jcHAKKy0tLSBhL3dp ZGdldC9ndGsvbnNBcHBTaGVsbC5jcHAKKysrKyBiL3dpZGdldC9ndGsvbnNBcHBTaGVsbC5jcHAK K0BAIC02MjQsMTAgKzYyNCwxNCBAQAorICAgICB9CisgICAgIGlmICghU3RhdGljUHJlZnM6Ondp ZGdldF93YXlsYW5kX3Nlc3Npb25fbWFuYWdlbWVudF9lbmFibGVkX0F0U3RhcnR1cCgpKSB7Cisg ICAgICAgTE9HVygibnNBcHBTaGVsbDo6SXNTZXNzaW9uUmVzdG9yZVN1cHBvcnRlZCgpOiBkaXNh YmxlZCBieSBwcmVmLiIpOworICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorKyAgICBpZiAo SXNHbm9tZURlc2t0b3BFbnZpcm9ubWVudCgpKSB7CisrICAgICAgTE9HVygibnNBcHBTaGVsbDo6 SXNTZXNzaW9uUmVzdG9yZVN1cHBvcnRlZCgpOiBkaXNhYmxlZCBkdWUgdG8gQnVnIDIwNzA4MTUu Iik7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisgCisgICAgIEdUeXBlIHdheWxhbmRX aW5kb3dUeXBlID0gZ190eXBlX2Zyb21fbmFtZSgiR2RrV2F5bGFuZFdpbmRvdyIpOworICAgICBi b29sIHN1cHBvcnRlZCA9CisgICAgICAgICB3YXlsYW5kV2luZG93VHlwZSAmJgorICAgICAgICAg Z19zaWduYWxfbG9va3VwKCJ4ZGctdG9wbGV2ZWwtcmVhbGl6ZWQiLCB3YXlsYW5kV2luZG93VHlw ZSk7CisKCmRpZmYgLS1naXQgYS9EMzI0ODc3LjE3ODkxMTcwMDAuZGlmZiBiL0QzMjQ4NzcuMTc4 OTExNzAwMC5kaWZmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViZThkNjIK LS0tIC9kZXYvbnVsbAorKysgYi9EMzI0ODc3LjE3ODkxMTcwMDAuZGlmZgpAQCAtMCwwICsxLDE3 IEBACitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9saWJwcmVmL2luaXQvU3RhdGljUHJlZkxpc3QueWFt bCBiL21vZHVsZXMvbGlicHJlZi9pbml0L1N0YXRpY1ByZWZMaXN0LnlhbWwKKy0tLSBhL21vZHVs ZXMvbGlicHJlZi9pbml0L1N0YXRpY1ByZWZMaXN0LnlhbWwKKysrKyBiL21vZHVsZXMvbGlicHJl Zi9pbml0L1N0YXRpY1ByZWZMaXN0LnlhbWwKK0BAIC0yMDg5NiwxMSArMjA4OTYsMTEgQEAKKyAg IG1pcnJvcjogYWx3YXlzCisgCisgIyBVc2UgeGRnLXNlc3Npb24tbWFuYWdlbWVudC12MSBmb3Ig c2Vzc2lvbiByZXN0b3JlIG9uIFdheWxhbmQuCisgLSBuYW1lOiB3aWRnZXQud2F5bGFuZC5zZXNz aW9uLW1hbmFnZW1lbnQuZW5hYmxlZAorICAgdHlwZTogYm9vbAorLSAgdmFsdWU6IEBJU19FQVJM WV9CRVRBX09SX0VBUkxJRVJACisrICB2YWx1ZTogdHJ1ZQorICAgbWlycm9yOiBvbmNlCisgCisg IyBVc2UgbmF0aXZlIEQmRCBzZXNzaW9uIHR5cGUgb24gV2F5bGFuZCBpbnN0ZWFkIG9mIEd0ay4K KyAjIFJlY2VudGx5IGRpc2FibGVkIGR1ZSBjb21wb3NpdG9yIGJ1Z3MgKEJ1ZyAyMDQ2OTExKS4K KyAtIG5hbWU6IHdpZGdldC53YXlsYW5kLm5hdGl2ZS1kYXRhLXNlc3Npb24KKwoKZGlmZiAtLWdp dCBhL2ZpcmVmb3guc3BlYyBiL2ZpcmVmb3guc3BlYwppbmRleCA1MjI4ZjBiLi44MjUyMzkxIDEw MDY0NAotLS0gYS9maXJlZm94LnNwZWMKKysrIGIvZmlyZWZveC5zcGVjCkBAIC0yNTksMTEgKzI1 OSwxMCBAQCBQYXRjaDI0MjogICAgICAgIDAwMjYtQWRkLUtERS1pbnRlZ3JhdGlvbi10by1GaXJl Zm94LnBhdGNoCiAjIFVwc3RyZWFtIHBhdGNoZXMKIFBhdGNoNDAwOiAgICAgICAgbW96aWxsYS0x MTk2Nzc3LnBhdGNoCiBQYXRjaDQwMTogICAgICAgIG1vemlsbGEtMTY2NzA5Ni5wYXRjaAotUGF0 Y2g0MDM6ICAgICAgICBEMzE4MTkxLjE3ODczODgxNDEuZGlmZgotCi0jIGh0dHBzOi8vcGhhYnJp Y2F0b3Iuc2VydmljZXMubW96aWxsYS5jb20vRDMxMjg3MQotIyBEcm9wIHdpdGggRmlyZWZveCAx NTYKLVBhdGNoNDEwOiAgICAgICAgbGlid2VicnRjLXZpZGVvLWNhcHR1cmUtaW1wbGVtZW50LWJ1 ZmZlci1zdHJpZGUtc3VwcG9ydC1mb3ItcGlwZXdpcmUucGF0Y2gKK1BhdGNoNDAyOiAgICAgICAg RDMyNDg3MC4xNzg5MTE2OTYzLmRpZmYKK1BhdGNoNDAzOiAgICAgICAgRDMyNDg3MS4xNzg5MTE2 OTcyLmRpZmYKK1BhdGNoNDA0OiAgICAgICAgRDMyNDg3Ni4xNzg5MTE2ODk5LmRpZmYKK1BhdGNo NDA1OiAgICAgICAgRDMyNDg3Ny4xNzg5MTE3MDAwLmRpZmYKIAogIyBQR08vTFRPIHBhdGNoZXMK IFBhdGNoNjAwOiAgICAgICAgcGdvLnBhdGNoCkBAIC01NDcsOSArNTQ2LDExIEBAIGNhdCAle1NP VVJDRTQ5fSB8IHNlZCAtZSAic3xMSUJDTEFOR19SVF9QTEFDRUhPTERFUnxgcHdkYC93YXNpLXNk ay0zMC9idWlsZC9zeXNyCiAKICVwYXRjaCAtUDQwMCAtcDEgLWIgLjExOTY3NzcKICVwYXRjaCAt UDQwMSAtcDEgLWIgLjE2NjcwOTYKLSVwYXRjaCAtUDQwMyAtcDEgLWIgLkQzMTgxOTEKIAotJXBh dGNoIC1QNDEwIC1wMSAtYiAubGlid2VicnRjLXZpZGVvLWNhcHR1cmUtaW1wbGVtZW50LWJ1ZmZl ci1zdHJpZGUtc3VwcG9ydC1mb3ItcGlwZXdpcmUKKyVwYXRjaCAtUDQwMiAtcDEgLWIgLkQzMjQ4 NzAKKyVwYXRjaCAtUDQwMyAtcDEgLWIgLkQzMjQ4NzEKKyVwYXRjaCAtUDQwNCAtcDEgLWIgLkQz MjQ4NzYKKyVwYXRjaCAtUDQwNSAtcDEgLWIgLkQzMjQ4NzcKIAogIyBQR08gcGF0Y2hlcwogJWlm ICV7YnVpbGRfd2l0aF9wZ299CkBAIC0xMjA3LDYgKzEyMDgsNyBAQCBmaQogJWNoYW5nZWxvZwog KiBUaHUgU2VwIDEwIDIwMjYgTWFydGluIFN0cmFuc2t5IDxzdHJhbnNreUByZWRoYXQuY29tPiAt IDE1Ni4wLTEKIC0gVXBkYXRlZCB0byAxNTYuMAorLSBFbmFibGVkIHNlc3Npb24gcmVzdG9yZSBv biBLREUKIAogKiBNb24gU2VwIDcgMjAyNiBNYXJ0aW4gU3RyYW5za3kgPHN0cmFuc2t5QHJlZGhh dC5jb20+IC0gMTU1LjAuMS0xCiAtIFVwZGF0ZWQgdG8gMTU1LjAuMQoKZGlmZiAtLWdpdCBhL3dh c2kucGF0Y2ggYi93YXNpLnBhdGNoCmluZGV4IDlmYTc2NzUuLjE1ODZlM2IgMTAwNjQ0Ci0tLSBh L3dhc2kucGF0Y2gKKysrIGIvd2FzaS5wYXRjaApAQCAtNiw3ICs2LDcgQEAgZGlmZiAtdXAgZmly ZWZveC0xMzQuMC4xL3Rvb2xraXQvbW96LmNvbmZpZ3VyZS53YXNpIGZpcmVmb3gtMTM0LjAuMS90 b29sa2l0L21vei4KICAgICAgICAgIGlmIHdhc2lfc3lzcm9vdDoKICAgICAgICAgICAgICBsb2cu aW5mbygiVXNpbmcgd2FzaSBzeXNyb290IGluICVzIiwgd2FzaV9zeXNyb290KQogLSAgICAgICAg ICAgIHJldHVybiBbIi0tc3lzcm9vdD0lcyIgJSB3YXNpX3N5c3Jvb3RdCi0rICAgICAgICAgICAg cmV0dXJuIFsiLS1zeXNyb290PSVzIiAlIHdhc2lfc3lzcm9vdCwgIi1ub2RlZmF1bHRsaWJzIiwg ICItbGMiLCAiLWx3YXNpLWVtdWxhdGVkLXByb2Nlc3MtY2xvY2tzIiwgIi1sYysrIiwgIi1sYysr YWJpIiwgIi9ob21lL2tvbWF0L0NWUy9maXJlZm94L2ZpcmVmb3gtMTU1LjAtYnVpbGQvZmlyZWZv eC0xNTUuMC93YXNpLXNkay0zMC9idWlsZC9zeXNyb290L2luc3RhbGwvd2FzaS1yZXNvdXJjZS1k aXIvbGliL3dhc20zMi11bmtub3duLXdhc2lwMS9saWJjbGFuZ19ydC5idWlsdGlucy5hIl0KKysg ICAgICAgICAgICByZXR1cm4gWyItLXN5c3Jvb3Q9JXMiICUgd2FzaV9zeXNyb290LCAiLW5vZGVm YXVsdGxpYnMiLCAgIi1sYyIsICItbHdhc2ktZW11bGF0ZWQtcHJvY2Vzcy1jbG9ja3MiLCAiLWxj KysiLCAiLWxjKythYmkiLCAiL2hvbWUva29tYXQvQ1ZTL2ZpcmVmb3gvZmlyZWZveC0xNTYuMC1i dWlsZC9maXJlZm94LTE1Ni4wL3dhc2ktc2RrLTMwL2J1aWxkL3N5c3Jvb3QvaW5zdGFsbC93YXNp LXJlc291cmNlLWRpci9saWIvd2FzbTMyLXVua25vd24td2FzaXAxL2xpYmNsYW5nX3J0LmJ1aWx0 aW5zLmEiXQogICAgICAgICAgcmV0dXJuIFtdCiAgCiAgICAgIHNldF9jb25maWcoIldBU0lfU1lT Uk9PVCIsIHdhc2lfc3lzcm9vdCkK