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: Orphaned Packages Process To: git-commits@fedoraproject.org Subject: [rpms/Coin2] rawhide: Orphaned for 6+ weeks Date: Tue, 30 Jun 2026 22:36:03 GMT Message-ID: <178285896363.1.9151761935912923089.rpms-Coin2-457dc164aaa5@fedoraproject.org> List-ID: X-Git-Repo: rpms/Coin2 X-Git-Branch: rawhide X-Git-Rev: 457dc164aaa5198e81ab4775afb78cb06fd2e1e6 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvQ29pbjIKQnJhbmNo IDogcmF3aGlkZQpDb21taXQgOiA0NTdkYzE2NGFhYTUxOThlODFhYjQ3NzVhZmI3OGNiMDZmZDJl MWU2CkF1dGhvciA6IE9ycGhhbmVkIFBhY2thZ2VzIFByb2Nlc3MgPHBhY2thZ2luZy1yZXBvcnRz QGZlZG9yYXByb2plY3Qub3JnPgpEYXRlICAgOiAyMDI2LTA2LTMwVDE3OjM1OjU4LTA1OjAwClN0 YXRzICA6ICsxLy0zMjA2IGluIDEzIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3Jh cHJvamVjdC5vcmcvcnBtcy9Db2luMi9jLzQ1N2RjMTY0YWFhNTE5OGU4MWFiNDc3NWFmYjc4Y2Iw NmZkMmUxZTY/YnJhbmNoPXJhd2hpZGUKCkxvZzoKT3JwaGFuZWQgZm9yIDYrIHdlZWtzCgotLS0K ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBlNzQyMmIwLi4wMDAwMDAwCi0tLSBhLy5naXRpZ25vcmUKKysrIC9kZXYvbnVs bApAQCAtMSArMCwwIEBACi1Db2luLTIuNS4wLnRhci5negoKZGlmZiAtLWdpdCBhL0NvaW4tMi40 LjYtbWFuMy5kaWZmIGIvQ29pbi0yLjQuNi1tYW4zLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDY0MGUzOTUuLjAwMDAwMDAKLS0tIGEvQ29pbi0yLjQuNi1tYW4zLmRpZmYKKysr IC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1kaWZmIC11TnIgQ29pbi0yLjQuNi5vcmlnL21h bi9tYW4zL01ha2VmaWxlLmFtIENvaW4tMi40LjYvbWFuL21hbjMvTWFrZWZpbGUuYW0KLS0tLSBD b2luLTIuNC42Lm9yaWcvbWFuL21hbjMvTWFrZWZpbGUuYW0JMjAwNy0wNC0xMCAxMToyNDowNy4w MDAwMDAwMDAgKzAyMDAKLSsrKyBDb2luLTIuNC42L21hbi9tYW4zL01ha2VmaWxlLmFtCTIwMDct MDQtMTQgMDY6Mjc6MjkuMDAwMDAwMDAwICswMjAwCi1AQCAtOCw2ICs4LDcgQEAKLSAJIiQoc2lt X2FjX2RveHlnZW5fZXhlKSIgZG9jcy9jb2luLmRveHlnZW4gKQotIAotIGZpbGVsaXN0LnR4dDog U29EQi4zCi0rCXJtIC1mICpfLjMKLSAJbHMgKi4zID5maWxlbGlzdC50eHQKLSAKLSAKLWRpZmYg LXVOciBDb2luLTIuNC42Lm9yaWcvbWFuL21hbjMvTWFrZWZpbGUuaW4gQ29pbi0yLjQuNi9tYW4v bWFuMy9NYWtlZmlsZS5pbgotLS0tIENvaW4tMi40LjYub3JpZy9tYW4vbWFuMy9NYWtlZmlsZS5p bgkyMDA3LTA0LTEwIDExOjI0OjA3LjAwMDAwMDAwMCArMDIwMAotKysrIENvaW4tMi40LjYvbWFu L21hbjMvTWFrZWZpbGUuaW4JMjAwNy0wNC0xNCAwNjoyNzozMC4wMDAwMDAwMDAgKzAyMDAKLUBA IC00MjEsNiArNDIxLDcgQEAKLSAJIiQoc2ltX2FjX2RveHlnZW5fZXhlKSIgZG9jcy9jb2luLmRv eHlnZW4gKQotIAotIGZpbGVsaXN0LnR4dDogU29EQi4zCi0rCXJtIC1mICpfLjMKLSAJbHMgKi4z ID5maWxlbGlzdC50eHQKLSAKLSBAQlVJTERfTUFOUEFHRVNfVFJVRUBhbGwtbG9jYWw6IGZpbGVs aXN0LnR4dAoKZGlmZiAtLWdpdCBhL0NvaW4tMi40LjYtb3BlbmFsLXNvbmFtZS5kaWZmIGIvQ29p bi0yLjQuNi1vcGVuYWwtc29uYW1lLmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGUyMDY4ODYuLjAwMDAwMDAKLS0tIGEvQ29pbi0yLjQuNi1vcGVuYWwtc29uYW1lLmRpZmYKKysr IC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1kaWZmIC11TnIgQ29pbi0yLjQuNi5vcmlnL3Ny Yy9nbHVlL29wZW5hbF93cmFwcGVyLmMgQ29pbi0yLjQuNi9zcmMvZ2x1ZS9vcGVuYWxfd3JhcHBl ci5jCi0tLS0gQ29pbi0yLjQuNi5vcmlnL3NyYy9nbHVlL29wZW5hbF93cmFwcGVyLmMJMjAwNy0w NC0xMCAxMToyMzo1MS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBDb2luLTIuNC42L3NyYy9nbHVlL29w ZW5hbF93cmFwcGVyLmMJMjAwNy0wNC0xNCAwNjozMTowOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0x MDcsNyArMTA3LDcgQEAKLSAgICAgICBpbnQgaWR4OwotICAgICAgIGNvbnN0IGNoYXIgKiBwb3Nz aWJsZWxpYm5hbWVzW10gPSB7Ci0gICAgICAgICBOVUxMLCAvKiBpcyBzZXQgYmVsb3cgKi8KLS0g ICAgICAgICJvcGVuYWwiLCAib3BlbmFsMzIiLCAibGlib3BlbmFsLnNvIiwKLSsJQExJQk9QRU5B TF9TT05BTUVALAotICAgICAgICAgTlVMTAotICAgICAgIH07Ci0gCgpkaWZmIC0tZ2l0IGEvQ29p bi0yLjQuNi1zaW1hZ2Utc29uYW1lLmRpZmYgYi9Db2luLTIuNC42LXNpbWFnZS1zb25hbWUuZGlm ZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQyODgwYS4uMDAwMDAwMAotLS0gYS9D b2luLTIuNC42LXNpbWFnZS1zb25hbWUuZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAg QEAKLWRpZmYgLXVOciBDb2luLTIuNC42Lm9yaWcvc3JjL2dsdWUvc2ltYWdlX3dyYXBwZXIuYyBD b2luLTIuNC42L3NyYy9nbHVlL3NpbWFnZV93cmFwcGVyLmMKLS0tLSBDb2luLTIuNC42Lm9yaWcv c3JjL2dsdWUvc2ltYWdlX3dyYXBwZXIuYwkyMDA3LTA0LTEwIDExOjIzOjUxLjAwMDAwMDAwMCAr MDIwMAotKysrIENvaW4tMi40LjYvc3JjL2dsdWUvc2ltYWdlX3dyYXBwZXIuYwkyMDA3LTA0LTE0 IDA2OjM0OjExLjAwMDAwMDAwMCArMDIwMAotQEAgLTI3MiwxNiArMjcyLDcgQEAKLSAgICAgICAg ICBBdXRvY29uZiBjaGVjaz8gMjAwMDA5MzAgbW9ydGVuZS4gKi8KLSAgICAgICBjb25zdCBjaGFy ICogcG9zc2libGVsaWJuYW1lc1tdID0gewotICAgICAgICAgTlVMTCwgLyogaXMgc2V0IGJlbG93 ICovIAotLSAgICAgICAgInNpbWFnZSIsICJsaWJzaW1hZ2UiLCAibGlic2ltYWdlLnNvIiwKLS0g ICAgICAgICJsaWJzaW1hZ2UuZHlsaWIiLAotLSAgICAgICAgLyogTVNXaW5kb3dzIERMTCBuYW1l cyBmb3IgdGhlIHNpbWFnZSBsaWJyYXJ5ICovCi0tICAgICAgICAvKiBGSVhNRTogYSBiaXQgb2Yg YSBoYWNrIHRoaXMsIGJ1dCBpdCBsb29rcyBkaWZmaWN1bHQgdG8gZmluZAotLSAgICAgICAgICAg YSBiZXR0ZXIgc3RyYXRlZ3kuIFBlcmhhcHMgaXQnZCBiZSBhIGdvb2QgaWRlYSB0byB1c2UgYW4K LS0gICAgICAgICAgIGFwcGxpY2F0aW9uIHByb2dyYW1tZXIgY29udHJvbGxlZCBlbnZpcm9ubWVu dCB2YXJpYWJsZT8KLS0gICAgICAgICAgIDIwMDEwNjI2IG1vcnRlbmUuICovCi0tICAgICAgICAi c2ltYWdlNiIsICJzaW1hZ2U1IiwgInNpbWFnZTQiLCAic2ltYWdlMyIsICJzaW1hZ2UyIiwgInNp bWFnZTEiLAotLSAgICAgICAgLyogRklYTUU6IG5vdCBjaGVja2luZyBmb3Igc2ltYWdlWGQuZGxs IG5hbWVzIChpZSBkZWJ1ZwotLSAgICAgICAgICAgdmVyc2lvbnMgb2YgdGhlIGxpYnJhcnkpLiAy MDAxMDkyNiBtb3J0ZW5lLiAqLwotKwlATElCU0lNQUdFX1NPTkFNRUAsCi0gICAgICAgICBOVUxM Ci0gICAgICAgfTsKLSAKCmRpZmYgLS1naXQgYS9Db2luLTIuNS4wLVVzZS1OVUxMLWluc3RlYWQt b2YtMC5wYXRjaCBiL0NvaW4tMi41LjAtVXNlLU5VTEwtaW5zdGVhZC1vZi0wLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjNhMGVhLi4wMDAwMDAwCi0tLSBhL0NvaW4tMi41 LjAtVXNlLU5VTEwtaW5zdGVhZC1vZi0wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODE0ICsw LDAgQEAKLWRpZmYgLU5hdXIgQ29pbi0yLjUuMC5vcmlnL3NyYy8zZHMvU29TdHJlYW0uY3BwIENv aW4tMi41LjAvc3JjLzNkcy9Tb1N0cmVhbS5jcHAKLS0tLSBDb2luLTIuNS4wLm9yaWcvc3JjLzNk cy9Tb1N0cmVhbS5jcHAJMjAwNy0xMC0wMSAwMzoyMjo0Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBD b2luLTIuNS4wL3NyYy8zZHMvU29TdHJlYW0uY3BwCTIwMTctMDItMTcgMTc6MTg6NDUuMzUxNDEy NzA4ICswMTAwCi1AQCAtMTgwLDcgKzE4MCw3IEBACi0gICBpZiAoIWdvdE51bSkgeyBzZXRCYWRC aXQoKTsgcmV0dXJuIEZBTFNFOyB9IFwKLSAgXAotICAgY2hhciAqY2U7IFwKLS0gIHMgPSAnXDAn OyBcCi0rICBzID0gTlVMTDsgXAotICAgX2NvbnZlcnRUeXBlXyB0ZW1wVmFsID0gX2NvbnZlcnRG dW5jXyhidWYsICZjZSwgMCk7IFwKLSAgXAotICAgaWYgKGNlICE9IHMpIFwKLUBAIC0yNzcsNyAr Mjc3LDcgQEAKLSBnb3RBbGw6IFwKLSAgIFwKLSAgIGNoYXIgKmNlOyBcCi0tICBzID0gJ1wwJzsg XAotKyAgcyA9IE5VTEw7IFwKLSAgIGRvdWJsZSB0ZW1wVmFsID0gX2NvbnZlcnRGdW5jXyhidWYs ICZjZSk7IFwKLSAgXAotICAgaWYgKGNlICE9IHMpIFwKLWRpZmYgLU5hdXIgQ29pbi0yLjUuMC5v cmlnL3NyYy8zZHMvU29TdHJlYW0uY3BwLm9yaWcgQ29pbi0yLjUuMC9zcmMvM2RzL1NvU3RyZWFt LmNwcC5vcmlnCi0tLS0gQ29pbi0yLjUuMC5vcmlnL3NyYy8zZHMvU29TdHJlYW0uY3BwLm9yaWcJ MTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBDb2luLTIuNS4wL3NyYy8z ZHMvU29TdHJlYW0uY3BwLm9yaWcJMjAwNy0xMC0wMSAwMzoyMjo0Ni4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsNzg5IEBACi0rLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXAotKyAqCi0rICogIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb2luIDNEIHZpc3VhbGl6YXRpb24gbGlicmFyeS4KLSsgKiAg Q29weXJpZ2h0IChDKSAxOTk4LTIwMDcgYnkgU3lzdGVtcyBpbiBNb3Rpb24uICBBbGwgcmlnaHRz IHJlc2VydmVkLgotKyAqCi0rICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgKiAgKCJHUEwiKSB2ZXJzaW9u IDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0rICogIFNl ZSB0aGUgZmlsZSBMSUNFTlNFLkdQTCBhdCB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3Vy Y2UKLSsgKiAgZGlzdHJpYnV0aW9uIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRo ZSBHTlUgR1BMLgotKyAqCi0rICogIEZvciB1c2luZyBDb2luIHdpdGggc29mdHdhcmUgdGhhdCBj YW4gbm90IGJlIGNvbWJpbmVkIHdpdGggdGhlIEdOVQotKyAqICBHUEwsIGFuZCBmb3IgdGFraW5n IGFkdmFudGFnZSBvZiB0aGUgYWRkaXRpb25hbCBiZW5lZml0cyBvZiBvdXIKLSsgKiAgc3VwcG9y dCBzZXJ2aWNlcywgcGxlYXNlIGNvbnRhY3QgU3lzdGVtcyBpbiBNb3Rpb24gYWJvdXQgYWNxdWly aW5nCi0rICogIGEgQ29pbiBQcm9mZXNzaW9uYWwgRWRpdGlvbiBMaWNlbnNlLgotKyAqCi0rICog IFNlZSBodHRwOi8vd3d3LmNvaW4zZC5vcmcvIGZvciBtb3JlIGluZm9ybWF0aW9uLgotKyAqCi0r ICogIFN5c3RlbXMgaW4gTW90aW9uLCBQb3N0Ym9rcyAxMjgzLCBQaXJzZW50ZXJldCwgNzQ2MiBU cm9uZGhlaW0sIE5PUldBWS4KLSsgKiAgaHR0cDovL3d3dy5zaW0ubm8vICBzYWxlc0BzaW0ubm8g IGNvaW4tc3VwcG9ydEBjb2luM2Qub3JnCi0rICoKLStcKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0rCi0r I2lmZGVmIEhBVkVfQ09ORklHX0gKLSsjaW5jbHVkZSA8Y29uZmlnLmg+Ci0rI2VuZGlmIC8vIEhB VkVfQ09ORklHX0gKLSsKLSsjaWZkZWYgSEFWRV8zRFNfSU1QT1JUX0NBUEFCSUxJVElFUwotKwot Ky8vICBQYXJ0IG9mIHRoZSAzRFMgRmlsZSBMb2FkZXIgZm9yIE9wZW4gSW52ZW50b3IKLSsvLwot Ky8vICBkZXZlbG9wZWQgb3JpZ2luYWxseSBieSBQQyBKb2huIChwZWNpdmFAZml0LnZ1dGJyLmN6 KQotKwotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rI2luY2x1 ZGUgPGFzc2VydC5oPgotKwotKyNpbmNsdWRlIDxJbnZlbnRvci9TYlN0cmluZy5oPgotKyNpbmNs dWRlIDxJbnZlbnRvci9lcnJvcnMvU29EZWJ1Z0Vycm9yLmg+Ci0rI2luY2x1ZGUgPEludmVudG9y L1NvSW5wdXQuaD4KLSsjaW5jbHVkZSA8SW52ZW50b3IvQy90aWRiaXRzLmg+Ci0rCi0rI2luY2x1 ZGUgIlNvU3RyZWFtLmgiCi0rCi0rI2RlZmluZSBTVFVCIGFzc2VydChGQUxTRSAmJiAiVW5pbXBs ZW1lbnRlZCBTb1N0cmVhbSBiZWhhdmlvdXIuIikKLSsKLSsKLSsKLSsjZGVmaW5lIE1BWF9OVU1f TEVOR1RIIDMyCi0rCi0rCi0rU29TdHJlYW06OlN0cmVhbUVuZGlhbk9yZGVyaW5nIFNvU3RyZWFt OjpnZXRIb3N0RW5kaWFuT3JkZXJpbmcoKQotK3sKLSsgIHN3aXRjaCAoY29pbl9ob3N0X2dldF9l bmRpYW5uZXNzKCkpIHsKLSsgIGNhc2UgQ09JTl9IT1NUX0lTX0xJVFRMRUVORElBTjogcmV0dXJu IFNvU3RyZWFtOjpMSVRUTEVfRU5ESUFOX1NUUkVBTTsKLSsgIGNhc2UgQ09JTl9IT1NUX0lTX0JJ R0VORElBTjogcmV0dXJuIFNvU3RyZWFtOjpCSUdfRU5ESUFOX1NUUkVBTTsKLSsgIGRlZmF1bHQ6 IGFzc2VydChGQUxTRSAmJiAidW5rbm93biBieXRlb3JkZXJpbmciKTsgcmV0dXJuIFNvU3RyZWFt OjpIT1NUX0RFUDsKLSsgIH0KLSt9Ci0rCi0rdm9pZCBTb1N0cmVhbTo6dXBkYXRlTmVlZEVuZGlh bkNvbnZlcnNpb24oKQotK3sgbmVlZEVuZGlhbkNvbnZlcnNpb24gPSBlbmRpYW5PcmRlcmluZyAh PSBnZXRIb3N0RW5kaWFuT3JkZXJpbmcoKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBl bmRpYW5PcmRlcmluZyAhPSBIT1NUX0RFUDsgfQotKwotK3ZvaWQgU29TdHJlYW06OnNldEVuZGlh bk9yZGVyaW5nKGNvbnN0IFN0cmVhbUVuZGlhbk9yZGVyaW5nIHZhbHVlKQotK3sgZW5kaWFuT3Jk ZXJpbmcgPSB2YWx1ZTsgdXBkYXRlTmVlZEVuZGlhbkNvbnZlcnNpb24oKTsgfQotKwotK1NvU3Ry ZWFtOjpTdHJlYW1FbmRpYW5PcmRlcmluZyBTb1N0cmVhbTo6Z2V0RW5kaWFuT3JkZXJpbmcoKSBj b25zdAotK3sgcmV0dXJuIGVuZGlhbk9yZGVyaW5nOyB9Ci0rCi0rI2RlZmluZSBIVE9OKF90eXBl XykgXAotK3N0YXRpYyB2b2lkIGh0b25fIyNfdHlwZV8oX3R5cGVfIHZhbHVlLCBjaGFyICpidWYs IGNvbnN0IFNiQm9vbCBuZWVkQ29udikgXAotK3sgXAotKyAgdW5pb24geyBcCi0rICAgIF90eXBl XyB2OyBcCi0rICAgIGNoYXIgYltzaXplb2YoX3R5cGVfKV07IFwKLSsgIH07IFwKLSsgIHYgPSB2 YWx1ZTsgXAotKyAgaWYgKG5lZWRDb252KSB7IFwKLSsgICAgdW5zaWduZWQgaW50IGogPSBzaXpl b2YoX3R5cGVfKS0xOyBcCi0rICAgIGZvciAodW5zaWduZWQgaW50IGk9MDsgaTxzaXplb2YoX3R5 cGVfKTsgaSsrKSBcCi0rICAgICAgYnVmW2ldID0gYltqLS1dOyBcCi0rICB9IGVsc2UgXAotKyAg ICBmb3IgKHVuc2lnbmVkIGludCBpPTA7IGk8c2l6ZW9mKF90eXBlXyk7IGkrKykgXAotKyAgICAg IGJ1ZltpXSA9IGJbaV07IFwKLSt9Ci0rI2RlZmluZSBOVE9IKF90eXBlXykgXAotK3N0YXRpYyBf dHlwZV8gbnRvaF8jI190eXBlXyhjaGFyICpidWYsIGNvbnN0IFNiQm9vbCBuZWVkQ29udikgXAot K3sgXAotKyAgaWYgKG5lZWRDb252KSB7IFwKLSsgICAgdW5pb24geyBcCi0rICAgICAgX3R5cGVf IHY7IFwKLSsgICAgICBjaGFyIGJbc2l6ZW9mKF90eXBlXyldOyBcCi0rICAgIH07IFwKLSsgICAg dW5zaWduZWQgaW50IGogPSBzaXplb2YoX3R5cGVfKS0xOyBcCi0rICAgIGZvciAodW5zaWduZWQg aW50IGk9MDsgaTxzaXplb2YoX3R5cGVfKTsgaSsrKSBcCi0rICAgICAgYltpXSA9IGJ1ZltqLS1d OyBcCi0rICAgIHJldHVybiB2OyBcCi0rICB9IGVsc2UgXAotKyAgICByZXR1cm4gKigoX3R5cGVf KilidWYpOyBcCi0rfQotKwotK2lubGluZSBzdGF0aWMgdm9pZCBodG9uX3VpbnQ4X3QodWludDhf dCB2YWx1ZSwgY2hhciAqYnVmLCBjb25zdCBTYkJvb2wgbmVlZENvbnYpICB7IGJ1ZlswXSA9IHZh bHVlOyB9Ci0raW5saW5lIHN0YXRpYyB1aW50OF90IG50b2hfdWludDhfdChjaGFyICpidWYsIGNv bnN0IFNiQm9vbCBuZWVkQ29udikgIHsgcmV0dXJuIGJ1ZlswXTsgfQotK2lubGluZSBzdGF0aWMg dm9pZCBodG9uX2ludDhfdChpbnQ4X3QgdmFsdWUsIGNoYXIgKmJ1ZiwgY29uc3QgU2JCb29sIG5l ZWRDb252KSAgeyBidWZbMF0gPSB2YWx1ZTsgfQotK2lubGluZSBzdGF0aWMgaW50OF90IG50b2hf aW50OF90KGNoYXIgKmJ1ZiwgY29uc3QgU2JCb29sIG5lZWRDb252KSAgeyByZXR1cm4gYnVmWzBd OyB9Ci0rSFRPTih1aW50MTZfdCk7Ci0rTlRPSCh1aW50MTZfdCk7Ci0raW5saW5lIHN0YXRpYyB2 b2lkIGh0b25faW50MTZfdChpbnQxNl90IHZhbHVlLCBjaGFyICpidWYsIGNvbnN0IFNiQm9vbCBu ZWVkQ29udikgIHsgaHRvbl91aW50MTZfdCh2YWx1ZSwgYnVmLCBuZWVkQ29udik7IH0KLStpbmxp bmUgc3RhdGljIGludDE2X3QgbnRvaF9pbnQxNl90KGNoYXIgKmJ1ZiwgY29uc3QgU2JCb29sIG5l ZWRDb252KSAgeyByZXR1cm4gKGludDE2X3QpbnRvaF91aW50MTZfdChidWYsIG5lZWRDb252KTsg fQotK0hUT04odWludDMyX3QpOwotK05UT0godWludDMyX3QpOwotK2lubGluZSBzdGF0aWMgdm9p ZCBodG9uX2ludDMyX3QoaW50MzJfdCB2YWx1ZSwgY2hhciAqYnVmLCBjb25zdCBTYkJvb2wgbmVl ZENvbnYpICB7IGh0b25fdWludDMyX3QodmFsdWUsIGJ1ZiwgbmVlZENvbnYpOyB9Ci0raW5saW5l IHN0YXRpYyBpbnQzMl90IG50b2hfaW50MzJfdChjaGFyICpidWYsIGNvbnN0IFNiQm9vbCBuZWVk Q29udikgIHsgcmV0dXJuIChpbnQzMl90KW50b2hfdWludDMyX3QoYnVmLCBuZWVkQ29udik7IH0K LStIVE9OKGZsb2F0KTsKLStOVE9IKGZsb2F0KTsKLStIVE9OKGRvdWJsZSk7Ci0rTlRPSChkb3Vi bGUpOwotKwotKwotKyNkZWZpbmUgU09TVFJFQU1fUldfT1AoX3N1ZmZpeF8sIF90eXBlXywgX3By aW50U3RyaW5nXywgX3JlYWRDb2RlXykgXAotK1NiQm9vbCBTb1N0cmVhbTo6cmVhZCMjX3N1ZmZp eF8oX3R5cGVfICZ2YWx1ZSkgXAotK3sgXAotKyAgaWYgKGlzQmluYXJ5KCkpIHsgXAotKyAgICBj aGFyIHRlbXBbc2l6ZW9mKF90eXBlXyldOyBcCi0rICAgIHJlYWRCaW5hcnlBcnJheSgmdGVtcCwg c2l6ZW9mKF90eXBlXykpOyBcCi0rICAgIHZhbHVlID0gbnRvaF8jI190eXBlXyh0ZW1wLCBuZWVk RW5kaWFuQ29udmVyc2lvbik7IFwKLSsgIH0gZWxzZSB7IFwKLSsgICAgX3JlYWRDb2RlXzsgXAot KyAgfSBcCi0rICByZXR1cm4gIWlzQmFkKCk7IFwKLSt9IFwKLStTYkJvb2wgU29TdHJlYW06Ondy aXRlIyNfc3VmZml4Xyhjb25zdCBfdHlwZV8gdmFsdWUpIFwKLSt7IFwKLSsgIGlmIChpc0JpbmFy eSgpKSB7IFwKLSsgICAgY2hhciB0ZW1wW3NpemVvZihfdHlwZV8pXTsgXAotKyAgICBodG9uXyMj X3R5cGVfKHZhbHVlLCB0ZW1wLCBuZWVkRW5kaWFuQ29udmVyc2lvbik7IFwKLSsgICAgd3JpdGVC aW5hcnlBcnJheSgodm9pZCopJnZhbHVlLCBzaXplb2YoX3R5cGVfKSk7IFwKLSsgIH0gZWxzZSB7 IFwKLSsgICAgU2JTdHJpbmcgczsgXAotKyAgICBzLnNwcmludGYoX3ByaW50U3RyaW5nXywgdmFs dWUpOyBcCi0rICAgIHdyaXRlQmluYXJ5QXJyYXkoKHZvaWQqKXMuZ2V0U3RyaW5nKCksIChzaXpl X3Qpcy5nZXRMZW5ndGgoKSk7IFwKLSsgIH0gXAotKyAgcmV0dXJuICFpc0JhZCgpOyBcCi0rfQot KwotKwotKyNkZWZpbmUgU09TVFJFQU1fSU5UX1JFQUQoX2NvbnZlcnRGdW5jXywgX2NvbnZlcnRU eXBlXywgX3JldFR5cGVfLCBfY2hlY2tfKSBcCi0rZG8geyBcCi0rICBpZiAoaXNCYWQoKSkgXAot KyAgICByZXR1cm4gRkFMU0U7IFwKLSsgXAotKyAgY2hhciBidWZbTUFYX05VTV9MRU5HVEhdOyBc Ci0rICBjaGFyICpzID0gYnVmOyBcCi0rICBjb25zdCBjaGFyICplID0gJmJ1ZltNQVhfTlVNX0xF TkdUSC0xXTsgXAotKyAgU2JCb29sIGdvdE51bTsgXAotKyBcCi0rICBnZXRDaGFyKCpzKTsgXAot KyAgaWYgKCpzID09ICctJyB8fCAqcyA9PSAnKycpIFwKLSsgICAgcysrOyBcCi0rICBlbHNlIFwK LSsgICAgdW5nZXRDaGFyKCpzKTsgXAotKyBcCi0rICBnZXRDaGFyKCpzKTsgXAotKyAgaWYgKCpz ID09ICcwJykgeyBcCi0rICAgIHMrKzsgXAotKyAgICBnZXRDaGFyKCpzKTsgXAotKyAgICBpZiAo KnMgPT0gJ3gnKSB7IFwKLSsgICAgICBzKys7IFwKLSsgICAgICBnb3ROdW0gPSByZWFkSGV4SW50 KHMsIGUpOyBcCi0rICAgIH0gZWxzZSB7IFwKLSsgICAgICB1bmdldENoYXIoKnMpOyBcCi0rICAg ICAgZ290TnVtID0gcmVhZERpZ0ludChzLCBlKTsgXAotKyAgICB9IFwKLSsgIH0gZWxzZSB7IFwK LSsgICAgdW5nZXRDaGFyKCpzKTsgXAotKyAgICBnb3ROdW0gPSByZWFkRGlnSW50KHMsIGUpOyBc Ci0rICB9IFwKLSsgXAotKyAgaWYgKCFnb3ROdW0pIHsgc2V0QmFkQml0KCk7IHJldHVybiBGQUxT RTsgfSBcCi0rIFwKLSsgIGNoYXIgKmNlOyBcCi0rICBzID0gJ1wwJzsgXAotKyAgX2NvbnZlcnRU eXBlXyB0ZW1wVmFsID0gX2NvbnZlcnRGdW5jXyhidWYsICZjZSwgMCk7IFwKLSsgXAotKyAgaWYg KGNlICE9IHMpIFwKLSsgICAgYXNzZXJ0KEZBTFNFICYmICJXcm9uZyBpbnRlZ2VyIG51bWJlciBi dWZmZXIgcGFyc2luZy4iKTsgXAotKyBcCi0rICBfY2hlY2tfIFwKLSsgIHZhbHVlID0gKF9yZXRU eXBlXyl0ZW1wVmFsOyBcCi0rfSB3aGlsZSgwKQotKwotKwotKyNkZWZpbmUgREVGQVVMVF9DSEVD SzAKLSsKLSsjZGVmaW5lIERFRkFVTFRfQ0hFQ0sxKF9tYXhWYWxfKSBcCi0rICBpZiAodGVtcFZh bCA+IF9tYXhWYWxfKSBcCi0rICAgIHNldEJhZEJpdCgpOyBcCi0rICBlbHNlCi0rCi0rI2RlZmlu ZSBERUZBVUxUX0NIRUNLMihfbWluVmFsXywgX21heFZhbF8pIFwKLSsgIGlmICh0ZW1wVmFsIDwg X21pblZhbF8gfHwgdGVtcFZhbCA+IF9tYXhWYWxfKSBcCi0rICAgIHNldEJhZEJpdCgpOyBcCi0r ICBlbHNlCi0rCi0rCi0rI2RlZmluZSBTT1NUUkVBTV9GX1JFQUQoX2NvbnZlcnRGdW5jXywgX3Jl dFR5cGVfKSBcCi0rZG8geyBcCi0rICBpZiAoaXNCYWQoKSkgXAotKyAgICByZXR1cm4gRkFMU0U7 IFwKLSsgXAotKyAgY2hhciBidWZbTUFYX05VTV9MRU5HVEhdOyBcCi0rICBjaGFyICpzID0gYnVm OyBcCi0rICBjb25zdCBjaGFyICplID0gJmJ1ZltNQVhfTlVNX0xFTkdUSC0xXTsgXAotKyAgU2JC b29sIGdvdE51bTsgXAotKyBcCi0rICBnZXRDaGFyKCpzKTsgXAotKyAgaWYgKCpzID09ICctJyB8 fCAqcyA9PSAnKycpIFwKLSsgICAgcysrOyBcCi0rICBlbHNlIFwKLSsgICAgdW5nZXRDaGFyKCpz KTsgXAotKyBcCi0rICBnb3ROdW0gPSByZWFkRGlnSW50KHMsIGUpOyBcCi0rICBpZiAoIWdvdE51 bSkgeyBcCi0rICAgIGdldENoYXIoKnMpOyBcCi0rICAgIGlmICgqcyA9PSAnSScpIHsgXAotKyAg ICAgIHMrKzsgZ2V0Q2hhcigqcyk7IFwKLSsgICAgICBpZiAoKnMgPT0gJ04nKSB7IFwKLSsgICAg ICAgIHMrKzsgZ2V0Q2hhcigqcyk7IFwKLSsgICAgICAgICAgaWYgKCpzID09ICdGJykgeyBcCi0r ICAgICAgICAgIHMrKzsgXAotKyAgICAgICAgICBnb3RvIGdvdEFsbDsgXAotKyAgICAgICAgfSBl bHNlIHNldEJhZEJpdCgpOyBcCi0rICAgICAgfSBlbHNlIHNldEJhZEJpdCgpOyBcCi0rICAgIH0g ZWxzZSB7IFwKLSsgICAgICBpZiAoKnMgPT0gJ04nKSB7IFwKLSsgICAgICAgIHMrKzsgZ2V0Q2hh cigqcyk7IFwKLSsgICAgICAgIGlmICgqcyA9PSAnQScpIHsgXAotKyAgICAgICAgICBzKys7IGdl dENoYXIoKnMpOyBcCi0rICAgICAgICAgIGlmICgqcyA9PSAnTicpIHsgXAotKyAgICAgICAgICAg IHMrKzsgXAotKyAgICAgICAgICAgIGdvdG8gZ290QWxsOyBcCi0rICAgICAgICAgIH0gZWxzZSBz ZXRCYWRCaXQoKTsgXAotKyAgICAgICAgfSBlbHNlIHNldEJhZEJpdCgpOyBcCi0rICAgICAgfSBl bHNlIFwKLSsgICAgICAgIHVuZ2V0Q2hhcigqcyk7IFwKLSsgICAgfSBcCi0rICAgIGlmIChpc0Jh ZCgpKSBcCi0rICAgICAgcmV0dXJuIEZBTFNFOyBcCi0rICB9IFwKLSsgXAotKyAgZ2V0Q2hhcigq cyk7IFwKLSsgIGlmICgqcyA9PSAnLicpIHsgXAotKyAgICBzKys7IFwKLSsgICAgZ290TnVtID0g cmVhZERpZ0ludChzLCBlKSB8fCBnb3ROdW07IFwKLSsgIH0gZWxzZSB1bmdldENoYXIoKnMpOyBc Ci0rIFwKLSsgIGlmICghZ290TnVtKSB7IFwKLSsgICAgc2V0QmFkQml0KCk7IFwKLSsgICAgcmV0 dXJuIEZBTFNFOyBcCi0rICB9IFwKLSsgXAotKyAgZ2V0Q2hhcigqcyk7IFwKLSsgIGlmICgqcyA9 PSAnZScgfHwgKnMgPT0gJ0UnKSB7IFwKLSsgICAgcysrOyBcCi0rICAgIGdldENoYXIoKnMpOyBc Ci0rICAgIGlmICgqcyA9PSAnLScgfHwgKnMgPT0gJysnKSBzKys7IFwKLSsgICAgZWxzZSB1bmdl dENoYXIoKnMpOyBcCi0rIFwKLSsgICAgaWYgKCFyZWFkRGlnSW50KHMsIGUpKSB7IFwKLSsgICAg ICBzZXRCYWRCaXQoKTsgXAotKyAgICAgIHJldHVybiBGQUxTRTsgXAotKyAgICB9IFwKLSsgIH0g ZWxzZSBcCi0rICAgIHVuZ2V0Q2hhcigqcyk7IFwKLSsgXAotK2dvdEFsbDogXAotKyAgXAotKyAg Y2hhciAqY2U7IFwKLSsgIHMgPSAnXDAnOyBcCi0rICBkb3VibGUgdGVtcFZhbCA9IF9jb252ZXJ0 RnVuY18oYnVmLCAmY2UpOyBcCi0rIFwKLSsgIGlmIChjZSAhPSBzKSBcCi0rICAgIGFzc2VydChG QUxTRSAmJiAiV3JvbmcgZmxvYXQgbnVtYmVyIGJ1ZmZlciBwYXJzaW5nLiIpOyBcCi0rIFwKLSsg IHZhbHVlID0gKF9yZXRUeXBlXyl0ZW1wVmFsOyBcCi0rfSB3aGlsZSgwKQotKwotKwotKwotK1Ni Qm9vbCBTb1N0cmVhbTo6Z2V0Q2hhcihjaGFyICZjKQotK3sKLSsgIGFzc2VydChpc0JpbmFyeSgp ICYmICJnZXRDaGFyIGNhbiBiZSB1c2VkIGZvciB0ZXh0IGZpbGVzIG9ubHkuIik7Ci0rICBpZiAo IWlzUmVhZGFibGUoKSkgc2V0QmFkQml0KCk7Ci0rICBpZiAoaXNCYWQoKSkgcmV0dXJuIEZBTFNF OwotKwotKyAgc3dpdGNoKHN0cmVhbVR5cGUpIHsKLSsgIGNhc2UgTUVNT1JZOgotKyAgICBpZiAo YnVmUG9zIDwgYnVmZmVyU2l6ZSkgewotKyAgICAgIGMgPSBidWZmZXJbYnVmUG9zKytdOwotKyAg ICAgIHJldHVybiBUUlVFOwotKyAgICB9Ci0rICAgIHNldEJhZEJpdCgpOwotKyAgICByZXR1cm4g RkFMU0U7Ci0rICBjYXNlIEZJTEVfU1RSRUFNOgotKyAgICBTVFVCOwotKyAgICByZXR1cm4gRkFM U0U7Ci0rICBjYXNlIFNPX0lOUFVUX1dSQVA6Ci0rICAgIHJldHVybiBzb2lucHV0LT5yZWFkKGMp OwotKyAgZGVmYXVsdDoKLSsgICAgYXNzZXJ0KEZBTFNFKTsKLSsgICAgcmV0dXJuIEZBTFNFOwot KyAgfQotK30KLSsKLSsKLSt2b2lkIFNvU3RyZWFtOjp1bmdldENoYXIoY29uc3QgY2hhciBjKQot K3sKLSsgIGFzc2VydChpc0JpbmFyeSgpICYmICJ1bmdldENoYXIgY2FuIGJlIHVzZWQgZm9yIHRl eHQgZmlsZXMgb25seS4iKTsKLSsgIGlmICghaXNSZWFkYWJsZSgpKSBzZXRCYWRCaXQoKTsKLSsg IGlmIChpc0JhZCgpKSByZXR1cm47Ci0rCi0rICBzd2l0Y2ggKHN0cmVhbVR5cGUpIHsKLSsgIGNh c2UgTUVNT1JZOgotKyAgICBpZiAoYnVmUG9zID4gMCAmJiBidWZQb3MgPD0gYnVmZmVyU2l6ZSkg ewotKyAgICAgIC0tYnVmUG9zOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKyAgICBhc3NlcnQo RkFMU0UgJiYgIlN0cmFuZ2UgcGxheWluZyB3aXRoIGZpbGUgcG9pbnRlci4iKTsKLSsgICAgc2V0 QmFkQml0KCk7Ci0rICBjYXNlIEZJTEVfU1RSRUFNOgotKyAgICBTVFVCOwotKyAgICByZXR1cm47 Ci0rICBjYXNlIFNPX0lOUFVUX1dSQVA6Ci0rICAgIHNvaW5wdXQtPnB1dEJhY2soYyk7Ci0rICAg IHJldHVybjsKLSsgIGRlZmF1bHQ6Ci0rICAgIGFzc2VydChGQUxTRSAmJiAibm90IGhhbmRsZWQi KTsKLSsgICAgYnJlYWs7Ci0rICB9Ci0rfQotKwotKwotK3ZvaWQgU29TdHJlYW06OnB1dENoYXIo Y29uc3QgY2hhciBjKQotK3sKLSsgIGFzc2VydChpc0JpbmFyeSgpICYmICJwdXRDaGFyIGNhbiBi ZSB1c2VkIGZvciB0ZXh0IGZpbGVzIG9ubHkuIik7Ci0rICBpZiAoIWlzV3JpdGVhYmxlKCkpIHNl dEJhZEJpdCgpOwotKyAgaWYgKGlzQmFkKCkpIHJldHVybjsKLSsKLSsgIHN3aXRjaCAoc3RyZWFt VHlwZSkgewotKyAgY2FzZSBGSUxFX1NUUkVBTTogU1RVQjsgYnJlYWs7Ci0rICBjYXNlIE1FTU9S WTogewotKyAgICBhc3NlcnQoYnVmUG9zIDw9IGJ1ZmZlclNpemUgJiYgIldyb25nIGZpbGUgYnVm ZmVyIHBvc2l0aW9uLiIpOwotKyAgICBpZiAoYnVmUG9zID09IGJ1ZmZlclNpemUpCi0rICAgICAg aWYgKCFyZWFsbG9jQnVmZmVyKGJ1ZmZlclNpemUrMSkpIHsKLSsgICAgICAgIHNldEJhZEJpdCgp OwotKyAgICAgICAgcmV0dXJuOwotKyAgICAgIH0KLSsgICAgYnVmZmVyW2J1ZlBvcysrXSA9IGM7 Ci0rICB9Ci0rICBkZWZhdWx0OgotKyAgICBTVFVCOwotKyAgfQotK30KLSsKLSsKLStzaXplX3Qg U29TdHJlYW06OnJlYWRCaW5hcnlBcnJheSh2b2lkICpidWYsIHNpemVfdCBzaXplKQotK3sKLSsg IGlmICghaXNSZWFkYWJsZSgpKSBzZXRCYWRCaXQoKTsKLSsgIGlmIChpc0JhZCgpKSByZXR1cm4g MDsKLSsKLSsgIHN3aXRjaCAoc3RyZWFtVHlwZSkgewotKyAgY2FzZSBNRU1PUlk6Ci0rICAgIGFz c2VydChidWZQb3MgPD0gYnVmZmVyU2l6ZSAmJiAiV3JvbmcgcmVhZCBidWZmZXIgcG9zaXRpb24u Iik7Ci0rICAgIHNpemVfdCBhbW91bnQ7Ci0rICAgIGlmIChidWZQb3MgKyBzaXplID4gYnVmZmVy U2l6ZSkKLSsgICAgICBhbW91bnQgPSBidWZmZXJTaXplIC0gYnVmUG9zOwotKyAgICBlbHNlCi0r ICAgICAgYW1vdW50ID0gc2l6ZTsKLSsgICAgbWVtY3B5KGJ1ZiwgJmJ1ZmZlcltidWZQb3NdLCBh bW91bnQpOwotKyAgICBidWZQb3MgKz0gYW1vdW50OwotKyAgICByZXR1cm4gYW1vdW50OwotKyAg Y2FzZSBGSUxFX1NUUkVBTToKLSsgICAgcmV0dXJuIGZyZWFkKGJ1ZiwgMSwgc2l6ZSwgZmlsZXAp OwotKyAgY2FzZSBTT19JTlBVVF9XUkFQOiB7Ci0rICAgIHNpemVfdCBwb3MgPSBzb2lucHV0LT5n ZXROdW1CeXRlc1JlYWQoKTsKLSsgICAgaWYgKHNvaW5wdXQtPnJlYWRCaW5hcnlBcnJheSgodW5z aWduZWQgY2hhciopYnVmLCBzaXplKSkgIHJldHVybiBzaXplOwotKyAgICBlbHNlICByZXR1cm4g c29pbnB1dC0+Z2V0TnVtQnl0ZXNSZWFkKCkgLSBwb3M7Ci0rICB9Ci0rICBkZWZhdWx0OgotKyAg ICBhc3NlcnQoRkFMU0UpOwotKyAgICByZXR1cm4gMDsKLSsgIH0KLSt9Ci0rCi0rCi0rc2l6ZV90 IFNvU3RyZWFtOjp3cml0ZUJpbmFyeUFycmF5KHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpCi0rewot KyAgaWYgKCFpc1dyaXRlYWJsZSgpKSBzZXRCYWRCaXQoKTsKLSsgIGlmIChpc0JhZCgpKSByZXR1 cm4gMDsKLSsKLSsgIHN3aXRjaCAoc3RyZWFtVHlwZSkgewotKyAgY2FzZSBGSUxFX1NUUkVBTTog cmV0dXJuIGZ3cml0ZShidWYsIDEsIHNpemUsIGZpbGVwKTsKLSsgIGNhc2UgTUVNT1JZOiB7Ci0r ICAgIGFzc2VydChidWZQb3MgPD0gYnVmZmVyU2l6ZSAmJiAiV3Jvbmcgd3JpdGUgYnVmZmVyIHBv c2l0aW9uLiIpOwotKyAgICBpZiAoYnVmUG9zK3NpemUgPj0gYnVmZmVyU2l6ZSkKLSsgICAgICAv LyBpZiBub3QgZW5vdWdoIHNwYWNlID0+IHJlYWxsb2MKLSsgICAgICBpZiAoIXJlYWxsb2NCdWZm ZXIoYnVmUG9zK3NpemUpKSB7Ci0rICAgICAgICAvLyBpZiBjYW4gbm90IHJlYWxsb2MgPT4gc2V0 QmFkQml0IGFuZCBjb3B5IG9ubHkgd2hhdCBpcyBwb3NzaWJsZQotKyAgICAgICAgc2V0QmFkQml0 KCk7Ci0rICAgICAgICBzaXplID0gYnVmZmVyU2l6ZSAtIGJ1ZlBvczsKLSsgICAgICB9Ci0rICAg IG1lbWNweSgmYnVmZmVyW2J1ZlBvc10sIGJ1Ziwgc2l6ZSk7Ci0rICAgIGJ1ZlBvcyArPSBzaXpl OwotKyAgICByZXR1cm4gc2l6ZTsKLSsgIH0KLSsgIGNhc2UgU09fSU5QVVRfV1JBUDogYXNzZXJ0 KEZBTFNFICYmICJVbnN1cHBvcnRlZCBvcGVyYXRpb24uIik7IHJldHVybiAwOwotKyAgZGVmYXVs dDogYXNzZXJ0KEZBTFNFKTsgcmV0dXJuIDA7Ci0rICB9Ci0rfQotKwotKwotKwotK1NPU1RSRUFN X1JXX09QKCAgSW50OCwgICBpbnQ4X3QsICAgIiVkIiwgU09TVFJFQU1fSU5UX1JFQUQoc3RydG9s LCAgIGludDMyX3QsICAgaW50OF90LCBERUZBVUxUX0NIRUNLMigtMTI4LCAxMjcpKSk7Ci0rU09T VFJFQU1fUldfT1AoIFVJbnQ4LCAgdWludDhfdCwgIjB4JXgiLCBTT1NUUkVBTV9JTlRfUkVBRChz dHJ0b3VsLCB1aW50MzJfdCwgIHVpbnQ4X3QsIERFRkFVTFRfQ0hFQ0sxKDB4ZmYpKSk7Ci0rU09T VFJFQU1fUldfT1AoIEludDE2LCAgaW50MTZfdCwgICAiJWQiLCBTT1NUUkVBTV9JTlRfUkVBRChz dHJ0b2wsICAgaW50MzJfdCwgIGludDE2X3QsIERFRkFVTFRfQ0hFQ0syKC0zMjc2OCwgMzI3Njcp KSk7Ci0rU09TVFJFQU1fUldfT1AoVUludDE2LCB1aW50MTZfdCwgIjB4JXgiLCBTT1NUUkVBTV9J TlRfUkVBRChzdHJ0b3VsLCB1aW50MzJfdCwgdWludDE2X3QsIERFRkFVTFRfQ0hFQ0sxKDB4ZmZm ZikpKTsKLStTT1NUUkVBTV9SV19PUCggSW50MzIsICBpbnQzMl90LCAgICIlZCIsIFNPU1RSRUFN X0lOVF9SRUFEKHN0cnRvbCwgICBpbnQzMl90LCAgaW50MzJfdCwgREVGQVVMVF9DSEVDSzApKTsK LStTT1NUUkVBTV9SV19PUChVSW50MzIsIHVpbnQzMl90LCAiMHgleCIsIFNPU1RSRUFNX0lOVF9S RUFEKHN0cnRvdWwsIHVpbnQzMl90LCB1aW50MzJfdCwgREVGQVVMVF9DSEVDSzApKTsKLSsKLSsK LSsKLStTYkJvb2wgU29TdHJlYW06OnJlYWREaWdJbnQoY2hhciAqcywgY29uc3QgY2hhciAqZSkK LSt7Ci0rICBTVFVCOwotKyAgcmV0dXJuIEZBTFNFOwotK30KLSsKLSsKLStTYkJvb2wgU29TdHJl YW06OnJlYWRIZXhJbnQoY2hhciAqcywgY29uc3QgY2hhciAqZSkKLSt7Ci0rICBTVFVCOwotKyAg cmV0dXJuIEZBTFNFOwotK30KLSsKLSsKLSsKLStTT1NUUkVBTV9SV19PUChGbG9hdCwgZmxvYXQs ICIlZSIsIFNPU1RSRUFNX0ZfUkVBRChzdHJ0b2QsIGZsb2F0KSk7Ci0rU09TVFJFQU1fUldfT1Ao RG91YmxlLCBkb3VibGUsICIlZSIsIFNPU1RSRUFNX0ZfUkVBRChzdHJ0b2QsIGRvdWJsZSkpOwot KwotKwotKwotK3NpemVfdCBTb1N0cmVhbTo6cmVhZEJ1ZmZlcih2b2lkICpidWYsIHNpemVfdCBi dWZTaXplKQotK3sKLSsgIHJldHVybiByZWFkQmluYXJ5QXJyYXkoYnVmLCBidWZTaXplKTsKLSt9 Ci0rc2l6ZV90IFNvU3RyZWFtOjp3cml0ZUJ1ZmZlcih2b2lkICpidWYsIHNpemVfdCBidWZTaXpl KQotK3sKLSsgIHJldHVybiB3cml0ZUJpbmFyeUFycmF5KGJ1ZiwgYnVmU2l6ZSk7Ci0rfQotKwot KwotKwotK1NiQm9vbCBTb1N0cmVhbTo6cmVhZEZyb21TdHJlYW0oU29TdHJlYW0gJnN0cmVhbSkK LSt7Ci0rICBzaXplX3QgYW1vdW50ID0gc3RyZWFtLmdldFNpemUoKSAtIHN0cmVhbS5nZXRQb3Mo KTsKLSsgIHJlYWRGcm9tU3RyZWFtKHN0cmVhbSwgYW1vdW50KTsKLSsgIHJldHVybiAhaXNCYWQo KTsKLSt9Ci0rU2JCb29sIFNvU3RyZWFtOjp3cml0ZVRvU3RyZWFtKFNvU3RyZWFtICZzdHJlYW0p Ci0rewotKyAgcmV0dXJuIHN0cmVhbS5yZWFkRnJvbVN0cmVhbSgqdGhpcyk7Ci0rfQotK3NpemVf dCBTb1N0cmVhbTo6cmVhZEZyb21TdHJlYW0oU29TdHJlYW0gJnN0cmVhbSwgc2l6ZV90IGJ5dGVz KQotK3sKLSsgIGludCBhbDsKLSsgIGlmIChieXRlcyA+IDEwNDg1NzYpIGFsID0gMTA0ODU3NjsK LSsgIGVsc2UgYWwgPSBieXRlczsKLSsgIHZvaWQgKnRlbXAgPSBtYWxsb2MoYWwpOwotKyAgc2l6 ZV90IHRyYW5zID0gMDsKLSsgIGRvIHsKLSsgICAgaWYgKHRyYW5zK2FsID4gYnl0ZXMpICBhbCA9 IGJ5dGVzIC0gdHJhbnM7Ci0rICAgIHNpemVfdCBhbW91bnQgPSBzdHJlYW0ucmVhZEJ1ZmZlcih0 ZW1wLCBhbCk7Ci0rICAgIHNpemVfdCB3cml0dGVuID0gdGhpcy0+d3JpdGVCdWZmZXIodGVtcCwg YW1vdW50KTsKLSsgICAgdHJhbnMgKz0gd3JpdHRlbjsKLSsgICAgaWYgKGlzQmFkKCkpIGJyZWFr OwotKyAgfSB3aGlsZSAodHJhbnMgPCBieXRlcyk7Ci0rICBmcmVlKHRlbXApOwotKwotKyAgcmV0 dXJuIHRyYW5zOwotK30KLStzaXplX3QgU29TdHJlYW06OndyaXRlVG9TdHJlYW0oU29TdHJlYW0g JnN0cmVhbSwgc2l6ZV90IGJ5dGVzKQotK3sKLSsgIHJldHVybiBzdHJlYW0ucmVhZEZyb21TdHJl YW0oKnRoaXMsIGJ5dGVzKTsKLSt9Ci0rCi0rCi0rCi0rU2JCb29sIFNvU3RyZWFtOjpyZWFkWlN0 cmluZyhjaGFyICpidWYsIGludCBidWZTaXplKQotK3sKLSsgIHVpbnQ4X3QgYzsKLSsgIGRvIHsK LSsgICAgaWYgKGJ1ZlNpemUtLSA9PSAwKSB7IHNldEJhZEJpdCgpOyByZXR1cm4gRkFMU0U7IH0K LSsgICAgb3BlcmF0b3IgPj4gKGMpOwotKyAgICAqKGJ1ZisrKSA9IGM7Ci0rICB9IHdoaWxlIChj ICE9ICdcMCcpOwotKyAgcmV0dXJuICFpc0JhZCgpOwotK30KLStTYkJvb2wgU29TdHJlYW06Ondy aXRlWlN0cmluZyhjb25zdCBjaGFyICpidWYpCi0rewotKyAgZG8gewotKyAgICBvcGVyYXRvciA8 PCAoYnVmKTsKLSsgIH0gd2hpbGUgKCooYnVmKyspICE9ICdcMCcpOwotKyAgcmV0dXJuICFpc0Jh ZCgpOwotK30KLSsKLSsKLSsKLStTYkJvb2wgU29TdHJlYW06OnJlYWRTdHJlYW0oU29TdHJlYW0g JnN0cmVhbSkKLSt7Ci0rICBTVFVCOwotKyAgcmV0dXJuIEZBTFNFOwotK30KLStTYkJvb2wgU29T dHJlYW06OndyaXRlU3RyZWFtKGNvbnN0IFNvU3RyZWFtICZzdHJlYW0pCi0rewotKyAgU1RVQjsK LSsgIHJldHVybiBGQUxTRTsKLSt9Ci0rCi0rCi0rCi0rdm9pZCBTb1N0cmVhbTo6c2V0UG9zKHNp emVfdCBwb3MpCi0rewotKyAgc3dpdGNoIChzdHJlYW1UeXBlKSB7Ci0rICBjYXNlIEZJTEVfU1RS RUFNOiAgZnNlZWsoZmlsZXAsIHBvcywgU0VFS19TRVQpOyBicmVhazsKLSsgIGNhc2UgTUVNT1JZ OiAgaWYgKHBvcyA+IGJ1ZmZlclNpemUpIHNldEJhZEJpdCgpOwotKyAgICAgICAgICAgICAgICBl bHNlIGJ1ZlBvcyA9IHBvczsKLSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICBjYXNlIFNPX0lO UFVUX1dSQVA6IHsKLSsgICAgc2l6ZV90IGNwb3MgPSBnZXRQb3MoKTsKLSsgICAgaWYgKHBvcyA+ PSBjcG9zKSB7Ci0rICAgICAgc2l6ZV90IG51bSA9IHBvcyAtIGNwb3M7Ci0rICAgICAgY2hhciBj WzE2XTsKLSsgICAgICBzaXplX3QgZDsKLSsgICAgICB3aGlsZSAobnVtID4gMCkgewotKyAgICAg ICAgZCA9IG51bTw9MTYgPyBudW0gOiAxNjsKLSsgICAgICAgIGlmIChyZWFkQmluYXJ5QXJyYXko JmMsIGQpICE9IGQpIHsKLSsgICAgICAgICAgc2V0QmFkQml0KCk7Ci0rICAgICAgICAgIGJyZWFr OwotKyAgICAgICAgfQotKyAgICAgICAgbnVtIC09IGQ7Ci0rICAgICAgfQotKyAgICB9IGVsc2Ug ewotKyAgICAgIGFzc2VydChGQUxTRSAmJiAiU29TdHJlYW06OnNldFBvcygpIHRvIG1vdmUgYmFj ayBpbiB0aGUgc3RyZWFtIGlzIG5vdCBzdXBwb3J0ZWQuIik7Ci0rICAgICAgc2V0QmFkQml0KCk7 Ci0rICAgIH0KLSsgICAgYnJlYWs7Ci0rICB9Ci0rICBkZWZhdWx0OiAgYXNzZXJ0KEZBTFNFICYm ICJVbnN1cHBvcnRlZCBvcGVyYXRpb24uIik7IGJyZWFrOwotKyAgfQotK30KLSsKLStzaXplX3Qg U29TdHJlYW06OmdldFBvcygpIGNvbnN0Ci0rewotKyAgc3dpdGNoIChzdHJlYW1UeXBlKSB7Ci0r ICBjYXNlIEZJTEVfU1RSRUFNOiAgcmV0dXJuIGZ0ZWxsKGZpbGVwKTsKLSsgIGNhc2UgTUVNT1JZ OiAgcmV0dXJuIGJ1ZlBvczsKLSsgIGNhc2UgU09fSU5QVVRfV1JBUDogIHJldHVybiBzb2lucHV0 LT5nZXROdW1CeXRlc1JlYWQoKTsKLSsgIGRlZmF1bHQ6ICBhc3NlcnQoRkFMU0UpOyByZXR1cm4g MDsKLSsgIH0KLSt9Ci0rCi0rc2l6ZV90IFNvU3RyZWFtOjpnZXRTaXplKCkgY29uc3QKLSt7Ci0r ICBzd2l0Y2ggKHN0cmVhbVR5cGUpIHsKLSsgIGNhc2UgRklMRV9TVFJFQU0gOiB7Ci0rICAgIHNp emVfdCBjcG9zID0gZnRlbGwoZmlsZXApOwotKyAgICBmc2VlayhmaWxlcCwgMCwgU0VFS19FTkQp OwotKyAgICBzaXplX3Qgc2l6ZSA9IGZ0ZWxsKGZpbGVwKTsKLSsgICAgZnNlZWsoZmlsZXAsIGNw b3MsIFNFRUtfU0VUKTsKLSsgICAgcmV0dXJuIHNpemU7Ci0rICB9Ci0rICBjYXNlIE1FTU9SWTog IHJldHVybiBidWZmZXJTaXplOwotKyAgY2FzZSBTT19JTlBVVF9XUkFQOiBhc3NlcnQoRkFMU0Ug JiYgIlVuc3VwcG9ydGVkIG9wZXJhdGlvbi4iKTsgcmV0dXJuIDA7Ci0rICBkZWZhdWx0OiBhc3Nl cnQoRkFMU0UpOyByZXR1cm4gMDsKLSsgIH0KLSt9Ci0rCi0rCi0rdm9pZCBTb1N0cmVhbTo6c2V0 QmFkQml0KCkgIHsgYmFkQml0ID0gVFJVRTsgfQotK3ZvaWQgU29TdHJlYW06OmNsZWFyQmFkQml0 KCkgIHsgYmFkQml0ID0gRkFMU0U7IH0KLStTYkJvb2wgU29TdHJlYW06OmlzQmFkKCkgY29uc3Qg IHsgcmV0dXJuIGJhZEJpdDsgfQotKwotK3ZvaWQgU29TdHJlYW06OnNldEFjY2Vzc1JpZ2h0cyhT YkJvb2wgcmVhZEVuYWJsZWQsIFNiQm9vbCB3cml0ZUVuYWJsZWQpCi0reyByZWFkYWJsZSA9IHJl YWRFbmFibGVkOyB3cml0ZWFibGUgPSB3cml0ZUVuYWJsZWQ7IH0KLStTYkJvb2wgU29TdHJlYW06 OmlzUmVhZGFibGUoKSBjb25zdCAgeyByZXR1cm4gcmVhZGFibGU7IH0KLStTYkJvb2wgU29TdHJl YW06OmlzV3JpdGVhYmxlKCkgY29uc3QgIHsgcmV0dXJuIHdyaXRlYWJsZTsgfQotKwotKwotK1Ni Qm9vbCBTb1N0cmVhbTo6cmVhbGxvY0J1ZmZlcihzaXplX3QgbmV3U2l6ZSkKLSt7Ci0rICBhc3Nl cnQoc3RyZWFtVHlwZSA9PSBNRU1PUlkpOwotKyAgYXNzZXJ0KG5ld1NpemUgPiAwKTsKLSsKLSsg IGlmIChuZXdTaXplIDw9IGJ1ZmZlckFsbG9jU2l6ZSkgewotKyAgICBidWZmZXJTaXplID0gbmV3 U2l6ZTsKLSsgICAgcmV0dXJuIFRSVUU7Ci0rICB9Ci0rCi0rICBzaXplX3QgbmV3QWxsb2NTaXpl ID0gc2l6ZV90KGJ1ZmZlckFsbG9jU2l6ZSAqIDEuNSk7Ci0rICBpZiAobmV3QWxsb2NTaXplIDwg bmV3U2l6ZSkKLSsgICAgbmV3QWxsb2NTaXplID0gbmV3U2l6ZTsKLSsKLSsgIGNoYXIgKm5ld0J1 ZmZlciA9IChjaGFyKilyZWFsbG9jKGJ1ZmZlciwgbmV3QWxsb2NTaXplKTsKLSsgIGlmIChuZXdC dWZmZXIgIT0gTlVMTCkgewotKyAgICBidWZmZXIgPSBuZXdCdWZmZXI7Ci0rICAgIGJ1ZmZlclNp emUgPSBuZXdTaXplOwotKyAgICBidWZmZXJBbGxvY1NpemUgPSBuZXdBbGxvY1NpemU7Ci0rICAg IHJldHVybiBUUlVFOwotKyAgfSBlbHNlCi0rICAgIHJldHVybiBGQUxTRTsKLSt9Ci0rCi0rCi0r dm9pZCBTb1N0cmVhbTo6c2V0QmluYXJ5KGNvbnN0IFNiQm9vbCBmbGFnKSAgeyBiaW5hcnlTdHJl YW0gPSBmbGFnOyB9Ci0rU2JCb29sIFNvU3RyZWFtOjppc0JpbmFyeSgpIGNvbnN0ICB7IHJldHVy biBiaW5hcnlTdHJlYW07IH0KLSsKLSsKLStTYkJvb2wgU29TdHJlYW06OmdldEJ1ZmZlcih2b2lk IComYnVmLCBzaXplX3QgJnNpemUpIGNvbnN0Ci0rewotKyAgaWYgKHN0cmVhbVR5cGUgIT0gTUVN T1JZKQotKyAgICByZXR1cm4gRkFMU0U7Ci0rICBidWYgPSBidWZmZXI7Ci0rICBzaXplID0gYnVm ZmVyU2l6ZTsKLSsgIHJldHVybiBUUlVFOwotK30KLStzaXplX3QgU29TdHJlYW06OmdldEJ1ZmZl clNpemUoKSBjb25zdCAgeyByZXR1cm4gYnVmZmVyU2l6ZTsgfQotKwotK3ZvaWQgU29TdHJlYW06 OnNldEJ1ZmZlcih2b2lkICpidWYsIHNpemVfdCBzaXplKQotK3sKLSsgIGVtcHR5QnVmZmVyKCk7 Ci0rICBTVFVCOwotK30KLSt2b2lkIFNvU3RyZWFtOjpyZXNldEJ1ZmZlcigpCi0rewotKyAgYXNz ZXJ0KHN0cmVhbVR5cGUgPT0gTUVNT1JZICYmICJZb3UgY2FuIHBlcmZvcm0gcmVzZXRCdWZmZXIo KSBvbmx5IG9uIG1lbW9yeSBzdHJlYW1zLiIpOwotKyAgYnVmUG9zID0gMDsKLSt9Ci0rdm9pZCBT b1N0cmVhbTo6ZW1wdHlCdWZmZXIoc2l6ZV90IHN0cmVhbVNpemUpCi0rewotKyAgY2xvc2VTdHJl YW0oKTsKLSsgIHN0cmVhbVR5cGUgPSBNRU1PUlk7Ci0rICBpZiAoc3RyZWFtU2l6ZSA9PSAwKSB7 Ci0rICAgIGJ1ZmZlciA9IE5VTEw7Ci0rICB9IGVsc2UgewotKyAgICBidWZmZXIgPSAoY2hhciop bWFsbG9jKHN0cmVhbVNpemUpOwotKyAgfQotKyAgYnVmZmVyU2l6ZSA9IDA7Ci0rICBidWZmZXJB bGxvY1NpemUgPSBzdHJlYW1TaXplOwotKyAgYnVmUG9zID0gMDsKLSt9Ci0rCi0rCi0rCi0rdm9p ZCBTb1N0cmVhbTo6bG9hZEJ1ZmZlckZyb21GaWxlKEZJTEUgKmZwKQotK3sKLSsgIHRoaXMtPmVt cHR5QnVmZmVyKCk7Ci0rICBTb1N0cmVhbSB0ZW1wKGZwKTsKLSsgIHRoaXMtPnJlYWRGcm9tU3Ry ZWFtKHRlbXApOwotKyAgc2V0UG9zKDApOwotK30KLSt2b2lkIFNvU3RyZWFtOjpsb2FkQnVmZmVy RnJvbUZpbGUoY29uc3QgY2hhciAqY29uc3QgZmlsZU5hbWUpCi0rewotKyAgdGhpcy0+ZW1wdHlC dWZmZXIoKTsKLSsgIFNvU3RyZWFtIHRlbXAoZmlsZU5hbWUpOwotKyAgdGhpcy0+cmVhZEZyb21T dHJlYW0odGVtcCk7Ci0rICBzZXRQb3MoMCk7Ci0rfQotK3ZvaWQgU29TdHJlYW06OnN0b3JlQnVm ZmVyVG9GaWxlKEZJTEUgKmZwKQotK3sKLSsgIHNpemVfdCBjcG9zID0gZ2V0UG9zKCk7Ci0rICBz ZXRQb3MoMCk7Ci0rICBTb1N0cmVhbSB0ZW1wKGZwKTsKLSsgIHRlbXAucmVhZEZyb21TdHJlYW0o KnRoaXMpOwotKyAgc2V0UG9zKGNwb3MpOwotK30KLSt2b2lkIFNvU3RyZWFtOjpzdG9yZUJ1ZmZl clRvRmlsZShjb25zdCBjaGFyICpjb25zdCBmaWxlTmFtZSkKLSt7Ci0rICBzaXplX3QgY3BvcyA9 IGdldFBvcygpOwotKyAgc2V0UG9zKDApOwotKyAgU29TdHJlYW0gdGVtcChmaWxlTmFtZSk7Ci0r ICB0ZW1wLnJlYWRGcm9tU3RyZWFtKCp0aGlzKTsKLSsgIHNldFBvcyhjcG9zKTsKLSt9Ci0rCi0r Ci0rCi0rdm9pZCBTb1N0cmVhbTo6Y29tbW9uSW5pdCgpCi0rewotKyAgc3RyZWFtVHlwZSA9IENM T1NFRDsKLSsgIGJpbmFyeVN0cmVhbSA9IEZBTFNFOwotKyAgYmFkQml0ID0gRkFMU0U7Ci0rICBy ZWFkYWJsZSA9IHdyaXRlYWJsZSA9IFRSVUU7Ci0rICBlbmRpYW5PcmRlcmluZyA9IEJJR19FTkRJ QU5fU1RSRUFNOwotKyAgdXBkYXRlTmVlZEVuZGlhbkNvbnZlcnNpb24oKTsKLSt9Ci0rCi0rU29T dHJlYW06OlNvU3RyZWFtKCkKLSt7Ci0rICBjb21tb25Jbml0KCk7Ci0rfQotKwotK1NvU3RyZWFt OjpTb1N0cmVhbShzaXplX3Qgc3RyZWFtU2l6ZSkKLSt7Ci0rICBjb21tb25Jbml0KCk7Ci0rICBl bXB0eUJ1ZmZlcihzdHJlYW1TaXplKTsKLSt9Ci0rCi0rU29TdHJlYW06OlNvU3RyZWFtKEZJTEUg KmZwKQotK3sKLSsgIGNvbW1vbkluaXQoKTsKLSsgIHNldEZpbGVQb2ludGVyKGZwKTsKLSt9Ci0r Ci0rU29TdHJlYW06OlNvU3RyZWFtKGNvbnN0IGNoYXIgKmNvbnN0IGZpbGVOYW1lKQotK3sKLSsg IGNvbW1vbkluaXQoKTsKLSsgIG9wZW5GaWxlKGZpbGVOYW1lKTsKLSt9Ci0rCi0rU29TdHJlYW06 On5Tb1N0cmVhbSgpCi0rewotKyAgY2xvc2VTdHJlYW0oKTsKLSt9Ci0rCi0rCi0rU29TdHJlYW06 OlN0cmVhbVR5cGUgU29TdHJlYW06OmdldFN0cmVhbVR5cGUoKSBjb25zdCAgeyByZXR1cm4gc3Ry ZWFtVHlwZTsgfQotKwotK3ZvaWQgU29TdHJlYW06OmNsb3NlU3RyZWFtKCkKLSt7Ci0rICBzd2l0 Y2ggKHN0cmVhbVR5cGUpIHsKLSsgIGNhc2UgRklMRV9TVFJFQU06Ci0rICAgIGZjbG9zZShmaWxl cCk7Ci0rICAgIGJyZWFrOwotKyAgY2FzZSBNRU1PUlk6Ci0rICAgIGZyZWUoYnVmZmVyKTsKLSsg ICAgYnJlYWs7Ci0rICBkZWZhdWx0OgotKyAgICBicmVhazsKLSsgIH0KLSsgIHN0cmVhbVR5cGUg PSBDTE9TRUQ7Ci0rICBjbGVhckJhZEJpdCgpOwotK30KLSsKLSsKLSsKLSt2b2lkIFNvU3RyZWFt OjpzZXRGaWxlUG9pbnRlcihGSUxFICpuZXdGUCkKLSt7Ci0rICBjbG9zZVN0cmVhbSgpOwotKyAg c3RyZWFtVHlwZSA9IEZJTEVfU1RSRUFNOwotKyAgZmlsZXAgPSBuZXdGUDsKLSt9Ci0rRklMRSog U29TdHJlYW06OmdldEZpbGVQb2ludGVyKCkgIGNvbnN0Ci0rewotKyAgYXNzZXJ0KHN0cmVhbVR5 cGUgPT0gRklMRV9TVFJFQU0pOwotKyAgcmV0dXJuIChGSUxFKikmZmlsZXA7Ci0rfQotKwotK1Ni Qm9vbCBTb1N0cmVhbTo6b3BlbkZpbGUoY29uc3QgY2hhciAqY29uc3QgZmlsZU5hbWUpCi0rewot KyAgRklMRSAqZiA9IGZvcGVuKGZpbGVOYW1lLCAicitiIik7Ci0rICBzZXRGaWxlUG9pbnRlcihm KTsKLSsgIHJldHVybiBUUlVFOwotK30KLSt2b2lkIFNvU3RyZWFtOjpjbG9zZUZpbGUoKQotK3sK LSsgIFNUVUI7Ci0rfQotKwotKwotKwotK3ZvaWQgU29TdHJlYW06OndyYXBTb0lucHV0KFNvSW5w dXQgKmlucHV0KQotK3sKLSsgIFNvU3RyZWFtOjpjbG9zZVN0cmVhbSgpOwotKyAgc3RyZWFtVHlw ZSA9IFNPX0lOUFVUX1dSQVA7Ci0rICBzb2lucHV0ID0gaW5wdXQ7Ci0rfQotKwotKyNlbmRpZiAv LyBIQVZFXzNEU19JTVBPUlRfQ0FQQUJJTElUSUVTCgpkaWZmIC0tZ2l0IGEvQ29pbi0yLjUuMC1j b25maWcucGF0Y2ggYi9Db2luLTIuNS4wLWNvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMmFjZTQ2Yy4uMDAwMDAwMAotLS0gYS9Db2luLTIuNS4wLWNvbmZpZy5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE3MDQgKzAsMCBAQAotZGlmZiAtTmF1ciBDb2luLTIuNS4w Lm9yaWcvY2ZnL2NvbmZpZy5ndWVzcyBDb2luLTIuNS4wL2NmZy9jb25maWcuZ3Vlc3MKLS0tLSBD b2luLTIuNS4wLm9yaWcvY2ZnL2NvbmZpZy5ndWVzcwkyMDA3LTEwLTAxIDAzOjIzOjQyLjAwMDAw MDAwMCArMDIwMAotKysrIENvaW4tMi41LjAvY2ZnL2NvbmZpZy5ndWVzcwkyMDEzLTAzLTI0IDE1 OjQzOjQyLjY2NTA4OTg2NiArMDEwMAotQEAgLTEsMTQgKzEsMTIgQEAKLSAjISAvYmluL3NoCi0g IyBBdHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgotLSMgICBDb3B5cmln aHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0t IyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLAotLSMgICBJbmMuCi0rIyAgIENvcHlyaWdodCAxOTkyLTIwMTMgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0gCi0tdGltZXN0YW1wPScyMDA3LTA3LTIyJwotK3Rp bWVzdGFtcD0nMjAxMy0wMi0xMicKLSAKLSAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Ci0gIyB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotLSMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0gIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgotICMKLSAjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKLUBAIC0xNywyNiArMTUsMjIgQEAKLSAjIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAjCi0gIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotLSMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK LS0jIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBC b3N0b24sIE1BCi0tIyAwMjExMC0xMzAxLCBVU0EuCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotICMKLSAjIEFz IGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBp ZiB5b3UKLSAjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQg Y29udGFpbnMgYQotICMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25m LCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLS0jIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJt cyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLS0KLS0KLS0jIE9y aWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lciA8cGVyQGJvdGhuZXIuY29tPi4KLS0jIFBs ZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEg Y29udGV4dAotLSMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ2hhbmdlTG9nIGVudHJ5 LgotKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJl c3Qgb2YgdGhhdAotKyMgcHJvZ3JhbS4gIFRoaXMgRXhjZXB0aW9uIGlzIGFuIGFkZGl0aW9uYWwg cGVybWlzc2lvbiB1bmRlciBzZWN0aW9uIDcKLSsjIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSwgdmVyc2lvbiAzICgiR1BMdjMiKS4KLSsjCi0rIyBPcmlnaW5hbGx5IHdyaXR0ZW4g YnkgUGVyIEJvdGhuZXIuCi0gIwotLSMgVGhpcyBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgYSBj YW5vbmljYWwgc3lzdGVtIG5hbWUgc2ltaWxhciB0bwotLSMgY29uZmlnLnN1Yi4gIElmIGl0IHN1 Y2NlZWRzLCBpdCBwcmludHMgdGhlIHN5c3RlbSBuYW1lIG9uIHN0ZG91dCwgYW5kCi0tIyBleGl0 cyB3aXRoIDAuICBPdGhlcndpc2UsIGl0IGV4aXRzIHdpdGggMS4KLSsjIFlvdSBjYW4gZ2V0IHRo ZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgotKyMgaHR0cDovL2dpdC5zYXZh bm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5n dWVzcztoYj1IRUFECi0gIwotLSMgVGhlIHBsYW4gaXMgdGhhdCB0aGlzIGNhbiBiZSBjYWxsZWQg YnkgY29uZmlndXJlIHNjcmlwdHMgaWYgeW91Ci0tIyBkb24ndCBzcGVjaWZ5IGFuIGV4cGxpY2l0 IGJ1aWxkIHN5c3RlbSB0eXBlLgotKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB3aXRoIGEgQ2hhbmdl TG9nIGVudHJ5IHRvIGNvbmZpZy1wYXRjaGVzQGdudS5vcmcuCi0rCi0gCi0gbWU9YGVjaG8gIiQw IiB8IHNlZCAtZSAncywuKi8sLCdgCi0gCi1AQCAtNTYsOCArNTAsNyBAQAotIEdOVSBjb25maWcu Z3Vlc3MgKCR0aW1lc3RhbXApCi0gCi0gT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVy LgotLUNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5 OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNQotLUZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotK0NvcHlyaWdodCAxOTkyLTIwMTMgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0gCi0gVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJj ZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KLSB3YXJyYW50eTsgbm90IGV2 ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4iCi1AQCAtMTQ0LDcgKzEzNyw3IEBACi0gY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1F X1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgotICAgICAqOk5l dEJTRDoqOiopCi0gCSMgTmV0QlNEIChuYnNkKSB0YXJnZXRzIHNob3VsZCAod2hlcmUgYXBwbGlj YWJsZSkgbWF0Y2ggb25lIG9yCi0tCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVs ZiosICotKi1uZXRic2Rhb3V0KiwKLSsJIyBtb3JlIG9mIHRoZSB0dXBsZXM6ICotKi1uZXRic2Rl bGYqLCAqLSotbmV0YnNkYW91dCosCi0gCSMgKi0qLW5ldGJzZGVjb2ZmKiBhbmQgKi0qLW5ldGJz ZCouICBGb3IgdGFyZ2V0cyB0aGF0IHJlY2VudGx5Ci0gCSMgc3dpdGNoZWQgdG8gRUxGLCAqLSot bmV0YnNkKiB3b3VsZCBzZWxlY3QgdGhlIG9sZAotIAkjIG9iamVjdCBmaWxlIGZvcm1hdC4gIFRo aXMgcHJvdmlkZXMgYm90aCBmb3J3YXJkCi1AQCAtMTcwLDcgKzE2Myw3IEBACi0gCSAgICBhcm0q fGkzODZ8bTY4a3xuczMya3xzaDMqfHNwYXJjfHZheCkKLSAJCWV2YWwgJHNldF9jY19mb3JfYnVp bGQKLSAJCWlmIGVjaG8gX19FTEZfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBc Ci0tCQkJfCBncmVwIF9fRUxGX18gPi9kZXYvbnVsbAotKwkJCXwgZ3JlcCAtcSBfX0VMRl9fCi0g CQl0aGVuCi0gCQkgICAgIyBPbmNlIGFsbCB1dGlsaXRpZXMgY2FuIGJlIEVDT0ZGIChuZXRic2Rl Y29mZikgb3IgYS5vdXQgKG5ldGJzZGFvdXQpLgotIAkJICAgICMgUmV0dXJuIG5ldGJzZCBmb3Ig ZWl0aGVyLiAgRklYPwotQEAgLTE4MCw3ICsxNzMsNyBAQAotIAkJZmkKLSAJCTs7Ci0gCSAgICAq KQotLQkgICAgICAgIG9zPW5ldGJzZAotKwkJb3M9bmV0YnNkCi0gCQk7OwotIAllc2FjCi0gCSMg VGhlIE9TIHJlbGVhc2UKLUBAIC0yMDEsNiArMTk0LDEwIEBACi0gCSMgQ1BVX1RZUEUtTUFOVUZB Q1RVUkVSLU9QRVJBVElOR19TWVNURU0gaXMgdXNlZC4KLSAJZWNobyAiJHttYWNoaW5lfS0ke29z fSR7cmVsZWFzZX0iCi0gCWV4aXQgOzsKLSsgICAgKjpCaXRyaWc6KjoqKQotKwlVTkFNRV9NQUNI SU5FX0FSQ0g9YGFyY2ggfCBzZWQgJ3MvQml0cmlnLi8vJ2AKLSsJZWNobyAke1VOQU1FX01BQ0hJ TkVfQVJDSH0tdW5rbm93bi1iaXRyaWcke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAg KjpPcGVuQlNEOio6KikKLSAJVU5BTUVfTUFDSElORV9BUkNIPWBhcmNoIHwgc2VkICdzL09wZW5C U0QuLy8nYAotIAllY2hvICR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duLW9wZW5ic2Qke1VO QU1FX1JFTEVBU0V9Ci1AQCAtMjIzLDcgKzIyMCw3IEBACi0gCQlVTkFNRV9SRUxFQVNFPWAvdXNy L3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkM30nYAotIAkJOzsKLSAJKjUuKikKLS0JICAg ICAgICBVTkFNRV9SRUxFQVNFPWAvdXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0n YAotKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9 J2AKLSAJCTs7Ci0gCWVzYWMKLSAJIyBBY2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNy aW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KLUBAIC0yNjksNyArMjY2LDEwIEBACi0gCSMgQSBY bi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgotIAkj IDEuMiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRl Yy1vc2ZgZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAn QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidg Ci0tCWV4aXQgOzsKLSsJIyBSZXNldCBFWElUIHRyYXAgYmVmb3JlIGV4aXRpbmcgdG8gYXZvaWQg c3B1cmlvdXMgbm9uLXplcm8gZXhpdCBjb2RlLgotKwlleGl0Y29kZT0kPwotKwl0cmFwICcnIDAK LSsJZXhpdCAkZXhpdGNvZGUgOzsKLSAgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKLSAJIyBI b3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVyaWMgUE9TSVgg c3Vic3lzdGVtPwotIAkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0 aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKLUBAIC0yOTUsMTIgKzI5NSwxMiBAQAotIAllY2hv IHMzOTAtaWJtLXp2bW9lCi0gCWV4aXQgOzsKLSAgICAgKjpPUzQwMDoqOiopCi0tICAgICAgICBl Y2hvIHBvd2VycGMtaWJtLW9zNDAwCi0rCWVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKLSAJZXhpdCA7 OwotICAgICBhcm06UklTQyo6MS5bMDEyXSo6Knxhcm06cmlzY2l4OjEuWzAxMl0qOiopCi0gCWVj aG8gYXJtLWFjb3JuLXJpc2NpeCR7VU5BTUVfUkVMRUFTRX0KLSAJZXhpdCA7OwotLSAgICBhcm06 cmlzY29zOio6Knxhcm06UklTQ09TOio6KikKLSsgICAgYXJtKjpyaXNjb3M6KjoqfGFybSo6UklT Q09TOio6KikKLSAJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKLSAJZXhpdCA7OwotICAgICBTUjI/ MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6KjoqKQotQEAgLTMyNCwxNCArMzI0 LDMzIEBACi0gCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBpbgotIAkgICAgc3BhcmMpIGVjaG8g c3BhcmMtaWNsLW54NzsgZXhpdCA7OwotIAllc2FjIDs7Ci0rICAgIHMzOTB4OlN1bk9TOio6KikK LSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFT RX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0IDs7Ci0gICAgIHN1bjRIOlN1bk9TOjUuKjoq KQotIAllY2hvIHNwYXJjLWhhbC1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1teLl0qLy8nYAotIAlleGl0IDs7Ci0gICAgIHN1bjQqOlN1bk9TOjUuKjoqIHwgdGFkcG9s ZSo6U3VuT1M6NS4qOiopCi0gCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9S RUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0gCWV4aXQgOzsKLSsgICAgaTg2cGM6QXVyb3Jh VVg6NS4qOiogfCBpODZ4ZW46QXVyb3JhVVg6NS4qOiopCi0rCWVjaG8gaTM4Ni1wYy1hdXJvcmF1 eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotICAgICBpODZwYzpTdW5PUzo1Lio6KiB8IGk4 NnhlbjpTdW5PUzo1Lio6KikKLS0JZWNobyBpMzg2LXBjLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9S RUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJ U1VOX0FSQ0g9ImkzODYiCi0rCSMgSWYgdGhlcmUgaXMgYSBjb21waWxlciwgc2VlIGlmIGl0IGlz IGNvbmZpZ3VyZWQgZm9yIDY0LWJpdCBvYmplY3RzLgotKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNj IGRvZXMgbm90IHR1cm4gX19MUDY0X18gaW50byAxIGxpa2UgZ2NjIGRvZXMuCi0rCSMgVGhpcyB0 ZXN0IHdvcmtzIGZvciBib3RoIGNvbXBpbGVycy4KLSsJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0g J25vX2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCi0rCSAgICBpZiAoZWNobyAnI2lmZGVmIF9fYW1k NjQnOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAotKwkJKENDT1BUUz0g JENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8IFwKLSsJCWdyZXAgSVNfNjRCSVRfQVJD SCA+L2Rldi9udWxsCi0rCSAgICB0aGVuCi0rCQlTVU5fQVJDSD0ieDg2XzY0IgotKwkgICAgZmkK LSsJZmkKLSsJZWNobyAke1NVTl9BUkNIfS1wYy1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFT RX18c2VkIC1lICdzL1teLl0qLy8nYAotIAlleGl0IDs7Ci0gICAgIHN1bjQqOlN1bk9TOjYqOiop Ci0gCSMgQWNjb3JkaW5nIHRvIGNvbmZpZy5zdWIsIHRoaXMgaXMgdGhlIHByb3BlciB3YXkgdG8g Y2Fub25pY2FsaXplCi1AQCAtMzc1LDIzICszOTQsMjMgQEAKLSAgICAgIyBNaU5ULiAgQnV0IE1p TlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCi0gICAgICMg YmUgbm8gcHJvYmxlbS4KLSAgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOipt aW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0tICAgICAgICBlY2hvIG02OGstYXRhcmkt bWludCR7VU5BTUVfUkVMRUFTRX0KLSsJZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVB U0V9Ci0gCWV4aXQgOzsKLSAgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiog fCBhdGFyaXN0W2VdOipUT1M6KjoqKQotIAllY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVM RUFTRX0KLS0gICAgICAgIGV4aXQgOzsKLSsJZXhpdCA7OwotICAgICAqZmFsY29uKjoqTWlOVDoq OiogfCAqZmFsY29uKjoqbWludDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLS0gICAgICAgIGVj aG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKwllY2hvIG02OGstYXRhcmktbWlu dCR7VU5BTUVfUkVMRUFTRX0KLSAJZXhpdCA7OwotICAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWls YW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCi0tICAgICAgICBlY2hvIG02OGstbWls YW4tbWludCR7VU5BTUVfUkVMRUFTRX0KLS0gICAgICAgIGV4aXQgOzsKLSsJZWNobyBtNjhrLW1p bGFuLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgaGFkZXMqOipNaU5UOio6 KiB8IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQotLSAgICAgICAgZWNobyBt NjhrLWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0tICAgICAgICBleGl0IDs7Ci0rCWVjaG8g bTY4ay1oYWRlcy1taW50JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0gICAgICo6Kk1pTlQ6 KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQotLSAgICAgICAgZWNobyBtNjhrLXVua25v d24tbWludCR7VU5BTUVfUkVMRUFTRX0KLS0gICAgICAgIGV4aXQgOzsKLSsJZWNobyBtNjhrLXVu a25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotICAgICBtNjhrOm1hY2h0ZW46 KjoqKQotIAllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KLSAJZXhpdCA7 OwotQEAgLTQ2MSw4ICs0ODAsOCBAQAotIAllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKLSAJZXhp dCA7OwotICAgICBBVmlpT046ZGd1eDoqOiopCi0tICAgICAgICAjIERHL1VYIHJldHVybnMgQVZp aU9OIGZvciBhbGwgYXJjaGl0ZWN0dXJlcwotLSAgICAgICAgVU5BTUVfUFJPQ0VTU09SPWAvdXNy L2Jpbi91bmFtZSAtcGAKLSsJIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVj dHVyZXMKLSsJVU5BTUVfUFJPQ0VTU09SPWAvdXNyL2Jpbi91bmFtZSAtcGAKLSAJaWYgWyAkVU5B TUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMTAg XQotIAl0aGVuCi0gCSAgICBpZiBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IG04OGtk Z3V4ZWxmeCBdIHx8IFwKLUBAIC00NzUsNyArNDk0LDcgQEAKLSAJZWxzZQotIAkgICAgZWNobyBp NTg2LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0gCWZpCi0tIAlleGl0IDs7Ci0rCWV4aXQgOzsK LSAgICAgTTg4KjpEb2xwaGluT1M6KjoqKQkjIERvbHBoaW5PUyAoU1ZSMykKLSAJZWNobyBtODhr LWRvbHBoaW4tc3lzdjMKLSAJZXhpdCA7OwotQEAgLTUzMiw3ICs1NTEsNyBAQAotIAkJZWNobyBy czYwMDAtaWJtLWFpeDMuMgotIAlmaQotIAlleGl0IDs7Ci0tICAgICo6QUlYOio6WzQ1XSkKLSsg ICAgKjpBSVg6KjpbNDU2N10pCi0gCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBw cm9jZXNzb3IgLVMgYXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAotIAlp ZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSAJCUlCTV9BUkNIPXJzNjAwMAotQEAgLTU3NSw1MiArNTk0LDUy IEBACi0gCSAgICA5MDAwL1s2NzhdWzAtOV1bMC05XSkKLSAJCWlmIFsgLXggL3Vzci9iaW4vZ2V0 Y29uZiBdOyB0aGVuCi0gCQkgICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0Nf Q1BVX1ZFUlNJT04gMj4vZGV2L251bGxgCi0tICAgICAgICAgICAgICAgICAgICBzY19rZXJuZWxf Yml0cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKLS0gICAg ICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotLSAgICAgICAgICAg ICAgICAgICAgICA1MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKLS0g ICAgICAgICAgICAgICAgICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9S SVNDMV8xCi0tICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAg IyBDUFVfUEFfUklTQzJfMAotLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2Nfa2Vy bmVsX2JpdHN9IiBpbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpIEhQX0FSQ0g9Imhw cGEyLjBuIiA7OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEy LjB3IiA7OwotKwkJICAgIHNjX2tlcm5lbF9iaXRzPWAvdXNyL2Jpbi9nZXRjb25mIFNDX0tFUk5F TF9CSVRTIDI+L2Rldi9udWxsYAotKwkJICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgot KwkJICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7OyAjIENQVV9QQV9SSVNDMV8wCi0rCQkg ICAgICA1MjgpIEhQX0FSQ0g9ImhwcGExLjEiIDs7ICMgQ1BVX1BBX1JJU0MxXzEKLSsJCSAgICAg IDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotKwkJCWNhc2UgIiR7 c2Nfa2VybmVsX2JpdHN9IiBpbgotKwkJCSAgMzIpIEhQX0FSQ0g9ImhwcGEyLjBuIiA7OwotKwkJ CSAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OwotIAkJCSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAi IDs7ICAgIyBIUC1VWCAxMC4yMAotLSAgICAgICAgICAgICAgICAgICAgICAgIGVzYWMgOzsKLS0g ICAgICAgICAgICAgICAgICAgIGVzYWMKLSsJCQllc2FjIDs7Ci0rCQkgICAgZXNhYwotIAkJZmkK LSAJCWlmIFsgIiR7SFBfQVJDSH0iID0gIiIgXTsgdGhlbgotIAkJICAgIGV2YWwgJHNldF9jY19m b3JfYnVpbGQKLS0JCSAgICBzZWQgJ3MvXiAgICAgICAgICAgICAgLy8nIDw8IEVPRiA+JGR1bW15 LmMKLSsJCSAgICBzZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsKLSsJCSNkZWZpbmUg X0hQVVhfU09VUkNFCi0rCQkjaW5jbHVkZSA8c3RkbGliLmg+Ci0rCQkjaW5jbHVkZSA8dW5pc3Rk Lmg+Ci0gCi0tICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotLSAgICAgICAgICAg ICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgotLSAgICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5o PgotLQotLSAgICAgICAgICAgICAgaW50IG1haW4gKCkKLS0gICAgICAgICAgICAgIHsKLS0gICAg ICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLS0gICAgICAgICAgICAgICAg ICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7Ci0tICAgICAgICAgICAgICAj ZW5kaWYKLS0gICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZF UlNJT04pOwotLQotLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQotLSAgICAgICAgICAg ICAgCXsKLS0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEu MCIpOyBicmVhazsKLS0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgi aHBwYTEuMSIpOyBicmVhazsKLS0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgot LSAgICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotLSAgICAgICAgICAg ICAgCSAgICBzd2l0Y2ggKGJpdHMpCi0tICAgICAgICAgICAgICAJCXsKLS0gICAgICAgICAgICAg IAkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotLSAgICAgICAgICAgICAgCQlj YXNlIDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0tICAgICAgICAgICAgICAJCWRlZmF1 bHQ6IHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotLSAgICAgICAgICAgICAgCQl9IGJyZWFrOwot LSAgICAgICAgICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KLS0g ICAgICAgICAgICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0tICAgICAgICAgICAg ICAjZW5kaWYKLS0gICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVh azsKLS0gICAgICAgICAgICAgIAl9Ci0tICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0tICAg ICAgICAgICAgICB9Ci0rCQlpbnQgbWFpbiAoKQotKwkJewotKwkJI2lmIGRlZmluZWQoX1NDX0tF Uk5FTF9CSVRTKQotKwkJICAgIGxvbmcgYml0cyA9IHN5c2NvbmYoX1NDX0tFUk5FTF9CSVRTKTsK LSsJCSNlbmRpZgotKwkJICAgIGxvbmcgY3B1ICA9IHN5c2NvbmYgKF9TQ19DUFVfVkVSU0lPTik7 Ci0rCi0rCQkgICAgc3dpdGNoIChjcHUpCi0rCQkJewotKwkJCWNhc2UgQ1BVX1BBX1JJU0MxXzA6 IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOwotKwkJCWNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMg KCJocHBhMS4xIik7IGJyZWFrOwotKwkJCWNhc2UgQ1BVX1BBX1JJU0MyXzA6Ci0rCQkjaWYgZGVm aW5lZChfU0NfS0VSTkVMX0JJVFMpCi0rCQkJICAgIHN3aXRjaCAoYml0cykKLSsJCQkJewotKwkJ CQljYXNlIDY0OiBwdXRzICgiaHBwYTIuMHciKTsgYnJlYWs7Ci0rCQkJCWNhc2UgMzI6IHB1dHMg KCJocHBhMi4wbiIpOyBicmVhazsKLSsJCQkJZGVmYXVsdDogcHV0cyAoImhwcGEyLjAiKTsgYnJl YWs7Ci0rCQkJCX0gYnJlYWs7Ci0rCQkjZWxzZSAgLyogIWRlZmluZWQoX1NDX0tFUk5FTF9CSVRT KSAqLwotKwkJCSAgICBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKLSsJCSNlbmRpZgotKwkJCWRl ZmF1bHQ6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOwotKwkJCX0KLSsJCSAgICBleGl0ICgwKTsK LSsJCX0KLSBFT0YKLSAJCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVt bXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAotIAkJICAgIHRlc3QgLXogIiRI UF9BUkNIIiAmJiBIUF9BUkNIPWhwcGEKLUBAIC02NDAsNyArNjU5LDcgQEAKLSAJICAgICMgPT4g aHBwYTY0LWhwLWhwdXgxMS4yMwotIAotIAkgICAgaWYgZWNobyBfX0xQNjRfXyB8IChDQ09QVFM9 ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfAotLQkJZ3JlcCBfX0xQNjRfXyA+L2Rl di9udWxsCi0rCQlncmVwIC1xIF9fTFA2NF9fCi0gCSAgICB0aGVuCi0gCQlIUF9BUkNIPSJocHBh Mi4wdyIKLSAJICAgIGVsc2UKLUBAIC03MTEsMjIgKzczMCwyMiBAQAotIAlleGl0IDs7Ci0gICAg IEMxKjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzEqOiopCi0gCWVjaG8gYzEtY29u dmV4LWJzZAotLSAgICAgICAgZXhpdCA7OwotKwlleGl0IDs7Ci0gICAgIEMyKjpDb252ZXhPUzoq OiogfCBjb252ZXg6Q29udmV4T1M6QzIqOiopCi0gCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2Fj YwotIAl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKLSAJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QK LSAJZmkKLS0gICAgICAgIGV4aXQgOzsKLSsJZXhpdCA7OwotICAgICBDMzQqOkNvbnZleE9TOio6 KiB8IGNvbnZleDpDb252ZXhPUzpDMzQqOiopCi0gCWVjaG8gYzM0LWNvbnZleC1ic2QKLS0gICAg ICAgIGV4aXQgOzsKLSsJZXhpdCA7OwotICAgICBDMzgqOkNvbnZleE9TOio6KiB8IGNvbnZleDpD b252ZXhPUzpDMzgqOiopCi0gCWVjaG8gYzM4LWNvbnZleC1ic2QKLS0gICAgICAgIGV4aXQgOzsK LSsJZXhpdCA7OwotICAgICBDNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkM0Kjoq KQotIAllY2hvIGM0LWNvbnZleC1ic2QKLS0gICAgICAgIGV4aXQgOzsKLSsJZXhpdCA7OwotICAg ICBDUkFZKlktTVA6KjoqOiopCi0gCWVjaG8geW1wLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNF fSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0gCWV4aXQgOzsKLUBAIC03NTAsMTQgKzc2OSwx NCBAQAotIAlleGl0IDs7Ci0gICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVO SVhfU3lzdGVtX1Y6KjoqKQotIAlGVUpJVFNVX1BST0M9YHVuYW1lIC1tIHwgdHIgJ0FCQ0RFRkdI SUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAotLSAgICAg ICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla JyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotLSAgICAg ICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AK LS0gICAgICAgIGVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtG VUpJVFNVX1JFTH0iCi0tICAgICAgICBleGl0IDs7Ci0rCUZVSklUU1VfU1lTPWB1bmFtZSAtcCB8 IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3 eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSsJRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxF QVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKLSsJZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3Ut JHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKLSsJZXhpdCA7OwotICAgICA1MDAwOlVOSVhf U3lzdGVtX1Y6NC4qOiopCi0tICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBz ZWQgLWUgJ3MvXC8vLydgCi0tICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVB U0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFy c3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAotLSAgICAgICAgZWNobyAic3BhcmMtZnVqaXRz dS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgotKwlGVUpJVFNVX1NZUz1gdW5hbWUgLXAg fCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2 d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0rCUZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVM RUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9w cXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCi0rCWVjaG8gInNwYXJjLWZ1aml0c3UtJHtG VUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKLSAJZXhpdCA7OwotICAgICBpKjg2OkJTRC8zODY6 KjoqIHwgaSo4NjpCU0QvT1M6KjoqIHwgKjpBc2NlbmRcIEVtYmVkZGVkL09TOio6KikKLSAJZWNo byAke1VOQU1FX01BQ0hJTkV9LXBjLWJzZGkke1VOQU1FX1JFTEVBU0V9Ci1AQCAtNzY5LDQwICs3 ODgsNTEgQEAKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYnNkaSR7VU5BTUVfUkVM RUFTRX0KLSAJZXhpdCA7OwotICAgICAqOkZyZWVCU0Q6KjoqKQotLQljYXNlICR7VU5BTUVfTUFD SElORX0gaW4KLS0JICAgIHBjOTgpCi0tCQllY2hvIGkzODYtdW5rbm93bi1mcmVlYnNkYGVjaG8g JHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OwotKwlVTkFNRV9QUk9DRVNT T1I9YC91c3IvYmluL3VuYW1lIC1wYAotKwljYXNlICR7VU5BTUVfUFJPQ0VTU09SfSBpbgotIAkg ICAgYW1kNjQpCi0gCQllY2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JF TEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgIDs7Ci0gCSAgICAqKQotLQkJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdz L1stKF0uKi8vJ2AgOzsKLSsJCWVjaG8gJHtVTkFNRV9QUk9DRVNTT1J9LXVua25vd24tZnJlZWJz ZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKLSAJZXNhYwot IAlleGl0IDs7Ci0gICAgIGkqOkNZR1dJTio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBj LWN5Z3dpbgotIAlleGl0IDs7Ci0rICAgICo6TUlOR1c2NCo6KikKLSsJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLW1pbmd3NjQKLSsJZXhpdCA7OwotICAgICAqOk1JTkdXKjoqKQotIAllY2hvICR7 VU5BTUVfTUFDSElORX0tcGMtbWluZ3czMgotIAlleGl0IDs7Ci0rICAgIGkqOk1TWVMqOiopCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc3lzCi0rCWV4aXQgOzsKLSAgICAgaSo6d2luZG93 czMyKjoqKQotLSAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0aGlzIHN5c3RlbS4K LS0gICAgCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMyCi0rCSMgdW5hbWUgLW0gaW5jbHVk ZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMy Ci0gCWV4aXQgOzsKLSAgICAgaSo6UFcqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1w dzMyCi0gCWV4aXQgOzsKLS0gICAgKjpJbnRlcml4KjpbMzQ1Nl0qKQotLSAgICAJY2FzZSAke1VO QU1FX01BQ0hJTkV9IGluCi0rICAgICo6SW50ZXJpeCo6KikKLSsJY2FzZSAke1VOQU1FX01BQ0hJ TkV9IGluCi0gCSAgICB4ODYpCi0gCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFT RX0KLSAJCWV4aXQgOzsKLS0JICAgIEVNNjRUIHwgYXV0aGVudGljYW1kKQotKwkgICAgYXV0aGVu dGljYW1kIHwgZ2VudWluZWludGVsIHwgRU02NFQpCi0gCQllY2hvIHg4Nl82NC11bmtub3duLWlu dGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0gCQlleGl0IDs7Ci0rCSAgICBJQTY0KQotKwkJZWNobyBp YTY0LXVua25vd24taW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQgOzsKLSAJZXNhYyA7 OwotICAgICBbMzQ1XTg2OldpbmRvd3NfOTU6KiB8IFszNDVdODY6V2luZG93c185ODoqIHwgWzM0 NV04NjpXaW5kb3dzX05UOiopCi0gCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCi0gCWV4 aXQgOzsKLSsgICAgODY2NDpXaW5kb3dzX05UOiopCi0rCWVjaG8geDg2XzY0LXBjLW1rcwotKwll eGl0IDs7Ci0gICAgIGkqOldpbmRvd3NfTlQqOiogfCBQZW50aXVtKjpXaW5kb3dzX05UKjoqKQot IAkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQ T1NJWCBzdWJzeXN0ZW0/Ci0gCSMgSXQgYWxzbyBjb25mbGljdHMgd2l0aCBwcmUtMi4wIHZlcnNp b25zIG9mIEFUJlQgVVdJTi4gU2hvdWxkIHdlCi1AQCAtODMyLDIwICs4NjIsNjggQEAKLSAgICAg aSo4NjpNaW5peDoqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1taW5peAotIAlleGl0 IDs7Ci0tICAgIGFybSo6TGludXg6KjoqKQotKyAgICBhYXJjaDY0OkxpbnV4Oio6KikKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgYWFy Y2g2NF9iZTpMaW51eDoqOiopCi0rCVVOQU1FX01BQ0hJTkU9YWFyY2g2NF9iZQotIAllY2hvICR7 VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSAJZXhpdCA7OwotKyAgICBhbHBoYTpM aW51eDoqOiopCi0rCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9w JyA8IC9wcm9jL2NwdWluZm9gIGluCi0rCSAgRVY1KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjUg OzsKLSsJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKLSsJICBQQ0E1NikgVU5B TUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0rCSAgUENBNTcpIFVOQU1FX01BQ0hJTkU9YWxwaGFw Y2E1NiA7OwotKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7Ci0rCSAgRVY2Nykg IFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7Ci0rCSAgRVY2OCopIFVOQU1FX01BQ0hJTkU9YWxw aGFldjY4IDs7Ci0rCWVzYWMKLSsJb2JqZHVtcCAtLXByaXZhdGUtaGVhZGVycyAvYmluL3NoIHwg Z3JlcCAtcSBsZC5zby4xCi0rCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVuIExJQkM9ImxpYmMxIiA7 IGVsc2UgTElCQz0iIiA7IGZpCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4 LWdudSR7TElCQ30KLSsJZXhpdCA7OwotKyAgICBhcm0qOkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0 X2NjX2Zvcl9idWlsZAotKwlpZiBlY2hvIF9fQVJNX0VBQklfXyB8ICRDQ19GT1JfQlVJTEQgLUUg LSAyPi9kZXYvbnVsbCBcCi0rCSAgICB8IGdyZXAgLXEgX19BUk1fRUFCSV9fCi0rCXRoZW4KLSsJ ICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwllbHNlCi0rCSAg ICBpZiBlY2hvIF9fQVJNX1BDU19WRlAgfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwg XAotKwkJfCBncmVwIC1xIF9fQVJNX1BDU19WRlAKLSsJICAgIHRoZW4KLSsJCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKLSsJICAgIGVsc2UKLSsJCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmloZgotKwkgICAgZmkKLSsJZmkKLSsJ ZXhpdCA7OwotICAgICBhdnIzMio6TGludXg6KjoqKQotIAllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKLSAJZXhpdCA7OwotICAgICBjcmlzOkxpbnV4Oio6KikKLS0JZWNo byBjcmlzLWF4aXMtbGludXgtZ251Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1heGlzLWxpbnV4 LWdudQotIAlleGl0IDs7Ci0gICAgIGNyaXN2MzI6TGludXg6KjoqKQotLQllY2hvIGNyaXN2MzIt YXhpcy1saW51eC1nbnUKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWF4aXMtbGludXgtZ251Ci0g CWV4aXQgOzsKLSAgICAgZnJ2OkxpbnV4Oio6KikKLS0gICAgCWVjaG8gZnJ2LXVua25vd24tbGlu dXgtZ251Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0 IDs7Ci0rICAgIGhleGFnb246TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5r bm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBpKjg2OkxpbnV4Oio6KikKLSsJTElCQz1n bnUKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVt bXkuYwotKwkjaWZkZWYgX19kaWV0bGliY19fCi0rCUxJQkM9ZGlldGxpYmMKLSsJI2VuZGlmCi0r RU9GCi0rCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVw ICdeTElCQydgCi0rCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKLSAJ ZXhpdCA7OwotICAgICBpYTY0OkxpbnV4Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVu a25vd24tbGludXgtZ251Ci1AQCAtODU2LDc0ICs5MzQsMzYgQEAKLSAgICAgbTY4KjpMaW51eDoq OiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotIAlleGl0IDs7 Ci0tICAgIG1pcHM6TGludXg6KjoqKQotKyAgICBtaXBzOkxpbnV4Oio6KiB8IG1pcHM2NDpMaW51 eDoqOiopCi0gCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSAJc2VkICdzL14JLy8nIDw8IEVPRiA+ JGR1bW15LmMKLSAJI3VuZGVmIENQVQotLQkjdW5kZWYgbWlwcwotLQkjdW5kZWYgbWlwc2VsCi0r CSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9Ci0rCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwKLSAJ I2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChf TUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKLS0JQ1BVPW1pcHNlbAotKwlDUFU9JHtVTkFNRV9N QUNISU5FfWVsCi0gCSNlbHNlCi0gCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQo X19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCi0tCUNQVT1t aXBzCi0rCUNQVT0ke1VOQU1FX01BQ0hJTkV9Ci0gCSNlbHNlCi0gCUNQVT0KLSAJI2VuZGlmCi0g CSNlbmRpZgotIEVPRgotLQlldmFsICJgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYv bnVsbCB8IHNlZCAtbiAnCi0tCSAgICAvXkNQVS97Ci0tCQlzOiA6OmcKLS0JCXAKLS0JICAgIH0n YCIKLSsJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAg J15DUFUnYAotIAl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24t bGludXgtZ251IjsgZXhpdDsgfQotIAk7OwotLSAgICBtaXBzNjQ6TGludXg6KjoqKQotLQlldmFs ICRzZXRfY2NfZm9yX2J1aWxkCi0tCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0tCSN1 bmRlZiBDUFUKLS0JI3VuZGVmIG1pcHM2NAotLQkjdW5kZWYgbWlwczY0ZWwKLS0JI2lmIGRlZmlu ZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8 fCBkZWZpbmVkKE1JUFNFTCkKLS0JQ1BVPW1pcHM2NGVsCi0tCSNlbHNlCi0tCSNpZiBkZWZpbmVk KF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwg ZGVmaW5lZChNSVBTRUIpCi0tCUNQVT1taXBzNjQKLS0JI2Vsc2UKLS0JQ1BVPQotLQkjZW5kaWYK LS0JI2VuZGlmCi0tRU9GCi0tCWV2YWwgImAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rl di9udWxsIHwgc2VkIC1uICcKLS0JICAgIC9eQ1BVL3sKLS0JCXM6IDo6ZwotLQkJcAotLQkgICAg fSdgIgotLQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGlu dXgtZ251IjsgZXhpdDsgfQotLQk7OwotLSAgICBvcjMyOkxpbnV4Oio6KikKLS0JZWNobyBvcjMy LXVua25vd24tbGludXgtZ251Ci0rICAgIG9yMWs6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSAJZXhpdCA7OwotLSAgICBwcGM6TGludXg6Kjoq KQotLQllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKLSsgICAgb3IzMjpMaW51eDoqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotIAlleGl0IDs7Ci0t ICAgIHBwYzY0OkxpbnV4Oio6KikKLS0JZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUK LSsgICAgcGFkcmU6TGludXg6KjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tbGludXgtZ251Ci0g CWV4aXQgOzsKLS0gICAgYWxwaGE6TGludXg6KjoqKQotLQljYXNlIGBzZWQgLW4gJy9eY3B1IG1v ZGVsL3MvXi4qOiBcKC4qXCkvXDEvcCcgPCAvcHJvYy9jcHVpbmZvYCBpbgotLQkgIEVWNSkgICBV TkFNRV9NQUNISU5FPWFscGhhZXY1IDs7Ci0tCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFl djU2IDs7Ci0tCSAgUENBNTYpIFVOQU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OwotLQkgIFBDQTU3 KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLS0JICBFVjYpICAgVU5BTUVfTUFDSElORT1h bHBoYWV2NiA7OwotLQkgIEVWNjcpICBVTkFNRV9NQUNISU5FPWFscGhhZXY2NyA7OwotLQkgIEVW NjgqKSBVTkFNRV9NQUNISU5FPWFscGhhZXY2OCA7OwotLSAgICAgICAgZXNhYwotLQlvYmpkdW1w IC0tcHJpdmF0ZS1oZWFkZXJzIC9iaW4vc2ggfCBncmVwIGxkLnNvLjEgPi9kZXYvbnVsbAotLQlp ZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQot LQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUke0xJQkN9Ci0rICAgIHBh cmlzYzY0OkxpbnV4Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCi0rCWVjaG8gaHBwYTY0LXVua25v d24tbGludXgtZ251Ci0gCWV4aXQgOzsKLSAgICAgcGFyaXNjOkxpbnV4Oio6KiB8IGhwcGE6TGlu dXg6KjoqKQotIAkjIExvb2sgZm9yIENQVSBsZXZlbAotQEAgLTkzMywxNCArOTczLDE3IEBACi0g CSAgKikgICAgZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7Ci0gCWVzYWMKLSAJZXhpdCA7 OwotLSAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQotLQllY2hvIGhw cGE2NC11bmtub3duLWxpbnV4LWdudQotKyAgICBwcGM2NDpMaW51eDoqOiopCi0rCWVjaG8gcG93 ZXJwYzY0LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcHBjOkxpbnV4Oio6KikK LSsJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251Ci0gCWV4aXQgOzsKLSAgICAgczM5MDpM aW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0t bGludXgKLSAJZXhpdCA7OwotICAgICBzaDY0KjpMaW51eDoqOiopCi0tICAgIAllY2hvICR7VU5B TUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVu a25vd24tbGludXgtZ251Ci0gCWV4aXQgOzsKLSAgICAgc2gqOkxpbnV4Oio6KikKLSAJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci1AQCAtOTQ4LDc4ICs5OTEsMTggQEAK LSAgICAgc3BhcmM6TGludXg6KjoqIHwgc3BhcmM2NDpMaW51eDoqOiopCi0gCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotIAlleGl0IDs7Ci0rICAgIHRpbGUqOkxpbnV4 Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQg OzsKLSAgICAgdmF4OkxpbnV4Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51 eC1nbnUKLSAJZXhpdCA7OwotICAgICB4ODZfNjQ6TGludXg6KjoqKQotLQllY2hvIHg4Nl82NC11 bmtub3duLWxpbnV4LWdudQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1n bnUKLSAJZXhpdCA7OwotLSAgICB4dGVuc2E6TGludXg6KjoqKQotLSAgICAJZWNobyB4dGVuc2Et dW5rbm93bi1saW51eC1nbnUKLSsgICAgeHRlbnNhKjpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotIAlleGl0IDs7Ci0tICAgIGkqODY6TGludXg6 KjoqKQotLQkjIFRoZSBCRkQgbGlua2VyIGtub3dzIHdoYXQgdGhlIGRlZmF1bHQgb2JqZWN0IGZp bGUgZm9ybWF0IGlzLCBzbwotLQkjIGZpcnN0IHNlZSBpZiBpdCB3aWxsIHRlbGwgdXMuIGNkIHRv IHRoZSByb290IGRpcmVjdG9yeSB0byBwcmV2ZW50Ci0tCSMgcHJvYmxlbXMgd2l0aCBvdGhlciBw cm9ncmFtcyBvciBkaXJlY3RvcmllcyBjYWxsZWQgYGxkJyBpbiB0aGUgcGF0aC4KLS0JIyBTZXQg TENfQUxMPUMgdG8gZW5zdXJlIGxkIG91dHB1dHMgbWVzc2FnZXMgaW4gRW5nbGlzaC4KLS0JbGRf c3VwcG9ydGVkX3RhcmdldHM9YGNkIC87IExDX0FMTD1DIGxkIC0taGVscCAyPiYxIFwKLS0JCQkg fCBzZWQgLW5lICcvc3VwcG9ydGVkIHRhcmdldHM6LyFkCi0tCQkJCSAgICBzL1sgCV1bIAldKi8g L2cKLS0JCQkJICAgIHMvLipzdXBwb3J0ZWQgdGFyZ2V0czogKi8vCi0tCQkJCSAgICBzLyAuKi8v Ci0tCQkJCSAgICBwJ2AKLS0gICAgICAgIGNhc2UgIiRsZF9zdXBwb3J0ZWRfdGFyZ2V0cyIgaW4K LS0JICBlbGYzMi1pMzg2KQotLQkJVEVOVEFUSVZFPSIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4 LWdudSIKLS0JCTs7Ci0tCSAgYS5vdXQtaTM4Ni1saW51eCkKLS0JCWVjaG8gIiR7VU5BTUVfTUFD SElORX0tcGMtbGludXgtZ251YW91dCIKLS0JCWV4aXQgOzsKLS0JICBjb2ZmLWkzODYpCi0tCQll Y2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LWdudWNvZmYiCi0tCQlleGl0IDs7Ci0tCSAg IiIpCi0tCQkjIEVpdGhlciBhIHByZS1CRkQgYS5vdXQgbGlua2VyIChsaW51eC1nbnVvbGRsZCkg b3IKLS0JCSMgb25lIHRoYXQgZG9lcyBub3QgZ2l2ZSB1cyB1c2VmdWwgLS1oZWxwLgotLQkJZWNo byAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVvbGRsZCIKLS0JCWV4aXQgOzsKLS0JZXNh YwotLQkjIERldGVybWluZSB3aGV0aGVyIHRoZSBkZWZhdWx0IGNvbXBpbGVyIGlzIGEub3V0IG9y IGVsZgotLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0tCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRk dW1teS5jCi0tCSNpbmNsdWRlIDxmZWF0dXJlcy5oPgotLQkjaWZkZWYgX19FTEZfXwotLQkjIGlm ZGVmIF9fR0xJQkNfXwotLQkjICBpZiBfX0dMSUJDX18gPj0gMgotLQlMSUJDPWdudQotLQkjICBl bHNlCi0tCUxJQkM9Z251bGliYzEKLS0JIyAgZW5kaWYKLS0JIyBlbHNlCi0tCUxJQkM9Z251bGli YzEKLS0JIyBlbmRpZgotLQkjZWxzZQotLQkjaWYgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKSB8 fCBkZWZpbmVkKF9fUEdJKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpIHx8IGRlZmluZWQoX19TVU5Q Uk9fQ0MpCi0tCUxJQkM9Z251Ci0tCSNlbHNlCi0tCUxJQkM9Z251YW91dAotLQkjZW5kaWYKLS0J I2VuZGlmCi0tCSNpZmRlZiBfX2RpZXRsaWJjX18KLS0JTElCQz1kaWV0bGliYwotLQkjZW5kaWYK LS1FT0YKLS0JZXZhbCAiYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBz ZWQgLW4gJwotLQkgICAgL15MSUJDL3sKLS0JCXM6IDo6ZwotLQkJcAotLQkgICAgfSdgIgotLQl0 ZXN0IHgiJHtMSUJDfSIgIT0geCAmJiB7Ci0tCQllY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxp bnV4LSR7TElCQ30iCi0tCQlleGl0Ci0tCX0KLS0JdGVzdCB4IiR7VEVOVEFUSVZFfSIgIT0geCAm JiB7IGVjaG8gIiR7VEVOVEFUSVZFfSI7IGV4aXQ7IH0KLS0JOzsKLSAgICAgaSo4NjpEWU5JWC9w dHg6NCo6KikKLSAJIyBwdHggNC4wIGRvZXMgdW5hbWUgLXMgY29ycmVjdGx5LCB3aXRoIERZTklY L3B0eCBpbiB0aGVyZS4KLSAJIyBlYXJsaWVyIHZlcnNpb25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1 dCB0aGUgbm9kZW5hbWUgaW4gYm90aAotQEAgLTEwMjcsMTEgKzEwMTAsMTEgQEAKLSAJZWNobyBp Mzg2LXNlcXVlbnQtc3lzdjQKLSAJZXhpdCA7OwotICAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6Mi4q KQotLSAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9vdCBvZiBTVlI0LCBidXQgaXQgaGFz IGl0cyBvd24gdmVyc2lvbgotLSAgICAgICAgIyBudW1iZXIgc2VyaWVzIHN0YXJ0aW5nIHdpdGgg Mi4uLgotLSAgICAgICAgIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVt cyB3b24ndCBtYXRjaCB0aGlzLAotKwkjIFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQs IGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCi0rCSMgbnVtYmVyIHNlcmllcyBzdGFydGluZyB3 aXRoIDIuLi4KLSsJIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3 b24ndCBtYXRjaCB0aGlzLAotIAkjIEkganVzdCBoYXZlIHRvIGhvcGUuICAtLSBybXMuCi0tICAg ICAgICAjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBzeXN2NCogbWF0Y2hlcyBpdC4KLSsJIyBV c2Ugc3lzdjQuMnV3Li4uIHNvIHRoYXQgc3lzdjQqIG1hdGNoZXMgaXQuCi0gCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059Ci0gCWV4aXQgOzsKLSAgICAg aSo4NjpPUy8yOio6KikKLUBAIC0xMDQ4LDcgKzEwMzEsNyBAQAotICAgICBpKjg2OnN5bGxhYmxl Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCi0gCWV4aXQgOzsKLS0g ICAgaSo4NjpMeW54T1M6Mi4qOiogfCBpKjg2Okx5bnhPUzozLlswMV0qOiogfCBpKjg2Okx5bnhP Uzo0LjAqOiopCi0rICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoq IHwgaSo4NjpMeW54T1M6NC5bMDJdKjoqKQotIAllY2hvIGkzODYtdW5rbm93bi1seW54b3Mke1VO QU1FX1JFTEVBU0V9Ci0gCWV4aXQgOzsKLSAgICAgaSo4NjoqRE9TOio6KikKLUBAIC0xMDYzLDcg KzEwNDYsNyBAQAotIAlmaQotIAlleGl0IDs7Ci0gICAgIGkqODY6Kjo1Ols2NzhdKikKLS0gICAg CSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgotKwkjIFVuaXhXYXJl IDcueCwgT3BlblVOSVggYW5kIE9wZW5TZXJ2ZXIgNi4KLSAJY2FzZSBgL2Jpbi91bmFtZSAtWCB8 IGdyZXAgIl5NYWNoaW5lImAgaW4KLSAJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4 NiA7OwotIAkgICAgKlBlbnRpdW0pCSAgICAgVU5BTUVfTUFDSElORT1pNTg2IDs7Ci1AQCAtMTA5 MSwxMCArMTA3NCwxMyBAQAotIAlleGl0IDs7Ci0gICAgIHBjOio6KjoqKQotIAkjIExlZnQgaGVy ZSBmb3IgY29tcGF0aWJpbGl0eToKLS0gICAgICAgICMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQ UCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0Ci0tICAgICAgICAjIHRo ZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpMzg2LgotLQllY2hvIGkz ODYtcGMtbXNkb3NkamdwcAotLSAgICAgICAgZXhpdCA7OwotKwkjIHVuYW1lIC1tIHByaW50cyBm b3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dAotKwkjIHRo ZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBhc3N1bWluZyBpNTg2LgotKwkjIE5vdGU6 IHdoYXRldmVyIHRoaXMgaXMsIGl0IE1VU1QgYmUgdGhlIHNhbWUgYXMgd2hhdCBjb25maWcuc3Vi Ci0rCSMgcHJpbnRzIGZvciB0aGUgImRqZ3BwIiBob3N0LCBvciBlbHNlIEdEQiBjb25maWd1cnkg d2lsbCBkZWNpZGUgdGhhdAotKwkjIHRoaXMgaXMgYSBjcm9zcy1idWlsZC4KLSsJZWNobyBpNTg2 LXBjLW1zZG9zZGpncHAKLSsJZXhpdCA7OwotICAgICBJbnRlbDpNYWNoOjMqOiopCi0gCWVjaG8g aTM4Ni1wYy1tYWNoMwotIAlleGl0IDs7Ci1AQCAtMTEyOSw4ICsxMTE1LDE4IEBACi0gCS9iaW4v dW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgZW50aXVtID4vZGV2L251bGwgXAotIAkg ICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9IDs7Ci0gICAgIDNb MzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQotLSAgICAgICAgL2Jpbi91bmFtZSAt cCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCi0tICAgICAgICAgICYmIHsgZWNo byBpNDg2LW5jci1zeXN2NDsgZXhpdDsgfSA7OwotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxs IHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsJICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4 aXQ7IH0gOzsKLSsgICAgTkNSKjoqOjQuMjoqIHwgTVBSQVMqOio6NC4yOiopCi0rCU9TX1JFTD0n LjMnCi0rCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAotKwkgICAgJiYgT1NfUkVMPS5gc2VkIC1uICdz L1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKLSsJL2Jp bi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCi0rCSAgICAmJiB7 IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQotKwkvYmluL3VuYW1lIC1w IDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxsIFwKLSsJICAgICYmIHsg ZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9Ci0rCS9iaW4vdW5hbWUgLXAg Mj4vZGV2L251bGwgfCAvYmluL2dyZXAgcHRlcm9uID4vZGV2L251bGwgXAotKwkgICAgJiYgeyBl Y2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsKLSAgICAgbTY4KjpMeW54 T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzozLjAqOiopCi0gCWVjaG8gbTY4ay11bmtub3duLWx5bnhv cyR7VU5BTUVfUkVMRUFTRX0KLSAJZXhpdCA7OwotQEAgLTExNDMsNyArMTEzOSw3IEBACi0gICAg IHJzNjAwMDpMeW54T1M6Mi4qOiopCi0gCWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFN RV9SRUxFQVNFfQotIAlleGl0IDs7Ci0tICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQ QzpMeW54T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC4wKjoqKQotKyAgICBQb3dlclBD Okx5bnhPUzoyLio6KiB8IFBvd2VyUEM6THlueE9TOjMuWzAxXSo6KiB8IFBvd2VyUEM6THlueE9T OjQuWzAyXSo6KikKLSAJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNF fQotIAlleGl0IDs7Ci0gICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCi1AQCAtMTE2MywxMCArMTE1 OSwxMCBAQAotIAkJZWNobyBuczMyay1zbmktc3lzdgotIAlmaQotIAlleGl0IDs7Ci0tICAgIFBF TlRJVU06Kjo0LjAqOiopICMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNWUjQvTVAg ZWZmb3J0Ci0tICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBj Y01haWwuQ2Vuc3VzLkdPVj4KLS0gICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQKLS0gICAg ICAgIGV4aXQgOzsKLSsgICAgUEVOVElVTToqOjQuMCo6KikJIyBVbmlzeXMgYENsZWFyUGF0aCBI TVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKLSsJCQkjIHNheXMgPFJpY2hhcmQuTS5CYXJ0ZWxA Y2NNYWlsLkNlbnN1cy5HT1Y+Ci0rCWVjaG8gaTU4Ni11bmlzeXMtc3lzdjQKLSsJZXhpdCA7Owot ICAgICAqOlVOSVhfU3lzdGVtX1Y6NCo6RlRYKikKLSAJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3 ZXNAb3Blbm1hcmtldC5jb20+LgotIAkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2Vl biBzdHJhdHVzIGFyY2hpdGVjdHVyZXM/IC1kam0KLUBAIC0xMTkyLDExICsxMTg4LDExIEBACi0g CWV4aXQgOzsKLSAgICAgUlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6 KjoqIHwgUiowMDA6VU5JWF9TVjoqOiopCi0gCWlmIFsgLWQgL3Vzci9uZWMgXTsgdGhlbgotLQkg ICAgICAgIGVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSsJCWVjaG8gbWlwcy1u ZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSAJZWxzZQotLQkgICAgICAgIGVjaG8gbWlwcy11bmtu b3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0rCQllY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFN RV9SRUxFQVNFfQotIAlmaQotLSAgICAgICAgZXhpdCA7OwotKwlleGl0IDs7Ci0gICAgIEJlQm94 OkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBoYXJkd2FyZSBtYWRlIGJ5IEJlLCBQUEMgb25s eS4KLSAJZWNobyBwb3dlcnBjLWJlLWJlb3MKLSAJZXhpdCA7OwotQEAgLTEyMDYsNiArMTIwMiwx MiBAQAotICAgICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRlbCBQQyBjb21w YXRpYmxlLgotIAllY2hvIGk1ODYtcGMtYmVvcwotIAlleGl0IDs7Ci0rICAgIEJlUEM6SGFpa3U6 KjoqKQkjIEhhaWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJZWNobyBpNTg2 LXBjLWhhaWt1Ci0rCWV4aXQgOzsKLSsgICAgeDg2XzY0OkhhaWt1Oio6KikKLSsJZWNobyB4ODZf NjQtdW5rbm93bi1oYWlrdQotKwlleGl0IDs7Ci0gICAgIFNYLTQ6U1VQRVItVVg6KjoqKQotIAll Y2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSAJZXhpdCA7OwotQEAgLTEyMzMs NiArMTIzNSwxNiBAQAotICAgICAqOkRhcndpbjoqOiopCi0gCVVOQU1FX1BST0NFU1NPUj1gdW5h bWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0gCWNhc2UgJFVOQU1FX1BST0NFU1NP UiBpbgotKwkgICAgaTM4NikKLSsJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJCWlmIFsgIiRD Q19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgotKwkJICBpZiAoZWNo byAnI2lmZGVmIF9fTFA2NF9fJzsgZWNobyBJU182NEJJVF9BUkNIOyBlY2hvICcjZW5kaWYnKSB8 IFwKLSsJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBc Ci0rCQkgICAgICBncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAotKwkJICB0aGVuCi0rCQkg ICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKLSsJCSAgZmkKLSsJCWZpIDs7Ci0gCSAgICB1 bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OwotIAllc2FjCi0gCWVjaG8gJHtVTkFN RV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVMRUFTRX0KLUBAIC0xMjQ4LDcgKzEy NjAsMTAgQEAKLSAgICAgKjpRTlg6Kjo0KikKLSAJZWNobyBpMzg2LXBjLXFueAotIAlleGl0IDs7 Ci0tICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6KikKLSsgICAgTkVPLT86Tk9OU1RPUF9LRVJO RUw6KjoqKQotKwllY2hvIG5lby10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIE5TRS0qOk5PTlNUT1BfS0VSTkVMOio6KikKLSAJZWNobyBuc2UtdGFuZGVtLW5zayR7 VU5BTUVfUkVMRUFTRX0KLSAJZXhpdCA7OwotICAgICBOU1ItPzpOT05TVE9QX0tFUk5FTDoqOiop Ci1AQCAtMTI5MywxMyArMTMwOCwxMyBAQAotIAllY2hvIHBkcDEwLXVua25vd24taXRzCi0gCWV4 aXQgOzsKLSAgICAgU0VJOio6KjpTRUlVWCkKLS0gICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgk e1VOQU1FX1JFTEVBU0V9Ci0rCWVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9Ci0g CWV4aXQgOzsKLSAgICAgKjpEcmFnb25GbHk6KjoqKQotIAllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1kcmFnb25mbHlgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiov LydgCi0gCWV4aXQgOzsKLSAgICAgKjoqVk1TOio6KikKLS0gICAgCVVOQU1FX01BQ0hJTkU9YCh1 bmFtZSAtcCkgMj4vZGV2L251bGxgCi0rCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2 L251bGxgCi0gCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCi0gCSAgICBBKikgZWNobyBhbHBo YS1kZWMtdm1zIDsgZXhpdCA7OwotIAkgICAgSSopIGVjaG8gaWE2NC1kZWMtdm1zIDsgZXhpdCA7 OwotQEAgLTEzMTQsMTEgKzEzMjksMTQgQEAKLSAgICAgaSo4NjpyZG9zOio6KikKLSAJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXBjLXJkb3MKLSAJZXhpdCA7OwotKyAgICBpKjg2OkFST1M6KjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtYXJvcwotKwlleGl0IDs7Ci0rICAgIHg4Nl82NDpW TWtlcm5lbDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVzeAotKwlleGl0 IDs7Ci0gZXNhYwotIAotLSNlY2hvICcoTm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQg bm90IHJlY29nbml6ZWQuKScgMT4mMgotLSNlY2hvICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVf U1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIDE+JjIKLS0KLSBldmFs ICRzZXRfY2NfZm9yX2J1aWxkCi0gY2F0ID4kZHVtbXkuYyA8PEVPRgotICNpZmRlZiBfU0VRVUVO VF8KLUBAIC0xMzM2LDExICsxMzU0LDExIEBACi0gI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotICAg cHJpbnRmICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAotICNpZmRlZiBORVdTT1M0Ci0tICAgICAg ICAgICI0IgotKwkiNCIKLSAjZWxzZQotLQkgICIiCi0rCSIiCi0gI2VuZGlmCi0tICAgICAgICAg KTsgZXhpdCAoMCk7Ci0rCSk7IGV4aXQgKDApOwotICNlbmRpZgotICNlbmRpZgotIAotQEAgLTE0 NzQsOSArMTQ5Miw5IEBACi0gdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQg aXMgYWR2aXNlZCB0aGF0IHlvdQotIGRvd25sb2FkIHRoZSBtb3N0IHVwIHRvIGRhdGUgdmVyc2lv biBvZiB0aGUgY29uZmlnIHNjcmlwdHMgZnJvbQotIAotLSAgaHR0cDovL3NhdmFubmFoLmdudS5v cmcvY2dpLWJpbi92aWV3Y3ZzLypjaGVja291dCovY29uZmlnL2NvbmZpZy9jb25maWcuZ3Vlc3MK LSsgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJs b2JfcGxhaW47Zj1jb25maWcuZ3Vlc3M7aGI9SEVBRAotIGFuZAotLSAgaHR0cDovL3NhdmFubmFo LmdudS5vcmcvY2dpLWJpbi92aWV3Y3ZzLypjaGVja291dCovY29uZmlnL2NvbmZpZy9jb25maWcu c3ViCi0rICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7 YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECi0gCi0gSWYgdGhlIHZlcnNpb24geW91 IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCi0gc2VuZCB0aGUgZm9sbG93 aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKLWRpZmYgLU5h dXIgQ29pbi0yLjUuMC5vcmlnL2NmZy9jb25maWcuc3ViIENvaW4tMi41LjAvY2ZnL2NvbmZpZy5z dWIKLS0tLSBDb2luLTIuNS4wLm9yaWcvY2ZnL2NvbmZpZy5zdWIJMjAwNy0xMC0wMSAwMzoyMzo0 Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBDb2luLTIuNS4wL2NmZy9jb25maWcuc3ViCTIwMTMtMDMt MjQgMTU6NDM6NDIuNjY1MDg5ODY2ICswMTAwCi1AQCAtMSw0NCArMSw0MCBAQAotICMhIC9iaW4v c2gKLSAjIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNjcmlwdC4KLS0jICAg Q29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAx OTk5LAotLSMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwKLS0jICAgSW5jLgotLQotLXRpbWVzdGFtcD0nMjAwNy0wNi0y OCcKLS0KLS0jIFRoaXMgZmlsZSBpcyAoaW4gcHJpbmNpcGxlKSBjb21tb24gdG8gQUxMIEdOVSBz b2Z0d2FyZS4KLS0jIFRoZSBwcmVzZW5jZSBvZiBhIG1hY2hpbmUgaW4gdGhpcyBmaWxlIHN1Z2dl c3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUKLS0jIGNhbiBoYW5kbGUgdGhhdCBtYWNoaW5lLiAg SXQgZG9lcyBub3QgaW1wbHkgQUxMIEdOVSBzb2Z0d2FyZSBjYW4uCi0tIwotLSMgVGhpcyBmaWxl IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LS0jIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Ci0tIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgICBDb3B5cmlnaHQgMTk5Mi0yMDEzIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotK3RpbWVzdGFtcD0nMjAxMy0wMi0xMicK LSsKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5IGl0Ci0rIyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSAjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gIwotLSMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0tIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotLSMg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQotLSMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLCBidXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0gIwotICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLS0jIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0tIyBGb3VuZGF0aW9u LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQotLSMg MDIxMTAtMTMwMSwgVVNBLgotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSAjCi0gIyBBcyBhIHNwZWNpYWwgZXhj ZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0gIyBkaXN0 cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSAj IGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNs dWRlIGl0IHVuZGVyCi0tIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNl IGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24g dGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0Ci0rIyBwcm9ncmFtLiAgVGhp cyBFeGNlcHRpb24gaXMgYW4gYWRkaXRpb25hbCBwZXJtaXNzaW9uIHVuZGVyIHNlY3Rpb24gNwot KyMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDMgKCJHUEx2MyIp LgotIAotIAotLSMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9y Zz4uICBTdWJtaXQgYSBjb250ZXh0Ci0tIyBkaWZmIGFuZCBhIHByb3Blcmx5IGZvcm1hdHRlZCBD aGFuZ2VMb2cgZW50cnkuCi0rIyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHdpdGggYSBDaGFuZ2VMb2cg ZW50cnkgdG8gY29uZmlnLXBhdGNoZXNAZ251Lm9yZy4KLSAjCi0gIyBDb25maWd1cmF0aW9uIHN1 YnJvdXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlw ZS4KLSAjIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1 bWVudC4KLSAjIElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1lc3NhZ2Ugb24g c3RkZXJyIGFuZCBleGl0IHdpdGggY29kZSAxLgotICMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUg Y2Fub25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KLSAKLSsjIFlvdSBj YW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgotKyMgaHR0cDov L2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtm PWNvbmZpZy5zdWI7aGI9SEVBRAotKwotICMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRo ZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCi0gIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BV IHR5cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKLSAjIHRoYXQgYXJlIG1lYW5pbmdmdWwg d2l0aCAqYW55KiBHTlUgc29mdHdhcmUuCi1AQCAtNzIsOCArNjgsNyBAQAotIHZlcnNpb249IlwK LSBHTlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKLSAKLS1Db3B5cmlnaHQgKEMpIDE5OTIsIDE5 OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUKLS1GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStDb3B5 cmlnaHQgMTk5Mi0yMDEzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIAotIFRoaXMg aXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4g IFRoZXJlIGlzIE5PCi0gd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgotQEAgLTEyMCwxMiArMTE1LDE4IEBA Ci0gIyBIZXJlIHdlIG11c3QgcmVjb2duaXplIGFsbCB0aGUgdmFsaWQgS0VSTkVMLU9TIGNvbWJp bmF0aW9ucy4KLSBtYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14t XSpcKSQvXDIvJ2AKLSBjYXNlICRtYXliZV9vcyBpbgotLSAgbnRvLXFueCogfCBsaW51eC1nbnUq IHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgbGludXgtdWNsaWJjKiB8IFwKLS0g IHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IGtmcmVlYnNkKi1nbnUqIHwga25ldGJz ZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwKLSsgIG50by1xbngqIHwgbGludXgtZ251KiB8IGxp bnV4LWFuZHJvaWQqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgXAotKyAgbGlu dXgtbXVzbCogfCBsaW51eC11Y2xpYmMqIHwgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUq IHwga2ZyZWVic2QqLWdudSogfCBcCi0rICBrbmV0YnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwg XAotKyAga29wZW5zb2xhcmlzKi1nbnUqIHwgXAotICAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCog fCBydG1rLW5vdmEqKQotICAgICBvcz0tJG1heWJlX29zCi0gICAgIGJhc2ljX21hY2hpbmU9YGVj aG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wxLydgCi0gICAgIDs7Ci0r ICBhbmRyb2lkLWxpbnV4KQotKyAgICBvcz0tbGludXgtYW5kcm9pZAotKyAgICBiYXNpY19tYWNo aW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYC11bmtu b3duCi0rICAgIDs7Ci0gICAqKQotICAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdz Ly1bXi1dKiQvLydgCi0gICAgIGlmIFsgJGJhc2ljX21hY2hpbmUgIT0gJDEgXQotQEAgLTE0OCwx MCArMTQ5LDEzIEBACi0gCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2 MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCi0gCS1jWzEyM10qIHwgLWNvbnZleCogfCAtc3Vu IHwgLWNyZHMgfCAtb21yb24qIHwgLWRnIHwgLXVsdHJhIHwgLXR0aSogfCBcCi0gCS1oYXJyaXMg fCAtZG9scGhpbiB8IC1oaWdobGV2ZWwgfCAtZ291bGQgfCAtY2JtIHwgLW5zIHwgLW1hc3Njb21w IHwgXAotLQktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5KQotKwktYXBwbGUgfCAtYXhp cyB8IC1rbnV0aCB8IC1jcmF5IHwgLW1pY3JvYmxhemUqKQotIAkJb3M9Ci0gCQliYXNpY19tYWNo aW5lPSQxCi0gCQk7OwotKwktYmx1ZWdlbmUqKQotKwkJb3M9LWNuawotKwkJOzsKLSAJLXNpbSB8 IC1jaXNjbyB8IC1va2kgfCAtd2VjIHwgLXdpbmJvbmQpCi0gCQlvcz0KLSAJCWJhc2ljX21hY2hp bmU9JDEKLUBAIC0xNjYsMTAgKzE3MCwxMCBAQAotIAkJb3M9LWNob3J1c29zCi0gCQliYXNpY19t YWNoaW5lPSQxCi0gCQk7OwotLSAJLWNob3J1c3JkYikKLS0gCQlvcz0tY2hvcnVzcmRiCi0rCS1j aG9ydXNyZGIpCi0rCQlvcz0tY2hvcnVzcmRiCi0gCQliYXNpY19tYWNoaW5lPSQxCi0tIAkJOzsK LSsJCTs7Ci0gCS1oaXV4KikKLSAJCW9zPS1oaXV4d2UyCi0gCQk7OwotQEAgLTIxNCw2ICsyMTgs MTIgQEAKLSAJLWlzYyopCi0gCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2 LS4qLzg2LXBjLydgCi0gCQk7OwotKwktbHlueCoxNzgpCi0rCQlvcz0tbHlueG9zMTc4Ci0rCQk7 OwotKwktbHlueCo1KQotKwkJb3M9LWx5bnhvczUKLSsJCTs7Ci0gCS1seW54KikKLSAJCW9zPS1s eW54b3MKLSAJCTs7Ci1AQCAtMjM4LDI0ICsyNDgsMzQgQEAKLSAJIyBTb21lIGFyZSBvbWl0dGVk IGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KLSAJMTc1MGEg fCA1ODAgXAotIAl8IGEyOWsgXAotKwl8IGFhcmNoNjQgfCBhYXJjaDY0X2JlIFwKLSAJfCBhbHBo YSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFscGhhZXY2Wzc4XSB8IGFscGhhcGNhNVs2 N10gXAotIAl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04XSB8IGFscGhhNjRldjU2IHwgYWxwaGE2 NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAotIAl8IGFtMzNfMi4wIFwKLS0JfCBhcmMgfCBh cm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBh dnIgfCBhdnIzMiBcCi0rCXwgYXJjIFwKLSsJfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwg YXJtdlsyLThdIHwgYXJtdlszLThdW2xiXSB8IGFybXY3W2FybV0gXAotKwl8IGF2ciB8IGF2cjMy IFwKLSsJfCBiZTMyIHwgYmU2NCBcCi0gCXwgYmZpbiBcCi0gCXwgYzR4IHwgY2xpcHBlciBcCi0g CXwgZDEwdiB8IGQzMHYgfCBkbHggfCBkc3AxNnh4IFwKLSsJfCBlcGlwaGFueSBcCi0gCXwgZmlk byB8IGZyMzAgfCBmcnYgXAotIAl8IGg4MzAwIHwgaDg1MDAgfCBocHBhIHwgaHBwYTEuWzAxXSB8 IGhwcGEyLjAgfCBocHBhMi4wW253XSB8IGhwcGE2NCBcCi0rCXwgaGV4YWdvbiBcCi0gCXwgaTM3 MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBcCi0gCXwgaXAyayB8IGlxMjAwMCBcCi0rCXwgbGUzMiB8 IGxlNjQgXAotKwl8IGxtMzIgXAotIAl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwg bTY4ayB8IG04OGsgXAotLQl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCBc Ci0rCXwgbWF4cSB8IG1iIHwgbWljcm9ibGF6ZSB8IG1pY3JvYmxhemVlbCB8IG1jb3JlIHwgbWVw IHwgbWV0YWcgXAotIAl8IG1pcHMgfCBtaXBzYmUgfCBtaXBzZWIgfCBtaXBzZWwgfCBtaXBzbGUg XAotIAl8IG1pcHMxNiBcCi0gCXwgbWlwczY0IHwgbWlwczY0ZWwgXAotLQl8IG1pcHM2NHZyIHwg bWlwczY0dnJlbCBcCi0rCXwgbWlwczY0b2N0ZW9uIHwgbWlwczY0b2N0ZW9uZWwgXAotIAl8IG1p cHM2NG9yaW9uIHwgbWlwczY0b3Jpb25lbCBcCi0rCXwgbWlwczY0cjU5MDAgfCBtaXBzNjRyNTkw MGVsIFwKLSsJfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAotIAl8IG1pcHM2NHZyNDEwMCB8IG1p cHM2NHZyNDEwMGVsIFwKLSAJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCi0gCXwg bWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAotQEAgLTI2NiwzMSArMjg2LDQ1IEBACi0g CXwgbWlwc2lzYTY0cjIgfCBtaXBzaXNhNjRyMmVsIFwKLSAJfCBtaXBzaXNhNjRzYjEgfCBtaXBz aXNhNjRzYjFlbCBcCi0gCXwgbWlwc2lzYTY0c3I3MWsgfCBtaXBzaXNhNjRzcjcxa2VsIFwKLSsJ fCBtaXBzcjU5MDAgfCBtaXBzcjU5MDBlbCBcCi0gCXwgbWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwK LSAJfCBtbjEwMjAwIHwgbW4xMDMwMCBcCi0rCXwgbW94aWUgXAotIAl8IG10IFwKLSAJfCBtc3A0 MzAgXAotLQl8IG5pb3MgfCBuaW9zMiBcCi0rCXwgbmRzMzIgfCBuZHMzMmxlIHwgbmRzMzJiZSBc Ci0rCXwgbmlvcyB8IG5pb3MyIHwgbmlvczJlYiB8IG5pb3MyZWwgXAotIAl8IG5zMTZrIHwgbnMz MmsgXAotLQl8IG9yMzIgXAotKwl8IG9wZW44IFwKLSsJfCBvcjFrIHwgb3IzMiBcCi0gCXwgcGRw MTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwKLS0JfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJw YzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNiZSBcCi0rCXwgcG93ZXJwYyB8IHBvd2VycGM2NCB8IHBv d2VycGM2NGxlIHwgcG93ZXJwY2xlIFwKLSAJfCBweXJhbWlkIFwKLSsJfCBybDc4IHwgcnggXAot IAl8IHNjb3JlIFwKLS0JfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzIzXWUgfCBzaFsz NF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAotKwl8IHNo IHwgc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWViIHwgc2hbMjNdZSB8IHNoWzM0XWViIHwg c2hlYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCi0gCXwgc2g2NCB8IHNo NjRsZSBcCi0gCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNwYXJj ODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgXAotIAl8IHNwYXJjdjggfCBzcGFyY3Y5IHwgc3Bh cmN2OWIgfCBzcGFyY3Y5diBcCi0tCXwgc3B1IHwgc3Ryb25nYXJtIFwKLS0JfCB0YWhvZSB8IHRo dW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAotLQl8IHY4NTAgfCB2ODUwZSBcCi0rCXwgc3B1 IFwKLSsJfCB0YWhvZSB8IHRpYzR4IHwgdGljNTR4IHwgdGljNTV4IHwgdGljNnggfCB0aWM4MCB8 IHRyb24gXAotKwl8IHViaWNvbTMyIFwKLSsJfCB2ODUwIHwgdjg1MGUgfCB2ODUwZTEgfCB2ODUw ZTIgfCB2ODUwZXMgfCB2ODUwZTJ2MyBcCi0gCXwgd2UzMmsgXAotLQl8IHg4NiB8IHhjMTZ4IHwg eHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAotLQl8IHo4aykKLSsJ fCB4ODYgfCB4YzE2eCB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCi0rCXwgejhrIHwgejgwKQotIAkJ YmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0gCQk7OwotLQltNjgxMSB8IG02 OGhjMTEgfCBtNjgxMiB8IG02OGhjMTIpCi0tCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KLSsJYzU0 eCkKLSsJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24KLSsJCTs7Ci0rCWM1NXgpCi0rCQli YXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0rCQk7OwotKwljNngpCi0rCQliYXNpY19tYWNo aW5lPXRpYzZ4LXVua25vd24KLSsJCTs7Ci0rCW02ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4 aGMxMiB8IG02OGhjczEyeCB8IHBpY29jaGlwKQotIAkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFj aGluZS11bmtub3duCi0gCQlvcz0tbm9uZQotIAkJOzsKLUBAIC0zMDAsNiArMzM0LDIxIEBACi0g CQliYXNpY19tYWNoaW5lPW10LXVua25vd24KLSAJCTs7Ci0gCi0rCXN0cm9uZ2FybSB8IHRodW1i IHwgeHNjYWxlKQotKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgotKwkJOzsKLSsJeGdhdGUp Ci0rCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KLSsJCW9zPS1ub25lCi0r CQk7OwotKwl4c2NhbGVlYikKLSsJCWJhc2ljX21hY2hpbmU9YXJtZWItdW5rbm93bgotKwkJOzsK LSsKLSsJeHNjYWxlZWwpCi0rCQliYXNpY19tYWNoaW5lPWFybWVsLXVua25vd24KLSsJCTs7Ci0r Ci0gCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24nCi0gCSMgYmVjYXVzZSAoMSkg dGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAotIAkjICgyKSB0aGUgd29yZCAidW5r bm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMuCi1AQCAtMzE0LDI5ICszNjMs MzcgQEAKLSAJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNvbXBhbnkgbmFt ZS4KLSAJNTgwLSogXAotIAl8IGEyOWstKiBcCi0rCXwgYWFyY2g2NC0qIHwgYWFyY2g2NF9iZS0q IFwKLSAJfCBhbHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8IGFscGhhZXY2 Wzc4XS0qIFwKLSAJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYt KiB8IGFscGhhNjRldjZbNzhdLSogXAotIAl8IGFscGhhcGNhNVs2N10tKiB8IGFscGhhNjRwY2E1 WzY3XS0qIHwgYXJjLSogXAotIAl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0qIHwgYXJtZWIt KiB8IGFybXYqLSogXAotIAl8IGF2ci0qIHwgYXZyMzItKiBcCi0rCXwgYmUzMi0qIHwgYmU2NC0q IFwKLSAJfCBiZmluLSogfCBiczIwMDAtKiBcCi0tCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05 MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBjNngtKiBcCi0rCXwgY1sxMjNdKiB8IGMz MC0qIHwgW2NqdF05MC0qIHwgYzR4LSogXAotIAl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lk cmEtKiBcCi0gCXwgZDEwdi0qIHwgZDMwdi0qIHwgZGx4LSogXAotIAl8IGVseHNpLSogXAotIAl8 IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwK LSAJfCBoODMwMC0qIHwgaDg1MDAtKiBcCi0gCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBw YTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKLSsJfCBoZXhhZ29uLSogXAotIAl8 IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAtKiB8IGlhNjQtKiBcCi0gCXwgaXAyay0qIHwgaXEyMDAw LSogXAotKwl8IGxlMzItKiB8IGxlNjQtKiBcCi0rCXwgbG0zMi0qIFwKLSAJfCBtMzJjLSogfCBt MzJyLSogfCBtMzJybGUtKiBcCi0gCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgz NjAtKiB8IG02ODM/Mi0qIHwgbTY4ay0qIFwKLS0JfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEt KiB8IG1jb3JlLSogXAotKwl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0qIHwgbWNvcmUtKiB8 IG1ldGFnLSogXAotKwl8IG1pY3JvYmxhemUtKiB8IG1pY3JvYmxhemVlbC0qIFwKLSAJfCBtaXBz LSogfCBtaXBzYmUtKiB8IG1pcHNlYi0qIHwgbWlwc2VsLSogfCBtaXBzbGUtKiBcCi0gCXwgbWlw czE2LSogXAotIAl8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiBcCi0tCXwgbWlwczY0dnItKiB8IG1p cHM2NHZyZWwtKiBcCi0rCXwgbWlwczY0b2N0ZW9uLSogfCBtaXBzNjRvY3Rlb25lbC0qIFwKLSAJ fCBtaXBzNjRvcmlvbi0qIHwgbWlwczY0b3Jpb25lbC0qIFwKLSsJfCBtaXBzNjRyNTkwMC0qIHwg bWlwczY0cjU5MDBlbC0qIFwKLSsJfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKLSAJfCBt aXBzNjR2cjQxMDAtKiB8IG1pcHM2NHZyNDEwMGVsLSogXAotIAl8IG1pcHM2NHZyNDMwMC0qIHwg bWlwczY0dnI0MzAwZWwtKiBcCi0gCXwgbWlwczY0dnI1MDAwLSogfCBtaXBzNjR2cjUwMDBlbC0q IFwKLUBAIC0zNDcsMzEgKzQwNCw0MSBAQAotIAl8IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRy MmVsLSogXAotIAl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCi0gCXwgbWlw c2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCi0rCXwgbWlwc3I1OTAwLSogfCBt aXBzcjU5MDBlbC0qIFwKLSAJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKLSAJfCBtbWl4 LSogXAotIAl8IG10LSogXAotIAl8IG1zcDQzMC0qIFwKLS0JfCBuaW9zLSogfCBuaW9zMi0qIFwK LSsJfCBuZHMzMi0qIHwgbmRzMzJsZS0qIHwgbmRzMzJiZS0qIFwKLSsJfCBuaW9zLSogfCBuaW9z Mi0qIHwgbmlvczJlYi0qIHwgbmlvczJlbC0qIFwKLSAJfCBub25lLSogfCBucDEtKiB8IG5zMTZr LSogfCBuczMyay0qIFwKLSsJfCBvcGVuOC0qIFwKLSAJfCBvcmlvbi0qIFwKLSAJfCBwZHAxMC0q IHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8IHBuLSogfCBwb3dlci0qIFwKLS0JfCBwb3dlcnBj LSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSog XAotKwl8IHBvd2VycGMtKiB8IHBvd2VycGM2NC0qIHwgcG93ZXJwYzY0bGUtKiB8IHBvd2VycGNs ZS0qIFwKLSAJfCBweXJhbWlkLSogXAotLQl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKLS0JfCBzaC0q IHwgc2hbMTIzNF0tKiB8IHNoWzI0XWEtKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGVi LSogfCBzaGJlLSogXAotKwl8IHJsNzgtKiB8IHJvbXAtKiB8IHJzNjAwMC0qIHwgcngtKiBcCi0r CXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1hZWItKiB8IHNoWzIzXWUt KiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAotIAl8IHNobGUtKiB8IHNoWzEyMzRd bGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAotIAl8IHNwYXJjLSogfCBzcGFy YzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0q IFwKLSAJfCBzcGFyY2xpdGUtKiBcCi0tCXwgc3BhcmN2OC0qIHwgc3BhcmN2OS0qIHwgc3BhcmN2 OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAotLQl8IHRh aG9lLSogfCB0aHVtYi0qIFwKLSsJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0q IHwgc3BhcmN2OXYtKiB8IHN2MS0qIHwgc3g/LSogXAotKwl8IHRhaG9lLSogXAotIAl8IHRpYzMw LSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSogfCB0aWM4MC0qIFwK LSsJfCB0aWxlKi0qIFwKLSAJfCB0cm9uLSogXAotLQl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgt KiBcCi0rCXwgdWJpY29tMzItKiBcCi0rCXwgdjg1MC0qIHwgdjg1MGUtKiB8IHY4NTBlMS0qIHwg djg1MGVzLSogfCB2ODUwZTItKiB8IHY4NTBlMnYzLSogXAotKwl8IHZheC0qIFwKLSAJfCB3ZTMy ay0qIFwKLS0JfCB4ODYtKiB8IHg4Nl82NC0qIHwgeGMxNngtKiB8IHhwczEwMC0qIHwgeHNjYWxl LSogfCB4c2NhbGVlW2JsXS0qIFwKLS0JfCB4c3Rvcm15MTYtKiB8IHh0ZW5zYS0qIFwKLSsJfCB4 ODYtKiB8IHg4Nl82NC0qIHwgeGMxNngtKiB8IHhwczEwMC0qIFwKLSsJfCB4c3Rvcm15MTYtKiB8 IHh0ZW5zYSotKiBcCi0gCXwgeW1wLSogXAotLQl8IHo4ay0qKQotKwl8IHo4ay0qIHwgejgwLSop Ci0rCQk7OwotKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGhvdXQgY29tcGFu eSBuYW1lLCB3aXRoIGdsb2IgbWF0Y2guCi0rCXh0ZW5zYSopCi0rCQliYXNpY19tYWNoaW5lPSRi YXNpY19tYWNoaW5lLXVua25vd24KLSAJCTs7Ci0gCSMgUmVjb2duaXplIHRoZSB2YXJpb3VzIG1h Y2hpbmUgbmFtZXMgYW5kIGFsaWFzZXMgd2hpY2ggc3RhbmQKLSAJIyBmb3IgYSBDUFUgdHlwZSBh bmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KLUBAIC0zODksNyArNDU2LDcg QEAKLSAJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSAJCW9zPS11ZGkKLSAJCTs7Ci0tICAgIAlh YmFjdXMpCi0rCWFiYWN1cykKLSAJCWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KLSAJCTs7 Ci0gCWFkb2JlNjhrKQotQEAgLTQzNSw2ICs1MDIsMTAgQEAKLSAJCWJhc2ljX21hY2hpbmU9bTY4 ay1hcG9sbG8KLSAJCW9zPS1ic2QKLSAJCTs7Ci0rCWFyb3MpCi0rCQliYXNpY19tYWNoaW5lPWkz ODYtcGMKLSsJCW9zPS1hcm9zCi0rCQk7OwotIAlhdXgpCi0gCQliYXNpY19tYWNoaW5lPW02OGst YXBwbGUKLSAJCW9zPS1hdXgKLUBAIC00NDMsMTAgKzUxNCwzNSBAQAotIAkJYmFzaWNfbWFjaGlu ZT1uczMyay1zZXF1ZW50Ci0gCQlvcz0tZHluaXgKLSAJCTs7Ci0rCWJsYWNrZmluKQotKwkJYmFz aWNfbWFjaGluZT1iZmluLXVua25vd24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJYmxhY2tmaW4t KikKLSsJCWJhc2ljX21hY2hpbmU9YmZpbi1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9e W14tXSotLy8nYAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlibHVlZ2VuZSopCi0rCQliYXNpY19t YWNoaW5lPXBvd2VycGMtaWJtCi0rCQlvcz0tY25rCi0rCQk7OwotKwljNTR4LSopCi0rCQliYXNp Y19tYWNoaW5lPXRpYzU0eC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8n YAotKwkJOzsKLSsJYzU1eC0qKQotKwkJYmFzaWNfbWFjaGluZT10aWM1NXgtYGVjaG8gJGJhc2lj X21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCWM2eC0qKQotKwkJYmFzaWNf bWFjaGluZT10aWM2eC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAot KwkJOzsKLSAJYzkwKQotIAkJYmFzaWNfbWFjaGluZT1jOTAtY3JheQotIAkJb3M9LXVuaWNvcwot IAkJOzsKLSsJY2VnY2MpCi0rCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCi0rCQlvcz0tY2Vn Y2MKLSsJCTs7Ci0gCWNvbnZleC1jMSkKLSAJCWJhc2ljX21hY2hpbmU9YzEtY29udmV4Ci0gCQlv cz0tYnNkCi1AQCAtNDc1LDcgKzU3MSw3IEBACi0gCQliYXNpY19tYWNoaW5lPWNyYXludi1jcmF5 Ci0gCQlvcz0tdW5pY29zbXAKLSAJCTs7Ci0tCWNyMTYpCi0rCWNyMTYgfCBjcjE2LSopCi0gCQli YXNpY19tYWNoaW5lPWNyMTYtdW5rbm93bgotIAkJb3M9LWVsZgotIAkJOzsKLUBAIC01MTQsNiAr NjEwLDEwIEBACi0gCQliYXNpY19tYWNoaW5lPW04OGstbW90b3JvbGEKLSAJCW9zPS1zeXN2Mwot IAkJOzsKLSsJZGljb3MpCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCW9zPS1kaWNvcwot KwkJOzsKLSAJZGpncHApCi0gCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKLSAJCW9zPS1tc2Rvc2Rq Z3BwCi1AQCAtNjI5LDcgKzcyOSw2IEBACi0gCWkzNzAtaWJtKiB8IGlibSopCi0gCQliYXNpY19t YWNoaW5lPWkzNzAtaWJtCi0gCQk7OwotLSMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVh bnMuICBTaG91bGQgdGhpcyBiZSBzeXN2My4yPwotIAlpKjg2djMyKQotIAkJYmFzaWNfbWFjaGlu ZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0gCQlvcz0tc3lzdjMyCi1AQCAt NjY4LDYgKzc2NywxNCBAQAotIAkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQotIAkJb3M9LXN5c3YK LSAJCTs7Ci0rCW02OGtub21tdSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQlv cz0tbGludXgKLSsJCTs7Ci0rCW02OGtub21tdS0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWBl Y2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQlvcz0tbGludXgKLSsJ CTs7Ci0gCW04OGstb21yb24qKQotIAkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCi0gCQk7Owot QEAgLTY3OSw2ICs3ODYsMTMgQEAKLSAJCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlawotIAkJb3M9 LXN5c3YKLSAJCTs7Ci0rCW1pY3JvYmxhemUqKQotKwkJYmFzaWNfbWFjaGluZT1taWNyb2JsYXpl LXhpbGlueAotKwkJOzsKLSsJbWluZ3c2NCkKLSsJCWJhc2ljX21hY2hpbmU9eDg2XzY0LXBjCi0r CQlvcz0tbWluZ3c2NAotKwkJOzsKLSAJbWluZ3czMikKLSAJCWJhc2ljX21hY2hpbmU9aTM4Ni1w YwotIAkJb3M9LW1pbmd3MzIKLUBAIC03MTUsMTAgKzgyOSwxOCBAQAotIAltczEtKikKLSAJCWJh c2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMxLS9tdC0vJ2AK LSAJCTs7Ci0rCW1zeXMpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtcGMKLSsJCW9zPS1tc3lzCi0r CQk7OwotIAltdnMpCi0gCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCi0gCQlvcz0tbXZzCi0gCQk7 OwotKwluYWNsKQotKwkJYmFzaWNfbWFjaGluZT1sZTMyLXVua25vd24KLSsJCW9zPS1uYWNsCi0r CQk7OwotIAluY3IzMDAwKQotIAkJYmFzaWNfbWFjaGluZT1pNDg2LW5jcgotIAkJb3M9LXN5c3Y0 Ci1AQCAtNzgzLDYgKzkwNSwxMiBAQAotIAlucDEpCi0gCQliYXNpY19tYWNoaW5lPW5wMS1nb3Vs ZAotIAkJOzsKLSsJbmVvLXRhbmRlbSkKLSsJCWJhc2ljX21hY2hpbmU9bmVvLXRhbmRlbQotKwkJ OzsKLSsJbnNlLXRhbmRlbSkKLSsJCWJhc2ljX21hY2hpbmU9bnNlLXRhbmRlbQotKwkJOzsKLSAJ bnNyLXRhbmRlbSkKLSAJCWJhc2ljX21hY2hpbmU9bnNyLXRhbmRlbQotIAkJOzsKLUBAIC04MTMs NiArOTQxLDE0IEBACi0gCQliYXNpY19tYWNoaW5lPWk4NjAtaW50ZWwKLSAJCW9zPS1vc2YKLSAJ CTs7Ci0rCXBhcmlzYykKLSsJCWJhc2ljX21hY2hpbmU9aHBwYS11bmtub3duCi0rCQlvcz0tbGlu dXgKLSsJCTs7Ci0rCXBhcmlzYy0qKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhLWBlY2hvICRiYXNp Y19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0gCXBi ZCkKLSAJCWJhc2ljX21hY2hpbmU9c3BhcmMtdHRpCi0gCQk7OwotQEAgLTg1Nyw5ICs5OTMsMTAg QEAKLSAJCTs7Ci0gCXBvd2VyKQliYXNpY19tYWNoaW5lPXBvd2VyLWlibQotIAkJOzsKLS0JcHBj KQliYXNpY19tYWNoaW5lPXBvd2VycGMtdW5rbm93bgotKwlwcGMgfCBwcGNiZSkJYmFzaWNfbWFj aGluZT1wb3dlcnBjLXVua25vd24KLSAJCTs7Ci0tCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2Vy cGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJcHBjLSogfCBw cGNiZS0qKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5lIHwg c2VkICdzL15bXi1dKi0vLydgCi0gCQk7OwotIAlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMt bGUgfCBwb3dlcnBjLWxpdHRsZSkKLSAJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVua25vd24K LUBAIC04ODQsNyArMTAyMSwxMSBAQAotIAkJYmFzaWNfbWFjaGluZT1pNTg2LXVua25vd24KLSAJ CW9zPS1wdzMyCi0gCQk7OwotLQlyZG9zKQotKwlyZG9zIHwgcmRvczY0KQotKwkJYmFzaWNfbWFj aGluZT14ODZfNjQtcGMKLSsJCW9zPS1yZG9zCi0rCQk7OwotKwlyZG9zMzIpCi0gCQliYXNpY19t YWNoaW5lPWkzODYtcGMKLSAJCW9zPS1yZG9zCi0gCQk7OwotQEAgLTk1Myw2ICsxMDk0LDkgQEAK LSAJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0gCQlvcz0tc3lzdjQKLSAJCTs7Ci0rCXN0 cm9uZ2FybS0qIHwgdGh1bWItKikKLSsJCWJhc2ljX21hY2hpbmU9YXJtLWBlY2hvICRiYXNpY19t YWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotIAlzdW4yKQotIAkJYmFzaWNfbWFj aGluZT1tNjgwMDAtc3VuCi0gCQk7OwotQEAgLTEwMDksMTcgKzExNTMsOSBAQAotIAkJYmFzaWNf bWFjaGluZT10OTAtY3JheQotIAkJb3M9LXVuaWNvcwotIAkJOzsKLS0JdGljNTR4IHwgYzU0eCop Ci0tCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCi0tCQlvcz0tY29mZgotLQkJOzsKLS0J dGljNTV4IHwgYzU1eCopCi0tCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0tCQlvcz0t Y29mZgotLQkJOzsKLS0JdGljNnggfCBjNngqKQotLQkJYmFzaWNfbWFjaGluZT10aWM2eC11bmtu b3duCi0tCQlvcz0tY29mZgotKwl0aWxlKikKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hp bmUtdW5rbm93bgotKwkJb3M9LWxpbnV4LWdudQotIAkJOzsKLSAJdHgzOSkKLSAJCWJhc2ljX21h Y2hpbmU9bWlwc3R4MzktdW5rbm93bgotQEAgLTEwODgsNiArMTIyNCw5IEBACi0gCXhwcyB8IHhw czEwMCkKLSAJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAotIAkJOzsKLSsJeHNjYWxl LSogfCB4c2NhbGVlW2JsXS0qKQotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGlu ZSB8IHNlZCAncy9eeHNjYWxlL2FybS8nYAotKwkJOzsKLSAJeW1wKQotIAkJYmFzaWNfbWFjaGlu ZT15bXAtY3JheQotIAkJb3M9LXVuaWNvcwotQEAgLTEwOTYsNiArMTIzNSwxMCBAQAotIAkJYmFz aWNfbWFjaGluZT16OGstdW5rbm93bgotIAkJb3M9LXNpbQotIAkJOzsKLSsJejgwLSotY29mZikK LSsJCWJhc2ljX21hY2hpbmU9ejgwLXVua25vd24KLSsJCW9zPS1zaW0KLSsJCTs7Ci0gCW5vbmUp Ci0gCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQotIAkJb3M9LW5vbmUKLUBAIC0xMTM0LDcgKzEy NzcsNyBAQAotIAl3ZTMyaykKLSAJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0Ci0gCQk7OwotLQlz aFsxMjM0XSB8IHNoWzI0XWEgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCi0r CXNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzM0XWViIHwgc2hbMTIzNF1sZSB8 IHNoWzIzXWVsZSkKLSAJCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgotIAkJOzsKLSAJc3BhcmMg fCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYpCi1AQCAtMTE4MSw5ICsx MzI0LDEyIEBACi0gaWYgWyB4IiRvcyIgIT0geCIiIF0KLSB0aGVuCi0gY2FzZSAkb3MgaW4KLS0g ICAgICAgICMgRmlyc3QgbWF0Y2ggc29tZSBzeXN0ZW0gdHlwZSBhbGlhc2VzCi0tICAgICAgICAj IHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgotKwkjIEZp cnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcwotKwkjIHRoYXQgbWlnaHQgZ2V0IGNv bmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgotIAkjIC1zb2xhcmlzKiBpcyBhIGJhc2lj IHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KLSsJLWF1cm9yYXV4KQotKwkJ b3M9LWF1cm9yYXV4Ci0rCQk7OwotIAktc29sYXJpczEgfCAtc29sYXJpczEuKikKLSAJCW9zPWBl Y2hvICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKLSAJCTs7Ci1AQCAtMTIwNCwy MSArMTM1MCwyMyBAQAotIAkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBt YXRjaCBhIHZlcnNpb24gbnVtYmVyLgotIAkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0 IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCi0gCS1nbnUqIHwgLWJzZCogfCAtbWFjaCogfCAt bWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwgLWlyaXgqIFwKLS0JICAgICAgfCAtKnZtcyog fCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwK LS0JICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1z b2xhcmlzKiB8IC1zeW0qIFwKLSsJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1p c2MqIHwgLWFpeCogfCAtY25rKiB8IC1zdW5vcyB8IC1zdW5vc1szNF0qXAotKwkgICAgICB8IC1o cHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1z b2xhcmlzKiBcCi0rCSAgICAgIHwgLXN5bSogfCAta29wZW5zb2xhcmlzKiB8IC1wbGFuOSogXAot IAkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3NvcyogfCAt dW5pY29zKiB8IC1hb2YqIFwKLS0JICAgICAgfCAtYW9zKiBcCi0rCSAgICAgIHwgLWFvcyogfCAt YXJvcyogXAotIAkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9u KiB8IC1obXMqIHwgLW12cyogXAotIAkgICAgICB8IC1jbGl4KiB8IC1yaXNjb3MqIHwgLXVuaXBs dXMqIHwgLWlyaXMqIHwgLXJ0dSogfCAteGVuaXgqIFwKLSAJICAgICAgfCAtaGl1eCogfCAtMzg2 YnNkKiB8IC1rbmV0YnNkKiB8IC1taXJic2QqIHwgLW5ldGJzZCogXAotLQkgICAgICB8IC1vcGVu YnNkKiB8IC1zb2xpZGJzZCogXAotKwkgICAgICB8IC1iaXRyaWcqIHwgLW9wZW5ic2QqIHwgLXNv bGlkYnNkKiBcCi0gCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVlYnNkKiB8 IC1yaXNjaXgqIHwgLWx5bnhvcyogXAotIAkgICAgICB8IC1ib3N4KiB8IC1uZXh0c3RlcCogfCAt Y3h1eCogfCAtYW91dCogfCAtZWxmKiB8IC1vYWJpKiBcCi0gCSAgICAgIHwgLXB0eCogfCAtY29m ZiogfCAtZWNvZmYqIHwgLXdpbm50KiB8IC1kb21haW4qIHwgLXZzdGEqIFwKLSAJICAgICAgfCAt dWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCi0tCSAg ICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIFwKLS0JICAgICAgfCAtY3lnd2luKiB8IC1w ZSogfCAtcHNvcyogfCAtbW9zcyogfCAtcHJvZWxmKiB8IC1ydGVtcyogXAotLQkgICAgICB8IC1t aW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LW5ld2xpYiogfCAtbGludXgtdWNsaWJjKiBc Ci0rCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIHwgLWNlZ2NjKiBcCi0rCSAgICAg IHwgLWN5Z3dpbiogfCAtbXN5cyogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiog fCAtcnRlbXMqIFwKLSsJICAgICAgfCAtbWluZ3czMiogfCAtbWluZ3c2NCogfCAtbGludXgtZ251 KiB8IC1saW51eC1hbmRyb2lkKiBcCi0rCSAgICAgIHwgLWxpbnV4LW5ld2xpYiogfCAtbGludXgt bXVzbCogfCAtbGludXgtdWNsaWJjKiBcCi0gCSAgICAgIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1w ZWl4KiB8IC11ZGsqIFwKLSAJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtbWtzKiB8IC1y aGFwc29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKLSAJICAgICAgfCAtb3BlbnN0ZXAqIHwg LW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCi1AQCAtMTIyNiw3ICsx Mzc0LDcgQEAKLSAJICAgICAgfCAtb3MyKiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCog fCAtbnVjbGV1cyogXAotIAkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8 IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKLSAJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgq IHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25mbHkqIFwKLS0JICAgICAgfCAtc2t5b3Mq IHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3BwZXJzKiB8IC1kcm9wcyopCi0rCSAgICAgIHwgLXNr eW9zKiB8IC1oYWlrdSogfCAtcmRvcyogfCAtdG9wcGVycyogfCAtZHJvcHMqIHwgLWVzKikKLSAJ IyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZl cnNpb24gbnVtYmVyLgotIAkJOzsKLSAJLXFueCopCi1AQCAtMTI2NSw3ICsxNDEzLDcgQEAKLSAJ LW9wZW5lZCopCi0gCQlvcz0tb3BlbmVkaXRpb24KLSAJCTs7Ci0tICAgICAgICAtb3M0MDAqKQot Kwktb3M0MDAqKQotIAkJb3M9LW9zNDAwCi0gCQk7OwotIAktd2luY2UqKQotQEAgLTEzMTQsNyAr MTQ2Miw3IEBACi0gCS1zaW5peCopCi0gCQlvcz0tc3lzdjQKLSAJCTs7Ci0tICAgICAgICAtdHBm KikKLSsJLXRwZiopCi0gCQlvcz0tdHBmCi0gCQk7OwotIAktdHJpdG9uKikKLUBAIC0xMzUwLDEy ICsxNDk4LDE0IEBACi0gCS1hcm9zKikKLSAJCW9zPS1hcm9zCi0gCQk7OwotLQkta2FvcyopCi0t CQlvcz0ta2FvcwotLQkJOzsKLSAJLXp2bW9lKQotIAkJb3M9LXp2bW9lCi0gCQk7OwotKwktZGlj b3MqKQotKwkJb3M9LWRpY29zCi0rCQk7OwotKwktbmFjbCopCi0rCQk7OwotIAktbm9uZSkKLSAJ CTs7Ci0gCSopCi1AQCAtMTM3OCwxMCArMTUyOCwxMCBAQAotICMgc3lzdGVtLCBhbmQgd2UnbGwg bmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCi0gCi0gY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotLSAg ICAgICAgc2NvcmUtKikKLSsJc2NvcmUtKikKLSAJCW9zPS1lbGYKLSAJCTs7Ci0tICAgICAgICBz cHUtKikKLSsJc3B1LSopCi0gCQlvcz0tZWxmCi0gCQk7OwotIAkqLWFjb3JuKQotQEAgLTEzOTMs OCArMTU0MywyMCBAQAotIAlhcm0qLXNlbWkpCi0gCQlvcz0tYW91dAotIAkJOzsKLS0gICAgICAg IGM0eC0qIHwgdGljNHgtKikKLS0gICAgICAgIAlvcz0tY29mZgotKwljNHgtKiB8IHRpYzR4LSop Ci0rCQlvcz0tY29mZgotKwkJOzsKLSsJaGV4YWdvbi0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSsJ dGljNTR4LSopCi0rCQlvcz0tY29mZgotKwkJOzsKLSsJdGljNTV4LSopCi0rCQlvcz0tY29mZgot KwkJOzsKLSsJdGljNngtKikKLSsJCW9zPS1jb2ZmCi0gCQk7OwotIAkjIFRoaXMgbXVzdCBjb21l IGJlZm9yZSB0aGUgKi1kZWMgZW50cnkuCi0gCXBkcDEwLSopCi1AQCAtMTQxNCwxNCArMTU3Niwx MSBAQAotIAkJOzsKLSAJbTY4MDAwLXN1bikKLSAJCW9zPS1zdW5vczMKLS0JCSMgVGhpcyBhbHNv IGV4aXN0cyBpbiB0aGUgY29uZmlndXJlIHByb2dyYW0sIGJ1dCB3YXMgbm90IHRoZQotLQkJIyBk ZWZhdWx0LgotLQkJIyBvcz0tc3Vub3M0Ci0gCQk7OwotIAltNjgqLWNpc2NvKQotIAkJb3M9LWFv dXQKLSAJCTs7Ci0tICAgICAgICBtZXAtKikKLSsJbWVwLSopCi0gCQlvcz0tZWxmCi0gCQk7Owot IAltaXBzKi1jaXNjbykKLUBAIC0xNDMwLDYgKzE1ODksOSBAQAotIAltaXBzKi0qKQotIAkJb3M9 LWVsZgotIAkJOzsKLSsJb3Ixay0qKQotKwkJb3M9LWVsZgotKwkJOzsKLSAJb3IzMi0qKQotIAkJ b3M9LWNvZmYKLSAJCTs7Ci1AQCAtMTQ0OCw3ICsxNjEwLDcgQEAKLSAJKi1pYm0pCi0gCQlvcz0t YWl4Ci0gCQk7OwotLSAgICAJKi1rbnV0aCkKLSsJKi1rbnV0aCkKLSAJCW9zPS1tbWl4d2FyZQot IAkJOzsKLSAJKi13ZWMpCi1AQCAtMTU1Myw3ICsxNzE1LDcgQEAKLSAJCQktc3Vub3MqKQotIAkJ CQl2ZW5kb3I9c3VuCi0gCQkJCTs7Ci0tCQkJLWFpeCopCi0rCQkJLWNuayp8LWFpeCopCi0gCQkJ CXZlbmRvcj1pYm0KLSAJCQkJOzsKLSAJCQktYmVvcyopCgpkaWZmIC0tZ2l0IGEvQ29pbi0yLjUu MC1kb3h5Z2VuLmRpZmYgYi9Db2luLTIuNS4wLWRveHlnZW4uZGlmZgpkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggNjZjMDc4Yy4uMDAwMDAwMAotLS0gYS9Db2luLTIuNS4wLWRveHlnZW4u ZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLWRpZmYgLU5hdXIgQ29pbi0yLjUu MC5tYW4zL2RvY3MvZG94eWdlbi9mb290ZXIuaHRtbCBDb2luLTIuNS4wLmRveHlnZW4vZG9jcy9k b3h5Z2VuL2Zvb3Rlci5odG1sCi0tLS0gQ29pbi0yLjUuMC5tYW4zL2RvY3MvZG94eWdlbi9mb290 ZXIuaHRtbAkyMDA3LTEwLTAxIDAzOjIzOjExLjAwMDAwMDAwMCArMDIwMAotKysrIENvaW4tMi41 LjAuZG94eWdlbi9kb2NzL2RveHlnZW4vZm9vdGVyLmh0bWwJMjAxMS0xMS0wOCAwMjo0NDoyMS42 MjUyMzEwMjUgKzAxMDAKLUBAIC0xLDYgKzEsNiBAQAotIDxociBub3NoYWRlPgotIDxwIGFsaWdu PSJyaWdodCI+Q29weXJpZ2h0ICZjb3B5IDE5OTgtMjAwNyBieSA8YSBocmVmPSJodHRwOi8vd3d3 LnNpbS5uby8iPlN5c3RlbXMgaW4gTW90aW9uIEFTPC9hPi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 L3A+Ci0gPGFkZHJlc3Mgc3R5bGU9ImFsaWduOiByaWdodDsiPjxzbWFsbD4KLS1HZW5lcmF0ZWQg b24gJGRhdGV0aW1lIGZvciAkcHJvamVjdG5hbWUgYnkgPGEgaHJlZj0iaHR0cDovL3d3dy5kb3h5 Z2VuLm9yZy9pbmRleC5odG1sIj5Eb3h5Z2VuLjwvYT4gJGRveHlnZW52ZXJzaW9uPC9zbWFsbD48 L2FkZHJlc3M+Ci0rR2VuZXJhdGVkIG9uICRkYXRlIGZvciAkcHJvamVjdG5hbWUgYnkgPGEgaHJl Zj0iaHR0cDovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj5Eb3h5Z2VuLjwvYT4gJGRveHln ZW52ZXJzaW9uPC9zbWFsbD48L2FkZHJlc3M+Ci0gPC9ib2R5PgotIDwvaHRtbD4KCmRpZmYgLS1n aXQgYS9Db2luLTIuNS4wLWdjYy00LjcuMC5kaWZmIGIvQ29pbi0yLjUuMC1nY2MtNC43LjAuZGlm ZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkwNjhjOC4uMDAwMDAwMAotLS0gYS9D b2luLTIuNS4wLWdjYy00LjcuMC5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot ZGlmZiAtTmF1ciBDb2luLTIuNS4wLmRveHlnZW4vaW5jbHVkZS9JbnZlbnRvci9TYkJhc2ljLmgg Q29pbi0yLjUuMC5nY2MtNC43LjAvaW5jbHVkZS9JbnZlbnRvci9TYkJhc2ljLmgKLS0tLSBDb2lu LTIuNS4wLmRveHlnZW4vaW5jbHVkZS9JbnZlbnRvci9TYkJhc2ljLmgJMjAwNy0xMC0wMSAwMzoy MzozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBDb2luLTIuNS4wLmdjYy00LjcuMC9pbmNsdWRlL0lu dmVudG9yL1NiQmFzaWMuaAkyMDEyLTAxLTA1IDA1OjEwOjIxLjgxNzg3OTQyNCArMDEwMAotQEAg LTI3LDYgKzI3LDkgQEAKLSAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwotIAotICNpbmNsdWRlIDxJbnZl bnRvci9DL2Jhc2ljLmg+Ci0rI2lmbmRlZiBOREVCVUcKLSsjaW5jbHVkZSA8SW52ZW50b3IvQy9l cnJvcnMvZGVidWdlcnJvci5oPgotKyNlbmRpZiAvLyAhTkRFQlVHCi0gCi0gLyogKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiogKi8KLSAvKiBUcmFwIHBlb3BsZSB0cnlpbmcgdG8gdXNlIEludmVudG9yIGhlYWRlcnMg d2hpbGUgY29tcGlsaW5nIEMgc291cmNlIGNvZGUuCgpkaWZmIC0tZ2l0IGEvQ29pbi0yLjUuMC1p bnR0eXBlcy5wYXRjaCBiL0NvaW4tMi41LjAtaW50dHlwZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDNlMTMwZDcuLjAwMDAwMDAKLS0tIGEvQ29pbi0yLjUuMC1pbnR0eXBl cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MCArMCwwIEBACi1kaWZmIC1OYXVyIENvaW4t Mi41LjAuZ2NjLTQuNy4wL2luY2x1ZGUvSW52ZW50b3Ivc3lzdGVtL2ludHR5cGVzLmguaW4gQ29p bi0yLjUuMC5pbnR0eXBlcy9pbmNsdWRlL0ludmVudG9yL3N5c3RlbS9pbnR0eXBlcy5oLmluCi0t LS0gQ29pbi0yLjUuMC5nY2MtNC43LjAvaW5jbHVkZS9JbnZlbnRvci9zeXN0ZW0vaW50dHlwZXMu aC5pbgkyMDA3LTEwLTAxIDAzOjIzOjMwLjAwMDAwMDAwMCArMDIwMAotKysrIENvaW4tMi41LjAu aW50dHlwZXMvaW5jbHVkZS9JbnZlbnRvci9zeXN0ZW0vaW50dHlwZXMuaC5pbgkyMDEyLTAxLTEx IDEwOjIxOjE0Ljc4NDM1NTgxOCArMDEwMAotQEAgLTMyLDE0NiArMzIsMTIgQEAKLSAgICAgaW50 MzJfdCB1aW50MzJfdAotICAgICBpbnQ2NF90IHVpbnQ2NF90Ci0gICAgIGludHB0cl90IHVpbnRw dHJfdAotLQotLSAgKFRoZSA2NC1iaXQgdHlwZXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGJlIHBy ZXNlbnQsIGNoZWNrIGZvcgotLSAgSEFWRV9JTlQ2NF9UIGFuZCBIQVZFX1VJTlQ2NF9ULikKLSAq LwotIAotIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gCi0tLyogQmxvY2sgb2YgZGVmaW5lcyBzZXQg dXAgYnkgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuIFByb3RlY3RlZCB3aXRoIHRoZQotLSAgICNpZm5k ZWYgd3JhcHBlciBpbiBjYXNlIGNvbmZpZy5oIHdhcyBhbHJlYWR5IGluY2x1ZGVkIC0tIHNvIHdl Ci0tICAgZG9uJ3QgY29uZnVzZSB0aGUgY29tcGlsZXIgdG8gdGhpbmsgd2UgcmVkZWZpbmUgYWxy ZWFkeSAjZGVmaW5lJ2QKLS0gICBjb25zdGFudHMuICovCi0tI2lmbmRlZiBDT0lOX0NPTkZJR1VS RV9CVUlMRCAvKiAoc3RhcnQgd3JhcHBlcikgKi8KLS0KLS0vKgotLSAgVGhpcyBmaWxlIHdhcyBh dXRvZ2VuZXJhdGVkIGJ5IG91ciBjb25maWd1cmF0aW9uIHByb2Nlc3MKLS0gIHNwZWNpZmljYWxs eSBmb3IgdGhpcyBidWlsZCBjb25maWd1cmF0aW9uOgotLSovCi0tI3VuZGVmIENPSU5fQ09ORklH VVJFX0JVSUxECi0tI3VuZGVmIENPSU5fQ09ORklHVVJFX0hPU1QKLS0jdW5kZWYgQ09JTl9DT05G SUdVUkVfVEFSR0VUCi0tLyoKLS0gIFRoZSBiaXQtdHlwZSBkZWZpbml0aW9ucyBtYXkgYWxzbyBi ZSBkZXBlbmRlbnQgb24gdGhlIGNvbXBpbGVyLAotLSAgY29tcGlsZXIgdmVyc2lvbiBhbmQgQyBs aWJyYXJ5LgotLQotLSAgU28gbm90ZSB0aGF0IHRoZSBiaXQtdHlwZSBkZWZpbml0aW9ucyBiZWxv dyBtaWdodCBub3QgbWF0Y2ggb24gb3RoZXIKLS0gIHN5c3RlbXMuIEJlIGV4dHJlbWVseSBjYXJl ZnVsIGlmIHlvdSBmb3Igd2hhdGV2ZXIgcmVhc29uIGlzCi0tICBpbnN0YWxsaW5nIHRoaXMgYXMg YSBjcm9zcy1wbGF0Zm9ybSBoZWFkZXIgZmlsZSAoaS5lLjogeW91Ci0tICBzaG91bGRuJ3QpLgot LSovCi0tCi0tLyogRklYTUU6IGlzbid0IGl0IGxpa2VseSB0aGF0IHRoZSBIQVZFXypfSCBkZWZp bmVzIGJlbG93IGNvdWxkIGNyYXNoCi0tICAgd2l0aCBkZWZpbmVzIGluIGFwcGxpY2F0aW9uIGNv ZGUgaW4gYSBwcm9qZWN0IHVzaW5nIEF1dG9jb25mCi0tICAgY29uZmlndXJlPyAgMjAwMTA3MTEg bW9ydGVuZS4gKi8KLS0KLS0vKiBUaGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotLSN1 bmRlZiBIQVZFX0lOVFRZUEVTX0gKLS0vKiBUaGUgPHN0ZGludC5oPiBoZWFkZXIgZmlsZS4gKi8K LS0jdW5kZWYgSEFWRV9TVERJTlRfSAotLS8qIFRoZSA8c3lzL3R5cGVzLmg+IGhlYWRlciBmaWxl LiAqLwotLSN1bmRlZiBIQVZFX1NZU19UWVBFU19ICi0tLyogVGhlIDxzdGRkZWYuaD4gaGVhZGVy IGZpbGUuICovCi0tI3VuZGVmIEhBVkVfU1REREVGX0gKLS0KLS0KLS0vKiBJZiB0aGUgc3lzdGVt IGRlZmluZXMgYW55IG9mIHRoZSB0eXBlcyAib24gaXQncyBvd24iLCB0aGUKLS0gICByZXNwZWN0 aXZlICNkZWZpbmUgd2lsbCBiZSBzZXQgYmVsb3cuICovCi0tI3VuZGVmIEhBVkVfSU5UOF9UCi0t I3VuZGVmIEhBVkVfVUlOVDhfVAotLSN1bmRlZiBIQVZFX0lOVDE2X1QKLS0jdW5kZWYgSEFWRV9V SU5UMTZfVAotLSN1bmRlZiBIQVZFX0lOVDMyX1QKLS0jdW5kZWYgSEFWRV9VSU5UMzJfVAotLSN1 bmRlZiBIQVZFX0lOVDY0X1QKLS0jdW5kZWYgSEFWRV9VSU5UNjRfVAotLSN1bmRlZiBIQVZFX0lO VFBUUl9UCi0tI3VuZGVmIEhBVkVfVUlOVFBUUl9UCi0tCi0tLyogVGhlIHR5cGUgd2hpY2ggdGhl IGNvbmZpZ3VyZSBzY3JpcHQgZm91bmQgdG8gbWF0Y2ggdGhlIGdpdmVuCi0tICAgYml0d2lkdGgu ICovCi0tI3VuZGVmIENPSU5fSU5UOF9UCi0tI3VuZGVmIENPSU5fVUlOVDhfVAotLSN1bmRlZiBD T0lOX0lOVDE2X1QKLS0jdW5kZWYgQ09JTl9VSU5UMTZfVAotLSN1bmRlZiBDT0lOX0lOVDMyX1QK LS0jdW5kZWYgQ09JTl9VSU5UMzJfVAotLSN1bmRlZiBDT0lOX0lOVDY0X1QKLS0jdW5kZWYgQ09J Tl9VSU5UNjRfVAotLSN1bmRlZiBDT0lOX0lOVFBUUl9UCi0tI3VuZGVmIENPSU5fVUlOVFBUUl9U Ci0tCi0tI2VuZGlmIC8qIChlbmQgd3JhcHBlcikgISBDT0lOX0NPTkZJR1VSRV9CVUlMRCAqLwot LQotLQotLS8qIFRoZSBoZWFkZXIgZmlsZXMgc2hvdWxkIGJlIGxpc3RlZCBpbiB0aGUgc2FtZSBv cmRlciBhcyB0aGV5IGFyZSBpbgotLSAgIHRoZSBTSU1fQUNfREVGSU5FX0JZVEVTSVpFX1RZUEVT IGRldGVjdGlvbiBtYWNyby4gVGhpcyBpcyB0aGUgc2FtZQotLSAgIG9yZGVyIGFzIHRoZSBvbmUg QXV0b2NvbmYgKGN1cnJlbnRseSB1cGNvbWluZyAyLjUxKSBpcyB1c2luZyBmb3IgaXRzCi0tICAg c3RhbmRhcmQgaW5jbHVkZXMuICAyMDAxMDcxMSBsYXJzYSAqLwotLSNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKLSAjaW5jbHVkZSA8aW50dHlwZXMuaD4KLS0jZWxzZQotLSNpZmRlZiBIQVZFX1NURElO VF9ICi0tI2luY2x1ZGUgPHN0ZGludC5oPgotLSNlbmRpZiAvKiBIQVZFX1NURElOVF9IICovCi0t I2VuZGlmCi0tI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ Ci0tI2VuZGlmIC8qIEhBVkVfU1lTX1RZUEVTX0ggKi8KLS0jaWZkZWYgSEFWRV9TVERERUZfSAot ICNpbmNsdWRlIDxzdGRkZWYuaD4KLS0jZW5kaWYgLyogSEFWRV9TVERERUZfSCAqLwotLQotLQot LSNpZiAhZGVmaW5lZChIQVZFX0lOVDhfVCkgJiYgZGVmaW5lZChDT0lOX0lOVDhfVCkKLS10eXBl ZGVmIENPSU5fSU5UOF9UIGludDhfdDsKLS0jZGVmaW5lIEhBVkVfSU5UOF9UIDEKLS0jZW5kaWYg LyogIUhBVkVfSU5UOF9UICYmIENPSU5fSU5UOF9UICovCi0tCi0tI2lmICFkZWZpbmVkKEhBVkVf VUlOVDhfVCkgJiYgZGVmaW5lZChDT0lOX1VJTlQ4X1QpCi0tdHlwZWRlZiBDT0lOX1VJTlQ4X1Qg dWludDhfdDsKLS0jZGVmaW5lIEhBVkVfVUlOVDhfVCAxCi0tI2VuZGlmIC8qICFIQVZFX1VJTlQ4 X1QgJiYgQ09JTl9VSU5UOF9UICovCi0tCi0tI2lmICFkZWZpbmVkKEhBVkVfSU5UMTZfVCkgJiYg ZGVmaW5lZChDT0lOX0lOVDE2X1QpCi0tdHlwZWRlZiBDT0lOX0lOVDE2X1QgaW50MTZfdDsKLS0j ZGVmaW5lIEhBVkVfSU5UMTZfVCAxCi0tI2VuZGlmIC8qICFIQVZFX0lOVDE2X1QgJiYgQ09JTl9J TlQxNl9UICovCi0tCi0tI2lmICFkZWZpbmVkKEhBVkVfVUlOVDE2X1QpICYmIGRlZmluZWQoQ09J Tl9VSU5UMTZfVCkKLS10eXBlZGVmIENPSU5fVUlOVDE2X1QgdWludDE2X3Q7Ci0tI2RlZmluZSBI QVZFX1VJTlQxNl9UIDEKLS0jZW5kaWYgLyogIUhBVkVfVUlOVDE2X1QgJiYgQ09JTl9VSU5UMTZf VCAqLwotLQotLSNpZiAhZGVmaW5lZChIQVZFX0lOVDMyX1QpICYmIGRlZmluZWQoQ09JTl9JTlQz Ml9UKQotLXR5cGVkZWYgQ09JTl9JTlQzMl9UIGludDMyX3Q7Ci0tI2RlZmluZSBIQVZFX0lOVDMy X1QgMQotLSNlbmRpZiAvKiAhSEFWRV9JTlQzMl9UICYmIENPSU5fSU5UMzJfVCAqLwotLQotLSNp ZiAhZGVmaW5lZChIQVZFX1VJTlQzMl9UKSAmJiBkZWZpbmVkKENPSU5fVUlOVDMyX1QpCi0tdHlw ZWRlZiBDT0lOX1VJTlQzMl9UIHVpbnQzMl90OwotLSNkZWZpbmUgSEFWRV9VSU5UMzJfVCAxCi0t I2VuZGlmIC8qICFIQVZFX1VJTlQzMl9UICYmIENPSU5fVUlOVDMyX1QgKi8KLS0KLS0jaWYgIWRl ZmluZWQoSEFWRV9JTlQ2NF9UKSAmJiBkZWZpbmVkKENPSU5fSU5UNjRfVCkKLS10eXBlZGVmIENP SU5fSU5UNjRfVCBpbnQ2NF90OwotLSNkZWZpbmUgSEFWRV9JTlQ2NF9UIDEKLS0jZW5kaWYgLyog IUhBVkVfSU5UNjRfVCAmJiBDT0lOX0lOVDY0X1QgKi8KLS0KLS0jaWYgIWRlZmluZWQoSEFWRV9V SU5UNjRfVCkgJiYgZGVmaW5lZChDT0lOX1VJTlQ2NF9UKQotLXR5cGVkZWYgQ09JTl9VSU5UNjRf VCB1aW50NjRfdDsKLS0jZGVmaW5lIEhBVkVfVUlOVDY0X1QgMQotLSNlbmRpZiAvKiAhSEFWRV9V SU5UNjRfVCAmJiBDT0lOX1VJTlQ2NF9UICovCi0tCi0tI2lmICFkZWZpbmVkKEhBVkVfSU5UUFRS X1QpICYmIGRlZmluZWQoQ09JTl9JTlRQVFJfVCkKLS10eXBlZGVmIENPSU5fSU5UUFRSX1QgaW50 cHRyX3Q7Ci0tI2RlZmluZSBIQVZFX0lOVFBUUl9UIDEKLS0jZW5kaWYgLyogIUhBVkVfSU5UUFRS X1QgJiYgQ09JTl9JTlRQVFJfVCAqLwotLQotLSNpZiAhZGVmaW5lZChIQVZFX1VJTlRQVFJfVCkg JiYgZGVmaW5lZChDT0lOX1VJTlRQVFJfVCkKLS10eXBlZGVmIENPSU5fVUlOVFBUUl9UIHVpbnRw dHJfdDsKLS0jZGVmaW5lIEhBVkVfVUlOVFBUUl9UIDEKLS0jZW5kaWYgLyogIUhBVkVfVUlOVFBU Ul9UICYmIENPSU5fVUlOVFBUUl9UICovCi0gCi0gI2VuZGlmIC8qICFDT0lOX0lOVFRZUEVTX0gg Ki8KCmRpZmYgLS1naXQgYS9Db2luMi1jb25maWd1cmUtYzk5LnBhdGNoIGIvQ29pbjItY29uZmln dXJlLWM5OS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZjYWRmMC4uMDAw MDAwMAotLS0gYS9Db2luMi1jb25maWd1cmUtYzk5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjkgKzAsMCBAQAotQXBwbHkgZ2VuZXJpYyBmaXhlcyB0byB0aGUgYXV0b2NvbmYtZ2VuZXJhdGVk IHNoZWxsIGNvZGUuICBUaGlzIGhhcwotYmVlbiBmaXhlZCBpbiBhdXRvY29uZiBpdHNlbGYsIHNv IHRoZXJlIGlzIG5vIG5lZWQgdG8gdXBzdHJlYW0gdGhlCi1jaGFuZ2VzIHRvIHVwc3RyZWFtOiB0 aGUgaXNzdWUgd2lsbCBnbyBhd2F5IG9uY2UgdXBzdHJlYW0gcmUtcnVucwotYXV0b2NvbmYgd2l0 aCBhIG5ld2VyIHZlcnNpb24uCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUK LWluZGV4IGQ1NTU0OWY4Mzg0OWRlNDMuLmIxZmQxZGJhMmNlMjBlZDQgMTAwNzU1Ci0tLS0gYS9j b25maWd1cmUKLSsrKyBiL2NvbmZpZ3VyZQotQEAgLTMwMjMsNyArMzAyMyw3IEBAIGlmIHsgKGV2 YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAgZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IH07IHRoZW4KLSAgIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCi0tICAgJycgXAotKyAg ICcjaW5jbHVkZSA8c3RkbGliLmg+JyBcCi0gICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQg KGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKLSAgICAnZXh0ZXJuICJDIiB2b2lk IHN0ZDo6ZXhpdCAoaW50KTsgdXNpbmcgc3RkOjpleGl0OycgXAotICAgICdleHRlcm4gIkMiIHZv aWQgZXhpdCAoaW50KSB0aHJvdyAoKTsnIFwKLUBAIC01ODM0LDggKzU4MzQsOCBAQCBtYWluICgp Ci0gICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0gICAgIGlmIChYT1IgKGlzbG93ZXIgKGkp LCBJU0xPV0VSIChpKSkKLSAJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCi0tICAgICAg ZXhpdCgyKTsKLS0gIGV4aXQgKDApOwotKyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0g fQotIF9BQ0VPRgotIHJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAoKZGlmZiAtLWdpdCBhL0NvaW4y LnNwZWMgYi9Db2luMi5zcGVjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjBjZDE3 Li4wMDAwMDAwCi0tLSBhL0NvaW4yLnNwZWMKKysrIC9kZXYvbnVsbApAQCAtMSw0MjggKzAsMCBA QAotIwotIyBDb3B5cmlnaHQgKGMpIDIwMDQtMjAxOCwgMjAyMiBSYWxmIENvcnNlcGl1cywgVWxt LCBHZXJtYW55LgotIyBUaGlzIGZpbGUgYW5kIGFsbCBtb2RpZmljYXRpb25zIGFuZCBhZGRpdGlv bnMgdG8gdGhlIHByaXN0aW5lCi0jIHBhY2thZ2UgYXJlIHVuZGVyIHRoZSBzYW1lIGxpY2Vuc2Ug YXMgdGhlIHBhY2thZ2UgaXRzZWxmLgotIwotCi0lZGVmaW5lIGNvaW5faW5jbHVkZWRpciAle19p bmNsdWRlZGlyfS9Db2luMgotJWRlZmluZSBjb2luX2h0bWxkaXIgJXtfZGF0YWRpcn0vQ29pbjIK LQotJWRlZmluZSBsaWJvcGVuYWxfU09OQU1FIGxpYm9wZW5hbC5zby4xCi0lZGVmaW5lIGxpYnNp bWFnZV9TT05BTUUgbGlic2ltYWdlLnNvLjIwCi0KLVN1bW1hcnk6IEhpZ2gtbGV2ZWwgM0Qgdmlz dWFsaXphdGlvbiBsaWJyYXJ5Ci1OYW1lOiBDb2luMgotVmVyc2lvbjogMi41LjAKLVJlbGVhc2U6 IDU0JXs/ZGlzdH0KLQotIyBMSUNFTlNFLkdQTCBzYXlzICIuLiBvciBsYXRlciIgYnV0IHNvdXJj ZSBmaWxlcyB0ZWxsICJHUEx2MiIKLUxpY2Vuc2U6IEdQTC0yLjAtb25seQotVVJMOiBodHRwOi8v d3d3LmNvaW4zZC5vcmcKLQotU291cmNlMDogZnRwOi8vZnRwLmNvaW4zZC5vcmcvcHViL2NvaW4v c3JjL2FsbC9Db2luLSV7dmVyc2lvbn0udGFyLmd6Ci0KLVBhdGNoMDogQ29pbi0yLjQuNi1zaW1h Z2Utc29uYW1lLmRpZmYKLVBhdGNoMTogQ29pbi0yLjQuNi1vcGVuYWwtc29uYW1lLmRpZmYKLVBh dGNoMjogQ29pbi0yLjQuNi1tYW4zLmRpZmYKLVBhdGNoMzogQ29pbi0yLjUuMC1kb3h5Z2VuLmRp ZmYKLVBhdGNoNDogQ29pbi0yLjUuMC1nY2MtNC43LjAuZGlmZgotUGF0Y2g1OiBDb2luLTIuNS4w LWludHR5cGVzLnBhdGNoCi1QYXRjaDY6IENvaW4tMi41LjAtY29uZmlnLnBhdGNoCi1QYXRjaDc6 IENvaW4tMi41LjAtVXNlLU5VTEwtaW5zdGVhZC1vZi0wLnBhdGNoCi1QYXRjaDg6IENvaW4yLWNv bmZpZ3VyZS1jOTkucGF0Y2gKLQotQnVpbGRSZXF1aXJlczogZ2NjLWMrKwotQnVpbGRSZXF1aXJl czogbGliR0xVLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBsaWJYZXh0LWRldmVsCi0KLUJ1aWxkUmVx dWlyZXM6IHpsaWItZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6IGJ6aXAyLWRldmVsCi1CdWlsZFJlcXVp cmVzOiBmb250Y29uZmlnLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBmcmVldHlwZS1kZXZlbAotQnVp bGRSZXF1aXJlczogZG94eWdlbgotQnVpbGRSZXF1aXJlczogL3Vzci9iaW4vcmVuYW1lCi1CdWls ZFJlcXVpcmVzOiAvdXNyL2Jpbi9wZXJsCi1CdWlsZFJlcXVpcmVzOiBtYWtlCi0KLSVkZXNjcmlw dGlvbgotQ29pbiBpcyBhIDNEIGdyYXBoaWNzIGxpYnJhcnkgd2l0aCBhbiBBcHBsaWNhdGlvbiBQ cm9ncmFtbWluZyBJbnRlcmZhY2UKLWJhc2VkIG9uIHRoZSBPcGVuIEludmVudG9yIDIuMSBBUEku Ci0KLSVwYWNrYWdlIGRldmVsCi1TdW1tYXJ5OiBEZXZlbG9wbWVudCBmaWxlcyBmb3IgQ29pbgot UmVxdWlyZXM6ICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLVJlcXVpcmVzOiB6bGli LWRldmVsIGJ6aXAyLWRldmVsCi1SZXF1aXJlczogZm9udGNvbmZpZy1kZXZlbAotUmVxdWlyZXM6 IGZyZWV0eXBlLWRldmVsCi1SZXF1aXJlczogbGliR0xVLWRldmVsCi1SZXF1aXJlczogcGtnY29u ZmlnCi1SZXF1aXJlcyhwb3N0KTogL3Vzci9zYmluL2FsdGVybmF0aXZlcwotUmVxdWlyZXMocHJl dW4pOiAvdXNyL3NiaW4vYWx0ZXJuYXRpdmVzCi1Qcm92aWRlczogcGtnY29uZmlnKENvaW4pCi0K LSVkZXNjcmlwdGlvbiBkZXZlbAotRGV2ZWxvcG1lbnQgcGFja2FnZSBmb3IgQ29pbjIKLQotJXBy ZXAKLSVzZXR1cCAtcSAtbiBDb2luLSV7dmVyc2lvbn0KLSVwYXRjaCAtUDAgLXAxCi0lcGF0Y2gg LVAxIC1wMQotJXBhdGNoIC1QMiAtcDEKLSVwYXRjaCAtUDMgLXAxCi0lcGF0Y2ggLVA0IC1wMQot JXBhdGNoIC1QNSAtcDEKLSVwYXRjaCAtUDYgLXAxCi0lcGF0Y2ggLVA3IC1wMQotJXBhdGNoIC1Q OCAtcDEKLQotIyBVcGRhdGUgZG94eWdlbiBjb25maWd1cmF0aW9uCi1kb3h5Z2VuIC11IGRvY3Mv Y29pbi5kb3h5Z2VuLmluCi0KLWZpbmQgLW5hbWUgJ01ha2VmaWxlLionIC1leGVjIHNlZCAtaSAt ZSAncyxcJChkYXRhZGlyKS9Db2luLCQoZGF0YWRpcikvQ29pbjIsJyB7fSBcOwotCi0jIGJvZ3Vz IHBlcm1pc3Npb25zCi1maW5kIC4gXCggLW5hbWUgJyouaCcgLW8gLW5hbWUgJyouY3BwJyAtbyAt bmFtZSAnKi5jJyBcKSAtYSAtZXhlY3V0YWJsZSAtZXhlYyBjaG1vZCAteCB7fSBcOwotCi0jIGNv bnZlcnQgc291cmNlcyB0byB1dGYtOAotZm9yIGEgaW4gJChmaW5kIC4gLXR5cGUgZiAtZXhlYyBm aWxlIC1pIHt9IFw7IHwgZ3JlcCAtaSBpc28gfCBzZWQgLWUgJ3MsOi4qLCwnKTsgZG8gXAotICAv dXNyL2Jpbi9pY29udiAtZiBJU08tODg1OS0xIC10IHV0Zi04ICRhID4gJGF+OyBcCi0gIG12ICRh fiAkYTsgXAotZG9uZQotCi1zZWQgLWkgLWUgJ3MsQExJQlNJTUFHRV9TT05BTUVALCIle2xpYnNp bWFnZV9TT05BTUV9IiwnIFwKLSAgc3JjL2dsdWUvc2ltYWdlX3dyYXBwZXIuYwotc2VkIC1pIC1l ICdzLEBMSUJPUEVOQUxfU09OQU1FQCwiJXtsaWJvcGVuYWxfU09OQU1FfSIsJyBcCi0gIHNyYy9n bHVlL29wZW5hbF93cmFwcGVyLmMKLQotJWJ1aWxkCi0lY29uZmlndXJlIFwKLQktLWluY2x1ZGVk aXI9JXtjb2luX2luY2x1ZGVkaXJ9IFwKLQktLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyBc Ci0JLS1lbmFibGUtc2hhcmVkIFwKLQktLWRpc2FibGUtZGwtbGliYnppcDIgXAotCS0tZGlzYWJs ZS1kbC1nbHUgXAotCS0tZGlzYWJsZS1kbC16bGliIFwKLQktLWRpc2FibGUtZGwtZnJlZXR5cGUg XAotCS0tZGlzYWJsZS1kbC1mb250Y29uZmlnIFwKLQktLWRpc2FibGUtc3BpZGVybW9ua2V5IFwK LQktLWVuYWJsZS1tYW4gXAotCS0tZW5hYmxlLWh0bWwgXAotCS0tZW5hYmxlLTNkcy1pbXBvcnQg XAotCWh0bWxkaXI9JXtjb2luX2h0bWxkaXJ9L0NvaW4gXAotCUNQUEZMQUdTPSIkKHBrZy1jb25m aWcgLS1jZmxhZ3MgZnJlZXR5cGUyKSIKLSV7bWFrZV9idWlsZH0KLQotIyBTdHJpcCB0aGUgZGVm YXVsdCBsaWJkaXIKLXNlZCAtaSAtZSAicyxcLUwle19saWJkaXJ9ICwsIiBjb2luLWRlZmF1bHQu Y2ZnCi0KLSMgY29pbi1jb25maWcgaXMgYXJjaCBkZXBlbmRlbnQKLXNlZCAtaSAtZSAicywvc2hh cmUvQ29pbi9jb25mLywvJXtfbGlifS9Db2luMi9jb25mLyxnIiBiaW4vY29pbi1jb25maWcKLQot JWluc3RhbGwKLSV7bWFrZV9pbnN0YWxsfQotCi1wdXNoZCAkUlBNX0JVSUxEX1JPT1Qle19tYW5k aXJ9ID4gL2Rldi9udWxsCi0vdXNyL2Jpbi9yZW5hbWUgLjEgLjFjb2luMiBtYW4xLyoKLS91c3Iv YmluL3JlbmFtZSAuMyAuM2NvaW4yIG1hbjMvKgotcG9wZCA+IC9kZXYvbnVsbAotcm0gLWYgJHtS UE1fQlVJTERfUk9PVH0le19saWJkaXJ9L2xpYioubGEKLQotaW5zdGFsbCAtZCAtbSA3NTUgJHtS UE1fQlVJTERfUk9PVH0le19saWJkaXJ9L0NvaW4yCi1tdiAke1JQTV9CVUlMRF9ST09UfSV7X2Rh dGFkaXJ9L0NvaW4yL2NvbmYgJHtSUE1fQlVJTERfUk9PVH0le19saWJkaXJ9L0NvaW4yCi0KLW12 ICR7UlBNX0JVSUxEX1JPT1R9JXtfYmluZGlyfS9jb2luLWNvbmZpZyAke1JQTV9CVUlMRF9ST09U fSV7X2xpYmRpcn0vQ29pbjIvY29pbi1jb25maWcKLWxuIC1zICV7X2xpYmRpcn0vQ29pbjIvY29p bi1jb25maWcgJHtSUE1fQlVJTERfUk9PVH0le19iaW5kaXJ9L2NvaW4tY29uZmlnCi1tdiAke1JQ TV9CVUlMRF9ST09UfSV7X2xpYmRpcn0vcGtnY29uZmlnL0NvaW4ucGMgJHtSUE1fQlVJTERfUk9P VH0le19saWJkaXJ9L3BrZ2NvbmZpZy9Db2luMi5wYwotbG4gLXMgJXtfbGliZGlyfS9wa2djb25m aWcvQ29pbjIucGMgJHtSUE1fQlVJTERfUk9PVH0le19saWJkaXJ9L3BrZ2NvbmZpZy9Db2luLnBj Ci1tdiAke1JQTV9CVUlMRF9ST09UfSV7X2RhdGFkaXJ9L2FjbG9jYWwvY29pbi5tNCAke1JQTV9C VUlMRF9ST09UfSV7X2RhdGFkaXJ9L2FjbG9jYWwvY29pbjIubTQKLWxuIC1zICV7X2RhdGFkaXJ9 L2FjbG9jYWwvY29pbjIubTQgJHtSUE1fQlVJTERfUk9PVH0le19kYXRhZGlyfS9hY2xvY2FsL2Nv aW4ubTQKLQotJWxkY29uZmlnX3NjcmlwdGxldHMKLQotJXBvc3QgZGV2ZWwKLWxpbms9JChyZWFk bGluayAtZSAiJXtfYmluZGlyfS9jb2luLWNvbmZpZyIpCi1pZiBbICIkbGluayIgPSAiJXtfYmlu ZGlyfS9jb2luLWNvbmZpZyIgXTsgdGhlbgotICBybSAtZiAle19iaW5kaXJ9L2NvaW4tY29uZmln Ci1maQotaWYgWyAiJGxpbmsiID0gIiV7X2xpYmRpcn0vQ29pbjIvY29pbi1jb25maWciIF07IHRo ZW4KLSAgcm0gLWYgJXtfYmluZGlyfS9jb2luLWNvbmZpZwotZmkKLQotL3Vzci9zYmluL2FsdGVy bmF0aXZlcyAtLWluc3RhbGwgIiV7X2JpbmRpcn0vY29pbi1jb25maWciIGNvaW4tY29uZmlnIFwK LSAgIiV7X2xpYmRpcn0vQ29pbjIvY29pbi1jb25maWciIDQwIFwKLSAgLS1zbGF2ZSAle19saWJk aXJ9L3BrZ2NvbmZpZy9Db2luLnBjIENvaW4ucGMgJXtfbGliZGlyfS9wa2djb25maWcvQ29pbjIu cGMgXAotICAtLXNsYXZlICV7X2RhdGFkaXJ9L2FjbG9jYWwvY29pbi5tNCBjb2luLm00ICV7X2Rh dGFkaXJ9L2FjbG9jYWwvY29pbjIubTQgXAotICAtLXNsYXZlICV7X2xpYmRpcn0vbGliQ29pbi5z byBsaWJDb2luLnNvICV7X2xpYmRpcn0vbGliQ29pbi5zby40MAotCi0lcHJldW4gZGV2ZWwKLWlm IFsgJDEgPSAwIF07IHRoZW4KLSAgL3Vzci9zYmluL2FsdGVybmF0aXZlcyAtLXJlbW92ZSBjb2lu LWNvbmZpZyAiJXtfbGliZGlyfS9Db2luMi9jb2luLWNvbmZpZyIKLWZpCi0KLSVmaWxlcwotJWRv YyBBVVRIT1JTIENoYW5nZUxvZyogUkVBRE1FIFRIQU5LUyBGQVEqCi0lbGljZW5zZSBDT1BZSU5H IExJQ0VOU0UqCi0le19saWJkaXJ9L2xpYkNvaW4uc28uKgotCi0lZmlsZXMgZGV2ZWwKLSVnaG9z dCAle19iaW5kaXJ9L2NvaW4tY29uZmlnCi0le2NvaW5faW5jbHVkZWRpcn0KLSVnaG9zdCAle19s aWJkaXJ9L2xpYkNvaW4uc28KLSV7X2RhdGFkaXJ9L2FjbG9jYWwvY29pbjIubTQKLSVnaG9zdCAl e19kYXRhZGlyfS9hY2xvY2FsL2NvaW4ubTQKLSVkaXIgJXtfZGF0YWRpcn0vQ29pbjIKLSV7X2Rh dGFkaXJ9L0NvaW4yL2RyYWdnZXJEZWZhdWx0cwotJXtfZGF0YWRpcn0vQ29pbjIvc2hhZGVycwot JXtfbGliZGlyfS9Db2luMgotJXtfbWFuZGlyfS9tYW4/LyoKLSVkb2MgJXtjb2luX2h0bWxkaXJ9 L0NvaW4KLSV7X2xpYmRpcn0vcGtnY29uZmlnL0NvaW4yLnBjCi0lZ2hvc3QgJXtfbGliZGlyfS9w a2djb25maWcvQ29pbi5wYwotCi0lY2hhbmdlbG9nCi0qIEZyaSBKYW4gMTYgMjAyNiBGZWRvcmEg UmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTU0 Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDRf TWFzc19SZWJ1aWxkCi0KLSogRnJpIEphbiAxNiAyMDI2IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVy aW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAtNTMKLS0gUmVidWlsdCBmb3Ig aHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80NF9NYXNzX1JlYnVpbGQKLQot KiBXZWQgSnVsIDIzIDIwMjUgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC01MgotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvRmVkb3JhXzQzX01hc3NfUmVidWlsZAotCi0qIFRodSBKYW4gMTYgMjAy NSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAt IDIuNS4wLTUxCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9G ZWRvcmFfNDJfTWFzc19SZWJ1aWxkCi0KLSogV2VkIEp1bCAxNyAyMDI0IEZlZG9yYSBSZWxlYXNl IEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAtNTAKLS0gUmVi dWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MV9NYXNzX1Jl YnVpbGQKLQotKiBNb24gSmFuIDIyIDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC00OQotLSBSZWJ1aWx0IGZvciBodHRwczov L2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQwX01hc3NfUmVidWlsZAotCi0qIEZyaSBK YW4gMTkgMjAyNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2pl Y3Qub3JnPiAtIDIuNS4wLTQ4Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5v cmcvd2lraS9GZWRvcmFfNDBfTWFzc19SZWJ1aWxkCi0KLSogVGh1IEphbiAxOCAyMDI0IEZlZG9y YSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAt NDcKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80 MF9NYXNzX1JlYnVpbGQKLQotKiBXZWQgSnVsIDE5IDIwMjMgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC00NgotLSBSZWJ1aWx0IGZv ciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM5X01hc3NfUmVidWlsZAot Ci0qIFdlZCBGZWIgMjIgMjAyMyBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPiAt IDIuNS4wLTQ1Ci0tIFBvcnQgY29uZmlndXJlIHNjcmlwdCB0byBDOTkKLQotKiBXZWQgSmFuIDE4 IDIwMjMgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9y Zz4gLSAyLjUuMC00NAotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dp a2kvRmVkb3JhXzM4X01hc3NfUmVidWlsZAotCi0qIFdlZCBEZWMgMjggMjAyMiBSYWxmIENvcnPD qXBpdXMgPGNvcnNlcGl1QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTQzCi0tIENvbnZlcnQg bGljZW5zZSB0byBTUERYLgotLSBNb2Rlcm5pemUgc3BlYy4KLS0gVXBkYXRlIHNvdXJjZXMgdG8g c2hhNTEyLgotCi0qIFdlZCBKdWwgMjAgMjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTQyCi0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzdfTWFzc19SZWJ1aWxkCi0KLSogV2Vk IEphbiAxOSAyMDIyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJv amVjdC5vcmc+IC0gMi41LjAtNDEKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0 Lm9yZy93aWtpL0ZlZG9yYV8zNl9NYXNzX1JlYnVpbGQKLQotKiBXZWQgSnVsIDIxIDIwMjEgRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUu MC00MAotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3Jh XzM1X01hc3NfUmVidWlsZAotCi0qIE1vbiBKYW4gMjUgMjAyMSBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTM5Ci0tIFJlYnVpbHQg Zm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzRfTWFzc19SZWJ1aWxk Ci0KLSogTW9uIEp1bCAyNyAyMDIwIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdA ZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAtMzgKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRv cmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zM19NYXNzX1JlYnVpbGQKLQotKiBXZWQgSnVsIDI0 IDIwMTkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9y Zz4gLSAyLjUuMC0zNwotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dp a2kvRmVkb3JhXzMxX01hc3NfUmVidWlsZAotCi0qIFRodSBKYW4gMzEgMjAxOSBGZWRvcmEgUmVs ZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTM2Ci0t IFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzBfTWFz c19SZWJ1aWxkCi0KLSogRnJpIEp1bCAyMCAyMDE4IFJhbGYgQ29yc8OpcGl1cyA8Y29yc2VwaXVA ZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAtMzUKLS0gQlI6IGdjYy1jKysgaW5zdGVhZCBvZiBn Y2MgKFJIQlojMTYwMzI2NSkuCi0KLSogVGh1IEp1bCAxMiAyMDE4IEZlZG9yYSBSZWxlYXNlIEVu Z2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAtMzQKLS0gUmVidWls dCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yOV9NYXNzX1JlYnVp bGQKLQotKiBXZWQgRmViIDA3IDIwMTggRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVu Z0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0zMwotLSBSZWJ1aWx0IGZvciBodHRwczovL2Zl ZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzI4X01hc3NfUmVidWlsZAotCi0qIFdlZCBBdWcg MDIgMjAxNyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qu b3JnPiAtIDIuNS4wLTMyCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcv d2lraS9GZWRvcmFfMjdfQmludXRpbHNfTWFzc19SZWJ1aWxkCi0KLSogV2VkIEp1bCAyNiAyMDE3 IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0g Mi41LjAtMzEKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0Zl ZG9yYV8yN19NYXNzX1JlYnVpbGQKLQotKiBGcmkgRmViIDE3IDIwMTcgUmFsZiBDb3Jzw6lwaXVz IDxjb3JzZXBpdUBmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0zMAotLSBBZGQgQ29pbi0yLjUu MC1Vc2UtTlVMTC1pbnN0ZWFkLW9mLTAucGF0Y2ggKEZpeCBGMjZGVEJGUywgUkhCWiMxNDIzMDkz KS4KLS0gU3BlYyBmaWxlIGNvc21ldGljcy4KLQotKiBGcmkgRmViIDEwIDIwMTcgRmVkb3JhIFJl bGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0yOQot LSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzI2X01h c3NfUmVidWlsZAotCi0qIE1vbiBTZXAgMDUgMjAxNiBSYWxmIENvcnPDqXBpdXMgPGNvcnNlcGl1 QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTI4Ci0tIEJSOiAvdXNyL2Jpbi9wZXJsIChGaXgg RjI1RlRCRlMpLgotCi0qIFdlZCBGZWIgMDMgMjAxNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmlu ZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTI3Ci0tIFJlYnVpbHQgZm9yIGh0 dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMjRfTWFzc19SZWJ1aWxkCi0KLSog V2VkIEphbiAyNyAyMDE2IFJhbGYgQ29yc8OpcGl1cyA8Y29yc2VwaXVAZmVkb3JhcHJvamVjdC5v cmc+IC0gMi41LjAtMjYKLS0gUmVtb3ZlICUlZGVmYXR0ci4KLS0gQWRkICUlbGljZW5zZS4KLS0g Rml4IGJvZ3VzICUlY2hhbmdlbG9nIGVudHJ5LgotLSBEcm9wIENvaW4tMi41LjAtZnJlZXR5cGUt Zml4LnBhdGNoLgotLSBXb3JrLWFyb3VuZCBGZWRvcmEncyBmcmVldHlwZSBoZWFkZXIgY2hhb3Mu Ci0KLSogVHVlIEp1biAxNiAyMDE1IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5n QGxpc3RzLmZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTI1Ci0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMjNfTWFzc19SZWJ1aWxkCi0KLSogU2F0 IE1heSAwMiAyMDE1IEthbGV2IExlbWJlciA8a2FsZXZsZW1iZXJAZ21haWwuY29tPiAtIDIuNS4w LTI0Ci0tIFJlYnVpbHQgZm9yIEdDQyA1IEMrKzExIEFCSSBjaGFuZ2UKLQotKiBXZWQgRmViIDE4 IDIwMTUgUmFsZiBDb3JzZXBpdXMgPGNvcnNlcGl1QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4w LTIzCi0tIFJlYnVpbHQgZm9yIEdDQy01LjAuCi0tIEZpeCBib2d1cyAlJWNoYW5nZWxvZyBlbnRy aWVzLgotCi0qIEZyaSBBdWcgMTUgMjAxNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVs LWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0yMgotLSBSZWJ1aWx0IGZvciBo dHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzIxXzIyX01hc3NfUmVidWlsZAot Ci0qIEZyaSBKdW4gMDYgMjAxNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0Bs aXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0yMQotLSBSZWJ1aWx0IGZvciBodHRwczov L2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzIxX01hc3NfUmVidWlsZAotCi0qIFRodSBN YXkgMjIgMjAxNCBCcmVudCBCYXVkZSA8YmF1ZGVAdXMuaWJtLmNvbT4gLSAyLjUuMC0yMAotLSBB ZGRlZCBxdW90ZXMgYXJvdW5kIHBrZyBjb25maWcgb2ZmIGZyZWV0eXBlIHRvIGZpeCBjb25maWd1 cmUgaXNzdWUKLS0gQWRkZWQgcGF0Y2ggdG8gZml4IGZyZWV0eXBlIGhlYWRlcnMgYWZ0ZXIgaGVh ZGVycyBtb3ZlZCBpbiByZWNlbnQKLS0gZnJlZXR5cGUgcGFja2FnZXMuCi0KLSogRnJpIEF1ZyAw MiAyMDEzIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9yYXBy b2plY3Qub3JnPiAtIDIuNS4wLTE5Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfMjBfTWFzc19SZWJ1aWxkCi0KLSogU3VuIE1hciAyNCAyMDEzIFJh bGYgQ29yc8OpcGl1cyA8Y29yc2VwaXVAZmVkb3JhcHJvamVjdC5vcmc+IC0gMi41LjAtMTgKLS0g VXBkYXRlIGNvbmZpZy57Z3Vlc3Msc3VifSB0byBhbGxvdyBidWlsZGluZyBmb3IgYWFyY2g2NCoK LSAgKEFkZCBDb2luMi0yLjUuMC1jb25maWcucGF0Y2gpLgotCi0qIFdlZCBGZWIgMTMgMjAxMyBG ZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9y Zz4gLSAyLjUuMC0xNwotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dp a2kvRmVkb3JhXzE5X01hc3NfUmVidWlsZAotCi0qIFdlZCBKdWwgMTggMjAxMiBGZWRvcmEgUmVs ZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUu MC0xNgotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3Jh XzE4X01hc3NfUmVidWlsZAotCi0qIFRodSBKYW4gMTIgMjAxMiBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0xNQotLSBS ZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzE3X01hc3Nf UmVidWlsZAotCi0qIFdlZCBKYW4gMTEgMjAxMiBSYWxmIENvcnPDqXBpdXMgPGNvcnNlcGl1QGZl ZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTE0Ci0tIFNldCBsaWNlbmNlIHRhZyB0byBHUEx2Mi4K LQotKiBXZWQgSmFuIDExIDIwMTIgUmFsZiBDb3Jzw6lwaXVzIDxjb3JzZXBpdUBmZWRvcmFwcm9q ZWN0Lm9yZz4gLSAyLjUuMC0xMwotLSBBZGQgQ29pbi0yLjUuMC1pbnR0eXBlcy5wYXRjaCAoTWFr ZSAqLWRldmVsIG11bHRpbGliIGNvbXBsaWFudDsKLSAgRml4IGF1dG9jb25mIGNsYXNoZXMpLgot Ci0qIFRodSBKYW4gMDUgMjAxMiBSYWxmIENvcnPDqXBpdXMgPGNvcnNlcGl1QGZlZG9yYXByb2pl Y3Qub3JnPiAtIDIuNS4wLTEyCi0tIEZpeCBnY2MtNC43LjAgRlRCUyAoQWRkIENvaW4tMi41LjAt Z2NjLTQuNy4wLmRpZmYpLgotCi0qIE1vbiBOb3YgMDcgMjAxMSBSYWxmIENvcnPDqXBpdXMgPGNv cnNlcGl1QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTExCi0tIE1vZGVybml6ZSBzcGVjLgot LSBEb24ndCB1c2UgYmFzaCdzICI9PSIgaW4gYWx0ZXJuYXRpdmVzJyBzY3JpcHRsZXRzLgotLSBE b24ndCBzaGlwIFJFQURNRS4qLgotLSBEb24ndCBhZGQgYnVpbGQtdGltZSB0byBkb3h5Z2VuIGdl bmVyYXRlZCBkb2NzLgotCi0qIE1vbiBGZWIgMDcgMjAxMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVl cmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUuMC0xMAotLSBSZWJ1 aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzE1X01hc3NfUmVi dWlsZAotCi0qIFdlZCBTZXAgMjkgMjAxMCBSYWxmIENvcnPDqXBpdXMgPGNvcnNlcGl1QGZlZG9y YXByb2plY3Qub3JnPiAtIDIuNS4wLTkKLS0gUmVmbGVjdCB1cHN0cmVhbSBoYXZpbmcgY2hhbmdl ZCBVUkwuCi0tIEludHJvZHVjZSBhbHRlcm5hdGl2ZSBjb2luLWNvbmZpZyB0byBhbGxvdyBwYXJh bGxlbCBpbnN0YWxsYXRpb24gb2YKLSAgb3RoZXIgQ29pbiotZGV2ZWwgcGFja2FnZXMuCi0tIEZ1 cnRoZXIgbWlub3IgKi5zcGVjIGNsZWFudXBzLgotCi0qIFN1biBOb3YgMjIgMjAwOSBSYWxmIENv cnPDqXBpdXMgPGNvcnNlcGl1QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTgKLS0gRWxpbWlu YXRlIC91c3Ivc2hhcmUvQ29pbi4KLS0gUmVuYW1lIG1hbnMgaW50byAqY29pbjIuCi0tIEZpeCBi cm9rZW4gY2FsbHMgdG8gcmVuYW1lLgotCi0qIE1vbiBTZXAgMjggMjAwOSBSYWxmIENvcnPDqXBp dXMgPGNvcnNlcGl1QGZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTcKLS0gUmVmbGVjdCBvcGVu YWwvb3BlbmFsLXNvZnQgY2hhbmdlcy4KLS0gV29yay1hcm91bmQgImZpbGUiIHJlcG9ydGluZyBi b2d1cyByZXN1bHRzIChCWiA1MjYwNTQpLgotCi0qIEZyaSBKdWwgMjQgMjAwOSBGZWRvcmEgUmVs ZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjUu MC02Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFf MTJfTWFzc19SZWJ1aWxkCi0KLSogTW9uIEZlYiAyMyAyMDA5IEZlZG9yYSBSZWxlYXNlIEVuZ2lu ZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9yYXByb2plY3Qub3JnPiAtIDIuNS4wLTUKLS0gUmVi dWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8xMV9NYXNzX1Jl YnVpbGQKLQotKiBTdW4gRmViIDEwIDIwMDggUmFsZiBDb3Jzw6lwaXVzIDxyYzA0MDIwM0BmcmVl bmV0LmRlPiAtIDIuNS4wLTQKLS0gUmVidWlsZCBmb3IgZ2NjNDMuCi0tIFVwZGF0ZSBjb3B5cmln aHQuCi0KLSogVGh1IE5vdiAyOSAyMDA3IFJhbGYgQ29yc8OpcGl1cyA8cmMwNDAyMDNAZnJlZW5l dC5kZT4gLSAyLjUuMC0zCi0tIFJlYnVpbGQgd2l0aCBkb3h5Z2VuLTEuNS4zLTEgKEJaIDM0MzYw MSkuCi0KLSogV2VkIE9jdCAwMyAyMDA3IFJhbGYgQ29yc8OpcGl1cyA8cmMwNDAyMDNAZnJlZW5l dC5kZT4gLSAyLjUuMC0yCi0tIEZpeCBwZXJtaXNzaW9ucyBvbiBzb3VyY2UgZmlsZXMuCi0tIENv bnZlcnQgc291cmNlcyB0byB1dGYtOC4KLQotKiBUdWUgT2N0IDAyIDIwMDcgUmFsZiBDb3Jzw6lw aXVzIDxyYzA0MDIwM0BmcmVlbmV0LmRlPiAtIDIuNS4wLTEKLS0gVXBzdHJlYW0gdXBkYXRlLgot Ci0qIEZyaSBBdWcgMTcgMjAwNyBSYWxmIENvcnPDqXBpdXMgPHJjMDQwMjAzQGZyZWVuZXQuZGU+ IC0gMi40LjYtMgotLSBVcGRhdGUgbGljZW5zZSB0YWcuCi0KLSogU3VuIEFwciAxNSAyMDA3IFJh bGYgQ29yc8OpcGl1cyA8cmMwNDAyMDNAZnJlZW5ldC5kZT4gLSAyLjQuNi0xCi0tIFVwc3RyZWFt IHVwZGF0ZS4KLS0gUmUtYmFzZSB0aGUgcGF0Y2hlcyB0byAyLjQuNi4KLS0gU3BlYyBmaWxlIG1h c3NhZ2UuCi0KLSogVHVlIEZlYiAyMCAyMDA3IFJhbGYgQ29yc8OpcGl1cyA8cmMwNDAyMDNAZnJl ZW5ldC5kZT4gLSAyLjQuNS01Ci0tIEluc3RhbGwgY29pbi1kZWZhdWx0LmNmZyBpbnRvICUle19w cmVmaXh9LyUle19saWJ9Ci0KLSogTW9uIEZlYiAxOSAyMDA3IFJhbGYgQ29yc8OpcGl1cyA8cmMw NDAyMDNAZnJlZW5ldC5kZT4gLSAyLjQuNS00Ci0tIEZpbHRlciBlcnJhbnQgLUwlJV9saWJkaXIg ZnJvbSBjb2luLWNvbmZpZy5jZmcuCi0tIFJlbW92ZSAqLmxhLgotCi0qIEZyaSBTZXAgMTUgMjAw NiBSYWxmIENvcnPDqXBpdXMgPHJjMDQwMjAzQGZyZWVuZXQuZGU+IC0gMi40LjUtMwotLSBBZGQg ZG94eWdlbiBoYWNrLgotCi0qIFR1ZSBTZXAgMDUgMjAwNiBSYWxmIENvcnPDqXBpdXMgPHJjMDQw MjAzQGZyZWVuZXQuZGU+IC0gMi40LjUtMgotLSBNYXNzIHJlYnVpbGQuCi0KLSogVHVlIE1heSAz MCAyMDA2IFJhbGYgQ29yc8OpcGl1cyA8cmMwNDAyMDNAZnJlZW5ldC5kZT4gLSAyLjQuNS0xCi0t IFVwc3RyZWFtIHVwZGF0ZS4KLS0gRHJvcCBnY2MtNC4xIHBhdGNoLgotLSBTcGVjIGZpbGUgY2xl YW51cC4KLQotKiBXZWQgRmViIDIyIDIwMDYgUmFsZiBDb3Jzw6lwaXVzIDxyYzA0MDIwM0BmcmVl bmV0LmRlPiAtIDIuNC40LTEwCi0tIFJlbmFtZSBtYW4zIG1hbnBhZ2VzIHRvIC4zc2ltIChQUiAx ODIyMTIpLgotCi0qIFN1biBGZWIgMTkgMjAwNiBSYWxmIENvcnNlcGl1cyA8cmMwNDAyMDNAZnJl ZW5ldC5kZT4gLSAyLjQuNC05Ci0tIFJlYnVpbGQuCi0KLSogTW9uIEphbiAxNiAyMDA2IFJhbGYg Q29yc2VwaXVzIDxyYzA0MDIwM0BmcmVlbmV0LmRlPiAtIDIuNC40LTgKLS0gQWRkIFI6IGZvbnRj b25maWctZGV2ZWwgdG8gZGV2ZWwgcGFja2FnZS4KLQotKiBNb24gSmFuIDE2IDIwMDYgUmFsZiBD b3JzZXBpdXMgPHJjMDQwMjAzQGZyZWVuZXQuZGU+IC0gMi40LjQtNwotLSBBZGQgUjogZnJlZXR5 cGUtZGV2ZWwgdG8gZGV2ZWwgcGFja2FnZS4KLQotKiBUaHUgRGVjIDIyIDIwMDUgUmFsZiBDb3Jz ZXBpdXMgPHJjMDQwMjAzQGZyZWVuZXQuZGU+IC0gMi40LjQtNgotLSBSZW1vdmUgaGFja3MgdG8g bWVzYS9YMTEgcGFja2FnaW5nIGJ1Z3Mgbm93IHJlcG9ydGVkIHRvIGJlIGZpeGVkLgotCi0qIFRo dSBEZWMgMTUgMjAwNSBSYWxmIENvcnNlcGl1cyA8cmMwNDAyMDNAZnJlZW5ldC5kZT4gLSAyLjQu NC01Ci0tIE1vcmUgaGFja3MgZm9yIG1vZHVsYXIgWDExLgotLSBBZGQgQ29pbi0yLjQuNC1nY2Mt NC4xLmRpZmYuCi0KLSogTW9uIE5vdiAyMSAyMDA1IFJhbGYgQ29yc2VwaXVzIDxyYzA0MDIwM0Bm cmVlbmV0LmRlPiAtIDIuNC40LTQKLS0gVHJ5IHRvIHdvcmsgYXJvdW5kIG1vZHVsYXIgWCBoYXZp bmcgYnJva2VuIHBhY2thZ2UgZGVwcy4KLQotKiBUaHUgU2VwIDIyIDIwMDUgUmFsZiBDb3JzZXBp dXMgPHJhbGZAbGlua3MybGludXguZGU+IC0gMi40LjQtMwotLSBSZW1vdmUgc2ltYWNyb3MgcGF0 Y2guCi0tIFJlbW92ZSBsaWJ0b29sIHBhdGNoLgotLSBMaW5rIGFnYWluc3QgZnJlZXR5cGUyLgot Ci0qIFR1ZSBTZXAgMjAgMjAwNSBSYWxmIENvcnNlcGl1cyA8cmFsZkBsaW5rczJsaW51eC5kZT4g LSAyLjQuNC0xCi0tIFVwc3RyZWFtIHVwZGF0ZS4KLQotKiBUaHUgSnVsIDA3IDIwMDUgUmFsZiBD b3JzZXBpdXMgPHJhbGZAbGlua3MybGludXguZGU+IC0gMDoyLjQuMy0xCi0tIFVwc3RyZWFtIHVw ZGF0ZS4KLQotKiBUdWUgTWF5IDE3IDIwMDUgUmFsZiBDb3JzZXBpdXMgPHJhbGZAbGlua3MybGlu dXguZGU+IC0gMDoyLjQuMS0xCi0tIFVwc3RyZWFtIHVwZGF0ZS4KCmRpZmYgLS1naXQgYS9kZWFk LnBhY2thZ2UgYi9kZWFkLnBhY2thZ2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNTIwNGE4NAotLS0gL2Rldi9udWxsCisrKyBiL2RlYWQucGFja2FnZQpAQCAtMCwwICsxIEBA CitPcnBoYW5lZCBmb3IgNisgd2Vla3MKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJiYjA2ZC4uMDAwMDAwMAotLS0gYS9zb3Vy Y2VzCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotU0hBNTEyIChDb2luLTIuNS4wLnRhci5n eikgPSA3ZTE2MDlkZDY2YjVhMTYzNTAzNzY0ZjhkMDE1ZTU3ZjMzY2M2NjA5MTAwMDAwODIyMmE4 N2Q5ZTc2NzE0OWY5MTk3MWMyMzJhZTAzNjAwYzQ5NzIwMDgwOTY3NzkwYThjODQ1YjQ5Y2MwZTlm NDc3MjI5NTVhMmZlYTkzYjAyOQo=