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: Nicolas Chauvet To: git-commits@fedoraproject.org Subject: [rpms/frei0r-plugins] f45: Remove unused-patches Date: Fri, 11 Sep 2026 08:08:45 GMT Message-ID: <178911412527.1.12145206418772952566.rpms-frei0r-plugins-22fb1ded8838@fedoraproject.org> List-ID: X-Git-Repo: rpms/frei0r-plugins X-Git-Branch: f45 X-Git-Rev: 22fb1ded88388068e3d2f2efde34ae8ca544ef41 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZnJlaTByLXBsdWdp bnMKQnJhbmNoIDogZjQ1CkNvbW1pdCA6IDIyZmIxZGVkODgzODgwNjhlM2QyZjJlZmRlMzRhZThj YTU0NGVmNDEKQXV0aG9yIDogTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0QGdtYWlsLmNvbT4KRGF0 ZSAgIDogMjAyNi0wOS0xMVQwODo1NDoxOSswMjowMApTdGF0cyAgOiArMC8tODIxIGluIDcgZmls ZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2ZyZWkwci1w bHVnaW5zL2MvMjJmYjFkZWQ4ODM4ODA2OGUzZDJmMmVmZGUzNGFlOGNhNTQ0ZWY0MT9icmFuY2g9 ZjQ1CgpMb2c6ClJlbW92ZSB1bnVzZWQtcGF0Y2hlcwoKLS0tCmRpZmYgLS1naXQgYS8zNWVkODcw YTNiNGU3OTc3MTE5MjcyZDMyMzJhYWE5NDdiZWEyMmFjLnBhdGNoIGIvMzVlZDg3MGEzYjRlNzk3 NzExOTI3MmQzMjMyYWFhOTQ3YmVhMjJhYy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZDJmOWM2Mi4uMDAwMDAwMAotLS0gYS8zNWVkODcwYTNiNGU3OTc3MTE5MjcyZDMyMzJh YWE5NDdiZWEyMmFjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY3ICswLDAgQEAKLUZyb20g MzVlZDg3MGEzYjRlNzk3NzExOTI3MmQzMjMyYWFhOTQ3YmVhMjJhYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IGt3aXphcnQgPGt3aXphcnRAZ21haWwuY29tPgotRGF0ZTogTW9uLCAz MCBEZWMgMjAxOSAxNDo0NDo1MSArMDEwMAotU3ViamVjdDogW1BBVENIXSBVcGRhdGUgZmFjZWJs MHIgdG8gYysrIGFwaQotCi1TaWduZWQtb2ZmLWJ5OiBrd2l6YXJ0IDxrd2l6YXJ0QGdtYWlsLmNv bT4KLS0tLQotIHNyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwIHwgNTYgKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygr KSwgMjQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvZmlsdGVyL2ZhY2VibDByL2Zh Y2VibDByLmNwcCBiL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwCi1pbmRleCAxNzQ0 NmNjLi5iYTE0NmQwIDEwMDY0NAotLS0tIGEvc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmwwci5j cHAKLSsrKyBiL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwCi1AQCAtMTgsNyArMTgs MTEgQEAKLSAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2luY2x1 ZGUgPHN0cmluZy5oPgotLSNpbmNsdWRlIDxvcGVuY3YyL29wZW5jdi5ocHA+Ci0rI2luY2x1ZGUg PG9wZW5jdjIvY29yZS5ocHA+Ci0rI2luY2x1ZGUgPG9wZW5jdjIvaW1ncHJvYy9pbWdwcm9jX2Mu aD4KLSsjaW5jbHVkZSA8b3BlbmN2Mi9pbWdwcm9jLmhwcD4KLSsjaW5jbHVkZSA8b3BlbmN2Mi9v YmpkZXRlY3QuaHBwPgotKyNpbmNsdWRlIDxvcGVuY3YyL3ZpZGVvL3RyYWNraW5nLmhwcD4KLSAj aW5jbHVkZSAiZnJlaTByLmhwcCIKLSAjaW5jbHVkZSAiZnJlaTByX21hdGguaCIKLSAKLUBAIC0z MCw3ICszNCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKLSAKLSAgIEN2SGlzdG9ncmFtKiBoaXN0OyAv L2hpc3RvZ3JhbSBvZiBodWUgaW4gb3JpZ2luYWwgZmFjZSBpbWFnZQotIAotLSAgQ3ZSZWN0IHBy ZXZfcmVjdDsgIC8vbG9jYXRpb24gb2YgZmFjZSBpbiBwcmV2aW91cyBmcmFtZQotKyAgY3Y6OlJl Y3QgcHJldl9yZWN0OyAgLy9sb2NhdGlvbiBvZiBmYWNlIGluIHByZXZpb3VzIGZyYW1lCi0gICBD dkJveDJEIGN1cnJfYm94OyAgLy9jdXJyZW50IGZhY2UgbG9jYXRpb24gZXN0aW1hdGUKLSB9IFRy YWNrZWRPYmo7Ci0gCi1AQCAtNTMsNyArNTcsNyBAQCBjbGFzcyBGYWNlQmwwcjogcHVibGljIGZy ZWkwcjo6ZmlsdGVyIHsKLSAgICAgdm9pZCB1cGRhdGVfaHVlX2ltYWdlIChjb25zdCBJcGxJbWFn ZSogaW1hZ2UsIFRyYWNrZWRPYmoqIGltZ3MpOwotICAgICAKLSAvL3RyYWNrZmFjZQotLSAgICBD dlJlY3QqIGRldGVjdF9mYWNlIChJcGxJbWFnZSosIEN2SGFhckNsYXNzaWZpZXJDYXNjYWRlKiwg Q3ZNZW1TdG9yYWdlKik7Ci0rICAgIEN2UmVjdCogZGV0ZWN0X2ZhY2UgKElwbEltYWdlKiwgY3Y6 OkNhc2NhZGVDbGFzc2lmaWVyJiwgQ3ZNZW1TdG9yYWdlKik7Ci0gICAgIAotIAotICAgICBUcmFj a2VkT2JqKiB0cmFja2VkX29iajsKLUBAIC02Myw3ICs2Nyw3IEBAIGNsYXNzIEZhY2VCbDByOiBw dWJsaWMgZnJlaTByOjpmaWx0ZXIgewotIC8vdXNlZCBieSBjYXB0dXJlX3ZpZGVvX2ZyYW1lLCBz byB3ZSBkb24ndCBoYXZlIHRvIGtlZXAgY3JlYXRpbmcuCi0gICAgIElwbEltYWdlKiBpbWFnZTsK LSAKLS0gICAgQ3ZIYWFyQ2xhc3NpZmllckNhc2NhZGUqIGNhc2NhZGU7Ci0rICAgIGN2OjpDYXNj YWRlQ2xhc3NpZmllciBjYXNjYWRlOwotICAgICBDdk1lbVN0b3JhZ2UqIHN0b3JhZ2U7Ci0gCi0g ICAgIC8vIHBsdWdpbiBwYXJhbWV0ZXJzCi1AQCAtOTYsNyArMTAwLDcgQEAgRmFjZUJsMHI6OkZh Y2VCbDByKGludCB3ZHQsIGludCBoZ3QpIHsKLSAgIHRyYWNrZWRfb2JqID0gMDsKLSAgIGZhY2Vf Zm91bmQgPSAwOwotICAgCi0tICBjYXNjYWRlID0gMDsKLSsgIC8vY2FzY2FkZSA9IDA7Ci0gICBz dG9yYWdlID0gMDsKLSAgIAotICAgY2xhc3NpZmllciA9ICIvdXNyL3NoYXJlL29wZW5jdi9oYWFy Y2FzY2FkZXMvaGFhcmNhc2NhZGVfZnJvbnRhbGZhY2VfZGVmYXVsdC54bWwiOwotQEAgLTEyNCw3 ICsxMjgsNyBAQCBGYWNlQmwwcjo6fkZhY2VCbDByKCkgewotICAgICBpZih0cmFja2VkX29iaikK LSAgICAgICAgIGRlc3Ryb3lfdHJhY2tlZF9vYmplY3QodHJhY2tlZF9vYmopOwotIAotLSAgICBp ZihjYXNjYWRlKSBjdlJlbGVhc2VIYWFyQ2xhc3NpZmllckNhc2NhZGUoJmNhc2NhZGUpOwotKyAg ICAvL2lmKGNhc2NhZGUpIGN2UmVsZWFzZUhhYXJDbGFzc2lmaWVyQ2FzY2FkZSgmY2FzY2FkZSk7 Ci0gICAgIGlmKHN0b3JhZ2UpIGN2UmVsZWFzZU1lbVN0b3JhZ2UoJnN0b3JhZ2UpOwotICAgICAK LSB9Ci1AQCAtMTMzLDcgKzEzNyw3IEBAIHZvaWQgRmFjZUJsMHI6OnVwZGF0ZShkb3VibGUgdGlt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90KiBpbikgewotIAotLSAgaWYgKCFjYXNjYWRlKSB7 Ci0rICBpZiAoY2FzY2FkZS5lbXB0eSgpKSB7Ci0gICAgICAgY3ZTZXROdW1UaHJlYWRzKGN2Um91 bmQodGhyZWFkcyAqIDEwMCkpOwotICAgICAgIGlmIChjbGFzc2lmaWVyLmxlbmd0aCgpID4gMCkg ewotIAlpZiAoY2xhc3NpZmllciA9PSBvbGRfY2xhc3NpZmllcikgewotQEAgLTE0Miw4ICsxNDYs NyBAQCB2b2lkIEZhY2VCbDByOjp1cGRhdGUoZG91YmxlIHRpbWUsCi0gCSAgcmV0dXJuOwotIAl9 IGVsc2Ugb2xkX2NsYXNzaWZpZXIgPSBjbGFzc2lmaWVyOwotIAotLQljYXNjYWRlID0gKEN2SGFh ckNsYXNzaWZpZXJDYXNjYWRlKikgY3ZMb2FkKGNsYXNzaWZpZXIuY19zdHIoKSwgMCwgMCwgMCAp OwotLQlpZiAoIWNhc2NhZGUpIHsKLSsJaWYgKCFjYXNjYWRlLmxvYWQoY2xhc3NpZmllci5jX3N0 cigpKSkgewotIAkgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgaW4gZmlsdGVyIGZhY2VibDByLCBj bGFzc2lmaWVyIGNhc2NhZGUgbm90IGZvdW5kOlxuIik7Ci0gCSAgZnByaW50ZihzdGRlcnIsICIg JXNcbiIsIGNsYXNzaWZpZXIuY19zdHIoKSk7Ci0gCSAgbWVtY3B5KG91dCwgaW4sIHNpemUgKiA0 KTsKLUBAIC0yMzQsMzAgKzIzNywzMyBAQCB2b2lkIEZhY2VCbDByOjp1cGRhdGUoZG91YmxlIHRp bWUsCi0gCi0gLyogR2l2ZW4gYW4gaW1hZ2UgYW5kIGEgY2xhc3NpZGVyLCBkZXRlY3QgYW5kIHJl dHVybiByZWdpb24uICovCi0gQ3ZSZWN0KiBGYWNlQmwwcjo6ZGV0ZWN0X2ZhY2UgKElwbEltYWdl KiBpbWFnZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3ZIYWFyQ2xhc3NpZmll ckNhc2NhZGUqIGNhc2NhZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN2OjpD YXNjYWRlQ2xhc3NpZmllciAmY2FzY2FkZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3ZNZW1TdG9yYWdlKiBzdG9yYWdlKSB7Ci0gICAgIAotICAgQ3ZSZWN0KiByZWN0ID0gMDsK LSsgIHN0ZDo6dmVjdG9yPGN2OjpSZWN0PiBmYWNlczsKLSsgIGN2OjpNYXQgZ3JheV9tYXQ7Ci0g ICAKLS0gIGlmIChjYXNjYWRlICYmIHN0b3JhZ2UpIHsKLSsgIGlmICghY2FzY2FkZS5lbXB0eSgp ICYmIHN0b3JhZ2UpIHsKLSAgICAgIC8vdXNlIGFuIGVxdWFsaXplZCBncmF5IGltYWdlIGZvciBi ZXR0ZXIgcmVjb2duaXRpb24KLSAgICAgIElwbEltYWdlKiBncmF5ID0gY3ZDcmVhdGVJbWFnZShj dlNpemUoaW1hZ2UtPndpZHRoLCBpbWFnZS0+aGVpZ2h0KSwgOCwgMSk7Ci0gICAgICBjdkN2dENv bG9yKGltYWdlLCBncmF5LCBDVl9CR1IyR1JBWSk7Ci0gICAgICBjdkVxdWFsaXplSGlzdChncmF5 LCBncmF5KTsKLSAgICAgIGN2Q2xlYXJNZW1TdG9yYWdlKHN0b3JhZ2UpOwotKyAgICAgZ3JheV9t YXQgPSBjdjo6Y3ZhcnJUb01hdCgmZ3JheSk7Ci0gCi0gICAgICAgLy9nZXQgYSBzZXF1ZW5jZSBv ZiBmYWNlcyBpbiBpbWFnZQotICAgICAgIGludCBtaW4gPSBjdlJvdW5kKHNtYWxsZXN0ICogMTAw MCk7Ci0tICAgICAgQ3ZTZXEgKmZhY2VzID0gY3ZIYWFyRGV0ZWN0T2JqZWN0cyhncmF5LCBjYXNj YWRlLCBzdG9yYWdlLAotKyAgICAgIGNhc2NhZGUuZGV0ZWN0TXVsdGlTY2FsZShncmF5X21hdCwg ZmFjZXMsCi0gICAgICAgICAgc2VhcmNoX3NjYWxlICogMTAuMCwKLSAgICAgICAgICBjdlJvdW5k KG5laWdoYm9ycyAqIDEwMCksCi0tICAgICAgICAgQ1ZfSEFBUl9GSU5EX0JJR0dFU1RfT0JKRUNU fC8vc2luY2Ugd2UgdHJhY2sgb25seSB0aGUgZmlyc3QsIGdldCB0aGUgYmlnZ2VzdAotLSAgICAg ICAgIENWX0hBQVJfRE9fQ0FOTllfUFJVTklORywgIC8vc2tpcCByZWdpb25zIHVubGlrZWx5IHRv IGNvbnRhaW4gYSBmYWNlCi0tICAgICAgICAgY3ZTaXplKG1pbiwgbWluKSk7Ci0rICAgICAgICAg Y3Y6OkNBU0NBREVfRklORF9CSUdHRVNUX09CSkVDVHwvL3NpbmNlIHdlIHRyYWNrIG9ubHkgdGhl IGZpcnN0LCBnZXQgdGhlIGJpZ2dlc3QKLSsgICAgICAgICBjdjo6Q0FTQ0FERV9ET19DQU5OWV9Q UlVOSU5HLCAgLy9za2lwIHJlZ2lvbnMgdW5saWtlbHkgdG8gY29udGFpbiBhIGZhY2UKLSsgICAg ICAgICBjdlNpemUobWluLG1pbikpOwotICAgICAKLSAgICAgICAvL2lmIG9uZSBvciBtb3JlIGZh Y2VzIGFyZSBkZXRlY3RlZCwgcmV0dXJuIHRoZSBmaXJzdCBvbmUKLS0gICAgICBpZihmYWNlcyAm JiBmYWNlcy0+dG90YWwpCi0tICAgICAgICByZWN0ID0gKEN2UmVjdCopIGN2R2V0U2VxRWxlbShm YWNlcywgMCk7Ci0rICAgICAgaWYoZmFjZXMuc2l6ZSgpID4gMCkKLSsgICAgICAgIHJlY3QgPSAo Q3ZSZWN0KikgJmZhY2VzLmZyb250KCk7Ci0gCi0gICAgICAgY3ZSZWxlYXNlSW1hZ2UoJmdyYXkp OwotICAgfQotQEAgLTMyMSw3ICszMjcsNyBAQCB2b2lkIEZhY2VCbDByOjpkZXN0cm95X3RyYWNr ZWRfb2JqZWN0IChUcmFja2VkT2JqKiBvYmopIHsKLSAKLSAvKiBHaXZlbiBhbiBpbWFnZSBhbmQg dHJhY2tlZCBvYmplY3QsIHJldHVybiBib3ggcG9zaXRpb24uICovCi0gQ3ZCb3gyRCBGYWNlQmww cjo6Y2Ftc2hpZnRfdHJhY2tfZmFjZSAoSXBsSW1hZ2UqIGltYWdlLCBUcmFja2VkT2JqKiBvYmop IHsKLS0gIEN2Q29ubmVjdGVkQ29tcCBjb21wb25lbnRzOwotKyAgLy9DdkNvbm5lY3RlZENvbXAg Y29tcG9uZW50czsKLSAKLSAgIC8vY3JlYXRlIGEgbmV3IGh1ZSBpbWFnZQotICAgdXBkYXRlX2h1 ZV9pbWFnZShpbWFnZSwgb2JqKTsKLUBAIC0zMzAsMTYgKzMzNiwxOCBAQCBDdkJveDJEIEZhY2VC bDByOjpjYW1zaGlmdF90cmFja19mYWNlIChJcGxJbWFnZSogaW1hZ2UsIFRyYWNrZWRPYmoqIG9i aikgewotICAgY3ZDYWxjQmFja1Byb2plY3QoJm9iai0+aHVlLCBvYmotPnByb2IsIG9iai0+aGlz dCk7Ci0gICBjdkFuZChvYmotPnByb2IsIG9iai0+bWFzaywgb2JqLT5wcm9iLCAwKTsKLSAKLSsg IGN2OjpNYXQgb2JqX3Byb2JfbWF0ID0gY3Y6OmN2YXJyVG9NYXQoJm9iai0+cHJvYik7Ci0rCi0g ICAvL3VzZSBDYW1TaGlmdCB0byBmaW5kIHRoZSBjZW50ZXIgb2YgdGhlIG5ldyBmYWNlIHByb2Jh YmlsaXR5Ci0tICBjdkNhbVNoaWZ0KG9iai0+cHJvYiwgb2JqLT5wcmV2X3JlY3QsCi0tICAgICAg ICAgICAgIGN2VGVybUNyaXRlcmlhKENWX1RFUk1DUklUX0VQUyB8IENWX1RFUk1DUklUX0lURVIs IDEwLCAxKSwKLS0gICAgICAgICAgICAgJmNvbXBvbmVudHMsICZvYmotPmN1cnJfYm94KTsKLSsg IGN2OjpSb3RhdGVkUmVjdCByb3RfcmVjdCA9IGN2OjpDYW1TaGlmdChvYmpfcHJvYl9tYXQsIG9i ai0+cHJldl9yZWN0LAotKyAgICAgICAgICAgICBjdlRlcm1Dcml0ZXJpYShDVl9URVJNQ1JJVF9F UFMgfCBDVl9URVJNQ1JJVF9JVEVSLCAxMCwgMSkpOwotKyAgLy8gICAgICAgICAgICZjb21wb25l bnRzLCAmb2JqLT5jdXJyX2JveCk7Ci0gCi0gICAvL3VwZGF0ZSBmYWNlIGxvY2F0aW9uIGFuZCBh bmdsZQotLSAgb2JqLT5wcmV2X3JlY3QgPSBjb21wb25lbnRzLnJlY3Q7Ci0tICBvYmotPmN1cnJf Ym94LmFuZ2xlID0gLW9iai0+Y3Vycl9ib3guYW5nbGU7Ci0rICAvL29iai0+cHJldl9yZWN0ID0g Y29tcG9uZW50cy5yZWN0OwotKyAgLy9vYmotPmN1cnJfYm94LmFuZ2xlID0gLW9iai0+Y3Vycl9i b3guYW5nbGU7Ci0gCi0tICByZXR1cm4gb2JqLT5jdXJyX2JveDsKLSsgIHJldHVybiByb3RfcmVj dDsKLSB9Ci0gCi0gdm9pZCBGYWNlQmwwcjo6dXBkYXRlX2h1ZV9pbWFnZSAoY29uc3QgSXBsSW1h Z2UqIGltYWdlLCBUcmFja2VkT2JqKiBvYmopIHsKCmRpZmYgLS1naXQgYS83NDgyYzMyMGI1Mjk1 NjcxM2QwYjUxMTc3MWIyMzAyMGZhYmQwN2EyLnBhdGNoIGIvNzQ4MmMzMjBiNTI5NTY3MTNkMGI1 MTE3NzFiMjMwMjBmYWJkMDdhMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MzBkNTMxYy4uMDAwMDAwMAotLS0gYS83NDgyYzMyMGI1Mjk1NjcxM2QwYjUxMTc3MWIyMzAyMGZh YmQwN2EyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQxICswLDAgQEAKLUZyb20gNzQ4MmMz MjBiNTI5NTY3MTNkMGI1MTE3NzFiMjMwMjBmYWJkMDdhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206ID0/VVRGLTg/cT9TdGVmYW49MjBCcj1DMz1CQ25zPz0gPHN0ZWZhbi5icnVlbnNA cnd0aC1hYWNoZW4uZGU+Ci1EYXRlOiBXZWQsIDEgSmFuIDIwMjAgMjI6NTk6MjQgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gUG9ydCBmYWNlYmwwciB0byBPcGVuQ1YgQysrIEFQSQotCi1UcmFja2Vk T2JqIGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGNsYXNzLCBhbmQgdGhlIHVwZGF0ZV9odWVfaW1h Z2UgYW5kCi1jYW1zaGlmdF90cmFja19mYWNlIG1ldGhvZHMgYXJlIG5vdyBtZW1iZXJzIG9mIGl0 LCBpbnN0ZWFkIG9mIHBhc3NpbmcKLXRoZSBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuCi0KLUFsc28s IHRoZSB2YXJpb3VzIGN2OjpNYXQgaW5zdGFuY2VzIGFyZSBrZXB0LCBpbnN0ZWFkIG9mIGRlc3Ry b3lpbmcgYW5kCi1yZWNyZWF0aW5nIHRoZXNlIG9uIHZhcmlvdXMgb2NjYXNpb25zLgotCi1UaGUg cGx1Z2luIG5vdyBvbmx5IGFjY2VwdHMgQkdSQTg4ODggYXMgaW1hZ2UgZm9ybWF0LCBhcyB0aGlz IGlzIHRoZQotZXhwZWN0ZWQgbGF5b3V0IHRocm91Z2hvdXQgdGhlIGNvZGUgKGRlZmF1bHQgb3Bl bkNWIGNoYW5uZWwgb3JkZXIpLgotCi1UaGUgcGx1Z2luIGhhcyBiZWVuIHRlc3RlZCB1c2luZyB0 aGUgZm9sbG93aW5nIGdzdHJlYW1lciBwaXBlbGluZToKLWdzdC1sYXVuY2gtMS4wIHY0bDJzcmMg ISBpbWFnZS9qcGVnLHdpZHRoPTY0MCxyYXRlPTEvMTUgXAotICAhIGpwZWdkZWMgISB2aWRlb2Nv bnZlcnQgXAotICAhIGZyZWkwci1maWx0ZXItZmFjZWJsMHIgZWxsaXBzZT0xIFwKLSAgICBjbGFz c2lmaWVyPS91c3Ivc2hhcmUvT3BlbkNWL2hhYXJjYXNjYWRlcy9oYWFyY2FzY2FkZV9mcm9udGFs ZmFjZV9kZWZhdWx0LnhtbCBcCi0gICEgdmlkZW9jb252ZXJ0ICEgYXV0b3ZpZGVvc2luawotLS0t Ci0gc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmwwci5jcHAgfCAyOTIgKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgMTkw IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmww ci5jcHAgYi9zcmMvZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcAotaW5kZXggMTc0NDZjYy4u OTYyMjJkOCAxMDA2NDQKLS0tLSBhL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwCi0r KysgYi9zcmMvZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcAotQEAgLTIyLDQ5ICsyMiw0OSBA QAotICNpbmNsdWRlICJmcmVpMHIuaHBwIgotICNpbmNsdWRlICJmcmVpMHJfbWF0aC5oIgotIAot LXR5cGVkZWYgc3RydWN0IHsKLS0gIElwbEltYWdlKiBoc3Y7ICAgICAvL2lucHV0IGltYWdlIGNv bnZlcnRlZCB0byBIU1YKLS0gIElwbEltYWdlKiBodWU7ICAgICAvL2h1ZSBjaGFubmVsIG9mIEhT ViBpbWFnZQotLSAgSXBsSW1hZ2UqIG1hc2s7ICAgIC8vaW1hZ2UgZm9yIG1hc2tpbmcgcGl4ZWxz Ci0tICBJcGxJbWFnZSogcHJvYjsgICAgLy9mYWNlIHByb2JhYmlsaXR5IGVzdGltYXRlcyBmb3Ig ZWFjaCBwaXhlbAotK2NsYXNzIFRyYWNrZWRPYmogewotK3B1YmxpYzoKLSsgIHZvaWQgdXBkYXRl X2hpc3QoKTsKLSsgIHZvaWQgdXBkYXRlX2h1ZV9pbWFnZSAoY29uc3QgY3Y6Ok1hdCYgaW1hZ2Up OwotKyAgY3Y6OlJvdGF0ZWRSZWN0IGNhbXNoaWZ0X3RyYWNrX2ZhY2UoKTsKLSsKLSsgIGN2OjpN YXQgaHN2OyAgICAgLy9pbnB1dCBpbWFnZSBjb252ZXJ0ZWQgdG8gSFNWCi0rICBjdjo6TWF0IGh1 ZTsgICAgIC8vaHVlIGNoYW5uZWwgb2YgSFNWIGltYWdlCi0rICBjdjo6TWF0IG1hc2s7ICAgIC8v aW1hZ2UgZm9yIG1hc2tpbmcgcGl4ZWxzCi0rICBjdjo6TWF0IHByb2I7ICAgIC8vZmFjZSBwcm9i YWJpbGl0eSBlc3RpbWF0ZXMgZm9yIGVhY2ggcGl4ZWwKLSAKLS0gIEN2SGlzdG9ncmFtKiBoaXN0 OyAvL2hpc3RvZ3JhbSBvZiBodWUgaW4gb3JpZ2luYWwgZmFjZSBpbWFnZQotKyAgY3Y6Ok1hdCBo aXN0OyAgICAvL2hpc3RvZ3JhbSBvZiBodWUgaW4gb3JpZ2luYWwgZmFjZSBpbWFnZQotKyAgc3Rh dGljIGNvbnN0IGludCBoaXN0X2JpbnM7ICAgICAgIC8vbnVtYmVyIG9mIGhpc3RvZ3JhbSBiaW5z Ci0rICBzdGF0aWMgY29uc3QgZmxvYXQgaGlzdF9yYW5nZVsyXTsgLy9oaXN0b2dyYW0gcmFuZ2UK LSsKLSsgIGN2OjpSZWN0IHByZXZfcmVjdDsgIC8vbG9jYXRpb24gb2YgZmFjZSBpbiBwcmV2aW91 cyBmcmFtZQotKyAgY3Y6OlJvdGF0ZWRSZWN0IGN1cnJfYm94OyAgLy9jdXJyZW50IGZhY2UgbG9j YXRpb24gZXN0aW1hdGUKLSt9OwotIAotLSAgQ3ZSZWN0IHByZXZfcmVjdDsgIC8vbG9jYXRpb24g b2YgZmFjZSBpbiBwcmV2aW91cyBmcmFtZQotLSAgQ3ZCb3gyRCBjdXJyX2JveDsgIC8vY3VycmVu dCBmYWNlIGxvY2F0aW9uIGVzdGltYXRlCi0tfSBUcmFja2VkT2JqOwotK2NvbnN0IGZsb2F0IFRy YWNrZWRPYmo6Omhpc3RfcmFuZ2VbMl0gPSB7IDAsIDE4MCB9OwotK2NvbnN0IGludCBUcmFja2Vk T2JqOjpoaXN0X2JpbnMgPSAzMDsKLSAKLSBjbGFzcyBGYWNlQmwwcjogcHVibGljIGZyZWkwcjo6 ZmlsdGVyIHsKLSAKLSBwdWJsaWM6Ci0gICAgIEZhY2VCbDByKGludCB3ZHQsIGludCBoZ3QpOwot LSAgICB+RmFjZUJsMHIoKTsKLSsgICAgfkZhY2VCbDByKCkgPSBkZWZhdWx0OwotIAotICAgICB2 b2lkIHVwZGF0ZShkb3VibGUgdGltZSwKLSAgICAgICAgICAgICAgICAgdWludDMyX3QqIG91dCwK LSAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGluKTsKLSAKLSBwcml2YXRlOgotLSAg ICAKLS0vLyBjYW1zaGlmdAotLSAgICBUcmFja2VkT2JqKiBjcmVhdGVfdHJhY2tlZF9vYmplY3Qg KElwbEltYWdlKiBpbWFnZSwgQ3ZSZWN0KiBmYWNlX3JlY3QpOwotLSAgICB2b2lkIGRlc3Ryb3lf dHJhY2tlZF9vYmplY3QgKFRyYWNrZWRPYmoqIHRyYWNrZWRfb2JqKTsKLS0gICAgQ3ZCb3gyRCBj YW1zaGlmdF90cmFja19mYWNlIChJcGxJbWFnZSogaW1hZ2UsIFRyYWNrZWRPYmoqIGltZ3MpOwot LSAgICB2b2lkIHVwZGF0ZV9odWVfaW1hZ2UgKGNvbnN0IElwbEltYWdlKiBpbWFnZSwgVHJhY2tl ZE9iaiogaW1ncyk7Ci0tICAgIAotKwotIC8vdHJhY2tmYWNlCi0tICAgIEN2UmVjdCogZGV0ZWN0 X2ZhY2UgKElwbEltYWdlKiwgQ3ZIYWFyQ2xhc3NpZmllckNhc2NhZGUqLCBDdk1lbVN0b3JhZ2Uq KTsKLS0gICAgCi0rICAgIHN0ZDo6dmVjdG9yPGN2OjpSZWN0PiBkZXRlY3RfZmFjZSgpOwotKwot KyAgICBUcmFja2VkT2JqIHRyYWNrZWRfb2JqOwotIAotLSAgICBUcmFja2VkT2JqKiB0cmFja2Vk X29iajsKLS0gICAgQ3ZCb3gyRCBmYWNlX2JveDsgLy9hcmVhIHRvIGRyYXcKLS0gICAgQ3ZSZWN0 KiBmYWNlX3JlY3Q7Ci0tICAgIAotIC8vdXNlZCBieSBjYXB0dXJlX3ZpZGVvX2ZyYW1lLCBzbyB3 ZSBkb24ndCBoYXZlIHRvIGtlZXAgY3JlYXRpbmcuCi0tICAgIElwbEltYWdlKiBpbWFnZTsKLSsg ICAgY3Y6Ok1hdCBpbWFnZTsKLSAKLS0gICAgQ3ZIYWFyQ2xhc3NpZmllckNhc2NhZGUqIGNhc2Nh ZGU7Ci0tICAgIEN2TWVtU3RvcmFnZSogc3RvcmFnZTsKLSsgICAgY3Y6OkNhc2NhZGVDbGFzc2lm aWVyIGNhc2NhZGU7Ci0gCi0gICAgIC8vIHBsdWdpbiBwYXJhbWV0ZXJzCi0gICAgIHN0ZDo6c3Ry aW5nIGNsYXNzaWZpZXI7Ci1AQCAtNzcsNyArNzcsNiBAQCBjbGFzcyBGYWNlQmwwcjogcHVibGlj IGZyZWkwcjo6ZmlsdGVyIHsKLSAgICAgZG91YmxlIGxhcmdlc3Q7Ci0gCi0gICAgIHN0ZDo6c3Ry aW5nIG9sZF9jbGFzc2lmaWVyOwotLSAgCi0gCi0gICAgIHVuc2lnbmVkIGludCBmYWNlX2ZvdW5k OwotICAgICB1bnNpZ25lZCBpbnQgZmFjZV9ub3Rmb3VuZDsKLUBAIC04NywxOCArODYsMTIgQEAg Y2xhc3MgRmFjZUJsMHI6IHB1YmxpYyBmcmVpMHI6OmZpbHRlciB7Ci0gZnJlaTByOjpjb25zdHJ1 Y3Q8RmFjZUJsMHI+IHBsdWdpbigiRmFjZUJsMHIiLAotIAkJCQkgICJhdXRvbWF0aWMgZmFjZSBi bHVyIiwKLSAJCQkJICAiWmlvS2VybmVsLCBCaWlsbHksIEppbHQsIEphcm9taWwsIGRkZW5uZWR5 IiwKLS0JCQkJICAxLDEsIEYwUl9DT0xPUl9NT0RFTF9QQUNLRUQzMik7Ci0rCQkJCSAgMSwxLCBG MFJfQ09MT1JfTU9ERUxfQkdSQTg4ODgpOwotIAotIEZhY2VCbDByOjpGYWNlQmwwcihpbnQgd2R0 LCBpbnQgaGd0KSB7Ci0gCi0tICBmYWNlX3JlY3QgPSAwOwotLSAgaW1hZ2UgPSAwOwotLSAgdHJh Y2tlZF9vYmogPSAwOwotICAgZmFjZV9mb3VuZCA9IDA7Ci0tICAKLS0gIGNhc2NhZGUgPSAwOwot LSAgc3RvcmFnZSA9IDA7Ci0tICAKLSsKLSAgIGNsYXNzaWZpZXIgPSAiL3Vzci9zaGFyZS9vcGVu Y3YvaGFhcmNhc2NhZGVzL2hhYXJjYXNjYWRlX2Zyb250YWxmYWNlX2RlZmF1bHQueG1sIjsKLSAg IHJlZ2lzdGVyX3BhcmFtKGNsYXNzaWZpZXIsCi0gICAgICAgICAgICAgICAgICAiQ2xhc3NpZmll ciIsCi1AQCAtMTIwLDUyICsxMTMsMzUgQEAgRmFjZUJsMHI6OkZhY2VCbDByKGludCB3ZHQsIGlu dCBoZ3QpIHsKLSAgIHJlZ2lzdGVyX3BhcmFtKGxhcmdlc3QsICJMYXJnZXN0IiwgIk1heGltdW0g b2JqZWN0IHNpemUgaW4gcGl4ZWxzLCBkaXZpZGVkIGJ5IDEwMDAwIik7Ci0gfQotIAotLUZhY2VC bDByOjp+RmFjZUJsMHIoKSB7Ci0tICAgIGlmKHRyYWNrZWRfb2JqKQotLSAgICAgICAgZGVzdHJv eV90cmFja2VkX29iamVjdCh0cmFja2VkX29iaik7Ci0tCi0tICAgIGlmKGNhc2NhZGUpIGN2UmVs ZWFzZUhhYXJDbGFzc2lmaWVyQ2FzY2FkZSgmY2FzY2FkZSk7Ci0tICAgIGlmKHN0b3JhZ2UpIGN2 UmVsZWFzZU1lbVN0b3JhZ2UoJnN0b3JhZ2UpOwotLSAgICAKLS19Ci0tCi0gdm9pZCBGYWNlQmww cjo6dXBkYXRlKGRvdWJsZSB0aW1lLAotICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCog b3V0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGluKSB7Ci0t Ci0tICBpZiAoIWNhc2NhZGUpIHsKLS0gICAgICBjdlNldE51bVRocmVhZHMoY3ZSb3VuZCh0aHJl YWRzICogMTAwKSk7Ci0tICAgICAgaWYgKGNsYXNzaWZpZXIubGVuZ3RoKCkgPiAwKSB7Ci0tCWlm IChjbGFzc2lmaWVyID09IG9sZF9jbGFzc2lmaWVyKSB7Ci0tCSAgLy8gc2FtZSBhcyBiZWZvcmUs IGF2b2lkIHJlcGVhdGluZyBlcnJvciBtZXNzYWdlcwotLQkgIG1lbWNweShvdXQsIGluLCBzaXpl ICogNCk7IC8vIG9mIGNvdXJzZSBhc3N1bWluZyB3ZSBhcmUgUkdCQSBvbmx5Ci0tCSAgcmV0dXJu OwotLQl9IGVsc2Ugb2xkX2NsYXNzaWZpZXIgPSBjbGFzc2lmaWVyOwotLQotLQljYXNjYWRlID0g KEN2SGFhckNsYXNzaWZpZXJDYXNjYWRlKikgY3ZMb2FkKGNsYXNzaWZpZXIuY19zdHIoKSwgMCwg MCwgMCApOwotLQlpZiAoIWNhc2NhZGUpIHsKLS0JICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGlu IGZpbHRlciBmYWNlYmwwciwgY2xhc3NpZmllciBjYXNjYWRlIG5vdCBmb3VuZDpcbiIpOwotLQkg IGZwcmludGYoc3RkZXJyLCAiICVzXG4iLCBjbGFzc2lmaWVyLmNfc3RyKCkpOwotLQkgIG1lbWNw eShvdXQsIGluLCBzaXplICogNCk7Ci0tCSAgcmV0dXJuOwotLQl9Ci0tCXN0b3JhZ2UgPSBjdkNy ZWF0ZU1lbVN0b3JhZ2UoMCk7Ci0tICAgICAgfQotLSAgICAgIGVsc2UgewotLQltZW1jcHkob3V0 LCBpbiwgc2l6ZSAqIDQpOwotLQlyZXR1cm47Ci0tICAgICAgfQotLSAgfQotKyAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB1aW50MzJfdCogaW4pCi0rewotKyAgICBpZiAoY2FzY2FkZS5lbXB0 eSgpKSB7Ci0rICAgICAgICBjdjo6c2V0TnVtVGhyZWFkcyhjdlJvdW5kKHRocmVhZHMgKiAxMDAp KTsKLSsgICAgICAgIGlmIChjbGFzc2lmaWVyLmxlbmd0aCgpID09IDAgfHwgY2xhc3NpZmllciA9 PSBvbGRfY2xhc3NpZmllcikgewotKyAgICAgICAgICAgIC8vIHNhbWUgYXMgYmVmb3JlLCBhdm9p ZCByZXBlYXRpbmcgZXJyb3IgbWVzc2FnZXMKLSsgICAgICAgICAgICBtZW1jcHkob3V0LCBpbiwg c2l6ZSAqIDQpOyAvLyBvZiBjb3Vyc2UgYXNzdW1pbmcgd2UgYXJlIFJHQkEgb25seQotKyAgICAg ICAgICAgIHJldHVybjsKLSsgICAgICAgIH0KLSsgICAgICAgIG9sZF9jbGFzc2lmaWVyID0gY2xh c3NpZmllcjsKLSsgICAgfQotKwotKyAgICBpZiAoIWNhc2NhZGUubG9hZChjbGFzc2lmaWVyLmNf c3RyKCkpKSB7Ci0rICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SIGluIGZpbHRlciBmYWNl YmwwciwgY2xhc3NpZmllciBjYXNjYWRlIG5vdCBmb3VuZDpcbiIpOwotKyAgICAgICAgZnByaW50 ZihzdGRlcnIsICIgJXNcbiIsIGNsYXNzaWZpZXIuY19zdHIoKSk7Ci0rICAgICAgICBtZW1jcHko b3V0LCBpbiwgc2l6ZSAqIDQpOwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0gCi0gICAvLyBz YW5pdGl6ZSBwYXJhbWV0ZXJzCi0gICByZWNoZWNrID0gQ0xBTVAocmVjaGVjaywgMC4wMDEsIDEu MCk7Ci0gICBzZWFyY2hfc2NhbGUgPSBDTEFNUChzZWFyY2hfc2NhbGUsIDAuMTEsIDEuMCk7Ci0g ICBuZWlnaGJvcnMgPSBDTEFNUChuZWlnaGJvcnMsIDAuMDEsIDEuMCk7Ci0gCi0tICBpZiggIWlt YWdlICkKLS0gICAgICBpbWFnZSA9IGN2Q3JlYXRlSW1hZ2UoIGN2U2l6ZSh3aWR0aCxoZWlnaHQp LCBJUExfREVQVEhfOFUsIDQgKTsKLS0KLS0gIG1lbWNweShpbWFnZS0+aW1hZ2VEYXRhLCBpbiwg c2l6ZSAqIDQpOwotKyAgLy8gY29weSBpbnB1dCBpbWFnZSB0byBPcGVuQ1YKLSsgIGltYWdlID0g Y3Y6Ok1hdChoZWlnaHQsIHdpZHRoLCBDVl84VUM0LCAodm9pZCopaW4pOwotKyAgdHJhY2tlZF9v YmoudXBkYXRlX2h1ZV9pbWFnZShpbWFnZSk7Ci0gCi0gICAvKgotICAgICBubyBmYWNlKgotQEAg LTE3NiwyNyArMTUyLDI0IEBAIHZvaWQgRmFjZUJsMHI6OnVwZGF0ZShkb3VibGUgdGltZSwKLSAg ICAgICAgbm8gZmFjZSoKLSAgICAqLwotICAgaWYoZmFjZV9ub3Rmb3VuZD4wKSB7Ci0tCi0rICAg ICAgc3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+IGZhY2VzOwotICAgICAgIGlmKGZhY2Vfbm90Zm91bmQg JSBjdlJvdW5kKHJlY2hlY2sgKiAxMDAwKSA9PSAwKQotLSAgICAgICAgICBmYWNlX3JlY3QgPSBk ZXRlY3RfZmFjZShpbWFnZSwgY2FzY2FkZSwgc3RvcmFnZSk7Ci0rICAgICAgICAgIGZhY2VzID0g ZGV0ZWN0X2ZhY2UoKTsKLSAKLSAgICAgICAvLyBpZiBubyBmYWNlIGRldGVjdGVkCi0tICAgICAg aWYgKCFmYWNlX3JlY3QpIHsKLSsgICAgICBpZiAoZmFjZXMuZW1wdHkoKSkgewotICAgICAgICAg ICBmYWNlX25vdGZvdW5kKys7Ci0gICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgLy90cmFjayBk ZXRlY3RlZCBmYWNlIHdpdGggY2Ftc2hpZnQKLS0gICAgICAgICAgaWYodHJhY2tlZF9vYmopCi0t ICAgICAgICAgICAgICBkZXN0cm95X3RyYWNrZWRfb2JqZWN0KHRyYWNrZWRfb2JqKTsKLS0gICAg ICAgICAgdHJhY2tlZF9vYmogPSBjcmVhdGVfdHJhY2tlZF9vYmplY3QoaW1hZ2UsIGZhY2VfcmVj dCk7Ci0rICAgICAgICAgIHRyYWNrZWRfb2JqLnByZXZfcmVjdCA9IGZhY2VzWzBdOwotKyAgICAg ICAgICB0cmFja2VkX29iai51cGRhdGVfaGlzdCgpOwotICAgICAgICAgICBmYWNlX25vdGZvdW5k ID0gMDsKLSAgICAgICAgICAgZmFjZV9mb3VuZCsrOwotICAgICAgIH0KLS0KLSAgIH0KLSAKLS0g IGlmKGZhY2VfZm91bmQ+MCkgeyAKLSsgIGlmIChmYWNlX2ZvdW5kID4gMCkgewotICAgICAgIC8v dHJhY2sgdGhlIGZhY2UgaW4gdGhlIG5ldyBmcmFtZQotLSAgICAgIGZhY2VfYm94ID0gY2Ftc2hp ZnRfdHJhY2tfZmFjZShpbWFnZSwgdHJhY2tlZF9vYmopOwotKyAgICAgIGN2OjpSb3RhdGVkUmVj dCBmYWNlX2JveCA9IHRyYWNrZWRfb2JqLmNhbXNoaWZ0X3RyYWNrX2ZhY2UoKTsKLSAKLSAgICAg ICBpbnQgbWluID0gY3ZSb3VuZChzbWFsbGVzdCAqIDEwMDApOwotICAgICAgICAgICBtaW4gPSBt aW4/IG1pbiA6IDEwOwotQEAgLTIxMCwxNyArMTgzLDEzIEBAIHZvaWQgRmFjZUJsMHI6OnVwZGF0 ZShkb3VibGUgdGltZSwKLSAgICAgICAgICAgZmFjZV9ub3Rmb3VuZCsrOwotICAgICAgIH0KLSAg ICAgICBlbHNlIHsKLS0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLS0JICAgICAgY3ZTZXRJbWFnZVJPSSAoaW1h Z2UsIHRyYWNrZWRfb2JqLT5wcmV2X3JlY3QpOwotLS8vICAgICAgICAgIGN2U21vb3RoIChpbWFn ZSwgaW1hZ2UsIENWX0JMVVIsIDIyLCAyMiwgMCwgMCk7Ci0tCQkgIGN2U21vb3RoIChpbWFnZSwg aW1hZ2UsIENWX0JMVVIsIDIzLCAyMywgMCwgMCk7Ci0tLy8gICAgICAgICAgY3ZTbW9vdGggKGlt YWdlLCBpbWFnZSwgQ1ZfR0FVU1NJQU4sIDExLCAxMSwgMCwgMCk7Ci0tCQkgIGN2UmVzZXRJbWFn ZVJPSSAoaW1hZ2UpOwotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLSAgICAgIAotKyAgICAgICAgICBjdjo6 UmVjdCBibHVyX3JlZ2lvbiA9IHRyYWNrZWRfb2JqLnByZXZfcmVjdCAmIGN2OjpSZWN0KHswLCAw fSwgaW1hZ2Uuc2l6ZSgpKTsKLSsgICAgICAgICAgY3Y6Ok1hdCBibHVyKGltYWdlLCBibHVyX3Jl Z2lvbik7Ci0rICAgICAgICAgIGN2OjpibHVyKGJsdXIsIGJsdXIsIHsyMywgMjN9LCBjdjo6UG9p bnQoLTEsIC0xKSk7Ci0rCi0gICAgICAgICAgIC8vb3V0bGluZSBmYWNlIGVsbGlwc2UKLSAgICAg ICAgICAgaWYgKGVsbGlwc2UpCi0tICAgICAgICAgICAgICBjdkVsbGlwc2VCb3goaW1hZ2UsIGZh Y2VfYm94LCBDVl9SR0IoMjU1LDAsMCksIDIsIENWX0FBLCAwKTsKLSsgICAgICAgICAgICAgIGN2 OjplbGxpcHNlKGltYWdlLCBmYWNlX2JveCwgQ1ZfUkdCKDI1NSwwLDApLCAyLCBjdjo6TElORV9B QSk7Ci0gCi0gICAgICAgICAgIGZhY2VfZm91bmQrKzsKLSAgICAgICAgICAgaWYoZmFjZV9mb3Vu ZCAlIGN2Um91bmQocmVjaGVjayAqIDEwMDApID09IDApCi1AQCAtMjI4LDEzMyArMTk3LDc2IEBA IHZvaWQgRmFjZUJsMHI6OnVwZGF0ZShkb3VibGUgdGltZSwKLSAgICAgICB9Ci0gICB9Ci0gCi0t ICBtZW1jcHkob3V0LCBpbWFnZS0+aW1hZ2VEYXRhLCBzaXplICogNCk7Ci0tICBjdlJlbGVhc2VJ bWFnZSgmaW1hZ2UpOwotKyAgbWVtY3B5KG91dCwgaW1hZ2UuZGF0YSwgc2l6ZSAqIDQpOwotIH0K LSAKLSAvKiBHaXZlbiBhbiBpbWFnZSBhbmQgYSBjbGFzc2lkZXIsIGRldGVjdCBhbmQgcmV0dXJu IHJlZ2lvbi4gKi8KLS1DdlJlY3QqIEZhY2VCbDByOjpkZXRlY3RfZmFjZSAoSXBsSW1hZ2UqIGlt YWdlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdkhhYXJDbGFzc2lmaWVyQ2Fz Y2FkZSogY2FzY2FkZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3ZNZW1TdG9y YWdlKiBzdG9yYWdlKSB7Ci0tICAgIAotLSAgQ3ZSZWN0KiByZWN0ID0gMDsKLS0gIAotLSAgaWYg KGNhc2NhZGUgJiYgc3RvcmFnZSkgewotK3N0ZDo6dmVjdG9yPGN2OjpSZWN0PiBGYWNlQmwwcjo6 ZGV0ZWN0X2ZhY2UoKQotK3sKLSsgICAgaWYgKGNhc2NhZGUuZW1wdHkoKSkgewotKyAgICAgICAg cmV0dXJuIHN0ZDo6dmVjdG9yPGN2OjpSZWN0PigpOwotKyAgICB9Ci0rCi0gICAgICAvL3VzZSBh biBlcXVhbGl6ZWQgZ3JheSBpbWFnZSBmb3IgYmV0dGVyIHJlY29nbml0aW9uCi0tICAgICBJcGxJ bWFnZSogZ3JheSA9IGN2Q3JlYXRlSW1hZ2UoY3ZTaXplKGltYWdlLT53aWR0aCwgaW1hZ2UtPmhl aWdodCksIDgsIDEpOwotLSAgICAgY3ZDdnRDb2xvcihpbWFnZSwgZ3JheSwgQ1ZfQkdSMkdSQVkp OwotLSAgICAgY3ZFcXVhbGl6ZUhpc3QoZ3JheSwgZ3JheSk7Ci0tICAgICBjdkNsZWFyTWVtU3Rv cmFnZShzdG9yYWdlKTsKLSsgICAgIGN2OjpNYXQgZ3JheTsKLSsgICAgIGN2OjpjdnRDb2xvcihp bWFnZSwgZ3JheSwgQ1ZfQkdSMkdSQVkpOwotKyAgICAgY3Y6OmVxdWFsaXplSGlzdChncmF5LCBn cmF5KTsKLSAKLSAgICAgICAvL2dldCBhIHNlcXVlbmNlIG9mIGZhY2VzIGluIGltYWdlCi0gICAg ICAgaW50IG1pbiA9IGN2Um91bmQoc21hbGxlc3QgKiAxMDAwKTsKLS0gICAgICBDdlNlcSAqZmFj ZXMgPSBjdkhhYXJEZXRlY3RPYmplY3RzKGdyYXksIGNhc2NhZGUsIHN0b3JhZ2UsCi0rICAgICAg c3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+IGZhY2VzOwotKyAgICAgIGNhc2NhZGUuZGV0ZWN0TXVsdGlT Y2FsZShncmF5LCBmYWNlcywKLSAgICAgICAgICBzZWFyY2hfc2NhbGUgKiAxMC4wLAotICAgICAg ICAgIGN2Um91bmQobmVpZ2hib3JzICogMTAwKSwKLSAgICAgICAgICBDVl9IQUFSX0ZJTkRfQklH R0VTVF9PQkpFQ1R8Ly9zaW5jZSB3ZSB0cmFjayBvbmx5IHRoZSBmaXJzdCwgZ2V0IHRoZSBiaWdn ZXN0Ci0gICAgICAgICAgQ1ZfSEFBUl9ET19DQU5OWV9QUlVOSU5HLCAgLy9za2lwIHJlZ2lvbnMg dW5saWtlbHkgdG8gY29udGFpbiBhIGZhY2UKLS0gICAgICAgICBjdlNpemUobWluLCBtaW4pKTsK LS0gICAgCi0tICAgICAgLy9pZiBvbmUgb3IgbW9yZSBmYWNlcyBhcmUgZGV0ZWN0ZWQsIHJldHVy biB0aGUgZmlyc3Qgb25lCi0tICAgICAgaWYoZmFjZXMgJiYgZmFjZXMtPnRvdGFsKQotLSAgICAg ICAgcmVjdCA9IChDdlJlY3QqKSBjdkdldFNlcUVsZW0oZmFjZXMsIDApOwotKyAgICAgICAgIGN2 OjpTaXplKG1pbiwgbWluKSk7Ci0gCi0tICAgICAgY3ZSZWxlYXNlSW1hZ2UoJmdyYXkpOwotLSAg fQotLQotLSAgcmV0dXJuIHJlY3Q7Ci0rICAgIHJldHVybiBmYWNlczsKLSB9Ci0gCi0tLyogQ3Jl YXRlIGEgY2Ftc2hpZnQgdHJhY2tlZCBvYmplY3QgZnJvbSBhIHJlZ2lvbiBpbiBpbWFnZS4gKi8K LS1UcmFja2VkT2JqKiBGYWNlQmwwcjo6Y3JlYXRlX3RyYWNrZWRfb2JqZWN0IChJcGxJbWFnZSog aW1hZ2UsIEN2UmVjdCogcmVnaW9uKSB7Ci0tICBUcmFja2VkT2JqKiBvYmo7Ci0tICAKLS0gIC8v YWxsb2NhdGUgbWVtb3J5IGZvciB0cmFja2VkIG9iamVjdCBzdHJ1Y3QKLS0gIGlmKChvYmogPSAo VHJhY2tlZE9iaiAqKSBtYWxsb2Moc2l6ZW9mICpvYmopKSAhPSBOVUxMKSB7Ci0tICAgIC8vY3Jl YXRlLWltYWdlOiBzaXplKHcsaCksIGJpdCBkZXB0aCwgY2hhbm5lbHMKLS0gICAgb2JqLT5oc3Yg ID0gY3ZDcmVhdGVJbWFnZShjdkdldFNpemUoaW1hZ2UpLCA4LCAzKTsKLS0gICAgb2JqLT5tYXNr ID0gY3ZDcmVhdGVJbWFnZShjdkdldFNpemUoaW1hZ2UpLCA4LCAxKTsKLS0gICAgb2JqLT5odWUg ID0gY3ZDcmVhdGVJbWFnZShjdkdldFNpemUoaW1hZ2UpLCA4LCAxKTsKLS0gICAgb2JqLT5wcm9i ID0gY3ZDcmVhdGVJbWFnZShjdkdldFNpemUoaW1hZ2UpLCA4LCAxKTsKLS0KLS0gICAgaW50IGhp c3RfYmlucyA9IDMwOyAgICAgICAgICAgLy9udW1iZXIgb2YgaGlzdG9ncmFtIGJpbnMKLS0gICAg ZmxvYXQgaGlzdF9yYW5nZVtdID0gezAsMTgwfTsgLy9oaXN0b2dyYW0gcmFuZ2UKLS0gICAgZmxv YXQqIHJhbmdlID0gaGlzdF9yYW5nZTsKLS0gICAgb2JqLT5oaXN0ID0gY3ZDcmVhdGVIaXN0KDEs ICAgICAgICAgICAgIC8vbnVtYmVyIG9mIGhpc3QgZGltZW5zaW9ucwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmhpc3RfYmlucywgICAgLy9hcnJheSBvZiBkaW1lbnNpb24gc2l6ZXMK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWX0hJU1RfQVJSQVksIC8vcmVwcmVzZW50 YXRpb24gZm9ybWF0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmFuZ2UsICAgICAg ICAvL2FycmF5IG9mIHJhbmdlcyBmb3IgYmlucwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMSk7ICAgICAgICAgICAgLy91bmlmb3JtaXR5IGZsYWcKLS0gIH0KLS0gIAotLSAgLy9jcmVh dGUgYSBuZXcgaHVlIGltYWdlCi0tICB1cGRhdGVfaHVlX2ltYWdlKGltYWdlLCBvYmopOwotLQot LSAgZmxvYXQgbWF4X3ZhbCA9IDAuZjsKLS0gIAotK3ZvaWQgVHJhY2tlZE9iajo6dXBkYXRlX2hp c3QoKQotK3sKLSAgIC8vY3JlYXRlIGEgaGlzdG9ncmFtIHJlcHJlc2VudGF0aW9uIGZvciB0aGUg ZmFjZQotLSAgY3ZTZXRJbWFnZVJPSShvYmotPmh1ZSwgKnJlZ2lvbik7Ci0tICBjdlNldEltYWdl Uk9JKG9iai0+bWFzaywgKnJlZ2lvbik7Ci0tICBjdkNhbGNIaXN0KCZvYmotPmh1ZSwgb2JqLT5o aXN0LCAwLCBvYmotPm1hc2spOwotLSAgY3ZHZXRNaW5NYXhIaXN0VmFsdWUob2JqLT5oaXN0LCAw LCAmbWF4X3ZhbCwgMCwgMCApOwotLSAgY3ZDb252ZXJ0U2NhbGUob2JqLT5oaXN0LT5iaW5zLCBv YmotPmhpc3QtPmJpbnMsCi0tICAgICAgICAgICAgICAgICBtYXhfdmFsID8gMjU1LjAvbWF4X3Zh bCA6IDAsIDApOwotLSAgY3ZSZXNldEltYWdlUk9JKG9iai0+aHVlKTsKLS0gIGN2UmVzZXRJbWFn ZVJPSShvYmotPm1hc2spOwotLSAgCi0tICAvL3N0b3JlIHRoZSBwcmV2aW91cyBmYWNlIGxvY2F0 aW9uCi0tICBvYmotPnByZXZfcmVjdCA9ICpyZWdpb247Ci0tCi0tICByZXR1cm4gb2JqOwotLX0K LS0KLS0vKiBSZWxlYXNlIHJlc291cmNlcyBmcm9tIHRyYWNrZWQgb2JqZWN0LiAqLwotLXZvaWQg RmFjZUJsMHI6OmRlc3Ryb3lfdHJhY2tlZF9vYmplY3QgKFRyYWNrZWRPYmoqIG9iaikgewotLSAg Y3ZSZWxlYXNlSW1hZ2UoJm9iai0+aHN2KTsKLS0gIGN2UmVsZWFzZUltYWdlKCZvYmotPmh1ZSk7 Ci0tICBjdlJlbGVhc2VJbWFnZSgmb2JqLT5tYXNrKTsKLS0gIGN2UmVsZWFzZUltYWdlKCZvYmot PnByb2IpOwotLSAgY3ZSZWxlYXNlSGlzdCgmb2JqLT5oaXN0KTsKLSsgIGN2OjpNYXQgaHVlX3Jv aShodWUsIHByZXZfcmVjdCk7Ci0rICBjdjo6TWF0IG1hc2tfcm9pKG1hc2ssIHByZXZfcmVjdCk7 Ci0gCi0tICBmcmVlKG9iaik7Ci0rICBjb25zdCBmbG9hdCogcmFuZ2UgPSBoaXN0X3JhbmdlOwot KyAgY3Y6OmNhbGNIaXN0KCZodWVfcm9pLCAxLCBudWxscHRyLCBtYXNrX3JvaSwgaGlzdCwgMSwg Jmhpc3RfYmlucywgJnJhbmdlKTsKLSsgIG5vcm1hbGl6ZShoaXN0LCBoaXN0LCAwLCAyNTUsIGN2 OjpOT1JNX01JTk1BWCk7Ci0gfQotIAotIC8qIEdpdmVuIGFuIGltYWdlIGFuZCB0cmFja2VkIG9i amVjdCwgcmV0dXJuIGJveCBwb3NpdGlvbi4gKi8KLS1DdkJveDJEIEZhY2VCbDByOjpjYW1zaGlm dF90cmFja19mYWNlIChJcGxJbWFnZSogaW1hZ2UsIFRyYWNrZWRPYmoqIG9iaikgewotLSAgQ3ZD b25uZWN0ZWRDb21wIGNvbXBvbmVudHM7Ci0tCi0tICAvL2NyZWF0ZSBhIG5ldyBodWUgaW1hZ2UK LS0gIHVwZGF0ZV9odWVfaW1hZ2UoaW1hZ2UsIG9iaik7Ci0tCi0rY3Y6OlJvdGF0ZWRSZWN0IFRy YWNrZWRPYmo6OmNhbXNoaWZ0X3RyYWNrX2ZhY2UoKQotK3sKLSAgIC8vY3JlYXRlIGEgcHJvYmFi aWxpdHkgaW1hZ2UgYmFzZWQgb24gdGhlIGZhY2UgaGlzdG9ncmFtCi0tICBjdkNhbGNCYWNrUHJv amVjdCgmb2JqLT5odWUsIG9iai0+cHJvYiwgb2JqLT5oaXN0KTsKLS0gIGN2QW5kKG9iai0+cHJv Yiwgb2JqLT5tYXNrLCBvYmotPnByb2IsIDApOwotKyAgY29uc3QgZmxvYXQqIHJhbmdlID0gaGlz dF9yYW5nZTsKLSsgIGN2OjpjYWxjQmFja1Byb2plY3QoJmh1ZSwgMSwgbnVsbHB0ciwgaGlzdCwg cHJvYiwgJnJhbmdlKTsKLSsgIHByb2IgJj0gbWFzazsKLSAKLSAgIC8vdXNlIENhbVNoaWZ0IHRv IGZpbmQgdGhlIGNlbnRlciBvZiB0aGUgbmV3IGZhY2UgcHJvYmFiaWxpdHkKLS0gIGN2Q2FtU2hp ZnQob2JqLT5wcm9iLCBvYmotPnByZXZfcmVjdCwKLS0gICAgICAgICAgICAgY3ZUZXJtQ3JpdGVy aWEoQ1ZfVEVSTUNSSVRfRVBTIHwgQ1ZfVEVSTUNSSVRfSVRFUiwgMTAsIDEpLAotLSAgICAgICAg ICAgICAmY29tcG9uZW50cywgJm9iai0+Y3Vycl9ib3gpOwotKyAgY3Y6OlJvdGF0ZWRSZWN0IGN1 cnJfYm94ID0gQ2FtU2hpZnQocHJvYiwgcHJldl9yZWN0LAotKyAgICBjdjo6VGVybUNyaXRlcmlh KGN2OjpUZXJtQ3JpdGVyaWE6OkVQUyB8IGN2OjpUZXJtQ3JpdGVyaWE6Ok1BWF9JVEVSLCAxMCwg MSApKTsKLSAKLS0gIC8vdXBkYXRlIGZhY2UgbG9jYXRpb24gYW5kIGFuZ2xlCi0tICBvYmotPnBy ZXZfcmVjdCA9IGNvbXBvbmVudHMucmVjdDsKLS0gIG9iai0+Y3Vycl9ib3guYW5nbGUgPSAtb2Jq LT5jdXJyX2JveC5hbmdsZTsKLSsgIC8vdXBkYXRlIGZhY2UgbG9jYXRpb24KLSsgIHByZXZfcmVj dCA9IGN1cnJfYm94LmJvdW5kaW5nUmVjdCgpOwotIAotLSAgcmV0dXJuIG9iai0+Y3Vycl9ib3g7 Ci0rICByZXR1cm4gY3Vycl9ib3g7Ci0gfQotIAotLXZvaWQgRmFjZUJsMHI6OnVwZGF0ZV9odWVf aW1hZ2UgKGNvbnN0IElwbEltYWdlKiBpbWFnZSwgVHJhY2tlZE9iaiogb2JqKSB7Ci0rdm9pZCBU cmFja2VkT2JqOjp1cGRhdGVfaHVlX2ltYWdlIChjb25zdCBjdjo6TWF0JiBpbWFnZSkgewotICAg Ly9saW1pdHMgZm9yIGNhbGN1bGF0aW5nIGh1ZQotICAgaW50IHZtaW4gPSA2NSwgdm1heCA9IDI1 Niwgc21pbiA9IDU1OwotLSAgCi0rCi0gICAvL2NvbnZlcnQgdG8gSFNWIGNvbG9yIG1vZGVsCi0t ICBjdkN2dENvbG9yKGltYWdlLCBvYmotPmhzdiwgQ1ZfQkdSMkhTVik7Ci0tICAKLSsgIGN2Ojpj dnRDb2xvcihpbWFnZSwgaHN2LCBDVl9CR1IySFNWKTsKLSsKLSAgIC8vbWFzayBvdXQtb2YtcmFu Z2UgdmFsdWVzCi0tICBjdkluUmFuZ2VTKG9iai0+aHN2LCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvL3NvdXJjZQotLSAgICAgICAgICAgICBjdlNjYWxhcigwLCBzbWluLCBNSU4odm1p biwgdm1heCksIDApLCAgLy9sb3dlciBib3VuZAotLSAgICAgICAgICAgICBjdlNjYWxhcigxODAs IDI1NiwgTUFYKHZtaW4sIHZtYXgpICwwKSwgLy91cHBlciBib3VuZAotLSAgICAgICAgICAgICBv YmotPm1hc2spOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9kZXN0aW5hdGlvbgotLSAg Ci0rICBjdjo6aW5SYW5nZShoc3YsICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zb3VyY2UK LSsgICAgICBjdjo6U2NhbGFyKDAsIHNtaW4sIE1JTih2bWluLCB2bWF4KSksICAvL2xvd2VyIGJv dW5kCi0rICAgICAgY3Y6OlNjYWxhcigxODAsIDI1NiwgTUFYKHZtaW4sIHZtYXgpKSwgLy91cHBl ciBib3VuZAotKyAgICAgIG1hc2spOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v ZGVzdGluYXRpb24KLSsKLSAgIC8vZXh0cmFjdCB0aGUgaHVlIGNoYW5uZWwsIHNwbGl0OiBzcmMs IGRlc3QgY2hhbm5lbHMKLS0gIGN2U3BsaXQob2JqLT5oc3YsIG9iai0+aHVlLCAwLCAwLCAwICk7 Ci0rICBjdjo6ZXh0cmFjdENoYW5uZWwoaHN2LCBodWUsIDApOwotIH0KCmRpZmYgLS1naXQgYS9C dW1wLW9wZW5jdi10by0yLjMtYy1BUEkucGF0Y2ggYi9CdW1wLW9wZW5jdi10by0yLjMtYy1BUEku cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhM2U1MWQuLjAwMDAwMDAKLS0t IGEvQnVtcC1vcGVuY3YtdG8tMi4zLWMtQVBJLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQg KzAsMCBAQAotRnJvbSBmYTQ0NTE5MmE5ZTMwOTFiODM3YWQ5M2ZjY2NhODYwNzVkYWI4MGIyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0QGdt YWlsLmNvbT4KLURhdGU6IE1vbiwgMjUgTWF5IDIwMjAgMDk6NTY6NTkgKzAyMDAKLVN1YmplY3Q6 IFtQQVRDSCA0LzRdIEJ1bXAgb3BlbmN2IHRvIDIuMyAoYysrIEFQSSkKLQotLS0tCi0gY29uZmln dXJlLmFjICAgIHwgMiArLQotIHNyYy9NYWtlZmlsZS5hbSB8IDQgKystLQotIDIgZmlsZXMgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY29u ZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCA0MmRkNjI5Li5iZDhiMWNmIDEwMDY0NAot LS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC05NCw3ICs5NCw3IEBA IEFDX0ZVTkNfTUFMTE9DCi0gQUNfQ0hFQ0tfRlVOQ1MoW2Zsb29yIG1lbXNldCBwb3cgc3FydF0p Ci0gCi0gSEFWRV9PUEVOQ1Y9ZmFsc2UKLS1QS0dfQ0hFQ0tfTU9EVUxFUyhPUEVOQ1YsIG9wZW5j diA+PSAxLjAuMCwgW0hBVkVfT1BFTkNWPXRydWVdLCBbdHJ1ZV0pCi0rUEtHX0NIRUNLX01PRFVM RVMoT1BFTkNWLCBvcGVuY3YgPj0gMi4zLCBbSEFWRV9PUEVOQ1Y9dHJ1ZV0sIFt0cnVlXSkKLSBB TV9DT05ESVRJT05BTChbSEFWRV9PUEVOQ1ZdLCBbdGVzdCB4JEhBVkVfT1BFTkNWID0geHRydWVd KQotIGlmIHRlc3QgeCRIQVZFX09QRU5DViA9IHh0cnVlOyB0aGVuCi0gIyAgICBPUEVOQ1ZfQ0ZM QUdTPSIkT1BFTkNWX0NGTEFHUyAtRE9QRU5DVl9QUkVGSVg9YHBrZy1jb25maWcgb3BlbmN2IC0t dmFyaWFibGU9cHJlZml4YCIKLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFr ZWZpbGUuYW0KLWluZGV4IDllOGE5YzQuLmM3NzgzMTIgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZp bGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAgLTE1NiwxMSArMTU2LDExIEBAIGVuZGlm Ci0gaWYgSEFWRV9PUEVOQ1YKLSBwbHVnaW5fTFRMSUJSQVJJRVMgKz0gZmFjZWJsMHIubGEKLSBm YWNlYmwwcl9sYV9TT1VSQ0VTID0gZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcAotLWZhY2Vi bDByX2xhX0NGTEFHUyA9IEBPUEVOQ1ZfQ0ZMQUdTQCBAQ0ZMQUdTQCAKLStmYWNlYmwwcl9sYV9D RkxBR1MgPSBAT1BFTkNWX0NYWEZMQUdTQCBAQ0ZMQUdTQAotIGZhY2VibDByX2xhX0xJQkFERCA9 IEBPUEVOQ1ZfTElCU0AKLSBwbHVnaW5fTFRMSUJSQVJJRVMgKz0gZmFjZWRldGVjdC5sYQotIGZh Y2VkZXRlY3RfbGFfU09VUkNFUyA9IGZpbHRlci9mYWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwCi0t ZmFjZWRldGVjdF9sYV9DRkxBR1MgPSBAT1BFTkNWX0NGTEFHU0AgQENGTEFHU0AKLStmYWNlZGV0 ZWN0X2xhX0NGTEFHUyA9IEBPUEVOQ1ZfQ1hYRkxBR1NAIEBDRkxBR1NACi0gZmFjZWRldGVjdF9s YV9MSUJBREQgPSBAT1BFTkNWX0xJQlNACi0gZW5kaWYKLSAKLS0tIAotMi4yNS40Ci0KCmRpZmYg LS1naXQgYS9Td2l0Y2gtdG8tT3BlbkNWNC1lbnVtcy5wYXRjaCBiL1N3aXRjaC10by1PcGVuQ1Y0 LWVudW1zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzdiNmI3Li4wMDAw MDAwCi0tLSBhL1N3aXRjaC10by1PcGVuQ1Y0LWVudW1zLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNDYgKzAsMCBAQAotRnJvbSA3OTZkMTIyNTg3MjA3YWZiZjBjMzVjNzVlZGY2ZTk1ODhlZGMw Yjk5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTmljb2xhcyBDaGF1dmV0IDxrd2l6 YXJ0QGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMjUgTWF5IDIwMjAgMDk6NTE6MTYgKzAyMDAKLVN1 YmplY3Q6IFtQQVRDSCAzLzRdIFN3aXRjaCB0byBPcGVuQ1Y0IGVudW1zCi0KLVNpZ25lZC1vZmYt Ynk6IE5pY29sYXMgQ2hhdXZldCA8a3dpemFydEBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvZmlsdGVy L2ZhY2VibDByL2ZhY2VibDByLmNwcCB8IDggKysrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ZpbHRlci9m YWNlYmwwci9mYWNlYmwwci5jcHAgYi9zcmMvZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcAot aW5kZXggOTYyMjJkOC4uZmEyMWEzNSAxMDA2NDQKLS0tLSBhL3NyYy9maWx0ZXIvZmFjZWJsMHIv ZmFjZWJsMHIuY3BwCi0rKysgYi9zcmMvZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcAotQEAg LTIwOSw3ICsyMDksNyBAQCBzdGQ6OnZlY3Rvcjxjdjo6UmVjdD4gRmFjZUJsMHI6OmRldGVjdF9m YWNlKCkKLSAKLSAgICAgIC8vdXNlIGFuIGVxdWFsaXplZCBncmF5IGltYWdlIGZvciBiZXR0ZXIg cmVjb2duaXRpb24KLSAgICAgIGN2OjpNYXQgZ3JheTsKLS0gICAgIGN2OjpjdnRDb2xvcihpbWFn ZSwgZ3JheSwgQ1ZfQkdSMkdSQVkpOwotKyAgICAgY3Y6OmN2dENvbG9yKGltYWdlLCBncmF5LCBj djo6Q09MT1JfQkdSMkdSQVkpOwotICAgICAgY3Y6OmVxdWFsaXplSGlzdChncmF5LCBncmF5KTsK LSAKLSAgICAgICAvL2dldCBhIHNlcXVlbmNlIG9mIGZhY2VzIGluIGltYWdlCi1AQCAtMjE4LDgg KzIxOCw4IEBAIHN0ZDo6dmVjdG9yPGN2OjpSZWN0PiBGYWNlQmwwcjo6ZGV0ZWN0X2ZhY2UoKQot ICAgICAgIGNhc2NhZGUuZGV0ZWN0TXVsdGlTY2FsZShncmF5LCBmYWNlcywKLSAgICAgICAgICBz ZWFyY2hfc2NhbGUgKiAxMC4wLAotICAgICAgICAgIGN2Um91bmQobmVpZ2hib3JzICogMTAwKSwK LS0gICAgICAgICBDVl9IQUFSX0ZJTkRfQklHR0VTVF9PQkpFQ1R8Ly9zaW5jZSB3ZSB0cmFjayBv bmx5IHRoZSBmaXJzdCwgZ2V0IHRoZSBiaWdnZXN0Ci0tICAgICAgICAgQ1ZfSEFBUl9ET19DQU5O WV9QUlVOSU5HLCAgLy9za2lwIHJlZ2lvbnMgdW5saWtlbHkgdG8gY29udGFpbiBhIGZhY2UKLSsg ICAgICAgICBjdjo6Q0FTQ0FERV9GSU5EX0JJR0dFU1RfT0JKRUNUfC8vc2luY2Ugd2UgdHJhY2sg b25seSB0aGUgZmlyc3QsIGdldCB0aGUgYmlnZ2VzdAotKyAgICAgICAgIGN2OjpDQVNDQURFX0RP X0NBTk5ZX1BSVU5JTkcsICAvL3NraXAgcmVnaW9ucyB1bmxpa2VseSB0byBjb250YWluIGEgZmFj ZQotICAgICAgICAgIGN2OjpTaXplKG1pbiwgbWluKSk7Ci0gCi0gICAgIHJldHVybiBmYWNlczsK LUBAIC0yNTksNyArMjU5LDcgQEAgdm9pZCBUcmFja2VkT2JqOjp1cGRhdGVfaHVlX2ltYWdlIChj b25zdCBjdjo6TWF0JiBpbWFnZSkgewotICAgaW50IHZtaW4gPSA2NSwgdm1heCA9IDI1Niwgc21p biA9IDU1OwotIAotICAgLy9jb252ZXJ0IHRvIEhTViBjb2xvciBtb2RlbAotLSAgY3Y6OmN2dENv bG9yKGltYWdlLCBoc3YsIENWX0JHUjJIU1YpOwotKyAgY3Y6OmN2dENvbG9yKGltYWdlLCBoc3Ys IGN2OjpDT0xPUl9CR1IySFNWKTsKLSAKLSAgIC8vbWFzayBvdXQtb2YtcmFuZ2UgdmFsdWVzCi0g ICBjdjo6aW5SYW5nZShoc3YsICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9zb3VyY2UKLS0t IAotMi4yNS40Ci0KCmRpZmYgLS1naXQgYS9iMjdmMDNjOGQ1MWMzNGNkNWY3OWUwMzk5YmIwMDI0 Y2E5NGVhODEzLnBhdGNoIGIvYjI3ZjAzYzhkNTFjMzRjZDVmNzllMDM5OWJiMDAyNGNhOTRlYTgx My5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDliOGUwMS4uMDAwMDAwMAot LS0gYS9iMjdmMDNjOGQ1MWMzNGNkNWY3OWUwMzk5YmIwMDI0Y2E5NGVhODEzLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotRnJvbSBiMjdmMDNjOGQ1MWMzNGNkNWY3OWUwMzk5 YmIwMDI0Y2E5NGVhODEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9x P0lPaGFubmVzPTIwbT0yMHptPUMzPUI2bG5pZz89IDx6bW9lbG5pZ0BpZW0uYXQ+Ci1EYXRlOiBU dWUsIDEwIERlYyAyMDE5IDE1OjAxOjUyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZhY2VkZXRl Y3Q6IGluY2x1ZGUgaW1ncHJvYy9pbWdwcm9jX2MuaCB3aGVuIHVzaW5nIE9wZW5DVi00KwotCi1p bWdwcm9jX2MuaCBkZWZpbmVzIHRoZSBjb25zdGFudHMgQ1ZfQkdSMkdSQVksIENWX0ZJTExFRCAm IENWX0FBLgotCi1pdCBhbHNvIGluY2x1ZGVzICJjb3JlL2NvcmVfYy5oIiwgd2hpY2ggdGhlbiBw cm92aWRlcwotICBgY3ZHZXRUaWNrQ291bnQoKWAgYW5kIGBjdkdldFRpY2tGcmVxdWVuY3koKWAK LS0tLQotIHNyYy9maWx0ZXIvZmFjZWRldGVjdC9mYWNlZGV0ZWN0LmNwcCB8IDMgKysrCi0gMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ZpbHRlci9m YWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwIGIvc3JjL2ZpbHRlci9mYWNlZGV0ZWN0L2ZhY2VkZXRl Y3QuY3BwCi1pbmRleCAxOTA2OTYyLi40ZTdkNDc2IDEwMDY0NAotLS0tIGEvc3JjL2ZpbHRlci9m YWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwCi0rKysgYi9zcmMvZmlsdGVyL2ZhY2VkZXRlY3QvZmFj ZWRldGVjdC5jcHAKLUBAIC0yMSw2ICsyMSw5IEBACi0gI2luY2x1ZGUgPHN0ZGlvLmg+Ci0gI2lu Y2x1ZGUgPHN0cmluZy5oPgotICNpbmNsdWRlIDxvcGVuY3YyL29wZW5jdi5ocHA+Ci0rI2lmIENW X01BSk9SX1ZFUlNJT04gPj0gNAotKyMgaW5jbHVkZSA8b3BlbmN2Mi9pbWdwcm9jL2ltZ3Byb2Nf Yy5oPgotKyNlbmRpZgotICNpbmNsdWRlICJmcmVpMHIuaHBwIgotICNpbmNsdWRlICJmcmVpMHJf bWF0aC5oIgotIAoKZGlmZiAtLWdpdCBhL2I0NTYyZGI0Y2EyMGZlZmNjZTYyZGJlN2IyNTVjMmI3 NTk1MTg1M2UucGF0Y2ggYi9iNDU2MmRiNGNhMjBmZWZjY2U2MmRiZTdiMjU1YzJiNzU5NTE4NTNl LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzczOWRkLi4wMDAwMDAwCi0t LSBhL2I0NTYyZGI0Y2EyMGZlZmNjZTYyZGJlN2IyNTVjMmI3NTk1MTg1M2UucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi1Gcm9tIGI0NTYyZGI0Y2EyMGZlZmNjZTYyZGJlN2Iy NTVjMmI3NTk1MTg1M2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSYXBoYWVsIEdy YWYgPHJAdW5kZWZpbmVkLmNoPgotRGF0ZTogVGh1LCA1IE1hciAyMDIwIDE1OjM5OjM3ICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIGZhY2VkZXRlY3Q6IFN1cHBvcnQgb3BlbmN2NAotCi0tLS0KLSBz cmMvZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAgfCAxMiArKysrKystLS0tLS0KLSAx IGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvc3JjL2ZpbHRlci9mYWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwIGIvc3JjL2ZpbHRlci9m YWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwCi1pbmRleCAxOTA2OTYyLi41ODBiNTNiIDEwMDY0NAot LS0tIGEvc3JjL2ZpbHRlci9mYWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwCi0rKysgYi9zcmMvZmls dGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAKLUBAIC0xNDgsMTMgKzE0OCwxMyBAQCBjbGFz cyBGYWNlRGV0ZWN0OiBwdWJsaWMgZnJlaTByOjpmaWx0ZXIKLSAgICAgICAgICAgICBjb3VudCA9 IDE7ICAgLy8gcmVzZXQgdGhlIHJlY2hlY2sgY291bnRlcgotICAgICAgICAgICAgIGlmIChvYmpl Y3RzLnNpemUoKSA+IDApIC8vIHJlc2V0IHRoZSBsaXN0IG9mIG9iamVjdHMKLSAgICAgICAgICAg ICAgICAgb2JqZWN0cy5jbGVhcigpOwotLSAgICAgICAgICAgIGRvdWJsZSBlbGFwc2VkID0gKGRv dWJsZSkgY3ZHZXRUaWNrQ291bnQoKTsKLSsgICAgICAgICAgICBkb3VibGUgZWxhcHNlZCA9IChk b3VibGUpIGN2OjpnZXRUaWNrQ291bnQoKTsKLSAKLSAgICAgICAgICAgICBvYmplY3RzID0gZGV0 ZWN0KCk7Ci0gCi0gICAgICAgICAgICAgLy8gdXNlIGRldGVjdGlvbiB0aW1lIHRvIHRocm90dGxl IGZyZXF1ZW5jeSBvZiByZS1kZXRlY3QgdnMuIHJlZHJhdyAoYXV0b21hdGljIHJlY2hlY2spCi0t ICAgICAgICAgICAgZWxhcHNlZCA9IGN2R2V0VGlja0NvdW50KCkgLSBlbGFwc2VkOwotLSAgICAg ICAgICAgIGVsYXBzZWQgPSBlbGFwc2VkIC8gKChkb3VibGUpIGN2R2V0VGlja0ZyZXF1ZW5jeSgp ICogMTAwMC4wKTsKLSsgICAgICAgICAgICBlbGFwc2VkID0gY3Y6OmdldFRpY2tDb3VudCgpIC0g ZWxhcHNlZDsKLSsgICAgICAgICAgICBlbGFwc2VkID0gZWxhcHNlZCAvICgoZG91YmxlKSBjdjo6 Z2V0VGlja0ZyZXF1ZW5jeSgpICogMTAwMC4wKTsKLSAKLSAgICAgICAgICAgICAvLyBBdXRvbWF0 aWMgcmVjaGVjayB1c2VzIGFuIHVuZG9jdW1lbnRlZCBuZWdhdGl2ZSBwYXJhbWV0ZXIgdmFsdWUs Ci0gICAgICAgICAgICAgLy8gd2hpY2ggaXMgbm90IGNvbXBsaWFudCwgYnV0IHRlY2huaWNhbGx5 IGZlYXNpYmxlLgotQEAgLTE4OCw3ICsxODgsNyBAQCBjbGFzcyBGYWNlRGV0ZWN0OiBwdWJsaWMg ZnJlaTByOjpmaWx0ZXIKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIC8vIHVzZSBhbiBlcXVhbGl6 ZWQgZ3JheXNjYWxlIHRvIGltcHJvdmUgZGV0ZWN0aW9uCi0tICAgICAgICBjdjo6Y3Z0Q29sb3Io aW1hZ2Vfcm9pLCBncmF5LCBDVl9CR1IyR1JBWSk7Ci0rICAgICAgICBjdjo6Y3Z0Q29sb3IoaW1h Z2Vfcm9pLCBncmF5LCBjdjo6Q09MT1JfQkdSMkdSQVkpOwotIAotICAgICAgICAgLy8gdXNlIGEg c21hbGxlciBpbWFnZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlCi0gICAgICAgICBjdjo6cmVzaXpl KGdyYXksIHNtYWxsLCBjdjo6U2l6ZShjdlJvdW5kKGdyYXkuY29scyAqIHNjYWxlKSwgY3ZSb3Vu ZChncmF5LnJvd3MgKiBzY2FsZSkpKTsKLUBAIC0yNDksOCArMjQ5LDggQEAgY2xhc3MgRmFjZURl dGVjdDogcHVibGljIGZyZWkwcjo6ZmlsdGVyCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgY3Y6 OlJlY3QqIHIgPSAoY3Y6OlJlY3QqKSAmb2JqZWN0c1tpXTsKLSAgICAgICAgICAgICBjdjo6UG9p bnQgY2VudGVyOwotLSAgICAgICAgICAgIGludCB0aGlja25lc3MgPSBzdHJva2UgPD0gMD8gQ1Zf RklMTEVEIDogY3ZSb3VuZChzdHJva2UgKiAxMDApOwotLSAgICAgICAgICAgIGludCBsaW5ldHlw ZSA9IGFudGlhbGlhcz8gQ1ZfQUEgOiA4OwotKyAgICAgICAgICAgIGludCB0aGlja25lc3MgPSBz dHJva2UgPD0gMD8gY3Y6OkZJTExFRCA6IGN2Um91bmQoc3Ryb2tlICogMTAwKTsKLSsgICAgICAg ICAgICBpbnQgbGluZXR5cGUgPSBhbnRpYWxpYXM/IGN2OjpMSU5FX0FBIDogODsKLSAgICAgICAg ICAgICAKLSAgICAgICAgICAgICBjZW50ZXIueCA9IGN2Um91bmQoKHItPnggKyByLT53aWR0aCAq IDAuNSkgLyBzY2FsZSk7Ci0gICAgICAgICAgICAgY2VudGVyLnkgPSBjdlJvdW5kKChyLT55ICsg ci0+aGVpZ2h0ICogMC41KSAvIHNjYWxlKTsKCmRpZmYgLS1naXQgYS9iOGQ0ZTA1OTVjODEzNGIy YjNjN2U4MmVjYjhkYTM2YzkzNTRmNjhhLnBhdGNoIGIvYjhkNGUwNTk1YzgxMzRiMmIzYzdlODJl Y2I4ZGEzNmM5MzU0ZjY4YS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNl MzYxNi4uMDAwMDAwMAotLS0gYS9iOGQ0ZTA1OTVjODEzNGIyYjNjN2U4MmVjYjhkYTM2YzkzNTRm NjhhLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotRnJvbSBiOGQ0ZTA1OTVj ODEzNGIyYjNjN2U4MmVjYjhkYTM2YzkzNTRmNjhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogRGFuIERlbm5lZHkgPGRhbkBkZW5uZWR5Lm9yZz4KLURhdGU6IFNhdCwgMTEgQXByIDIw MjAgMTE6NTQ6MzcgLTA3MDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4IGMwcm5lcnMgZmlsdGVyIHRv cCBhbmQgbGVmdCBlZGdlIGFydGlmYWN0cyBhdCBkZWZhdWx0Ci0gZnVsbCBzaXplCi0KLS0tLQot IHNyYy9maWx0ZXIvYzBybmVycy9jMHJuZXJzLmMgfCAxOCArKysrKysrKysrKysrKysrKysKLSAx IGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2ZpbHRl ci9jMHJuZXJzL2Mwcm5lcnMuYyBiL3NyYy9maWx0ZXIvYzBybmVycy9jMHJuZXJzLmMKLWluZGV4 IGUyNzAyNTMuLmY1MTA5MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvZmlsdGVyL2Mwcm5lcnMvYzBybmVy cy5jCi0rKysgYi9zcmMvZmlsdGVyL2Mwcm5lcnMvYzBybmVycy5jCi1AQCAtOTc0LDYgKzk3NCw4 IEBAIHZvaWQgZjByX2dldF9wYXJhbV92YWx1ZShmMHJfaW5zdGFuY2VfdCBpbnN0YW5jZSwgZjBy X3BhcmFtX3QgcGFyYW0sIGludCBwYXJhbV9pCi0gCX0KLSB9Ci0gCi0rI2RlZmluZSBFUFNJTE9O IDFlLTVmCi0rI2RlZmluZSBFUVVJVkFMRU5UX0ZMT0FUUyh4LCB5KSAoZmFic2YoKHgpIC0gKHkp KSA8IEVQU0lMT04pCi0gCi0gLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gdm9pZCBmMHJfdXBkYXRlKGYwcl9pbnN0YW5jZV90IGluc3RhbmNlLCBk b3VibGUgdGltZSwgY29uc3QgdWludDMyX3QqIGluZnJhbWUsIHVpbnQzMl90KiBvdXRmcmFtZSkK LUBAIC05ODMsNiArOTg1LDIyIEBAIHZvaWQgZjByX3VwZGF0ZShmMHJfaW5zdGFuY2VfdCBpbnN0 YW5jZSwgZG91YmxlIHRpbWUsIGNvbnN0IHVpbnQzMl90KiBpbmZyYW1lLCB1Ci0gCi0gCXA9KGlu c3QqKWluc3RhbmNlOwotIAotKyAgICBpZiAoRVFVSVZBTEVOVF9GTE9BVFMocC0+eDEsIDAuMzMz MzMzZikgJiYKLSsgICAgICAgIEVRVUlWQUxFTlRfRkxPQVRTKHAtPnkxLCAwLjMzMzMzM2YpICYm Ci0rICAgICAgICBFUVVJVkFMRU5UX0ZMT0FUUyhwLT54MiwgMC42NjY2NjZmKSAmJgotKyAgICAg ICAgRVFVSVZBTEVOVF9GTE9BVFMocC0+eTIsIDAuMzMzMzMzZikgJiYKLSsgICAgICAgIEVRVUlW QUxFTlRfRkxPQVRTKHAtPngzLCAwLjY2NjY2NmYpICYmCi0rICAgICAgICBFUVVJVkFMRU5UX0ZM T0FUUyhwLT55MywgMC42NjY2NjZmKSAmJgotKyAgICAgICAgRVFVSVZBTEVOVF9GTE9BVFMocC0+ eDQsIDAuMzMzMzMzZikgJiYKLSsgICAgICAgIEVRVUlWQUxFTlRfRkxPQVRTKHAtPnk0LCAwLjY2 NjY2NmYpICYmCi0rICAgICAgICAoIXAtPnN0cmV0Y2hPTiB8fCAoCi0rICAgICAgICAgICAgRVFV SVZBTEVOVF9GTE9BVFMocC0+c3RyZXRjaHgsIDAuNWYpICYmCi0rICAgICAgICAgICAgRVFVSVZB TEVOVF9GTE9BVFMocC0+c3RyZXRjaHksIDAuNWYpKSkpCi0rICAgIHsKLSsgICAgICAgIG1lbWNw eShvdXRmcmFtZSwgaW5mcmFtZSwgcC0+dyAqIHAtPmggKiA0KTsKLSsgICAgICAgIHJldHVybjsK LSsgICAgfQotKyAgICAgICAgICAgIAotIAlpZiAocC0+bWFwSXNEaXJ0eSkgewotIAkJdG9ja2Ey IHZvZ1s0XTsKLSAJCWludCBub3RzWzRdOwo=